Next Saturday I’ll be teaching another class at my hackerspace, the MakerBar in Hoboken.  This will be my third Raspberry Python class.  Following up on the initial class, and the train class.  Like the others, this workshop will cover the basic use of a Raspberry Pi, but it’s coming together really well, I’ve got a Pi sitting on my desk chattering inane things from my twitter feed at me and actually, it’s proving more useful than I expected.  Just in developing the project I’m finding more out about my friends than I had before–mostly some corporate feeds to unfriend and some friends to check up on.

The class will run about 2-3 hours so we’ll have time to get our Pis setup, on the latest version of Raspbian, which already includes NTP, and really dive into the programming and improvement.  Since most of our time and effort will be software, the hardware is perhaps not so impressive, no loop of train track here, but this is a picture, of the prototype

If you’re interested in coming, please rsvp at meetup here.  And if you need a Pi or SD card, leave a comment there, a few are on order so we should have some.

The First Clock of February

January 31, 2013


By the end of the week it will be February and my hackerspace, MakerBar, will be on to our February theme, it’s about time. The members are talking about clock and calendar projects and there are two clock classes in the works; Raspberry Python – Talking Clock Feb 9th and ChipKIT for Organic Lifeforms: Clock Edition Feb 23th.

This then is the first clock of February, a ChipKIT Uno32 with a ChipKIT Basic I/O Shield attached. As befits a beginning this is a very simple project.

Step 1 Solder in RTC Crystal (based on instructions here)

Step 2 Attached Basic I/O Shield (got this for contest here)

Step 3 Program (combined OLED example here with RTC example here)

#include <IOShieldOled.h>
#include <RTCC.h>

