The Magic Factory

magic.factory

I recently discussed the “Magic Factory” with my girlfriend to see what she thought about a Grand ReOpening.  Oh, what is the Magic Factory? It’s a place I walk into mentally with one, or two, maybe three ideas and blue sky what might happen if I built applications around those ideas.

I’ve had a bunch of ideas up on AgileZen waiting to be unpacked and built but just lost the fire last year about this time to pick up my tools and start writing software again until this conversation happened.  But after trying all last year to relight the fire, all I could render was a spark and that was about it.

Then last month our shop announced Hack Day 2014 – hmm… how could I pass that up, right?  Our shop is going to give us 24 hours to build something from scratch then present to leadership the next day.  The 1st, 2nd, and 3rd prizes were pretty sweet, but it wasn’t about winning for me – it was a test to see if I could start and finish – something you take for granted when you a bit less gray over the ears.  So, freakin’ sign me up!

I found a great (and smart) peer on my team who wanted to help build something in 24 hours from scratch.  I thought this would be the real test to see if I could pry the doors open on this place I used to spend so much time in.

We didn’t win the grand prize, or make the final cut – but we built an app in 24 hours that conveyed the business idea we wanted to promote.  So, now with the doors to the magic factory swinging with activity and visitors like my grandma’s front porch screen door, things feel a bit more normal now that this place is open.  Oh, by the way, welcome to my “Grand (Re)Opening!”

 

Mobile First. Cloud First.

TitanFall

A few weeks ago I listened to Scott Guthrie discuss mobility and how they relate to Azure, and vice versa.  I knew a bit about the mobile pieces, but the Azure side of the talk was pretty jammed up with new/updated services and offerings from Azure.  This platform has really come a long way in the last fours years for sure.

One of his first Azure talking-points was about IaaS and what it could mean to developers.  Enter TitanFall.

He discussed some of the elastic infrastructure the development and program folks were using to prop this game up – all over the world.  It was a pretty amazing aspect.  From this part of the talk we heard the quotes “Deploy at the Speed of Light – on your terms” and “Compete in a global market, but close to your customers”, “constantly available resources”.

All of those Azure or not, have a very nice ring to them – and true from what we saw in the TitanFall highlights.  So from what I can tell from the TitanFall preview, the size of your application isn’t as large of a problem like it has been in the past; IMHO the understanding of the architecture needs to really matter – how do all of the Legos fit together and if they talk to each other at all – who talks to who, when, and why.  That statement holds water in a lot of scenarios, today and yesterday however I think it fits in with future goals we set for our solutions today.

TitanFall has a lot of “headroom” to grow into, and the development tools are pretty sweet at this stage. And Scott promised they’d get better and better as time goes on.  Awesome!  If you’ve used the older versions of the Windows Azure portal, SDKs, and Visual Studio integrations, you know they’ve all matured into things that remove friction from our daily development goals.  The notion they’ll mature more is even more awesome (yes I use the word awesome quite often).

The statistics he shared from Azure were just as impressive, here’s a few screen shots:

1) The footprint of the data-centers around the world, and a few more coming online soon;

2) Interesting adoption stats ranging from authentication to Visual Studio Online registrations, to requests per second.

3) An updated portal dashboard that displays the development, production, and financial concerns of the portal owner – very slick indeed!

azure.footpring azure.stats portal.makeover

A Chrome Mass

Usually on Sunday’s some folks head to a brick and mortar  place where they have mass, or some type of church.  Last Sunday I went to a Chrome Mass in Leesburg, Florida for their 18th annual Bike Fest ( leesburgbikefest.com ). I’ve visited a similar event Roar On The Shore ( roarontheshore.com)  in Erie, Pennsylvania and it was much the same but at a slightly bigger scale.  If someone needed anything for their motorcycles, you’d have no problem finding it – like most events I’d imagine it’s this way as well, this was only my second Chrome Mass to date.

The main idea for visiting this event was to get the dust off my camera and get behind it again.  I didn’t take as many as I had wanted to, but between texting a few pictures to my girlfriend and taking more with my Canon 60D, I did get a few interesting pictures.  I realized very quickly that most folks are “ok” with a picture taken with a smart phone, while have a lens pointed in their direction was a bit unsettling.  I learned from this event of what to take, when to take it, and what to take it with – this isn’t a crowd you’d want to look peculiar in snapping lots of pictures with a camera.  Moving on.

Following are some pictures that I snapped at the event.   Most notable were the red Ford trike and the gold custom-built by West Coast Choppers.  So many bikes to photograph, but I saved my SD card for the ones that stood at to me.   There some pink in here two, I’m always on the lookout for pink stuff that might make my girlfriend say “hmm, that’s kinda cute…”  Sadly she wasn’t there, but hopefully for the next bike fest she will be.

Hopefully you’ll enjoy looking at these as much as I did taking them.

j@s

 

