Productive weekend

Well I had a productive weekend.

  • Set up a Twilio account and was able to call myself from C#. Mad props to the Twilio team for creating the best documentation I’ve ever seen. I had this up and running in under 10 minutes.
  • Read the entire TopShelf documentation and wrote a reference service implementation including Log4Net logging.
  • Installed Ubuntu on my laptop.
  • Almost got my reference service running under mono-service. It turns out TopShelf doesn’t actually run in Mono, even though the website says it does. I was able to eliminate every error message by recompiling against CIL-compliant DLLs, but now it just exits immediately. I think I might need to just write a command line app and daemonize it.
  • Cleaned all the dead stuff out of my garden.
  • Watered all my flower beds.
  • Bought a kayak. This is going out next weekend!
  • Practiced my overhead squat.
  • Visited my grandparents.
  • Ran 3.5 miles.
  • Made some delicious hummus.

Changing my Workflowy workflow

I’m taking a page out of the Getting Things Done playbook and adding an Unsorted section to the top of my Workflowy* tree. I keep all my outstanding to do’s and unread bookmarks in Workflowy, but I found I was slow to add things because I had to stop and categorize them in the appropriate place. In order to reduce that friction, last week I started putting all new items under the Unsorted section and then organizing them at the end of the day. This is working much better for me and I’ve found myself putting even more things in here now. It’s a great place to jot down an unfinished thought because I will see it sooner than if I put it in Evernote or Google Docs.

* use my link to get double the free space.

2014 Goals

Better late than never.

Write everything down

I have been getting better at this since I set up Evernote on all my computers. Right now I have a cross between Evernote and Google Docs for recording my thoughts. Too many times I have wanted to refer to something I’ve seen before but not written down/bookmarked.

Garden

I was traveling last summer so my garden suffered. This year I will plan my garden more carefully and can/freeze anything I don’t eat for later. I am actively involved with the Lincoln Community CROPS program. I want to volunteer two hours a week with them.

Plan a weekly menu

I created a white board for my kitchen where I can plan a week’s worth of meals. When I don’t plan out my meals, I’ve ended up throwing away too much food. Part of planning my meals should include lunches so I stop eating out so much. I will base my meals off the CrossFit/Zone menu.

Get to the gym 3-4 times a week

I have a CrossFit membership. I haven’t always been that great at getting there. It’s easy to find excuses. This year they changed the schedule so I can get there Monday, Wednesday, Thursday, and Friday. I want to go all four days each week.

Inbox Zero

Inbox Zero is related to the Getting Things Done methodology. Each day I will triage my email and copy any important tasks to Workflowy, my task management software. If something can be accomplished immediately, I will do it immediately. Unimportant emails are archived, and things I don’t need to save are deleted. At the end of the day my inbox should be empty.

Work – Back to the basics

At work we adopted ASP.NET MVC in 2009. We built our own internal workflow on the early versions and have not kept up with some of the newer features. Recently I’ve been getting some new developers up to speed on the platform and discovered that our code has drifted from how MVC is taught today. I want to revisit Microsoft’s recommended best practices and make sure we are following them going forward.

Also, my education was in physics and not so much computer science. I am a self taught programmer. So far this year I have been working my way through Robert Sedgewick’s Algorithms book to brush up on my theoretical CS. On my own side projects I have been minimizing my reliance on third party libraries so I can revisit the fundamentals of javascript, HTTP, and SQL.

Work – Consolidate a best practices document

As part of my back to the basics push, I want to make sure I truly know what I’m learning. I believe the best method for this is to follow Richard Feynman’s advice: teach it! I’ll detail this in a separate post, but as CTO of PWG I would like to consolidate my research and experience to a documented set of best practices for my coworkers to refer to.

Stretch – Calculate the mission trajectory for the Apollo missions.

