Feather + DataMapper 0.9 Jun 11 2008

Last night I finished merging some of the work Alexander Flatter did on converting Feather core code for use with DataMapper 0.9, along with the work I did that was required on the plugins code to be compatible with DM 0.9, and some other fixes that popped up during initial testing. It’s a lot of changes, and so there are bound to be certain bits that aren’t quite right. Also, after some testing today, it appears that the various combinations of Merb and DataMapper that are getting used are causing some strange errors for some people. We’ve taken the decision to try and get Feather running cleanly on the latest versions of Merb and DM, so that if people are experiencing problems, the nice simple solution should be installing the latest versions of both dependencies.

We’ve committed a workaround within Feather for the merb-cache issue that was holding us back from running on the latest Merb (0.9.3), and I’ve updated the Getting Started guide over on GitHub to provide more details on how to setup the core dependencies (Merb and DataMapper) to ensure you are using the latest versions (as well as detailing another potential conflict with the latest version of ParseTree).

As is to be expected with a project as young as Feather, it’s in a fair state of flux at the minute, but please bear with us as we try to improve and upgrade the application to use the latest versions of its core dependencies; we hope that by doing this it will make it easier to setup and install Feather in the long run, and it’ll also eventually make Feather more stable if we are using the latest stable versions of both Merb and DM.

