Archive for the ‘Personal’ Category

My Diablo account was hacked, for the win!

Friday, April 5th, 2013

On March 10th I received an email from Blizzard.

Hello Schell,

Blizzard Entertainment recently received a request to change the e-mail address used to log in to the Battle.net account with the username e***@gmail.com. The e-mail address d***@163.com has been specified as the new username for this Battle.net account. An email has been sent to this new address containing a verification link to complete the change.

“Ahhhhh crap!” I thought. “Someone hacked my account and now I’ll have to spend a bunch of time trying to claw my way back in.”

Stay a while and listen...

Stay a while and listen…

Being generally swamped at work and a very casual gamer I let it all slide for a month. I did nothing until my roomies started talking about playing again.
“Oh – I should go and get my account back so we can all party,” I finally admitted.
“Yeah! Do that and I’ll craft a bunch of stuff for your monk!”
My friend Paul plays Diablo a lot more than I do. He’s got a level 60 that looks like gold Skeletor from Masters of the Universe.

I spent about ten minutes talking to a support guy in a chat room.
“Yup – looks like your account was compromised. I’ll go ahead and reset the email and give you a password reset link.”
“Sweet, thanks.”
“Okay – looks like you’re all good to go. Just login and create a support ticket to revert anything that has been changed.”

I thought I would log in and find a stripped, broke ass, bare naked level 32 Monk and all my hardcore characters dead. I was surprised when instead I found a stripped, broke ass, bare naked level 60 Monk and all my hardcore characters untouched! The perp, who was probably a gold farmer, had played through the game for me and leveled my toon all the way up to 60. That’s a win in my book.

So to huang3#1360 – thanks.

my new 60

huang’s favor

Moonening Mentions

Friday, December 14th, 2012

Here I’m going to collect mentionings of The Moonening from around the net as a sort of pre-post-mortem. If that makes any sense ;P

Bloggy Badger - “astronaut-splitting, blob-merging puzzles. too short. a bit buggy.”
HN comments on that post

Entries Viewer - no quote…

The github game off 2012 winners! - no mention, though I’d like to keep this for posterity.

Re: Please Don’t Learn to Program

Tuesday, May 15th, 2012

This morning Hacker News looked like this:
HN screeny

Jeff Atwood apparently thinks programming isn’t worth learning about, for most people. I think he’s probably right, in the sense that “robots aren’t worth learning about, for most people”. I can think of more examples. “Physics is not worth learning about, for most people”. But that’s rather obvious isn’t it? Why blog about it? Why blog about blogging about it? ;)

Atwood is bashing CodeYear, an initiative to get everyone to learn a little bit about programming. Here’s a retort written by CodeYear’s designer, Sacha Greif. Here’s another retort on Github.

I don’t understand why any of this stuff is worth arguing about. Why does Atwood care what people do with their free time? It seems there are a lot of assumptions being made about the motivations of these aspiring programmers. I see nothing wrong with CodeYear. I see nothing wrong with everyone knowing something about programming (hell, it’ll give me more to talk about at parties), just as I see nothing wrong with everyone knowing a little something about singing. Singing isn’t an essential skill for everybody’s daily life, but neither is math, really, though they both make life more interesting and are worth knowing about. These topics have the potential to enrich our lives, so why not learn about them?

Bang Pre-Alpha

Saturday, May 12th, 2012

I have a new ongoing project, it’s called Bang. It’s a canvas-tag based display list written in Javascript. I’m going to be using it in place of AS3/Flash in my web authoring tool chain. Bang on Github. There are three main elements of Bang that make it special:

Modules

When writing a project with Bang you keep your code separated in modules. Each module exposes a Javascript Object, like a constructor function. The modules object is passed into each module definition, exposing your module to other modules that depend on it. Keeping your code in modules like this means you need only expose one global variable, the list of modules. Any modules loaded this way are essentially sandboxed in that modules object.
You define a module in a similar manner to RequireJS and the AMD:

mod({
name : 'MyObject',
dependencies : [ 'bang::Geometry/Rectangle.js', 'myLib::SomeFile.js' ],
init : function initMyObject(modules) {
function MyObject() {
this.x = 0;
this.y = 0;
}
MyObject.prototype = {};
MyObject.prototype.constructor = MyObject;
return MyObject;
}
});

