MacBook, defective by design banner

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

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

FOR ENTERTAINMENT PURPOSES ONLY!!! Back-up your data and always wear white.
URLs I want to remember:
* Atari 2600 programming on your Mac
* joel on software (tip pt)
* resume, mostly for Google, and ruffin's github account * Regular Expression Introduction (copy)
* The hex editor whose name I forget
* JSONLint to pretty-ify JSON
* Using CommonDialog in VB 6 * Free zip utils
* that hardware vendor review site I forget about is here * Javascript 1.5 ref
* 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)
email if ya gotta, RSS if ya wanna RSS
Thursday, July 24, 2014

Mac envy: How to use an Apple keyboard with Windows:

After you’ve installed AutoHotKey, download this script and run it (either by double-clicking or right-click -> “Run Script”). This will load a set of pre-defined rules that will make your Apple keyboard operate like a Windows one — but way sexier.

Here’s the rules I’m using:

; Swap Windows (Command) and Alt keys
; These button locations are reversed on Mac keyboards
; Map F13 to Print screen
; Mac keyboards don't have a print-screen button!

I'd been using SharpKeys to map Insert and ScrollLock to pause/play and mute, respectively, but I'm back to trying an Apple keyboard on my work laptop -- the Microsoft Sculpt keyboard, which actually is very well made, just poorly designed for me, caused my index fingers to reach too much and hurt --  and the rigamarole of opening SharpKeys, writing to the registry, and logging out & back in to use the laptop's "integrated" keyboard was too much of a pain.  AutoHotKey seems to fix that.

Edit: And now I'm reminded why. AutoHotKeys doesn't work when certain applications are active, like, um, Visual Studio, where I live about half my coding day. Volumouse doesn't work in the same apps, so I'm guessing whatever trick it is that allows these things to listen in and co-opt actions is shut off in a few places. SharpKeys still works there.

Why does Apple have to make such a nice keyboard, but make it Windows unfriendly? I know, I know, they're not in the Windows hardware business [outside running Windows with Boot Camp].

Labels: , , ,

posted by ruffin at 7/24/2014 10:02:00 AM
Wednesday, July 23, 2014

From Dave Watson, the COO of Comcast Cable via the Consumerist:

The agent on this call did a lot of what we trained him and paid him — and thousands of other Retention agents — to do.

Boy, he really did do a LOT of what he was trained to do.

And I think that's what Ryan Block said with his initial post of the audio to the net.  The guy's just doing what he was trained to do, and that's the problem.

What an awful memo.  Not a single specific, actionable critique of what the guy did wrong so that others would know what not to do when a customer calls.  They are "embarrassed by the tone of the call and the lack of sensitivity," and believe that, "the act of saving a customer must always be handled with the utmost respect," as if they were Paul in Rome.  "Tone" and "sensitivity"?  "Saving"?  Can we say that the first, shoot, I'd even settle for guidance that says that the third time a customer says that they don't want to hear about what they're "losing" by cancelling that we should let them go?  Or some way of limiting the discussion?  "Let me quickly tell you three quick ways that Comcast will provide better service.  1.  2.  3.  No?  You say you still want to cancel?  Done."

That is, the problem wasn't with the retention dude, who was just trying to hit his numbers.  The problem is with the training and scripts and culture of the retention guy's company.  Watson says nothing about that.  Perhaps we're supposed to conclude that the memo was the correction, with is sad.

Sheesh.  I hate that, as we move more and more to a services economy, that this -- putting up barriers between customers and their ability to direct their money -- has become one of the quickest means to realizing the American Dream.  I'm reminded of a certain major league team owner who appears to have benefited from "slamming" people over to his company's long-distance provider, but I won't go into any detail since he and I are peers in the NFL.  ;^)

I think it was James Allworth on the Exponent podcast that recently quoted the adage that the stock market is a voting machine in the short run and a weighing machine over the long haul.  We're waaaay too interested in voting "early and often" with our dollars than investing them right now, and it distorts the value of, well, values.

Labels: , ,

posted by ruffin at 7/23/2014 01:21:00 PM
Sunday, July 20, 2014
How mobile is your .NET?
Use this page to scan your compiled .NET code for compatibility with Xamarin.iOS, Xamarin.Android, Windows Phone and Windows Store — directly in the browser.

Labels: ,

posted by ruffin at 7/20/2014 10:08:00 AM
Monday, July 14, 2014