Any questions, comments, issues or bugs can be raised with us in IRC (irc.freenode.net, #feather), or on our new Feather mailing list (http://groups.google.com/group/feather-dev). At the minute, we’d like as many people as possible to try to use Feather against Merb 0.9.3 and DM 0.9, so we can resolve any outstanding issues promptly, so if you encounter any problems, please let us know!

Comments

Lesser Known Classics #1: Rufio - MCMLXXXV Jun 11 2008

This article is the first in a series of musical based posts, highlighting lesser known, great albums.

The first in the series is an album I’ve been listening to a lot on the commute into work this last week, MCMLXXXV (also known simply as 1985), the second album by the pop-punk band Rufio. Released back in 2003, and weighing in at almost 36 minutes, this album is a joy to listen to, start to finish. The vocals and guitar riffs are what really make the sound of the album, however it’s backed up by some great drum beats in most tracks.

The real highlights have to be “White Lights”, “Why Wait?”, and “We Exist”. However for me, the best track on the album by far is “Follow Me”. Opening with a vocal/bass intro, and leading into a pop-punk verse, the chorus really steps the track up a notch with a terrific, emotional sound that drives the entire song. The energy in the chorus is amazing, and it’s a really uplifting song to listen to. It’s one of those songs that as soon as it’s over, you wouldn’t mind hearing it again.

The rest of the album doesn’t disappoint either however; on “Decency”, there is an epic guitar solo towards the end that has a great vibe to it; and on “Pirate”, there is a unique sounding intro on guitar that sets the tone for what turns out to be a catchy punk song. The really great thing about the album though is that each and every track is eminently listenable, even those songs that aren’t necessarily standout hits.

All in all, it’s the kind of album that you put on, and 35 minutes later you’re sorry it’s over so quick.

Comments

Apple of my eye Jun 8 2008

Tomorrow is the Apple keynote at WWDC in San Francisco, delivered as usual by Steve Jobs. As is customary, there has been a flurry of rumours regarding what may (and may not) be announced tomorrow, but it looks fairly certain at this point that there will be an iPhone upgrade announced. Whether it’s just the upgrade to 3G, or the fully featured, much rumoured iPhone 2 (with 3G plus supposedly other features like a front-facing camera for video-conferencing, slimmer design, better battery life, GPS and more), only time will tell. We’ll also have to wait to see whether any announced upgrade is available immediately or not, especially to us over here in the UK. Some seem to think it’ll be available in stores immediately, I think the safe money is on it being available within a week or so after the keynote. Currently iPhone supplies are scarce over here, so you’d think it wouldn’t be too long before the new model hits our shores.

One interesting rumour surfacing the last few days is that Apple are now open to carrier subsidies on the iPhone. Whereas previously the iPhone was immune to the type of “free phone with contract” deals so common over here, it looks like Apple may be willing to talk to mobile networks about subsidies to try and get the phone into more peoples hands. And even more interesting is rumours that say that O2 here in the UK may offer a free upgrade to the new iPhone model so long as existing customers agree to a further 18 month contract from the point of upgrade (in which case, I’ll be at the Apple store on Regent Street on Tuesday!), and that potentially they may even offer a phone not tied to a contract for a price of £269 (the handset price for the original iPhone). This will mean those on Pay As You Go over here will still be able to have the iPhone, simply by paying a one-off handset charge. How data charges may work on a PAYG model remains to be seen.

It’ll also be interesting to see whether O2, and other carriers around the world, stick with the unlimited data offered on their iPhone plans when the switch to 3G is made. Will unlimited data still be allowed, or will data sent over the 3G network be charged, or metered in some way?

Another big possibility tomorrow is some concrete announcements regarding the iPhone 2.0 firmware, and the AppStore, first announced back at the “iPhone SDK roadmap” a few months ago. Will it be online by the time Steve Jobs is done speaking tomorrow? Or will he simply give us an update on it’s progress, and a definitive launch date for later on in June? I’d love to see a new iPhone model with 3G/GPS, and the AppStore all launch tomorrow.

Despite all the rumours, there is only thing for sure – this time tomorrow, the rumours will be dispensed with, and the actual announcements will have been made.

Comments

Feather by mail Jun 7 2008

As an alternative to IRC, we’ve now got a mailing list setup for Feather, where you can discuss ideas, feature requests and issues. Also, we’ll use it for announcements surrounding Feather releases. The mailing list is on Google Groups here, and you can browse the messages and sign up there. The more the merrier, so sign up, and drop the list a mail if you have something to say about Feather!

Comments

Invites May 31 2008

I’ve got a fair few invites kicking around to some of the cool new web apps floating around, so if anyone would like to try any of them, ping me with your e-mail, first come first served. I’ve got five invites to Brightkite, the location based social network; eighteen invites for Evernote, the notebook tool; ten invites to Dropbox, the online storage/sync app, and just two invites to socialthing! which is a lifestream tool similar to FriendFeed. If anyone wants an invite, let me know.

Speaking of FriendFeed, I finally signed up (http://friendfeed.com/edraper) to see what all the fuss is about - it’s actually kinda cool. And I guess if it’s more reliable than Twitter, then that’s no bad thing.

Comments

Changes May 28 2008

I haven’t posted much for the last couple of weeks, the main reason being I was busy finishing one job, and starting another. After four and a half years at Nildram, it was about time for me to move on to a new, more interesting challenge. And I also wanted to take the opportunity to move from .Net to Ruby on Rails. I was able to find a great new opportunity with a fantastic company, and I’m now a Ruby on Rails developer with TouchLocal, a local business directory. I started yesterday and my first two days have been really great, I feel like I’m settling in nicely, the people are great, and the opportunity is just as good as I thought it would be. And of course it’s awesome to be working with Ruby on Rails in my day job.

I’m aiming to get back to posting a bit more regularly on the weekend, including a round-up on the most recent progress with Feather.

Comments

Feathered May 9 2008

So it’s been two weeks since we open-sourced Feather. The feedback so far has been great, really pleasing, we’ve had some great coverage, and some great contributions. I figured I’d do an update on where we’re at, and highlight some of the cool things from the last two weeks.

So first of all, the coverage the project has gotten is great. We made it on to the brilliant “This Week In Ruby” on Antonio Cangiano’s blog, for April 28th. We also made it on to the Rails Envy podcast, another great source of the latest Ruby and Rails information, on April 30th. On top of that, after submitting the announcement post link to RubyFlow, it then made it on to Ruby Inside, in a round-up post of the best of RubyFlow for the last couple of weeks. RubyFlow seems to be a great site for the latest and greatest news in the world of Ruby, so it was brilliant to be picked in a round-up post from two weeks worth of links!

We also received numerous links from other bloggers, and there seems to be quite a buzz about the project so far, which is great!

As for the sourcecode itself, thanks to GitHub we are able to keep a great handle on the interest level, and we’ve seen that skyrocket! At the minute, we now have 95 watchers on the main codebase, and 13 people have forked the code! For the plugins codebase, we have 6 forks, with 40 watchers! And each day we have more and more people watch or fork the code.

We’ve also made some great progress with features and bug fixes. In the last couple of weeks since opening up the codebase, we’ve had:

  • XHTML/styling fixes from Michael Bleigh
  • custom permalink formats from Jake Good
  • Mike added pagination for the admin article index, and also for the admin comment index
  • Atom feed support for articles/comments from Markus Prinz
  • a Mephisto importer plugin from Jake Good
  • a Typo importer plugin from Marc Seeger
  • a small markup fix from Bradly Feeley
  • Mike also nailed a few other fixes

I think that’s most of the major contributions, apologies if I’ve missed anyone (let me know in the comments and I’ll update the list!). Considering that it’s only been open source for two weeks though, I think that’s great! We also have some other contributions in the pipeline, and so things seem to be progressing nicely. A list of contributors is also available on the GitHub wiki (thanks to Mike) here. If you’d like to see your name there, you know what to do!

To try and organize fixes, issues and feature requests, we’ve setup a Lighthouse instance for Feather. It’s available at http://feather.lighthouseapp.com. You’ll be able to add bugs or feature requests, and if you’d like to contribute by tackling any of the issues or feature requests there, let us know and we’ll give you access so that you can be assigned them so everyone knows your working on them. We’ve also setup an IRC channel to hang out and discuss Feather on irc.freenode.net (#feather). Me and Mike are in there quite a lot, so come on in to talk about Feather, whether it’s talking about how to set it up, how to extend it, or specific issues you might be having. The more the merrier!

Something else to mention is those that have switched their blogs to Feather. Obviously me and Mike are running Feather, and Jake finally got his blog over to Feather once he finished his Mephisto importer. And more recently, in the last few days Marc got his blog up and running with Feather too. They all look great, and if anyone else is using Feather, it’d be great to hear about it, so let me know!

Besides logging a few bugs, and hanging out in IRC to help people with some setup issues, I was also able to knock together a basic getting started guide this week. It’s available on the GitHub wiki for the project, here. One of our aims is to make setup easier over the next few weeks, but in the meantime at least there is a set of instructions to hopefully make it easier for people to get up and running.

Also over the next few weeks, we’ll be aiming to get an official Feather site up and running, which will include news, updates, an official plugin repository so that we can have one-click installs for plugins, and some more guides to using Feather, and developing plugins for it.

With more plugins on the way, a few bugs to fix, and some new features to put together, I’m sure the next two weeks and beyond will be just as productive for Feather. If you’re interested in getting involved, drop by #feather and introduce yourself, you’ll be more than welcome!

Comments

Defer To May 3 2008

So one of the really great features within the Merb router is “defer_to”. This enables you to defer certain routing decisions to runtime, allowing you to evaluate and decide what needs to be handled where based on runtime factors. This is used in a couple of places within Feather and its plugins, specifically the main use is the handling of the article permalinks. Each article has a permalink stored against it, and while there is a default pattern for new articles, we allow any url as a permalink for an article to ensure that importing/backwards compatibility is straightforward. As this may not follow any particular pattern, we need to be able to evaluate this at runtime.

Originally, Feather handled this with a custom Rack handler, that ran before the main Merb application handler. It checked the request uri, and if it matched an article permalink, it dispatched the call to the articles controller to show the appropriate article. If it didn’t match, it simply went on and processed using the Merb app handler as normal. This worked fine, but looked like in the long run it might be difficult to maintain – it would certainly be nice to have a way to handle it all from within Merb routing.

Lo and behold, there is! Enter, defer_to. Let’s take a look at the article matching code from Feather first of all to see how it works:


r.match("").defer_to do |request, path_match|
  unless (article = Article.find_by_permalink(request.uri.to_s.chomp("/"))).nil?
    {:controller => "articles", :action => "show", :id => article.id}
  end
end

So what is this doing? Well it’s basically starting by matching all routes. It then calls “defer_to”, specifying a block to be used to evaluate a request at runtime. This block is passed the incoming request, which is all we need for our purpose here (the second argument is a set of parameters containing information about the route matched so far – in our case we are matching everything to try and then match the permalink at runtime, so we don’t use this argument).

We then basically use the incoming request uri to evaluate whether it matches an article permalink, and if it does we return the routing information for that particular article. Otherwise, the block will just return nothing, and so the Merb router will then continue on its way attempting to find a route that matches for the request. This means that the moment a new article is posted, or perhaps old articles are imported with specific permalinks, they are available and will be handled, all using Merb routing, thanks to “defer_to”. It’s a tidy, lightweight, great way of handling a complex routing problem.

Comments

Lights Out Apr 28 2008

The response to us open-sourcing Feather has been great so far, with some contributions, some questions, some comments, all good stuff. And now, thanks to the guys over at ActiveReload, we’ve got a public facing instance of Lighthouse to be able to track bugs, issues and feature requests, in both the core code, and the plugins! So if you discover an issue, or want to request a feature, then log it on there at http://feather.lighthouseapp.com and we’ll get to it! If you’d like to tackle the fixing of a bug, or the implementation of a feature, get in contact and we’ll set it up so that we can assign that particular request to you so everyone knows you’re on it!

This should make managing and co-ordinating development a lot easier! Thanks again to the guys at ActiveReload for a great product, and for hooking us up with a free account for our open source project! And thanks to everyone so far who has contributed with code, comments and queries, keep ‘em coming!

Comments

Announcing: Feather Apr 26 2008

So after a few weeks of teaser posts, we’ve finally opened up the code on the software that powers this very blog, Feather. It’s been a collaborative effort so far between me and my boy Mike, but now it’s time to open source it, and hopefully people besides us will not only find a use for it, but will also find new ways to extend and improve it.

So what’s in the current codebase? As alluded to before, the core itself is lightweight. Basic article posting, and user management is all you’re really getting. The beauty is in the wide variety of plugins that are (and will be) available to extend the software further. Within a separate plugins repository, there are currently twelve plugins, that extend Feather to provide comments for articles, feeds, formatters for article content (Textile and Markdown), basic RSS importing for articles and comments, integration with ping services, the ability to setup hard-coded redirects on your site, sidebar and snippet content, overridden css styles, tagging, Twitter integration (to display your tweets in line with blog posts), and file uploads. The code in core and for these plugins probably isn’t perfect, but it’s good enough to power a few blogs already - and improvement is where you come in.

If you’ve got an idea for a new plugin, improvements to existing functionality, or you’ve found a bug, then by all means fork the project on GitHub, implement your code, and send us a pull request so we can merge the changes into the main trunk. Alternatively, send us your patch via e-mail, and we’ll look to include it within the application. If you submit two patches to either feather, or feather-plugins, then you’ll be given commit access to the repository in question, and will effectively become part of the core team. So what needs doing right away?

The biggest deficiency at the minute are specs - there are some specs in the core code, but it doesn’t cover a lot of the application, and ideally we’d be aiming for 100% coverage of the core controllers and models. We then need to devise a decent way of similarly shipping specs with plugins. When we start updating and improving plugins, we’ll need a way of handling data migrations smoothly and efficiently. On top of this, there are still outstanding useful plugins that need to be written, such as content search, and trackbacks, as well as integration with services other than Twitter. Lastly, there are bound to be bugs, so roll up your sleeves and fix them, it’ll be much appreciated!

We’ll be rolling out a Feather website soon, along with an official plugin directory to make installing plugins easier - for now, there’s a basic getting started page on the wiki over at GitHub, and there will be more information over the coming days on both mine and Mike’s blog. Any questions in the meantime, then let me know.

Other than that, what are you waiting for? Get your Feather on!

Comments

Page 11 of 31 | Next page | Previous page