Thursday, June 30, 2016

Reflecting on a moment of personal growth a long time ago

After writing my prior blog post about remembering how I started programming, I recalled something from about 17 years ago.  Looking back, it was a great "personal growth" moment in my (then young) career.

I was at my first internship after starting college.  The company was a startup that worked predominantly on Unix/Solaris.  Very early on in the internship (I think the first week), I realized I knew alot less about Unix than the other interns and at times was really lost in what was going on during training.  I became worried about my ability to actually be able to do the job.  To be honest, it may have been the most lost I've ever felt at any point in my life.

As an example of how little I knew at the time, I recall that while I had setup my personal website using instructions I found, I did not actually know what things like "chmod 744" actually did.  At the time it was just something I knew you did to get things working.  I remember I didn't know the grep command.  I remember at one point asking another intern what a daemon was. 

So this was my knowledge of Unix and I was supposed to be doing Unix programming for this internship.

Now, I should mention that this was before the time of Google's dominance.  It was the time before Wikipedia and blogs.  There was no stackoverflow.

However, at the same time, I was much younger in my career.  I'm sure there were elements of "how to learn" that were not quite yet cemented in my mind.

Now, I could have done one of several things once realizing I didn't know anywhere near as much as I hoped (or should have).  I could have faked I did know what I was doing and continue on.  I could have shut my mouth and just see what happens.  On the extreme end I could have quit thinking I wouldn't be able to cut it there.  I've certainly known people who did those things like this in their lives.

I ended up going to my boss towards the end of the first week, telling him about my concern for this and how I felt really lost.  I don't think I'd ever been so worried over a conversation in my life.  But he was very calm and caring, telling me thanks for admitting it.  He got me some books from some of the engineers to take home and catch up on.  So I did read them starting that weekend.

The end result after that summer?  I ended up learning a lot more.  Became comfortable in Unix environments.  I got more accomplished that summer.  I like to think I proved I was a good employee, as I was invited back to work part time during the school year.

So I have looked back at this event and considered it an important moment in my personal growth when I was younger.  The formula for succeeding on projects/work isn't magical.  Ping others for help/pointers (today "others" can be Google), read stuff, put in hours, try things out, and eventually you can figure it out.  As I look back on my career, this exact formula is the method by which I had success on many projects despite feeling extremely lost/confused in the beginning.

Saturday, June 25, 2016

The Cathedral & The Bazaar - over 15 years later

I recently finished The Cathedral & The Bazaar, a relatively famous collection of essays from Eric S. Raymond.

I think it's pretty interesting reading the book in 2016, about 17 years after it was first published (and probably closer to 20 years after it was first written online).  A few thoughts as I was reading through it.

Open Source vs Closed Source - Do most end customers even care?

Since the book was written, many more open source vendors now exist.  Some that come to mind are Redhat, Suse, Cloudera, and Hortonworks.  Some of these vendors distribute software that is only based on open source.  Other vendors distribute software that is a mixture of open source and closed source software.  The same can be said of several large vendors, such as IBM and Oracle.

I actually wonder if most end customers can even tell what is open source and what is closed source from a vendor without looking into it a bit.  Most may know the Linux kernel itself is open source, but do they know which kernel drivers are open vs closed source?

Ultimately, if it's not 100% clear what is open vs closed, I wonder if most customers even care.  At the end of the day, it's just a software offering from a vendor, the fact it may be "open source" may not matter to most.

Open Source - No Longer about Gift Culture and Reputation?

In the book the "gift culture" of open source and the desire for "reputation" in the open source world are discussed a lot.

However, over the last 15-20 years open source has become pervasive and the technology world has changed enough that IMO there are other reasons people now to open source.

With the emergence of more free code repository sites (most notably Github in recent years, sourceforge in the past), I believe a number of people open source just because they get a free code repository for their needs.  It's much easier than setting one up for yourself.  In addition you get some issue tracking software and documentation/wiki software along with it for free.  The huge number of "scratch" project repos on Github are probably a testament to this.

For many companies that support open source as part of their product offerings, it's simply a part of their business now.  Software engineers do open source as just part of their jobs, not necessarily for reputation or "gift" culture.

For many companies, it's a recruiting tool.  I doubt that many companies with a corporate presence actually "care" about open source more than just an ends to a mean (i.e. hiring people).

