July 23rd, 2008 — Improve Life, News
The future of software development
is about good craftsmen. With infrastructure like Amazon Web Services and
an abundance of basic libraries, it no longer takes a village
to build a good piece of software. These days, a couple of engineers
can deliver complete systems.
These days, a couple of engineers who know what they are doing can deliver complete systems. In this post, we discuss the top 10 concepts software engineers should know to achieve that.
digg_url = 'http://digg.com/programming/Top_10_Concepts_That_Every_Software_Engineer_Should_Know';digg_bgcolor = '#ffffff';digg_skin = 'normal';A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects - they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are:
- Interfaces
- Conventions and Templates
- Layering
- Algorithmic Complexity
- Hashing
- Caching
- Concurrency
- Cloud Computing
- Security
- Relational Databases
10. Relational Databases
Relational Databases have
recently been getting a bad name because they cannot scale well to support massive web services.
Yet this was one of the most fundamental achievements in computing that has carried us for
two decades and will remain for a long time. Relational databases are excellent for
order management systems, corporate databases and P&L data.
At the core of the relational database is the concept of representing information in
records. Each record is added to
a table, which defines the type of information. The database offers a way to search
the records using a query language, nowadays SQL. The database
offers a way to correlate information from multiple tables.
The technique of data normalization is about correct ways of partitioning
the data among tables to minimize data redundancy and maximize the speed of retrieval.
9. Security
With the rise of hacking and data sensitivity, the security is paramount. Security is
a broad topic that includes authentication,
authorization, and information transmission.
Authentication
is about verifying user identity. A typical website prompts for a password. The authentication
typically happens over SSL (secure socket layer), a way to transmit encrypted information over HTTP.
Authorization is about permissions and is important in corporate systems, particularly
those that define workflows. The recently developed OAuth
protocol helps web services to enable users to open access to their private information. This is
how Flickr permits access to individual photos or data sets.
Another security area is network protection. This concerns operating systems, configuration and monitoring
to thwart hackers. Not only network is vulnerable, any piece of software is. Firefox browser,
marketed as the most secure, has to patch the code continuously. To write secure code for your system requires understanding specifics and potential problems.
8. Cloud Computing
In our recent post Reaching For The Sky Through Compute Clouds
we talked about how commodity cloud computing is
changing the way we deliver large-scale web applications. Massively parallel, cheap cloud computing reduces both costs and time to market.
Cloud computing grew out of parallel computing, a concept that many problems
can be solved faster by running the computations in parallel.
After parallel algorithms came grid computing, which ran parallel computations on idle desktops.
One of the first examples was SETI@home project out of Berkley, which used spare CPU cycles to
crunch data coming from space. Grid computing is widely adopted by financial companies, which run massive
risk calculations. The concept of under-utilized resources, together with the rise of J2EE platform,
gave rise to the precursor of cloud computing: application server virtualization. The idea was to run applications
on demand and change what is available depending on the time of day and user activity.
Today's most vivid example of cloud computing is Amazon Web Services, a package
available via API. Amazon's offering includes a cloud service (EC2), a database for storing and serving large media files
(S3), an indexing service (SimpleDB), and the Queue service (SQS). These first blocks already empower
an unprecedented way of doing large-scale computing, and surely the best is yet to come.
7. Concurrency
Concurrency is one
topic engineers notoriously get wrong, and understandibly so, because the brain does
juggle many things at a time and in schools linear thinking is emphasized. Yet concurrency
is important in any modern system.
Concurrency is about parallelism, but inside the application. Most modern languages have an
in-built concept
of concurrency; in Java, it's implemented using Threads.
A classic concurrency example is the producer/consumer, where the producer
generates data or tasks, and places it for worker threads to consume and execute. The complexity in concurrency programming stems from the fact
Threads often needs to operate on the common data. Each Thread has its own sequence of execution, but accesses common data.
One of the most sophisticated concurrency libraries has been developed
by Doug Lea and is now part of core Java.
6. Caching
No modern web system
runs without a cache, which is an in-memory store that holds a subset of information
typically stored in the database. The need for cache
comes from the fact that generating results based on the database is costly. For example, if you have a website that
lists books that were popular last week, you'd want to compute this information once and
place it into cache. User requests fetch data from the cache instead of hitting the database and
regenerating the same information.
Caching comes with a cost. Only some subsets of information can be stored in memory.
The most common data pruning strategy is
to evict items that are least recently used (LRU). The prunning needs to be efficient, not to slow down the application.
A lot of modern web applications, including Facebook, rely on a distributed caching system called Memecached, developed by Brad Firzpatrick
when working on LiveJournal. The idea
was to create a caching system that utilises spare memory capacity on the network. Today, there are
Memecached libraries for many popular languages, including Java and PHP.
5. Hashing
The idea
behind hashing is fast access to
data. If the data is stored sequentially, the time to
find the item is proportional to the size of the list. For each element, a hash function calculates a number, which is
used as an index into the table.
Given a good hash function that uniformly spreads data along the table, the
look-up time is constant. Perfecting hashing
is difficult and to deal with that hashtable implementations support collision resolution.
Beyond the basic storage of data, hashes are also important in distributed systems.
The so-called uniform hash is used to evenly allocate data among computers in a cloud database.
A flavor of this technique is part of Google's indexing service; each URL is hashed to particular computer.
Memecached similarly uses a hash function.
Hash functions can be complex and sophisticated, but modern libraries have good defaults. The important thing
is how hashes work and
how to tune them for maximum performance benefit.
4. Algorithmic Complexity
There are just a handful of things
engineers must know about algorithmic complexity. First is big O notation. If something
takes O(n) it's linear in the size of data. O(n^2) is quadratic. Using this notation, you should know that search through a list is
O(n) and binary search (through a sorted list) is log(n). And sorting of n items would take n*log(n) time.
Your code should (almost) never have multiple nested loops (a loop inside a loop
inside a loop). Most of the code written today should use Hashtables, simple lists and singly nested loops.
Due to abundance
of excellent libraries, we are not as focused on efficiency these days. That's fine, as tuning can happen later on, after you
get the design right.
Elegant algorithms and performance is something you shouldn't ignore. Writing
compact and readable code helps ensure your algorithms are clean and simple.
3. Layering
Layering is probably the simplest way to discuss software architecture. It first got serious attention
when John Lakos
published his book about Large-scale C++ systems.
Lakos argued that software consists of layers. The book introduced the concept of layering.
The method is this. For each software component, count the number of other components
it relies on. That is the metric of
how complex the component is.
Lakos contended a good software follows the shape of a pyramid; i.e., there's a progressive increase in the
cummulative complexity of each component, but not in the immediate complexity. Put
differently, a good software system consists of
small, reusable building blocks, each carrying its own responsibility. In a good system, no cyclic dependencies between
components are present and the whole system is a stack of layers of functionality,
forming a pyramid.
Lakos's work was a precursor to many developments in software engineering, most notably Refactoring.
The idea behind refactoring is continuously sculpting the software to ensure it'is structurally sound and flexible. Another major
contribution was by Dr Robert Martin from Object Mentor, who
wrote about dependecies and acyclic architectures
Among tools that help engineers deal with
system architecture are Structure 101 developed
by Headway software, and SA4J developed by my former company, Information Laboratory,
and now available from IBM.
2. Conventions and Templates
Naming conventions and basic templates are the most overlooked software
patterns, yet probably the most powerful.
Naming conventions enable software automation. For example, Java Beans framework is based on a simple naming convention for getters and setters.
And canonical URLs in del.icio.us: http://del.icio.us/tag/software take the user to the page
that has all items tagged software.
Many social software utilise naming conventions in a similar way.
For example, if your user name is johnsmith then likely your avatar is johnsmith.jpg and your rss feed
is johnsmith.xml.
Naming conventions are also used in testing, for example JUnit automatically recognizes all the
methods in the class that start with prefix test.
The templates are not C++ or Java language constructs. We're talking about template files
that contain variables and then allow binding of objects, resolution, and rendering the result for the client.
Cold Fusion was one of the first to popularize templates for web applications.
Java followed with JSPs, and recently Apache developed handy
general purpose templating for Java called Velocity. PHP can be used as its own templating engine because
it supports eval function (be careful with security). For XML programming it is standard to use XSL language
to do templates.
From generation of HTML pages to sending standardized support emails, templates are
an essential helper in any
modern software system.
1. Interfaces
The most important concept in software
is interface. Any good software is a model
of a real (or imaginary) system. Understanding how to model the problem
in terms of correct and simple interfaces is crucial. Lots of systems suffer from the extremes:
clumped, lengthy code
with little abstractions, or an overly designed system with unnecessary complexity and unused code.
Among the many books, Agile Programming by Dr Robert Martin stands out because
of focus on modeling correct interfaces.
In modeling, there are ways you can
iterate towards the right solution. Firstly, never add methods that might be useful in the
future. Be minimalist, get away with as little as possible. Secondly, don't be afraid to recognize today that what
you did yesterday
wasn't right. Be willing to change things. Thirdly, be patient and enjoy the process.
Ultimately
you will arrive at a system that feels right. Until then, keep iterating and don't settle.
Conclusion
Modern software engineering is sophisticated and powerful, with decades of experience, millions of lines of
supporting code and unprecidented access to cloud computing. Today, just a couple of smart
people can create
software that previously required the efforts of dozens of people. But a good craftsman
still needs to know what tools to use, when and why.
In this post we discussed concepts that
are indispensible
for software engineers. And now tell us please what you would add to this list.
Share with us what concepts you
find indispensible in your daily software engineering journeys.
Image credit: cbtplanet.com

