Archive for the 'Opinions & Thoughts' Category

Darcs and source code management

Saturday, May 3rd, 2008

In the last years we’ve seen many SCM trying to replace SVN (which in turn replaced CVS in many places). Git, Mercurial are two examples of that. I never really looked into them as they mostly sounded like “SVN with this” or “SVN with that”. 

Then I discovered darcs and I never went back. Sure, XCode has no integration with darcs, but one can live without that. What made me switch from SVN to darcs is the “theory of patches” it is based on. It makes redundant most concepts like branches, revision and even tags are different (they are an empty patch depending on all patches that were in the repository already). This way it is really easy to branch (if XCode had any integration, it would make its snapshot feature incredibly powerful) and merge back. I also found it easy to handle conflicts (except on project.pbxproj files, be careful with those).

For Cocoa developers (like us) it is also really welcome that darcs puts only ONE directory (called _darcs) in the main project folder (unlike svn putting a .svn folder everywhere) so you are unlikely to mess things up, for example by copying nibs to localize them or things like that (which was plaguing me as PDFKey Pro is localized in many languages and I kept doing the same mistakes over and over with SVN).

Currently, a Darcs GUI for Mac OS X is in the works, is called Darcheology. It is already quite neat but is in dire need of contributors, so if you got some spare time, it is surely worth to take a look at it!

Thoughts on application deployment

Friday, February 22nd, 2008

I remember the early days/years of Mac OS X where Apple supplied the Installer.app and probably every software out there used it to install itself in the system. Then some day i noticed that more and more apps ship as a dmg, which was a big confusing in the beginning. After the years I now arrived to a point where I absolutely dislike installers.

Installers have a big downside: they take too long. Even though they’re really easy to use one has to click several times here and there, agree to agreements and even enter a password in most cases. Having to enter a password is a total no go on my side and i usually end up looking up where the files are copied to.

Disc images on the other hand download, maybe show an agreement, and then mount. The user just has to drag and drop the app to some folder he likes or by default just onto the application folder icon that is usually linked just next to the application icon. The user unmounts the image and is done installing. The disk images also have a very nice background pictures which makes it even more fun to install apps. Using a tool like FileStorm even makes it as easy as it might get to create disc images that look good. (Thanks to this post I just notice that it got updated just some days ago!!)

Some developers also deploy in a zip file, or in any other compressed file. The usage is as easy as with disc images: unpack and copy. But there’s a tiny little detail here that always drives me mad when downloading an app that ships as an archive: I always end up searching for the decompressed file. Thing is my download folder is pretty damn huge as I tend to not clean it up, so with a lot of archives and uncompressed files in that folder it’s pretty hard to guess how the files are called that just unpacked. Disc images open the window with the just mounted image right away and it’s totally easy to find the single one file that needs to be copied.

While disc images seem to be a perfect winner here, there’s a pretty annoying issue with Sparkle and disk images: if the disc image has a disclaimer it wouldn’t work with Sparkle. This little detail is really annoying unless one either changes to a disc image without agreement or to an archive like zip.

Uninstalling an Application is usually also easier if one moved just the application to the applications folder. Uninstalling an application that installed via installer is a bit tricky unless on knows which files were installed to which location.

I for myself usually think twice before installing an app using the installer (except if the app is from Apple 😉 ). If I download an application as archive I’m typically a bit annoyed to search for the decompressed file. Fortunately enough the disc images are used by most apps so it’s typically fun to install most apps!

I think for developers its probably the best to ship a disc image and provide a zip file for sparkle. Only if the application goes a bit deeper into the system and has to install files to somewhere other than the application folder, it should use an installer. What do you think?

Karsten

The effect of education on the software market

Sunday, September 16th, 2007

This entire rant is based on the situation of computer education in Italy, I’d love to hear what it is like in your country.

So, computers are part of our everyday life (really? is that true for everyone?), so maybe we better teach something about it in school! It goes like this, you take the little child or even adult, put them front of a computer and teach them how to write letters, make spreadsheet and if they are lucky databases and some programming.

Little details: Computers will have Microsoft Windows installed, the other task will be accomplished with Microsoft Office, Microsoft Access and Microsoft Visual Basic.

Other little details: Nothing will be taught at all! The students will only be trained on the basics of using this particular software products (teaching about databases and programming this way is particularly freaky and damaging to the students) and usually a different setup will scare the students to hell.

My personal experience is fresh, 2 years ago I still went to high school and I was in a school which claimed to have economic/programming orientation.
The first 2 years we were taught the fine art of creating invoices with Microsoft Excel, then the fun came. 3rd/4th/5th years were about programming and db (along with some more spreadsheet, for those who were not trained enough yet).

At first it was all nice and fine, flow charts, concepts of software design and some Pascal. Then the beast came, Microsoft Visual Basic! Microsoft Visual Basic has 2 mayor problems: everything is unportable, is too clicky and draggy for such an unexperienced audience to understand anything.

