On Firefox’s rapid-release cycle fiasco Wednesday, Jul 13 2011 

Now playing: ♫ Summer Son — Texas

As mentioned in this PC World article, Firefox is on a rapid-release cycle that I personally find alarming.  I just upgraded to 5.0 last week and already 6.0 is in beta, 7 is in Aurora, and 8 is in trunk.  The major issue here isn’t so much the version number jumping, as they could be looked at 5.1, 5.2, etc. just as easily.  The major issue is that this is going to alienate much more than just enterprise users.  However, as someone who works in what some would consider an “enterprise”, I can tell you that my employer’s IT department is not at all happy about having to test all these new versions so often.  We’re often the first to adopt new versions of technology (we even have linux 3.0-rc5 pilot servers); however, a Web browser is often one of the hardest softwares to test, simply because of the amount of corner cases you can find in it.

The focus of Firefox is supposedly on the consumer.  These home users, or as they so eloquently phrase it, “individuals”, do not adapt to change.  This is why there are still people out there running Internet Explorer 6 on Windows 2000.  The especially obnoxious way that Firefox 4.0+ notify you of updates by displaying a large modal window every few hours, combined with the overwhelming amount of large updates coming in the next few months that will disrupt add-ons and change the UI in ways that will likely make more than a few people upset, will leave Firefox alienating a lot of home users.

Additionally, and as I’m not on the Firefox dev team you may take this with a grain of salt, it seems that shoving multiple major releases out the door in a matter of months is as big a mistake with testing and QA as it is with user satisfaction.  You can say that “release early, release often” is a staple of the open-source development model, but I don’t see Linus Torvalds readying the linux-5.0 tag any time soon.  Just because you are open-source does not mean you have to push out major release milestones every month.  No amount of programmers can work that long, and that hard, on that many revisions without there being cracks in the mould somewhere.

I’m not sure which browser is sitting in the best spot to take over Firefox’s share if it indeed does fall from its current place as one of the primary leaders of the Web.  Perhaps IE9 with its (broken but present) HTML5 support, or Safari 5 with its performant JavaScript engine.  All I know is that the browser I depend on for most if not all of my graphical Web browsing is seemingly becoming less dependable.

On iCloud Thursday, Jun 9 2011 

Now playing: ♫ Set Me on Fire — Pendulum

I was recently emailed an article from the Telegraph about the forthcoming cloud services from Apple, iCloud.  The subject read “Is it safe?” and the portion of the article I’m going to respond to is quoted here for convenience.

With iCloud, Apple has cut the cord. It’s not a company that sells computers, or even mobile phones. It’s a company that wants to be so helpful for every single aspect of your personal life, your work, your entertainment, and your memories, that whatever it sells, it’s simply indispensable.

They make iCloud, and the related enhancements in iOS 5, sound almost altruistic with this paragraph.  It isn’t.

What it is, however, is solving something that the Android/Google people have been whining about since day one: You basically need a Mac to own an iPhone.  Now, you don’t.

You can sync your media wirelessly with any computer, if you want.  You set a passcode in your iPhone/iPod/iPad (I’ll call them iDevice from here on out for simplicity).  When you’re within range to a computer with iTunes, you can tell iTunes to “Wirelessly sync to a device”.  It will then prompt you for the passcode, and if you enter it correctly, iTunes will upload all your music to iDevice.  This part is fairly safe.  You just have to trust the wireless hotspots you are connecting to.  You can temporarily disable wireless syncing, too, if you’re at a public place (say Starbucks).  The nice thing is, you can activate your iDevice and receive software updates without requiring a computer with iTunes installed.  This is good for people without PCs, good for people who don’t run Mac OS X, and good for people who have computers that break down frequently.  *Ahem*Mac mini*ahem*

Now.  iCloud is taking that to the next level.  Your music is stored on Apple’s servers.  Your data is stored on Apple’s servers.  Your notes, your preferences, your apps, your iBooks, your digital magazines…stored on Apple’s servers.  Of course they have 256-bit SSL (like HTTPS).  And they claim it to be very secure and robust.  But as the article you sent points out, Sony just lost the trust of about 80 million people when crackers broke in and quite easily retrieved personal information — including passwords — about every last person that was signed up to their cloud gaming service.

