1767 stories
1 follower


1 Share

june1777 posted a photo:


Read the whole story
7 hours ago
Share this story

Uncanny Rd. – Drawing tool to interactively synthesise street images

1 Comment
Uncanny Rd. – Drawing tool to interactively synthesise street images
Uncanny Rd. is a drawing tool that allows users to interactively synthesise street images with the help of Generative Adversarial Networks (GANs). The project was created as a collaboration between Anastasis Germanidis and Cristobal Valenzuela to explore the new kinds of human-machine collaboration that deep learning can enable.
Read the whole story
17 days ago
synthesize street images with #neuralnetworks ...
Share this story

Tips for Effective Presentations

1 Comment

You’ve probably heard a lot of repetitive advice about how to make presentations effective. Number of slides, number of bullet points per slide, font size, all that stuff. My advice is a little different: it’s the things I’ve learned that nobody ever taught me.

Don’t Label Slides

The most important part of every slide—the headline—is usually wasted. How many slides have you seen with titles like Q3 Revenue Results or Team Composition? Most slides have titles that are just passive, nondescript labels. This is just terrible.

Don’t label: describe, interpret, explain! A slide’s title should help the slide deck stand alone if the audience reads nothing but the title. And a reader should be able to scan the titles and get a coherent sense for the story of the entire slide deck. (If you can’t do that, either your titles are lame, or your overall organization is weak.)

So, instead of Q3 Revenue Results, title the slide Q3 Revenue Grew 30% or whatever. Don’t force people to read the entire slide to learn what it says! Make the titles compelling and valuable. The title should be the takeaway.

Use The McKinsey Pyramid Principle

Writing compelling, valuable, descriptive titles is an example of using the McKinsey Pyramid principle. This is the single most important way to convey the right level of detail to all audiences. This principle, in brief, advocates delivering the answer first, then giving an opportunity for people to dig deeper if they want.

This is really hard for a lot of people to do (including me). Seriously, it’s really hard. People who’ve spent weeks researching to draw conclusions that will be consumed in 18 seconds find it nearly impossible to put the takeaways up front. Nonetheless, you have to do it if you’re going to be an effective communicator. You cannot drag people through all the background and conclude triumphantly with the answers. You will never get to the conclusion if you do that. You have to deliver the conclusion and be ready for people to drill into the details, if and only if they want to.

Remove the First-Level Bullets

Take a look at the following two slides.

A slide with first-level and second-level bullets, and one with unbulleted and first-level bullets

The slide on the left has no unbulleted text. It has first-level bullets, with nested bullets underneath it. As a consequence of the way most slideshow programs format the space between bullets, it not only leads to a really cramped and hard-to-read slide, but it also encourages putting too much text into each slide.

Please don’t do it like the slide on the left. Do it like the slide on the right. If you don’t have any hierarchy, it’s fine to have a single bulleted list. But if you need a level of sub-indentation, make your top-level text unbulleted. Avoid nested bullets. Next time you see a slide like this, try to mentally take a step back and see if the slide would have been better without the unnecessary structure.

Avoid Most “Slide Builds”

Fancy slideshow programs have a bunch of features like transitions, effects, and the feature I’ve come to dread the most: builds, or “stepping slides.” These are slides that progressively add items to a single slide, making it appear one item at a time. From long experience, I’ve learned that this is usually a cause for regret.

Here’s just one scenario I’ve seen play out in real life many times: someone asks “hey, can you go back to that previous slide?” The speaker rewinds, but the initial view of the slide doesn’t have the content they wanted, so they have to advance the slide a bunch of times to make it show the content the question was about. And then they accidentally fumble, and advance one bullet point too much and go to the next slide, and then have to rewind and try again.

There are other ways I’ve seen this turn into a fail. Among other things, I find that I’m usually a lot more nervous and less skilled at speaking to a slide that’s gradually appearing, because I’m not sure I remember exactly what comes next, and I speak to content I haven’t shown yet, and so on.

It’s often better, in my experience, to break apart those “stepping slides” into one slide per bullet, each without the distraction of the other content. Sometimes a slide that builds one point at a time is a good thing, but more often it’s a bad thing.

Use Lots of Whitespace, Pictures, and Graphics

It’s oft-mentioned that if you put too much text onto a slide, the audience will stare at the slide instead of listening to you speak. This is so true, and it’s a great reason to break apart long slides. I actually like to turn slides with many points into many slides with one point each, as I mentioned. But then the anxiety sets in: that slide looks so empty!

That’s okay. First, a generous amount of whitespace, and large font sizes, is a great thing. Embrace that. Next, fill the space with a picture from a free stock photo site like Unsplash or Pixabay. You’ll be amazed at the way audiences glance at the slide, appreciate its feeling and vibe, and then turn to you instead.

