CodeMash 2018

imageWinding down from two days of fun.. putting thoughts in one spot so I can find them later.    In general, to those who are not me (and are developer-types) I’d say:  Codemash is a GREAT conference, you should attend it at least once if nothing else just to see how they run things and optimize things.

How have conference contents changed?

The following is compared to my previous experiences at CodePaLousa and CodeStock – I’m thinking this is “industry and conference changes” more than “different conferences with different focuses”.

Themes that stood out  

Blockchain and Machine Learning were big.     As was Devops, as in the definition “developers doing ops straight to production” / seamless deployments / putting all the things in the pipeline.    

Blockchain was focused more on the math, the intro to the science, and one talk was about .. well, i didn’t go to it, but i’m going to guess it was how blockchain = open source trustable democracy.   There was even one ICO’ed coin vendor present.  They probably gave all the blockchain talks.

Themes that seemed absent

maybe its compared to other conferences, but a lot less of {insert random javascript framework here}, and a lot less of {why agile/scrum etc is good} (I think most folks agree that its better than waterfall).

About the same:

There were still several “Designer and Developers mixing” things, and several UX / UI things present as well.    Soft skills – empathy, leadership, building trust, etc – all present.

Here’s the session list in case you might have a different take: http://www.codemash.org/schedule/   (only valid until next year).

Oh, and they used an excellent conference app – “Attendee Hub”.   Highly Recommend.

If they follow convention, they should put speaker deck stuff here:  https://github.com/TechConf/CodeMash2018 

What did I get out of things? 

This is where this post becomes basically for future me – but hey, its a nice checklist to see if any of these are things you’d want to know about.   I’m going session by session, trying to grab people information and slide deck information for those that I’d want to refer to later.    

AWS Security Essentials

I only crashed the end of this one, but the guy was running through a lot of tools and things to make life easier.    Have not found his slide deck.  Some examples were things like setting up audits for various things (root account login, new user created), and rules like (too many decrypts = auto invalidate key).   @abedra

Getting Started With Deep Learning

I finally understood the reasons for h(X) and bias and a fitness function, and backpropogation (instead of genetic algorithms), and why calculus (and not any old fit function).    Excellent presentation. @sethjuarez.  Asked him for slide deck.  https://github.com/sethjuarez/Digitz/tree/master/presentation  Right at the end got into non-deep vs deep and a lightbulb happened for me.   He said he was going to be doing a channel 9 on this, we were his guinea pigs.

Avoiding Microservice Megadisasters

a) immuntability = key.  Your service’s SLA matters, even if you call others .. can get copies of data as long as you don’t change them.  This, btw, is the same idea in Rust’s concurrency model – you can “borrow” ownership, only the owner can mutate.   So, yes by all means do a microservice that does one thing well, but everybody should cache rather than call and everybody knows who the single point of authority is for some data.    Also, “Order” == too generic, your service might deal with a Sales Order vs a Customer Order vs .. different shapes of models.

b) reiterated that if you have two things which are 99.99% available, then together they are way less than that available.   And localhost is not a valid network layer testing option in microservices world.

Machine Learning at Scale

Once again, I crashed the end of this one and wished I had been there.  Basically, “here’s all the nouns”.   Stuff like “Microsoft Cognitive Toolkit”, “Caffe2”, “Tensorflow”, “Chainer”, “MxNet”, “Torch” (those were all on one slide), and  some edge things – CoreML (apple), Tensorflow Lite, Caffe2Go.  Definitely want to find the slide deck for this because nouns.  @mwinkle.

Project Vienna

I didn’t stay for the full thing, but it gave me the overview of Azure “experimentation account” (building models, workspaces, projects) vs “model management” vs “deployment”.    Inexpensive, mostly just pay for bits to store data.  @jennifermarsman  .. hey she’s giving the keynote at CodePaLousa 2018!

Guy Royce – D&D meets Machine Learning

That’s not the name of it exactly, but hey, its Guy, and Guy does D&D really really well.  Excellent overview of the kinds of questions that ML can solve, put in a fun digestible form.  He’s one of the speakers who it doesn’t matter what they’re doing, I know it will be entertaining (for me).

What I did find out is that Guy is working for a company called Nexosis  who we had just chatted with in the hallway.   Its like this:  Software is eating the world, ML is eating Software, so … enable devs to get into ML easier.  Its by the guys who wrote a counterstrike cheater detector.  

