March 8, 2014
golang中for循环方法的差异
"用for循环遍历字符串时,也有 byte 和 rune 两种方式.第一种试为byte,第二种rune。\ngolang中string rune byte 三者的关系 https://blog.haohtml.com/archives/17646\npackage main import ( \u0026#34;fmt\u0026#34; ) func main() { s := \u0026#34;abc汉字\u0026#34; for i := 0; i \u0026lt; len(s); i++ { fmt.Printf(\u0026#34;%c,\u0026#34;, s[i]) } fmt.Println() for _, r := range s { fmt.Printf(\u0026#34;%cn\u0026#34;, r) } } 输出结果:\na,b,c,æ,±,,å,,, a b c 汉 字 "
February 18, 2014
纽约时报网站改版背后的web技术
"原文地址: “The Technology Behind the NYTimes.com Redesign”\n纽约时报英文网站今年进行了一次改版,这次改版不仅仅是给一艘大船重新刷了遍油漆那么简单,除了外观上的重新设计,我们也对代码进行了大量的重构,采用了新的框架,让网站更快,也为以后代码的维护、升级便利性进行了重新设计。 Reed Emmons,是这次改版的负责人,在这篇文章将分享我们如何让纽约时报这首老船更快更酷。\n很少有机会能够在像纽约时报这么老资格和规模的网站进行一场「从头来过」的重构和设计工作,我这里说的从头来过,不仅仅是视觉设计上的重新设计,更是一个重新发明整个数码传媒平台。纽约时报的上次一次视觉改版是在2006年,但是我们得回溯到2000千禧年才有如此规模的从底层的重构和改版。我们决定重构用户端和服务端以支持我们新的服务、设计和新闻报道,比如说更佳的网站性能、响应式布局等等。尽管有些旧有的代码依旧保留或者进行了深度重构,大部分老的代码都被删除或者仅仅是用来做参考。\n静态页面发布:历史的教训 直到今天为止,纽约时报的大部分网页内容还是静态 html 页面,这些页面储存在我们数 …"
December 23, 2013
git stash和git stash pop的用法
"推荐阅读: http://www.cppblog.com/deercoder/archive/2011/11/13/160007.html\n原文: http://gitbook.liuhui998.com/4_5.html\n一、基本操作\n当你正在做一项复杂的工作时, 发现了一个和当前工作不相关但是又很讨厌的bug. 你这时想先修复bug再做手头的工作, 那么就可以用 git stash 来保存当前的工作状态, 等你修复完bug后,执行’反储藏\u0026rsquo;(unstash)操作就可以回到之前的工作里.\n$ git stash save \u0026#34;work in progress for foo feature\u0026#34; 上面这条命令会保存你的本地修改到储藏(stash)中, 然后将你的工作目录和索引里的内容全部重置, 回到你当前所在分支的上次提交时的状态.\n好了, 你现在就可以开始你的修复工作了.\n… edit and test …\n$ git commit -a -m \u0026#34;blorpl: typofix\u0026#34; 当你修复完bug后, 你可以用git stash apply来回 …"
December 14, 2013
Nginx利用多核cpu提高性能_配置参数worker_cpu_affinity
"上篇文章我们介绍了Nginx 的优化方法,这里主要对worker_cpu_affinity参数详细介绍一下.(官方http://nginx.org/en/docs/ngx_core_module.html#worker_cpu_affinity ) 简介 Nginx默认没有开启利用多核cpu,我们可以通过增加worker_cpu_affinity配置参数来充分利用多核cpu的性能。cpu是任务处理,计算最关键的资源,cpu核越多,性能就越好。\n规则设定 (1)cpu有多少个核,就有几位数,1代表内核开启,0代表内核关闭\n(2)worker_processes最多开启8个,8个以上性能就不会再提升了,而且稳定性会变的更低,因此8个进程够用了\n演示实例 两核cpu,开启两个进程 worker_processes 2; worker_cpu_affinity 01 10; 01表示启用了第一个cpu内核,10表示启用了第二个cpu内核\nworker_cpu_affinity 01 10;表示开启了两个进程,第一个进程对应着第一个cpu内核,第二个进程对应着第二个cpu内核\n两核cpu,开启八 …"
November 22, 2013
redmine与git组合配置
"参考:http://www.redmine.org/projects/redmine/wiki/HowTo_Easily_integrate_a_(SSH_secured)_GIT_repository_into_redmine\n在redmine 的”配置”选项里,填写git仓库位置的时候,一定要在写完整的.git路径,如 /data/www/redmine/repos/agent/.git ,否则redmine会无法发现git仓库.\n相关文章:\nhttp://blog.csdn.net/benkaoya/article/details/8762935"
November 19, 2013
linux下使用iostat和pidstat查看进程使用资源情况
"引言\n在查看系统资源使用情况时,很多工具为我们提供了从设备角度查看的方法。例如使用 iostat 查看磁盘io统计信息:\nlinux:~ # iostat -d 3 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 1.67 0.00 40.00 120 以上显示的是从sda的角度统计的结果。当我们需要从进程的角度,查看每个进程使用系统资源的情况,有什么方法吗?\n使用pidstat工具可以获取每个进程使用cpu、内存和磁盘等系统资源的统计信息,pidstat由sysstat rpm包提供,可在suse11使用。下面我们来看pidstat的具体用法。\n默认输出\n执行pidstat,将输出系统启动后所有活动进程的cpu统计信息:\nlinux:~ # pidstat Linux 2.6.32.12-0.7-default (linux) 06/18/12 _x86_64_ 11:37:19 PID %usr %system %guest %CPU CPU Command …… 11:37:19 11452 0.00 0.00 …"
November 14, 2013
sysctl -P 报错 error: “net.bridge.bridge-nf-call-arptables” is an unknown key 的解决办法
"今天在安装openvz的时候(安装教程: http://blog.haohtml.com/archives/14724),修改完内核参数后,执行\n[shell]sysctl -P[/shell]\n后,提示\n[shell]net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 1 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 error: \u0026ldquo;net.bridge.bridge-nf-call-ip6tables\u0026rdquo; is an unknown key error: \u0026ldquo;net.bridge.bridge-nf-call-iptables\u0026rdquo; is an unknown key error: \u0026ldquo;net.bridge.bridge-nf-call-arptables\u0026rdquo; is an …"
November 12, 2013
使用Vagrant在Windows下部署开发环境[转]
"做Web开发少不了要在本地搭建好开发环境,虽然说目前各种脚本都有对应的Windows版,甚至是一键安装包,但很多时候和Windows环境的相性并不是那么好,各麻烦的问题是实际部署的环境通常是Linux,常常还要面临着开发和部署环境不一致,上线前还要大量的调试。更要命的是,如果有很多机器需要装的话,那就真是一个灾难了。\nWindows下玩Linux少不了虚拟机,但装系统依旧是相当费事。在现在什么都在自动化的今天,Vagrant就是这么一个神器,基于Ruby开发,使用开源 VirtualBox 作为虚拟化支持,可以轻松的跨平台部署。\n今天试着把几台机器的环境都换成Vagrant,很爽很顺畅,于是就试着整理了一下使用小结:\n目前所选用的是当前的最新版本Vagrant 1.2.7 (对应的Vagrantfile V2版),VirtualBox 使用的是 4.2.16 准备工作:\n下载安装 VirtualBox : https://www.virtualbox.org/ 下载安装 Vagrant : http://www.vagrantup.com/\n下载需要使用的 box :\n官方提供的范例: …"
November 11, 2013
使用 Vagrant 打造跨平台开发环境
"Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用,“代码在我机子上运行没有问题”这种说辞将成为历史。\n我们可以通过 Vagrant 封装一个 Linux 的开发环境,分发给团队成员。成员可以在自己喜欢的桌面系统(Mac/Windows/Linux)上开发程序,代码却能统一在封装好的环境里运行,非常霸气。\n安装步骤 1. 安装 VirtualBox 虚拟机还是得依靠 VirtualBox 来搭建,免费小巧。 下载地址: https://www.virtualbox.org/wiki/Downloads\n* 虽然 Vagrant 也支持 VMware,不过 VMware 是收费的,对应的 Vagrant 版本也是收费的\n2. 安装 Vagrant 下载地址: http://downloads.vagrantup.com/ 根据提示一步步安装。\n此外,还得下载官方封装好的基础镜像: Ubuntu precise 32 VirtualBox …"
November 9, 2013
lxc学习-安装篇
"安装环境:\nVirtualBox 4.2.18 Centos6.4 64位 内存 1G 安装方法:\n[shell]\nyum -y install gcc libcap-devel libcgroup wget \u0026ldquo;http://downloads.sourceforge.net/project/lxc/lxc/lxc-0.9.0/lxc-0.9.0.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flxc%2Ffiles%2Flxc%2F\u0026amp;ts=1383981486\u0026amp;use_mirror=jaist\u0026quot; tar zxvf lxc-0.9.0.tar.gz cd lxc-0.9.0 ./autogen.sh ./configure make \u0026amp;\u0026amp; make install[/shell]\n这里,在/usr/local/bin 目录里可以看到以 lxc_开头的命令.(注意要将这个目录添加到用户的环境变量里)\n更多学习参考资料请参考: …"