| Comments

what?! a session at oscon about generating microsoft office document formats?  has he gone mad?  that is what i wanted to know so i sat in on michael koziarski's session on this topic.

recognize the name?  you should if you are a rails developer...koz is part of the rails core team.  great guy, smart dude.  fun to listen to -- very dynamic.

anyhow, i went to this session as the description read that microsoft developers had been able to generate well formatted office documents for a long time, so why not bring some love to the open source world.  i hopped in about five minutes late to the session and didn't hear the setup, but the gist of it was the problem statement i gathered of needing to generate document formats (word, pdf, odf, xls, etc.) based on data and in the format the user chooses.  oh yeah, and through rails.

michael walked us through the research he did, citing various aspects of choices:

    • ms office apis: only on windows, com, they aren't .net developers, complicated api's, no pdf support, design changes may be challenged
    • pdf-writer: expensive design experience, no .doc conversion support
    • rich text format: archaic meta information, no .doc support, expensive design changes
    • LaTeX: see rich text format, oh an no pdf support
    • HTML: conversion utilities were horrible
    • ODF: open standard, x-plat tools, simplified design lifecycle.

guess which one won -- odf.

michael discussed the two primary problems needing to be resolved with using ODF: creation and conversion.  the creation was the simpler and required understanding of the structure of an ODF document (which is a zip file with manifests and content much like openxml docs from office 2007).  he notes that there is one folder called "Configurations2" that he has no idea what it does, but deleting it did not affect the doc :-).  although the ODF format is xml, it involves over 24 namespaces which presented some challenges in creation (i.e., why didn't they just use Builder in Ruby?) for simple elements (an image requires 4 different namespaces alone). 

after they perfected the creation mechanism, they needed conversion -- on the fly.  this proved to be surprisingly difficult.  why?  well there is no command line output in openoffice (the design tool) for creating the converted documents.  so thus, introduce UNO.  it is a bridge to openoffice for various languages -- essentially a COM interface.  but then came michael's other problem...no ruby bindings.  argh.  but there was a python one.

michael pointed out that he could have taken the time to create/finish a ruby binding, but why.  he merely had to understand the implementation of the python one and make it work.  there were issues with the python one, namely that it required X11...to be running...with a logged in user.  yikes.  because of this they had to do some re-architecting of the solution.  it sounds quite slick and echoed software/services messaging.  basically the odf docs were initially stored in amazon s3 storage.  then using amazon sqs (queuing service) another server would pull them out and do the conversion and put them back in the desired format.  michael articulated one issue with this as the amazon s3 servers are replicated across multiple servers...so when they uploaded an object from new zealand to s3, the server in northern california might request something that isn't replicated yet -- so they had to build in a retry mechanism as well.

at the end of the day their system works.  admittedly michael has some reservations of scale, but it works for the business problem at hand.  i emailed michael afterwards and asked if he considered using the odf converter for openxml that is open sourced to provide interop...not sure if that would help or not.  apparently openoffice is producing an odftoolkit as well that has "conversion" in their diagram that might be beneficial for odf development in the future.

that wrapped up day 1 for me today.  there are a few parties tonight, maybe i'll go, likely not.  stay tuned tomorrow for microsoft news at oscon as bill hilf is a part of the keynote...er i mean general session.

| Comments

okay, now in a session for php developers -- or maybe rails developers...don't know yet.

this session is from simon minnee from silverstripe, a cms solution provider.  simon quickly adds this disclaimer:

this presentation is not intended to be a language war.  he admits that he is a novice with regard to Rails versus what he's presenting, etc.  de admits, in fact, that his understanding is naive.  he says "i just thought the title would be edgy.  forgive me."

hmm...clever simon, clever -- got me in the door.

he talks about their choice using PHP over Rails:

PHPRails
gets the job doneproductive framework with lots of cool stuff
language people love to hatevery trendy
variety of hosting optionsharder to host
good NZ gov't acceptancetoo new for gov't

simon talks first about the use of the PHP5 __call() method...essentially enabling the creation of 'magic methods' that are implicitly defined.  i'm not really getting this as i can't read the code from afar and he's covering it pretty fast.  apparently the decks are available at http://silverstripe.com/rails-envy

now we're talking aggregation -- adding versioning to DataObject (as an example -- admittedly criminally oversimplified).

okay, 20 minutes later and he's done with his talk...um, wow.  no envy elimination here.  simon mentioned some stuff with defineMethods functions that i think if i had a deeper understanding of the benefits...i'm not sure this session did a service to other merits of PHP5.

| Comments

i'm trying to reach out to the author of silverlight tetris.  i don't speak spanish, but tried to post a note on the contact page, but got an error.  if anyone happens to know jose, please have him contact me (in english as i don't speak spanish).

| Comments

i'm now sitting in a session entitled "hello? is there a user in the house?" with .  amy is a user interface designer and has been around the block with regard to user centric design...something that is lacking in probably most software development processes.

here's some of my raw notes/thoughts.  if you've done user-centric design before, most of this will not be new.

creators == consumers (understand who they are building for because they are building for themselves) -- this is what makes some projects successful in the geek world -- we develop for what we want as we are the users.

lots of successful projects in open source...lots of unsuccessful.  unsuccessful because they aren't taking the user in mind.

ui design is primarily about interpretation, empathy, aesthetics and editing (most important).  how do you ensure a project makes sense: know your audience. using blogs, who is the user? author, reader, reader/author, stop-in/regular, lurker/commentor, consumers via APIs and syndication?

side note: someone is literally weaving some type of string in this session...weird...oscon is the only conference where i see this type of diversity (and people bringing their newborns).

here's some critical steps in involving the users' perspectives in design:

    • use persona for guiding your development process.  create the target users (and potential edge users).  define them well.
    • use task paths (use cases)...task paths have scenarios and goals. 
    • user interviews (subject matter experts) [what do you do now, use, when, what do you like/not, tell me about your day). 
    • observation and watching your users in their habitat. 
    • research.  look at competitiors, look at leaders in your space.
    • prototyping - use paper-based prototyping (audience member mentions DENIM).  before you write code, test some designs on paper, etc.  invest in changing drawings before you invest too much in changing code :-)

some audience members commented/questioned about changing designs of existing applications.  some good suggestions i heard:

    • gradual changes (if possible, i think in real world budgets and pointy-haired bosses this might not be easily accomplished) -- implement small, effective changes gradually rather than dump completely new experiences on the users
    • enable 'classic style' implementation.  this audience member pointed to when windows xp came out there was an option not to use the new design and get winxp but with the battleship gray user interface.

overall a good session.  i've hung around some folks that are really good at user interface/experience design and felt that i've already absorbed this information -- but it was clearly a good presentation solidifying that concept as well as it looked like a lot of people hadn't used it before.

| Comments

well the next session block had some to choose from.  i decided one of these was going to be my choice:

i saw the .net/mono one was in the product/services track, which isn't necessarily a bad thing, but usually means that it has a product twist on it.  frank w/novell is presenting on it, and maybe i'll try to poke in.

ultimately i chose to go with the 'who gets to decide...' one as i look at the panel.  i've met brian behlendorf before and wanted to see what the panel had to say about this topic.

in 1998 when open source was coined as a term, free software already existed.  the term 'free software' caused confusion (free as in no $ or free as in no liberty).  this movement helped coined the open source term.

"now sun is pretty much a free and open source licensing company" -- hmm...pretty sweeping statement.

who is the OSI?  an open process and community discussing licensing issues.   when a new license is proposed, they start a conversation about it.  the board/committee meets and decides -- open process with the submitter on ensuring OSD compliance, etc.

current discussion on gplv3 (SugarCRM supporting this license).  chris dibona has some issue with gplv3, not because of some details, but ensuring that something called open source complies with the open source definition.

ross mayfield has a company (social text) who used a mozilla license with some modified clauses...caused some issues with some in the community, a result of a passionate community.  "users are becoming developers" in certain ways...interesting thought.  ross refers to the blog post about 'will the real open source crm please stand up' and how socialtext stopped calling themselves open source until their process was vetted through the community.  social text has the common public attribution license == mozilla+.  michael just announced that this attribution license submitted by social text (CPAL) is approved and the ink is drying as we speak.

micheal suggests we look at the history page of the definition of open source on wikipedia.  he says "terrifying."

in the definition of open source is it about the OSI maintaining its reputation? 

this is some interesting discussion but perhaps way too philisophical for this time of day or my technical dweeb mind ;-).  end of panel -- do we have an idea of who gets to decide?  i'm still confused.

i'm looking forward to bill hilf's discussion during tomorrow morning's general session...stay tuned.