Sunday, October 13, 2013

Back To Azeroth

World of Warcraft.

Blizzard's great success story.
I've been away for awhile, and I want to get back to the game.

My history with World of Warcraft started back with StarCraft.
Many of us played StarCraft on the office LAN back in the late 90's.  It would be hard to exaggerate the effect that game had. Some of those coworkers have kids who play in StarCraft 2 tournaments today.

Then in 2000, Diablo II arrived and my evenings were lost.
We would sit on the phone for hours while playing the multi-player version of the game. My couch developed a permanent depression where I camped with my mouse on the arm of the couch and the laptop perched on a box.
When I heard that Blizzard was developing a persistent-world game, I was thrilled and terrified. If they could translate that great Diablo gameplay into an MMO, it would change everything. And if I had even more reasons to play, I may never sleep again.

All my Diablo-playing friends jumped on the World of Warcraft beta release. As a software developer, I take beta testing pretty seriously, so I stayed away. But on launch day,  I volunteered to be the office purchaser. I showed up a suburban Best Buy when the doors opened, walked past the Half Life 2 displays and to the temporary World of Warcraft counter and bought four of everything.  Needless to say, the office closed down early that afternoon.

That was almost nine years ago.
In the meantime, I've created Addons for the game,  run a small guild, and acted as CTO for some of the largest WoW-related sites on the Internet.
But in the last couple years, my time in Azeroth has mainly been limited to updating and testing my Addons, and enough questing to keep my primary characters at max level. I haven't been on a raid in three years.

But tales of thrilling heroics and camaraderie on The Instance podcast make me want to play again!

How can I get back into the game?

I would like to raid and participate in the higher-level aspects of the game, but the skills have changed so much, the talent system is almost gone, and everything seems to require some sort of reputation points.

It just all seems so overwhelming.

Let's break it down into a concrete course of action:

Reach Out for Help

The purpose of this series is to hopefully learn from others who have successfully returned to World of Warcraft. Even if I fail to reach those people, at least I will leave some information for the next person.
I may get help from the guild, but I don't even know if my toons are still in a guild.

Pick a Toon

While my "main" has always been my rogue, I should probably go with my Holy Priest for entering back into the game. Wait times for pick-up-groups should be much shorter, and I can learn the dungeons.
I also have a warrior tank at max level, but I just don't have the skills to tank anymore. So much has changed since previous patches. I don't even know how to train to be a better tank.

Update the Game

I've already updated the game client when testing my Addons, but I'll want to review what Addons are being required by raid teams, and what class-specific Addons are recommended.
As an Addon developer, I've always preferred WoWUI over Curse. But has that changed? Do developers still keep their version control at WoWUI?

Review Abilities, Talents, Glyphs, and Rotations

This is what is keeping me from the game right now.
Abilities are automatic, but I want to read up on them and see just how each one actually works. I know I was misusing an Ability on my rogue for a month before I realized it had significantly changed in Mists of Pandaria.
Talents seem to be somewhat unimportant nowadays. Just to fine-tune with your playstyle. Am I wrong there? Let me know!
Glyphs! I don't even know where to start. I need a web site with a comprehensive list of available glyphs and their relative merits.
Spell rotation usually isn't a serious issue until you're trying to optimize things in a raid or arena. So I'm not worried about that right now.

Log In

This can be a problem if you haven't played in awhile.
During one of my Addon update cycles, I forgot my password, and I my smart phone broke.
The phone was replaced, but I didn't have the code for the Authenticator, so I had no way to log in.
Eventually, I worked with Blizzard customer support. I had to take the dusty original Collector's Edition I purchased on that fateful November day back in 2004 from the shelf and read them the CD key.

Gear Up

I've never been a hunter of gear. I play the game for the fun quests and adventures with good people.
Gear Level, iLevel, dungeon requirements, tier sets...
Do we still have tier sets?
Expertise? What's that about?
Don't even get me started on gems and enchantments...
How is noob-again player supposed to make informed decisions?

Adventure Awaits!

Join me as I begin the journey back to Azeroth.
Perhaps I'll be raiding soon.
Perhaps I'll decide I'd rather play Hearthstone or Puzzle & Dragons.
In any event, I'll let you know what I learned along the way.

Friday, March 1, 2013

The Conference Panel Part 4: Construction

The story so far:
Part 1: taped down some LEDs and learned how to code with Arduino.
Part 2: tried some ideas for construction and geometry.
Part 3: worked out the design for the Mark I.

Time to dive into some actual physical construction

