PHP programming has climbed rapidly since its humble beginnings in 1995. Since then, PHP has become the most popular programming language for Web applications. Many popular websites are powered by PHP, and an overwhelming majority of scripts and Web projects are built with the popular language.
Because of PHP’s huge popularity, it has become almost impossible for Web developers not to have at least a working knowledge of PHP. This tutorial is aimed at people who are just past the beginning stages of learning PHP and are ready to roll up their sleeves and get their hands dirty with the language. Listed below are 10 excellent techniques that PHP developers should learn and use every time they program. These tips will speed up proficiency and make the code much more responsive, cleaner and more optimized for performance.
1. Use an SQL Injection Cheat Sheet
Sql Injection
A list of common SQL injections.
SQL injection is a nasty thing. An SQL injection is a security exploit that allows a hacker to dive into your database using a vulnerability in your code. While this article isn’t about MySQL, many PHP programs use MySQL databases with PHP, so knowing what to avoid is handy if you want to write secure code.
Furruh Mavituna has a very nifty SQL injection cheat sheet that has a section on vulnerabilities with PHP and MySQL. If you can avoid the practices the cheat sheet identifies, your code will be much less prone to scripting attacks.
2. Know the Difference Between Comparison Operators
Equality Operators
PHP’s list of comparison operators.
Comparison operators are a huge part of PHP, and some programmers may not be as well-versed in their differences as they ought. In fact, an article at I/O reader states that many PHP developers can’t tell the differences right away between comparison operators. Tsk tsk.
These are extremely useful and most PHPers can’t tell the difference between == and ===. Essentially, == looks for equality, and by that PHP will generally try to coerce data into similar formats, eg: 1 == ‘1′ (true), whereas === looks for identity: 1 === ‘1′ (false). The usefulness of these operators should be immediately recognized for common functions such as strpos(). Since zero in PHP is analogous to FALSE it means that without this operator there would be no way to tell from the result of strpos() if something is at the beginning of a string or if strpos() failed to find anything. Obviously this has many applications elsewhere where returning zero is not equivalent to FALSE.
Just to be clear, == looks for equality, and === looks for identity. You can see a list of the comparison operators on the PHP.net website.
3. Shortcut the else
It should be noted that tips 3 and 4 both might make the code slightly less readable. The emphasis for these tips is on speed and performance. If you’d rather not sacrifice readability, then you might want to skip them.
Anything that can be done to make the code simpler and smaller is usually a good practice. One such tip is to take the middleman out of else statements, so to speak. Christian Montoya has an excellent example of conserving characters with shorter else statements.
Usual else statement:
view plaincopy to clipboardprint?
1. if( this condition )
2. {
3. $x = 5;
4. }
5. else
6. {
7. $x = 10;
8. }
if( this condition )
{
$x = 5;
}
else
{
$x = 10;
}
If the $x is going to be 10 by default, just start with 10. No need to bother typing the else at all.
view plaincopy to clipboardprint?
1. $x = 10;
2. if( this condition )
3. {
4. $x = 5;
5. }
$x = 10;
if( this condition )
{
$x = 5;
}
While it may not seem like a huge difference in the space saved in the code, if there are a lot of else statements in your programming, it will definitely add up.
4. Drop those Brackets
Drop Brackets
Dropping brackets saves space and time in your code.
Much like using shortcuts when writing else functions, you can also save some characters in the code by dropping the brackets in a single expression following a control structure. Evolt.org has a handy example showcasing a bracket-less structure.
view plaincopy to clipboardprint?
1. if ($gollum == 'halfling') {
2. $height --;
3. }
if ($gollum == 'halfling') {
$height --;
}
This is the same as:
view plaincopy to clipboardprint?
1. if ($gollum == 'halfling') $height --;
if ($gollum == 'halfling') $height --;
You can even use multiple instances:
view plaincopy to clipboardprint?
1. if ($gollum == 'halfling') $height --;
2. else $height ++;
3.
4. if ($frodo != 'dead')
5. echo 'Gosh darnit, roll again Sauron';
6.
7. foreach ($kill as $count)
8. echo 'Legolas strikes again, that makes' . $count . 'for me!';
if ($gollum == 'halfling') $height --;
else $height ++;
if ($frodo != 'dead')
echo 'Gosh darnit, roll again Sauron';
foreach ($kill as $count)
echo 'Legolas strikes again, that makes' . $count . 'for me!';
5. Favour str_replace() over ereg_replace() and preg_replace()
Str Replace
Speed tests show that str_replace() is 61% faster.
In terms of efficiency, str_replace() is much more efficient than regular expressions at replacing strings. In fact, according to Making the Web, str_replace() is 61% more efficient than regular expressions like ereg_replace() and preg_replace().
If you’re using regular expressions, then ereg_replace() and preg_replace() will be much faster than str_replace().
6. Use Ternary Operators
Instead of using an if/else statement altogether, consider using a ternary operator. PHP Value gives an excellent example of what a ternary operator looks like.
view plaincopy to clipboardprint?
1. //PHP COde Example usage for: Ternary Operator
2. $todo = (emptyempty($_POST[’todo’])) ? ‘default’ : $_POST[’todo’];
3.
4. // The above is identical to this if/else statement
5. if (emptyempty($_POST[’todo’])) {
6. $action = ‘default’;
7. } else {
8. $action = $_POST[’todo’];
9. }
10. ?>
//PHP COde Example usage for: Ternary Operator
$todo = (empty($_POST[’todo’])) ? ‘default’ : $_POST[’todo’];
// The above is identical to this if/else statement
if (empty($_POST[’todo’])) {
$action = ‘default’;
} else {
$action = $_POST[’todo’];
}
?>
The ternary operator frees up line space and makes your code less cluttered, making it easier to scan. Take care not to use more than one ternary operator in a single statement, as PHP doesn’t always know what to do in those situations.
7. Memcached
Memcached
Memcached is an excellent database caching system to use with PHP.
While there are tons of caching options out there, Memcached keeps topping the list as the most efficient for database caching. It’s not the easiest caching system to implement, but if you’re going to build a website in PHP that uses a database, Memcached can certainly speed it up. The caching structure for Memcached was first built for the PHP-based blogging website LiveJournal.
PHP.net has an excellent tutorial on installing and using memcached with your PHP projects.
8. Use a Framework
Framework
CakePHP is one of the top PHP frameworks.
You may not be able to use a PHP framework for every project you create, but frameworks like CakePHP, Zend, Symfony and CodeIgniter can greatly decrease the time spent developing a website. A Web framework is software that bundles with commonly needed functionality that can help speed up development. Frameworks help eliminate some of the overhead in developing Web applications and Web services.
If you can use a framework to take care of the repetitive tasks in programming a website, you’ll develop at a much faster rate. The less you have to code, the less you’ll have to debug and test.
9. Use the Suppression Operator Correctly
The error suppression operator (or, in the PHP manual, the “error control operator“) is the @ symbol. When placed in front of an expression in PHP, it simply tells any errors that were generated from that expression to now show up. This variable is quite handy if you’re not sure of a value and don’t want the script to throw out errors when run.
However, programmers often use the error suppression operator incorrectly. The @ operator is rather slow and can be costly if you need to write code with performance in mind.
Michel Fortin has some excellent examples on how to sidestep the @ operator with alternative methods. Here’s an example of how he used isset to replace the error suppression operator:
view plaincopy to clipboardprint?
1. if (isset($albus)) $albert = $albus;
2. else $albert = NULL;
if (isset($albus)) $albert = $albus;
else $albert = NULL;
is equivalent to:
view plaincopy to clipboardprint?
1. $albert = @$albus;
$albert = @$albus;
But while this second form is good syntax, it runs about two times slower. A better solution is to assign the variable by reference, which will not trigger any notice, like this:
view plaincopy to clipboardprint?
1. $albert =& $albus;
$albert =& $albus;
It’s important to note that these changes can have some accidental side effects and should be used only in performance-critical areas and places that aren’t going to be affected.
10. Use isset instead of strlen
Strlen
Switching isset for strlen makes calls about five times faster.
If you’re going to be checking the length of a string, use isset instead of strlen. By using isset, your calls will be about five times quicker. It should also be noted that by using isset, your call will still be valid if the variable doesn’t exist.
Wednesday, November 19, 2008
Tuesday, November 18, 2008
Hewlett-Packard proves you can still make money
HPQ shares jumped more than they have any day since 2002, after CEO Mark Hurd announced a fourth quarter profit of $1.03 per share, three cents above Bloomberg's compiled estimate. H-P nonetheless will extend its holiday vacation for employees from one week to two to cut costs. The best analyst quote is the simplest: "Despite worries about an economic slowdown, the company can still grow earnings." So what's your excuse?
Microsoft Beats Yahoo and Google to Social Inbox 2.0
Exactly one year ago, I wrote about the race between Yahoo and Google to turn their e-mail and instant message systems into something closer to social networks. Both companies figured it was futile to take on Facebook and MySpace directly. So they rushed to develop new ways for their users to trade news, photos and so on with the people already in their address books and buddy lists.
The winner of that race is…Microsoft.
Thursday, Microsoft announced a complex new version of the Web sites and PC software that use the Windows Live brand. Over the next two months, the company will introduce dozens of upgraded features involving its e-mail, instant message, calendar, blogging and other services. It will also add some entirely new functions, including group collaboration and photo sharing.
A lot of the effort has gone into weaving the functions of social networks throughout many of these services. For example, the service has a “what’s new” feed, modeled after the Facebook news feed, that can publish short comments by users as well as links to when they take certain actions, like publish new photos. The feed will be displayed on the instant message client and on new profile pages for users. And after you send an e-mail to people who use the new feed, you will see their most recent updates.
Microsoft is also reaching out to draw in information from other sites. Users can add updates from their accounts on services like Yelp, Pandora and Flickr into their “what’s new” feed. They can also bring the list of their friends on other social networks into Microsoft’s new contact manager, called Windows Live People.
“There is not going to be one provider of software and services for the scenarios that are interesting,” said Chris Jones, a Microsoft vice president for Windows Live. “People will be members of many social networks. They will use many different sites to share, different e-mail providers, instant message providers and different types of devices. And in the end, the service that has value will be the one that helps them make sense of it all.”
Yahoo and Google, of course have all sorts of features that let people communicate and share information and photos. Google’s iGoogle personal page and an upcoming revision to the Yahoo home page offer ways to display information from various other sites. But for now, Microsoft offers a more unified approach to collecting information about people from a range of sites and using it in different ways.
Microsoft is not creating many ways to get information out of its systems, however. It doesn’t have the equivalent of Facebook Connect that lets people see their friends on other sites. And it is not enabling social applications from third-party developers on any part of this sprawling set of sites.
Mr. Jones said that the Windows Live profiles are meant to be simple, but they can have links to pages on MySpace or other sites that do allow applications. He said the company would eventually develop methods to export some of the data it keeps about users to other sites.
In addition, Microsoft is updating its SkyDrive service that stores files on its server and Windows Live Sync (formerly know as FolderShare) that keeps copies of files identical on two separate computers.
Microsoft takes a lot of heat, much of it deserved, for its plodding nature and overly complex software. Since the services haven’t been introduced yet, I can’t tell how well these new Windows Live features work. But the fact that the company is the first to actually introduce social networking features to its e-mail is a sign of Microsoft’s discipline, or maybe the lack of resolve at Google and Yahoo. Or both.
The winner of that race is…Microsoft.
Thursday, Microsoft announced a complex new version of the Web sites and PC software that use the Windows Live brand. Over the next two months, the company will introduce dozens of upgraded features involving its e-mail, instant message, calendar, blogging and other services. It will also add some entirely new functions, including group collaboration and photo sharing.
A lot of the effort has gone into weaving the functions of social networks throughout many of these services. For example, the service has a “what’s new” feed, modeled after the Facebook news feed, that can publish short comments by users as well as links to when they take certain actions, like publish new photos. The feed will be displayed on the instant message client and on new profile pages for users. And after you send an e-mail to people who use the new feed, you will see their most recent updates.
Microsoft is also reaching out to draw in information from other sites. Users can add updates from their accounts on services like Yelp, Pandora and Flickr into their “what’s new” feed. They can also bring the list of their friends on other social networks into Microsoft’s new contact manager, called Windows Live People.
“There is not going to be one provider of software and services for the scenarios that are interesting,” said Chris Jones, a Microsoft vice president for Windows Live. “People will be members of many social networks. They will use many different sites to share, different e-mail providers, instant message providers and different types of devices. And in the end, the service that has value will be the one that helps them make sense of it all.”
Yahoo and Google, of course have all sorts of features that let people communicate and share information and photos. Google’s iGoogle personal page and an upcoming revision to the Yahoo home page offer ways to display information from various other sites. But for now, Microsoft offers a more unified approach to collecting information about people from a range of sites and using it in different ways.
Microsoft is not creating many ways to get information out of its systems, however. It doesn’t have the equivalent of Facebook Connect that lets people see their friends on other sites. And it is not enabling social applications from third-party developers on any part of this sprawling set of sites.
Mr. Jones said that the Windows Live profiles are meant to be simple, but they can have links to pages on MySpace or other sites that do allow applications. He said the company would eventually develop methods to export some of the data it keeps about users to other sites.
In addition, Microsoft is updating its SkyDrive service that stores files on its server and Windows Live Sync (formerly know as FolderShare) that keeps copies of files identical on two separate computers.
Microsoft takes a lot of heat, much of it deserved, for its plodding nature and overly complex software. Since the services haven’t been introduced yet, I can’t tell how well these new Windows Live features work. But the fact that the company is the first to actually introduce social networking features to its e-mail is a sign of Microsoft’s discipline, or maybe the lack of resolve at Google and Yahoo. Or both.
Google’s SEO Starter Guide
Google’s PDF titled “Search Engine Optimization Starter Guide” includes basic tips for making sites more accessible to search engines. This 22 page document focuses on a variety of topics ranging from the creation of unique title elements to more advanced issues like navigation and redirects.
While none of Google’s “secret sauce” is revealed within its pages, the Google guide to SEO does provide a number of interesting tips for webmasters who are new to search. Included in the Guide are Google’s best practices for title elements, meta tags, URL structure, navigation, content, anchor text, headers, images and robots.txt. In addition, Google’s Search Engine Optimization Starter Guide provides a list of additional resources provided free from Google.
While none of Google’s “secret sauce” is revealed within its pages, the Google guide to SEO does provide a number of interesting tips for webmasters who are new to search. Included in the Guide are Google’s best practices for title elements, meta tags, URL structure, navigation, content, anchor text, headers, images and robots.txt. In addition, Google’s Search Engine Optimization Starter Guide provides a list of additional resources provided free from Google.
Google Analytics for Flash: Welcome to the Engagement Era
The explosion of Flash content like widgets has created several complex problems, like how to index it in search engines, how to make it work on mobile, and how to track it. The latter is being addressed today at Adobe Max, where Google is announcing Analytics Tracking for Flash, which will let publishers track metrics for their flash applications from within Google’s popular stats package.
Aside from the unique file format, one of the major differences between tracking Flash and tracking webpages is that Flash can be embedded anywhere – meaning that analytics software needs to be able to measure interactions from not just a single location, but from within an application, regardless of where it’s placed.
To demonstrate how Google Analytics now does this, the company has teamed up with web-based Flash creation tool Sprout. Now, users who publish widgets and other Flash apps using Sprout can track metrics such as time spent, what links and objects users click within an app, and goal tracking – all from within the same Google Analytics account as their website.
Google and Sprout demonstrate how this works in the video below:
While Analytics for Flash is an interesting breakthrough in its own right, it also could be the dawn of a new era in marketing and how companies pay for advertising. As opposed to paying simply for clicks and for views, advertisers can now (in theory) pay for actual engagement, because it can be accurately measured.
Sprout is currently charging clients based on a “pay per publish model,” meaning the client pays each time someone actually does something with an app – like customize it (with Sprout’s “remix” feature) or republish it to a social networking profile. Sprout is marketing this new approach through a product they are calling SproutMixer.
Although most of the widget platforms like Clearspring and Gigya offer their own tracking solutions, Google Analytics adding its own support for Flash tracking is a big deal – it’s a solution that any Flash developer can implement into their applications – without the need for a middleman. As such, it could have significant implications on how online advertising is paid for, and how the widget companies evolve their business models.
Aside from the unique file format, one of the major differences between tracking Flash and tracking webpages is that Flash can be embedded anywhere – meaning that analytics software needs to be able to measure interactions from not just a single location, but from within an application, regardless of where it’s placed.
To demonstrate how Google Analytics now does this, the company has teamed up with web-based Flash creation tool Sprout. Now, users who publish widgets and other Flash apps using Sprout can track metrics such as time spent, what links and objects users click within an app, and goal tracking – all from within the same Google Analytics account as their website.
Google and Sprout demonstrate how this works in the video below:
While Analytics for Flash is an interesting breakthrough in its own right, it also could be the dawn of a new era in marketing and how companies pay for advertising. As opposed to paying simply for clicks and for views, advertisers can now (in theory) pay for actual engagement, because it can be accurately measured.
Sprout is currently charging clients based on a “pay per publish model,” meaning the client pays each time someone actually does something with an app – like customize it (with Sprout’s “remix” feature) or republish it to a social networking profile. Sprout is marketing this new approach through a product they are calling SproutMixer.
Although most of the widget platforms like Clearspring and Gigya offer their own tracking solutions, Google Analytics adding its own support for Flash tracking is a big deal – it’s a solution that any Flash developer can implement into their applications – without the need for a middleman. As such, it could have significant implications on how online advertising is paid for, and how the widget companies evolve their business models.
20+ Firefox Plugins to Enhance Your YouTube Experience
There is no arguing that YouTube is the most popular video sharing site out there, but that isn’t to say that there aren’t things about it that annoy users. With that said, there are a wide array of plugins for Firefox to make the YouTube user experience that much better. Here are over 20 that will let you save your favorite videos before they disappear, stop them from autoplaying when you come to a page, and more.
What would you build an extension to change if you could? Let us know in the comments!
Download YouTube Videos
Ant Toolbar - The official toolbar for Ant.com includes a YouTube video downloader as well as a built in FLV player so you can play the videos you’ve snagged right from there.
Embedded Objects - This add-on will download pretty much any type of embedded file, including your favorite YouTube videos.
Fast Video Download - Fast Video Download works with numerous video sites and will also add a download link under embedded YouTube videos you find on other sites.
Flash Video Downloader - Besides allowing you to download your favorite videos from YouTube, this add-on will download flash videos from other sites and even games.
Flash Video Resources Downloader - Will let you download videos from most flash-based video sharing sites, will also let you enter a YouTube URL and be presented with the download information without needing to go to the page.
Magic’s Video - Downloader - Assists you with downloading FLV videos from around two dozen video sharing sites, including the market leader, YouTube.
Media Converter - This extension will allow you to not only download your desired videos, but it will also convert them right in the browser to the format you desire.
Sothink Web Video Downloader - Besides downloading videos from YouTube, Sothink will also let you capture videos in swf, wmv, asf, avi, mov, rm and rmvb formats.
Video DownloadHelper - Once installed, Video DownloadHelper’s icon will animate when you come to a page that has a video you can download. Once you start the download process, you can also choose which format you want to save the file as.
Tools
Better YouTube - Collects some of the most popular Greasemonkey scripts for YouTube that do things like give you an alternate player, a cleaner theater interface and more.
GoogleTube - This extension adds a YouTube icon next to Google search results that have videos associated with them. Click on the button and you can watch the videos directly on the search results page.
Groowe Firefox Toolbar - Gives you a toolbar that lets you search YouTube, Digg, Delicious and more.
Now Playing X - Allows you to feed videos you are watching to the Now Playing feature on messengers like Live, Yahoo, AIM, Skype and GTalk.
RickRadar - If you really fear being RickRolled, install this and it will evaluate pages. If it feels there is a high probability of Rick Astley being there, it redirects you.
TubeStop - Only has one job and that is to stop YouTube videos from autoplaying.
VodPod - Allows you to grab the embed code for a video and store it at VodPod.com and then publish it to your blog with just a click.
You Old Enough? - Tired of signing in to verify your age? This add-on will let you bypass the whole process.
YouPlayer - YouPlayer allows you to drag videos to your playlist and form your own list from around the Web. If you find anything you like, right click on it and you can choose to download it.
YouTube Cinema - Allows you to play all YouTube videos in a default that shows them in cinema view.
YouTube Comment Snob - This add-on allows you to hide comments from people with numerous misspellings, excessive punctuation, all capital letters, no capital letters and so on.
YouTube Tooltip - Allows you to hover your mouse over a YouTube link and see what the video may be before you click on it. Can also show author, ratings and number of views.
What would you build an extension to change if you could? Let us know in the comments!
Download YouTube Videos
Ant Toolbar - The official toolbar for Ant.com includes a YouTube video downloader as well as a built in FLV player so you can play the videos you’ve snagged right from there.
Embedded Objects - This add-on will download pretty much any type of embedded file, including your favorite YouTube videos.
Fast Video Download - Fast Video Download works with numerous video sites and will also add a download link under embedded YouTube videos you find on other sites.
Flash Video Downloader - Besides allowing you to download your favorite videos from YouTube, this add-on will download flash videos from other sites and even games.
Flash Video Resources Downloader - Will let you download videos from most flash-based video sharing sites, will also let you enter a YouTube URL and be presented with the download information without needing to go to the page.
Magic’s Video - Downloader - Assists you with downloading FLV videos from around two dozen video sharing sites, including the market leader, YouTube.
Media Converter - This extension will allow you to not only download your desired videos, but it will also convert them right in the browser to the format you desire.
Sothink Web Video Downloader - Besides downloading videos from YouTube, Sothink will also let you capture videos in swf, wmv, asf, avi, mov, rm and rmvb formats.
Video DownloadHelper - Once installed, Video DownloadHelper’s icon will animate when you come to a page that has a video you can download. Once you start the download process, you can also choose which format you want to save the file as.
Tools
Better YouTube - Collects some of the most popular Greasemonkey scripts for YouTube that do things like give you an alternate player, a cleaner theater interface and more.
GoogleTube - This extension adds a YouTube icon next to Google search results that have videos associated with them. Click on the button and you can watch the videos directly on the search results page.
Groowe Firefox Toolbar - Gives you a toolbar that lets you search YouTube, Digg, Delicious and more.
Now Playing X - Allows you to feed videos you are watching to the Now Playing feature on messengers like Live, Yahoo, AIM, Skype and GTalk.
RickRadar - If you really fear being RickRolled, install this and it will evaluate pages. If it feels there is a high probability of Rick Astley being there, it redirects you.
TubeStop - Only has one job and that is to stop YouTube videos from autoplaying.
VodPod - Allows you to grab the embed code for a video and store it at VodPod.com and then publish it to your blog with just a click.
You Old Enough? - Tired of signing in to verify your age? This add-on will let you bypass the whole process.
YouPlayer - YouPlayer allows you to drag videos to your playlist and form your own list from around the Web. If you find anything you like, right click on it and you can choose to download it.
YouTube Cinema - Allows you to play all YouTube videos in a default that shows them in cinema view.
YouTube Comment Snob - This add-on allows you to hide comments from people with numerous misspellings, excessive punctuation, all capital letters, no capital letters and so on.
YouTube Tooltip - Allows you to hover your mouse over a YouTube link and see what the video may be before you click on it. Can also show author, ratings and number of views.
So, How’s That Digg Recommendation Engine Been Working For You?
One of the biggest recent announcements from Digg, and one they put much emphasis on, was the recommendation engine; a system that learns from your digging habits and feeds you stories you might like based on what diggers like you recently found interesting.
After using it for quite some time, like most such ideas, I find it utterly useless. I use Digg in the following way: I check out the front page and the upcoming Technology section for interesting stories. The recommendation engine merely gets in my way, making me go through a couple of extra clicks to get what I want (whenever Digg doesn’t automatically log me in, which is often). The stories that the recommendation engine feeds me seem completely random; standard categorization by topics works way better, and checking only what’s recommended feels like I’m missing out on good stories.
In a way, Digg itself is a big recommendation engine: it’s a bunch of news stories and links selected by wisdom of crowds. The difference, however, is that Digg doesn’t care about my “digging habits;” it doesn’t try to guess what I’d like to read, it works as a collective hivemind that decides what it likes by itself. On the other hand, I’ve encountered many startups which are trying to learn from your web usage patterns and habits, and none of them did anything for me; in fact, the entire idea simply doesn’t seem to work, except perhaps for the most casual user who won’t notice the difference anyway.
This is just my opinion, though. I’m interested in what you think. How’s the recommendation engine working for you? Do you use it? Are the stories it recommends any good? Or do you skip it altogether? Feel free to answer in the comments.
After using it for quite some time, like most such ideas, I find it utterly useless. I use Digg in the following way: I check out the front page and the upcoming Technology section for interesting stories. The recommendation engine merely gets in my way, making me go through a couple of extra clicks to get what I want (whenever Digg doesn’t automatically log me in, which is often). The stories that the recommendation engine feeds me seem completely random; standard categorization by topics works way better, and checking only what’s recommended feels like I’m missing out on good stories.
In a way, Digg itself is a big recommendation engine: it’s a bunch of news stories and links selected by wisdom of crowds. The difference, however, is that Digg doesn’t care about my “digging habits;” it doesn’t try to guess what I’d like to read, it works as a collective hivemind that decides what it likes by itself. On the other hand, I’ve encountered many startups which are trying to learn from your web usage patterns and habits, and none of them did anything for me; in fact, the entire idea simply doesn’t seem to work, except perhaps for the most casual user who won’t notice the difference anyway.
This is just my opinion, though. I’m interested in what you think. How’s the recommendation engine working for you? Do you use it? Are the stories it recommends any good? Or do you skip it altogether? Feel free to answer in the comments.
Subscribe to:
Posts (Atom)