had kind of a long rant on twitter today that i felt was important. reproduced here slightly modified for format.

the more i write code & interact with others’, the more i become convinced that abstraction is incredibly dangerous & a two-edged sword.

underpinning 90% of nontrivial bugs i see is a fundamental lack of understanding of how an abstracted component works. abstraction can easily lead to devs having a black-box mentality and utterly ballooning code complexity.

one thing i’ve done that has kept my code much, much more manageable than a lot projects i’ve seen is simply to implement everything i can. on my own. and it’s easy to cry “reinventing the wheel”&mdashl

—but at the end of the day my code has extremely minimal dependencies, i understand how every moving part works, and because i can tailor the implementation to my needs it can very easily work better than something designed to be more generic.

Twine is a massive unhosted JS app for interactive storytelling that has tons and tons of dependencies & requires node.js & a node build tool chain. the results were bulky, full of hacky HTML, and easily breakable. unsatisfied with the available options, i wrote my own.

my compiler was around ~600 lines of C++, has no dependencies outside the C compiler and stdlib (and even then only for string classes), runs in milliseconds and produces very optimal output.

also i wrote the whole thing in under 24 hours.

why is this? fundamentally the underlying problem is not a complex one. it’s something computers are extremely well-suited to handling.

but we don’t do that anymore. we’ve learned to code by stringing together libraries and bludgeoning generic solutions and writing masses of glue code instead of just solving the problem ourselves.

i was talking earlier about the trimet mobile ticket application and scorning it vocally. fundamentally the underlying problem is extremely simple! the only abstraction needed is for network access, GUIs, and arguably message serialization. i could write something like it in a week (i’ve done it before) but this company GlobalSherpa manages to expend tons of (mostly-)man-hours on this thing, hacking it together out of JS, spit, and prayers, when a native Java app would be perfectly sufficient, tiny in comparison, and much, MUCH more responsive and usable.

we don’t know how to solve problems anymore.

we’ve learned to outsource them instead.

very capitalist of us.

computer tech is getting better. it’s getting more and more powerful and capable and clever. and in the meantime software is getting lazier and fractured and more and more disorganized. by 2050 i am comfortable predicting that the average personal computer will be less usable and less functional than a 1980s mainframe because the hardware will be buried under a maze of bulky, badly-architected software.

i’m clinging to arch linux because it’s the last vestige of the old ways, where systems were built on an underlying design principle instead of hacked and glued together out of available components.

because that’s the other thing. in the FOSS world, new software just doesn’t seem to get written. projects are forked, old software is cloned, but there are close to zero genuinely new or interesting projects around. i ended up writing nitasema because there simply was NO tool that could accomplish what i wanted. twine was the closest but even it fell laughably short.

and the few new projects i do see are often just pieces of glue for other existing systems.

tech is just broken and i feel so utterly powerless to do anything about it.

there are a billion and one tetris and pacman clones out there. the number of new ideas, genuinely new games? vanishingly small.

and yet we just keep churning out clone after clone after clone.

i’m so tired of it.

i want a community that’s creative. that looks at a C++ compiler and sees the same beautiful, overwhelming skein of potential for creativity i do. instead of just staring at the screen with dull eyes and going “uh imma write an(other) Atari emulator” or whatever.

we can do so much better. the hoi polloi have never had access to the kind of tools we do now, and we’re squandering them on pointless shit.

it makes me fucking sad.



Browser-based real-time live-coding music editor to create your own little Algorave tunes.

Even if you are not familiar with coding, it is interesting to see and hear what and how the electronic music presents itself. You can change anything in the code for differing results (for example, changing the BPM variable or numbers that represent the notes of the bassline).

A lot of the examples sounds very Chiptune and some more sophisticated than others, but the project is constantly being worked on with new features and capabilities.

Worth an investigation if you are curious.

Try it out for yourself here



Creative coding project by Jason Lin can convert text into 3D geometric drawings, turning writing into a visual grammar - video embedded below:

My latest Processing project!

