My present to myself for my birthday :)
Source: Tumblog

My present to myself for my birthday :)

My present to myself for my birthday :)

My present to myself for my birthday :)

Way to have a lunch break! Nice view on Boulder, from Betasso.

Unibroue!

Unibroue!

It felt like summer on Sunday, and well, riding in this morning…

Life size Jenga with workmates!

Finally got my new bike by Paul Budnitz!

Omnomnomnom

Ruby meetup at the Pivotal labs office!

Well that sure made the bike ride interesting!

Woohoo Kwak! Belgian beer.

So… it snowed yesterday. My first snow in a very long time!

I am saved! Cheese and buckwheat flour acquired.

Having a beer, with this incredible view in the mountains…

Don’t know what that is, but in about to drink some!

Eeeeeeeeeeel! <3 <3 <3

Birthday dinner, wine and cheese!

Good morning Nowra!

Lotsa people for France vs Wales!

So apparently this is only an appetizer!

Tour bus in Boulder, and then… Drinks!

Time for breakfast!
And drinking what they call coffee here :P

You can tell I’m not in Sydney right?

Thursday night delight!

Little Bay

4 Apple screens

Good for baking, but good for drinking too!

Omnomnom Cannelés I just baked : D

Woohoo my mountain bike is fixed! Who is up for Manly Dam on Saturday or Sunday?

Odd coffee mug…

Broken chain… fucking pissed!
Joyeuse fête des mères maman! <3

Autumn

Also: It’s Rapture Day!

Now I need to survive that!

Sauterne of 1975… Fuck Yeah!
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
Damien LB posted a photo:
I’m quite picky when it comes to coding in HTML and CSS. And I really like writing good markup, particularly semantic one whenever I can. And it’s even more important if you want to adopt HTML5!
I use HAML a lot, and I really like how it makes writing markup easy… probably a bit too easy. I noticed that people who are not “experts” in HTML (I probably should say “as picky as me”?), tend to overuse the # and . shortcuts in HAML. Thus creating dozens of
So I decided it would be a good idea to have a strict HAML mode that would disable those shortcuts. This way, hopefully people will try and use more appropriate markup.
module Haml::Precompiler
def render_div(line)
raise SyntaxError.new "Haml running in strict mode, # and . shortcuts disabled"
end
end

Just a very standard schnitzel…

Enjoying the terrace of the new house :)

Rule #32 - Enjoy the little things

4pm lunch! Perfect with this weather and all the moving out action!

