This is probably the most obscure post ever - but I need to put it up here, in case it helps someone, somewhere at some point.
I recently had a consulting job, where the client wanted a little help with a software installation of some ‘enterprise’ software at their office. (Quite why the business community have decided that their software needs to be labelled ‘enterprise’ still eludes me - it makes it sound like a naval vessel.)
Anyway - this business runs Mac OS X server (10.5) and needed to install a web app called LiveTime. LiveTime used to be a WebObjects application (the history of WebObjects is a fascinating topic - which I won’t go into here) but now is almost entirely Java-based and runs from an instance of the Apache Foundation’s Tomcat application server. Apache are the fine, fine people who brought us the Apache web server, which is basically the back-bone of the Web: it serves the majority (apparently 70%) of web sites that you’ll ever visit (including this one.)
Mac OS X Server comes with Tomcat built-in - so I started by trying to deploy the web application through the built-in version of Tomcat (which seemed pretty up to date.) That didn’t go well and I got errors from Tomcat when I tried accessing the webapp along the lines of ‘Servlet WOServletAdaptor is not available.’
Googling this error message only lead to WebObjects developers on Apple’s WebObjects mailing list attempting to deploy applications that they had written themselves. Googling for ‘LiveTime’ and this error got one result, which wasn’t useful.
It’s quite telling how you can often solve open-source application install issues, simply by googling, yet with proprietary apps, you have to go through their own support systems due to lack of public information. I’m not saying that LiveTime’s support was bad - in fact I got (24 hours later) very good support from a very nice, very knowledgeable and very busy Aussie who walked me through the install process. I do wonder, however, how much more quickly the issue would have been resolved if I hadn’t had to call the vendor.
So, one of the first things that I learned from my support guy was that the supplied Tomcat install on Mac OS X server wasn’t quite right for their software. Once I’d installed a fresh copy in /usr/local/ (instead of the default Mac OS X Server /Library/Tomcat/ install) things went a lot more smoothly, although not entirely smoothly. Apache and Tomcat weren’t playing well together - The LiveTime application was serving most of the application correctly from Tomcat’s own webserver on port 8080, but Apache (on the normal port of 80) simply couldn’t get a proper connection to the Tomcat server via its Jakarta Connector.
At this point the support guy and I hit a wall and I spent the next day working though each part of the install trying to work out where we were going wrong. After a lot of hair-pulling I figured it out: it turns out that the bridge by which Apache and Tomcat were trying to communicate (mod_jk - the Jakarta module for Apache) could not get up and running because the port it was trying to use (8009) was already in use by Mac OS X Server’s iCal Server.
So - if you’re trying to install LiveTime on Mac OS X server note the following:
1 - don’t use the installed version of TomCat which comes with Mac OS X Server - install a fresh version in /usr/local or /opt/local
2 - don’t use the suggested port for the jk worker, pick another.
I’ve decided to cave-in and buy a new iPhone, I’m really looking forward to being able to code for it and the UI, but it’s the day after the announcement of the device and with a bit of sober thought, I’ve come to the conclusion that it will be a downgrade from my current phone (Nokia E61) and 1st gen iPod Nano: here’s why:
3G - the E61 which I’ve had for a couple of years has 3G, so this is just catching up really.
The E61 speaks the name of the caller, this is especially useful in the car.
The E61 has voice recognition, again, very useful in the car when you want to dial by voice.
The iPhone has no concept of profiles - the E61 will switch to the profile of your choice when it connects to a carkit, I like having a different set of tones when in the car.
The iPhone doesn’t do MMS. I don’t use it often, but I do use it.
The iPhone doesn’t act as a bluetooth modem. With a third-party app (Joikuspot) I can even get my E61 to act as a 3G wifi hotspot.
The iPhone doesn’t do sending of files via bluetooth - This astounds me, I mean really astounds me. I send contacts/photos/audio files from my phone to other bluetooth devices all the time.
My iPod Nano has a remote with FM radio, will this work on the iPhone? I doubt it.
The iPhone is only available on O2. Carrier locking is EVIL! Handsets should never, never be tightly coupled with networks, this goes against the whole GSM ethos. O2 gets no coverage in the part of the country in which I’m interested. I should be able to choose the handset that suits me and the network that suits me.
There are upsides though - the iPhone has a camera which the E61 doesn’t, although inexplicably it doesn’t do video and is only 2MPixels. The E61’s mail client is not that good. The iPhone has built-in GPS.
“The backup is too large for the backup volume. The backup requires 4.2GB, but only 22.9GB are available.”
Just posting this bug so I can reference it in a bug report. It may be my fault though, because I’m using an unsupported volume: a drive on a remote machine on my local network backed-up over airport. Worth noting anyway.
Half of the backup happens to be a disc image of the iPhone SDK.
It looks from what I’ve seen so far: i.e. nothing but the video of the Apple announcement, and a few iTunes U Apple Developer Connection introduction videos, pretty good. I’m getting more and more keen to get an iPhone. I’ve been waiting for three things before I do: Version 2.0 of the phone hardware (hopefully with GPS and 3G), the SDK and an end to the network lock-in. I hate being told that to use a specific handset I have to use a specific GSM network, it’s just wrong. Now the SDK is here, I’m weakening…
The info about the SDK looks very impressive so far - Apple taking 30% of the revenue from sales of the apps seems a little bit steep - but (in my opinion) they generally tend to be a benevolent dictator. Symbian has had voluntarily signed apps for a long time, however, very few developers bother to sign their apps, so users tend not to care or know about code signing. Even worse - when they find out about code signing it tends to confuse them. Apple mandating signing of all code means it can be seamless.
Having a single channel of delivery for iPhone apps may, to many, seem draconian and I would imagine it’s not long until someone writes an app which Apple denies distribution, yet most people find inoffensive.
I don’t know…. I’m torn - Steve’s Reality Distortion Field has really got me this time, yet I still in my heart of hearts think ‘hey - this is *my* miniature, hand-held computer - how dare you tell me what I can and can’t install on it.’
My resistance to not having a physical keyboard is also waning, and although being a Nokia devotee since I first had a mobile phone (back in oooh 1996), and therefore a Symbian fan of late - my experience with the mail client on my E61 and the limitations of Series 60 compared to Mobile OS X (network/email/voip config on the E61 is a real bore - and it doesn’t get the concept of falling back to different networks depending on what’s available) make the iPhone a very desirable next phone. Plus I’m familiar with the development environment.
I have noticed, from my limited peeking around, that there is no access to the Bluetooth functions of the phone. I could be wrong about that though. I think that the intention is that most external comms are to be done via TCP/IP over the wifi hardware.
Anyway, enough of my prattling - congratulations to all the engineers at Apple who are delivering the SDK, it’s a stunning feat of engineering.
I recently bought a GlobalSat DG-100 GPS datalogger, which is a device that records your GPS position over time, so that you can later review those data, and do all sorts of fun things. I specifically wanted it for aviation, so you can review your flight track, and see how good your navigation is and how far off your desired track you wandered.
There are Windows drivers for the device, and only a Windows utility for extracting the recorded tracks and altering it’s preferences. Normally this would preclude a Mac user like me from buying it, however, the nice people at GlobalSat have published the specifications for communicating with the device, and some people have made their own apps for talking to it. There’s a Windows .net application for it and a linux project for talking to it as well.
I’m in the early stages of writing a Cocoa app which will do the same for Mac OS X users.
Here’s another AppleScript: This one puts an xHTML template on the clipboard: Again, remove the Growl parts if you don’t use Growl.
set XHTMLTemplate to "< !DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
”
set the clipboard to the XHTMLTemplate
tell application “GrowlHelperApp”
– notify title “AppleScript Notification” description (noteText as string) icon of application “Script Editor.app”
set myAllNotesList to {”XHTMLTemplateToClipboard”}
register as application “XHTML Template to Clipboard” all notifications myAllNotesList default notifications {”XHTMLTemplateToClipboard”} icon of application “Finder.app”
notify with name “XHTMLTemplateToClipboard” title “XHTML Template 2 Clipboard” description “The XHTML Template has been put on the clipboard” application name “XHTML Template to Clipboard”
end tell”
I never remember to post these scripts which I write and often use onto the web, so that Google can index them.
So in an attempt to solve that, here we go: Here’s an AppleScript that I use often via QuickSilver. It calls Growl so - if you don’t have Growl, remove the growl parts otherwise AppleScript will ask you where GrowlHelperApp is.
set theIP to do shell script "ifconfig | grep 'broadcast' | awk '{print $2}'"
set the clipboard to theIP
tell application "GrowlHelperApp"
set defaultNotification to "Put IP address on Clipboard"
set myAllNotesList to {defaultNotification}
register as application defaultNotification all notifications myAllNotesList default notifications {defaultNotification} icon of application "Finder.app"
notify with name defaultNotification title defaultNotification description "Your IP Address (" & theIP & ") has been put on the clipboard" application name defaultNotification
end tell
Most bizarrely, no modem! This is a laptop and the modem is sold separately. That makes sense for an iMac, but a laptop with no modem?
I like the magnetic power connection - I have a ding in the corner of my PB from when it shot off a desk due to foot/power cable entanglement - and just last night I got my foot caught in the power cable again.
‘MacBook’ is another really bad name - what *is* going on in the Apple naming department?
Well - I’ve been following the discussions about the new laptop on the forums, and a couple of other notes:
FireWire 800, apparently 2 port FW800 ExpressCards are the way to go here, although Apple dropping it (built-in) on their pro laptop doesn’t signal a strong future for FW800. I assume the new Intel PowerMac-equivalents will have built-in FW800.
ExpressCards - currently there aren’t that many about, but Apple always is ahead of the game on this sort of thing - e.g. USB/No Floppy on the original iMac. Some people are worried about how long until there are GPRS/G3 cards in this form factor.
lack of modem as standard. I’m amazed by how many people seem to equate the modem with the death of floppies - lots of comments like “I can’t remember the last time I used a modem.” Do these people travel with their laptops? Have they never been to places without Cellular/broadband coverage? I suppose it’s not really a big point, since you just add the USB modem to your order, and it should last you across several laptops. However, these laptops only have two USB ports, and there goes one…
No S-Video out - I missed this first time round - I suppose we’re all supposed to have HDTVs and use DVI->HDMI cables, or perhaps the DVI->S-Video adapter that works on the PowerMac G5 / MacMini will also work on the new PowerBooks.
It seems like we’ll have to buy and carry around a lot of extra add-on bits with these new machines…
Mind you, the speed improvement is a welcome new feature, and my two-year old 17″ PowerBook should last a while yet before I need to worry about upgrading.
Someone has hacked FrontRow so that it doesn’t require the Apple Remote control. The torrent file seems dead - but you can download it from here. (Standard warning - Downloading hacked software from unknown sources could be dangerous.)
Seems to work OK on my Powerbook.
I’ve been mucking around with trying to make my own clone of FrontRow (I call it BackRow) - so far it doesn’t do anything but scroll one menu. I’m not trying to make a MediaCentre app (like CenterStage - just a remote control like thing that uses AppleScript to control other apps.)
The Cocoa Frameworks on Mac OS X have some very cool things in them.
One of the very, very coolest - that relatively few people know about, and I should imagine even less people use, are NaturalDateFormatters.
Bascially they allow you to enter a date in English-like syntax, and it will be automatically converted into a form that the computer recognises.
e.g. It’s a friend of mine’s birthday today, and another’s was a couple of days ago. I realised that I didn’t have their birthdays in the Address Book, so I added them pretty quickly, without ever looking at iCal - or clicking on the clock to get the date.
The WebStandards Project have now unleashed The Acid2 Test.
Dave Hyatt (Safari’s Lead Developer) is relishing the challenge and seems hell-bent on making Safari the first browser to render the test properly. Even better - (and unusually for an Apple employee) - he’s telling us all about it on his blog.
Any other Apple Employee showing the same level of transparency would be instantly sacked. But because WebCore is OpenSource he can, and does - and that’s groovy.
The flip-side of the coin is the IEBlog - a strange place indeed, which I have a morbid fascination with - no two posts seem to be written by the same person and it doesn’t even validate.
I woke-up listening to XFM this morning. The DJ reads out request email from a guy in the queue at the Apple Store in Regent’s Street. She seems confused as to how he was able to email and queue at the same time.
I hopped over to Oxford Circus, took one look at the queue and thought “I’m not queuing that long to get in a shop!” , turned around and went to Maplins on Gt. Portland St. instead. Not as glamourous, but there was no queue, and it was far geekier.
It’s common knowledge that we British love to queue, but it seems the Americans have a strong need to be No.1 in every field: The first three in the queue were all American. One of them goes to every opening - it appears.
I’ve been having a weird problem with iChat for the last month - I couldn’t get voice or video chats to connect (either making outgoing, or accepting incoming).
I’d start a chat, the other person would accept and I’d get an error “Failed to start because {other party’s name} cancelled.” The other party would then get this error: “Failed to start because Diggory Laycock did not respond ”
The errors would be the other way round if the roles were reversed . It looked just like a NAT or Firewall issue - but I knew it wasn’t (because I don’t use either.)
This morning I just figured it out - my VOIP softphone (X-Lite) which I have as a startup item was using the same ports (they both use SIP.)
So - if someone calls you on iChat - or you plan to call someone else - make sure that your softphone is not running.
“The combined storage for your .Mac Mail and iDisk has been increased to 250 MB. That means you now have additional room for your email messages and mail attachments, web pages, and backups. Need even more storage? You also have the option of upgrading your .Mac account to 1 GB for US$49.95 per year.”
I was seriously thinking about letting my .mac sub lapse this month - but with the increase in storage seems to be less of a rip-off.
It’s not that much more space though, is it… The common comparison is with Google’s “free” 1GB of Mail storage.
I’m not so sure that it’s such a good comparison though: These services rely on the fact that not every user will fill their space to capacity (my GMail account is currently at 0% capacity!) - so the service provider can actually have less total capacity than would be theoretically required to satisfy all their customers. (Broadband ISPs do this too.)
Even geeks have problems filling a gig of Mail usefully, but your average Joe (or Joanna) could easily stuff a gig of Video onto dotMac for streaming.
Plus with dotMac you don’t get Scary Ads that may or may not be relevant to the email you were just sent.
It seems that you have to specifically divide the space yourself.
I’ve been meaning to write a post about QS for a long time (about a month) - but didn’t think that I could really do it justice with my rather bad, terse, prose style.
Sod it - I’ll never do it justice - so I’m posting about QS now. I won’t explain it very well - but you (dear reader) can find out more by Googling or reading the docs.
QS has become an addiction for me - if I find myself using a Mac without QS installed I get very frustrated.
It all started (for me) about a year ago when a friend showed me LaunchBar which allows you to open files by typing parts of their names. I thought “wow - that’s clever, but I’m not paying for it” (I can be rather cheap like that.)
Then early this summer I found out about QS. I can’t even remember where from now… At first I thought it was just a free version of LaunchBar - but I quickly discovered that it is so much more flexible than just a file locator.
Now I use it for almost everything.
The QS Interface:
iTunes Integration:
OS X System Services Integration:
Apple (and other OS producers) have auto software update mechanisms for their own products.
Sites like VersionTracker and MacUpdate provide info for third-party updates and even provide software that will notify and download new versions for you (if you pay them a subscription.) Cheapskates like me can not pay and just subscribe to their RSS feeds. Developers must submit their own update data to these sites through an on-line form. That is they have to submit the data to both sites separately (and there are other, more obscure, sites if you want to be complete.)
Other enterprising developers have created 3rd-party software update tools - like Renew and Extended Software Updater. Renew is shareware and developers must submit their data through a form on the renew website.
Seeing a pattern?
Developers are unlikely to adopt many of these channels because it’s too repetitive - and programmers are lazy - if something is repetitive, get a computer to do it.
So That’s what I suggest:
Get computers to do it all - let’s make software update an open standard.
Here’s the plan:
1 - developers add another entry to their applications’ info.plist that is a URI.
2 - this URI points to an address on the web. At this location is an XML file.
3 - the XML file contains standardised meta-data about the current version of the application.
4 - Sites such as VersionTracker and MacUpdate should accept URIs of these files as updates. They can use the data from the XML file to update their databases.
5 - Update Application developers can now have an open market where they know that they get all apps update info without having to beg the developers to support their app.
6 - Because of the standardisation all update apps will be “compatible” - so users can choose whichever update app suits them.
7 - App developers only have to create one XML version file and then send the URI of that file to the Update web sites - sending a URI is a lot less pain than filling in a form several times. This could even be extended - developers could have RSS feeds for their XML Version files - and the update sites could subscribe to these feeds.