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!

Saturday, November 24, 2018

From an introduction to Swift I find myself reading today:

But what if we forget the verification like below?

var stockCode:String? = findStockCode("Facebook")
let text = "Stock Code - "
let message = text + stockCode!  // runtime error

There will be no compile-time error. The compiler assumes that the optional contains a value as forced unwrapping is used. When you run the app, a runtime error is thrown with the following message:

fatal error: Can’t unwrap Optional.None

Huh?!! Then what’s the point?

We’re far enough along in 2018 that a language could have come with forced linting. The compile-time error should be, “Use of a force unwrap on an optional without a nil check is not allowed.”

I’ll admit I’m glad Swift exists. I thought it’d be fun to research SpriteKit and hack up a quick 2D game to relax, and Objective-C looks a little bit more of a head rethread than my usual [stolen] line that “all programming languages are just dialects of the same language”.

But it’s a pain that Swift’s let means the opposite of what it does, so to speak, in JavaScript, and this “Hey, we force one level of null checks in the language, but then reintroduce the ability to have run-time null errors just like you had before,” doesn’t seem really well thought out.

Linters ftw, imo.

Labels: , ,

posted by ruffin at 11/24/2018 04:16:00 PM
Tuesday, November 13, 2018

Have you ever noticed how the saltines you buy when you’re sick or have an upset stomach tend to go bad exactly one month before you get sick again? Now you’re stuck with stale crackers – which doesn’t make you feel less sick – or faced with the prospect of hoofing it to the grocery store in an, ahem, unreliable and potentially infectious state.

Curse you, Nabisco. Curse you and your clever bean counters.


posted by ruffin at 11/13/2018 11:10:00 AM
Friday, November 02, 2018

There’s one thing I don’t get about the complaints that the new Mac mini isn’t expandable: Have you already forgotten Apple’s strategy with the Pro [before we knew it was a thermal disaster]? Thanks to Thunderbolt 3, the expansion is on the outside, okay?

Get a new mini. Upgrade the processor to the “3.2GHz 6‑core 8th‑generation Intel Core i7”. Click “Add to Bag”. Pay $1100 and enjoy.

You have plenty of SSD to run the OS. Buy a fast Thunderbolt 3 external SSD if you need more space. Heck, buy a fast TB3 drive if your internal SSD ever dies and put the OS there.

I’d be surprised if the external hard drive ever noticeably slows you down. You can put your video card outside of the mini, for heaven’s sake, and I don’t hear anybody complaining about that – other than the price for the enclosure. But they don’t complain [much] about the speed.

Seriously. This is the mini you said you wanted. Enjoy it. ;^)

Labels: ,

posted by ruffin at 11/02/2018 10:03:00 AM
Friday, October 26, 2018

Finally updated to Mojave on my MacBook Air (2017). It’s nice that the login screen no longer has fuzzy text. I’ll admit I never really understood why Apple let the first thing you saw on the box be as craptastic as that text was. I understand that Apple can do a great job polishing things, but I don’t know that I believe they always do.

Other than that, so far I haven’t seen much exciting from Mojave.

I will say I’m pretty happy having purchased this MacBook Air now. I was worried they’d upgrade the MacBook line immediately after I purchased – and they did – but they didn’t touch the consumer laptops, and won’t until next week. $750 for a decent MacBook in June (during a great sale at Best Buy) doesn’t look as bad as it did originally.

Another unexciting thing: I did preorder the XR. Idk, that’s extravagant, and I don’t understand all the reviews calling the XR “affordable”. It’s not. It’s an insanely indulgent item. Unlike my Nokia 6 that I’ve been using for the last two weeks (long story), the iPhone SE and 6S I used previously both remain nice, fast phones. I don’t need an XR. You can spend much less and still have a great smartphone experience.

But even though I filled out the official form that says “leave the phone here” with my number and order number on it, UPS decided they’d rather not be bothered with leaving my phone at my home. Thanks for nothing, UPS! I can pick it up at their office, saving them a trip, if I want… between 7 and 8pm tonight. That’s it. That’s the window.

