Thursday, March 12, 2009

Why Does Anyone Use OpenSolaris?

I was trying to help someone on the filezilla forums who uses OpenSolaris. They weren't too familiar with how to compile their own binary. Since OpenSolaris is free, I decided I would just download a copy, stick it in VirtualBox and try it out.

First of all, it looks nice, and all the vmware hardware seemed to work (more or less). The graphics driver seemed to be VESA based so my resolution was limited to 1024x768. Maybe the VirtualBox extensions would fix this.

Okay, my first gripe: The default installation doesn't come with any development tools. Okay, the whole thing did come on a single CD and includes Gnome, so I guess some stuff needs to be sacrificed, but the development tools? So I started Package Manager and looked for gcc. In comes my second gripe. Even though OpenSolaris is from Nov 2008, the gcc version they are hosting is 3.4.3. That's pretty old. Whatever, it should work for my needs.

There are several minor packages on which filezilla depends. It needs wxWidgets, libidn, libgcrypt, and gnutls. FileZilla depends on version 2.8 of wxWidgets, and the installer checks for the latest minor revision 2.8.9, but the package manager only had 2.8.8 (not as ancient as the gcc they're hosting, but still old). I couldn't find any of the other libraries. It also needs GNU gettext, but since I was able to run gettext and xgettext, I thought OpenSolaris came with that (more on that later).

Since I wasn't sure how to get around the FileZilla check for wxWidgets 2.8.9, I decided to build wxWidgets. Now we come to even more problems. wxWidgets seems to want to build the Motif version even though I got the wxGTK release. Oh, this must be because the gtk development headers aren't installed on OpenSolaris. BTW: I still can't find these. I saw a GTK package, but it's version 1.2. Who would use that these days? It's unsuitable IMO. Okay, we'll use the 2.8.8 package and figure out how to trick FileZilla later.

I was able to build libidn, libgcrypt, and gnutls without problem. That's about the only positive I ran into.

Since I can't figure out how to build wxWidgets since I can't find the gtk development package, I had to find a way to trick FileZilla into using the 2.8.8 version. First I decided to modify the script to accept version 2.8.8. When I first tried it, it ignored my changes. It didn't rerun autoconf for some reason. Oh yeah, it's not installed. Go back to Package Manager, and surprise, surprise, autoconf isn't one of the packages. Okay, well that solution won't work.

Let's tell wx-config to lie to FileZilla instead. Oh wait, there's no usable editor on this system. No nano, pico, or even emacs. I'm stick with vi. Since I have no idea how to use vi, I look at the graphical editor options and I find gedit. Okay, that will work, overkill that it is. BTW: nano isn't in the Package Manager either.

After telling wx-config to lie for us, FileZilla gives me a new error. We don't have dbus installed. Really I blame FileZilla for this. If dbus isn't available, it's configure script should disable support for it itself; we shouldn't have to pass --without-dbus on the configure line. Instead of trying to find dbus (which I'm already sure won't be found in package manager), I rerun with --disable-dbus.

On to the next error. Oh, msgmerge isn't installed. Apparently, gettext and xgettext are not from GNU gettext after all. So we need to go get that. I tried to build the 0.17 version from source and ran into some weird compile error. So I ran back to package manager and it had the 0.16 version, so I installed that. Finally, the configure script completes.

I have a quad core processor, so of course I use make -j5 to build. But no, we're not using GNU make. We're using Sun make, which doesn't support that option. So I'll just leave 75% of my CPU idling while it builds on a single core.

It quits with another cryptic message. One thing I noticed was that it said ld: fatal: library -lCstd: not found. Does this mean it can't find the C standard library? Well, that would be par for the course I guess.

If anyone has suggestions, I'm open to them. For now, I'm left with the question: Why does anyone use OpenSolaris?

edit: Someone mentioned that lCstd is the Sun CC C++ library, which is probably why it wouldn't work with gcc, but I'm not sure if that's right or not. It makes sense anyways.

I was able to find what I needed to build FileZilla. SUNWgnome-common-devel contains the GTK+ libraries. SUNWxwinc and SUNWxorg-headers are the X libraries and includes. SUNWgnu-idn was there all the time. Not sure how I missed it. Building wxWidgets and GNU gettext from source solved the rest of my problems. I put up a guide to compiling FileZilla under Solaris on the FileZilla wiki.

Wednesday, March 4, 2009

Comcast, It's FRAUDtastic!

There are plenty of stories about Comcast and their terrible customer service. It doesn't seem to faze them, but you never know.

A small bit of background. I hate tech support people. I invariably get the one who has no experience or understanding of his field and has been given a perfunctory amount of training. I invariably fall into a category I like to call the 5% problem. I never have problems that these people were trained to solve. I know what a power button is, know how to read a manual, use the internet to get help, and prefer to do my own research before wasting someone else's time. I usually find my own solution, but it can't always work out great. The 5% problem refers to something that most people will never experience, which means the solution is never part of the tech support person's training. Since I've never met one with capacity for rational thought or, God forbid, actual experience in his field, I often find my self exasperated when dealing with them. BTW: Sorry to all the tech support people who are competent. I hope to someday meet you.

I have cable internet service. I have had it for several years and have always been pretty happy with the service. When it was first started in town under the old cable company, Insight, it was 3 Mbps down, 128 Kbps up. Insight kept increasing the speed until it was 10 Mbps down, 1 Mbps up. I just got happier and happier. When Comcast took over, they said we wouldn't notice any change in service. I moved to a new place, and had to pack up my desktop for awhile. That part of the story is important, because it makes it unclear when the service level dropped. More on that later.

Now I have moved again. Because none of the cable bills were ever in my name, Comcast sent me a flier saying we could get cable and internet for $30/each. Since it was $45/each at the other place, this seemed like a good deal. I finally got my desktop out of storage and took at look at updating gentoo. The mirrors that I was using that previously produced download speeds in excess of 400 KB/s are now maxing out at 100, and the average is even less. Since my primary mirror is the local university, this doesn't make much sense, but I decide to try other mirrors. I tried 7 or 8 others, all to the same (or worse) affect.

I then decided to try an internet speed test. I went to dslreports and ran a speed test from New Jersey. It said our speed was around 1 Mbps down, 1 Mbps up. Since I was under the impression we were on 10 Mbps down, this was not good. I tried another test from Illinois with similar results. I then tried tests from New York, Pennsylvania, California, Tennessee, and Georgia. I get similar results from all of them. I then remembered there was a local ISP that had a speed test, so I tried theirs. You guessed it, the same results. I found some more tests in Indiana (where I live) and they gave me the same results as well. Something was wrong.

Even more upsetting was that the internet was constantly going down entirely. Some nights it was so slow as to be useless. You couldn't even browse the web or play poker. I called Comcast and they told me it was probably the router. I followed their instructions and unplugged it for a minute and then plugged it back up. Well, we got back to 1 Mbps down and it was usable, for around 10 minutes. So I tried a different router, to no effect. I then went straight from the computer to the modem, and we still get 1 Mbps down. A few nights later it went back to being unusable again and I called them back. It was after midnight, so I wasn't expecting a fix right then. The tech guy tried to reset the modem. It never came back up. So they decided to send someone out.

This was a Friday morning (technically, after midnight). He said the earliest time was Monday afternoon, but I could call back in the morning and see if they had an earlier time. Turns out I didn't need to, as they called me around 9:30. I don't answer calls from 800-numbers I don't know; it's rarely someone I want to talk to. I got a call at 10 AM from someone I wanted to talk to, and afterwords I decided to check my messages. The 800 number was Comcast and they said they could fit me in today if I called back. Of course I immediately called them.

The woman on the phone had all kinds of problems. She couldn't find my account by telephone number, name, address, or the reference number the guy last night had given me so they'd know about this problem. I finally had to get the bill with the account number. After 15 minutes, she was finally able to tell me they could schedule an all day appointment. That meant they could come anytime. That was fine, and I proceeded to wait, and wait, and wait... At a little after 5 pm, I started to wonder how late anytime was. I called the local office and asked at what time I should stop waiting. The automated system noticed I had a schedule appointment, which I thought was a good thing. The guy said it could be anytime up till 7 pm. That was fine, I already assumed the appointment was low priority. So I went back to waiting, until around 6:52-ish. I asked if they were coming at all. He said he would try to find the tech guy. After several minutes on hold, he said he couldn't get ahold of him, but had texted him, and would call back.

I got a call back a little after 7 pm asking if they could do it tomorrow. I'm a pretty patient person, but I had waited all day already, and wasn't really interested in repeating it tomorrow. She informed me that cutoff was 7 pm, and if I had called before noon like they were expecting, it would've been better. That pissed me off because I called then at 10:02. I know this because my cell phone has a call record. I would know this anyway because of the 15 minutes I spent with the moron at that time who couldn't find my account information. She claimed she had no record of the appointment. I asked if they would really come tomorrow. She said yes, she was the dispatcher and she would schedule it right now. Since the other woman told me the same thing (about the scheduling, not the dispatcher thing), I wasn't really filled with confidence, but what can you do? She said he would call 30 minutes prior to his arrival so I didn't have to wait there.

The next morning, he calls at 10:10 and says he'll be there in 10 minutes. I was already there, so it wasn't that big of a deal, but she explicitly said he'd call 30 minutes in advance so that I wouldn't have to worry about that. Whatever, I was already there. Moot point.

He arrives soon thereafter. I had unplugged the modem and router after the midnight call, and left it that way most of the day expecting a tech call. I only plugged it up after 7 pm. I once more checked all the wires and cables. It of course was working as well as it ever did when he showed up.

He checked some things on the computer. Web sites seem fine, and his device says we are getting a clear signal. I ask him why it's so slow. He says it might be the modem or the router, but since we're getting a clear signal, it's a problem on our end. I'm not sure why it never occurred to me to change modems. I had another one, but I never did. Since I got the same slow speeds with or without the router, I was pretty sure it wasn't the router. I told him about the speed tests. He informed me that these servers could be anywhere and you can't know how many places it's going through. He decided to try the comcast internal speed test. He couldn't remember the address. He thought it was .com. I suggested it might be .net like the rest of comcast, but he said no. He called the office and found out it was .net. This would be a bad omen.

The internal test said we were getting 5 Mbps. He reran the test several times all with similar results. I asked what we should be getting. I thought it was 12 (Insight gave 10, but Comcast was running ads about PowerBoost and 12). He called the office and said we were on the economy plan, and should be getting 6. Since 5 is nearly 6, he says we are getting the right speed.

I asked him why all the other servers say we're getting 1, not 5 or 6. He repeats that they could be going through many hops. He also mentions he doesn't know how the internet works. I ask him if it's reasonable that all these other places cause us to lose 80% of our speed. He says Comcast only guarantees what you're getting from us. I tell him it doesn't make sense that no other place in the United States can verify comcast's results. He repeats again that he doesn't know how the internet works, but that his test proves it's working. This is why Comcast developed its own test, because it's local. It stays right in the city you're in. He says we're paying for 6, and we're getting almost that. "When you're arguing with a fool, make sure he's not doing the same thing." I asked him to leave. Before he left, I asked him to hook up the other modem to see if it was the problem. He said our modem was working fine, and that if I wanted to hook the other one up, I could call them myself.

After he leaves, I go on a quest to prove his test is a fraud. I wasn't really sure if it made any sense that the modem wasn't working. I found a website that discussed comcast and how they ramped up the speeds over time. One person said his old modem was slow as it didn't have support for DOCSIS 2.0, the newer cable internet standard. I had a very old modem, and decided to look into it. Sure enough, it only supported DOCSIS 1.1. The other modem we had however supports DOCSIS 2.0. I hooked up the other modem and called comcast back. It took more than 15 minutes to get the new modem setup, but it finally was.

I returned to the internal comcast speed test site. I then learned that there was no local test, and that the closest one was from Illinois. In any event, despite the fact that we are only paying for 6, the new modem gets 27 Mbps down. I tried the other speed tests. The results were instantly fasters, 3, 4, 5 Mbps. In other words, it appears we are now really gettings those 6 Mbps speeds. I decided to check on my gentoo mirrors. 500 KB/s, 600, 800, 1.1 MB/s, 1.5 MB/s at times. From a maximum of 100 KB/s before, we now have at times a 15-fold increase.

Let's sum up why I'm upset.

1. He didn't know why it was slow.
2. He lied to me about the locality of the test.
3. I waited all day for someone to show up.
4. He didn't call 30 minutes ahead like they said he would.
5. Neither the flier nor the office told me about different internet speed tiers.
6. Most importantly, the test is a fraud. I don't know what they're doing with that internal test, but the internet is science. Science depends on results that can be independently verified by outside researchers. If I can't get anywhere near Comcast's results from anywhere else in the country, then their results aren't likely to be correct. I'm sure the results are helped by never leaving comcast's network, but to the tune of 80%? That's ridiculous at best, and fraud imo. (5 - 1 / 5 = 80% loss DOCSIS 1.1, 27 - 5 / 27 = 81% DOCSIS 2.0)

I write this not to deter anyone from buying Comcast. Now that my problem is resolved, I once again love their internet service. It's always been the best in town. I write this because I'm angry. I shouldn't need to know how cable internet works just to use it. That's their job. I don't know how old DOCSIS 2.0 is, so I have no clue how many people this might even affect, but I suspsect I'm once again facing a 5% problem. Hire people who know what they're talking about Comcast! A 3 minute conversation from any of the people I talked to about slow internet could've solved my problem if any of them had known this.

Monday, January 19, 2009

attempt to access beyond end of device

I ran across this error the other day and couldn't figure out what it meant. For starters, it was talking about a partition that wasn't in use (/dev/hda3). Google has a lot of information, but none of it solved my problem. So I thought I'd share.

First, the error message:

attempt to access beyond end of device
hda3: rw=16, want=8, limit=2
Read-error on swap-device (3:3:0)

Some background: I recently changed my partition table. My old swap partition was /dev/hda3. The new one is /dev/hda5. But /dev/hda3 is mentioned no where in /etc/fstab, so who is telling the kernel anything about the old swap partition?

Oh, that's right, I was. It's in the kernel settings themselves. I don't usually enable the hibernation power controls on linux cause I haven't had good results, but I thought I might try it out someday, so I checked that box in the kernel setup (Power management options - Hibernation). Now we have a new question: what should be the default resume partition? And there was my problem; I hadn't changed /dev/hda3 to /dev/hda5.

A quick recompile and reboot and no more error message.

Tuesday, January 13, 2009

DVDFabHDDecrypter on Linux

It's not too difficult to setup DVDFab under Linux using Wine, but there are a couple caveats. It seems the settings cannot be modified from within Wine. Wine can't interact with the configuration menu. This is a problem because DVDFab automatically starts previewing any DVD it finds, which causes Wine to lockup.

So, we need to disable this automatic preview. First, run the DVDFab setup program with wine (wine DVDFab5230.exe). I disabled the VSO burning engine and the desktop/quick link shortcuts. You will need to start the program once to make sure the registry keys are created. You can do that by typing wine "C:\Program Files\DVDFab 5\DVDFab.exe" into a terminal.

Now you need to edit the registry. Start wine's regedit program via wine regedit.exe. In the HKEY_LOCAL_USER key, open Software, then DVDFab, then V5, and finally Generic. There you will find two options, PreviewAutoPlay and PreviewAutoShow. They are set to 00000001 by default. Change them to 00000000.

Now, before you start DVDFab, you will need to mount the DVD you want to rip. Also, if you haven't configured wine for your drives, you will need to do this. Run winecfg and select Autodetect from the drives tab.

Finally you can run DVDFab (wine "C:\Program Files\DVDFab 5\DVDFab.exe").

P.S. I don't know if Blu-Ray or HD DVD ripping work since I don't have either of those.

edit: DVDFab 6 doesn't seem to work very well for me at all. I suggest keeping version 5. Here is a link to version

Monday, January 12, 2009

ImgBurn on Linux

I've seen this covered in other places, but it never worked for me until today, so I thought I'd share my solution.

First off, why would anyone want to use ImgBurn on Linux? Well, I'm not very fond of the linux disc burning programs (k3b and Brasero for example). Brasero refuses to ackowledge the existence of my dvd burner. k3b will burn, but verification is hit or miss. The discs it says failed to verify have all been verified on windows machines using ImgBurn, and they work when I put them to use. Brasero can verify images using md5 sums, but it gives me the same result as k3b; failure. So I can't trust things I burn with k3b, but when I use ImgBurn on Windows, it always works. If ImgBurn says the disc is bad, the disc is bad; otherwise, it's good.

Everyone says ImgBurn works fine in Wine (I'm using version 1.1.10 btw), but it always failed to find my dvd burner. For some reason, Wine doesn't seem to recognize that I have an optical drive unless there is a disc already mounted in it. If I mount a disc first, then start ImgBurn, we find the dvd burner.

So, in summation, to use ImgBurn on linux, you need Wine and the ImgBurn installer. Install wine and run winecfg. On the drives tab, click Autodetect. I left the OS as Windows XP. I am using alsa for the sound driver. Now you can run wine SetupImgBurn_2.4.2.0.exe (or whatever the current version is when you try this).

Now, to run ImgBurn, just make sure a disc is mounted in your drive and start ImgBurn (wine "C:\Program Files\ImgBurn\ImgBurn.exe"). Eject the disc after ImgBurn starts and you can replace it with a blank one.

A simple fix to get a great program working under Linux. I hope someday k3b and brasero are as nice as ImgBurn.

Friday, January 2, 2009

FileZilla Binary for Mac OS X Tiger

I'm sure many people are aware of FileZilla, the open source (S)FTP client. I switched over to using FileZilla a few years ago and it's been great.

A few days ago however, I decided to install it on a Mac. To my surprise, the official builds claim you need OS X 10.5 (Leopard), the most recent OS X release. I was using a Tiger (10.4) machine. I couldn't believe they didn't have a binary for Tiger.

For those of you not familiar with macs, let me break it down a little. Every couple years, Apple releases a new version of OS X. The difference between Leopard (10.5) and Panther (10.3) is comparable to the difference between Windows Vista and Windows 2000. Most but not all modern programs will still run on Panther. For the purposes of this analogy, we'll equate Tiger (10.4) with Windows XP. In other words, needing Leopard (and not being able to use Tiger) is roughly the same as needing Windows Vista (and not being able to use Windows XP). In other words, this is terrible.

The change was not intentional. The author simply doesn't have access to a build environment that he can use to create binaries for Mac Tiger. Since it's open source, you can always build it yourself. Being somewhat versed in software development, I decided to do just that.

There are several dependencies that FileZilla needs, and even when you have them, it's a bit confusing as to how to build them. Even on the forums, it was clear that several people had trouble building FileZilla on mac. So I decided to share my knowledge on the FileZilla wiki.

However, Mac people, by and large, are more like Windows people than like Unix people. In other words, software shouldn't need to be compiled. It should have a binary that just works. So I have decided to provide unofficial Mac Tiger FileZilla binaries.

I don't have access to a PowerPC Mac, so I hope the binary works there. I know the Intel part works cause I've been using it for a couple days. Drop me a line if you have questions.

edit: updated FileZilla Binary to 3.2.0 (2009-Jan-12)
edit: Removed binary and put link to the FileZilla Unofficial Binaries page

dvdauthor frontends

For the past few days I have been wondering what the proper forum was for things I want to publish that don't really fit in with the theme of my other websites. This blog is my answer.

I have three websites, one for teaching people how to program Texas Instruments graphing calculators, one for my emulation related work, and one for programming tutorials. Basically, the theme is, I like to know things, and I like to share my knowledge. I like to be helpful.

So, how am I going to be helpful today? I'm probably not, but the reason for starting this is simple: my growing distaste for dvdauthor frontends.

All I want is a simple frontend to dvdauthor that would do four things. 1) let me add multiple DVD-compliant mpeg files at once, 2) automatically place them into separate titles with default jump points to the next title (i.e. after title 1 goto title 2, then 3, repeat as needed), 3) generate the dvdauthor xml file and run dvdauthor, and 4) build an ISO file with the proper volume label.

