Just a quick note to say the RSS feed for this blog has changed. Please update your feed reader to use:
New Year, New start. Hello CitySafe
As of January this year I'm pleased to announce I will be working with the team at CitySafe.
CitySafe build tools to help emergency responders collaborate and communicate. These include mission critical apps in use daily by the Police, Government, and high profile financial and retail institutions. It's predominately Ruby (on Rails) based so I'm looking forward to getting stuck in.
For those of you wondering about Working With Rails.... This remains under ownership of DSC and I have passed all the day to day running over to colleagues there. Prior to my departure I ensured that the Hackfests would continue up until March. Much thanks goes to Josette @ O'Reilly for the RailsConf ticket prizes.
All in all WWR has been an amazing project. I'm so pleased to have created it and see it grow from strength to strength benefiting the community so greatly. Many thanks to everyone who uses the site and contributed in some way over the past year. It has been fantastic to have your input and feedback.
I've heard many success stories from developers starting user groups as a result of finding each other on WWR, to getting a job through recommendations, collaborating on projects or helping to get Rails adopted in their workplace. Not forgetting to mention the numerous prizes given away through the regular Hackfests.
I hope it has benefited you in some way and continues to do so. Thanks everyone!
Stay tuned...
Continue to keep up with my news via this blog (rss) and via Twitter
VirtueDesktops alternative for OS X 10.5 (Leopard)
Just upgraded to Leopard and sad at the loss of VirtueDestkops? Spaces not doing it for you? Read on...
Background
When Leopard was announced Spaces was touted as the replacement for VirtueDesktops. This lead to Tony Arnold the main developer of VirtueDesktops downing tools and declaring VirtueDesktops dead.
So everybody waited in anticipation for OS X 10.5... only to find Spaces not living up to their expectations.
So why the big fuss?
With the advent of 10.5 Apple has tightened up the code such that no other Desktop managers properly work on top of Leopard. This leaves many followers of VirtueDesktops little or no choice than maybe to change their working practices to Spaces or find alternatives....
1. HyperSpaces
From the creator of VirtueDesktops comes HyperSpaces. Unfortunately this isn't set for launch until 2008 and it also isn't clear if it will have the same rich feature set that VirtueDesktops has.
2. YouControlDesktops
![]()
YouControlDesktops has probably the closest functionality you are going to get to VirtueDesktops. The interface for configuring things isn't as intuitive or slick as Virtue but it's not such a big deal since you'll not need to use it that often.
Currently there is a beta version for 10.5 that works pretty well but there is some kinks. Namely issues with the Dock not always getting context when it should.
So in summary the solution is not perfect but it's the best I've found so far. Download the beta and provide the developers with feedback, hopefully we can help push this forward.
Mephisto gets a core team
Good news for Mephisto users. The core team has been decided and the ideas for the 1.0 release are being finalised.
Interestingly enough there may also be a push to switch over to using Git which is gaining a bit of traction in the Rails community. I'm an avid user of SVK and gave Git a try a while back but stopped short after hearing tales of woe with git-svn... I may revisit at some point.
"script/generate undo" plugin released
Grab it while it's hot:
script/plugin install svn://rubyforge.org/var/svn/beyondthetype/undo_generator_plugin/trunk
Key Features
- Undo any generator command
- Keeps a log of all generator history in log/generator.log
- Prompts before undo'ing any commands
- Even works when you bail out of a generator command part way through
script/generate undo
Here is small idea I've had for sometime that I quickly knocked up yesterday.
Generators are great but we have all had those "Oops!" moments where you realised that what you created was not quite what you wanted to do. Enter script/generate undo....
script/generate model WrongName
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/wrong_name.rb
create test/unit/wrong_name_test.rb
create test/fixtures/wrong_names.yml
exists db/migrate
create db/migrate/001_create_wrong_names.rb
.. ....
oops.. didn't want to do that.
script/generate undo
Undo'ing: model WrongName
notempty db/migrate
notempty db
rm db/migrate/001_create_wrong_names.rb
rm test/fixtures/wrong_names.yml
rm test/unit/wrong_name_test.rb
rm app/models/wrong_name.rb
notempty test/fixtures
notempty test
notempty test/unit
notempty test
notempty app/models
notempty app
Under the hood all it is doing is keeping a log of your generator history (see /log/generator.log). When undo is called it looks at the last log entry and passes it onto script/destroy. Pretty simple stuff but it saves you having to remember what it was that you typed previously.
The patch as it stands is pretty rough and ready. I'm posting this here to get some feedback to gauge whether it's worth pursuing further.
UPDATE Plugin on the way. I've created a new project on Rubyforge for any plugins I make - it should be setup soon. (just waiting for approval)
UPDATE 2: Plugin now released. See this post
N95 update - 3 months on
Sometime ago back in May I bought a Nokia N95. I summed up the good and the bad about it. Nearly three months on I thought it fitting to revisit the issue. (also it seems it's been far too long since I posted here)
My impressions now? I like it, just not quite as much as when I first got it .. like all things I guess the little niggles get frustrating after a while.
The bad
- Sluggish interface.... I'm not sure why this happened but when I got the phone all was sweet. However at some point things started to slow down.. There is a notable delay between selecting apps and an even worse one with the camera. This seems to happen to all the N95 users I have met and nobody has found a solution yet.
- Sluggish camera... Ok, this is the same thing but waiting up to 10-20 seconds to get the camera ready just to take a shot only to miss the moment totally sucks.
- Fiddly keys - the keypad is pretty cramped and it's easy to press a button when you didn't want to
- Finding people - Sony Ericsson have a really nice feature where names of the people you most text / call are easily available when sending a text. On the N95 you have to hunt them down each time.
The good
- Using it as a 3G modem to connect to the Internet absolutely rocks. I've tried the Vodafone datacard before and this is just so much nicer and more reliable.
- Using it as a stand alone web browser - works well on it's own too. View sites, even with flash content.
- Sync'ing with your iTunes collection - Nokia recently released Media transfer software
- Watch TV on the go.. a while back T-Mobile where offering their tv streaming service for ITN, Channel 4, Big Brother etc It worked pretty well for catching up with things. It kind of worked OK but you def need a high quality 3G reception. It was free but I think you need to pay a monthly fee now.
So all in all you can see I got more bad points this time round. I'm aware there is a new firmware update that I can download which apparently addresses some of the camera issues. Also I got a 4GB memory card from Mobo memory - great for storing movies, pics, and music without having to worry about it getting filled up quickly.
3 ways to win with Ruby On Rails
Everybody likes to win something and it's great to see several sites putting on contests of late. Here is the list of the ones I am currently aware of:
- Working With Rails Hackfest - win prizes for contributing to the Rails framework
- Rails Cast contest - win prizes for contributing Rails documentation patches
- Award on Rails - win 1 million Yen for the best Rails app
All good!
PS: I might put this on the Rails Wiki as a permanent page. That way it can get updated as new contests come to light.
Guide to installing git on a (Intel based) Mac
Ever used SVN or SVK? Git is another source code management (scm) system that has been getting a fair bit of attention of late. I recommend giving it a try if you haven't done so already.
Unfortunately it can live up to it's name when it comes to installing on an Intel based Mac. More so if you recently migrated from a PPC Powerbook and hadn't updated your Darwin ports. All your libraries are likely to be compiled for the wrong architecture leaving you with messages like this:
/usr/bin/ld: warning /opt/local/lib/libz.dylib cputype (18, architecture ppc) does not match cputype (7) for specified -arch flag: i386 (file not loaded)
The long and the short of it is that you will need to re-install darwin ports from scratch and then do a manual install.
Here are the steps you take:
Make sure you have the latest version of XCode: http://developer.apple.com/tools/download/
Remove ports (this will be the case if you have installed ImageMagick or similar in the past) See http://www.nabble.com/I've-hosed-my-ports-install,-clean-slate-install--t3868686.html
Always backup before you do these kind of things, esp if you depend on anything in your ports install
Reinstall Darwin ports: http://darwinports.com/download/
Install git through ports (this only gets you the 1.4.2 version though)
sudo port install git-core
At this point you could just stop but if you want the latest and more advanced features its worth
carrying out a manual install. Especially if you want to transfer files from an existing SVN repo.Install git manually (now you have dependencies from the dawinports install)
cd /usr/local/src curl http://kernel.org/pub/software/scm/git/git-1.5.2.1.tar.gz > git-1.5.2.1.tar.gz tar -xvzf git-1.5.2.1.tar.gz cd git-1.5.2.1 make configure ./configure --prefix=/usr sudo make install
Test it out
martin$ git --version git version 1.5.2.1 martin$ git-svn --version git-svn version 1.5.2 (svn 1.4.3) martin$ git usage: git [--version] [--exec-path[=GITEXECPATH]] [-p|--paginate] [--bare] [--git-dir=GIT_DIR] [--help] COMMAND [ARGS]
The most commonly used git commands are: add Add file contents to the changeset to be committed next apply Apply a patch on a git index file and a working tree archive Creates an archive of files from a named tree bisect Find the change that introduced a bug by binary search branch List, create, or delete branches checkout Checkout and switch to a branch cherry-pick Apply the change introduced by an existing commit clone Clones a repository into a new directory commit Record changes to the repository diff Show changes between commits, commit and working tree, etc fetch Download objects and refs from another repository grep Print lines matching a pattern init Create an empty git repository or reinitialize an existing one log Show commit logs merge Join two or more development histories together mv Move or rename a file, a directory, or a symlink prune Prunes all unreachable objects from the object database pull Fetch from and merge with another repository or a local branch push Update remote refs along with associated objects rebase Forward-port local commits to the updated upstream head reset Reset current HEAD to the specified state revert Revert an existing commit rm Remove files from the working tree and from the index show Show various types of objects show-branch Show branches and their commits status Show the working tree status tag Create, list, delete or verify a tag object signed with GPG (use 'git help -a' to get a list of all installed git commands)
Done!
In summary
This is all bit a convoluted to be honest so if you have a better way then please feel free to chip in. Hopefully though if you end up in the same situation this might be the helping hand you were looking for.
Further notes
Note: to get the docs to install you need to also install
sudo port install xmlto
sudo port install asciidoc
However I kept encountering time outs trying to pull libxslt (a dependency) from an external source so I moved on and skipped the docs for now.
If you want to use the git-svn command and end up with messages like this: "Can't locate SVN/Core.pm in'. It might because you installed SVN from an installer. In which set the perl lib path to the parent directory of where SVN/Core.pm is located. In my case:
export PERL5LIB="/usr/local/svn/perl/darwin-thread-multi-2level"
References:
- http://git.or.cz/ - git homepage
- http://www.kernel.org/pub/software/scm/git/docs/tutorial.html - git tutorial
- http://utsl.gen.nz/talks/git-svn/intro.html - intro for those coming from SVN / SVK
Thanks to:
- Peter Cooper - for ports suggestion
- Philip McCarthy - systems admin
Quote of the day - DHH on designers
"Now there is dynamic real pieces of data. They don't have to use Lorem Ipsum to fill it up with crap."
DHH on designers using Rails view templates from the Scott Hanselman podcast
Nice podcast. Some great material in there.
RailsConf 2007 done and dusted - in pics and video
Video
RailsConf 2007 Highlights
I'ma Noob" song at railsconf 2007
Note: Both the above vids have been sourced from YouTube
And the rest of the vids - the majority of which seem to be the marching band from camera phones.
Flickr Photo Sets
I didn't take that many photos in the end but many others did. Here are a few choice picks: (you might spot me in one or two even)
Photos by James Duncan Davidson
Slide shows created with Paul's flickrSLiDR.
Conference talk slides
Get the RailsConf 2007 slides from the O'Reilly site
Rails Podcast: RailsConf 2007 interviews
Download: MP3 21.9 MB | MP4 21.9 MB
Parties
A special thanks to Pivotal Labs, ThoughtWorks, and Rails Machine for hosting some great evening parties. They made sure that the beer kept on flowing!
UK Attendance
A fair selection of folks jetted across to attend. Namely:
James Adams, Murray Steele, Dan Webb, Graeme Mathieson, Matt Huddie, and James Andrews
Both Dan and James gave top notch presentations at the event.
Finally
Thanks to Chad and the rest of the team for making it all possible.
A big shout out to every one that I met out in Portland. It was a pleasure. Roll on RailsConf Europe!
Keeping up with the Rails feeds
I read with great interest Geoffrey Grosenbach's recent article on how he gets his Rails news
I too ditched my feed reader some time ago in favor of aggregation/news sites such as Ruby Inside and PlanetRubyOnRails. They help get me my daily dosage of what is going on in the Rails World.
I now have a third additional source. It has become such a handy resource I have put it live on the Working With Rails site. The WWR BlogSphere.
It basically gives you an aggregate view of Rails blog posts with a bias using metrics collected at WWR. So you can view the latest posts by the most authoritative or popular people. Or if you want to keep up with what is happening in the Rails source code you can follow by contributors. Even nicer if you have made recommendations you view only posts by these people - handy to make sure you are up to date with their latest developments.
I have plenty of ideas for enhancing the functionality and interface. I also welcome any suggestions or ideas. If you get a moment please do drop me some feedback - it's all much appreciated.
Signing out at the airport (waiting for my flight to RailsConf)
Martin.
Presentation from Mondays LRUG talk now online
I had fun presenting on Monday at the LRUG meeting giving a talk on Distributed Ruby (on Rails)
I have put my presentation online - view it at Slide Share
If you are thinking about doing distributed ruby/rails it's worth checking out. Plenty of links to resources and more.
Talking about distributed Ruby at LRUG tonight
Just a quick note to say that I'll be giving a talk at tonight's London Ruby Users group on distributed Ruby (and Rails.
Nokia N95 - the good and the bad so far
I have had the N95 just over a week now and it's definitely fast becoming my favorite gadget of all time. It really pushes the boundaries of what you can do with a phone - it's pretty much got my wish list of features.
The good (most of the following are all in-built)
- Fantastic quality camera - takes great quality pics in pretty much all conditions
- Equally fantastic video camera
- Wireless and 3G web browsing (unlimited if on t-mobile)
- Catchup on RSS feeds, check your mail anytime any place
- Stream media where ever you are - bbc news, podcasts etc
- Post directly to Flickr and Twitter
- Make and receive VOIP calls - Skype on the move (with Fring)
- Apparently I can also blog directly from the phone but I've yet to try that
- Use can use your standard walkman headphones
- Phone is compact yet still usable and not a bulky PDA
- Extremely user friendly - lots of neat touches and intuitive shortcuts
The bad
- Battery life - 1.day at most if you are lucky
- Prone to occasional crashes
- Memory/storage - Soon runs out after a few tunes, pics and vids are taken.
- GPS / Navigation software - this should be in the list of good points but it's been a real pain to try and setup. You can't just download the maps directly and from what I have read the GPS can be flakey at times. I've yet to get this installed.
- Lack of support for Mac - bundled sync software / utils are all PC based
What next?
I'm heading to RailsConf next week and hoping that Duty free might be able to help me out with the following:
- A 4GB micro SD (if it's out yet)
- A spare charger - either USB or battery
I may even try and do some blogging from the conference next week - no promises though!



