Archive for the ‘ mac ’ Category

Steven Poole: Goodbye, cruel Word

Steven Poole: Goodbye, cruel Word.

I’ve been very interested in software “minimalism” lately as every update to Microsoft Office and Firefox seems to add things I’m not interested in.

Steven Poole’s article on his quest for becoming a more productive writer is interesting to me.

Nokia Media Transfer Fails Me

Screenshot0003

First of all, it is awesome that Nokia has brought us Nokia Media Transfer, which is made to sync S60 smartphones with iTunes and iPhoto. I love it.

It will even re-encode video for playback on the handset if you want, which is pretty fun (though I keep most of my video in non-iTunes-appreciated formats) and works pretty well.

But when working with music, it will frequently fail to sync over everything it should, or does so in such a way that the playlists don’t work. The files don’t all appear to get transfered and I don’t really know why. It drives me nuts when I think I have a playlist moved over and then only a couple of songs made it. Alas!

This is still beta-level software and works well enough most of the time. I have 6GB of available storage on my N95 and tell Nokia Media Transfer to use 3GB or so for music and such—I guess more testing and fiddling is in order. I need to find out why it doesn’t move everything over it should. I am also having a hard time finding out where it is logging things, if it even does. Surely it has to be dropping trails around my computer somewhere!

Weird Volume Glitch

So here’s something weird.

I can’t use the volume keys on my Kensington keyboard anymore. I don’t know why, but when I try to use them, I get this on the screen:

what?

What’s the deal?

I think it must have something to do with iShowU installing different audio devices.

I’m scratching my head.

Move Your SVN Repository to rsync.net!

I’ve been keeping my Documents directory in Subversion (SVN) for a while now, and have found the ability to roll-back changes and view document history on any document I have to be a huge benefit to my workflow. Additionally, being able to keep different workstations in sync by using the SVN service has been a huge lifesaver.

Not only can I tell you what I worked on, and on what days, I can tell you when things were added/moved/archived and give myself a nice timeline of events that I can use to see what exactly I’ve accomplished over the last week/month/year.

So I’ve been re-organizing my bits lately, and am pulling an OS X Server fileserver out of “production” and have replaced it with an Infrant ReadyNAS NV+ with 2TB of storage online. I’m using their expandable RAID-X service, so I can bump this unit out past 3TB when I need to. This means I was going to lose my always-on multi-purpose server, however, so I was thinking about moving my SVN setup to my colo (that is currently serving you this webpage), but rsync.net (whom I love and recommend whole-heartedly for offsite backup/fileservice) have recently started supporting SVN (via ssh(1)) making it a real no-brainer.

This isn’t a dispatch solely to extoll the virtues of rsync.net—I’ll do that another time though, because they seriously are some of the most amazing people I’ve ever done business with. They happen to be the best in the industry as far as I’m concerned, and since I like the best of things, I use ‘em. And this new service they’re offering makes them even more attractive and reinforces my belief that I was wise to start using them.

Now, onward to the meat and potatoes. I did some testing and verified this works in my environment, and one of the excellent techs at rsync.net (seriously, you can’t beat these guys in any way for service provided, ethics, and support) validated my work and got me all squared away.

It turns out that all you need to do is move your existing repository (the actual directory of the repository on the filesystem) to your rsync.net home directory (or wherever you want to put it there—I called mine SVN-REWL on rsync.net ‘cuz that’s what I called it locally) and then aim your SVN commands yonder instead of the old one. It’ll Just Work provided you’re using the right version of SVN, I had an older repository I tested and it wouldn’t work due to db incompatibilities and some other harsh language.

Some people use local filesystem repositories even on their local machine just to have the version control and revision history on documents they work on. So if you’re one of those people, you can likewise just copy over the repository to your rsync.net account, and you’ll be ready to move on as well. This is pretty easy though I had never done it before, so I was a bit pensive and skittish.

When you’re in your SVN working copy, which is the local “live” version you work out of, be it documents, audio files, source code, headers, and all the other crap you can throw into SVN, you can open up a Terminal and do


svn info

…which will tell you all about your working copy, where you got it from, what the revision is, the URL and repository root, and other information.

In my case, it looked a lot like this:


