Google Docs支持离线编辑,需要Google Gears

07月 18th, 2008 ychen


docs.gogole.com现在有个offline的功能,只要安装google gears就支持,如图。有了这个,相信更多的人会使用google docs的。还有个重要功能就是,支持发布文档到blog,呵呵,虽然office 2007也支持。但是这个是免费的啊。
google docs还支持pdf的转换,不过好像文档里有图片的话,有问题,图片显示不出来





Posted in 互联网动态, 技术 | No Comments »

360安全卫士v5.0Beta推出杀毒功能

07月 17th, 2008 ychen


暂时是免费的,只要注册个奇虎百科帐号就可以下载杀毒组件和激活码了。

下载:http://sd.360.cn/

Posted in 技术 | No Comments »

Facebook=非死不可

07月 15th, 2008 ychen

看到校内的应用编程大赛,看了一下,文档超级不全,wiki做得也很简单,无奈只好google下,发现是抄facebook的,注册过facebook,但是没开发过facebook的application。找了篇facebook的app hello world来看,也就是上一篇文章。晚上千方百计想上facebook,可是伟大的GFW(Greate Firewall of China今天才知道,土了)就是不让上啊,先后用了proxyfox,firefox的torbutton啊啥的,发现没一个代理好用的。之后莫名其妙得上去了一次facebook,现在又打不开了,唉。果然是“非死不可”啊,搞了个中文的登陆页面又如何呢。GFW说封就封,让你丫得瑟。

Posted in 技术 | No Comments »

Facebook应用hello world(转载自yeeyan)

07月 14th, 2008 ychen

目录

  1. 引言
  2. 创建“Hello World”程序
  3. 在用户信息栏中使用FBML(FaceBook标记语言)
  4. 在用户信息栏中使用mock-AJAX技术
  5. 使用Mysql数据库创建计数器
  6. 将这些例子代码集合到一起
  7. 相关下载

引言

这个教程指导我们如何创建一个名为“tutorialapp”的应用,当你创建自己的程序的时候,它可以作为一个模板。使用这个教程需要你有一个支持php5的web服务器。

