The bottom line here is that instead of doing all the much harder work of adding inlining to our own compiler, all we need to do is let the JVM do it, and we benefit from the years of work that have gone into current JVMs’ optimizing compilers. The best way to solve a hard problem is to get someone else to solve it for you, and the JVM does an excellent job of solving this particular hard problem.
Dr. Freeman, you really should not be out there. At the moment of
synapse as I teleport this chamber will be bathed in deadly particles that
have yet to be named by human science. Perhaps when I have the leisure to do
the work myself, I will name one after you. That way you will not be
completely forgotten. When the singularity collapses, I will be far away from
here, in another universe in fact. You on the other hand will be destroyed in
every way possible, and even some essentially impossible.
– Dr Breen, Half-Life 2 (on the mac yay). Physicist put-downs, eh?
iTunes has two different ways to deal with files on disk - adding a file can either create only a reference to it in the library, or iTunes can copy the it into a central folder where it'll be managed for you. Both methods have their fans and their detractors, but I'm in the process of switching from referenced to managed, because iTunes 9 got a new, much prettier, folder structure and I'm tired of micromanaging this stuff.
The approved way to convert your library is to select "Keep iTunes Media Folder Organised" and "Copy files to iTunes media folder when adding to library" in the 'advanced' section of iTunes' preferences. Then you select the 'File.. Library.. Organize Library' menu item and tell it to copy all your media files into the new library.
I don't want to to this, I don't want 2 copies of everything, and I don't have the disk space anyway. To do this the easy way (on the Mac, anyway),
- Move all your media files into the new library folder. You have to keep them on the same volume or the iTunes references will get lost. If you want the new media folder on a different volume, you're stuffed, but you'd have to copy them anyway so why are you here? How they're laid out on disk inside this folder doesn't matter.
- Deselect "Keep iTunes Media Folder Organised" in advanced preferences.
- Restart iTunes.
- Reselect "Keep iTunes Media Folder Organised"
- Click the 'Change' button next to the Media Folder location in advanced preferences, and click 'Choose' to re-select the current folder. We're not actually changing it, we just want to pretend we did.
- Click Ok.
- Watch iTunes happily re-organise all your files.
So, I got bored and started to Google my name and found someone named “Jerakeen” (my name, Jeralkeen, without an “L”). I was amazed and searched “Jerakeen”. She/He/It has two(2) websites: FanFiction By Jerakeen and jerakeen.org.
This is exactly why I abandoned the old nick. I'm a nerd / computer programmer. The other jerakeen writes gay fanfic. Not an area where I want confusion, thank you very much. Alarmingly, they seem to own the google results now.
Take this as an important lesson, fellow nerds - it doesn't matter if you've used a particular nick for 10+ years. Normal people use the internet now, and they can DESTROY YOU.
Some time ago, I wrote a thing about Android that mentioned how nice Activities are. I've been trying to write the odd Android app recently (aren't damp miserable evenings great?) and this has prompted me to work out exactly what's going on, and I'm very confused.
The iPhone is simple, though very annoying. If you're in a twitter client, and you click a web link, the twitter client will quit (let's ignore the 4.0 multi-tasking stuff here, because it doesn't really change the underlying metaphor) and the web browser will open. The only way to get back to your twitters is to quit the web browser, run the twitter client again, and then maybe it's remembered where you were. Also, your web browser still has that window open in the background.
Sometimes, to get round this, the twitter client implements its own web view. You click a link, and you'll get an embedded web browser. This time you can go back to the twitter client, and you're not messing with the state of another application. But you can't bookmark the page you're looking at, because you're not really in your web browser. And the twitter client has had to do a lot of programming to get to this point, which I'd rather they spent on twitter-related features.
On Android, the interface revolves around Intents. My twitter client can just start a 'VIEW' intent with the URL of the page I want to look like. The system will interpret this by opening a web browser and putting it over my twitter client, displaying the page I wanted. If I press the hardware 'Back' button, I'll go back to the twitter client. Best of both worlds yay.
But at a system level there really is a web browser application here that I'm starting. It's not just a magical disconnected window. What's going on? Can I construct a meaningful model that tells me what's going on?
Testing on my Hero here has revealed the following behaviour:
Suppose I have my web browser open, looking at foo.com, and I have some browser history. Wow, what a site. Now I tap the Home button, and open my twitter client, to see if anything is up. Someone has twittered something with a link, so I click that link. A web browser window appears, and the link opens, so now I'm looking at bar.com. Let's call this my base state.
Suppose I press 'Back'. I return to my twitter client! Yay. If I then press Home and open my web browser app, I see foo.com. Perfect.
Ok, so instead of that, I don't press Back from the browser to get back to twitter, but instead I press Home, then re-launch my web browser application. Now when it opens, I'm looking at bar.com. If I press Back in this state, I return to the home screen. If I now open the web browser again, I find myself looking at foo.com. But if I press back now, I won't return home, instead I navigate backwards in my browser history.
So opening a link from another application has actually hijacked my current browser tab/window/whatever, and navigated it somewhere else, but with a hook in the history so that when you press 'back' over that note, it closes the browser and returns to what you were doing before. Which should have been twitter, but I'd relaunched the browser from the home screen, so it closed the browser. When I returned to my browser and saw foo.com before, it was because I'd navigated back to it from bar.com, but the interface had hidden that fact from me.
This is confusing.
People seem to think that for the iPhone, 'notifications' mean 'not really runing in the background, but merely gets woken up by a server ping'. From a strictly engineering point of view, this might be true, yes, your code is not running. But from a user point of view, what code is running is totally irrelevant. The 'application' as a user interaction experience can keep running in the background, do things, and notify you when there's an incoming call. Where the code is actually running is irrelevant.
Apparently Britain is like Battersea Power Station. I don't think they mean "devoid of power and about to be turned into overpriced luxury flats".
So here's a thing I'd like to see. I'd like a standardised logo/button for mobile web applications that means 'this web page will work offline on your phone'. I'm thinking of things like Pie Guy, that use HTML local storage and offline caching and so forth, so they can be added to your home screen and used just like a 'real' app. Tapping the icon should tell you what it means and explain how to save the app locally. And it should adapt itself to the local platform, be that Android or an iPhone or an N900.
Get to it.