July 22nd, 2008 — Improve Life, News
Mixtapes just 'aint what they used to be. One of the most democratic forms of art collecting is being made even easier by a handful of fun new websites.
Is it legal? Will it last? We don't know and we don't know if we care. These services are such a joy to use that they reinvigorate our appreciation for what the social web can do.
Muxtape
The elegant simplicity, combined with the tech success of its New York founders, has made Muxtape the mindshare leader in the online mixtape market. Users upload up to 12 MP3 files and then publish their collection. The interface is like one big button and it's a lot of fun to explore different peoples' collections of favorites.
All kinds of mashups have been built on top of Muxtape. See, for example, our coverage of Muxtape With Coverflow [Mac] (pictured below), MuxtapeStumbler, MuxSeek Search Engine and MuxScrobbler - a script to synch your Muxtape listening with your Last.fm user profile.
Favtape
The newest entrant into this field is much easier to use for publishing collections. Favtape creates a Muxtape-like interface for listening to the full-length version of your Pandora or Last.fm favorited songs.
It's simple, but it's very cool. There are tie ins to Lyric Wiki, a ringtone search, the ability to listen to more songs that are similar or by the artist and other features. It's powered by the Seeqpod API, which must be one of the most popular APIs on the web lately.
Favtape just launched this week, but we really like it already.

