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.

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
"Storm" Web Design
August 11, 2008 by Noah
Out of a fit of boredom, I created a new web design for Cuvou.com, codenamed "Storm" (because of the lightning and rain effects in the background images). Since this is now the third web design that Cuvou.com has seen, I'll eventually be putting up a place to archive all the previous web designs. It will probably go under the "Creativity" column in the navigation bar.

Edit: Actually, I have all the old designs online and just fixed them so they link back and forth to each other. Start at the very first design.

Tags: 0 comments | Permalink
ISP Name Servers
August 10, 2008 by Noah
I've just made my Internet much faster... by resetting my Linksys router to factory defaults.

For some quick history, I had Comcast cable internet when I lived in Michigan, and now I have AT&T DSL (only because the local cable companies don't have lines in this apartment complex).

So, I noticed a problem when my VirtualBox virtual machines were having Internet issues. The virtual machines were Windows 2000 and Vista Home Premium, and neither of them could surf the web because they weren't able to resolve domain names.

VirtualBox creates a virtual NAT for the guest operating systems that allows them to use the host's Internet connection. The NAT has a 10.x.x.x IP range and automatically assigns an IP address to the virtual machine. This all was working just fine, but no Internet still. The results of "ipconfig" in the guests showed that my DNS suffix was "hsd1.mi.comcast.net" -- my old DNS server in Michigan.

I knew that my Linksys router was caching this information but didn't think it really mattered. Linksys was giving my Linux PC this DNS suffix as well, and Linux was passing it on to my virtual machines. The router had no interface on it to clear the cache.

At any rate, I narrowed it down that the virtual machines could not resolve domain names -- they could connect directly to Internet IP addresses, though. I tried a couple ways of "fixing" their DNS server information to no avail, and decided to reset the router to its factory defaults (to clear its cache). After a reset, I rebooted into Windows to configure it.

Linksys routers, by default, give out IPs in the 192.168.1.x range. My DSL modem also gives out IPs in this range. The only way to connect to the modem through the router is to change the router's IP range, so I've been setting it to 10.10.1.x. After setting up the router and putting in AT&T's DNS servers (which are required, or else the modem won't allow the router to reach the internet), I rebooted to Linux and started a virtual machine to see what changed.

Well, Windows 2000 still couldn't resolve domain names. I got an idea about installing a DNS server on my Linux box and telling the virtual machine to use it as its DNS -- this didn't work, because VirtualBox gives out 10.x.x.x IP addresses, which the host OS also got from Linksys. So, Windows 2000 wasn't able to route upward to the host's IP because of this. So, I instead set its DNS servers to be that of AT&T's -- the same as my router's settings. Now, the Internet worked within the virtual machine. It worked really well, too. DNS resolving time was almost nonexistant.

Realizing that Windows 2000's direct use of AT&T's DNS servers was the cause, and realizing that with the factory reset on Linksys that it had lost Comcast's DNS cache information, I tried browsing the web from my PC too. It was much faster now.

I had noticed a while back that my DSL was only slow while resolving domain names, but that once it actually connected to the server, the pages downloaded fast. I didn't make the connection between that slowness and Linksys's caching of Comcast's DNS server though. But now everything is so much faster. :)

Tags: 0 comments | Permalink