Saturday, December 03, 2005
The Open Laszlo frame work is an RIA (Rich Internet Application) which is open-source.  It relies on the Flash plug-in in the browser for virtual machine functionality.

Q & A:

What is the benefit of using Open Laszlo as a client versus HTML?

Open Laszlo is a rich client.  This can best be compared to a Visual Basic application or any other Windows based application where the client can maintain state.  Also you have much greater control over application layout and appearance without worrying about the inconsistencies of web standards between different browsers.  As long as the client web browser has a Flash plug-in installed, the Laszlo application can run and will appear consistently across browsers.  No more CSS Layout hell.

Is the reliance on Flash a problem? 

Actually the Flash reliance can be a benefit.  Flash market penetration is somewhere above 97% for the 7.x version of the Flash plug-in.

What about text size?

Actually the application can be split among files so the main application can load quickly and other pieces of the application can be loaded on demand.

Is download size a problem?

Actually the application can be split among files so the main application can load quickly and other pieces of the applicaton can be loaded on demand.

How can you interact with other frameworks and technology?

Laszlo uses XML as the basic unit of data transfer.  As long as you can generate XML with your server application Laszlo can use it.  Data can be returned to the server in any form necessary including the typical form POST method or in an XML format or whatever other method you can conceive.

Do I need any special server software?

No, you need the ability to host SWF files, which should not be a problem for a majority of hosting solutions.  The Flash files are simply files downloaded like any other file (like a picture or PDF) to the client browser.  You can use the Laszlo server which is a Java based stack but I am using Ruby on Rails as my server software.  When Laszlo is deployed in SOLO mode (as my site is) you do not need any supporting server software.  Simply communicate through http to any resource that can return XML.


Saturday, December 03, 2005 12:47:20 PM (Central Standard Time, UTC-06:00)  #    Comments [0]

Here's a link to a presentation about some seemingly disjointed topics that blend into an architectural discussion about simplicity. 

