Author Archives: death mountain

Steve Jobs

At first, I thought, well, Steve Jobs lead a super fantastic life, and I’m usually not in the business of mourning people I didn’t know that have lead fantastic lives. No need to be sad for him. (Which is true, if you, like me, didn’t realize he was 56.)

But today, I’m a bit sad for ourselves, which is, of course, selfish. Around 2007, I had worked as a software developer for seven years and was ready to be done. Shit seemed largely fucked up and unrewarding. But my friend Dan, who had been going on about Linux for a decade, had gotten into Macs lately, so after yet another fdisk/reinstall incident, I took a look in that direction, despite my long-held biases against them.

There, in OS X, I found reassurance that shit can be good. And solid and complete and not ugly. A couple of years down the line, I got a MacBook Pro, and it had the same class of “quality-feel” as some really fine chef’s knife, despite the great difference in complexity. Inconceivable to a guy that had been using a ThinkPad three years prior.

I’m going to keep it brief about the iPhone and iPad. But I do remember the day before the iPhone’s launch. I was arguing with a guy who said it wouldn’t even gross $1 million because it lacked tactile feedback. He even went home that night and wrote a long-ass blog post about it. Ha, the fool, you might say. But he was not the only person saying this. That the iPhone could work and work well was inconceivable in the heads of millions.

Steve Jobs didn’t come up with the idea of touchscreen interfaces. However, he got the iPhone made despite plenty of naysaying from experts, and probably from within Apple as well. Why not just make more computers with slight variations? They had a good thing going.

There’s hundreds of incidents like that in his career. Jobs is painted as a force of nature in them. But he is definitely human, and I highly doubt pushing forward weird ideas and products in the face of very vocal detractors ranging from industry experts to Internet commenters is an easy thing.

Without Steve Jobs, there will still continue to be people that come up with things everyone else says is stupid until they try it and love it, but I don’t know if they’ll be at the top like he was and able to shift the technological state of the world from there. Everyone that uses a smartphone, tablet, or computer with a mouse has benefited from Steve Jobs taking weird stuff and pushing it out there, and not just dumping it out, but championing real craftsmanship. We need this kind of high-powered advocate.

This isn’t to say this big wave of progress is going to crash. But I can’t help but feel as though it’s going to calm a bit, at least at the worldwide scale. If that’s the case, maybe we can make up for it by being putting things we imagine forward more often in spite of the inevitable pile on. Easier said than done. I know all too well. But obviously, it can be done.


The greatest Lovecraft tale that never was

Katt: I have never read any Lovecraft.

Me: He’s a pretty bad writer, but some of his stories are great.

Katt: I get the impression they’re all like “Dear readers, I was in Providence for fishing and science, and I learned of the unspeakable horror of the beast known as Harnlthyanahggh.

Katt: He is a blind dead lizard man with tentacles who lives under the sea and makes ominous BLORP noises. One day, when his eternal Game Boy finally runs out of battery power, he will eat the coastline.

Katt: In the deepest reaches of space, there is a hole that leads back to a drainpipe in Queens. Here is where all the antimatter lives, and the Marlaghthtrangh lies eating popsicles.


ALAssetsLibrary and threads

I’m working on an iOS app right now with a feature that uses images from the Photo Library. This was all solid for me, and I had worked with it for a nearly a month before putting it before my alpha testers.

With a set up like that, you know where this is going: It totally did not work for them. At all. After the users would pick a photo from the library, the spinner letting the user know an image was being loaded would sit there forever, and eventually, this would show up in the console logs:

May 19 14:51:17 THE-MOON SpringBoard[27] : MultitouchHID(1ed4d440) uilock state: 0 -> 1

May 19 14:52:00 THE-MOON SpringBoard[27] : jotunheim[725] has active assertions beyond permitted time:
{(
identifier: CoreLocationRegistration process: jotunheim[725] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:725 preventSuspend preventIdleSleep ,
identifier: CoreLocationRegistration process: jotunheim[725] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:725 preventSuspend preventIdleSleep
)}

