“I’m Nathan and I’m anti-social” or “No, thank you. We don’t want to . . .”

I’m the first to admit that I’m not the most social, outgoing guy in the world. When a new group is having everyone do a self-introduction, I used to try to keep with a succinct, “I’m Nathan and I’m anti-social.” Unfortunately people would often misinterpret my message in one of two ways:

  1. That I am making a joke and am really a very social person and should of course be pulled into all social interactions.
  2. That I am subtly crying for help and secretly longing to be included in all social interactions.

Neither interpretation works in my favor.  For some reason some people cannot comprehend that I do not want to behave like an extrovert.  And while honesty may be the best policy, it does tend to offend people or come off as surly or whiny.

Along with “I’m anti-social”, here are some other things that many people don’t seem to always understand:

  • I don’t like people.  I do like individuals.  But just because I interact with a set of individuals individually, it doesn’t mean that I want to interact with them all together.
  • Just because I’m competent and can function in society and interact with people as necessary doesn’t mean I enjoy it.  Also, just because I don’t enjoy interacting with large groups doesn’t mean I’m not good at it.
  • I would rather stay home with my family than go “out with the guys”.  Being in a group is not relaxing entertainment, but tiring work.
  • I don’t mind just sitting quietly and letting others do the talking–being quiet doesn’t mean that I’m upset or that I don’t care or that I am angry or don’t like someone.
  • I’m good at talking with an individual or speaking to a hundred or more people, but somewhere in the middle I feel very awkward and uncomfortable.
  • I really don’t care what people think.  People are stupid.  But there are a few individuals whose opinions I highly value.

Those are a few things I wish people would understand when I say that I’m anti-social.  If someone feels the same way, perhaps I’ve found a new friend, and if I told my new friend “No, thank you.  I don’t want to” do something, no offense would be taken.

Lighter than Docker

I’ve got four kids attending three different schools. Even though the schools are all in the same district and have the same holidays, each has a slightly different schedule. For example, the middle and high school have “A” and “B” days to designate which classes students should attend that day. The elementary school has days 1 through 8 to identify the daily “special” (PE, music, library, etc.) . Also, each school has different days for conferences, finals, etc. Each school provides a PDF of the school calendar, but that means keeping track of three URLs or printed pages, so I wrote a rest service.

The coding of the rest service was pretty simple and didn’t take too long.  The dataset isn’t very large and is static, so no fancy database was required; just some JSON files containing the information.  It was a good opportunity to practice using Python since that is the current programming language I’m learning on the side.  Since I’m a fan of Docker and the magic it works, I wrapped everything into a Docker image and now anyone can obtain the image from a public repository on Dockerhub.

Running the rest service from a container works great.  After I verified the functionality, I created a container using Amazon’s EC2 Container Service.  The container service was fairly easy to use and everything still worked smoothly.  However, since my 12 months of the Amazon Web Services free tier has long expired, after several hours I had accumulated a debt of $0.22 for only dozens of requests and seconds of computing time.  I’m cheap and don’t like the idea of containers trickling my pennies away while doing very little.  So I decided to try out AWS Lambda.

The first thing I like about AWS Lambda is that it’s cheap: up to 1,000,000 requests and 3,200,000 seconds of computing time per month are free and there is no charge when the code is not running.  It was easy to adapt my code to run as a Lambda function since what I needed was basically a subset of what is in my Docker container.  I just had to provide the functional code and didn’t need to worry about any web server to handle the HTTP communications.  In addition, the Lambda service also automatically provides scalability and high availability.

For my school calendar rest microservice, I think the Lambda implementation has worked out better than my initial Docker solution.  I needed something lightweight and got exactly that.  Here are some of the advantages/disadvantages of Docker vs Lambda:

Docker Lambda
-Pretty much any language
-Scaling with Compose/Kubernetes/etc.
-When it’s running, it’s running
-User defined configuration
-Only on AWS
-Java, JS, and Python
-Automatic scaling
-Only runs when needed
-Configuration the AWS Lambda way