I’m not saying the cloud is a bad idea per se.  But when you think about the Sony incident, or the Amazon Web Services incident a few months ago — that took popular sites like Reddit and Foursquare completely down, and left thousands of business up a creek — well, you start to realise that the cloud isn’t all it’s touted.

Now, Apple has other cloud services, and they have millions of users and they’ve never been cracked or broken in to.  If that is your definition of “Safe”, then yes, by all means.  You can only secure a computer network so much, and Apple seems to be at least half decent at that.  (See the built-in firewall in Mac OS X.  And it’s getting a lot more powerful in Lion.)

But if you want to define “Safe” as “Will I be able to access this data all the time for the next 10 years”…I’m not so sure.

On why the past isn’t so great Monday, Jul 12 2010 

Now playing: ♫ The Best Is Yet To Come – Tony Bennett

I was talking to a friend of mine last week about music.  I mentioned that I enjoy listening to rock and pop music from the 1950s and 1960s.  He replied “yeah, the 50s were great.  A happier, friendlier time, without all this emo rot on the telly and radio, and worries about oil and the impending financial doom.”  I looked at him with the most surprised look I have ever had.  Then I asked him on what merit he based this opinion on, especially since he wasn’t even born until the 1980s.  He simply stated “that’s what everyone says”.

To be fair, I do believe him.  That is what almost everyone who didn’t study world history and wasn’t alive in the 1950s says.  But I would like to rebut his comments:

  1. “A happier, friendlier time”
    Obviously, he has never studied the Cold War.  The entire world was on pins and needles, worried that at any second the nuclear war would start and the entire human race would be utterly obliterated.  The perceived fallout from the Cold War definitely added many unhappy moments to the decade, and most of the Western world was very unfriendly to anyone in Latin America, the USSR, or any communist country.
  2. “Without all this emo rot on the telly and radio”
    This is by far the easiest to rebut.  People claim that “emo” (the angsty teenagers — not hardcore emotive nu metal like the word originally meant) and songs about failed relationships and depression started in the late 1980s or early 1990s with the punk/grunge scene.  I would like to point out that one of – if not the – most famous musicians of the 1950s, Elvis Presley, recorded “Heartbreak Hotel” in 1956 and that song basically started his large success.  This song was actually inspired by a suicide note.  If you want to define “emo” as most modern people do, this is the epitome of “emo” songs.
    Note that I’m not putting down this song or Elvis Presley at all — I am simply making an observation.  In my humble opinion, the word “emo” is far too overreaching and overzealous for its own good and should be stricken from the world’s collective mindset.
  3. “Without worries of oil and the impending financial doom”
    Of course, the worries of oil were almost non-existent.  But the cost of the Cold War, namely the quickly skyrocketing cost of maintaining strong military and defence systems, coupled with the loose trade regulations led by the Conservatives, meant that there was always the chance for financial ruin.

Of course, if you were quite young (or not even born) in the 1950s, you probably don’t remember much of that.  You were too busy having fun and enjoying your innocence to remember any of that.

In a more personal look at the effect that the passage of time has on our recollections, let me point this out.  Last year, I had a longing to relive the mid-1990s.  I remembered it as a quite enjoyable time; I made a lot of friends, I graduated at the top of my class in school, and I got my first look at this new-fangled bit of technology named the “World Wide Web”.  However, yesterday I found a journal I wrote in from 1994 to 1997.  I read it and was horrified at what I found: rants about how hard school was, how mean many people were to me, and even a two-week long epic about me fracturing my arm.

I remembered none of this until I reread my journal.  And I think that’s what the point of this article really is.  The past may seem like a better time to you, but it may not have seemed like it when it was the present.  Be satisfied that you have happy memories.  And instead of reliving the past (and all of your prior troubles) over again, it’s better to live in the present and make the most of what life has dealt you.

On running Mac OS X with VirtualBox Sunday, May 2 2010 

