Apple have added in a few lines of extra language to their Developer Agreement for the latest version of their iPhone SDK. You can read the exact wording changes on Daring Fireball, but the effect of the language is that you have to use Apple’s XCode development environment to compile all your code. This has had the effect of killing some unsupported means of making iPhone apps, most notably MonoTouch and Adobe’s about-to-be-released iPhone Flash bundler in CS5. My initial reaction was very negative (ask my Twitter followers), but that was purely an emotional response because Apple didn’t give us any reason for this change. Because Apple didn’t explain themselves, we were left to come up with our own explanations, and the first few that came to my mind were none too positive. Ultimately, I greatly dislike Objective C, so I was pissed off at the alternatives getting the chop. But, slowly, a different story is emerging. I still haven’t heard anything official from Apple, but I think I understand what’s going on, and it changes my opinions significantly.

Read more

Since I first started using OS X at version 10.3 I’ve always felt that the services menu had great potential but badly needed some fit and polish to make it actually live up to that promise. It has been so bad that it is basically forgotten, and almost no one remebers that it even exists. In every application in OS X there is a menu item under the apps’s main menu (the one in bold with the same name as the app) called Services, that’s what I’m talking about. When it comes to the services menu both Tiger and Leopard were major disappointments because they didn’t bring any real improvement to the neglected services menu. SnowLeopard on the other hand is a totally different story. Similarly, when Automator first came out I thought it had great promise, but that it was a very 1.0 kind of offering, again, in need of some fit and polish to allow it live up to its obvious potential. SnowLeopard provides a lot of that fit and polish, and really brings Automator forward significantly. And what’s better, Apple have combined the fit and finish in these two apparently unrelated products together, to provide some exceptionally powerful functionality.

Read more

A few years ago I did a similar tutorial for installing mod_jk on OS X 10.4 Tiger, but yesterday I discovered that those instructions do not work for Leopard. It took my quite a bit of googling and trial an error, but I’ve found a solution that works, which I’m going to share here. This solution is, in my opinion, a best practices solution, and does not involve any changes to your core apache configuration file (httpd.conf). These instructions are for the default install of Apache 2.2 that comes pre-installed on OS X 10.5 Leopard. I can verify that these instructions work for Tomcat 5.0.30, but I would be 99% sure they should also work un-changed for Tomcat 5.5.X and Tomcat 6.0.X.

Read more

Just a very short follow-on post related to my last iPhone post. First, we have the bad, a diary by a developers showing just how arduous the process is here. The key quote is his conclusion:

Development for iPhone is an incredibly difficult process, much more difficult than it needs to be. The arduous process of shipping an application for the Mac suddenly appears to be absolutely straightforward after going through this mess. I really don't envy those companies who have staked their success to the iPhone platform. The amount of arbitrary hassle, uncertainty, and delay in the process can only feel vastly worse when your livelihood depends on it.

Secondly, the other side of the coin, why the hassle is worth persisting with, there's money in them there hills!

Technorati Tags: , ,

When Apple announced the app store I was a little nervous, but I could see the positive side and was prepared to believe that Apple would be good gate-keepers. It soon because clear I was too optimistic. I was already annoyed with Apple when they started to impose their taste on the world by banning joke apps they didn't approve of like Slasher and Pull my Finger. Myself and Allison had a big argument about it a little over a month ago on NosillaCast Episode 164. Allison felt that Apple should be allowed to choose what to sell in their store, and she has a point, however, when you block all other options and make yourself the sole distributor of software for an entire platform it's not wise to go all Victorian with your policies. Obviously Apple CAN block what ever they want, I just think they shouldn't because it's bad for users, bad for developers, bad for the platform, and hence, bad for Apple. My solution was simple, have a rating system. If you think something is rude or in poor taste give it an explicit rating! At that stage we were just talking about matters of taste, this week things have taken a very different turn and Apple have moved on from Victorian prudishness to anti-competitive and anti-use practices. They have denied a better podcatcher access to the store because it competes with Apple software. Granted, Apple use the word "duplicate", but it comes to the same thing in my mind, if you're not allowed to duplicate any functionality Apple implement then you're not allowed to compete and that's bad. To be honest I'm shocked Apple were so blatant about this. When you start creating monopolies for yourself and then banning competition it's hardly a massive leap to jump to "anti-trust".