Prod Deployments Easiest part of the day

This guy works for Kroger, and .. Kroger is way cooler on the tech and process side than I knew.   We talked about blue/green and red/black / canary deployments.. we talked about backward compatible state migrations allowing db changes to go in a day early.   we talked about committing dead code, feature toggles, that kind of thing.    The next day, for breakfast, the speaker, @StephenShary happened to sit with us, and there was an awesome conversation that happened.   Very good.

Digging into Devops with Terraform

I went to another talk, left, crashed this one and wished I had started here.   @dustyburwell.  Slides for digging out all the nouns: https://github.com/dustyburwell/DevopsWithTerraform.   We did cover lifecycle strategy create before destroy and how that helps with blue/green deployments (assuming you package down to an AMI, which is apparently what Netflix does)

Public Speaking Without Barfing on your Shoes

Especially relevant as we’re going to be submitting talks for conferences pretty soon as part of work.    @reverentgeek hits it out of the park.   https://github.com/reverentgeek/public-speaking  has a link to a recording done of this talk.

Image Recognition with Convolutional Neural Networks

Excellent talk by a hobbyist.  I now understand “Convolutional” (reduces complexity in dealing with images and more like how our brain does eye stuff).. and he showed all the code in training a model, bringing it into an iPhone app with CodeML, and then having his phone hot-recognize numbers live.  @timle8n1  https://github.com/timle8n1/codemash2018

So You Know How to Code (Group Trivia Challenge)

Sponsored by HMB, who are a totally cool company (been watching them for a few years – I feel they are legit.  All their folks are genuinely happy, and not sales-person-ey).   If you get a chance to do this, definitely participate.  You’re lumped into groups of 10, so no individual pressure – you can stay totally silent if you don’t know and still win.   In fact, our group won. Smile  

Rust

I had forgotten what the language was about .. did this for a quick reminder.  My ex-coworker @joeybratton brings it up every now and again at Skyline, so I did this one for him as it were.   Yeah, basically a same-speed-as-C-but-safer approach to compiling things, and as mentioned above, a better concurrency model.   Apparently since the last time I looked at it, it now has a much better library system, including stuff like diesel to let it talk ORM to databases and stuff.  There’s some crazy benchmarks out there, like 33x faster than C# in some compute intensive cases.

Performance in R

I attended this to get a refresher in R .. and yeah, this guy knows his stuff.  @thoolihan https://github.com/thoolihan/RPerformance

Looking Forward

I’ve cleared it with my wife, that pending other things not getting in the way, I’ll do a few more conferences this year.  They serve to keep my battery charged, and remind me that I’m part of a pretty big ecosystem .. and lets me see for myself the movement in that ecosystem in real people.

I’m also going to keep an eye out on https://substratum.net/  .. they brought blockchain to this conference, and they’re seeking to ensure that the internet / web hosting stays democratic / not central entity controlled / censored.   I support that cause.  I’ll back that up by buying up some SUB when I get home (wish I had known about ICO’s back when it was open .. and yeah, having a hardware wallet sucks when you don’t have it with you).   

More playing around with Cryptocurrencies

I understand a lot more now.    A lot of thanks to @sirajraval who does amazing in-depth videos about all kinds of applied computer science things.

I am not a .. whatever the words are.  Advice-giver-fundy-wundy-thingy-wingy.  I’m just a guy.  If you things you’re getting advice in me, you’ll probably loose money on those bets. Smile 

I think the Idea of cryptocurrency is great. There’s definitely a need for a mathematical, un-corrupt-able middle man know as Math.    Something along the lines of “We can all agree this is the truth, that this ledger is accurate”, something that cannot be fudged.  

Note that in these screenshots, I have not masked any of the amounts.  Yo, this is chump change guys.  I spend more on coffee.    I can’t help it that BTC went up 75x making it valuable.

Inventory