I’ve been testing VirtualBox 3.2.0-beta1 out on my Mac mini.  The capabilities of this new beta are quite helpful for system developers and coders in addition to users.  Some of my favourite features include:

  • Real, working APIC 1.4 support.
  • Better SMP support.
  • EFI works much better, but still has really odd bugs.
  • More guests support 2D accel.

Snowflake works well and Windows 7 works better.

But my most favourite new feature, by far, is the ability to install and run Mac OS X.  Apparently both 10.5 and 10.6 work, but my 10.5 DVD is for Mac minis only, so I got 10.6 working.  On a real Mac, it takes nothing but time.  It took over 2 hours to install.  However, it does work, and it works quite well.  Most effects are smooth, even without a native framebuffer kext.  It did take a tiny hack though: I had to boot to the EFI shell and run:

mount fs0:
fs0:\System\Library\CoreServices\boot.efi rd=disk0

Then it Just Worked™. On a real Mac, you don’t need any additional kexts, or anything. It boots natively. Only thing that is missing is the Apple boot logo; it always boots in verbose, again due to no native framebuffer kext.

If you’re unlucky enough to have a genuine not-Apple computer and still want to run Mac OS X in VirtualBox, I highly recommend this helpful guide (which I have even commented on).  It has worked for a few people I know, and I hope to try it on my Core 2 box tomorrow (er, today, it just turned midnight).  I’ll certainly report how that works.  But for now, it’s back to kernel hacking for me.

On getting lighttpd + PHP working on OS X Tuesday, Mar 2 2010 

Now playing: ♫ One More Time – Daft Punk

My first post of 2010!  I have been so busy that I just haven’t had any time to write anything in here.  But I have something special for you today; some build instructions for making an experimental dev server out of a Mac.

I use a Mac at work.  And being that I frequently have to test out our new Web stuff (some written in PHP but the majority written in Django), it’s helpful to have a working lighttpd install on it.  I’ve considered dual-booting with FreeBSD, but it seems a bit of a challenge to get all of the Apple hardware to work on FreeBSD (especially WiFi; we don’t even really use wired Ethernet at work anymore) so I’ve held that off for a while.  I could also use my desktop, but with the KVM on the fritz I just find it easier to sometimes run sites on OS X.

This isn’t a problem with Django, because it comes with a small development server that I can use.  But it is big problem with PHP; the Apache2 built in to Snow Leopard doesn’t seem to like me or PHP (or my configuration) and I prefer lighttpd anyway.  I could never find a really good guide to installing any of this online without resorting to MacPorts or Fink or even Aptitude.  I prefer to keep my system clean of the port systems (even though I’ve heard great things about MacPorts, it just seems ugh).   So, here’s how I got lighttpd and PHP to play nice on OS X with FastCGI:

Absolute prerequisites

  1. You must be absolutely comfortable with using Terminal and compiling things by hand.
  2. You must have already installed XCode, because we’re going to be using GCC and friends.

lighttpd installation

  1. Install PCRE.  This is the only lighttpd dependency that Mac OS X doesn’t ship developer libs with.
  2. I ran configure like this:
    ./configure --prefix=/usr/local --with-openssl --with-kerberos5 --with-ldap --with-zlib
    This allowed me to test SSL and Kerb5, which we use on one of our portals, and a few other miscellaneous things I feel will be useful.
  3. make and then sudo make install.
  4. Congratulations, you have an almost-working lighttpd!

PHP installation

For GD, you’ll need at least:

  1. libjpeg (Note: You’ll need to run sudo mkdir -p /usr/local/man/man1 for manpages.  If you don’t want them, you can ignore the error Make throws.)
  2. libpng (Don’t you love that they still distribute .TXZ’s?)

You can also snag FreeType and libxpm, but it isn’t necessary and building them is beyond the scope of this document.

Okay, so now we’re ready to build PHP. The configure line you supply to PHP is site-specific.  The one I used was:

./configure --prefix=/usr/local --with-openssl=/usr --with-kerberos --with-pcre-regex=/usr/local --without-sqlite --without-sqlite3 --disable-pdo --with-zlib --with-bz2 --enable-exif --with-gd --with-ldap --with-ldap-sasl --with-mcrypt --without-mysql --with-pgsql=/usr/local/pgsql