Technorati Tags: , , , ,

Read more

My Myers Briggs personality profile insists that I "prefer economy of effort", you can probably translate that to "is a lazy sod". Because of this I like automating repetitive tasks. It all started when I wanted a quick and easy way to prepare my images for posting to my website. I wanted them resized with my URL and the Creative Commons icon added in, and I wanted to be able to process a whole directory of images in one go. I started by playing around with the GD libs in PHP, but soon realised it would be quicker and easier to use Perl to shell out to the command line tools from Image Magick. At the time I wrote a post on my choice to do this which also contained the initial code. That code has been expanded and evolved since, and now includes functions for rendering nice (in my opinion) borders and titles on my better images. If you want to see examples checkout the Photo of the Week category on this blog..

Technorati Tags: , , , ,

Read more

I've blogged about how great sorttable is before. I use it a lot in work and people love it. However, because of the way sort-table works normally it won't work with tables that are not in the document when the onload event for the document triggers. What does that mean in real terms? It means that if you use AJAX to render a table it won't be sortable even if you include the sorttable.js file and set the class of the table to sortable. A quick scan of the source code showed me the answer, you have to manually call the function sorttable.makeSortable() passing it the table you just got back from AJAX. The simplest way to do this is to give your table an ID and then use:

JavaScript:
  1. sorttable.makeSortable(document.getElementById('the_table_id'));

Technorati Tags: , ,

This week Microsoft are providing a great practical illustration of one of the fundamental flaws in the whole idea of DRM. When you buy DRMed content you don't really own it because your ability to play it is dependent on third parties who can cut you off at any time. Showing a fantastic flare for irony Microsoft are pulling the plug on their MSN music licensing servers hence removing people's ability to play music sold under Microsoft's PlaysForSure DRM scheme. At the end of August the plugs will be pulled leaving people in limbo. Any licenses they will have already downloaded by then will continue to work. However, the next time any of these poor unfortunate customers buy a new computer or have to re-install their OS they will loose the ability to play the music they payed for and thought they owned.

Personally I hope this gets a lot of publicity so that it drives the dangers of DRM home to people. The more educated people are about DRM the more pressure there will come on the music industry to drop it for once and for all.

More in this Wired article.

Technorati Tags: , ,

Something I've spent quote a bit of time thinking about during my years as a student, then lab assistant (AKA demonstrator), and finally occasional lecturer with the computer science department in NUI Maynooth, is how students should be introduced to computer science and programming. I've seen all sorts of tactics tried over the past 14 years. The absolute worst tactic I've seen is the abandonment programming from first year computer science program altogether. Another disaster in my opinion was the introduction objects before the introduction of basic constructs like conditional statements and loops, the confusion that cased was monumental. I have been involved with final year undergraduate projects for much of my time with the department and have seen first-hand the effects of some of the different approaches. No one seems to be able to agree on how best to start computer science students programming, but something no one can argue with is that any system that results in final year honours students being unable to program is fundamentally flawed.

Technorati Tags: ,

Read more

In general the move to Leopard has been very smooth for me but there was one notable exception, getting a working PostgreSQL 8 sever up and running on my MacBookPro. A few weeks ago I'd expended a lot of time and effort on this and gotten nowhere so at that stage I'd decided to work around the problem by using a remote PostgreSQL server rather than running one locally. This works fine as long as you have broadband internet access. However, I'm off to Belgium for a week on Saturday where I'll have no broadband but where I will need to get some development work done that requires access to a PostgerSQL server.

With the end of the week getting closer I had another go at getting PosgreSQL to behave on OS X and I did eventually succeed. I got 90% of the way there by following these instructions but then I ran into a few strange problem that took a little more time and effort to work around. However, the good news is that I got it all figured out in the end!

Technorati Tags: , ,

Read more

keep looking »