How to become a hacker - same languages?

In the Appendix, Raymond speaks of the programming languages that people should learn to be successful "hackers" in the open source world.  The languages he recommends are Python, Java, C/C++, Perl, and Lisp.

I was a little surprised to see Python in that list given this was written in 1999.  I didn't think Python was as popular back then as it apparently was.  I didn't think Python began to take off until some time in the 2000s.

But other than that, I find it interesting that the list is still quite accurate.  These are probably still the right languages to learn.

Wednesday, June 22, 2016

Remembering How I Started with Programming

As I've said on this blog before, sometimes I can't help but feel dumb at times as I see so much brilliant code being written out there.

But at the same time, I have to remember that it takes years to master certain skills and knowledge.  I like to think people have looked at my code and think it's pretty nifty too :-)

Just the other day I was writing a simple python script for some personal use at home.  I wanted it to do a few different things in it and at some point it occurred to me that I've never parsed command line options in a Python script before.  I guess up to this point I'd only written Python scripts to do one simple thing or modified much larger bodies of code that others had started (i.e. I probably cut & pasted prior argument parsing code to add the option(s) I wanted).

I went online and started reading through the Python argparse documentation.

I suddenly paused and realized something.

About 17 years ago I was in my first internship in college.  I was writing tools/commands in C to execute test code.  I still remember reading the getopt manpage at one point because I had never actually done argument parsing in C before.  The first time you see a string like "hVa:b:", it can be quite confusing.

About 14 years ago, in my first month of my first fulltime job after college, I was working on Genders.  I remember reading about getopt_long because I had never dealt with long options in C before.

So I actually sat back and paused, realizing that I've learned a lot over the last 16 or so years.  And sometimes when you feel dumb that you aren't an expert in one particular subject, you have to remember that the things you are more of an expert in, you had to read that documentation for the very first time at some point too.

Wednesday, June 15, 2016

Dating Websites Review

Recently an acquaintance asked me for my opinion on various dating websites, since I had tried a number of them over the years.

So I thought I'd write up my answer to her question.

eHarmony (used during 2009-2012) - In my opinion eHarmony's best feature is the fact it A) costs money and B) takes a lot of effort to use eHarmony.

The fact it costs money is a deterrent to many people, which limits some of the riffraff you get on some other (i.e. free) dating websites.

The fact it has a ton of questions and a long process to communicate with someone is just another barrier to remove people who aren't too serious.

So in other words, eHarmony requires you to put some more effort into it.  Subsequently, most people on there are putting more effort into it.  So when you hear in eHarmony's commercials that they lead to more marriages than any other dating website, it's not surprising.  It's sort of a self fulfilling prophecy.

Not counting the above, one of the good things about eHarmony (atleast when I was on it) is they match you with people they think you'd get a long with.  You don't just get a giant page of tons of people to sort through like on other sites.  Going through people's profiles can be tiring, so limiting it to just the few that they think you'd like makes it easier.

OkCupid (used during 2013-2014) - In my opinion the best site.  The fact it's free is a plus, but the question & answer portion of the website and its matching algorithm limits the potential of meeting weirdos.   Unlike eHarmony, you can search and see every profile, so it can can be daunting.  You'll want to limit the number of profiles you look through via their matching algorithm.  Unlike eHarmony, anyone can message anyone.  So along with the fact that OkCupid is free, there can be a lot of weirdos on there and you may get weird messages.

HowAboutWe (used 2014) - I like the principle of HowAboutWe but it didn't quite work out for me.  On the website you propose "date ideas", which are hopefully fun hobbies/activities of yours or just interested in, and hopefully there are other like minded people out there that want to participate.

For me, I initially listed baseball games, but I didn't like the idea of spending 3 hours sitting next to someone on a first date at a ballgame.  I thought of listing various foodie adventure ideas, but the cost seemed prohibitive (i.e. what if I only see them only once and they want me to pick up the tab on a $400 dollar dinner bill).

I think the website is a great idea and could work out for other people's hobbies/activities, but I think I didn't quite work out for me.

Craigslist (tried a few times pre 2009) - I never met anyone on Craigslist, but as you can see from my comments above, anything that doesn't have a barrier to entry (via money or the website itself) is just asking for trouble.  I'm sure people on Craigslist get flooded with responses.  Skip this at all costs.

