Tuesday, November 18, 2014

The Importance of Science Education

This week is American Education Week, and since I am a strong believer in education as the foundation of not only a strong culture, but also a strong economic future.  I volunteered to spend most of yesterday speaking to the 7th grade science classes at my son's Junior High School.  For five periods, I basically got to impart some of my experiences to the future minds of tomorrow.  Because I put this together in a very short amount of time, I started with a transcript of what I wanted to say to them.  I did veer off in places, but this is very close to what I said to them.  I thought I would share.

-- transcript follows --

Hi, everyone, and as Mrs. Lang said, I am Dr. Davis.  I was trained as a scientist, and I'm here today for American Education Week to give you a little insight into how science education shaped my life, gave me opportunities, and why science is important and relevant to us all.

It started with astronomy.

When I was a kid, we didn't have the level of distractions that I think maybe kids do today.  But what the heck do I know, I'm an adult?

It was all about staring up at the sky and wondering what's out there, and why.

While I was growing up, space travel was in its ascendancy.  The space shuttle program had started in 1976, and there was quite a bit of hype about it.  We watched the launches in school, and every flight was pretty amazing.

So it was pretty easy to be a kid interested in science.  We were sending people into freakin' space!

So I was always fascinated with science.  By the time I was your age, I had a computer that I worked with.  No kidding.  My parents really didn't have a clue what it was, they just knew I was kinda interested in geeky stuff, so they gave me a computer.  So I started learning to program a bit. Nothing but little bits of logic here and there.  Text-based adventure games.  And of course, I played a lot of video games on that thing.

And chemistry.  Boy was I fascinated by chemistry.  I don't know what they do these days in school. Do you do chemistry?  You know where you take one kind of thing, and add it to another kind of thing, and then the next thing you know, it's this completely third thing?  It's basically magic, if you don't understand chemistry.  You've got some hydrogen, and you get a flame near it, and BOOM! There's an explosion.  And what's really happening?  You've got a bunch of hydrogen gas in the presence of oxygen gas, and then give it a little energy to get the reaction going, and boom!  And it doesn't disappear, that's the crazy thing.  It becomes water vapor!

If you think about it, that's a bit like smashing a kitten into a puppy and seeing a bunny come out! Seriously, this is what people think of when they think of magic!  Except it's not exactly a hanky turning into a dove...

So I really liked science from these three angles.

So, hey, here's all this crazy cool stuff that happens in the world.  We've got the far reaches of the universe we're looking up at and exploring.  We've got machines that you can tell what to do and they do it; I can't get my kids to do what I want, but I can tell a computer what to do!  We've got the power of transmogrification in our hands!

Well, don't you want to know why?  Well, we can kind of explain it with some references to some abstract concepts, but if you really want to get precise, and science does, we have to speak in a precise, logical language, and that, generally, is math.

Strangely enough, most schools kinda teach it backwards from what you'd think.  They give you all this math from a very early age.  Add this, subtract this, check out this equation, solve this system of linear equations.  Sines, cosines, tangents, geometric proofs with their smug little theorems and postulates, and you're like, "Well, what am I going to do with this?"  And they pack your head with a bunch of techniques for solving problems you generally don't have.

You know, beyond the situation where you have 25 apples and your sister eats 17, and you're left wondering... you know, who eats 17 apples?  How could this number manipulation seriously have anything to do with real life?

So where they miss all the kids in school is that they never tell you why you're doing math.  Sure, everyone needs to be able to add and subtract.  That's easy and obvious stuff.  You get paid for doing some work for someone?  Bank account goes up by that amount.  Want to pick up the latest call of duty game?  Do you have enough money?  You better be able to subtract.

But that other junk?  When are you ever going to use that, right?

Well one place that you most definitely use it is to talk about science.  See, math is kinda the language of science.  Science starts with curiosity, asking question about what, why, how much, when.  Science, at its core, is natural philosophy, a curiosity about the world around you and why it behaves the way it does.  It's a systematically defined methodology for asking questions and getting answers.  It's not really a belief system.  It's a formally developed way of getting at the causes behind the things you see in nature.

And inventing new ones!

One of the major pushes in science in the last century.  You know, my century, the 1900's.  Ha ha... I'm old.  One of the major pushes was to explore the tiniest of the tiny.  While some of mankind was pushing through the atmosphere and thinking about worlds beyond our own home, some of us were pushing into the deepest reaches of inner space.

Around 1900, just over 100 years ago, we'd just discovered the electron.  It took about 25 more years, another quarter century to discover the proton.  And then we started getting particle happy.  We found the neutron, and then we thought we were done.  But nope!

So we discover more and more particles that make up those things.  Quarks!  Up, down, strange, charm, bottom, top.  Whole families of particles that we can't see!  So science really runs the gamut from the very large to the very small.  From the very current, to the oldest times imaginable.

Well, I was pretty good at math, and I kept challenging myself to do harder and harder things.  In high school, at least for me, science started to get really specific.  An entire year of Biology, an entire year of Chemistry, but when I got to Physics.  Whew.  Man, when I got to Physics, I was hooked.

I mean, here's a discipline of science that basically aims to explain everything.  From the fundamental interactions of the smallest particles to the gravitational attractions and atomic reactions that govern motions and explosions in the farthest reaches of space, Physics has you covered.  No other branch of science is this universal, in my opinion.  Chemistry is very localized to things that are above a certain size.  Biology is limited to living things.  Astronomy is limited to the motion of objects through space.  And they're all kind of weird specializations of what Physics does.

At least that's how I read it at the time.  So in college, I go for a double major.  You guys know what college is, right?  And what majors are?  That's where you kinda pick what type of thing you want to do for the rest of your life.

But I didn't know what I want to be when I grew up.  And in a lot of ways I still don't, I suppose, but I knew I wanted to have a solid foundation for whatever I wanted to do.  And to me, that meant science, since it teaches you not what to think, but how to ask questions and how to find answers. There's no better framework for asking questions out there.  We have refined these techniques over thousands of years and they haven't changed.  It is the absolute bedrock for critical thinking.

So I set myself up for a double major in math and physics.  Thing is, when you take one of the so-called hard sciences like physics, you need a lot of math to understand it.  Like I said, math is the language of science, and to push your understanding of something, you have to get better at "talking" about it, so you take a lot of math classes, too.

And then I got to the end of college, and looked around and thought to myself, "Well, I'm really not ready to go get a job yet.  I think I should keep studying more science and get super good at it."  My goal was actually to become a university professor, because science education was really important to me, and as a tutor, I enjoyed helping other people learn, too.  And to do that, you really need a Ph. D. in the subject you want to teach.

But I was hedging a bit, see?  I was not sure that I would be able to be a professor.  There's only so many universities, and so many openings, so I wanted to make sure that I could find employment no matter what happened, so I reasoned that instead of going on and getting a Ph. D. in math, it would be better to continue on in Physics.

So I did my Ph. D. research... That's the thing about getting a Ph. D. is that you have to contribute to science first before it will contribute to you.  Science is kind of selfish that way.  You have to contribute some original research, something that someone has never studied before, before you are considered to have a doctorate in a field.  I did my Ph. D. research at Fermilab, right here in our backyard.

Have you ever been to Fermilab?  Even on a tour?  It's pretty amazing.  It's this huge particle collider where they collide protons and antiprotons (antimatter protons, you know) like a half million times a second at the center of these detectors that are five stories tall!  These infinitesimal itty-bitty no-see-um particles banging together so hard they light up a five story detector half a million times a second. Again, we're talking real world no-nonsense freaking magic here.  The ring they use to accelerate these particles towards each other is three miles around!

So yeah, I studied bottom quark production at Fermilab.  I wrote a Ph. D. thesis and got my doctorate.  But as I was getting to an end, I noticed science funding drying up in the United States.  Funny thing about doing science these days, is that to do research, you have to be fairly good with computers. There's no getting around it.  Scientists can't do that much these days with just a protractor and a pencil.  Sure if the power went out one day, they'd still muddle through, but computers are a huge part of life.

Think about how much data is generated at Fermilab.  Five hundred thousand interactions every second, running for, what three years?  How many seconds are there in a year?  Kids, you should know this off the top of your head.  It's something like pi times 10 to the 7th seconds per year.  Times three years. That's a lot of data.  No way we're writing that out in a notebook.

So right about the time I was graduating, the tech boom was happening.  1999, still just before many of you were born, right?  Well, the web was really blowing up.  Lots of people needed people who could write code (that is... program) on computers to write web pages, set up databases, etc.  At Fermilab, when the detector is taking data, it's not like you're writing the data points down as they come in.  Nope, to get at what really happens, you write lots of code.  Eight to ten hours a day, every day.  Doing cool data analysis, plotting graphs, trying to play detective and explain what's going on.

I figured that I could definitely help out in the programming world, so I took my Ph. D. and jumped into the world of business.  Thing is, the world of business is a totally different animal, but they still rely on people who can think very logically and rationally.  They need people that can do data analysis.  They need lots of people.

