Posted in December 2007

SimpleDB aka why Relations are so 90′s

I’m not really going to rant against relational databases, but this is more thinking about why technologies like CouchDB and SimpleDB are useful.

Some quick reference note:

Many things can be said about databases but it’s the problem space that they are trying to tackle.  If you look at applications like Wikipedia you have to wonder why you need a database to manage the content.  Think about the objects that wikipedia manages:

  • Page content
  • User
  • Page permissions
  • Edit history
  • Inter page links
  • … yes there’s a whole bunch more tables in MediaWiki …

Lets think about this for a second here, for account creation or other user oriented activites you need a transactional database to make sure your user objects are up to date — when you create an account you really want to have a single account created and active.  When you edit a page, you personally want to see the edits but if it takes 10 minutes for the world to see the edit’s it’s probably not a big deal.  Though of course if somebody else attempts to edit, you want to make sure they’ve got the edits out..

..put this down for two days… posting just to mark the links for posterity…

Programming for kids?

Just got done reading Jason Fry’s WSJ article about TV shows for kids, where he discusses Magic School Bus (From PET to Net).  The really thought provoking part is his remising about the commodore PET.  We all wrote programs like this when we were kids.

10 PRINT ‘JASON IS GREAT’
20 GOTO 10
RUN

My personal favorite on the PET was ASCII art graphics to make rocket ships with flames (*** patterns). 

The real thinking part is what about modern computers can make kids have the same sense of discovery that many of us had as kids…  I worry that most kids would look at my ASCII art and wonder why it wasn’t as visually rich as their latest XBOX game.  When kids are drawing pictures of things they go from crude to fairly refined over time (depending on talent/patience/etc..)  Some of that is they start drawing from 2 years old and by the time they are able to think critically about their pictures they’ve already built the base talents. 

When it comes to computers…  by the time you’ve already had a reasonable exposure to software to have higher expectations…  So, how does one go about making software development fun for kids? 

Some of my random ideas:

  • Break out the Apple ][+ from it’s storage and just let them play.  The hard part is there is no community of other kids doing the same exploration.
  • Lego Mindstorms — it’s a cool platform.  But, I have to wonder if the visual programming (data flow model) is just too abstract.  I didn’t have any problem with Muse software’s RobotWars as a kid.
  • LOGO or BASIC — is there any good kid friendly versions of these left around?  Visual basic is way too much for a seven year old.  LOGO has the rapid discovery that’s interesting…
  • KPL, just discovered this from there website it feels like a  modern approach to LOGO/BASIC.
  • Of course there’s always the HTML/AJAX thought…  It’s available it’s something that’s easy to show off.

Other ideas, or experiences…

Tagged ,

Bad Metrics for Trends in Programming Languages

Was reading a posting about Trends in web development according to Google one section got me me thinking.  Their trends show end user behavior as it relates to popularity.   However, when I think about language popularity I think in terms of programs written or lines of code produced…   The Google trend I think is a misplaced metric. 

Specifically, when I’m writing various languages I’ve got these behaviors:

  • PHP – I’m frequently found typing the following query “php strpos” or “php call_user_func”.  Basically using “php” as a google keyword to get me to man page about the specific php function.  It’s fast and easy.
  • Perl - My man page behavior is a bit different.. it’s “perldoc -f strpos”, since perl has all of the documentation built into the system with simple command line tools to bring it forth.
  • Java – Very little of java is focused on language issues, its all about the libraries.  You’re going to be doing a query like HashMap without the Java qualification.
  • C++ – Very similar to Java – you know the language, it’s queries like “STL list iterator” or other library or feature specific bits.  Sure, once in a while I might use “C++ abstract template” but when you’re in C++ land usually the word “template” and %$(#*(#^ — that’s the current g++ error on your screen — is sufficient to get the right help
  • JavaScript - Can’t really leave it out, it is a language that’s web search centric and I do qualify my queries with JavaScript to get to the search results, but I’ve found that this isn’t very good (the pagerank for the site that has the good info is low)

That’s it, unless you do an aggregation of all of the sub-search terms I think it’s premature to use Google Trends as a valid qualification of true language trends.

Tagged ,

Web Crawler…

Thought for the day..week.. month…  I need a good web spider… 

  • grub – used by wikia (C)
  • heritrix – used by internet archive (java)
  • websphinx – random edu project (java)
  • larbin – (C++) pretty good and simple, best starting point.
Tagged

Ski Instructor Orientation

A few years ago I spent a winter taking EMT classes to become an EMT…  One idea at the time was to hang out being ski patrol, but the hours that ski patrol works is not “family friendly”.  Getting out to the mountain way early to help setup and then late to help take down, it might have been fun, but not something that fits life at the moment.

Now we’re into the 2007-2008 ski season and I’m going to do something a little more family friendly… Ski instruction.  The first step of course is getting attached to a mountain such that I can take all of the PSIA courses.  That’s how I just spent the last four days of last week.

Day 1 – 12:00 – 3:00 – Information overload, group of about 40 people sitting down to orientation and getting some general background.  Then it’s off to learn the basic procedures for the children’s center.   From 4:00 to 7:00 it was a general mountain orientation from HR (e.g. the CYA talk about harassment, discrimination, etc, etc.)

Day 2 – 9:00 – 4:00 – one full workday…  Huge amount of detail about how the children center operates, from the three year old room, the 4-6 year olds and the 7-12 year olds.  All good, but somewhere during the day my head exploded and much of the information started drifting out, so we’ll see how it goes on the first few days.

Day 3 – 9:00 – 4:00 – finally got to bring our skis to the mountain!   This was probably the best day, not only did we get a few fun runs in but the content was focused on “how a beginner sees the hill”.  It’s pretty amazing how your perspective changes as you’re skill improves.  Covered alot about adults and kids and how to teach them.

Day 4 – 9:30 – 4:00 – Shadowing… spent the day with a group of 4-6 year olds (level 2 skiers).  This really help re-enforce the bits that were learned on day 3, also got a change to talk about a whole bunch of details..