Atlanta should skip Web 2.0

12 05 2008

I love Atlanta. I’ve been here for almost 12 years and I think it is a great city. We’ve got millions of people,  great neighborhoods, great restaurants,  a major airport, lots of free wi-fi, plenty of diverse businesses, a healthy laptop per capita ratio in any coffee shop you should happen to wander into, but somehow I think that Atlanta is not living up to its potential as a great center for web innovation.   And I don’t think I am alone in this opinion.

I’m not saying there is no innovation here, but I think as a city we are a little behind the times.  I offer as example the reluctant adoption of Web 2.0 in Atlanta.  Web 2.0 as both  a term and a practice seems to have only grudgingly been accepted in the Atlanta business world.   Sure, there is a growing pool of adopters leading the charge at events like SoCon07 and 08, AWE, and Barcamp, but to call them early adopters would only be accurate in a geographically limited definition.  They’re early for Georgia, but not for the world.  I’d like to see that change.

I think Atlanta should skip Web 2.0.  Not skip as in miss, but skip as in skip ahead.  Instead of playing perpetual catch-up with innovation centers like Silicon Valley, Seattle, Boston and NY, we should leap-frog those places and boldly invest in our time, money, thoughts and effort in redefining the context of the Internet.  The web has become the plumbing of our lives. Business is changing, marketing is changing, socializing is changing, lines are blurring, but we drag our feet and take incremental steps toward ideas that come to us from the west coast.

There are people in this town who would like to see Atlanta at the center of the discourse - a legitimate force in shaping our collective destinies through technology and its catalytic effect on human interaction.  And there is no reason why we can’t be, but we won’t get there by being a follower.  We need to figure out what Web 4.0 is, or 5.0, or maybe dare to embrace a term that isn’t Web x.x anything, but something new, something ambitious, something risky.  We might look silly, but we also may find a point of view, a value, a context that re-centers the discourse.

Let’s start talking.





About my Barcamp Atlanta posts

14 10 2007

This is just a quick note to anyone confused by the flurry of posts I’ve put online recently.  Barcamp Atlanta was a two day event hosted at the Advanced Technology Development Center at Georgia Tech.  It was a great event gather approximately 100 hundred computer programmers, technology enthusiasts, entrepreneurs, investors, sponsors, and web developers.  The format was to not have a format - anyone who came could sign up to lead a session and participation was highly encouraged.  Some sessions were very discussion-oriented, others were powerpoint-centric.  Lots of great information and smart people and a generous attitude toward sharing info.

I tried to capture in a few blog posts, a fraction of the information that washed over me in the sessions I attended.  The writing is rough and loose - a necessity of the situation (and my trying to keep up despite my tortoise-like typing speed).  I paraphrased heavily, quoted where I could, and opined here and there without remorse. One thing you should know is that I am not a subject matter expert in any of the areas that I blogged about, so I almost certainly got some things wrong - the mistakes are mine not the presenters and I welcome comments that will provide any appropriate corrections.

Many shout-outs are deserved by those who put this event together and to those who took the reins and led sessions.  And to the sponsors who fed us!  I don’t know ‘em all, but here’s a few I can thank: Jeff,  Stephen, Sanjay, Cooper, Michael I., Logan, Mike  S., Rusty, Amber, Tim, Sandro, Dave, Lance, et al.   Thanks for a great weekend!

Now back to my usual blog topics of branding, marketing, social media, etc.





Not-Live from Barcamp - Day 2 - Session 6 [for me] Future of Democracy - Social Media

14 10 2007

Presenter: Tim Moenk

OK at this point I was getting tired — hitting the Barcamp ceiling for information absorption.  Also the room was packed and awkward for typing in so here’s a post-session recap:

Tim presents some thoughts on the quad-umverate of Social Software, Gaming, Law, and UI.  Basically he contends that the increasing wave of social media is causing fundamental changes in how we interact at a national and global level.  Game designers are becoming social architects, and that law is lagging behind the progress, but there are experiments to try and catch up in areas such as patents.  He also points out that we are capable of self-organizing in a reasonable manner as evidenced by events like Barcamp.