Mixwit
MixWit is a Flash mixtape creator with a very nice interface and the ability to embed your player on a web page. See my example below. This service can have songs added by URL or through Seeqpod or Skreemr MP3 search.
Hint - click the play button below, or if you're reading this by RSS - click here to see this embedded player in action.
It's a relatively full featured Flash authoring environment and exemplifies the design possibilities that emerge from a confined space. The cassette tape border around images users upload is really visually appealing. It's all pretty easy to use and it's a whole lot of fun. It's more fun to use as a publisher than either of the services above and it might be more fun for listeners too.
digg_url = 'http://digg.com/music/Three_Hot_Mixtape_Services_That_Are_Remaking_the_Art_Form';digg_bgcolor = '#ffffff';digg_skin = 'normal';It appears that there are some performance issues, though, as the "menu" command often doesn't work with Mixwit. That should bring up a collection of other mixtapes.
The Changing World of Mixtapes
Different mixtape services serve different purposes. The point though is that this art form is becoming easier than ever before.
Mixtapes used to be something you put a lot of time and effort into, typically making one copy to give to one other person. The loss of that art form is a little sad. These services are something very different, they are very public and considering the free music widely available online - scarcity is no longer an issue.
Are these services legal? That's unclear; they are riding a thin line and legal decisions may be made about services like this in the coming years. Streaming, as opposed to full, direct downloads, is a different animal. The original mixtapes were arguably illegal as well, though, and what a loss the world would have suffered if that medium had been strangled.
Where's Your Mixtape?
We find the new mixtape publishing scene pretty heartwarming, in fact. We hope you'll enjoy testing out the services above - and leave us a link in comments to your mixtapes so we can all know what kind of music the RWW community likes to listen to!
CC photos used above include the following from Flickr: radio:cassette drawing from my primary school days by Alicia Yeah, "The Tree" by helmet13, An intense morning break over the Angels Bay, French Riviera by mamjodh

