Archive for the ‘Projects’ Category
Making slow progress…
So really haven’t been in the right frame of mind these past few days to do any sort of creative/constructive work, let alone work on my iPhone applications… but I did have a burst of creative energy today to make some updates:
Hopefully once I get my life back together, and feel more comfortable with Apple’s stupid Interface Builder, I will be posting screenshots of my other highly anticipated titles, like MobileTwitter. Until then, I do appologize to everyone for the delay.. hit a big big unexpected roadbump in life.
The AppStore is Coming - Will MobileTwitter Be There?
Unfortunately the short answer is no - the long answer is: I built MobileTwitter because the current solutions available for the iPhone at the time didn’t cut it, in terms of usability, iPhone-like UI, and features.
It is widely known that Iconfactory will be releasing the iPhone version of Twitterific (and Twinkle will also be making an appearance to the AppStore at launch I suspect) - I am fully expecting/hoping that Iconfactory’s iPhone Twitterific will be satisfactory, and I plan to be using it myself.
If it is not, you will see an official version of MobileTwitter for the iPhone AppStore.
I do have plans to release other applications on the store in time, but unfortunately Apple has not accepted me into the paid developer plan - so while I may have new and exciting applications cooking, I am unable to distribute them to the masses (*frustration*).
I will continue to maintain MobileTwitter for JailBroken devices, currently only up to Firmware 1.4 - I have no idea of the “JailBreaking status” for the new firmware… so can’t make any garuntees that MobileTwitter will make an appearance for that firmware.
Twitter + Last.fm: A quick ruby script
There’s all sorts of automated twitter posting now adays - you see it a lot for “new blog posts”, but not once have I seen a Twitter/Last.FM post.
For some reason I wrote this last night (even though there is no free time in my schedule at all lately) - as a quick exercise in using Ruby.
Once the script is run, it will suck down my Last.FM recently loved feed every 5 minutes - if the last song loved has changed, then it posts the name of the song, and the Last.FM url to my Twitter account (so that folks can listen to the song too)
#!/usr/bin/env ruby
# @author: Nicholas Pike - npike@npike.net
require 'net/http'
require 'rexml/document'
# Twitter account information
TW_USER = 'twitterusername'
TW_PASS = 'twitterpassowrd'
# Last.fm username
LF_USER = "lastfmuseraname"
# DO NOT CHANGE BELOW THIS
TW_URL = 'http://twitter.com/statuses/update.xml'
LAST_FM_URL = "http://ws.audioscrobbler.com/1.0/user/#{LF_USER}/recentlovedtracks.xml"
# temp variables
last_url = ""
first_run = 1
def postToTwitter(message)
begin
url = URI.parse(TW_URL)
req = Net::HTTP::Post.new(url.path)
req.basic_auth TW_USER, TW_PASS
req.set_form_data({'status' => message})
begin
res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req) }
case res
when Net::HTTPSuccess, Net::HTTPRedirection
if res.body.empty?
puts "Twitter is not responding properly"
else
puts 'Twitter update succeeded'
end
else
puts 'Twitter update failed for an unknown reason'
# res.error!
end
rescue
puts $!
#puts "Twitter update failed - check username/password"
end
rescue SocketError
puts "Twitter is currently unavailable"
end
end
while true
# get the XML data as a string
xml_data = Net::HTTP.get_response(URI.parse(LAST_FM_URL)).body
doc = REXML::Document.new(xml_data)
if ( doc.elements["recentlovedtracks/track[1]/url”].text != last_url)
puts “No match”
last_url = doc.elements["recentlovedtracks/track[1]/url”].text
last_artist = doc.elements["recentlovedtracks/track[1]/artist”].text
last_name = doc.elements["recentlovedtracks/track[1]/name”].text
message = “Last.FM: #{last_name} - #{last_artist}\n\n#{last_url}”
# Dont send a twitter message on first run of script
if (first_run != 1)
postToTwitter(message)
end
first_run = 0
else
puts “No change”
end
sleep 200
end
Coming Soon: MobileTwitter - Twitter Everywhere! (iPhone/iPod Touch)

There are many great iPhone web applications for using Twitter on the go - but the selection of native iPhone applications is surprisingly lacking. The iPhone rocks for easing access to your data on the go - A streamlined, clean, and functional Twitter application just feels like a natural fit.
MobileTwitter is written using the iPhone SDK - so it runs smoothly on your iPhone and iPod Touch.
Features:
- View the timeline of the yourself, and the friends you follow
- View the public time line - keep tabs on the internet world!
- Send updates to Twitter on-the-go (Over wifi or EDGE) with the iPhone’s awesome touch screen
Many more features are planned and will be implemented - suggestions are welcome.
Where can I get MobileTwitter? You’ll have to wait for it to appear on Installer.app (can take some time for a trusted repository to add a new application) . More screenshots available here.
Coming soon… Google Calendar Notifier 3 for Firefox
Fear not… I have not abandoned this project - life has just been incredibly busy, and the extension was at a level of functionality that worked for me. To top it all off my trac (issue management) database broke with an upgrade of python and I have not been able to fix it.
Last night I setup MantisBG on my staging box, and got it working with my subversion repository that currently holds all my code. I have begun recovering tasks from trac, and putting them into Mantis - once that is finished I will begin work on the first Milestone for GCN3 (which will be a complete rewrite of the extension, that I started several months ago but never finished).
I expect the following in the first Milestone:
- Firefox 3 support
- Basic features, completely utilizing the GData API
- Won’t be requiring users to manually import their feed URLs anymore
- The complete rewrite of the Core code will fix many many existing bugs that plague current users (thanks for bearing with me here folks)
- Better localization
- Other then that, no new features for Milestone 1.
iXboxLive for iPhone/iPod Touch
Took some time this evening to spruce up the iPhone/iPod application a little bit, screenshots below!
(http://code.google.com/p/npike-touch-xboxlive/)



Introducing: XboxLive/XboxStatus

No download available yet, details to come.
Introducing: DorkBook
![]()
So I’ve gotten in the habit of cooking with my iPod while making dinners for Jenn and myself. My current approach is sadly not very graceful:![]()
- SFTP to iPod
- Copy recipe into a new text file in my home directory
- On the ipod, open the Terminal.app
- and use “more” to open the text file in the Terminal
So not graceful at all - but still very awesome. Jenn always seems to make a point to call me a Dork while I cook in this manner. So I have created my first public consumption iPhone/iPod Touch application: DorkBook
It’s rather basic at the moment, and the general procedure for putting a recipe on my iPod remains the same, I just no longer have to view it in more or vi.
Launching the program will show you all the recipes stored in ~/Media/Recipes, and touching a recipe will display the recipe complete with ingredients and instructions. (With a nice sliding transition between screens that I worked all night on)
I’ll put a download link up later, and hopefully will get the application added to the infamous Installer.app that just about every jailbroken iPhone and iPod Touch is certain to have.
Projects: Snarl & Last.FM
Long story: My iPod touch notifies a website called Last.FM when I listen to music. If your not familiar with LastFM here’s a quick run down: Last.FM allows you to “scrobble” the names/artist of songs you listen to, and share this information with anyone an the internet. So if you go here you can see what music I have recently listened to on my iPod/computer.
So being the huge geek I am, I wrote a quick C# application that watches Last.FM for updates to my “Recently Played Tracks”, once it finds a change, it notifies me on my work desktop in a nice little bubble (see picture above).
The bubble is done with a program called Snarl, which aims to replicate GROWL functionality (an OSX notification subsystem) on Windows. (This is very hit or miss, mostly miss.)
So why did I do this? Too lazy to look at the iPod to see what the track names are ;-)
Below is the source code for the quick and dirty C# application, that makes use of external process launching to send messages to snarl, and WebClient to retrieve updates from Last.FM
Quick Experiment: Google Charts on Bungie.net
Google Charts API is now public, so I took a few minutes to experiment today: Placement Stats Pie Graph for Bungie.net (Halo 3 stats).
So whats the deal with Google Charts? Basically you create a crazy URL to Google, and they send you back a nicely rendered chart to use anywhere you like - dynamically generated. Using Greasemonkey I scrape the Bungie stats page to generate chart information, and then inject the resulting image back into the page.
Pretty cool - code linked here.