… I came up with this idea because my last project used an excel sheet and received insane amounts of numbers and data.
This time I wanted to use a text file and receive insane amounts of words and letters and most importantly, punctuation!

I had seen pictures of “sentence maps” before where a line was created and it got longer with every word and made a turn every time the sentence ended. Colors would change with every character or some other factor.

Basically I wanted to take this idea and make it HUGE. I wanted an entire 3D explore-able environment.

The video explains what I chose to do for every single type of punctuation mark.

More at Jason’s art blog here

The project hasn’t been made available to the public yet, but at Jason’s Tumblr blog (obeserhino) you can send him suggestions to try out. [Link]

Announcing Code Studio!

I’m proud to announce the launch of Code Studio, Code.org’s new open-source learning platform designed to teach students the basics of computer science, starting as early as kindergarten. 

The Code.org vision is to bring computer science to every student in every school and today marks our latest step towards that vision.

We believe passionately that every child who has an opportunity to discover the world around them through a smartphone should also be given the learning capabilities and tools to build their own app. Code Studio enables even our youngest students to learn to build a basic animation or app in elementary school, and then share it to a friend’s phone within minutes.


The Code Studio tutorials enable students to cover programming topics such as repeat loops, conditionals, and functions, as well as broader concepts such as how the internet works, or the role of digital citizenship in modern society. Code Studio expands on Code.org’s previous online tutorials which have already been used by over 30,000 classroom teachers and tens of millions of students. Any student can sign up for the beginner courses at http://studio.code.org.

Make a simple app, send it to you phone
Within Code Studio, we’ve developed Play Lab, where elementary students can create and send apps or animations directly to a cell phone, just by typing in the phone number. This is a first in education for kids, made possible through a collaboration with Twilio.


To help new teachers integrate the system into their classrooms, we are also launching free, one-day professional development workshops in more than 60 cities throughout the US, aiming to prepare 10,000 teachers.

Any elementary school teacher in the US can sign up for a local workshop at http://code.org/k5. More workshops, offered through 100 Code.org Affiliates nationwide, will be available in every region of the country soon.


Code Studio works on any modern browser or tablet, with no install needed. It’s free for everybody, and available in dozens of languages. Start learning with a loved one today!

- Hadi Partovi
founder, Code.org

Indiegogo Campaign to Help Fund Documentary on Tech Gender Gap

Indiegogo Campaign to Help Fund Documentary on Tech Gender Gap

Documentary filmmakers exploring the lack of female and minority software engineers today launched an Indiegogo campaign to raise funds for their upcoming film, “CODE: Debugging the Gender Gap.”

“We’re taking a deep look at the cultural and sociological factors at play, and we’re going a step farther and asking the question, ‘what would society gain from having more women code?’”

CODE is a…

View On WordPress

AT&T made a $1 million contribution to Girls Who Code, a nonprofit that seeks to bridge the gender gap in technology by equipping girls with computing skills. The donation will help the organization expand beyond its current outposts in five U.S. states.

Since their start in 2012, 3,000 girls have graduated from Girls Who Code clubs and camps across the country, with 95 percent of the students wanting to major in computer science in college. “It has made becoming a computer scientist seem possible,” said Anah Lewi, one of the graduates.

During the organization’s summer program, high school girls learned to code, worked on programming robots and met with women working in technology and engineering.

Read more via The Daily Beast.


Brave New Moon

Creative coding project by Thomas Lhoest is a virtual 3D generative sculpture in your browser that restarts afresh at the beginning of a moon cycle:

Brave New Moon is a vain ritual.

Every new moon, this app generates a random sculpture model, saves it on your browser (LocalStorage), starts to build a sculpture from this model, builds it day after day, then brutally destroys it on the next new moon, generates a new one, again and again…

Try it yourself here

So I know a lot of my followers are in Transition Year in Ireland and basically there are a few websites I’ve been using to learn subjects and improve on in subjects that aren’t really being done in school so I wouldn’t call this a masterpost but these are some pretty great links:

Add to this if you want