Archive for June, 2008

Governor Weak Leader Arrogant, er, sorry, Bobby Jindal, has vetoed the pay raise for the Louisiana State Legislature. The bill would have given members of the state Senate & House of Representatives a double in their pay. Already, the Bobby Jindal Feel-Good Field(TM) has once again extended over the state of Louisiana, after a brief blip of the public actually controlling our politicians. Thankfully, that long (six day) state nightmare is over, and the politicans in Baton Rouge will be right back to congradulating themselves on the tireless work they accomplished over the past few weeks, including legislation to “ban bullet-proof vests in public schools”, and “require young drivers to use a hands-free device for cell phones” (yeah, little Johnny can’t use his phone, but 98-year-old Granny Estern can. Fantastic.)

And now, for something (almost) completely different…

The state legislature voted last week to ban the La. Department of Motor Vehicles from issuing any kind of identificiation under the REAL ID specifications, which is the US Department of Homeland Security’s (I hate those words) mandatory national ID card. As I wrote back in March, I am 100% against the REAL ID system, although ironically our governor isn’t. In fact, he voted for the bill. Idiot. I’m actually afraid he might veto that bill, and if the legislature isn’t going to hold a special veto session to save their pay raise, they sure as hell aren’t going to come together to vote on something important.

Got out and had a couple of nice, fast rides this weekend. Saturday was a double dinosaur for a metric century and then about fifty miles yesterday. And I'm doing pretty well at getting my speed up while still being able to do some sprinting from there. Should help a bit when racing. My original plan for the weekend had been to do the Wells Ave training race on Sunday, but it ended up being cancelled for various reasons. But, the intense training rides were a good substitute. And then hopefully I'll get down to Wells Ave this Sunday instead.

Otherwise, a pretty uneventful and low key weekend.

Then, spent today in the office taking care of a few things. Ended up spending a lot of time talking with people about various things and made little progress on my attempt to get us down to one set of keyboard data. I think that the quickest route to actually making this happen is going to be to take the Debian ckbcomp perl script and just pre-run it against the xkeyboard-config data into a package for the "primary" keyboard maps. And then if you want to generate your own for an abnormal case, you can. Eventually it would be nice, though, to get ckbcomp written in C and do the xkb -> console keyboard mapping done at boot-time (or even within loadkeys directly). If it's something you're interested in working on, let me know and I can point you in the right direction.