And those people can be compensated quite nicely for their efforts, because especially in this country, there's kind of a shortage of people who can think logically. I don't know if you know much about economics, but when you don't have much supply of something, and there's a pretty high demand, the price of that thing goes up.  Every company nowadays needs people who can think scientifically at least somewhere on their staff.  And there's simply not enough people that can do it.

And realize, that I'm not talking about an innate ability.  Everyone can think scientifically if you put in some effort.  In some ways it's a lot easier than being creative, because it's applying a very specific set of rules, a very specific set of training.  And those are all things that can be learned through effort and repetition.

So in 1999 I took my first non-science job as a software developer, though I suppose you could say that's still computer science in some way.  Ever since I have worked in the fields of insurance, finance, investing, and banking.  These fields not only need people that can write code, but people that also understand the sometimes complicated math and statistics that are used in those industries.

Could I have done all these things without a science education and background?  Maybe.  But the path would have been a lot harder, I think.

Couple parting thoughts on the current state of jobs and science education: do you have to wait to college to learn these skills.  No.  Not at all.  Go to code.org.  There's an event coming up December 8, where hopefully your teachers in tech will do this with you.  If not, ask them why not.  Like today, ask them why not.

Also computing people love to share.  There is no easier field to get into at any age.  Free tutorials about how to program are everywhere.  Write web pages, write simple games.  I work with a conference called That Conference, and we have a kids track every year that shows kids lots of cool technologies.  This year, we had an eleven year old girl showing other kids how to program.  Eleven years old and gave her first conference talk.  So what are you waiting for?

All right, so let's talk about science now. Today.  What have we done since those days I used to look up at the sky as a kid?

How about I tell you about just two of our most recent awesome achievements?  Hopefully you've heard about this stuff in the news or from your mom and dad, since they're kind of a big deal.  Real envelope pushing kind of stuff.

10/25 - Alan Eustace - he attaches himself to a helium balloon and floats himself 25 miles above the surface of the planet.  That's like more than here to the Morton Arboretum, and he went up, just him and a helium filled balloon, straight up!  When he was 25 miles off the ground, he says to himself... "Okay let's do this thing!" and I believe a small explosive charge separated him from his balloon, and he started to fall. On the way down, his body was going more than 800 miles per hour.

To give you a kind of comparison, when you fly on a plane, it's like between 500 and 600 miles an hour.  So he was basically going 30% faster than an airplane.  Just him himself.  No power, no rockets, just the awesome force of this giant lava-filled rock we're sitting on yanking him from his high altitude towards itself.

On his way down, he was going so fast he created a sonic boom that you could hear from the ground.
18000 feet, and his parachute deploys.  He floats safely to the ground, having broken a record that someone had set only two years prior with a similar stunt.  Now these aren't rednecks with a bunch of Wal-Mart balloons tied to a lawn chair.  These are professionals, and both guys who did this had teams of scientists creating their gear to safely get them both up and back again.

So that's just a few weeks ago.  Science!

Amazingly enough, we've got another story that was just last week.  Anyone know about this?  It was pretty huge news in the scientific community, and maybe you should get yourself plugged in if you haven't heard of it.

Do y'all know what a comet is?  Like what differentiates a comet from a planet?  Planets generally orbit in circles around the sun and are generally pretty large.  Comets, in comparison, are smaller and orbit the sun at a crazy oblique orbit.

The Rosetta spacecraft was launched in March of 2004.  Now this wasn't our spacecraft.  This was from the European Space Agency, but 2004.  You folks were only a couple years old at the time! The goal of this spacecraft was to be the first spacecraft to orbit a comet.  It's supposed to orbit this comet called 67P for 17 months.  And it just arrive there on August 6th, and entered orbit September 10th.  It orbits at a distance of 19 mi away.  That's closer than that Alan Eustace fellow was to earth, for a sense of scale.

But that's not as crazy as the story gets.  The Rosetta spacecraft is an orbiter.  But it was equipped with a lander, too!  So on November 12.  I'm not kidding you, it was totes just last week, like just a couple days ago, the lander Philae touched down on the surface of the comet.  Now this comet is about halfway between the orbits of Mars and Jupiter, so it's pretty far away. It's so far away that its signal takes a half hour to reach us.  And we just dropped a 220 pound robot onto a rock that's on the other side of the sun.

Now if that's not cool, I don't know what is.  Science!

Really, what I can tell you is that my journey started with the outermost reaches of the universe, looking toward the stars and wondering what was out there.  Sprinkle a little bit of science education in there, and I ended up researching the smallest known bits of matter, wondering what the heck was in there.

I want to finish up by giving you a couple resources on continued education.  People to add to your twitter feed, or even watch out for or whatever.

Seth MacFarlane, yes, the guy who created Family Guy, is an executive producer to the show Cosmos, starring famous astrophysicist Neil DeGrasse Tyson.  Bill Nye the Science Guy is another one who campaigns very publicly for science education.  He had on an amazing show years ago.  My favorite episode was the "Eye holes filled with glue" episode, which you can now find on YouTube.com if you search for it enough.

So I want to give a shout out to those people that dedicate their lives in a very public way, but I also want to give major props to all science teachers out there.  Mrs. Lang deserves your utmost respect for spending her life giving all y'all a leg up learning science, as it's one of the most powerful and enabling things you can learn, both for yourself and pushing the entire human race forwards. Without science, we wouldn't have such amazing things around us.  Remember, it's better to shoot for the moon and miss, than to shoot for mediocrity and make it.

I want to thank you for your time and attention today.  I know it's weird having someone come in and take over the class for a while, so I thank you for your attention.

Tuesday, October 28, 2014

Oh, Soylent. Where Have You Been?

Sunday night our family spent about three hours preparing, cooking, and cleaning up a pretty big dinner.  The entire time, I'm thinking, "This is madness.  Why should this have to take so long and be such a chore?"

The short story is that I was missing my Soylent.  I ate nothing but Soylent for a week a couple weeks back and documented that experience, and I found it rather freeing.

Pretty much every meal I've prepared since then, even juicing, has been an exercise in patience.  I enjoy food prep. I really dislike food cleanup, and they kinda go hand in hand.  I missed the simplicity of going to the fridge and pouring myself a glass of lunch.

Note: I was an early backer of Soylent.  I love the concept, and despite the criticisms, it's working for me.  My first batch was Soylent 1.0, and I really enjoyed the flavor and texture by the end of things.

I did become a subscriber.  Once a month, a week's worth of Soylent will be dropped off at the house, meaning that I can enjoy a "Soylent day" about twice a week and be happy with my occasional vacation from the tyranny of cooking and cleaning up my own meals.

This new batch was Soylent 1.1, and they certainly are taking care of their repeat customers, as it shipped a week after I ordered it.  New customers have to queue up for the stuff, while I get the leisure of the monthly subscription being delivered without fail.

So how does Soylent 1.1 stack up to the previous formulation?  I have a couple reactions.  One, the texture of the drink is a little smoother, as if the tiny oat flakes are more finely chopped.  I am not sure I like this new mouthfeel.  It makes the Soylent feel a little thinner than the previous version. Second, 1.1 is not nearly as sweet as the previous version.  I heard it was made that way to be a little easier to flavor the way you want it, but I preferred the slightly more sweet variety.

I still feel it's kinda odd to want this liquid food.  It seems crazy to me that the food I'm eating is being versioned like software, but overall, I find myself drawn to it.  The gas we pass is still strong with this formulation, but I don't intend to do it more than a day at a time, so I don't expect it will reach the former levels of toxicity.

Tuesday, October 21, 2014

Where is the Marketplace for Part-time Work?

I know I've hit the subject of part-time tech work in the past.  But that was over a year and a half ago. In tech, everything moves at the speed of light.  As a result, you would expect that any question I would have had wayyyy back then would have been answered by now.

But... crickets.

I like to think there's no problem so big our development community can't figure a way out to solve it.  We're an extremely well-educated and curious bunch.  We have many entrepreneurs in our space. We have extremely diverse interested.

We've solved the problem of getting around town using spare capacity in cars (Uber), and solved the problem with staying somewhere else where there's spare capacity (AirBnB).  And there's a question here about the legality of those.

Why then is it so difficult to manage the excess capacity in the world of development?  I don't know of a single development team that doesn't have lower-priority tasks that need working on, while the full-time, primary employees and contractors do the heavy lifting.  Things like fixing the build server, updating installed dev tools with new versions, doing low-priority bug fixes that keep your site from looking really polished.

If I were a product team manager, I would love to have access to a part-time off-hours person that could pick up some of these small tasks and run with them independently and check them in, fully tested.

But it's weird.  I hear nothing on the part-time work front.  I do see the occasional developer wondering, as I do, about the possibility of moonlighting, but all I ever hear as answers is "Have you heard of oDesk, eLance, freelancer.com, etc.?"

I have heard of those, but serious articles warn against being either a client or a developer on one of those sites.  The warnings make it all sound as if it's a big scam.

Furthermore, this whole things seems like a good consulting model.  If you're a consulting company, why not have some extra folks on the bench to do short-term part-time staff aug at lower cost to your clients?  A way to scale up and down when you don't need a full FTE to get some things done? Consulting agencies, have you considered doing this?

