How to get around Safe Chat

Today, my friend told me about this amazing new Internet filter. He went to a meeting at the city hall, where it was being demonstrated to the government. Apparently, the police gave it the thumbs up and recommended it for the schools. On a news story, it said that it was made by a Purdue University graduate Gabe Luu.

To make a long story short… the entire program is amateurish (can’t blame the one guy) and ultimately ineffective.

Personal Proxies

On the Safe Chat website, there’s an example image showing with and without Safe Chat. What Safe Chat does is kill any browser that’s not Internet Explorer (no Firefox). So… I set Safe Chat to block MySpace, because according to the media, MySpace is the breeding grounds of predators.

OK, Safe Chat blocked like it should. But, with my own little proxy server, I got around it easy. Strike 1 for Safe Chat.

Public Proxies

OK, so maybe Safe Chat didn’t block my proxy because it’s a tiny obscure little proxy only used by me. Let’s try something much more popular. Let’s try Nope. Still got to MySpace. Strike 2.

Instant Messaging

Safe Chat’s instant messaging works by whitelisting contacts. Safe Chat quickly killed Miranda when I started it. Renaming the executible didn’t work. Thank god they didn’t miss that easy easy trick.

How I broke it

I got out my trusty debugger/memory editor and started playing around with SCCheck.exe’s memory. It terminated or exited or died or something, and my Internet access was unfettered. “That was easy.” Programs shouldn’t just go away when another program messes with it a little. That’s like poking a security guard in the face and walking past without raising any alarms.


How much did Luu bribe the police with? Either that or the police were computer illiterate. Seriously. Protection is very simple and unintelligent. It blacklists sites (try blacklisting the Internet), filters words, and bans the user from choosing which browser or instant messaging client to use. That’s all. There’s no comprehensive, company-maintaned, often-updated list of bad sites and categories. Safe Chat cannot compare to a dedicated corporate filtering solution, such as one from 8e6 (which Kokomo Schools already has, too!). Actually, Safe Chat cannot compare to most software solutions like it. So sad.
This software also has one of the worst interfaces ever. Nice cool titlebar Luu… but you are in desperate need of a UI expert. Speaking of which… I’m available for reasonable rates.

Benchmark: Turion 64 X2 vs. Celeron 331

I got a new laptop (see previous post) with an AMD Turion 64 X2 Mobile TL-50, with a clock speed of 1.66 GHz per core.

Earlier, I got a new CPU to replace the broken one in a desktop computer. That one is an Intel Celeron 331, with a clock speed of 2.66 GHz.

I know clock speeds are more for marketing than for an indicator of performance, so I decided to try a benchmark. Each computer would try to optimize an approximately 6000×5000 pixel PNG image using OptiPNG.

This test is fairly simple and mostly geared towards CPU power. OptiPNG is not multi-threaded, so essentially I was comparing a single 1.66 GHz core with a 2.66 GHz CPU. No fancy processor instruction sets were used. Both processors are 64-bit, but both were running 32-bit Windows.

Minor factors:

  • Turion laptop’s hard drive is 5400 RPM. The other’s was 7200 RPM.
  • Background processes may have been shifted to the Turion’s other core, thereby allocating more cycles to the benchmark, as opposed to the single-core desktop computer.

The result:

  • Celeron 331: Finished the test in 1:06 min.
  • Turion TL-50: Finished the test in 1:30 min.

From these results:

  • If the Turion was running at 2.66 GHz per core like the Celeron, it would’ve finished in about 56 seconds, meaning it might be slightly more efficient (IPC) than the Celeron.
  • If both cores of the Turion were used, it would have finished in about 45 sec.
  • If the Celeron had a clock speed of 3.32 GHz (1.66 x 2), it would have finished in about 52 seconds.

This means, my Celeron is kinda slow. It also consumes more power (1.3 V vs. 1.1 V). However, it cost a whole lot less (partly because it’s for a desktop).

It's the interface, stupid!

This seems to be a huge issue the big companies “get” and the little companies neglect.  When designing software, make a good interface.  So many times, a piece of software can’t rise up into the big leagues because the interface is horrendous.  The workflow in a program should be efficient, intuitive, and simple.

Case 1:

