Archive for the ‘Ideas’ Category

Integration is the Sincerest Form of Flattery

Saturday, April 7th, 2007

A while ago, Paul Graham blogged about not competing with Google. He mentioned how Google Calendar crushed other calendering apps because of ?Google Calendar\’s integration with Gmail. The Kikos can\’t very well write their own Gmail to compete.? And he actually concludes that ?the best solution for most startup founders would probably be to stay out of Google\’s way.?

I think he\’s right that integration was a major factor, but wrong in his evaluation of how to survive. Kiko doesn\’t need to write their own mail app to integrate with, they just need some mail app to integrate with. All of these ?Web 2.0? guys need to think a bit more about the Unix idea of ?small, sharp tools?, and not re-implement social networking with each new feature.

I\’ve been toying with a little Web app of my own and while I knew it needed some social networking, I also knew that I wasn\’t going to waste time writing it. I\’m going to piggy-back on Facebook. They have a nice API that other sites (like Bill Monk) are already capitalizing on. I\’m not going to write my own e-commerce engine, either, I\’m just going to use Amazon\’s APIs.

To a startup, time is precious. You can\’t throw away months re-implementing something that isn\’t pushing boundaries. You just need to find someone who already did, and hop on for the ride. Don\’t get caught in the pride of thinking you can do it better than them. If that\’s true, you can prove it once you have a couple dozen employees and pretty solid ground, not when you need to make every hour count.

So, please, create a tool, give it a good API, and let the mashups take over. Being connected to everything is your best chance of survival.

Lisp Packages are Domains

Sunday, May 7th, 2006

In C2:CommonLisp, or any language that uses C2:GenericFunction s instead of class encapsulation, the package actually defines a domain. By domain, I mean a vocabulary in which each word has only one meaning.

Since C2:CommonLisp only allows for a single function signature within each package, this meaning for the word must be well-defined.

Often, the same concepts appear in multiple domains. Sometimes they keep the same names and it’s easy to :use a package in order to extend that domain with your own. However, sometimes the concepts carry over, but the vocabulary doesn’t. Currently that means that for each word in the vocabulary, you need to do this:

sh: /home/pfeilgm/bin/enscript: No such file or directory

Of course, defalias is a popular utility to make this renaming easier, but it\’s not part of the standard. I wonder if this could be made even simpler with an idea stolen from Eiffel: feature renaming:

sh: /home/pfeilgm/bin/enscript: No such file or directory

This makes the domain translation explicit.

Thinking of packages as domains may help limit the naming conflicts that arise in C2:GenericFunction-based OO systems, since people often try to use the packages much like Java packages, rather than like Perlpackages (a much closer, albeit single-dispatch, analogue).

What I\’m playing with at home

Thursday, March 16th, 2006

This is an email I sent out to a few friends, talking about what we\’re doing with our time, and I realized that it\’s exactly the sort of thing I should be posting.

There are a number of models of computation, the most famous being the Turing machine and the λ-calculus (which are equivalent, but λ-calculus is prettier). They\’re both pretty old, dating from the 40s and 50s respectively. Of course, they\’ve pretty well stood the test of time. Two of the more modern ones that have held my interest are the ρ-calculus and the π-calculus. Both of these encode the λ-calculus very easily (meaning anything you can do with λ-calculus you can do with them).


Multiple Paradigms

Wednesday, March 8th, 2006

I\’ve got a few things floating around in my brain, making some odd connections. I recently watched Richard Dawkins\’ The Root of All Evil? where he discusses many of the problems with religion. And today I had a discussion with someone at work who didn\’t see why I would do a project in Lisp. We discussed a few different reasons, but there\’s one in particular I want to focus on, and I think it ties in with \”the religion problem\”.


The Language Game

Friday, February 24th, 2006

Those of you who know me well, may know of my aborted attempt at language design. While working on it, I hit what I call the \”language design singularity\” — a point at which you realize you\’re headed down the wrong path, and make that jump to the right one. I imagine a lot of would-be language designers hit the singularity. People get interested in design because they recognize the problems with the current system, and seek to improve the situation. At this point, their path begins to move closer to the singularity, eventually there is a jump, like when a metal rod slides close enough to a magnet, and you find yourself in a world where your problems don\’t exist.

For me, it happened like this … (more…)

Reading Update

Monday, November 14th, 2005

I haven\’t gotten as far into the Topology and Algebra as I had been hoping to. Although, my focus has definitely helped a lot with my progress in general. I\’ve read Nietzsche\’s Why I am So Wise, I Think, Therefore I Laugh by John Allen Paulos, most of Thomas Paine\’s Common Sense, and getting a good way into Machine Learning.

Actually, seeing that it\’s been a month, I\’m now less happy with my progress. I\’ve definitely been devoting much less time to my reading over the past few years. Gotta step it up.

Approaching AI

Sunday, November 13th, 2005

You know, I had a silly little thought about AI the other day … People talk about software that can write music, hold a conversation (the Turing Test), or some other creative task being the \”real\” test for AI. But really, a person wrote the program that wrote the music, so you really want to say AI has succeeded when it writes a program that can write programs that make music. So, at this level, we now have programming being the \”real\” test. Of course, we know it\’s creative, but it\’s not really seen that way. But, even if we write a program that writes music-writing programs, we\’re still acting at one level above that program. So, we need to write a program that can write programs that will generate arbitrary levels of other programs and eventually spit out a music-writing program. Of course, then we\’re writing programs that do this arbitrary nesting, so we have to write programs that do arbitrary nesting to show that the AI is real. After this, it gets a bit recursive …


