Skip to main content


Showing posts from 2008

A Real "Green" Computer

I hate the phrase "green computing". Why? Because the more stuff we have, the less environmentally friendly we actually are. In other words, if you can afford a computer, you ain't green. That would mean you sitting in front of the computer screen reading this. Yes, go ahead and squirm. However, that doesn't mean I shouldn't be aware of the world around me and therefore try to be responsible with my resources. And with those resources, I realize that if I can cut costs drastically, that would be a huge help to my fellow man. So, I have one question for you: How many Watts does your computer draw from the wall? Don't know? Neither do I. And I leave my computer on all day and night. There are important things my computer has to do every single day (besides filtering through thousands of spam messages) that requires it to be powered up and running. Of course, this usage comes at another cost - the room the computer sits in has to be within a tolerab

What to do when a computer arrives.

This post is also known as "Your computer could be a chemistry experiment waiting to happen". In my previous post on how to buy a computer , I briefly covered what to do when you receive a new computer but focused much more heavily on the topic of how to actually go about buying a computer. In this post, I will cover what to do before you use the computer for the first time to make sure what was built and sent to you is actually a quality product. You spent good money, let's make sure that no one cut corners where they shouldn't have and that all the parts are indeed correct. This first part requires you to be static free. First, pull the computer out of the box. Now go touch a doorknob while grounded. Now, read the computer manual for opening up the box and follow the directions. Usually thumbscrews or screwless entry is used these days making it easy to open it up. Yes, it is scary, but opening the box won't void the warranty or service contract. The computer

How to buy a computer

This blog entry isn't technically about software development, but every once in a while, we all need a shiny new computer. With all the latest overhyped buzz about the economy and gas prices (I've heard predictions that gas could easily be $10/gallon next summer - there is no "ceiling", but I've never deluded myself into thinking there was), if you are thinking about getting a new computer, it might be time to take that thought a tad more seriously. If gas prices skyrocket, then today's $3,000 PC could be $10,000 tomorrow. Maybe. Maybe not. Just a thought. At any rate, I'm not wanting to talk about the economy. What I want to talk about is the infamous question, "What computer do I need to buy?" I get asked this question frequently. There are a LOT of choices, so it is no wonder that people get confused and just want some guidance without being made to feel "dumb". Most people buy without thinking and then later regret the purchase.

Adobe sucks

Let's say you walk into a store and you go to purchase a $100+ item. This item comes with one free bonus item that gets shipped later that the item you are buying is supposed to be used with. During checkout, the clerk sneaks in and scans an identical item through and you swipe your card and pay and go home without realizing what happened (let's say something distracted you). Both items are in tightly sealed containers. You get home and you realize that you bought two items. What would you do? Well, you would immediately return to the store with your receipt and ask for a refund for one of the items. Let's say you take both items back just to prove that you haven't used either one. The receipt also contains the exact date and time of purchase (well within 24 hours). The clerk can see that both items are sealed, have never been used, that the product they are supposed to be used with hasn't been delivered yet, and that the product is being returned within 24

Get ready to spew your morning coffee...

...onto your computer monitor and keyboard. Literally. Following hot on the heels of the " Perl is a terrible language " post comes the reason why I had to re-learn Perl in the first place. I just barely released MyProBB 2.3 . It took nearly two months to get this release ready. 1.4 months of that 2 months consisted of writing a single plugin for the forum. What follows is the shamelessly copied portion of text from the MyProBB 2.3 announcement post : --------------- [This plugin is] perhaps the best little gem to hit the Internet since AJAX-driven websites, er, Google... The Official Instant Message plugin . Yup. That's right. I single-handedly hold the distinction of having the first web software package that sends Instant Messages. I hold the distinction of being the first to send IMs to five major IM networks from a web forum. I also hold the distinction of having the only web forum software package that sends real Instant Messages. I even hold the distinctions of

Perl is a terrible language