最新版本的“tutorialapp”可以在这里(http://tperry256.dreamhost.com/f8/tutorialapp/)找到。访问这个连接的时候,系统会要求你登录到facebook,并且增加“tutorialapp”程序。在很多公司像这样访问服务一个月只需要花费几美元而已。

当你创建了自己的应用,你会使用一个不同的名称不同的服务器。我们把那些会使你的应用与众不同的地方用这种颜色高亮显示。

创建“hello World”程序

  1. 访问:http://developers.facebook.com/
  2. 点击“Get Started
  3. 点击“Add Facebook Developer Application
  4. 一个到“Developer”的链接将显示在Facebook的左边导航栏,进入应用开发
  5. 点击“Setup new Application”按钮
  6. 下面是一些表单的填写步骤
  1. Application Name:在本文中,我们填写“Tutorial Application”–对于你自己的应用,你要填写自己不同的名称。
  2. 点击“Terms of service
  3. 点击“Optional Fields”链接,来进行更详细的配置
  4. Support E-mail:你在Facebook的注册Email会自动填入,但可能你并不希望自己的个人Email被所有使用你应用的人知道,所以也可以填写一个你可以使用的其他Email。
  5. CallBack Url:在本文中,我们填写“’http://tperry256.dreamhost.com/f8/tutorialapp/”。你应该填入不同的URL,通常情况下,你要填写你自己服务器上运行这个应用的目录的URL。
  6. Canvas Page URL:http://apps.facebook.com/在本文中,我们填写“tutorialapp”–你必须为自己的应用填写一个不同的名称。
  7. Use FBML:保持默认设置即可。
  8. Application Type:保持此处设置为:“website”
  9. Can your application be added to Facebook:设置“yes”,然后进行详细设置
  10. TOS URL:留空即可。
  11. Post-Add Url:在本文中,我们填写“’http://apps.facebook.com/tutorialapp/”,对于你自己的应用,一般你应该填写自己一个不同的面板页的完整路径。
  12. Default FBML:输入“hello”
  13. 其他的设置按照安装默认即可。
  14. Side Nav Url:在本文中,我们填写“http://apps.facebook.com/tutorialapp”,对于你自己的应用,也应该填写自己不同面板页的完整路径。
  15. 其他设置使用默认即可。

点击“Submit”按钮提交。
进入“My Application”页面,检查刚才的应用是否已经创建。
拷贝php5最新版的客户端库文件到你的服务器端应用程序的目录。
在后面的“相关下载”中有库文件的一些下载地址。如果你使用一个类UNIX 的shell,并且当前位于应用程序的目录,那么可以运行下面的命令:

wget http://developers.facebook.com/clientlibs/facebook-platform.tar.gz
tar zxvf facebook-platform.tar.gz
cp facebook-platform/client/facebook.php .
cp facebook-platform/client/facebookapi_php5_restlib.php .
rm -rf facebook-platform.tar.gz facebook-platform

11. 建立一个“appinclude.php”文件,该文件要被你的应用的所有php文件在头部包含。将如下代码粘贴到文件中:

<?phprequire_once 'facebook.php';

$appapikey = '';
$appsecret = '';
$facebook = new Facebook($appapikey, $appsecret);
$user = $facebook->require_login();

//[todo: change the following url to your callback url]
$appcallbackurl = ”;

//catch the exception that gets thrown if the cookie has an invalid session_key in it
try {
    if (!$facebook->api_client->users_isAppAdded())
          {
              $facebook->redirect($facebook->get_add_url());
           }
     }
catch (Exception $ex)
 {
  //this will clear cookies for your application and redirect them to a login prompt
  $facebook->set_user(null, null);
 $facebook->redirect($appcallbackurl);
}

12. 将其中的“app_key”和“secret”替换成你自己的。他们将显示在应用开发网站的的“My Applications”页面中,你同时要将我们的“call back URL”换成你自己的。

13. 创建一个“index.php”文件,它将是你的应用的主页面,将如下代码粘贴进去:

<?phprequire_once 'appinclude.php';

echo "<p>hello $user</p>"$$

14. 在浏览器中输入你创建的应用的回调地址,你也可以输入面板页的路径,都会访问到“index.php”这个主页。总之,不管哪种方式,都是要在你的浏览器中输入地址 :-)

这是我们这个应用的回调地址:http://tperry256.dreamhost.com/f8/tutorialapp/

这是我们这个应用的面板页地址:http://apps.facebook.com/tutorialapp/

15. 点击“I agree”接受你的应用的服务条款,然后点击“Add [你的应用的名称]”。

16. 接着系统会自动转向到面板页,其中包含了“index.php”的运行的输出结果。

17. 在这个应用中,进入你的用户信息栏中,你会发现“hello”字符,这个是你在前面设置的默认FBML。

18. 最后,从左边的导航栏可以返回到面板页。

在个人信息栏中使用FBML

  1. 下面是“index.php”的一个扩展版本,它可以将用户在表单中填写的字符串显示在用户的信息栏中
  2. 注意:提交空字符串会导致用户信息栏的无法显示!
<?php
require_once 'appinclude.php';

echo "<p>hello $user</p>"$$

if (isset($_REQUEST['profiletext']))
{
 $facebook->api_client->profile_setFBML($_REQUEST['profiletext'], $user);
 $facebook->redirect($facebook->get_facebook_url() . ‘/profile.php’);
}

echo ‘<form action=”" method=”get”>’;
echo ‘<input name=”profiletext” type=”text” size=”30″ value=”"><br>’;
echo ‘<input name=”submit” type=”submit” value=”Display text on profile”>’;
echo ‘</form>’;

