Greg

Greggles, Gregorybeans, Frijoles, Beans

me-licio-us like del.icio.us, but for me

Like del.icio.us but I'd rather have it on my own website, thank you very much.

It's a freaking linkfest in here.

Calendar

my schedule

My schedule is pretty flexible: 7 to 5:30 most days.

Monday busy from 10:30 to 11:30.
Tuesday busy from 7 to 9 and 4 to 5:30.
Wednesday busy from 4:00 to 5:30.
Thursday busy from 8 to 9:00, 10:30 to 11:30 and 4:00 to 5:30.
Friday generally free.

Nexus5 Unlimited talk/text/data for $45 per month (seriously)

You could also call this "Free Nexus5 if you switch from AT&T or Verizon." Here's a comparison of the plans and how I arrived at the idea of "Free" Nexus 5.

Item Verizon StraightTalk
Phone purchase price Subsidized $200 every 2 years No subsidy
Monthly cost for 2 lines $190 $90
Minutes included 1400 Unlimited
Text included 500 Unlimited
Data Unlimited originally, switched to 2GB for the same rate Unlimited (2.5GB cap, after that 3G service)

This chart shows how much money both of these plans cost. I used a MotoX as the subsidized phone since it is similar in specs to the Nexus 5.

Comparison of Verizon and StraightTalk plans for 2 years

For our 2-phone-household, we had been spending $4,658 in a 2 year cycle compared to our annual of $2858. Both of those numbers feel pretty high, but at least with StraightTalk we're saving $1,800 in a 2 year cycle. Source data for that chart is in this spreadsheet

Let me say that again: $1,800 savings in a 2 year cycle! We could actually buy a new Nexus phone (or similar) every year and still save money compared to Verizon.

Enter the Nexus 5 and StraightTalk

Grepping Jenkins job config files

Once you've gone beyond a trivial number of Jenkins jobs you can get into a situation of not knowing which job does which thing. You might say "I know some job is running a query on a table, but which one?" in that case it can be helpful to search your Jenkins jobs.

Managing Jobs by script size

We have two strategies for managing Jenkins jobs: put short scripts into the job itself, but move longer jobs into code somewhere else.

Most jobs use the "execute shell command" Build Step. I also use and recommend the JobConfigHistory plugin to see how a job has changed over time (or who fixed/broke things). When the number of lines in your "shell script" section of the job gets over a maybe 3 or 4 I think it's time to move things to "real code" that is managed by a revision control system with more power than the JobConfigHistory plugin (i.e. git). So, we tend to put things into one of four places: R scripts, Pentaho jobs, Drush commands or bash scripts. All of the R scripts, drush commands and bash scripts are managed with git. The working checkouts of those directories are updated periodically (...by Jenkins jobs :)). So, if I want to grep that external code to see where a particular table is being modified it is very easy to do that. But...what about the one or two line shell scripts that are inside Jenkins jobs?

Searching Jenkins Job config files

First, you have to know about the Jenkins directory structure. The job configurations are stored in files called config.xml located in the Jenkins home directory (often /var/lib/jenkins/). So, if you have a job named production_deploy then the config file for it is located at /var/lib/jenkins/job/production_deploy/config.xml

Software management on Mac: Why is it so bad for users?

Compare all these different ways you have to install and update software on Mac:

  1. The app store - obviously this is what Apple wants, but they have rules about what can and can't go there and the rules don't match the rules their customers want (e.g. easy in-app purchases) but instead what Apple wants (more money).
  2. Download software from a website and install it. This works OK, except that the vendor has to get a key that is verified by Apple (which has its own legal paperwork for the developer to pretend they read). If they don't get a key then the user has to follow this Apple knowledge base article that includes advice to control click, use the context menu, answer a dialog and then it will work. That was simple, right?
  3. If you downloaded software from a website, it might update itself (For me, Sublime, Source Tree, and Adium all do this). OR, you might have to periodically go back to that website and see if a new version is available and then download and install it (Looking at you, Dropbox).
  4. Homebrew, Macports, etc. What is this, Gentoo? Since when is compiling source all the time a user friendly idea.
  5. My favorite scenario? When I need to get software X which comes via one channel. But I have to also get something it requires which comes via a different channel. Rough.

The App Store is clearly the most user friendly option, but as a user or developer I have no control to adjust its behavior. I can't say "Get stuff from the official Apple channel but also get new software and updates from the Dropbox website.

Glossing over the issues with unsigned packages, having a variety of different methods to install software that are inconsistent with each other means I have to spend more time remembering and researching the software.

Why I Love working at CARD.com

For the past 1 year, 1 month, 1 week and 1 day I've been working at CARD.com. I love it. I've had a lot of great jobs in my career so far, but this is one that is truly extraordinary.

I'm currently pretty enthusiastic about a set of quotes from Jeff Bezos compiled at fool.com, so I'm sprinkling some of those through this post.

What is CARD.com doing?

Our CEO put it like this in a recent interview he gave:

CARD.com is the world’s first likeable financial company. We make payments fun, fair and fashionable. CARD.com offers Visa cards and MasterCard cards featuring card art and amazing perks from the best brands in the world, like Star Trek, Elvis or The Walking Dead.

And...that's a good description of what we do. But, what do I think we're doing that is exceptional?

  • We're using a ton of open source software and contributing back where we can. That just warms my heart :)
  • We're doing everything with an eye towards scalability. We have a lot of card designs and many more are coming. Some of our designs are big and some are small. We still want to delight the people with a "small" brand because to them that brand is their life.
  • Bezos said "Your margin is my opportunity." and we're following that. We aren't aiming to be the cheapest provider, but we are undercutting a lot of other providers with what we believe is a much better product. That will help us scale and as we scale big we win. It feels great to provide a product that is competitive with other options available to our typical cardholder.
  • Since we're scaling big, we sweat the small stuff. We review contracts to see how we can squeeze pennies or fractions of pennies out of different transactions.
Syndicate content