Archive for the ‘Uncategorized’ Category

Apple Open Sources WebKit/WebCore/JavaScriptCore

Tuesday, June 7th, 2005

Perhaps even bigger news than the move to Intel chips… Apple have open sourced WebKit, WebCore, and JavaScriptCore.

You can see more details at David Hyatt's blog, and there is now an OpenDarwin project page at http://webkit.opendarwin.org.

Hopefully this will make the Konqueror developers much happier… but I guess we'll see how that turns out.

Apple move to Intel…

Tuesday, June 7th, 2005

So it's official. Apple are moving to Intel processors.

The atmosphere in the SteveNote was hilarious. He came out and said it, and… well imagine a room full of 4000 stunned mullets… OMG as the kids say. If you're watching the keynote stream, look out for the Woz. There were definitely some odd looks on his face…

It certainly leaves a bad taste regarding the Think Secret lawsuit. As Ernest Miller asked Apple and CNet: Where's the Lawsuit?.

It's clear these were deliberate leaks, and the fact that the usual suspects were so silent seems to confirm the rumours of Apple paying them off to keep quiet.

I certainly don't think it's going to be the disaster that a lot of the Mac community seem to be predicting, but I am concerned about audio apps. These are often Carbon, built with Metrowerks, and make heavy use of Altivec, making them the hardest apps to produce fat binaries for. Couple that with the fact that we've already seen a huge shift to Windows for audio production over the last five years or so, and I imagine some of these companies are asking themselves some serious questions about whether they're going to continue releasing Mac versions of their software.

Considering Digidesign haven't even gotten Pro Tools LE running under 10.4 yet, I'm not going to hold my breath for a Mac/x86 version any time soon after release.

Everyone keeps asking about running OS X on non-Apple x86 boxes and running Windows on OS X/x86. I see it like this:

  • Apple won't let you legally run OS X on a non-Apple machine.
  • People will work out how to do it anyway, but you won't see vendors doing it.
  • It might actually increase Apple's mindshare, and force them to concentrate on offering hardware integration advantages
  • We'll see something like WINE for OS X/x86. Perhaps that's the only way we'll ever see a decent Exchange client. Be particularly interesting if Microsoft decide to do this, but I'd love to see VMWare for OS X.

Good to see that stalwart of the Australian blogosphere, John Quiggin getting in on the action too.

Oh and I think Daring Fireball has some crow to eat…:)

In San Francisco…

Sunday, June 5th, 2005

So after my flight to LA was delayed by two hours, meaning I had to wait around at LAX on standby for 10 hours…. I'm in San Francisco.

Registered for WWDC, about to head out and find a coffee, and then it's off to the MacEnterprise day.

All anyone is talking about is the rumour of Apple moving to Intel… which I just can't quite bring myself to believe. Maybe just in the server line, or in a new not-quite-a-computer-line, but not the desktops surely…

Anyway, at least the WWDC laptop bag is better quality this year… and the t-shirt is nicely subdued for a geek-conference-shirt.

Time to do some shopping and then bone up on CoreData and/or try and sort out RapidMetaBlog so that it can use the system-wide proxy…

RapidMetaBlog Dashboard Widget.

Saturday, April 30th, 2005

So I won the AUC Widget Challenge… huzzah! I'm keen to see the other entries as well… I'll post a link to them as soon as there is a page available.

This is a newer version than the one that was judged, with an excellent new visual design by Domenic Lattari.

Basically it lets you post an entry to your weblog, it definitely works with blojsom, both the normal version, and the one that Apple distributes with Tiger Server. It should actually work with any MetaWeblog API compatible blog server, but I haven't tested it with heaps of them.

Update: Now with full support for WordPress.

Here's a screenshot:


You can download it here.

And you can download the ReadMe file for it here

If you are interested in the source code, you can download that here. It uses CoreServices to do the XML-RPC stuff.

Open Directory error explanations.

Sunday, April 24th, 2005

So I was helping someone out who was having a mysterious error in Workgroup Manager, and they were surprised when I showed them how to find what the actual error code meant.


man DirectoryService


has a nice description of them towards the bottom:

ERRORS
     From <DirectoryService/DirServiceTypes.h>
          eDSNoErr                           =    0
          eDSOpenFailed                      =    -14000
          eDSCloseFailed                     =    -14001
          eDSOpenNodeFailed                  =    -14002

etc etc. Yes, it would be nice if Workgroup Manager actually had the slightly more descriptive name appear rather than the numeric code, wouldn't it? :)

Computer Lists and Workgroup Manager

Saturday, March 26th, 2005

The other day it was looking like we might have to bite the bullet and actually put every single one of our clients into Computer Lists in Workgroup Manager…
The horror… with no way to easily import the computers (or export for that matter), we weren't really looking forward to having to enter all those addresses by hand…

Anyway, after remembering when the Computer Lists got all out of whack and I had to manually fix up the LDAP directory, I was thinking it might be good to put together a tool that let you:

  • Import computers/lists, with decent duplicate handling.
  • Export lists altogether or individually.
  • Verify the consistency of your Computer Lists.

Anyway, I wonder what the best way to handle this is in a Cocoa app? straight C ldap functions? DirectoryServices.framework? hmmm….