Comment on Tinder - I never used Tinder, but I did try OkCupid's Tinder-like swipe right/left feature.  While I am "a guy", I found the feature to be too superficial.  I like to read atleast something about the person and not base it solely on the picture.  So I don't think Tinder would have been for me.  I imagine it won't be for many others.

Tuesday, June 7, 2016

Trade Analysis: Willie McGee for Bob Sykes - Why did this trade even happen?

There have been some bad trades in baseball history.  Obviously they are bad in hindsight, but looking back they made some sense at the time.

While the famed Ernie Broglio for Lou Brock trade was terrible for the Cubs and great for the Cardinals, you can understanding the reasoning of the trade at the time.  Broglio was an established successful starting pitcher and Brock was a young player who hadn't quite figured things out.  Did the Cubs know Broglio's best days were behind him?  No.  Did the Cardinals know Brock would turn into a Hall of Famer?  Doubtful as well.

Likewise with the Jeff Bagwell for Larry Andersen trade.  Did the Boston Red Sox think Jeff Bagwell, a player who hit 4 home runs in AA in 1990, would become a borderline Hall of Fame slugging first baseman?  Nope.  But they did trade Bagwell for a veteran reliever who had a 1.95 ERA in 1990 to help their playoff chances.  He pitched well for them, with a 1.23 ERA over 22 innings at the end of the year.  The reasoning for the trade made some sense at the time.

However, I was recently looking at the 1981 trade of Willie McGee for Bob Sykes, and can't help but wonder how this trade even went down.  It just doesn't make any sense.

In 1981 McGee was a relatively high value prospect.   He was the 15th pick overall in the 1977 draft.  In 1981 in AA he hit .322/.360/.454.  Pretty darn good.  He went on to be one of the best centerfielders in baseball in the 1980s.  He reached the World Series four times, was a three time Gold Glover, four time All Star, won the NL batting title in 1985 & 1990, and also won the NL MVP in 1985.

Bob Sykes was a 19th round draft pick of the Tigers in 1977.  He couldn't quite turn the corner in the majors.  He had a 4.65 ERA in his career and was eventually demoted to the bullpen of the Cardinals in 1981.  He didn't perform that great in the bullpen with a 4.58 ERA in 1981.  After being traded, he never pitched an inning in baseball again.  AFAICT, he was never a high level prospect.  He had a respectable career ERA of 3.01 in AA, but that balloons up to 4.83 in AAA.

So in hindsight, this trade was terrible for the Yankees and great for the Cardinals.  However, why did this trade even happen?

We have a first round draft pick who is performing quite well in the minors.

And we have a middle reliever who doesn't seem to be doing that well in the majors and doesn't have an elite prospect status from the past.

They seem like perfect trade targets for each other??

This trade is hard to make sense in any way.  Even if the Yankees had reasons to trade McGee, surely they could have gotten something better in value?

Obviously some context can be lost over the last 35 years to understand why.  But it's one of the worst trades in baseball I can recall and just can't make any sense of.

Update 6/19/2017:

I was thinking about this and found this old Nytimes article: Cardinals' Willie McGee is Not 'E.T.'.

In it it states:
''When we signed Winfield, somebody had to come off our 40-man roster to make room for him,'' Bill Bergesch explained. ... "We decided to outright McGee to our Columbus farm team, which meant he was a 'frozen' player - he couldn't be reacquired by us without going through major-league waivers.''
... ''But we knew that if we tried to get him back through waivers, we'd probably lose him for $20,000 so we decided to try to trade him. That way at least we would get a player for him ..."
So that's some of the back story.  Dave Winfield was signed before the 1981 season and McGee's breakout year was in 1981 (he hit .283/.343/.359 in 1980 in AA).  So the Yankees perhaps did not expect a breakout in 1981 and were suddenly stuck with trying to trade him after 1981.

But I found this nugget fascinating:

Willie McGee was mentioned to at least one other National League club, the San Diego Padres, who spurned him.
McGee was clearly not someone that was viewed very highly amongst the rest of baseball, which still confounds me.  Surely a speedy 21 year old center fielder, former first round draft pick, hitting .322 in AA, would elicit more than a passing glance from most teams?

