Macbook OS X 安装配置zsh

May 29th, 2016 no comment
屏幕快照 2016-05-29 11.50.50

换了新macbook pro retina 13后折腾了下号称终极shell的zsh。 把安装文档记录下: terminal 默认shell换为zsh: chsh -s /bin/zsh 安装oh-my-zsh: git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc 安装autojump: brew install autojump 编辑.zshrc,修改plugsin: plugins=(git python adb brew autojump gradle) 加入如下内容: alias cls=’clear’ alias ll=’ls -l’ alias la=’ls -a’ alias s=’ssh’ alias vi=’vim’ alias grep=”grep –color=auto” alias -s html=vi # 在命令行直接输入后缀为 html 的文件名,会在 TextMate 中打开 alias […]

Putty使用公钥认证时,报错:Disconnected: No supported authentication methods available(server sent:public key) 问题的解决

January 4th, 2014 1 comment
putty-error

Putty使用公钥认证时,按照常规方法设置,一直报错:Disconnected: No supported authentication methods available (server sent:public key)。

使用AutoHotkey修改windows 下触摸板改为“自然滚动”

August 27th, 2013 no comment

macbook使用习惯后,都喜欢了所谓的“触摸板自然滚动”,原因很简单,和iphone、ipad等触屏保持一致。 一直寻找windows下的解决方案,经过一段时间终于找到了AutoHotkey这个软件。 下载AutoHotkey http://www.autohotkey.com/,然后安装。 新建文件reverse-roll.ahk,输入内容: #MaxHotkeysPerInterval 200 WheelUp:: Send {WheelDown} Return WheelDown:: Send {WheelUp} Return 如果有报错说是MaxHotkeysPerInterval不够的话,继续加大第一行的数值。 然后右键点击这个文件,选compile script,生成exe文件,拖动到 开始-> 启动 里即可。

Mac OS X词典功能使用,支持屏幕取词

July 7th, 2013 no comment
1

Mac OS X自带的字典功能其实很强大:

Facebook HipHop on ubuntu 12.04安装笔记

December 22nd, 2012 no comment

最近看n多报道说facebook的HipHop的VM性能已经超过的编译版的,所以特意尝试了下Facebook的HipHop,现在把安装笔记记录一下。

NUMA微架构

September 8th, 2011 no comment
uma-architecture

现在开始补日志,逐步的扫清以前写了一半的和“欠账未还的”。半年之前开的头,今天先把NUMA说完。 PC硬件结构近5年的最大变化是多核CPU在PC上的普及,多核最常用的SMP微架构:

MMORPG网游架构分析

July 14th, 2011 1 comment

近两年的网游开发暂时告一段落,这段有时间总结一下。 试图从四个方面聊聊MMORPG的软件架构,: 整体构架 服务器端架构 3D引擎 游戏逻辑 要说的东西很多,其中也有很多不是我所擅长的,尽力而为吧。

使用GPU加速H.264编码分析

July 14th, 2011 2 comments

继前面的“GPGPU”和“CUDA和OpenCL”的简介后,接下来分析一个具体的使用案例:是否可以用GPU搭建一个高性能的H.264编解码服务器?

CUDA和OpenCL

July 14th, 2011 4 comments
CUDA_Arch

接前文“GPGPU”。 虽然我们可以使用已有的图形API来调用GPU,但是通过前文的分析,这个过程冗长且复杂。严重违反了程序员的优雅、和lazy原则。需要去学习图形学的一些知识,了解texture、shader等图形学专用概念,而且需要学习CGSL或者HLSL等shader着色语言。而且还要熟悉OpenGL和DirectX等图形学API,这一箩筐的知识没有一个一年半载是搞不定的。而且这样的方式不符合正常程序的编写习惯,所以难以优化。

GPGPU简介

July 13th, 2011 no comment
GPU_moore

过去的一周时间研究了一下GPU做通用计算以及CUDA和OpenCL,下面会分几篇文章总结最近的成果。

简述软件包管理系统

July 5th, 2011 no comment

四月份写的一篇blog,就差个结尾,今天补上。 软件包管理是个很大的话题,希望我能说清楚这事。

