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

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

Back-up your data and, when you bike, always wear white.

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, July 14, 2017

From AppleInsider, reporting on a Wall Street Journal article:

Citing Hollywood studio sources, The Wall Street Journal on Sunday said Apple's share for selling and renting movies, as well as other video content, has dropped to between 20 percent and 35 percent, down from over 50 percent as recently as 2012.

The steep decline comes as competitors Amazon and Comcast enjoy market share gains on the back of aggressive industry moves.


Interestingly, the loss of market share is not uniform across genres, the report said. For example, iTunes is a top distributor of independent movies, as Apple promotes and signs exclusive deals for films made outside of the traditional movie studio system, sources said.

Anyone who is surprised by this, raise their hand.

The more interesting question is why Apple cares. I understand they've successfully made the transistion from selling DRM'd media files to selling streaming subscriptions with music. But what's different between music and video?

Apple doesn't make music. They sell subscriptions to listen to everyone's music, not music they produce. I realize they tried to become a cable provider and didn't quite make it, but this Netflix approach they're trying with Planet of the Apps? I'm not a huge fan. Signing independent movies might be a smart move, but why even bother with video subscriptions? What does Apple really want to look like in 15 years?

Apple doesn't tend to have its finger on the pulse of what's popular. I think back to the proverbially skeuomorphic iOSes before 7. And Ping. There's nothing about Apple that says they're great at following the wave. They were fortunate enough to get in front of the wave thrice, but they've never caught one.

I wish they'd stop trying.

Labels: , ,

posted by ruffin at 7/14/2017 11:18:00 PM
Friday, May 05, 2017

JavaScript transpilation is a neat trick, but in practice you may seem to simply trade one multifaceted, shifting platform -- what works crossbrowser -- for another -- here, a set of constantly changing hipster libraries.

There are simple solutions to the shifting , each with one major flaw:

  • Target a "lowest common denominator" or "limiting reagent" browser (ie, IE[x]) with "native" JavaScript.
    • This stinks because even IE11's tools are much worse than Chrome's DevTools.
    • Yet if you don't live in your "worst" browser, you're going to miss issues. No, you are. Every time.
  • Pick one set of transpiled technologies & practices, and, within reason, stop.
    • You're still going to have to test in browsers
    • You'll still be responsible for debugging third-party code.
    • You'll disappoint your hipster programmers.

Interpreted incorrectly, transpilation gives the impression that you're developing for an environment like a server: a controlled, homogenous system. You're not. It's not node. And I've yet to see a practical advantage beyond very specific, situated uses -- JSX compilation for React, for example -- provided transpilation. It's all still very familiar zeroes and ones.

Labels: , , ,

posted by ruffin at 5/05/2017 09:48:00 AM
Saturday, March 25, 2017

From The Guilty Secret of Distracted Parenting:

And [my children] might point out that when we did sit down, I surreptitiously read the newspaper at the breakfast table. And I pulled a book out of my bag at the playground if I thought I could get away with it. Speaking of old technologies, at our day care center there was one father — a big-shot professor — who was so brave that he did the worktime while wearing his Walkman (remember those?).

And for that matter, may I call as my witness Abraham Lincoln, who is reported to have walked up and down the street in Springfield, Ill., in the mid-1800s, pulling his young sons in a wagon while reading a book (and as the story goes, he went right on reading when a child fell out of the wagon).

I tweeted about a parent I overhead a few weeks back with the gall to tell their give-or-take six year-old, "When I'm on my phone, you DO NOT do that!" We are more distracted as a society, but I enjoy the way this NY Times piece reminds us it's not like this is a new thing. I used to always carry around a paperback until, well, until I could carry the books around even more conveniently on my phone.

What's more important to realize, perhaps, is just how many "distractions" of the 80s (and before) aren't considered distractions today. Talking to someone else, regarding the birds flying, checking out cars on the street... the things we used to do to give our brains a break before would often be considered contemplative and "authentic" engagments today.

Why is that? I think there's some small part of the distinction that's linked to feeling "productive". Phone distractions are measurable. Your digital distractions have metrics. Children, birds, conversations are all unique experiences. You can't, much as Instagram & Facebook tries, share breakfast with others with your network online, not really, not, to borrow a term, losslessly. Distractions that aren't swipeable are in a newly reconfigured set of experiences of unmeasurables.

We no longer value the unmeasurable enough. Before, the unmeasurables were valid pursuits on their own merits. We only had to justify their value to ourselves. Now, unable to "share" them fully as digital copies (and have their worth rubber-stamped by our virtual selves), we undervalue them -- while at the same time lamenting their loss as we search for a new term that could reinvigorate their value in a society no longer predisposed to appreciate them.