2014-04-27 14.35.58-2 2014-04-27 14.35.55-2 2014-04-27 14.35.23-3 2014-04-27 14.35.13 2014-04-27 14.34.57-2 2014-04-27 14.34.31-1 2014-04-27 14.28.32 2014-04-27 14.28.25-1 2014-04-27 14.13.18-1 2014-04-27 14.10.31 2014-04-27 14.02.16 2014-04-27 14.01.53 2014-04-27 14.01.43-1 2014-04-27 14.00.40 2014-04-27 14.00.29-1 2014-04-27 13.59.49 2014-04-27 13.59.27 2014-04-27 13.59.15 2014-04-27 13.28.03 2014-04-27 13.27.35 2014-04-27 13.27.29 2014-04-27 13.26.47 2014-04-27 13.25.58 2014-04-27 13.25.38 2014-04-27 13.18.06-2 2014-04-27 12.35.11-2 2014-04-27 12.33.25 2014-04-27 12.33.21 2014-04-27 12.33.20 2014-04-27 12.33.19

Say Your Name…

Image

If you watched this series, you know everything starts to unfold and come a bit unglued when Walter (White) asks the person on the other side of this scene to “say my name…”  This blog probably won’t be nearly as exciting at this scene was, but hopefully a few tweaks will help ease the reader’s eyes.

This week in the blogging courses I’m going through we were challenged to change the title and tag lines of our blogs.  I did change my title from “onefloridacoder’s bit bag” to “john@Scale” – however my muse took a break when I started playing around with the tagline.

I read the advice from other bloggers but it didn’t get the muse off his coffee (or whatever he drinks) break.  Still, I think it should change it and I will.  I’m sure one day or evening when I’m riding my bike to or from home – it’ll hit me like a bug on my visor.  Stay tuned.

More Signal. Less Noise.

signal.not.noise

I’ve been pushing a lot of content to this blog for a while, off and on. And I don’t have a big habit of blogging much but when I do, it’s something that’s jumped out at me while.

That would be the “why” of sharing on a blog. Not a chatty blogger either, I usually try to get the point w/o rambling too much and lose a reader in mesh of “whos-a-whats-it?”

I’ve got a few hobbies: my Harley, photography, cooking, painting, and technology to blog about for the moment. I’m trying to find a way to get food into my blog more – not a yelp.com approach, but more about why and what food. And not some half-baked (pun intended) post that’s just noise.

So my goal for the year (and blog), and onward is to provide more signal than noise to readers by use of pictures, links, quotes, and how they relate to my interests, but more specifically about the topics I mentioned.

Ok – that’s a wrap!

My First 13K

It’s not exactly a race, it’s the number of miles I’ve travelled in the last year on Black Beauty, my Harley Davidson.  This weekend marks the one year anniversary of when I purchased her (yes, it’s a girl).  I can safely say I’m just as excited to ride this bike now, as I was when I drove it home from the Harley Davidson (HD) dealership.

The experience.  It’s the dozens of people who walk over to me and say, “hey, nice bike – what is it?  We’d end up swapping digits, shaking hands, and feeling like we’ve known each other for a long time.  Some visits are short, some are a bit longer – but this was the first thing I noticed about riding this bike.  There are many who ride, used to ride, want to ride, or can’t ride – and they all love talking about a Harley, anytime.

The HD Family.  This family is huge, and growing.  There a lot of colorful people in the family no doubt, but they are all welcoming and friendly.  I’ve not met another rider or owner that wouldn’t stop and chat, offer a hand, or give some advice I’ve asked for.  The folks at the dealerships are even friendlier, but when you’re out about 100 or so miles from home, your bike is kind of your calling card.  It’s definitely a reflection of yourself – all the brothers and sisters in the family have rides that illustrate that.  And the coolest part about it is that you hardly ever see two bikes that looks the same – we’re all different and so are our bikes, but we all get along, mostly.

The gear and bike accessories.  Every new owner I’ve met has the same problem, they go crazy buying gear and upgrades for their bikes.  Harley’s aren’t hard to work on, but they’re not easy either.  When you order something you have to be sure you get the right parts or you can take your ride down.  And tools, are the same.  I’ve purchased a few specialty tools just for one update/upgrade and it just adds to the cost.  I met a young man at a gas/petrol station one afternoon on the way home from work.  His bike was the same year and model as mine, only he’d owned his about six months less than I had mine.  He spent a total of $3,000/£1850 on his bike and I really couldn’t tell until he started to unpack the updates one by one.  Oh, the HD fever runs rampant for a few months, and it doesn’t stop with the bike, it bleeds into clothing as well.  My girlfriend gets a new HD shirt every few weeks, they’re all very cool and look great on her.  The guys’ stuff, not so easy to fit in, but I’ve figured out how they size stuff, so I’m a bit more cautious and careful.  And yes, other members of my family are getting HD clothing items as well, but they love the style and look of the HD brand – no complaints yet.

No Fairing / Wind Screen.  I sit in front of screens all day long, so I decided on a model that has no wind protection – I am the wind screen.  It does add a huge dynamic to the ride for sure, but I get the full effect of nature (bugs included) when I’m riding.  Plus, its one less thing to clean.