First, an Inventory of various Crypto Currencies of various flavors .. these are the ones I’ve been interested in.

  • I think Bitcoin (BTC), while famous, is not going to be the long term winning solution. 
    • But because its famous, people are throwing themselves at it
    • Which causes it to bounce all over the place
    • Which excites lots of other people
    • Which causes it to bounce even more
    • It can only handle so many transactions per second
    • Lots of people want to transact in it
    • Which leads to really large transaction fees (you have to volunteer in to a large transaction fee or your transaction gets ignored in favor of others who volunteered a large transaction fee).
      • I was moving BTC over to my hardware wallet, the fee was $35 at the time, regardless of how much I moved.
    • There’s plenty of supply left
    • There’s plenty of people in the world, ie, untapped demand, left
    • So its going to bounce around a while longer I think.    As long as there are curious people out there.
    • Will likely get relegated to “how to move large sums of money around” more than “small transactions” just because of the upscaling of transaction fees.
  • There’s Ethereum as well (ETH)
    • Its ability to do contracts .. ie, programming .. ie, stuff like giving somebody a loan, getting back payments, and calculating here’s how much balance is left given an interest rate ..
    • you don’t have to trust anybody else to say what the balance is.  The math is all there in the contract, and its enforced by shared truth
    • At the same time, if somebody mis-writes a contract … that’s going to be interesting.
    • Siraj:  https://www.youtube.com/watch?v=-_Qs0XdPpw8
  • I did some digging around, and I found Monero (XMR)
    • Its the not-traceable one.  Can’t tell who gave how much to whom —
    • you have a secret A, which gives you a receive address B and a view key C.
    • Any time you want to get paid, you say “send it to B”
    • If you want to see if somebody got paid, you need their view key C to see if they got paid.  If you don’t know the view key, you have no idea who paid what to whom or how much.
    • Pretty sure folks will use it for illegal purposes.
    • Its one of the easiest ones to use, GUI wise.
    • You can still mine this for profit with a mid-range CPU.
    • So I think it will be pretty stable / get famous (or infamous) / have value.
    • Siraj:  https://www.youtube.com/watch?v=cjbHqvr4ffo
  • There’s a fork of Bitcoin called Bitcoin Cash (BCH)
    • Lots of people owned bitcoin at the fork date ==> they all own bitcoin cash now as well.
    • Its much easier to transact than BTC, with much lower transaction fees.   Must faster, too.
    • It has a good chance of future survival.
  • And then I found Iota (IOTA)
    • No miners!
    • When you want to do a transaction, you volunteer in to doing at least 2 confirmations.  So its a .. pay it forward kind of thing.  “The more people use it, the faster it gets”.
    • Siraj: https://www.youtube.com/watch?v=B37UbzPlSzw

Tools and Services

This is what I’m familiar with so far:

  • Coinbase.com  — this is how I converted my dollars into cryptocurrency.     I have it set up to take about $15 from every paycheck and spread that over BTC and ETH at the moment.  I inherited some BCH due to the split, and I did dabble in some LTC but I got rid of it once BCH came around. 
  • trezor.io – this is a Hardware Wallet that I purchased, and moved most of my BTC and ETH to.
    • Sounds fancy.  All it is, its… like a flash memory thing.  It has some unique numbers stored on it.  There’s no way to directly read those numbers off it.. all you can do is log in to it, and say “here sign this thing with those numbers”. 
    • If it gets damaged or whatever, there’s a list of 24 words to use .. written on paper .. in my safety deposit box … that can be used to reconstruct the unique numbers used.    It happens to be that its a “standard” way of doing this, so even if Trezor dies and you can’t get another device like that, there’s several other wallet systems which will accept the 24 words to get back to the secret keys
    • The unique numbers are what give you access to the math that’s stored in the blockchain, the “shared ledger” across several hundred thousand computers around the internet.
  • binance.com – this is one of many exchanges that exchange value between cryptocurrencies.  Use it to quickly convert ETH or BTC to other coins. 

Converting ETH to IOTA and XMR

This was a wild ride for me, so here’s a quick summary —

  • I signed up for an account.   They do email verification.
  • I locked my account up using 2FA.
  • I deposited ETH (it gave me an address to send the ETH to.. i went to coinbase and sent it).  Turns out I had to do it twice, because there’s minimums involved in withdrawing which are around $30 USD equivalent.   Here’s what that looked like:

image

  • I went to the ETH/IOTA trading screen and exchanged ETH for IOTA. (Somebody else had IOTA and wanted ETH, the exchange helped us find each other).
  • Ditto, ETH/XMR
  • The screens for this are crazy with candle graphs and stuff.  Made me feel super finance nerdy.   There’s also limit and stop limit orders and stuff .. great if you want to day-trade-gamble.
  • Once done, I withdrew funds from IOTA and XMR  to my IOTA and XMR wallets.

