• Instruction vs. Mentorship

    At Bloc, we use the word “apprenticeship” a lot. It’s on our landing pages and in our emails, but we never truly explain what we mean and why we use that word. I’d like to explain. There are fundamentally two methods of teaching: instruction and mentorship. Instruction A teacher who instructs is someone who says…More

  • Stop translating

    If I may draw an arbitrary line in our use of computers, I’d suggest we either: 1. Attempt to use computers as an extension of our minds — that is, we want to model what’s in our head on the machine 2. Translate our ideas into something the computer can understand As my friend Hani…More

  • Generalization vs. specialization in software

    In societies, there are always generalists and specialists. Generalists can do lots of different things with a mediocre level of quality, sometimes surprisingly well, while specialists utterly excel at one particular thing. Suppose we had a simple distributed system that accomplishes the completion of different kinds of jobs. The way we usually build these is…More

  • Text Programming

    I was thinking about this last night, and how the spreadsheet is a really good example of this done correctly, and what other scenarios you could make a similar program for. For example, doing text manipulation isn’t easy on a spreadsheet — say someone emails you a massive, comma-separated list of email addresses. It would…More

  • On Alan Kay’s history of Smalltalk

    Read it here He keeps referring to programs’ size in pages, rather than bytes or any capacity. It means he thought about programs in terms of their length, rather than how much space they’d require on the machine. I think he’s decoupling a program’s “length”, as a human perceives it in his head, from a…More

  • Concept space

    Englebart used the term “concept space”, and I think it’s a good term. Version control, for example, is a relic of the past. It assumes we’re editing files, and that we’re editing them in isolation. What if we were editing objects in memory, or in “concept space”? How could we work without stepping on each…More

  • A thought about learning to program

    I’ve thought this for some time, but I want to get it in writing now. I believe Bloc’s mission is twofold, or at least we have a two-fold opportunity to really change the world. First, our stated goal is to change education. We’ve started with web development, because that’s what we know. Along the way,…More

  • The Passage of Time

    I read the following recently in a Kurt Vonnegut novella: “After watching four rural hours inch by, he had concluded that the clocks of the farm were lubricated with molasses, and that noon was still a century away in terms of time as he had known it in the city.” I vividly understand this.  I…More

  • HTTP as a file system

    I want to be able to treat URIs as files in unix: $ cat /http/someblog.com/post/48 There are all sorts of implications here. In Unix, you can read and write files. You can also **execute** files: $ /http/some_music_site my_mp3_file.mp3 Arguments could be passed as byte streams or whatever is simplest (or most appropriate for the data…More

  • Benjamin Franklin’s Schedule

    Here are two images of Benjamin Franklin’s schedule:   I want a web app (or something) that lets me construct similar daily routines.  And I want it to integrate with my Calendar.More

  • Zero Editorial

    I recently clicked a link on Hacker News entitled “There’s a new open source cloud in town. Meet Apache CloudStack”. It was a link to GigaOM **about** Cloudstack. So then I did a google search for “apache cloudstack”: ![screenshot](http://i.imgur.com/KbW2o.png) Not a single non-blogspam link. It turns out, I wanted [cloudstack.org](http://www.cloudstack.org/). Who knew. I’m going to…More

  • Intranet Blog Sphere

    I want a blog circle (remember web rings?) that only allows the members to post AND read. No public access. For example, a company or student group. Some things are more free-form than todo lists, calendars, agendas, and roadmaps. There needs to be a private place for ideas.More

  • Anonymous Transactions

    With the advent of BitCoin (and *cough* some online marketplaces), it’s clear to me that in the future, these kinds of things might be more common. When most homes still had dial-up, YouTube beat everyone by predicting that broadband become the norm. They built a video streaming service before most people could even use it.…More

  • Transactions as a service

    Database transactions are pretty awesome.  They’re useful in all sorts of scenarios, from concurrency to exception handling.  Software-Transactional-Memory is similarly awesome — transactions for memory. I want transactions for everything. Imagine doing this in the shell: $ begin transaction $ echo “volatile value” > some_file.txt $ git add . && git commit -m “volatile commit”…More

  • I learned Java without a computer

    Really. I can recall being with my family in southern ohio on a pontoon boat, on a lake in the woods.  There was a strict “no technology” policy enforced ruthlessly by my parents.  Of course I hated it, and the next best thing I was allowed to do was bring my programming books with me.…More

  • Emotions

    Emotions feel physical. They feel like concrete, intrinsic things of their own accord. “Feeling” is something every human being on the planet can relate to. Take catharsis, for example. It is a very real phenomenon. Crying literally seems to “release” emotions. Sadness, stress, and the like are literally made up, on the inside, of hormones…More

  • Beautiful Technology

    “The products suck!  There’s no sex in them anymore!” – Steve Jobs, just before his return to Apple (1997) Why is Apple the only company that makes technology that doesn’t look like it was crafted by robots?  There are several common answers. 1) They control the entire supply chain and are vertically integrated.  This is…More

  • A thought on compilers

    Compilers are very much like life in that the basic structure is stacks of automata, each consuming the input of its parents or children and producing something that us subsequently consumed by the same components. Stacks and layers of simple components can produce rock solid results, and rock solid complex results. If complexity is simple…More

  • Programming Like Nature

    I want to study more nature. I really enjoy how the mechanisms of nature seem to solve problems at every level. Organisms have evolved a staggering amount of complexity, but with incredibly simple underpinnings. Respiration, for example, is pretty simple from a high level, but diving into how it works in depth proves quite complicated.…More