Your Ad Here

May 31, 2007

Time is the one truly limited resource

We can get greater quantities of every other resource we need, except time. [Peter] Drucker reports that executives spend their time much differently than they think they do and much differently than they would like to. His solution is to begin by measuring how you spend your time, and compare it with an ideal allocation. Than begin to systematically get rid of the unimportant in favor of the important. His suggestions include stopping some things, delegation, creating policy decisions to replace ad hoc decisions, staying out of things that others should do, and so forth…One of the best points is to give yourself large blocks of uninterrupted time to do more significant tasks…

Drucker argues that we should focus on what will make a difference rather than unimportant questions. Otherwise, we will fill our time with motion rather than proceeding towards results.

From A review of The Effective Executive: The Definitive Guide to Getting the Right Things Done by Drucker.

May 30, 2007

Competing with the NFL

is it crazy to try to compete with the NFL ?

I don't think so. Here is why:

1. There is obviously demand for top level professional football. That is exactly what the UFL hopes to be someday, an equal of the NFL, if not more.

2. The NFL wants and needs competition. They have grown so big and powerful that every move they make is scrutinized by local or federal officials. A competitor allows them to point to us and explain that their moves are for competitive reasons rather than the move of a monopoly.

3. They just extended their CBA. Their CBA structure is not designed for a competitive environment. Competition for top players, even if the UFL gets just a few, increases prices at the top end for all teams. Every star will get paid more, but still have to fit under the cap. That forces teams to use more low cost players, at the expense of signing the middle of the roster. That gives us access to quite a few very, very good NFL players. The downside is that it will significantly impact small market NFL teams and its unclear how the NFL would respond to that and what the impact would be on the UFL.

4. There are a lot of markets that are bigger than some current NFL markets that do not have teams that would love to have a pro football team.

5. There are a lot of smart people involved in the UFL

6. Its a great TV product.

These are just my personal reasons for having an interest in being involved with the UFL. They still have a ton of work to do before a game can be played. Like all good ideas with a great opportunity available to it, the hard part is in the execution.

Hopefully they can get it done.

Permalink | Email this | Linking Blogs | Comments

Feature: The Making of a Web App: Professional on the Web

Professional on the Web is a portfolio directory for web agencies and freelancers. Its target market is by definition a narrow one. We wanted to attract as many web professionals as we could by giving them the opportunity to promote their work in the fastest and simplest way possible. We achieved this by developing a no-frills, easy-to-use web application.

Today everyone is registered to some sort of a community or web-based network and the majority of them require a lengthy and boring registration process. We decided to differentiate ourselves by building a simple and fast profile creation process. It takes less than a minute to go through the motions. Users enter a few basic personal details, their projects' names and relative web addresses. Once the data has been inputed, thumbnail screenshots for each project are automatically generated and displayed on the their user home page.

Professional's public page

When logged into the system, the professional's public home page doubles as their editable settings page. They can edit their profile and projects, associate tags, and instantly preview all the changes on the same page. In-place editing and drag&drop functions make it a breeze and instantly gratifying to modify your home page.

Professional's user area

Professionals can determine how they're listed in the system's directory by associating tags to themselves. Users are allowed to choose up to ten tags, which are automatically suggested from a pre-determined library, to indicate the kind of services and expertise they offer. Having only a limited number of tags to choose from insures that users select only the most relevant ones. And it reduces the risk that a couple of bad apples end up spamming the system and appearing on every list.

Funneling Down User Data

A month after the launch of Professional on the Web we analyzed usersâ?? behaviors and produced a funnel diagram. It revealed how many visitors had viewed the sign up page, how many actually signed up and completed their profile, and how many had subsequently updated their projects portfolio.

Professional on the Web's Funnel diagram

After analyzing the results we revisited different areas of the interface to improve usability and increase the ratio between active users and total visitors. In particular:

In the future, we will also be redesigning the homepage. At the moment its main focus is on getting professionals to sign up. Once we have a healthy number of active users registered on the system we will downgrade the prominence of the Signup teaser and highlight other features and services.

Developing with Ruby on Rails

We chose Ruby on Rails as the system's framework as we knew it would bring several benefits throughout the development phase.

When we started planning Professional on the Web we were very busy with client work. So we decided to avoid the bells and whistles and start developing only the essential functions to get the system online as soon as possible. In this respect Rails was phenomenal. Once we settled on the overall design we jumped in. Framework development, user testing and subsequent modifications were all carried out hand-in-hand. It took two of us just 20 days to complete the application.

The Pros of Rails

