Johnny's Software Saloon

Weblog where I discuss things that really interest me. Things like Java software development, Ruby, Ruby on Rails, Macintosh software, Cocoa, Eclipse IDE, OOP, content management, XML technologies, CSS and XSLT document styling, artificial intelligence, standard document formats, and cool non-computing technologies.

My Photo
Name:
Location: Germantown, Maryland, United States

I like writing software, listening to music (mostly country and rock but a little of everything), walking around outside, reading (when I have the time), relaxing in front of my TV watching my TiVo, playing with my cat, and riding around in my hybrid gas/electric car.

Sunday, April 30, 2006

Explanation of Growl utility for Mac OS X

Growl is a very handy utility program that runs on Mac OS X.

It is one of those utilities that, while not vital or a matter of life-and-death, can make life more pleasant and the computer a little more friendly.

Anyone who wants to spend a little effort can use it to make their computer a very communicative/helpful assistant

While Growl makes it easy to keep an eye on things that are going on, it never interrupts your work or gets in your way.

The purpose of Growl is to display notifications from Growl-enabled applications when events you care about occur.

The way it does is is by acting as a central notification facility for any application on the system that wants to use it. The way they use it is sort of like they would use a logger like Log4J in Java or the SysLog facility on Unix/Linux.

Rather than log messages, Growl displays them on the side or bottom of your screen. Instead of popping up an unbidden modal dialog box, the way some truly ill designed applications do - Growl just sort of draws it on your screen for a few seconds. The GUI it puts up is not modal, and it does not grab your keyboard focus - nor wait for you to give it any mouse input. The notification pane just is.... and then is not.

Sending everything to one place gives the user some control of it. In the case of Growl, the user gets to pick the look and feel of the Growl notification panes and where they go.

Growl can also log incoming events, if you wish, and - if you like - send the notifications to the Growl running on another computer. Kind of handy if you work at one computer but are responsible for several or a bunch more. Especially, if they are not nearby - where you can see them.

If an application is not Growl enabled but it somehow provides a way to communicate with other software, someone can write a Growl adapter for it.

Right out of the box, Growl works with iTunes, iScrobbler (the Last.FM app), Mail.app, and a bunch of other applications. So it already proves useful right out of the box.

There is also a Gmail Notifier adapter for Growl available from a 3rd party that you might want to get too, if you use Gmail.

Many people are using it and it has been out for over a year.

As to why it is not a part of the operating system, there are a few good reasons for that. One, Apple did not write it. Two, it changes periodically, and more frequently than the OS changes. Three, it is not quite to version 1.0 yet. Four, it is free - so why complain?

You can customize it easily with your own notification message display style, if the dozen or so that come with it are not to your fancy. There is documentation for How to create a WebKit-based Growl style that you can take a look at.

You can communicate with Growl from different programming languages, there is even AppleScript Support for Growl.

About Growl:
Growl is a notification system for Mac OS X: it allows applications that support Growl to send you notifications.


Growl is kind of cool. So if you own a Mac why not check it out?

Technorati tags: , , , ,

Dojo - DojoToolkit.org

Dojo is another one of these AJAX component packages that have become wildly popular in the last year or so.

With Ruby On Rails being all the rage and Google Maps and Gmail garnering so much attention to what can be done GUI-wise in a web browser these days, it is inevitable that developers will start swarming around these new AJAX components.

Javascript looks like it is going to become more important in the programming field. Rails makes it possible to avoid dipping down directly into Javascript when you are using certain packages it is aware of. But you are a lot better off being able to read and write the stuff yourself. After all, you might want to hook in a different package, like Dojo. Someday you will have to troubleshoot an Ajax application too. Good luck doing that if you cannot read Javscript.

Dojo - DojoToolkit.org:
Dojo is the Open Source JavaScript toolkit that helps you build serious applications in less time. It fills in the gaps where JavaScript and browsers don't go quite far enough, and gives you powerful, portable, lightweight, and tested tools for constructing dynamic interfaces. Dojo lets you prototype interactive widgets quickly, animate transitions, and build Ajax requests with the most powerful and easiest to use abstractions available. These capabilities are built on top of a lightweight packaging system, so you never have to figure out which order to request script files in again. Dojo's package system and optional build tools help you develop quickly and optimize transparently.

Dojo also packs an easy to use widget system. From prototype to deployment, Dojo widgets are HTML and CSS all the way. Best of all, since Dojo is portable JavaScript to the core, your widgets can be portable between HTML, SVG, and whatever else comes down the pike. The web is changing, and Dojo can help you stay ahead.

Technorati tags: , , , , , ,

mozdev.org - devboi: index

DevBOI looks like the best browser-based documentation facility that runs in Firefox as a sidebar extension.

  • HTML 4.01
  • CSS 2.1
  • DOM 2
  • XUL
  • Ruby On Rails 1.1 and Ruby 1.8.3


...and a couple other things like PHP that I do not use.

It is really cool.

I am learning Ruby On Rails right now and I already know CSS and HTML - but who remembers everything all the time?


mozdev.org - devboi: index: "DevBoi is sidebar extension for Mozilla and Firefox browsers. (see screenshots) Sidebar offers easy access to web-development documentations and reference manuals on the Internet – everything just one double-click away. If you have used DevEdge sidebar, you’ll definitely love this."

Apple is hiring!

In the past couple weeks I have heard of a couple top-notch Macintosh Mac OS X application programmers who got hired by Apple.


The latest, Blake, is joining the Aperture team at Apple. Fitting, since he wrote MUPhotoView and just released MUPhotoView 1.0 two weeks ago.

A nice GUI component, it gives a a pane much like the photos browse pane in the Apple iPhoto application.


I just pray Apple hires an XML guru to clean up their XML file formats by writing RELAX NG schemas, Schematron rules, or even DTDs for them all.

Having RELAX NG file (preferably .rnc) and a Schematron rules file would be awesome - but having nothing really sucks!

Sorry, but it is true. Having XML file formats which are just informally documented - with no means to automatically validate their semantic contents ...sucks.

Checking for well-formedness is not enough. That is like checking to make sure none of the characters in a plain text document are 8-bit US-ASCII with the high bit clear. Instead of what most people really want, which is a spell-checker and/or a grammar-checker!

Freaking A, would you turn in a memo to your boss with tons of spelling errors on it? Then he calls you on it, you meekly reply - at least I did not set the high bit on any of the character bytes...? I think not!!


XML is not even an arcane science or difficult proposition. I cannot figure out this not having grammar and/or rule-based schemas for such complicated programs as word processors, presentation programs, etc. After all, it would make the unit-testing, regression-testing, and QA go so much smoother.

The way I see it, all those angle-brackets in XML are stabbing your eyes whenever you look at it. You might as well take advantage of the salve of schemas/DTDs to get the health benefits of all the software tools they enable.

The word processor is just one of many tools Apple has come out with in the past several years which does not have a schema for its XML file format. I am not a big fan of the XSD (W3 XML Schema) file format but the other 3 formats I named are really good. Simple, but very powerful and not as COBOL-like as a .xsd file is.


I am glad to see Apple is hiring some really sharp Mac programmers. I hope they continue to do so.

Along the way, I hope they hire an energetic, suave, savvy XML guru who gets their shop on the right track with XML.

Saturday, April 29, 2006

Red Sweater Blog - ADC Documentation Bomb

Good things seem to be brewing in the documentation department at Apple for Cocoa programmers. Apparently, some major improvements in the style and quantity of documentation have suddenly jumped into existence.

Red Sweater Blog:
Apple%u2019s documentation team just keeps getting better and better. Not only is the writing clearer and more connected to real-world applications than it has been in the past, the team seems to be getting prolific!
Technorati tags: , ,

Torvalds On TiVo - Forbes.com

Forbes carried a very interesting article on Linux progenitor Linus Torvalds' take on TiVo. TiVo devices use Linux open source software as their operating system.

Linus fields questions on the TiVo, problems or at least complications that DRM can lead to, and how DRM and GPL v3 can possibly clash.

It is an interesting article and pretty astute for a business magazine. Both Linus and the interviewer seem pretty savvy.

Torvalds On TiVo - Forbes.com:
TiVo uses the open source Linux operating system in its digital video recorders and gets a lot of heat from people in the Free and Open Source Software (FOSS) community because those boxes aren't as open as hackers would like them to be.