but I stress again: this is site-specific. You probably want MySQL and don’t want PostgreSQL (even though it takes a lot to squeeze even equal performance out of MySQL).  That said, the only oddity is that on OS X, PHP has a problem locating the OpenSSL lib for itself and I had to use –with-openssl=/usr to allow it to find where it was.

Also, a big disclaimer: GD is still broken with libpng>=1.3.  Since I use 1.4, I was forced to use the SVN version of 5.3.  Not even the new 5.2.13 release has the patch (even though this bug was reported in early January).

Now that we’ve gotten that out of the way, let’s get a server running!

Configuration files

The lighttpd configuration file is up to you.  Note that you have to use server.event-handler = "freebsd-kqueue" on OS X.  Mine is pretty standard, so I’m only going to paste the FastCGI configuration section here:

fastcgi.server = (
".php" => (
"php-osx" => (
"socket" => "/tmp/php5.sock",
"bin-path" => "/usr/local/bin/php-cgi",
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "2"
)
)
)
)

Now, one of the most painful parts of this process was getting a LaunchDaemon configured for lighttpd properly.  Note that when under launchd, lighttpd is very sensitive to syntax; I spent about an hour trying to figure out why it wouldn’t start until I realised I had an extraneous space in the plist.  Here is my /Library/LaunchDaemons/net.lighttpd.plist file:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>net.lighttpd</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/sbin/lighttpd</string>
<string>-D</string>
<string>-f/usr/local/etc/lighttpd.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

Now run launchctl as root and type load /Library/LaunchDaemons/net.lighttpd.plist.  If you’ve come this far and you don’t get any errors, congratulations!  Your Mac is now a lighttpd+PHP/FastCGI server!

On getting OpenLDAP and Windows LDAP to interop Friday, Dec 18 2009 

Many Windows developers have a need of some sort to connect to OpenLDAP directory services.  Some use wldap32, others use the DirectoryServices namespace in .NET, others use custom libraries.  Myself, I’m writing an ASPX front-end to our FreeBSD LDAP directory service.

If you are one of the developers in the first two camps, you’ve probably been dumbfounded by one of these error messages:

  • An unexpected operation error occurred
  • A local error occurred
  • TLS negotiation failure

At first, I was inclined to believe this was due to the fact that MS wanted devs to stick with ADAM and not use OpenLDAP.  However, this is not the case.  Each error means something different, and I have workarounds now for all of them that fixes it.

An unexpected operations error occurred

My favourite.  This is due to an OpenLDAP bug that the developers won’t fix.  They have claimed that “Microsoft is the one that is broken by following RFC 2830″…yes, that’s right, an open-source project upset that MS is following an RFC.

Anyway, to fix it you need to apply a one-liner patch (thanks Kirill) to starttls.c, verified to work with OpenLDAP-2.4.19 and CVS HEAD as of this morning (GMT):

=============
--- orig/starttls.c	2004-01-01 21:15:32.000000000 +0200
+++ fixed/starttls.c	2004-05-27 14:14:54.000000000 +0300
@@ -94,6 +94,8 @@
     op->o_conn->c_is_tls = 1;
     op->o_conn->c_needs_tls_accept = 1;

+    rs->sr_rspoid = SLAP_STRDUP(LDAP_EXOP_START_TLS);
+
     rc = LDAP_SUCCESS;

 done:
=============

Recompile OpenLDAP with this change.  Your OpenLDAP is now RFC 2830 compliant and Microsoft APIs (and older Netscape and Novell APIs) can now connect and start TLS with it.

“But wait, Pongo,” you say.  “Now I’m getting a new error!”  Yes, because MS is strange about server certificate processing you will now receive:

A local error occurred (on the LDAP server, “TLS negotiation failure”)