The MVC (Model View Controller) architecture lets you easily design, modify and improve the application. It is an architectural pattern that mainly decouples the database interface (Model) from the user interface (View). An intermediary component, the Controller, is placed between how the data is represented and how the end user interacts with it. Thanks to this split, each part of the application has one authoritative and unambiguous place and you can respect the DRY (Don't Repeat Yourself) principle. For example, the database extracting function would reside inside the template linked to the table that the template refers to, while the user's request would be handled by the relative controller.

This approach can make learning Rails a lengthier process. Indeed, when you first start coding with it, development is not as swift as it could be with PHP or ASP. But at a certain point (it took us six months) it all starts falling into place and you marvel at how easy it really is. You soon notice how things that seemed so hard in the beginning actually turned out to be very simple.

We used database versioning and Capistrano to help streamline and simplify deployments. They greatly reduce all the usual errors encountered during deployment and it especially makes life easier once the application starts growing and you need to scale all procedures. For example, if you need to make changes simultaneously to the database and the application's code, Capistrano will create a new folder to copy the whole application to, make the requested database changes and then switch the current symbolic link to the new directory. This allows you to easily rollback if something goes wrong by switching the symbolic link back to the old directory. And the whole procedure takes only a few moments. There's no need to waste time FTPing, manually creating new folders or symbolic links, or restarting dispatches.

Another advantage with Rails is that tests are automatically generated while developing the application. The test suites created for both the application model and the user interaction allow you to add new functions without adversely affecting existing ones. There are many useful test plugin libraries that we have found indispensable for our projects, such as:

Ruby on Rails is also useful for its fragmented caching function which allows you to save HTML code fragments to disk. As a result Ruby doesn't need to calculate all the respective views and database requests every time they're required. This is particularly time-saving when dealing with objects that belong to many lists. â??Partialsâ? -- fragments of Ruby HTML (RHTML) that can be included in a view -- can then be easily cached and reused in other lists. Below you can see how we used fragmented caching for the different professionals' list views:

<% cache("professionals/p_#{professional.id}") do %>
    ...
    # partial code
    ...
<% end %>

The beauty of this function is that you can introduce it retrospectively. All you need is to add the first and last lines of code inside the fragment. If you make changes to the fragment's content, you will need to annul its disk cache. But even this is a simple operation with Rails. For Professional on the Web, we added an action in the User model for all modification requests made by a professional when editing their profile page:

after_save :destroy_cache

after_save is a Ruby callback which allows you to callback automatically the method destroy_cache following any change on a professional's profile page. The code for destroy_cache is:

def destroy_cache
  fragment = "#{RAILS_ROOT}/tmp/cache/professionals/p_#{self.id}.cache"
  File.delete(fragment) if File.exists?(fragment)
end

An added bonus with this approach was that it helped increase the application's speed. Because the fragment was performing a complex calculation, it helped save similarly complex operations that other helpers and database requests would have had to execute. It also allowed us to cache the professional independently whenever they appeared on a list, such as under the CSS or HTML tag lists.

Plugins can also speed up development time. For instance, the registration process is added by using the acts_as_authenticated plugin, which allows you to compile the database, HTML pages and sent emails in under a minute. The same results could be obtained with a CMS, but Rubyâ??s main strength lies in its flexibility. You can create new plugins whenever needed and more efficiently than with any other framework.

The Cons of Rails

All said, we have to admit that Ruby on Rails has its drawbacks. Since Ruby's functions are so readily adaptable, it is equally easy to abuse them. This is especially true of helpers as well as database connections. If, for example, you wanted to create a link you could write and call the function item_url(item), such as:

link_to "Show Item", item_url(item)

where item represents a professional and item_url would be something like:

url_for(:controller => 'site', :action => 'show', :id => item.id)

This would generate HTML code as:

<a href="/site/show/1">Show Link</a>

However, it would be overkill when all you'd need to code is:

<a href="/site/show/<%= item.id %>">Show Link</a>

This is a much more efficient way of generating the desired link rather than first calling the item_link function, which would then call the link_to function, which in turn would call the item_url function.

"Helpers" -- small functions that can be used anywhere in a Rails app -- like the above link helper are useful if the function is required in multiple views. Whenever you have to change the way that a link is associated to an object, you only have to alter it once in the helper's code, instead of changing it everywhere it's been used. But if the link generating function were placed in a list inside a view and were invoked tens or, worse, hundreds of times the app would noticeably slow. In this instance, using the direct version of the view would drastically improve the application's performance.

A similar problem can arise with the ActiveRecord, an object-relational mapping (ORM) pattern. Since it is so easy to implement it can equally be abused. This could then develop into a much larger problem as soon as the application increases in complexity and the relationships between models proliferate. For instance, let's assume that there's a user (model User) with many associated tags (model Tag). If you wanted to list the tags associated to the user you could execute the following code:

User.find(:first).tags

The application would then execute two separate queries. So to remedy the problem you would then add:

User.find(:first, :include => :tags)

This allows you to execute a single query using the SQL JOIN query. Unfortunately, we noticed that you can slow the system down if you overuse this function, due to what is commonly known as "eager loading". Indeed if you concatenate more objects to the equation it can result in very large data transfers, reducing the application's performance. This is because you can't specify individual fields in the request, so you're obliged to receive all the table contents in the JOIN query.

Another drawback with Rails is that for even just a small application you need at least 40MB of dedicated memory. Amongst all the advantages with Rails, you do need to consider whether it is appropriate to develop with it if you're only going to be creating a simple website. Otherwise you will risk using up 1GB of RAM with little more than 10 projects.

Conclusion

As a final remark, we must commend Ruby on Rails on the clean and self-explanatory code that you can write with it. This is especially important for the way we work. It means that we can each write separate code snippets and then assemble them without having to explain to one another what goes where and why one thing was written in a certain way. Overall, Rails has boosted our productivity and work flow and made Professional on the Web a better app.

May 29, 2007

Just Posted! Sony DSC-H9 Review

Just Posted! Our in-depth review of the new flagship 'big zoom' Cyber-shot, the DSC-H9 - successor to the H5. As well as stretching the lens to 15x and adding a million or so pixels the H9 sports a wealth of new features and a trendy new interface. Find out what we thought of it after the link...

The future of the music business…again

There has been quite a big of discussion about the music business lately. In particular the ongoing decline in CD sales. So i decided to revisit a blog post from April of 2005 entitled "The Countdown for the extinction of CDs is about to begin"

I don't think i said anything groundbreaking. I made the point that I no longer listened to music on CDs. That I had them on an Ipod when I listened. That it was difficult to deal with CDs in order to get to the music I wanted, when I wanted.

So here we are 2 years later and the media is full of articles about the seemingly never ending decline in CD sales and the inability of digital sales to close the gap. Can anyone be surprised ?

When was the last time you saw anyone listening to music on a CD Player ? At the gym ? No. At the Mall, maybe only some of the senior walkers at 9am. On downtown streets at lunch ? No.

Does anyone even know what percent of music is listened to via CD any longer ?

I would say the music industry has put itself in the position of being incredibly stupid. They are dependent on a format, the CD, that few people listen to. Although this is a guess, my guess is that the majority of CD purchases are then put in a PC and imported into an MP3 or other format for consumption on a mobile device. Few people buy a CD and just listen to it. Which means you can say goodbye to impulse buying of CDs.

We are in a market where, whether we like it or not, the music industry has tethered us to our PCs. The easiest way to buy, the easiest way to get the greatest utillity of their products is via the PC. Thats a HUGE, HUGE, HUGE mistake. Did i say that it was a huge mistake to make the PC an inevitable part of the music buying process.

Our ability to consume music has gotten incredibly easy over the past 25 years. From the walkman to the CD Walkman to the IPod, we have ditched the album (to the chagrin of milk crate manufacturers everywhere) and evolved to the point where an 80gb IPod has the capacity to carry every song we might imagine listening to over the course of our lifetime. So easy that it revived Apple and catapulted the company from an innovative niche PC marketer to a technology leader. So easy that we consume more music than ever before, yet total sales are in a tailspin.

Can the music industry be saved ? Yep. It would be so easy its scary. Make music available anywhere and everywhere.

How much music can be stored on 1TB of hard drive space ? All of it. How many people does it take to carry a 1TB drive ? My 3 year old daughter can do it.

I would find a manufacturer of cash machines, the ones you see in every bar, restaurant, mini-mart and retail outlet and work with them to reconfigure the machines so that they can hold a hard drive that can be updated with new songs via wired or wireless internet access and whose screen can offer a simple interface for people to select music. The consumer plugs in their SD card from their phone, or plugs the USB cable attached to the machine into their IPod or similar device and the music selected, downloaded and debited to the customers credit or debit card. Pay the machine host a commission, or a per transaction and everyone goes home happy.

Why wouldnt the music industry do this ? I understand the difficulty of getting an entire industry to do anything, particularly the music industry where the fault is always someone elses'. But this is a matter of survival and the solution is simple.

Not that there aren't other issues, Its certainly not a simple process to connect your IPod to a random device and buy music. The future of the music industry depends on the negotation of a software update with Apple. It would be a simple, simple enhancement to ITunes software on every IPod. The software, when connected to one of these music dispensers would look for a unique ID and a number with a check digit. If it found a valid number, it would allow the one way transfer of music from the dispenser. Simple and easy...if Apple goes along. Which they should, because it wouldnt be a stretch to put an ITMS like interface on the dispenser, let people login with their Apple ID, and buy music that could be charged to the credit card on file with Apple.

None of this is rocket science. In fact, its easy. Music Kiosks have been proposed for years and years. Kiosks have been developed time and again. They haven't worked because they have been over engineered and music labels haven't made enough content available.

I hope the music industry has reached the point of desperation where now is the time.

Its time to recognize that its never been easier to listen to music and more people are doing just that than ever before.
The only difficult part of the music equation is buying it. Sitting in front of your PC works sometimes, but it isn't optimal all the time. Where ever you see people listening to music, they should be able to buy and immediately listen to their new music. Why can't the music industry get that we should be able to buy music when we want, where we want, in the format in which we consume it, on our IPods and comparable devices. Until that happens, total music sales will continue to decline and quckly.
Permalink | Email this | Linking Blogs | Comments

Adobe Camera RAW 4.1 (now)

Adobe has today released version 4.1 of their Camera RAW plug-in for Photoshop CS3, Elements 4.01 (Mac) and Elements 5.0. This update adds support for the Canon EOS-1D Mark III, Fuji FinePix S5 Pro, Nikon D40X,  Olympus E-410, Olympus SP-550 UZ, Sigma SD14, Phase One H 20, Phase One H 25, Phase One P 20, Phase One P 21, Phase One P 25, Phase One P 30 and Phase One P 45. The update also includes a new version of Adobe DNG converter which can convert all ACR supported RAW formats to Adobe's "universal" DNG format. UPDATE: Now available for download.

May 27, 2007

Just posted! Nikon D40X review

Just posted! Our detailed in-depth review of the Nikon D40X, the ten megapixel follow-on from the D40. As well as another four megapixels the D40X also features faster continuous shooting (three frames per second) and a lower base sensitivity of ISO 100. Delivering a compact digital SLR with a ten megapixel sensor for $699 means the D40X is aimed squarely at the Canon EOS 400D (Rebel XTi). See how it performed and how it compared to such stiff competition in our extensive review.

May 25, 2007

Samsung GX-10 firmware 1.20

Samsung has released firmware version 1.20 for its GX-10 DSLR. Adding functionality to the command dials and green button seems to be at the heart of this update, improving speed and ease of operation by allowing photographers to change settings without having to delve into the menu system. The firmware may be installed over all previous versions as it incorporates the changes added in previous releases and is available now via Samsung's support site (link after the jump).

Sigma SD14 firmware 1.03

Sigma has today released version 1.03 firmware for the SD14 digital SLR. This new firmware contains two fixes; Corrects the intermittent camera freeze while CF CARD BUSY LIGHT is on during continuous shooting. Corrects the remaining battery power display on the top LCD panel. Firmware can be user updated and higher version numbers contain all the fixes of previous versions. This new firmware can be downloaded from the sigma-sd14.com website (link after the jump).

Pentax finally accept Hoya offer

In a saga which (publicly) began in December last year and has seen Pentax fighting Hoya's approaches on various fronts including the resignation of their president Fumio Urano last month and talk of selling its headquarters in Tokyo looks to be finally coming to an end. According to numerous reports Pentax's board of directors has today approved the deal and the merger will go ahead next month. Additionally Pentax's board members have agreed to resign after the Hoya takeover goes through.

Pentax Remote Assistant 3 for Mac OS X

Pentax has announced a Mac OS X version of its Remove Assistant 3 software. This tool enables you to remotely control one or more tethered K10D digital SLRs from a PC or (now) Mac. You can control almost all camera functions as well as triggering shutter release manually, at regular intervals or at specific times. With more than one camera attached you can even achieve 'same time' synchronized exposures. In addition to releasing an OS X version of RA 3 Pentax has also posted an updated version for Windows which includes a small bug fix. Download links after the jump.

May 24, 2007

My take on the NBA Lottery

What else is there to do while I sit here in the Cayman Islands relaxing and enjoying every minute of it then ponder the NBA Lottery.

During the season when all the discussions of tanking (i prefer to think of those games as player evaluation games) were taking place, my first inclination was to pick a "lottery date". A date early enough in the season that was too early for teams to risk the opportunity to battle for the last playoff spot. Given that teams can and do make end of season surges and under 500 teams make the playoffs, it seemed that this would be a plausible solution.

The counter of course is "what about injuries". A team with a late injury, or a player returning from injury late in the season could either be hurt or unfairly benefit. That of course killed my idea.

So while the Caymanian sun is shining upon me and the really important question of Bud Light vs Corona Light for my first drink of the day is about to be answered with a cold beverage from Budweiser, my solution has evolved to the following:

Replace the lottery with a simple better team record or coin flip based on conference standings. In other words, for the last two teams in each conference , the team with the better record gets the first pick. If its a tie, there is a coinflip. The next to last in each conference face off. The better record gets the 3rd pick, a coin flip breaks a tie, all the way up the standings.

This wont completely eliminate teams from committing to "player evaluation games" at the end of the season, but it does take into account the relevant strengths of the conferences and teams places within the conferences. Its possible that a 25 win team in the better conference is a much better team than a 25 win team in the weaker conference, yet they both get equal weight in the current lottery. They shouldn't.

What makes this system potentially exciting is that teams will have something to play for at the every end of the season. How much fun would it have been watching Boston and Memphis compete to win enough games to get the #1 pick ?


THis of course isnt foolproof. Teams will still resort to "player evaluation games" at the end of the season and in games between teams in the same conference things could still get absurdly comical at the end of the season.
But it would reduce the number of "player evaluation games" and it could create some really fun, competitive games once the standings are in place as teams play for the right to choose 1st, 3rd, etc.

If this doesn't get the job done, I can add one more option that might make things more interesting.

Rather than have one method of allocating draft picks, have more than one. On Lottery Day have a coin flip to decide which method is used.

A coin flip between the better team gets the pick system I described above and the current lottery system could make things fun and interesting on Lottery Day . Although losing would still be "rewarded" with a better pick in both cases, the uncertainty would make it difficult for teams to tank games during the season.
.

Then on draft day, the first coin flip is to decide which system is used.


Im sure there are better options out there, but I just thought I would throw this one out there as something to have fun with and think about.

Time to put some more sunscreen on :)
\
Permalink | Email this | Linking Blogs | Comments