I'm still focused on why we're able to solve spare car and space capacity with technology, but we can't do the same with technologists.  Is it that it's too hard to commoditize development work?  It's easy to specify a bedroom or a space in a car, but not a build system, so it's hard to figure a price for the spare capacity?

I often hear as an answer to the "I've got some time evenings and weekends, how can I leverage my skills to do a little work and get compensated?" question: "If you've got extra time, there's always open source frameworks begging for extra help getting features implemented.  Why not do that?" Sure, there's a lot of things I can do, technical and otherwise, if I consider volunteering an option. But when I'm looking to trade spare time for money, it seems that the well dries up.

What do you think?  Feel free to drop a line in the comments section below.

Thursday, October 16, 2014

My Soylent Experiment : Post Soylent Blues

Ok, so as I was drinking my last bit of Soylent last night, I was struck dumb by a thought:

"I'm going to miss this little brown drink."

I could hardly believe it.  I'd come to appreciate the texture and the flavor.  I was actually enjoying every glass.  I wasn't really interested in flavoring it differently, or making it into a shake.  It was good enough for me.  The gas problems were an annoyance, sure, and I did get a little heartburn toward the end, but for the most part, I was loving not worrying about food.

Contrast that with this morning.  I got up, knowing that I was out of my beverage meal, and decided to chop up some mushrooms and crack some eggs into a skillet.  10 minutes into the process, I was thinking to myself, "Oh jeez, c'mon already!  Why is this taking so long?  Why am I dirtying all this cookware?"

And then eating.  To stop what I was doing to pick up the bowl and fork and take a bite felt... well... awkward.  It was a bit crazy to me to think that I'm stopping what I'm doing instead of taking a sip of a simple drink.  Making and eating breakfast took about 20 minutes out of my day.  And at the end of it, I wasn't really any more satisfied or happy about what I ate than when I drank my Soylent.

So yeah, I miss Soylent already.

It's pretty great that I got an email from them saying that my next shipment should be here in a few days, and it is the new formulation (Soylent 1.1), so maybe the gas will be less an issue.  I won't do it 100% exclusively, but I'm sure happy to have the option to forego meal planning and still have something good.

Wednesday, October 15, 2014

My Soylent Experiment: Days 6 and 7

After five days of writing, there's really not much to say.  I've enjoyed having a break from cooking and cleaning.  I've enjoyed losing a couple pounds.

I even enjoy the product, texture, and taste.  I think it's a good product.

Ultimately, though, I could not exclusively live on Soylent.  The "industrial sulfuric hate" gas that comes with the product is not worth it - not living with a family, and not even while living alone.  I'm going to pick up some more and use it as a supplement, maybe doing a day or two a week on it, as it is really easy and it does taste good.  My daughter had a sip and really liked it.

So thanks to everyone for their support.  I think I am going to try to do a little juicing to augment my clean eating diet.

If you're interested in eating healthier, check out "Fat, Sick, and Nearly Dead" and "Hungry for Change" on Netflix.


Monday, October 13, 2014

My Soylent Experiment: Day 5

As I mentioned in my first post, I'm overweight and have an unhealthy relationship with food.  It would be crazy not to think of Soylent as a possible weight loss vehicle.  If it provides all my nutrition in a measured number of calories that also happens to be an amount of calories that would lead itself to weight loss, that'd be ok, right?

Yep.  Fine with me.  As I said before, that's not entirely the goal, but it is in the back of my mind. Weight loss, when you're overweight, is always in the back of your mind, to some extent.

That said, while I am certainly trying to make positive changes to my life by eating clean, and by trying Soylent, there's always the little motivation in the back of my head that life would be better if I were, say, 33% smaller.

Friend and That Conference colleague Clark Sell recommended that I watch a movie last week called "Fat, Sick, and Nearly Dead".  It's on Netflix, so it wasn't a problem to watch it.  Hulu seems to have it in its entirety online, so there's really no excuse not to check it out if you're interested.

The movie is about how two men with similar physical conditions used juicing to get down to healthy weights from fairly precarious health conditions.  One bloke from Australia sets off on a 60-day juicing fast while driving across America, and while he's on his journey, meets another fella with similar conditions and convinces him to juice, too.  They both lose a couple people's worth of weight over the course of years and become fairly well known for it.

But the juicing thing seems very Soylent-esque.  And given the gas we pass on Soylent, possibly I'll try a juice cleanse in the near future.  Be sure to read about it here if I do.

So, to the point, I appear to be down somewhere between 4-5 pounds over last week. That includes a day of liquid diet, however, but I do believe that calorie restriction is partially responsible for that. We'll see how things shake out.


Sunday, October 12, 2014

My Soylent Experiment: Day 4

One thing I didn't expect with this Soylent stuff, though a peek on their online forum confirms it's common, was the associated gas.

Note, I'm not talking about gas pains here.  The issue is the actual emitted flatulence.

And it's a deal breaker, in my book, for a Soylent-only diet.  Started to have problems with it on Day 3, but given my long term experience with flatus, I dismissed it.  But as of today, there's no doubt as to the source.

And when I say deal-breaker, I mean deal-breaker.  Until they get the formulation under control, there isn't anyone that's going to live with me while I am emitting these particular toxic clouds. They've been called "mustard gas" and "sulfarts" by folks on the forums.  One person even said that "I've had to wash things several times to get the sulfur smell to go away."  That, my friends, is a deal-breaker in action.

A couple of folks have suggested that the gas is coming from drinking it too rapidly.  After all, 670 calories is not intended to be pounded down in 30 seconds, despite the ease of doing so.  We'll see, as I'm trying to drink more slowly now.  But I think that this particular effect leads me to the idea of drinking Soylent only part-time.

A couple parting thoughts for day 4.

I've given you my impressions, but I'm not the only one interested.  See what other people have to say about Soylent and what the experience is like.

Note that there's been a lot written about the taste and the texture of this foodstuff.  Some folks have had a bad experience. Some reviews have called it gross.  One thing that's certain.  The company continues to refine Soylent to make it better for everyone.


My Soylent Experiment: Day 3

Hm.  Day 3.  It's almost fallen away into the background.  I'm not really thinking about eating.  We had a lot of errands to run today, so I wasn't home much, and I'm just happy not to have so many dishes to do.   I feel normal, and feel like I could probably continue drinking Soylent indefinitely.  I don't have any intention to do that, but I have to say, it's ok for me, at least on day 3.

When I tell people I am trying to eat nothing but Soylent for a week, I get a lot of questions, and I thought I'd create a Frequently Asked Questions list.

Why would you do that?
Well, I have already explained this in detail, but it comes down to needing a way to keep food from taking over my life, a way to ensure I'm not taking in too many calories, and managing my time.

Wouldn't you miss chewing?
I haven't been drinking Soylent long enough to know about me personally.  Maybe.  But in the first few days, it's not been a big deal.  I chew gum if I want to, but it really doesn't come up.  You really do forget about eating a bit.

Wouldn't you miss flavor?
Well, I was on a pretty restrictive diet prior to starting Soylent, so it's not like I'm going from pizza and burgers to Soylent.  I went from a pretty bland salt-free, sugar-free, dairy-free, low-carb eating plan to Soylent.  I was already drinking protein shakes every day, so this doesn't feel that unnatural. Seriously, when you aren't going to eat or drink anything else, you stop thinking, "Hm... what do I feel hungry for?"  You don't wonder what's going to be for dinner.  It's a bit surreal for someone like me who would plan food days in advance.

This is all you eat/drink?  
For the course of this week, this is the only nutrition I'm planning to have.  If there's any issues where I feel I need to have something else, I will, but so far, that's not the intent.  I do make decaf hot tea a few times a day.  I drink water all day, too.  I do both of these things on any average day anyway.

Are you ever going to eat food again?
According to the explicit goals of the folks behind Soylent, I shouldn't need to.  The founder of the company appears to have had nothing but Soylent for at least a year.  But I have no intent of eating nothing else for the rest of my life.  That's not the point, either.  Yes, this meal replacement is a possible food replacement, but my hope is to use it to simplify -- to have the occasional Soylent day, to ensure I'm not overdoing the calories.

Why would you subject yourself to such a restrictive diet?
I'd argue that we all make compromises when choosing what to eat.  If we all ate what we wanted and only what tasted good, no one would ever eat broccoli.  Sorry, broccoli, but you suck.  This isn't a restrictive diet at all.  I can eat whatever I want, whenever I want to.  But I recognize that left to my own devices, I can't make the right choices.  I'm choosing to explore this option for myself so that I can be healthy.  Another arrow in my quiver, another bat-tool on the utility belt.

Isn't it unhealthy to eat just a bunch of chemicals?
The word "chemicals", like the word "toxins", is a relatively meaningless term.  Everything we are and everything we consume, is made up of chemicals.  There's a difference between Vitamin C (a chemical) and sulfuric acid, in terms of useful nutritional content, but make no mistake: everything you eat is a chemical.  A vitamin extracted into a pure form in a lab doesn't mean it's different from that same vitamin naturally occurring in nature.  I guess my point is: you shouldn't be scared into reacting based on scary-sounding name-calling.

