• 首页
  • 关于

我自然

Facebook Graph API使用介绍

在 2010年5月5日 上公布 作者为 yankay

Facebook Graph API可以理解为一个可以访问Facebook数据的Web服务。该API提供了对人员,相册,事件等等Facebook对象以及这些对象之间诸如朋友,标签,分享内容等等连接之间的访问。

当您输入一个URL后,会返回一个Json对象

对象的格式参考http://developers.facebook.com/docs/reference/api/。

你可以用同样的方式访问Facebook对象

  • Users: https://graph.facebook.com/btaylor (Bret Taylor)
  • Pages: https://graph.facebook.com/cocacola (Coca-Cola page)
  • Events: https://graph.facebook.com/251906384206 (Facebook Developer Garage Austin)
  • Groups: https://graph.facebook.com/2204501798 (Emacs users group)
  • Applications: https://graph.facebook.com/2439131959 (the Graffiti app)
  • Status messages: https://graph.facebook.com/367501354973 (A status message from Bret)
  • Photos: https://graph.facebook.com/98423808305 (A photo from the Coca-Cola page)
  • Photo albums: https://graph.facebook.com/99394368305 (Coca-Cola’s wall photos)
  • Videos: https://graph.facebook.com/614004947048 (A Facebook tech talk on Tornado)
  • Notes: https://graph.facebook.com/122788341354 (Note announcing Facebook for iPhone 3.0)

你也可以用https://graph.facebook.com/ID/CONNECTION_TYPE访问这些对象的其他信息

  • Friends: https://graph.facebook.com/me/friends
  • News feed: https://graph.facebook.com/me/home
  • Profile feed (Wall): https://graph.facebook.com/me/feed
  • Likes: https://graph.facebook.com/me/likes
  • Movies: https://graph.facebook.com/me/movies
  • Books: https://graph.facebook.com/me/books
  • Notes: https://graph.facebook.com/me/notes
  • Photos: https://graph.facebook.com/me/photos
  • Videos: https://graph.facebook.com/me/videos
  • Events: https://graph.facebook.com/me/events
  • Groups: https://graph.facebook.com/me/groups

参考:http://developers.facebook.com/docs/api

文章分类 未分类 | 发表评论 |

演示文档模板 Made by Html5

在 2010年5月1日 上公布 作者为 yankay

Marcin Wichary , Ernest Delgado和Direct Guo 开发了一个HTML5 Slider。HTML5 Slider的目的,是为了展示即将到来的桌面和移动浏览器的最新功能。

这个Slider十分精美,于是我就把它精化成了一个Slide模板。

感觉用网页做Slide有一些优势:

  • 便于传播,包括搜索引擎友好,浏览器友好,跨平台等,易于放置于网站
  • 简单,html是一门大众语言,至少比Latex beamer简单多了
  • 精彩,借用JavaScript的丰富特性,可以达到的非常丰富的效果
  • 置于浏览器,便于链接其他资源
  • 互动,Slide可以做到和使用者互动和反馈

W3c已经有了专门写Slide的工具Slidey,不过我还是觉的这个模板更实用一点。

Demo

下载

文章分类 未分类 | 发表评论 |

Ubuntu10.4 U盘安装

在 2010年4月28日 上公布 作者为 yankay

Ubuntu10.4明天就要发布了。俺的光驱虽然坏了,但是难掩跃跃欲试的激动。

于是在第一时间找到了支持在Windows下建立Ubuntu10.4自启动U盘方法。

UNetbootin:自启动U盘制作工具。网址http://unetbootin.sourceforge.net/

PS.这个Blog有更多关于Ubuntu U盘的信息,居家旅行,休闲必备。

文章分类 未分类 | 发表评论 |

TortoiseHg中文文件名乱码解决

在 2010年4月28日 上公布 作者为 yankay

基础知识

  • Mercurial(HG)是一个分布式的版本控制系统(VCS)之一。 和GIT类似。
  • HG内建Windows资源管理器前端TortoiseHg是 http://tortoisehg.bitbucket.org/ 可供下载。
  • TortoiseHg 0.8或更高版本,中文已经得到一定支持,可是文件名依旧会乱码。

乱码原因

  1. 在文件名“”可能被包括在内。
    • Windows使用“”分割路径,而Unix是“/”
  2. Windows和Linux环境与不同的编码环境
    • 这个就不必详述了

