Blog

Tag Archives: Mac

Reginald RegEx explorer

With a desperate need to debug a lengthy regular expression destined for use with the excellent RegexKitLite library, I have quickly put together a Mac OS X application.

Reginald icon Reginald is a kindly old gentleman devoted to assisting you with those tricky regular expressions.

Provide some sample input, and your regular expression, and Reginald will provide you with colour-coded output and a list of all your matches and the corresponding capture groups for your exploration. Select a match or capture group in the list to the right, and the corresponding text will be selected in the panel to the left.

Reginald is built on RegexKitLite, and so uses the ICU syntax.

It will run on Mac OS X 10.6 and above.

Download Reginald here, or access the source on GitHub.

Reginald screenshot

Also tagged , , , | Comments closed

OS X service to filter selected text through a shell command

The UNIX shell provides a host of extremely useful utilities for modifying text. This OS X Automator service makes all of them available for filtering text in all OS X applications.

This can be handy for performing quick operations, like replacing text with regular expressions, sorting lists or swapping fields around.

When triggered, the service requests a command to use for filtering, then runs the command and replaces the selected text with the result.

Some sample operations:

  • Sort lines alphabetically/numerically: sort or sort -n
  • Change to lowercase: tr "[:upper:]" "[:lower:]"
  • Replace a spelling mistake, taking care of case: sed -E 's/([tT])eh/\1he/g'
  • Re-order elements in a tab- or comma-separated list: awk '{print $2 $1}' or awk -F, '{print $2 "," $1}'

Filter through Shell Command service

Put it in Library/Services, and it should appear in the ‘Services’ menu.

Filter through Shell Command.zip

Also tagged , , | Comments closed

The Making of Talkie: Multi-interface broadcasting and multicast

Part 2

TalkieTalkie is my newest product, a Walkie Talkie for iPhone and Mac.

In Part 1 of this series, I wrote about basic broadcasting. This works fine with one network device, but it’s worth discussing how to send through all devices, so you can communicate with others connected via, say, Ethernet and WiFi simultaneously.

So, in Part 2 I’ll write about the approach I took in Talkie for broadcasting from all network devices (a.k.a. network interfaces), so that one can communicate with others connected via WiFi, Ethernet (on a Mac), and any other network devices simultaneously.

Read More »

Also tagged , , , , , , , , , | Comments closed

The Making of Talkie: Broadcasting

Part 1

TalkieTalkie is my newest product, the result of a collaboration with a good designer friend, Tim Churchward, who did the user interface.

Talkie is a little different from many of the other walkie talkie applications on the App Store (aside from the fact that much of it was written by me from our motorhome in Tunisia!), and I thought I’d write a little about some of the tech underpinning the app, and some of the choices we made. Along the way it may get a little tutorial-esque.

  • This first part will introduce our initial motivations, and will talk about basic broadcast communications — the broadcast communications part may be very familiar to some, in which case it may be worth skipping to the next instalment.
  • In the second part, I’ll continue the theme of networking, and will talk about what I ended up with for Talkie’s network code after addressing a couple of things, including switching to multicast.
  • Finally, I’ll talk audio, dual platform development, and anything else I think of along the way (Actually, I’m aching to talk about one particular upcoming feature that had me jumping up and down when I first thought of it, but for now, mum’s the word on that one.) Read More »
Also tagged , , , , , , , , | Comments closed

DIY Twitter image hosting

Twitter doesn’t yet come with its own inline image support, so we tend to be limited to using image hosting services, and linking to them with short URLs. So, services like Tweetpic host the image, and we direct traffic to them in return.

Thinking it’s better to keep things in the family, and take better advantage of that traffic, I put together an image hosting setup of my own. Now viewers come to my own site, instead of someone else’s!

It looks like this

The setup consists of an Automator service, and some PHP smarts on the site.

Send Image to Image HostingUnder Snow Leopard, I can right-click on an image in Finder, click ‘Send Image to Image Hosting’, type in a title, then paste the URL that’s automatically been put onto my clipboard into a tweet.

Here’s how it works – this assumes a moderate level of understanding of PHP and assorted web administration. Read More »

Also tagged , , | Comments closed

Flash video cache on OS X

I just make a happy discovery: Flash stores videos it’s currently playing (eg. from YouTube, Megavideo, etc) within the /private/var/folders/.../ area.