Most Oracle DBAs, it seems, have never used any other database system. Or they have, but it was in Ancient Times before there was a SQL Standard or something. (By the way, that would have to have been before 1992, when SQL-92 was made. Hi, welcome to the 90's!)

I don't think Oracle is a totally worthless product. I hear that it's good for carrier-grade high-availability. Of course, I've also heard that it's fairly easy to crash it, so hey. I know that my Oracle install stopped working once just because I had added, oh, a fifth database to it. Apparently you have to explicitly tell Oracle (with a very cryptic command that's specific to just your system, because it involves filesystem paths) that you want to have more than about five databases.

Okay, so I'm biased and I have an unusual viewpoint. I started out using MS SQL Server, then PostgreSQL, then learned MySQL, and now I've been involved in reviewing all the Oracle code for Bugzilla 3.2. (Side note: I've used other DB systems, also.) Most people aren't porting a shipping ANSI SQL application to many different databases. But I am, which means I've learned a lot about all the databases. So here's my experience:

In terms of features and sanity, PostgreSQL has always been hands-down the best. It was missing fulltext indexes until 8.3, but now it's got those. Of all the popular database systems in existence, PostgreSQL does the best for ANSI compliance, and even though the ANSI SQL standard is very long, it's generally much saner than anything that people come up with in-house.

I remember when I had to learn MySQL after using PostgreSQL, I was like, "What is all this?" MySQL got a lot better over the years, though, and MySQL 5 is generally pretty good.

Oracle, though, is downright strange. Now, because most Oracle DBAs don't have a lot of experience with other databases (or at least not with ANSI SQL) I think they accept a lot of these strangenesses as normal. So in case there are some curious Oracle DBAs out there, here are some of the really weird things that Oracle does:

  1. In every other database out there, an empty string and NULL are not the same thing. The Oracle SQL Reference tells you not to treat an empty string like a NULL (because they might change that behavior in the future), but they don't actually give you any way to not treat it like a NULL!
  2. You can't SELECT a CLOB (that's a TEXT field to the rest of the world) if there's a GROUP BY clause. What?
  3. Subtracting six months from June 29, 2007 gives you...February 29, 2007, a day that never existed. In fact, because it never existed, Oracle throws an error if you do that. Other databases just give you February 28 (or March 1 if you're adding, I think).
  4. Oracle doesn't support the ANSI SQL "LIMIT" clause, it uses something weird in the WHERE clause instead.
  5. Oracle has a hard limit on IN clauses of 1000 items. But it doesn't complain if you OR together multiple IN clauses with 1000 items each...
  6. Oracle doesn't allow identifiers to be longer than 32 characters (index names, column names, etc.).
  7. Oracle doesn't support ON UPDATE CASCADE for foreign keys. Even MySQL supports that, nowadays.

I suppose that would also be a helpful list for anybody porting an ANSI SQL app to Oracle, since that's all the really weird things we encountered in Oracle. There were also lots of sensible, normal differences between Oracle and other DBs--some functions are named differently, etc. That's all fine with me. What I listed above are the really weird things that you wouldn't expect.

By the way, this is not to say that I'm not really thankful for Oracle Corp.'s help with Bugzilla 3.2, and all the great work that Xiaoou has done with us to help us support Oracle--that's been wonderful, I totally appreciate it.

This was my first Oracle experience, and with everything I'd seen about it, marketing-wise, I expected it to do backflips and jump through hoops of fire. I was surprised to discover that, from a developer's perspective, the two popular open-source solutions (PostgreSQL and MySQL) are actually way better. That's true even from a sysadmin perspective--I find them both way easier to administer and install than Oracle (which is kind of a nightmare to admin and install).

Oracle DBAs tend to react as though the nightmare and the strangeness are the most normal thing in the world. "Oh, yes, you just have to flip the twiddly bit and jump up and down three times. Wasn't that obvious?" Much like the administrators of any Rube Goldberg machine, Oracle DBAs have been educated to accept a complexity that is not actually native to relational databases.

Anyhow, this is all quite surprising, since Oracle has millions of dollars, hundreds of developers, and has had years and years to develop their product, and it isn't as full-featured or easy to use as two products made by some little open-source projects.

-Max

Anyone want to review my cover letter and offer some tips/critiques? It’s still a work in progress and some areas are incomplete, as they would be filled in with each company I send it to, as well as areas that would be date sensitive. Comments on the blog are preferable, but if you decide to edit the file yourself, make sure to highlight the changes you make.

bottom link

http://michaelbox.net/resume/

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]
Brendan Scott’s Weblog: "Because of the Tragic Closure of closed source software, a purchaser is typically required to make a decision to buy one of a range of products, each with overlapping feature sets and other characteristics...In such an acquisition therefore, a wrong decision can end up being very expensive."
One of Firefox's key promotional advantages is that it runs on Windows. Ubuntu, too, can make itself run "on" Windows, at least for trying it out.

I’m going over to Manhattan for the IORG meeting. I’d love a recommendation for a place to stay. My favorite hotels are small boutique places — I have a strong dislike for the huge chains, and I’ll pick a safe hostel over a hilton. The conference is midtown (30 W 44th Street), so anywhere within walking or cab distance from there would be ideal.

Chris Tyler: Downtime

| June 30th, 2008

The past year has been a very good one, but work has been gruelling. I'm going to down-shift for July and August, enjoy some good time with my family, and try to bring things back into balance. To start: for the rest of this week I'll be camping with my wife and daughters, in a place where packets don't flow.

I'll be back online in time for the Fedora IRC board meeting on July 8, and am looking forward to OLS later in July. And, come the last week in August, I'll be back to regular schedule for the startup of LUX and final preparations for FSOSS.



I got Mariokart wii the other day, so when i saw this driving home one afternoon, i almost came to the conclusion that i have been playing it a bit too much… )

SMPlayer is a complete video player built in Qt 4.4.0 and based on the powerful, open-source MPlayer. The version I decided to test in this review is 0.6.1 from SVN. SMPlayer basically plays anything video or audio, including DVDs, VCDs or DVD ISO images, audio CDs, MPEG, AVI or ASF. You can also play mounted images of DVDs by pointing to the directory which contains the VIDEO_TS and AUDIO_TS directories. It can also play videos from a given URL location. One of the great features SMPlayer has is the ability to resume a movie after you closed it and restarted the application.