Every time I go to use Perl, I end up having to re-learn it entirely from the ground up. That is how bad the language is. Most languages I can come back and look at some code and say, "Oh, I remember what that does." Not Perl. Perl is the only language I've ever used that I come back to the code and say, "Huh? What in the world did I do there?" And then as I read yet another Perl tutorial (how many do we really need?) to re-learn Perl for the zillionth time (okay, more like 25 times), I say, "Good grief. This language is terrible." Plus Perl has these weirdly named modules and sticks everything, and I mean everything in the global namespace. Including variables you define inside a function. Perl is the only language I know of where, if you forget to use the word 'my' before using a variable for the first time, it royally messes up the entire script execution and takes hours to diagnose. Additionally, every last Perl module reeks to

Sins of improper website operation

People who run websites are generally clueless about securing their websites. What follows is a short list of "seven sins" (I know...a cliché) that are committed by those who operate a website that use a dynamic backend scripting language (PHP, Perl, etc.): 1) Installing third-party components without first reviewing them for how well-written they are, if they have had major security vulnerabilities and/or exploits in the past 12 months, how well defended against automated scripts they are, and how well each component defends itself from known and unknown exploits. If you don't know how to do this, then employ the services of a security expert. 2) Not upgrading components the same day an upgrade becomes publicly available. PHP, MySQL, third-party components, etc. All major releases typically have fixes for security vulnerabilities. And most releases likely already have exploits for those vulnerabilities floating around in the wild. Security firms track both the vulnerab

The day of the first mandated rolling blackout

Fossil fuels are important to programmers. We use computers which rely on electricity which rely on power plants which rely on transportation which rely on fossil fuels. When we run out of fossil fuels is the first day you won't be able to turn on your computer. Or much of anything else. I try to avoid doom-and-gloom in general but this is something that has been on my mind for a while. Basically, if we do nothing, all we will be able to say is, "Well, it was fun while it lasted." So, what should we do? Let's start with automobiles. The biggest consumer of fossil fuel/oil. I'm going to go for a myth vs fact approach here. Myth: We have many, many years left before we run out of fossil fuels. Fact: Nope. We've got maybe 30 years left. If even that. Some very conservative figures state 15 years before the first mandated rolling blackout. 30 years would be entertaining for sure - the magical year "2038" should ring some bells. You know - when all

Google CAPTCHA broken

CAPTCHAs are those annoying little images that we have to use now to stop spammers from creating free e-mail accounts on the Internet. GMail, for several years now, has been considered a "safe haven" free e-mail address site where only manual signups were possible. This was made possible via their own homegrown CAPTCHA technology. But now it has been broken: Article on The Register Google actually uses its own CAPTCHA technology across multiple sites. For instance, Blogger requires filling out a CAPTCHA when posting comments to blog entries or having an account, which, unfortunately, uses the Google CAPTCHA. What triggered this post is something I heard combined with a recent comment on an older blog posting . At the top of every blog on Blogger is a little "Flag This Blog" button. I suspect that if enough people click that, it causes Blogger to declare the blog spam. Or at least it factors in. It could also include sudden bursts in traffic and maybe ac

Solving pesky LNK4204 warnings...