As I look through my "recommended" books from Nook and Kobo, and look at suggested books on the iTunes Store, I can't help but wonder if I'm experiencing some setback by virtue of having read too much, too soon. If any of these stores knew how quickly I read through Asimov and Herbert, maybe they could use some fancy algorithm to find someone close to as good.

 It shouldn't be difficult to ask me what I enjoy, but nobody really has, yet. So I'm stuck, sort of like I am on Netflix, with a sorry algorithm trying to pinpoint what I really like based on a woefully inadequate sample.

 That said, I'm really enjoying Rowling's Silkworm so far. I'll never read all the books I want to, but, as I perhaps should not have told my favorite undergraduate literature professor, it's sometimes fun to sneak a quick, fun read in between Melvilles.

Labels: , ,

posted by ruffin at 7/14/2014 08:38:00 PM
Friday, July 11, 2014

I give up.  I was going to blog about brittle code in jslint.js, but instead I think I'm inching closer to leaving Blogger after almost 13 years.  In the last few years, the changes Google's made to the composition tools have made it excruciating difficult to write and edit (compose, right) blog posts.

How can Pyra have gotten this so much "righter" a decade ago?

Here's what I sent them that their robots will enjoy reading.  I don't normally like to complain in feedback, but this is a reasonably important service for me, and they're botching the crap out of it. The usability trendline should not be a consistent cliff.

Heavens only knows what's going to happen to the ampersands in this paste.  Hopefully just using the compose window works.
Good grief folks, can we roll back to the old pyra editor?  I've put the following text into the HTML pane: === '.' &&
filter.first.first.first.first &&
filter.first.first.first.first.string === 'Object' &&

and when I look back in the Compose pane, the &'s from the html are turned into &.  Should the code be &?  Yes.  Should the HTML display in the Compose window be & (with code of &)?  Good heavens no.

Look, I appreciate the work, but between the BlogThis formatting trouble and the "quirks" in the edit page, it's getting close to time to leave blogger (I've been blogging here since 2001).  I spend more time formatting than writing.

Labels: , ,

posted by ruffin at 7/11/2014 10:16:00 AM
Wednesday, July 09, 2014

The Pitfalls of Outsourcing Programmers – Forio:

But writing innovative software cannot be done on an assembly line. It requires hard-to-find development and design skills. Farming out development to legions of programmers overseas will not create a differentiation advantage. When a technology company outsources software development, that company loses its capacity to innovate and its competitive advantage.

Let's say it even more succinctly: When you hire a firm, you don't hire individuals.

With the amount of time the companies I've worked for spend hiring each individual, even on those occasions when it seems woefully inadequate, it's easy to see why outsourcing to any firm inherently multiplies the chances for cultural fit failure. The more tailor-made your product, the more expert tailors you need sewing it.

I'm not saying you can't find those experts and cultural fits in another country. You can. But then you need to hire on the ground there, and hire individuals. Once hired, you need to be able to ensure your communication with those outsourced folk is rich enough that your culture conveys. That's a heck of a lot of work compared to hiring for fit home. There's a huge hidden cost in outsourcing to a firm.

(This is also why you may see senior programmers get to keep their jobs remotely. You already know you have cultural fit and expertise. They can now work almost anywhere they want and be worth well more than the average contracting firm's placeholder.)

I'm not sure how well the metaphors work in the balance of the post linked, above (the "assembly and manufacturing" of software is usually taken care of by the filesystem. That is, it's not 90% design with software; there's essentially nothing but design), but the main point holds very well. If you want to have the school swimming in the same cultural direction, you've got to select [ever get midway through a metaphor and see it painfully crumble?] the fish.

Edit: It's only fair to add a corollary -- If you find an outsourcing team that does share you values and produces demonstrably high quality code (look, even a murmur of quality issues bears a few looks; rarely will your teams have enough time to do a full code review of one another "for fun"), for heaven's sake, don't let them churn employees, much less get away.

Labels: , , , ,

posted by ruffin at 7/09/2014 09:11:00 AM
Monday, June 30, 2014

How many sites do we really go to on a routine basis?  And when we go there, there's usually a pretty specific way we want to interface with them.

Cloud utility mobile apps are what bookmarks on feature steroids.

Labels: ,

posted by ruffin at 6/30/2014 10:28:00 AM

Support freedom
All posts can be accessed here:

Just the last year o' posts:

Powered by Blogger