July 22nd, 2008 — Improve Life, News
The calendar syncing and sharing company Calgoo has decided to release all its products for free. Until today, Calgoo made a free version of its software available and charged $30 a year for its more fully featured pro 'Connect' accounts. User who bought a license for the pro account before today will continue to receive free email support for the duration of their licence.
At its core, Calgoo is a calendaring tool that allows you to sync calendars across platforms, including iCal, Google Calendar, Outlook, and 30 Boxes. While it started out as a very basic service about 2 years ago, Calgoo has developed into a mature calendar sharing solution with three separate products: Calgoo Calendar, an online calendar, Calgoo Connect, its calendar syncing application, and Calgoo Hub, an online calendar sharing service.
Judging from the change in business models, however, it would seem that Calgoo couldn't attract enough paying users. It's interesting that Calgoo couldn't make its 'freemium' model of free basic services and paid advanced feature work.

According to Calgoo, it is making its products available for free in order to "move to in-calendar advertising business models." While Calgoo hasn't outlined what these in-calendar ads would look like, this move is also consistent with the overall trend on the web towards advertising financed products.
As Svetlana Gladkova also points out in this context, users have simply become so accustomed to not paying for anything on the web that even charging for premium features is becoming very difficult for some companies. Calgoo must have surely felt the same pressure. In the short run, this is probably to the users' advantage.

July 22nd, 2008 — Improve Life
You've got tech skills… your friends and family ask for your help, and you share your knowledge with others on many online forums. Today I'm going to teach you how to turn that tech knowledge into actual money, using the CrossLoop Marketplace from the comfort of your own home.
Note: this isn't a get rich quick pyramid scheme, it's going to require actual work on your part… but wouldn't it be great to make some money while legitimately helping people?
How it Works
CrossLoop is a remote desktop control solution that is extremely simple to use for the end user you are trying to help… all they have to do is give you the code on the Share tab and click the Connect button. It's just that easy.

CrossLoop takes it all one step further, however, by providing an online Marketplace and customized profiles where they keep track of how many people you've helped, how well they rated you, what your skills are, and even your rates.
You'll notice the button that says "Available Now!", because I'm signed into CrossLoop currently. You can turn the presence on or off, but this is a really great way to tell potential customers that you are available for help.
Each user has their own dedicated profile URL which you can share with potential customers in order to drive business. This is mine, for instance:
http://www.crossloop.com/howtogeek
Note that I don't provide help, other than to my friends and family, so contact requests will be ignored. Anyway, you're the one trying to provide help, right?
If you do want help, our very own Mysticgeek has his own PC Repair business, and if he's online you can request help from him.
Once somebody clicks the Contact button, they'll be taken to a page where they can contact you with details of what they need help with. If you have your Rate Card filled out, they can also select one of the packaged services from the drop-down and then add more details in the body of the message.
Once the user submits the form, you'll receive an email with the details of their question, but you can also be notified directly from the CrossLoop client if you have it running:
How You Get Paid
CrossLoop now provides the ability to easily receive payments from your customers, right on your profile page. All they have to do is look at your profile page, click the Send Payment button, and then fill out the form.

In order to make this form show up, you need to make sure you fill out the PayPal Email section on your profile:

When the customer goes back to your profile to send payment, you can also (nicely) ask them to:
- Click the link to "Tell a Friend about this helper" and spread the word about you.
- Bookmark your profile using the convenient "Bookmark This Profile" link, which uses AddThis! so that you can easily bookmark using various social bookmark services.
How the Marketplace Helps You
CrossLoop will send customers to you… as long as you have not opted out of the Marketplace, your profile will appear in the CrossLoop marketplace for potential customers to find when they do a search for help. For instance, when I clicked on the Windows Vista category in the "I Need Help" section, there's a big list of helpers.
Note: If you aren't in the Marketplace, look under settings and click the link for "Upgrade to a helper account".
I recommend staying signed in to your CrossLoop client, since the default search results show people that are "Available Now" first in the list.

In order to make sure that people are going to find you in the list, you should make sure to fill out your profile with a comma-separated list of the things you can help with in the Expertise section. If you aren't sure what to use, then browse around and look at some of the other top profiles and see what they are using. Be sure to be accurate here… don't put "Photoshop" if you aren't actually ready to help with that topic.