三种解决办法

win32mbcs
  • 可以解决路径分割符问题
hg-fixutf8
  • hg的python扩展
  • 支持命令行,也支持图形界面
  • 应用程序 网址:Http:/ / Mercurial.selenic.com/Wiki/Fixutf8Extension (英文)
Cygwin的Mercurial
  • Cygwin的1.7文件名处理为UTF – 8。基于这个原因,Cygwin的版本的Linux和Mercurial可用于互操作。然而,TortoiseHg和图形用户界面不可用。
比较表
字码 解决乱码 多个操作系统 图形用户界面
默认 GBK × × ○
win32mbcs GBK ○ × ○
hg-fixutf8 使用UTF – 8 ○ ○ ○
Cygwin 使用UTF – 8 ○ ○ ×

Fixutf8安装方法

  1. 运行 hg clone http://bitbucket.org/stefanrusek/hg-fixutf8。可以得到一个文件夹,
  2. 将这个文件夹拷贝到你想拷贝的地方。我拷贝在C:Program FilesTortoiseHghg-fixutf8
  3. 在C:Usersyankai (yankai是我的用户名)下有一个隐藏文件mercurial.ini,如果没有创建一个,在他后面添上
    [extensions]
    
    fixutf8 = C:Program FilesTortoiseHghg-fixutf8fixutf8.py

ok,乱码问题应该已经解决了。

文章分类 未分类 | 发表评论 |

HTML5中的微数据

在 2010年4月25日 上公布 作者为 yankay

缘起

HTML4,Html5,XHtml1,XHtml1.1,XHtml2….都是W3C的产品,乱乱的一团糟。有一篇漫画《标记语言之乱 ”xhtml2″vs“xhtml1”vs“html5”》,澄清了之间的关系。基本上是将XHtml2已死,天下是Html5和XHtml1的。

微数据

微格式是让网页通过语意相关让内容人机可读的一种方式。Wordpress里内置的XFN就可以算作一种微格式。那么什么是微数据呢?

HTML5提供了一种简易的方式将语义标签融入其中,这项功能就是微数据(Microdata)。根据W3c三月份的会议,微数据的存在就是为了填补微格式在应对类似Rdfa这种比较复杂的系统时的不足。

示例(Html5未完成,不保证和最终版本一致):

<section itemscope itemtype="http://example.org/animals#cat">
 <h1 itemprop="name http://example.com/fn">Hedral</h1>
 <p itemprop="desc">Hedral is a male american domestic
 shorthair, with a fluffy <span
 itemprop="http://example.com/color">black</span> fur with <span
 itemprop="http://example.com/color">white</span> paws and belly.</p>
 <img itemprop="img" src="hedral.jpeg" alt="" title="Hedral, age 18 months">
</section>

从上面这一段HTML可以得到如下信息:有一只猫,他:

Property Value
name Hedral
http://example.com/fn Hedral
desc Hedral is a male american domestic shorthair, with a fluffy black fur with white paws and belly.
http://example.com/color black
http://example.com/color white
img …/hedral.jpeg

你可以使用微格式的Dom模型来访问它:

var cats = document.getItems("http://example.com/feline");
var colors = cat.properties['http://example.com/color'].values;
var result;
if (colors.length == 0) {
  result = 'Color unknown.';
} else if (colors.length == 1) {
  result = 'Color: ' + colors[0];
} else {
  result = 'Colors:';
  for (var i = 0; i < colors.length; i += 1)
    result += ' ' + colors[i];
}

是不是很神奇?

你可以将使用itemtype=”http://microformats.org/profile/hcard”来描述名片信息,也可以用http://microformats.org /profile/hcalenda来描述日历。这样就不用另立标准,使用微格式的标准就可以了。

再谈谈RDFa。RDFa是一个W3C 推荐标准。它扩充了XHTML的几个属性, 网页制作者可以利用这些属性在网页中添加机械可读的元 数据。与RDF数据模型的对应关系使得 RDFa可以将RDF三体嵌入在XHTML文件中,它也使得符合标准的使用端可以从RDFa文件中萃取出这些RDF三体来。推荐一篇学习RDFa的文章, 《RDFa 入门》

事实上RDFa是为Xhtml2开发的,后来迁移到Xhtml1.0上,要想使用RDFa,则文档必须有XML的性质,这就麻烦了。将来非常流行的Html5不是XML,在非XML的 HTML里无法使用XML 命名空间。而Html5已经有比较完善的语义方法了,那么RDFa何去何从?