I downloaded Alibre Design Xpress, which claims to be a full-featured 3D parametric CAD application that’s absolutely free.  I tried it out, and in a few seconds I could see what was wrong with it.  But first, let me give you a little background.

I started out in CAD by learning Autodesk Inventor, a very capable (and pricey) 3D parametric CAD modeling program.  Everything about the program was intuitive and simple, but advanced users could accelerate every step of the process by learning keyboard shortcuts and other little tricks.

Enter Alibre Design. I began by drawing a simple part, and immediately the program was already hampering my work.  I wanted to dimension the box, and I was used to just hitting “D” on my keyboard to select the dimensioning tool.  Nope.  Alibre Design forced me to click the button in the toolbar, which takes a little getting used to.  Same for extrusion: I couldn’t hit a key to extrude, like in Inventor.  It was another tiny little picture on a bar, and I had to hover my mouse and read the tooltips.  Then, Alibre got even more annoying when I went to extrude another sketch on the side of the box.  Apparently, any excess lines besides the closed figure causes Alibre to grind to a halt.  For extruding sketches, it’s either all or nothing.

That said, Alibre Design is a powerful program, and experienced users could easily work around these little annoyances.  But, it does need some deeper thought put into the workflow.

Case 2:

I needed to composite some video, and I tried out [email protected]’s Zwei-Stein 4.  Wow.  What a nightmare.  To begin with, the interface is the sluggiest interface out of any program I have.  It looks like they tried to invent their own GUI toolkit, with abominable results.

The interface is one confusing mess.  They try to justify this on their website, saying that they favor creativity over simplicity, and that’s why their interface is so bad.  There’s no way I can be creative with such a bad interface.

For starters, to import a clip, you’re forced to use their ugly file tree.  It goes like this:

  1. Click on a video clip.
  2. Wait.
  3. See the thumbnail of it appear in a completely different tab (apparently importing video is a multi-step process).
  4. Drag the little green arrow on the toolbar beneath the preview into the “MediaMixer.”  Oh wait.  You can’t, because the little green arrow takes forever to show up.  This is on a dual-core Turion.

And that was just a small taste of what was to come.  Arranging video in the timeline was much, much worse.  You can’t just select a video clip by clicking it on the timeline.  You have to click its name on the sluggish list in one of Zwei-Stein’s multitudinous panes (bad pun here).  To move a video clip, I’m supposed to Shift+Drag, but it doesn’t work like it should half the time.  The only way to precisely position video is to use their horrible GUI and manually type in a start time and clicking the “=” button.

Lesson learned: Don’t make your own GUI toolkit.  If they really wanted cross-platform compatibility, they should’ve used GTK or Qt.  It might’ve made their program at least slightly bearable.

In the end, think of the user.  Too often, people write programs only thinking about themselves.  They don’t actually give the program to a user and see what happens.  By actually testing it on end users, they can see what parts of the interface need a little repolishing (or a complete rewrite, in Zwei-Stein’s case) so the end user isn’t completely confused.

Found on Slashdot:

“Psssst…. want some Open Office?”
“I don’t know. My dad says to stay with Microsoft Office”
“Come on! It’s free!”
“But at school, they said that OpenOffice is a gateway program, and that I’ll soon be hitting the heavy stuff like Linux”
“This ain’t linux! What’s wrong with just trying just a little bit of OpenOffice”
“But my friend Jimmy started on just a little bit of OpenOffice, now he spends all of his time trolling forums and posting in Vi vs. Emacs threads. I wanted to play some Quake with him last night, and he said that he was too busy rebuilding his Gentoo system from Stage 1 with some really cool flags some guy gave him on the internet.” *Starts Crying* “I don’t want strange guys on the internet giving me flags!”
“what are you, some kind of wimp?”
“I’m going to walk away now. Friends don’t let friends use Open Source”

This message brought to you by Open Source Abuse Resistance Education. Just say no to Open Source

Using the P3120 and other Lexmark printers in Linux

I have the Lexmark P3120 AIO, and for the longest time I could never get it working in Linux. Well, I finally figured it out (printing only), when I saw that the P3150 was confirmed working and I was only 30 model numbers behind. I used the Z600 drivers for Linux that were provided by Lexmark. Lexmark’s Linux driver support is halfhearted and incompleted, but the Z600 driver works for a wide range of Lexmark printers.

