Damn, I’m so proud of myself

This morning I started developing for the iPhone (it arrived two days ago, what took me so long?). After watching a load of presentations from WWDC 2009 (you have to pay for that, but boy is it worth it), I got really curious about Dashcode. This environment lets you develop web applications and it looked really impressive. So I took half an hour to implement a webapp based RSS reader. Then I spent a couple of hours trying to find out why it didn’t work. I still don’t know, but I think it’s due to crappy 3G performance in my living room. Works fine outside.

If you’ve got an iPhone, try it out for yourself. Once you’ve got it loaded in Safari, tap the plus sign down below and save it to the home screen. Next time you start it from the home screen as if it was a real app, it will look like a real app, without any Safari chrome to give it away. You’ll also notice that the icon is totally crap, just a grey rectangle. But what do you expect from a developer that only this morning started up the IDE for the first time?

If you open up this app in Safari on the desktop, that works as well, but looks like just any old web page, but grayer. In Firefox it fails. In Explorer… who cares?

The link is:

http://ursecta.com/UrsectaReader/

The real iPhone conspiracy

So I’ve used a Mac for a while and I’m just starting on iPhone development and a blinding flash of the almost-obvious strikes me. This is not the Blackberry killer or the Palm killer, it’s the long-fuse Microsoft killer.

Remember the monkey dance? Ballmer yelling “Developers, developers, developers!”, while jumping around like a neurally defective and sweating profusely (one could be excused for suspecting some cholinergic poison, but he lived through it, so that is not the answer). Right. I mean, he’s right. Developers is what makes or breaks a platform, but now he’s losing them, so he really has no reason to celebrate.

When Apple designed the iPhone, they could have created a special development system and language for it, but even though it may have been easier, they didn’t. They chose to tweak the development environment for OSX to include the iPhone, and by necessity, also putting OSX on the iPhone. The result of this is that if you want to develop for the iPhone, you have to get a Mac (strike 1), learn OSX (strike 2), learn Objective-C (strike 3), learn Cocoa (strike 4), and by then you’re so deeply immersed in the Mac environment that you won’t find your way out again. Since you can run your Windows stuff, including Visual Studio, just fine under Parallels or Fusion, you don’t need that Dell or HP machine for anything anymore, and you’re not sorry to see them go. In other words, you’ve got a developer that clearly isn’t going to like going back to .NET development again. I mean, once you’ve used these two environments (Xcode/Cocoa/Objective-C vs .NET/Visual Studio) it’s practically impossible to enjoy .NET anymore. It’s so far behind and so very clunky in comparison it’s almost a joke.

So, every developer you task with iPhone development is almost certainly lost from the .NET camp forever. This I can’t prove, but I’m convinced of it. But now is the question: who are these developers? Do they already develop for the Mac or are they from the “other” side? Again, by the seat of my pants, I’m convinced that a very large and increasing proportion come from large enterprise .NET development organisations that need to add a client for their large systems on the iPhone. See where this is going?

It’s only just begun.

Update: I suddenly realized that I fused two unrelated events together in my mind. Steve Ballmer did the monkey dance and yelled “Developers, developers…!” at two different, equally traumatizing, occasions. I’m not sure that’s any better, though. It’s all very disturbing.

Politics, at last

I usually don’t go into politics in this blog, but now I feel I have to.

Today we have the EU elections. Not that they mean as much as national elections, but they do mean something. I’m voting for the Pirate Party and I feel an urge to explain why.

It’s not because I support illegal downloading of copyrighted material, or hate artists or anything like that. I don’t do illegal downloading of copyrighted material for a number of reasons, one of which is that it’s probably illegal (in Sweden, it’s not all that clear), but mainly because I’m too lazy. As long as getting the content I want is convenient, and I can live without content that isn’t convenient to get, I see no reason to do the illegal downloading thing.

The thing that really gets me is that just to protect the copyright owner’s interests, we are on the road to introducing a police state mentality that would have made Joe Stalin proud. It’s simply not worth it. If I have to live either without freedom from privacy intrusions or without Eminem, I’d choose freedom any day (I take Eminem as an example simply because I really like his stuff). I can very well see myself without any of the music, movies, or books that are currently brought out, if that is what it takes. For some reason, I figure this is what the Pirate Party says as well. Or at least, they come the closest of all the parties to saying it this way, so they get my vote.

In short: if you can’t produce and publish entertainment without having to destroy our free society in the process, you can stuff that entertainment where the sun don’t shine, as far as I’m concerned.

MS patch of… Firefox?

To quote an article on annoyances.org about the new ClickOnce install support that MS has added to .NET:

The Microsoft .NET Framework 3.5 Service Pack 1 update, pushed through the Windows Update service to all recent editions of Windows in February 2009, installs the Microsoft .NET Framework Assistant firefox extension without asking your permission.
This update adds to Firefox one of the most dangerous vulnerabilities present in all versions of Internet Explorer: the ability for websites to easily and quietly install software on your PC. Since this design flaw is one of the reasons you may’ve originally choosen to abandon IE in favor of a safer browser like Firefox, you may wish to remove this extension with all due haste.

