Kirsle.net logo Kirsle.net

Welcome to Kirsle.net!

This is the personal homepage of Noah Petherbridge, and it's where I keep my web blog and various creative projects.

I blog about anything I find interesting, and since I have a lot of varied interests, my blog entries are kind of all over the place. You can browse my tags to sort them by topic and see which ones I frequently write about, or the archive has a complete history of my posts, dating back to 2008!

Besides my blog, I have pages for my creative projects, which are linked to on the navigation bar.

I write a lot about Linux and Android, Minecraft, and I like to rant about stuff. Generally anything that makes me curious. Also check out my Bookmarks for all sorts of cool websites about various topics I'm interested in.

For the geeks: this website respects your privacy and doesn't run any third party ads or analytics. This site speaks HTTP and doesn't require any JavaScript to work.

Web Development -- A Skill
November 23, 2008 by Noah
I have a major pet peeve about awful program code. Code that's terribly written, has terrible logic, or is just really messy. I can't stand having to read it, or worse, write it (like when changing the code style would totally break stuff).

Right now, my page doesn't validate as HTML 4.01 Strict, because <script> tags aren't allowed to have a id attribute. What script tag has the ID attribute? The one to display the countdown until Fedora 10's release. If I remove the ID attribute, the script breaks. Nonetheless I'm going to keep it there only for the next three days until Fedora 10 finally arrives, then it's history and next time I want to count down until Fedora 11, I'll find my own implementation instead of pasting their awful HTML code into my otherwise perfect pages.

I've ranted about pasting external code into my site before, so I'll spare you any continued rambling for now. Sometime when I'm more motivated I might follow up on this rant with a sequel.

The moral of the story is, don't give me any code to paste anywhere in anything I have unless the code is completely valid and passes all validation tests (for HTML, that means it passes HTML 4.01 Strict standards).

Speaking of which, I wanted to say a little something about web development. Why have a degree in web design?, some people ask. Any 12-year-old can open Notepad and create a web page. I agree -- and I was that 12-year-old at one point in my life. What separates the men from the boys is the ability to create a web page that validates against the W3C's strictest standards. Yeah, any little kid can throw together a mess of HTML tags and get something out of it. They might even be lucky enough that their page works on every browser. But I've heard enough crying and complaining about how the W3C doesn't validate their page, how they get errors in the triple digits or worse whenever they try to validate their code.

So that's why web development is a skill and not a hobby. With the exception of the Fedora banner (which I highly regret embedding), all my pages on this site and every other site I develop, they all validate HTML 4.01 Strict. Not Transitional -- Strict. That means the W3C doesn't take any shit from my pages whatsoever. And that, my critics, is what sets me apart from the 12-year-olds with Notepad.

Tags: 0 comments | Permalink
Beauty and the Geek
November 8, 2008 by Noah
To those who haven't heard (I'm talking to you, internets), I had an audition for the upcoming 6th season of Beauty and the Geek.

So on Wednesday, I arrived to campus a lil more than an hour early as I usually do because it's way down in Torrance and traffic on the 405 at that time of day is just terrible, made worse when there's a four-car accident somewhere along the way (though the Rosecrans Avenue on-ramp usually causes enough congestion itself)... I was in the break room surfing Digg on my laptop. Later one of my classmates arrives and is sitting with me, and a while later he points out these two hott girls standing over by the soda machines. He's totally checking them out. So I look and then look back and just nonchalantly shake my head, as I do every time a straight guy is checking girls out and expects me to agree. I did mentally note that these girls look WAY too good to be students at ITT-Tech. But for a while, that was all.

Then suddenly the girls come over and ask me if I'm 21 years or older. It was a weird question that I'd usually only expect to be asked at a club by people who don't believe I got in using a legitimate ID. But they were apparently looking for people to audition for Beauty and the Geek between the ages of 21 and 28 and they picked me to come in for an audition.

