2010
Jesus Christ, Use a Password Manager Already
Another day, another
website security breach. Fortunately for me, I didn't have an account at Gawker, but even more fortunately, it wouldn't have mattered to me much if I did. I use a strong password for every website account I have, and every password is unique for each and every account. So not only do I have strong passwords, but if one is compromised the damage is minimized because that password is not used anywhere else. This is standard password "best practices", but millions of people don't adhere to it.
read more...
How to Get Started with Bitcoins
Bitcoins are a decentralized, peer-to-peer virtual currency. There are other digital currencies that offer an alternative to government fiat currencies, but the popular ones like e-gold tend to suffer eventual demise from gaining just as much momentum with money launderers and other nefarious characters as they do regular users. And they are all privately controlled, meaning they are subject to the control of a single entity, just like a government currency.
Being peer-to-peer and open-source, Bitcoins is protected from centralized control and centralized manipulation both at once. There is no single entity to shut down, there is no single entity to possibly manipulate the system, and the source code the system is built on is freely available for inspection. The currency is not backed by gold or any other physical resource in finite supply, but the supply of bitcoins themselves is limited – there will only be a maximum of 21 million bitcoins in existence, ever, by design. A limited supply means that this currency, like its gold-backed cousins, is protected from inflation (the effect of rising prices due to an increase in the currency supply).
read more...
Learning Flash: Tips and Tricks
posted Tuesday, November 2, 2010 in
gaming
Even though I'm an experienced programmer fluent in several languages, and even though AS3 is syntactically identical to Java/C++, there have been several things that have thrown me for a loop (or that I just stupidly overlooked) as I've been teaching myself flash game development over the last couple of months. This guide is to remind me what I've learned and hopefully to help others avoid some of the pitfalls I've encountered. Some of these things may seem obvious, even to people just getting started with flash programming. No doubt all of them will seem obvious to experienced flash developers. But they were epiphanies to me and now I can't imagine coding in ActionScript3 without them.
read more...
Personal Log, Lifedate 10999, Supplemental
"Ne te quaesiveris extra."
This latin phrase, meaning "do not seek outside yourself", epitomizes much of my personal philosophy.
Today is the 10,999th day of my life. I know that because, being the geek that I am, I had this idea a while back to incorporate what I call "lifedates" into my blog administration system.
read more...
Your Very Own Lightsaber

