雅虎关系服务将于2009年10月30日正式停止服务

您好!

因运营策略的调整,关系服务将于2009年10月30日正式停止服务,请您在此日期前将您关系内的照片等个人资料和相关内容以下述方式进行充分留存备份,也请您方便时通知您关系的好友并与好友保持联系。届时关系服务将不再留存您的任何个人资料和相关内容。

您可以登录关系服务( http://guanxi.koubei.com/ ),按照页面引导进行操作,如有问题请查看帮助中心,或者反馈给工作人员,我们会尽快帮您解决。

由此给您带来的不便,敬请您谅解!感谢您一直以来对关系业务的支持!

中国雅虎社区运营部

阮一峰关于网站备案的个人经历和感概

对于网站主来说,服务器放在境内是很可怕的事情。你的网线随时有可能被拔,你的硬盘随时有可能被破坏,甚至整台服务器都会被搬走,再也要不回来。


2004年,信息产业部要求网站备案,否则就是非法网站。

我赶紧就去备案了,ruanyifeng.com的备案号是“沪ICP备05002727号”。

后来,我把网站放到了境外服务器上,备案号就没用了。但不管怎么样,我认为我的网站依然属于合法网站,因为我履行了政府对我的要求,申请了备案,把我的真实联系方式留给了政府,好让他们随时能够找到我。

再后来,曾经为我托管服务器的那家国内公司倒闭了,由于我的备案是他们代办的,导致我在备案管理系统的用户名和密码作废,ruanyifeng.com处于被冻结状态,找回密码,需要向上海市通信管理局申请。我觉得太麻烦,就没去申请。当然,更主要的原因是,就算密码找回来了,我也不知道我要用它干什么。

此后的几年,一直太平无事。直到今年的8月22日,我收到了一封Email:

关于ICP备案信息被接入商取消接入的通知

发信人:webmaster@mail.miibeian.gov.cn

尊敬的用户(阮一峰):您备案信息中填写的接入商(中国电信集团福建省分公司ICP)经核实,认为你备案的网站非其接入,已经取消了相关接入,目前您主体下备案网站(网站名称:阮一峰的个人主页,域名:ruanyifeng.com等)已不存在任何接入信息,具体情况您可再向接入商进行确认。请尽快联系你的新接入商为你填加接入信息。特此通知!

政府要求我提供网站接入商信息,可是我的网站是由美国公司提供互联网接入的,那家公司不在政府目前认可的1141家ISP之列,事实上所有外国ISP都不在其中。那样的话,即使我修改了ISP,也不会审核通过的。备案成功的基本规则就是,你的接入商必须在政府的名单中。所以,我没有办法,只能对着那封Email干瞪眼,束手无策。

今天,我又收到了第二封Email。

关于ICP备案信息不符合备案要求退回修正的通知

发信人:webmaster@mail.miibeian.gov.cn

尊敬的用户[阮一峰],很遗憾的通知您,您的ICP备案申请(ruanyifeng.com),经[上海市通信管理局0]审核,不符合备案要求,现退回修改,原因请登陆系统查询。

政府发现我的备案不符合他们的要求,再一次要求我修改。但是正如我前面说的,我的用户名和密码已经作废,现在连备案系统都无法登录,所以根本没法修改。退一步说,就算能修改的话,又能怎么修改呢?把服务器搬回境内?算了吧。

这就是整件事情荒谬的地方。现行的网站备案制度,其实是一种“双绑定”制度,一方面将网站和它的所有人绑定在一起,另一方面将网站和它的接入商绑定在一起。一旦出事的话,政府不仅要找到网站的所有人,还要找到网站的接入商。为什么要找接入商呢?说穿了,就是为了第一时间把网线拔掉

所以,对于网站主来说,服务器放在境内是很可怕的事情。你的网线随时有可能被拔,你的硬盘随时有可能被破坏,甚至整台服务器都会被搬走,再也要不回来。(我一点没有夸张,这是每天都在发生的事情。)此外,如果你想更换接入商的话,就需要很麻烦地申请修改备案。因此,网站有了合法身份,反而会让你觉得很不安全,好像法律不是在保护你,而是在迫害你一样。

六十大庆一天天临近,工信部加快速度,清理备案不合格网站。我不知道接下来会发生什么事情,屏蔽所有未备案或备案不合格的网站?也许吧。经过这一年,我觉得什么事情都有可能发生。

今天,我写这件事情,就是想跟大家打个招呼,说一声这里有可能被屏蔽。如果这真的发生了,你可以翻墙或通过Feed阅读我的文章。另外,为了防止万一,我启用了一个备份网址:http://ruanyf.blogspot.com/(大陆读者需要翻墙)。

最后我想说,几十年以后,或者几个世纪以后,回顾这段历史的时候,大家会觉得网站备案、GFW、绿坝软件、诸如此类的事情,都是好事,因为它们让许多中国青年认清了这个社会的本质,不再对旧制度抱有幻想,开始期盼新制度的到来,从而大大加快了社会变革的速度。要是没有它们,许多人也许要过许多年才会对现行制度产生怀疑,从而进行彻底的反思,新制度就会因此少了许多支持者。统治者越是凶恶,其实越表明他的恐慌和虚弱,而历史就像印度诗人泰戈尔所说,“总是在耐心地等待被侮辱和被压迫者的胜利”。

(完)

如何找到正在热传的微博客图片?

转摘!

via 博客园-旁观者 by 旁观者 on 9/7/09

郑昀 20090906

引子

话说昨天康爷突然冒出这么一句“@zhengyun 玩聚出一个twitpic榜吧?”

大致翻了翻,第一,Twitpic 自己好像确实不提供Trend和Board功能;第二,Twitter用户多数是用 Twitpic 做图片分享的,虽然 Flickr 也提供了 Flickr2Twitter API,也有 flic.kr 短域名,但至少对于微博客中文用户来说用 Flickr 意味着风险,所以用得少些。

流行的memeTracker网站 Reddit 和 TweetMeme 都提供按 Domain 查看,所以能从这个角度看到 Twitter 上都在传播什么图:

不过,第一它们都没办法让你只看华人发的图,第二毕竟那只是Twitpic而已。

想了想,做这么一个东西其实很容易,但只监测 Twitpic 的图,应用点有局限性。

so,稍微扩展一下,鼓捣了几个小时,目前的 玩聚PP 服务可以支持对 Twitter 上传播的

  • Twitpic ;
  • Flickr

图片地址进行监测,把那些正在热播或者评论最多的热图找出来,并列出缩略图。

 

Popular Photos

我管它叫“Popular Photos(in Twitter)”,目前传播的宿主是Twitter,未来不一定,也许会加入对其他微博客服务或社会化媒体的监测。

界面就是这样:

玩聚PP

它近乎实时地提供最新/随机/最热几种排序浏览方式,还能:

上榜的指标是参与评论/转发的人数足够多。

 

缩略图的获取方式

Twitpic 的比较容易,因为它规则很明确:http://twitpic.com/show/<size>/<image-id>

比如 你拿到了  这样的最终访问页面URL,那么150×150的缩略图地址就是:

http://twitpic.com/show/thumb/gu9z6 。

Flickr 的会比较麻烦些,需要专门调用API getSizes 来调用获取真实的缩略图链接地址:

flickr.photos.getSizes

Returns the available sizes for a photo. The calling user must have permission to view the photo.

比如前面 fenng 的围脖上Yahoo! 是禁忌词中图片地址是:

那么,3895118312 就是 photo-id 。找一个你熟悉开发语言的Flickr API封装库,把这个ID提交给getSizes方法,同时指定size为Small,就会得到:

Media_httpfarm4staticflickrcom342038951183125e04bb396emjpg_hfsxgjvbaddewie

的缩略图地址。

对于这个缩略图地址的含义,Flickr 给出了解释

字母后缀mstb指的是如下:

  • s:小正方形 75x75
  • t:缩图,最长边为 100
  • m:小,最长边为 240
  • b:大,最长边为1024
  • o:原始图片根据来源格式可以是 jpg、gif 或者png。

举例:

  • Media_httpfarm4staticflickrcom342038951183125e04bb396emjpg_hfsxgjvbaddewie
    farm-id: 4
  • server-id: 3420
  • photo-id: 3895118312
  • secret: 5e04bb396e
  • size: m大致就是这样了。
 
郑昀@玩聚PP 北京报道 20090906
 

还推荐您阅读我的最近文章:

1、Social Media附加价值开发的四大模式 20090831;

2、分析人的网络轨迹和碎片之四大模式 20090830;

3、从Social Media海量数据中寻找专家的五大手法 20090903;

4、Social Media排序算法的四种模式 20090905。

--------------------------
09博客园纪念T恤
新闻:专访谷歌中国新高管:希望在原来基础把事情做好
网站导航: 博客园首页  个人主页  新闻  社区  博问  闪存  找找看

网易科技说:谷歌中国将于今日早间9时宣布李开复离职

via 谷奥——探寻谷歌的奥秘 by musiXboy on 9/3/09

网易科技讯 9月4日消息,网易科技今日早间从可靠渠道获悉,谷歌大中华区总裁李开复将于今日宣布离职,尽管目前仍无法判断他的离开对谷歌造成怎样的影响,但离职一事已对谷歌技术团队的员工造成冲击。

据了解,谷歌中国将于今日早间9时召开全体员工大会,并宣布李开复离职的消息,谷歌公关部未对这一消息作出更多评论。这是互联网上多年如一日般谣传李开复离职的传闻后,唯一得到证实的一次。

还有3个小时……

UpdateKeso说:确认了:开复8月5日提交离职报告,今天正式宣布。

还有2个小时……

Via 网易科技


© musiXboy 发表于 谷奥——探寻谷歌的奥秘 (http://google.org.cn), 2009. | 没有评论 | 永久链接 | 关于谷奥 | 投稿/爆料
Post tags: , ,

There must be something wrong with this FEED.

via Chris Pirillo by Chris on 9/3/09


Add to iTunes | Add to YouTube | Add to Google | RSS Feed

Yes, I’m on Twitter. I’ve been there for a few years now, and have a bajillion or so followers. I think I’ve now tweeted out around 10,000 different things. Not too shabby, eh? I’m assuming you’re on Twitter, since it seems most everyone is. But do you know who else in your city or area is also running around on Twitter? Do you know how to find them and see what they’re talking about?

If you answered no, then you need to check out Geo Chirp. GeoChirp helps you search for people Twittering for specific things in a specific area. Let’s say you want to find people in your location who are tweeting about the iPhone. Select the area in your map on Geo Chirp, and set the radius to 1-50 miles. Enter keyword iPhone and boom! You have a list of all of the people in your area who are talking about the iPhone on Twitter. This definitely makes GeoChirp the most powerful tool to connect with people of similar interests in a particular geography.

You don’t only have to search your own area, of course. What if you were attending a conference in Texas in the near future, but you live in Oregon? You might want to use Geo Chirp to find out what people in the conference area are talking about, and who the movers and shakers are in that location. Did I forget to mention that Geo Chirp gives you a list of the most popular Twitter users in any given area?

If you want to find out who is tweeting in your area, and what they’re talking about, Geo Chirp makes it exceedingly easy and fast. There honestly is no simpler way to accomplish these tasks. Everyone uses Twitter for different reasons, and there’s no one right way. Try using Geo Chirp to help you find out what’s happening in your area.

Backgrounds In CSS: Everything You Need To Know

via Smashing Magazine by Michael Martin on 9/2/09


 

Backgrounds are a core part of CSS. They are one of the fundamentals that you simply need to know. In this article, we will cover the basics of using CSS backgrounds, including properties such as background-attachment. We’ll show some common tricks that can be done with the background as well as what’s in store for backgrounds in CSS 3 (including four new background properties!).

Working With Backgrounds in CSS 2

Overview

We have five main background properties to use in CSS 2. They are as follows:

  • background-color: specifies the solid color to fill the background with.
  • background-image: calls an image for the background.
  • background-position: specifies where to place the image in the element’s background.
  • background-repeat: determines whether the image is tiled.
  • background-attachment: determines whether the image scrolls with the page.

These properties can all be merged into one short-hand property: background. One important thing to note is that the background accounts for the contents of the element, including the padding and border. It does not include an element’s margin. This works as it should in Firefox, Safari and Opera, and now in IE8. But in IE7 and IE6 the background does not include the border, as illustrated below.


Background does not extend to the borders in IE7 and IE6.

Basic Properties

Background color
The background-color property fills the background with a solid color. There are a number of ways to specify the color. The follow commands all have the same output:

background-color: blue; background-color: rgb(0, 0, 255); background-color: #0000ff;

The background-color property can also be set to transparent, which makes any elements underneath it visible instead.

Background image
The background-image property allows you to specify an image to be displayed in the background. This can be used in conjunction with background-color, so if your image is not tiled, then any space that the image doesn’t cover will be set to the background color. Again, the code is very simple. Just remember that the path is relative to the style sheet. So, in the following snippet, the image is in the same directory as the style sheet:

background-image: url(image.jpg);

But if the image was in a sub-folder named images, then it would be:

background-image: url(images/image.jpg);

Background repeat
By default, when you set an image, the image is repeated both horizontally and vertically until the entire element is filled. This may be what you want, but sometimes you want an image to be displayed only once or to be tiled in only one direction. The possible values (and their results) are as follows:

background-repeat: repeat;         /* The default value. Will tile the image in both directions. */ background-repeat: no-repeat;         /* No tiling. The image will be used only once. */ background-repeat: repeat-x;         /* Tiles horizontally (i.e. along the x-axis) */ background-repeat: repeat-y;         /* Tiles vertically (i.e. along the y-axis) */ background-repeat: inherit;        /* Uses the same background-repeat property of the element's parent. */

Background position
The background-position property controls where a background image is located in an element. The trick with background-position is that you are actually specifying where the top-left corner of the image will be positioned, relative to the top-left corner of the element.

In the examples below, we have set a background image and are using the background-position property to control it. We have also set background-repeat to no-repeat. The measurements are all in pixels. The first digit is the x-axis position (horizontal) and the second is the y-axis position (vertical).

/* Example 1: default. */ background-position: 0 0;        /* i.e. Top-left corner of element. */ /* Example 2: move the image to the right. */ background-position: 75px 0; /* Example 3: move the image to the left. */ background-position: -75px 0; /* Example 4: move the image down. */ background-position: 0 100px;


The image can be set to any position you like.

The background-position property also works with other values, keywords and percentages, which can be useful, especially when an element’s size is not set in pixels.

The keywords are self-explanatory. For the x-axis:

  • left
  • center
  • right

And for the y-axis:

  • top
  • center
  • bottom

Their order is exactly like that of the pixels values, x-axis value first, and y-axis value second, as so:

background-position: top right;

Percentage values are similar. The thing to remember here is that when you specify a percentage, the browser sets the part of the image at that percentage to align with that percentage of the element. This makes more sense in an example. Let’s say you specify the following:

background-position: 100% 50%;

This goes 100% of the way across the image (i.e. the very right-hand edge) and 100% of the way across the element (remember, the starting point is always the top-left corner), and the two line up there. It then goes 50% of the way down the image and 50% of the way down the element to line up there. The result is that the image is aligned to the right of the element and exactly half-way down it.


The smiley face is aligned as it would be if it was set to right center.

Background attachment
The background-attachment property determines what happens to an image when the user scrolls the page. The three available properties are scroll, fixed and inherit. Inherit simply tells the element to follow the background-attachment property of its parent.

To understand background-attachment properly, we need to first think of how the page and view port interact. The view port is the section of your browser that displays the Web page (think of it like your browser but without all the toolbars). The view port is set in its position and never moves.

When you scroll down a Web page, the view port does not move. Instead, the content of the page scrolls upward. This makes it seem as if the view port is scrolling down the page. Now, when we set background-attachment:scroll;, we are telling the background that when the element scrolls, the background must scroll with it. In simpler terms, the background sticks to the element. This is the default setting for background-attachment.

Let’s see an example to make it clearer:

background-image: url(test-image.jpg); background-position: 0 0; background-repeat: no-repeat; background-attachment: scroll;


As we scroll down the page, the background scrolls up until it disappears.

But when we set the background-attachment to fixed, we are telling the browser that when the user scrolls down the page, the background should stay fixed where it is — i.e. not scroll with the content.

Let’s illustrate this with another example:

background-image: url(test-image.jpg); background-position: 0 100%; background-repeat: no-repeat; background-attachment: fixed;


We have scrolled down the page here, but the image remains visible.

The important thing to note however is that the background image only appears in areas where its parent element reaches. Even though the image is positioned relative to the view port, it will not appear if it’s parent element is not visible. This can be shown with another example. In this one, we have aligned the image to the bottom-left of the view port. But only the area of the image inside the element is visible.

background-image: url(test-image.jpg); background-position: 0 100%; background-repeat: no-repeat; background-attachment: fixed;


Part of the image has been cut off because it begins outside of the element.

The Background Shorthand Property
Instead of writing out all of these rules each time, we can combine them into a single rule. It takes the following format:

background: <color> <image> <position> <attachment> <repeat>

For example, the following rules…

background-color: transparent; background-image: url(image.jpg); background-position: 50% 0 ; background-attachment: scroll; background-repeat: repeat-y;

… could be combined into the following single line:

background: transparent url(image.jpg) 50% 0 scroll repeat-y;

And you don’t have to specify every value. If you leave a property out, its default value is used instead. For example, the line above has the same output as:

background: url(image.jpg) 50% 0 repeat-y;

Common Uses Of Backgrounds

Aside from their obvious use of making elements more attractive, backgrounds can be used for other purposes.

Faux Columns

When using the CSS property of float to position layout elements, ensuring that two (or more) columns are the same length can be difficult. If the lengths are different, then the background of one of the columns will be shorter than the background of the other, spoiling your design.

Faux columns is a very simple background trick that was first written up on A List Apart. The idea is simple: instead of applying a separate background for each column, apply one background image to the parent element of the columns with that image containing the designs for each column.

Text Replacement

Our choice of fonts on the Web is very limited. We could get custom fonts by using tools such as sIFR, but they require users to have JavaScript enabled. An easier solution that works on any browser is to create an image of the text in the font you want and use it as the background instead. This way, the text still appears in the markup for search engines and screen readers, but browsers will show your preferred font.

For example, your HTML markup could look like this:

<h3 class="blogroll">Blogroll</h3>

If we have a 200 by 75 pixel image of this text in a nicer font, then we could display that instead using the CSS as follows:

h3.blogroll {         width: 200px;         height: 75px;        /* So that the element will show the whole image. */         background:url(blogroll-text.jpg) 0 0 no-repeat;        /* Sets the background image */         text-indent: -9999px;        /* Hides the regular text by moving it 9999 pixels to the left */         }

Easier Bullet Points

Bullet in an unordered list can look clunky. Instead of dealing with all of the different list-style properties, we can simply hide the bullets and replace them with a background image. Because the image can be anything you like, the bullets will look much nicer.

Here, we turn a regular unordered list into one with sleek bullets:

ul {         list-style: none; /* Removes default bullets. */         } ul li {         padding-left: 40px; /* Indents list items, leaving room for background image on the left. */         background: url(bulletpoint.jpg) 0 0 no-repeat;         }

Backgrounds in CSS 3

CSS 3 has many changes in store for backgrounds. The most obvious is the option for multiple background images, but it also comes with four new properties as well as adjustments to current properties.

Multiple Background Images

In CSS 3, you will be able to use more than one image for the background of an element. The code is the same as CSS 2, except you would separate images with a comma. The first declared image is positioned at the top of the element, with subsequent images “layered” beneath it, like so:

background-image: url(top-image.jpg), url(middle-image.jpg), url(bottom-image.jpg);

New Property: Background Clip

This brings us back to the issue discussed at the beginning of this article, about backgrounds being shown beneath the border. This is described as the “background painting area.”

The background-clip property was created to give you more control over where backgrounds are displayed. The possible values are:

  • background-clip: border-box;
    backgrounds displayed beneath the border.
  • background-clip: padding-box;
    backgrounds displayed beneath the padding, not the border.
  • background-clip: content-box;
    backgrounds displayed only beneath content, not border or padding.
  • background-clip: no-clip;
    the default value, same as border-box.

New Property: Background Origin

This is used in conjunction with background-position. You can have the background-position calculated from the border, padding or content boxes (like background-clip).

  • background-origin: border-box;
    background-position is calculated from the border.
  • background-origin: padding-box;
    background-position is calculated from the padding box.
  • background-origin: content-box;
    background-position is calculated from the content.

A good explanation of the differences between background-clip and background-origin is available on CSS3.info.

New Property: Background Size

The background-size property is used to resize your background image. There are a number of possible values:

  • background-size: contain;
    scales down image to fit element (maintaining pixel aspect ratio).
  • background-size: cover;
    expands image to fill element (maintaining pixel aspect ratio).
  • background-size: 100px 100px;
    scales image to the sizes indicated.
  • background-size: 50% 100%;
    scales image to the sizes indicated. Percentages are relative to the size of containing element.

You can read up on some examples of special cases on the CSS 3 specifications website.

New Property: Background Break

In CSS 3, elements can be split into separate boxes (e.g. to make an inline element span across several lines). The background-break property controls how the background is shown across the different boxes.

The possible values are:

  • Background-break: continuous;: the default value. Treats the boxes as if no space is between them (i.e. as if they are all in one box, with the background image applied to that).
  • Background-break: bounding-box;: takes the space between boxes into account.
  • Background-break: each-box;: treats each box in the element separately and re-draws the background individually for each one.

Changes to Background Color

The background-color property has a slight enhancement in CSS 3. In addition to specifying the background color, you can specify a “fall-back color” that is used if the bottom-layer background image of the element cannot be used.

This is done by adding a forward slash before the fall-back color, like so

background-color: green / blue;

In this example, the background color would be green. However, if the bottom-most background image cannot be used, then blue would be shown instead of green. If you do not specify a color before the slash, then it is assumed to be transparent.

Changes to Background Repeat

When an image is repeated in CSS 2, it is often cut off at the end of the element. CSS 3 introduces two new properties to fix this:

  • space: an equal amount of space is applied between the image tiles until they fill the element.
  • round: the image is scaled down until the tiles fit the element.

An example of background-repeat: space; is available on the CSS 3 specifications website.

Changes to Background Attachment

The background-attachment has a new possible value: local. This comes into play with elements that can scroll (i.e. are set to overflow: scroll;). When background-attachment is set to scroll, the background image will not scroll when the element’s content is scrolled.

With background-attachment:local now, the background scrolls when the element’s content is scrolled.

Conclusion

To sum up, there is a lot to know about backgrounds in CSS. But once you wrap your head around it, the techniques and naming conventions all make good sense and it quickly becomes second nature.

If you’re new to CSS, just keep practicing and you’ll get the hang of backgrounds fast enough. If you’re a seasoned pro, I hope you’re looking forward to CSS 3 as much as I am!

About the Author

Michael Martin writes about Web design, WordPress and coding at Pro Blog Design. Check it out for advice on making the most of your blog’s design, or follow him on Twitter.

(al)


© Michael Martin for Smashing Magazine, 2009. | Permalink | 30 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: ,

Facebook Friends For Sale: This Time It’s Not a Game

via Mashable! by Jennifer Van Grove on 9/2/09

con manWith all the buzz around social media, opportunistic and shady businesses are savvy to the fact that those with less than perfect intentions want to take the easy street to instant credibility.

Enter social media salesman, uSocial, a company that has become somewhat notorious for previously selling Diggs and Twitter followers. In both instances, the startups tried to have them shutdown, but uSocial is back at it, and this time their promise is thousands of Facebook friends or fans.

uSocial is selling “targeted” Facebook fans and friends to would-be purchasers, starting at $177.30 for 1,000 friends or fans and going all the way up to 5,000 friends and 10,000 fans if you’re willing to shell out $654.30 or $1167.30, respectively. Buyer beware.

Why buy Facebook buddies? According to the company, “every Facebook fan or friend you have is generally worth $1 to you per month, which is a figure anyone using this site correctly can back up. This means that even on a purchase of a 1,000 friend pack, you will not only return your investment in the first month, but earn more than five times what you’ve invested. Try and tell us that’s not a great investment.”

uSocial

Regardless of value, you’re probably wondering how they’re managing the automatic friend/fan process. While the actual methodology is kept hidden, uSocial says that should you provide them with your ID and your targeting preferences and they’ll take care of the rest. You’ll just have to trust them with the rest of the details, as any more info requires that you complete the PayPal transaction.

Of course, as long as there is social currency in having friends and followers, there will be services that exploit people’s desires to build up their networks. But, you can bet on those Facebook friends that uSocial’s scheme won’t last too long. Facebook is likely to follow in the footsteps of Digg and Twitter and move to shut the service down as soon as they get wind of it.

In the meantime, are you brave enough to admit that you would pay for Facebook friends or followers? What’s your take on uSocial’s services? Should Facebook shut them down? Share your thoughts in the comments.

Image courtesy of iStockphoto, RyanJLane.


Reviews: Digg, Facebook, Twitter, iStockphoto

Tags: facebook, facebook friends, usocial