Subscribe: Jehiah Czebotar
Added By: Feedage Forager Feedage Grade B rated
Language: English
annual report  annual  bike  bikes  build  citibike  data  https jehiah  https  jehiah  number  personal annual  stations  time 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Jehiah Czebotar

posts by Jehiah Czebotar

Last Build Date: Sun, 11 Feb 2018 15:30:00 GMT


Mapping 580 reckless driving complaints

Sun, 11 Feb 2018 15:30:00 GMT

Mapping 580 complaints to the NYC Taxi & Limousine Commission w/r/t unsafe driving by NYC Taxi drivers.

2017 Personal Annual Report

Tue, 16 Jan 2018 15:30:00 GMT

$ grep 2017 data.csv | d3 >

2014 Personal Annual Report

Fri, 16 Jan 2015 15:30:00 GMT

$ grep 2014 data.csv | d3 >

The dwindling life of a MacBook Air Battery

Tue, 12 Aug 2014 11:30:00 GMT

A year ago I started using a script that takes a snapshot of a MacBooks' battery health every minute. It captures weather or not you are currently charging, how much charge you it has, and what the estimated current max capacity is.

Now that I've built up a year of data, Piet van Dongen recently contributed some coding to graph that log, so I wanted to put this up for others to share.

This is 365 days of battery on a 2012 MacBook Air. You can match some of this data up to my Annual Reports.

Battery usage over time


Battery capacity over time


Chart generated via batlog-d3-chart by Piet van Dongen

A Journal on the Design Process Behind Amazing Analytics

Fri, 08 Aug 2014 10:30:00 GMT

Few people write much about the steps between a blank slate and amazing interactive analytics

Anand Sharma recently journaled about the process behind making AprilZero. It's a long read, but it's also inspiring.


If you haven't seen check it out. If a single guy can do that based on some inspiration from the Moves App mixed with some passion and dedication, how much more can we ourselves do?

2013 Personal Annual Report

Wed, 08 Jan 2014 13:30:00 GMT

$ grep 2013 data.csv | d3 >

Building a Real-Time Data Visualization of CitiBike NYC

Tue, 02 Jul 2013 13:00:00 GMT

New York City's Bike share program (CitiBike) launched on May 27th. After being one of the first few hundred people to sign up for an annual membership (they now have 50k members) things got off to a rough start, and I got my bike key a week late. Since then though I have enjoyed riding citibike's communiting to work, running errands, and along the westside greenway.

As with starting any large program, there are rough patches at first. I have my own complaints about searching for an empty bike station. I have been curious to understand how common problems are of empty or full bike stations. As I have encountered empty stations, I wanted a way to conceptuatilizing patterns in bikeshare usage. NYC has set daily ridership records that are 2x higher than DC's which helps give some context, but it doesn't help understand the relation between time of day and bike usage. Are all the bikes out at any given point in time? Are bikes used more in the morning or evening? Those are some of the questions I wanted to visualize the answers for.

CitiBike says on their website that they "look forward to sharing Citi Bike system data". Unfortunately, so far they have released only summary blog posts. As a result, I have put together a visualization based on data used by their bike station map.

Click through on the image below for the live-updating status that might help in understanding New York's bikeshare system.



The dataset used is currently updated every 6 minutes from which lists every station, it's status, and the current status of the docks at that station.

Since there is no published data or counts of active bikes (data is only for the stations, and docks), I'm currently deriving an estimate for the total number of bikes by taking the maxximum number of docked bikes over the past week. I expect this max for docked bikes to happen during the middle of the night on one of the nights. From that number, I then estimate the number of active bikes by subtracting the number docked at any given time.

Unfortunately this doesn't properly adjust the count of bikes as stations come online, or go offline, but it should be close enough to give a visual reference for bike activity.

Stations are then ranked according to utilization. Empty stations are bad, as are full stations because they either strand people, or force them to make unplanned excursions to return bikes. As many people have noticed, there are stations that are effectively full or empty but are not reflected properly in citibike's systems and show as available or full on citibikes website when they are not. That carries over to this dataset.

Other CitiBike Data

After working on this visualization, I was pointed to some other awesome works showing the geographic dispersion of bikes throught the day. Both are worth checking out.


2012 Personal Annual Report

Mon, 07 Jan 2013 11:00:00 GMT

$ cat data/2012/* | graph >

2011 Personal Annual Report

Tue, 10 Jan 2012 11:30:00 GMT

$ cat 2011 | summarize | graph >

Auto-incrementing build numbers in Xcode

Wed, 07 Dec 2011 10:30:00 GMT

It's a pain to build project in Xcode only to find out later that you forgot to update the build number.

I've used various techniques to accomplish this in the past, and I'm quite happy with this approach. Essentially, at build time, it uses PlistBuddy (which i had never heard of before) to get the build number out of your Info.plist file, update it, and re-set it in the Info.plist

Under each target you want to auto-increment the build number, at the bottom select Add Build Phase and select Add Run Script.

In the contents of the script copy the source code from below, updating the correct path to your Info.plist file.

Next, re-order the Run Script phase so that it happens as the second step. You want to make sure that the post-incremented value is what is actually included in the application so you need to run this first.