May 23, 2007

Kodak phasing out low-end digicams

According to a report by CNET Kodak President Antonio Perez speaking at the JPMorgan Technology Conference revealed that the company "wasn't making much money" in the low-end digicam segment and has decided to pull out of it. In Addition Mr Perez also revealed that the company had developed its own five megapixel CMOS sensor which would make its way into a future Kodak digital camera. It's unclear where Mr Perez draws the 'low-end' line but we can't say we're that surprised at this news.

MediaVillage Feeds to Reside in Ye Olde FeedBurner-burg

In our fair hamlet of FeedBurner we are very pleased to announce today that Myers Publishing, LLC is now burning feeds and has joined our ad network. It takes a village to raise a compelling collection of commentary and reviews for both TV fans and television executives, producers, writers and stars. And Jack Myers calls that community MediaVillage. MediaVillage.com is where TVland meets Internetland in a top TV Fansite dedicated to enabling viewers to SoundOff to TV executives and talent, and providing ongoing feedback to TV programmers and advertisers on TV viewers’ passions, preferences and emotional connections.

MediaVillage offers criticism and insight with feeds such as Jack Myers Media Report, Jacki Garfinkel's Confessions of a TV Maven, Savoring Soaps. Loads of show-specific feeds will provide up-to-date commentary and news from popular programs such as Grey's Anatomy, 30 Rock, American Idol, Gilmore Girls, Law & Order, The Simpsons, and lots more.

A new city ordinance prohibits us from having our office monkey sing out the news like an olde tyme town crier, but you can read all about it in today's press release.

May 22, 2007

Gone Fishing

We’re packing up over here for a little trip to San Francisco for @media followed by a few days of vacation. The whole family is coming with me, and we’re excited about everything, save the 6+ hour flight. Snacks? Check. Sesame Street? Check. Non-noisy toys? Check.

I’m posting this primarily to warn anyone of a delay in email response that’ll begin shortly. Well, there’s always a delay these days, but it’ll be even worse for the next little while.

See you on the left coast, or when we return.

Building Community Focused Web Apps with Rails

I'm hearing Dan Benjamin gave a great presentation at RailsConf last week in Portland, where he talked about building Cork'd. The slides are up in PDF and Keynote format (featuring excellent movie screenshots, I might add). #