Cornell Technion Project Studio

I spent this evening as a crit advisor for this semesters Project Studio. The class is basically a finishing class for their Masters students. The class forms teams that work with a "company champion" that acts an advisor to build a product.

As a Crit Advisor, I, along with two other people from the tech industry have a give and take with three groups and hopefully we can provide useful feedback.

As a "tech industry person" I feel a bit like an outsider since I'm really the "teacher guy," but I think I had some worthwhile things to share with the groups. Besides, I'd like to think I'm sufficiently in touch with the tech industry through "the family" to be a reasonably sound advisor.

As it turns out, two of the groups I worked with had an education bent so at least in terms of product they were in my wheelhouse.

I don't want to talk specifically about the student products since I didn't ask permission but I did want to share a few thoughts.

The products reminded me very much of the projects my Stuy kids produced in their senior SoftDev class. This is not to belittle the Cornell Tech people but rather noting how advanced the work of the Stuy kids is. Beyond that, I liked the composition of the groups I talked to - nice combinations of skill sets and backgrounds.

I love the idea of the mentoring company which had an interesting effect on the groups. In all cases, the mentoring company helped provide the teams with an idea framework but in one case, I think the company's point of view actually limited the groups vision a bit. This came up in our discussions and I'm hoping that the students got something out of that.

I also liked the crit review I was part of - bringing in outsiders to show your work to and to get feedback from. It would probably hard logistically at Stuy, but I'll talk to the guys there about the concept.

I shared my contact info with the two groups that asked and if they follow up, I'd love to be a resource for them.

I'm also looking forward to taking part in more events like this in the future.

Halloween 2016

It's Halloween and for the first time in 21 years, I'm not at work in costume.

It all began as a lark in October 1994:

And grew from there. A partial list of characters include:

  • Groo the Wanderer,
  • Little Ceaser (Pizza Pizza)
  • The Jolly Green Giant
  • Homer Simpson (with my seniors as the rest of the cast)
  • Duffman
  • Hans and Franz (with Boris)
  • The Hulk
  • The Blues Brothers (with JonAlf)
  • Dr. Evil (with JonAlf as Austin Powers)

While it was a lark, I noticed that days after, my students were somewhat more relaxed and fun. If nothing else, it accelerated us getting to know each other.

A likely turning point was when I was Bob Ross:

That was the first year that was just as performance based as it was costume based.

Of course, the downside is that pretty soon, I was expected to top myself every year. The last couple of years were fun but part of me felt like I was going through the motions. I needed a break.

So, now at Hunter College, I'm taking that break - no costume this year. We'll see what the future holds, but here's a youtube playlist with some of my favorite halloweens past.

Why Hunter CS is so important to NYC

If you know me you know that my morning reads include a visit over to, Today, Fred's post talked about development and progress, evolution, if you would, in the city. Although not directly related, it got me thinking about gentrification.

To me, gentrification all too often seems to result in pushing out people and business that were there during the hard times.

We don't need to force out long time residents that can no longer make rent - we need to uplift communities with pathways to towards greater economic opportunity.

Those of us in CS Education, each in our own way, are trying to help build those pathways.

Return readers know that I've ranted about some of the popular magic bullets. I've periodically talked about my concerns over code schools but even at their best they represent a workforce program for the well to do. I've also talked about efforts like P-Tech which sound good, but besides the fact that the emperor has no clothes, is the school really preparing kids for opportunities in their own neighborhoods or in data centers far from home?

There are some workforce programs like Per Scholas that I really like and respect but they're limited in what they can do.

What does that leave us with? The traditional path – college.

In terms of tech, New York City has some amazing colleges. You ask most people, they'll come back with NYU, Columbia. Great institutions but very expensive. Not everyone can afford $75,000 a year and not everyone can afford to go into hundreds of thousands of debt.

This is why Hunter CS is so important. Actually CUNY but I can only affect my little corner of the world.

Hunter College has a really nice CS program and department. It's small and has flown under the radar but it's one of the reasons I came over to Hunter.

One of my responsibilities at Hunter is to develop our new honors CS program and to connect all of Hunter CS to the tech sector in NY.

I haven't written much about what's been going on but that will change int the months to come. Suffice it to say that to uplift our communities we need real, affordable educational opportunities and in terms of tech, education that leads to real opportunities in our city's tech sector.

I'm convinced that Hunter College can be a game changer for the wealth of young talent we have in New York and for our tech sector.

Using Emacs - 17 - misc small packages

I'm working on getting enough of my real configuration into this series so that I can dump my current one and use this one all them time and grow it back up an episode at a time.

I think we're almost there.

This time, we're looking at a few small packages that I use all the time.

Highlight line Mode

(global-hl-line-mode t)

this turns on highlight line mode. It makes it easy to see the line the cursor's on. Nothing huge, I just like it.

Beacon mode

Beacon mode flashes the cursor whenever you scroll. It makes things easy to locate the cursor when scrolling