I also like to use graphics to replace text as much as possible. Instead of talking about things, I like to demonstrate them with charts and diagrams. Think of it this way: if you have to explain a chart with text, you probably haven’t made the chart clear enough. So, perhaps, show a chart of revenue growing 30%, and then add text with detail about international vs. domestic and all that stuff.

In many cases you can also use color to help orient and frame what’s going on. For example, I’ve used a thick colored border along the left edge of slides to indicate what “chapter” of the deck we’re in. I once built a business presentation using color-coded sales, marketing, product, and so forth on a table-of-contents slide. Then I introduced each section with a full slide of that color, with white centered text labeling what section it was. And finally, each slide within that section had the thick lefthand border of the same color. I’ve used that technique a few times to good effect.


A slideshow is, above all, a document that should help you use multimedia to tell a story. You should be narrating the deck, and the deck should be reinforcing your narrative. The deck should also carry your message for you if you’re not there to deliver it in person, as for example when it’s forwarded on to someone else.

Focus on the story. Give the story room to breathe. Lead with the takeaways, waste no words on passive elements, and don’t cramp the audience’s mind.

For more advice on presentations, I can’t recommend too highly the following books by Nancy Duarte: Resonate and slide:ology.

Read the whole story
23 days ago
ppt slide tips
Share this story

Considering the “valuable-ness” of the things we make

1 Share

Nicky Case ponders the “valuable-ness” of the things he makes as the product of the number of people reached and the average value for each person reached. Finding the balance is tricky.

Tags: ,

Read the whole story
24 days ago
Share this story

Welcome To Fair Haven Innovates

1 Share

What a wild summer. I took a break from blogging because my summer has been jammed packed. I started out by going to ISTE in Chicago. After I got back, I went on my honeymoon in St. Lucia. Then, it was back to Chicago for the amazing Our Voice Academy. A week later I flew […]

The post Welcome To Fair Haven Innovates appeared first on Teched Up Teacher.

Read the whole story
26 days ago
Share this story

Using FOIA Data and Unix to halve major source of parking tickets

1 Comment


This'll be my first blog post on the internet, ever. Hopefully it's interesting and accurate. Please point out any mistakes if you see any!

In 2016, I did some work in trying to find some hotspot areas for parking tickets to see if a bit of data munging could reduce those area's parking tickets. In the end, I only really got one cleaned up, but it was one of the most-ticketed spots in all of Chicago and led to about a 50% reduction in parking tickets.

Here's a bit of that story.

Getting the data through FOIA:

The system Chicago uses to store its parking tickets is called CANVAS. It's short for "City of Chicago Violation, Noticing and Adjudication Business Process And System Support" [sic] and managed by IBM. Its most recent contract started in 2012, expires in 2022, and has a pricetag of over $190 million.

Most of Chicago's contracts and their Requests For Procurement (RFP) PDFs are published online. In CANVAS's contracts it gives a fair amount of info on CANVAS's backend infrastructure, including the fact that it uses Oracle 10g. In other words, a FOIA request can be fulfilled by IBM running some simple SQL.

CANVAS Technical Spec
CANVAS Contract
CANVAS Request For Procurement (RFP) and Contract

With that information at hand, and a couple failed FOIA requests later, I sent this request to get the parking ticket data from Jan 1, 2009 to Mar 10, 2016:

"Please provide to me all possible information on all parking tickets between 2009 and the present day. This should include any information related to the car (make, etc), license plate, ticket, ticketer, ticket reason(s), financial information (paid, etc), court information (contested, etc), situational (eg, time, location), and photos/videos. Ideally, this should also include any relevant ticket-related information stored within CANVAS.


This information will be used for data analysis for research.

Thanks in advance,

Matt Chapman"


About a month later, a guy named Carl (in a fancy suit), handed me a CD with some extremely messy data in a semicolon delimited file named A50462_TcktsIssdSince2009.txt. The file had info on 17,806,818 parking tickets and spans from Jan 1, 2009 to Mar 10, 2016.

The data itself looks like this:

head -5 A50462_TcktsIssdSince2009.txt
Ticket Number;License Plate Number;License Plate State;License Plate Type;Ticket Make;Issue Date;Violation Location;Violation Code;Violation Description;Badge;Unit;Ticket Queue;Hearing Dispo
39596087;zzzzzz;IL;PAS;VOLV;03/03/2003 11:25 am;3849 W CONGRESS;0976160F;EXPIRED PLATES OR TEMPORARY REGISTRATION;11870;701;Paid;
40228076;zzzzzz;IL;TRK;FORD;03/01/2003 12:29 am;3448 N OKETO;0964170A;TRUCK,RV,BUS, OR TAXI RESIDENTIAL STREET;17488;016;Define;
40480875;zzzzzz;IL;PAS;PONT;03/01/2003 09:45 pm;8135 S PERRY;0964130;PARK OR BLOCK ALLEY;17575;006;Notice;
40718783;zzzzzz;IL;PAS;ISU;03/02/2003 06:02 pm;6928 S CORNELL;0976160F;EXPIRED PLATES OR TEMPORARY REGISTRATION;7296;003;Paid;Liable