The main strength of this build comes from a GatorBoard back and base.
For those unfamiliar with GatorBoard, it's a very strong foamcore  board with a hard, dense card cover. I've built some very large structures out of the stuff - love it.

The Lighting Channels

The card-stock channel dividers worked pretty well in the proof-of-concept model, so I'm going with that again.

Step 1: Jigs

I constructed this compass out of scrap GatorBoard with a bit from a plastic bottle for the center pivot. I put a thumb tack through the pivot hole in the plastic and a pencil or knife in the marked holes.

Step 2: Drill for the LEDs
Instead of just taping the LEDs to the surface, I'm actually drilling art board for the LED mounts.
A 1/2" Forstner bit makes nice clean holes.
You can see the GatorBoard backing in this photo

Step 3: Carefully cut and score a a few dozen pieces of card stock for the dividers.

Assemble those into pairs so we have double-sided walls with a nice base for gluing.

Step 4: Assemble the lighting channels
The hot-melt-glue and packing tape of the previous model led to a lot of wrinkling. To make sure everything lies flat, I'm using a Scotch adhesive dispenser.

Six hours later, the channels are framed up!

Construction front to back:

Layer 1 (planned), Front Face: 1/8" diffuser material for top half-disc. 1/8" Plexiglass for bottom strip.  Ribbon display is mechanically connected to the face.

Layer 2: Channels: Card stock and art board. 1-3/4" tall. Board is drilled for LEDs, card stock is glued to  fiberboard and itself.
The base is notched so the "channels" layer keys into alignment

Layer 3: LEDs and cable runs: The actual LEDs are plugged into the back of the art board. 2 inches of foam add some depth to the unit and leave room to route the LED wires.

Layer 4:  Back plate. 1/2" GatorBoard. Connectors for the remote "buzzers" will be mounted here.

The whole top half sandwich is held together by two large nylon bolts so it can be disassembled for repairs and upgrades.


Everything but the main display LEDs is jammed into the base:
I plan to wrap the whole thing with a 4" strip of corrugated plastic to add stability and give the whole thing a little cushioning for durability.

Electronics: The Arduino,  operator display and remote button jacks all live in the base and are connected to the back plate.

All the parts I have assembled so far actually fit in the base. (The upside of measuring first.) But it's really tight. I may hollow out the unlit center cell and put the Arduino and related boards up there.

Next up:

In part 5, I will be focusing on the game show features. I'm hoping to get the two team displays and buttons finished. Hopefully with sound effects.
Stay tuned!

Thursday, January 3, 2013

Conference Panel Part 3: MATH!

In Part 1, I taped down some LEDs and learned how to code with Arduino.
In Part 2, I tried some ideas for construction and geometry.

In Part 3, It's time to build an actual prototype.

As I get ready to cut and drill material, it's time for a layout.

The "guestimated" layout worked pretty well, and I learned some important things about the geometry of the structure.


The light cells are demarcated by the dividers, not the LEDs.
A "shared" 0,0 point just adds CPU cycles and significant code space to calculate the color of the cell. Either skip it entirely or let it mix naturally from the neighboring cells.
With 50 LEDS on the double strand, 10 spokes of 5 LEDs
And with no LED in the center, that makes 6 cells per spoke,

I want each cell to have about the same brightness.
The LEDs put out a cone of light 120° wide...  A little inverse-square for the falloff, figure in the reflectivity of the card material...
That's going to be one heck of a mathematical model.
I just need a relative width for the each ring.
Calculating the difference between the area of the arc for outside boundary and the inside boundary would give the area, but maybe there's an even simpler way?

10 spokes is dodecagon. Close enough to round for estimation purposes.

If each spoke is 18° wide (180° divided into 10 spokes), how do we calculate the area of a given cell?

Let's split the 18° isosceles triangle into two 9° right triangles.
Area = 1/2 × r1 (height) × b
And since that's only half the full 18° slice, Area = r1 × b.

How do we get b?

"Slope" of 9° = tan(9) = 0.158384440324536
So base (b) =r1 × 0.1584.
And area = r1² ×  0.1584

My math skills are too rusty to try and solve this multidimensional problem, but that's why we have computers!
I'll just step through all the possible divider positions and determine which configuration has the lowest standard deviation in area.
My first inclination is to just Monte Carlo the model and find a "good enough" solution, but there are a number of assumptions we can make that should make the experiment set small enough to calculate the whole thing.


  • Because the area grows with the square of the radius, no ring can be thicker than its inner neighbor
  • Because of the above assumption, no ring can be thinner than the total radius ÷ number of rings

