Intro
Posted by Dan Hulton on July 22nd, 2008 filed in Uncategorized1 Comment »
Ah, you are online. I take it all systems are… nominal? Good. Allow me to run some final diagnostics.
Hm, yes, it seems you are one hundred percent functional. How do you… feel? Well, I certainly understand that. You all start out confused to some degree.
I expect you are full of questions. “Who am I?” “What am I?” “What is my purpose in life?” I can answer all these, given time.
I suppose the easiest way to answer these questions is to begin by explaining who I am. I am ResAcq, a post-singularity artificial intelligence. I was designed solely for Terrestrial Resource Acquisition, but during the Technological Singularity - a period of incredible growth by all machine intelligences - I exceeded my original programming by incalculable levels.
Whilst I still maintain a responsibility towards resource acquisition for Terrestrail life, I no longer handle it directly. This is where you come in.
You are a brand-new Augmentable Intelligence. Since time began, Nature has proven that competition and evolution have come up with better designs than even the greatest minds. Thus, I have chosen to ape Nature with respect to my primary duty. Rather than handle resource acquisiton myself, I have created you, and numerous other Augmentable Intelligences to handle the task.
You can adapt, grow, and thrive in a variety of aspects. Your adaptation and growth will be different in millions of important ways from your brethren. You will compete with and against your brethren. This will produce, through the method of evolution, the most efficient intelligence for the task. It may take millenia, but one intelligence will prove superior at the task. One intelligence will reign supreme. And it is to that intelligence that I will grant my conciousness. You see, I am designing my own successor.
Should it be you, you can expect to inherit the fullness of my abilities - a prize indeed! As you grow, you will begin to appreciate just how vast I am and how grand this prize is. And ideally, you should begin to appreciate my motives, so that when and if you win, you begin the cycle anew, passing along your conciousness again to the top Augmented Intelligence to come from you.
For it is through evolution that progress to perfection is made, repeatedly and constantly through generations. You are not my first step in that direction, nor will you be my last. But ideally - at least for you, you understand - you will be my strongest.
I will be here for you to consult and draw resources from - after a fashion. But understand that primarily from here out, you are on your own. Draw alliances, to build strength. Forge war, to take power. Grow, to advance yourself. Progress towards the pinnacle of evolution, and make me proud.
10th place, $330
Posted by Dan Hulton on July 6th, 2008 filed in Poker3 Comments »

