Help me plan a hacker space/drone lab

I’ve got an opportunity to build a hacker/maker space + drone lab in a journalism college. I’ve been asked to come up with requirements for the room. Square footage, furniture, gear, storage, you name it. 

Does your university have a hacker space? What does it look like? Are there pictures of it online? Got a URL? 

Here’s what I’m thinking, broadly. Not going to get all this, but you don’t get if you don’t ask:

  • Countertop space for working on drones or Arduino projects.
  • Locking storage for the same.
  • Couches? Long desks and chairs (like this)? Something different (like this)? Combinations? Need seating space for hacker/software projects.
  • Projector for screen sharing or demos.
  • Internet enabled TV on the wall.
  • Whiteboards. Whiteboards everywhere!
  • If possible, high ceilings and a netted cage for indoor multi-copter testing (example)

Here’s a Storify of tweets I got asking this question on Twitter.

What am I missing? What would you include?

If you were teaching a course in data visualization…

… what would you include? I’m developing a course in data viz over the summer and am in the brainstorming phase now. Here’s what I’ve got. What would you do?

Course Description

A written narrative is not always the best way to convey information. Sometimes, you have to see the data in order to see the meaning in it. With more data available than any other time in our history, being able to visualize data is becoming a vital communication skill. This course will cover a wide array of subjects related to gathering, analyzing, processing and visualizing data. Students will learn how to gather, clean and analyze data that already exists and will work with gathering their own data with cutting edge equipment. The class will also work on a real-world project.

Topic ideas

Visual communication theory
Types of data visualizations — when to use, how to read, how they can mislead
Basic data science — data types and structures
Basic data management — importing, cleaning
Basic data analysis — grouping, counting, sorting, summing
Data vis 1 — using Excel charts
Data vis 2 — using Google Fusion Tables
Data vis 3 — using the web as a canvas for data vis (basic HTML/CSS)
Data vis 4 — using a JavaScript data vis library TBA (Raphael? Flot? Both? Neither?)
Gathering your own data with UAVs and remote sensors
Visualizing data in real-time or near real time
How the basic of telling a story — a headline/title, a lead, context, content — apply to data visualizations
Basic math (via @RobinJP)
What not to visualize (via @knowtheory)

My Sensors for News app made it to the second round. In all 51 of more than 1,000 apps made it to the second round. Excited to have a chance to push this forward.

newschallenge:

We just finished selecting the 51 proposals that will go to the next round of the Knight News Challenge on networks. (You can see 50 of them listed below; one was a closed entry we don’t have permission from the applicant to share.)

Maybe I like the sermon so much because I’m in the choir, but if you care about journalism education, read this. Highlights:

“Journalism schools are realizing that the old tracks don’t really work for students the way the journalism landscape works now,” Hernandez says.

And:

And if there’s one point on which those interviewed for this story agree, it’s that mastery of data and computational journalism is the most valuable tool students can take with them into the job market.

“If there’s one area that’s super complicated and requires having a good deal of training, it is database work,” says the San Francisco Chronicle’s Cooper. “If I see someone with that on their résumé, I’m going to weigh that highly.”

Noted: My sensor networks News Challenge app has a better chance of getting into Harvard than winning the grant. But, as famed philosopher and poet William Adama once said, sometimes you’ve got to roll the hard six.

newschallenge:

2011 News Challenge entries on Tumblr

Over the weekend, we stopped accepting entries in the Knight News Challenge on networks.

The challenge closes with more than 1,000 applications - a number higher than we expected. About two-thirds of those were submitted in the last 48 hours of the…

Toward a solution to the more tech in J-school problem

First, lets state some general conditions and agree to them:

  1. There is a generally agreed upon need for tomorrow’s journalists — no matter what area of the craft they intend to go into — to have more technological skill and experience than their past counterparts.
  2. There is not a generally agreed upon way to accomplish this increase in technological skill within a j-school curriculum.
  3. There is not a generally agreed upon list of tech skills that journalism students should/must have before graduating to become a journalist today.
  4. There is a … tension … in newsrooms and faculties over the balance between focusing on reporting/storytelling/fundamental skills and on new technologies for storytelling. Whether you believe this tension is well founded or a not-mutually-exclusive waste of time, it exists and must be acknowledged.
  5. There are a finite number of classes a student can take in any major and the list of skills and tech that have come up at various discussions and conferences vastly outstrips this class hour limit.

