手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜Qcloud , 注册 | 登陆
浏览模式: 标准 | 列表Tag:facebook

官方wiki:Configuring PhpStorm IDE for Yii

如果到facebook上关注一下yii framework的群组,会发现有人在介绍yiicookbook.org,里面是一本关于1.1的书。
然后去yii framework官方上搜索一下phpstorm,会发现同一个人在说自己用phpstorm,问phpstorm有没有什么支持。结果官网说暂时好象不支持。。。
然后再搜索了一下,发现在yii的官网有一个简单的例子在说如何让项目支持yii framework。看了一下,发现,大多数都用过,只有第一点,说是把yiilite.php过滤掉。这个其实很重要了,否则有些变量就会出现提示两次。
OK,来看官网的wiki吧:http://www.yiiframework.com/wiki/92/configuring-phpstorm-ide-for-yii

Code completion

  1. Exclude yiilite.php from index:
    • File → Settings → IDE Settings → File Types.
    • yiilite.php to Ignore files and folders.
  2. Exclude not used directories, specify resources.
    • File → Settings → Project settings → Directories.
    • Mark framework/cli/views, protected/runtime and assets as excluded.
    • Mark website root as resource root.
  3. Specify path to your PHP.
    • File → Settings → Project settings → PHP → PHP Home.
  4. If your project uses common Yii framework folder you need to include it.
    • File → Settings → Project settings → PHP → PHP Home → Add.
    • Specify a path to framework directory.
  5. If you are writing unit tests you can include PHPUnit to get code completion:
    • File → Settings → Project settings → PHP → PHP Home → Add.
    • Specify a path to PHPUnit.
  • Complete code: Ctrl+Space.
  • Show method arguments: Ctrl+Q.

Testing

You should install PHPUnit to run unit tests.

  1. PHPUnit.
    • Follow official PHPUnit installation guide.
    • In your IDE: Run → Edit configurations.
    • Press "+".
    • Name: anything.
    • Test: depending on what do you want to test select an appropriate option. Specify path.
    • Use XML configuration file: specifying path to phpunit.xml. Often it's path_to_your_webroot/protected/tests/phpunit.xml.
  • To run tests use SHIFT+F10.
OK,现在这样就可以简单的支持yii framework了。只是phpstorm还是有点小问题,因为提示的时候不会显示phpdoc的信息。纠结,啥时候会有doc的提示呢?

Tags: phpstorm, yii, facebook

紫狐浏览器教程

最近,紫狐浏览器可是很火呀,于是我也想感受一下,但是却发现我打开非死不可的时候,仍然是该页无法显示。怎么办?难道紫狐是骗人的?
理论上不应该呀,而且很多人也确实是可以访问的呀。于是 上网找了一些资料,找到的第一篇是:紫狐浏览器Windows Vista && Win7 帮助手册,是啊,我在win7下面当然是看这个喽。。。
于是,我复制了本文到我博客上。(最终我操作成功了,后面再说)
原文如下:(紫狐官方站打不开了。。可能是因为我不在教育网吧)

清华大学最近推出了一款紫狐浏览器,专门供IPv6上网使用。 紫狐浏览器是清华大学互联网服务与系统研究中心与Mozilla中国合作研发的一款基于Firefox内核的面向清华校内的浏览器。以下我们介绍紫狐浏览器在Windows Vista && Win7操作系统下的使用方法:

1, 查看网络连接是否正常。若能访问普通网页,则继续往下看;

2, 查看 IPv6 服务是否启动。步骤为“ 开始菜单 ” -> “ 控制面板 ” -> “ 系统和安全 ” -> “ 管理工具 ” -> “ 服务 ”中,找到 IP Helper 服务 , 启动运行 并 将启动类型设置为“自动” ,这样即使重启之后也能自启动,保证服务正常运行;

3, 设置Teredo来获取IPv6地址。
(1) 在 ” 开始 ”->” 运行 ” 中输入 cmd 打开 Windows 命令行。在命令行中输入 ipconfig /all ,会出现若干网络配置信息,找到 Tunnel adpter (隧道适配器) Teredo Tunneling Pseudo-Interface , 查看它是否有正确的 IPv6 地址 ( 以 2001:0 为前缀的 ipv6 地址 ),若有说明正确;
(2) 在 ” 开始 ”->” 运行 ” 中输入 cmd 打开 Windows 命令行。 在命令行中输入 netsh int teredo show state ,出现以下 Teredo 参数 :

若“ 状态 ”为 dormant / qualified ,则表示已连接服务器并获得 IPv6 地址。若不是此种情况,可能是类似如下图的状况,