May 19 14:52:00 THE-MOON SpringBoard[27] : Forcing crash report of jotunheim[725]...

For the life of me, I could not reproduce this bug on my phone or my girlfriend’s phone. Which, of course, is bewildering. Googling pointed to a lot of problems related to threading, and indeed I was using a dispatch queue of my own making to do the image work.

I know there’s things that absolutely must be started on the main thread: Network calls (which end up on the web thread) and UI stuff. But I wasn’t doing anything with the network or the UI, as far as I knew. And why would this only happen on my users’ devices and not on devices in my household?
I’ll spare you a recounting the red herrings that I surveyed.
It’s because the first time you try to get stuff out of the Photo Library with ALAssetsLibrary, it asks the user if your app can have access to location data. (Photo metadata can contain with location data.) But it can’t show a UIAlertView from a thread other than the main thread, it can’t, so things will just stall out.

My phone and my lady friend’s phone have had on them previous builds of the app that used ALAssetsLibrary from the main thread. So, back then, that dialog was able to show, and location data access permission was saved. Deleting the app doesn’t revoke that permission. The current build, which used ALAssetsLibrary from a non-main thread, ran into no problems because it had the permission and didn’t need to show any dialogs.
The lessons I can see are:

1. Doing work in helper queues is great, but think twice about whether or not the things you do there are going to lead to UI or network stuff.

If I had read carefully, I would have noted that the documentation says:

When the asset is requested, the user may be asked to confirm the application’s access to the library. If the user denies access to the application, or if no application is allowed to access the data, the failure block is called.

2. Things that affect your app get saved outside of your app and don’t get cleared when you delete your app.

I hope this saves someone somewhere some time.


Parade raining: When to do it?

I was listening to this podcast in which the hosts, Hannah and Edward, discuss how to approach people’s enthusiasm about the long-awaited killing of Osama bin Laden.

The death of Osama bin Laden means quite a bit symbolically, but I don’t think that is going to translate to that much real-world effect, and it sounds like Edward and Hannah don’t think it will, either. If you ascribe to this point of view, it means that a lot of people are confusing the way in which this event is significant.

The question they ponder is: Should people that don’t really think this is going to change much just go along with the people that think this defines the start of a new era? Maybe this is a case in which the enthusiasm and positivity is more important that the reality of the situation, Edward ponders.

I think it’s trouble when enthusiasm is built on a false premise, like I think Hannah was saying. Man, just writing that last sentence felt totally wet blanketesque and possibly sanctimonious! But you gotta be willing to risk sanctimony in order to make sure as many of us as possible are focused on the real deal.

I do agree with them in that there’s no gain in smacking people down for feeling good. You cannot deny the honesty of their reactions, even if you disagree with the conclusions that spring from them. So, it’s a pretty fine line to walk, what with the keeping people you know connected to reality while also not being a shit. I think I’ve settled on, “I am glad you have achieved closure at last! However, feeling closure doesn’t necessarily mean the world is significantly better.” Which, again sounds a bit sanctimonious! I’ll have to work on that.

But better to be sanctimonious than to tacitly help build a false reality from which bad decisions are made. Many of our biggest problems today grew this way. And I know that there’s a lot of people that are mostly interested in believing in whatever what makes them feel good. It is still worth trying, though. Even if it makes you look like a shit.


The continuous hacking of the human spirit

