home::blog::wump
there are only 10 kinds of people in this world..

Looking for a good Rails blog app?

Posted by Keith Sun, 11 May 2008 18:34:00 GMT

Yeah, me too. This blog is typo, but to be honest, I’m not a big fan.

Here’s the problem.. I don’t really want a “rails application” at all - what I want is to be able to add blog features to my current applications.

With the need for mongrels et all, what I really think we need is either:

1) An application that you can point multiple domains to, e.g. blog.domain1.com, blog.domain2.com etc. that can be a single install / application with a single environment that is multi-purpose.

2) A blog plugin, that works off a single controller for admin, and a single controller for view that can be thrown into any rails application.

I’ve been working on 2, and it’s turning out pretty well, but at this point it’s too application specific to throw out to the open source community. The focus is on simple simple simple and seo seo seo.

What started off as a standalone project, has now been integrated into Billabill here.

Features include:

  • SEO: Independent control of stub, title, H1 and tags
  • SEO: Blog title displayed as H1 or H2 depending on context
  • SEO: Blog summary used as full article teaser reused as meta description
  • Full page caching with a very simple cache clearing mechanism
  • Routing setup so that categories become root directory for posting
  • Category stored with a post - no separate table. There’s really no need

It can do more than you can see at Billabill, but I’m not using everything, e.g. the ability for any post to be tagged as a header, footer or sidebar menu item.. Again, features on the front without any extra complexity.

What it would need to be great though is:

  • Simple THREADED comments with subscription.. why are blog comments linear!
  • RSS - 10 minute job, but I haven’t done it yet
  • A parsing engine to allow you to easily include links to other internal pages
  • A parsing engine to include flickr content etc.

Anyhoo. If I get a chance I’ll try to bundle this up and turn it into a plugin because I really think that is the answer.. just like you can add a WordPress blog to any php site, you should be able to add a rails blog alongside any rails app.


Essential Ruby on Rails tools for the Ubuntu User

Posted by Keith Thu, 20 Mar 2008 16:51:00 GMT

Window’s doesn’t cut it

Ruby on Rails was the straw that broke the camels back for me, and motivated me to switch to Linux on my desktops and laptop. Since then, I’ve tried various tools, but here are a couple of things I wouldn’t like to try to do without.

Editor - Bluefish

Quanta is a close runner up but I find Bluefish to be “the one”.

Why? Well for me an absolutely ESSENTIAL need in a rails editor is a really good directory and file tree in the left nav. It’s great that rails has a place for everything, but let’s face it, rails applications also have lots of files. If I had to click Open and navigate to a file I’d shoot myself.

Bluefish sidebar does a great job of:

  • 1) Finding your rails app
  • 2) Making it the base directory of the tree
  • 3) Allowing you to expand trees as needed

Personally, I find the visibility of files so good that as a general rule, if I can’t see all of the open file tabs without scrolling left or right, I close all files and start again.

Syntax highlighting is great, although you’ll have to add .erb as a ruby extension through the setup.

Feature wish: Multiple rows of open tabs would be nice, but then I’d just get into bad habits again.

MySQL tool - Navicat

I’m a command line kinda guy.. I’ll use a terminal to move files before I drag and drop, but for some reason I’ve never got hooked on command line sql. That’s possibly because in the early days, I found Navicat.

I know that phpmyadmin is somewhat of an industry standard, but personally I hate it! Navicat is a locally installed application, available for Windows, Mac and yes, Linux that for me blows the socks off anything else I’ve tried.

As it’s not running on the host, then there is of course the inconvenience of having to configurating mysql to allow your IP, but it’s worth it. I use both the Linux version, and the Windows version running under wine. Pretty much the same, except I have a Windows license, so that unlocks some extra goodies. I use navicat for:

  • Adding sample data
  • Fixing data ( not structures of course ) during development
  • Administration on live sites ( e.g. flagging that someone has made a donation at Listingly.com )
  • Browsing and generally perusing during development
  • Backups! One click and you have a local backup of your remote application

Give it a go. 30 day free trial.

Quake style Terminal - Yakuake

Yakuake is a terminal that reveals and hides itself with the F12 key. For some reason, I just like using it for running my development server process in. It’s no different from a terminal window, but it just feels good to me to have it tucked away there.