You need the server certificate from the OpenLDAP server (see your slapd.conf file, under TLSCertificateFile.  Mine is in /etc/ssl/keys/ldap).

  1. Copy the file (named chicago-auth.crt in the example) to your Windows computer.
  2. Install the certificate (double-click it) to the Trusted Root Certificate Authorities store.  (I am not sure if this step is required or not.  It was for me for other reasons.)
  3. In your .NET application, add a code block similar to the following:
                lc.SessionOptions.VerifyServerCertificate = Ldap_ServCertCallback;  // Add this line BEFORE StartTLS call
                lc.SessionOptions.StartTransportLayerSecurity(null);

Your Ldap_ServCertCallback function should look something like this:

        private bool Ldap_ServCertCallback(LdapConnection connection, X509Certificate cert)
        {
            X509Certificate realchi = new X509Certificate("chicago-auth.crt");

            if (realchi.GetCertHashString() == cert.GetCertHashString())
                return true;
            else return false;
        }

That’s it. Your .NET application will now happily connect to your OpenLDAP server.

Note that I have not personally tested this workaround with wldap32 (I’m unsure how to set a VerifyServerCertificate callback and I don’t hack the Win32 API anymore anyway), but I have in .NET and it works in both Win32 and ASP.NET applications.

The case of the missing manager Monday, Dec 14 2009 

I was reading the awesome Screwed article on Rands In Repose when I finally realised what the problem I’m having at work is.

I have no manager telling me to get the hell going.

You see, like most startups, we have like…5 people on our team total.  And the problem is that most people think I’m the manager.  To outside people, it may look like it.  Well, actually, if I were to draw an org chart I’m probably the top of the development leaf.  The problem isn’t that I have no managerial experience.  The problem is nobody above me is pushing me to do anything and the developers below me don’t care about anything at all.  Things are starting to slow and stagnate.  The developers below me are pretty much not doing anything related to the project… they’re using the excuse that they are waiting on design specifications that I’m supposed to write.  The problem is I can’t write those specifications yet.  And for that we need to look at the org process and the use case specification.

Ah, the use case specification.  I slaved on that thing for 9 days getting it correct and making sure the “Product Champion” (fancy word our org. uses for product manager) had input because she’s the only person here who actually knows our users.  After it was finished I was to send it off to everyone in the team and get input.  This is part of the very little process we have; everyone has to approve a doc before we move to the next step.  And I think that’s reasonable with a 5 person dev team.  That was 19 June.

On 11 August the product champion finally read it.  Wait, what?  It took almost a month?!  She had a few corrections and additions that I added in about an hour.  I sent it off to everyone in the team again.  On 21 August (10 days later) one dev replied and had one small clarification.  There are still two people on our team that haven’t even opened the PDF.

Yes, there are two people on our team that haven’t opened the PDF after 6 months.  I will call this WTF #1.

Closely related is the fact that in the course of use case development I had to prototype two small features.  I used Visual C++ 2008 because they were related to the way Windows would handle things (it was ensuring that Windows would support multilingual support the way the product champion wanted it).  I raised a few questions and concerns to two members of the team and they went completely unnoticed.  It’s like nobody on the team but me even cares about this software.  I will call this WTF #2.

Anyway, back to the matter at hand.  I’m not supposed to write the design specification below use cases until all members of the team read the use case doc.  Obviously, it’s been 6 months and there are still members who haven’t.  I have gone ‘underground’ and started writing the other specifications actually at the request of the product champion, whom is just as concerned as I am that this is heading nowhere fast.  We don’t even have VCs or investors yet because we have nothing to invest in.  Now that’s all fine and dandy because we can get paid our half-salaries indefinitely as long as “financial” (if you can call one person who is basically investing her life in this business “financial”) continues to have money.  But the problem is I think this is giving everyone else on our team the feeling that we’re able to stagnate.  I mean, what’s the rush, we’re getting paid (even if it isn’t all of what we’re worth) and we don’t technically have to DO anything, we can just keep trodding along and never even make a product.  This is WTF #3 and it’s the biggest.  I think this team needs a HUGE shakeup.  I think it needs fire and determination.  And where do good teams get fire and determination from?

