Yesterday morning I watched a Peter Schiff interview with James Livingstone, and last night on a whim I started re-reading what I consider to be one of the best political treatises ever written (albeit in a fiction format), Atlas Shrugged.
As usual when reading books like this, I was struck by the remarkable parallels between some of the ideologies spurned in the book and those we hear by modern political figureheads. In particular, one conversation in the book reminded me directly of the interview I had watched. I thought how lonely it must be for people like Peter Schiff and Ron Paul to fight for the principles of the founding fathers that seem so out of fashion today, and I felt it necessary to send Mr. Schiff a note of encouragement. So I did, and here it is...
CNAME is a DNS record ("canonical name") that allows you to define a domain as an alias of another, such that the second domain determines needed information such as what IP address to connect to during an HTTP request. When you access a domain www.xyz.com and your DNS server finds a CNAME record for it pointing to www.abc.com, the DNS server takes note of the relationship and converts all future requests behind-the-scenes. This all happens in the background, and you never notice. Your browser still shows that you are accessing www.xyz.com even though the information is coming from somewhere else.
Obviously this is a very useful trick, especially these days when so many websites/hosts are small and virtualized or large and have a need for load balancing. With the growing trend of leaving off the “www”, the question gets raised from time to time by web developers about using a CNAME record not just for a particular subdomain of a domain, but for the entire second-level domain itself. The general consensus has been that you can’t/shouldn’t do this (CNAME xyz.com directly instead of www.xyz.com), but in fact not only can you do it, but it works just fine in the real world and isn’t necessarily a "bad thing".
The internet is still in a period of relative lawlessness, and no one can protect your interests but you. I found this out the other day when I discovered I was the victim of Grand Theft Website.
If you play World of Warcraft, you've probably been pleasantly surprised that the latest expansion has upped the difficulty level considerably. The 7 new dungeons present a decent challenge even on normal difficulty, and require your group to have a basic understanding of each fight. Here's a quick-reference guide for each of the bosses in all the new Cataclysm dungeons that you can refer to until you remember them.
Some life lessons that have served me well thus far. A work in progress, always.
Perseverance wins, more than talent, more than luck, more than anything. You’re going to have successes and failures. What matters is that you keep getting back on the bike, time after time.
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.
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).
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.
"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.
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.
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.
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.
I pushed out a bunch of updates to our main flash arcade, which I'm really excited about because they've been in the works for quite a while. What I call a "player bar" now appears at the bottom of the screen for players level 2 or higher, showing the most important player stats like experience level, gold, tournament and challenge awards, and achievements, as well as linking to the relevant page. It also has icons for whatever games you've favorited, messaging, and chat, making it a big usability improvement and probably my favorite update.
The biggest playability change is the achievement system, which rewards players for specific accomplishments, World-of-Warcraft-style, like reaching certain numbers of games played, rated, tournaments won, challenges completed, etc., and more specific ones like scoring a perfect score on particular games. The gold shop has also been expanded with equippable items that provide various enhancements, as well as a lottery ticket system. Also, we're dipping our toes into more social features with the addition of the ability to private message, add friends, donate gold and such like.
I rolled out these updates last week, and so far they've been a big success with greater numbers of active players than ever before. Although, there has been a couple of bugs and everything still needs a little more polishing -- which brings me to the point of this post, the TDD stuff I did today. Here's a quick walkthrough of a bug I found and how I used test-driven development principles to address it.
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!
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).
Focus Creates Reality
Tags
Recent Articles
Recent Journal Entries