So great thing I preordered that phone. /sigh If I’m lucky, I’ll play with it Monday, maybe Tuesday, night.

It will be interesting to see if I change my tune on if it’s worth purchasing later, once I’ve used it. Coming from a 6S, I imagine it’ll run rings around it and take much nicer pictures. But do I need something that expensive, even if I use it an hour or two a day? Um… goodness, no.

Labels: , , , ,

posted by ruffin at 10/26/2018 05:07:00 PM
Sunday, October 21, 2018

From Nicholas Foulkes’ Financial Times feature on Jony Ive:

As Sir Jony Ive is a little late for lunch, I do the next-best thing to talking to Apple’s chief design officer and pull out his most famous creation to watch a recording of last month’s “Apple Special Event” at the tech giant’s new Norman Foster-designed campus in Cupertino.

It is a film of two parts…. [Part one is a prepared movie short.]

I scrub through part two, an orgy of Californian self-congratulation that features a series of chronically upbeat senior Apple employees, dressed in varying shades of anthracite and olive and explaining, among other things, how the new model Apple Watch can now sense irregular heart rhythm, and call an ambulance if it detects that you’ve fallen down and not got up.

The first half of that last sentence is some well-crafted critical writing that deserves our notice. ;^)

Labels: , ,

posted by ruffin at 10/21/2018 09:35:00 PM
Saturday, October 13, 2018

I recently pulled out an old DVD I’d purchased years ago and popped it into a reasonably old DVD player. It’s interesting how DVDs date themselves with their supported formats. In my case, it opened by asking if I wanted “normal” or “widescreen”, normal, of course, being the now dated 4:3 ratio common for square tube TVs.

If I selected “normal”, things went fairly well. The height filled my widescreen TV’s screen, but I had, of course, black bars or boxes to the left and right so that the ratio was preserved.

If I selected “widescreen”, however, I had black boxes on all sides of the picture. That is, it was a “widescreen” projected into the faux 4:3 screen created in the middle of my widescreen TV for the “normal” ratio. A picture surrounded by black boxes is the worst of all worlds.

Solution? I had to tell my DVD player AND my TV we’re widescreen.

Well, there was an option in my DVD player (well hidden a menus rungs deep in an unhelpfully named "custom settings" menu) for output for a 16:9 ratio widescreen TV. Sounds good, right?


No. Not really. What that does without any other change is to output a squooshed 4:3 picture on my TV. What the heck?

Turns out my TV is expecting a 4:3 signal from its A/V ports. When it sees the 16:9 signal, it’s the TV that does the squooshing. You have to have tell the TV that you’re expecting a 16:9 signal from the DVD player, and set that up for your A/V port.

Does this mean if I plug an Atari 2600 into that port now that I’ve got my TV expecting 16:9 on the A/V that the Atari’s ratio would be off without resetting the property in my TV’s settings? I think so, though I haven’t tried.

Why is the picture quality so stinky?

But now the picture quality stinks, like a video taken with a point and shoot camera at the start of the digital era. Parts of faces often looked like they trailed their head’s position, like somebody was doing a strange rubber pencil trick with their eyes and mouths.

What’s going on? Can I fix this?

The quick answer is no, no I can’t. My TV is upconverting the signal, which is a fancy way of saying “taking a low resolution source and putting it onto a high resolution screen”. There aren't enough pixel-equivalents in the older DVD player’s signal to make a good picture, and the TV is using some algorithm to fill things in.

But my TV’s upconverting algorithm stinks.

Note that I said analog

Note that I said that this DVD player is using the A/V ports on my TV.

A/V ports

That’s that three-wire, analog signal. It stinks.

If I had a good DVD player, it would do the upconverting from the DVD, and keep the signal digital from source to screen. That would require, you got it, a digital connection to the TV, like an HDMI cord.

The DVD player I’m using has no upconverter, and the TV is going to have a hard time with a digital-to-analog-to-digital signal that’s already a few generations old. Plus it doesn’t really care about upconverting. It’s an inexpensive TV set. I also get the feeling that it does better upconverting a 4:3 signal, which makes sense. There’s a decent correlation between widescreen content and digitally encoded content.