So, no flow charts anymore, no design. The whole year was about dragging this here, changing the colour of widgets and so on. You now know why interface in the Windows world are sucky!

Then db came, and theory was pretty good (but too short for uneducated audience, my mates couldn’t understand much of it). Conceptual design, logical design… implementation! No SQL? You need no friggin’ SQL! You can just use some wizard from Microsoft Access! Again the problem is the same, what you learn cannot be applied elsewhere.

What are the effects on the market? You create bots that can only use certain software packages, you can bet what they’ll choose when they are purchasing their own system.
The software market is already one of the least fair and balanced, and influencing so strongly the purchasing decisions of the current generation and those to come is not going to help.
I’m sure some companies would pay to have such an unfair, nation-wide advantage! Uh wait a second..nah that cannot be it!

So, what could be done about it? Well abolish this kind of training! Have you ever been taught at school how to wire your house or how to repair a TV set? Why should you be trained how to make an invoice with a particular software package?Any other solution will end up favouring someone in the end (open source groups making no exception).

Information Technology can do much for education however! Schools can set up websites (universally accessible) to lookup for informations, maybe download lessons or read communications that you may miss otherwise.
Every school may have some browser-kiosk with easy access to wikipedia for students, maybe also to assist the teacher in his or her lessons.

Some thoughts about Web 2.0 and why it really isn’t that shiny

Tuesday, August 14th, 2007

Hey there,

so the web2.0 is taking over now, right? Lots of AJAX and who knows what else… I mean there sure are some nice features there that allow for hell of a lot new things in web-development. Honestly I’m not a big fan of this stuff. I didn’t try doing it yet, but as I don’t like creating web-apps in general, I’m already sure that I wouldn’t like it too much.

But there’s also another reason why I absolutely hate this AJAX here and AJAX there thingy… This AJAX is totally messing with the typical browser-workflow that every user got used to. Things like nicely animated pictures popups like those on apple.com (try the gallery in the lower part if you don’t know what I mean). These pictures pop up like windows, but they are no windows. They have a close box like windows, but they are no windows. If I hit cmd-w, because I’m so used to using shortcuts, I close the window. But wait. These pictures were no windows, right? I knew that. I mean…I saw that, and my brains recognized it. But somehow this didn’t get through to my fingers, and instead of the right hand moving the mouse to the close-box, which takes insanely long, the left hand just pressed cmd-w to speed up the process. When I watched these pictures it happend to me that I had to go to Safari’s history menu about 4-5 times to reopen this window, but I just kept hitting cmd-w instead of clicking this close box.

Another thing I noticed just some minutes ago. Daring Fireball blogged about Alex Payne’s c4[1] coverage which is pretty detailed (thx for that). So I visited Alex’ blog. I noticed there’re quite a lot of posts about c4 and I wanted to see if there’re more posts on his blog about this. So I hit the older posts button and zap, I saw the older posts. What I didn’t notice in first place was that not a new page was loaded, but instead somehow magically the whole page was just replaced with the other content. I mean, do you really need to do it that way? The back and forward button doesn’t work with this feature, the browser history doesn’t work with this feature, heck I have to scroll down the whole page to get to this newer posts link.

Come on people, do you really need to use too much AJAX? Don’t you think that less still can be more? As I said I have no idea of this AJAX stuff, so maybe it helps a lot in creating websites and makes things easier. But only for you guys to have an easier job, don’t let all the crap rain down to the user who has to deal with user-interfaces that don’t work out nicely in the end.

Just my 2 cents
Karsten