There was a time when the forests of the Niu Mountain were beautiful. But can the mountain any longer be regarded as beautiful, since being situated near a big city, the woodsmen have hewed the trees down? The days and nights gave it rest, and the rains and the dew continued to nourish it, and a new life was continually springing up from the soil, but then the cattle and the sheep began to pasture upon it. That is why the Niu Mountain looks so bald, and when people see its baldness, they imagine that there was never any timber on the mountain. Is this the true nature of the mountain? And is there not a heart of love and righteousness in in man, too? But how can that nature remain beautiful when it is hacked down every day as the woodsman chops down the trees with his ax? To be sure, the nights and days do the healing and there is nourishing air of the early dawn, which tends to keep him sound and normal, but this morning air is thin and is soon destroyed by what he does in the day. With this continuous hacking of the human spirit, the rest and recuperation obtained during the next are not sufficient to maintain its level, then the man degrades himself to a state not far from the beast’s. People see that he acts like beast and imagine that there was never any true character in him. But is this the true nature of man?”

– Mencius, via Lin Yutang.

No, Mencius, it is not! No way, man. (Although I’m not sure all the beasts are in such a bad state.)

I think we all know that getting rest is valuable. However, I often think of it as valuable in the sense that it is good for regaining productivity. Work productivity, artistic productivity, organizational productivity, or physical productivity. You rest, then once again you are able to dig and work toward some goal or other.

Mencius values rest in a different way. He’s talking about how resting helps you be yourself. And now that I think about it, he’s right. When I sleep as late as I’d like, and I don’t have an overwhelmingly packed day ahead of me, I notice more things. I am more amused by what I notice. I am more amused by myself. I’m more inventive because I get to act, rather than react; I think thoughts that can be said to be “from me” instead of thoughts that would most likely be thought by others because we are all forced to react to similar situations. Music tends to sound better, too.

I think we all understand the value of hard work and sacrifice. If there’s aspects of your life that you wish to change, you have to upset its balance. If there was an easy way to alter the equilibrium of your life, you would have used it by now, so all you have left is work – extra work beyond what you do to pay the bills. This work might be fulfilling, but it’s going to be taxing. Otherwise, it’s not work.

Ultimately, you’re trying to change your life so that you are more satisfied. You may create your greatest art or earn enough money to buy your house, boat, or truck packed with explosives, but you can end up less satisfied than when you started because you’ve crushed your natural self under constant toil.

Your “natural self” might not be any more “natural” than your toiling self, certainly. Perhaps “unencumbered self” might be a better term? Whatever the term, it’s a worthwhile side of most people.

I took some time off from work a while ago, and I didn’t accomplish as much as I had hoped I would during that time. Still, I was very satisfied with that time overall. I lived without pressure or weight during this period, and just that itself was surprisingly satisfying.

I can’t rank the importance of living unencumbered against the importance of reacting and sacrificing to change one’s circumstances. I don’t even know how often you really need to be in this state to be sufficiently satisfied. I am sure, though, that it is important enough to not forget completely, and that rest is not just for re-upping one’s productivity.


Cakes, art.

Me:
Oh, man, what about a hamburger wedding cake?

Katt:
Made of hamburger or just looking like one?

Me:
Looking like one!

Katt:
Those have been done!

Me:
Although made of hamburger would be quite the work of art.

Katt:
We made a hamburger that looks like a hamburger!

Me:
Yes! And maybe to make it art, there’ll be a plastic thing stuck in it that says “look inside you”.

Katt:
Woh.


The Golden Settings App UILabel-UITextField layout

Something I just noticed:

settings_app_phi

It’s not actually that dant-dant-dah – designers are said to love Phi. I just didn’t know how modern that affinity was. It could be a coincidence since the layout does not lock to Phi exactly (of course, no whole number-based layout can). I lean toward this being intentional.


We just wanted to watch the Daily Show.

