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)
* 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
* that hardware vendor review site I forget about is here * 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
Tuesday, June 21, 2016

I stopped by the local Apple Store today to play around with the MacBook again, just to see if it seemed faster after the upgrade this year and if I could stand its crazy keyboard switches. I still think the keyboard would be fine, after some breaking in [of me], and it's fast enough, I guess. I just fooled around with ESPN, scrolling like mad and running videos. I understand Xamarin Studio wouldn't scream, but it seems okay, especially if I'm just using it for mobile dev, not office dev.

(Aside: Does the MacBook not have force click? I went over to a 13" MacBook Pro, and it worked easily, but the MacBook 12" didn't pop-up the previews for Safari links like the MacBook Pro. Maybe someone had turned it off?)

Anyhow, on the way out, I picked up a Plus to see if I really wanted a phone that size. Secretly, I think I do. The real estate would be wonderful, even if the size in my pocket and hand might not be, and I was pleasantly surprised to see that I could rotate the home screen to widescreen, something the SE doesn't do.

But after some playing, it seemed slooooow to me. Too slow, I thought, to blame on the larger screen and extra pixels it's pushing around. It's not super-easy to figure out which phone you're using, so I looked up the model number. Was a 6 Plus, not a 6S Plus.

I didn't realize I'd become so spoiled. I know I've said the SE feels "like all I got was a new 5S". That's not wrong, Walter, but wow, after a little playing around, I can now say with a little more certainty, it's a great new 5S.

The downside, of course, is that I bet I'll have pretty fierce iPhone 7 Plus envy once it comes out. Even if the rumors are true that it's the same design as the 6 & 6S, give or take, a large phone that's "even faster" than my SE might pull on my wallet more than I'd like. I told myself I'd use this SE for two or three years, after all...

Labels: , ,

posted by ruffin at 6/21/2016 05:12:00 PM
Monday, June 20, 2016

From MacRumors:

Lightning-equipped EarPods and wireless EarPods are two rumors that have been bandied about, but a new report from Japanese site Mac Otakara suggests Apple may ship the iPhone 7 with standard 3.5mm headphones and a 3.5mm jack to Lightning adapter to allow them to connect to the new devices.

If that's the case, I think we've really walked back the boldness of removing the 3.5mm jack.

If third parties "should" (in AppleThink) make Lightning headphones, so should Apple, right? And if Apple thinks an adapter is a quality solution, even the implicit preferred solution, well, they've got a design problem. Adapters are not cool.

So we're back to a design issue?

When's the last time you thought Apple had a design problem? Complain all you want about thinness, at least it's an ethos, dude.

That is, when's the last time you heard Apple say, "Don't do as I do. Do as I say do" when it came to hardware?

Labels: , , ,

posted by ruffin at 6/20/2016 05:21:00 PM
Friday, June 17, 2016

I've been listening to podcasts recently via Overcast's web player. It's good, but not great. An excellent MVP, but, unsurprisingly, not as good as the iPhone client.

insert alt text

No "Smart Speed", and as far as I can tell, 99.44% sure there's no Voice Boost either. It also syncs with my phone poorly. Poorly might be a little too strong, but not by much. I need something like Apple's Handoff, where I can listen to a podcast in the browser, grab my phone to jump in the car, and have Bluetooth pick right up where I left off. That's not working.

So the web client, though good, isn't great. But is it worth improving?

I've got lots of reactions there, including the comment Gruber gave me that, "a fair number of listeners listen right from the web page." The web is more popular for podcast listening than I'd expected.

But the main thing I think about is Marco & David Smith's comments about figuring out what the user is using before you bother coding new features.

Here's a quote from _David:

Being able to make my decisions based on numbers... makes me more honest with myself, because it's so easy to trick yourself into thinking something's more important than it actually is. As an example of this... [Pedometer++], my most sort of popular app, has an Apple Watch component, which is great, and as part of the Apple Watch component, it has a complication, that you can install...

In my analytics, it tells me how many people have installed the complication, and I started getting the numbers back, and the reality is that a very small percentage of my users use the complication, which was different in my mind than what I had originally expected. I use it. I love it. It's the part of the Watch app that is most useful to me. But it turns out a lot of my customers don't use it. There are some. But it's very very helpful for me to kind of guide how much time and energy I should put into making that awesome, because I had a number to base on it. You know, if it's a few percent of people are using it, maybe it's not as important as I thought it was, and so [keeping track of usage analytics] helps me to be honest. [emphasis mine - mfn]

Let's do what all the cool sites are doing, and emphasize one of those quotes by repeating it, but making it LARGER!!

[T]he reality is that a very small percentage of my users use the complication, which was different in my mind than what I had originally expected. I use it. I love it. It's the part of the Watch app that is most useful to me. But it turns out a lot of my customers don't use it.

Sans a business case, it's a vanity project

But can we really determine what's useful by what's being used now? In David's case, I bet so. If we use Spolsky's rule of thumb that each barrier to entry loses you half your customers, well...

  • All app users
    • App users than own an Apple Watch. -- 50%
      • All Watch owners that install the app on the watch -- 25%
        • All that installed the app that install the complication -- 12.5%

And, of course, the second bullet is much much less than 50%. No, no a Watch complication is probably not the best place to spend your time, unless Watch users are really your target audience. Then tell me your business plan. It's probably not ads, which make are Pedometer++'s main source of income, as I understand it.

That is, _David doesn't have, as far as I know, a way to monetize Watch users specifically. So why is he spending time there? Because he's building something useful. That's not a business case. Time to move on, unless you're doing a vanity project, which, honestly, it sounds like he was.

(And that's okay -- One, pretty much every project an indie picks has a little vanity in it. Otherwise, why do it and not something just as useful but a little more boring? Second, building something you'll use is an important part of most any service. If you can't dogfood it, nobody else is going to eat it either. You just need to make sure it's not dogfood for one.)

Overcast online: Is there a business case?

Which brings us back to Overcast online. If the web interface isn't getting much use, why not? Is it because people don't use web interfaces to listen to podcasts? Gruber and Snell say that's not the case. Would people listen in another web page, one away from those two guys' sites? Urmmmm... probably not many, but more than I would've thought at first. That is, what we've learned is that podcasting away from your phone isn't uncommon.

Could you do Smart Speed on the web? Probably not, practically speaking. Probably not without playing a file you're modifying on the fly on your own server, or, worse, forcing some wacky browser install. The first is an unwarranted expense, and the second is a horrible interface. Nobody's installing that.

That is, I'm pretty sure is just a player, streaming the audio file from wherever the file lives. The web page is just a middleperson. It's a very thin client.

But you know what it doesn't have that it could more easily than Smart Speed and Voice Boost?

  • Playlists (I just get a big dump of podcast subs in an alphabetical list on
  • Persistent settings (like what multiplier I use on each podcast -- the iOS app keeps track podcast by podcast)
  • Recommendations
  • Great syncing

If you gave me a full[er] client, would I listen on the web more? Yes. Yes, I would. And do you what else? It's going to be more visual on the web than on my phone. I'm not using my Bluetooth radio's buttons or my headphone clicker to pause. I'm looking at the screen I pictured, above, as I mouse over to it to click.

And do you know what you could put there? That's right. A donate button.

That sounds like a business case. It might be worth a couple of weeks of development.

Labels: , , , ,

posted by ruffin at 6/17/2016 01:36:00 PM

I'd have a difficult time cheering for myself this passionately if I'd made the shot.

Don't live vicariously to this degree. You paid for a ticket. Full stop. Enjoy the moment, but don't lose your sense of self to the point you think you're actually part of it. Cheer and appreciate. Don't cross the line and engage. The man's on the floor, reaching towards this year's regular season MVP. If I were a ref, I'd consider tossing him.

Wish someone from the audience had gotten on stage and this close to Cue at his last WWDC presentation. How this isn't a meme yet, I have no idea.

I guess at least he's not taking a picture. The only thing worse than being overly engaged in the moment is pretending it's more important to record it than to experience it.


posted by ruffin at 6/17/2016 12:35:00 AM
Friday, June 10, 2016

From The Verge on the recent changes to the iOS App Store:

Instead, [Schiller] says, the changes [to the iOS App Store] are a sign of the times and the success of the store, which he calls "the best place ever created for distributing software." [emph, as almost always, mine -mfn]

Just a passing note to say that Schiller and Trump seem to share the rhetorical bluster of P.T. Barnum.

(Note also that today's Wikipedia says, "Barnum served two terms in the Connecticut legislature in 1865 as a Republican for Fairfield." Oh boy.)

Labels: , ,

posted by ruffin at 6/10/2016 10:14:00 AM
Thursday, June 02, 2016

The Brother TN450 toner container seems to have gone away from the, "Cover the lens the laser shoots through and get free toner," setup, and instead gone with a gear-based signal to the printer that you're out. Still bugs me that I'm printing a page without any issue one second and then WHAM, the printer decides I don't have enough to print one more page immediately afterwards. Why not let it start printing poorly before I decide it's time to pull the plug?

So we dig up the new trick. Note: Now involves a Phillips head screwdriver.


Labels: , , ,

posted by ruffin at 6/02/2016 11:11:00 AM
Wednesday, June 01, 2016

I've been meaning to create a video comparing the pros and cons of using a Lenovo Y700-14 as a business laptop, having had mine for about a month, but I keep not getting a Round Tuit.

Here's a review, in brief:

This Lenovo Y700-14 is a great budget business laptop, though flawed in several predictable ways. First, a warning: It grossly underperforms without an SSD, but that's any laptop at this point. You have to add an SSD to call this a usable laptop. Otherwise, you might as well throw its i7-6700HQ in the trash.


  • Insanely cheap.
    • $700 for the laptop
    • $150 to DIY-add both 16 gigs of RAM (24 total!) and a 128 gig SSD
  • Exceptionally powerful.
  • Has an m.2 slot to add your SSD.
    • Keep your 1 TB spinning platter for backup
    • Forces you to reinstall Win10, removing all that Lenovo cruft.
  • Good screen resolution -- 1920x1080
  • Excellent cooling.
    • Designed to cool the quad-core, versus T460p's kludge
  • Red keyboard backlight is less distracting than white light (imo).
  • Nice 14" size. Larger than my T430 with extended battery, but not exceptionally so.
  • The speakers are great.
    • Bigger deal than I'd think.
    • Used to bring external speakers for T430. No longer an issue.


I'm mostly comparing this to three years' use of my T430, but I bet most of this applies to the T460p I was considering as well.

  • Battery is a joke. 2-3 hours max with VMware running.
  • Keyboard is not particularly good.
  • Trackpad is another joke. Mushy, hard to click, non-dedicated buttons.
  • Not dockable.
    • Really could've used a USB-C port here.
  • No TrackPoint.
  • Only three USB ports.
  • No always-on USB port for charging
  • No fingerprint sensor (these are useful if signing in in public)
  • Build quality is okay, but it's quickly obvious this isn't as rigid as a ThinkPad.
    • The grill in the back where hot air comes out is exceptionally plastic-y, for instance.
  • Screen is not particularly bright.
  • Only one video out port (I have a USB-to-HDMI, but that's a pain. See "not dockable", above)
  • Does get hot on your lap.
  • Not made with upgrading in mind -- back is not as easy to open as it could be.

There you go. Exceptionally fast for a hundreds less than other laptops, but serious convenience drawbacks. No good battery, keyboard, or trackpad. Good, but not great, screen. No dockability, which one USB-C port would've fixed in a flash.

One quick add: There's no screw to hold in your SSD in the m.2 slot, which seemed cheap to me. But then I thought, "Well, if the screws that hold the case on have the same threads and will work here, I'll let it go." It worked. I'm down one screw on the case/bottom, and the screw head doesn't seem quite wide enough to hold the SSD in there (YMMV, I don't encourage doing this, and do so at your own risk!), but it's worked for weeks so far.


Okay, so if that's how the gaming laptop stacks up as a business laptop, how does it do gaming? I've run 3DMark, and need to add it here, but it wasn't great. Seems it was in the bottom 25% for gaming laptops or something similar.

The quick answer is that the Y700 is not a gaming laptop. If you're worried about comparing benchmarks with your buds to see who wins, this ain't the one. If you want to play the latest games in decent detail and framerate, this isn't your box. As most reviews of the Y700-14" point out, the AMD Radeon R9 M375 Lenovo uses here is grossly underpowered, and really hamstrings an otherwise excellent portable gamer.

The Y700 is, however, a pretty good laptop for playing games. If you don't mind turning down resolutions, it's no slouch. That is, having a decent dedicated card means that games are playable. I have the quad-core tower in my office whose multi-core cpubenchmark score is 40%+ faster than the Y700 processor, and it only has integrated video. The Y700 runs rings around it, unsurprisingly. I've been playing a decent amount of Elite: Dangerous on mine, and it handles it all very well. I won't swear the Y700's AMD Radeon R9 M375 2GB is better than the T460p's NVIDIA GeForce 940MX 2GB, but I remember being underwhelmed with the T430's discrete card (which I added to have easy dual video out).

Bottom line:

You get much more than you pay for with the Y700, but be warned before you sell out to make it your prime programming laptop.

Labels: , ,

posted by ruffin at 6/01/2016 09:50:00 AM
Monday, May 30, 2016

Sometimes I see complaints about sites like Fiverr, where graphic design folk complain about how the sites depreciate their own work. I'm usually not that sympathetic. What I'm looking for when I use Fiverr is something that really shouldn't take more than a few hours to do, at worst -- usually an app icon. And I want someone who can do that in an hour, rather than the hours on hours it'd take me to Gimp my way to inferior, but probably useable, results.

That's not the market of most graphic designers I see complaining. I was never in their potential market. If I ever have an app "take off", I might be. I might want a custom icon set, and better app icons that require some in-depth conversation and being on the same aesthetic page. Right now, not so much.

See, many of these folks won't even consider my "value proposal": I need a single app icon. Can you make that for me? Even at their normal rates, the overhead of getting a new customer spun up in a serious way often makes that a money-losing proposition. And who wants the wasted overhead getting on the same page with a customer just to make a single icon? Not only are they out of my budget when I'm tossing darts at the board and seeing what sticks, I'm not a big enough fish for them to care about.

But I got a sort of "turnabout is fair play" on StackOverflow Careers this morning. Check this out:

job listing from stack overflow with $15 AUD per hour for a 'senior' level .NET MVC programmer

Wow. Just wow. I mean, that's less than $11 US per hour.

It's obvious this is for a programming sweat shop. One coder doesn't work 24 hours a day, seven days a week. They want a team. And cheap. Which means it's also pretty obvious to me, at least in my experience, that they aren't looking for great code, and will settle for code that seems to function, forget maintainability. Because even if you're willing to hire anyone semi-competent, as long as they're at this rate, you're not hiring someone competitive. I mean, good programmers can still find global, remote jobs that pay much better than this.

But let's also take a second to recognize that this is, in part -- at least as long as I'm working contracts remotely -- my competition. Wow. I'm not saying I couldn't make ends meet at $11 a hour, but that's sure nothing close to what I'm able to charge now. This is globalism. Like graphic designers looking at Fiverr, even though Powerfont Pty. Ltd. was never a potential customer (or employer) of mine, wow. That anyone had the gall to post such a low rate for a "senior" .NET MVC programmer is a body blow.

My biggest practical asset, it turns out, at least implicitly, may be my geography.

Labels: , ,

posted by ruffin at 5/30/2016 10:01:00 AM

Support freedom
All posts can be accessed here:

Just the last year o' posts:

Powered by Blogger Curmudgeon Gamer badge