Here’s what that looked like on the Binance side:

image

Here’s what it looks like in the Monero wallet:

image  .. as it scans for more transactions involving me.

image

Here’s what it looks like in the Iota wallet:  

image image 

yep, still pending.. there was congestion here, need to wait till other transactions happen which will in turn then verify the above transaction.   (the 0 transaction was me clicking “attach to tangle”, which I didn’t understand at the time, but was basically saying “yo say something so that this wallet is established somehow even if nobody gave it money”.)

Whee!   So now I have some money locked up in a wierdo thing that only other wierdos would recognize my money in.  Ie, I’ve made my money LESS USEFUL!   Whee!

Taxes

So, tax season is about here.   There used to be doubt, but now its been removed, so this is pretty much how I’m going to do it regarding the US Tax code – although this doesn’t take effect till the 2018 season .. but:

  • All transfers into and out of a wallet are short or long term capitals gains, based on the crypto/USD value at the time of the timestamps involved.   Regardless if you’re sending it to another wallet that you own or not.
  • (there’s some flexibility for which crypto/USD index to use, i’ll find something with an API)
  • Coinbase provides a FIFO calculator, which is excellent – they are the bulk of my everything, and the point where my USD happens.   I’ll pretty much use that for my taxes, and count transfers to other wallets as short term gains (if applicable).   Future lesson is, if something is going to appreciate a lot, PARK IT AT ITS FINAL LOCATION QUICKLY before it starts appreciating to avoid tax penalties.
  • I ran some math to figure out how much of a difference things make .. other than making everything short term rather than long term, moving the money to another account in the same currency doesn’t do much on the taxes – the nets are the same. 
  • At some point, somebody’s going to write some decent tax software to go along with owning crypto currencies .. or they’ll write it for the tax guys so that the tax guys can tell you what you SHOULD have paid.   Something like https://bitcoin.tax/  probably. 

Okay, that’s about it.     The only other thing to throw out there would be, because Bitcoin went up so much, I cashed out enough of it so that even if it (or any of my other coins) went down to $0, I’d still have made money on them, not be in the hole.       Good place to leave off the end of the year, I think.

Cheers, laterz.

Oh, I’m running simpleminer.io to mine XMR while I’m using my PC’s.    Haven’t gotten any XMR payout yet. 

Switching from iPhone to Android (Samsung S7)

img_20170903_110354_847I wanted to write a nice detailed blog post with pictures and screenshots. Would take too long to get it “Perfect” so I am punting.  (I did write this using the WordPress app on the phone)  ** I continued this from my laptop later.

Here are crib notes instead.

Summary: it’s good, it’s functional. It’s less pretty on the watch side, and MMS is subpar, but better voice recognition, LastPass integration, wireless charging make up for that. I’m going to stick with it for a year.

Addendum: it’s frustrating to learn a new ecosystem. And because Android has so many variations it’s hard to know what information applies. For example – getting that screenshot in this post – there is probably a better way but I had to use Google voice to take it, send it to WordPress media library, then include it in this post.   (Addendum to the dum:  Turns out there’s a “swipe left with your palm” gesture for my phone, but I still can’t save the screenshot to my camera roll)

Stuff I like:

  • Chat heads – if I use FB messenger for SMS.  They pop open over any app, and let me continue a conversation without switching apps.
  • Voice recognition is better – especially in the car.  It seems to want to use the phone’s microphone, rather than the 3 second delay switching to bluetooth through the car microphone.
  • Can choose default apps – like which Messenger app to use.    Thank you “Intentions”.
  • Widgets – Not going crazy with this, I only have two or three.
  • Not all apps on home screen – I can leave some in the drawer.  I don’t have to force myself to choose a position for EVERY FRICKING APP, just the ones that matter.
  • Always on screen – specific to my Samsung S7 device?   Shows time, date, next calendar appointment, etc before I hit the power button.   Major phone use case.
  • Number row – by default, turned on, on the keyboard.  Also a swipe keyboard, very nice for one hand use.
  • Better large screen shrinking – for single hand use.  Much more usable than Apple’s double-finger-home-button thing that never worked for me.
  • Last pass for apps – incredibly useful, when I’m in an App, Lastpass can integrate in and provide passwords.
  • Wireless charging – Coworker Steve gave me his old wireless charger.  I’m hooked.  No plugging in.  I bought one for the car, and I need to buy one for home.
  • Workout app has better sharing options – Pretty pictures, square format, straight to instagram, YES.
  • S2 watch can control which notifications go to watch and which dont.
  • Way more watch faces – This is also a curse.  I could not find a decent watch face which had battery, calendar, date, time, and actually worked across my multiple calendars.
  • I can put any icon anywhere on the page – I don’t have to plan from the top.   Thank God.  Clusters are easier to cluster.