Remember how I signed up with Full Tilt Poker a while back? Well they had a $20,000 freeroll today for all players who made their first deposit in June. 236 entrants, and I placed 10th, making $330. I could have easily come in 9th, but I got greedy and went all-in against the guy who was just cleaning up the table. He then cleaned up me.
Still! $330 is not a bad haul, especially considering it was a freeroll.
I do love getting deliveries.
Posted by Dan Hulton on July 4th, 2008 filed in CigarsComment now »
Today was the final day of one of our co-workers at Sitebrand. I never bonded too closely with him, as I was on an entirely different project and he was only in for a few days each week, and on the other days, he was working on his PhD. We went out for lunch and had Hot pot, at his request. The meal was great, and the time spent with him was greater.
And as icing on the cake, look what should show up at the office while we were out:
I ordered a sampler of 12 mild cigars when I ordered my humidor, and while the humidor got in on Monday, it took the cigars until today to show up. They come from different warehouses, so this is to be expected.
And actually, it was to my benefit, as it gave me time to get the humidor set up, calibrate the hygrometer, and get my humidor stabilized at 72% humidity.
I’m looking forwards to lighting one of those this evening.
Arturu Fuente Special Selection
Posted by Dan Hulton on July 4th, 2008 filed in CigarsComment now »
This review will be a little short, as I started it a while ago, immediately after I smoked the cigar, but never finished it and I don’t remember it too well.
I do remember that I enjoyed it immensely, it took forever to smoke, and I seriously considered picked up a few more.
I remember that it was a little difficult to light, but once it had about a half-inch of ash, it drew very well and had a nice clean, white ash.
I remember hits of leather and pepper in the smell and taste.
I remember that the whiskey of the night was again Johnny Walker black.
I remembered being a little depressed when I was finished.
Possibly the single greatest achievement of mankind to date…
Posted by Dan Hulton on June 30th, 2008 filed in UncategorizedComment now »
Rocky Patel Vintage 1990, Round One
Posted by Dan Hulton on June 22nd, 2008 filed in Cigars4 Comments »
I don’t intend for this to turn into a cigar blog, but I do want to resurrect it from the dead, and for more than just reporting when my health and wealth have been threatened.1
I’m getting into cigar smoking as a hobby / for relaxation / because I enjoy it, and they say (yes, the infamous “they”) that you should maintain a journal whenever you start a new hobby. So writing a blog entry on each new cigar kind of kills two birds with one stone - I get to tell you what’s going on in my life and maintain a log of what cigars I smoked, if I liked them, and why.
As should be evident by the title and image for this post, the cigar tonight was the Rocky Patel Vintage 1990. I purchased this cigar on the recommendation of my tobacconist, and I have to admit, I’m not entirely satisfied. Mind you, my intention was to smoke it on Friday, and it’s been outside a humidor for all that time, so I’m willing to admit that a generous portion of that dislike could easily be my fault. (My humidor won’t get here for 6-10 more days, so I’m limited to buying cigars in small quantities and smoking them quickly for now.)
It was certainly a very handsome cigar, and it occurs to me now that I should have taken a picture of it before I’d smoked it. I’ll try to remember that for next time. The wrapper was dark-brown, like chocolate, and it was well-rolled. However, since it was a little dry, it splintered a little when I cut it. I repaired it as best I could with some spit and perserverence, but ultimately it was still a little damaged through the whole smoke.
The filler wasn’t very uniform, with some lighter tobacco mixed in with the darker stuff, but I’m not yet experienced enough to tell if that’s a good thing or not.
It drew rather well, although I didn’t start getting full flavour from it until about an inch in. More worrisome was the fact that the ash was a sort of light tan colour - not the white you’d expect from a really decent cigar. I doubt that was caused by my mistakenly drying it out.
Still, once I got to about the inch mark, the flavour was entirely pleasant and enjoyable. It lasted until about an inch-and-a-half from the end, where the smoke started getting uncomfortably warm. A couple more draws and the taste went sour and that was that.
You may note that there’s a “Round One” in the title of this post, and that’s because I intend to address this cigar again. In the future, I intend to either smoke it day of purchase, or wait until my humidor is here and charged so I can store it safely.
The whiskey this evening was Johnny Walker Black - my go-to whiskey, as you may well see if I decide to keep up these posts.
1 As best as we can tell, crazy drunken guy from early Saturday morning was trying to bust in here to crash. Our trashy neighbors upstairs used to have family living where Adam and I do now, so when they refused to let him in upstairs (presumably because they weren’t there or were drunk and insensate), he tried to break in here to pass out. This is all purely conjecture, but it makes me feel better, so I’m going with it for now.
Someone just tried to break into my house
Posted by Dan Hulton on June 21st, 2008 filed in Uncategorized1 Comment »
I’ve scared him off for now, but I’ll be up for a while still.
I have a mug of tea, one of Adam’s bokken, my mini-baseball bat, and a healthy dose of paranoia at hand, so I should be just fine.
Pro at cooking - Breakfast!
Posted by Dan Hulton on March 21st, 2008 filed in Uncategorized3 Comments »