Unfortunately, Microsoft in their infinite wisdom has taken steps to make the removal of this extension particularly difficult – open the Add-ons window in Firefox, and you’ll notice the Uninstall button next to their extension is grayed out! Their reasoning, according to Microsoft blogger Brad Abrams, is that the extension needed “support at the machine level in order to enable the feature for all users on the machine,” which, of course, is precisely the reason this add-on is bad news for all Firefox users.

And then follows a convoluted procedure to hack the crap out of the registry. Go there, read it, do it, if you run Windows, this service pack, and Firefox.

Tech Republic put it like this:

In a surprise move this year, Microsoft has decided to quietly install what amounts to a massive security vulnerability in Firefox without informing the user. Find out what Microsoft has to say about it, and how you can undo the damage.

Read the entire Tech Republic article.

PS: this isn’t exactly news (the annoyances.org article is dated February 27, 2009), but I only just noticed through a posting by Rob S on a private list.

Evil after all?

I habitually block outbound connections to tracking services like google-analytics.com. (I use Little Snitch for this.) Just because I don’t like them. Recently I noticed I often can’t connect to youtube.com, getting “server not found” errors. Amazingly, once I let google-analytics through again, everything works.

I haven’t verified exactly why this happens so I’m guessing the DNS for google-analytics resolves to at least some of the IP numbers for youtube, causing this to happen. Maybe not, maybe something else is happening.

But that’s not the important question. The thing that disturbs me more is if Google is intentionally making life difficult for people like me that don’t want excessive tracking of their surfing habits. Is that what is going on? Is it the start of a new and highly evil trend?

Little snitch rules for outbound filters
Little snitch rules for outbound filters

ReadyNAS even easier

I have to add a little niftiness to my previous post about how to start a NAS over the local LAN. After diving into the WebRelay manual a little more carefully, I discovered that you can easily send commands using only the URL. The following command causes relay 1 to close for 7 seconds:

…so I created bookmarks for this one and the corresponding URL for relay number 2 (using relay2State and pulseTime2 parameters), which looks like this in Safari:

If you start the ReadyNAS by pressing the button less than 15 seconds, it starts normally. If you press 15 seconds or longer, you enter the diagnostics mode and we don’t want that.

To shut down the ReadyNAS while it is running, you need to press and hold the button for at least 5 seconds.

So I chose 7 seconds for the pulse, guaranteeing to only start up the unit or shut it down, without entering any weird states.

Oh, one more thing: the URL I use here only work if your WebRelay is not set to use password access for status changes. Including a password is a little trickier.

No, that IP is not the IP I actually use, and anyway, it’s all on a local net behind a firewall without portmapping.

Update: don’t use Safari 4 for these URLs. What happens is that one of them may show up on your “top sites” page, and they’ll refresh every time “top sites” is shown, typically every time you start Safari. The effect is that your NAS units will power on and power off at really weird times. Took me a while to figure this one out. And then I moved the bookmarks to OmniWeb instead, since it doesn’t have a “top sites” page. Problem solved.

Powering up your ReadyNAS NV+ remotely

I have two ReadyNAS NV+ units from Netgear and I’ve put them in a backroom where nobody normally goes. I don’t either. Now, for extra security in case of fire or a break-in, I’m actually moving them to a neighbor’s spare room, which means I can’t easily get at them anymore and the energy consumption could become a problem. As could the constant whining, but I don’t think so.

The problem with the ReadyNAS is that even though you can power them down through their config pages using a browser, there is no way to switch them on again short of actually, physically, walking over there and pressing the blue button. There’s no wake-on-lan or any other similar provision. The only alternative is to have it power on and off according to a schedule, which is what I have done so far. But if you do that, that schedule will be unnecessarily liberal, just in case you need access to the units. I’m mainly using them for Retrospect backups and disk images when doing recovery, and very little else, so I don’t even use them every day. I calculated that the 16 hours a day these two boxes are running, costs me around 900 kWh per year. That’s around $150 in electricity per year. And it’s ecologically rude, too.

Continue reading “Powering up your ReadyNAS NV+ remotely”

Merging mice

I’ve got this Wacom Intuos 3 tablet and I like it. The mouse, in particular, is very nice. Good feeling. As long as it works. The problem I’ve had is that my first mouse started to give switch bounce on the left button, and a problem with the scroll wheel, after about 16 months. Out of warranty, of course. So I ordered a new one for around $40. That one lasted eight months before it succumbed to switch bounce, but this time it was the right button. The distributor just sent me a replacement for free, and didn’t ask for the defective one in return. So I ended up with one good and two bad Wacom mice. Since I’m pretty sure the new one won’t last more than a year, or max two, it seemed prudent to start assembling a fully working spare from the two failed mice. That’s what this picture story is about.

Continue reading “Merging mice”