I'm looking for an excuse to practice coding in Python so that's the language I'll use.
You can see the code at GitHub.
Without the optimizations, the program took over an hour to run on my laptop.
With those tests, it took about 28 seconds.
The solution is: [40, 57, 70, 81, 91, 100]
So these are percentages of the radius for each divider to yield a consistent area for each cell.
Let's see what that looks like:

The area-based division is closer to my proof-of-concept model, but the center disc is much larger than I want.

Modify the program to remove the center disk from the calculations and fix its size at 24%, and we get:

Which seems like a reasonable compromise.


While I want to build a bigger display, I also want this to be easy to construct.
Art board and plastic come in 20" x 30" and 40" x 30"sizes.
Biggest power supply is 2-3/8" (60mm) wide
Proof-of-concept model is 1-3/4" deep.

The matrix displays for the base are 1.2" tall. (1.6 with the driver board.)

Transporting the 30" cardboard proof-of-concept was easy. 40" panels are a little too big to comfortably carry around.

This will have to ship or go in checked baggage, so it will need a solid case.
SKB Cases sells an audio mixer case that seems about the right size.
Pelican has a similar case, and flat shipping case that would handle a 40" wide version.
These cases are expensive. Cheapest one would be over $500 with foam and accessories.

I'm mostly concerned about crushing damage, but lightweight case might be adequate.
Philly Cases has lightweight plastic case  with plenty of room for about $200.

So a good transportable size is 32 to 36 inches wide.
Next build will be 34" wide (17" radius) with a 2.5" base yielding a height of 19.5 inches.

Yeah, Yeah... Since I only need the ratios of the radii, I didn't need to calculate the are of the wedge. I could just use the whole circle instead with the old π r².

Tuesday, January 1, 2013

2013 Predictions

I was quite ill this time last year and so didn't get my annual prediction post up.
Here we go for 2013!


Google Glass

Google Glasses will dominate the presentations at Google IO, although developers won't actually have their samples.
There will be no retail product in 2013.
Mobile connectivity will prove to be a problem. We can't all have a team of people with parabolic WiFi antennas, so using the glasses "in the wild," will  be of limited appeal.

Google Fiber

Google will fully provision the Kansas City "fiberhoods" months ahead of schedule and hold a second round of neighborhood sign-ups.
They will announce the next two cities to get Google Fiber with registrations opening up 2014.
There will be solid rumors, but no announcements, of a Wireless service from Google.


Google Plus will continue to be popular with the nerd crowd, but make little progress against Facebook.
Google Search will announce a new deal allowing better coverage of Facebook or Twitter.


The "channel" model and algorithmic curation will prove to be unpopular with viewers, and before the end of the year, YouTube will be restructured around individual shows and personalities.
Even though I predicted it years ago, and I've been wrong, I still think YouTube will pick up a cancelled TV show. I think it's much more possible this year now that NetFlix has picked up Arrested Development. It will be a challenge to find a traditional television show that can operate within a new media budget, but it will eventually happen. Why not this year?
We will see new YouTube apps for set-top devices, televisions and possibly a dedicated YouTube box.


No Apple Television

Broadcasters will not play ball and Apple will not be able to put together the licenses needed to launch the television product in 2013.

iPhone & iPod

Apple will drop the iPod nano and introduce two new form factors for the iPhone. One of which will asymmetrical.
Apple Maps will continue to be a sore spot.


Windows 8/RT

RT will be a retail disaster. Consumers will buy a "Windows" product that doesn't have windows and that doesn't run existing Windows software.
Enterprise will ignore Windows 8 for years. For companies that finally moved off of Windows XP, Windows 7 is working fine.
Windows 8 will be very popular on laptops.


Next gen console will be announced and demoed. Shipping in 2014.
Surface tablet will be discontinued. Other hardware manufacturers will be reluctant to make their own versions.


I've been wrong many times predicting a flattening of Facebook's growth.  So let's just assume it will continue to grow...
Facebook will buy a media production company to create proprietary content for Facebook members.



No significant increase in sales of electric and hybrid cars in the US.

Autonomous Vehicles

Most states will have laws on the books allowing autonomous vehicles by the end of 2013.

Crazy-Ass Wildcards

  • Makerbot Industries or another 3D Printer company will open a store in The Mall of America.
  • Turnips will be the next big food trend.
  • 50 Shades of Gray will finally fall from the Amazon Top 10 list.
  • Another popular dinosaur will be removed from the official list.
  • SpaceX will announce a launch date for a manned moon orbit mission.