Wednesday, October 31, 2007

Tuesday, October 30, 2007

Pic of the day 2007-10-30

So I am going to try to start carrying my camera on me and posting a picture a day. Will see how well this works...

This is the gang from work giving a proper sendoff to Naoum, who will be leaving us to go work at a much more boring place where they don't go out drinking as a company.

The power of having source code

I was doing a postmortem on a SQL Server installation failure yesterday, and found the error occurs with the following message logged:

MSI (s) (2C!48) [14:59:30:978]: PROPERTY CHANGE: Adding
ServiceNameSQL.EAD22282_F1AF_4119_B1F9_C9F1DCBC62FF property. Its
value is 'MSSQL$SQL2005'.
Using PrevRegRootPath: Software\Microsoft\Microsoft SQL Server\MSSQL.1
GetServiceUserGroup failed for SQL2005, 5
Error Code: 0x80070534 (1332)
Windows Error Text: No mapping between account names and security IDs was done.
Source File Name: sqlca\sqlcax.cpp
Compiler Timestamp: Wed Sep 21 01:10:12 2005
Function Name: SetInstanceProperty
Source Line Number: 1196

Error Code: 1332
MSI (s) (2C!48) [14:59:31:009]: Product: Microsoft SQL Server 2005 --
Error 29528. The setup has encountered an unexpected error while
Setting Internal Properties. The error is: Fatal error during

It's a little obscure and obviously targeted at a developer. It even has a source file and line number. The root of the issue is essentially that it cannot determine the SID associated with one of the SQL Server service users or groups. But which one did it fail on? If this were Linux or some other open source project, I could look at the code and see exactly what account it failed on. It would take me about a minute. But it's not, my only alternatives are:

  1. Try to backtrack and look at all the groups and users (if they even still exist on the system in question).
  2. Call Microsoft tech support, pay $250 for a support incident, and get somebody to tell me what that line of code does
  3. Spend a couple of hours and disassemble the binary with Ida Pro

All that work just to see what the function was was immediately prior to the logging of an error message. It's no wonder automation is so hard.

When I talk about open source, people sometimes argue with me that "it's not like you're ever going to change a database engine, so who cares about the source?" And they're half right - I'm never going to personally have the need to modify the product. However, if I were able to see the source code right now, a task that would have taken a couple of minutes is now going to take a few hours this afternoon. That sort of thing adds up over time...

Monday, October 29, 2007

Flip tax meeting

So I left work early (6:45) so I could go to the Co-Op meeting on passing a flip-tax in my building. It's generally a good thing and I was already going to vote in favor of it, but I figured I would go and hear what they had to say and perhaps meet some people in the building.

Somebody was expressing some annoyance to the board members that there was not enough information being made available to the owners. Bear in mind, that it has bothered me as well that I don't really have any insight as to what happens on the board. There is no regular report, no minutes published on the web site for the building. All we have to go on is the annual meeting and special meetings held when there is something to vote on.

The reality is that the board is composed of all volunteers, and it's apparently alot of work to make the information available. Fair enough - you get what you pay for, and I can appreciate them getting a bit agitated about people complaining, especially since they are volunteers and there is an open seat on the board that they can't get anyone to step up and volunteer to fill. In fact, they practically begged someone to volunteer. The head of the board actually said to the group, "Of course, there is a seat open on the board, and if you want to be more involved you should volunteer to fill it."

So after the meeting, I introduced myself to the head of the board, and while I admitted that I'm a software engineer and not a lawyer or an accountant or an architect, that if there was any way I could help out I would like to.

The head of the board looked at me, and said, "Um, ok, well do you have a card?" I gave him my card and he replied, "well, ok, well we will have to see where to take it from here." As in, he had sized me up and effectively said "don't call us, we'll call you". It was in his voice.

Woah, I haven't felt rejection like that since I was back in high school. Holy crap.

Now don't get me wrong, I wasn't wearing a suit, and I outright admitted that I didn't have alot of experience with such things. But his reaction was really something. It was like I had offended him just by inquiring if there was anything I could contribute.

Thursday, October 25, 2007

Stop, panic, hang, rinse repeat

So in the last 24 hours:

  • Repeatedly locked up my Windows 2000 workstation when trying to use my Hauppauge HVR-950
  • Caused multiple kernel panics in OS X when trying to do captures using Apple's USB Debug kit
  • Caused an NT Stop message to occur whenever trying to install Windows XP onto Dan's old computer.

  • Bear in mind that I haven't actually written a line of kernel code yet. I was just trying to get an environment working where the card was supported so I could do wire captures.

    On the upside, I upgraded to Ubuntu 7.10 on my Dell, and besides a slow download of the media it couldn't have gone better. Notably the new release now properly detects that my Dell 17" flat panel supports 1280x1024 (it only listed 1024x768 in 7.04), as well as the PCI info being properly filled out for pretty much all the devices in the Hardware page (suggesting Dell is being more proactive in putting their hardware into the public database). On a sidenote, the amount of time I spent in front of the computer this week has me considering finally buying myself a bigger screen for home use instead of using the 17" screen that is on loan from work.

    I swear though that if I had any idea I was going to have this much trouble with my old hardware, I would have just bought a second Dell off the shelf...