You'll notice the "Your Rates" section, which is very important to fill out with useful information. You can set a pre-determined price for your services here, or you could even put "Contact Me" for the rate. You could also create some simple "bundles" like "Computer Cleanup and Spyware Removal", which will help people understand some of the more common services you provide.
Since CrossLoop is actively promoting this marketplace, you just need to make sure that you have good ratings from satisfied customers, and are signed in… the marketplace will do the rest.
Because the vast majority of people look at ratings and reviews before they buy anything online, I can't emphasize enough that you ask your customers to leave you a good rating and a comment, since those show up on your profile. A large number of happy customers will help you immensely in attracting future customers to give you their business.
You can also fill out a form on your end explaining what you helped with in a particular session. This helps you be found more easily in the search engine on CrossLoop, but since Google will also eventually index your CrossLoop profile page, it can help you attract search results from people looking up their problem on Google as well.

Of course, you shouldn't limit yourself to just the marketplace, so we'll explore other methods for promoting yourself.
How to Market Yourself Outside the Marketplace
Now that we understand how the system works, how do we bring new customers in on our own? We know there are people out there that need help… every forum is overflowing with them, so we just need to let them know that we provide remote help through CrossLoop.
Note: There's a fine line between promoting yourself and spamming… I'll try to guide you through it, but sometimes it's a judgement call. When in doubt, try to be helpful first and your reputation will grow. Word of Mouth is the best way to get sales in any business.
Widgets!
CrossLoop provides a ton of widgets that you can embed on your blog, MySpace or Facebook profile, or dozens of other places. This widget will show what you can help with, your ratings, and has a contact button so that people can directly get in touch with you.

You can find the widgets by clicking on the Promote item on the top menu:

There are a bunch of widgets to choose from, and as you can see they support a ton of services like MySpace, Blogger, and Facebook.
One of the cool things about these badges is that they automatically update with your session count and ratings, so you can continue to grow your personal reputation anywhere you've put the widget, without having to do anything else on your end.
For this widget to work, of course, you need to be active online… starting up a blog and writing helpful articles is one good way to start getting people in, or you can simply promote yourself through your MySpace/Facebook profiles to your list of friends.
Forum / NewsGroup Signature
If you participate in an online forum, you can often create a signature line where you can add your CrossLoop URL. I'd suggest something very simple like "I'm a CrossLoop Helper", with the link. Be very sure to check the rules of the forum before you do this, because many might consider it a spamming tactic. You can also see what other forum members are using their signatures for, and adjust accordingly.
Email Signature
If you send a lot of email, you should absolutely include your CrossLoop URL and the CrossLoop button. Some email software will let you create HTML signatures, so you can also link the button to your profile as well.

There are more details on how to do that here.
Craigslist
You can post a free ad on Craigslist promoting your helper status and offering your rates. One of the great things about this solution is that you can market yourself in any city listed on Craigslist, not just the city you live in, since this is a remote service. You'd do well to list yourself in some of the more popular cities, for instance New York would be a good place to start.
Buying Ads (Do with Caution)
You can even buy an ad through one of the many online advertisers to promote your services. You should be careful, of course, because you don't want to dump a ton of money into something until you are sure it will work.
Word of Mouth
Getting People to recommend you to their friends is one of the best ways to get people to come to you for help. You'll notice that on the top of your profile is a link to help others refer you. Be sure to mention this whenever you have a thankful customer.