Some things to note about the data:

  1. The file is semicolon delimited.
  2. Each address is hand typed on a handheld device, often with gloves.
  3. There are millions of typos in the address column. Including over 50,000 semicolons!
  4. There is no lat/lon.

What that amounts to is an extremely, extremely messy and unpredictable dataset that's incredibly to difficult to accurately map to lat/lon, which is needed for any sort of comprehensive GIS analysis. There are a bunch of geocoder services that can help out here, but most of them have about a 50% accuracy rate. That said, with the help of a bit of scrubbing, that number can be boosted to closer to 90%. Another post for another time.

Here’s a sample list of Lake Shore Drive typos:

Laks Shore Dr
Lawkeshore Dr West
Lkaeshore Dr
Lkae Shore Dr
Lkae Shore Drive
Lkaeshore Dr West

Original Analysis

I was particularly interested in finding areas that had hotspot areas that stood out. A lot of my time was spent just throwing hacky code at the problem and eventually wrote out two series of (hacky) commands that led to identifying a potentially fixable spot.

Originally, the work and analysis I was doing was with a combination of unix commands and gnuplot. Since then, I've migrated my code to python + matplotlib + SQL. But, for the sake of this blog, I wanted to show the original analysis.

Get count of tickets at addresses and ignoring first two digits:

$ mawk -F';' '{print $7}' all_tickets.orig.txt
    | sed -r 's/^([0-9]*)[0-9][0-9] (.*)/\100 \2/'
    | sed -r 's/ (BLVD|ST|AV|AVE|RD)$//'
    | sort | uniq -c | sort -nr

  79320 1900 W OGDEN
  60059 1100 N STATE
  50594 100 N WABASH
  44503 1400 N MILWAUKEE
  43121 1500 N MILWAUKEE
  43030 2800 N BROADWAY
  42294 2100 S ARCHER
  42116 1900 W HARRISON

Get count of tickets, by ticket type, at specific addresses:

$ mawk -F';' '{print $9,$7}' A50462_TcktsIssdSince2009.txt
    | sed -r 's/ (BLVD|ST|AV|AVE|RD)$//'
    | sort --parallel=4 | uniq -c | sort -nr


Both bits of code roughly show that there's something going on at 1100N state street, and 1166 N State St looks particularly suspicious..

So, have a look at the original set of signs:

Things going on that make this spot confusing:

  1. This is a taxi stand from 7pm to 5am for three cars’ lengths. Parking in a taxi stand is a $100 ticket.
  2. When this spot isn’t a taxi stand, it’s metered parking – for a parking meter beyond an alleyway.
  3. It’s possible to pay for parking here after 7pm, which makes it look like parking is acceptable – especially with the “ParkChicago” sign floating there.
  4. Confusion creates more confusion – if one car parks there, then more cars follow. Cha-ching.

Contacting the 2nd Ward

With all that in mind, I contacted the second ward’s alderman’s office on April 12 explaining this, and got back this response:

"Hello Matt,

[…]The signs and the ordinance are currently being investigated.

In the interim, I highly recommend that you do not park there to avoid any further tickets.

Lisa Ryan

Alderman Brian Hopkins - 2nd Ward"

The Fix

On 1/11/17 I received this email from Lisa:


I don't know if you noticed the additional signage installed on State Street at the 3 Taxi Stand.

This should elevate [sic] any further confusion of vehicle parking.

Thank you for your patience.

Lisa Ryan"

Sure enough, two new signs were added!

The new taxi stand sign sets a boundary for a previously unbounded taxi stand. The No Parking sign explicitly makes it clear that parking here during taxi stand hours is a fineable offense. Neat!

And then there's this guy:


I recently decided to look at the number of tickets at that spot. Armed with a new set of data from another FOIA request, I did some analysis with python, pandas, and SQL. What I found is that the addition of a new sign effectively led to a 50% reduction in parking tickets between 1150 and 1200 N State St. Adding it all up, that's about 400 tickets fewer in 2017 and 200 so far in 2018 compared to 2016. All in all, that's about $60,000 worth in parking tickets!

The drop in slope to about 50% matches perfectly with Lisa’s email:

And then comparing 2016 to 2017:

What's next?

All in all, the number of parking tickets is going up in Chicago, and this work shows that something can be done, even if small.

This work is only on one small section of road, but I'm convinced that similar work can be on a systematic scale. It's mostly just a matter of digging through data and working directly with each ward.

The later analysis done here was also only done on the most recent dataset that the Department of Revenue they gave me. The two datasets have a different set of columns, so the two datasets need to be combined still. I hope to accomplish that soon!

Analysis Code

Data used in this blog.

Tags: FOIA, parkingtickets, civics, unix, python

Read the whole story
33 days ago
FOIA parking data request leads to decrease in tix
Share this story
Next Page of Stories