In: ubuntu
10 八 2010代码:
sudo gedit /etc/default/grub
加一行 GRUB_GFXPAYLOAD_LINUX=1024x768x32
其中1024x768x32为你要设置的分辨率。这个分辨率要你的显卡在VBE状态下支持,否则启动过程黑屏,保存后运行
代码:
sudo update-grub
In: 未分类
5 八 2010在
http://baoz.net
看到介绍OmniTTY,其称“
Linux系统管理员利器,重复劳动必备”,可以批量通过ssh登录多台linux机器,并且多台机器同时执行一样的命令。对于这个功能描述就很吸引人的,所以下来看看。
OmniTTY:http://omnitty.sourceforge.net/
依赖:rote-0.2.8.tar.gz
我下载的是当前最新版本omnitty-0.3.0.tar.gz,编译安装很正常:
[root@lvs191 tmp]# tar xvfz rote-0.2.8.tar.gz
rote-0.2.8/
rote-0.2.8/Makefile.in
rote-0.2.8/COPYING
rote-0.2.8/configure.ac
rote-0.2.8/README
rote-0.2.8/demo/
rote-0.2.8/demo/boxshell.c
rote-0.2.8/inject.c
rote-0.2.8/inject_csi.c
rote-0.2.8/inject_csi.h
rote-0.2.8/make-package.sh
rote-0.2.8/rote-config.in
rote-0.2.8/rote.c
rote-0.2.8/rote.h
rote-0.2.8/rote_keymap.c
rote-0.2.8/roteprivate.h
rote-0.2.8/configure
[root@lvs191 tmp]# tar xvfz omnitty-0.3.0.tar.gz
omnitty-0.3.0/
omnitty-0.3.0/Makefile.in
omnitty-0.3.0/COPYING
omnitty-0.3.0/configure.ac
omnitty-0.3.0/README
omnitty-0.3.0/curutil.c
omnitty-0.3.0/curutil.h
omnitty-0.3.0/help.c
omnitty-0.3.0/help.h
omnitty-0.3.0/machine.c
omnitty-0.3.0/machine.h
omnitty-0.3.0/machmgr.c
omnitty-0.3.0/machmgr.h
omnitty-0.3.0/main.c
omnitty-0.3.0/make-package.sh
omnitty-0.3.0/menu.c
omnitty-0.3.0/menu.h
omnitty-0.3.0/minibuf.c
omnitty-0.3.0/minibuf.h
omnitty-0.3.0/omnitty.1
omnitty-0.3.0/TODO
omnitty-0.3.0/CHANGELOG
omnitty-0.3.0/configure
[root@lvs191 tmp]# cd rote-0.2.8
[root@lvs191 rote-0.2.8]# ./configure
checking for gcc… gcc
checking for C compiler default output file name… a.out
checking whether the C compiler works… yes
checking whether we are cross compiling… no
checking for suffix of executables…
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ANSI C… none needed
checking how to run the C preprocessor… gcc -E
checking for egrep… grep -E
checking for ANSI C header files… yes
checking for sys/types.h… yes
checking for sys/stat.h… yes
checking for stdlib.h… yes
checking for string.h… yes
checking for memory.h… yes
checking for strings.h… yes
checking for inttypes.h… yes
checking for stdint.h… yes
checking for unistd.h… yes
checking for stdbool.h that conforms to C99… yes
checking for _Bool… yes
checking for sys/types.h… (cached) yes
checking for unistd.h… (cached) yes
checking for stdlib.h… (cached) yes
checking for string.h… (cached) yes
checking for initscr in -lncurses… yes
checking for forkpty in -lutil… yes
checking for memset… yes
checking for select… yes
checking for setenv… yes
checking for stdlib.h… (cached) yes
checking for GNU libc compatible malloc… yes
checking sys/select.h usability… yes
checking sys/select.h presence… yes
checking for sys/select.h… yes
checking sys/socket.h usability… yes
checking sys/socket.h presence… yes
checking for sys/socket.h… yes
checking types of arguments for select… int,fd_set *,struct timeval *
checking for an ANSI C-conforming const… yes
checking whether time.h and sys/time.h may both be included… yes
checking for inline… inline
checking for pid_t… yes
checking return type of signal handlers… void
configure: creating ./config.status
config.status: creating Makefile
config.status: creating rote-config
[root@lvs191 rote-0.2.8]# make
gcc -g -O2 -Wall -fPIC -MM inject.c inject_csi.c rote.c rote_keymap.c >.depends
gcc -g -O2 -Wall -fPIC -c -o inject.o inject.c
gcc -g -O2 -Wall -fPIC -c -o inject_csi.o inject_csi.c
gcc -g -O2 -Wall -fPIC -c -o rote.o rote.c
gcc -g -O2 -Wall -fPIC -c -o rote_keymap.o rote_keymap.c
gcc -g -O2 -Wall -fPIC -shared -o librote.so.0.2.8 -Wl,-soname=librote.so.0 inject.o inject_csi.o rote.o rote_keymap.o -lutil -lncurses
[root@lvs191 rote-0.2.8]# make install
mkdir -p /usr/local/include/rote
rm -f /usr/local/include/rote/*.h
cp rote.h /usr/local/include/rote
mkdir -p /usr/local/lib
cp librote.so.0.2.8 /usr/local/lib
cd /usr/local/lib && ln -sf librote.so.0.2.8 librote.so
cd /usr/local/lib && ln -sf librote.so.0.2.8 librote.so.0
chmod 755 rote-config
mkdir -p /usr/local/bin
cp -p rote-config /usr/local/bin
———————————————————–
ROTE – Our Own Terminal Emulation Library v0.2.8
Include files installed at: /usr/local/include
Library files installed at: /usr/local/lib
rote-config executable : /usr/local/bin/rote-config
To find out what compiler arguments you should use to
compile programs that use rote, use the rote-config
program (make sure /usr/local/bin is in your path).
———————————————————–
[root@lvs191 rote-0.2.8]# cd ../omnitty-0.3.0
[root@lvs191 omnitty-0.3.0]# ./configure
checking whether libROTE is installed… yes
checking for gcc… gcc
checking for C compiler default output file name… a.out
checking whether the C compiler works… yes
checking whether we are cross compiling… no
checking for suffix of executables…
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ANSI C… none needed
checking how to run the C preprocessor… gcc -E
checking for egrep… grep -E
checking for ANSI C header files… yes
checking for sys/wait.h that is POSIX.1 compatible… yes
checking for an ANSI C-conforming const… yes
checking for sys/types.h… yes
checking for sys/stat.h… yes
checking for stdlib.h… yes
checking for string.h… yes
checking for memory.h… yes
checking for strings.h… yes
checking for inttypes.h… yes
checking for stdint.h… yes
checking for unistd.h… yes
checking for pid_t… yes
checking return type of signal handlers… void
checking for strdup… yes
configure: creating ./config.status
config.status: creating Makefile
[root@lvs191 omnitty-0.3.0]# make
gcc -g -O2 -I/usr/local/include -Wall -DOMNITTY_VERSION=\”0.3.0\” -MM curutil.c help.c machine.c machmgr.c main.c menu.c minibuf.c >.depends
gcc -g -O2 -I/usr/local/include -Wall -DOMNITTY_VERSION=\”0.3.0\” -c -o curutil.o curutil.c
gcc -g -O2 -I/usr/local/include -Wall -DOMNITTY_VERSION=\”0.3.0\” -c -o help.o help.c
gcc -g -O2 -I/usr/local/include -Wall -DOMNITTY_VERSION=\”0.3.0\” -c -o machine.o machine.c
gcc -g -O2 -I/usr/local/include -Wall -DOMNITTY_VERSION=\”0.3.0\” -c -o machmgr.o machmgr.c
gcc -g -O2 -I/usr/local/include -Wall -DOMNITTY_VERSION=\”0.3.0\” -c -o main.o main.c
gcc -g -O2 -I/usr/local/include -Wall -DOMNITTY_VERSION=\”0.3.0\” -c -o menu.o menu.c
gcc -g -O2 -I/usr/local/include -Wall -DOMNITTY_VERSION=\”0.3.0\” -c -o minibuf.o minibuf.c
gcc -g -O2 -I/usr/local/include -Wall -DOMNITTY_VERSION=\”0.3.0\” -o omnitty curutil.o help.o machine.o machmgr.o main.o menu.o minibuf.o -L/usr/local/lib -lrote
[root@lvs191 omnitty-0.3.0]# make install
mkdir -p /usr/local/bin
cp omnitty /usr/local/bin
mkdir -p /usr/local/man/man1
cp omnitty.1 /usr/local/man/man1
[root@lvs191 ~]# omnitty
omnitty: error while loading shared libraries: librote.so.0: cannot open shared object file: No such file or directory
[root@lvs191 ~]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/lib/rfmin/lib
/usr/lib/icc
/usr/local/lib
[root@lvs191 ~]# exec ldconfig
现在可以启动omnitty了。

omnitty的用法还是比较郁闷的,首先F5添加一个主机,添加类似如下“root@172.16.81.191”,然后让你输入密码,登录之后再添加 第二个主机,继续添加第n个主机。添加完毕之后,假设有17个主机,可以按F2、F3上下选择不同的主机,在每个主机上面做不同的操作。
如果想批量,在所有主机上都做一个操作,必须按F1,打开菜单,按t选中所有的活动主机,然后按F7启动批量操作功能(右瞎角红色闪烁!!! MULTICAST MODE !!!),这时候,你的操作在所有机器上都起作用。可以F2/F3上下切换看看效果。
这个工具还是有很多缺点的:不能保存主机列表(左侧是主机列表),下次启动必须再挨个F5添加;如果链接断了,不能再登录了,只能删除重添加才能登录。有待完善的太多了。
In: PHP
22 七 20102010年6月,Google公布全球Top 1000网站。Facebook独占鳌头。
以Facebook现在的经营规模,诸多传统服务器的技术均将崩溃或根本无法支撑。那么面对5亿的活跃用户,Facebook的工程师们又将如何让网站平 稳运转呢?伯乐在线 – 职场博客的这篇文章将展示Facebook的工程师完成这个艰巨任务所用到的一系列软件。
Facebook级别规模的挑战
在我们深入细节之前,先了解一组Facebook不得不面对数据,你就可以想象这种规模。
Facebook所用的软件
从某些方面来说,Facebook还是属于LAMP类型网站,但是,为了配合其他大量的组件和服务,Facebook对已有的方法,已经做了必要的改变、拓展和修改。
比如:
还有定制的系统,比如, Haystack — 高度可扩展的对象存储,用来处理Facebook的庞大的图片;Scribe — Facebook的日志系统。
下面展现给大家的是,全球最大的社交网站Facebook所使用到的软件。
Memcached
Memcached是一款相当有名的软件。它是分布式内存缓存系统。Facebook(还有大量的网站)用它作为Web服务器和MySQL服务器之间的缓存层。经过多年,Facebook已在Memcached和其相关软件(比如,网络栈)上做了大量优化工作。
Facebook运行着成千上万的Memcached服务器,借以及时处理TB级的缓存数据。可以这样说,Facebook拥有全球最大的Memcached设备。
HipHop for PHP
和运行在本地服务器上代码相比,PHP的运行速度相对较慢。HipHop把PHP代码转换成C++代码,提高编译时的性能。因为Facebook很依赖PHP来处理信息,有了HipHop,Facebook在Web服务器方面更是如虎添翼。
HipHop诞生过程:在Facebook,一小组工程师(最初是3位)用了18个月研发而成。
Haystack
Haystack是Facebook高性能的图片存储/检索系统。(严格来说,Haystack是一对象存储,所以它不一定要存储图 片。)Haystack的工作量超大。Facebook上有超过2百亿张图片,每张图片以四种不同分辨率保存,所以,Facebook有超过8百亿张图 片。
Haystack的作用不单是处理大量的图片,它的性能才是亮点。我们在前面已提到,Facebook每秒大概处理120万张图片,这个数据并不包括其CDN处理的图片数。这可是个惊人的数据!!!
BigPipe
BigPipe是Facebook开发的动态网页处理系统。为了达到最优,Facebook用它来处理每个网页的分块(也称“Pagelets”)。
比如,聊天窗口是独立检索的,新闻源也是独立检索的。这些Pagelets是可以并发检索,性能也随之提高。如此,即使网站的某部分停用或崩溃后,用户依然可以使用。
Cassandra
Cassandra是一个没有单点故障的分布式存储系统。它是前NoSQL运动的成员之一,现已开源(已加入Apache工程)。Facebook用它来做邮箱搜索。
除了Facebook之外,Cassandra也适用于很多其他服务,比如Digg。
Scribe
Scribe是个灵活多变的日志系统,Facebook把它用于多种内部用途。Scribe用途:处理Facebook级别日志,一旦有新的日志分类生成,Scribe将自动处理。(Facebook有上百个日志分类)。
Hadoop and Hive
Hadoop是款开源Map/Reduce框架,它可以轻松处理海量数据。Facebook用它来做数据分析。(前面就说到了,Facebook的数据量 是超海量的。)Hive起源于Facebook,Hive可以使用SQL查询,让非程序员比较容易使用Hadoop。(注1: Hive是是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为 MapReduce任务进行运行。 )
Thrift
Facebook在其不同的服务中,使用了不同的语言。比如: PHP用在前端,Erlang用于聊天系统,Java和C++用于其它地方,等等。Thrift是内部开发的跨语言的框架,把不同的语言绑定在一起,使之 可以相互“交流”。这就让Facebook的跨语言开发,变得比较轻松。
Facebook已把Thrift开源,Thrift支持的语言种类将更多。
Varnish
Varnish是一个HTTP加速器,担当负载均衡角色,同时也用于快速处理缓存内容。
Facebook用Varnish处理图片和用户照片,每天都要处理十亿级的请求。和Facebook其他的应用应用一样,Varnish也是开源的。
Facebook可以平稳运行,还得利于其他方面
虽然上面已经提到了一些构成Facebook系统的软件,但是处理如此庞大的系统,本身就是一项复杂的任务。所以,下面还将列出使Facebook能平稳运行的一些东西。
逐步发布&暗启动
Facebook有一个系统,他们称之为“门卫”。该系统可以针对不同种类的用户运行不同的代码。(它简单介绍了代码库中的不同条件。)该系统让Facebook逐步发布新特性、A/B测试、激活仅针对Facebook员工的特性 等等。
门卫系统也让Facebook做些“暗启动”的事情。比如,在某一特性上线之前,可以激活该特性背后的元件。另外,它还可以做模拟压力测试,发现瓶颈和潜在的问题。默默启动一般都是在正式启动之前的2周完成。
实时系统的简介
Facebook会仔细监控自身系统,有趣的是,它还监控每个PHP函数在实时生产环境下的性能。这一实时PHP环境监控是通过一个叫XHProf的开源工具完成的。
逐步禁用某些特性,借以提高性能
如果Facebook遇到性能问题,Facebook有大量的途径来逐步禁用不很重要的特性,以提高其核心特性性能。
尚未提到的东西
虽然这里无法过多深入硬件方面,但硬件绝对是Facebook能达到空前规模的重要因素。比如,和其他大型网站一样,Facebook也用CDN来处理静态内容。Facebook还在美国西部的俄勒冈州建有一超大的数据中心,可以随时增加服务器。
当然了,除了前面已经提到的,还有其他大量的软件没有说到。但是,希望能突出其中非常有特色的。
Facebook和开源之间的“恋情”
Facebook和开源之间联系,此文不能不提,虽不能说Facebook是多么地钟爱开源,但至少可以这样说,Facebook是“爱”着开源的。
Facebook不仅使用(也捐赠)开源软件,比如,Linux、Memcached、MySQL、Hadoop等等,它还内部开发不少软件,并且也将之开源。
Facebook开发的开源工程,包括HipHop、Cassandra、Thrift和Scribe。另外,Facebook也把Tornado开源 了。Tornado是一个高性能的Web服务器框架,由FriendFeed幕后团队开发而成。(2009年8月,Facebook收购 FriendFeed。)
(Facebook所用到的开源软件,可以在Facebook的开源页面找到。)
面临更多的大规模挑战
Facebook以一种令人难以置信的速度成长。它的用户群几乎是成倍增加,活跃用户数量现已接近5亿。而且,谁都无法预测今年底,活跃用户量会到多少。
Facebook甚至成立了一个专门的“成长小组”,该小组不断思考如何让人们使用facebook并融入到facebook中。
这一快速成长,意味着Facebook将遇到不同的性能瓶颈。Facebook会面临来这如下方面的挑战:PV、搜索、上传的图片和状态消息,用户之间的交互和用户和Facebook之间的交互带来的挑战。
这也是Facebook面对的事实。Facebook的工程师们将继续寻求新方法来扩展(这不只是增加服务器的问题了)。比如,随着网站成长,其图片存储系统已经多次完全重写。
所以,我们将看到Facebook的工程师们奔向下一个“山头”。我们相信他们不会辜负众望。毕竟,他们正跨越山头,那个我们大多数人仅能向往的山头;他们正扩展网站,那个用户来自全球各地的网站。当你实现那个里程碑时,你将彪炳史册。
数据来源:Facebook工程师们的报告和博客。
本文首发:伯乐在线 – 职场博客
本文地址:http://blog.jobbole.com/entry.php/73
特殊申明:此文耗费笔者不少精力。如若转载,必须保留本文地址和出处,否则视为侵权。谢谢合作。
In: HTML
7 七 2010转:http://soft.zdnet.com.cn/software_zone/2008/0922/1143214.shtml
在用CSS制作网页过程中可能会碰到图片下面有空隙的问题,最为简单的解决方法是:
在图片的CSS中加 vertical-align:bottom;

In: jquery
27 六 2010<dl>
<dt>品牌:</dt>
<dd>
<div>
<input checked=”checked” type=”checkbox” id=”s0″/>
<label for=”s0″>全部</label>
</div>
<div>
<input type=”checkbox” id=”s0″/>
<label for=”s0″>诺基亚</label>
</div>
<div>
<input type=”checkbox” id=”s0″/>
<label for=”s0″>摩托罗拉</label>
</div>
<div>
<input type=”checkbox” id=”s0″/>
<label for=”s0″>多普达</label>
</div>
</dd>
<div></div>
</dl>
如果被选中checkbox【多普达】点击事件后,第一个全部checkbox要设为没被选中
jQuery(“div:first input[type=checkbox]“,jQuery(this).parent().parent()).attr(‘checked’,”)
jQuery(this).parent().parent()指的是input的父类div再父类就是dd,这个是设置它的作用域,在iframe多级调用里面也是如此设置
详细看:http://www.qk31.com/2010/03/25/jquery-%E5%AD%90%E8%B0%83%E7%88%B6%E5%86%99%E6%B3%95-%E4%BB%A5%E5%8F%8Aiframe%E8%B0%83%E7%88%B6%E8%B0%83%E5%85%B6%E4%BB%96%E5%AD%90iframe-%EF%BC%88children-iframe-find-parent-document-to-set-another/
前面意思:div第一个元素 下面type为checkbox
In: 资料
17 六 2010新闻来源:reencoded.com
Web 流量分析工具多不胜数,从 WebTrends 这样专业而昂贵的,到 Google Analytics 这样强大而免费的,从需要在服务器端单独部署的,到可以从前端集成的,不一而足。本文收集并介绍了10个功能强大的开源 Web 流量分析工具,因为是开源的,因此可以免费部署到你的网站。 TraceWatch

TraceWatch 是一个开源 Web 流量分析程序,支持实时分析,可以提供深度分析报告。

基于 PHP-MySQL,同时,可以像 Google Analytics 那样,通过 JavaScript 或 PHP 脚本集成到网站。

可以生成站点的详细的实时访问报告,基于 PHP 和 MySQL,也可以像 Google Analytics 那样在前端集成。

基于 PHP,内置对 WordPress,Gallery 以及 MediaWiki 的支持。

W3Perl 是一个 Web Log 分析工具。

CrawTrack 是一个很好的 Google Analytics 的开源替用品,提供非常独特的报告,比如,CrawTrack 可以帮你预防诸如 SQL 注射一类的攻击。

BBClone 是一个 Web 计数器,可以提供很详细的访问报告。基于 PHP。

基于 GNU/GPL 开源协议,可以提供很详细的,有关访问者信息的报告,它的 GUI 界面很有趣而且实用,安装也很简单。

可以提供非常强大的,关于网站,FTP 站点,乃至 Email 服务器的访问分析报告,基于 CGI。

Grape 的界面比较简单,功能虽然不多,但很实用。
本文国际来源:reencoded.com 10 amazing open source web analytics (原文作者:denbagus)

http://ryanwilliams.org/2009/jul/28/search-light-jquery-plugin/#post-comments

http://www.webresourcesdepot.com/sliding-top-menu-with-jquery
In: FLASH
15 五 2010
最近评论