如何写一个为SSD优化的数据库?

July 5th, 2011 no comment

SSD应该是近几年来硬件技术最nb的革命,困扰计算机性能的最短木板--磁盘IO终于有了巨大的突破。而且SSD在未来的几年中会快速普及(我还琢磨着给我笔记本换SSD)。 前一段cm同学也想做一个MVCC支持的k-v数据库 ,现有的数据库都是根据几年前的硬件水平(小内存、无NUMA、机械磁盘)进行的设计的,不可能针对SSD专门优化,SSD上的MySQL性能提升应该是只用了SSD IOPS超高这一个特性。在SSD未来几年应该能广泛普及的前提下,针对SSD的数据库优化是必须的。集中查了查资料,聊聊想法,有不对的地方欢迎各位补充。

使用文件系统snapshot做数据库归档备份

May 12th, 2011 no comment
lvm

昨天下午的技术讨论会上说到了数据库的按时间点的进行实时备份和归档,当时的讨论都是基于日志如何来做。 这个问题需要做到以下几点: 因备份而引起的中断数据库服务的时间尽可能短; 能够迅速的让数据库使用备份的数据rollback; 归档的备份数据能在专门的备份机统一保存,方便本机失效后的处理; 如果可能,归档备份的数据能做到增量备份,以节省备份机的磁盘空间,同时方便快速传输。 从数据库本身解决这个问题,可能受困于已有的数据库设计和代码,不非常容易。换个思路,可以基于fs的snapshot来做。 在*nix系统下功能最强的snapshot首推zfs,本身支持文件系统快照,支持增量备份,并内置了zfs send工具能直接把备份快照、或增量备份快照发送到另外一台物理机器上(也必须是zfs)。但必须使用FreeBSD 8以上或者是 OpenSolaris。但是由于公司的机器都是GNU/Linux的,退而求其次选择LVM。 在家里的E8200 + Debian 6.0.0 i386系统上做了测试,首先是使用lvm创建分区,创建了一个名为main的60GB大小的Volume Group,同时在里面建立了一个名为main0的10GB的Logical Volume挂载“/”,并格式化为ext3。 拷入6GB的数据文件,然后创建snapshot: # lvcreate -s -L 7G -n snap-`date +%Y%m%d%H` /dev/main/main0 这一步消耗时间只有0.5s左右,而且测试了拷入20GB的数据文件,snapshot时间基本无变化,详细看截图: 然后在/dev/main/下新加入了snap-`date +%Y%m%d%H` LVM逻辑卷,可以挂载此snapshot分区: # mount /dev/main/snap-`date +%Y%m%d%H` ~/backup 随后就可以tar成gzip包,然后rsync集中保存了。 删除snapshot: # umount -f ~/backup# lvremove /dev/main/snap-`date +%Y%m%d%H` 对于数据库的操作来说,拿MySQL举例: # mysql –uroot –p -h localhost mysql> flush […]

FreeBSD在线开启ipfw

May 10th, 2011 no comment

在FreeBSD 7.1 amd64版下,由于默认的内核编译选项没有并加入以下内容: options IPFIREWALL options IPFIREWALL_DEFAULT_TO_ACCEPT 所以在启用ipfw的时候,会启用默认禁止的全部连接的规则,那么直接的后果是把ssh的连接踢下线,并切断外界到这个服务器一切端口的连接请求。 解决方案,在启用ipfw后,马上加入一条允许所有请求的规则: kldload ipfw && ipfw add 65534 allow ip from any to any 另外需要注意一点:绝对禁止使用/sbin/ipfw -q -f flush,会导致把上面这条手动添加的开放规则删除! 同时,如果想在重启后ipfw也开启生效,那么需要这样做: 在/etc/rc.conf里加入: firewall_enable=”YES” firewall_script=”/etc/firewall.sh” 同时/etc/firewall.sh的内容是 #!/bin/sh /sbin/ipfw -q -f flush /sbin/ipfw add 65534 allow ip from any to any 同时自定义的ipfw规则也可以向/etc/firewall.sh中添加,比如阻止118.215.66.135到本机80端口的连接,那么加入 /sbin/ipfw add 1 deny ip from 124.193.167.1 to any dst-port […]