参见

http://edward.oconnor.cx/2009/05/microdata-microformats-and-rdf

http://www.w3.org/TR/rdfa-in-html/

http://www.w3.org/TR/2010/WD-rdfa-in-html-20100304/

http://www.w3.org/TR/2010/WD-rdfa-core-20100422/

http://www.w3.org/TR/2010/WD-html-markup-20100304/

http://www.w3.org/TR/2010/WD-xhtml-rdfa-20100422/

http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html

Property Value
name Hedral
http://example.com/fn Hedral
desc Hedral is a male american domestic shorthair, with a fluffy black fur with white paws and belly.
http://example.com/color black
http://example.com/color white
img …/hedral.jpeg
文章分类 未分类 | 发表评论 |

在Linux下安装TortoiseHg

在 2010年4月22日 上公布 作者为 yankay

TortoiseHg 是一个跨平台的 Mercurial 分布式版本控制系统的可视化客户端工具。Mercurial 是一个跨平台的分布式版本控制软件,和Git一样。

有个图形界面感觉还是不错的。我的系统环境是Ubuntu。

#! /bin/bash
#添加tortoisehg和mercurial的源
sudo add-apt-repository ppa:tortoisehg-ppa/releases
sudo add-apt-repository ppa:mercurial-ppa/releases
sudo apt-get update
#安装tortoisehg和mercurial的源
sudo apt-get install mercurial python-nautilus tortoisehg
#集成nautilus
mkdir -p ~/.nautilus/tortoisehg/src/ && cd ~/.nautilus/tortoisehg/src/
hg clone https://bitbucket.org/tortoisehg/stable tortoisehg
mkdir -p ~/.nautilus/python-extensions/
ln -s ~/.nautilus/tortoisehg/src/tortoisehg/contrib/nautilus-thg.py ~/.nautilus/python-extensions/

重启就OK啦

文章分类 未分类 | 发表评论 |

Linux下很有潜力的输入法 ibus-sogoupycc

在 2010年4月19日 上公布 作者为 yankay

ibus-sogoupycc 一个非官方的搜狗云拼音客户端。

特点

  • 流畅的输入体验: 多线程请求,无需等待云服务器返回结果,也无需选词,输入无阻塞,前所未有的流畅的输入体验
  • 选词以及纠正模式: 可以选词,可加载多个词库,并对选定的不正确结果进行纠正
  • 支持双拼及简拼: 完整支持各种双拼方案,允许全拼下只输入声母,允许在双拼下使用全拼
  • 灵活的配置: 配置选项很多,涉及到输入法方方面面的细节,配置文件本身是脚本语言,可以非常灵活
  • 支持扩展: 支持扩展,几行代码就可能很实用
  • 离线使用: 即便网络条件不好或者没有网络,输入法也可以整合云服务器和本地词库,或者仅仅依据本地词库给出中文

使用起来很顺手,不过有时会假死,而且有时词语排序不大恰当。不过感觉很有潜力。

文章分类 未分类 | 发表评论 |

初见Giant Global Graph(巨大全球图)

在 2010年4月17日 上公布 作者为 yankay

以前花了很多的时间思考如何能完成语义,后来发现只是本体论的皮毛而已。不过同时也觉得语义网离我们实在是太遥远了 ,总不能所有的开发人员都学会了语义网才行吧,有这时间都能实现共产主义了。

最近,学习Neo4j,看到了一个PPT:

这篇PPT中提及了GGG,中文名为巨大全球图。

以下我写的对是巨大全球图的解释,不是很全,有什么不对,万望斧正。

巨大全球图 (或 GGG) ,是万维网的发明人Tim Berners-Lee在他的博客中提出了新概念.[1]

生物学家对药品,基因感兴趣。商人则是客户,产品,销售等等。而我们都会对朋友,家庭,同学感兴趣。你是否有这样的挫折感: 

你有一些朋友,Web提供了一些分开的服务,如微博,博客等等。有的在FaceBook,有的在LinkedIn,等等等等。当你加入了一个新的照片分享站点的时候,你需要告诉你所有的朋友来添加你为好友。网站都是分开的,内容也是分开的,虽然是同一个人,但系统很显然不知道,他们是一回事。总有一些公司试图包揽一切网络用户,提供统一的体验,但很显然没人能做到。