I've never actually watched the show but I've heard about it, and, while I'm a geek, I'm nowhere near the calibre of complete loser-nerd that usually appears on that show. I don't expect that I survived the audition phase, but I'm not really too concerned about it. I'm actually more worried what'll happen if I DO survive the audition, and how time-consuming doing the show might be and how it would affect my current job. Perl software developers are more valuable than developers of other programming languages because there's so few of us, so a Perl developer missing work is worse than, say, a Java programmer.

Anyway, the audition was earlier today at 10am in Manhattan Beach, at the Raleigh Studios. They sent me an e-mail with the necessary forms I had to fill out and some sample biography documents from former cast members. The sample bio they sent me seems to have been that of Tommy, from the 5th season of the show. They also instructed me to bring whatever geeky things I could... dungeons & dragons stuff, weird collections, awards for geeky things, etc. -- But, as I'm more of a computer geek than anything else, I didn't really have much to bring in, so I just decided to bring my Jr. High and high school spelling bee trophies, my "Best of Architectural Award" plaque from my senior year AutoCAD project, and a deck of Pokémon cards that I've owned since I was like 12 but which are still in good condition. I do play Dungeons & Dragons, but I don't own the figures or dice so couldn't bring any in.

Anyway, so I showed up at the studio. The parking garage was quite a walk away from the building I had to be at, and the route I took to the building took me along the backlot behind the studio buildings. Some of the studio doors were open and I could see inside, and see various sets for who knows what. One thing I saw looked like the back side of a living room set, possibly for a sitcom or something? I dunno.

I had arrived ridiculously early. The audition was at 10 but I left an hour early because of the notorious traffic on the 405, but, at that time of day the southbound traffic doesn't exist and I got there in a whole 5 minutes. So I waited up in the lobby of 3Ball Productions, who was doing the casting.

3Ball Productions
This is a picture I took of the room I was in.

