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
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.
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.
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.
This is a picture I took of the room I was in.
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. :)
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:
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:
The main menu screen, changing the CC host back to using port 1812 (I used 1813 as the default port number for development purposes).
The CyanChat client in full operation.
Update: It works on Windows too (to much amazement as the command prompt completely sucks):
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).
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.
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. >.<
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.
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.
Here's a screenshot:
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.
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.
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.
0.0016s
.