.---------(rewl@cosmo)
`—> svn info
Path: .
URL: svn+ssh://cosmo/Volumes/projects/SVN-REWL
Repository Root: svn+ssh://cosmo/Volumes/projects/SVN-REWL
Repository UUID: 6cc96013-d40f-0410-a444-e0d3ce12975d
Revision: 179
Node Kind: directory
Schedule: normal
Last Changed Author: rewl
Last Changed Rev: 179
Last Changed Date: 2007-05-22 15:59:45 -0400 (Tue, 22 May 2007)

I fired up Fugu and copied over my SVN-REWL filesystem off cosmo (the household fileserver) to my rsync.net account via sftp, which took around an hour to do on my craptastic cable modem. Maybe two hours. I don’t really remember, I was busy catching up on email and feeds. Once it was there, I fired up svnX and set it up to browse my new copy of my repository.

FYI, this is the syntax you’ll want to use, if you’re on usw-s001 like I am:


svn+ssh://(userid)@usw-s001.rsync.net/(userid)/SVN-REWL

I told svnX that my username was 1096, which should be superfluous since you’re specifying one. I use ssh-agent and ssh keys, so I don’t need to give it a password, and I could instantly browse my newly-copied remote SVN repository. I browsed, reloaded, looked at old revisions, until I was satisfied.

But now what? Do I want to check out the entire thing again just to sync my local working copy against it? That sounds a bit counter-productive, don’t you think?

Of course SVN has a way to deal with just such an eventuality.

Go to your working copy and type in something like this (you’ll see what to do):


svn switch—relocate svn+ssh://cosmo/Volumes/projects/SVN-REWL \
svn+ssh://(userid)@usw-s001.rsync.net/(userid)/SVN-REWL

And svn’ll grind away for a while and make that change happen for you. Future update/stat/commit operations are successfully done against the rsync.net repository, and as expected, my output from svn info looks like this now:


.--------(emory@daydreamer)-
`—> svn info
Path: .
URL: svn+ssh://1096@usw-s001.rsync.net/1096/SVN-REWL
Repository Root: svn+ssh://1096@usw-s001.rsync.net/1096/SVN-REWL
Repository UUID: 6cc96013-d40f-0410-a444-e0d3ce12975d
Revision: 179
Node Kind: directory
Schedule: normal
Last Changed Author: rewl
Last Changed Rev: 179
Last Changed Date: 2007-05-22 15:59:45 -0400 (Tue, 22 May 2007) rewlLast Changed Rev: 179Last Changed Date: 2007-05-22 15:59:45 -0400 (Tue, 22 May 2007)

So there you have it. Moving an SVN repository to rsync.net really is painless.

Right now rsync.net is perfect for people who keep projects or documents in SVN like I do, but they don’t yet have the facility in place to allow other users to access your repository, only you. I think they’re going to be adding basic auth soon, which would allow workgroups to use rsync.net for svn and remote storage, which makes rsync.net once again more attractive than the others out there.

Thank you to the support tech that answered my questions on a Sunday afternoon 15 minutes after I sent an email. On a holiday weekend. You made my day.

The Tide is High

So while I was at Konzuk today admiring their concrete and steel jewelry designs, I saw the following advisory in the corner:

about time

Lazyweb Request: WTB: Free/Busy Exporter for iCal

I want an Applescript or something similar to look at my shit in iCal, and export a subscrib-able calendar of my availability. I don’t want details of my appointments in the exported calendar.

I just want someone to look at this and know when I’m free, or when I’m busy.

Help!

UPDATED:

Yes, I have like 10 calendars in iCal. I want them all combined into a unified free/busy calendar that has no details on my appointments.

Sorry for the ambiguity.

Clipboard Killer

Tonight I had what could have been a catastrophic copy-paste maneuver.

It was only mildly embarrassing and not really a big deal, but the potential for far, far more damning mis-pastes was suddenly very real to me. A very dear friend once told me of her compulsive re-copy/re-cut clipboard purging routine to avoid such incidents, which inspired me to create the shortest Applescript I have ever created.

Attached is the zipped standalone application version, and the “source code” (hah) is below, so you can make your own, or tune it as you see fit.

clipboardkiller