Leaders.  They get it from leaders.  And our team has none and I think that’s where the huge problem is.  We have nobody making us stay on schedule.  And do you know what’s worse than having a tight schedule where you know you won’t deliver?  We don’t have a schedule.  UM is quite content with “when it gets done, it gets done” — probably the worst schedule known to productive society because it’s far too open-ended.  We have another project… an embedded system that I can’t talk about because of NDAs.  And I see this project working and progressing and it’s almost ALMOST to the point of being able to have VCs and I am truly starting to wonder where the hell our team went on the radar of…everybody.

I should’ve left a long time ago.  And to be honest, I wish I could leave.  This is fruitless and getting nowhere fast, especially since it’s far too late to ask for new team members (and actually I know that I couldn’t get them anyway.  I’ve tried.) and I feel this is going to drag on forever.  My screw-i-tude is higher than anyone could imagine.  What I need right now is UM or a manager or ANYBODY to come and say to the entire team: “here’s a schedule, let’s take this software and GITFO the door”.

And before you tell me that I should be inspiring myself to do it, YOU inspire yourself after watching nothing happen for 6 months, no other orgs nearby to get a job with (a hick town, that’s what this is) and no schedule.  I’ve been fighting tooth and nail to get this project done since…09 December 2008 according to this document.  It’s getting increasingly harder to self-motivate, especially around other devs that don’t gaf about this software or me or themselves, it seems.

I stick around here for only two reasons: The idea itself is fantastic and this could be huge if someone would actually make it MOVE, and there’s basically nothing else around here I could do other than work for a small store being a cashier.  Yeah, I have looked but found nothing else, and I really like software dev and I do not want to work as a cashier.

And before you comment about how I should move to somewhere else where I could be useful.  Yes.  I should.  But I’m tied here due to family stuff (stuff that I wouldn’t go on about in a blog).  So that isn’t an option yet, at least not for a few years.

So I think what this team needs now is just authority.  Someone to come in and say to this team “why are you all on your asses?  Get to f—ing work.”  And I think what I’m going to go do right now is send this to my team and my managers and hope for the best.

Well, to my managers at least.  I know my team won’t care or read it.

On taking FreeBSD seriously Tuesday, Nov 3 2009 

Now playing: ♫ Rebel Yell by Billy Idol on Greatest Hits [2001]

I found myself frustrated with Windows 7 at work.  It’s a fairly decent system, and a craptonne better than Vista in both performance and resource usage on the old desktop I have (a Pentium 4/2.66 with a gig of RAM).  But it was still slow, and I had heard that FreeBSD was fast approaching the ‘usable’ state for a desktop role.  So, I decided to take it for a spin.

Firstly, your experience may vary wildly from mine; I spent the entire weekend compiling everything (including the kernel and all of KDE) to my own liking (and optimisation).  And disclaimer: this is on a new ATA-133 drive that actually beats older SATA drives on sustained speed (the very definition of ‘win’).

Installation: I used the ports source-package system (if you’ve used Gentoo Linux, this is where the idea of ebuild came from).  Of course, on a Pentium 4, this took a while; however, I found it to be worthwhile because I was able to enable features I wanted (that nobody else does) and disable features I dislike or had no use for.  This makes binaries that fit my exact needs, and one reason I do love the ports system.

Productivity: I found this department heavily lacking.  I still work in Information Technology as a developer, and apparently KDevelop has gone unmaintained and is no longer part of the kdedev package.  This was upsetting to say the least.  I have yet to install Eclipse, but I have used it on Windows and didn’t care much for the UI.  Overall, I’m back to my old 90s hacker ways of using vim and make instead of the “niceties” of IDE-based programming.  I’m more than capable, but in this day and age of things like test-driven development and the monstrosities of modern Makefile-based systems (unless maybe you’re using CMake), this is unnecessary and something I found highly disappointing.

Office stuff: Office stuff is office stuff.  AbiWord is AbiWord; not quite as featureful as Microsoft Word but it uses a hell of a lot less RAM, and that’s something I can appreciate with this old box.  Of course nothing can compare to iWork Pages ’09 from Apple, and I would be willing to pay extra for a version of iWork for ELF systems, even Linux.

