MacBook, defective by design banner

title:
Put the knife down and take a green herb, dude.


descrip:

One feller's views on the state of everyday computer science & its application (and now, OTHER STUFF) who isn't rich enough to shell out for www.myfreakinfirst-andlast-name.com

Using 89% of the same design the blog had in 2001.

FOR ENTERTAINMENT PURPOSES ONLY!!!
Back-up your data and, when you bike, always wear white.
x

MarkUpDown is the best Markdown editor for professionals on Windows 10.

It includes two-pane live preview, in-app uploads to imgur for image hosting, and MultiMarkdown table support.

Features you won't find anywhere else include...

You've wasted more than $15 of your time looking for a great Markdown editor.

Stop looking. MarkUpDown is the app you're looking for.

Learn more or head over to the 'Store now!

Friday, May 31, 2013

Camino Browser for Mac Officially Discontinued - Mac Rumors

For a while, Camino seemed to be the fastest browser on OS X, and it was always a nice, fairly stable alternative browser for a number of my machines.  But the writing was on the wall quite a while ago (the Camino development group was kind enough to spell it out for me in July last year).  Camino called directly to Gecko, and then was no real abstraction between the Camino frame and that engine.  There was no abstraction, so there was no way to plug in another rendering engine.

As Stuart Morgan was kind enough to tell me on Google Groups...
and why is the Camino version unsustainable?

Because the embedding API is no longer being maintained. Building an app that includes Gecko, vs. an app that's built *in* Gecko, is no longer supported.
...
An application built in XUL wouldn't be Camino, it would be something rewritten from scratch in a different technology that looked similar. It would be more like a heavily skinned Firefox than it would be like Camino, technologically speaking. None of us are interested in writing that app...

So you've got a single-use OS X native frame, and the use is gone.  Goodbye Camino.  It was fun while it lasted.

Labels: , ,


posted by ruffin at 5/31/2013 04:48:00 PM
0 comments
Tuesday, May 28, 2013

Google Has Already Removed 8.8M Lines Of WebKit Code From Blink | TechCrunch:

[May 15th, I believe] at the Google I/O developer conference, the Blink team provided an update about the state of the engine. As Alex Komoroske, a product manager on Chrome’s Open Web Platform told the audience, the team has already removed 8.8 million lines of code from the original WebKit repository. [emph mine]

Wow. It looks like most of this was low hanging fruit -- "the company argued that it was doing so because WebKit had become somewhat unwieldy to maintain because of the wide range of platforms it needs to support. In the process" -- but still impressive.

Labels: ,


posted by ruffin at 5/28/2013 09:37:00 AM
0 comments
Sunday, May 26, 2013

double floating point precision and MySQL (Page 1) / Version 5 / Gmap3 - Forum:

There's still one problem, but I guess I can ignore it.
Setting precision explicitely means [MySQL] uses this precision always.
e.g. even for lower precision numbers.
So, 13.12847910000005 becomes 13.128479100000050 (15 precision) or even 13.1284791000000496 (16 precision).

If one needs to have accurate numbers you better store them as strings. And if you need to display accurate numbers but also calculate in MySQL with the floating point numbers you have to store two values, one float, one string.

Painfully, I'm starting to see the wisdom of storing decimal numbers as strings.  I mean, better yet is just to use 0-249 of each byte (more efficient and still mnemonic for traditionally ten-fingered cultures), but you get the point.

I'm trying to figure out what MySQL thinks a REAL is.  Well, it's a DOUBLE by default, but I'm having a hard time (> 5 min ;^D) Googling up what DOUBLE's precision is.

Labels: ,


posted by ruffin at 5/26/2013 11:43:00 AM
0 comments
Saturday, May 25, 2013

An emotional Bill Gates pays homage to Steve Jobs while recounting final meeting:

As part of an interview with Charlie Rose that aired on CBS's "60 Minutes" on Sunday, a visibly shaken and humble Bill Gates detailed his final visit with Steve Jobs, in which the two discussed everything from family life to empowering the future of eduction [sic] through technology.