So what you do is just run this script (I like mine cuz it has a nice icon to remind me of the consequence) and leave it running in the Dock. It purges your clipboard every 25 seconds and replaces it with ”…”’s instead, which is a nice reminder that your script is running and watching your back, without potentially embarrassing you and other parties.


on idle

set the clipboard to "..."

return 25

end idle

That’s it. It makes a swell login-item. It could probably be better, but will serve its purpose well, and prevent me from mis-pasting far worse things in the future.

Download: Clipboard Killer

the Nokia E70 in review

I’ve gone back and forth on mobile email. I’ve had several different varieties of the BlackBerry device, used a GoodLink’ed Treo, and after taking a long break I’m trying to get back into using mobile email sanely.

I was having a hard time doing this on my N73, so I thought I’d pick up an E70 instead.

2007-02-24 at 16-32-14 2007-02-24 at 16-32-32

It has WiFi, Bluetooth (of course), the S60v3 OS, a 2MP so-so camera, and a SIP client (untested so far), and also the Apple WebKit-esque browser and runs a wide variety of software for the S60 platform.

Mine isn’t operator locked and branded, so I don’t have to worry about not using self-signed certificates for network services and application installation.

So, we have my Levenger Shirt Pocket Briefcase, which lives in my back pocket most of the time, or in my front pocket with a big bankroll I get from all the donations I keep getting via PayPal for writing consistently great product reviews. Hint. And the Nokia E70, and a Nokia N73 for size comparison. And, what the hell, I tossed in a BlackBerry 7290 as well.

The E70 has a very serviceable keyboard.

2007-02-24 at 16-33-14

The keypad in “phone mode” is quite solid and good. I really like it a lot, actually. The keys feel solid and the joystick feels better than the one on the N73. There is also a button on the side for activating the Voice Recorder application, which I think is pretty awesome. You apparently can retask it for a push-to-talk application if your operator supports it. T-Mobile USA doesn’t support much of anything, so I’m not holding my breath, and honestly the day I take a push-to-talk on a phone from anyone is the day I throw myself off a bridge.

Folding out the E70 reveals the keyboard, of course.

It takes a little getting used to, and honestly I don’t think I’m as fast on it as the BlackBerry but this is mainly because the BlackBerry has amazing autotext functionality that S60 does not. For example, if you hit space twice on a BlackBerry, you get a period, if it thinks you’re typing an email address because you’re in a field that says “Email Address”, a spacebar will put in a ’@’ for you. Little things like that and only having a little bit of travel in the keyboard makes the E70 seem a bit too spread out. And if you have small girlish hands like I do, the E70 is a cinch to thumb on, but if you have bigger hands, the proximity of the keys and the shallow travel in the keyboard will be problematic, as the keys are very close to one another without the distinct separation between them that the Treo and ‘Berry have.

Some weird things about the keyboard are they rearranged some keys a bit. I have no idea why they did this other than to be easier for people to reach commonly used symbols, but if you’re making a QWERTY device I think people expect to have the symbols in the right place. On the other hand, having no room for / + = and ” as well as commonly used accent characters in a small space was surely hard to pull off, and since you’re looking at the device and its keyboard anyway, it doesn’t really annoy me too much. The keys are in the vicinity of where you’d expect if they’re not exactly there, and you don’t spend much time hunting around. It isn’t like you’re going to touch-type on this thing.

So, why mobile email? And why on S60 instead of the BlackBerry or a Treo?

Will, simply put, I like the S60 OS a lot better at the end of the day than the Treo or the BlackBerry, and if I wanted BlackBerry email I could get that on the E70 anyway, and the PIM functions on the BlackBerry are archaic and the GoodLink’ed Treos have a disconnect between your server-side PIM functionality and the built-in functions which makes synchronization a bit of a pain in the ass if you’re not using Outlook and Exchange.

I use IMAP. I like it a lot. The S60 IMAP client has gotten very good over the years, and it even does IMAP-IDLE pushes now, though Apple’s Cyrus server in Mac OS X Server doesn’t support IDLE, so I can’t use that. I have scheduled email checks every 30-60 minutes or on-demand for when I don’t want the interruptions. I like the option to really send emails that aren’t one-sentence long because I’m really just not interested in carrying a laptop everywhere I go anymore.