Make sense?

A real solution would be...

So the real solution is a better DVD player, like my Playstation 3, with its own upconverter, connected to my TV with a digital cable. Unfortunately, I don’t have my PS3 handy. Eventually, I got used to the weird faces.

(To be clear, I was watching Lebowski, but the weird faces reminded me of the effects in Thumb Wars. ;^D)

Useful links related to DVD widescreen:

Labels: ,

posted by ruffin at 10/13/2018 10:50:00 AM
Thursday, September 13, 2018

Going to try and keep this short…

I’ve seen some stuff, including this from Niley Patel, saying that the XR is a strange, mismash of a phone.

It’s not. We can see its precedents in the 5c, new MacBook Pro, and the iPhone SE.

  • The SE showed Apple that it could put top of the line internals in a compromised phone and have it sell like mad.
    • Recall that the SE had the 6S flagship’s processor and phone
    • But combined with the two-year old screen and selfie camera of the 5S
  • The 5c showed Apple that if you take an old phone and give it colors, you can give an inferior phone a sales bump.
  • The two flavors of the 2016 MacBook Pro shows us Apple is starting to give design teams overlapping, but flexible constraints.
    • That is, we’ve got two completely different computers (same link), one cheap, slow, with two ports, and one top of the line, expensive, with four, in exactly the same case.
    • For the XR, we flip the script, and have two completely different shells with the same internals.
    • That’s essentially what we had with the SE. Point here is that this “shared design constraint” model is increasingly prevalent at Apple

I think we add one more point to this list…

  • Apple was surprised by SE sales, and wishes they’d charged more.

What needs to happen to charge more for a cheaper version of the same internals? Well, first, you can’t pitch it as a spiritual remake of a four year-old design. You have to pitch it as a new phone.

So we have…

  • Top of the line internals but in a cheaper phone (SE)
  • An excuse to charge more by using an updated design (MBP)
  • A purely aesthetic appeal for dollars with frivolous colors (5c)

It’s not a perfect parallel, but I think you see how Apple’s past clearly births this new .

EDIT: Though Stratechery says I’m wrong about the 5c:

Still, I for one thought it would sell very well; all indications are that Apple agreed, but it quickly became apparent that customers overwhelmingly preferred the iPhone 5S. Apple struggled to keep the latter in stock, having produced far too many 5Cs, and the model was quietly discontinued two years later….

The 5C’s failure, such that it was, showed that the iPhone had three distinct markets:

  • Customers who wanted the best possible phone. They bought the 5S.
  • Customers who wanted the prestige of owning the highest-status phone on the market. Heavily concentrated in China, they bought the gold 5S.
  • Customers who aspire to owning a top-of-the-line iPhone, but couldn’t afford one. They bought the 4S instead of the 5C.

I guess I’m wrongly biased from seeing tons of kids enjoy the 5c, sometimes even over a 5 of 5S. I’d guess the 5c failed largely because of the craptastic 8 gig low-end. That’s simply not a useable phone.

But the argument that people want what I’d call “aspirational luxury” from their iPhone is an important point.

As I said about the SE, above – “Well, first, you can’t pitch it as a spiritual remake of a four year-old design.” – is exactly what we're saying here.

If colors didn’t sell, the XR wouldn’t use them. Though maybe I should’ve substituted iMac for 5c?!

More interesting in the most recent Stratechery update is the XR explanation, however:

There is, of course, the question of cannibalism: if the XR is so great, why spend $250 more on an XS, or $350 more for the giant XS Max?

This is where the iPhone X lesson matters. Last year’s iPhone 8 was a great phone too, with the same A11 processor as the iPhone X, a high quality LCD screen like the iPhone XR, and a premium aluminum-and-glass case (and 3D Touch!). It also had Touch ID and a more familiar interface, both arguably advantages in their own right, and the Plus size that so many people preferred.

It didn’t matter: [For] Apple’s best customers... price is a secondary concern.

Labels: , , , ,

posted by ruffin at 9/13/2018 08:56: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 [usually] my own and do not necessarily reflect the views of any employer, past or present, or other entity.