How Randall Munroe ruined most comics for me

Several years ago I was introduced to xkcd which is drawn by Randall Munroe.  I believe it was in a comment on Slashdot that basically said “Obligatory xkcd reference: link_to_some_xkcd_comic“.  It was amusing and I went back to “1” and worked my way forward.  I added xkcd to my feed reader and became a regular follower of the strip.

Many xkcd comics follow the same formula used by most comics in which multiple characters converse and by the end the reader has hopefully noticed something humorous.  In the case of xkcd, the humor is often rather nerdy.  I must confess that it was weeks or months before I discovered that every xkcd comic contains some mouseover text.  This means that when the mouse cursor is hovering over the comic, additional text appears which can take the joke even further.  So I had to go back and read all the comics again and remember to hover the cursor over each so I could get the whole xkcd experience.  In many cases the additional text takes a funny comic and makes it even funnier.  In other cases it takes a comic that doesn’t seem super funny and twists it into something hilarious.

Randall Munroe also has a serial (and book) called “What If” where he publishes “Serious Scientific Answers to Absurd Hypothetical Questions”.  Along with a technical explanation and general wit, the text is interspersed with illustrations.  These illustrations and the accompanying mouseover text not only help to convey the message, but also make the article seem less stuffy.

There are other intelligent, funny people besides Randall Munroe who create comics.  I read their comics and often chuckle when I finish.  Now, whether I’m reading on the web or in print, I always have a strong inclination to mouseover the comic and get the “rest”, but instead I’m left hanging . . .

Droning on

Bebop_Drone_2016-03-20T184442+0000_EEA2CFLast week Boy #2 used his hard-earned savings to buy a little quadcopter.  With practice, he has become rather adept at piloting rather than crashing and has had a lot of fun.  But what intrigued me the most was that it contains a camera which can take still pictures or video.  Since I didn’t think it would be nice to take over the boy’s new toy and since it is was my birthday, I decided could buy my own toy.

It’s not easy to jump into the world of UAVs (Unmanned Aerial Vehicles).  I quickly discovered that there are too many choices out there.  You can spend anywhere from  less than $20 to several thousands of dollars.  There are many different types which have various characteristics and strengths.  To further complicate things, there are recent laws and regulations affecting the use of UAVs.

Since I’m interested in the video/photography side of things and wanted something easy to fly and with a decent camera–that narrowed down the field a lot.  Also, though not a hard requirement, I thought that supporting a FPV (First person View) would be neat.  I did a fair amount of reading reviews and looking at different options in my “few hundred dollar” price range.  If I already had a good camera like a GoPro, I might have gone with a Phantom, but since I needed a camera, I ended up going with a Parrot Bebop.

I knew I would want to play with my new toy as soon as I got it, so I started my preflight tasks before it was delivered.

First was all the legal stuff.  Because the Bebop weighs more than .55 pounds I had to register with the FAA.  I installed the FAA B4UFLY app which told me I was less than 5 miles from an airport and needed to notify them of my intent to fly.  Of course they don’t publish the telephone number of the tower, so it took a little web searching and e-mailing to find the correct contact information.  I then sent an e-mail containing the checklist information from Guidance for UAS ATCT Notification Calls.  For the time and duration of operation I said “Daylight hours” and gave the dates for spring break.  I didn’t receive a response, but the airport doesn’t approve flights, they can only deny flights.  Since I’m more than 4 miles from the airport and won’t be going above 400 feet, I doubt they care, but if they do they know how to contact me.

Next I installed FreeFlight 3 onto my phone.  I tried playing with the app, but there isn’t much you can do without something to control.  So then I just had to wait for my Bebop to be delivered.

Once it was delivered, the first step was to get a battery charging.  Also, I wrote my FAA UAS Certificate number onto the Bebop with a Sharpie.  For my first flight I wanted to try it indoors, so I attached the propeller protectors.  I was then ready to try to fly.