若“ 状态 ”为 offline ,同时提示错误“无法访问主服务器地址”或其他错误,则表示未连接上服务器。 在命令行状态下输入 netsh int ipv6 set teredo client teredo.ipv6.microsoft.com ,此命令用于向 Teredo 服务器请求 IPv6 地址 。 之后需要稍等一阵 ,因为在请求连接 Teredo 服务器,此时输入 netsh int ipv6 show teredo 出现如下图:

即 “ 状态 ”为 probe ,表示正在请求中 。 10 秒之后(或稍长些), 输入 netsh int ipv6 show teredo 查看 Teredo 参数 ,若状态为 qualified ,则 OK ,用 ipconfig /all 查看 Teredo 适配器是否获得以 2001:0 为前缀的 IPv6 地址。若状态仍未 offline ,需要再次尝试连接服务器,即输入之前的命令。 因不能确保一次就能连上,可能出现需要多次连接的情况 。
(3) 若以上操作之后仍不能获得以 2001:0 为前缀的 IPv6 地址,或在 ipconfig /all 命令后找不到 Microsoft Teredo Tunneling Adapter ,则需要检查是否系统禁用或卸载了 Teredo 适配器。“开始菜单” -> “控制面板” -> “管理工具” -> “计算机管理”,打开“计算机管理”后,在主界面左框中选择“系统工具”下的“设备管理器”,然后右框选择“网络适配器”,并在工具栏 -> “查看” -> “显示隐藏的设备”,看看是否有 Microsoft Tun Miniport Adapter 或 Microsoft Teredo Adapter ,右键查看其是否已启用;
(4) 有时可能不小心将 Teredo Adapter 卸载了,但又找不到如何重新安装。选中设备管理器工具栏 à 操作 à 添加过时硬件,进入“添加硬件向导”,下一步 à 搜索并自动安装硬件 ( 推荐 ) à 下一步 à 在“从以下列表,选择要安装的硬件类型”下的列表中,选择“网络适配器”,然后下一步 à 选择网络适配器,厂商选“ Microsoft ”,网络适配器选“ Microsoft Teredo Tunneling Adapter ” à 然后下一步,继续到底即可。

4, 如果系统中有多个在连接状态的网卡(包括虚拟网卡等),可尝试以下步骤:

(1) 首先设备管理器中禁用除 Internet 链接外的其他所有网卡。
(2) 然后再运行紫狐浏览器。
(3) 如果需要使用多网卡,请在紫狐浏览器能打开 ipv6 网站后再启用多网卡。

5, 若以上方法试过后仍不能连上,请与管理员联系, E-mail: admin-ciss@tsinghua.edu.cn

-----EOF----
注意,请注意。。。按照上述的内容可能仍然是打不开的,你会发现在ipconfig /all的时候还是没有2001开头的IPV6地址,原因是,你在 netsh int teredo show state时显示的状态为:客户端位于托管网络中,关于这个状态,据说google上的资料也不多,但主要是因为路由器的原因。好吧,如果显示“客户端位于托管网络”中,请看下文,文章来自:http://neolee.com/web/tedero-ipv6-internet-through-home-router/ ,或者点击Tedero穿家用路由器IPv6上网

最近一直想尝试通过IPv6上一些精彩、特别的网站,可家里是通过路由器上网的。网上大多数IPv6法必须通过直连的方式上网,对于路由器来说只能关闭DHCP、外网线插LAN口做交换机。

这点对于我家比较麻烦,毕竟和家里老人一会儿说上网只要开电脑、一会儿又变成还要点击宽带连接,对老人的接受能力是种“随残”。

而传说中的六飞也迟迟未能支持win7 X64。因此一直没能成功……

后来@felixonmars 给了我巨大提点,通过Teredo可以穿过路由器上网!醍醐灌顶!所以这两天老N潜心研究网上各类关于tedero上IPv6的文章。

可是捣鼓了半天,tedero通道状态永远如下:

大小: 34.19 K
尺寸: 500 x 184
浏览: 1152 次
点击打开新窗口浏览全图

ipconfig /all 中:

大小: 25.3 K
尺寸: 500 x 123
浏览: 1147 次
点击打开新窗口浏览全图

“客户端位于托管网络中”、teredo没有所谓的2001开头ipv6地址!!!

太恶心了!!!

Google+百度了我近3个小时(也许是我搜索能力问题),终于发现对于路由器用户来说还需要修改teredo的【类型】参数,内网用户类型不是client而是enterpriseclient。

If it says “Client is in a managed Network” it means teredo has detected that you are in a corperate environment. If that is the case you need to set the Teredo type to Enterprise client “Netsh int ter set state enterpriseclient”.

以上文字来自Microsoft的论坛

因而问题解决了,在管理员权限的cmd窗口中输入:

Netsh int ter set state enterpriseclient

对于Windows XP,你可以使用这句命令:

netsh interface ipv6 set teredo enterpriseclient

然后我们再看看teredo状态:

大小: 42.06 K
尺寸: 497 x 249
浏览: 1260 次
点击打开新窗口浏览全图

就这么简单,teredo就联通了!!

teredo对于内网用户上ipv6来说真是福音啊!

现在老N上youtube无需代理,完全不卡,哈哈哈哈哈!!!!

===备注====

1. 设置teredo请参见此文:开启 Teredo 通道, 提前感受 IPv6 (for 非教育网用户)【如何打开teredo,请看此文

2. 一些ipv6的hosts,请看此文档。(请先越墙)

3. 客户端位于托管网络中=Client is in a managed Network ,如需搜索更多关于这点的内容,老N建议你搜英文的。。。。中文关于teredo这点的信息真的太少了。google中仅有几条,完全没有帮助。。。

4. 再来做个记录:如果teredo状态为dormant的话,你可以尝试关闭(或者打开=。=)系统防火墙试试看,dormant和防火墙有关……

---EOF---

OK,打开紫狐,我们已经可以上网了(我想,以后应该会有ipv6的firefox插件的吧。。。。而不应该自己转换。)

 

Tags: 紫狐, 非死不可, facebook, youtube, twitter

Facebook图片管理架构(转帖学习一下)

Facebook 的照片分享很受欢迎,迄今,Facebook 用户已经上传了150亿张照片,加上缩略图,总容量超过1.5PB,而每周新增的照片为2亿2000万张,约25TB,高峰期,Facebook 每秒处理55万张照片,这些数字让如何管理这些数据成为一个巨大的挑战。本文由 Facebook 工程师撰写,讲述了他们是如何管理这些照片的。

旧的 NFS 照片架构
老的照片系统架构分以下几个层:
# 上传层接收用户上传的照片并保存在 NFS 存储层。
# 照片服务层接收 HTTP 请求并从 NFS 存储层输出照片。
# NFS存储层建立在商业存储系统之上。

因为每张照片都以文件形式单独存储,这样庞大的照片量导致非常庞大的元数据规模,超过了 NFS 存储层的缓存上限,导致每次招聘请求会上传都包含多次I/O操作。庞大的元数据成为整个照片架构的瓶颈。这就是为什么 Facebook 主要依赖 CDN 的原因。为了解决这些问题,他们做了两项优化:
# Cachr: 一个缓存服务器,缓存 Facebook 的小尺寸用户资料照片。
# NFS文件句柄缓存:部署在照片输出层,以降低 NFS 存储层的元数据开销。

新的 Haystack 照片架构
新的照片架构将输出层和存储层合并为一个物理层,建立在一个基于 HTTP 的照片服务器上,照片存储在一个叫做 haystack 的对象库,以消除照片读取操作中不必要的元数据开销。新架构中,I/O 操作只针对真正的照片数据(而不是文件系统元数据)。haystack 可以细分为以下几个功能层:
# HTTP 服务器
# 照片存储
# Haystack 对象存储
# 文件系统
# 存储空间

存储
Haystack 部署在商业存储刀片服务器上,典型配置为一个2U的服务器,包含:
# 两个4核CPU
# 16GB – 32GB 内存
# 硬件 RAID,含256-512M NVRAM 高速缓存
# 超过12个1TB SATA 硬盘

每个刀片服务器提供大约10TB的存储能力,使用了硬件 RAID-6, RAID 6在保持低成本的基础上实现了很好的性能和冗余。不佳的写性能可以通过高速缓存解决,硬盘缓存被禁用以防止断电损失。
文件系统
Haystack 对象库是建立在10TB容量的单一文件系统之上。文件系统中的每个文件都在一张区块表中对应具体的物理位置,目前使用的文件系统为 XFS。
Haystack 对象库
Haystack 是一个简单的日志结构,存储着其内部数据对象的指针。一个 Haystack 包括两个文件,包括指针和索引文件:

大小: 17.5 K
尺寸: 500 x 231
浏览: 1234 次
点击打开新窗口浏览全图

Haystack 对象存储结构

大小: 36.73 K
尺寸: 500 x 232
浏览: 1365 次
点击打开新窗口浏览全图

大小: 11.91 K
尺寸: 432 x 154
浏览: 1473 次
点击打开新窗口浏览全图

指针和索引文件结构

Haystack 写操作
Haystack 写操作同步将指针追加到 haystack 存储文件,当指针积累到一定程度,就会生成索引写到索引文件。为了降低硬件故障带来的损失,索引文件还会定期写道存储空间中。

