November 19, 2009
Gentry Underwood: Iterative Design
There were lots of good keynote talks this morning at Web 2.0 Expo NYC.
One that stood out to me was Gentry Underwood, who's talking about how there were two players in origins of computer interaction design, the human and the computer. Now the computer is actually a gateway between humans, so computer interaction design has a different challenge.
The presentation was thought provoking, and is already available online. And how cool is this, Gentry has a Keynote integration that tweets parts of his talk as he gives his talk.
My favorite part was where Gentry talked about the complexities of human interactions and how social software makes that even more complex, particularly because social software changes the social landscape. He then points out that traditional software development model of linear progression through requirements, development, iteration, and final delivery, but that in social software the software itself changes the requirements of the software, so there's no way to know up front what a person or group would need. So the formula for application development becomes a circle between research and development which never ends.
Posted by mike at 10:52 AM
November 18, 2009
Scott Berkun: Confessions of a Public Speaker
Scott talks about his years as a writer and speaker in technology over the years and how things have changed. He attended an internet conference here at the Javits center in 1997 where the main thrust of the expo hall was improvements and workarounds to dial up technologies.
While some technology changes, there are three timeless technologies:
- Booths (putting up a sign and talking about what you're doing)
Years from now the greatest technology advances will still result in a person speaking about them publicly, people writing about them, and people gathering to discuss and explain.
You can be authentic in any media. Our failures to connect will never be solved by technology alone.
When people are talking past each other in any medium it isn't a technology problem, it's a communication problem. Example, responding to an email without reading the whole thing or retweeting generically without reading. Neither are genuine communication.
When you're talking to vendors, ask them what's the best story you've ever heard about your product?
Posted by mike at 2:30 PM
Gina Trapani: How Wave Won My Heart
Listening to Gina Trapani at Web 2.0 Expo NYC talking about Google Wave.
It's hard to explain in one sentence what Google Wave is. The Google video says it's what email would have been like if it had been invented in 2009 instead of the late 1960s.
Wave is ambitious, forward thinking, and built for power users. Wave is email reinvented, real-time document collaboration, and a gadget/bot-driven multi tool. Wave is also a development platform.
When does it work best? In small groups for collaborative writing to have non-linear conversations.
Posted by mike at 2:13 PM
Baratunde Thurston: There's a Hashtag for That
Talks about #SwineFlu. Baratunde became the swine flu on twitter going after people, talking about travels around the world. Hilarious.
Talks about #HowBlackAreYou, #WorldsThinnestBooks, #UnseenPrequels, and #RejectedPalinTitles.
Goes through a bunch of other hashtags and the significance of the conversations going on around those hashtags.
Posted by mike at 1:42 PM
CSS3 for Working Web Designers
Listening to Hakon Wium Lie (CTO for Opera Software, friend of Tim Burners Lee) at the Web 2.0 Expo NYC speaking about CSS3.
Hakon was first at CERN, the physics laboratory. He got to work with Tim Burners Lee, and has a picture of the office Tim worked in and the public terminal where the "World Wide Web" was first usable. CERN broke the group off and Hakon went to Italy and Tim went to MIT.
CSS was first proposed in 1994, first specs approved in 1996. Version 2 became a recommended version by W3C in 1998. CSS wasn't really usable until 2001. In 2009, CSS 2.1 is a candidate recommendation, there are many CSS3 drafts and CSS3 is implemented in at least 2 browsers right now.
[I've heard two separate recommendations for the CSS zen garden, been there before but should check it out in more detail]
Hakom suggests that we need a new, easy name for the new standards coming. He suggests:
HTML5 + CSS3 = WEB8
CSS1 was basic styling. CSS2 adds text-shadow.
Demo of CSS3
Includes the addition of web fonts. Doesn't work in IE, but most everything else from the last year supports this.
Colors have improved. Use
rgba to set transparency
background: rgba(255,0,0,.05);. Can also use the opacity keyword.
Media queries allow you to have different CSS applied for different browser properties. Really powerful example of how as you resize the browser window to very narrow, the elements on the screen change.
@media all and (min-width: 600px) and (max-width: 800px)
Box changes allow you to have a border-radius. Can have different horizontal and vertical radius, which lets you create any combination of different rounding on each of the corners of a box. Also can have box-shadow, with control over the color and fuzziness. You can combine these radius and shadow to make buttons with shadows.
Transitions allow you to set transitions between different states. If you're doing something like "hover", you can set a
transition-duration attribute that lets you control how much time to take when changing from one state to another.
Hakon does a little demo of having built the Apple logo entirely in CSS. Really impressive, including shadows, rounded corners, hovering.
There's a bunch of @page stuff to let HTML documents be rendered for print. There is an
::after selector, within which you can use the
target-counter to programmatically have page numbers, bullet numbers, etc automatically generated.
Posted by mike at 11:08 AM
launchpad at Web 2.0 Expo
Decided to swing into launchpad this morning at the Web 2.0 Expo in NYC.
Managing servers suck, ap((strata data hub is a way to store anything, from any application, from any device. Allows you to create APIs to let apps pull your data, and set triggers to push your data. Runs on Amazon services, adds another layer of abstraction to the cloud.
Links all of your utilities together, and feeds up all kinds of savings. You get points for energy savings. Instead of going to utilities and trying to get data from them, they work through the users.
A way to look for a specific dish on the web. Allows users to upload photos of food and where they saw it.
A reader-generated blog where you can quickly post something that's going on in your neighborhood.
Simple goal to make online TV as simple as traditional TV. Pretty cool and powerful way to centralize a very fragmented market.
All good presentations, but the SetJam founder was a bit above the rest in enthusiasm and telling a compelling story.
Posted by mike at 9:39 AM
November 17, 2009
Digg Moved from MySQL to Cassandra?
At today's Web 2.0 Expo keynote with Kevin Rose and Jay Adelson they mentioned they'd done a lot of architecture work on Digg including moving things from MySQL to Cassandra.
I guess something like this was on the table in 2006, mentioned in this O'Reilly article, but the comments clear it up as more of a "we've thought about it and are sticking with MySQL."
This whole idea of NoSQL, and that developers would rank performance over normalization and ability to use joins is interesting. At today's NoSQL talk there was a good Q/A where folks got to ask questions like "what if you need transactions" or "how consistent is data replicated to other servers." NoSQL adopts the line about choosing "the right tool for the job", so the response to many of these questions is not what a died-in-the-wool RDBMS user would be looking to hear.
Interesting to see how this class of data storage evolves. The prediction at today's talk was that in 12 months most new web development would be happening on a NoSQL database. Hmm. The web moves fast, but I'm not sure about that one.
Posted by mike at 8:18 PM
Chris Brogan at Web 2.0 Expo
When talking about using social media Chris Brogan (New Marketing Labs) says listen more than you speak, and when you speak spend 80% of your time talking about something other than yourself.
Posted by mike at 1:51 PM
Tim O'Reilly - The War on the Web
Tim O'Reilly is giving a keynote at Web 2.0 Expo NYC. Talks about the next war in the web. Not so much about browsers like it was in the early days of the web, more about what businesses are doing to be open or closed.
Cites the recent flurry of activity around bringing down Google by not letting them index content on major sites like New York Times.
Apple iPhone is such a great platform for innovation, but Apple has set it up in a way that they are controlling. Apple says that Google voice can't be on iPhone, Google then says Google maps will only be on the Android phones.
Tim's advice to Google, be rigorous in making sure that the user benefits.
[there's a huge screen behind Tim that periodically updates with twitter feeds hashed #w2e]
Posted by mike at 1:09 PM
HTML 5 and the Future of Web Apps
I'm at Web 2.0 Expo NYC listening to Tom Hughes-Croucher (Yahoo! Developer Network) talk about HTML 5.
[battery running low...won't get it all]
HTML 5 has the ability to do a ton more with graphics with the canvas tag. Also has web-cam access. There's no start-up delay with plugins etc.
Anything that runs webkit has significant HTML 5 capability today, including iPhone and droid phones.
HTML 5 allows developer to embed fonts into the browser.
[out of juice]
Posted by mike at 11:05 AM
NoSQL: The Shift to a Non-relational World
I'm at Web 2.0 Expo NYC listening to Dwight Merriman (from 10gen / MongoDB) talk about NoSQL. Dwight was CTO/co-founder at doubleclick.
RDBMS (Oracle,MySQL) used to be the one-size-fits-all database thrown on the back of every piece of software. There are now some new categories where RDBMS doesn't fit so well and new generation OLAP and non-relational operational stores are emerging.
The new non-relational tools are really good for web domain, where systems are distributed, often have big data, high traffic, and development is nimble.
NoSQL really means non-relational next generation operational datastores and databases.
The space really got started for scalability. Relational databases scale vertically, get a bigger machine. Need a better horizontally scaling solution. NoSQL doesn't have joins, and only has light transactional.
The CAP principle of database writes, pick any two of consistency, availability and partitions (tolerance to network partitions). Amazon's dynamo picked A & P, so is always available and spread out but might not have the most current data. Google's BigTable is C & P, so data is always consistent and partitioned, but might not always be available.
A few datamodels being developed in the NoSQL space:
- key/value approach (memcached)
- column or tabular (bigtable, hbase, hypertable)
- document oriented database, document meaning XML or JSON data document (mongodb, couchdb)
These databases are described as schema-less, meaning you don't pre-define the store. Makes them more nimble and pushes the
BusinessInsider.com uses MongoDB. MongoDB hosts all posts, analytics, and images. Gets up to 600K pageviews/day and with 3 apache servers and one database server.
Dwight predicts in the next 12 months we'll see a shift to NoSQL database.
Posted by mike at 10:03 AM
The Hidden Cost of Social Sites
I'm at Web 2.0 Expo NYC listening to Ron Surfield (Turner Broadcasting) talking about the experience of building social media for businesses.
Social sites are defined as those including content created by users. Includes things like comments, submissions, ratings, etc.
Why do people do it? Common belief is that it's free, meaningful content, which will attract more users. It will increase user engagement, CPM, ads revenue, etc.
Is it really free? What are the costs? How can we minimize the cost? Are there revenue streams from this?
- dealing with spam & profanity filtering
- moderation requires full-time person (irrelevant, flaming)
- hardware (storage space, application/email/search servers, network bandwidth)
- video is expensive, use CDN and know the costs up front
Moderators shouldn't be high school interns, they need to have some editorial skills.
- who's voice does the site represent
- how do you retain the unique character of your site
- monitor the patterns on the site and determine where to focus
- some content will influence the site and revenue differently (ads)
- don't spend time on lightly-used content
Need to add better engagement with users, including post/comment confirmations, RSS feeds,
Also need to shorten the feedback loop, quickly get back. Editorial staff needs to see and respond quickly, site operations need to be able to handle issues quickly.
You have to be careful about the customers who are too vocal and can steer you in ways that don't really represent the larger community.
Posted by mike at 9:00 AM
November 16, 2009
Rasmus Lerdorf - Simple is Hard
Starts with a bit of history, story about mom, internet, how PHP started etc. Some nice stuff in the latest version of PHP.
Essential to have share nothing architecture for scaling. Build modular. Rasmus is *not* a fan of MVC, particularly the front controller that processes all incoming requests. The browser is a better controller, let the user specify what they are going to do.
There are front-end and back-end performance metrics. Front end is often more of an issue than people think. Use YSlow or Google's Page Seed to see how you're doing.
First byte checks is good for back end, how long between the time that the webserver gets the request until it spits out the first byte. Use Siege for pounding on server. Shows a few examples, Megento performs terrible (which I found a year or so ago when trying to find a full-featured shopping cart).
First thing to do for backend is enable an APC cache. It's a single install and you have to change no code. Revisit the few examples he cited earlier, the APC made a huge difference. You can get a little extra performance by turning off stats in APC, it won't check for changes in the files.
Use strace (
strace -p processid -o sys1.txt) on a single apache instance running to get information about what system calls are being made. Two examples of lots of extra unnecessary calls. First is the search for index.php/index.html/index.cgi. Put the one you're actually using in the Apache directive so there's not a bunch of searching. Second is include files having to search through the lib path to find a module or include (look for ENOENT messages in the strace output).
valgrind and callgrind working together are good tools for profiling, fairly complex set of data to dig through.
If you're using PHP, there's a profiler called xdebug that dumps out a better summary.
Digs into profiler for laconica, some crazy numbers of calls just to generate the page header and tons of calls to generate a simple SQL query. Talks about using frameworks and that you should make an educated decision about the performance implications of building a complex system if you aren't doing complex stuff.
A quick comparison between different frameworks. Rasmus has written a simple "hello world" page that he generates using a wide arrange of programming frameworks.
[This part of the presentation seems like it would fit better at OSCON or Velocity, but I'm glad it's here because I prefer a nice mix of low-level and front-end stuff.]
Rasmus likes digging at sites and attempting to do cross-site scripting. Is able to find a hole on almost any site.
Posted by mike at 8:55 AM
November 1, 2009
6 Months of U2
6 months ago, on a family trip to Ireland, I took leave from Heidi and the kids one afternoon to do a walking tour of U2's Dublin. We had returned from a trip up north, coming through Connoly station which was a short hike from the docklands. From poking at a few sites I knew there was much past and present U2 to be found in this part of Doublin.
...in progress (really busy) ...
Posted by mike at 11:55 PM