To check if your printer will work either with the Z600 or Z700 drivers, consult Gentoo’s Lexmark Printers guide.
If you’re using Gentoo, well lucky you. Just follow the instructions on the Z600/Z700 ebuilds there.
If you’re using RedHat, it’s even easier. Get the Z600 RPM provided by Lexmark.
If you’re using Ubuntu, there are guides for Breezy users on the Ubuntu website:
Ubuntu Wiki guide
However, I prefer the Honey Badger IT guide. Keep trying until one of them works for you. I think using alien to convert the RPM to a .deb is the best way (look on the guides!).
Edgy users will need to copy the PPD from the driver (after following one of the above guides, that is!) to /usr/shared/ppd, because that’s where CUPS looks for the PPD in Edgy.

Bug – Compatibility issue with Internet Explorer and Autodesk VIZ 2007 registration

This bug affects Autodesk VIZ 2007 (and possibly its older-sibling 3ds max 8 ) during registration when Internet Explorer 7 Beta is installed on the system. After Autodesk VIZ 2007 installs, the first time the user runs it it will complain that it cannot find a file in C:\Documents and Settings\User\Local Settings\Temp\~RT65.tmp\. The file in question was RTEaseReAuthBeginReg.html, or possibly a similar file. This file exists in C:\Program Files\Autodesk\VIZ2007\WebDepot. After copying the file to the ~RT65.tmp directory, VIZ will have IE7 open the file repeatedly. Every time, the Information Bar appears about potentially unsafe ActiveX content. Opening the file repeatedly causes more and more tabs to open.

The best potential fix is to remove IE7, and use IE6 instead.

To Be Verbs

It seems that a lot of people are enjoying my “To Be” Verbs Analysis” program, and, well, some aren’t. Since only the school has Writer’s Workbench, people have trouble finding time to use it. Well, now they can do it at home. Mitchell pointed out that “It doesn’t work!” because it wasn’t picking up “wasn’t”, “weren’t”, and “isn’t”. It’s fixed now, along with a minor issue with having “Dr.”, “Mr.”, and words like that.

If you could, spread it to any of your friends that might need it too.

X-Window Compositing

I tried using compositing on X-Window (with Kompmgr, of course), and it is amazing. However, it is still in the developmental stages and isn’t very well-known.

It features window transparency, shadows, fading in/out for everything, and more. I’m beginning to see why Windows Vista has nothing innovative. Microsoft showed off how the little icons would reflect the file’s contents – KDE and GNOME have had this for forever for text files. Vista will have fancy see-through windows and stuff – compositing in X does this just fine (kinda slow without a good GFX card though). It seems the only new thing Vista will have is the nice little start button.


I recently changed my system to a dual-boot setup with Ubuntu GNU/Linux, and it worked magically for awhile. However, I was using Windows XP to make a FAT32 partition (seems like I had to make it in Windows for it to be recognized), when my GRUB boot loader messed up. I couldn’t boot my computer. Luckily, I had Ubuntu Live handy, and I booted into a live session.

I made a rescue floppy by going into GRUB’s folder (with stage1 and stage2), and running the following commands:

dd if=stage1 of=/dev/fd0 bs=512 count=1
dd if=stage2 of=/dev/fd0 bs=512 seek=1

I now had a bootable floppy. With the floppy, I can boot into the GRUB prompt. From there, I could either type in some commands to boot Linux, or I could install GRUB. I installed it by:

grub> root (hd1,0) or whatever partition Linux is on
grub> setup (hd0)

I now had GRUB back again!

I was testing browsers…

… and I noticed something odd – Opera, Firefox, and Internet Explorer all handle DOM Style colors differently when a script gets the color as a string. Let’s say you make something’s color red.

  1. Internet Explorer will keep the format you wrote it – if you put #FF0000, it will give “#FF0000″. If you put rgb(255, 0, 0), it will give “rgb(255, 0, 0)”.
  2. Firefox will turn everything into the rgb(###, ###, ###), turning “#FF0000″ into “rgb(255, 0, 0)”.
  3. And to complicate everything, Opera converts all the colors into #hex notation, making rgb(255, 0, 0), become “#FF0000″.

Bothersome, ain’t it?