You can also use this yourself to tell your own friends. You'll notice that CrossLoop can import your address books so that you can send out a message to your friends telling them about your new business.
How to Create Happy Customers
Creating customers that are happy with your services is the best way to get them to tell their friends about you, so you can bring in new customers. Here are my recommendations:
- Relationships - This is a people business, built on referrals. Building those relationships is what will differentiate you from everybody else in an online world.
- Service - Be polite, prompt, and above all else Friendly with All of your communications online.
- Define the Problem - If you provide free estimates, you can figure out what the problem is, since in most cases the end user won't have any idea what the real problem is. Being able to diagnose the problem is the critical factor in solving it.
- Solution - The most important factor is solving their problem. Combine a solved problem with friendly help and you've got a happy customer.
- Learning - The more experience you get at providing help, the better you will be able to provide help. If you help educate your customers on how to use their computer, they will remember you.
- Trust, Integrity, Honesty - Don't do anything without making sure the customer knows what is going on. Ask their permission before you do something that might have consequences, like deleting files. You can't simply be cavalier… the customer's data is all-important to them.
- Free Stuff - It doesn't cost you anything to give a helpful tip, or help out with something extra for free if you notice a problem you can easily fix. That type of thing will give you great feedback, and they will remember you the next time they have an issue.
- Feedback - Make sure that you get objective and honest feedback from your customers, and learn from it. Don't get offended if somebody complains, ask them how you can better help them next time, and try and make it right.
- Know What You Are Doing - Don't take on a job that you have no idea how to fix. The customer will notice, and you will sweat bullets hoping that they don't leave negative feedback. You should spend time helping out your friends and family so that you feel completely comfortable with the help you can provide. If you don't know how to fix something, you could even suggest another CrossLoop helper that does (making sure to tell the customer what your alternate expertise is)
These suggestions will take you a long way towards building up happy clients.
Conclusion
If you've got tech skills, this is an excellent way to start making some money and gaining some experience… all from the comfort of your home, and also start saving some money without paying ridiculous gas prices. (Here's a New York Times article on how the increase in gas prices is making more people shop online).
If you become really great at it, you could even eventually do this full time… the great thing is that you can get started now, working from home at night, growing your business…
So when are you going to stop working for the man?
Visit the CrossLoop Marketplace and Download the Client
Copyright ©
HowToGeek.com. All Rights Reserved.
Related Posts:Remotely Control Somebody's Desktop the Easy WayDownload and Keep Track of Stocks in Excel 2007Registry Hack to Set Internet Explorer Start PageShare Ubuntu Home Directories using SambaAdvertise on How-To Geek

July 22nd, 2008 — Improve Life, News
Google added walking directions to its Google Maps product today. The walking directions ignore one-way streets and Google Maps tries to give pedestrians the most direct and flat route possible. As Google itself acknowledges, the Maps database does not currently have a lot of information about sidewalks, pedestrian bridges, or if a specific street is simply too busy to cross. They are, however, working on improving these aspects of their maps.
Walking directions are available everywhere Google offers driving directions.
digg_url = 'http://digg.com/tech_news/Take_a_Walk_With_Google_Maps';digg_bgcolor = '#ffffff';digg_skin = 'normal';Google will only allow users to chose the walking options for routes shorter than 6.2 miles (or 10 kilometers). Because of the limitations in its database, it is calling the walking directions a 'beta' products, but, of course, that doesn't mean much when it comes to Google products.

Currently, Google is the only mapping service that offers walking directions. Ask.com used to offer walking directions, but that feature went away when Ask migrated away from its own mapping platform to Microsoft's Virtual Earth three weeks ago.
While Microsoft's Virtual Earth updated its imagery with another major (14 terabyte) update today, it's routing functions have not seen any updates lately. In terms of overall functionality and user interface design, it is very much on par with Google Maps (and, in terms of its imagery, often much better than Google Maps). However, it never quite achieved the popularity of Google Maps.
The walking directions are currently only available through the web version of Google Maps. As of now, you can not chose them in the iPhone Maps application, though that would obviously be a very useful feature to add and hopefully Apple and Google will do so soon.