The Statistical Inquirer

Monday, October 24th, 2005

Woah, I can\’t believe I haven\’t published this one. Just noticed it languishing in the backlog.

Combining ideas from Edward Tufte and John Allen Paulos, I thought it\’d be a good idea to create a statistical supplement to the newspaper. Which newspaper? All of them. The supplement would be organized like a newspaper, but would have only statistics. It\’s not meant to replace a paper, but to fill in the blanks that are always left in stories. Of course, not every story can be covered, but sports, important national and world events, etc. can all be handled quite well. Each paper may leave out different pieces of the puzzle, and this supplement will help to fill them in for the people who are interested in seeing the numbers.

Ideally, it seems like this could be an insert included with the paper. I definitely want it to be printed. The Web is so coarse, graphically. One of the primary issues will be how to keep it up-to-date with the daily papers. Maybe it\’s a weekly supplement?

Wouldn\’t it be nice to open your newspaper and have a little sheet to keep at hand so that when you ask yourself \”3,000 people died? Out of how many?\” you have somewhere to look?

I wrote a Common Lisp sparklines library. Maybe I can tie it in with cl-typesetting, and make something from there.

Creative Inertia

Saturday, August 13th, 2005

I have a lot of ideas. I like to think that they\’re Good Ideas. Not necessarily all of them, but I can think of one or two that — with a little effort — would allow me to retire in a year. Retire with money, plenty of money. So, the question is: why have I not acted on any of them?

Is it a fear of failure? I don\’t think so. I\’m pretty content to fail at things. I don\’t mind failure as long as its result is obscurity rather than infamy. Failing by running a large corporation into the ground would bother me. Failure by not getting anyone interested in my super-cool invention would not.

I think the real reason is more about how I\’ve never had to work at anything. I\’m moderately successful — a more-than-competent employee in a job I really enjoy. My life has no hardship in it, nothing to overcome. \”Failing\” at college, \”failing\” at being a professional musician; these things haven\’t bothered me. With close to zero effort on my part, I make a salary that is well above the 90th percentile.

So, I can\’t complain. I do better than most. But I know this is only a fraction of my potential. I know this because my head flows with ideas, and I put no effort into them. Even if they all fail completely, they won\’t degrade my current situation. They can only improve things for me.

I have a severe lack of focus. I need to deal with that somehow. Part of the problem, as I mentioned above, is that I haven\’t needed focus to get where I am. Another part is that I have so many ideas, that picking one to focus on is extremely difficult. Also, maybe I have ADHD or some crap — who knows?

I definitely have a bit of a prioritized list, but the things with the biggest potential payoff also have a higher barrier to completion (surprise, surprise). And when I do work on something, I end up stopping somewhere around the 90% point … the \”proof-of-concept\” is done, and it never gets to where it\’s generally usable.

Anyway, this is just rambling. Trying to figure out how to improve my focus, and actually follow through with some of these ideas. You\’ll know if I manage to….

Wiki Wiki Bo-Bliki

Monday, April 4th, 2005

I might turn my blog into more of a Martin Fowler-esque Bliki. I don\’t plan to take it quite as far as him, though. Mainly, I want my blog to easily link into my (and others\’) wiki. Sure, I can do this now, but it\’s a pain. Typing LispLanguage or WardsWiki:SocialProblemsOfLisp should be enough to create a link into the wiki. And the wiki should be able to link back to blog entries (this part is really simple, as I can just make the blog URL some other InterWiki link).

The easy question is: should I write a WordPress plug-in now (or probably just download one), or move to a different blog before putting it together? I\’m pretty damned lazy when it comes to admin-style stuff. I\’m likely to just leave things as they are and find a plug-in. The harder question is: what\’s the point?


Games with Handicap Systems

Sunday, April 3rd, 2005

I\’ve been thinking recently about how to get kids involved with things they might not be interested in. I wanted to make this a more involved post, but I have to remember that blogs are all about interaction and refinement, so we\’ll start with what I\’ve got.

So, anyway, games seem to be an engaging way to get kids involved. But you have to be careful. If the game is unbalanced, it can actually be a deterrent for the kid. Now, you probably (if you know me) think I\’m trying to get kids to be more engaged in things like math and history or whatever, and build educational games. Actually, I\’m more concerned about physical games and sports. So, I\’m going to look at it from that angle.


What\’s the Matter with Wiki?

Saturday, March 12th, 2005

I love wiki for so many reasons. Not the least of which is the simplicity of its markup. I mean, you want some bold text? No need to write <strong>bold</strong>, all you have to write is … well, it depends on your wiki. Some of them (including the original WikiWikiWeb) use \’\'\’bold\’\'\’, others **bold** and still others *bold*. There\’s definitely an issue with consistency here.

Wiki was invented in 1995, well after things like email and IRC and other digital communication systems. So, why invent a new markup? Had Ward not noticed the prevalence of things like _italics_ and *bold* in these media? Or is there some parallel community where apostrophes were used for such things that I was just never a part of? Or was it simply a matter of being easy to parse, since \’\'\’ was something you never saw otherwise?