Skip to main content

Posts

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 hav...

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 hi...

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 vulnerabil...

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 actual ...

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 w...

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 to...how 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 hour...

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......

How secure is secure?

People buy things online all the time. They trust the Internet security mechanisms that have been put in place and believe a little gold icon in the corner of the web browser equals security. What most people don't do is stop and think "gee, how does a little gold icon equate to security?" So this wonderous blog entry shall take you through the world of "modern" security, how it works, and then how easily it can be broken. I'll also share some interesting tidbits of information and form an interesting connection that no one else has made that is worth thinking about. Just so you know in advance, I still trust the technology and make purchases online, but it is something that has nagged me for some time now. People have been making stuff "secure" for a really long time. Other people have been trying to break security for just about as long - mostly so they could steal whatever was being made secure. Only in recent years has a third group formed. Thi...

Education and business

I find it entertaining that people worldwide think they have the right to discredit Americans and make fun of them. If you are not American, you do NOT have this right. However, since I'm an American, I'm allowed to make fun of my own people and nation as a whole. It is pretty well known that education in America, as a whole, stinks. This video is well worth watching because I believe it paints a pretty accurate picture of the state of the nation: http://www.youtube.com/watch?v=pfRUMmTs0ZA The video is from a show called 20/20 and it is over a year old but please return when you finish watching. I was brought up in a family that cared deeply about proper education. I had learned to speed read by the time I entered school. I also remember at least four different forms of corporal punishment used on my behind/legs as a child. Boy grandma sure loved finding that freshly-cut switch. But it made me into a fine, upstandin', law-abidin' citizen who cares about the world aroun...

Standards documentation is annoying...

Don't get me wrong, having Standards is a great idea. Being able to clearly communicate how something works is essential to daily life. If we, for instance, did not have the HTTP RFC Standards, you probably wouldn't be able to read this blog entry because every single web server would deploy their own idea of what a website is and there would be no single web browser to handle every single web server. (Or if there was, it would be a couple hundred gigabytes). No. What irks me is the fact that very few Standards authors actually sit down and write binary data examples. That is, "Here is some sample data" and "here is how to read the sample data" and "here is some basic source code that reads and processes the data". While Standards should be about specification, of which they do a great job already, they should also be able to present an implementation or at least an example that could actually happen. This is where Standards bodies and a community...

Setting up a wireless network

Edit (July 12, 2010): Ruh-roh! This blog post was declared Dead on Arrival. Read the story on how my "secure" WPA-PSK wireless network got hacked before setting up your wireless network. My personal recommendation is to NOT use a wireless access point unless you do some real hard thinking and research. Occasionally I will receive a request for help on wireless networking. Usually the person was scared by someone when they were told, "Wireless networking is insecure. Your personal computer data is at risk." The first question they ask me is, "Is my setup secure?" Well, I'm not a mind reader and usually not in front of the computer, but usually those same users are surprised even to know that they can log into the router. Okay, so the first thing I have to do is explain what a router is. In layman's terms: A router is something that takes data from computers on a LAN and sends it out on to the big bad Internet. When a response comes back, it is ...

Cleaning a LCD display...

It is interesting to note that many people don't really know how to clean things. This is especially true when it comes to electronic components. In particular, cleaning monitors on computer systems is a widely varied practice and no one seems to have a definitive answer on what the best method is. We pay a lot of money for our LCD flat-panel displays and then spray harsh chemicals on them that causes the display to go murky...where is the logic in that? Some people might say that the safest chemical is water. However, is fluoride, found in most city water, really good for the plastic film on a LCD display? Probably not. How about all those minerals and "floaties"? Also, probably not good. Fluoride is for strengthening tooth enamel and the minerals probably contain corrosives. And water doesn't mix well with electricity and the delicate circuitry in the monitor. Other people mention really harsh chemicals and household items as the solution to cleaning LCD di...