macports安装db46的jni.h No such file or directory问题解决

May 1st, 2011 no comment

最近在我macbook上安装mercurial和git一直报错,而且都是在安装db46的时候,今天放假实在忍不了了,追了一下日志发现是jni.h头文件找不到:   :info:build /usr/bin/gcc-4.2 -c -I. -I../dist/.. -I/opt/local/include -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers -pipe -O2 -arch x86_64 -fno-strict-aliasing ../dist/../libdb_java/db_java_wrap.c -fno-common -DPIC -o .libs/db_java_wrap.o :info:build ../dist/../libdb_java/db_java_wrap.c:123:17: error: jni.h: No such file or directory   这下简单了就是java的开发包需要update一下,于是在此下载最新的 Java for Mac OS X 10.6 Update 4 Developer Package Download 安装,问题解决。

Mac OS X下修改控制台的option(alt)为meta键

April 21st, 2011 no comment

在Mac OSX下的terminal里经常不由自主的是用alt + f、alt + b、alt + backspace来进行日常的操作,而且在emacs中alt+x+命令也是非常常用的快捷键,可是居然苹果电脑默认的option(alt)键不支持这个,只能用esc来代替了?这太不方便了。 找了一下,终于找到解决方法: 在控制台打开“偏好设置”,进入“键盘”的tab,然后把下面的”使用option键做为meta键“选中,即可完成以上功能。 PS,Mac OS X下修改网卡MAC地址: % sudo ifconfig en0 ether aa:bb:cc:dd:ee:ff

sshd防止“防火墙断开空闲TCP链接”的设置

February 22nd, 2011 no comment

最近发现公司的的内网ssh登陆上服务器后不操作一段时间就会断线,同时如果一直在操作或有屏幕输出(类似tail -f /var/log/apache2/access.log),那么ssh就不会断线。 猜测是公司的防火墙有“断开空闲TCP链接”的策略,在/etc/ssh/sshd_config 内加入: ClientAliveInterval = 15 ClientAliveCountMax = 100 ClientAliveInterval的含义是每过15s,sshd会向ssh client发出一个询问是否在线的请求,正常的ssh client都会予以回应;同时ClientAliveCountMax设定了这种询问的最大失败值,在本例中如果sshd向client发出了100次讯问均没有得到回应,那么sshd会主动断开此ssh链接。

[转]热门3D游戏视觉效果名词简介

February 19th, 2011 no comment
61

一部又一部的游戏大作降临,每个游戏都声称要给玩家“真实”的体验。当然既然叫做游戏就不可能是真实的,但游戏制作商们都在不断想办法使游戏更加接近现实,使用各种3D效果去模拟现实中的种种现象。可能还有不少玩家朋友对这些视觉效果名词还不大了解,于是有了本文。本文就是用简单的语言,简要地介绍目前应用在游戏中的一些比较热门的视觉效果。

Trac、Mercurial集成项目管理工具组建

January 13th, 2011 no comment

我们的项目已经进行了半年,马上进入了第3个季度,慢慢的需求管理、缺陷管理的建立也需要提上日程。 从走在前面的3D引擎的开发状况看,需要有一个良好的bug管理系统来管理bug、记录需求等,于是决定用一个项目管理工具来实施,直接上Trac,并且要做到和我们的开发的版本管理工具Mercurial完全集成,Mercurial的安装见链接。

删除Python easy_install安装软件

January 12th, 2011 1 comment

python的easy_install是很方便的安装体系,可是一般来说setup.py没有deinstall的选项,那么如何删除已经安装的egg呢? easy_install -mxN Genshi 然后下面类似的提示: install_dir /usr/local/lib/python2.6/dist-packages/ Processing Genshi-0.6-py2.6.egg Removing Genshi 0.6 from easy-install.pth file Installed /usr/local/lib/python2.6/dist-packages/Genshi-0.6-py2.6.egg Because this distribution was installed –multi-version, before you can import modules from this package in an application, you will need to ‘import pkg_resources’ and then use a ‘require()’ call similar to one of these examples, in order to […]