在用户信息栏中使用mock-AjAX技术

  1. 下面的代码使用FBML的mock-AJAX技术在用户信息栏中增加一个表单,会给用户一种信息栏被动态更新的假象。
  2. 注意“index.php”文件的最上面对mock-AJAX进行调用的if语句。
<?php
if (isset($_REQUEST['mockfbmltext']))
{
 echo $_REQUEST['mockfbmltext'];
 exit;
}

require_once ‘appinclude.php’;

echo “<p>hello $user</p>”$$

$fbml = <<<EndHereDoc<fb:subtitle>This is the subtitle</fb:subtitle>

<form><input name=”mockfbmltext” type=”text” size=”30″><br />
<input type=”submit”  clickrewriteurl=”$appcallbackurl”
clickrewriteid=”preview” value=”Draw text below”/>
<br />
<div id=”preview” style=”border-style: solid; border-color: black;
 border-width: 1px; padding: 5px;”>
</div></form>EndHereDoc;

$facebook->api_client->profile_setFBML($fbml, $user);

echo “<p>the following form was added to the profile box:</p>”$$

echo $fbml;

使用Mysql数据库创建计数器

  1. 这个例子需要你在服务器上创建一个php脚本可以访问的数据库。
  2. 如果你没有数据库,就新建一个。
  3. 在这个数据库中新建一个名为“counter”的数据表,表中有一个名为“count”的integer类型的列。
  4. 创建一个新文件名为“dbappinclude.php”,将下面的代码粘贴进去,别忘了替换你自己的数据库地址,用户,密码和数据库名称。
<?php
require_once 'appinclude.php';

$dbhost = '';$dbuser = '';$dbpass = '';$dbname = '';

$conn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname, $conn);

function query($q)
{
 global $conn;
 $result = mysql_query($q, $conn);
 if (!$result)
 {
    die("Invalid query -- $q -- " . mysql_error());
}
return $result;}

5. 现在在浏览器中访问下面这个新版本的“index.php”,主页将显示一个计数器,并且没访问一次“index.php”,计数器就会更新一次。

<?php
require_once ‘dbappinclude.php’;

echo “<p>hello $user</p>”$$

$rs = query(”select count from counter”);
if ($row = mysql_fetch_assoc($rs)) {
$count = $row['count'];
query(”update counter set count=count+1″);
} else {
query(”insert into counter values (1)”);
$count = 1;
}

echo “<p>the count is $count</p>”$$

将这些例子代码集合到一起

  1. 这里是一个最终版本的“index.php”,将上面的例子集合到了一起,假定你已经在前一个例子中创建了“dbappinclude.php
<?php
if (isset($_REQUEST['mockfbmltext']))
{
echo $_REQUEST['mockfbmltext'];
exit;
}

require_once ‘dbappinclude.php’;

echo “<p>hello $user</p>”$$

$rs = query(”select count from counter”);
if ($row = mysql_fetch_assoc($rs))
{
 $count = $row['count'];
 query(”update counter set count=count+1″);
}
else
{
query(”insert into counter values (1)”);
$count = 1;
}

echo “<p>the count is $count</p>”$$

if (isset($_REQUEST['profiletext']))
{
 $facebook->api_client->profile_setFBML($_REQUEST['profiletext'], $user);
 $facebook->redirect($facebook->get_facebook_url() . ‘/profile.php’);
}

echo ‘<form action=”" method=”get”>’;
echo ‘<input name=”profiletext” type=”text” size=”30″ value=”"><br>’;
echo ‘<input name=”submit” type=”submit” value=”Display text on profile”>’;
echo ‘</form>’;

$fbml = <<<EndHereDoc<form><input name=”mockfbmltext” type=”text” size=”30″>
<br /><input type=”submit”  clickrewriteurl=”$appcallbackurl”
clickrewriteid=”preview” value=”Draw text below”/>
<br /><div id=”preview” style=”border-style: solid; border-color: black;
 border-width: 1px; padding: 5px;”>
</div>
</form>EndHereDoc;

