Sunday, September 23, 2007

JuneBug Wiki

Came across JuneBug Wiki tonight while getting a wiki setup on my Mac for a couple projects I'm working on at home. I couldn't be happier thus far -- JuneBug Wiki is pretty slick.

First of all, it was as easy to install as it should be. If you already have the proper versions of Ruby, SQLite, and gems installed... it took about 1 minute to install JuneBug Wiki. The directions on the JuneBug Wiki site are super simple to understand. After installation, it took about another minute to configure it. The Wiki syntax is more straightforward for web developers as you can utilize most of what you are used to with html, and the non html syntax is relatively intuitive.

I used to use DokuWiki, and frankly always found it to be nice once it was installed, but somewhat annoying to install. Sorry, DokuWiki fanbois, but that was always my feeling. JuneBug wiki is nice, especially if you want a wiki written in Ruby. (JuneBug Wiki is written in Ruby on top of the "Camping" web microframework, not Rails)

http://www.junebugwiki.com/JunebugWiki

Wednesday, September 19, 2007

UOOJ Development -- It's Huge! (pronounced "Yooooge")

Been doing a ton of JavaScript development over the past 3 years, more and more hardcore the last 18 mos, and loving every minute of it. This (obviously) involves Ajax development, along with other client-side development -- basically engineering User Interfaces in ways that make them responsive to users, fast, user friendly, lighten the load on server bandwidth required, and keeping code maintainable and extensible.

Throughout that time I have gravitated towards Unobtrusive Object Oriented JavaScript development. There is no better way to go in JavaScript development, as it presents a good challenge which results in a great payoff in terms of separation of concerns, code re-usability, keeping things DRY, among other things. Unobtrusive Object Oriented JavaScript is professional JavaScript development imo, and mainly involves creating re-usable client side JavaScript objects, with the key distinction being that you write your code while keeping JavaScript completely separated from HTML, also writing the web application so that it will work when JavaScript is turned on or off (defaulting to traditional Form submits unless encountering return false;, etc). You can do this through attaching events to DOM elements at runtime with Event observers, or after elements have been created on Ajax callbacks, for instance. I won't get too into detail, just want to spread the word to those interested in Ajax development, you should certainly look into some of the following links to help you get started:

Crockford:
http://javascript.crockford.com/prototypal.html
http://javascript.crockford.com/javascript.html
http://javascript.crockford.com/private.html

Prototype related UOOJ links:
http://prototypejs.org/api/event/observe
http://prototypejs.org/api/class/create
http://www.prototypejs.org/api/function
http://alternateidea.com/blog/articles/2006/05/23/prototype-inheritance-madness

jQuery Events/ready:
http://docs.jquery.com/Events/ready#fn

some Scope articles:
http://www.digital-web.com/articles/scope_in_javascript/
http://www.jibbering.com/faq/faq_notes/closures.html

... the side point of this blog post is to coin the acronym UOOJ! (pronounced "Yoooge"! or "huge" with the "h" being silent). While SMS-ing my good Agile buddy back in Cincinnati, Paul Spencer, (who I like to call the "Agile Guru") I was remarking about how much I am loving unobtrusive object oriented development and he replied "UOOJ!". So the credit goes to him -- great acronym. UOOJ Development!