When we moved, we decided not to get cable because there were only a few new shows we watched, and we could get them online. So, we got a previous-generation-at-the-time Mac Mini to hook up to the TV (and to serve as the house server in general and watched our shows on Hulu Desktop. It was a comfortable system. (My old PC was slated to do the job originally, but it did not survive the cross-country move.)

Then, one day, Comedy Central decided to stop letting Hulu show the Daily Show and the Colbert Report. The dark times arrived. We entered an era of mild inconvenience, which, of course, felt like total hell because we’d often try to watch these shows during dinner. After you’ve gotten dinner ready, you feel like eating, not messing with stuff to get your show to play.

The problem was that we’d have to go to the Comedy Central site to watch the Daily Show, and we’ve had to watch it through the Safari Flash plug-in. You may have heard a thing or two lately about how Flash is problematic on Macs. Myself, I hadn’t really noticed other than some very occasional freezing because I had been running it on machines with no less than 2 GB of RAM. The Mini, though, has 1 GB of RAM, and whoa buddy. Flash is not pleasant over there.

The Flash 10 plugin wasn’t good under low memory conditions. It would outright crash when we’d try to play Daily Shows. Then, Flash 10.1 came out, and we gave that a shot. No crashes, but still quite pokey, and the audio would get messed up (terrible echoes) if it had been running for a bit. So, to watch an episode, I’d have to restart Safari (it seemed to do even worse in Chrome), get to the web site, and wait a few minutes for the video to load. It was one of those processes that made you feel as though clicking at the wrong time or too many times while it wasn’t responding would result in a crash, and you’d have to start the whole process over again.

It made me miss Hulu – and cable TV – a bit.

Using the mouse and opening browsers isn’t really inconvenient in the Greater Scheme of the Universe, but man, it is way harder than turning on the TV and flipping to a channel. Or opening Hulu Desktop and hitting a few menu items up with the Apple Remote.

That’s pretty much what media center apps like Boxee let you do. I tried Boxee half a year ago, and while it looked cool, it failed to open most of my media files and didn’t have access to the streaming media that Hulu and show-specific web sites did.

So, then. What is the point?

 

The point is that it’s now the future! Those media center applications are:

1. Better at identifying and playing media on your local drives.
2. Can now play Flash video!
3. Still have convenient remote-based navigation that doesn’t require you to get off the couch or do any screen sharing.

I’ve now got Plex installed on the Mini. It supports plugins that it calls “Apps” – basically video sources that have a bit of Python code that tells Plex how to play it. Two of these apps for the Daily Show and the Colbert Report.

As I understand it, when Plex plays Flash media, it often just goes to web site presenting the video, presents itself as Safari, strips everything out but the video, then plays it in a little WebKit-based browser. The difference between that and playing it on the web site on a real browser? I haven’t done any real analysis, but I’d conjecture that the little browser, which does nothing but play video, takes up much less memory than Safari or Chrome and so the Flash plugin isn’t put into that low-memory situation it deals with so poorly.

(As of now, however, Plex doesn’t support Flash 10.1. So, you have to use this to uninstall Flash, then install Flash 10.)

The takeaways?

1. If you wait long enough, someone will solve your problem for you.
2. Plex (and probably Boxee) will now let you easily watch the Daily Show using a remote.

More on the adventure of Mac Mini media centers at tl;dr. (Which, incidentally, is the newest blog of “Pants McCracky,” who is kind of like the Fedor of bloggers.)
And now it’s your turn to speak! What have been your experiences with media center applications? Do you have any tips and tricks?

Haha, just kidding. This isn’t the part where you speak (you can say something to me at @deathmtn on Twitter if it occurs to you, though), and we don’t do SEO-style “community building” here at Death Mountain. Instead, we have lots of these guys going around adding value:

 


TaskPaper to html conversion script/A less painful resume updating process

I couldn’t find a TaskPaper-to-html script out there, even though I thought this would have been done a million times by now. (Could be that I’m just getting worse at Googling. Let me know if I’m wrong!) So, I wrote a Perl script to do it:

tp_to_html.pl

Usage: perl tp_to_html.pl biglist.taskpaper bigstyle.css

You give it a .taskpaper file and (optionally) a css file, and it’ll generate an html file that’ll contain ul and li elements (you can change the code to use blockquotes and divs, if you want), each set to a class corresponding to the item type – project, task, or note. You can then style those elements and classes in the css file.
Backstory!

TaskPaper is a super simple, yet surprisingly effective application for organizing things into hierarchical lists. It’s intended to be used for to-do lists, but I hadn’t used it for that until yesterday.

For the past couple months, I’ve been mostly using to just jot down, then arrange ideas I had about various projects, which is what I’ve been doing with plain text files for years. The difference between text files and TaskPaper files is that TaskPaper provides formatting for items based on simple cues, like a line starting with a dash or ending with a colon or have a @done “tag” on it. It uses those formatting cues and changes colors and font sizes. It turns out that just doing that makes lists much easier to read and much more attractive. You actually want to look at these lists. That, along with making it very easy, almost unconscious, for the user to format items makes for a rather compelling product, believe it or not.

Anyway, I started using it for my resume. I haven’t touched my resume in a while, but I do remember the maintainability messes I used to have. I’d make the base copy in Word or OpenOffice, fighting it to format it the way I wanted. Then, I’d save it as a PDF to mail to people (because that way I could be sure it displayed the way I intended). More often than not, a recruiter would ask for it to be in doc format, so I’d send the original file. And then sometimes, a web form would ask me to paste in my resume in plain text. So, I’d copy it out of the doc file, paste it into a text editor, see that it looked terrible, then mess with it until it looked right. I’d also make an html version, which I’d have to hand code because the “save as html” features on Word and OpenOffice sucked.

Inevitably, I’d have to update the resume, which meant updating three different versions.

This time, I initially decided to just use TaskPaper to organize my editing, without having to fight Open Office. Soon, though, the idea of using just TaskPaper took hold of me. A .taskpaper file, after all, is just a text file with “- ” and “:” and various @tags in it. So, there’s the text version. I could use a script to convert it to html, then a css file to style it. Then, once I had it open in the browser, I could use the OS X print dialog to save it as a PDF. )