void setup(){

// Initialize the RTCC module

// Set the time to something sensible

void loop(){
char date[9];
char time[9];

// Format the time and print it.
sprintf(date,”%02d/%02d/%02d”,, RTCC.month(), RTCC.year());
sprintf(time,”%02d:%02d:%02d”, RTCC.hours(), RTCC.minutes(), RTCC.seconds());

//Clear the virtual buffer

//Chosing Fill pattern 0
//Turn automatic updating off
IOShieldOled.setCursor(0, 0);
IOShieldOled.setCursor(0, 1);
IOShieldOled.setCursor(0, 2);
IOShieldOled.putString(“ChipKit Clock”);

This clock will become the basis of the class project for the February 23th class,  ChipKIT for Organic Lifeforms: Clock Edition. The clock in that class will not rely on this shield and will have functionality this clock does not, like setting the time, and time permitting an alarm.

Full, latest code available here.


August 26, 2012

There is a missing middle in our approaches to sharing servers.  On one end we have static web hosting where all users are doing the same thing so we can install and run one copy of Apache for all users, that works up to the point of cgi scripts and php. The other end of the spectrum is to buy a server and that extends down to virtualized servers. Between there is a gap where there is some commonality to the user’s needs, but little support. Engine Yard has their RailsEngine platform for Ruby and there are a few Python offerings of which PythonAnywhere is one.

PythonAnywhere starts from the assumption that you will be running Python. They also assume that you’ll want to use Python interactively at least sometimes, probably a lot. The operation of PythonAnywhere is to login and select a console. You can choose from your existing consoles or start a new one in your choice of:

* Python: 2.7 / 2.6 / 3.2
* IPython (0.12): 2.7 / 2.6 / 3.2
* PyPy (1.6): 2.7
* Bash

Once you select a console it will open directly in your browser through a combination of JavaScript and Flash. It tries a few different connection mechanisms so it does work even without Flash and through some but not all firewalls. It also works on Android 4 and supposedly iOS, though you should get a keyboard without auto-complete or an external keyboard . This kind of quick access to different runtimes is great for testing, but the consoles are also persistent, so you can start working on one device and switch to another.  You can prepare a session on your desktop and then connect to it from your laptop for a presentation, or rely on iPython’s history feature to recover even if it gets restarted. The other payoff is sharing, any console can be shared–no account needed for the recipient. Sharing is real time and persistent a class can share the teacher’s console passing control from student to student to answer or ask questions.

Surrounding the console features PythonAnywhere provides file hosting with a basic JavaScript IDE which will let you run scripts or launch them to a console. If you use Dropbox you can set it to sync folders or use your choice of version control to check out projects.

For non-interactive hosting you can go simple with scheduled tasks or hook in a wsgi application.  Because the servers are virtualized via Amazon’s ec2 you cannot run a server directly.  Free users can have addresses, and paying customers can point their own domains at the service.  That’s pretty much the way of things when it comes to paying, PythonAnywhere is on a freemium model, most of what you need is in the free tier, unless you’re doing something that you’ll have to admit is on the heavy side.  The only real hassle to the free tier is that they’ve had to restrict http access to a whitelist of sites to prevent misuse.

To get started with PythonAnywhere just sign up at with the free account you can get two consoles, a database, and everything you need.  Sign up is faster than installing python locally.  Even from the basic account you can share a console, so this makes a great tool for learning and exploration.  Give it a try next time you’re experimenting or collaborating, try it on a desktop or laptop before trying to use it on a mobile device where it can be a bit more finicky.

Disclaimer, I have been involved in the PythonAnywhere Beta test and they have thanked me with account upgrades and free gifts.  No one from PythonAnywhere nor Resolver Systems was contacted to prepare this review.

Tomorrow at 1:30pm I’ll be presenting Metaclasses Gone Wild at PyGotham.  This is the same presentation I’ve previously given in the Risk Focus Python Tutorials series with new examples and better slides.  The slides can be found on Prezi.

Friday is Geek Pride Day and I wanted to invite all of you to celebrate with me by taking a class or just geeking out at the MakerBar in Hoboken.

I’ve been working on getting the MakerBar off the ground as a place for experimental and physical projects and would love to invite all of you to come by after work any Friday for our open Craft Night and on May 25th we’ll be offering a Soldering Class and in the future we’ll have classes on microprocessor programming, hobby electronics, and various kinds of geeky skills.

The MakerBar is a non-profit makerspace, sometimes often called a hackerspace.  We exist as a place and community to support DIY projects of all types, such as robotics, model making, intelligent devices, and whatever else you might like to build, but don’t have room, tools, piece and quiet, or skills to do at home.  We have a space in a Hoboken warehouse and are filling it with tools, supplies and projects.

If I may direct your attention to for a moment, I’d like to tell you about some of what I’ve been doing for the past few months.  Part of my time has been spent consulting for Blellow, helping them develop their microblogging platform into what you see today.  I suppose I’d best start by explaining what Blellow is, from the main site:

Blellow is a social networking community developed to encourage participation from freelancers and creative professionals by answering the question “What are you working on?”

If the question sounds like Twitter’s “What are you doing?” then that’s quite alright. Blellow incorporates the lessons learned from Twitter and tries to do one better, incorporating groups, job listings, and mmmpphph (can’t talk about that yet). Of course it also has a high signal to noise ratio, a lively community, and an API for any integration you might like to do.

I’ve been helping Blellow out as a development consultant, I provide my services as a technical adviser and manager organizing the thoughts of their non-technical management team in San Antonio, Texas and the work of their outsourced development team, provided by Vinsol in India. On the technical side I review Blellow’s long term plans and help them prioritize them both by explaining the interrelationships between features and giving them estimates for planning purposes. It’s also in that role that I get to take loosely formed ideas like our recent affiliate program and tighten them down into real implementations and advocate for technical needs, like caching and performance optimization. On the management side I review the work of the development team and providing feedback and guidance, filling in holes in the specifications and prioritizing the development work to match Blellow’s business goals–the work of a team lead or a project manager.  Prior to my joining the team these technical management decisions were being made by the management team in San Antonio.  My contribution is to read the notes from the developer with the question, research the technical options as needed and return an answer quickly rather than after a full cycle of meetings and discussion.

So, give Blellow a look it’s pretty cool and is beginning to develop a culture of mutual support for freelancers.  And if you have a software project that needs technical guidance and/or management support, maybe we should talk.


July 27, 2008

Bill Ward and I have arranged for another outing for our control panel, this time as part of the NYC Resistor Art of the Game Show it’s been hooked up to Pong, with Pong itself running in the sandbox in Pi.

The control panel installed in NYC Resistor's Gallery.

The control panel installed in NYC Resistor's Gallery.

Pong in the Pi sandbox.

Pong in the Pi sandbox.