$facebook->api_client->profile_setFBML($fbml, $user);

echo “<p>the following form was added to the profile box:</p>”$$

echo $fbml;

相关下载

  1. facebook_client.tar.gz — php5的最新客户端库文件
  2. tutorialapp.tar.gz — 将文中例子合并到一起的代码。在你自己的服务器上运行时需要替换其中的“app_key”,“application secret”和数据库信息
  3. tutorialapp.zip –和上面tutorialapp.tar.gz内容相同,为zip压缩格式

Posted in 技术 | No Comments »

TD-SCDMA包月套餐

07月 8th, 2008 ychen


除了可视电话还有啥应用?

Posted in 互联网动态, 技术 | No Comments »

RSS系列四:管理并避免RSS过量的8个有效建议

06月 26th, 2008 ychen

Rss是一个让人惊奇的高科技,通过Rss阅读器,你能够浏览不同的网站和博
客,它能为你节省很多的时间,因为如果你在你的阅读器里订阅了你想要阅读的内容,你就不必每天去网站上浏览你喜欢的博客。除了能够为你节省时间,它也能将
你带入到一个信息和知识的世界,它能让你接触到你所感兴趣领域里最新的信息。而且你只要在你的RSS阅读器里就可以浏览到所有你想要看的东西。

但正是因为RSS阅读器有这么多的好处,它很容易使人上瘾。是的,你可以通过RSS阅读器订阅很多你所喜欢的文章,每天你会花很多时间来读上面的文章,这时候你会发现你自己已经成为RSS的俘虏,你需要做些努力来改变这个情况。

以下8个建议可以帮助你更好的管理你的RSS阅读器,避免你过量阅读里面的文章。

1.制定一个“主要”或者“每日”文件夹

你可以在你的阅读器里面设置很多不同的文件夹,但是我强烈推荐你创建一个命名为“主要”或者“每日”的文件夹,这样你就可以将阅读的内容归类,哪些是你最喜欢的,哪些是你每天都要阅读的或者是首先要阅读的。

2.制定一个“新闻”文件夹

在你最喜欢的博客/网站,或许你已经订阅了NY Times 和 Techmeme。将这些新闻内容放在一个单独的“新闻”文件夹里。不要将他们列入你的主要阅读文件。每天都有大量和博客或者是网站有关的新闻,因此你最好单独设立一个文件夹来存放这些文章。

3.使用快捷键

大部分的阅读器都会提供快捷键。我是用谷歌阅读器,它就有很多的快捷键,这样你就可以更快的阅读文章。因此无论你使用的是什么阅读器,你都要学会利用快捷键去更快的阅读文章。

4.控制你的时间

如果你认为你每天阅读了太多的东西,并且沉溺于其中,你就要为你的阅读设定一个时间框架。你不应该花大量的时间阅读而不去完成重要的任务。

5.创建一个“未阅读“文件夹

如果你看到一篇值得你过后一个字一个字去阅读的文章,你可以把它转入“未阅读“的文件夹。你可以设置一个固定的时间阅读未阅读文件夹,如果你只是将他们标为未读,随着你阅读器里的新闻越来越多过后你就有可能忘记了。

6.有需要的话在你阅读过的文章上做个记号

你刚度假回来,发现你的阅读器里有1000篇甚至是更多的文章。你应该怎么办呢?我想最好的方法就是给这些文章做上已阅读的标记,因为你有太多的文章需要阅读了。但是在你这么做以前,先看看下面这个建议。

7.调查

在你将订阅的文章标上已阅读前,你总是会搜索一些关键词和你感兴趣的某一领域来了解最新的发展动态。很多的阅读器,如谷歌和FeedDemon都有很好的搜索设置,可以帮助你更方便的阅读。

8.间或分析