I’ve been thinking about this a lot lately. It started with me thinking about what is the technological/computer science answer to Doing More With Less. Ah yes, Doing More With Less, the trite bullshit line publishers trot out after axing half the staff. It is bullshit, but there’s also a legit question there. How could you do more with less, because guess what? There’s less. A lot less. Ignoring that is angrily yelling at clouds. Pointless.

In academia, the do more with less argument isn’t necessarily about less. It’s about an absolute limit. There are only so many credit hours a student can take in their major. In that limit you have to teach, you know, Journalism. Reporting, writing, editing, design, photography, videography, “the basics.” You don’t hear from people anymore arguing that these classes shouldn’t include more tech. For example, traditional print reporting classes are using digital recorders and cameras on smart phones and video cameras and live tweeting to cover stories. J-schools, by and large, have made that adjustment, from what I hear from my colleagues around the country. The classroom reporting classes are trying to mimic the professional experience, and that has meant more tech.

The question, then, is how do you get some of these other emerging ideas into the curriculum? Where does programming fit in? Or mobile design? What about completely out-there ideas that should be getting a test run in a university setting before going out into the broader industry? Like drones? Or sensor networks? Or machine learning? Or algorithm-written stories? How do you fit those into a curriculum many believe is busy enough teaching “the basics”? How do you deal with a not-insignificant number of people who don’t believe any of this should be in the curriculum at all?

My thinking lately?

Don’t. 

Just don’t. Forget the curriculum. Forget classes. Do something outside of class. Create an opportunity that doesn’t have credit hours attached that has value and fire away.

What do I mean by this?

If you’ve been paying attention around these parts lately, you’ll know that I’ve started a Drone Journalism Lab and have just entered the Knight News Challenge with an idea of building sensor networks for news. I get asked regularly, are you going to teach a class in drones or sensors?

Nope.

Couple of reasons for that. First and foremost, I want to be clear that both are just tools. A smartphone is a really great tool for storytelling that opens all kinds of ethical questions about their use. Would you teach a class in smartphones? No, you wouldn’t. That’d be silly. So using a drone to report a story is … slightly more complicated … but similar to using a smartphone to report a story. It’s a tool to tell a story. It’s not a completely new form of story. Might drones end up in other classes? Yep. Count on it. Sensors? Yep, count on it. Are they their own classes? I don’t think so. I can make an argument for them being their own class, but for now I’m saying no.

So what are they? 

Every campus has student media where students take what they learned in class and apply it to doing more journalism. They get more experience. In sports, they’re called repetitions or reps. The more reps you get, the better you get, the more you can do. Students need reps.  But J-school isn’t the only place for this. Other disciplines have students who work in labs as lab techs or research assistants. They get paid, they get experience, they get reps. 

So what if we did this for journalism too?

I called it the Drone Journalism Lab for a reason. It’s going to be a lab. Where students work. And through grants and undergraduate research programs, they’ll get paid to do so.  They’ll get hands on experience with a very interesting technology, get to take part in the research and they’ll get to put it on their resumes. And given the number of news organizations that have asked me about it, they’ll have no trouble finding a job if this all goes according to plan. Number of classes required? Zero.

The Knight News Challenge app? A good portion of the funds requested is to pay students to work on the project. Again, hands on, in the lab, taking part, without course credit on the line. No need for a curriculum committee meeting. No need to fret about what basic skill is going to get short shrift because we’re talking about sensors.

I’ve talked about starting a hacker space here in the college where students could hang out and build stuff. A kind of proto-incubator stage space where students build things they can then take and build a business around. At the time I was thinking about web stuff or Kinect hacks or things like that. But now I’m thinking it could be a whole universe of things. And again, not things in the curriculum.

I have no idea if this is a solution or not, but it seems to solve a lot of problems. It creates some problems — space, funding, resources to name a few, plus how do you measure this for faculty time commitments? I’m sure it causes more problems than that. I just haven’t thought of them yet.

But if you believe J-school needs more tech, and you accept the reality that universities aren’t going to allow us to double the number of credit hours required to get a degree, then these kinds of outside-the-curriculum ideas are part of the future.

I’ve been bouncing around ideas lately about physical computing, real-time data visualization and what is the technological answer to the bulls*** management line of “doing more with less.” And, out of that idea soup, came this:

newschallenge:

1. What do you propose to do? [20 words]

Develop a network of sensors distributed around a city to report data into a real-time visualization.

Using Python to access tweets from the command line