What I miss:

  • Miss pretty emoji – I’m used to the iPhone and Slack emoji sets.  I don’t know for sure when I send my wife a kiss-with-eyes-closed emoji that its showing up the same.
  • Hue / OK Google integration misses things – I’ll say turn the lights off, and it will say “I got 18 of them, three not responding”, but only 8 will change.
  • Miss overcast podcast player with it’s auto silence trimming – For this reason alone, I have my de-SIM’ed iPhone living in the car, being an iPod for playing podcasts.
  • Group messaging wierdness interacting with iMessage – I won’t get pictures or video.  My entire family is iOS based, so I’m at a disadvantage.
  • Miss sharing position easily (find my friends) – Wife and I used to use this in passive always-on mode.  i can do Glympse for limited engagements.  I think Google has a solution for this somewhere.
  • Text selection wierd no magnifying glass for fine control – it took me a while, but I finally (with writing this post) got a handle on the text select stuff.  I have to take this back – I prefer the Android one.  I can actually drag the little draggers around, and they snap intelligently.   But I do miss the magnifying glass.
  • Miss square Apple Watch – It was smaller, looked better, and seemed more functional – especially the voice command part.
  • Miss scroll to top.
  • S2 battery life not great.   However, if I turn on Airplane mode (the S2 has its own 3G connection that I haven’t activated), its very comparable – down to 50% at the end of the day.

Btw, the screenshot is my second screen, not my home screen.

 


Revisiting the world of Linux and Rescue boot up disks and wiping hard drives

One of my newer roles at work is being the backup systems-admin-fix-your-network-cable-and-coffee-maker-and-upgrade-ram guy.   Whatever you call that role. 

In that role, I needed to wipe clean some machines that are leaving our premises..

It has been fun.  Along the way, this is what I learned:

  • https://www.pendrivelinux.com/  will take care of all the “let me format that USB stick for you and load an ISO on it” needs under Windows.
  • http://www.system-rescue-cd.org/ is a great little rescue disk that has a good set of utilities, including running in a graphical mode with terminals.  That way I could wipe and check cpuinfo / meminfo at the same time.   Has tools for mounting NTFS partitions as well.
  • https://github.com/martijnvanbrummelen/nwipe/  if started without args runs a text based UI that lets you choose which drives to wipe, and what algorithms to use, and is about as fast as dd.  Perhaps faster, as it will wipe multiple drives at the same time, without the need for &.
  • Some motherboards capped hard drive writes at about 34MB/s, others were at 134MB/s.. big difference.   Both were SSD.
  • Smallest USB stick i could get at Walgreens was 8GB. 

This was fun.  Looking forward to other such stuff in my new role.. just let me at that network IP address inventory!!!!  (Not a priority at this time)

WIFI Tools for Windows

I had some trouble with my WIFI network a few days ago – and I got to brush up on some tools I can use in Windows to diagnoze WIFI connections.

Ekahau WIFI Mapper

The coolest one I found was the Ekahau Wifi Mapper.  Its free for personal use, limited to 15 minute mapping sessions – enough for a floor of my house!  Here’s the map I came up with of my upstairs:

image

Compare that ZMG12-24 (the 2.4 Ghz signal) with the 5.0Ghz signal –  I had to resort to my iPhone to get the screenshot, Greenshot didn’t co-operate –

image

Surprising!  It things ZMG-12 is located in the back yard?  Maybe the signal goes out the french door and reflects off the tree.   Or, my little mock-surface doesn’t have a very good 5.0Ghz antenna. 

The other thing this app told me – that I had wondered for a while – is which neighbor has which WIFI. Especially folks like “FBI Surveillance Van” who has an Open connection.  Heh.   Amazingly, in this subdivision of older folks, there were a few hidden wireless networks as well.  Didn’t know that.

Acrylic WIFI