July 22nd, 2008 — Improve Life, News
MySpace is announcing this morning that it will become an OpenID authenticating party and offer developers a deeper level of access to user data than was previously available.
As Facebook prepares to mark the one year anniversary of its heralded application platform and the new iPhone App Store lures developers with groundbreaking features and customers willing to pay for applications - competition for the attention of the developer community is heating up. Once again, when platforms compete for developers - users win.
OpenID for MySpace
MySpace announced today that it will authenticate users for third party sites that support OpenID. It's not clear how this will work yet, MySpace user profile URLs aren't authenticating and there hasn't been any mention of OpenID on the developers blog today, but we hope that usability won't be an issue here as it has often been for the OpenID world. MySpace now joins AOL and Yahoo! as major providers of OpenID accounts.
Initially MySpace will not act as a relying party, meaning you can't log into MySpace using a Yahoo! OpenID, for example. That's typical and we hope it will change soon.
Most important though is that MySpace is offering a system to verify identity across multiple sites. Verified identity allows for all kinds of interesting data mashup possibilities and that's ultimately going to be more interesting than simple authentication and single sign on. As OpenID Foundation Chair Scott Kveton told us this morning: "its great news that MySpace is not only supporting OpenID but really looking at ways to integrate data and real functionality that is beyond authentication. This will be the real driver of OpenID adoption."
Data Mashups
Already this morning a number of partner sites are taking advantage of the new ability to cache user data from MySpace. Movie review site Flixter and events site Eventful are the initial examples. Flixter users can now create an account and log in using their MySpace account via the secure standard protocol OAuth. They are then able to see movie reviews on Flixter that were made by friends on MySpace. Eventful integration will send alerts via MySpace when favorite musicians are in visiting a user's home town. Those are good and useful examples.
The possibilities here are many and remind us of the kinds of things the Google Social Graph API enables web-wide and the kind of functionality that Facebook apps are able to leverage on-site using Facebook friend networks. The MySpace functionality will let any site know who your MySpace friends are and highlight their activity on that 3rd party site and apparently 3rd parties will also be able to write to your MySpace account as well.
Profile data can now be cached for up to 24 hours at a time. Supported fields from MySpace include About me, Body type, Children, Drinker, Ethnicity, Has app, Heroes, ID, Interests, Jobs, Looking for, Movies, Music, Name, Network presence, Profile song, Profile URL, Relationship status, Religion, Sexual orientation, Smoker, Status and TV shows. Picture MTV.com noticing that you've changed your relationship status, playing a music video for your favorite song and recommending that you light up an American Spirit to celebrate. That brave new world is right around the corner!
Facebook vs. MySpace vs. Google vs. Apple
The competition is heating up from all the major social networks vying to get developers to build applications on their platforms. That means those companies are racing to offer the most advanced, wide ranging and user-seductive platform for application developers to tie their imaginations to.
The end result should be some really exciting applications. Facebook proved that a simple development environment will lead to 3rd parties building apps if not businesses inside your website. Google is embracing some standards but is also aiming for the long tail of small social networks and individual websites through OpenSocial and Google Friend Connect (iframes). Apple has proven that users are willing to pay for applications and that brand new features like a touchscreen, location awareness and mobility are hard not to fall in love with. LinkedIn is holding its upper class user demographic close to its chest and entering into selective strategic partnerships, like last night's with the NYTimes.
Enter MySpace and its large, broad base of users. Though much maligned in some circles, MySpace is evolving quickly in the face of competition and offers huge mainstream audiences.
It should be an exciting contest. We're excited to see the next steps these platforms take as they seek the upper hand and we're at the edge of our seats to see how the developer community will take advantage of what's offered. Say what you will about MySpace - it's a key participant in this era of powerful innovation.

July 22nd, 2008 — Improve Life, News
Today, eMusic launched a major redesign of its site. The new design not only looks a lot fresher, but eMusic now also draws in information from Wikipedia, videos from YouTube, and photos from Flickr. EMusic is the second-largest online music retailer after iTunes, but it often doesn't quite get the coverage newer music sites like Pandora or Last.fm get.
Most of the effort of the redesign was focused on the album pages. The homepage has been updated in a few spots, but the overall layout hasn't changed.
In March, one of our commenters here argued that it was time for iTunes to become more social in the face of competition with Last.fm, Pandora, and the big social networks. While iTunes hasn't taken up this challenge, eMusic has and this redesign is the first step in this direction.