Some context is still lost.

Monday, June 6, 2016

2016 Cubs - Everything Is Going Right For Them

Today the Cubs stand at an amazing 39-16, on pace for 114 wins on the year, just below the record of 116 wins.

I couldn't help but look at the stats for the Cubs and think that everything is going better than anyone could have humanly expected for them.  It's not surprising given their 39-16 record.

Currently, their 5 starting pitchers all have an ERA under 3.00 and none have missed a start.

Jake Arrieta - 9-1, 1.80 ERA
Jon Lester - 6-3, 2.29 ERA
John Lackey - 6-2, 2.88 ERA
Kyle Hendricks - 4-4, 2.84 ERA
Jason Hammel - 7-1, 2.14 ERA

Jake Arrieta had a season for the ages in 2015 culminating in the 2015 NL Cy Young award.  While expected to perform well, was another 8.7 WAR season expected?  I would have doubted it.  But so far he's just under pace for it (on pace for about a 8.5 WAR).

Jon Lester has been an elite pitcher (> 6.0 WAR in 2008 and 2009, 5.2 WAR in 2010), but the last three years his WAR has been 3.0, 4.6, and 3.1.  Were the Cubs expecting another 5.0 WAR from him this year?  I doubt it, but he's on pace for it so far.  The 2.29 ERA would be the best of his career and his ERA+ of 175 would be the best for his career.  It's worth noting his current FIP is at 3.22, so nearly a full run above his ERA.  Perhaps that'll level out as the year goes on.

In 2015 at the age of 36, John Lackey probably had the second greatest year of his career (5.7 WAR vs 6.3 WAR in 2007).   While a really good pitcher for the middle of the rotation, did the Cubs think he'd repeat his performance in 2015 at the age of 37?  He's got better peripheral stats (FIP of 3.19 vs. 3.57 and SO/W ratio of 4 vs 3.3) so far and on pace for a 4.4 WAR.  Excluding 2015, that would be his best WAR since 2007.

Never considered an elite prospect Kyle Hendricks had a good year in 2015 at the age of 2015 with a 1.7 WAR over 180 innings.  He had a 3.95 ERA and 3.36 FIP.  Some improvement may have been expected and hoped for, but a 3+ WAR for your number four starter along with a 3.92 SO/W ratio?  Probably unexpected.

Jason Hammel had a career best 3.1 WAR in 2014 (and a 3.0 WAR in 2012 for Baltimore).  He had a 1.8 WAR in 2015 and so far has a WAR of 1.9.  So was a 5 WAR player expected in 2016?  Doubtful. His FIP of 3.41 is over a full run higher than his ERA, so this will likely level out over the rest of the year.

But everything hasn't been just good on the pitching side, it's been great on the hitting side too.  Anthony Rizzo and Kris Bryant are doing about the same they did in 2015.  There's been no regression here.

Anthony Rizzo 2015 - .278/.387/.512
Anthony Rizzo 2016 - .251/.390/.524

Kris Bryant 2015 - .275/.369/.488
Kris Bryant 2016 - .274/.358/.507

If anything Rizzo should do better, as he has a likely unlucky .232 BAbip right now.  Bryant's strikeout rate has gone done as well so his numbers could rise as well.

But at the top of the order we have Dexter Fowler and Ben Zobrist.

Dexter Fowler - .303/.421/.515
Ben Zobrist - .326/.438/.500

How in the world was this expected.

Fowler has a career high WAR of 2.8 in 2012 and a WAR of 2.2 in 2015.  He already has a 2.7 WAR in 2016.  His current OPS of .936 would annihilate his career high of of .863, which was gained in Colorado.

Zobrist is a multiple time All Star from his days in Tampa, but is this the kind of resurgence that was expected from a 35 year old?  I would say not.   He hasn't had a OBP over .400 since 2009 and has never hit above .300.  His current OPS of .938 would be his highest since 2009 and first above .900 since 2009.  In fact, this is for a player who's OPS was .816 in 2015 and below .800 in 2013 and 2014.

About the only sore spot so far has been the performance of Jason Heyward.  He's struggled so far and is sitting with a .615 OPS, well below his career average of .774.   But everything else seems to be going way better than expected.