这是我和我的朋友的心声,有一个"Social Network Portability"社区,但社区网站对此并不感兴趣。网页上的链接是社会网络本身,而不只是网页上的链接。

Tim Berners-Lee认为类似于Facebook社交网站可以构成一个社交网络。他假定人们可以利用"图"来区分整个的网络。巨大全球图是比语义网来的更为贴切的称呼。

GGG提出了社交网络即语义网,虽然觉得有些牵强,不过也得到一些启发,就是社交网络包含有大量的语义信息,也许语义网可以率先在这个区域能实现。归结一下其语义有:

  • 个人资料,如姓名,邮箱,生日等等
  • 关系,包括Follow,被Follow,朋友,同一组织(包括虚拟组织)成员
  • 其文章,或状态等非结构化信息

如果能将Web上的社交网站信息加以整合,会达到什么效果呢?

  • 人肉。。。。
  • 人以类聚,物以群分。进行人物性格的挖掘,进行定点销售或广告,寻找潜在客户
  • 轻松找到所有小学同学的Email,并群发一条同学会的信息,或者加到一个QQ群中
  • 类似google follow finder。推荐好友
  • 不可告人的阴谋

微软有一个人立方的搜索引擎,以搜索资讯为主。根本无法用在普通人身上。

于是,一个名为FriendMap的项目即将幻化出现。他也是一个“人际关系搜索引擎”,但他关注的是普通人的关系和生活。能给一些应用,如校内,提供一些额外的信息支持,同时让普通的互联网用户对人际关系探寻中找到快乐。

文章分类 未分类 | 发表评论 |

反NoSQL的呼声

在 2010年3月16日 上公布 作者为 yankay

CAP的崩溃

CAP猜想可是NoSQL的基石。上图非常有意思,他从CAP,和数据库种类两个方向对NoSQL进行了分类。

Consistent, Available (CA) Systems 。在分布式方面有些问题,通常是通过复制来解决的。包括

  • Traditional RDBMSs like Postgres, MySQL, etc (relational)
  • Vertica (column-oriented)
  • Aster Data (relational)
  • Greenplum (relational)

Consistent, Partition-Tolerant (CP) Systems 。可用性上有问题但是在各节点数据保存一直。包括:

  • BigTable (column-oriented/tabular)
  • Hypertable (column-oriented/tabular)
  • HBase (column-oriented/tabular)
  • MongoDB (document-oriented)
  • Terrastore (document-oriented)
  • Redis (key-value)
  • Scalaris (key-value)
  • MemcacheDB (key-value)
  • Berkeley DB (key-value)

Available, Partition-Tolerant (AP) Systems 能够使用“最终一致性”保证一直。包括

  • Dynamo (key-value)
  • Voldemort (key-value)
  • Tokyo Cabinet (key-value)
  • KAI (key-value)
  • Cassandra (column-oriented/tabular)
  • CouchDB (document-oriented)
  • SimpleDB (document-oriented)
  • Riak (document-oriented)

射人先射马,擒贼先擒王。虽然CAP只是个经验性总结,但是反NoSQL的簇拥们免不了要对CAP先下毒手。

CAP的证明。大体逻辑是如果要分布式,那么更新数据的时候,要么加锁(或其他技术)保证一致,要么不加锁保证可用;如果两个都想保证,就不能分布式了。可以看得出,这个证明很粗略,没有什么数学公式啥的。自然会被人钻牛角尖。

有人说,为什么一定要加锁才能保证一致?因为数据总是以串行的进入的,所以是一致的。如果保持数据不串行进入而且同时保证一致性呢?

数据的更新不是新数据替换掉旧数 据,就算是顺序发生错误,也是一致的。在实现上可以说是数据库有一个Agent可以以一种积极的态度来防止出现非一致更新。这种系统有如下特点:

  • 支持事务,每个事物都是原子操作
  • 在事务提交阶段可以发现不一致现象,并加以制止
  • 事务提交算法支持分布式

我觉得也可以是一种新型的数据结构实现。

所以CAP应该称为SAP

上面这段文字是从理论层面的反驳,尽管看起来头头是道。。。。说不定是个好想法,可以试一试。比如将数据库日志化,或者根据数据修改操作的唯一ID,来识别先后。再仔细想想,说不定挺有意思的。

RDBMS不具备可扩展性的谎言