As a kid I was fascinated with the moon missions. I’ve seen Apollo 13 more times than I can count. Since I have a background in physics, I enjoy finding real world applications for it–something I don’t get to do much as a programmer. This year I would like to learn how the NASA engineers calculated the appropriate launch windows and burn times in order to get to the moon, land, rendezvous, and return to Earth.

How to Be Creative (according to John Cleese)

I recently found this video of John Cleese presenting several tips for managing your time to become more creative. I found these tips to be very simple to follow and plan to use this myself on some upcoming projects. The following is a summary his presentation. If you have the time, I highly recommend watching the whole thing.

According to research referenced by John, those who are most creative do not have any special talent or IQ. Rather, they have acquired a facility for getting themselves into a childlike mood where they are allowed to play with ideas, not for any practical purpose but for enjoyment. If you want to be creative, you need to practice getting into this mindset.

He points out that there are two modes of thinking: open and closed. The closed mode is our normal mode of operation while at work. It’s when we are purpose driven, have lots to do, not enough time, and may be a cause of stress. The open mode on the other hand is a relaxed state of mind when we are more contemplative or even humorous. This is not the same thing as being idle, however. Being in the open mode encourages creative idea generation.

When brainstorming solutions to a difficult problem we need to be in the open mode. Once you have an idea, switch to the closed mode to implement the solution. If you get stuck, switch back to open mode.

John says we too often get stuck in the closed mode. We can get tunnel vision attempting to accomplish our goals. He criticizes the formal attitude of business meetings–who can come up with great ideas while being so reserved? It’s important to encourage creativity and even humor in meetings.

Certain conditions make it more likely you will get into the open mode:

  1. Space – Find a quiet, undisturbed space where you can work. The goal is to have a space-time oasis away from the real world.
  2. Time – We can’t be in open mode all the time. Designate a fixed amount of time– say 90 minutes–during which you ignore all distractions to brainstorm. It’s common to start thinking about things you should be doing instead. Ignore those thoughts. You have to make time for creativity to happen.
  3. Time (again) – Don’t accept the first answer you come up with; keep playing with the problem until you are satisfied with the solution.
  4. Confidence – Be open to anything.  You may not find an answer but this is okay.
  5. Humor is the fastest way to get into the open mood. Inject humor into a serious meeting where creative, original solutions are needed; don’t consider it to be taboo.

When you are brainstorming, keep your mind near the subject. It is like daydreaming. Sooner or later you will get a gift from your subconscious… but only if you put in the pondering time.

John says he can get even more creative when there are two people involved. But don’t play with someone that makes you feel defensive. Don’t criticize what is being said. Use phrases like “let’s pretend” or “can you clarify” to keep the discussion productive.

If you are stuck, try making random connections. Don’t get fooled by randomness though. The connections are only useful if they create new meaning. Use your intuition to determine if the connections have significance to you. Sometimes deliberately absurd connections– “intermediate impossibles”–can be used as a stepping stone to an idea that is right. When you are playing, nothing is wrong.

What makes roses stop blooming?

I’m catching up on yardwork this weekend. I suspected my rose bushes needed to be dead-headed because they did not have very many roses. I was sort of surprised that I didn’t even find very many “hips” but some of the ones I did find were quite large. Between five bushes there were maybe 20 hips. In years past I’ve easily found 3-4 times that number and had to cut them off every few weeks. While I was pruning the roses however, I started wondering about what mechanism would cause the plant to stop blooming once it’s pollinated. 

My knowledge of plants is limited to an elementary school experiment where you place lettuce in dyed water and observe that it pulls up the dye and discolors the leaves. I hypothesized that once a bloom is pollinated, it releases a hormone that causes the veins leading to that bloom to swell and draw water away from other potential buds.

Tonight I did some research to learn what the real mechanism is. Actually this turns out to be a difficult thing to look up. I found lots of “how does pollination work” resources, but only one mention that blooms release a hormone that inhibits bud formation once pollinated. Since I’m used to thinking of plants as pulling water and nutrients upwards, I’m interested in how that hormone would get spread throughout the plant.

