This is mainly an exercise for myself. Nothing new here. Just a place for me to keep all that in mind.
iPhone – The first 7 days.
Actually I didn’t want to write about the iPhone because I was sick of this whole hype. It was almost like in the movie »Being John Malcovich« when John Malcovich enters his portal and all he can say or hear is his name »Malcovich«
»i’m sick of these iphone news – i want mac and mac os x rumors and news. come on – one day without any iphone news please!« via twitter
Now more and more people around me got themselves an iPhone and there were plenty of occasions for them in the last couple of months to show how cool this device really is. Still I had doubts, touch keyboard and everything but right from the introduction of the original iPhone it was clear to me that it was superior to any other device out there. I’d like to point out that it was clear to me. I’m well aware of other opinions from other people but I don’t care about those for this post.
At the 25C3 (25th Chaos Communication Congress) even more people showed off with their iPhones which lead me to the spontaneous decision to buy one for myself. This is how it happened. The salesperson was very friendly and the whole setup wasn’t taking too long. Since that day I’m extremely happy with it. I have to say though that I was not using any kind of internet service on a mobile phone before. It seemed kind of wrong on my previous phones and I didn’t see any potential use for it on other available devices. It reminded me on the story about my very first computer. Back in 1994 when all my friends had Amigas, C64s, Ataris or even Windows 3.11 machines, i couldn’t see any potential use for me. Sure enough they were good for games but even the games were kind of, uhm bad. There were exceptions but for me it just wasn’t worth spending so much money. Then one day, my best friend from school (probably 4th or 5th grade) got the first PowerMac as a christmas present. We spent lots of time together and sure enough we did spend a lot of time in front of his mac as well. It was instantly clear to me that this computer, this operating system was really something good and way more sophisticated than all the other systems I mentioned before. Hell it had 1024×768 resolution and 16 Bit colors where all my other friends were still in the Vesa/VGA world. It was clear to me that if my parents would buy me a computer, i had to be an Apple Macintosh. While all my other school friends spent their time playing dull little computer games, my friend and I would create a small school magazine, created graphics for school presentations and played with Macromedia Director to create foolish little adventure games of our own. A whole different story.
In a way using the iPhone feels the same. There are a lot of people with Blackberries or Nokia Communicators etc. For some reason you don’t see those people using it for anything other than writing emails, sending sms, calling people, managing addresses. In rare occasions you see them actually browse web pages. If you held one of these devices in your own hands you know that it is no fun to use them – everything is in this »serious business« theme. I don’t know how to describe it, I just have the feeling that the iPhone is the complete opposite of every other device out there.
It is fun to use, in every aspect and emailing, phone calls and sms are probably the most normal things you would do and I mean it in a way that you do it when you have to do it but there is so much more on this device that you can do. Things you want to do, things that I haven’t seen on other devices and if I’ve seen them the differences were like comparing Photoshop and Paint although thats probably a little exaggerated. On the other hand – have you seen the illustrations / drawings that people do with an app called brushes on the iPhone?
http://www.flickr.com/search/?q=iphone+brushes&m=tags
or Disneys Art Director:
http://flickr.com/photos/stefsketches/sets/72157607051336347/detail/
And that is really just one aspect of this device out of a million. All the apps Apple is shipping a very good. Much higher quality and usability as any other windows mobile counter part. The interfaces are just beautiful, as if they were made just for your fingers to touch (as a matter of fact they are). I’m kind of laughing at the people who are using their phones with a stylus.
The other part I really like is the app store. Call me fanboy but I think the user experience to get new apps is very good. Of course there is lots of room for improvements but again, its working very well.
I already bought a couple of apps and I downloaded bunch of free ones. The process of installing (once you set up your store account *sigh*) updating and uninstalling is so smooth its completely effortless. The apps themselves, as well as the games are usually a lot of fun. Of course there is a lot of crap too but I already found so many good or fun ones, I really don’t care if 100.000 people freak out about iFart.
I got my iPhone for about a week now and it already helped me in a handful of occasions with its location aware features or the UMTS/EDGE connectivity in combination with a really good web browser or other apps.
I’m really happy with it and no matter if the Android will be on the same level or better – for now the iPhone feels far superior to any other device. The touchscreen, the user interface, the applications and the games. (Yes I had the Android in my hands for a couple of hours. Yes I tried couple of applications, pre-installed and downloaded ones)
In the end I have to admit that I am not entirely sure about being completely in this Apple vendor locked in world. I look at it carefully but its hard as it is working so smoothly and bringing me so much joy, joy I really haven’t anticipated from a mobile phone with a touch screen interface.
Not sure if a post like this can be taken seriously, but I was so happy that I needed to write about it.
Mission accomplished, like it or hate it 😉
Update 1:
A friend just told me that this post was 18 months too late – I’m aware of that.
rm -rf /opt
I’m a heavy macports user. I’ve installed tons of ports and for a while now, I was under the impression that macports matured enough to stop worrying about potential dependency nightmares. Basically macports already felt like the FreeBSD ports collection. Sure, there are b0rken portfiles now and then but thats ok. As I said – I already had a huge collection of ports installed and updated and everything was fine.
Until yesterday. When you have that many ports installed, the command line interface can get a little messy which is why I thought:
» Hmm, aren’t there any good GUI tools out there for managing macports? «
The only thing I found was Porticus (no, I won’t link to it – for your own safety). It basically promised nothing more than a decent GUI. Well in a way it even did but as you might know, there is this (unwritten?) law: » Thou shall not use a GUI wrapper for a command line tool «
So I broke this law. I used Porticus to update some ports, I clicked some options which seemed right at the moment and only one hour later I found my whole macports installation disrupted.
It started out real simple. All I wanted was to install apache2 which needed the port uuid. Now I already had that, but in the wrong version. Now macports wouldn’t let me update that port that easily but instead of reading the macports help, I fired up Porticus and said: » Well, just update what you need to update, so I can have apache2 in the end hmmkay? «
What porticus did was upgrading _all_ ports because in a way, every port can be linked to some other port. » You want apache2? You need uuid, but then you’ll have to update postgres as well and uhm yeah somehow openssl and gnome. You said I should update what I need to update. «
Now this would be fine, in a way, but all the updates failed for some reason. Porticus didn’t stop though and went through the whole dependency chain do break all the other ports as well.
Now there might be even an explanation for all this. Maybe its not Porticus’es fault at all. The thing is though, when you use a GUI tool which doesn’t give you _all_ the options of the command line tool it is wrapping, nor does it give you proper explanation of the options it exposes, you end up clicking on checkboxes you shouldn’t have clicked.
If I had uesed the commandline tool, I would’ve read the man page, I would’ve read all the explanations for the various options and I could’ve picked even the right ones, based on this information.
So in the end, I rm -rf’ed the whole ports directory and started over. I already got half of my work related ports installed. Hoorray!
» THOU SHALL NOT USE GUI WRAPPERS FOR COMMAND LINE TOOLS «
If you do it anyway – there is no point of being angry if something went wrong. You should be prepared for this moment and take it with dignity. Your co-workers and friends will thank you.
My new Textmate Bundle
Pops up a dialog asking for a search query, then runs grep on the selected dir in the project drawer and shows the results in a HTML output window with the search query highlighted.
Just have a project with 8000 files in it and TextMates » Find in Project « command is just too slow and I’d have to clear the logfiles before that.
With this bundle I can use grep which seems a lot faster and I can ignore logfiles and svn meta data files.
Have to make this bundle a little more customizable and prettier but for now it does the job.
The command line equivalent would be:
grep -r "query" -n --exclude=\*.svn\* --exclude=\*.log\* /your/path/
Credits go to: Andreas Marr for giving me the grep command as it is used in this bundle.
Screenshots
Bogosort in ruby
Yesterday, I stumbled across the Bogosort sorting algorithm. The example implementations looked horrible so I tried to implement it in a short and readable way, in Ruby of course.
Here is my first and only attempt of a Ruby Bogosort.
# Use: ruby bogosort.rb a b c def sorted for i in (0..$array.length-2) return false if $array[i] > $array[i+1] end return true end $array = ARGV $array = $array.sort_by {rand} while not sorted puts ">>>>>>>>>>>>>>>> #{$array}"
You can find the Java implementation on the wikipedia page:Bogosort
Here are other C, Java and Python implementations: http://www.algorithm-code.com/wiki/Bogosort
I wonder if the C and Java examples really have to be that long.