- Network Connectivity Optional (Luke Wroblewski) — we need progressive enhancement: assume people are offline, then enhance if they are actually online.
- Whoosh — fast, featureful full-text indexing and searching library implemented in pure Python
- Flanker (GitHub) — open source address and MIME parsing library in Python. (via Mailgun Blog)
- Stream Adventure (Github) — interactive exercises to help you understand node streams.
Bringing some of the benefits of face-to-face learning to millions of people without access to an in-person tutor.
Millions of people around the world — from aspiring software engineers to data scientists — now want to learn programming. One of the best ways to learn is by working side-by-side with a personal tutor. A good tutor can watch you as you code, help you debug, explain tricky concepts on demand, and provide encouragement to keep you motivated. However, very few of us are lucky enough to have a tutor by our side. If we take a class, there might be 25 to 50 students for every teacher. If we take a MOOC (Massive Open Online Course), there might be 1,000 to 10,000 students for every professor or TA. And if we’re learning on our own from books or online tutorials, there’s no tutor or even fellow learners in sight. Given this reality, how can computer-based tools potentially bring some of the benefits of face-to-face learning to millions of people around the world who do not have access to an in-person tutor?
I’ve begun to address this question by building open-source tools to help people overcome a fundamental barrier to learning programming: understanding what happens as the computer runs each line of a program’s source code. Without this basic skill, it is impossible to start becoming fluent in any programming language. For example, if you’re learning Python, it might be hard to understand why running the code below produces the following three lines of output:
A tutor can explain why this code prints what it does by drawing the variables, data structures, and pointers at each execution step. However, what if you don’t have a personal tutor?
Offline Design, Full Text, Parsing Library, and Node Streams
- An Intuitive Guide to Linear Algebra — Here’s the linear algebra introduction I wish I had. I wish I’d had it, too. (via Hacker News)
- Think Bayes — an introduction to Bayesian statistics using computational methods.
- Divshot — a startup turning mockups into web apps, built on top of the Bootstrap front-end framework. I feel momentum and a tipping point approaching, where building things on the web is about to get easier again (the way it did with Ruby on Rails). cf Jetstrap.
CV Camouflage, Best Practices, Failure Conference, and Fiber Lessons
- Urban Camouflage Workshop — Most of the day was spent crafting urban camouflage intended to hide the wearer from the Kinect computer vision system. By the end of the workshop we understood how to dress to avoid detection for the three different Kinect formats. (via Beta Knowledge)
- Starting a Django Project The Right Way (Jeff Knupp) — I wish more people did this: it’s not enough to learn syntax these days. Projects live in a web of best practices for source code management, deployment, testing, and migrations.
- FailCon — a one-day conference for technology entrepreneurs, investors, developers and designers to study their own and others’ failures and prepare for success. Figure out how to learn from failures—they’re far more common than successes. (via Krissy Mo)
- Google Fiber in the Real World (Giga Om) — These tests show one of the limitations of Google’s Fiber network: other services. Since Google Fiber is providing virtually unheard of speeds for their subscribers, companies like Apple and I suspect Hulu, Netflix and Amazon will need to keep up. Are you serving DSL speeds to fiber customers? (via Jonathan Brewer)
Jobs Quotes, Tao of Programming, Distraction, and Canvas Tutorials
- Steve Jobs’s Best Quotes (WSJ Blogs) — Playboy: We were warned about you: Before this Interview began, someone said we were “about to be snowed by the best.”; [Smiling] “We’re just enthusiastic about what we do.” (via Kevin Rose)
- The Tao of Programming — The Tao gave birth to machine language. Machine language gave birth to the assembler. The assembler gave birth to the compiler. Now there are ten thousand languages. Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao. But do not program in COBOL if you can avoid it. (via Chip Salzenberg)
- In Defense of Distraction (NY Magazine) — long thoughtful piece about attention. the polymath economist Herbert A. Simon wrote maybe the most concise possible description of our modern struggle: “What information consumes is rather obvious: It consumes the attention of its recipients. Hence a wealth of information creates a poverty of attention, and a need to allocate that attention efficiently among the overabundance of information sources that might consume it.” (via BoingBoing)
- 31 Days of Canvas Tutorials — a pointer to 31 tutorials on the HTML5 Canvas.
Mediasaurus Dix, Mobile Numbers, Machine Learning, and Software Patents
- Networks Blocking Google TV — the networks are carrying over their old distribution models: someone aggregates eyeballs and pays them for access. In their world view, Google TV is just another cable company. They’re doubling down on this wholesale model, pulling out of Hulu and generally avoiding dealing with the people who ultimately watch their shows except through ad-filled shows on their corporate sites. (via Gina Trapani)
- Mobile Market Snippets — lots of numbers collected by Luke Wroblewski. After the Verizon iPhone launched in the U.S., Android suffered its first quarterly decline. Apple’s share of the U.S. smartphone market gained 12.3% to 29.5% in the March quarter while Android’s share in the U.S. fell from 52.4% to 49.5% — its first sequential loss in any region of the world since early 2009. The post has lots more like that.
- Unsupervised Feature Learning and Deep Learning Tutorial — This tutorial will teach you the main ideas of Unsupervised Feature Learning and Deep Learning. By working through it, you will also get to implement several feature learning/deep learning algorithms, get to see them work for yourself, and learn how to apply/adapt these ideas to new problems.
- A Generation of Software Patents — This report examines changes in the patenting behavior of the software industry since the 1990s. It finds that most software firms still do not patent, most software patents are obtained by a few large firms in the software industry or in other industries, and the risk of litigation from software patents continues to increase dramatically. Given these findings, it is hard to conclude that software patents have provided a net social benefit in the software industry.