Oddly enough, however, Linus Torvalds, who created Linux and oversees its development, isn't among the complainers. In an e-mail interview with Forbes, he explains his position.
Technorati tags: , , , ,

Cocoon 2.1.9 released April 2006

Apache Cocoon 2.1.9 was released about 3 weeks ago.

a lot of changes were made since version 2.1.8.

Cocoon History of Changes:
Version 2.1.9 (April 7 2006)
Technorati tags:

Bill McCoy: RESTful And Social Internet Applications

Bill McCoy calls attention to one requirement for modern web programs that limits the audience of developers somewhat. He recommends greater simplification, particularly avoiding requiring developers to write XPath instructions.

It's an interesting point. Basic XPath instructions are really not that hard for programmers to understand.

Most programmers understand the concept of directory paths or else they are not much good for doing any good for coding programs that do file I/O or relate to the web at all.

And most programmers these days probably know what regular expressions look like, either from contact with them in C, PERL, Java, Ruby, etc.

XPath is basically just directory path syntax combined with regular expression syntax. There are more features and nuances there, but that is the crux of it.

Web developers of the graphical artist type might not understand XPath - but they don't have to understand it. They do layouts, art, color balancing, text/backround contrasting, etc.

They do not write SQL code in most cases. So they will not need to do XPath constraints XForms documents or XSLT stylesheets. Other people will do that stuff.

However, that is not to say that more programmers using XForms - and greater speed of development with XForms - would not result if drag-and-drop/property-sheet interfaces could generate/modify the XPath expressions in the forms documents. Just like most programmers prefer to use a powerful IDE and some still prefer to use vi, there will still be some people and occasions for writing/editing XPath expressions directly.

In most cases, I would expect XPath expressions in XForms to be generated and maintained by the software that selects data sets and does the persistent-object-to-XML mapping. That is likely going to be a GUI, probably in an IDE. Software is very good at doing those kind of database-programmer GUIs these days, particular IDE software.

Bill McCoy: RESTful And Social Internet Applications:
It seems to me that if declarative model-based approaches to application construction are going to take off, advocates need to change the rules, and stop trying to oversell programmers and scripters on non-programmatic approaches. Instead we should create new classes of tools that really are for non-programmers, that do things like hide the complexities of XML Schema and XPath. When the day comes that non-programming users are really building production-level RIAs, I'll wager long odds that they won't be doing so by editing XML XPath node-set expressions in Notepad.
Technorati tags: , , , , ,

Maven Repository

At last, there is a real Maven Repository! That is right: MvnRepository.com is a serious Maven repository.

And, it has a Web 2.0 style user interface - with a tag cloud and everything, including an RSS 2.0 newsfeed of the newest Maven artifacts. Way, way, way cool.

Technorati tags: ,

Groovy RC 1 any day now

About two and a half months ago, the Groovy project blogged that they would be releasing their first version 1.0 release candidate in a couple of months.

They said they hoped to ship a final 1.0 release about a month after that.

Looks like Groovy will be going 1.0 final around mid-2006. It is kind of neat, since Groovy so closely resembles the Ruby language.

Ruby, whose famous Rails framework went 1.0 final late last year, earlier this month issued a 1.1 final release. Just last weekend, Go Daddy! announced that they were offering Ruby On Rails and Ruby CGI with all their server hosting plans except the very cheapest one. That means if you can afford $6.99/month, you can afford a Ruby On Rails host.

It seems likely that the praise and attention paid to Ruby will shine more attention on Groovy this spring.

Groovy - News:
I'm pleased to announce the release of Groovy JSR-05. This is the last release of the JSR-xx line. The next release will be the first RC-x release before the final 1.0.

You can read more about our updated roadmap here:
http://groovy.codehaus.org/Roadmap

We're planning to release RC-1 in about two months, and the final Groovy 1.0 release should be out in about three months.
Technorati tags: ,

Trick for manually testing Ruby On Rails applications via command line

Programming veteran Mike Clark, of Clarkware Consulting has turned his attention from Java to Ruby On Rails.

This month he blogged a lot about Rails, including a very neat tip for how to run Ruby On Rails 1.1 in a headless mode and manually feed it commands simulating user requests, and then seeing what comes out.

Mike Clark's Weblog:
If you've ever wanted to poke and prod your Rails app through the
entire stack without firing up a web browser, Rails 1.1 just made it
easy. You can now use the app object from within
script/console to get access to the ActionController::Integration::Session
instance. And that means you can drive your app just like an
integration test.


Mike created quite a lot of extremely useful free software tools in Java over the years. I am sure his impact on Ruby On Rails will be just as dramatic and beneficial to everyone. The fact he is writing about it is just icing on the cake.

Technorati tags: ,

Friday, April 28, 2006

[video] And the Firefox film winners are... | CNET News.com

Mozilla has picked out the top five Firefox commercials out of more than 280 they received.

Four of the five video ads I found just amazing. They seemed to be of commercial quality. One was far, far better than most commercials I have seen in my life.

[video] And the Firefox film winners are... | CNET News.com:
Mozilla picks five best promotions
Technorati tags: , , ,

Official Google Blog: A great day for 3D

Yesterday Google announced they were giving away the basic version of their new Google SketchUp software for free.

What is more, you can park your 3D model objects on Google Earth and upload them to the 3D Warehouse: their giant 3D object repository. Google's contribution to the repository is that it is searchable, just like the web.

Wow, it is like they are creating the building blocks for a MMORPG.

All they need are the players and the rules!

Official Google Blog:
The new Google SketchUp is for the do-it-yourselfer, the hobbyist %u2014 really anyone who wants to build 3D models for use in Google Earth. Go ahead and model that new kitchen, or deck, landscape your virtual garden, or impress your teacher with a roller coaster or medieval castle. When you%u2019re finished, place your model in Google Earth. There! The beginning of a virtual world. Warning: don%u2019t start messing with this stuff after dinner because your first experience could be an all-nighter%u2026 making an idea come to life in 3D can be very addicting.And what could be better than that? Well, sharing your work with everyone else through the 3D Warehouse. Accessible through both versions of SketchUp, 3D Warehouse enables you to upload, search, browse, view, and download SketchUp models. Just as you do with Google search, enter some keywords and the 3D Warehouse shows you all your options.
Technorati tags: , , , ,

Using Ruby on Rails for Web Development on Mac OS X

Early this month, at the Apple Developer website, a very nice article came out on Ruby On Rails programming.

The article points out something I had already noticed: that a lot of important Ruby On Rails developers are using the Macintosh as their development platform. This follows an earlier trend of Java programmers gravitating toward the Macintosh platform a couple of years ago. And, before that, some open source developers as well. In fact, Apple hired a few of those Unix/Linux open source guys.


Apple Developer Connection:
It should come as no surprise that Mac OS X is a favored platform for
Rails development. Rails and its supporting cast of web servers and
databases thrive on the rich Mac OS X environment. A popular text
editor used by many Rails programmers is TextMate,
a Cocoa application. And all members of the Rails core development
team work with Macs.


The great thing about technologies like Ruby are you do not have to buy a Macintosh in order to program with them.

But a lot of programmers are.

The other great thing is that your users do not have to be no a Macintosh in order for them to run your programs.

But a growing number of users are.

XForms and Internet Applications: XForms and Ajax Languages

Mark Birbeck points out that the goals that were the anvil which Ajax was forged on - actually can be accomplished with less technology/complexity using XForms.

Ajax prescribes certain technologies. Everyone who is an Ajax programmer or done a little reading on the subject knows these are:
  • XHTML+CSS for presentation/styling
  • DTHML - using DOM API, to manipulate the view
  • XSLT and XML for data transfer/manipulation
  • asynchronous data retrieval - using XMLHttpRequest
  • Javascript - as logical glue to integrate the model, view, controls, submission, and retrieval


Mark abstracts these things to meet the goal down to just the purpose of each part of the solution, rather than focusing on the particular technology that was selected to solve that part.

When he does that, he find that XML fits. And, well, XForms requires a whole lot fewer moving parts. With XForms, you basically just design the form - and it runs itself.

XForms and Internet Applications: XForms and Ajax Languages:
When Jesse James Garrett coined the term 'Ajax' he summed up perfectly where we are at in terms of building web applications:Ajax isn't a technology. It's really several technologies, each flourishing in its own right, coming together in powerful new ways. Ajax incorporates:standards-based presentation using XHTML and CSS;dynamic display and interaction using the Document Object Model;data interchange and manipulation using XML and XSLT;asynchronous data retrieval using XMLHttpRequest;and JavaScript binding everything together.But if you put aside the specific technologies that Jesse refers to, and instead focus on what he is suggesting we should achieve, you are left with:standards-based presentation;dynamic display and interaction;data interchange and manipulation using XML;asynchronous data retrieval;and something binding everything together.
Technorati tags: , , , , ,