The other tool I found was Acrylic WIFI – It can listen over time and figure out what’s using what channels, and you get a signal-strength-over-time graph:

image

I get a nifty channel spread view as well:

image

Once again, OMG the 5.0Ghz network is sucking boogers.   It might be the router.

Handy information to have.

I really want to do a WIFI heat map of my mom’s house.  She has some fun problems there.

French Press Coffee Grounds Disposal Process Optimization

At work we have a slight problem.  We like our high quality coffee, we use a french press, but we do not have a garbage disposal.

This was my process solution for the problem of how to get the liquids down the drain, but the solids down the garbage.

I guess its not clear – the problem is that if you drain all the liquid down the drain, the solids are very sticky and “stick” to the bottom of the carafe.  Then you have to find the appropriate utensil to try to scoop the stuff out, and its very messy.   This is an attempt to have gravity and air pressure do the work.

Oh, who am I kidding.   I have a solution in need of a problem. 🙂  Live to Geek, Geek to Live, as my wife points out.

[youtube=http://www.youtube.com/watch?v=adH_r9_5fLA]

Kittens

imageFor the last 60 hours or so, we have had to put aside all our normal routines, and adapt to a new routine:  of being foster-parents to squirmy, wormy, squishy, squeeky Kittens.

Our son’s friends found them in a ditch by a highway at an abandoned house.  Initially, the kids thought they would nurse them back to health, but their patience was run down, and so we made a decision and took over as foster parents.

But this is a geek blog! 

Right, so:  I repurposed one of my Dropcam’s, on nighttime mode, watching the kitties.  I have an alert set up for litter box use:

image

Here’s some things we’re learning about them:

  • When we feed them, they will eat a bunch, and then they’ll stop.. but they’re not done yet!   give them a little bit to digest, they might run around like banshees for a bit.. work up a bit more appetite.. then they eat again.. THEN they are done.
  • They know how to use the litter box! thank god.   I had to help some of them with #1 and #2 .. once we got past the initial dehydration and stuff, it was okay.
  • To heck with all the feeding schedules on the internet.  When they get hungry, the two bigger ones start trying to suckle the smaller ones.  Not good for the smaller ones.  That’s when we know for sure to feed them.  Its been about every 4 hours or so, although I think we get a bit of a reprieve when its dark out.
    • Speaking of suckled little ones, they are the first to wake up and the last to go to sleep.   Learned habits.
  • Calories in, Pee & Poop out.  Everything else in the middle is optional.  Their bodies are programmed to grow, and their instincts guide them well. 

Some stuff I’m figuring out personally:

  • I am insanely proud of them every time they figure out something new.  Like, leaping, or climbing up my leg, or batting a ball.
  • I feel very honored whenever any of them decide to use me as a perch, or play in my lap, etc.  I guess I’m one big momma kitten to them.. playing king of the hill, etc.
    • Taking my momma cat job seriously – my wife is dealing with the formula and feeding, and I’m dealing with with the cleaning.   So I’m taking a wet rag to any part of them that seems dirty.  Faces, tails, butts, bellies – its all fair game.  And they cry like little boogers and make bad faces, but when I’m done with them, they’re clean, and they can go back to playing.   I’m proud of what I’ve done so far.  I think my previous cats would be proud…
  • Speaking of, I’ve had my cats. [livejournal link]  Whiskey died at the age of 14, and Samantha died at 19.   I love cats, and I wasn’t planning on getting more cats.  These cats are (hopefully) temporary – there are lots of friends who are expressing (relatively serious) intent in them.   We’ve had to say “no” to any visitations until after 10wks or so and the FEL-V results come in.  Avoid any hopes being dashed.     I don’t want to keep the cats because:
    • OMG the smell of stinky litter.
    • litter under your feet.  litter ending up in your bed.
    • My wife is allergic.
    • I’m a little allergic as well.
    • We want to downsize and be able to travel.
    • Wet cat food smells horrible.
    • Hair hair Hair everywhere.
    • Being strangled by cat-butt at night.
      • So in a way this is the perfect little morsel of “getting the kitty loving” – and hopefully it moves on.

Anyway, enough philosophy and intentions.  My coworker Choma believes I’m doomed, they’re going to be ours forever.  We shall see.   Here’s some stinkin’ cute cat pictures thanks to my wife’s Instagram feed:

image image
image image
image image

God bless those little kitties.

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.