So today I finally thought I had the entire build process worked out for the upgrade to VS 2008. Turns out I had one final little hurdle to overcome. After experiencing the mess of trying to integrate third-party libraries into my main base library, I decided to try creating a build hierarchy to significantly reduce build times and my base library project size. Let me clarify what a build hierarchy is: Basically, I have a base library that I integrate with every software application I write. I've actually got pre-made projects set up that allow me to quickly roll out a new piece of software without wasting 30 minutes each time I go to write a quick little program. Occasionally I have need for a third-party library. Instead of dragging those VC++ projects into each and every solution so that the base library didn't break, I merged the solutions into one project. Yeah, after the fact, it turned out to be not one of my brighter ideas (it generally worked fine though but rebuilds

Sigh - library problems

One the third party libraries I occasionally use is called zlib. It offers rudimentary compression capabilities. My upgrade to VS 2008 has been nothing but one headache after another. This latest headache was caused by the optional x86 MASM assembler module for zlib that drastically increases the performance of zlib. Hand-optimized assembler generally outperforms anything else but is tricky to get right in the first place. Apparently, the optional zlib assembler integration module requires the now ancient and dead MASM32 assembler (remnants of Visual Studio 6 that I appear to have "migrated" to a later release of VS). This time around, VS 2008 includes its own version of MASM, which I didn't want to overwrite. So, the zlib build issued these errors: inffas32.asm(594) : error A2070: invalid instruction operands inffas32.asm(596) : error A2070: invalid instruction operands inffas32.asm(610) : error A2070: invalid instruction operands inffas32.asm(667) : error A2070

Sigh - crashes.

Lots of crashes. I just "upgraded" to Visual Studio 2008 Professional a couple weeks ago. I've been working my way slowly through this incredibly painful upgrade cycle. I knew it was going to be painful in advance, so I have segmented the upgrade to span about three weeks of effort. Let me journey my experience thus far: 1) The first step in this adventure was to uninstall VS 2003. That took a while but actually wasn't very painful. 2) I then attempted to install VS 2008 Pro out of the shiny new box. I didn't want to fiddle with the whole upgrade process so I went ahead and got the full version. 3) Then the installer froze while trying to install. In particular, it froze on attempting to install the 3.0 .NET Framework. 4) This is where things got...complicated. I went out to Microsoft Update and had to do a ton of upgrades (including the annoying spyware install of Windows Disadvantage). After many hours I finally got the 3.0 .NET Framework installed

Replies to e-mails

I was sitting and thinking today, "Why is it so difficult to find the reply I sent to that person?" Most e-mail clients track who you have replied to and, almost always, that message is sitting in the "Sent Items" folder or something similar. GMail includes all replies to a message in the view but I don't really like that. If an e-mail client can track what e-mails have been replied much harder is it to also store a pointer at the message that was sent as the reply? Then you could right-click in the e-mail client, click a "View reply" menu item, and immediately jump to the reply message. If you replied more than once, a dialog box would pop up asking which reply to jump to. This feature could be implemented in probably 30 minutes. Yet no one has bothered to do so.

Time of day for conducting business

It is useless to waste people's time. That statement is something we all can agree with. Yet, I have one question: Why is every last business open from 8 to 5? There are several industries that we all agree have to be available and operational 24/7. Emergency centers such as hospitals, 911 responders, local police, and fire departments. And websites/web servers. Anything else running 24/7 is not essential. Those businesses that are not retail and are not open 24/7 are open 8 to 5, Monday through Friday. Take banks, for instance. Let's say you are depositing a check into your local bank - assume someone gave you a check. When do you do it? Saturday morning, of course. Why? Because banks are open only during "regular business hours" and closed Saturday afternoon and all day Sunday. The only time available is Saturday morning unless you can go into work later or leave earlier. Here's a schedule banks should consider: 12-2:00 p.m., 4:45-7:45 p.m., 2-3 a.m. M-F (6 h

Video game annoyances

So I was playing a video game called Team Fortress 2 yesterday (I don't play games often - except as a breather between releases) and it dawned on me that it took nearly five minutes to get to the main screen of the game, about another five minutes to load the level for the server I was joining, then another two minutes to find another server with the same level after getting kicked off for "filling a reserved slot". The major companies out there, particularly Valve, make moderately fun games...but they take forever to load. Back in the DOS days, if we had to wait 12 minutes for a game to load, we'd be hitting the reboot switch. Compared to today's games, those games loaded nearly instantaneously. Even if there was a "Loading..." screen, we knew it was only a few seconds delay before we got to go blast our way through stuff. Console game makers such as Nintendo about the same time weren't sitting around twiddling their thumbs on "Loading...&qu