刚刚的言论是对NoSQL的攻击,这里则是自保了。

可扩展性是什么?可扩展性是不是要扩展到九重天上太上老君的兜率宫?适合的才是最好的,NoSQL的适用情况并不是太多。

你不需要为了NoSQL花费100万美元。一个中级的Dell服务器就可以满足这个世界上绝大部分的应用了。只要你的应用不是Twitter和Facebook.你可以将这些4核的服务器连起来,形成一个24核的,128GB内存的运算能力,只有$15,000。这已经强大到应付绝大部分应用了。

那些NoSQL簇拥诽谤着RDBMS不具备的扩展性,其实是徒劳的。RDBMS的扩展性实用的,不是无限的。

感觉商业机密比计算能力值钱。风云莫测啊。

引用:

Getting_Real_about_NoSQL_and_the_SQL_Isnt_Scalable_Lie
Brewer’s CAP Conjecture is False
visual-guide-to-nosql-systems

有人就说,为什么一定要加锁才能保证一致?因为数据总是以串行的进入的,如果是序列化,那么版本1和版本2之间就不能直接转换,他们看起来不像同一 个数据的两个版本,而像两个不同的数据。所有更新操作必须来加锁什么的,才能保证不出现脏数据什么的。如果不是序列化呢?数据的更新不是新数据替换掉旧数 据,而是一种操作。数据库有一个Agent可以以一种积极的态度来防止出现非一致更新。这种系统有如下特点:

文章分类 未分类 | 发表评论 |

历年各国生产总值

在 2010年3月15日 上公布 作者为 yankay

写了篇维基百科,准确地说是翻译:
历年各国生产总值

感觉数据有点和想象的不同。

  • 大宋的GDP居然和大汉相似,妄我做了这么多年的宋粉。
  • 印度居然在公元1-1000年的GDP超过中国,虽然有五胡乱华,但好歹也有贞观之治啊。更可恶的是,在鞑子入关的时候又超过了中国。
  • 中国GDP比率占世界最多的时期居然是清朝。看来我国喜欢“放卫星”的传统源远流长啊。
  • 98年居然排第二了。好了,我服了,你比清朝牛。
  • 非洲自古以来就很富有啊,每每排名前五

唯一感觉和想象相同的是

  • 对比公元0年和现在,只有中国排名相似。其他国家早不知哪里去了。意思就是如果我们消失是正常的,我们还存在甚至想复兴,有点不正常。这么一想,平衡多了。
文章分类 未分类 | 发表评论 |
« 上一页
下一页 »

近期文章

  • 听说 Docker 被 kubenetes 抛弃了,怎么办?containerd
  • 公告 – 博客重开了
  • CloudFoundry v2面面谈,内赠MicroCFv2福利
  • Docker能够运行任何应用的“PaaS”云
  • Scala Tour – 精选

近期评论

  • [整理]完美哈希函数(Perfect Hash Function) - 高性能架构探索发表在《最小完美哈希函数简介》
  • Scala Tour – 精选 - Java天堂发表在《Scala Tour – 精选》
  • Golang适合高并发场景的原因分析 - 站壳网发表在《Go-简洁的并发》
  • HBase 官方文档 – 源码巴士发表在《Windows下eclipse的 C++环境配置》
  • Go-简洁的并发-点开发表在《Go-简洁的并发》

归档

  • 2021年6月
  • 2021年3月
  • 2014年2月
  • 2013年9月
  • 2013年5月
  • 2013年1月
  • 2012年11月
  • 2012年9月
  • 2012年8月
  • 2012年3月
  • 2012年2月
  • 2012年1月
  • 2011年11月
  • 2011年10月
  • 2011年9月
  • 2010年10月
  • 2010年8月
  • 2010年7月
  • 2010年6月
  • 2010年5月
  • 2010年4月
  • 2010年3月
  • 2010年2月
  • 2010年1月
  • 2009年10月
  • 2009年9月
  • 2009年8月
  • 2009年7月
  • 2009年6月
  • 2008年10月
  • 2008年8月
  • 2008年7月
  • 2008年6月

分类目录

  • 家庭生活
  • 未分类
  • 每日心得
  • 软件技术

友情链接

  • DaoCloud Enterprise
  • DaoCloud 云原生一体机

CyberChimps WordPress Themes

沪ICP备2021008917号-1 © 颜开