I personally think he raises some very interesting points and wish there had been room in the time allotted for some Q&A. It is a very meaty subject, but I do think Tim was stretching the term Law over not just laws, but also things like etiquette, and governance.  This made for some oversimplifications, IMHO, in some of his statements.  Nonetheless, I’d love the chance to follow up with Tim and talk more about how he sees these vectors impacting our collective futures.





Live from Barcamp - Day 2 - Session 5 [for me] Facebook apps 101

14 10 2007

Presenter: Sandro Turriate

Whoa! - a real presentation with slides and everything!
The paraphrase:
Sandro new to facebook, relatively.
It’s a platform — you write plug-ins
It’s viral.  There is some funding happening, it’s easy to install.

3 steps to app interaction:
1. Facebook contacts appserver
2. App server uses facebook api
3. App server sends response

Sandro wrote a haiku sharing app: “Global haiku”

Your web app can use facebook api to update fb users’ profiles.

How do people find your app - through mini-feed and news feed — also goes into the master list of applications

Getting started:
Install developer facebook application — get from developer.facebook.com — let’s you add applications and check usage, etc.

Lengthy form to fill out to be allowed to develop apps.  you get an API key, a secret key and you have to provide a callback URL — you host your application.

Facebook makes a call back to your url : apps.facebook.com/yourapp - maps to a url on your server

Where does app live:   Facebook caches the info stored in peoples’ profiles, and the callbacks, but the rest is in your world

Facebook, has an idea of a “canvas page” - this is the area for where your application responses get rendered within facebook.   Options for presenting information fbml or iframe — iframe gives you complete control — more cpu intensive - makes more calls to facebook - more bandwidth heavy.  FBML - facebook markup language — special tags from Facebook that facebook will automatically process.  less overhead in using fbml.
There are other things you can access like sidebar feeds, special boxes, things that live within the profile.

Accessing css:  you can do inline styles as attributes or declare style in top of your code.  You can reference an external style sheet through an fbml tag.

Gotchas: Some fbml tags won’t allow random html - didn’t render correctly
<fb:editor> easy to write - but hard to customize
<fb:redirect> useful after POSTs

500 errors — not pretty, not much info.  Anytime you are looking at a facebook app you can view source and see all html rendered (for developers only)

All decision processing happens on your server all input and output happens on facebook.





Live from Barcamp - Day 2 - Session 4 [for me] Ruby on Rails panel

14 10 2007

Looks like just two panelists.  Didn’t get the names.

Starting discussion with scaling issues of mongrel server.  I was expecting more of a discussion of rails, pros and cons, this seems to be more of a discussion of memory use on the server and scalability.  Database load failed to scale for Twitter, sooner than the ability to run enoug instances of mongrel.  Logan, jumps in and interjects “F*ck scalability”  with the contention that when you have the problem of scalability you better have money coming in and can then deal with the issue.   Is Ruby creating a brain-drain on Java talent.  Still more jobs for java developers?   There is a rebutting point that sometimes an app can catch fire before monetization and can outpace the scalability of Rails.  PHP might be better.  But how do you anticipate rate of acceptance, and usage growth?  In one company, not named, prototyping is done in rails, but all that code is tossed for the production environment. The prototyping is useful for creating real requirements, but in the company referred to it is all java for the production.

Lookup: panelist mentioned a video on building a blog app in rails in 15 minutes - assume this can be found on youtube

Panelist expresses difficulty in his experience getting separate rails apps to communicate well.  Not well-suited task for rails.  Application growth tends to get unmanageable.  Not just a rails problem.  Michael chimes in with a plug for Ruby and reinforcing the point that Rails is not very ruby-like.  Learning and loving Ruby can enrich the experience and open new doors.  Very expressive.  Syntax for ruby is very expressive.  Ruby is fully object-oriented.

Rails vs. Symfony — Symfony is a framework for php that borrows much from rails — panelists likes rails much better — more nuance, better unit testing.  Other frameworks, like Zend, etc.  don’t provide the full simplicity, but they do help put you in a better paradigm for development.





Live from Barcamp - Day 2 - Session 3 [for me] Google Web Toolkit

14 10 2007

Presenter - Robert Cooper

