Maybe we like Firefox because it is less fragile

Maybe we like Firefox because it cannot be screwed up as easily as Internet Explorer.

http://support.microsoft.com/kb/q180176/

Somehow, ALL new IE windows would fail for me.  At first I thought the popup blocker was screwy, but then (weeks or months later) I realized that right clicking and picking open in a new window was also not working.  A quick use of google gave me the above link.

I don’t see how this same kind of thing could happen with Firefox.  Maybe Firefox will be the better browser for my Mom because it can’t as easily get hindered like IE did in this case.

I know that I’ll never have to register COM dlls to fix a Firefox bug.  My fix for IE was easy enough:
regsvr32 shdocvw.dll
regsvr32 actxprxy.dll

But my Mom would NEVER figure this out.

powered by performancing firefox

Save 10% storage on your Ubuntu installation

sudo apt-get remove –purge openoffice.org nautilus-cd-burner openoffice.org-base openoffice.org-calc openoffice.org-common openoffice.org-core openoffice.org-draw openoffice.org-evolution openoffice.org-gnome openoffice.org-gtk openoffice.org-impress openoffice.org-java-common openoffice.org-l10n-en-us openoffice.org-math openoffice.org-writer   openoffice.org-l10n-en-gb openoffice.org-l10n-en-za

Immediately save 10% of your used disk space.

Yes, I am storage cramped in this day and age of 750G hard disks.  Yes 250MB is not much.  I don’t care.  It also means I don’t have to download and install updates on all these packages.  I probably should have done a server install.

powered by performancing firefox

Code Better is having a book giveaway.

I like the look of the books, and I’ve referenced Code Better before.  So consider this my entry.

Palermo is blogging about NHibernate again.  It is great to see on Code Better.

I don’t know if Vista upgrade cupons are this soon or not, but I fear it may mean that I’ll want a new computer sooner rather than later.  Of course, I’d be converting the computer to run Ubuntu Linux and run the Windows in a VM.

I finally upgrade my disk in my old computer.   I still don’t know how I was living with a 15G / partition.  It was rough.  I haven’t done such an upgrade in a number of years.  I’m not sure, but I think it was smoother.  I think udev does some magic or something.  I rsynced my / to /newdisk and changed my fstab on the new disk.  fstab maintenance is MUCH smoother using UUIDs and LABELs rather than devices.  In my case I also rearanged cards on my PCI bus so that I could install grub on the SATA drive.  Grub didn’t like the 3ware card, so I’ve been using lilo for the past few years.  I was expecting some problems because sdc was to become sda, but DUH, the module load order didn’t change in my initrd, so sdc did not become sda and it would not have mattered anyway thanks to UUIDs in fstab.  The speed of the 160G SATA disk is so much more than the old 30G disk that it is almost like having a new computer.

powered by performancing firefox

Internet Explorer is truly evil.

I avoid web development.  It is just much more of a pain in the rear end
than it should be.  When I do web development, I test in Firefox.  I
write valid XHTML and valid CSS.  When I have to get something to work in
Internet Explorer, I curse.

So for future reference:

line:1

error: invalid character

can happen when one of the scripts which you reference does not
exist.

<script src=”scriptaculous.js” type=”text/javascript”>

oops, scriptaculous.js doesn’t exist.  Thank you Microsoft for writing
such excellent and accurate error messages.  The quality of this software
continues to astound me.

 

Windsor featured on CodeBetter

Hurray!!!

It is about time that someone other than a Castle Project contributor bloged about Windsor!  David Hayden over at codebetter.com writes about Windsor.

I can’t think of very many applications that shouldn’t be written using Windsor, and I can think of scarcely few more which should not take advantage of Binsor.  The Meticulous Geek even says “I never want to configure my container with XML again.”

Yes, I realized I just linked Ayende again.  He blushed at my last post where I summarized what I thought were the best Active Record and NHibernate related posts of the past 8 months.  It was difficult to stay on topic.  There were many other great posts, but many were about other things.

ORM vs. your own DAL with everything in Stored Procedures

I was arguing in an instant message window today. I was trying to relay the awesomeness that is Castle Project’s Active Record. I realized I’m not a very good arguer. I found myself digging for URLs which I know I had read, which do the comparison of DAL vs. ORM and dispel the myths that “you must use stored procedures for all database access”.

As I was skimming reverse chronologically through Ayende’s blog, I realized that for someone starting off, reading these things in some kind of logical order would help. I’ve decided to try to put things in some kind of order. Regarding Ayende/Oren’s blog, his really is all you need. He links to many other sites with excellent information.
So first, I’d like to try to build a case for using ORM.  I don’t have to do much, it has been done for me:

Just because you are using ORM, doesn’t mean it is magic.  http://www.ayende.com/Blog/YouCantEscapeTheComplexity.aspx  You have to still understand what is going on under the hood.  This is definitely an area in which I am lacking.