So far, I’m pretty satisfied with the system. I really like that the formatting and content are separated. I’m not dreading the next edit or update. Of course, it does have a big flaw: I assumed that there’d be something out there that’d convert either html+css or a PDF to a Word doc. I was wrong, so I’ve got more research to do. If you happen to know how to handle this, please let me know!


Mexican nightmares

Recently, Arizona governor Jan Brewer signed SB-1070 into law. It requires “law enforcement officers to demand immigration papers from anyone they have a ‘reasonable suspicion’ may be in the country illegally.” Basically, it’s a “if you don’t look white, we can knock you down a few pegs” law.
In response, Robert Rodriguez has made the trailer for his Mexsploitation film Machete into a very special message for Arizona.

(Make sure you watch that trailer. It is FREAKIN’ AWESOME.)

Rodriguez is blatantly (and excellently) provoking the racists that support SB-1070. However, this isn’t the first time this has been done.

A decade and half earlier, the Satanic, human-sacrificing, border crossing, drug dealing, headbangers Brujerìa responded to California governor Pete Wilson’s passage of Proposition 187 with a song titled Raza Odiada. En Español, of course!

Back then, I was looking for the heaviest music possible. With that territory comes a lot of lyrics that really try to make you say “holy shit.” Very little of it did.

Death metal bands espousing the downfall of Christianity was like ranch dressing at a buffet. I tuned it out and listened to just the music. (Which was not necessarily a bad thing.) Black metal bands’ flirtation with Nazism from the safety of their moms’ basements in Norway was just pathetic.

Brujerìa cut through all of that and made me go “Whoa!” (Like a machete!) Fake or not, Satanic Mexican drug dealers were a scary idea to which people weren’t yet numb. It got my attention.

They were novel and impressively crazy which could have been enough, but I liked that they stopped for a bit with Raza Odiada to make a good point in addition to their usual terrorizing. “Quien te va chingar mas no es Satanas,” de hecho.