The module system is another project of mine called Mod. I’ve written about it before. It’s very small and simple and it gets the job done (the job of code separation and later compilation).
Bang adds support for Google’s Closure Compiler to Mod, so once your project is ready to ship you can compile (in a sense), compress, obfuscate and pack your code down into a deployable script or a neato mosquito PNG. I like the PNG method because it’s slightly more obfuscated and adds further sandboxing, but that’s a topic for a later post.

It’s like Flash, but not too much like Flash…

Bang is enough like Flash/AS3 to be familiar, but sacrifices some AS3 similarities in exchange for simplicity and consistency. The complexity in Bang is very small. There aren’t any tricks to make it more Flash-like than it has to be and it won’t protect you from learning canvas operations. In fact, you’ll have to learn about the CanvasRenderingContext2D to do any real drawing. I’m not aliasing those calls and hiding it in a mock Graphics object for you! ;) And you should be learning these new technologies without crutches. Think of Bang not as a set of crutches, but as a set of wings, or at least a hammer and chisel. No one likes masonry-by-hand.

It is fast.

The original pre-alpha version of Bang takes Douglas Crockford‘s extremism literally. There are no uses of the keywords ‘this’ or ‘new’. It accomplishes (multiple) inheritance through special constructor functions that add functions and closures to objects (or creates new ones). This, although a departure from AS3 at first, actually gives projects written in Bang an AS3++ feel. Multiple inheritance is awesome. Private variables are awesome. With prototypal inheritance you lose private variables so by using special constructor functions we can create private variables through closures. These features are awesome, but as Martin Hunt of GameClosure pointed out to me, it’s not fast. Processing time will go up linearly with the number of properties and methods created in the class. This means that if you’re creating a lot of complex game objects every frame tick, the project will likely start chugging. This is not fast. Apps have to be fast! For this reason I started a new branch of Bang that uses traditional prototypal inheritance. This branch will include a dirty rectangles implementation for really lazy redrawing, and I have plans for using WebGL for rendering down the line. Stay tuned!

A tiny demo

Take a look at the source for this div. This is the compiled output of the main branch of Bang. It’s clean, right?!




No longer freelancing

Friday, October 8th, 2010

I’ve signed on with my long time client Synapse Group Inc. This means more time coding for work (and maybe less time coding for fun). I have a couple speed projects in the works though, like continuing work on RTAudio bindings for Node.js. I’ve also switched names at github, which is inconvenient – but hopefully beneficial in the long run.

The blog has moved.

Tuesday, April 13th, 2010

Yes, that’s right – I moved the blog again. Now we’re hosted at Linode, which is cheaper and easier than Media Temple. The main url is now http://efnx.com instead of http://blog.efnx.com (though both should still work).

Game Progress 1

Saturday, July 11th, 2009

I’ve been working on another game lately, it’s called Machinista – it’s a game where you control motors in a 2D physics simulation. The entire thing is built around Box2D, which is a great physics system. Last night I worked on using Brownian Bridge fractals for explosions – check it out! Use keys W, A, S, D and shift+click to control the tank and make explosions, respectively.

The Universal Law of Deadlines

Monday, June 29th, 2009

A friend and I were talking about deadlines, as we’re often thrown into a rushed project together, and I came up with this equation which seems to accurately model a coming deadline in the information industry.

Scivally-Nagler’s Law

workload + stress = 1/(deadline - now);

Hannspree HF237 + Macbook Pro 2.16Ghz

Wednesday, June 17th, 2009

I bought a new monitor today – a Hannspree 23″. I only paid about $180 for it, so it seemed like a sweet deal. TOTALLY WRONG. This thing hurts my eyes it’s so sh*tty. Some pixels are sharp, others are blurry. It’s like the monitor itself is stretching and interpolating the pixel points from my video card. Text is UNREADABLE on most resolutions and no amount of settings fidgetry seems to fix it. The pixels just don’t line up. This thing is auto-dithering my pixel art. I’m taking it back tomorrow and getting my money back. I’d rather have a used, scuffed up LCD from two years ago. Tried and true.

Altered States

Saturday, May 2nd, 2009

I just saw this movie called Altered States, it’s pretty interesting – a little cheesy at times, but check out these screen shots:










Man, they don’t make movies like they used to.


Follow me on GitHub
Follow me on Google+
Follow me on Twitter