Highlights:
We don't need middleware (There is no such thing as transport independance).
URL's are important
Small disconnected functionality can be combined with unexpted results (Google Maps + Craig's List)


http://intertwingly.net/slides/2005/rs/
 |  | 
Saturday, December 03, 2005 12:41:52 PM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Wednesday, November 16, 2005
Look into this...
http://www.lifehacker.com/software/feature/geek-to-live-turn-firefox-into-a-web-writer-137450.php




Wednesday, November 16, 2005 4:21:45 PM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Tuesday, October 25, 2005
Funny thing is all the new language features of C# are very old LISP features and Ruby already has them...
 
"Anonymous methods allow code blocks to be written “in-line” where delegate values are expected. Anonymous methods are similar to lambda functions in the Lisp programming language. C# 2.0 supports the creation of “closures” where anonymous methods access surrounding local variables and parameters. " - MSDN
 
I just mean that I've been reading about LISP lately and how Ruby is a very closely related language and even thought LISP has been around for something like 4 decades it's features are still being picked up by Java, C# and other languages.  In fact one of the co-creators of Java said somethong about Java bringing C++ developers half way to LISP. 
 
LISP is a very ugly language but Scheme, a variant, is not so bad.  I'm not sure I would have picked up Ruby if I hadn't migrated to C# from VB6 and then had to learn Java and Progress.  The thing is I like learning this stuff and if knowing Ruby helps me understand C# so much better which I can say it does because I can see the intent of the abstract constructs in C# so much clearer through the lense of Ruby then I could through the broken glasses of VB6.   
 |  | 
Tuesday, October 25, 2005 8:47:54 PM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Tuesday, October 18, 2005
How to detect JavaScript in a browswer - Version 1 - Poorman's special.

This is a simple hack to detect whether JavaScript is enabled in a browser.  This trick should work for ASP.NET or Ruby on Rails or any other framework.  The trick is to use the noscript tag.  Here is a snippet of code:

 <noscript>
  <INPUT TYPE='hidden' NAME='jsdisabled' VALUE='true'>
  <span class='warning'>JavaScript must be enabled to use this site!</span>
 </noscript>

Make sure you place this code inside the form that is to be posted.

The noscript tag is only active when script is either not supported or disabled.  This chunk of code gives a warning to the user and also sets a hidden form value.  When the form is posted you can then check to see if the jsdisabled parameter is included with the post.  If it is you know that JavaScript is enabled.

Notice I call this a poor man's method as it needs more testing.  If you can see any problems with this please add a comment so I can change it
Tuesday, October 18, 2005 10:34:11 AM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Friday, September 23, 2005


If you're familiar with vi then gvim should be no problem.  If you're not you can still use gvim in a windows compatible mode.  Either way gvim can be used as a pretty good (not to mention free) IDE. 

First go get gvim at http://www.vim.org/.

Then go get the project "script" at http://www.vim.org/scripts/script.php?script_id=69  If you can't find it try searching for "project"

Now you need to install a nice little ruby gem named "vim-ruby" 

   You can go this with the following steps:

  •    gem install vim-ruby --remote
  •    vim-ruby-install.rb

   from your command line of choice.

Now one last bit, to make sure you can enable folding which helps a lot with large files remember to do the following step:

To enable folding, download the patched ruby.vim file shown atop this page. Then put the following lines into .vimrc (or ~/.vim/plugin/ruby.vim):

 set foldmethod=syntax
 set foldtext=getline(v:foldstart)
 " you may try out this: set foldcolumn=3
 set fillchars=fold:\ " note the whitespace after  
 " not neccessary but useful (so you can use the TAB key to fold/unfold):
 map <TAB> za

-- originally found at http://www.rubygarden.org/ruby?VimExtensions

You should be on productive dude after this!

Friday, September 23, 2005 5:15:52 PM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Wednesday, September 21, 2005

ORM (Object Relation Mapping) is the new automatic memory management.  You wouldn’t want to go back to having manage pointers and allocate and de allocate memory.  This is how we advance.   The less unnecessary complexity the better.  I think most languages and platforms will eventually have this built in.  Rails provides Active Record which is based on a Martin Fowler pattern of the same name.  Java has hibernate, cocoon and about a hundred other frameworks most of which have/are being replicated into the .Net space.

So if you have a decent database design you can really take advantage of the ORM to make your life so much easier.  Of course queries can be optimized etc if you need them to be but all of this logic can be put into the Ruby (Java, .NET) language functions used to query the database.  Things like order by, limit, sorting can also be specified. 

The nice part is that the schema needs to make sense to be used.  The id field is always called “id”.  Foreign keys are always named with the tablename_id so it’s consistent.  That’s the advantage of Rails, there’s so much organization built in and you always know where pieces of code are going to be, ie models, views, controllers, libraries, etc.  

How many times have you opened someone’s project and had to hunt around trying to find what you are looking for.  

Why do we have 2 x 4’s?  Wouldn’t it be great if each carpenter could choose the dimensions of lumber to use for each project?  Why limit the choice? 

The answer is obvious or should be and the same thing goes for software development.  Microsoft has done a great disservice for developers by not mandating a coding standard which includes indentation and style along with project organization.  

This is the only way we can continue to handle more complexity; we must delegate some of it to the computer and use standards. 

Wednesday, September 21, 2005 8:41:37 AM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Friday, September 16, 2005

When it comes to login or authentication schemes for web pages you have a few choices.  

  1. Authenticate with email address and a password.
  2. Authenticate with a user name (either system or user generated) and password.
  3. Authenticate with an account number (or some relevant identifier) and password.
  4. Authenticate with an account number (or some relevant identifier) and pin or other unique identifier (SSN, address, etc).
Each of these schemes has its own unique merits.  The most popular is probably number one above.  The email address is usually one of the easiest logins to remember.  However a potential stumbling block is the situation where multiple unique users share an email address.  It’s hard to believe that this seems logical to a person when email addresses are a free commodity.  

Number two is probably the second most popular as it eliminates the problem from number one, however it introduces the problem that a user must remember some kind of random user name because they probably won’t get the one they want as it will already have been taken.  This increases the possibility of support calls and user frustration.

Number four is becoming more common especially for financial services and other highly regulated or secure environments.  All information is meaningful and unique.

My preference is usually number one.  It’s common and easy to understand and the draw backs are easily remedied by the forcing of a unique email address.

I choose number four as my second choice.  It’s more complex to implement but it provides a higher level of security while using relevant customer/user information.  This would prove especially effective if the required login information changed randomly like many financial institutions authentication schemes.

Friday, September 16, 2005 10:36:15 AM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Friday, September 09, 2005
As usual Joe is right on target with this article.  He explains why MS Project sucks for software projects (it's meant to manage construction of buildings not software) and why Excel is the most complicated tool you need to create a good software schedule.  I believe the SCRUM process also uses spreadsheets.  I had a colleague who was big on the SCRUM process and it seemed very promising in that it let the developer plan the work without a dog and pony show.

http://www.joelonsoftware.com/articles/fog0000000245.html

I've often wondered if you could prove that the speadsheet is one of the most valuable pieces of technology ever, perhaps behind the hand calculator, email and the word processor.
Friday, September 09, 2005 3:02:46 PM (Central Standard Time, UTC-06:00)  #    Comments [2]
Every once in a while you come across some truly innovative useful software.  Wink is that type of software.  It's a free application that can capture screen shots as either individual frames are as a mini movie which are then converted into single frames and can then be edited and eventually saved as a flash .swf or windows .exe file. 

I intend on using it for help systems and instructions for remote users.  Did I mention it's free?

All I can say is wow.

http://www.debugmode.com/wink/
Friday, September 09, 2005 11:55:15 AM (Central Standard Time, UTC-06:00)  #    Comments [0]