“Just like how spending money makes you feel rich but is actually making you poor, so the things that make you feel productive, like clearing out your inbox or having coffee with investors, are actually often doing little to get your startup where it needs to be.”
Welcome! This site is a bunch of lists.
- Below is a list of my recent writings, on this blog and elsewhere. I’ll also throw in press every now and then. I hope you enjoy it.
- Here’s a list of some stuff I do.
- Here’s a list of tools I use as a startup founder.
- And if you need a speaker at your next education or technology event I do that too.
If you find a typo, have an formatting fix or want to help make this site less hacky, the code is on Github. I welcome contributions, especially from those new to open source!
When Success Doesn't Feel Successful
First published on March 9, 2016Read more on medium.com
Life Is Long
First published on January 22, 2016
“I’m advocating for a view of life as a very very long period of time, or perhaps a series of long periods punctuated by periods where we’re not paying as close attention or our brains aren’t moving as fast. But still, I arrive at the same conclusion Graham does: we should ruthlessly edit out things that don’t matter, actively seek out and do the things that do matter, and, perhaps most of all, be present and savor the moment. There’s more possibility and excitement in the instantaneous moments we have direct access to each second than we realize during the day-to-day.”
Why am I doing this?
First published on January 16, 2016
“I’m certainly not the apogee of startup founders. But looking back on my journey, I’ve been most effective and fulfilled when I listened to the little voice inside that felt like I was off course. Re-focusing on why I became a startup founder in the first place is what keeps me going and gives me direction at the most crucial parts in my startup’s journey – and my own.”Read more on thestartupcouch.com
Travelhacks for Startup Founders
First published on October 9, 2015
“The median two bedroom apartment rent is now $5,000 a month in SF. The good news is that there’s an amazing hack to living in Silicon Valley: don’t. Instead, live in your current, cheaper, location and commute once a month for way less.”
Beware the Tutorial to Nowhere
First published on September 11, 2015
“Increasingly I encounter students who’ve been through dozens of tutorials but are unable to code their own projects. I call this phenomenon the Tutorial to Nowhere and it’s the major challenge for Coding Education: how do we equip students with real skills, not just access to content?”
Startup Founder Therapy
First published on September 8, 2015
“Founders need a relationship dedicated to their emotional and mental well-being that’s totally separate from their startup. While many have friends or partners that fill this role, the reciprocity of these relationships isn’t well suited to the tremendous needs founders will have during the frequent and intense periods of crisis every startup experiences on its long journey toward success, or more likely, failure.
But there is one relationship that’s different. There is one relationship that can not only withstand the extreme pressures of startups, but is actually designed to absorb them. And that’s the relationship founders have with a therapist, coach, or counselor.
Unlike a trusted investor, a therapist has no stake in your success or failure. Unlike a significant other, a therapist has no need for reciprocation. And unlike your cofounder, your therapist isn’t wrestling with their own doubts about your startup or prospects for success.”Read more on thestartupcouch.com
Python Game Development for Beginners
First published on August 25, 2015
A video I recorded for O’Reilly, using Trinket. Users will build several interactive game ‘sketches’, all the while learning concepts like functions, classes, methods, and variables.
Thanks to Trinket this can be completed enitrely in the browser. Hope you enjoy!Read more on shop.oreilly.com
The Programs I Will Never Write
First published on July 16, 2015
“We are collectively poorer every time someone doesn’t solve an important problem because of lack access to the skills and support to do so with code.
Fighting for diversity in programming is fighting for the minds that one day will write programs I never could. If coding is a basic literacy, let’s work for an enriched authorship and a more varied literature than we have today.”
The Power of Exactly One Serious Hobby
First published on June 7, 2015
“Pick your serious hobby deliberately and it will round out your skill set while providing balance to a demanding schedule. Peter Thiel divides personalities into Athletes, who are natural competitors, and Nerds, who are creative explorers. We all fall somewhere along this spectrum but most endevors require a blend of these traits. Serious hobbies are perfectly suited for helping you blend.”
Life During Wartime
First published on May 26, 2015
“The first rule of wartime is to accept you’re at war. The early stages of a business where you’re developing technology, acquiring new users, and refining the idea, can feel like peacetime. But this is a false sense of security. Many of the failures I’ve seen at startups stem from the founders never developing an urgency about their situation as a small company that no one has heard of and therefore no one cares about.”
A Nerd, Playing to Win
First published on May 3, 2015
“You’ve probably heard before from Athletes that the primary determinant of the outcome of a game is often something like ‘mental toughness’. This is absolutely true for Netrunner. Especially in a tournament setting, where you’ll play 6 or more hour+ games in a row, keeping a competitive edge is crucial. This is the most pervasive benefit I’ve derived from playing Netrunner, and playing it to win: familiarity with the must-win moment.”
Playing Cards with Grandma
First published on March 3, 2015
“As I’ve grown up I’ve gotten a bit of a different perspective on the role that cards played in her life. I can now see that what seemed like a simple pastime was a force for gender equality, religious temperance, and intellectual stimulation for a woman who had precious little of each during her lifetime.”
The Myth of Serious Code
First published on February 27, 2015
Fundraising? Get the 'no'
First published on February 25, 2015
“Why? Getting ‘no’s requires you to do three key things that will help you get ‘yes’s over time:
- Get lots of meetings
- Have a clear ask
- Keep up momentum
This may sound like a dumb idea, since the point of pitching someone is to get ‘yes’s. Let’s dig in and look at the benefits in more detail.”
Breadth and Depth in Startup Metrics
First published on February 11, 2015
“Geoff Ralston recently wrote a post on his brilliant (b * d) / c formula for prioritizing product development features. You should definitely read his post if you haven’t. I call it Ralston’s Unified Theorem of Product Development.
As he notes in his post, though, the key to success with this formula is picking the right metric to use with it. Are there any more specific guidelines we can use to pick these metrics? I think so.”
Soylent Freegan, Diet of Champions
First published on February 5, 2015
“If I were rich I suppose I could use Doordash, Postmates, or other delivery services to bring great food to me any time I wanted it. But there’s still a lot of distraction and cognitive overhead in choosing food and I think I might still choose this diet if I were a billionaire. Like wearing the same thing every day, it’s a strategy for keeping focused on what matters.”
Envy is Your Enemy
First published on February 3, 2015
“Progress down the path towards excellence means being surrounded by the success of others. This can induce natural feelings of desire to experience others’ success ourselves. Combined with the illusion that others must fail for us to succeed, this generates envy. To avoid the destructive, isolating effects of envy, it’s important to consciously identify your own success with that of those around you.”
Fried OKRA, A Management Framework
First published on January 24, 2015
“I know that management frameworks are good for me and my team, but they’re just not very appetizing. So here’s an experiment in deep fried management.”
Building a Humble Brand for Your Edtech Startup
First published on January 13, 2015
“To be sure, great products can overcome mediocre brands and great brands will certainly not overcome inadequate products. But if you’re founding a company, launching a product, or considering rebranding you have the opportunity to create a lasting advantage if your brand can capture your unique positioning in the marketplace.”
Humility in Edtech
First published on October 13, 2014
“Humble companies know their place is to augment and amplify their customers, not replace them. Their products equip teachers and students to better do things in the classroom, rather than consume materials. More and more of the most exciting young companies are focusing on building tools for teacher and student success instead of hawking pre-packaged consumables. This isn’t just a coincidence, it’s also a recipe for success in the industry.”Read more on www.edsurge.com
Brad Miller's Search for Interactive Teaching Tools
First published on October 3, 2014
“Luther College computer science professor Brad Miller is a true innovator and one of our inspirations here at Trinket. He’s the core maintainer for the Skulpt project, which we use in our Python trinkets, and has built one of the best free online computer science textbook collections around at interactivepython.org.
In this interview, we hear about how he got into teaching, his search for better, more interactive resources, and how he uses interactive tools (many of which he created!) in his own classroom. One of the themes that comes through is how his projects, like all software projects, are embedded within communities of contributors working to solve shared problems. We’re excited and honored to be a part of some of the exciting work he’s doing!”
We Should Teach Code Like We Teach Languages
First published on September 22, 2014
“There’s a deeper insight here that I think most people miss. Code is a human language. We invented it! Yes, code tells computers what to do but it’s also how we communicate with each other about computers doing things. This has huge implications for teaching it and the kinds of tools we need to do so effectively.”
PyGotham 2014: Finding your Teaching Stack
First published on September 16, 2014
This talk is about finding and selecting the right tools for teaching code (esp. Python), for student levels from Beginner to Expert. I describe and rate several teaching stacks and do a hands-on demo. Hope you enjoy!
Interested in having me speak at your event? Get in touch!Read more on www.youtube.com
Walt Gurley is Teaching Code at a Science Museum
First published on September 8, 2014
Elliott: How does teaching programming fit with the rest of the NC Museum of Natural Sciences’ education?
Walt: A key concept incorporated into the museum’s educational program is to provide science for a changing world. There are multiple facets of the educational program, but the VisLab is one of three Investigate Labs in the museum, hands-on interactive spaces where the public can engage in scientific methods and use tools employed by scientists. In the VisLab, we focus on data visualization, where we demonstrate multiple ways scientists use computer-based visualization techniques to understand data from various realms of science, and making with electronics, robotics, and 3D printing. Programming is the the unifying theme: the lab is a great example of the application of programming to varied subjects.
Panel: The Power of Python: Insights from the Leaders
First published on August 26, 2014
I was invited to be part of a panel on Python by Thinkful. Tons of fun and I enjoyed learning about the other panelists as well as sharing the Trinket story!Read more on www.youtube.com
Mike Molony is Solving Project Euler, Interactively
First published on August 26, 2014
Elliott: We’ve been very excited to see you using our Python trinkets in ways we hadn’t imagined. Your blog does a great job of teaching both Python and computational thinking. What reactions have you gotten from visitors on the new interactive solutions you’ve added?
Mike: The response has been outstanding and I am moving all my solutions to trinkets. Live interaction with Python programs allows anyone to experiment with the results by changing a few parameters, and helps them discover new methods they hadn’t thought of before. My site’s traffic has doubled so far and is breaking records every month since installing trinkets. This has been a very exciting improvement in both exposure and blog usability.
Let's be Catalysts for Coding Education
First published on July 31, 2014
“Teachers need to know that they can and should be part of the change that’s coming to education.”
How to Host a Teacher Coding Event
First published on July 28, 2014
“An instructor is, believe it or not, optional. It’s much more important to have someone who’s taught kids in your target age group than someone who knows a lot about programming.”
Beginning Coders need Visual Examples
First published on July 9, 2014
“When I’ve brought visual examples like this into classrooms, kids are instantly engaged. They can see that there’s something ‘in there’: the turtle. I’ve personified the variable, so they can realize that her name is ‘Tina’ and she’s the Turtle shape on the canvas. Their minds immediately leap to what else Tina could do. I’ve got their attention and we’re ready to dig into the example, change some of the code, and really understand what’s going on.”
Writing Poetry in Python
First published on June 26, 2014
“Python has been called a poetic programming language, so I thought why not try writing poetry with it? This is a bit of a departure, but my background in Art History always helps me look for the artistic applications of what we’re doing at Trinket. So here’s a generative poem I wrote in Python.”
9 Lessons Learned Since Winning Startup Weekend EDU
First published on June 26, 2014
Lesson 4: Make your competitors your distribution channel
Partnerships with competitors can be just as powerful. Until just a few weeks ago, we were a teaching platform. We quickly realized that by making our interactive technology embeddable on any page like a YouTube video is, we turned each of our competitors into a distribution channel. We’re now in talks for deeper integrations. This isn’t possible for every business, but if you can do it, do. It will pay off for years to come.Read more on blog.up.co
Open Teaching Stacks help us teach at scale
First published on June 13, 2014
“Well-developed tools for teaching are crucial to the spread of open source software and programming languages. Stacks like those used by the Young Coders Tutorial and Mozilla Software Carpentry are having national and international impact by enabling more people to teach more often.”Read more on radar.oreilly.com
- Find What You're Best At and Double Down.
How Pat Counts Teaches Physics with Python
First published on May 13, 2014
An Interview of Physics teacher Pat Counts.
“Pat: For years the printed textbook has typically been a central component of physics courses. But physics is a science of change, and static textbook pages don’t convey change very effectively. Computers have the potential to provide a much more dynamic environment for modeling change than do ink and paper, and the best learning takes place when students interact with the concepts they are studying.”
Interactive Python On Trinket
First published on May 1, 2014
We just released interactive Python, embeddable anywhere on the web. Check it out below and create your own!
Hands-On Teaching Technology: An Interview with Greg Garner
First published on April 28, 2014
“Most students find a tool, write a piece of code, and at the moment that their programming becomes a real thing (a website, a robot program, a game), they’re hooked.”
- Greg Garner*
Interactive Tools For Teaching Python
First published on April 11, 2014
Here are my three favorite interactive tools for teaching Python to students of all levels:*
- Beginner: Turtle (using Skulpt)
- Intermediate: IPython Notebooks
- Advanced: Nitrous.io cloud development environment </em>
Why Python Is The Best First Language
First published on April 8, 2014
5 things students need from a 1st language:
- A great experience on Day 1. Much like the first page of a book, students need to be ‘hooked’ early on to have the excitement and curiosity to persevere in the face of the inevitable frustrations of learning something new. This can be especially important for those who haven’t been exposed to programming from a young age.
- The ability to (eventually) program on the Web. Increasingly, the Web is critical to the profession and craft of programming and students should have Web frameworks available when they’re ready.
- The ability to program desktop applications. While trends are moving more of what we do onto the web, there’s nothing like the immediacy of making and running your first local program.
- An eventually marketable professional skill. While academic or recreational programming is excellent, the skills we teach should also be usable in a professional context should students choose to use them in that way.
- A supportive and welcoming community surrounding the language. Once again this is crucial for those who haven’t had exposure to coding from a young age. </em>
Art History And Teaching Programming Part 3
First published on April 7, 2014
An active culture of studio visits amongst artists has been central to the development of artistic movements. Programming meetups can serve a similar purpose and are important tools for educators, especially those of us teaching in higher education.
Art History Major Teaching Programming Part 2
First published on April 6, 2014
Public displays of art have been essential to developing artistic communities throughout history. But at various points in history, groups such as Academies or Guilds controlled when exhibitions happened, who could show work, and what kind of work could be shown. In 19th century Paris, a group of artists organized a series of alternative exhibitions called the Salon des Indépendants that gave artists a direct outlet to the public and other artists, with no mediating Academic jury. Open source code has played a similar role in freedom of expression for programmers over the past few decades, and forms an invaluable tool for those of use who teach code.
Become A Source Of Dealflow
First published on April 3, 2014
It’s easy to get caught up thinking you’re trying to get something from an investor. This is a trap. My test of a good investor is whether they add value in the first meeting though their questions, analysis or advice. So why not return the favor? Find out what—or who—investors are looking for when you meet them and then keep an ear out. It’s that easy.
Art History Major Teaching Programming Part 1
First published on March 30, 2014
The best art history class I ever took was about Dutch art, taught on-site in museums and cathedrals in Belgium and the Netherlands. This process of cultural immersion is too-seldom replicated in programming courses. Yet it’s much easier to do with programming than with art history- the culture in question is still operating in the present! Later on in this series I’ll describe how Meetups and Hackathons are the perfect cultural immersion tool for teaching programming, especially to those with relatively little experience.
Families And Startup Missions That Matter
First published on February 28, 2014
The overarching message here is that everything you are - your familial status, your race, your gender, your nationality, your professional background, your first language - feeds deeply into the kind of vision you can set for your company. The world needs more companies with more big, powerful, benevolent visions.
In Search Of A Middle Path For Ed Tech
First published on February 21, 2014
Finding, let alone keeping on, this middle path isn’t easy. When I talk with Venture Capitalists, most of their eyes twinkle when discussing technology changing education at scale. Fewer understand how learning takes place. When I talk with instructors, they’re obsessed with being better in the classroom. Few care to think about the mechanism whereby they learn of these improvements. Both groups are key parts of the equation we’re solving here. Our job is to integrate them.
Why Teachers Won't Be Replaced By Software
First published on February 14, 2014
Software is spreading into every industry, changing how established players must play and even what the rules of the game are. But while many in Silicon Valley and Educational Technology think that software will “eat” teachers, replacing many of them, at trinket we believe software’s role is to create openness, making teachers better and more connected. Far from there being less teachers in the future, we think openness will enable and encourage more people than ever to teach.
How We Got From Coursefork To Trinket
First published on January 21, 2014
Today we announced that our forthcoming beta will include a new brand: trinket. This is a story of how our team has helped draw this renewed vision, new brand, and new product out of us by asking us important questions and challenging our decisions. It’s a story of needing to shake out of our comfort zone, and for me, personally, it’s required a shift from visionary to true leader. I hope it’s a story that other founders will find useful.Read more on exitevent.com
Startups And Living Life Deliberately
First published on November 7, 2013
A conversation with ExitEvent founder Joe Procopio.
The Startup Giveback idea came up at an event back in September. Elliott brought it up, and it had obviously been on his mind, during a conversation with me and Adam Klein over drinks. The idea is for the Triangle entrepreneurial community to create its own charitable fund, in the form of an endowment that will benefit local charities perpetually. It’s a big goal, which is why I like it and why I’m betting other entrepreneurs will like it.Read more on exitevent.com
Three Pillars For Open Education
First published on October 27, 2013
*Despite the ambitious title, I can’t claim I know for sure how we’ll build education’s open future. But by examining the history of open source, I think we can see what shape the answer will take. And so this is the approach we’re taking with Coursefork: the hypothesis that the future of education looks a lot like the present of software and that both are inexorably becoming open.
There are three areas that we believe educators must develop if we are to make this future a reality: Community, Leadership, and Technology.*
Startups And Distractions
First published on September 23, 2013
Startups are full of distractions. In an accelerator like The Startup Factory, the distractions are multiplied along with the benefits. There’s mentor whiplash, endless events, coffees, and the like. There’s plenty of benefit to be gained from meeting with people about your idea and random encounters. But you can’t afford to go fishing for potential benefits – you need a sure thing that you have control over.Read more on anentrepreneuriallife.com
Four Startup Lessons In Four Months
First published on September 18, 2013
“My original plan with Coursefork was to take the summer, go into a room with lots of Red Bull, and code a prototype. I’m not an amazing coder, so I estimated it would take me 2-3 months to get an alpha. In that alternate reality, I wouldn’t be writing this essay, I’d be trying to test out my prototype in front of users.
By building a team and giving the idea away to them, I was able to see a proof of concept built in a weekend, deploy an alpha in June, raise angel funding, and end up here at The Startup Factory.”
Don't Sweat the Medium Stuff
First published on July 29, 2013
*What occupies the rarefied space of the 20% most important things for your startup? Things like understanding your customer, having a killer idea, and choosing the right investors are crucial to your success; you can’t win without them. So it might seem like you should prioritize things on a great big list and just work your way down from there.
A strategy that has worked for me has been to attack my Great Big List from the top AND the bottom simultaneously.*
First published on July 15, 2013
I've started a startup called Coursefork with cofounders Eric Martindale and Brian Marks. We're an open education startup looking to become the foundation for education's open future, where educators of all types can create, share, and modify course materials for anything from a workshop to a university course. I'll be open-sourcing my materials for the graduate level programming course I'll be teaching at UNC in the fall on Coursefork. In the meantime, check us out!
Pitching Your Pre Seed Startup Part 2
First published on July 1, 2013
*What are YOUR goals? This is the first question you should ask yourself when looking for investors. It’s the question I’ll leave you with, because it’ll take some time to think through.
You need to know what your goal is so that you can effectively communicate that goal. Plenty of investors will not be a good fit for you to achieve your goal, and that’s OK. Just make sure you keep the conversation focused on goals so that all parties can quickly evaluate whether a deal makes sense.*
How To Pitch Your Pre Seed Startup Part 1
First published on May 13, 2013
Fun aside: this was published on the day we officially registered the business with the Delaware Secretary of State. We got our first term sheet a few days later.
Coursefork is in the midst of pitching to angel investors and we’ve learned a ton, so I thought I’d take the time write a post that can hopefully save you time and/or effort. There was a distinct shift for us a few months ago when investors started taking meetings instead of giving us the “keep me updated.” This is how we got there.
First published on February 16, 2013My wonderful wife Erin bought me a Raspberry Pi for my birthday in November 2012. It's changed the way I think about computers and coding education. I wrote a long form post about my latest ideas on HASTAC.org. You can read more by checking out my G+ feed, and below are some selected posts from it. I started Comp-core.org, the Computational Core Curriculum, to collect and collaborate on course materials (and code, via our github repos) for those of us who teach this material. It's small now I first got this idea from a panel I moderated in the Fall at UNC called Code in the Classroom. A little wrap-up of that event, which featured profs from Duke and UNC, is here. So check it out and shoot me an email or join comp-core's open google group if you want to contribute! Some G+ Posts I've written about the Pi:
VNC running into my Pi from my iMac:
- The 30 mpg, 8 passenger computer. Only $35 + $35,000. Or $35/day if you rent the car :)
- Getting VNC running on Mac OSX or Linux to use your Pi with your existing computer (thanks to a nice tutorial from Interloc Rochester)
- Legend of Zelda themed project by Al Sweigart for learning about windowed interfaces and gameworld creating using Python and PyGame.
- Getting Archlinux and Awesome WM running on the pi for a mouse-free OS experience.
Finally, see also this post on HASTAC, which is a longer case study of how my VNC project was enabled by the modern Internet.
How I Use Hastac
First published on February 16, 2013
Basically, HASTAC is a sounding board and sketchpad for ideas. Pretty much all of the posts I’ve written have felt experemental, tests of ideas. The reponses I get are always energizing, as I hope my comments are to others’ posts. Here is a case study in how posting some experemental ideas on HASTAC has blossomed into real-world expereinces, virtual connections, and tangible improvements to my ideas.
Three Aspirations For 2013
First published on January 6, 2013
First published on September 28, 2012Inspired by this post by Harj Taggar, I took email off of my iPhone in September 2012. After a week or two, it's really helped me stay focused while I'm away from the computer. That, combined with Rescue Time when I'm at my laptop, has helped me be more efficient with the hours I spend working. I'm interested in this both from an information science perspective (when every device can do everything, how do we make space for thought and focus?) and from a personal perspective (how do I achieve what I want to achieve and leave time for life?). I'll try to pay attention to both aspects. Harj wrote his post after 6 months, so I'm going to give it plenty of time before I make any sweeping pronouncements. Stay tuned and I'll post my reflections here.
First published on June 25, 2012I'm learning Clojure. I'd like it to be my primary language. I spent tons of time evaluating languages, and have compiled my notes into a stub of a curriculum I'd like to teach at UNC one semester. For now though, I thought it might be helpful to throw up a few links that I've found particularly helpful.
What has been built with Clojure? Glad you asked
- Edit code at runtime
- Prototype blazing fast
- Macros: programs that can make other programs at run- or compiletime
- LISPy languages make sense to my brain
- Companies I admire like Factual like it and are supportive
- Big companies don't use it, but many startups do (each of these is a plus)
- Runs in JVM
Trying out Clojure with no installTrying out Clojure is super easy, thanks to the geniuses who wrote 4Clojure.com.
Note there is no compiling needed here. You are running a real Clojure REPL in the browser.
- Open a REPL in one tab (tryclj.com is a good one)
- Open one of the Clojure Problems in another tab
- 4Clojure problems are fill-in-the-blank code. The REPL will help you test pieces of code.
- Submit - If you got a green light, congrats! Move on! If not, repeat from the top
- (Optional) Create an account to track your progress and play Code Golf
Installing & Learning MoreThe Clojure koans are great for learning. I actually started them before 4Clojure, but I list them after because they require an install.
- Get started
- My setup, shown below, is two terminals, one with VimClojure editing a koan file, the other running the koan script. Edit and save (:w) in vim and the koan script will automatically move on to the next blank (or koan that you got wrong). It still seems magical to me that I'm editing code while a program is running.
VidsThere are all sorts of great blip.tv videos on Clojure related topics. (I recommend this one featuring Rich Hickey, the originator of Clojure. He's not talking about Clojure per se, but design/programming techniques 'from the hammock', using your 'background mind'. Watch the video to see what he means).
Getting Serious with ClojureI'm just barely serious with clojure, so this is a stub.
- VimClojure - I started out using pico, which served me well, but now mostly use vim for terminal editing. Set up rainbow parens in vimslime as described here.
- Clojure Eclipse Plugin - Everyone's favorite IDE (ok, a lot of people's favorite) has a Clojure plugin, called CounterClockwise. Instructions for a nice setup are here.
- Emacs - Emacs is too smart for me.
First published on June 13, 2012I'm spending the summer of 2012 working on a Phylogenetics project with NESCent, supported by Google's Summer of Code program. I'm about 4 weeks in now and have really enjoyed things so far. For a real-time view into what I'm up to, check the project's public Google Folder, wiki page, and github project page. For a view into something I'm working on this week, check out this recently added wiki page!
- 16,000 Words
First published on February 19, 2012GooglePresentations Think PowerPoint but easier and everywhere. Google still doesn't have the tight integration that Office does, but for me that's more than made up for by the ease and access. Prezi An excellent tool for creating show-stopping presentations. The software uses vector graphics and takes advantage of that fact to allow near-infinite scalability. What does that mean? Take a look at a Prezi I made about Prezi's innovative user interface: (press the play button and wait for it to load. use the mouse or arrow keys to navigate)
- Kinect Hacking!
First published on December 2, 2011There's a big difference between knowing no Linux and knowing a little Linux. I highly recommend getting to a little Linux. It's so easy! Try Before You Buy ...Well, the Linux is free so you'll never have to buy it. But the best way to figure out what it is and play around is using VirtualBox. You can load Linux within your current operating system. Killer. Oracle spearheads the free/opensource project, so you know it's got some firepower behind it. One day I'll post a tutorial on setting up VB. After you load it you'll be able to create new virtual machines. Simply download the .iso for your preferred distribution (see below) and mount it as a virtual CDrom.
Elliott's Guide to Linux DistributionsStart Here: Ubuntu Ubuntu is quickly becoming the standard for non-server, non-expert Linux. That said, there is perhaps the largest community of experts working to tweak and improve it. It's also backed by a company- Canonical Ltd- which, despite the philosophical reservations of some idealists, makes the end product higher quality in my opinion. You can even buy hardware pre-installed with Ubuntu from system76.com. Pretty sweet. Ubuntu is focused on ease-of use, and it delivers. It's also customizable and powerful. A great blend, ready for almost anything you'd like to throw at it. ### Research Computing: the RedHat Clan Red Hat is another corporation that backs/spearheads open source projects. RedHat, Fedora, CentOS, and even TarHeel Linux all owe some aspect of their existence to Red Hat the company. RedHat Enterprise Linux is their flagship product, and is the backbone for a significant chunk of the Internet we know and love. Fedora is the community-developed version of their software where they test out new features. It's re-versioned every 6 months or so, whether it needs it or not, so it's great for cutting-edge, not so great for your standard user (that said, it's much much more stable than even a few years ago). CentOS is RedHat Linux with the logos taken out. TarHeel Linux is UNC's version of RedHat Linux supported for research computing. Check out Emerald, UNC's research cluster, for info on how to submit massive MatLab or Mathematica jobs to 700 processors. ### The Fun world of RAM only: Puppy Linux Puppy will fit on a small thumb drive. It's blazing fast and tiny. More soon. ### Style, Substance, Slimness: #!CrunchBang Linux I've just started playing with this distro virtually. It's very slick. More soon.
First published on November 29, 2011
Database Management Software
SQLiteSQLite is a simple, lightweight, cross-platform relational database sponsored by, amongst others, Bloomberg and Oracle.
AccessBelieve it or not, I learned Access back in 7th grade. I just remembered that. Nothing I learned really stuck with me because I didn't understand relational databases at the time. See below for more on that. Like most Microsoft products, Access is very powerful and widely misunderstood and underutilized.
Filemaker ProFilemaker Pro was bought by Apple at some point. The suite of products includes Bento, a template-centered system for personal information management to Filemaker Pro Server, a multi-user environment.
OracleReal men (or hapless students) use the command-line based SQL*Plus. SQL Developer is the graphical interface. These products are database management systems. They both manage Oracle's relational database, called Oracle v11.
Databases ProperCheck out my Reading list for a sense of my perspectives on databases. If you find any inaccuracies or imprecisions in the below, let me know. I'm very interested in different types of databases and their implications for information, knowledge, and scholarly practice. In contrast to the management software discussed above, the below focuses on the underlying structural options for storing and organizing data. Relational Databases Relational Databases run your life: they contain your eBay account, your Hospital Records, your Drivers License info, etc, etc, etc. These things keep track of your membership in things, your account values, store inventories, etc. They are excellent for 'complete' systems, where the user can define ahead of time what kinds of data will go into the system and, crucially, is certain of the content. Big, subtle problems come along, though, when RDBs are misunderstood or stretched beyond their capabilities (or, as I'm investigating, when indeterminacy or functional indeterminacy enters the picture). Much like statistics, this system is only a grammar that relates elements in predefined ways. I'm working on a formal evaluation of the capabilities/pitfalls of RDBs. There are many ways to use this one basic format Access and FileMaker both support the Relational Model (developed by E.F. Codd), as does database giant Oracle. SQL is supposed to be a standard interface protocol (it's not really a language) to the relational model. Relational Databases break related data into tiny bits so that they can be more efficiently coordinated. How do you know where to make a break? Well, there's a whole science to database design (and the dreaded Normal Forms), but essentially you identify fault lines within the data for aspects that vary independently of each other. For instance, 'Author' varies separately from 'Title' in a book (e.g. one Author writes many books, or many people write a text called 'Biology'). But within 'Author', we can specify 'First' and 'Last' names. We could specifiy 'First letter,' 'Second letter', etc of each name. But if, in our case, these series of letters always appear together, we know we've gotten granular enough. Knowing when to stop splitting up your data is the art of database design. There's also a science that can tell you when splitting your data up (e.g. into individual letters) won't be very efficient. That doesn't mean it's not desirable, though: I believe that genetics databases split each nucleotide out and use references to the nucleotide in allele descriptions rather than storing 'ACCG' etc. Ok time to zoom out again. Many people use databases and they can get very complex. So far I haven't found many people with the technical skills to manipulate them and even fewer who can give a good conceptual overview. Hopefully the above is serviceable. Please do shoot me an email if I've gotten it wrong. Data Warehouses ('Atomic Data Stores') Large organizations (particularly in Healthcare and Finance) use Data Warehouses to analyze massive amounts of static data. The entire industry of 'Business Intelligence' is pretty much predicated upon their existence. They are a type of Relational Database utilizing a special data model called a Star Schema (or, when it's more complex, a Snowflake Schema). Basically, the schema collapses the standard relational model down into Facts (the 'atom' of atomic) and dimensions. Roughly, the Facts correspond to 'measurements' you've made and Dimensions are aspects you want to analyze. It's all a design question, though. The difference between a data warehouse and a regular relational database is that the latter is operational: it's updated on the fly. Warehouses are for storage and analysis only. Their schemata (or, for mere English speakers, 'schemas') are optimized for retrieval and comparison. If you start trying to update the 'facts' you'll have to go through all of them to make sure you don't introduce any irregularities. Document-Oriented Databases (via Lew Hassel) Above we talked about the field 'Author' and how it might be reasonably broken up into 'First' and 'Last' names. The details of this are part of a database's schema. Think of a schema as a blueprint, or plumbing pipes, or electrical wiring. And just like those systems, if you didn't plan ahead for certain functionality, chances are trying to add it will break the model. So to break the model above, all we have to do is try to add a 'Co-Author'. Imagine trying to add a sink where there wasn't any plumbing. That's realizing that what you're trying to do wasn't anticipated in the design. It's frustrating. Document-oriented databases try to circumvent all this by being build around 'documents' instead of into a rigid schema. Think of them like a modular house that you can plug together like legos: you will still get horrible results if you don't plan to have things meet up, but the pieces can be more autonomous and so it's easier to add on as you go. Document oriented databases allow the functionality we love in Apps like GoogleDocs. An interesting feature here is that 'documents' are really just a grouping of fields. There are no specified relationships between documents or fields (i.e. no foreign keys), so the relationship between the fields is latent and dependent upon the capabilities of the field's data format. For instance if I want to know if a 'document' (say, this blog post) was created by the same author as the rest of the blog posts here, I'll just search all the posts' 'Author' field and see if they match up. This is a consequence of the document-oriented databases' 'flatness'- their lack of rigid relations. The document orientation ('persuasion,' if you will..) is great for semi-structured content like blog posts. It would be horrible at tracking your bank account balances. Object Oriented Databases I don't understand object oriented databases very well. More when I do.
First published on November 17, 2011In early November I was asked to talk about Data Curation for Art Markets research by the Duke Art, Law and Markets Initiative (DALMI) conference. For a small, interdisciplinary, international and growing field like Art Markets, data curation and sharing has the potential to be a powerful catalyst for growth. Currently, sourcing data from archives or previous publications can be a huge part of the work- before analysis begins. Economists may not have the historical background to collect or evaluate appropriate data, while Art Historians may not have the quantitative toolsets they need for effective analysis. Collaboration has been the solution for the field, but shared, vetted, appropriately described data is the way forward. See all of my [public] Prezis here. Prezi 1: Data Curation in Art Markets Research Prezi 2: DALMI Next Steps
Diagramming & UI
First published on October 18, 2011OmniGraffle Omnigraffle is the Big Kahuna of diagraming programs. I use it extensively. There are complaints I have about it, but they are the kind of complaints you have when you find a piece of software so useful you know all of its quirks. That said, Omni group's software ergonomics pretty much beat anyone's. Visio Visio is the de-facto standard for Windows diagramming. I don't like to use Windows, so don't have much experience creating content with Visio. You may like it though. Not to be confused with Vizio. Gliffy Gliffy is a neat web tool that wants to be a web-enabled version of OmniGraffle. Not only is it a great diagraming option for Macs, it's one of the best I've found that works with Linux. (sorry, Dia...) It runs on the web and there is a free version. It's pretty powerful, and certainly more convenient than box-bound software. It's not as powerful as Omnigraffle, though, and the interface isn't as refined (for instance, there's no equivalent to holding down alt to duplicate elements). I used Gliffy back when I was just starting to learn about ER diagrams: I haven't found it useful enough to upgrade beyond the 5 documents you get for free. Instead, I bought Omnigraffle. UX Evaluation TechSmith's Morae is an interesting- and very expensive - entry into the UX Analysis Space. It combines screen & webcam capture with indexed notetaking form multiple observers. I'm sure there are more programs in the UX space. Stay tuned.
First published on February 28, 2011****Update Via Richard Marciano's Digital Humanities Class: GeoCommons: georeferenced data in the cloud GeoCommons is a sharing platform for georeferenced data, from .kml to ArcGIS and other pro formats. BatchGEO: Upload a spreadsheet, get a map Free-as-in-beer mapping. The free version looks quick and easy, and the pro version looks decently powerful. ***Update This isn't so much data visualization as data presentation, but there're are neat things being done with WebGL fight now...For instance: (note that you may need Chrome to view some of these) awesome site has a link to Protovis, a free open source tool developed at Stanford's Visualization Group. Click below to check it out:
I think you'll see if you visit Beck's site, though, that nothing beats pen and paper...In her hands at least..
Microsoft Excel I debated puttingI went ahead and put Excel in strikethrough. It's the go-to dataviz tool for the masses, and is great at what it's designed to do. But if you have limited needs there may be something easier and freer. And if you have advanced needs, Excel's extremely limited/hard to use visual formatting options will drive you up the wall, as they did to me during my art history thesis research. Linux Tools IBM has a great rundown of Data Visualization Tools for Linux. (Via classmate Lisa Speaker) Tableau Software Tableau is an expensive but interesting option geared towards business intelligence. I'm keeping an eye on them... (Not to be confused with Tableau, LLC, forensic data analysis hardware provider) Google Fusion Tables This is a labs product, so don't expect fireworks. But take heart that Google has projects like this up its sleeve. Basically, you connect to or upload data and then select from some canned visualizations. The components of the vis are open to public comment. An interesting but mildly useful feature as implemented. More to come! - Meanwhile, check out this sweet post on visualization by Hilary Davis. (Thanks to Alex Gallin for being the reason I found Hilary's post)
First published on February 18, 2011Growing up, I was the kid who never took notes or did homework assignments. I would read alot, but not always the things that were assigned for class... The upshot of all this is that I'm uncommonly knowledgeable about random things and have stunted organizational skills. I do homework now (mostly reading), and man, it takes a lot of time and planning! I've had to impose order on my mind and on my time to get it all done. I started trying to think in a structured way about tasks, priorities, and my capacity to get things done.
There's an App for that?A few months ago I started looking into a to-do list program. There are millions of them. Some are a one basic list, others have nesting and categorization, and some offer syncing across all your devices. The good ones seem to be expensive (though there are some free ones to try too). Dig through this list if you'd like to see some offerings. So, not wanting a new system before I could prove to myself that I could use a to-do list at all, I decided to use what I already had. Last semester (Fall 2010) I started using the to-do list capabilities of Calendar for Mac, synced using MobileMe. Basic, sturdy, but with an egregious lack of support on the iPhone. The interface was clearly not tweaked, either. Apple seriously fell short on this. Even the recent major calendar update had no changes to the to-do list. Bummer. But using a to-do list was great! I could put all my readings, etc in there and, though the list itself got HUGE, Calendar let me set it to only display those items due within the timeframe I was looking at (usually a week at a time). Which was great because I also started using the Mac calendar system heavily (again synced with MobileMe), and I could tick off items while planning my week. Somewhere along the way I started to hear about the Getting Things Done system. This isn't a computer program but a system described in one of those self-help type books on productivity. I'm extremely suspicious of such things. But I'm always willing to give a suspicious listen. The basics of the system are to state your goals, align your projects with your goals, break your projects into actionable items, and do your items within their necessary contexts. I started planning in the GTD style, and quickly found that a simple to-do list won't, so to speak, do. May sound confusing at first, but, as I hope to show with OmniFocus, the software based on GTD I've decided to use, it's pretty powerful. I'm still not buying the book, though...
The screenshot above includes an item, 'Revise Personal Productivity Post'. ...Check!
- you should first start living with a perpetual to-do list and get used to that first and
- you have to have a LOT of things to do before nested to-do lists, projects, and contexts really pay off.
Notice that I have lots of folders within 'School' and they're not all relevant all the time. So, for instance, when I'm doing my homework, I'll focus only on the 'Class' folder to screen out stuff like the W-9 I have to fill out, etc.Contexts
- Citation & Literature ManagementFirst published on February 8, 2011**Update: Mendeley is now the center of my scholarly workflow. In about 8 months of using it, I've accumulated 1500 scholarly papers from school, the lab, and my personal research, using about a gigbyte of cloud storage. How else could I have managed? It offers syncing with a web account (500MB free), so my citations AND pdfs are always nearby. It allows group joining/sharing of PDFs (though the group has to be closes/restricted access, to avoid copyright violations, I suppose). It's got an excellent full-screen PDF reader and annotator: Mendeley Advisor in May 2011. But I'd still be paying the $5/month even it it wasn't free. It's that awesome. ____________ **[Older] Update: I got started on Mendeley. Am setting it up now. [caption id="attachment_261" align="aligncenter" width="567" caption="Mendeley does support Zotero and CiteULike live-updating!"][/caption] I also have set up Zotero, but don't really like it because it's stuck in Firefox. I use Safari most of the time because Firefox is so dern slow. [caption id="attachment_265" align="alignright" width="304" caption="Mendeley's link-based importer in my QuickBar in Safari"][/caption] Even if I don't ever use Zotero myself, this integration means that I can join Zotero-based groups. That was a big concern for me: making sure the system I chose could play well with others. I'm at a grand total of 3 sources right now. So far I'm impressed with Mendeley's link-based import (even though it utilizes pop-ups). As I put Mendeley through its paces, I'll pay particular attention to:
- Adding web-based sources
- Adding sources directly from the Library's page
- Annotating and noting on sources (e.g. pp. 112-123, or 'as contra Foucault')
- Searching through online groups and publically available bibliographies
- Searching through others' annotations
- Health RecordsFirst published on January 31, 2011This is a stub of health records and health informatics standards and resources. As a Carolina Health Informatics Program student, I'm studying all of these. The department of Medical Informatics at Columbia University maintains the Medical Entities Dictionary, a concept-oriented repository with links to many of the vocabularies and codes below. The Veteran's Association maintains an open source health records/clinical support system called VISTA HL7 is a pioneering data interchange format for health data. It focuses on interpretability between different formats. This allows specialist medical fields to choose best-of-breed equipment and information systems without compromising the ability to communicate with other aspects of the health system. LOINC is a controlled vocabulary for clinical and laboratory results. This allows standardization of observations like "patient had a temperature of 105" "Strep positive" etc. CPT is an established standard of medical procedures maintained by the American Medical Association. For instance, '26010' is 'Drainage of finger abscess; simple' ICD-9, ICD-9-CM, and ICD10 are standardized, hierarchical controlled vocabularies that have their origin in linking billing with the patient's chief complaint. Like all controlled vocabularies, they have their problems. Also, since they're used for billing, they're not perfectly representative of diagnoses, etc. They demonstrate the huge potential of standardization, though, and are the basis of many secondary analyses of clinical data. SNOMED is another medical controlled vocabulary that focuses on coverage scope and multilingual support. UMLS is maintained by the National Library of Medicine. It is the most comprehensive system (6.4 million concepts from over 100 source vocabularies) and subsumes and interrelates many of the systems above. It includes a Metathesaurus, a Semantic network, the SPECIALIST Lexicon, and a Metamorphosis configuration tool. There have been concerns with this service's efficiency and precision, but it's pretty much the only attempt to unify so many standards. Check out the National Center for Biomedical Ontology for more resources and calls for proposals.