I should go to sleep. ;^)

Labels: ,

posted by ruffin at 3/25/2017 01:52:00 AM
Friday, March 24, 2017

You might already know that Joel Spolsky's comment, "Old code doesn't rust", is one of my favorites.

But did you realize what a great time capsule that post is with Joel on Software's template redesign?

Joel Spolsky -- then and now

Wow. What a difference sixteen years makes. Why couldn't young Joel find good food? The horrors of bootstrapping, I guess.

I cringe to think of doing a similar comparison for myself. ;^)


posted by ruffin at 3/24/2017 09:19:00 AM
Tuesday, March 21, 2017

If you're not using Chrome Dev Tools JavaScript Blackboxing, you're doing yourself a serious disservice.

I've been working with some stuff that's heavily React and mobx-i-fied, and constantly get dumped into those third party libraries. With Blackboxing, I can put those and any other third-party libraries into the black box, and will automatically jump over all of that code.

It's beautiful to skip over all third-party libraries. I kid you not. Beautiful.

What I hate is that this stuff seems to have been around in at least pre-release form since 2014!


Labels: , , ,

posted by ruffin at 3/21/2017 01:04:00 PM
Wednesday, March 15, 2017

Remember how I took the time to show how to map Gvim to F1 in Visual Studio? I think there's probably a much better way: VsVim.

I installed it, forgot, had Win10 "helpfully" reboot, and suddenly saw a phat cursor in Visual Studio. Took me a second, but then it hit me -- I'm VImming in VS.

Only gotcha -- I needed to create a new environment variable, VIM, to put the path to my normal _vimrc file so that VsVim could find it.

But after that, so far, beautiful. Embarrassed I didn't hear about this one sooner. Would've saved me some time. That's one of the big reasons I use Sublime Text. I mean, it's a great text editor in lots of other ways, particularly fast searches, multiple cursors, and nice plugins, but it's vintage mode that hooked me quickly.

In any event, a nice upgrade for VS so far. And 281 reviews averaging essentially five stars ain't bad. My only complaint so far? No gqgq. For that, I'm back to F1.

In other news, got word of my second MarkUpDown Microsoft Store payout today. That's always fun to get, even if it won't cover my already exceptionally trivial marketing budget. But it is growing. That's cool.

Labels: , , ,

posted by ruffin at 3/15/2017 09:44:00 PM
Monday, March 13, 2017

Jay Bazuzi was talking about how to make the work of distributed teams run more smoothly, and there was a term he used that I thought deserved a little googling...

There are a bunch of known good practices to help distributed teams not suck too much. Doing them won't get us to "awesome", but at least we can get up to "not sucky". So let's start by writing down these practices:

  • Recognize the expression of Conway's Law: limited communications affect software architecture

As it turns out, Conway's Law is pretty interesting. Here's some more, from Demystifying Conway's Law on ThoughtWorks:

In "Exploring the Duality between Product and Organizational Architectures", a study by The Harvard Business School carried out an analysis of different codebases to see if they could prove Conway’s original hypothesis as applied to software systems. In it, they took multiple examples of software created to solve the same purpose (for example word processing, financial management and database software), and compared the code bases created by loosely-coupled open source teams, and those created by tightly-coupled teams. Their study found that the often co-located, focused product teams created software that tended more towards tightly-coupled, monolithic codebases. Whereas the open source projects resulted in more modular, decomposed code bases. [emph mine -mfn]

The real take-home comes just a little later, though, I think:

You may see tensions in your own organizations where your structure and software are not in alignment. You may have seen for example the challenges involved where distributed teams try and work on the same monolithic codebase. [emph me again -mfn]

That the work of distributed teams -- or, if you ask me, any team -- can be coordinated more easily when you take the time to clearly define the interface surrounding their work seems like a truism.

Though I'd never given the converse enough thought. If you have a widely distributed [read: "entirely remote"] team that doesn't tend to communicate, having a monolithic codebase, especially one without documentation, can absolutely hamstring development. Or, at best, it means that your team will tend to ignore what exists and replace with whatever seems best.

If you start eating away at the monolith in good, interfaced, discrete chunks, however, that's probably about as good as means of erasing it as you can get.

Regardless, I think the lesson here is that the downfalls of poorly documented, monolithicly designed codebases are compounded in easy to identify and productivity unfriendly ways in distributed/remote work environments.

Say that three times quickly. Even better: Remote environments require well factored code.

Labels: , , , ,

posted by ruffin at 3/13/2017 08:30:00 AM

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 Curmudgeon Gamer badge
The postings on this site are my own and do not necessarily reflect the views of any employer, past or present, or other entity.