Another thing I like a lot about the E70? It doesn’t spastically flash LEDs at you like a neon sign outside a liquor store coaxing in the alcoholics with promises of gratification. In fact, in the current firmware, you can’t even turn it on if you wanted to. There is an LED, it just isn’t being used today. No idea why. Don’t care.

So the E70 has two primary modes of operation, one where it is flipped closed and awfully phone-like. The design of this is quite good though it could have been more elegantly designed while still retaining a professional, almost un-interesting appearance. I also don’t like that has such a plastically feel. The upside is that it feels sturdy, not frail at all. And the hinge mechanism for the keyboard fold-out maneuver is solid. You’ll hear no complaints about the feel of that piece from me.

When you crack it open the screen rotates into a different orientation for you, as expected. Apparently the earlier firmware was really slow about this, but the version I’m running (2.0618.07.10) seems to be very responsive to me. There are the odd hangs now and then, and it is my hope that Nokia is still refining the firmware on this device because it is still in the 2.x range, and typical wide-release production firmware is 3.x from Nokia.

Now before we go on a bit, I’d like to tell you that I know I’m using a very strange theme. I like it because it is so odd. It clashes nicely, if there is such a thing. Since it is so easy to do, I swap themes every other day or so and there are hundreds and hundreds of them available and I like mixing it up a bit.

So, with the flip closed and the device in “Hello my name is mobile phone” mode, we have an active standby display that is user-customizable and lets you view a mailbox on your dashboard there, and also assign shortcuts to some of your most used applications.

For those unfamiliar with the S60 UI, the bottom left and right corners are soft-key mappings depending on what application you’re in, or in what context they’re visible. Usually it’ll be things like “New” and “Back/Exit” or “Options” and “Write” when I’m in my IM client, you get the idea.

Screenshot0013.jpg

Now, since I’m lazy, I haven’t redone this screenshot yet. I took it while it was in the middle of re-drawing the screen after opening it up, so this may lead you to believe I was being too kind about the redraw time. I’m not going to lie, it isn’t instant!, but it is quite quick and doesn’t really slow me down any.

Screenshot0012.jpg

Getting online with the E70 is a cinch, I use my mobile operator’s data service (T-Mobile USA EDGE) and it is plenty quick for pulling and sending emails as well as browsing. And the E70 also has a built-in RSS reader, so I can put my favorites or my current high-priority feeds in there but I usually just use NewsGator Mobile web interface, even though I have some gripes about it. I’ll save that for another time.

But when you’re at home, or the office, and have WiFi available, of course it is faster. And of course you’ll want to use that, especially if you’re on metered data service. I have a flat-rate unlimited EDGE connection for USD$19. I don’t go out of my way to use WiFi but I use it at home.

The real reason this device has WiFi though, is for the SIP client allowing for VoIP calls on the handset itself, which is pretty bitchen, though I haven’t had the time to set it all up yet. I’m very curious how well it will work, though from what I’ve read online, people are having good results with it.

Screenshot0029.jpg

The SMS/MMS/Email messaging application is standard fare, though S60 has gotten so much better about this over the years it makes my head spin. It used to be horrifying. It has improved dramatically, actually making email management and triage useful instead of something that makes me want to beat my head against the wall.

Screenshot0010.jpg Screenshot0009.jpg

Know what I can’t do though? I can’t move something from Inbox to @ACTION. I don’t know why. I think it has to be a bug that you can’t move messages from one folder to another in the S60 email client. It has to be, right? Surely this is something that was just overlooked during QA. That would make this device fantastic as a triage device. In the meantime you could use an application like Profimail though I really like to use the integrated client whenever possible.

The archive function is good, you can copy messages into folders locally on the device, of any variety. By default it only retains X numbers of messages you send out, so you can raise that threshold if you want to archive both sides of a text/mms conversation, or whatever.

I presently have over 900 SMS and MMS messages saved as copies on my handset. I’ve had an S60 device for quite a while. And if you store your messages on the storage card (mine is 1GB) you can move it from handset to handset and always have your same message library available to you. Nice!

Again, I know the theme is a bit in-your-face, but this is the visual indicator and alerts for new emails and SMS messages:

Screenshot0008.jpg

The icons in the grey bar towards the top, in order of appearance are: WiFi » Bluetooth » new email » new SMS.

Missed calls and such will also show up there.

The calendar functionality in S60 sucks. If you don’t believe that, you’re wrong. And iSync on Mac OS X used to work better than it does today, but it has always been flakey. All-day events show up as 00:00 – 23:59 “meetings” on the handset when they’re synced over from my Mac. You can make a proper all-day-appointment (or, in S60 parlance, “Memo”) on the handset, and even sync it back to your Mac and then sync again and have it stick around, but you cannot initiate an all day event in iCal, and have it sync over as a “Memo” on a S60 device.

But I found a really nice-looking and very flexible application that touches the same event database as the standard Calendar and Task application, which uses more of the functionality of the backend engine as well as having a much nicer UI.

To top it all off?

It sees 00:00 – 23:59 meetings as “anniversaries”, which isn’t the same as a “memo”, but it’s good enough for me. No more twenty four hour meetings. I’d like to take this time to shill a bit for the developers and the application, SBSH and Papyrus for S60

Screenshot0003.jpg

Isn’t that nice?

So the vast majority of my tasks live on 3×5 cards along with project materials and all the other things I work on. The only thing I use “tasks” for on my mobile phone are things I want to be reminded of without booking an appointment to do so. This will be things like “Don’t forget to ask so-and-so about blue,” and “schedule time to do whatever”, if I’m not convinced I’ll have it on a card (cuz sometimes I write these reminders on the go and may not have the relevant materials with me).

If you don’t know what I’m talking about when I say “project card”, “context card” or “action list,” you may want to read about how I use track projects and process workflow in my paper on the subject.

I really like the E70 a lot. I think the camera kind of sucks but I like having one for those situations I need to capture something, and I don’t expect Nokia to go all-out on a nice camera for such a device. Indeed, I’m glad it is there at all, and 2MP is about the lowest I’m willing to go anymore, since the N73’s 3MP camera gets very good results.

The 2MP camera is perfect for capturing whiteboards, index cards, notes, sketches, doodles and other things to share, as well as emergency candids.

While the E70 has a media player and can do videos and audio, I don’t really use those functions that much, and the N-series devices do it better. But if you’re wondering, you can in fact play music off the E70 and use headphones via a Pop-Port adapter or use Nokia’s music headphones, which have a nice mic lead on them so you can listen to music and take calls without unhooking yourself. You can push audio over via Bluetooth or with a card-reader, so you can easily enough shove some podcasts or favorites onto the E70 and take it with you. The memory card lives under the battery door, but not under the battery. This is alright, I guess, but I usually want my memory cards a bit more accessible.

It folds up into a reasonable shape and size while still having a full QWERTY deck available on-demand, and feels like a phone when you’re talking on it, instead of a saucer like the full-format BlackBerry devices. Bluetooth audio seems a bit fuzzy to me compared to other handsets, I’ve tried a few headsets with it and had similar results. The audio quality on-handset is quite good, however. I really like the sound reproduction on this device, and find calls to be very clear and clean.

I’m using a Euro-spec E70, so I’m using GSM 900/1800/1900 on this one. I can’t comment on the US-specific release with 850 in lieu of 900. I don’t know how well it works on Cingular because I don’t care. When Cingular lets me have unlimited unfettered data service for USD$19 I’ll start paying closer attention.

Having an email and messaging device that isn’t obnoxious and with a nice OS under the hood has been really quite pleasant. It has freed me up from my desk a lot, and has allowed me to stay in touch a bit better with people that are important to me, and since it isn’t an office email device, I don’t feel like I’m being taken advantage of by The Man. No work email gets to my handset. I probably would check office email now and then if I could, but my employer doesn’t allow such things unless it is on a company-monitored and supplied device. Nothanks!

Now that the more immediately useful parts are out of the way, I’d like to conclude with a few things for the nerdery:

Screenshot0024.jpg

Yes that is the Python shell. Turns out there is a pretty complete Python implementation for S60, and so I’ve been playing around with that a bit making little widgets and learning more about the language. I have been hearing an awful lot about Python lately and decided I may as well look into it a bit more seriously. I use it a bit for the Jabber to AIM gateway I use and also use Python a bit at home, but never really hacked at it much.