Better Album Pages
The new design for the album pages comes with a great number of usability improvements. It has now become a lot easier to bookmark an album or to add it to a list, for example. Both of these functions existed before, but they were relatively hidden.
Rating an album has become a lot easier too, as the ratings function, which also determines which albums eMusic recommends, is now immediately visible on the page, right under the cover art.
The new design also spotlights eMusic's own content more directly, by putting editorial reviews and interviews into the left sidebar.
EMusic is also in the process of updating all its cover art and will slowly make high-resolution images available for all of them. The highest resolution available will be 1400x1400, which almost seems like overkill, but it definitely looks good.
While the focus of the new design was clearly on pulling in information from the web, eMusic also added the ability to send out information to Twitter, or bookmark an album on Facebook, Digg, reddit, StumbleUpon, Del.icio.us, and a number of other social networks and bookmarking services.
Dig Deeper
The most important part of the redesign is the "Dig Deeper on the Net" section, which is collapsed by default. It contains links to entries in YouTube, Flickr, and Wikipedia, all of which display right on the site.
When we talked to eMusic yesterday, they stressed that they were trying to replicate what its users were already been doing anyway - going out to the web to gather more information on their favorite musicians. Given eMusic's focus on more obscure, independent bands, this makes perfect sense. Especially having the Wikipedia articles available gives users the option to dig a bit deeper into the history and background of an artist they might never have heard of before.
Verdict
EMusic's users have responded overwhelmingly positive to the changes so far. In my own experience, the new pages are a major step forward in usability. Just within the short time they were available, I rated and saved more albums that ever before, simply because it has become so easy to do. The new design puts a lot more emphasis on being visually pleasing, yet it is very usable at the same time.
There are still a few minor problems on the new site, as some albums didn't display user comments, some didn't display cover art, and the Flickr images sometimes refused to close, but that is to be expected with a major redesign like this.
One issue with the new design, though, is that the user reviews are now less of a focus of the album pages. Whereas before, they would take up the bottom of the page, they are now squished into the left sidebar and only up to four of them are displayed at any given time.
Coming Soon
For the future, eMusic promises to launch a new feature every month for the rest of the year, including a new recommendation engine, an updated homepage, and new search features. If they turn out to be as good as this re-design, then eMusic is definitely heading in the right direction, though its subscription model, while keeping the cost per track down, will continue to limit its appeal for a number of potential subscribers.

July 22nd, 2008 — Improve Life, News
Do you have an iPhone? Are you a blogger? Then you're going to love this news - there's now a WordPress app for iPhone available for download from the iTunes App Store. The software lets you update your WordPress blog from anywhere. We're not forgiving Apple for that MobileMe nonsense just yet, but we have to admit, this is pretty good stuff.
WordPress on iPhone
The new WordPress App for iPhone supports both WordPress.com installations as well as self-hosted Wordpress.org blogs that are version 2.5.1 and above.
The app includes the following features:
- Embedded Safari previews of posts
- Full support for tags & categories
- Photo support for both camera phone pics and library photos
- Support for multiple blogs
- Ability to password protect a post, save as draft, or mark for later review
- Auto-recovery feature recovers posts interrupted by phone calls
You can see WordPress on the iPhone in action in the video below or check out screenshots here:
More information can be found on iphone.wordpress.org where you can review the Frequently Asked Questions and/or report issues with the application.
To download this app from iTunes, click here
.
Thanks to Digital Inspiration for breaking the news.

July 22nd, 2008 — Improve Life, News
After a rocky start which involved post-launch outages and subsequent apology letter not to mention the big reveal that MobileMe wasn't exactly the "push" service they advertised, Apple finally has MobileMe up and running. But now, after updating iTunes to the latest version, many Windows users were surprised to find a new MobileMe icon in their Control Panel. Apple is once again sneaking software onto our PCs - the question is, why are we letting them get away with this?
MobileMe Bundled With iTunes
This isn't exactly the first time Apple has sneaked additional programs onto our machines. Already notorious for bundling QuickTime with iTunes, Apple was finally taken to task last March, when they bundled Safari with their iTunes software update. (QuickTime is one thing, apparently an entire web browser is quite another.)
Yet, they didn't learn their lesson from that experience, or even more likely, they just don't care. They're Apple. You love them. They can do anything right?
Wrong. The truth of the matter is, outside the tech blogosphere (which, ironically, doesn't seem to include that many blogs about computer software), the MobileMe "malware," as it's being called in some cases, is a hot topic for discussion.
When clicked, the icon launches a window that essentially functions as an advertisement for the MobileMe service with text that reads:
"Try MobileMe
MobileMe stores your email, contacts, calendar, photos and files in an online "cloud," and keeps your Mac, PC, iPhone, or iPod touch up to date. Sign up now and experience MobileMe today."

And guess what happens when you click the "Learn More..." button? You are, of course, taken to a web site where you are able to purchase the MobileMe service.
To remove the icon, you have to go into the Control Panel, Launch "Add/Remove Programs" ("Programs and Features" on Vista), and uninstall the program "Apple Mobile Device Support." Since the name of that program doesn't actually say "MobileMe," a more novice Windows user might not know that it is the program responsible for the new icon on their machine and leave it be.

If any other company did the same (especially Microsoft!) the outrage would be deafening. So why aren't we hearing more complaints about this behavior when Apple does it? Can they really do whatever they want?

July 22nd, 2008 — Improve Life