SSHFS

Yikes, I’m going to reveal my bad habits now.. in that I don’t SVN and I don’t capistrano. I’m a bad person. It’s on the to do list now as I need to work along side my buddy benr75 on some projects, so no doubt I’ll take what he indoctrinates me with and apply it to my own stuff too.

Until then though, SSHFS is the ultimate. SSHFS is a way to mount remote folders as local folders across SSH. In other words, if you have SSH access to your server, you can mount it locally!

My personal setup is that I develop in:

/home/[user]/www/rails_app

and remote mount:

/home/[user]/rrr/rails_app

as the equivilent application on the remote server. I then have a couple of scripts:

getcore [railsapp] and sendcore [railsapp]

which either fetch or send:

/public /app /db

Of course after that I still have to manually run migrations, and restart mongrel processes but for a single developer environment I bet from a purely time efficiency perspective this effort is significantly less than the effort of using SVN.

As an aside, I always use SSHFS all the time when I realize that I have a file at home that I need at work and visa versa.. just open up an obscure port on your firewall and map it to 23 on your machine and you can mount the remote machine as a local folder.

Genius ;-)

XaraLX - In my mind the ultimate grahic design tool

Worthy of a mention as my rails projects would not be what they are without XaraLX. It’s really nothing to do with Rails, but for years and years this has been my tool of choice ( over Photoshop and Illustrator ) for design and implimentation. I cried for joy when I saw that they had an open source project!


Apache & Mongrel Play Nice

Posted by Keith Mon, 04 Feb 2008 20:56:00 GMT

You know the way you set something up once in a while ( when you are not using Microsoft products ) and think to yourself, “That’s Nice”.

Mongrel and Apache working together just gave me that joy.. So simple, especially in single instance Mongrel setup.

Basically:

1) Start Mongrel

cd /rails_app/
mongrel_rails start -d -p 3000 ( where 3000 is an available port)

2) Check Mongrel http://that_domain.com:3000

3) Tell Apache Create a virtual_host entry for the site in question and add:

ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000

Ruby on Rails: An introduction to maintenance and support benefits

Posted by Keith Sun, 20 Jan 2008 01:34:00 GMT

Why choose Ruby on Rails?

There are many answers to that question. Why DO people choose Ruby on Rails over PHP, or Rails vs ASP? What makes Ruby on Rails BETTER?

I’ll probably write a few posts in this series, but for today I’ll document a new experience for me that has shown me that Ruby on Rails helps you create maintainable and supportable websites.

This weekend for the first time I’ve been using someone ELSES Rails application - this blog, Typo and it’s the first time that I’ve realized just how true it is that “opinionated software” creates ease.

Rails is described as “opinionated” because although there are many different ways to do the same thing in a development environment, Rails has decided that there is a RIGHT way to do things. Some of these opinions are boiled into the framework ( like how files are organized ) and some are simply rules - call them Rails coder etiquette ( like which files should have logic in them and which should not ).

Up front while learning Rails this can be a bit daunting. For example, after using MivaScript for years I easily picked up PHP because all I had to do was learn the PHP equivalent commands - the overall picture was pretty much the same. Rails, in contrast, with it’s Model / View / Controller structure, and relentlessly Object Oriented nature threw a ton of new concepts at me all at once. Worse still, I was a few years behind with styling methods, so had to go cold turkey on using Tables for page formatting at the same time. It was rough.

Now though, here’s the thing.. I can go to ANY Rails application and instantly work on it, because everything is where it should be. Likewise, if I get hit by a bus, any Rails guy can walk in and maintain my stuff. It’s amazing.

In contrast I’ve had to dig into some php recently and I’ll tell you what, the way a TYPICAL php application is put together offends me deeply!

So. To summarise, looking at this from both sides:

  • It’s easy to jump into a foreign Rails application and know your way around
  • If you have someone develop a Rails application for you ( as long as they are a decent coder ) you’ll end up with something that doesn’t tie you to them for an eternity.
  • If you build a rails application, and bring someone else into the project you don’t have to do much explaining on your methodology
  • Technical documentation can be limited to the “exceptions” to the rules

So, to the guys who I share an office with, I’m sorry guys, but I’m going to CONTINUE bugging you on a daily basis with those spontaneous “I LOVE RAILS” outbursts!