We did a bit of brainstorming last night, and aside from Flappy Tinder and GrindBus, there were some pretty good ideas. I've settled on a simple hack using OpenMBTA data: I want to read in GPS coordinates and compass heading, then recommend bus lines.
In other words, open the app, face the direction you want to go, and it will tell you which number to take.
Monday, March 31, 2014
Sunday, March 30, 2014
App Week
I'm going to try to write an app for iOS and get it on the App Store this week.
I don't know anything about the ecosystem. I've never used XCode. I'll probably fail. But, I promise to spend at least an hour a day pursuing (and documenting) my process.
I don't know anything about the ecosystem. I've never used XCode. I'll probably fail. But, I promise to spend at least an hour a day pursuing (and documenting) my process.
Sunday, March 23, 2014
LibrePlanet 2014
So concludes my first LibrePlanet! Despite living in Boston for three years, I haven't actually been in town during LP weekend until now.
I won't deny that it's an echo chamber sometimes. Nevertheless, it's a nice feeling to be surrounded by dissimilar people who've all arrived at a similar thesis. You get the feeling that no matter what happens, everyone is on the right track.
Sunday, March 09, 2014
OCTPW: Heartbeat
Heartbeat is a simple way to check a process's vital signs. Use it instead of Monit, Pingdom, Uptime Robot, or any combination thereof.
There's no setup. Just open up a terminal and type:
curl http://heartbeat.alexose.com/your-email@example.com/60
This will create a new heartbeat that will alert "your-email@example.com" in 60 seconds. You can postpone this alert by running the same command again, or you can stop it altogether by sending a cancellation:
curl http://heartbeat.alexose.com/your-email@example.com/cancel
The most straightforward use case is for keeping tabs on sensor data, but I can imagine using it wherever downtime requires your attention. I use it to monitor several Raspberry Pis (which I use for all sorts of things around the house).
Check out the README for the full documentation and more usage examples.
There's no setup. Just open up a terminal and type:
curl http://heartbeat.alexose.com/your-email@example.com/60
This will create a new heartbeat that will alert "your-email@example.com" in 60 seconds. You can postpone this alert by running the same command again, or you can stop it altogether by sending a cancellation:
curl http://heartbeat.alexose.com/your-email@example.com/cancel
The most straightforward use case is for keeping tabs on sensor data, but I can imagine using it wherever downtime requires your attention. I use it to monitor several Raspberry Pis (which I use for all sorts of things around the house).
Check out the README for the full documentation and more usage examples.
Sunday, March 02, 2014
OCTPW: SimpleBeeps
The problem is that cell phones come preloaded with awful ringtones. The solution is SimpleBeeps.
Sunday, February 23, 2014
OCTPW: Pomodoro!
I'm a huge fan of the Pomodoro technique as a way to manage daily tasks. I'm a programmer, and I learned about it from another programmer, but I think any person that spends most of their time in front of computer can benefit.
Very briefly, the central tenets are:
- Break your tasks into 25-minute chunks ("Pomodoros") at the beginning of the work period, and write them down on a piece of paper
- Complete each task in 25 minutes, cross it off, and take a 5 minute break
- After three tasks, take a longer (15-25 minute) break
- Repeat until finished
This absurd simplicity is actually very effective. It forces me to develop a strategy, execute within a time constraint, and be honest and accountable with myself when something doesn't get done on time.
As a longtime pencil-and-paper Pomodoroist, I couldn't help but wonder what a fully realized Pomodoro app might look like. Something that keeps that same spirit of simplicity while addressing some of the annoyances of paper.
This is my first attempt at a modern Pomodoro tracker. It's still unpolished, but works well for me. As always, the source is freely available and I welcome any feedback or contributions.
This is my first attempt at a modern Pomodoro tracker. It's still unpolished, but works well for me. As always, the source is freely available and I welcome any feedback or contributions.
Sunday, February 16, 2014
OCTPW: The Quantified Hedgehog
My first One Cool Thing Per Week (OCTPW) entry is more of a show-and-tell, since it's actually been in the works for several months.
Many of you have met my hedgehog, Hugh. He lives in a custom-built box that has lots of sensors. Among them are three thermometers, two cameras (including infrared), and a speedometer/odometer hooked up to his wheel. All of this (and more!) are available at http://hedgehog.alexose.com.
I'm looking for more ways to consume the speedometer data. It's both the most interesting and worst-implemented feature on the site-- Since it's limited to the last 24 hours, the only way to getting a feel for Hugh's exercise regimen is to check in every day.
From my observations, he tends to run about 4.5 miles each day, starting at 6pm (when it gets dark), again at midnight, and again at 3am. His record distance in 24 hours is an impressive 7.67 miles!
If you're interested in a bit more technical detail, check out the "about" tab.
Many of you have met my hedgehog, Hugh. He lives in a custom-built box that has lots of sensors. Among them are three thermometers, two cameras (including infrared), and a speedometer/odometer hooked up to his wheel. All of this (and more!) are available at http://hedgehog.alexose.com.
I'm looking for more ways to consume the speedometer data. It's both the most interesting and worst-implemented feature on the site-- Since it's limited to the last 24 hours, the only way to getting a feel for Hugh's exercise regimen is to check in every day.
From my observations, he tends to run about 4.5 miles each day, starting at 6pm (when it gets dark), again at midnight, and again at 3am. His record distance in 24 hours is an impressive 7.67 miles!
If you're interested in a bit more technical detail, check out the "about" tab.
Sunday, February 09, 2014
OCTPW: Meteograms!
This week for the One Cool Thing Per Week (OCTPW) initiative, I'd like to share my favorite graph on the internet. It's not interactive, force-directed, artfully designed, or data-driven. In fact, it's a bitmap generated by a PHP script on a .gov website:
NOAA Forecast Meteogram for Boston, Now -- +48 Hours
This type of graph is called a meteogram, and is actually a de facto format for visualizing weather station data. There are about as many types as there are weather agencies. You don't see them on consumer facing weather services so much (In the quest for minimalism, nothing gets ignored quite like a 16 color rectangle with 12 different data series smooshed together).
This particular graph from NOAA, though, is my favorite. I think what makes it work is how well it correlates disparate series: Each plot takes up the same amount of height and is scaled to look like roughly the same amplitude. Closely related data is grouped together, but not so closely to become overcrowded. Subtle touches indicate directionality, or totals, or probability-- But only when it applies. Most impressive is how it behaves at the extremes: During big storms, the data is just as readable as during a relative lull.
This type of graph is called a meteogram, and is actually a de facto format for visualizing weather station data. There are about as many types as there are weather agencies. You don't see them on consumer facing weather services so much (In the quest for minimalism, nothing gets ignored quite like a 16 color rectangle with 12 different data series smooshed together).
This particular graph from NOAA, though, is my favorite. I think what makes it work is how well it correlates disparate series: Each plot takes up the same amount of height and is scaled to look like roughly the same amplitude. Closely related data is grouped together, but not so closely to become overcrowded. Subtle touches indicate directionality, or totals, or probability-- But only when it applies. Most impressive is how it behaves at the extremes: During big storms, the data is just as readable as during a relative lull.
Wednesday, January 22, 2014
Set up an active GitHub repo with a single bash command
There should never be any barrier between thinking of something and putting it on GitHub.
With that in mind, here's a very short bash function + alias I use to get a repo up as quickly as possible.
With that in mind, here's a very short bash function + alias I use to get a repo up as quickly as possible.
# github
function new_github_repo(){
if [ -z "$1" ]
then
echo "Usage: github [name]"
else
USER='YOUR_GIT_USERNAME'
curl -u "$USER" https://api.github.com/user/repos -d '{"name":"'$1'"}'
cd ~
mkdir $1
cd $1
touch README.md
git init
git add -A
git commit -am "Initial commit."
git remote add origin git@github.com:$USER/$1.git
git push origin master
fi
}
alias github='new_github_repo'
Saturday, January 11, 2014
Iron Blogger!
Great news-- I made it through the rigorous application process, and have been accepted to Iron Blogger Boston!
A big part of why I'm doing this is to participate in the One Cool Thing Per Week (OCTPW) initiative. Briefly, this is something I just made up where I present one short project per week that I find "cool". Most of these will be software projects, with a few hardware and maker things thrown in. I encourage others to join me on this endeavor.
Outside of OCTPW, I will be posting my usual smörgåsbord of random observations, factoids, and anal-expulsive cynicsm for future archaeologists to puzzle over.
On a side note, I'm going to be using Stypi as a word processor for all of my future posts. If you haven't used it, you should! It's one of my favorite examples of featureset minimalism on the web. Very unix-philosophy-y.
(I do wish I could synchronize it with my blogging software, though. Anyone?)
Saturday, October 19, 2013
Monday, July 22, 2013
A simple one-liner for repeatedly querying a remote XPath from the command line!
I often want to monitor a single element on a page, but I don't feel like firing up python to make it happen.
Using a tool called xidel, this command will write the results of an xpath query to a file every 300 seconds:
yes "xidel YOUR_URL_HERE -e \"YOUR_XPATH_HERE\" 2> /dev/null; sleep 300"|sh > output.txt
Here's a working example:
yes "xidel http://www.indiegogo.com/projects/ubuntu-edge -e \"/html//p[@id='big-goal']\" 2> /dev/null; sleep 300"|sh > output.txt
Sunday, February 10, 2013
The Best Terminal Font
Misc-Fixed-6x13, a.k.a misc-fixed, a.k.a. "Fixed", is the best font for the terminal. I can offer no scientific proof. In my eyes, however, it is the most balanced and correctly-proportioned monospace pixel font, regardless of availability or license.
Here is a link to its current home. Here is a link to a TrueType (.ttf) version I created this morning.
Tuesday, July 17, 2012
The Rotary VOIP Phone
This is a project I've had brewing ever since the extraordinary Raspberry Pi project was announced. It's a fully-functional VOIP device cased in an old Western Electric rotary phone! You can use the dial to place calls, and talk via the receiver. Calls end when the receiver is placed back on the hook.
Thursday, June 28, 2012
The Supreme Court Might Kill 1.1 Million People Today
A quick back-of-the-envelope calculation:
Assuming the Senate Bill, the 95% of the nonelderly population of the USA (or 86.7% of the total) would have insurance by 2021. Assuming 325 million people in 2021 (1), and 82% coverage without the legislation (2), an extra 36.6 million people stand to be covered (this number is pretty close to the one estimated by the CBO-- 34 million (3)).
Assuming the uninsured face a 3% increased mortality rate over eight years (5), overturning this legislation will be responsible for roughly 1.1 million deaths from 2021-2029.
Citations below the fold.
Tuesday, November 02, 2010
Wednesday, November 18, 2009
Two Serious Questions
How often do you click "Follow us on Facebook" links from a company's website?
How different is this from a web ring?
How different is this from a web ring?
Tuesday, September 22, 2009
Thank you John Carmack
A note about something I just realized.
The most anticipated computer game ten years ago was Quake 3. It was one of the few core games that seemed guaranteed to transcend the core market-- Gamers would see it as the next way to compete. Normal people would play it casually with friends. Geeks would play it for the dynamic lighting and curved surfaces.
When the demo was released, the Mac and Linux versions came out first, which sent an enormous amount of Windows users scrambling. Because this was years before installing Linux convenient in any way, it forced a great number of people to learn about booting from floppies, partitioning, filesystems, the command line, installing proprietary video drivers, and a host of other Linux-y skills.
It took me four days to get to the point where I could even run the game, but I got to enjoy it three days before my friends. And it set me on a path that I've been on for ten years.
Thanks, John!
The most anticipated computer game ten years ago was Quake 3. It was one of the few core games that seemed guaranteed to transcend the core market-- Gamers would see it as the next way to compete. Normal people would play it casually with friends. Geeks would play it for the dynamic lighting and curved surfaces.
When the demo was released, the Mac and Linux versions came out first, which sent an enormous amount of Windows users scrambling. Because this was years before installing Linux convenient in any way, it forced a great number of people to learn about booting from floppies, partitioning, filesystems, the command line, installing proprietary video drivers, and a host of other Linux-y skills.
It took me four days to get to the point where I could even run the game, but I got to enjoy it three days before my friends. And it set me on a path that I've been on for ten years.
Thanks, John!
Saturday, July 18, 2009
An Open Firefox Feature Request
I love tree-style tabs. It suits my [scatterbrained] working style to have 50+ tabs open at a time. I almost always middle-click links to put them in a new tab. This way, I can leave parent pages completely untouched while I go off on tangents, compare notes, etc. I eventually return to the page I started on and continue on my merry way.
Increasingly, links no longer point to discrete pages but DHTML elements that are meant to change the appearance of the parent page. They can't be opened in a new tab, and there's no reassurance that they won't mangle the page beyond recognition. Not only that, but they're hard to identify-- Generally their destination ends in an anchor tag (i.e. "#content"), but other than that they are indistinguishable from normal off-page links.
I propose that middle clicking these links opens an overlay that can be easily closed. This way, the damage can be undone, and the browsing experience can continue uninterrupted.
Increasingly, links no longer point to discrete pages but DHTML elements that are meant to change the appearance of the parent page. They can't be opened in a new tab, and there's no reassurance that they won't mangle the page beyond recognition. Not only that, but they're hard to identify-- Generally their destination ends in an anchor tag (i.e. "#content"), but other than that they are indistinguishable from normal off-page links.
I propose that middle clicking these links opens an overlay that can be easily closed. This way, the damage can be undone, and the browsing experience can continue uninterrupted.
Thursday, June 11, 2009
Well, that was an experience
This morning, I decided to take a short detour to Radio Shack to pick up some magnet wire. While the decision seemed perfectly reasonable at the time, it lead to a very unreasonable series of events-- Starting with a bike ride across town to visit three different stores, and finally culminating inside a local machine shop where a toothless, semi-drunk store employee wrapped five feet of wire around a pencil and gave it to me free of charge.
It's not that I'm upset about the day's events per se but the confused expressions on people's faces when I asked to buy such a common item. Magnet wire is in virtually everything. I concluded two things:
1) I visited three very bad electronics stores.
2) Tinkering with electronics is not as common as it should be.
It's not that I'm upset about the day's events per se but the confused expressions on people's faces when I asked to buy such a common item. Magnet wire is in virtually everything. I concluded two things:
1) I visited three very bad electronics stores.
2) Tinkering with electronics is not as common as it should be.
Subscribe to:
Comments (Atom)