Wednesday, October 24, 2007

Dell / Ubuntu

So I got my new Dell Inspiron 530N with Linux unpacked and setup. Feels good to not pay the Microsoft tax... Microsoft got about fifty bucks off the last couple of computers I bought, even though the first thing I did was reformat the hard drive and install Linux.

I had several questions prior to purchasing the Dell, to which there was no clear answers until I actually got the hardware

  • What is the on-board video chipset?
  • What ports are exposed on the front of the unit?
  • How expandable is is? (the picture on the website isn't clear about drive bays)

Well, here are some pics:

Yes, it's a white computer. I didn't expect that. Who do they think they are, Apple?

Note the plastic cover over the onboard video connector in the upper lefthand corner. It's a VGA connector for the onboard GMA3000 video adapter (G33 chipset). I'm interested in this because of the new Intel drivers which are completely open source. Nvidia makes good video cards, but the Linux drivers are closed source and I would rather have a slightly slower video adapter than a faster one in which I can't debug a kernel panic myself. You can't buy this system without an Nvidia card because the Intel driver wasn't in Ubuntu 7.04.

Also worth noting that the Nvidia card does have an S-Video output, making it useful for my MythTV development.

Here is the packout that came with the computer. Pretty standard. I do like that they included the stock Ubuntu media, and there is no Microsoft marketing collateral. I don't like though that they provided a 132 page book containing Dell's contact information in every country they ship in, in three languages. There's this thing called the "Internet". Do I really need to know their phone number in Bolivia? They know where they shipped the PC to. They could have just put the relevant contact information on the packing manifest and saved a whole lot of trees...

Here's a picture of the front of the unit, showing what ports are available. Note the Firewire port (labeled 1394) isn't populated.

And it includes the most important application.

- Summary -

The thing worked pretty much out of the box. No Microsoft EULA on first powerup. Plugged in my Sony digital camera and it just worked. Doesn't play DVDs out of the box because of the licensing issues, but I can't really blame Dell for that. Comes with Firefox and OpenOffice. If I had been a regular home user, I could have taken it out of the box and started working.

Friday, October 19, 2007

Pictures from last night's outing

Here are the pictures I took from last night's outing to Dave and Busters...

Note there are three pages in the gallery, so be sure to click the "next page" link in the upper right hand corner.

Wednesday, October 17, 2007

Open source hardware startup

Here's a pretty cool looking company. It's a New York City based startup that is designing modular open source hardware. It's about a block and a half from my office.

Looks like they're up to some neat stuff...

Tuesday, October 16, 2007

Cracking the game of Go

There's a pretty good article in IEEE Spectrum this month about using FPGA technology to tackle the game of GO

Dave turned me on to Go a few years ago. As he explained the principle of the game I remember thinking, "gee, I wonder how feasible it would be to write a computer program to do this...." The article describes some optimizations, but it's still computationally expensive. Very expensive.

Monday, October 15, 2007

Verizon sucks even more

So I finally got a computer plugged into my DSL line, and unlike with a cable modem, it doesn't just work. You have to "activate your account". They say once you go through that process, only at that point can you hook the DSL modem to a broadband router. They have the network firewalled so you can only access their activation site until you go through the process.

So what does the process include? Well, let's do it together...

So you go to Fair enough. I was happy to see that the documents said I didn't need to use the installation CD if I could connect to that site. Good sign. Figured I might avoid getting some spyware installed on the system.

See that little innocuous message in the bottom right that says "A standard Firefox security warning may appear after you click GO. To continue the installation, click the Install Now button and Restart Firefox"? Well, that basically means "You're going to consent to turning off the browser security so we can completely take over your computer and do whatever we want." I wish I were kidding, but I'm not. The dialog allows them to run arbitrary code. It means they are going to download a native program that can do literally **anything** it wants. It can read your personal files. It can inventory your music collection and send it to the RIAA. Anything it damn well pleases.

Can you say "Don't install now?" Well, not really since you can't proceed with the install unless you download the component. Fortunately, they have versions for both Windows and Mac (both PowerPC and Intel).

What exactly is this thing you are installing? Well, it's file called dsl_installer_mac.xpi. XPI is a standard for Firefox extensions. It's a packaging mechanism based on Zip, combined with manifest information. What does it contain?


Uh oh. That can't be good. What does the disk image contain unpacked?

A native executable called "Verizon Online DSL Installation". Without a disassembler, there's no telling what nastiness it does.

So back to the user experience, let's say I say "ok". Anything else I should be worried about?

Bastards. This is the "we need to take over your computer entirely dialog". You typically see it when you do something like install a new device driver. They aren't satisfied just being able to access my end-user files, they want root privilege to do who knows what.

It's worth noting that they aren't installing a device driver. Had I needed to install the USB driver for the DSL modem, I can appreciate this dialog. But since I'm connected to the modem over Ethernet, there is ABSOLUTELY no reason to have this level of privilege.

To add insult to injury, I go through the whole process and logon to my Verizon account page. What do I find?

Look at the bottom of the screenshot. I got signed up for "Verizon Security and Backup Bundle 5GB" for $7.99 per month, as well as the "Verizon Games on Demand Quick Pack" for $4.99 per month. Note that I was never offered these services when I talked to the Sales rep and ordered my DSL. Some fucker just clicked a few checkboxes and enrolled me in an extra $13 per month worth of crap I never asked for, don't want, and don't need. Can we say FRAUD?

I canceled the services, which will "take effect in one to two billing cycles". No way. I'm calling them tomorrow.

Imagine if I had not gone to the billing page now, and instead waited for my first bill to arrive. Imagine the shock that most customers must face when they find their $29.99 bill is actually 42.97 plus tax.

I keep thinking about how easy it was to install my cable modem, how it worked right the first time, how no technician had to come to my house after spending hours on the phone talking to 14 different representatives. How I didn't have to install any bloatware/spyware/"fuck up your machine ware". I just plugged my cable modem into my wireless router and it just worked.

Maybe later this week I will run the executable through Ida Pro and see what they did to my laptop. And then I will use this as an good opportunity to wipe the hard drive and reinstall the OS.

Saturday, October 13, 2007

Verizon Sucks

(except for the one guy who came to my apartment and got my DSL working)

Finally got my dry loop DSL working (that's DSL without having an existing land line). I ordered it on September 20th, was told it would be activated on October 1st. Received the self install kit on September 25th, and received an automated call on September 30th saying that activation was complete (so far so good).

But it didn't work. The DSL light blinked continuously, indicating that it was not reaching the DSLAM. This is the functional equivalent of the modem not being plugged into the wall.

From there, I spoke to 14 people at Verizon:

DSL support (PC)
DSL support (Mac)
DSL support (PC)
DSL support (PC)
DSL support (PC)
Repair (scheduled a visit the next day between 1pm and 5pm)
DSL support (scheduled a visit the next day between 1pm and 5pm)

Some fun highlights of my support experience:

  • I went through the whole troubleshooting process with the first DSL support guy, he concluded that the problem was with the DSL line and it had nothing to do with my PC, but when I accidentally mentioned that I had a MacBook he insisted on transferring me to a Mac representative rather than opening a trouble ticket for a technician to come to the apartment. In all subsequent calls I just said I was running Windows XP and that avoided the problem. Can you image what would have happened if I said I was running Linux?
  • On Tuesday morning, every time I called the number for the local Verizon repair office, all I got was dead air. I guess the phones weren't working at the phone company?
  • As a troubleshooting step, I was told to reverse the RJ-11 wire between the DSL modem and the wall jack (as in unplug the end of the cable that is plugged into the wall and plug it into the modem and vice versa). As anybody who has ever plugged in a phone cord before knows, the cable is symmetric and there is absolutely no difference which way you plug it in.
  • A DSL support representative hung up on me when I asked to speak to his supervisor
  • My first scheduled repair visit was arbitrarily canceled without anybody calling me to inform me of such because "the repair office that ordered the ticket was not authorized to do so, so the ticket was automatically closed"
  • I executed the following sequence of operations four times: power off modem. power on modem. Check wire between modem and wall. Do I have the filter installed between the modem and the wall? Am I using the wire that came with the modem? Does the modem have power? Executing test of your DSL line....

Several hours spent in all on the phone. The final outcome? The technician came to the apartment building, opened the wiring closet, saw that the wire pair to my apartment was disconnected, and plugged it in. DSL working.

If I had any idea how much of a PITA this would have been, I would have walked over to the Time Warner office on 23rd street, walked out with a cable modem, plugged it in and everything would have worked.

In all fairness, with one exception every individual I spoke to was very courteous. As an organization though, Verizon just sucks. They are disorganized, transfer callers between departments way too often, and don't call you when they are not going to show up for appointments. Not that any of this comes as a surprise...

Wednesday, October 3, 2007

Brain melted

I think maybe I've been working too hard...

So I woke up a few minutes ago from what I can only assume was a dream in which I got confused about whether the code Joe was writing was supposed to be in Perl or AutoIt (a lightweight scripting language I am using for automation). And in my dream I had an extended debate with myself about the issue, in fact referencing specific functions I had been working on today.

So having just woken up, I had to actually login to the company email right now and make sure that I in fact had NOT accidentally sent email to anyone about the issue, since after all it was only a dream.

Um, yeah. When you can't tell the difference anymore between your dreams and real life - that's not a good sign.