Oct 02 2006

My Must-Have Applications For Ubuntu

Here’s a list of some of my favourite or most relied-upon applications on Ubuntu. It’s not exhaustive but it’s a start. It doesn’t include extras like multi-media codecs or any of the sort of things you can get easily with something like EasyUbuntu. The lists arranged by purpose and are ordered alphabetically not by preference. Some things are not available in the Ubuntu repositories and are marked as such.

Desktop

  • deskbar-applet
  • gnome-keyring-manager
  • kde-style-polymer (from external source - makes QT apps look ok on gnome, see my post here)
  • MSTCoreFonts
  • nautilus-open-terminal
  • nautilus-scripts:
    • nautilus-script-collection-svn (subversion shortcuts)
    • nautilus-script-manager
  • skype (only beta 1.3 works, needs kde-style-polymer or looks ugly, get it from www.skype.com)
  • Tomboy (desktop notes tool)
  • xnest (for nested X logins)

Development

  • apache2
  • emacs-snapshot-gtk (emacs for the gnome desktop)
  • JEdit (from external jedit repo http://dl.sourceforge.net/sourceforge/jedit)
  • java:
    • ant
    • sun-java5-*
  • meld (visual/graphical diff tool)
  • mysql:
    • mysql-server
    • mysql-client
    • mysql-admin (note a wrapper script is needed as a bug workaround on this, can’t remember the bug link just now)
    • mysql-query
  • .Net (just listing the basic dev packages here)
    • mono-devel
    • monodoc-manual
  • php5:
    • php5 (basic setup for use with apache)
    • php5-* (choose whatever extra modules you need)
    • php5-cli (command line version)
  • python
  • ruby
    • ruby
    • irb
    • lib*-ruby (pickup any of the extra packages you need)
    • ri
    • rdoc
    • rails
  • subversion
  • vim-gnome (gvim)
  • vmware-server

Networking

  • Avahi (zeroconf/bonjour)
    • avahi-daemon
    • avahi-utils
    • libapache2-mod-dnssd (to auto-advertise apache2 sites available on your machine)
    • service-discovery-applet
    • libnss-mdns
  • ethereal
  • firestarter (basic firewall manager)
  • gftp (sftp and ftp client)
  • NetworkManager
  • rdesktop (Remote Desktop and Terminal Services Client)

Sound & Multimedia

  • banshee music player
  • f-spot photomanager
  • gnomebaker (cd-burner)
  • gxine (media player)

Jan 27 2006

Article on Modular Architectures with Ruby

Finally got around to reading Modular Architectures with Ruby from Ruby Code and Style.

The article shows how to write extensible modular architectures in Ruby. Essentially it describes what maybe more commonly recognised as a “plugin” architecture. Where new functionality can be added to an application almost transparently with minimum cost in configuration and code, simply by adding a “pluggable” module to an application’s library path. The author cites Eclipse, Javadoc and the Apache HTTPD webserver as three examples of well known modular systems.

It’s appears to be pitched at programmers new to Ruby but not necessarily new to programming, as well as developers who need to create extendable systems. Actually, because Ruby is so concise and readable it’s great as a general introduction to “plugins” in general, regardless of what language the reader knows. This also makes it ideal for students interested in software architecture and design patterns.

See the discussion board threads for some interesting thoughts on ways to make the example more “Ruby-like” and resource efficient.


Jan 02 2006

Ruby on Rails Mind Map

Tag: Ruby, Web DevelopmentDan @ 1:48 am

While investigating Rails I decided to create a Mind Map as an excuse to try out the new version of Freemind (v0.8.0). The map is a little bit sketchy but I enjoyed making it. Personally, I find creating Mind Maps extremely useful when learning about something new.


Dec 30 2005

Getting started with Ruby

Tag: RubyDan @ 7:36 pm

Here’s a link to a David Heinemeier Hansson’s (creator of Rails) list of resources for getting started with the Ruby programming language:

Getting started with Ruby (Loud Thinking)

I agree with him that it’s not spectacularly easy right now how to get started learning the language although I’m sure it’ll improve quickly. There is an excellent online book but the API docs seem to lack a lot of examples which makes learning more about it a bit dry.