; flashes the cursor's line when you scroll
(use-package beacon
:ensure t
(beacon-mode 1)
; this color looks good for the zenburn theme but not for the one
; I'm using for the videos
; (setq beacon-color "#666600")

Hungry Delete mode

This mode deletes all the whitespace after the cursor (or before it) when you use delete or backspace.

; deletes all the whitespace when you hit backspace or delete
(use-package hungry-delete
:ensure t

Expand Region

Magnar Sveen's awesome expand region mode is a must have. He also wrote the amazing multiple cursors package. I highly recommend checking out his work.

Expand region expands the marked region by semantic units. It's my go to way of marking text for manipulation

; expand the marked region in semantic increments (negative prefix to reduce region)
(use-package expand-region
:ensure t
(global-set-key (kbd "C-=") 'er/expand-region))

I also tried to look at aggressive indent but that had some problems so we'll come back to that later.

Knitting at a Tech Conference


This past weekend was Catskills Conf, one of my favorite events of the year.

Last year, Devorah joined me and also enjoyed the show.

If you know my wife, you know she's always knitting. Ok, not true, she's always knitting, spinning, weaving or performing some other form of fiber craft.

I can't complain. That's how I ended up with my Kandinsky, Dust Puppy and Yoda sweaters and my awesome Kang and Kodos socks. It also keeps her an my entire family in warm amazingly beautiful knit wear.

While at the conference, Devorah was her usual self - knitting during the talks. That doesn't mean she wasn't paying attention, it's just what she does. We also noted a few other attendees knitting throughout the weekend.

So, this year, Devorah had an idea – let's focus those idle hands to do some good. She asked the conference organizers to send out an email to attendees - knit squares during the conference and Devorah will put them together at the end and we'll donate the blanket we make to children in need through Project Linus.

The organizers were supportive, if not somewhat skeptical. That was ok - we also had no idea if this would be a win or a flop.

Conference came and Devorah announced the project. She brought yarn, needles, crochet hooks and instructions and also offered to teach knitting during the breaks.

It started slowly, but as the conference progressed, people started knitting both during the talks and during the breaks.

Experienced knitters cranked out squares and newbies learned.


At the end of the conference, we collected the partials. Devorah's going to finish the blanket up this week and then it gets donated.

So, how much of a win was this? We got a blanket to donate to charity and a couple of new knitters. We also heard and overheard some interesting comments.

One speaker commented that it as much better to see members of the audience knitting for good rather than checking their cell phones.

We also overheard some attendees talking about how the knitting project left them feeling more connected to the conference since they were able to contribute something.

Sounds like a pretty big win to me.

So much so that Devorah's thinking about taking the show on the road - maybe other conferences would like their idle hands doing some good while listening to talks.

Waking up in the Hudson Valley


Waking up to a beautiful brisk morning at the Ashokan Center in the Hudson Valley.

Last year, Devorah and I attended the first Catskillsconf, a tech conference in Olivebridge, NY. It was an amazing and unique experience. I can only describe it as Tech Conference meets Summer camp. Where else can you hear talks by people like Dennis Crowley and an alos hear the music of Mike and ruthy.

This year, I gave another educaiton rant and to add to the fun, Devorah's been leading a knitting for Charity project and teaching attendees to knit:

and we brought up my Hunter College students to join in the fun.

In spite of the fact that we were out late at the bonfiere:

and then were kept up by the students bonding and chatting in the bunkhouse, Devorah and I are first up, bright and early.

I'll write up more about this amazing event some time over the week. Right now, I think I'll just go out and enjoy a cup of coffee and the clean brisk Hudson Valley air.

Setting up Linux for Flask Web Development

Those laptops that my Hunter students were supposed to get have finally arrived. We're distributing them on Monday. Each student will have a Dell laptop running Ubuntu 16.04 for as long as they're in the program.

This means we can finally start using the web as a way of displaying and sharing our projects.

For this type of web development, I'm a big fan of using Flask. Flask is a Python microframework. The easiest analogy is saying it's like Ruby on rails but in Python. That's close enough for our purposes.

I much prefer Python to Ruby as a teaching tool because it leads to roads going in all sorts of directions so it was merely a matter of figuring out which framework or platform to use. I found Django to be far too big, cumbersome, and all encompasing while on the other hand, Werkzeug, which Flask is based on is a little too low level.

Flask hit the sweet spot. Easy routing, session and form handling, templates, pretty much everything I was looking for but very unopinionated and open ended. Perfect for teaching and learning and perfect for lightweight projects. The sourecode is also straightforward enough for a student to explore.

Below is a video going over setting up Linux from right after an install to use the python virtualenv package. The next video will go over installing Flask and setting up a simple application. Later, I'll post a video on deployment to a Digital Ocean Droplet.

Here are some notes relating to the video.

First, go to your "software sources" or "software updates" application from the menu and select all the sources (as described n the video)

To update a new system:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgade

To install the most recent emacs snapshot

sudo apt-add repository -y ppa:ubuntu-lisp
sudo apt-get update
sudo apt-get install emacs-snapshot

To install python pip (used to install other python packages)

sudo apt-get install python-pip

and then to install the virtualenv packages

sudo pip install virtualenv

To create a python3 virtual environment

pip install -p python3 venv-folder
  • You can activate the envorinment (assuming you create the folder under

your home directory):

source ~/venv-folder/bin/activate

And to deactivate it, from the activated terminal


Here's the video. Next time, we'll install Flask into an virtual environment.

Using Emacs - 16 - Undo Tree

If you use emacs, you should keep an eye on Jon Snader's blog, A few days he posted on Undo Tree - a package that extends Emacs's built in undo functionality.

Basic emacs has undo, bound to C-/ or C-_ but that's about it. Undo tree, which you can set up with:

(use-package undo-tree
:ensure t

adds two key features. First is redo, which you get by adding the shift key to the undo keychords.

The other, is the visual undo tree. You can bring that up wit C-x u

Once you bring up the undo tree, you can use the up and down arrows or C-n and C-p to move between undo and redos. When you get to what you want, just quit the undo tree visualizer with q.

The cool part is that once you undo a few things and add new stuff, you get a tree that you can navigate through using the arrows.

It's much easier to get the flavor of this by watching the video (which also has a lame example of using artist-mode which I'll come back t at some point).


Relevant links:

Chromebooks in K12

The discussion today over on AVC was Chromebooks in K12, a title I conveniently lifted.

In the comments, I was asked my thoughts on chromebooks vs Linux on low end hardware so, here they are.

Chromebooks are cheap, near instant on, and, if you're using Google Apps for education, little to no administration necessary.

This is a HUGE win for schools.

There are some issues. School WiFi, for example, is frequently insufficient which can be a problem for a device that's meant to be connected to the cloud. People might think that schools are well connected but I know multiple schools that keep kids off the WiFi to keep it from being overloaded. This is a problem and I don't know if it's really being addressed.

It's also worth noting that DOE pricing is also a far cry from "lowest bidder." We keep seeing sub $200 chromebooks on the market but buying through the DOE approved vendor looks to cost about $300 per unit or more. Of course this is better than the equally inflated PC/Mac prices.

Still, the price and easy of deployment and administration seem to make chromebooks the way to go.

As to other issues, first, you have to buy in to the Google platform – email, docs, classroom, etc. This isn't necessarily a problem. I personally like most of Google's offerings. My big concern is giving away student data. I have mixed feelings on the whole privacy thing but it's more clear cut when it comes to minors in public schools - schools shouldn't be sharing their data and schools shouldn't be forcing them to share their data. Google Suite for Education is FERPA compliant but what about all the other Google services the kids might be using? I haven't looked at this carefully but we've already given too much power to private interests over education (see the College Board or Pearsons) so, at least to me, this is a concern.

My only other issue is a selfish one. As a CS educator, I look to coding tools and environments. While there are online platforms like cloud9 or, they don't have the same power and flexibility of using local installs. I've been using and it's a great tool but I think it's best used as a stepping stone to a local install and then afterwards for some of it's specific value added features. I'm also a big believer in teaching operating system as tool box, something you can't currently do with a chromebook.

Willy Karam commented over at AVC about using cheap hardware running Linux. This is something I've done for years and it's been a lifesaver. CSTUY's entire laptop collection consists of really old laptops running Linux.

For a CS class, this works well. Even for a non CS class it can work well. Modern Linux distributions run pretty much the same as Windows and MacOS. Use the mouse to click on menus and icons. It doesn't give you the power of the command line but it means it's a suitable alternative for the masses that use the operating system as a program loader..

The downside of Linux for the general population is the administration and maintenance. At Stuy, we set up NIS and NFS. Both horrible but probably easier and better than most alternatives. I was never able to come up with a better way to do authentication and file sharing and the NFS stuff would have killed our wifi (we only used it in wired labs). Customizing software installs is also a real problem. We made it work but it took far too much time and effort.

If you're in a situation where you can do a stock install and then give the machine to the student for the semester, then Linux can work really well. If you're talking about shared machines with custom installs, it's harder to justify over chromebooks.

A final note on chromebooks is that last year, I played with putting Linux on a chromebook. It worked pretty well. Almost the best of both worlds. Low end hardware with good battery life and a full operating system. This is something I have to play with on the current generation of chromebooks.

So, where do I stand on this? The cloud isn't there yet in terms of teaching computer science. It's fine for a gentle introduction but eventually, you'll need the power of a full blown OS and local installs. We may very well get to where a cloud OS is just as expressive, we're just not there yet. On the other hand, for general computing in schools, chromebooks are a big win.

It would be wonderful if schools had sufficient infrastructure, support staff and training so that technology was just there and just worked and we didn't have to make these sort of decisions and compromises. Somehow I don't thing that will be happening any time soon.

Enter your email address:

Delivered by FeedBurner

Google Analytics Alternative