213 karma · joined December 31, 2008
For adoption, the learning curve is very important, and the beginning of this curve is sensible defaults (like Python and Rails), so you can make the common tasks happen fast, while having the power to also do the complex low-level fine-tuning that is less common (and not the first thing you do). There's a learning curve (per user), but also a building curve (per project).
However, common is an attribute of usage, and not intrinsic to the API. You need a lot of users before you know what is common. And, over time, as the world changes, the common tasks change (eg. there are many different internet protocols, but http turned out to be most common).
Is it possible to have a "clear but poorly-defined goal", or are you having a joke? "Fun" is an emergent property - recognizable, measurable but the creation isn't formalizable (though BTW your link mentioned something about game grammars...)
I'm just surprised that (it seems) you can do statement-based code in lisp. I thought it all had to be expressions. This feels like cheating. BTW: I can see that progn/do syntactically produce expressions, but the value of all but the last one are thrown away - similar to python in that respect. This seems against the spirit of expressions.
For a product company, 37Signals does a lot of blogging, conferences, a book and so on. I think the guys are good at this, and they really enjoy it. It makes me think that, in a way, 37SIgnals is really an educational/PR company, that happens to make money from their software. If you want something like what they make, you'll need to pay someone to host it - why not them, since they are nice guys?
It seems to me a way to sneak statements into the language. Or does lisp have something like that as well?
He doesn't mention that you might learn something from each attempt (if you stay in the same industry).
I think your success is (virtually) inevitable - unless there's something that you must learn that you won't learn.
Makes sense, it's the only multi-billion dollar business based on an algorithm.
Patent-based businesses seem to encourage fundamental technical research. Consider: Bell Labs (Alexander Graham Bell's telegraphy patent); PARC (Xerography patent); IBM research (many patents).
Easy enough to shade the sides (perhaps with a reflective surface, so as to not waste the light). Of course, being more visible makes it better - just doesn't look as cool (IMO).
But also, it doesn't give a sense of the space around the bike. That was the main idea I got from the original article, of a projected "lane" - it's not to make the bike more visible, but to display a cushion of space around it (a territory), so cars don't drive too close.
2. I meant it was illegal what I do (which is to ride between the parked cars and single lane of the road. Also a danger of a parked car's doors opening). I agree with your other points (esp route taken!)
Easy enough to shade the sides (perhaps with a reflective surface, so as to not waste the light). Of course, being more visible makes it better - just doesn't look as cool (IMO).
But also, it doesn't give a sense of the space around the bike. That was the main idea I got from the original article, of a projected "lane" - it's not to make the bike more visible, but to display a cushion of space around it (a territory), so cars don't drive too close.
2. I meant it was illegal what I do (which is to ride between the parked cars and single lane of the road. Also a danger of a parked car's doors opening. I agree with your other points (esp route taken!)
:map ZA <Esc>:w<CR>
I find the vim help very intimidating (with every possible feature and then some), but it turns out to be really simple to create your own commands. I also made ctrl-N go to the next file (ctrl-P for the previous file), because I do that a lot.If he could permit himself to start over several times, I can too.
Thinking of my own experience (I've ridden daily for a couple of years), the only two close-calls I've had are from a car that's in front of me, when it suddenly sees a parking spot, and swerves across, almost side-swiping me.
I could probably avoid this by riding in a full car lane, instead of to the left of it (between the lane and parking spaces), but it seems wasteful to take up a whole car lane (and I can't pass cars then). Also, what I'm doing may be illegal, as it's not marked as a bike lane.
(Bonus: fog/glow is more visible when raining.)
One barrier for me is that the cleanness of the code arguably doesn't matter in a project like this, so the time feels wasted. But, in reality, I'm creating sample code, that I do come back to later, to see how I did things. Like a personal text book. When the code is ugly and hard to follow, it is less useful as sample code. Thinking of it as sample code removes that barrier (that cleanness doesn't matter).
I've started to spend time cleaning up code, and uncluttering it, as I go - but I find it takes an extraordinary amount of time...
Another projection idea is a downward-facing rear light - perhaps angled so that the light reflected from the road hits the eyes of the drivers behind?
But won't competition take care of that... if the market really does care about those metrics?
Data point one: the rise of the netbook. They have slower, single-core processors, and are fast enough for most of the mainstream stuff people want to do: web, email, word-processing. Netbooks are getting faster (and this is needed for some webapps e.g. that musical score webapp is a little sluggish on my eee PC). But what is more important in a netbook is weight and battery life - that is what is needed. Performance isn't needed.
Data point two: even in video games, the wii console is the most successful of the present batch. It is unusually low powered even for single-core (and in coincidence, one of its competitors, the PS3, is multi-core). Performance isn't needed.
Data point three (an exception): some applications do need performance (weather simulation; google server farms), but these are already multi-core, and have been for a long time (the core used to be in separate computers, but the app was multi-core).
I'm arguing that most of the mainstream market can't absorb faster performance (and the high-performance market has already solved the problem).
Ripe for Disruption?: It's common for whole industries to overshoot what is needed, in terms of the particular metric they have worked at improving for years. Their corporate organization, product development and marketing are based on improving that aspect, and selling that aspect. When the basis of competition shifts, you get a new set of leaders, because the old ones can't adapt.
The wire format doesn't affect this approach - it could be JSON or XML. However, JSON and data structures maps cleanly, because it's an object format already. To do the same thing with XML requires an extra level, and you get a meta-format like xmlrpc, which is pretty ugly.
So I think you're talking about a kind of object serialization, with object-to-object data binding.
XML Schema is an attempt to factor out the grammar of the data structures, so that they can be checked automatically, and other grammar-based tasks can be automated. I think this is a worthy quest, succeed or fail. One specific failing we discussed was error messages.
I'm trying to grasp your point of view, and presenting what I think it is, so you tell me if I got it right or not (assuming you see this reply).
There's the favourite DOS->unix:
alias cd..="cd .."How about a lighted fog beneath the bike (like those under some hotted up street cars), giving it the same visual footprint, and territory, as a car?
http://www.noteflight.com/scores/view/2177201ae448ab894682b1...
But I think you have to leave yourself logged in to do it.
But too hard to start using. It took me 10-15mins to discover how to enter a note: you have to click where the cursor is. And not just where the cursor is, but slightly to the right... I had to read the help, and it wasn't even the first thing!
Entering a note is the very first thing a user wants to do. For user adoption (which is the what you need when starting), you have to make that first thing incredibly easy: click somewhere, get a note. All the additional sophistication should be additional to that. (IMO)
I think they are aiming at existing users of existing tools. But I think that's too hard - they can't beat desktop applications on their own turf. There's a lot of sophistication in the tool - so it's like they are aiming at what the professional applications do. These tools have competed and evolved to meet the needs of professional composers. However, I think a web tool is really in a different market, with a different proposition. They should first focus on where they strong. It's Writely vs. Word.
Music layout is hard, and their's gets messy when it's more complex (looking at Moonlight Sonata).
The fact that you can't publish to the web, or share (except with people who are already members) makes it harder to get started. Maybe not allow the whole score to be viewed without an account, but a tempter, to entice get people to sign up for the rest. As it is, there's little evidence that it's worth signing up. But maybe focusing on dedicated users (not casual) will work? As I said, it's pretty niche.