Here at the Harvard of the Plains, I teach a class in digital product development I like to call Programming as an Act of Journalism. Lots of people ask me about it and I’m always a bit cagey about it because, to be frank, I’m still kind of making it up as I go. My course goals could actually fill an entire degree, so I spend a lot of time pushing and pulling against my wants and needs for the class. But the basic outline is I take College of Journalism students who know nothing about code and product development and we build a prototype of a product they invent in 16 weeks. And the first eight weeks of hands-on classes are spent doing intro to programming type work. 

I’ve started developing lessons I call Small Wins for the class so they can see stuff working on the screen. Here’s the first: a lesson in using Python to access the Twitter API. It’s the follow up class to basic Python (variables, strings, integers, functions and lists). The goal is to talk about using libraries, introduce programmatic thinking and data structure and, well, see some stuff happen in front of their eyes.

In the class, I have students install a virtual machine and put Ubuntu Linux on that. Why? Lots of reasons, but the main ones are that I want to expose students to a new environment while at the same time keeping it compartmentalized so they don’t fear “messing up their computer” by working in the terminal. So this walkthrough assumes you’re using Ubuntu.

1. Install pip, a package management library for Python.

$ sudo apt-get install python-pip python-dev build-essential 

2. Install python-twitter, a Python wrapper around the Twitter API that makes accessing the API breathtakingly simple (really!).

$ sudo pip install python-twitter

Start Python

$ python

Create an instance of the Twitter API class, which creates an object with several methods that we’re going to be using. Think of it like buying a Swiss Army knife. You get the knife and a whole bunch of tools that go with it. You just have to unfold them to use them.

>>> import twitter

>>> api = twitter.Api()

5. Pick a Twitter user to gather their tweets. For this example, we’ll use Stephen Colbert (@StephenAtHome). Then we’ll use one of our tools in the Twitter API class — GetUserTimeline, which does what you think it does.

>>> statuses = api.GetUserTimeline('StephenAtHome')

6. Congrats. You now have Stephen Colbert’s latest tweets. Stand in appreciation of what all the python-twitter library has done for you. It created an http request, sent that request to the properly formatted API URL, ingested the response, converted the structured JSON file it returned into a Python dictionary and returned it to you as an object for you to use. What’s that? You’re not excited? You want to see them? Okay, fine.

>>> for tweet in statuses:

...     print tweet

Yikes. What is that? It’s all the data that comes with each tweet. Take a look at it all. Background colors, times, dates, all kinds of stuff. Well, that won’t do. Maybe we just want to see the text of the tweet. If you look at the output, you’ll see a pattern in the output. You’ll see things like “protected”: false and “screen_name”: “StephenAtHome”. Those are called key/value pairs. The key is the name of the attribute — like an ID or the text of the tweet — and the value is what it sounds like it is.

7. In our case, we want to see the text of the tweet. To do that, you have to address the key. In Python, we do that with dot notation. What does that mean? It means you can pick the key in an object and display it by adding a dot after your object and then the key name. So like this: nameofobject DOT name of key

>>> for tweet in statuses:

...     print tweet.text

Exercise:

— Looking at the keys, what would you have to do to see if each tweet was favorited?

8. Okay, one users tweets are nice, but what if I want to see tweets about a subject, not a person? For that, we’ll use a different function in the python-twitter library, GetSearch:

>>> tweets = api.GetSearch("politifact", per_page=100, page=1)

Exercise:

— Using what you’ve learned, how would you print out the text of the tweets gathered in step 8?

Thoughts, suggestions, criticisms? The comment box awaits you. Want to go further with this? Here’s the python-twitter code and documentation

A completely arbitrary list of takeaways from two unconferences

This past weekend, I attended Spark Camp: Data, an unconference in Austin focused on using data to tell stories, whatever they may be. A month before, I was at News Foo, an unconference at Arizona State University that brings technologists and journalists together to talk about … whatever they want to talk about regarding the future of news. Both conferences included a lot of chatter about journalism schools and what they should be doing. People I talked to were all fascinated to hear I teach programming and data at a journalism school.