Death.  There I said it.  Yes, there’s a chance I’ll get on my bike and not reach my destination.  But the way I fought that fear in the early days (< 2K miles) was with some advice my motorcycle riding instructor gave me.  She told me “You’re a good rider, but you still have to practice whenever you have the time.  I still do, and it’ll help with your confidence and might save your life.”  She was right. It has saved my life no less than six times already with specific things I practice at high and low speeds.  I’m not an idiot and I realize that the world is being disrupted and distracted when they’re in their cars.  You don’t need to be texting on your cell-phone to cause an accident.  You could be in a bad mood, or just in a weak state of mind and stop paying attention to how you’re driving.  That’s bad for me when I’m riding next to you.  Conversely, my riding instructor told us the same thing.  “Don’t get on your bikes if you’re upset, pissed off, depressed, or mad about anything.”  She was right.  I did it a few times and learned my lesson the easy way that keeping your head clear when you get on the bike will keep everyone safer, and alive.

Wow, this thing is heavy!  I’d say I was in pretty good shape, but I’ve dropped my bike a couple of times at very low speeds, or b/c of a random stall, and I couldn’t pick it up.  It’s not really balanced they way you’d think unless you’re up to speed on the highway.  So when it’s lying on its side, you have to pick up the entire weight of the bike.  This turned into a goal for me – I needed to get strong enough to pick up 700 lbs. / 320 kg.  I reached that goal and now I can.

I’ll close with this for those that haven’t had, or don’t want the pleasure of riding a motorcycle.  And when I say motorcycle I’m going to refer to the touring motorcycles, not the sports bikes – there’s a difference and I don’t mean any disrespect when I say that.

Riding a motorcycle is like dancing.  And yes, you have to get to know your partner very, very well – intimately in fact.  For every day there’s a thunderstorm, wind storm, full sun, or very low temperatures, your motorcycle behaves and reacts differently.  You have to understand each different reaction when you’re in different types of riding situations too, no two days are the same.   There’s a bit of an art to it, but somehow when you get off the bike your mind is a bit refreshed, like it is after a night of dancing.   If you ride, stay safe.

Until next time.

oFc

Try Not To Boil The Ocean

Do you use TDD to help shape your application’s design?  I do, although I’m not as strict as I used to be.  I used to test eeeverything, now, not so much.  I was a fly on the wall during some Agile coaching sessions from “The Dude” at my shop; he kept making a statement during one particular coaching session – “Let’s not try to boil the ocean, ok?”

I know he’s not the first one to say this, it’s a pretty common saying.  The context was around stories, epics, and setting up a story map and making discrete stories that can simply organize work items for the team to work on – small bites, Legos – pick your analogy.  It just allowed for the story map to flow better and to give the team context around what’s next, and what “it” is what’s being accomplished.

I try to do the same thing with TDD – as I’ve mentioned in other blogs, testing the framework isn’t as valuable as testing your own code, right?  I mean, if there’s a bug in a(the) framework you’re using you’re going to find it sooner or later if you are pressing any particular namespace pretty hard.

One thing I also learned from Uncle Bob was that TDD can help you understand a framework – probably not as much as Code Kata, but so TDD helps me understand the namespace(s) I’m working in and keeps the context and responsibilities of the classes tighter and more cohesive.

Moving on…

I started out trying to boil the ocean for the Windows Azure Media Services (WAMS) because I didn’t get how everything was wrapped together and how things were processed.  There’s things you can’t mock, but some things you can.  There are many interface types you can implement to make your own mocking types for quicker tests, and understanding these interfaces once they’re implemented inside your own concrete types helps tell the story of what they’re doing.  Here are a few that I worked with extensively while I was baking my infrastructure classes: IAsset, IJob, and ITask – I got a lot of mileage (and headaches) unraveling and re-wrapping this stuff for my little brain.

Reducing the temperature from 212F (100C) to a light simmer…

I started with the business layer tests, the thought being I’d spin up some fast(er) running tests in that space first, then move into the infrastructure layer(s).  The effect was my business layer tests had too much code in them.  I was building up some of the infrastructure types while I was building the business layer types and tests – not good.  So I stopped and just focused on the infrastructure bits.  Here’s how the infrastructure assemblies looks right now:

infrastructure

infrastructure tests

There’s four separate services I’ve created for interacting with WAMS.  Each service is something you can do with the WAMS portal, and I wanted to break it up like that, the only thing missing is a publishing service that actually tosses the media over the wall and a URL is assigned to the content you’ve uploaded and encoded.

I’m not using an IoC container yet to spin up concrete types for me, so to keep the tests simple for now I’m just building the concrete types by hand.

 

This was all I need to do to keep the infrastructure types from polluting my business unit tests.  Most of these infrastructure tests are bouncing up against WAMS for now, but my business layer test will be using a few mocked out types using the interfaces I mentioned above.  Once the publishing service and the business layer tests are built out I’ll blog those, but now I’ve got to put some thought into how this application is going to use the business layer, so it’s time for a little (more) story mapping.

HTH

oFc