Had a good lunch - everything food-wise that you can possibly put on a stick - finishing with chocolate covered cheesecake on a stick.  Who can complain about that?
Now sitting in Cooper’s session on Google Web Toolkit - a Java to javascript compiler.  It’s certain to be way over my head [again] but I’ve got to be loyal to the old AnyDevice crew.

Some paraphrase, etc.:

“It’s a combinatorics problem” you don’t hear that very often.
full implementation for the DOM.  Specific implementation for all major browsers - 5 compilations per application based on user agent [expanding to 8]  Monolithic compile to all the customized environments.   Can be hacked to tailor experience per environment.

The application looks like a single unified app, but the model gets altered per environment — keeps the javascript footprint small.  Lots of squeezing happens in the compiler.   The shell is built with SWT system’s SWT browser component - uses the native browser for the environment.  Includes RPC system, but you’re not bound to use it.   Shell, standard development environment — take native browser and hook in controls to native byte code.  Supported on net beans, eclipse and others.  Shell dynamically compiles Java in the background so almost like working in an interpreted environment.  Translates everything back to regular running java code which enables use of a java debugger.  Platform includes a remote testing system.  Unit tests can be farmed out to each individual browser which can help isolate browser specific problems.  Includes an embedded Tomcat server, which is a little weird to work with compared to regular Tomcat.  GWT very similar to java 1.1 in experience.   Limited reflection implemented, can do simple data binding.  Binding a grid form to a data feed — continuous environment updates, support for data validation in forms.  Can use reflection to create animation effects — helps make it easier to build an application.   More return on javascript size when the application is more complex.  Very heavy footprint for simple, hello-world type stuff, but cleans up a lot as part of the library.  Better returns on file size over growth of application.  Has a very specific support for caching.  Automatic versioning system based on md5 hash of compilation.  Nocache.js is the bootstrap file.  That’s the only file that requires pragma nocache.  Some files can be cached permanently, because versioning will take care of them.

Helps protect application from cross-site scripting attacks.  Currently have 3 applications in production now, all used internally, but some have 5000+ users.

Show & tell: soft scroll module — force a button to be visible in a pane.   Nice for enhancing user experience.  Makes for a highly portable user experience — can be ported to many emergent platforms like Nintendo Wii and iPhone.  Abstraction over browser differences (like directx calls versus firefox canvas) simplifies keeping user experience consistent across platforms.

Still some problems as to where the web designer fits into the process - right now you really need a programmer on the UI.   The new version coming, GWT 1.5, will allow html to be compile to be regular gwt widgets so a designer can make a layout and have that dropped into the development process. 1.5 will also have have Java 1.5 syntax — will make life happier for working in the IDEs.  Google is starting to see widespread adoption so you’ll start to see some standardization and optimization.





Live from Barcamp - Day 2 - Session 2 [for me] Second Life

14 10 2007

Presenter - Michael Ivey

Blow by blow - sort of: What is the value? Michael finds that using 2nd Life makes for richer distance communication, as an alternate to just chat or other non-visual communication.   Virtual marketing — Nissan had virtual cars to drive around and they came out of a giant vending machine.  Other product placement.  This has been the main area of business, at least big corporate business.   Companies that are using 2nd Life for event-oriented and entertainment tie-ins.   What about training?  Thinks it would work well for training.  Distraction- potential is high - but there are options for locking down sessions and shutting off IM and things.  There.com - had non-localized content.  Second Life is only localized content - everything is tied to the parcel - very spatial.  How do you make something more realistic in 3d?  Better modeling that is camera responsive is possible but difficult.  XML-rpc can interact with objects - requires permission.
Got some show & tell — saw how to build a basic primitive.  talked about different small ways to generate Linden dollars.   Michael’s wife brings in enough lindens through her knitting shop and other 2nd life entities to offset their monthly spend within the environment.  Cool stuff.





Live from Barcamp - Day 2 - Session 1 [for me] Drupal sh*t

14 10 2007

Presenter: Rusty Stanton

The setting — grabbing OJ and a muffin on the run.  Can’t find the room.  found the room and Rusty.  No projector.  Wing it.

The paraphrase:
Quick recap on using drupal to present podcasts.  Question to class - experience with drupal?   A Joomla user says he went to that platform cause he found it first.  The verdict — drupal is more of an api for development - joomla is more designer friendly - a little more complete.

