CodePaLousa Day 2 (for me)

There’s a code conference in town, CodePaLousa.  5th year for it; this would be my 2nd? 3rd? 4th? year attending (I skipped a year, I think, and I may not have been to the first one).    For many attendees, this would be their first day, for me it was my second.

I wasn’t sure I could go at first – I had a wedding to attend.   Life happened, and we couldn’t go.. but then, the idea of taking a whole week off – it didn’t feel like I had the vacation time to spend.  So, instead, I asked if I could be of service.  Maybe I could spend a day there… soak in the crowd.

I was taken up on that by @emschw.  So far, I have:

  • Stuffed goodie bags (with the most articulate and well-mannered yet definitely eye-for-detail-and-they-will-let-you-know young ladies, which would be @edcharbeneau ’s oldest two daughters)
    • We had a lot of fun figuring out process!
  • Vacuumed most of the meeting rooms (Styrofoam packing material debris from putting together the projector stands and podiums etc)
    • image With OMG the world’s worst vacuum cleaner.  I had to pull the vacuum off its wheels and angle it to get good suction against the carpet.  It was a good upper body workout.
  • Put up floor-standing banners.. wow those things are cool!
  • Impromptu learned to edit the lighting in one of the conference rooms
  • Bagged and moved T-Shirts and GoodieBags off the tables back to the lock up area.
    • image Deadlifted cases of stuff up onto a cart (I just learned how to deadlift properly, it was fun!)
    • A very nice and friendly lady named Barbara, who is on the cleaning staff at the KICC, really helped me with elevator control.  The cart was too big to fit in the elevator.  She rocks.
  • Been a room monitor. 
  • Attached clips onto lanyards
  • Hung out with so many cool and fun people.  

And I have loved every second of it

I think I put it down in a profile somewhere lately:   I love people.  Especially people who are doing their best, who are being true to their word, who are genuinely excited about what they are about.  I want to help and uphold these people in any way that I can.

Its even better when these are people who are doing technical geeky things that I understand and can relate to.

But, there’s more going on, under the surface.

I want to be a speaker.  There, I said it. 

I want be a speaker about something that I LOVE, where excitement pours out of my pores when I talk about it.    I love my job, don’t get me wrong, but I’m really not that excited about anything going on these days.   EF vs NHibernate vs Dapper vs SqClient;  MVC vs WebForms; angular vs knockout.. these are all tools.  That I use to make people’s lives better.  I can use any of them with enough reference material.  Not what I love.  

No, the code that I love — the last times I felt that, I was actively developing an LPMud.   Think C# syntax, (link is to the main.c of a interactive monopoly game written in LPC) .. but in a ruby-like environment, with hot-swap code, dedicated entirely to monsters and players and rooms and swords and spells and stuff like that.   Think World of Warcraft meets text-only adventure games. 

Stepping back for a bit:

I guess I could do a talk about writing automated tests.  However, its been a while since I’ve done that (for work).   I could talk about how it makes long term maintenance and growing of a project into a breeze.  Being a consultant now, I don’t spend long-term on projects anymore, so its no longer a good fit.

I guess I could do a talk about scale testing, and automating scale testing using Powershell.   Its been almost a decade since I did that. I’d have to re-discover all the tools for driving the tests.

I could do a talk about (non-certified, trenches) project management; tips, tricks and patterns learned over the last decade or two.

I could do a talk about ethics and morality and perspective in the workplace – patterns that works, patterns that don’t.   (Derived from principles in other sources which I will leave anonymous). 

I could do a whirlwind tour of 3D printing using FDM.  That’s pretty recent.

Hey, if you read this, somebody ask me to do a public talk on one of these things.  I may not do it for me, but I’ll do it for you.  And that might launch me somewhere.

Psudeo-Plan

I have an idea brewing in my head.  I’m going to open it up for feeding:

  • Learn me some Erlang.   Because Erlang is so … cool.     Specifically, the multi-node scalability of it, and the hot-swapping of runtime code.
  • Somehow interface Erlang with WebSockets (or something) and a front end thingy to make the start of a mud-like thingy.
  • Test various methods of how I would go about writing a mudlib inside Erlang.  There’s straight message passing, possibly luerl (Lua in Erlang).. ?
    • At this point, Erlang is just the tool.  Right now it looks like a good tool.  There are other tools I know better – C# is one of them.   But, is it the end result, or the journey? In the end, I would have wished I had done it in erlang because of the scalability of it.     
  • Do a simple mud with a simple mudlib.  
    • You are standing in a room. 
    • > North. 
    • You are by a bridge, there is a troll there. 
    • You see: 
    • Troll
    • > Attack troll
    • You attack the troll viciously and Hit!
    • Troll attacks you!
    • > quit
  • Open things up so that folks can write their own mud-like games (again).
    • The “Driver” is the super-hard bit where all the connections are dealt with; it hands off to…
    • The Mudlib is the easier bit that deals with how players, monsters, rooms, etc all interact with each other
    • The Mud is the actual adventure, defining the actual rooms and monsters and stuff that is the story.
      • This is where teaching comes in.  To write a mud, you have to learn how to code (a little bit).
      • Writing code for a mud is MUCH more exciting and satisfying than writing code for the real world.
      • And it conveys the excitement of writing code.   Instead of the $ of it.
  • Revisit the mudlib and instead make inventories 2-D, and make it into a 2-D world with an unlimited size map (in NxN chunks, where each chunk also knows about its immediate 8 neighbors, max effect size = N).
    • This brings in all kinds of other stuff, like calculating paths, and speeds, and true area-of-effect spells, and .. and.. ooooooo fun
    • Work on a javascript client for the above using <whatever technologies are best>.  I’m staying with 2D because 3D is NOT my thing.   I’ll probably default to using pictures of text (font-graphics) rather than actual graphics (because, not my thing).
  • Open things up so folks can write their own 2D world games
    • Hopefully with the same driver and different text vs 2D worlds, some clever folks can write an easy-to-use 3D mudlib.
    • And then people can write their own MMORPG’S easily!?
    • Will it scale?  Hence the Erlang.
  • Give a talk (or talks) on all the stuff that I did.

There are other folks who have done muds; but that doesn’t help me.  I’ve got an itch, its a coding itch, and I keep ignoring it, and it keeps coming back for scratching.  

And I want it Now

One of the hard parts for me is a) breaking this up into smaller pieces, and b) being consistent and working on those pieces till I get somewhere.     I keep postponing, saying, “hey on Christmas break I’ll do this” – and then I don’t.     And I may postpone it again.  But that doesn’t change the fact that I feel it in my bones that I want to do this.   Its been 24 years, and the itch is still there as strong as it was on day one.  I can almost cry, its that deep and it feels so good to contemplate it.

So..  yeah, that’s where I’m at.   I hope that some day I can give a talk on something that I love, and be an example of a person who followed his dream.  

Having possibly said too much, I’m going to post this anyway.