I’m loving it :-(

Wednesday, June 13th, 2007

Yesterday night I wanted to help a friend to get online through my Wireless-LAN. She got a brand new Windows Vista notebook. After half an hour or more we still didn’t get that PC thing online.

Besides: this notebook (like pretty much all PC-notebooks that I know) got a switch!! for turning Wireless-LAN on and off, which I find…let’s say…we’re still 21st century, or is it 19th century?
So it was hard to connect to this network with Windows XP already and I thought that it would probably be somewhat easier with Vista…well, I was oh so wrong. I even managed to actually connect to the network and got an IP and all that stuff that’s needed. But for Windows, this doesn’t seem like a reason to be “online”. The Internet Explorer kept saying it was still working offline, and when trying to connect it opened the dial up window. There was no way I could find to tell this “thing” to use the existing Wireless-LAN connection that it already established.

I really have no idea what’s up there in redmond, but I really felt lost there. I don’t know about the average PC user with zero or less knowledge of a computer, but how can an operating system be SO difficult to use? The windows that I saw during the setup were full of text and hints that I felt really uncomfortable. In my eyes there was little to no usability there.
Not being able to connect to the Wireless-LAN mad me actually feel kinda stupid. How can such a huge company like Microsoft create an operating system that makes the user feel stupid? This should be easy to use, cause EVERYONE! is working with the operating system almost every time. I don’t know why people still keep buying windows computers, probably cause they don’t know there’s something else. If they have to use a PC cause there’re applications that are PC-only, I’m really sorry for you guys.

Karsten

Safari: 100 steps forward and 1 backwards – Or how an overlooking can make you look like a dumbass

Tuesday, June 12th, 2007

I’ll keep this post for your own amusement. It turns out that there actually is a preference in the Tabs pane to disable these warning. I still think this should be the default and is not too easy to spot (maybe a “never ask again checkbox” on the warning would suffice).

I’m excited by the new features of Safari (both those in the beta and the announced ones). But they did one major mistake.

Now when you have to close a multitab window it ask you if you are really sure of that. Does it do any good? How often do you mistakenly close a window you didn’t want to? And what’s the cost of closing a webpage by mistake? Usually not high. This is even more annoying that the same happens when you try to *quit* Safari. Now if you press cmd-Q or go to Safari->Quit chances are that you just want to quit, why do you have to click again?

Also, soon enough clicking OK will become automatic, that probably the one time out of a million that you actually didn’t want to close the window, you will click OK anyway and just after say “ouch!”.

Me and my girlfriend were extremely annoyed by this behaviour and her comment was “is this becoming Windows?”

If anybody is annoyed by this “feature” please send your feedback to Apple. I’m sure is very important to them especially in this stage.

PS: I’ve posted this on VersionTracker and MacUpdate as well because I’m *really* annoyed by this behaviour.

Mighty Mouse

Sunday, June 3rd, 2007

I’m a Mighty Mouse user…this mouse simply rocks! Apple did a great job designing this mouse. It fits very good into a hand, looks very simple and is really useful. Apple always had a one button mouse. The Mighty Mouse still looks like one, and it’s configured as a one-button mouse by default. But it can be configured as a 4 button mouse as well. I really like that design!

One thing that I really love is the scroll-ball, very small, fits perfect under the finger and scrolls very nicely…even with a cool clicking that you can even feel with your fingers.

One thing that I really hate is the scroll-ball, too small, catches all the dirt from your finger and fails to scroll when it’s too dirty…and no clicking that can be heard or felt then.

Yesterday I wanted to clean my Mighty Mouse’ scroll-ball for the second time. I noticed that the glue that I used for sealing the case, was a bit too strong. The original glue kinda snapped off under some pressure, but the glue I used when I cleaned the Mighty Mouse for the first time was different and didn’t want to snap off as well.

It was a pain to put the small scroll-ball in place again after I finished the cleaning. Unfortunately the conductor that connects the scroll-ball to the logic-board tore apart and now the scroll-ball doesn’t work at all. It’s a pity, cause there’s no way for me to fix this, and now I have to work without my Mighty Mouse.

Amazon already got the order for a new one, I hope they deliver till tuesday 🙁

Karsten

Service Scrubber

Saturday, June 2nd, 2007

I just saw the post at red sweater about Service Scrubber, a tool that allows you to get rid of unwanted service menu items.
I can’t tell you how much I missed such a tool and I instantly installed and ran it. It’s quite interesting to see how many actions I disabled :-D. Now I have only 4 items left and it’s a good feeling 😉

Karsten

Creative Commons & co. licenses and Codebeach

Thursday, April 19th, 2007

One of the most requested “features” for CodeBeach has been the ability to select some kind of CC licenses for submitted snippets and classes. The gist of it is being able to get an entry on the Credit.rtf file of the apps using code under said license. While i’m considering this, i still think is a bad idea for some reasons.

The request of an entry in the credit file looks innocent and easy to satisfy. As soon as you use 1 or 2 snippets/classes from the site, that’s it. But what happens if you need to use many classes from there? And what if they depend on many other classes as well? You end up having to track down dependencies and end up with a very long Credits.rtf file.

Obviously tracking down dependencies is a technical problem, which i can solve via technical means for the joy of you all, but still, do you really want long Credits.rtf files, and having to remember that each time you copy&paste a snippet you’re likely to add a name to it? (Or worse, you forgot you added that name already and end up with double entries).

Let me know guys, the site is for you and we are doing it just for passion, so if you really need to see your name on Credit files, so be it.

Another thought about piracy

Thursday, February 22nd, 2007

[Update 1: the author has responded with a public letter to this issue and is planning to open the source code of his application]

[Update 2: my friend over at Yet Another Mac Dev Blog had a look behind the curtain with display eater check it out, it’s a very interesting read.]

[Update 3: the developer of Display Eater replied to this open letter over at Yet Another Mac Dev Blog: […]Version 1.85 was released three times. Version 1 had no deletion, version 2 had home folder deletion, and version 3 had display eater preferences deletion.[…]]

Today I wanted to make a screen-cast about the inspector I was talking about in the previous post. I tried out Display Eater and while I read about the features on the version-tracker site, I stepped over the comments for this application. These comments really scared the hell out of me and I was truly in doubt of the developers sanity. To make it short: this application will remove your home folder if you try to register it with a pirated serial number.

(more…)