The video is from 60 Minutes.  I hate to say it, having used computers so much since the Apple IIe, TRS-80, Vic-20, and C=64 to the point that they're my profession now, but I can't help but agree.  We are doing different things in education now, but I can't say that we're better educated.  Do we really have better critical skills?  Do our students understand core concepts more thoroughly than the previous generation's students did?

Look, don't take my word for it.  Take Steve Jobs' (as quoted by Bill Gates), "We haven't really improved education with technology."  No, no we haven't.

Labels: , , ,


posted by ruffin at 5/25/2013 11:28:00 AM
0 comments
Tuesday, May 21, 2013

Exclusive First Look at Xbox One | Gadget Lab | Wired.com:

Alternately, you can use Xbox’s electronic programming guide, which presents a lineup based on your favorite channels or tells you what your friends are watching and can be controlled via voice, gesture, and game controller.

There's a whole lot of functionality up for grabs around television broadcast, cable, dish, or OTA.  I'm surprised it's taking this long to do it right.  But, at the same time, if Apple wants to seal up the space like they did with iPods, they're right about at the end of their early-provider window.

Labels: , ,


posted by ruffin at 5/21/2013 08:04:00 PM
0 comments
Wednesday, May 15, 2013

Last week, I wondered how law enforcement could ask Apple to help them decrypt iOS devices in a quick post called, "Apple doesn't magically decrypt".  Gruber's also confused, which is nice to hear.

Daring Fireball Linked List: Declan McCullagh: 'Apple Deluged by Police Demands to Decrypt iPhones':

I saw this report the other day and it confused me. My understanding is that the entire contents of an iPhone with a passcode (or pass phrase) are encrypted. If Apple can somehow decrypt the contents, then there’s a backdoor, and the possibility exists that someone else will discover the backdoor. (Let alone the problem of Apple being able to do it.)

Charlie Miller, who knows way more about this stuff than I do (and probably as much as anyone outside Apple), is also confused.

 Grubes links to one of Miller's tweets:


I'm still wondering about this: seems to say that apple can forensically examine iPhone 5 which shouldn't be possible

And then...

Thanks followers. Apple probably uses a signed ramdisk and then brute forces from there.

Now we're well beyond my understanding of encryption, which is admittedly pretty weak.  I mean, I know what a ramdisk is, and in theory it makes sense -- it's not like the phone's being hacked by something external, and I guess iOS sees that as less invasive and doesn't break out in a rash.  It's been the concept I've wanted to study in depth next for much too long.  I'd like to argue that Cryptinomicon is the novel of our first world's current generation (insofar as our generation is influenced by the digital), and part of that means, I think, that I should finally understand how encryption keys work.

Still, the implication that the encryption is breakable so easily scares me.  Whatever those keys are need to be longer.  This reminds me of the old saying, "A lock keeps an honest man honest."  If you can make a ramdisk and hack into someone's iOS device relatively quickly, it, like a car or most home locks, isn't really protecting you from someone determined to break in at all.

Labels: , , ,


posted by ruffin at 5/15/2013 07:15:00 AM
0 comments
Tuesday, May 14, 2013

customization - How to exclude private members from StyleCop rule SA1600 - Stack Overflow:

Right click on your project node in Visual Studio, select StyleCop Settings. On the Rules tab, select the Documentation Rules node. In the right-hand pane, select the Ignore privates checkbox, and\or unselect the Include fields box. Either of these will achieve the desired effect.

Thab bu berry buch.

Labels: ,


posted by ruffin at 5/14/2013 09:18:00 AM
0 comments
Monday, May 13, 2013

Hide the Status Bar - The Ultimate Visual Studio Tips and Tricks Blog - Site Home - MSDN Blogs:

This one falls into the “Huh?” category. If you go to Tools >>> Options >>> Environment >>> General and uncheck the “Show status bar” option. It will remove the status bar from view.

Awesomepants, especially on under-pixeled laptop displays.

Labels: ,


posted by ruffin at 5/13/2013 02:59:00 PM
0 comments
Saturday, May 11, 2013

Apple Has Backlog of Requests From Police to Unlock Seized iPhones - Mac Rumors:

Quoting CNET:
The ATF's Maynard said in an affidavit for the Kentucky case that Apple "has the capabilities to bypass the security software" and "download the contents of the phone to an external memory device." Chang, the Apple legal specialist, told him that "once the Apple analyst bypasses the passcode, the data will be downloaded onto a USB external drive" and delivered to the ATF.
It's not clear whether that means Apple has created a backdoor for police -- which has been the topic of speculation in the past -- [or] whether the company has custom hardware that's faster at decryption, or whether it simply is more skilled at using the same procedures available to the government. Apple declined to discuss its law enforcement policies when contacted this week by CNET. [emph mfn]

Let's be clear -- it's almost certainly not custom hardware that's faster at decryption than the ATF.  Right?

Labels: , ,


posted by ruffin at 5/11/2013 11:04:00 PM
0 comments
Friday, May 10, 2013

JSON Hijacking:

The website responds with some HTML containing some JavaScript along with a script tag. When the browser sees the script tag, it makes another GET request back to the vulnerable site to load the script, sending the auth cookie along.

This makes more sense.  I'd always wondered why people were concerned about Javascript exploits.  If you have FireBug open, what can't you do with Javascript?  It's essentially a completely open source, open data situation.  The best security you can use is obfuscation, and that's not really security at all.

Turns out people are getting all upset about stuff that should really never happen in apps I [help] write.

1.) You have to be dealing with sensitive information
2.) The user has to succumb to some social engineering.
3.) You allow cross-site access to json that requires sensitive information to access.

It's that "to access" part that's really the kicker.  If you're reading a cookie to produce the JSON, the hole is there, not necessarily in the JSON itself.