我们遇到新的博客,很喜欢这个博客将他订阅到你的阅读器中。这是RSS支持的,但是有空的时候你应该分析一下你的阅读习惯,看看你关注的是什么文章,有哪些是你应该删掉的。这再一次取决于你的阅读器提供什么样的工具。比如说,FeedDemon有一个Reports功能,Google Reader提供Trends功能。这里有一篇文章向你解释了如何使用谷歌阅读器的动态功能来避免RSS过量阅读的问题。

我希望以上的信息和建议能够帮助养成更好更有效的阅读习惯。

-Abhijeet

Posted in 技术 | No Comments »

RSS系列三:RSS订阅软件GreatNews

06月 25th, 2008 ychen

试了挺多RSS订阅的软件,包括FeedDemon,SharpReaderRss,国内的周博通,新浪的等,国外的有些不支持中文,或者支持不好,有些中文显示还有乱码。

现在我用的是GreatNews,支持多国语言,支持unicode,而且速度比较快,还有绿色版。其他也没什么好介绍了。对,还有支持proxy,import/export rss列表(以opml或者xml格式)这些个基本大家都支持的功能。

下面是截图:

image

官方下载地址是:http://www.curiostudio.com/

Posted in 技术 | No Comments »

RSS系列二:RSS的应用

06月 24th, 2008 ychen

如果RSS已经应用到几乎互联网的各个角落,一般大的网站都提供RSS的输出,网上也有很多RSS订阅软件,及在线的RSS订阅服务。在线的RSS订阅比较有名的是zhuaxia.com跟google的google reader等。

RSS的输出跟应用很简单,输出的站点在更新的时候就会同时更新它的输出rss的xml文件,比如我的这个WP搭建的blog平台也一样,一般的blog开源平台或者sina,sohu等大型blog站也都会提供rss输出。当你更新内容的时候,输出的xml也跟着更新了。而订阅的软件或者网站呢,一般都是会定时的去读一下那个xml文件。如果有更新,就把这部分新内容down下来。

RSS的用途大致如此,下回介绍RSS的具体用法,比如订阅器,在线RSS订阅。

Posted in 技术 | No Comments »

RSS系列一:什么是RSS?

06月 24th, 2008 ychen

什么是RSS呢?

RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,是目前使用最广泛的XML应用。RSS搭建了信息迅速传播的一个技术平台,使得每个人都成为潜在的信息提供者。发布一个RSS文件后,这个RSS Feed中包含的信息就能直接被其他站点调用,而且由于这些数据都是标准的XML格式,所以也能在其他的终端和服务中使用。

以下摘自wikipedia:

RSS is a family of Web feed formats used to publish frequently updated content such as blog entries, news headlines, and podcasts in a standardized format.[2] An RSS document (which is called a "feed", "web feed"[3], or "channel") contains either a summary of content from an associated web site or the full text. RSS makes it possible for people to keep up with web sites in an automated manner that can be piped into special programs or filtered displays.[3]

The benefit of RSS is the aggregation of content from multiple Web sources in one place. RSS content can be read using software called an "RSS reader", "feed reader" or an "aggregator", which can be web-based or desktop-based. A standardized XML file format allows the information to be published once and viewed by many different programs. The user subscribes to a feed by entering the feed’s link into the reader or by clicking an RSS icon in a browser that initiates the subscription process. The RSS reader checks the user’s subscribed feeds regularly for new content, downloading any updates that it finds and provides a user interface to monitor and read the feeds.

The initials "RSS" are used to refer to the following formats:

  • Really Simple Syndication (RSS 2.0)
  • RDF Site Summary (RSS 1.0 and RSS 0.90)
  • Rich Site Summary (RSS 0.91).

RSS formats are specified using XML, a generic specification for the creation of data formats. Although RSS formats have evolved since March 1999,[4] the RSS icon ("") first gained widespread use in 2005/2006.

The Firefox and Internet Explorer 7 Feed icon.这个是rss的图标,不过还有许多不同的版本。但都大同小异。说了这么多,其实RSS就是一个规定格式的xml。

Posted in 技术 | No Comments »