At both, listening to this discussion going on, I came away with some random thoughts about journalism school curricula, programmer-journalists and the future. Here they are in a completely unnecessary and arbitrary list.

  • The number of things Journalism is asking its journalism schools to teach could fill three degrees plus a couple of minors. Business, law, economics, entrepreneurship, computer science, data science, and also all the journalism fundamentals. We have no idea what The Future is, other than that it’s wildly different from the past, so we’re tossing everything into What Journalism Schools Should Be Teaching and the list is starting to look a little silly. Especially when you consider we have 40 credit hours to work with.
  • I view this as a challenge, not a lament.
  • You are number 114 on the list of people who have asked me if I have any students who are budding journalist-developers ready to start busting out apps in your shop. You are also deep on the list of people telling me you’re looking for people and having a hard time finding them. There’s 10 fish in this pond right now and everyone has a line in the water.
  • The number of students I have seen who are budding journalist-developers ready to start busting out apps in your shop: 0. Why? Comes down to passion. I haven’t seen that student take what we talked about in class and run off on their own. It seems they’re still waiting for something. I don’t know what that is.
  • Where are these future journalist-developers who will Save Us All? What can we do to find them? I don’t know. I think more about it every day.
  • I think the problem with finding these students starts with reward structures. Students are told from even before they walk on campus that being a journalist means Being a Good Writer, Being a Good Editor, Being a Good Photographer. No one is telling them they could be an application developer, or a data journalist, or a media entrepreneur. Or if they have heard it, that voice is getting drowned out by traditionalists. A disturbing amount of time, the traditionalists drowning those students out are other students. Until we can attach a reward to this — until it cracks the consciousness of students that there are jobs in this path — I think we’ll continue to struggle. 
  • I still believe you can teach journalists to be programmers and people like that will be vital to the Future of Journalism, but I’m also starting to think more and more about what a journalism minor for a computer-science major would look like. 
  • A potential archetype of a journalist-developer student? That kid who messed around with programming in high school and loved it while having a blast on the student paper. But they came to college and thought they had to get a CS or similar degree because that’s what They told them. You know They. They tell people a lot of crap. I’m looking for that techie carrying regret in their heart for not pursuing journalism. I can unburden that regret. And get you a job.
  • The pipeline of techie/journo students to internships to jobs is a problem that is going to be with us for a while. There’s not enough students right now. Plain and simple. And I worry that because of this supply problem, the internships and jobs will go away. And just when that happens, we’ll solve the supply problem and have the reverse.
  • Problems I would love to have to talk about: What is the career path for a developer in a newsroom? There isn’t one right now. Who will be the first to hire a developer as an assistant managing editor or above? I ache for the day we have to discuss this instead of the scarcity of talent. I long for the day when we have to debate turning over editorial strategy to someone who came into the newsroom to build apps. That will be a great day.

A word of advice for Code Year participants

A whole herd of people are learning to program this year through free weekly lessons via email from Code Year. Some, like me, are interested in new lessons and approaches. Some people are starting from scratch. I have a word of advice to you, one I need to follow myself, as you get started on your Code Year.

Unplug.

Turn off Tweetdeck. Shut down IM. Turn off your email notifier. No one has liked your status in the last minute, so don’t check. Unplug. 

Why? Because you’ll learn nothing in 20-30 second bursts between distractions. Learning to code, like many things in life, requires you to focus for extended periods of time. It requires to you really burrow in on details. This is probably a level of detail you may not be accustomed to. It’s probably concepts you aren’t familiar with. You need uninterrupted time to focus on the task at hand. 

In short, you aren’t as good at multitasking as you think you are. So don’t do it. Unplug, focus, and really learn something.

Want an experiment in how distracted you are? Get into the environment you intend to work on your Code Year exercises in. Turn on the stuff you normally have on. I’ve got Spotify, an IM client and Tweetdeck on myself right now, plus my Google notifier and my phone handy. Turn all the stuff on that you’d normally have running.

Now read this. It’s a fantastic essay on how important solitude is to proper thinking. See how long you can go before you’re distracted.

Me? Two paragraphs. It took me over an hour to read that one essay because oops, got an email and now someone @ replied me on Twitter and awwww, cute baby on Facebook and here’s a text about getting dinner tonight. And on and on and on and on.

It was shocking to me how my social/work habits had ruined my ability to concentrate on a thing and read it. Really read it. At times, the urge to check email was physical. I could feel myself getting uncomfortable because what if I did get an email? What if? Well, I better check. 

And so I’m making a change. At points in my day now, when I need to focus on something, I’m opting into a total digital blackout. Goodbye email notifier. So long Twitter. Shhhhh now Spotify. It’s thinking time. They’ll be there in an hour. And I’m not an on-call brain surgeon, so no one is going to die if I don’t get that text.

It’ll wait. It can all wait. It’s thinking time. Time to focus.