Home
-
Learning in Public
When I started this blog in 2013 I used WordPress to avoid reinventing the wheel before moving over to Jekyll in 2016. I never took the time to set up continuous deployment so would SSH into DreamHost (strong CamelCase theme emerging here) then pull the generated static site from a Git submodule. The added friction was just enough so that I wouldn’t post very often.
-
Teaching Yoga
It has been nearly 4 years since my last blog post! In 2019 I had left a job I loved teaching software development in Colorado and moved back to California. After living in New York City from 2007-2012 and then Boulder until 2019, I felt like I was holding my breath in between surf trips, and formed an intention to plant roots on the California coast.
-
Notes on The Yoga Sutras
“If you can control the rising of the mind into ripples, you will experience Yoga.”
-
Rails without sudo
The installation process is an unfortunate stumbling block for many people learning Ruby on Rails. While it is easy to get going, it is also too easy to end up using
sudo
to install various things as root along the way. I remember this being annoying for me 7 years ago, and revisiting the framework today, it does not seem like much had changed. Hopefully these steps will help! -
Understanding 'this' in JavaScript
Here is a snippet and link to my favorite example that you can use to understand
this
in JavaScript. Make sure you have the console open and read the logs as you click on the buttons. The code is here in GitHub as well. -
Playing with Rust and Kotlin
While it is clear that I enjoy using Elm for front-end web development, I’ve been trying to find the best tool for simple back-end web applications for several years now. I want to share two toy projects I recently started working on in case it is helpful for anyone out there. Both have been deployed to Heroku.
-
Next Iteration of Valunicorn Calculator
“The goal is two-fold: level-up my Elm skills by continuing to maintain and develop a more complex application and add features to a project which people can use to invest sustainably.”
-
Ejected create-react-app not working on Heroku
This post is for everyone learning React out there. Weekend warriors, boot campers, and autodidacts.. I’m here for you! They told you not to do it, but you did it anyway.
-
Elm in React Part #3
This is a follow-up to Elm in React Part #2. We have replaced the “add todo” form view of a React todo list app with Elm, but we still need model and update functions as part of The Elm Architecture. We also need ports to communicate with JavaScript or React in this case. Checkout the Elm branch of this todo list repo if you want to follow along. Here are the remaining steps:
-
Elm in React Part #2
This is a follow-up to Elm in React Part #1. In the first post we replaced the “add todo” form portion of a React todo list app with “hello world” written in Elm. Now we will replace the Elm “hello world” stub with an Elm view. Checkout the Elm branch of this todo list repo if you want to follow along. In plain English these are the steps I took:
-
Elm in React Part #1
This post will expand upon Evan’s post describing how to use Elm with React. I’ve been using this todo list example to teach react for a while now (thanks Chad!) so I thought it would make sense to use the same example here. Checkout the Elm branch of the todo list repo linked above if you want to follow along. You can see the whole commit diff for this blog post here.
-
Nested React Routes in v4
Using
render
instead ofcomponent
in React Router v4 works for plain old child components, but not when your child component is a nestedRoute
. In this example I’ve taken the react router quickstart tweaked it to pass props into a wrapped route. -
Elm Events in Colorado
December Elm Hack Night has been cancelled, but Wednesday January 24th is Beginner’s Night at Front Range Elm. Please spread the word and bring your friends!
-
Tips From a FP Noob
Functional programming is amazing! Huge thanks to the professors, colleagues, and friends who have helped me appreciate that. In this post I will humbly share four tips I’ve picked up along the way:
- Play with a passion project
- Ask the right questions
- Really read the docs
- Give back to the community
-
Go is Not Python
You know Python fairly well, but your manger wants to start using Go “because it is faster”. Being the overacheiver that you are, you sacrifice time from your precious weekend to figure out the basics. Take a trivial Python program like this for instance:
-
Calling All Landlocked Surfers
Over the last couple of years I’ve been blessed with amazing surfing experiences. I’ve ridden waves from Spain to Hawaii, Mexico, and home in California. As I have gotten older though, many of my friends have stopped surfing for various reasons (work, family, injuries, etc.). Living in Colorado has changed the dynamic quite a bit too. I need to make more of an effort to organize surf travel with friends.
-
5 Reasons Interest Rates Are Rising
-
How to EC2
Launching and connecting to an Amazon EC2 instance is surprisingly confusing. I ran into a few gaps working through this Docker tutorial that I wanted to share. This section explains how to launch an instance fairly well, but you may encounter a couple of gotchas before you are able to connect using SSH.
-
Welcome to Jekyll!
You’ll find this post in your
_posts
directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to runjekyll serve
, which launches a web server and auto-regenerates your site when a file is updated. -
Impact Hub Berlin
I hope that Impact Hub Berlin never changes. Members will come and go, superficial improvements may happen over time, but the warm and colorful community there can withstand all of it. To understand this co-working space, you have to know its history and the people behind it.
-
Impact Hub Praha
It was impossible for me to take pictures when I first arrived in Praha (Prague). Everything was so magnificent and cohesive, that capturing any little part of it wasn’t going to do the city justice. This is a incredibly beautiful place. However, it is the people here that make it special.
-
Nordic.js
JavaScript is unique from other programming languages because it is used not only on the server, but within the browser. So while other languages might give you the ability to create visualizations on the front-end or develop an API on the back-end, JavaScript empowers engineers to do all of those things and much more.
-
Travel
Hey everyone! Blue Hook is in Europe attending Nordic.js and Reject.js this month. Along the way I’ll be working out of several Impact Hubs and the whole journey will be documented on my personal blog if you are interested in following along.
-
Impact Hub Stockholm
Travel to a place where you know nobody and instantly become part of the community there. That’s the experience that I had visiting Stockholm and using the Impact Hub Passport! Everyone from the founder to the hosts and members were extremely friendly and collaborative. This has been the first stop on my journey which will take me to 3 (now 4) hubs in Europe, so it will always have a special place in my heart.
-
Impact Hub Adventure
As I’ve said before, I love being a member of Impact Hub Boulder. The incredible people there inspire me every day. However, it’s time for a new adventure. I’m off to Europe!
-
Northern Colorado Value Investing Meetup
I’m speaking on the value investing newsletter Valunicorn at the next Northern Colorado Value Investing Meetup “Q2 2015”. Register here. The meeting will take place beginning at 8:15 AM Sat Jun 27 @ La Vita Bella Coffee in Longmont. Hope to see you there!
-
Cross-pollination
I love being a member of Impact HUB Boulder! The community here has helped me grow both personally and professionally. While my experience locally has been amazing, I know that there is more out there, and have put together a letter in anticipation of a stay in Europe this fall. A few members of the leadership team will be passing this along to other Impact HUB directors at gatherings over the coming months:
-
PhantomJS failed 2 times (timeout). Giving up.
Giving up? There is no giving up in Node.js! Come on..
-
The Most Valuable Django Command Ever
There you are, debugging using pdb or ipdb, trying to ship the latest build of an important project. You are running PostgreSQL, yet a pesky SQLite error continues to interrupt your workflow:
-
Praise for Carmen Segarra
“The issues are lack of backbone, transparency, thoroughness and perseverance.”
– So Who is Carmen Segarra? A Fed Whistleblower Q&A (ProPublica)
-
3 Things
Do not trouble yourself much to get new things, whether clothes or friends. Turn the old; return to them. Things do not change; we change.
-
BLDRPPL: Changes Coming Soon!
We have had some amazing conversations over the last couple of months at BLDRPPL. Our third full episode will be finished sometime this week. While each person featured so far has been very unique and interesting, I hope that we can branch out further over the next year and have slightly more frequent posts. Also, if anyone is aware of a sponsor who would be willing to donate space for less than an hour every couple of weeks for a quiet interview, please let us know!
-
A Tale of Two Conferences – PyCon vs. LambaConf (Part 2)
So, what is the problem? Python is easy enough to read that Guido was able to debug his program in a matter of seconds during his keynote. If it were a large system with several dozen developers though, it would surely be more difficult to write tests and prevent errors from occurring. While Python is strongly typed, it is a dynamic programming language, meaning these checks happen at runtime instead of during compilation.
-
A Tale of Two Conferences – PyCon vs. LambaConf (Part 1)
Over the course of the last week I attended both PyCon in Montreal and LamdaConf right here in Boulder. I have always enjoyed using Python, but thanks to one outstanding professor, I also have very fond memories of functional programming and lambda calculus from grad school. Both conferences were amazing, and there were similarities between the communities, but these are two fundamentally different styles of programming.
-
Servant Leadership
The notion of “Servant Leadership” is timeless. Ancient Chinese and Indian philosophers described the ideal and it is a common thread among many religions.
-
The Cycle
I have been thinking a lot about economic cycles lately with the surge in speculative activity during the first quarter of 2014 and Facebook’s recent $19 billion takeover of WhatsApp. This is the 4th largest technology acquisition in history and there have been a record breaking $42.4 billion worth of mergers and acquisitions in the first month and a half of 2014 according to Thomson Reuters.
-
Foo Bar Baz
There you are in your first computer science class. Intimidated by all of the brain power in the room and confused by the professor who is attempting to teach Python, you are afraid to ask questions and seem stupid. She presents an example:
-
BLDRPPL
I started a new project this weekend called BLDRPPL. There are so many interesting characters in this little town and I wanted an excuse to get to know them. Here is the basic idea:
-
The Bitcoin Bubble
I no longer work as a financial professional. I am a software developer. Nevertheless, a deluge of articles about Bitcoin recently has driven me to write an obligatory blog post memorializing my perspective. Bitcoin is just like the South Sea Bubble and Tulip mania in that the price increases are unsustainable as they are not based on intrinsic value.
-
Teamwork
My first experience developing software was in a group setting. It became clear to me that the three of us working in the lab were able to get more done than any one of us would have been able to independently. I could chime in when something made sense to me and listen closely if another person had a unique insight into a problem. The romanticized notion of a lone wolf hacker had no place there. We were working together as a team.
-
Highway 1
I had some free time over the last couple of weeks and decided to take a little road trip. Even though I spent four years in college at Cal Poly San Luis Obispo, I had never made my way up Highway 1, and it seemed like a good excuse to explore the California coast.
-
Longmont Hackathon
What an experience! I met so many fantastic people and learned a bunch at the Longmont Hackathon this past weekend. Skyline High School was well represented with a team of incredibly gifted young developers, but the star of the show was 14-year-old Jackson Roberts who took 1st place with his “Longmont Events” application.
-
Mouse Trap
Inspired by Quick Left’s Rube Goldberg Hackfest, I set out to build a fancy web application version of the board game “Mouse Trap”. This involved setting up a web server using Node.js and Express, hitting the server with a simple iOS app, polling said web server using client side JavaScript, cropping images with Gimp, and working with jQuery.
-
Deploying Node.js on Heroku
I encountered a few gotchas that I wanted to share while hacking on Node.js this weekend. The tutorials available at nodejs.org are extremely thorough and very helpful, but you may run into some of the same issues that I did when expanding from your basic “hello world” application. First we will discuss Node.js specifically and then we will move on to deployment with Heroku.
-
Pay As You Learn
Be careful out there, kids! While many repayment plans are available to college graduates today, it is worth considering the implications of postponing interest payments. If you are going to maintain a Partial Financial Hardship (PFH) for the next 20-25 years, then Income Based Repayment (IBR) or Pay As You Earn (PAYE) may be good options for you, but what if you don’t?
-
Reinventing the Wheel
After thinking long and hard about all of the possible technologies that I could use to rebuild my personal website, I surprised even myself by going with WordPress. I had considered just about everything. While responsive design is extremely interesting, and Getting Started with Rails shows you exactly how to build a blog from the ground up, I chose to go with WordPress for several reasons:
subscribe via RSS