DVDAuthorGUI is nearly perfect. It does 2, 3, and 4. It only runs on windows, but for reasons I won't go into, that's not a problem for my needs. But step 1 was really bugging me. I am trying to shove 18 episodes of the simpsons on a single DVD, so adding 18 tracks one-at-a-time gets old after awhile. I contacted the author and he said he didn't feel like adding that feature right now. The source is available, but since I don't know Visual Basic and don't want to learn, it doesn't do me much good.

Since I only needed something really simple, I decided to build my own program. It took about 5 hours to finish the bare minimum of what I needed. It doesn't even do all the things I thought would be necessary (I found a shortcut midway through), and it certainly is not finished, but it works.

What does it do you ask? It lets you add multiple mpeg tracks at once via drag n drop. It has an add button and add menu option, but they aren't implemented. It organizes the tracks alphabetically (though it's case-sensitive which I'm not happy with), which saved me having to implement the rearrange track controls, so those buttons and menu options are also unimplemented. It generates the dvdauthor xml file and runs dvdauthor. Finally, it runs mkisofs to build the ISO file with the proper volume label (specified in the same manner as DVDAuthorGUI, but taking the folder's name you build in). It also makes 7 chapters on each track 3-minutes apart, because my programs are geared towards my simpson dvds.

Obviously, there are many deficiencies. It is not a complete dvdauthor frontend, but all open source projects start out by first solving the authors needs. Other people's needs come later, sometimes even added by other people. I decided to publish it just in case someone else had similar dvdauthor frontend frustration.

Source Code Here 24 KB (.tar.bz2 archive)
Windows 32-bit Binary4.2 MB (.zip archive)

That's all for now. I wonder if anyone will ever read this...