So if someone has a cookie to their bank stored on their browser, gets tricked into going to a spoof website (or just hits a website that's spoofing), and you allow cross-site scripting, then and only then are you potentially in trouble.

In a sense, duh.  In another sense, "Oh."  You'd have to go out of your way to create a problem, but apparently, at least briefly, even Twitter did.

Labels: , ,


posted by ruffin at 5/10/2013 11:47:00 AM
0 comments

NoScript - JavaScript/Java/Flash blocker for a safer Firefox experience! - faq - InformAction:
Q: Can NoScript force some sites to always use HTTPS?
A: Yes, just open NoScript Options|Advanced|HTTPS|Behavior, entering the sites you want to force in the topmost box, and those you want to always leave alone in the bottom one.

I should probably look more closely into this.  I've commented before that, when I had an authenticator attached, that my World of Warcraft account was better protected than my email.  That's not an issue now, but there are other places that'd benefit from forced ssl.

Labels: ,


posted by ruffin at 5/10/2013 11:42:00 AM
0 comments
Monday, May 06, 2013

Listening to some horrendously "cleaned" music on Spotify, and it's got me wanting to shell out the cash and remove the censoring.

If the music's not clean, I don't have anything bothering me -- and motivating me to buy.

Labels: ,


posted by ruffin at 5/06/2013 02:39:00 PM
0 comments
Thursday, May 02, 2013

Fraser Speirs - Blog - On the Rapid End-Of-Lifing of Android�Devices:

I do, however, hate people yelling "OPEN" and "CLOWWWD" every ten minutes as if they have some kind of Technological Tourette's Syndrome.

Add MONGODB!!11!!! and I'm on board.

posted by ruffin at 5/02/2013 01:12:00 PM
0 comments

For some reason, I'm often forgetting how to set JSLint options in Darren DeRidder's excellent Sublime Text 2 plugin for JSLint.

Here's how:

You can set any of jslint's options under preference -> package settings -> jslint -> advanced built settings. See http://www.jslint.com/lint.html#options for a list of options in JSLint. There's no move_var option (that's just a label for an error condition), but you can use the vars: true option to permit many variable declarations per function.

Now any other random blog would stop there.  Done.  You're on your own.  But not freakinname.  No no, we also clutter up the net with some bonus bytes showing what options I'm currently using.  Why?  To jump start your own JSLinting?  Oh no, no, it's in case I set up a new box again, natch.

 {
    "cmd": [
      "node", 
      "${packages}/JSLint/linter.js",
      // sloppy line breaking?

      // tolerate dangling _ in identifiers
      "--nomen",
      // tolerate ++ and --
      "--plusplus",
      // tolerate missing 'use strict' pragma
      "--sloppy",
      // sloppy whitespace
      "--white",

      // assume a browser,
      "--browser",

      // suggest an indent level of ...
      "--indent", "4",
      // assume node.js to predefine node globals
      "--node",

      // tolerate unfiltered for in
      //"--forin",

      // tolerate stupidity
      "--stupid",

      // tolerate todo
      "--todo",

      // anon whitespace okay 
      //"--anon",

      "--maxerr","6",

      "$file"
    ],
    "file_regex": "^\\/.*\\/([^\\/]*)$",
    "line_regex": ".*\/\/ Line ([0-9]*), Pos ([0-9]*)$",
    "selector": "source.js, source.css, source.json, source.sass, source.less, source.html"
}


You're welcome.  ;^)

Labels: ,


posted by ruffin at 5/02/2013 11:25:00 AM
0 comments

Apple, open and learning from history — Benedict Evans:

In the 1990s, the PC market was mostly a corporate market (roughly 75% of volume). Corporate buyers wanted a commodity. They were buying 500 or 5000 boxes, they wanted them all the same and they wanted to be able to order 500 or 5000 more roughly the same next year. They wanted to compare 4 vendors on price with the same spec sheet. They didn't care what they looked like... and they didn't care how easy it was for non-technical people to set them up because the users would never touch the configuration. Nor did they care much about the user interface, because most of the users were only going to be running 1 or 2 apps anyway.

Meanwhile with no internet, home buyers were mainly interested in a PC that ran the same software they used at work (and all of the games were for PC). They may have known Macs were supposed to be easier, but ... Apple's computers were ultimately beige boxes and not really that much prettier than PCs anyway. And they were significantly more expensive.

Hence, in this market all of Microsoft's advantages were in play, and none of Apple's. Apple, in Steve Blank's phrase, did not have product/market fit. ... Apple's selling points were irrelevant, invisible or both.
Via the Fireball, iirc.

Labels: ,


posted by ruffin at 5/02/2013 09:52:00 AM
0 comments
Wednesday, May 01, 2013

SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified - SQL Protocols - Site Home - MSDN Blogs:

[Update May 2009] My collegue found a good tool online which could be very helpful for users to isolate issues related to this error message. You can download PortQry from http://support.microsoft.com/kb/832919, run "portqry.exe -n yourservername -p UDP -e 1434". If this command returns information and it contains your target instance, then you can rule out possiblity 4) and 5) above, meaning you do have a SQL Browser running and your firewall does not block SQL Browser UDP packet. In this case, you can check other issue, e.g. wrong connection string. [bold mine -mfn]

Between that and sqlcmd -L from our buddy, The SQL AUTHORITY!!!1! , my latest SQL Server fun hasn't been quite as excruciating as it could've been.

Labels: ,


posted by ruffin at 5/01/2013 10:26:00 AM
0 comments

Support freedom
All posts can be accessed here:


Just the last year o' posts:

URLs I want to remember:
* Atari 2600 programming on your Mac
* joel on software (tip pt)
* Professional links: resume, github, paltry StackOverflow * Regular Expression Introduction (copy)
* The hex editor whose name I forget
* JSONLint to pretty-ify JSON
* Using CommonDialog in VB 6 * Free zip utils
* git repo mapped drive setup * Regex Tester
* Read the bits about the zone * Find column in sql server db by name
* Giant ASCII Textifier in Stick Figures (in Ivrit) * Quick intro to Javascript
* Don't [over-]sweat "micro-optimization" * Parsing str's in VB6
* .ToString("yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture); (src) * Break on a Lenovo T430: Fn+Alt+B
email if ya gotta, RSS if ya wanna RSS, (?_?), ¢, & ? if you're keypadless


Powered by Blogger etree.org Curmudgeon Gamer badge
The postings on this site are [usually] my own and do not necessarily reflect the views of any employer, past or present, or other entity.