Access it by hitting Cmd-Shift-G in Finder, typing in /private/var/folders and hitting enter, then navigate around until you see something like a TemporaryItems folder – within will be a file called something like FlashTmp0, which is the .flv file.

Copy it somewhere and rename it, and it’ll play in VLC or any other player that supports the format (like Quicktime etc with Perian installed).

Tagged | Comments closed

Keeping Flickr away from iPhoto

iphoto.png Update: Andrew made a better suggestion in the comments below that I hadn’t thought of: De-authorise iPhoto from your Flickr account, then just delete the Flickr albums in iPhoto. Thanks, Andrew!

iPhoto ’09 introduced Flickr support, so that you can post photos and albums to your Flickr account. Unfortunately for some, it has some issues: A tendency to perform mass-deletions on uploaded photosets after the initial upload. For example, for me, having uploaded several hundred images, iPhoto has deleted almost all of them on two separate occasions, requiring the photosets to be constructed from scratch.

For those who were considering using Flickr from iPhoto, don’t, and save yourself the hassle (use FlickrExport instead). For those who have and are seeking a remedy to keep iPhoto away from Flickr, read on.

I encountered the uncomfortable scenario where iPhoto had forgotten about three quarters of the images in the uploaded photosets, and upon launch, looked like it was going to delete the remainder from my Flickr account. Rather than let this happen, I force quit iPhoto, and performed the following steps to force iPhoto to forget about my Flickr account. This is a very complicated process, not for the faint of heart, but it was necessary for me to save my Flickr account:

  1. Right-click on the ‘iPhoto Library’ package, probably in the ‘Pictures’ folder
  2. For the files AlbumData.xml and AlbumData2.xml:
    1. Backup the files somewhere
    2. Open the file in a text editor
    3. Search for the term ‘http://www.flickr.com’
    4. Wherever this is found, delete the surrounding text between <dict> and </dict>. There will be one of these dict structures for every photoset
    5. Save the file
  3. Now the tricky part: Find an SQLite editor (I used Froq) and open up iPhotoMain.db within the ‘iPhoto Library’ package. To access the file, I had to copy it to my Desktop first, then open it there (back it up first).
    1. Click on the SqPublishedAlbum table to see the contents. This lists all of the published albums, including Flickr, Facebook, etc. Find the entries with a publishedURL at flickr.com, and delete them. In Froq, I had to take note of their primary key values, and manually execute an SQL query (DELETE FROM SqPublishedAlbum WHERE primaryKey = 12345). Remember those primary key values, because you’ll need them.
    2. Click on the SqAlbum table, and delete the albums with the same primary key values – if you used an SQL query as above, you can just re-use the same query but change the table name to SqAlbum.
    3. Repeat the same process for the AlbumsPhotosJoin table – in this case, you’ll need to delete entries with the sqAlbum field values matching the prior primarykey values. Something like DELETE FROM AlbumsPhotosJoin WHERE sqAlbum = 12345 will do it.
    4. Done with this database – commit and close, but remember the primary key values for the Flickr albums.
  4. Next, open up the other SQLite database, iPhotoAux.db, after backing it up
    1. Delete the Flickr album records from the SqAlbumSubclasses table. Something like: DELETE FROM SqAlbumSubclasses WHERE primaryKey = 12345.
    2. Commit and close
  5. Send a bug report to Apple

That’s it! Now, after starting iPhoto, the Flickr albums should be gone, safe at last. FlickrExport is a £12 plugin that provides better, more reliable functionality than iPhoto ’09.

Tagged | Comments closed

Google Gears issues

If you’re running (or trying to run) Google Gears under Mac OS X and persistently receive this message:

A Google Gears update has been downloaded.

Please close all browser windows to complete the upgrade process.

— It’s a problem with locks that never get unlocked. I’m not sure how this happens, but it’s easily fixed:

  1. Open a Finder window
  2. Navigate to your temporary folder:
    1. Press Command-Shift-G
    2. Type in /private/var/folders
    3. Navigate through folders to find the -Tmp- folder. For me, this is located at LW/LWyYk1hzEbCzrBJpFMdhE++++TI/-Tmp- within /private/var/folders
  3. Look for any files that look like IsRunning{gears} or IsRunning{gears}-##.##.##.##
  4. Delete those files
  5. Start/Restart your web browser, and all should be fixed
Also tagged | Comments closed