Nokia actually gives you access to UI elements, Bluetooth, the Messaging system and other bits via the Python implementation. It is really quite ready for application development and prototyping.

But of course where there is QWERTY, there is a PuTTY.

Screenshot0022.jpg Screenshot0023.jpg

So if you’re ever inclined to login to a remote host to do a little troubleshooting, use a proper IRC client, or show off, you can do that too.

I’ll be interested to see how the new Nokia E90 Communicator will compare to the E70. I know I’d like the display a lot better and the camera is much better, as well as having an integrated GPS and Navigation system. So I’ll probably want to upgrade when I can, but in the meantime, the E70 has been a real treat to live with for this past week.

I purchased mine from MyWorldPhone. And I ordered one from CellHut.com, and I wouldn’t ever recommend them to anyone I liked because I canceled that order and they still haven’t given me back my $420. I’m going to have a very strongly worded conversation with CellHut tomorrow afternoon.

What happened to PocketMac?

PocketMac used to be this really responsive, fantastic company to deal with.

But lately they’ve been really a pain to deal with. The weird marketing emails, etc. And when I followed their instructions to unsubscribe from their spambot, I got a nice delivery failure.


This is an automatically generated Delivery Status Notification

Delivery to the following recipient failed permanently:

unsubscribe@pocketmac.net

Technical details of permanent failure:
TEMP_FAILURE: SMTP Error (state 9): 452 <unsubscribe@pocketmac.net> Mailbox
size limit exceeded

Nice. Way to go, guys. You got so many unsubscribes that your mail server started rejecting them.

You’re not imagining it, iSync really is broken for S60 V3 devices.

iSync via SyncML on S60 handsets is broken.

Badly.

It used to be that iSync would push over a little binary that ran a daemon to negotiate iSync communication between your Mac and your S60 handset, which dutifully listened for iSync connections and did a sync.

Now, this process has been broken from the start, due to completely obliterating speed dials and contact groups on the handset. It also blows away custom ringers on contacts and groups because it completely trashes the database on the handset with each sync.

There are not many options to mitigate these problems, save the speed-dial problem. You can use a different handset (hah!) or some software for Windows PCs to manage the actual contacts and numbers on the SIM itself, and SIM-dial those contacts with ease.

Once you have your most important contacts put to positions on the SIM you can dial them easily from any S60 handset by dialing “(SIM position)#” which will then pull the number up for you, and then you just hit the Talk (green) button. Works well, it is just very difficult to manage the SIM contacts from the S60 handsets out there. I don’t know why Nokia doesn’t do something about that.

I’ve been suffering in near-silence with the way that iSync thrashes the contact database on S60 handsets for years. I would love to use contact groups to manage my interrupts depending on what profile is active on the handset—you can set the handset to allow people in the Family group to call you after 10pm, for example. But you can’t do that when every time you sync your handset to your Mac the Family group gets blown away. Thanks, Apple.

But once Apple started using SyncML natively from iSync direct to the S60 handsets we lost yet another feature that I was taking for granted:

All day appointments.

If you have an All-Day appointment in iCal, iSync now gets them into the handset as appointments from midnight to 11:59. Yes. And it totally sucks. Hard. Your only option is to stop syncing over All-Day appointments, which makes it awfully hard to check your calendar for vacations, holidays, and when you’re not going to be available for an appointment and you’re surfing your calendar at the Doctor’s office or something.

The handsets prior to S60 V3 can be configured to do things the old-fashioned way with the old iSync agent by changing some of the iSync plists, but the iSync application for the handset doesn’t work on V3 devices and will just crash out on my N73 and my E70. So here I am, with handsets I love except that Apple breaks them when Mac OS X touches them.

To recap:

  • iSync eats contact groups.
  • iSync eats custom ringers for groups and contacts.
  • iSync eats your speed-dials (but you can use SIM dialing of course)
  • iSync eats your all-day appointments and breaks them into 24-hour appointments.

It is absolutely infuriating. You’d think I was asking for a pony, but I’m not. I just want working synchronization to modern handsets.