I found my answer on the plant hormone wikipedia page. My elementary school experiment was using the xylem vessels of the stems. These are specialized tube-like structures that move water and nutrients upwards from the roots to the leaves through capillary action. Differences in pressure due to evaporation of water at the leaves and high water content near the roots allow the xylem to passively move water. Interestingly, the cells that make up the tubes are dead at maturity [1].  There is a second set of vessels in plants called the phloem. These are living cells of the inner most layer of bark which primarily transport sugars and carbohydrates from the leaves to the roots, a process called translocation. Unlike the xylem, the phloem uses positive pressure to move molecules. Sugar producers push molecules into the phloem’s sieve tubes and sugar sinks actively remove molecules from the sieve tubes [2]. The phloem is also responsible for moving hormones from the blooms to other buds in the plant, thus answering my question of how a bloom can communicate with other parts of the plant.

On a related note, I also learned that I should be fertilizing my roses with high phosphorus fertilizer and not high nitrogen fertilizer [3]. In past years I have used Miracle Gro, but for my roses I should be using a rose-specific fertilizer.

Interesting fact: enormous fruits are made by cutting into the phloem of a branch and then removing all but one fruit from that branch. All the sugar produced is driven to the one fruit leading it to grow much larger than normal [4].

[1] http://en.wikipedia.org/wiki/Xylem

[2] http://en.wikipedia.org/wiki/Phloem

[3]  http://www.gardenstew.com/about23326.html

[4] http://en.wikipedia.org/wiki/Girdling#Agriculture

 

Pickled Beets!

An important followup on canning safety will be coming soon. I probably didn’t process these long enough. Recommendations are 30-35 minutes. The recipe I used only called for 10. 

 

Last Saturday I harvested 6 lbs of beets from my garden. I have never had a harvest this big before so I wanted to find a good use for them. I chose to pickle them because that can be done with a boiling-water canner. Canning raw (not pickled) beets requires a pressure canner, which I don’t have.

Planting & Harvesting

I planted Detroit Dark Red Beets on June 5th before heading to Texas for the summer. While I was away, my family watered the garden, but it doesn’t look like the beets got thinned out very much. Since beets are a cool weather crop, I wasn’t sure how they would do during the summer months. Last year I did not have good luck. Thankfully this year was cooler and much wetter.

I harvested the beets on August 17th, 73 days after planting. This species is ready for harvest at 60 days but since I was travelling I was not able to harvest at the correct time. The beets were roughly evenly split between 2, 1.5 and 1 inch diameters. Most of the smaller ones were due to not being planted far enough apart. Leaving beets in the ground too long can make them tougher. During the cooking process they softened up and were easily pierced with a fork. I won’t know for another month if the taste was impacted. 

Recipe

I looked at several recipes and youtube videos for ideas. I ended up using this recipe since it did not call for many spices.

  • 10 lbs beets (I used 6 lbs)
  • 2 cups sugar
  • 2 cups beet brine
  • 4 cups vinegar
  • 1 tbs pickling salt
  • Whole cloves

I split the beets into large and small sizes to cook separately. Leave 1 inch of greens on the beets while cooking so the skin does not fall off. The large beets cooked for 30 minutes and the small beets for 25. After cooking, I could easily pierce the beets with a fork and the skins fell right off under cold water.

Next I mixed the brine, sugar, vinegar, and salt together and brought it to a boil for 10 minutes. I sanitized half-pint jars (smaller than I expected!) in boiling water for 10 minutes. Then I quartered the beets and put them in jars, added 2 whole cloves, and poured in the brine, leaving 1 inch head space in the jar. The jars were processed in boiling water for 10 minutes. (Research the appropriate time for your area. The recommended minimum is 30 minutes! oops)

I ended up with 6 and a half pints. 

Storage

Pickled beets should be stored in a cool dark area. I choose the refrigerator. I’ll let them sit for one month before I sample them. They should keep for up to one year.