It was a long and boring wait. Finally the person to audition me arrived and we went into one of those audition/interviewing rooms (it's kinda a mini "set" in its own right... odd seating furniture and a camera pointed right at it). So she asked me some questions and had me answer in complete sentences because the video is going to be edited so her questions are cut out and ultimately it will turn into a quick 2 minute video to show to the producers. She asked questions about my background, what I did in high school, what my GPA was, what geeky things I'm into, what I don't "get" about girls, what kind of girl I like (seriously? this was some hard stuff to answer), etc.

(If I must pretend I'm into girls, then tomboyish girls are the ones for me. haha.)

And then 15 minutes later it was over. I headed off to work and went about the rest of my day.

If I don't hear from them by the 21st then it means I wasn't a finalist. (I don't expect to be contacted anyway). I did ask out of curiosity how their show works with people who have jobs. Apparently all the cast members have to live together in this mansion the whole time (or until they get eliminated), they shoot for 8 to 10 hours a day 5 days a week for 3 weeks, but weekends and off-camera time is free. So in the worst case scenario that they do call me, it would be theoretically possible to keep up with my day job at the same time. But I'd have to get some more clear and concise information and pass it by Samy. But, I really don't think I'll have to worry about any of this cuz I'm totally not THAT much of a geek.

So, I went today for the experience of seeing how exactly the audition for a reality TV show goes down and cuz I didn't know what I'd see or who I'd meet. I didn't meet anyone famous (so far as I know), just a bunch of people who work behind the scenes to make TV happen. It was cool either way.

So, thus concludes my crazy story of the last couple of days.

Update [11/22/08]: It's the 22nd now and I haven't heard back from them. Darn. Looks like I'm not gonna be famous after all. But again, I don't care. I never anticipated that they would contact me. It does make for an interesting blog entry though, so I'd still recommend reading it if you haven't done so. :)

Tags: 0 comments | Permalink
Text-Based CyanChat Client
October 24, 2008 by Noah
I was looking at my CPAN directory the other day and noticed that my CyanChat modules were poorly documented, to the point where if I was somebody else and didn't know about Kirsle's Perl CyanChat Client, I'd have no example code to reference to figure out how to use these modules.

So, I've decided to update the modules and add some better examples in its documentation. I also thought it would be nice to include a demonstration program for a CyanChat client. The distribution already comes with a sample server script, but none for a client. I didn't wanna include a bot though, because then CyanChat would have these bots entering the room from people testing the demo script, and nobody likes bots. And then, PCCC is a heavy program to include as an example script. So, I decided to make a new CyanChat client that would be light enough to work.

So, I've created a text-based CyanChat client:
Terminal CyanChat Client

The script is mostly standalone: just one Perl script that uses Net::CyanChat. And also Term::ReadKey, which is easy to install. It doesn't use Curses or any other terminal GUI toolkit: it's all plain old text and ANSI colors. I built in my own kind of buffer system, and any time the chat dialog (or typed message prompt) changes, the window is cleared and redrawn from top to bottom, keeping track of how many characters and lines are being written so that it cuts off the buffer directly at the bottom of your terminal. And it works no matter what your terminal's dimensions are.

More screenshots:

Intro
The main menu screen, changing the CC host back to using port 1812 (I used 1813 as the default port number for development purposes).

Chatting
The CyanChat client in full operation.

Update: It works on Windows too (to much amazement as the command prompt completely sucks):

Win32 Console

Tags: 2 comments | Permalink
Favicon Generator
October 15, 2008 by Noah
Dynamic Drive has one, and now I do too: a Favicon Generator. It's a lil CGI application that takes an uploaded image and converts it into a Win32 icon file, specifically the 16x16 resolution variety that are used as favorites icons for websites.

Dynamic Drive's was cool and I've been using it thus far to generate all my favicon files (and some regular icons for use in some of my software like PCCC and ErrorGen), but my generator 1up's that by also being able to include 96x96 resolution icons (Windows Vista size).

To those curious, I mainly used the Perl modules GD and Imager to manipulate the uploaded image and save it as a Win32 icon. I won't give out the code behind my favicon.cgi though because it's really not that hard to figure out just from the manpages of the Imager module (see Imager::File::ICO).

Tags: 0 comments | Permalink
Mandriva Linux
October 9, 2008 by Noah
Last week in class I updated all the software on my laptop running Fedora 9 Linux. The Atheros wireless card in my laptop never did get along well with Fedora. There have been some unstable hacks to Madwifi that get the wireless card to work so that I didn't have to recompile the kernel, but these hacks were very kernel-specific and an update to the installed kernel would break the wireless and I'd be stuck waiting for another new Madwifi patch to come out.

Recently Atheros decided to make nice with Linux and contribute with driver support for Linux. That's cool, except Fedora 9 is all but almost expired and we still have nothing but a hacked Madwifi. In Fedora 10, a built-in kernel module should allegedly have the wireless card work out-of-the-box. But until Fedora 10 is released on the 28th, I'm in limbo.

On my Fedora 9 install I was reluctant to update the kernel knowing that it would break the wireless, especially while the Livna repository didn't have a matching upgrade to the Madwifi hack. But I updated it because there was a matching Madwifi this time, but that made my old (working) kernel 2 versions behind current. So, Fedora installed the new kernel and uninstalled the old one that worked. And, the wireless didn't work anymore with the new kernel.

So, I installed Mandriva Linux. Mandriva is used on the Acer Eee PCs and works heavily with Atheros hardware, and it was known that my particular wireless card works out-of-the-box with Mandriva. And it does. And Mandriva has a pretty default desktop theme. But, it's also a very annoying distro to use.

It's an RPM-based distro, but it doesn't use YUM for its front-end package manager. It uses something called URPMI, which doesn't have a very comparable interface at the command line. That's only an annoyance, but what I have a bigger issue with is how Mandriva replaces standard GNOME utilities with its own "control center" suite, which frankly sucks in comparison.

Mandriva's idea is that they wrapped all system administration tasks -- managing users, hardware, services, software -- into something similar to the Control Panel in Windows. Instead of using the already available, tested and stable GNOME programs, they reinvented the wheel. The most annoying part is that Mandriva's network manager applet really sucks. With GNOME's Network Manager, you can just click the icon on the panel and select the radio box for a wireless network that appears in the dropdown. The applet connects or it doesn't connect and it's really simple and straightforward. Mandriva's system has so much more complexity to it that of course it has bugs.

nm-applet

I can connect to my home network and the network at the office, but many other wireless networks, the applet just refuses to connect to. I click connect and it tells me it's making an effort to do so, but it doesn't, it just sits there forever and ever and doesn't go anywhere. The only way I found to connect is to go into some "Monitor Mode" (some advanced-looking packet monitoring thing that graphs out the network activity) and click some "Connect Wifi" button in there to get the wifi to even connect.

And, I couldn't get the GNOME Network Manager applet to install and work either. Mandriva's custom setup with the network means that the sysconfig scripts for the network devices are dynamically updated by Mandriva's own network program, so that, if I could get GNOME Network Manager to start, it wouldn't be able to find which devices to monitor because anytime I update the config scripts by hand, Mandriva overwrites them again.

Grrrr. I so can't wait for Fedora 10 to come out. >.<

Tags: 2 comments | Permalink
New Terminal Utilities Uploaded
October 6, 2008 by Noah
I've uploaded a couple of new terminal utilities that some people might find useful.

sayto is a wall-like program I wrote at work which acts like wall but only broadcasts the message to a single user (instead of to every user), and takes care not to broadcast to any terminals that are running VIM, or any other process besides plain old bash (or other shells).

kbackupd is a backup daemon script I wrote for my web server. Others might find it useful so I've provided it for download.

Check them out on the Terminal Utilities page.

Tags: 0 comments | Permalink
"Cosmos" Web Design
September 29, 2008 by Noah
If you thought the web design I switched to last month was just awful looking, I would agree with you. I must've thought it looked okay at the time but I quickly got kinda sick of it and thought a few times about reverting back to the "Starburst" design.

But, instead, I decided to make a completely new design, called "Cosmos". I'm quite pleased with it for now. The jump from designs that were getting gradually lighter and lighter back to something very dark might cause some complications on certain pages. I'll figure that part out later, though.

Tags: 0 comments | Permalink
Tk::StyleDialog
September 18, 2008 by Noah
Since there was enough interest in my two-year-old program, ErrorGen, I've created a Perl/Tk module that does basically what ErrorGen does.

Here's a screenshot:
Synopsis

It's only a module so far that can be included in other Perl/Tk applications. But it's one very large step closer to me creating a simplified tool to spawn error boxes which could be provoked from batch files or scripts. It will probably have a syntax similar to the GNOME program, Zenity.

CPAN takes a few hours to index module updates but the new module will be available at Tk::StyleDialog on CPAN.org.

UPDATE: I've thrown together a quick program called ZenMsg (a name derived from GNOME's Zenity, but since my program only does dialog boxes, it's called ZenMsg).

I've added it as a new tab to the ErrorGen page. Let me know if it can be improved. I had to use ActiveState PerlApp to compile it because PAR::Packer (which I usually prefer to use) was giving me trouble and I didn't have the time or motivation to setup a clean new compiling environment for it. PerlApp may be a bit too limiting.

Tags: 0 comments | Permalink
New Tutorial Pages
September 2, 2008 by Noah
I've created a new web design for my tutorial pages and migrated them to use it.

See the new tutorial pages.

Also, I've created a new tutorial on how to fight off the "dumb submitter" spam bots.

And finally, I made an icon for cuvou.com. It's the icon in the corner of the tutorial pages, and the favicon.ico has been updated to be that instead of the pink GNOME foot that it previously was.

Tags: 0 comments | Permalink
Software Tabs
August 11, 2008 by Noah
All there is to report is that a few bugs in the software pages (specifically, the ones that use the new tabbed system) have been fixed. On Windows + Internet Explorer, clicking a tab would unfocus the IE window (bringing whatever window is next on your Alt+Tab list to the front of your screen, but keeping IE as the active window, so you had to click off the IE window and back onto it to see the page again).

It turned out I was calling a blur() method on a variable that wasn't actually there, so on Windows IE it defaulted to the browser window. The intention was to remove focus on the hyperlink so that the dotted border wouldn't remain when clicking the tab.

Also, a small tweak in the style sheet means that the tab borders don't intersect through the top of the selected page.

Tags: 0 comments | Permalink