XForms 1.1

XForms 1.1 will very elegantly factor model, view, and control aspects - as evidenced by the current draft of the W3 XForms 1.1 standard.

XForms 1.1:
xforms: The XForms 1.1 namespace (http://www.w3.org/2004/xforms/)
html: The XHTML 2.0 namespace
ev: The XML Events namespace


Another nice thing about XForms 1.1 is how beautifully it will integrate with XHTML 2.0. No worries there. XForms is the forms module for XHTML 2.0!

Technorati tags: , , , ,

XForms and Internet Applications: XForms: An Executable Pattern Language

Last Fall, Mark Birbeck (XForms guru) made an excellent post to his blog that shows one of the huge advantages of XForms over, say, using Javascript to do Ajax programming.

The XForms is short as heck. It requires less baggage too. Whereas the Ajax solution requires the application to use a huge amount of Javascript code; either built-in, or from third-party source(s).

Mark Birbeck:
As I said, it looks like what I'm saying is that XForms is better than script. I have to say that if that were all we'd achieved with XForms then I'd be pleased, but a lot less vocal. XForms has actually provided us with something far more significant--we now have something close to a pattern language, but one that thinks it's a programming language.
Technorati tags: , , ,

XForms and Internet Applications: Loosely Coupled Objects and Declarative Programming

Mark Birbeck blog on Loosely Coupled Objects and Declarative Programming hit the same nail on the head that I did earlier today. He however, hit it in November 2004.

Most programmers who were awake years or decades ago when they were taught their first object-oriented programming design lessons learned that declarative code was more concise than procedural code.

It is the difference between logical design and physical design, top-down design and spaghetti code, properly leveled complexity and a God Object.

Mark gives a concrete example and noodles around with it a bit in his post. He sums up by pointing out a fundamental flexibility that is there in the declarative model - but not the procedural approach.


Technorati tags: , , ,

Cocoon GetTogether 2005 - Slides and recordings

I a came across a huge cache of documents - PDFs of the slides and MP3 recordings - of presentations from the 2005 Cocoon conference. Wow!

Cocoon GetTogether 2005 - Slides and recordings:
Slides and recordings


Topics covered include: form libraries, Ajax forms, blocks, XSLT performance, etc.

Technorati tags: , , , , ,

XForms - Oliver Brown

Oliver Brown wrote a wonderful description of what XForms is - and what it allows us to get rid of - like Javascript, custom AJAX code embedded in the application.

It is definitely away to leapfrog some of the more problematic technologies of today, in order to jump right on the back of some of the most desired features today - and ride off into the same sunset of success that they are pointing to. Without all the hassles!

What is the problem with embedding AJAX libraries in web applications? Initially, not much. If you can stomach having Javscript in your application, initially it is fine.

However, if the browser vendor makes a slight change in the way his DOM, Javascript, renderer, or any one of a number of other things - then you might need to update to a new version of the AJAX libraries you used. Well, what if you are no longer maintaining the application and it is one you sold to a customer 3 years ago?

Who should have to pay for the software maintenance then? You? The customer? The user? The vendor who makes the web browser?

Chances are, there is no clear answer.

With XForms, the XForms interpreter is buillt-into the browser. Period. You don't have DOMs, or for that matter - any code - running in the browser. No applications code, no 3rd party libraries code.

XForms does that by truly separating the information from the presentation. Other technologies give lip service to this lofty goal. XForms actually does it.

In an XForms document, the model - in the forms of data values and constraints - is in a separate section from the presentation part which holds a declarative description of the data-entry fields.


XForms - Oliver Brown:
HTML forms don%u2019t really send information, they send data. There is no real structure to what is sent - all you have is name/value pairs (although depending on the capabilities of the server you can at least send variable length arrays with the foo[] naming convention).
XForms improves on this by separating forms into different parts, primarily models and user interface (well technically what I%u2019m referring to as models is split into abstract models and instances but that%u2019s like talking about classes and objects). The models are just chunks of XML that are sent to the page. The user interface (essentially just input tags like the HTML equivalents) modifies this XML and then sends it back.
The structuring of the data may well be enough to warrant the adoption of XForms, but it%u2019s a little better than that. When I say the XML (or more correctly the model) is modified by the user interface, the modifications are held in memory by the client (probably a browser) and any references to the model should change accordingly. This allows some stuff that would usually require clever AJAX, complete calls to the server or at least just plain JavaScript can be done fairly trivially.


This is a really great description of what XForms is all about.

Technorati tags:

XForms and Internet Applications

I stumbled over a nice weblog this evening that is all about XForms.

XForms and Internet Applications:
Stuff to do with producing a new generation of Internet Applications...biased towards XForms!
Technorati tags: , ,


This blog is great. Its author is familiar with XForms (obviously), SVG, MathML, RDF, XML, E4X, AJAX, Groovy, Ruby, and a host of other useful modern languages used on computers.

What is also kind of interesting is that all of these are either built into the Firefox web browser, or - in the case of Groovy and Ruby - can be used in it via the Java plugin. XForms, at least most of it, is available in the form of an extension or plugin. All the other ones come built into the browser when you get it.

Running Ant tasks in Maven 2

Larry Williams has written a helpful article for those who have made the jump to Maven 2 from Maven 1 or ANT to automate their Java project builds.

Running Ant tasks in Maven 2:
Running Ant tasks in Maven 2 is completely different from Maven 1. In Maven 1 you could define the Ant tasks in maven.xml and run them as easily as any other Maven task. In Maven 2 this has changed, I would say for the worse. Maven 2 no longer has a maven.xml and requires that everything is a plugin.


Luckily we do not have to write our own plugin as Maven 2 already has an Ant plugin called antrun. The problem is that the documentation is not that helpful. It does not provide any quick examples.


Thankfully, Larry does.
Technorati tags: , , , ,

About Sidewinder | skimstone

This is a good explanation of what Sidewinder.

Basically, it is a slight retreat from building the bulk of applications out of traditional 1980s and 1990s programming languages, and a greater standard of document standards of the 21st century.

By using the documents to describe what the user should see and what the user can input, there is basically less programming. What you see is literally what you get. Not just hopefully what you get.

About Sidewinder | skimstone:
Sidewinder is a new kind of desktop application framework that uses web languages such as XHTML, SVG, XForms and Ajax, in place of more complex languages such as C , C# or Java.
Technorati tags: , , , ,

Building a Backpack interface with XForms | skimstone

Someone has created a full XForms GUI for the Backpack project scheduling system.

Backpack is one of the better known commercial websites written in Ruby On Rails.

XForms is the new standard for doing online forms. Created in the late 1990s, it eventually became an official W3 Recommentation (basically, a standard all though they never call their standards such).

Today, XForms is also better known as the standard way of doing forms in the next version of XHTML. That is right, the new XHTML standard literally does away with any semblance of the original HTML forms/controls tags and simply uses XHTML. Smart!

With XForms, a web designer only has to create one page. Client devices will interpret the goals/controls of the web page from its description, and present the most attractive, usable user interface they can to the user. It is a much better division of labor and success of reuse than has ever existed before on the web.

Lately, the web has been fracturing into a lot of incompatible standards. While diversity of formats is good (sort of), minimization of labor costs and mistakes is a more common goal. Supporting as many different types of devices as possible is another common goals. XForms provides a shorter road to that than other technologies, without a lot of redundant coding/authoring/designing.

Who knows, you might one day be running this prototype from your cell phone - not just your desktop computer.

Building a Backpack interface with XForms | skimstone:
We're getting ready for a new version of Sidewinder and in the process we're building a few desktop applications to show what you can do with the new features. One of these applications makes use of Backpack to store tasks and reminders, and during the course of developing it, Phil decided to set up a simple XForm that can access every feature of Backpack. It's such a handy little form that we thought we'd share it with you--if you're planning to build an XForms application that uses Backpack you'll definitely want to take a look

SketchUp for Mac OS X

Yes, SketchUp 5.0 does run on Macintosh computers that are running Mac OS X. No, it does not yet run natively on Intel-based macs - but it does run under the Rosetta emulator built into Mac OS X for Intel Macs to use to run PowerPC applications.

SketchUp for Mac OS X:
We are currently shipping SketchUp Pro 5 for Mac OS X - the latest version of our award winning design exploration tool.

Ruby

People have been asking what Ruby is good for and who uses it. There are plenty of websites using Ruby today. Many of them use AJAX, one of the most popular features on the web today.

Sketchup, the powerful 3D model designing/editing tool that Google recently bought and now distributes for free, uses Ruby.

Ruby programmers will be pleased that there is a Sketchup API for Ruby. Ruby programming can be added to run directly from the application's menus.

Sketchup Ruby API and Console:
SketchUp contains a Ruby application
programming interface (API) for users who are familiar with (or want to
learn) Ruby scripting and want to extend the functionality of SketchUp.
This interface allows users to create tools, menu items, and other macros,
such as automated component generators, to be included in the menus within
SketchUp. In addition to the API, SketchUp also includes a Ruby console
which is an environment where you can experiment with Ruby commands or
methods .

SketchUp - 3D Warehouse

Google wasted no time bringing up a communal repository of Sketchup 3D models on their website.

SketchUp - 3D Warehouse:
The new 3D Warehouse is an online location where you can find and share 3D models.


This is kind of exciting because in the last year and a half, interest in 3D models has exploded.

Long a staple of product designers and movie makers, the public's thirst for 3D models began to sky-rocket with the introduction of MMORPGs. Two really well known ones are World of Warcraft and Second Life.

These two games rally incredible sized legions of programmers from around the world to be entertained by exploring a giant simulated world.

Sketchup there is an easy tool that everyday people can use to create exciting 3D models. It is free from Google.

And now there is a public repository to share those models at.

Ajax forms support in Apache Cocoon 2.1.8

Cocoon is an open source Apache project that is an XML-oriented approach to web servers.

Most web servers serve plain static files, and use CGI or some embedded programming language (Java/JSP, VB/ASP, Ruby, Python, etc.) on the server to do interactive applications.

Cocoon takes a different approach. While it supports these things - Java, Javascript (with continuations capability), etc. - its focus is on XML. Rather than writing lumps of HTML content interwoven with procedural code - it uses XML documents to declaratively describe the page.

Cocoon enforces the separation between content and presentation. It supports web-style MVC. It offers declarative forms. It has its own template language: XSP. And now, starting with version 2.1.8 - it supports AJAX.

Cocoon's latest version includes support for AJAX in its forms language.

Cocoon is a great foundation for creating a web publishing system. It is suitable for creating a web portal, as it can already scape content from other web servers and understands most popular XML formats out of the box. Content management systems have already been written in it, proving some capabilities in that area as well.

Now, with support for AJAX - one of the hottest features on the web today - Cocoon has something else going for it to ensure its relevance on a more and more XML-oriented world.

Apache Cocoon project:
Starting with Cocoon 2.1.8, Cocoon Forms offers (mostly) transparent Ajax support. What this means is that when a form is submitted, this happens in the background and only those parts of the form that actually changed are updated on the page. Full-page reload only happens when interaction with the form is finished.


Here is a little explanation by Sylvain Wallez on how he added support to these new AJAX features to Cocoons Forms (CForms) module.

Technorati tags: , , , , ,

BBC Program Catalog on web (prototype)

The BBC has placed a large portion of its program catalog on the web as an experiment. Not recordings of the TV/radio shows but rather the titles/abstracts/airing info. Just information about the programs. They have made it all searchable.

The British Broadcasting Company is making a sincere effort to embrace web technoloiges to expand its usefulness in the 21st century.

The site publishes not only valid XHTML+CSS - but also RSS, and RDF with Dublin Core metadata.

It is not only a useful tool in and of itself, it is also a showcase of what broadcast networks can do to further their connection with their listening audience, fans, and customers.

read more | digg story

Thursday, April 27, 2006

CSS Beauty | CSS Design Showcase

I like CSS a lot. It is not as powerful as XSLT but if you want to do something simple in a hurry, it is great.

I like to prototype appearance changes, and investigate page structures, using the Edit CSS sidebar extension for Firefox.

That said, there is more to doing good web design that just picking good colors and making the borders look good.

This site is a great one for people using CSS for two reasons. One, it has good tutorials about how to do CSS with good examples. Two, the site itself showcases what good CSS can do for a website.

CSS Beauty | CSS Design Showcase

The site is very aptly named.

JUnit 4.0 has been released

JUnit, the de facto standard unit testing framework/runner, was updated a couple of months ago.

JUnit, Testing Resources for Extreme Programming: "Extend Object, @RunWith your own Runner, Annotate @Tests, Annotate and extend Test simply now."

Finally, it takes advantage of JDK 1.5 (J25E) features like annotation.

Here is an article about what is new in JUnit 4.0 and how to use it.

Wednesday, April 26, 2006

Content Management Systems Choosing the Right One for You

Nice short list of tips for Content Management Systems Choosing the Right One for You.

Near the end of the article there is a link to the CMS Matrix, which is a pretty good site for getting feature comparisons of the various Content Management Systems out there.

Python Programming Language website gets major overhaul

The Python Programming Language -- Official Website has gotten a major overhaul recently!

The site has been rewritten as XHTML. No more 1990s era HTML!

The site now makes heavy use of CSS for styling its content. This offers some nice benefits, which the people who developed the new look for the site took full advantage of. You can browse the site with 3 different looks.

Another improvement: an RSS newsfeed for the website. It is right there ready for the browser to use, if it knows how. As soon as you drop on the home page, you can look at the RSS feed.


A lot of other Python-related actions have occurred recently.

About 6 weeks ago, the Python Software Fooundation announced a new weblog.

About 4 weeks ago, Python 2.4.3 was released - and two days later, it was out as a Mac OS X Universal Binary. (Python 2.4.3 documentation)


Apple's newborn Intel based Macs are quickly receiving a lot of love from the whole developer community. Python is not the only community working hard for the Mac users.

I have a theory about this: a lot of developers have switched to Macs!

It is easy to verify as true. If you look at screencasts, books, and screenshots that promote and explain how to use today's top programming/languages and tools - you are going to see a lot of Macintosh windows in those photos.

That is because that is what the developers are using themselves. Go take a look at this stuff from the Ruby community and check out what Java's James Gosling is using as his computer.

Developers like software that is fresh to use on their systems. That is why the Mac is getting so real all over the place this year.

Rails in a Nutshell, by Jeremy Voorhis

Jeremy Voorhis just announced he is the author of the upcoming Rails in a Nutshell book from O'Reilly Media.

Rails in a Nutshell, by Jeremy Voorhis:
I have been working professionally with Ruby on Rails for over one year and I am writing the book that I would like to have next to the keyboard while I work.


Ruby On Rails success stories are just flying off the shelves this year.

It is pretty apropos that soon there will be yet another book teaching how to be successful with Rails.

Ruby on Rails News

Eerie feeling, reading a blog posting on newly-discovered news aggregator for Rails - and after sensing it was vaguely familiar, realizing it was one I had written myself earlier that day!

Anwyway, you can see the excerpt below. I found it on the Ruby on Rails News site I stumbled over this evening. Wish I could get an RSS feed from this site.

Ruby on Rails News:
Bundles in Locomotive - now available for Rails 1.1
26/04/06 17:08 from Feedster on: 'ruby on rails'
At last! There are now Ruby On Rails 1.1 bundles for Locomotive Ruby development on the Mac !! Anyone who does Ruby On Rails development on Mac OS X is no doubt aware of Ryan Raaum's Locomotive open source project. Locomotive creates a lit.."


Crazy, huh?

OtherThings: Ruby On Rails 1.1 Has Been Released

I plan on switching to Ruby On Rails 1.1 this weekend. Now that a Rails 1.1 bundle has been released for Locomotive, this will be pretty easy to do.

One of the things I am excited about is the greater ease of doing AJAX programming this new version offers.

The feature that makes this possible is called RJS.

OtherThings: Ruby On Rails 1.1 Has Been Released:
The star of our one-one show is RJS: JavaScript written in Ruby. It’s the perfect antidote for your JavaScript blues. The way to get all Ajaxified without leaving the comfort of your beloved Ruby. It’s the brainchild of JavaScript and Ruby mastermind Sam Stephenson and an ode to the dynamic nature of Ruby.

TechCrunch » Yahoo Launches DVR Service: Yahoo Go

Yahoo just launched a new DVR service yesterday - the Yahoo Go service they announced a couple of months ago. Apparently, now it is ready for a live public beta.

TechCrunch » Yahoo Launches DVR Service: Yahoo Go:
The feature list is comprehensive: Use Yahoo Go to manage photos, search Yahoo videos, watch stored movies on your hard drive, listen to music and manage television shows via a full DVR (like Tivo or Microsoft Media Center). Yahoo Go is only available for Windows machines.


If you think the story is interesting, make sure you Digg it.

The Power of Tests

Someone has written a fantastic article on unit-testing Ruby applications.

The Power of Tests:
My belief is that unit testing is for everyone and, in fact, I’ll go so far as to say that I believe becoming a test-driven developer is the single best change a programmer can make in their day to day routine.


The artistic explains succintly what five virtues of unit testing are.

Then it jumps into giving great examples of how to write really useful tests in Ruby.

These examples are primo. Well worth reading if you are a Ruby programmer.

Canadian Music Creators Coalition: A New Voice

There is a new organization that has been created to speak out against the commercial recorded music industry: Canadian Music Creators Coalition: A New Voice.

Supposedly, it is made up of some big name Canadian music artists themselves - including Avril Lavigne and Sarah McLachlan.

I just read about this recently, so I have no idea if these artists are actually members of CMCC or not. The web page clealy states they are. I guess I will come back and check next month to see if those names are still there.

I guess if they are, then there will probably have been some shakeup in the record industry or some changes in the group's stance. Right now, they don't seem too compatible.

If you find the article interesting, be sure to Digg the announcement about it that was recently posted so other people see it.

I am sure if it turns out to be a hoax, the comments section for that entry on Digg will wind up containing some explanation. And if there are new developments, they will probably show up in the comments too.

In the end, I think everyone wants the same thing fundamentally: artists to be able to make a living creating and performing music, and possibly get rich along with their partners and investors in the music recording industry.

It is clearly how to go about that which is the same thing generating such discord and disagreement. It looks like the schism over the answer to that question is growing into a major fault line.

Artists clearly have ample reason to by unhappy with things that are done in their name in the wake of their work. Clearly they want a relationship with their fans that is social and not purely commercial. The social side of that relationship, and their reputation, has clearly been harmed by recent actions.

It is their own personal birth names or stage names that are being slapped on thing that are hurting people who have made them their heroes. That cannot go on for long without major fallout.

Looks like the artists are getting crushed in the process.

I don't have a dog in this fight but I do have some artists that I consider myself a fan of who I like quite a lot. It pains me that their reputations have been traded on by strangers in order to satisfy their greed.

Maybe that is a kind of illegal trading too. Eh?

Got Mevenide2 ? NetBeans Does. (cld.blog-city.com)

NetBeans 5 can support Maven 2 if you want it to do that.

The Mavenide team has released support for version 2.1.1 of their extension and it works with NetBeans 5.0.

Got Mevenide2 ? NetBeans Does. (cld.blog-city.com)

ANT files are great to get a project up and running with automated builds quickly. I have been using ANT for almost 5 years.

The only complaint I have about ANT is that over time, your ANT file - or files! - eventually start to grow like The Blob!

The problems creep in from a variety of sources. Here are some of the forces that conspire to make what used to be a simple ANT build file turn into a gigantic sweet of ANT targets:
  • need for metrics to suit management goals
  • need to automate execution of unit tests and generate test reports
  • need for integration and/or system tests, maybe some functional tests that simulate user actions with the UI too
  • need to do some fault-injection
  • test coverage is required in order to make sure all those tests are doing something, and to find out what they are not testing
  • in production, bottlenecks are showing up so have to get some profiling done
  • want documentation generation to be automated
  • have to start generating reports of issues and TODO items so long-overlooked issues do not get missed permanently and lead to problems


As you can see, ANT is great when things start off simple. However, they do not stay that way.

Since there are lots of dependencies - and some incompatibilities between different ANT tasks and the 3rd party Java libraries they use - it quickly becomes a job in and of itself to maintain these ANT files and slay the versioning dragons.

That is where Maven comes in.

They have worked those problems out and found the compatible mix of libraries you need to use. They keep them up in repositories on public file servers. They make it easy to update from from old versions to new versions. They provide tons of functionality for Java build/test/document/measure requirements.

ANT did a great job of getting the ball rolling. Maven might just be the way to set it and forget about it.

Java Technology and Business Integration Services

Sun is promoting Enterprise Service Beans (ESB) as a means of achieving Java Business Integration (JBI) in a Service Oriented Architecture (SOA) environment.

This page has a lot of userful information from Sun regarding that.

Java Technology and Business Integration Services

Java Platform, Standard Edition (Java SE) 6 Beta

J6SE (JDK 1.6) beta came out a couple of months ago, back in February.

Java Platform, Standard Edition (Java SE) 6 Beta

Features to make Java run better in the big enterprise or hosted services environments have been added or improved.

Changes to increase developer productivity have been made. It will be easier to debug memory leak problems, do monitoring, and debugging.

End users running desktop applications will gain some look and feel updates to better match their operating system's own look and feel. Performance will be better too.


Based on the release cycles of previous Java releases, I imagine we will see this one out by early 2007, at the latest.

SourceForge.net: Locomotive

Locomotive 2.0RC7 has been released!

SourceForge.net: Locomotive: "Locomotive is a Cocoa GUI application that simplifies the process of developing Ruby on Rails applications on Mac OS X 10.3+."

The final release of Locomotive 2.0 cannot be far off! I cannot think of any projects offhand that have required more than 7 release candidates.

Bundles in Locomotive - now available for Rails 1.1

At last! There are now Ruby On Rails 1.1 bundles for Locomotive Ruby development on the Mac!!

Anyone who does Ruby On Rails development on Mac OS X is no doubt aware of Ryan Raaum's Locomotive open source project.


Locomotive creates a little pocket universe on your Mac. In it you can run any version of Ruby, Ruby On Rails, and certain Ruby libraries that you want alongside the standard Ruby libraries.

Ryan uses a special trick with something Mac programmers call a bundle. Within a bundle, a framework found within the bundle will supercede those installed in the System and User Library.

This is a nice way to solve, or literally sidestep, most versioning problems that would otherwise exist on the Mac. Or, for that matter, any computing platform.


It is a wicked-cool solution to the age old software configuration problem I refer to as version torsion stress. I had to give it a name because it is a force in so many real-world software development antipatterns.

Think of it as an Indian burn you get from software versions that don't want to work together in the same system.

Some libraries want too work with an older library. But other libraries want to deal with a newer library. And you are trying to deal with this all in the same system in the same server. You need to give each application its own environment. Or at least give certain applications different versions of certain libraries than other applications.

With a tool like Ryan's you can do that. Thanks to his brain's and the power of the Mac's architecture.
Bundles in Locomotive

So thanks to Ryan, it is easy for us guys using Macs to develop Ruby On Rails 1.1 applications, while still supporting any old Rails 1.0 applications.

It occurs to me that some hosting companies could really use the power of the Mac frameworks+bundles dichotomy to provide some really cool virtual environments to their customers. Mac OS X might have a real edge over other operating systems used by these server hosting companies.

Now that Go Daddy! has become the first giant web hosting company to offer Ruby On Rails hosting services, interest in this premium capability might develop at one of these companies.

A lot of customers of some other web hosting companies were pleased when Rails 1.1 came out. Unfortunately, they were horrified when their web apps broke when their hosting company thew a master switch and switched all Rails apps for all their customers at once from Rails 1.0 to Rails 1.1.

For one thing, the customers would no doubt have prefered to do that change themselves after some testing and perhaps some program modifications or library version changes.

For another thing, the environment that was configured system-wide on those machines was not too well tested

Using the Locomotive solution, configurations of the new Rails 1.1 environment could have been set up alongside the Rails 1.0 environment that was already in production.

After it was tested, that environment could be left in situ on the server(s). Customers could have switched over to that environment when they felt ready to do so. Without migrating to a different server or lots of other disruptive alternatives.

I have long thought that Apple Computer should be a hosting company - not just for static media like web pages and photos, songs, and movies - but for processes, programs, and services. Maybe they will do something cool like that when their gargantuan server facility in Newark, NJ comes online sometime this year or next.

The success of this bundles+frameworks trick in Locomotive - and the problems recently cited with shared servers at various hosting companies - convinces me that now is the time for Apple to step forward and try it out.

They might find yet another niche they are uniquely suited for in the always evolving computer industry.

Beeplet: timed alerts

Someone has written a modern notification service, called Beeplet.

You can feed it events via an RSS feed, which is something modern web calendaring systems are now supporting.

You can also do it using Javascript. The API for that is mentioned below. Chase the link to the site and you can see an example.

Beeplet: timed alerts:
You can add a button to Beeplet in your own site. This way Beeplet users can automatically add your events or reminders to their alert list!


It seems like a nice idea. Looks like he is following the component maxim, "do one thing, and do it well."

REXML Tutorial - Home

Two of my passions right now are Ruby and XML. REXML is a library that fits both of those. It allows writing very clear, concise Ruby programs to process XML input.

I have already messed around with it a little bit while writing a utility to process RSS feeds.

REXML Tutorial - Home:
REXML supports both tree and stream document parsing. Stream parsing is faster (about 1.5 times as fast). However, with stream parsing, you don't get access to features such as XPath.

RubyNoob

I came across a very nicely-written, educational blog by another experienced programmer who has recently taught himself Ruby.

His posts are very fun and informative to read.

RubyNoob:
I've been a software developer for nearly 10 years now and I have just recently begun learning Ruby and Rails. RubyNoob is an apt description of me at this point and this blog will track my experiences in learning the language and the framework.

jobs.rubynow.com: Ruby Developers needed asap/Washington, D.C.

Steve Case is hiring Ruby programmers in D.C. to work at his new Revolution Health Group (RHG).

I have a hunch they are going to succeed.

jobs.rubynow.com: Ruby Developers needed asap/Washington, D.C.:
Revolution Health Group, one of the Washington Metro's fastest growing companies is seeking several Ruby Developers to join our team! Successful candidates should have 1-2 years of experience with Ruby. We are building a web based portal that we need to launch quickly. Experience with the following would also be desired. Java, CSS, Web based technologies and portal experience.

Tuesday, April 25, 2006

Otaku, Cedric's weblog: Why Ruby on Rails won't become mainstream

Cedric recently blogged about the Ruby programming language. Specifically, why he thought it would never catch on.

Some of his facts are just plain wrong. Admittedly, they went wrong after he wrote down his arguments against Ruby a few weeks ago.

However, some of the logic is wrong too. A lot of it consists of strawman arguments. He creates lists a group of things that have ultimately failed to catch on, lumps Ruby into the group without really making a good case for likening it to them, and then concludes that Ruby will fail as well.

Read his article if you want to see what I mean.

Otaku, Cedric's weblog: Why Ruby on Rails won't become mainstream:
I'd like to take some time to explain why, in spite of all its qualities, Ruby on Rails will never become mainstream.


Now, as for where Cedric goes wrong, let me count the ways:
will fail to go mainstream like SmallTalk and LISP failed to go mainstream
yet he forgets to mention they both had weird syntaxes and Ruby does not
Ruby On Rails has stalled development of other Ruby web frameworks so it will not have a lot like Java does
Yet this is hardly a crippling blow. Java had almost none five years ago. Ruby supports CGI, FastCGI, and Rails. More can come later, as new niches are discovered.
no major osting companies support Ruby
Just this weekend, GoDaddy.com announced support for Ruby On Rails and Ruby CGI in their service. I checked and it is true - and as cheap as a $6.99/mnth plan! For that they will also throw in Java, PHP, and Python CGI. So this argument has been vaporized. Go Daddy is huge, cheap, and well known.
No credible IDE
RadRails is out in beta now and has been since 2005. It is uses the Eclipse IDE as its foundation and Eclipse is rapidly becoming the defacto super IDE of the 21st century. RadRails is available as a stand-alone application or a plugin for Eclipse itself. Cedric should check it out. The guys coding it are moving as fast as mongooses - despite handling a full workload in school.
Ruby On Rails is too complex because it automates much of the normal grunt work using tried-and-true MVC and other modern practices.
Let me get this straight? People should do everything with much more tediously written code because that will be easier to write and understand? I do not think so! MVC is not all that hard for everyone. Granted, currently fewer programmers understand how to write it. But given a quick demonstration, they quickly accept that it works and then stop fighting so hard to not understand it. Once they stop fighting it, it is easy to do and easy to use.
Fanatacism.
True. There is some of that. However, is he really going to argue that Java did not have its fanatics ten years ago? How as that hurt the Java cause? If anything, it has helped it. Because many of those fanatics created very useful class libraries, development tools, and so forth. Some people will be put off by an excess of ardor. Big deal, that never killed a language - some people, but never a language.
Mob mentality group think.
The lack of resistance to a few dominant group's of people's ideas does not necessarily mean blind faith in bad ideas. They might be good ideas. You cannot generalize and start off with the assumption that a certain percentage of every group's ideas have to be really bad. They might have bad ideas that they are just self-censoring and only putting out the quality ones. A lot of the Ruby elders have been around the block a few times and have both technical knowledge and practical experience. People are responding to the quality of their work, not just their mantra.
scalability
Ruby does have its limits. So does every language and every computer. Eventually, they cannot handle a problem if you keep making it bigger and bigger and limiting their resources. These days, the most expensive resource is developer time - not computer hardware, which is not cheap. Distributed Ruby caches and ORM software already exists, and are being used. Sure, I have seen some heavily used, large scale Ruby apps cough up an error from their server sometimes. It does not happen often but I do not assume the language is doomed if I see that happen a couple times every two or three months. Could be a transitory coding error or a temporarily underprovisioned machine. Take a look at 43 Places, 43 People, 43 Things, and All Consuming. They are some big sites and they seem to be working very smoothly - and with lots of AJAX being used on them, even.


I do not think Cedric is stupid because he obviously knows a lot of things. And he cites them in his post.

However, I do infer there are a lot of things he does not know and that is arguments are flawed. In short, I think he is wrong.

The reasons I think he is wrong are given above. I think these contradictory facts disable key points of his argument. I do not think it stands as correct in light of these facts.

I do not see programming languages or anything else as Completely Good or Completely bad. Everything has drawbacks and most things have advantages in at least some situations.

He is guessing that Ruby will never catch on and slide down the adoption curve before it ever scales any more height than SmallTalk.

I think he is wrong and that it already is used in some impressive sites on the Internet. Now that Go Daddy is including it in 2 out of its 3 very affordable hosting plans, many more Ruby On Rails applications are sure to come.

There really is nothing holding them back.

RadRails - A Ruby on Rails IDE

RadRails 0.6.2, the latest version of the Eclipse-based Ruby/RubyOnRails IDE was released two weeks ago.

The list of improvements for this release is reaonably long for a point-point release.

RadRails - A Ruby on Rails IDE:

* Update manager for standalone builds (Help > Update RadRails) to get future releases

* RJS and RXML editors

* Ctrl+Shift+V location bugs have been fixed

* Ctrl+Shift+V now works with mailers

* Ctrl+Alt+T will switch you between your controller/model and functional/unit tests

* Another toolbar item was added for Integration testing

* Integrated Tests now work and prepare the test database all the time (keep the bar green)

* There is a Rake menu when you right click on a project now to execute tasks

* Mac version is Universal and has pretty program name and dock icon (no more 'java' in the left hand corner)

* Implemented a new solution to the server stop issues (should be solid now)

* Made RDT's latest release 3.2 compatible and fixed symbol/number highlighting errors

* All of our standalone builds are based on Eclipse 3.2 M6


Technorati tags: , , , , ,

Javascript animation screencast video

I spotted an interesting video that is a screencast capture showing what Javascript can actually do, in the hands of someone not afraid to color outside the lines.



Pretty impressive, isn't it? It is all animation. It is mostly 2D animation but there is quite a bit of pretty great 3D animation in there as well.

This goes way beyond what you usually see Javscript doing. It is quite an interesting demo.



Technorati Tags:
,


Infinite Loop: Cocoa widgets in Firefox, Thunderbird progressing nicely.

Work is being done on the OSX version of Firefox to gibve it the ability to use Cocoa widgets.

Infinite Loop: Cocoa widgets in Firefox, Thunderbird progressing nicely.:
One common complaint Mac users have about Firefox is that it just doesn't feel like a native OS X application. This is a valid critisism, mostly because... Firefox isn't a native application. Firefox abstracts away a lot of the OS-specific stuff like dialogs, context menus, and 'widgets' like buttons and dropdowns in order to be more portable across platforms.

A ongoing project on the Firefox team is to bring OS X's native widgets (ala Camino) into the Firefox fold, and assauge a lot of the common complaints heard from Mac users.


This is kind of exciting because The Cocoa widget set on the Macintosh is incredibly powerful. They can be read by Applescripts, possess a built-in realtime spell checker/fixer - and support system-wide text services from both Apple and third party applications.

SVG in Mozilla Firefox

I stumbled across a terrific page about using SVG in Mozilla Firefox today.

SVG - MDC:
Scalable Vector Graphics (SVG) is an XML markup language for describing two-dimensional vector graphics. Basically SVG is to graphics what XHTML is to text.

SVG is similar in scope to Macromedia's proprietary Flash technology, But what distinguishes SVG from Flash, is that it is a W3C recommendation (i.e. a standard for all intents and purposes) and that it is XML-based as opposed to a closed binary format. It is explicitly designed to work with other W3C standards such as CSS, DOM and SMIL.



I am kind of wondering if the current version of Mozilla Thunderbird, 1.5.0.2, can display SVG.

If anyone knows if it can, please leave a comment here in my blog.

If you can leave some links to some place that describes how to get SVG into messages being composed in Thunderbird, please do. Also, tips on how to construct a MIME message (or whatever) containing XHTML with embedded SVG would be greatly appreciated.

Sunday, April 23, 2006

Thunderbird 1.5.0.2 email application just released today

Just following the release of Firefox 1.5.0.2 last week, Thunderbird 1.5.0.2 has been released today.



Thunderbird - Reclaim your inbox:
The new Software Update feature makes it easy to get the latest security and feature updates to Thunderbird. Thunderbird automatically downloads these small updates in the background and prompts you when they are ready to be installed.




Anyone that already has installed Thunderbird 1.5 or 1.5.0.1 can update to 1.5.0.2 just by executing the Check for Updates... command in their Help menu inside Thunderbird. This goes really fast - it only has to download 106 KB instead of the whole program!



Technorati Tags:
, ,


The Omni Mouth » The state of OmniWeb

I really like the looks of what WebKit inspector will offer web developers (designer guys, programmer guys, style jockeys). It looks like it will not only be working with Safari at some point but also OmniWeb.

The Omni Mouth » The state of OmniWeb: "Here’s a peek at 5.5 (clickity-click for larger image), although there isn’t a lot that looks different from 5.1. Note the unified toolbar, site-specific preferences for using your own style sheets to view websites, and the WebKit Web Inspector feature (currently not a default in OmniWeb)."

The Omni Mouth » “Yes!” - The Omni Video

Watching the Omni group's first commercial, I had this strange desire to learn Objective-C....

The Omni Mouth » “Yes!” - The Omni Video

It's a really entertaining video.

Saturday, April 22, 2006

Apple - Environment

Apple really is a green company, compared to many computer and electronics firms.

Read their Apple - Environment web page for more information on how they are helping preserve the environment.

If you know a little electronics, then you know that modern computers, televisions, audio systems - and now even cars and airplanes - contain lot of semiconductors.

And if you know a little chemistry, then you know that these semiconductors contain substances like arsenic.

And if you know a little biology, or you know what rat poison is, you know that arsenic is toxic to humans and other animals. That is why we use it to kill pests.

Well, we expect our neighbors not to be careless about where they go putting their rat poison. Yet we are pretty unconcerned with where their old computers, video games, and home entertainment equipment - and now cars – wind up.

Some companies are starting to do some things about this problem. Apple is doing more.

Right now, when you want to replace your old computer with an Apple, rather than charge you a $25 to $40 recycling fee - they will do it for free.

See the web site above for more details.

While this sounds like a silly idea, it is really not. You do not throw your trash away for free now. You pay a monthly fee, and someone hauls it away.

Moving trash costs money. And in the case of poison/toxic or unstable trash, there are extra costs involved.

Apple is paying these costs for you.

I know that is a lot to take in all at once. Do yourself a favor and look into it. You will see that I am right.

If you don't know where to start, just start searching around for some of the technical words I used at Wikipedia.

Friday, April 21, 2006

Macworld: News: Analyst: Demand for Mac strong, iPod weakening

Popularity of the Apple Macintosh continues to rise.

Macworld: News: Analyst: Demand for Mac strong, iPod weakening: "The Mac among definite buyers lifted from 6.1 percent in October 2005 to 7.0 percent in December 2005 and 7.8 percent in the most recent survey (April 2006). Planned purchases for Apple’s notebook since the launch of the Intel-based MacBook Pro has gone from 7.5 percent in December 2005 to nearly 10 percent in the April survey."

Macworld: News: Apple reports $410 million profit

Apple posted almost a half billion dollars in profit last quarter.

Macworld: News: Apple reports $410 million profit:
"We've generated over $10 billion in revenue and almost $1 billion in earnings in the first half of fiscal 2006," Apple's CEO, Steve Jobs, said in a statement. "Our transition to Intel processors is going very well, and our music business just experienced another quarter of outstanding growth."


If their luck holds out, they might earn about two billion dollars in profit this year!

Thursday, April 20, 2006

Intel Posts Sharp Fall in Profit - New York Times

Intel announced yesterday that their quarterly profits had dropped by over a third!

Competition from CPU-maker AMD is cited as the reason, as well as a slow down in purchases of PCs. Apple is one PC vendor which has not defected from the Intel camp for any of its products yet. Maybe Apple's rising sales rates converted with the steady adoption of their Intel-based Mac/PCs will help offset Intel's losses. Probably a couple quarters before they would feel that.

Intel Posts Sharp Fall in Profit - New York Times:
Intel, the world's largest chip maker, reported a 38 percent decline in quarterly profit Wednesday in the face of stiff competition from Advanced Micro Devices and a general slowdown in the personal computer market that caused inventories to swell.
Technorati tags: , ,

Check that Java version!

After you get your browser updated to the latest version, it is a good idea to check and see if your browser is using the latest Java version.

This is pretty easy to do. Take a look at the the image below. That shows what a version check looks like.



Click on that image. It will take you to a page with a link to the web page that runs the Java version number reporting applet in your web browser.

That will let you know if Java is enabled on your browser, and if so - what version your browser is using.

It is possible, easy in fact, to have more than one version of Java installed on your computer. The one your browser is using will be one of them. However, it might not be the latest Java version among them. There are various reasons for this.

So this testing page is very useful. It is a very, very handy web page to save a bookmark too.

Thursday, April 13, 2006

Firefox 1.5.0.2 released

I was pleasantly surprised tonight when I checked for an update to Firefox 1.5 to find that, in fact, there was one.

The big news for those people who want a Universal Binary for their Intel-based Macintosh is that they get one.

Looks like another one of John C. Dvorak was wrong once again with one of his dire predictions for the Macintosh imminent doom. Not only are their Universal Binaries out for hundreds or thousands of Mac applications already - Apple also released beta software to allow the Macintosh to dual boot between MS-Windows XP and Mac OS X 10.4 (Tiger). Apparently, this will be a standard feature in Mac OS X 10.5 - for anyone who cares to buy a retail copy of Microsoft's OS so they can install it.

All and all, a pretty good week for those people who have bought Intel-based Macintoshes.

Firefox 1.5 is the latest in a long line of OS X programs that run natively on both Intel and PowerPC processors - from the same binary application file.

Firefox 1.5.0.2 provides native support for Macintosh with Intel Core processors, and stability and security enhancements that are part of our ongoing program to provide a safe Internet experience for our customers. We recommend that all users upgrade to this latest version.


read more | digg story



Technorati Tags:
,


Wednesday, April 05, 2006

Apple - Boot Camp

People have been quoted in the press for years as saying Apple should release a Mac that runs MS-Windows, or let PCs run Mac OS X software. Well, the new Intel-based Macs are gaining that capability now.

The release of the new Apple Boot Camp software as a public beta, marks the advent of just such a capability. While people who buy non-Apple computers are not going to be able to buy Macintosh applications, people who buy Macintosh PCs will be able to run both the Macintosh operating system and the Microsoft Windows operating system.

Apple - Boot Camp:
Boot Camp lets you install Windows XP without moving your Mac data, though you will need to bring your own copy to the table, as Apple Computer does not sell or support Microsoft Windows.(1) Boot Camp will burn a CD of all the required drivers for Windows so you don't have to scrounge around the Internet looking for them.

Since a Mac Mini costs about the same price as a similarly equipped Dell, HP, or Compaq computer - someone is getting a premium value if they buy their computer from Apple instead.

Microsoft recently touted a lot of great features the Mac OS X has featured for years, as compelling reasons to buy the Microsoft Vista operating system when it comes out in a year or two.
  • scalable icons
  • translucent windows and icons
  • browser can run separately from desktop and other applications
  • browser can run without ActiveX
  • etc.

Today, people can run those features on their Macintosh - and boot into Windows XP to run their legacy MS-Windows applications.

They have to have a legal copy of Windows XP that is licensed to them and not in use on any other computer, and the Boot Camp software. Given how many PCs are crashed for good or replaced with better hardware each year, that should not be a problem. There are also plenty of mail order computer software and hardware retailers that will ship Windows XP and hundreds of other products overnight.

So I think there will be a lot of Macintosh computers running Windows XP by this weekend!

Tuesday, April 04, 2006

Gamasutra - Police Memorial Fund Protests 25 To Life

Pretty shocking. I heard on the news during breakfast this morning that British company EIDOS imports a game to the US where players can take on the persona of a crime gang member, shooting policemen.

Seems like this crosses the line between freedom of speech and incitement. The company claims they sell more of their games to twenty and thirty-something games to adults, so it is okay. Yeah? Well, take a look at the 9/11 hijackers. How many of them were under 17?

Video games where players shoot space aliens, explore mazes, run civilizations - that stuff is kind of cool.

Bug games where players shoot cops? Are they nuts???

Anyway, the article to read is: Gamasutra - Police Memorial Fund Protests 25 To Life. It tells how the organization that commemorates police officers killed in the line of duty feels about the video game.

These are the people that protect us from violent gang members. A game simulating killing them is about as far over the line as a game can possibly go, without actually carrying out untoward actions directly itself.

Games that educate people are noble. Games that teach people how to do useful things are constructive. Games that inform people about their world are useful.

There are lots of good games out there. Buying this one will keep people from getting those good games.

Technorati tags: , , ,

Sunday, April 02, 2006

SchemaWeb - Browse

The Social Web, Semantic Web, and World Wide Web have all advanced greatly in the past two years.

The technical standards and associated tool under-pinning them did not really spring up along with them. Those things were already there from previous years, or in some cases, the previous decade.

What did seem to appear alongside them as some web programming frameworks, in a few cases, and a heightened interest in scripting languages as opposed to standard IT/MIS production languages.

One of the biggest contributors to the meteoric rise in the social web in the past several years has been RSS. The RSS document standard is a way of basically recording and interpreting What's New.

The RSS standard is about a decade old at this point. It just slightly predates the introduction of Netscape's Channels, which were based on RSS.


Anyway, people started using RSS to list what was new on their News sites, the weblogs, their corporate sites, their cartoon sites, their photo sites, and their social activity sites. Once that happened, they all began to feed on each other. Yes, pardon the pun.

The interdependency and interconnectivity of so many websites' content greatly increased the ability of people to see what is going on. That really changed the web.

Beyond what RSS provides - a list of items related to a topic in something called a channel - there has not been a lot of progress in moving information from one website to another.


Screen-scraping is an old and fragile, ad hoc practice from the 1970s. It was invented to overcome the limitations of computers that could not conceive of sharing information with another computer. They would readily share information with a forms-based computer terminal with a human on the other end of it, though.

So screen-scraping arose as a pragmatic trick for getting one hopelessly poorly-architected computer to speak to another by spoofing it into believing it was talking to a terminal.

It worked. The problem was, if anything having to do with the choice of what fields were on the form, where they were laid on it, or what format they were presented was changed, then the whole thing would break.

That is exactly what happens when screen scraping of web sites is employed today. In a sense, it is actually worse. The typical HTML web page document is riddled with errors, making it not a valid HTML document at all.


This was actually recognized as a problem a decade ago. So the Semantic Web was devised.


The Social Web is a slightly different creature. At first glance, it is not concerned with whether different computer programs can interpret what is going on with islands of information stores scattered all over the place. It only wants to see how people are connected, help them share information with each other, and let them observe what is going on.

A typical Social Web site will also let users collaborate on something. Examples include:
  • Amazon users helping each other determine which are the best books, records, and movies
  • All Consuming users doing the same thing, with foods, as well as those items
  • Last.FM users sharing information about which songs are the best - be they up-and-coming pop bands, old classics from the 60s, or some obscure indie band that made a CD a couple of years ago that is starting to catch a wave of interest (perhaps thanks in no small part to Last.FM and its online community)
  • TV.com users identifying their favorite TV shows, the best (or worst) episodes, and sharing the latest news on favorite TV actors - plus building excitement about upcoming shows
  • Yahoo Movies users helping each other decide which are the best - and worst movies out there, so people can gauge what movies to rent - and whic ones to see (or miss) that are playing now at the theaters



Contrast that with old-fashioed HTML web pages. They come in three varieties.
  1. word processor documents
  2. interactive forms
  3. human-readable lists or tables of text


Web pages were too stupid to pass information about what was going on to each other. That is why the semantic web was created. Formats like RSS are one type of semantic solution. RSS mainly communicates about documents though.

So a number of sites can read the latest bits of information from one site using screen-scraping or, now, RSS. However, reusable software with any deep understanding of what is going on at all of these sites is still not here.


That is where the rest of the semantic web comes in. The SchemaWeb website catalogs all of the ontologies out there that are part of the semantic web. There are a lot of them.

Each ontology represents the definition of a different portable data model. These data models define the formats for self-contained descriptions of related things which can then be put in a document and stored or passed around.

The more sites that use these ontologies, the more sites will be able to transfer not only lists of words or hyperlinks - but knowledge of things about which they all share a common understanding. They will be able to use the same software to exchange, interpret, format, sort, filter, and edit that information.

Since the format is a standard, they can pop out one software module to do some of these things - and pop in another. The software will be able to evolve quickly. That is because he data formats and the software are not not tightly coupled to each other.


It sounds like there would be a need for a general purpose program that can read in one of these wonderful ontology files out there. It would be amazing if it then let a user immediately start banging in - and executing searches and reports - without writing any reports or even talking to a programmer.

That tool exists and I have been using it for about 4 or 5 years. Its name of Protege and it is free. It is written in Java, so it will run on any desktop computer (Windows, Linux, Macintosh, Sun, IBM, etc.). In fact, it can also run on a web server - in which case the forms makes are web pages.

Protege takes care of the drudge work of creating forms for: add, edit, delete, link, unlink, search, and query. That lets you create on the most important thing: information. You do not have to waste a lot of time writing procedural code. The whole thing works declaratively, driven by the .owl files your get from the SchemaWeb site - as well as the very smart software built into Protege.

Protege is a relevant topic now for another reason. They are up for getting their funding renewed, as it must be periodically. So they are asking everyone who is using it to write up a little bit of information about what they are doing with it. That will help their patrons determine that this is indeed a beneficial software program that should continue to improve.

It is, so try it out quickly - and tell them. Protege has a turnkey installer and is easy to figure out. It is almost magical how it meets your needs without you having to explain them. You just feed it an ontology and go to work.

Oh, and it helps you create your own ontologies very quickly. If you have ever done any object-oriented programming, you will take to it like a fish to water. If you haven't, but say you are familiar with the biology approach to classifying things using an organized system (kingdom.... class.... species) it is sort of like that, but more flexible and less memorization required.

It is Sunday afternoon now. So go grab Protege, try a couple of the samples out, and then do one more thing. Grab and interesting-looking ontology, preferably in OWL format, from the SchemaWeb site - and try it out in Protege.

Cool, huh?!!


There is a lot more under the hood in Protege. You don't even see it normally, but there is a semantic web server engine humming under its hood. You can use super powerful technologies like Jena with it.

Jena includes support for SPARQL in it that is worth a good look at. SPARQL can look at OWL and RDF-S files, and then let you write very simple looking queries in a sort of SQL-like syntax. Eliminates the need for you to write a lot of complicated software to do commonplace things with each new data format that comes out.

That is what the semantic web is all about. Stop reinventing the wheel. Just grab or make an ontology, and start using it to do all the things you normally do. Just without a long delay up front to write a lot of programming.


Who knows? Maybe you will grab Protege and a couple existing ontologies, and write your own Social Web site or website tool. Then you could be the next millionaire. Aren't you glad you did not have to write a lot of software to do it?

Related pages & news