That's right, you can buy your very own lightsaber for a mere 300 bucks.
Okay, actually it's just a laser, but it's so powerful it makes a standard laser pointer look like a flashlight. You can't quite have a duel with it, but you can pop balloons, ignite matches or paper, and cause serious damage to yourself or someone else if you're not careful with it.
read more...
Loading a Scrabble Dictionary into Flash
posted Wednesday, October 27, 2010 in
gaming
You can't make very many word games without using a dictionary or wordlist. Even finding such a dictionary took a bit of searching, but eventually I found a
Scrabble dictionary text file. In it are the 80,000 or so words from the OSPD4 (Official Scrabble Player's Dictionary, version 4), one word per line. If you need a more inclusive dictionary you can find a similar version of SOWPODS (the international version) if you hunt around for it, but this one worked for me because it's pretty exhaustive and still includes tons of words that most people don't know. Embedding it into a flash game was a little trickier, though.
read more...
Old Google Ad Format Codes
Some time ago, Google changed their adsense system such that newly created ads are stored in their system and assigned an ad ID. The code they provide you to put on your site references that ad ID, and has none of the inline configuration settings of the old system. To make changes to your ad – such as changing the color, formatting or size of the ad – you have to login to your adsense account and make the changes there. Ostensibly, this is a benefit because you don't have to dive into your website code to change the way your ads look.
For most of us, though, one person is handling the design of all aspects of your online presence. In one-person businesses that one person (you) is handling absolutely everything, from product development to marketing to accounting. You have enough hats to switch out as you go through the day, and this artificial distinction created by the new adsense system is really a waste of time. It makes more sense to edit the configuration of your ads from within the code of your site (especially since it should all have a uniform look anyway). Never fear – you can still do google ads the old way.
read more...
Learn Programming Concepts with a Flash Game
Lightbot is a very unique simple flash-based puzzle game -- unique in that it's designed to help you understand some of the most fundamental programming concepts. I've never seen a game like this, and although it only addresses the most basic ideas programmers use while coding, it does an excellent and thorough job of it and turns out to be quite a fun little puzzle game.
Concepts covered include functional programming, conditionals, recursion and, of course, refactoring as you try to accomplish ever more complex goals in a limited number of instructions. Try it out now - Play Light Bot 2 and start learning how programmers think!
ASP Paypal Integration: How to Automate Virtual Product Sales
I sell a number of digital products like ebooks and databases through a website of mine, but I haven't looked at the code in quite a while and recently it broke completely, forcing the issue. I spent the day revising and refactoring the code to fix the issues, and here's what I did and how and why I did it. If you have any virtual products to sell or want to give it a try, here's how I implement Paypal integration to sell these products in a completely automated way, so it requires no human involvement. The visitor clicks "Buy Now", PayPal handles the transaction and sends back to my website the transaction info, and my website validates it, generates a download link for what they purchased, and shows it to them in their browser after Paypal redirects them back to my site (and emails it to them as well).
read more...
Some Abandoned WebApp Ideas
I don't know if it's good or bad, but my history as an entrepreneur includes a lot of what I thought were good ideas that never got off the ground. Some of these were projects that were released but never took off (whether from a lack of market or a lack of marketing), some were projects that never got finished, and some never really even got started. Almost all of them are web applications, though, as that is what I really enjoy and happen to be pretty good at. But my road to success consisted of a lot of throwing things against the wall until something stuck.
Herein is preserved a list of my abandoned projects in case I might decide to resurrect them later, or for others to use. If anyone else thinks any of these have potential, feel free to steal my idea (few of them are truly original ideas anyway) and run with it.
read more...
ASP TDD: VBScript Test-Driven Development
One of the most popular and most useful aspects of the agile development methodology
is Test-Driven Development (TDD), the idea that you write code that
tests planned functionality before you write the code that implements
that functionality. The iterative process here is to write a test for a
new feature (that fails initially because the feature doesn't exist),
then to implement it in the simplest way that makes the test pass, then
to refine the test (rinse and repeat).
This is a new approach to programming for me, but I gravitated to it
right away and it has proven immensely useful. The benefits include
simpler, more efficient implementation (only writing code necessary to
pass the specifications) as well as more reliable and more rapid
expansion (if new code breaks existing functionality, it's easily and
immediately visible). And while it does mean that the amount of code
produced is greater, the amount of time required to verify and bug-test
new code is much less AND the code tends to be produced in smaller,
more self-sufficient, and more easily understood segments.
However, I wasn't able to find a good framework for implementing
test-driven development in ASP/VBScript, which is how I develop many of
my web applications. So, I wrote one myself.
read more...
13 Useful Command-Line Utilities
Here's some handy little tools I use on my server when creating batch files, scripts, scheduled tasks, etc to keep everything running smoothly. A couple of them aren't actually command-line but they're all very small in size (less than 100kb each) so nice to keep around.
read more...
The Google Cheat Sheet
Try googling this:
-inurl:htm -inurl:html intitle:"index of" mp3 "john lennon"
Or if you're lazy
click here to see the search results.
Pretty cool, huh? Change the artist name or use a song title to have google find you mp3s. Of course, you shouldn't download anything you don't own. But it shows you google is even more powerful than you thought, right? I got this tip and more from this Google Cheat Sheet, written by a guy named Adelaider whose website no longer exists. Since you can't easily find this online anymore I thought I'd post it here for posterity.
read more...
Taxes Paid by Top 25 US Companies
Gizmo + Google Voice = Free Telephone Service

You can do this on your desktop or laptop, or if technically minded even on your PDA, blackberry or iphone using WiFi. The cost is zero if you can successfully get everything working, or a minimal cost if you take a shortcut or two. The result is that you get a free telephone number, free incoming calls, free outgoing calls anywhere in the US, free voicemail with voice recognition transcription, free SMS (text messaging), oh and did I mention this all was free?
And it is all thanks to Google and one of the little guys that Google just bought.
read more...