Email: At work we have Exchange 2007.  I have been as-of-yet unsuccessful in getting Evolution to connect to it, and have been using ActiveSync on my PDA to handle emails.  As you can imagine, this isn’t the easiest thing in the world.  I am working on a possible patch (it appears there is a bug in the codebase to do with SSL certificates); hopefully I can get this working soon.

amarok running

amaroK, a multimedia program

Media: This is one place where open-source could really use some work.  Problems I’ve had include amarok showing random last played times such as “August 1991”, mplayer deciding it had a “memory error” and not starting correctly, and attempts at writing numeric tag fields (i.e. year or track #) in media files cause a segfault.  This isn’t to say it’s all bad; amaroK, mplayer, and mpg123 all played the majority of my collection (or at least the formats they supported) quite decently, and the offerings now are fairly solid if not a bit lacking in features.  My wishlist would be for amaroK to have working cover art features and to have clicking the dock icon toggle play/pause.  I guess I have more patches to write.

IM: Pigs is pigs Pidgin is Pidgin.  It works exactly the same as it does on all the other platforms (Pidgin for Windows, Adium for OS X) and it just does it.  I am in the process of researching the best Skype client for FreeBSD, and will probably blog about that later, too.

Web browsing: This is where it gets interesting.  All browsers suck.  I’m telling you, plain and simple, all browsers suck.  So imagine my surprise when jtm, a close friend of mine, points out there is a relatively new one in ports called ‘Midori’, from the XFCE bunch.  I tried it out.  It’s nice, though a bit unstable when using npviewer (Flash / Java), and when you unload a page (i.e. browse to another or close a tab), it has an excessive lag and doesn’t kill the npviewer process.  End result?  A tonne of RAM and CPU spent until you manually kill -9 them.  There are also some favicon bugs.  Overall however, it’s a very decent browser based on my favourite rendering engine (WebKit) and it does get points for effort.  I’m still using Firefox though, because I do find I require Flash periodically.

Other: I’ve found a few little niggles.  One major one is that gtk-qt4-theme sometimes causes textboxes to appear black-on-black (see here).  One place where this is quite evident is the HTML editor in WordPress; it renders a black textarea with black text.  Obviously, I can’t edit HTML easily in WordPress anymore.

One other source of a bit of frustration lies in the fact that there is very little support for FreeBSD compared to Linux simply because it isn’t as widely deployed.  I can accept this and I’m more than capable of doing things, especially with the help of friends and colleagues, but it would be nice to have a lively FreeBSD desktop community (more than just IRC, because they mainly deal with servers).  Some day, ol’ boy, some day…

Anyway, this pretty much sums it up.  My verdict?

It’s not really different from Windows, but it’s free and you have more options.

Windows has buggy apps.  OS X has buggy apps.  FreeBSD has buggy apps.  It’s all really a matter of preference.  Windows is more tweaked for the beginning computer user, and as such has a lot of safeguards built-in.  This is a Good Thing(TM) for new users, but it gets dreadful and annoying to people like me.  OS X has its strong points, but it can be wildly random.  And randomness is one thing all IT people hate — because it’s nigh-on-impossible to pin down exactly where the problem lies.  FreeBSD…what can I say.  It’s grown so much from the days of 5.x when I started to run it on servers.  And overall, though it may not be as user-friendly as Ubuntu, it certainly packs a mean punch, and anyone who isn’t afraid to learn, is able to devote a bit of time to read the FreeBSD Handbook and other interesting manuals, and get their hands a bit “dirty” with computer knowledge should seriously consider using it as a desktop — especially Linux users looking for more.  I’d liken running FreeBSD on a computer to performing maintenance on your car; most people don’t want to do it, but the ones who do save time, money, and have the feeling of a job well done.

Oh, and you may be wondering why I chose “art” for a tag.  Because of my new theme, of course.  I love it; it’s artistic, expresses who I am, and that’s something Windows can’t really say.  Sure you can customise the bugger out of Aero; but no matter what you do, it’s still Aero.

On GeoCities’ closing Monday, Oct 26 2009 

Now playing: Lady of the Flowers by Placebo on Placebo [1996] (iTunes)

I’ve been so very busy at work the past few days that I had forgotten I signed up for this blog.  I remembered yesterday evening, but couldn’t think of a topic to write about.  However, this morning I was reminded that today is the day GeoCities closes.  And of course, sites like XKCD are parodying the bad HTML and broken images we’ve all grown to hate.

However, I want to remind you of a better time.  The GeoCities of the mid ’90s; the GeoCities I once knew, used, and loved.  Before the commercialisation, before the Yahoo! aquisition, before its own personal “eternal September” of clueless newbies.

GeoCities, circa 1996, before it sucked.

GeoCities, circa 1996, before it sucked.

There was, and still is, a lot of technical information of GeoCities, and a lot of it is rare content that you won’t find anywhere else.  There was more information than you would think, especially on old technologies including GEOS, Roland synthesisers, and RISC CPUs.  There were fansites of good ol’ TV shows…remember Suddenly Susan?  Smart Guy?  Even classic telly, such as Gilligan’s Island and Monty Python’s Flying Circus.  There were MIDI archives.  There were some excellent history and genealogical resources.  And was there a more expansive lyrics archive on the early Web than Andrew’s Lyrics?  (There actually were much better ones on Gopher, but that’s an entirely different subject.)

And GeoCities was the beginning of the social Web revolution, allowing anyone with access to a keyboard the ability to write a Web site about anything, thereby bringing people who wanted to just have a page about their family.  I’ll admit I’m a bit guilty of doing that myself; I signed up for a GeoCities page in 1997, relatively late, and used it primarily for voicing my opinions on computing and showing off my family pictures.  I closed it down in ’99, because I was far too busy being a full-time administrator to keep it up.  Not to mention the commercialisation that came…banner ads and the watermark were just the beginning, as we would all find out when Yahoo! purchased them.  However, that was what proved the fatal flaw with “anyone with a keyboard can sign up”: the general masses gained Internet access, and back then everyone was flooding Yahoo! to get their wide variety of services (primarily for email and messenger).  These masses used terrible, disgusting editors (FrontPage Express, Hot Dog, and even Netscape Composer 4.x generated abysmal HTML) and wrote about nothing in particular.  This made the content rapidly decline in value, turning GeoCities into basically just a pile of meaningless babble and broken HTML, and the only thing declining faster than their reputation and content quality was their real userbase.  So here we are.  Yahoo! is dwindling, they’re strapped for cash, and probably just can’t afford GeoCities anymore.  In the eyes of most, this is a Good Thing™ because of the drivel that most people think GeoCities is famous for.

But I still remember the great big melting pot, the community that was GeoCities in the ’90s.  And though there are some modern hosting providers that are somewhat akin to this old GeoCities in terms of hosting (here are a few), none can match the community. And that is, I think, what GeoCities was for me and many others back then – a community of people from different backgrounds and cultures, sharing the collective of our knowledge (and family pictures) for the world to see.

Fare thee well, old friend.  Here’s to one last <marquee/> tag, and the hope that one day someone may be able to rekindle the community spark of 1995.

On a new blog Monday, Oct 19 2009 

Hello world, and everyone reading this.

First and foremost this blog is about my true feelings on just about everything.  I am opinionated, but open to new ideas; this will show through on my posts.  I have a wide diversity of interests ranging from cars and medicine to music and fine arts.  However, I’m a senior computer programmer by trade and computing will be a primary subject on this blog.

Let me start a bit about myself.  I’m a male, though not a stereotypical one.  I don’t have an overinflated ego nor sex drive and I don’t find “the chase” of a woman to be “fun”, whatever that may mean.  I believe in morals, in honesty, in dignity, in respect, and in values.  I treat others with all of these qualities and expect to be treated with them as well, and as you may expect I’ve found myself disappointed with most of the modern world because of this fact.

I was convinced to get this blog by a very close friend who told me that I should share my opinions and reviews with the world.  I have reviewed a lot of software, and I’ve written a lot of essays on a great many things.  Since I have them privately stored somewhere, I will post the more “exciting” ones as I find them.

But enough about me.  On with the blogging…

Follow

Get every new post delivered to your Inbox.