Q & A — how to restrict php to be non-exec or blocked from db?  It’s complex or you could right a module.  Recommendation - write a custom module that has a set of special tags or an API. Could write a token-filtering module to allowe a defined set of functionality.  Lots of question from a guy from WREK Atlanta radio.  Currently managing a drupal site and is facing some challenges with balancing flexibility without giving too much control.  Rusty runs GA Podcast site on drupal 4.7 — Site can’t be totally open because they are using taxonomy to organize radio programs.  They are rewriting to make programs nodes instead of taxonomies which will allow finer grade of permission administration - through user roles.

Problems of open source systems - often the 3rd party modules are buggy or hyper-tailored to one purpose — look for modules that are well-maintained or you may need to write your own.  Sometimes drupal’s are abandon-ware — written byt not supported.

Upgrade issues — can’t directly upgrade from 4.7 - 5.* — need to disable all 3rd party modules — need to get upgraded modules and reinstall.  Drupal 6 will have some php 5 specific stuff.  Drupal, a spectacular api, but kind of a pain in the you know what for end users.  But getting better.

Transition to discussion about WordPress.   How to create hooks?  Rusty gives an example of a plug-in that let him send specific content to someone who was stealing his content.





Live from Barcamp pt. 4 — Merb

13 10 2007

Well before Merb, a good chat between sessions with Cooper about JavaFX, Silverlight, and other things - found out that he has a book coming out - Way to go Cooper!

Now on to the session -

Michael Ivey presents on merb — this is bound to be over my head [or rather, even more over my head than some of the other sessions]

The paraphrase;

Lightweight MVC Ruby app server — for high performance dynamic pages — some people call it Rails light
Rails performance is getting slower
Merb is an answer to that - make the developer take care of more of the magic, thus lighten the overhead

Motto: “no code is faster than no code” [love that]

Uses Rails generators
Less magic than using a rail app.
Trying to be database layer agnostic - puts more decisions on the programmer than Rails does.

Benchmarks against rails shows merb to be much faster — design philosophy is optimize for speed, then optimize more for speed.

Overall framework is small and tight — good for people who want to hack on their framework.

It is not a fork from rails it is 100% new code. It is written by Ruby enthusiasts. Rails [according to Michael] was written by someone not very familiar with Ruby so it is not written in a very Ruby-ish way. merb is by and for Ruby enthusiasts. Merb is thread safe. Huge advantage for heavily loaded sites. Gets used for file uploads - can “steal” a rails session, does its thing, then hands back the session. File uploads was part of the reason it was created.

This is bleeding edge stuff for the time being. Going forward the promise is all future releases will be just as fast (or faster) than the current release.

Why Merb? Every framework release of Rails is getting progressively slower — Rails is getting fatter [more magic code] - so this about being super lean.

Goal to make porting from Rails to Merb easy — ge the best of both worlds — Rails ease and speed of development. merb’s speed of production performance.

Biggest criticism — why not patch Rails? Action-pack — too much code.

Merb is harder to get started with, because it doesn’t make as many decisions for you. Still very driven by Ezra’s vision and direct management. Ezra wrote the book on Ruby deployment.





Live from Barcamp pt. 3 — Facebook apps.

13 10 2007

This session is packed!  Had to move to a bigger room.  speaker [Ididn't get his name ]   is going to show a flickr app he is working [ speaker is Chris Martin gcjmartin@gmail.com]  - [sorry for the messy posting - typing and listening]
The blow-by-blow:

Shows his Facebook profile - has numerous plug-ins app.   Wanted to bring more value to the photo sharing experience, so modeled on pre-existing facebook photo app.  Loads photos from Flickr and pulls them into his facebook app - all metadata is coming from flickr.
Using Facebook as a data store — cross posts comments, etc between both environments.

Info on http://developers.facebook.com

Next generation apps — finding socially useful applications.

What are the tools for developers:  Programming whatever language you choose,  — He wrote his stuff in PHP.  It is a big API — all code sits on your own server.  You can write in but you have to putput FBML [facebook markup languageng]  also fql — Facebook query language.  Client libraries for various platforms and languages.

The demo app they give you shows the most restrictive process possible with Facebook.

You spit out markup that Facebook runs through an interpreter before it gets presented to the end user.