But seriously, how is this possibly healthy?
I don't claim that it is.  But there are people like me trying it out now, and a strong body of work should be forthcoming.  I like articles like this one, that provide the collected data.

Why not drink Ensure, or Slim-Fast, or any of the other things that claim to be meal replacements?
Soylent isn't formulated to replace a meal, or keep you from dying when you have stomach issues that keep you from eating solid food.  It's intended to be a theoretical replacement for food.  Each serving doesn't have 100% of your daily value of vitamins.  Each serving has a third of your daily calories, and each serving has a third of your recommended daily intake.  Slim-Fast and Ensure are not the same thing.  Check this thread for more information.

Saturday, October 11, 2014

My Soylent Experiment: Day 2

Well, I decided to start work about 45 minutes early today.  Why?

I was full of energy.  Energized in a way that I've not been in weeks.

I won't say it's the Soylent.  I don't believe it's the Soylent.  Statistically, I'm entitled to an energized day now and again.

All I can say is that it didn't prevent me from feeling great.  2000 calories yesterday, a day that included a 5k walk/run, and I don't feel tired, run down, or anything.

I'm not hungry either.  Like I posted earlier, my immediately preceding diet set me up for success, however.  It's pretty easy to go from a diet of nutritious food you don't like to a liquid diet where you're not thinking much about food.

About halfway through the day, I was about halfway through the pitcher.  I took my normal lunch hour, but I didn't spend half of it scrambling for food.  I got some extra chores done, putting away laundry and dishes so that's stuff I didn't have to do later.

I did get hungry around dinner time.  Another glass of Soylent, however, and I was set for hours.  I finished the last bit around 9 p.m. and prepared the pitcher for the next day.

One thing occurred to me today.  Over the coming week, I will probably only dirty a handful of dishes.  I won't spend any time cooking, cleaning up, or doing dishes for me at all (still will have to help out the family).  If I were a bachelor and wanted to eat like this full time, I wouldn't need the following:
  • A dishwasher
  • Huge amounts of china, silverware, glasses
  • Large number of pots, pans, tupperware, kitchen gadgets
  • Large number of cabinets to house all that extraneous stuff
  • Anything more than a small nominal refrigerator
Now obviously, this is a thought experiment taken to extremes, but it has some useful applications. Life is not so much a hassle that I don't want a kitchen anymore, but what do you do when you don't have a kitchen?  What if you live in a tiny house, where every last square foot of space counts?  What if you live in a third-world nation, where power is spotty, and you don't have easy access to refrigeration?  Soylent or similar formulations could be a real boon.

Anything different from the average is scary and weird.  I've gotten some pretty weird responses to saying, "I wanna try that Soylent stuff."  But remember, everything that we do everyday was once new and decried as a stupid fad.  

Don't be a get-off-my-lawner.  Embrace change.  Try new things.  You never know where the thinks will lead you.

Thursday, October 9, 2014

My Soylent Experiment : Day 1

So this morning, I pulled the shaker of Soylent out of the fridge.  I mixed it up last night per instructions.

I was a bit disappointed with it off the get go.  The water and powder had separated overnight.  The mixture was beige, and having separated overnight, it didn't look appetizing.

But I did as the website said and shook it up vigorously.  It turned into a smooth beige mix. Sometimes the community refers to it as a slurry.  To me, it didn't look much different from any of the other dozens of protein or meal replacement shakes I've tried in the past.

So I poured myself a tall glass of chilled Soylent and took a sip.  My first impression of Soylent is that it tastes like just about every other meal replacement shake out there.  It's mildly vanilla.  It smells a little like a protein drink and a little like toasted oat ring cereal.  Not at all unpleasant, really.  They have gone to great lengths to make it pretty flavor neutral, and it is.

The texture got me a little bit.  It was a little gritty and chalky in consistency.  I see many similar complaints on the online forums.  But it wasn't too bad.  Also, compared to other protein powders and similar stuff, it was gritty, but usually I use milk or soy milk with those.

Another thing that was a bit surprising is that it doesn't look like you have enough to eat for a day. The pitcher isn't very large.  I poured a full glass, and it was maybe 1/8 the pitcher.  Given the pitcher is 2000 calories, that was about a 250 cal glass.  So a decent breakfast snack.

On the second time I tried blending it with ice, thinking I'd end up with a Soyleccino, or a Soygarita. I added too much ice, however, and it came out so thick, I basically had Soylent sorbet to eat with a spoon.  That was good too.

The rest of the day passed without incident.  I was never really hungry, and I took my son out for a 5k walk/run and don't really feel anything other than normal.

Day 1 in the bank.  Time to mix up food for Day 2.

My Soylent Experiment: Why Soylent?

I have a confession to make.  I'm addicted to food.  More specifically, I guess I'm addicted to overeating.  In a situation where I allow myself to eat anything I want, I find myself overeating.  I don't have an off switch, it seems.

When you fight something for thirty years, you tend to start thinking it's not just about willpower. Those that know me, know willpower isn't exactly my issue.  I have willpower.  I can stay on a pretty strict eating regimen, but only if it's super strict.  As soon as I get cheat days, or cheat foods, I cheat. That's the way it is.

It is in this way that my problem is like an addiction.  I can't have "only one" slice of pizza or "only one" scoop of potato salad.  If I have one, I'm having more, in the same way that a former alcoholic can't have "only one" glass of wine, or a former heroin addict.

But food is ubiquitous and not intoxicating (it could be argued otherwise), so how do you keep from eating too much?  Calorie counting?

I'm a complete calorie counting failure.  I have tried apps.  Many people have seen me try apps and fail eventually.  It's boring, difficult, and fraught with error and estimation.  There are easy ways to cheat yourself without realizing it.

If I want to maintain my weight, I have to go cold turkey from really high-calorie-density pleasurable foods.  And that brings me to a dilemma.

Because food is everywhere.  It's part of the social contract.  Go to someone's house?  Here's some food.  Refuse?  It's insulting.  Try to explain that they've just done the equivalent of offering a recovering alcoholic a beer, and they can't understand it.

So a while back, Nicole found a medical group treating "metabolic syndrome".  It sounded super hokey, and I still don't necessarily believe I have a "syndrome" beyond "I really really like cheesy pizza", but they offered her a restrictive meal plan that made sense to me.  It is basically a super-low-salt, no-dairy, no white carb, fresh foods only, clean eating program that takes all the joy out of eating.

Seriously.  It becomes a real chore to eat.  On such a restrictive program, I found it hard to eat anything that tasted remotely good, and everything you eat is so low-calorie-density that it's almost impossible to take in too many calories.

And it worked!  It worked really well!  In the course of a year or so, I'd lost about 50 lbs and was feeling really great.  It mainly worked because food wasn't on my mind all the time, because I didn't like what I could have, so it broke the cycle for me, and I stopped thinking about food, except when I was really hungry.  When I can't choose what I eat, I think about eating less, and I actually eat less.

And then the day came where I started cheating.  A day a week at first, and then that day wasn't convenient because there was a party somewhere on a different day.  Once off the track, I couldn't get back to the diet.  My resolve crumbled.  It took a couple of years, but the weight returned, because the food returned.

So at the beginning of September this year, I went back on the metabolic diet.  It sucks for the first week, as your body readjusts to not having so much sugar and salt on everything, and then it becomes a background hum.

And it's working again.  Down a few pounds and the clothes feel looser, and I'm starting to feel better, but on this diet, you end up spending a fair amount of time trying to balance your diet.  You can't eat celery all day, or have a day of only ground beef.  The prep, the cleanup, buying too many vegetables and they go bad; it's all coming back to me.

I remember that feeling from before - that my resolve will crumble before the work involved with eating healthy.  I remember thinking, "If only there were a way to get a balanced set of nutrients without having to think about it."  Sure, you can go the ultra-expensive route and do Nutrisystem or something similar. That would work.  But I'm not Rockefeller either.  Who's got those kind of megabucks lying around just for their food?

Then I heard an episode of Penn's Sunday School where the gang discuss the fact that dogs and cats eat the same balanced meal every day, ever meal, from the time they become adult dogs until they die.  And once you find a brand that works for your pet, you stay with it.  They don't have or need variety.  They need nutrition.  And the folks on the show speculated about the creation of human chow.

I don't remember whether this episode came before the idea of Soylent or after, but it really hit home. I decided to become an early backer of Soylent, to reserve me a week's worth of the stuff.  I figured that it was worth a shot for me.

Soylent is designed as a healthy meal replacement.  You apparently can substitute a cup of this stuff for any meal that you don't want to bother with?  Too tired to cook?  Shake up a glass and feel confident you'll get a balanced set of nutrients to replace that meal with.  Tired of doing dishes?  Take a week off and only wash the shaker and your glass.

That's the idea anyway.

