StreamFocus - An Organizational Power Tool Waiting To Be Unleashed

April 16th, 2008

I’ve been beta testing a new project management software tool called StreamFocus, and unlike most other betas that are either nice or just plain lame and it’s easy to dismiss them. Also, the other products are consumer apps and therefore a) simple and b) extremely streamlined for easy, intuitive use. StreamFocus, unfortunately, is neither of those. So why am I sitting here still writing about it? Because it looks like it will make lots of money for very wealthy customers.

Read the rest of this entry »

Chicago Lisp Meeting, Friday 4/18

April 15th, 2008

Announcing the next Chicago Lisp meeting!

WHEN: this Friday, April 18th at 7pm.

WHERE: 210 S. Clark St, 24th floor (map). Sign in at the front desk, take the elevator to the 24th floor. There is only one suite there and the door will be held open.

WHAT:

  • John Quigley will be giving a presentation on continuations Alan Kay’s Fundamentals of New Computing Initiative (see Viewpoints Research Institute, their NSF proposal, and their one year progress report) (notes will be posted afterwards).
  • Soliciting Lightning Talk topics for next meeting (5/16). Grant Rettke has already signed up for “A Simple Object System Using Macros”. 2-3 more would be nice.
  • Some (short) planning for future meetings, Intro to Lisp workshop, etc
  • Ideas for a project we could hack together

AFTER: Food and drinks. Possibly at Elephant & Castle Pub.

We had 7 people last month, let’s try for more!

If you’d like to hear about future meetings, please subscribe to the chicago-lisp mailing list or send me your email address and I’ll add you to the invite list at Coordinatr.com.

Taking a Roger Clemens Retirement from Startups

April 9th, 2008

A while ago I announced that I was starting my own internet startup. Since then, I’ve gotten nothing done. Well, not nothing, but nothing that resembles a startup. I did register a domain, setup WordPress, and write a few blog posts, but that was it. And then in a WordPress accident while backing up the database for this blog, I wiped out the blog posts I had written for the startup blog, so now it just links back here. So, since I didn’t have any code or users, and I now no longer even have a blog, I’m pronouncing SmallPunch dead (for now).

So if I didn’t lose much, why quit? A couple reasons.

First, determination and focus are two of the most important requirements to succeed at a startup, especially for one as time constrained as myself (part-time single founder). Right now because of my family situation (2nd baby due any day now), my focus is definitely not on a startup. All of my attention is focused on balancing home needs with work needs and there’s very little time for anything else.

Second, while a part-time founder might succeed with regular, predictable time periods to work, my available time is neither regular nor predictable. I take what I can get, but that’s hardly conducive to getting into the right mindset or the flow. Third, I still feel like I have some infrastructure and technology issues to work out. I’m sticking with Lisp because I think it will help me get the most done in the alloted time I have (I don’t see my free time increasing greatly anytime in the next 18 years), but that carries some costs. I’m still figuring out which CL implementation to go with. Since I lack a decent computer that I can run Linux on, I’m going with CLisp, but I’m a little weary of its lack of threading since I will be doing a web app.

Third, I’m planning on using Weblocks as my web framework, but since it’s at something like version 0.1, it’s only been tested and run on SBCL, so who knows what problems I’d run into using it on CLisp. These are not insurmountable issues, but I do need to take the time to hack them out, and it’s hard to do a good job at that with the psychic weight of a startup hanging over my head.

Fourth, I’d really like to have someone to work with. That’s part of my motive for starting the Chicago Lisp User Group and contributing to Hacker News. I think I might be able to succeed on my own, but for motivation and load-sharing purposes, a co-founder would be really nice. But I want it to be someone I know and am comfortable working with, so I can’t just whip that together.

Here’s what I have accomplished in that time frame:

I’m not exactly lounging! So why do I call it a “Roger Clemens Retirement”? The man retired in 2003, un-retired in 2004 without missing a single game, threatened retirement in 2005 but accepted a generous raise, retired in early 2006 only to un-retire again in the middle of the season, and then retired for the last (?) time in 2007. Long story short, just because he was “out of the game” didn’t really mean he was out of the game. Just like me.

Can YCombinator Be Beaten At Its Own Game?

April 8th, 2008

Fred Wilson at Union Square Ventures just wrote a post called “Can The Y Combinator Idea Turn Into A Movement?” that set of an interesting discussion at Hacker News. He says that because you can start a company for a small amount of money, investors should back many companies with a small investment instead of a few companies with a large investment ($25,000 * 10 instead of $250,000 * 1). If you have read Paul Graham, know anything about YCombinator, or even just know some basic economics (my current mental hobby horse), this isn’t news or even particularly insightful. It was the discussion around the post that raised some interesting points.

Read the rest of this entry »

Using Coordinatr to Run A User Group

April 3rd, 2008

[This is another post where I was writing a book-length comment somewhere and thought I'd just publish it in case anyone else cared. I should keep stats on things like this].

About a month ago, a new startup called Coordinatr announced their launch on Hacker News. I didn’t try it out at the time but I filed it in my mind for later use. Now that I’m the DFGL (de facto group leader) for the new Chicago Lisp User Group, I thought it would be a great way to cut down on the bajillion emails it takes to organize a group of people (combinatorial explosion is not an organizer’s friend). I gave Coordinatr a spin and was quite pleased with the results. I also reread the comments in the discussion on HN and found that the team had incorporated much of the feedback given. Then, when I offered some feedback of my own using their slick collapsible feedback sidebar, I got a response from the team within less than 10 minutes. There are a few rough edges left, but these guys truly care about doing a good job and who knows, half these things might be fixed by the time you read this!

The basic pitch for Coordinatr is “Easy planning for spontaneous events”. These are the “What should we do this weekend?”, “Where should we go to dinner?” type discussions that everyone hates and are irritating enough that it’s almost not worth hanging out with your friends because no one can make a decision. It’s based on real life, so it includes SMS notification for a variety of events (lots of people aren’t always checking email and not everyone has an iPhone). I’ve just setup a few events for the Chicago Lisp User Group that I’m now organizing and setup was a snap. The event is a few weeks away so I haven’t seen it in action yet, but I’ll follow up when I do.

Read the rest of this entry »

Recap of 3/21 Chicago Lisp Meeting

April 3rd, 2008

Happy belated Chicago Lisp news!

Two weeks ago (March 21st), we had our first meeting to bootstrap the new Chicago Lisp User Group.  We had 7 people show up for the initial meeting:

Craig Luddington
Eli Naeher
Victor Kryukov
John Quigley
Shaneal Manek
Dave Morrow
Peter Christensen

Items Covered:

Future meetings - We decided on monthly meetings, the third Friday of every month, 7pm.  The next meeting will be Friday, April 18th where John Q. will give a presentation on continuations.  The May meeting will have several lightning presentations - submissions welcome (please post a message on the Coordinatr event)!  All but one of the attendees live or work in the city of Chicago, so we decided that all meetings will be held in Chicago.

Meeting locations - The first meeting was held at Ambrosia Cafe (1963 N. Sheffield, Chicago, map: http://tinyurl.com/2koztz).  It was a nice place for a meeting but we’d like to find a place to meet with a projector, so presentations can be given and recorded.  Some proposed locations are the IIT Institute of Design (350 N. LaSalle St) and the Harold Washington Library (400 S. State St).  If anyone has an office or location they’d like to volunteer, please let me know.

Scope - We decided to keep the group and meeting open to the greater Lisp family - Common Lisp, Scheme, Arc, etc.  That will be the focus of the group but all are welcome to attend.  Some people expressed desire to start or adopt a project that we could work on as a group.

Name - Some people wanted a better name than “Chicago Lisp”, and who can blame them?  One nomination as “LispChics” (inspired by NYC’s Lispniks) but I thought it was false advertising (7 guys with laptops, Chics, ??).  The name is up in the air, nominations accepted.

Web Presence - John Q. owns the chicagolisp.org domain and Craig L. has a server he volunteered for use.  A project we develop could be hosted there, and I recommended a CLiki instance for group notes.  I’ve also setup a group on coordinatr.com that I’d like to try out for organizing meetings.  You should get an email soon.

The common-lisp.net chicago-lisp mailing list will still be used but only as a supplement.  The list is not great because of spam but there are a hundred or so subscribers still on the list that would have no other connection to the group.

Intro to Lisp Workshop - John Q. informed of a planned, all day workshop designed to introduce programmers to using Lisp - from installing and setting up an image to programming basics to advanced concepts.  It is planned for a Saturday in May (date TBD, location probably Institute of Design) and volunteers would be appreciated.

Coordinatr - I’ll be trying out a new site called Coordinatr.com to manage the meetings.  You can RSVP there, submit ideas for proposals, etc.  You should receive email inviting you to the first two meetings shortly after this email.  There is also a feed of new events created for this group here:  http://coordinatr.com/feeds/rss/vcwxbvdrepk2blkbtwctez .  You can get updates and reminders by email and/or SMS, but I think the RSS feed doesn’t get updated (the platform has only been out for a couple weeks).  Let me know how this works - I think it’ll be better than a zillion back and forth emails.

You can view the feed without registering at the site, but you need to register AND be invited to see the event website, RSVP, post messages, etc.  Good news is that you can invite new people to an existing event once you’ve registered.

Calendar:

Friday, April 18, 7pm: Chicago Lisp Meeting
Location TBD
Presentation on Continuations

Friday, May 16, 7pm: Chicago Lisp Meeting
Location TBD
Lightning presentations, accepting submissions

Some Saturday in May: Intro to Lisp Workshop
Location TBD (probably Institute of Design)
Getting started with Lisp, all-day event

Homework Items:

Name the Group!  Send submissions to Peter

Lightning Talk Proposals for May 16 meeting

Locations for future meetings - 3rd Friday of the month, 7pm, ~10 people, preferably with wireless access and a projector.  If you have a place, email Peter

Feedback on using Coordinator for managing events

Thanks,
Peter Christensen
DFGL (de facto group leader)

Tasteful Monetization and the Passionate Developer Community

March 31st, 2008

It’s impossible to read about blogging without hearing talk about “monetization” - making money off the attention your blog gets. This isn’t a problem for most writers, since nobody reads their blog. I’m no blog celebrity, but at this point, I’ve had 4 or 5 articles that were read by several thousand people, so I can’t really say that nobody reads me. I already have a goal to use this blog to write my thoughts and experiences and meet new interesting people, so now I’m tempted to try to make some hosting money, book money, or gadget money while I’m at it. However, I don’t want this to end up looking up like a Nascar uniform, so I have been on the lookout for tasteful ways to monetize.

Fortunately, I’m not the only one to go through this process. Two prominent tech bloggers, Jeff “Coding Horror” Atwood and Reg “Raganwald” Braithwaite have already crossed this bridge. They use Amazon Associate links whenever they mention a book, and I like the idea so much I’ve used it since the beginning. I often recommended books anyway, and there’s no difference for the user between a regular Amazon link and an Associates link. It’s unobtrusive, easy, and useful, so it has been a no-brainer from the start. We’re nerds, we read books, it just works.

I’ve recently come across another way to monetize that supports my goals and intentions for this blog. One of the new batch of YCombinator startups, SnapTalent, is a tech job advertising network that only advertises on hand-picked sites that great developers are likely to read. I think this is a great approach. Screening ensures that the ads only appear on websites that active, passionate developers are reading, and those passionate developers are a lot more valuable than a typical clock-punching, Monster-surfing developer.

What I like about it is that it creates a market for small, smart companies to advertise on that’s actually worth their while, and it makes it easier for smart, passionate developers to find them. Big job sites like Monster and Dice have lots of jobs, but it’s a grimly representative sample of all the bad jobs out there. It would be a waste for a bright startup to advertise there because they would get a grimly representative sample of all the bad job applicants. Therefore, the best companies don’t advertise on these sites and the average gets dragged down even farther.

The alternative is for great companies and great developers to find each other through traditional networking and discovery. This works well and produces the best results, but it is limited by the size of the social networks you belong to. For instance, I don’t really know anyone in Silicon Valley, and I only know of a few small companies in Silicon Valley, so I would be at a big disadvantage if I wanted to move there for a job. Conversely, if there’s a Silicon Valley company that could really use my blend of coding, writing, personal communication, and big-picture problem solving, they wouldn’t find me because I’m in Chicago. Or for that matter, since Chicago doesn’t have a strong network of startups and tech companies, a company in Chicago might not be able to find me either. This is one of the reasons that Silicon Valley is such a big startup hub - its network of people in the startup world is big enough to actually be a useful asset, and it becomes more useful as it grows.

My hope is that SnapTalent will provide a third option. I hope the companies that advertise there have enough success that it becomes a go-to site for companies looking for great developers. I hope that enough great tech writers put the SnapTalent widget on their site that more companies advertise there (right now they’re mostly companies associated with YCombinator, which are all great companies, but only a small subset of what’s out there). Once they do, I think the ads will be seen as a useful way for smart, passionate developers to get acquainted with smart companies in a way that scales beyond the typical “Who you know” network. And even if you don’t work for or apply to these companies, just knowing who they are and what they’re products are is a good enough service worth clicking on the ads for (more people in this world need to know about AnyBots. They just do.).

So, if you have a tech blog of your own and you’ve been complimented on it, join me and SnapTalent in building up the passionate developer community by linking passionate developers to smart companies.

Polyphasic FAIL

March 19th, 2008

Polyphasic Sleep III has fallen to the forces of normal life.  More specifically, a steadily progressing family health situation demands more of my time during the day, to the point where I pretty much can’t take naps at home during until everyone’s asleep, and I’ve had to trim my time at work so tight that I can’t get even get one nap, let alone one, during the day.  The work thing was a problem even before.  I felt okay going out to my car for a half hour during lunch but I never quite found a time in the afternoon when I could sneak away.  This wasn’t a problem with my first experiment because I had a 40 minute commuter train ride each way where I could sleep.  But now that I have a driving commute, I can’t exactly sleep on the way to and fro.

That’s an important consideration for anyone considering polyphasic sleep.  For a normal weekday, you pretty much need a nap before, during, and after work, or if you get up and go straight to work, two naps during work.  I can’t do the first  one because I have to drive, and I can’t do the second because I don’t feel comfortable stepping out twice.

For anyone interested in following my polyphasic sleep experiment (Aaron and others), sorry to disappoint.  However, I’ve got a mandatory polyphasic sleep period coming up sometime in the next month when my second daughter is born.  My wife is excited for me to go back to polyphasic then so I can take care of nighttime care and feeding.  Not exactly what I had in mind, but it’s easier to do when you’re already awake then if you have to wake up for it!

Until next time …zzzzzz…zzzz……zzzzzzzz.  (Me hibernating for 7 straight hours)

Hacker vs Engineer - Know The Difference!

March 6th, 2008

Some of the most commonly used terms are often the most misunderstood and least agreed upon. One example of this is the difference between a startup and a business. Now I’m no expert (having run neither of them), but I do read a lot and I pay $8 a month for hosting, so I can pretend to be! Here are my definitions for startup and business (again lifted from a Hacker News comment I made):

Startup: This is when your revenues can’t support the company and its employees at a standard they would expect. This could mean a lot of things, for instance

  • You’re self funding but doing the ramen/living on a friend’s couch/wifi-freeloading super cheapo route. Maybe you’re making a profit but you don’t want to live like this forever.
  • You’re living off of investment money unrelated to what your startup is producing: angel/VC money, cash from a prior successful exit, student loans, day job money, etc.

The key thing is that your idea and execution are currently unproven. You should be getting noticeably better each day as you improve your technology, your product, your marketing, your brand, your sales cycle, etc, (all these things create wealth but not necessarily money), trying to find the right combination of those things that lead to market acceptance and self-sustaining revenues. Or your goal might not be self-sustaining revenues but to create a product or technology or business that will be bought by another, larger company.

Business: A business is funded by its customers and revenues, and it has found a successful niche in the market. Once you get to this point, some of the pressure is off, although your niche and success is a moving target and you need to continue working and executing in order to get knocked out of it. There are completely different skills and personalities needed to nurture and grow a successful business/product as opposed to developing a new one and finding a market for it.

Read the rest of this entry »

How To Learn Lisp

March 3rd, 2008

In the spirit of my last post, I decided to turn one of my favorite long comments on Hacker News into a blog post in the hopes that someone would find it useful. There was a good discussion last week about how to learn Lisp, and since I was a little late to the thread, most of the things I wanted to say had already been said. So, in an effort to pull it all together, I made a nice long summary comment, which is reproduced and cleaned up below.

Before I started learning Lisp, I have (in reverse chronological order) worked with .Net for several years, disliked C++ in college, loved Pascal in high school, dabbled in (Assembly?) programming my TI-82 graphing calculator, and started with Hypercard. Here’s my advice based on ~1 year of part-time Lisp education.

  • To learn “lispiness”, functional programming, and get a feel for the computational approach to programming, read The Little Schemer and The Seasoned Schemer. Also, use the resources for the MIT Intro course Structure and Interpretation of Computer Programs. Watch the video lectures (30 well spent hours) and if you’re ambitions, read the book (Amazon). Doing these things will help keep you from writing PHP in Lisp.
  • To put it into practical perspective and learn the nuts and bolts of modern common Lisp, read Practical Common Lisp (Amazon).
  • If you read PCL, you will run into Emacs and SLIME (the generally preferred [NO FLAMES, PLEASE. I KNOW VI IS AWESOME TOO] open source way to edit Lisp files). I wrote some resources to help with that:
  • I’m surprised no one has mentioned PAIP (Peter Norvig’s Paradigms of Artificial Intelligence Programming). Probably because there’s no free version online and it’s a pricey book. I got it for myself for Christmas and it’s well worth the price. It’s half AI book, half tutorial on Lisp programming and Lisp style. It’s a good read with lots of example programs written in good Lisp Style.

There are three hurdles people usually run into when learning Lisp:

  1. The language looks different - this goes away with practice and familiarity. It starts looking normal fast. The parentheses are a bit tough to manage unless you use a capable editor, which leads to:
  2. Emacs is different - really powerful, fun to use, but it takes investment in learning. It’s really tempting to quit when starting, but worth getting over the hump. Once you do that:
  3. The way of thinking is different in Lisp - Lisp seems a little awkward to use until you get (don’t need to master them, just get the idea) the following ideas: 1) code can be manipulated as data because the syntax is so simple, 2) creating your own syntax (using macros - code that writes code) means that you can express your program in a way that closely matches the problem you’re trying to solve. Some good articles to help get these points are:
    1. The Nature of Lisp
    2. Functional Programming For The Rest of Us

Don’t worry if you don’t get these “big picture” things at first, they click at some point and everything makes a lot more sense. You can speed that up by putting a lot more Lisp in your head in the meantime.

Does anyone have any more tips on learning Lisp?

Also: read comments on this post at comp.lang.lisp, reddit, Hacker News