It took a few minutes to figure out how to connect to the Bebop.  My phone could see the Bebop wifi network and it connected, but when I started FreeFlight, it didn’t connect up.  It turns out the problem as my phone had “Smart network switch” enabled so it would see that the Bebop wasn’t connected to the Internet and automatically switch over to the home wifi which does have Internet access.  Once I disabled “Smart network switch” I was able to connect.

After trying to fly a bit indoors and crashing into Boy#2, it was time to take off the propeller protectors and head outside.  The Bebop is fairly easy to control and all the kids took a turn.  It started to rain a bit and so I was about to finish up for the evening, but then a rainbow appeared.  I flew the Bebop up to about 100ft (I had the Bebop configured to go no higher than 30 meters and took it up to that max) and took a few pictures; one of which is at the top of this post.  By then the rain was increasing and the battery charged was diminished, so it was time to land and return home.


The machine that goes ping

Yesterday I learned that as of 1 April I will no longer be employed with IBM.  Instead, I am being given an opportunity to work for Persistent Systems Limited.  The transaction is vaguely described here.  I’ll still be doing pretty much the same job, but as a contractor rather than an IBM employee.

While sitting in various meetings hearing about what’s going on, most of the discussion was about the business side of things–apparently it’s a win-win for both companies.  While hearing about it, it made me think of the machine that goes ping.  It is apparently very clever to lease it back from the company they sold it to and everyone gets excited about that.  My situation may be similar to the machine that goes ping, but in some ways I felt more like the woman in labor who is being ignored.

Today I got some more information.  While this change is a surprise, it seems like both IBM and Persistent are making an effort to make this a good opportunity for me.  I’m optimistic that it will be a win-win-win:  a win for both companies and a win for me as well.

How Allan’s ruined most fish tacos for me

fish tacosI like fish tacos.  Because Boy #1 has a fish allergy, we don’t have them at home, but when fish tacos are an option at at restaurant I’m likely to order them.  While attending grad school in Boulder, Colorado a favorite, cheap place to eat was Wahoo’s Fish Taco so I frequently got my fix.  Wahoo’s was sadly missed after moving to Portland, Oregon, but I still managed to find fishy taco goodness in various other places.  Then Allan’s Authentic Mexican Restaurant opened up nearby and that changed everything.

One thing I like about working from home is that I’m able to have mini lunch dates with my wife.  Even if I just pop out from my home office for 15 minutes, it’s always pleasant to sit, eat, talk, and just spend time with her.  For one such date, in 2009 I think, my wife decided to try out the close, new restaurant.  Knowing my proclivity for fish tacos, she got two take out orders and brought them home.  The verdict: Allan’s fish tacos are so good.

It’s been a few years.  I still occasionally order fish tacos at other restaurants.  Good fish tacos at good restaurants.  Fish tacos of which I can think of no complaint.  There is no reason why I shouldn’t be completely satisfied with my choice, and yet there is always the nagging thought in the back of my mind that the fish tacos just weren’t as good as what I would have gotten at Allan’s.

It gets worse.  Because Allan’s has such wonderful fish tacos and is so convenient, eating at Allan’s or getting takeout is not something that would be considered atypical.  Some people say that Allan’s offers various splendid choices, but I wouldn’t know.  I always get the fish tacos.  I sometimes look at the menu and make a pretense of trying something new, but it doesn’t happen.  Sometimes I have tilapia instead of salmon on the tacos, or pinto beans instead of black beans on the side, but I always get fish tacos.  Were I to do otherwise would just lead to further disappointment:  either disappointment for not ordering fish tacos and getting something I like less, or disappointment of getting something even better and then never getting fish tacos again.

So now fish tacos are mostly ruined for me.  If I order them anywhere but Allan’s, I’m filled but not fulfilled.  When I go to Allan’s, I must order the fish tacos.  So thank you, Allan’s, for mostly ruining fish tacos for me.