Well, my box of Soylent came about a week ago.  I decided that I'm going to commit to the experiment of replacing my meals for a week with Soylent.  Note: I was already on a pretty restrictive diet, on which I have a protein shake a day, so I figured that this wouldn't be a big change for me compared to many other people on the web that have tried it.  I've been through the "three days in, and I'm crabby and hungry phase."  I've even had a day on a liquid diet in the past week, so I figure it should be easier for me than just about anyone else around.

Time will tell.  The experiment begins today.  I'll log my experience.





Friday, October 3, 2014

What Good Is Code History?

Seriously, I'm asking.  I had this discussion with a colleague the other day, and it left me feeling unanswered, so I'm curious to hear some anecdotes.

I assume that since it's 2014, we are all using some kind of source control repository.  One of the main reasons we have repositories is to keep our code safe in case something happens to our dev machine.  If you didn't have a saved copy somewhere, having a hard drive failure would be catastrophic to your organization.

One of the ancillary features that comes with source code control is incremental history.  As source code files are added, deleted, or changed, source control repositories dutifully keep a history of all changes, and they keep that information indefinitely.  I have always assumed that was a good thing to have an indefinitely long history of all code changes since inception.

Now I'm not so sure.

At face value, the code history is about finding how things were in the ago, some indeterminate time in the past.  They don't represent the production codebase of today (especially if you release features frequently).  In a lot of agile shops, the code in them is stale after only a few weeks.

Some companies have processes that theoretically allow you to pick any date in the past and redeploy the entire system as of that date.  You have to have code history to enable this.  Unfortunately, despite unlimited rollback being cited to do any number of things in the software industry, it's rare that rolling back is actually plausible.  DB changes, business processes, bug fixes that have been made since that date - those can all torpedo the idea of rolling back to some generic past date.

Maybe there's a legal case for keeping code indefinitely.  I'm not aware of such requirements, but I can imagine that maybe certain industries/entities may require it.  If it's a requirement for you, I give it a pass, although I still question what the actual benefit of digital hoarding is.

When I think about the uses I've had for code history, it's almost always been to research something that the team is certain was working at some point, and we have a new bug reported.  The purpose of the research is to look at the history of the file and find out not only what change was made who made the change.