It is probably best to read Clemens Vasters post, then read Ayende’s follow ups.  They are very enlightining.  It is great to get both sides of the issue.

  1. http://friends.newtelligence.net/clemensv/PermaLink,guid,0fbf07a9-9e7a-4db4-a305-58250ac57a73.aspx
  2. http://www.ayende.com/Blog/2006/03/07/ClemensOnORMappers.aspx
  3. http://www.ayende.com/Blog/MoreAboutObjectRelationalMappersVsCustomDAL.aspx
  4. http://www.ayende.com/Blog/ClemensOnORMapeersTakeII.aspx

Don’t think DLINQ is the answer, or that it does more.  Many DLINQ fans don’t realize that most ORMs have been able to do this stuff for years.  http://www.ayende.com/Blog/UsingORMProperly.aspx

A comparison of LLBLGen to NHibernate.  Now to be fair, Oren is a contributer to NHibernate so he may be a little biased.  I’ve not used LLBLGen, but I have browsed its documentation, and I’d also rather use NHibernate.  http://www.ayende.com/Blog/LearningAboutLLBLGen.aspx

On security of the stored procedure approach vs. ORM.  This is a great detailed description.  http://www.ayende.com/Blog/OneUponATimeInAnITOperationFarFarAway.aspx

For some reason there are LIES surrounding ORMs.  Know this:  They are lies.  http://www.ayende.com/Blog/PissedOffByVanatecOpenAccess.aspx
Some people have responded to others and said “I’ll write my own!”  Oren(Ayende) gives 25 reasons not to:

http://www.ayende.com/Blog/25ReasonsNotToWriteYourOwnObjectRelationalMapper.aspx

It turns out he was repeating himself, because he mentioned it a little less detailed months before: http://www.ayende.com/Blog/YouReallyShouldntWriteYourOwnORM.aspx

A common problem to run into once you start using an ORM, any ORM, is know as the SELECT N+1 Problem.  http://www.ayende.com/Blog/CombatingTheSelectN1ProblemInNHibernate.aspx

I’ve never done this, but I should probably keep it in mind.  I’ll bet I could use it, and it is a great example of how quickly you can get things done using these tools.  http://www.ayende.com/Blog/UnderusedNHibernateFeatureCreatingObjectsInTheSelectClause.aspx

I haven’t even read these yet. How could I have missed them?  They go into how it works.
All you wanted to know about Castle’s ActiveRecord – Part I
All you wanted to know about Castle’s ActiveRecord – Part 2

Finally, there is a whole series of posts building up a demo app, including using Brail for MVC.  This is ActiveRecord + MonoRail stuff, a great way to see the big picture.  http://www.ayende.com/Blog/CasleDemoAppMidwaySummary.aspx
A couple of items which I think are worth reading, but I couldn’t fit into this semi-ordered list of links.

  1. http://www.ayende.com/Blog/AFewWordsAboutTheDecoratorPattern.aspx
  2. http://www.ayende.com/Blog/AdvancedUsesForORM.aspx
  3. http://www.ayende.com/Blog/ComplexSearching.aspx
  4. http://www.codeproject.com/aspnet/NHibernateBestPractices.asp
  5. http://www.codeproject.com/cs/design/IntroducingCastle.asp
  6. http://www.codeproject.com/cs/design/introducingcastleii.asp

Once you are familiar with the ActiveRecord library, I highly recommend checking out the rest of CastleProject.  Windsor is awesome.  MonoRail is ASP.NET on steroids.

Locales, Postgresql and Ubuntu

Somewhere along the path of running Ubuntu unstable and its postgresql-8.1 packages, the locale which the main cluster was built with was en_US. But this was not the UTF8 variety of en_US, it was(is) the ISO-8859-1 variety of en_US. Well, somewhere along the way Ubuntu started defaulting to making ONLY the en_US.utf8 locale when the locale package is installed. This lead to some ugly strange errors when trying to start the postgresql server.

Error: The server must be started under the locale en_US which does not exist any more.

It is troubling because the en_US locale DOES exist, and the start scripts automatically set the locale properly. The issues is that en_US.ISO-8859-1 does not exist, but that en_US.UTF8 does exist. The solution is a simple command, but it wasn’t so simple to track down.

sudo apt-get install language-pack-en-base
sudo locale-gen en_US
sudo invoke-rc.d postgresql-8.1 start

Agile good vs. bad. I win!

I honestly can’t tell if Stevey is serious or not, but I
love this post anyway.

I was chuckling inside the whole read, but this made me laugh out loud.
“I
was really curious, in part because I’d consented to try Agile last Christmas
(“hey, it can’t hurt”), and wound up arguing with a teammate over exactly what
metadata is allowed on index cards before giving up in disgust.”

http://steve-yegge.blogspot.com/2006/09/good-agile-bad-agile_27.html

By the end of the read I could tell that he is indeed serious and he raises
some awesome points.  This is the first writing I’ve ever read that said no
to Waterfall, Cowboy and Agile.  YEEHAW!!!