Haystack 读操作
传到 haystack 读操作的参数包括指针的偏移量,key,代用Key,Cookie 以及数据尺寸。Haystack 于是根据数据尺寸从文件中读取整个指针。

Haystack 删除操作
删除比较简单,只是在 Haystack 存储的指针上设置一个已删除标志。已经删除的指针和索引的空间并不回收。

照片存储服务器
照片存储服务器负责接受 HTTP 请求,并转换成相应的 Haystack 操作。为了降低I/O操作,该服务器维护着全部 Haystack 中文件索引的缓存。服务器启动时,系统就会将这些索引读到缓存中。由于每个节点都有数百万张照片,必须保证索引的容量不会超过服务器的物理内存。

对于用户上传的图片,系统分配一个64位的独立ID,照片接着被缩放成4种不同尺寸,每种尺寸的图拥有相同的随机 Cookie 和 ID,图片尺寸描述(大,中,小,缩略图)被存在代用key 中。接着上传服务器通知照片存储服务器将这些资料联通图片存储到 haystack 中。

每张图片的索引缓存包含以下数据

大小: 15.81 K
尺寸: 500 x 178
浏览: 1480 次
点击打开新窗口浏览全图

Haystack 使用 Google 的开源 sparse hash data 结构以保证内存中的索引缓存尽可能小。
照片存储的写/修改操作
写操作将照片数据写到 Haystack 存储并更新内存中的索引。如果索引中已经包含相同的 Key,说明是修改操作。

照片存储的读操作
传递到 Haystack 的参数包括 Haystack ID,照片的 Key, 尺寸以及 Cookie,服务器从缓存中查找并到 Haystack 中读取真正的数据。

照片存储的删除操作
通知 Haystack 执行删除操作之后,内存中的索引缓存会被更新,将便宜量设置为0,表示照片已被删除。

重新捆扎
重新捆扎会复制并建立新的 Haystack,期间,略过那些已经删除的照片的数据,并重新建立内存中的索引缓存。

HTTP 服务器
Http 框架使用的是简单的 evhttp 服务器。使用多线程,每个线程都可以单独处理一个 HTTP 请求。

结束语
Haystack 是一个基于 HTTP 的对象存储,包含指向实体数据的指针,该架构消除了文件系统元数据的开销,并实现将全部索引直接存储到缓存,以最小的 I/O 操作实现对照片的存储和读取。

本文国际来源:http://www.facebook.com/FacebookEngineering#/note.php?note_id=76191543919&ref=mf

中文翻译来源:COMSHARP CMS 官方网站

我的来源:http://zys.8800.org/index.php/archives/334

Tags: facebook, 架构

Facebook新开源项目Flashcache:加速MySQL

Facebook发布了通过将数据缓存在SSD硬盘加速MySQL的内核模块Flashcache。代码已经放到Github上,目前只测试了Linux kernel版本2.6.18和2.6.20。
Facebook 称,Flashcache是其内部开发用于帮助扩展InnoDB/MySQL数据库,但同时Flashcache也是作为一个通用的缓存模块设计的,因此 能用在任何搭建在块设备之上的应用程序。

对于InnoDB,当工作集不与 InnoDB缓冲池一致,由于更多的工作集缓存在快速的媒介如固态硬盘上,将能显著的改进读取延迟。

--EOF--
没有测试,也无法测试,毕竟我没有SSD硬盘。纯新闻http://www.cnbeta.com/articles/109988.htm,突然发现,原来cnbeta的文章已经11万左右了

Tags: facebook, flashcache, mysql

合理使用google reader

google reader恐怕很多人都在用吧。当然在国内也有很多人使用有道的RSS订阅,鲜果的RSS订阅。
不过,我仍然是说的google reader,在我的博客里以前也介绍过。

今天我说的合理使用Google reader,是指另类的用法。
一些技术型 的博客,往往都是在国外,而正常的时候,我们好象都无法访问,怎么办?只能借着偶尔翻墙的时机,订阅那些博客的RSS源。如果你用的是国内的RSS订阅,那么也很有可能是无法订阅的。所以,GoogleReader就派用场了。
再深再远,他都能够帮你订阅回来,只是。。。无法回复而己

借着这个功能,我订阅了几个写mysql proxy的作者的博客。
当然更重要的是,我订阅了twitter上的两位:孙燕姿和萧亚轩。。

所以,懂的喽。。。什么非死不可啦,推特啦,博客班点啦。哈哈。。。都可以尝试订阅你所关注的对象,除了这个嘛。。。。你当然仍然不能回复 。除非你为google reader推插件。。。
如果你用firefox写个插件,或许也能够回复哦?

Tags: twitter, reader, facebook