One of the rare moments I’m on the slack line
Ad for the latest Intel i5, one of the best ads I’ve seen in a while!
Same debug point in my javascript.
In Firefox:
>>> $('#flash')
[ div#flash ]
>>> jQuery('#flash')
[ div#flash ]
In Chrome:
> $('#flash')
null
> jQuery('#flash');
[…]
> $
function ()
{
return document.getElementById.apply(document, arguments)
}
> jQuery
function (j,s){return new b.fn.init(j,s)}
In both browsers the javascript work as expected, which is the $ function is the same as the jQuery function.
Did I miss something about the Google Chrome javascript console? I’ve not tested in Safari, but I guess it’s the same problem…
CSS3 buttons / ubuwaits.github.com/css3-buttons
Source: Delicious
Nice buttons styled with CSS3
"L’amour est enfant de bohème, qui n’a jamais connu de loi."
Source: Tumblog
“L’amour est enfant de bohème, qui n’a jamais connu de loi.”
- Carmen, Bizet. Opera in the domain.
Komei Aoki. I had the chance to see him live yesterday at the...
Source: Tumblog
Komei Aoki. I had the chance to see him live yesterday at the Sydney Juggling Convention… incredible juggling and manipulation skills!
Everything You Need to Know About Unicorn | Engine Yard Ruby on Rails Blog
Source: Delicious
Everything is in the title!
Compiling Ruby 1.9.2 on Debian Lenny - Binary Balance
Source: Delicious
I like the fact this tutorial introduced me to "checkinstall". Compiling with the advantage of package management...
Compiling nginx on debian lenny | Tim Bowler
Source: Delicious
Setting up my Rackspace server :)
ZURB – Super Awesome Buttons with CSS3 and RGBA
Source: Delicious
Cool CSS3 future-proof rounded buttons!
Bicycle Path - Leichhardt to La Perouse - LBUG route at Bikely.com
Source: Delicious
Nice route to remember!
Pure CSS GUI icons (experimental) – Nicolas Gallagher – Blog & Ephemera
Source: Delicious
Awesome, will probably use soonish!
New Job at Blake Education
Source: Blog
Hello everyone,
as some of you may know I have changed job a few weeks back. The process has been rather long since I had to change sponsorship for my Working Visa. The new visa was approved one day before the previous one was to expire. So I started exactly four weeks after I left Front Foot, on August 31st.
I really enjoyed working for Front Foot for the past two years, I learnt a lot from everyone there. I had the chance to work on really interesting projects with them:
- Planet Three Portal for iPhones and Android phones. It won the AIMIA award for the best mobile product of 2010.
- Lotto Results iPhone application (supported by a Rails backend). It was my first iPhone application, and also Front Foot's first.
- Macquarie Dictionary for mobile phones, with interesting XML processing techniques which led me to develop further the nokogiri-happymapper gem.
- Atrium: scalable, multi-channel notification platform. One of the most technically advanced project I've worked on.
I would like to thank the Front Foot team for the two years working with them. I loved working on mobile technologies, and I really learnt a lot.
So what am I up to now?
I work at Blake Education as a Software Engineer, still working with Ruby on Rails, and other technologies around Ruby. Blake is a publishing company that specialises in education. We run the very successful website readingeggs.com, and we have more projects of course!
Working here is very different from my previous work, the main reason is that most projects I did in the past were just developed for a customer, then shipped. On the contrary readingeggs needs to evolve a lot according to the new needs of the customers.
Being able to re-factor bits of the application, constantly making sure performance is not altered by the addition of features and by the increasing number of customers, and also working on new projects that should re-use as much code as possible...
I really love software engineering, and software architecture, and I really want to be good at it. Of course I already have a decent level, but I feel like I'm going to learn so much at Blake. And it's already started!
I have two more blog posts I want to write about what's been going on lately, so stay tuned!
sudo gem install nokogiri-happymapper
Source: Blog
This is it, you can install my fork of happymapper using the above command! It's now available on Rubygems.org.
It's a replacement to happymapper, so you want to use it using:
require 'happymapper'
Thank you to Matt/GoodGets for using the fork and pushing me to publish it as a gem! Enjoy! :)
Change keyboard appearance of UISearchBar
Source: Blog
It's not built-in the API, so this piece of code will do. It makes your search bar display in black, and with transparency... enjoy! :)
Mapping UIWebview links to controller/delegate actions
Source: Blog
In an iPhone application I'm developing, there are some views that are quite complex to code... and I find them much easier to code in HTML/CSS. Since the Webkit engine available on the iPhone is quite powerful, I find it a much easier way to create complex views...
Now if you want this view to interact with your application it is a bit tricky... but not THAT much. Here is a piece of code I have in my controller... well in my UIWebViewDelegate.
Basically we catch the click on a link, and if the link is of the form file://...#action we then look for the selector action in the controller and trigger it if it exists.
It's THAT simple. :)
New portfolio iPhone App released!
Source: Blog
I've finally released my first iPhone app under the name Melion Design. This is a photographs portfolio for Andrew Hill. What I want with this app is to demonstrate the engine I've developed to manage your portfolio in your own iPhone application.
The application is free, it's called "The Frog Photos" and you can find it in the app store. Andrew can manage the photos available in the application through a web interface I've developed. It makes it easy to upload, and manage photos. The following features are available:
- Amazon S3 photos storage: fast download of photos.
- Offline mode: user can still browse your photos when offline.
- Customize the description of each photo.
- Customize the perma-link of each photo.
- Provide a link to your own website.
Don't hesitate to contact me if you're interested in having your own portfolio available in the appstore for everyone to see! :)
Lotto Results for iPhone, version 1.2 released!
Source: Blog
Yes, there it is! Version 1.2 has the following additional features:
- Systems - record up to 18 of your favorite winning numbers assisting System Players
- How to win - check what you require to win a division prize for each and every game
- Odds - check the odds of winning each division for each and every game
I'm now working on even more exciting content, but I can't tell you yet what it is!
I just enjoy a lot working on this project. :)
You can find Lotto Result in the app store.
Presentation of my Happy Mapper fork at the last RORO Sydney
Source: Blog
Last November I did a presentation of the Happy Mapper fork I developed.
The video is available on Vimeo. Unlike the description says, it is a fork using Nokogiri to replace XML Object, but watching it will clear everything out! It's a lightning talk, so I'm sure I won't waste too much of your time :)
You can also find all the videos from RORO on Vimeo. Enjoy!
Calling an authenticated controller action from a rake task
Source: Blog
Just wrote that little rake file:
I thought that would be useful for some people. It just calls an action from a Rails controller. This action is supposed to be accessed only by the admin user. We also prevent checking for authenticity token. This rake task will be called in a cron job.
Lotto Results for the iPhone
Source: Blog
I'm proud to announce my first iPhone application I developped at Front Foot has been released!
Winning Numbers is a mobile website adapted to all phones in australia, but you can enjoy it now as a native application for your iPhone under the name Lotto Results.
It provides for now the latest results and dividends for all of the major australian lottery games: Oz Lotto, Powerball, Lotto, Tattslotto, Gold Lotto, and more... You can also save your winning numbers to quickly find them in the latest results, enjoy!
Updated dam5s-happymapper to use Nokogiri
Source: Blog
I've updated my version of Happymapper to use Nokogiri. It should be faster. The original Happymapper had already been forked to use Nokogiri by Roland Swingler.
Nokogiri is a ruby gem to parse XML and HTML using XPath or CSS selectors. It's written mostly in C, and is very fast. I intend to use this version of Happymapper in an upcoming project with intensive parsing!
Asynchronous Tasks in your iPhone App
Source: Blog
One thing that as made web applications much easier to use in the last few years is the integration of Ajax into web pages. Before that, each click of the user would block the application until the next page loads... not really a great user experience.
Now when you want to trigger a long task in the background, you can use Javascript to trigger asynchronous requests... that is just great!
Well in standard applications design, it is also very handy to be able to do such thing, and we usually do it using threads. The iPhone platform obviously provides everything you need to perform that, and that's pretty simple! Just awesome! Here is how it works...
The documentation you want to read is the NSOperation Class it provides the tools to trigger a task in the background. And as the documentation says, you will most of the time want to manage a queue of operations rather than just a single operation. So the best thing to do (in my opinion) is to create a Manager (singleton) which owns a queue of operations: NSOperationQueue Class.
This way you can add operations to the queue, and they will all be treated in order. A good example of this kind of manager is the ConnectionManager of the ObjectiveResource library.
You can use it this way:
- (void)fileDownloaded: (NSData *)data {
// Do stuff here
}
- (void)downloadFile: (NSUrl *)url {
// Download file here
[self performSelectorOnMainThread: @selector(fileDownloaded:)
withObject: downloadedData
waitUntilDone: YES];
}
And somewhere in your code trigger the asynchronous download:
[[ConnectionManager sharedInstance] runJob: @selector(downloadFile:)
onTarget: self
withArgument: url];
That's it! So when you call runJob on the connection manager, it queues the job in the operation queue... so if you need to download ten files, they will be processed asynchronously one-by-one while the user is still using your app, without interruption.
Hope this was helpful!
Rails Routes according to the Domain
Source: Blog
Routing using Rails is quite simple, you define routes and where they point at. The order in which routes are declared defines their priority. Very simple.
Now Rails also provides conditions on routes according to the HTTP method used, and using the request_routing plugin we can use more conditions. We specially use it for the domain, or sub domain used for example. The Frontfoot website and the Frontfoot mobile site are the same rails application, they just use different routing according to the domain used.
map.connect '/:action', :controller => 'mobile',
:conditions => { :domain => /\.mobi/i }
map.connect '/:action', :controller => 'main'
That works well if the domain has only one TLD like frontfoot.mobi, but if the domain has two TLDs it doesn't work. In this case we do the test on frontfoot.mobi so it works well.
Now what if we have two domains like for example frontfoot.com.au and ffmobile.com.au. Well that doesn't work. The :domain option will test the domain against 'com.au' we could then use sub-domain to get 'frontfoot' but in that case if we use 'www' it won't work because the :subdomain option tests only the first sub-domain.
So here is the solution! I have written a fork of the plugin to add a :domain_2 option which just gets the domain considering it has 2 TLDs. And there you go you can write:
map.connect '/:action', :controller => 'mobile',
:conditions => { :domain_2 => /ffmobile\.com\.au/i }
map.connect '/:action', :controller => 'main'
Enjoy! It's tested and on my github. :)
XML Parsing in Ruby using Happy Mapper
Source: Blog
Part of my job consists in getting a lot of data from different sources. Whether it's a SOAP or REST webservice, a TCP Socket, or simply files on a FTP, most of this data is in XML format.
There are different libraries to parse XML in Ruby. We used to do with XML Object, but the resulting code is really difficult to read and maintain. We prefer Happy Mapper.
It is an XML to object mapping library. You can find the source on Github. I also created a fork to add support for text node in mapping objects. It also includes the changes from David Bolton.
The resulting code is very readable and easy to maintain... and the library can be used in most cases. It's also quite fast since it uses XML Object for the actual parsing. Examples are in the source tree, and the source itself is quite short and easy to understand.
Enjoy easy and happy XML parsing! :)
The iPhone application submission process
Source: Blog
Last Friday I submitted for Front Foot our first iPhone application.
It's quite exciting to arrive at this stage of the project. I have worked so much on this app, our creative designer Deena Baxter did a really good job! I can't wait to show you the result of that work. But I would first like to share with you different tips you may find useful tp submit your own application.
The submission process, once you've understood it, is quite simple. But there some parts that are not very well documented. So here are a couple links you may be interested in reading:
When you are compiling in Xcode make sure you use the good building profile and it refers correctly your entitlements for AdHoc distribution, also make sure to use the good provisioning profiles for Distribution and AdHoc distribution.
Now all my workmates have a version of the application on their iPhone, and the application is being reviewed by Apple. Tell you more when it's available!
Welcome to Melion Design's blog
Source: Blog
Well hello there!
Let me present myself, I'm Damien, software engineer for Front Foot Media Solutions in Sydney Australia.
Lately I've been working a lot on mobile platforms, whether it's for mobile websites with a strong back-end like Three Mobile's iPhone landing page: Planet 3, or for iPhone native applications.
I really enjoy developing for the iPhone, we focus a lot on ergonomics, providing the good features and making them easy and enjoyable for the user!
I also work on my own projects, and some free lancing as well for really small projects aside from work, which is what Melion Design is about! So don't hesitate to contact me if you want a good front-end and back-end developer for your web app.