Sure you can use dsimportexport to import Computer records, but I'm not particularly happy with that tool… and it gets to be a pain when you can't overwrite entries, especially when you get a lab machine's motherboard replaced…

Posting mail to mailboxes directly with Cyrus.

Monday, March 21st, 2005

So if you've followed Joel's excellent article on installing cyradm to manage Cyrus, you might find you want to be able to send email directly to shared mailboxes.

Some mail clients bork out on the default setting, so I've done this:

add this line to /etc/imad.conf

postuser: postuser

Use cyradm to create a shared mailbox, and assign “anyone” the “p” privilege, like this:

localhost> create MySharedMailbox
localhost> setacl MySharedMailbox anyone p

Restart the IMAP server, and you can then address mail to:

postuser+MySharedMailbox@my.server.address

and it will automatically be delivered straight to that folder.

I use this for Quarantine-Virus, Quarantine-Spam folders that let the IT staff see what mail is being rejected for what reason, as we don't send alerts for spoofing viruses.

dsimportexport is broken # 2

Monday, March 21st, 2005

So there's another thing broken with dsimportexport apart from not overwriting properly.

If you are importing users, and you're not specifying the uid value, Workgroup Manager picks quite a sane value for the uid for that user.

dsimportexport on the other hand, seems to just pick really huge numbers that have no relation to reality, so you need to construct this manually.

In php, I'm doing it with something like this:

function get_next_uid()
{
        $nextuid_conn = ldap_connect("my.od.master.server");
        ldap_set_option($nextuid_conn, LDAP_OPT_PROTOCOL_VERSION, 3);
        ldap_start_tls($nextuid_conn);
        $nextuid_bind = ldap_bind($nextuid_conn);
        if (! $nextuid_bind) { return false; }

        $nextuid_search = ldap_search($nextuid_conn,  "cn=users,dc=myorg,dc=au "(uid=*)", array ("uid","uidnumber"));
        $nextuid_info = ldap_get_entries($nextuid_conn, $nextuid_search);
        $current_uids = array();
        foreach ($nextuid_info as $this_nextuid)
        {
                $current_uids[] = $this_nextuid[uidnumber][0];
        }
        sort($current_uids);
        $the_next_uid = ( array_pop($current_uids) + 1);
        return $the_next_uid;
}

So when you're importing a bunch of users, call this to work out the next available uid.

Split mail by month in AppleScript and Mail.app

Sunday, March 20th, 2005

So my resurgent affair with AppleScript continues…
I was having to organise a fair bit of email, so came up with this AppleScript to split email by month.

This doesn't look at the year at all. You need to organise that on your own.

Basically it just takes the list of currently selected mailboxes in the front most window of Mail.app, and for each one, it creates a corresponding “[mailbox-name]-SplitByMonth” mailbox locally, and sub-folders for each month.

Save it to one of the Mail Scripts folders, ie ~/Library/Scripts/Mail Scripts/ and then use it from within Mail.app

using terms from application "Mail"
	display dialog ¬
		"This will split the currently selected mailboxes in the frontmost Mail.app window
		to new mailboxes by month." buttons {"Cancel", "Split Mailboxes"} ¬
		default button "Split Mailboxes"
	set splittingMailboxList to selected mailboxes of front message viewer
	repeat with splitThisMailbox in splittingMailboxList
		set shortMonthlist to {"01-Jan", "02-Feb", "03-Mar", "04-Apr", "05-May", "06-Jun", ¬
			"07-Jul", "08-Aug", "09-Sep", "10-Oct", "11-Nov", "12-Dec"}
		set fullMonthList to {"January", "February", "March", "April", "May", "June", "July", ¬
			"August", "September", "October", "November", "December"}
		set parentMailboxName to (name of splitThisMailbox) & "-SplitByMonth"
		tell application "Mail"
			try
				make new mailbox with properties {name:parentMailboxName}
			end try
			set mailboxMessages to every message of splitThisMailbox
			repeat with eachMessage in mailboxMessages
				set receievedDate to (date received of eachMessage) as string
				set monthIndex to 1
				repeat with eachFullMonth in fullMonthList
					if (receievedDate contains eachFullMonth) then
						set monthMailboxName to parentMailboxName & ¬
							"/" & (name of splitThisMailbox) & ¬
							"_" & (item monthIndex of shortMonthlist)
						try
							make new mailbox with properties {name:monthMailboxName}
						end try
						move eachMessage to mailbox monthMailboxName
					end if
					set monthIndex to monthIndex + 1
				end repeat
			end repeat
		end tell
	end repeat
end using terms from

Analog is the new Digital ?

Sunday, March 13th, 2005

So the Hipster PDA and the whole Getting Things Done system seems to be popping up absolutely everywhere these days.

I have say I'm kind of enthused about it, maybe because it kind of fits how I organise my email life, and perhaps everything else could do with a similar system…
The OS X Inventories list is useful, it has a lot of the apps I'm fond of, and the email tips are useful, apart from the auto-check one. I need five minute windows at the most on server alerts, or staff bringing a problem to my attention.

I sure couldn't live without Butler or Quicksilver anymore. They've become so indispensable I'm even considering buying LaunchBar now…