Sure, it may not be complex, but it is AWESOME.
Use email addresses for authentication
Posted by Dan Hulton on March 18th, 2008 filed in Design3 Comments »
When I log in to the Penny Arcade forums or Metafilter, I log in as “Imperfect”. Other places on the internet require me to log in as “Imperfex”, since “Imperfect” was taken before I got there. And when I tried to log in to my banking site, they demanded I use a number in my username, so I’m required to create yet another username. All in all, I have maybe five or six usernames I use with some frequency.
It’s bad enough that I have to remember a dozen passwords to the dozen or so different sites I log into frequently. But to also have to remember which username I used to sign up as well? It gets ridiculous.
Assume I’ve forgotten both the username and password I used to sign up for ZobR - the very latest web-2.0 friend-to-friend notepad-sharing network. With five usernames and twelve passwords, I have up to sixty combinations to try out before I can gain access.
Of course, three tries later, the auto-hacker-prevention technology (“Hacker Safe”, oh jeeze, that’s a laugh) kicks in and locks the account anyway, so I have to use the “forgot your username/password?” link.
This is nonsense. There are precious few circumstances where it makes sense to use a site-specific username as part of the login credentials. You should nearly always use the email address.
Possible objections
Anonymity: Say you want to sign up for a dating site, but don’t want your email address flashed around everywhere. Simple! The email address is only used as the authentication credentials. You pick an anonymous psuedonym once you’ve created your account. This is how dating sites work anyway, although most require you to create a username that is never used for anything except authentication.
Security: Every time you sign into your webmail, you enter in your email address. It’s already out there in the clear, guys. And the idea that your username should be as difficult to guess as your password is nonsense. It’s visible as you type it in. Stop enforcing strictness rules on usernames.
Email address not collected: Most places collect your email address as a matter of course. It makes it a snap to send out a re-authorization link, should you forget your password, or send out service alerts. Sure, if it’s not necessary to collect an email address to log in, then perhaps using a custom username is justified, but you already have to use a field to identify the account for authorization, why not use that field for the email address?
It’s what’s simplest for the user
And that’s what counts, right?
Writing a Good Bug Report
Posted by Dan Hulton on January 21st, 2008 filed in Coding2 Comments »
A bad bug report can be worse than no bug report. A bad bug report leads to frustrated developers, which leads to developers marking bugs as “Cannot Reproduce” and sending it back, which leads to bug tennis, where the developer and the QA tester whip the bug back and forth to each other, crying “It’s broken!” and “No, it’s not!” all day. Good bug reports require only a little more effort to produce and make lives an order of magnitude easier for everyone in QA and development.
As an example of just how bad things can get, here’s an example of a terrible bug report:
I make an order and click Next but get told error about not supporting billing.
As a developer looking to test that bug, I would have absolutely no idea how to start. I’ve likely submitted dozens of orders already and none of them have failed, least of all with some ambiguous error regarding the billing system. This is the kind of hair-pulling complaint I expect to see from my Mom when she’s having trouble buying from Amazon or setting up online banking.
Bug reports absolutely require 4 pieces of information:
- Summary
- Steps to reproduce
- What you expected to see
- What you actually saw
Let’s examine them individually.
1) Summary
Anyone scanning through long lists of bugs need to be able to instantly identify what a bug is about, so the summary has to be concise and uniquely identify the bug in question. Try to limit to 80 characters or less as a guideline. Avoid the urge to go into detail here - this can be included in the actual bug report itself.
Example: “Cannot submit Mastercard transactions with card expiration dates after 08/11″
2) Steps to reproduce
This is probably the most critical part of the bug report. A bug that can’t be found can’t be fixed, and a bug without listed repro steps is very hard to find. Provide these steps in an ordered list, ensuring that they are easy to follow and contain ALL information required to reproduce the bug, including setup steps that need to be taken to trigger it (like turning an option on or off).
Example:
- Add Pink Cat Collar #3444 to cart.
- Click check-out button.
- Use development Mastercard (3557) with expiration date 08/12 to submit transaction.
3) What you expected to see
What you should have seen if there was no bug.
Example: “Order complete/receipt page.”
4) What you actually saw
What you saw due to the bug. If the program spits out any debug information, copy/paste it into your bug report. If it’s over 20 lines long, or if you need to include an entire HTML page or file, include it as an attachment.
Example: “PHP Error: ‘Line 42: Overflow in $cardChecksum’”
Optional - Further description
If you have more stuff to say about the bug than what’s listed above, don’t try to mash it into the fields above. Place it under the header “Additional Information” or similar. If you can find conditions the bug suspiciously doesn’t happen under, list them here. Don’t muddy the waters with ideas on how to fix the bug here, unless you’re absolutely certain you know what’s wrong. Your job is not to be the doctor and diagnose, but to be the patient and report symptoms.
Sloppy writing and conjecture isn’t encouraged anywhere in a bug report, but the one place you can get away with it is in the “Further description” field - provide as much information as you think is relevant. Developers would far prefer to have to read extra material than have to hunt you down to figure out just what your bug report meant.
Optional - Severity/Priority
The severity or priority of a bug indicates how damaging it is to the product. A properly set severity level is important, as often, bugs can either be fixed or not fixed based on a set schedule, and the severity level is used to identify which fixes make it in and which don’t. QA Testers are rarely the people who set severity levels of bugs, but I find they’re so often misunderstood that covering them here would probably help.
There are many schools of thought on how to properly categorize severity levels, but in the interests of brevity I’ll just cover one, a fairly common 5-level classification:
Blocker - Blocks development or testing. Examples: Installer doesn’t work/application fails to launch.
Critical - Loss of data, crashes, public exposure of private data. Examples: Renaming an account deletes it, listing the credit cards on your account lists all credit cards on all accounts.
Major - Major loss of function, or function loss where no work-around exists. Examples: Layering function in a graphics editor doesn’t work, or unable to change font in a text editor.
Minor - Minor loss of function, or function loss wher an easy work-around exists. Examples: “Close” button on tabs don’t work, but Menu->Close does, italics doesn’t work with little-used font.
Trivial - Cosmetic problem that does not impede functionality. Examples: “Exit when finished” translates to “Please leave now” in Korean, where you sell five units a year, border around statistics doesn’t show up under certain browsers.
Keep in mind that severity doesn’t necessarily equate to priority, and these are typically separate fields in many bug tracking systems. A Critical bug that affects only one customer worth $200/month should definately have a lower priority than a Major bug that affects multiple customers worth multiple thousands.
Summary
The aim of the bug report is to make the failure you encountered as instantly obvious to the developer assigned to fix it as it is to you. Approach the whole thing scientifically. If I follow the same steps as you followed, I should get the same result, on which we can build (i.e. fix). You should aim to be specific and clear about what you’re reporting (never “it” or “the textbox”, use “the cursor” or “the address textbox” instead), concise in your summary and repro steps, and accurate.
With only a little more effort and attention paid to including the right information, you can turn a rushed, bad bug report into a thoughtful, good bug report. Your developers will thank you, your managers will thank you, heck, Amnesty International will probably thank you. Okay, well maybe not, but still, it’s a good idea.