Why does who made the change matter?  The only thing that you should really care about as a team (assuming you're all competent developers) is whether the code works, right?  Something is broken, and we want to fix the problem.

One reason you might want to know who made a breaking change is to ask what the thought process was behind the change, and whether they have a reason that the change wasn't made differently. I've never seen this reasoning hold up in practice.  Most often, the person responsible has implemented dozens of features since the one that's broken and doesn't have the slightest idea why something was done a particular way.  Also, frequently, the person making mistakes can feel checked up on or targeted.  Making team members defensive or concerned about not being valued or thought less of will not help the team.

Also, figuring out who made the breaking change has the effect of personalizing the code, when it's actually the team and the team dynamic that allowed the change to be made.  We want to keep things as ego-free as possible.

So is it all about blame, then?  Is that the only reason you would want to know who made a change? I'm on the fence about that.  Modern development shops all have some kind of automated testing associated with their development cycle.  While it is not impossible to introduce breaking changes into well-tested code, it should certainly be difficult.  When implementing a new feature, if the code you're changing isn't already tested, it's your responsibility to get current behavior under test, and then introduce new tests for the new behavior.

Strong teams hold each other accountable for not mistakes, which are unavoidable, but for process. If there is an indication that, say, testing process was subverted, it's useful for a team lead to pull a person aside and say something like, "Hey, I just fixed a production bug, and it looks like you may have been involved with this code in the past.  I noticed that we could have had better test coverage of the feature, so let's check out what I did to test this code.  I'd value your insight, in case I'm missing something."  It could be that the feature was urgent and the developer on the story was too afraid to ask for help testing.  Turn the problem into a teachable moment without belittling or threatening and the team member levels up without fear.

I'm curious to hear what y'all think.  Could you live without your source control history?  Why or why not?  What other uses have you had for digging into the ago?


Tuesday, September 16, 2014

Embrace the Joy in Simplifying

Today, I'm dropping about a dozen tables from our database.  The tables are holdovers from a legacy bit of the previous system that were needed as scaffolding to get the new system in place, but are no longer necessary.  They are not used for anything, and the data are not useful in any way or needed for audit.  Then again, they were not really in the way or costing us anything, right?

And yet I feel a great deal of joy getting rid of them.

Thing is, all team members knew that we needed to do this maintenance, and no one disagreed that these appendix-like structures were no longer needed, but getting priority to clean them up was difficult. The general feeling was that the unused code, data structures, etc. weren't really hurting anything.

There's been a good deal of study around clutter and anxiety, and the internet is awash in articles that link the two.  A system that has a lot of old code and data structures is akin to a hoarder's house full of clutter.  It causes anxiety.  And there are very serious parallels between code clutter and home clutter.

So let me be clear: cleaning up your messes is a priority.  You don't generally think about it, but every time you want to go look something up in the database, your eye has to scan over those legacy entities.  There's friction there.  Do a code search for a class?  You find more entries than you need to. There's visual clutter there that takes time to scan.

Yes, you may not use those classes anymore, but they have references to your framework and other classes, right?  If you make a change, there are more changes you have to make to get things to compile, more places you have to make sure you don't make a mistake.

Having all these extra classes and structures lying around creates a death by 1,000 tiny little cuts. Deal with this infinitesimal time waste enough times a day, and it adds up to real time wasted and real productivity impacts.

So clean up your codebase.  Make it a priority to remove outdated structures that are either legacy or the result of overengineering (which I define as ignoring YAGNI).  Minimizing the number of tables, objects, views, whatever in your system makes the system leaner and more easy to deal with.  It minimizes cruft and code clutter and makes future coding easier by reducing friction.

Better still, removing old untested code increases your test coverage metrics for free!

So please take some time and load some of these stories into your backlog today.


Tuesday, September 9, 2014

Monday Morning Motivation

Monday mornings are kind of a drag, right?  Garfield hates Mondays.  "Looks like someone's got a case of the Mondays."  You've just come off enjoying your weekend of relaxation, sleeping in, home repair, family togetherness, or whatever else makes you happy, and now that's over.

If you have trouble with Mondays, it could be that you're not happy with your job.  Having a job that you're excited to go to is a good way to get motivated and not actually dread the end of the weekend. If you aren't that happy with your current gig, you should quit your job.

If you do love your job, but still the idea of waking up early and getting all duded up to commute to your place of work has you dragging a bit, here's one tip to make that Monday morning a little easier.

When you're finishing up your work on Friday afternoon, figure out what you want to work on early Monday morning and leave yourself a breadcrumb to it.  In the development world, my favorite mechanism for this is to pick the next story off the board and write a unit test for it.

Write a failing unit test.  Leave it failing locally.  Monday morning, you'll come in and see your little NCrunch indicator telling you that you have a failing test, and you'll know exactly what you need to start with.  Get that test to pass.

This is also pretty good for keeping yourself focused, too.  Instead of diving into email in the morning, start out by getting that story done.  You'll feel great about having something accomplished under your belt, and it sets a great vibe for the week.

Sunday, September 7, 2014

Creating an Ego-Free Environment

For years I've been talking to my teams about "ego-less development".  I don't remember where or when I heard about the concept, but I thought I'd take a couple minutes to talk about what that means to me.

For me, ego-less development starts with the recognition that not everything is about me.  All of this code we write daily is code written by us on behalf of and for the organization that employs us, and for which we are paid a (hopefully) fair wage.  When we are done writing it, we do not own it.  It is not who we are.  The idea behind an ego-free environment is that you check your ego at the door, and do your best to produce the best software for the company the best way you know how.

You can think of software as commissioned art.  Not every piece is perfect, but when the project is over, the piece sits in the living room of the commissioning person to be enjoyed by that person, not taken home.

When you take the perspective that the code that you write is not yours, it becomes a lot easier to decouple yourself from the code you write.  Many people take criticism of their code as a criticism of their own person.  While criticism on your code can include a criticism of your skill set, it's should not be intended to suggest anything wrong with you as a person, even though your mind might translate the criticism.

The translation works like this:  What's said is "Well, I see something wrong in this code here." What is heard is "You wrote this code.  Something is wrong with it.  So something is wrong with YOU! STUPID!"

If you're a team lead, you need to make sure that the culture changes so the message comes across correctly.  Here's a couple things I've found really helpful in cultures I've been part of:

Freely admit your own mistakes:  Everyone makes them.  It's no fun to make them, and worse to have things blow up because of something you did.  When things do explode, fess up.  No excuses. "I did that. I'm really sorry."  You're looking to demonstrate the correct approach that you're looking for. Lead by example.

Let people know it's okay to screw up:  While habitual bad performance has to be addressed, not every little failure is something team members should feel like they have to fret over.  Be honest. Don't gloss over it by saying it's okay.  "Yes, you screwed up.  We've all been there.  We'll do what we need to fix it."

Don't map ownership of specific code to people:  If there's a bug found in the system, there's a tendency to say something like, "Oh, looks like a bug in your code.  Guess you better get in there and fix it." Once the code is integrated, it's company code.  You don't own that code.  Anyone can go fix it.  Throw the bug in the backlog and let the next available dev snag it.

Use positive language, even when disagreeing:  Yes, this is software, and at some point you've got to ship.  Sometimes there are differences of opinion, but you lose the instant you say something like "Well, the smart thing to do is..."  That's another way of calling someone stupid, if they legitimately disagree with you.  Language and communication sets the tone.  Make sure that you phrase the argument in terms of risks, rewards, costs, or benefits.  "The problem I see with approach A is that X, whereas this other approach [note: not "my approach"] avoids that problem."

Let's say you even get to Nerdvana and have an ego-free environment.  Never forget that there are scores of cognitive biases out there and that at any point, you may be falling prey to them.  Keep an eye on your own communication to ensure that you're truly communicating the way you would like. Even in an ego-free environment, people still can be defensive.

Not many environments work as one-person bands.  Great work takes great teams.  Great teams are formed by trust.  Check your egos at the door, and build that trust in your environment today!

Sunday, July 20, 2014

Why I'm Giving Up on Windows Phone

I love Windows Phones.  I really do.  I picked up the Lumia 900 a couple years ago, and replaced it with a Lumia 925 when that one broke after two years.  But I think I have to leave Windows behind, and here's why.

In the ago:

I've never been what you'd call a "gadget guy".  Sure, I like the cool toys of every generation, but generally don't want to make it priority to buy gadgets as an early adopter.  I've got two kids and not a butt-ton of income I'm willing to consider disposable enough to stay at the forefront of the technology adoption curve.

Cell phones had been out for years before I got one.  I'm still not sure I did the right thing.  It's an expensive thing that tethers you to the beck and call of both work and home in ways that were impossible before.  I love and crave asynchronous communication in my life, and telephone calls just aren't that.

But I did it, because peer pressure in the workplace, and all the cool kids were doing it.  And I ended up with the most modest little brick phone I could find.  It took me years just to adopt the "cool" phones you could flip closed to hang up on someone when you were angry.

I can't even remember what year it was that I got my first smart phone.  One of my buddies had been extolling its virtues for a while, and I eventually caved.  And in that moment, my life changed.

iPhone era:

I think it was the iPhone 3G.  It was many, many versions ago, but boy, was it handy.  It took a relatively resourceful individual and made him into "problem solving man"!  Stuck on the road and didn't know where to go?  Shoot, I got GPS, y'all!  I could get my email via phone!  I could search the internet to find anything! I could look up movie times! 

And everything was great.  For a while.

Compared to the desktop, the application model seemed so limited.  I didn't like having to close one app to open another.  I didn't like the app store experience all that much, and I despised iTunes, with its huge PC-slowing bloatware (I haven't ever owned a Mac - I hear that integration is better).  Battery life just wasn't that great, and a phone without a solid battery becomes a useless brick when the charge is low.

But the last straw came when my wife's iPhone was stole while she was out and about.  Someone snatched it right out of her purse (this was back when digital devices were apparently worth something on the black market).  We called AT&T.  We called Apple.  According to them, nothing they could do to brick the device when stolen.  Nothing they could do to protect the information on the device.  Nothing they could do to even help us restore the information, because iTunes supposedly stored all the useful information for a backup in a binary format that couldn't be read, except to restore the file onto a new iDevice.

We did not want another iDevice.  The whole experience left a bad taste in our mouths, and we decided to try the new OS on the block: Android.

Android era:

So we did our research and decided that for our next his/hers phones, we'd each go for the Motorola Droid X, the media darling of the day.  And we liked Android.  Both of us, which is pretty rare when we can agree on a technology.

Android was slick.  The app store worked.  Everything synched to our gmail, our contacts, it ran all the apps we wanted (well, not really, because Android wasn't the big player it is today back then, but enough of them).  It all felt slick and non-proprietary and easy to use.

But ultimately it wasn't for me.  It seemed that the battery drained way too fast.  Over the course of the couple years I owned the Droid X, the performance seemed to get worse and worse, like a Windows PC all loaded up with background cruft.  You'd tap an icon and nothing would happen, so you'd tap it again, and wait and then two taps would register and who knows what the effect was going to be?  Cloud apps weren't quite there yet, and to try to figure out how to get all my disparate information off and refresh the whole phone seemed ridiculous to me.  There just had to be a better device.

Enter Windows Phone:

I think it was at Codemash 2012 that I was expressing this displeasure to Clark Sell, Min Maung, and Lwin Maung. They were all talking about the new Lumia flagship device that was launching or had just launched. This was the Lumia 900, and it was going to be great.  I think they all had Lumia 800 and in playing with the phones, the whole OS just felt right.  It felt intuitive, easy to use.

I did my reading.  This phone was optimized for usability.  The OS gave priority to touch, so that even if something was processing heavy, if I tapped the phone, by gum it was gonna respond.  I was in control, not the currently active thread, and it felt like it.  The OS managed threads ruthlessly, and if I'd not been back to an app in a while, it would hibernate the thread and keep the resources running clean.

The phone also seemed optimized for battery life, too.  Black screen was the default.  You don't think much of it, but a black pixel is off.  A white pixel is on.  It does affect power consumption for an OLED screen, like the Lumia 900 was going to have.  Further, the Windows Phone has a lot of nice features about degrading services gracefully as power gets lower.  It extends the battery life for seamlessly turning off services for you.

Overall, the phone just worked.  

So I got one, and it was amazing.  It was quite literally everything I wanted a phone to be.  Great battery life, great threading model, meaning it was always responsive.  Uploaded pictures to the cloud.  Pretty great camera for a phone.

Upgrading to the Lumia 925:

I eventually upgraded from the 900 to the 925.  The 900 didn't support the push to Windows Phone 8 or whatever the release was called, and that had some features that I thought I wanted.  I put it off for a while, but ended up with an issue with the headphone jack that would have required a repair or refurb, so I figured, "Why not?"

And things were good again.  Migrated my data over to my new phone, got the Windows Phone 8 OS, and all was hunky dory.

Now, one thing should be noted.  All this time that I'm loving my Windows Phone, I'm not loving some of the choices it's forcing me to make.  I like to listen to podcasts, and a lot of podcasts simply aren't available on the Windows Store.  I made do, because I only have so much time, but it sure made it hard some days to find something to listen to.  

On top of that, RunKeeper, a popular program for GPS tracking my runs, dropped support for Windows Phone.  Broke my heart, really, because it's not as if they didn't support Windows Phone.  They stopped supporting Windows Phone.  They betrayed me.

Then there were all the apps that I liked that never supported Windows Phone.  Sure, there were alternatives you could find, or maybe someone would release a dumbed down version of the app you liked, but it was never the iTunes or Google Play store.  But given the positives, I still wasn't really willing to go back to those models I didn't like so much.

The straw that broke the camel's back:

This past week I went down to North Carolina.  The family piled in the Kia and drove down, I mean.  And when it's my turn to drive, I need my podcasts, while everyone else is sleeping or otherwise occupied.  So I fire them up, plug the aux cable into the headphone jack and start listening.

About a minute in, the podcast cuts out mid-sentence.  That's strange, so I have to look at the phone and figure out why.  Oh, looks like it's paused.  Well that's weird.  Ok, so press play and back to listening.  And it does it again.  And again.

It is a nice feature that when the headphone plug is unplugged, the music or other media stops playing.  In this case however, it seemed like bumping the headphone plug or cord in a particular way would cause the audio to pause.  And because we were on the road jostling, this happened every few minutes or so.  For hours on end.

Of course the headphone jack issues with both Nokias could be a coincidence.  But they were both out of warranty when it happened.  Feels like shoddy work, or even planned obsolescence.  After hours in the car driving back, knowing full well I can't use this device now to run with either, it's decision time.

And I pull through the Walgreen's drive-through to pick up prescriptions today on the way home and what do I see?
There's even an obvious little space where to put the "Available for Windows" logo.  But it's not to be.

So now I'm torn.  I need to move off this Windows thing and admit that it's simply not going to happen for Microsoft.  Wouldn't be the first time a really good product didn't make it, so I am not too unhappy, but now I'm wondering where to go next.

Now taking suggestions:
So, I've seen the iPhone 5 and used its camera.  It's pretty fast, but I don't know much else about it.  My wife never took the Windows plunge and has a Galaxy S3, but that phone is acting weird now, too, and she's ready to chuck that, too.  

So seriously asking... What phone next, and why?

Thursday, July 10, 2014

Inspire the Troops

Ok, so today I want to talk to the team leads, the tech leads, and the tech managers out there, the people that other developers and software engineers look to when they want answers, the people whose job involves technology thought leadership.

One of your biggest challenges at your job is motivation.  Not yours, obviously.  No, you're the kind of go-getter who gets up in the morning and eats a big bowl of "I can do it" for breakfast.  You read blogs.  You watch your favorite speakers on Twitter.  Your motivation is beyond reproach.

But you've got folks on your team who have been doing this whole development thing awhile.  Maybe they've been working on that document management subsystem for two years and are really coasting. Maybe they've been stuck on the same platform or same language so long that you see them not being able to think outside the box for a solution.  Maybe they are sitting around waiting for direction instead of proactively looking for improvements the way they used to.  That doesn't make them bad employees.  Life sometimes happens.

As a team lead, you need to get their enthusiasm up.  You need to generate in them a lust for coding.  Not so they'll code for you 12 hours a day.  Don't do that.  Burnout is as bad as or worse than a lack of enthusiasm. No, you need your folks to enjoy coding, to enjoy solving problems, to think about their work critically and try to find and suggest new ways of doing things.

But that's a slippery and elusive thing to go looking for.  Team motivation might as well be your white whale. You've tried lunch and learns, brown bags, watching team internet videos, and that seemed to help, but you're only one person, and you can't do your job and also manage an inspirational team calendar.  Or maybe you can and it's just not enough.

So here's what helped me.  That Conference.  I've made it no secret that community conferences changed my life.  That's just me.  But you're not me.  You're a successful team lead.  You've got the motivation.  So don't come to That Conference.  Send your team.  Here's why.

See, if you want them trained on a particular topic, send them to Pluralsight (I'm not a shill, and they're not a sponsor, but I've had good luck with them).  Send them to a class.  There are lots of good training programs.  Sometimes those programs inspire, to be sure.  But I've seen so many people sit through a dull class and come out bored.  That's if they were even happy to be there or paying attention to begin with.

What about big conferences, like TechEd, or Google I/O, or one of the huge $2500/ticket conferences (never mind the per diem, the hotel stay, the air fare => maybe you're looking at a $5k total)?  They have value, sure, and employees may be motivated by the fact that you've given them a perq.  There's value in that , too.  But motivation to code and get things done may not be the value there.  Maybe it's too marketing-speak.  Maybe it's too specific.  Maybe it's too platform-limiting.

That Conference, and polyglot community conferences in general, are designed to inspire.  By getting attendees into a place where the boss has no presence and giving them a buffet of technologies to feast at, you allow them to rediscover why they came to that field to begin with.  You offer them a chance to see different approaches, try different platforms, or understand a different technology culture.

August 11-13, we're hosting the biggest, baddest community-led technology conference/summer camp at the Kalahari Resort up in the Wisconsin Dells.  150 sessions on a glorious and dizzying array of technologies are available to attendees.  Encourage them to go to sessions outside their comfort zone, and they may amaze you with what they learn.  Even if they stay near to their platform of choice, however, they will find their ideas challenged, and their techniques extended with everything from overview sessions to deep dives.

Of course, it's not just about the technologies.  At the end of the day, we're all people interested in similar things.  Many of the Speakers (err... Camp Counselors) are industry leaders, but they don't fly in and fly out without interacting.  They hang out, meet people, share war stories, and in general are available.  I have chatted to people on Twitter forever and then met them for the first time in person at community conferences. Meeting inspirational people is just another way to get motivated.  Heck, just meeting a new colleague at another company who is doing similar types of development can be rewarding.

All that would be totally invaluable at the price of one of the bigger conferences.  Inspiration and motivation are hard to create, but they seriously affect your team's productivity.  That Conference tickets come in at $399.99. With easy travel by auto for anyone in IL, WI, and MN, and most meals included with the ticket, you're talking about more enthusiasm and motivation for potentially south of $1k.  Such a deal, really.

So send your teams.  Let them bring back their enthusiasm to you.  Let them share with you what they learn. Tickets on sale now.

Hey wait, before you go, remember how I said not to come to That Conference?  I lied.  We totally want you to come, too.  We value that leadership and enthusiasm.  Speakers for the main sessions are already set, but there are dozens of Open Spaces slots over three days where you can share what you know and maybe even get a little inspired yourself.  Come out and meet me.  I hope to see you there.

Thursday, June 19, 2014

What is a Community Conference?

I know I post a lot about community conferences, but I never really talked about what a community conference is.  Like with a lot of things, there may be many definitions out there, but this is how I think about them.

For me, a community conference is community-driven.  It's grass-roots.  A few people in a certain geographic area, passionate about a particular thing, get together and decide that there have to be other people like them.  People that want to get together and talk about things.  People who want to learn and teach and communicate and network.

Probably some of those people already do this stuff at industry conferences.  Conferences like Build and DevConnections and TechEd for the Microsofties out there are a big deal.  Except not everyone can attend those conferences.  The price tag on them is simply too high.  At a couple grand for a ticket, maybe another grand for the hotel room, air fare, transportation, per diem for food?  It all adds up to a fairly expensive prospect for small to midsize companies when it comes to training.

And what do you get for that?  Sure you get the national platform, and some of them give out pretty nice goodie-bags with expensive tech-gifts in them (which is basically a way for you to get your company to buy you something you wouldn't buy for yourself), but you also generally get only the broadest of pictures.  In the case of Tech Ed, you get broad strokes and marketing spiels.  Many people who are there were sent, and may not be all that into it.  You have lots of managers and senior folks there who may not be getting much out of it, but are there as a perk for their job.

In contrast, a community conference is organic and attended by people who really want to be there. It is truly of the people, by the people, and for the people.  The conference is set up as a not-for-profit, so the ticket cost can be as low as possible.  This allows just about anyone to attend, even if they have to do it on their own dime.

Because anyone can afford to attend, it truly means that anyone with a passion for the conference material can be there, and those are the people you want to be there, both as attendees and speakers. People who are enthusiastic about the subject matter and won't wander off mid-conference to play golf.

Because it's not-for-profit, community conferences tend to be run by organizers in their spare time.  In my experience, however, that doesn't necessarily mean that things are thrown together or that there's no attention to detail, but I think you do lose some of the polish you'd get if you were paying people an annual salary to set up a conference.

In a lot of ways, however, that's part of the fun, knowing that the conference is as good as the community wants it to be, because they have to pitch in to make it special.  It's the difference between consuming and making.  It's possible to consume an industry conference, but you get to make your community conference. You don't get the high-priced goodie bags, but you get a very professional conference, with solid information, delivered by some of the most outgoing technologists you're likely to meet.

Of course I've said that community conferences changed my life, and I truly mean that.  Codemash is particularly well run, but it's pretty far away for me.  That's why I work to run That Conference. If I can help make that change in other people that happened in me, every second I volunteer to putting on a great conference is worth it. In case you didn't know, That Conference is a polyglot (any platform, any language) technology conference held in late summer at the Kalahari Resort in the Wisconsin Dells.  Check it out!

That Conference embraces all folks with a love of technology with open arms.  Hardware?  Software? InfoSec?  Data?  We have sessions on all things tech.  With a ticket price of around $400, it's way cheaper than the big conferences, and for those of you in the Illinois, Wisconsin, Minnesota areas, it's only a short drive away.  And if you stay at the hotel, bring your family and they can enjoy the waterpark as part of the room deal.  Better still, pick up a family ticket and teach the little ones your love of technology.

I would love to see you there.  If you do manage to make it out, come find me!  I'd love to meet more folks in this area that share a passion for technology.

Monday, May 12, 2014

Become a Developer - Getting Started

Software Engineer and Developer consistently rank as a couple of the best jobs you can have. Software offers a good combination of mental challenge, limited physical demands, good flexibility, and good pay.

And it's one of the simplest, easiest things to get into.

Note, I'm not saying that it's easy to be awesome as a developer.  It takes time, study, and dedication. But of all fields, it has one of the the lowest barriers to entry of any field, in great part due to the generosity of the community, the desire of that community to share and spread knowledge, and their by-nature ability to use their talents to democratize and disseminate this information.

A couple nights ago a friend from outside the field was talking to me about possibly changing careers, and I told him that I would share with him some insight into how I would advise any adult to start if they showed any interest in the subject matter today.  Note, with kids, I might start a little differently (Legos, Arduinos, and Scratch, oh my!).

I'm amazed at the free resources out there, so I'd start with them.  This is in no way an endorsement of any of things I've mentioned here.  I'm not affiliated with any of these organizations

http://www.codecademy.com/ - free resource to learn interactively what coding is like.

http://code.org/learn - Directed more at kids, but if you are completely new to the concepts, spend some time here.

http://ocw.mit.edu/index.htm is where you find MIT opencourseware.  Bazillions of classes on stuff. You could easily start at the programming stuff and go from there.

ChicagoCodeCamp is a free community conference held one Saturday in April.  Meet people, network, learn cool things.  There are lots of local user groups and so many people are available to help you out in getting started.

http://www.pluralsight.com/training - Oh, the amount of professional training and content you get here is amazing for how little you pay.  Per hour of training, it might as well be free.

With such a low barrier to entry, and given how much work there is out there of many different types, why don't more people do it?  Why is there still unmet demand in the industry?

Well, it's hard work to do well.  There are vast differences in developer skill level.  There are differences in demand for different types of skill.  Also, while I say that anyone can learn the basics, it takes an attention to detail, an ability to focus on mundane details, an ability to think procedurally and logically.

Some people find that kind of work taxing, or boring, or just plain can't do it, but I'm not so egotistical to believe that the people in the industry are the only ones that are capable of doing this kind of work.

Of course, I'd be lying if I said I wasn't trying to be part of the education of the community.  I want diversity in my community.  I want more kids getting interested in STEM.  To that end, I am a proud organizer of That Conference.  We are a community-driven, polyglot conference that is held annually at the Kalahari resort.  $399 gets you three days of sessions, networking, and good fun.  Come out and join us.  Tickets go on sale 5/15/14!

Monday, May 5, 2014

Upgrade to the Walking Desk

So I have been using the walking desk for a few hours every few days.  I noticed that one big issue was that I was looking down at the monitor, even with the riser on the walking treadmill desk.  That was definitely a strain on my neck.  But any higher, and I wouldn't be able to type.

Solution? I need a monitor in front of me.  One I can look at without looking down.  As a touch typist, this isn't a big deal, and would be really handy.

How do you do that, though?  A laptop monitor is connected to the laptop.  Aha, I thought, I'll hang a TV from the ceiling!

So I picked up a new TV for the loft (the current one was a bit too small for the space), and appropriated that 32" set as a new monitor.  Then I picked up a ceiling mount for the TV on Amazon and put it up.

I also moved the treadmill to a different corner of the basement.  Here it is in all its glory:

The invisible man walks again!
My full setup for when I'm working.  Chat window on the left laptop, and active windows on the Yoga and the TV.  Coffee or water on the ledge to the right, remote on the ledge to the left.
Set productivity to 9999!
It works remarkably well.  Time to get back on it!

Sunday, May 4, 2014

Working from Home, Two Months In

Ok, before this milestone slips away from me, I've got to write up my findings.  Because that's what I do.

Granted, this blog has posts about everything from travel to technology, from Team Foundation Server to personal enrichment, from corporate motivation to Chicago traffic.

One overarching theme I'd like to think is interwoven through all these posts is the importance of being happy and productive in your life.  Living for the things that you value, and making the most of your time and passion.

I've long theorized about what working from home would be like.  I've talked to dozens of people about it, hosted a Codemash Open Spaces session about it, watched endless presentations on the topic, and read books on the topic.  From the Why Work Sucks and How to Fix It, to the Four-Hour Work Week, to The Year Without Pants, to Remote, I've read a lot on the topic.

I thought enough about it to at least want to give it a shot.

A year ago, I got my opportunity to give it a trial run: a part-time coding gig with a cool company out of California.  The interview was remote, the coding sample was remote, and the onboarding process was remote.  I spent hours working for them sitting on the couch, in the basement, or on my front porch.  I'd work in the evenings after my 9-5, or in the mornings on the weekends, or while waiting for my son during his scout meeting.

And it was fun.  I really enjoyed the focus I got from working remotely.  So when it came time to leave my previous employer, I knew that the ability to work remotely was going to be one of my base criteria for what a new job would have to look like for me to even be interested.

Note: remote work is harder to find than I thought it would be.  Of the many companies I talked to, a very small fraction of them enabled remote work.  Given the benefits that can accrue to an employer, not the least of which is more engaged and enthusiastic employees, I was shocked.  Butt-in-seats management is still firmly entrenched within organizations.

But persistence paid off.  I had time, and I spent it finding the right opportunity.  On March 3, I started at my latest gig.  My new organization has an office downtown Chicago that I've driven to a few times, but for many weeks, I've done my work from the basement of my house.

I have to admit.  It's the greatest thing ever.

Full disclosure, there's more than remote work contributing to my excitement.  I'm working for a much smaller organization.  They know exactly what we need to do, and have pretty awesome processes either in place or in flight.  On top of that, my new colleagues are all brilliant, and I can learn a lot from each of them.  And am learning a lot.  In all these regards, it's very different from where I came from.

As such, I can't necessarily attribute how awesome things are to the remote work.  So I thought I'd try to take a balanced look at my experience with being remote a couple months in:

Pros

More exercise:  Right out of the gate, there is more time available to exercise.  Between having built a treadmill desk for walking as I work and doing things with my colleagues like the squat challenge, there's more of a focus on getting moving than I had before.

More work:  Maybe I mean "more productivity" here, but I feel as if I get so much more work done. When you're not faffing about in the office getting stopped in the hall about ten different things, you can really get stuff done.  With nothing distracting you, it's amazing how in the zone you can get.

More family:  I'm putting this one in the more theoretical category, since I joined a team in full-barrel crunch mode moving toward a product launch, but I'm confident that in the weeks ahead, now that we're calming down, I'll be able to spend more time doing things like getting the kids off to school and having coffee and lunch with my wife.  I'm looking forward to that.

More freedom:  At home, you don't have the same level of scrutiny over your internets as you do at an office.  If I want to stream trance music over the speakers or listen to talk radio in the background, I can do that.  I'm not restricted to only receiving corporate mail over Outlook, and don't have to worry that all of a sudden GitHub.com or Knockoutjs.com will suddenly be blocked by the Corporate Nanny-Wall (both of which have happened to me).

More flexibility and fewer clothes: The school also called me to come pick up my daughter, who had strep.  I went over to get her and was back coding in about 10 minutes.  And she was upstairs resting while I was there. That is some flexibility right there.  That was also the first time I've ever had to say, "Shoot, I need to run out. Where are my pants?"  (I often work in running shorts because I use the treadmill desk on and off.)

Smaller environmental footprint:  This doesn't appeal to everyone, but I like to try to reduce my environmental footprint. Not because I'm an environmentalist, but because I am resource-conservative at heart, in the sense that I only like to use what I need and use what I do need efficiently.  When two weeks went by without having to put gas in the car, a little part of me did a happy dance.

Email:  Working with my team, we depend on chat, and are in direct communication all day, every day. As such, the need for email is basically nil.  We use it for broader, more consistent and more persistent topics, although for real stuff, we tot it up in Google docs and throw it in the cloud.  I can't tell you how little I miss having a life run by Outlook.  I've been moving away from it mentally for a while, but to finally get away from it is so lovely.

Dress code:  My whole working life I've been biz-cazh.  High school was shirt/tie.  I always felt that I got more in the spirit of working when dressed up.  Like formality was learning.  Sure, when I was in grad school, I wore shorts and T-shirts to teach labs, but that was Tucson, and no one wears a lot of clothes there.  But I did have the aforementioned "pants" epiphany.   I often wear running shorts so I can walk while working, or even wear jammies up until lunch because they're comfy to walk in, too.  Don't judge.

Cons

Diligence:  I don't know that it's a con, really, but diligence is a key requirement of having the right personality to work remotely.  It's been written about endlessly, that there's a real need to physically separate from the rest of the home to enable you to retain focus on your work.  Also, being diligent and focusing on your work can be really exhausting.  Being extraordinarily productive from home is well more difficult than being in the office.

Balance:  This is kinda the flip side of diligence.  I'm struggling a little bit because I'm an early riser, but the business hours for my org are 9-6.  What that means practically is that I am often up early, and since I'm up early, I jump online and start working, sometimes at 7:30.  Also, while I totally believe in the need for breaks, folks all take lunches at different times, so I hear the siren song of the chat window. I find myself in the basement and working longer hours that I probably need to, and certainly longer than is sustainable, but I'm enjoying what I do.

Chat:  So the way we communicate on my team is through a chat app.  This is very nice in that it is always open and on.  Once you get the hang of it, you can see what's going on peripherally and it's not really different from overhearing chatter in the office.  But sometimes... Sometimes you look at what someone's typed in the chat window and go "huh?" because what they've chatted makes no sense.  At least out of the context of sound and expression. Another thing that can be burdensome about chat is that when there's a flurry of conversation that you don't want to be part of, you may need to turn off the notifications or sounds.

Cleaning service: One of the things I didn't realize was that my work area in the office didn't stay clean on its own.  In the office, we had a cleaning service.  If I dropped a Dorito on the floor, no worries. Gone the next day.  In a home office, if you spill your coffee, guess who's mopping that up.  I hadn't thought about that.  Not that I have a lot of coffee-soaked corn chips on the floor, but I noted the need to be a lot more careful when eating around the work space.

Miscellany

Costs:  You'd think that costs would be basically a pro.  I haven't really analyzed the data, but I think I'm net #winning for the cost side of things.  I don't pay for dry cleaning anymore.  I wear fewer outfits per day.  I'm paying less in gas.  Car insurance has dropped.  I have to pay for food, but since I generally eat up leftovers that were getting thrown away anyhow, I think I'm doing it for free most days. That said, I have to have and maintain my own office, and any associated costs.

Loneliness and isolation:
I was warned very sternly about this.  The idea of being in my basement, not interacting physically with many people, is supposed to somehow be a drag, but I find it kinda the opposite.  I mean, with the chat and video and voice calls, I interact with my team at a rapid fire pace.  The rest of the time, I sit here by the window, lost in my head and the code and the issues I'm dealing with.  For me, it's a great mix.  So far, but I hear that like traveling, it can get old.  If it does, I'll be sure to post about it when that day comes.

Shoot, those are my thoughts on remote work so far.  I'd love to hear from you, though, on what your experience has been.  Hit me up on twitter or in the comments.