June 9, 2015
golang中flag包的用法
"golang中flag包主要用来CLI下,获取命令参数,示例如下mysql.go:\npackage main import ( \u0026#34;flag\u0026#34; \u0026#34;fmt\u0026#34; ) func main() { host := flag.String(\u0026#34;h\u0026#34;, \u0026#34;localhost\u0026#34;, \u0026#34;请指定一个主机\u0026#34;) user := flag.String(\u0026#34;u\u0026#34;, \u0026#34;root\u0026#34;, \u0026#34;请指定数据库用户\u0026#34;) port := flag.Int(\u0026#34;P\u0026#34;, 3306, \u0026#34;Port number to use for commection or 0 for default to, in port 3306\u0026#34;) //var name string //flag.StringVar(\u0026amp;name, \u0026#34;u\u0026#34;, \u0026#34;root\u0026#34;, \u0026#34;请指定用户名\u0026#34;) flag.Parse() //参数解析 fmt.Println(\u0026#34;主机地 …"
May 29, 2015
mac下的yum包管理工具MacPorts
"这里推荐安装 Homebrew,好像安装这个的用户比较的多的,安装命令也非常的简单。\nMac下面除了用dmg、pkg来安装软件外,比较方便的还有用MacPorts来帮助你安装其他应用程序,跟BSD中的ports道理一样。MacPorts就像apt-get、yum一样,可以快速安装些软件。\n除了这个还有一些类似的工具: Homebrew 和 Fink。\nFlink是直接编译好的二进制包,MacPorts是下载所有依赖库的源代码,本地编译安装所有依赖,Homebrew是尽量查找本地依赖库,然后下载包源代码编译安装。 Flink容易出现依赖库问题,MacPorts相当于自己独立构建一套,下载和编译的东西太多太麻烦,Homebrew的方式最合理。\n下面将MacPorts的安装和使用方法记录在这里以备查。\n访问官方网站http://www.macports.org/install.php,这里提供有dmg安装和源码安装两种方式,dmg就多说了,下载 MacPorts-2.3.3-10.10-Yosemite.pkg,下一步下一步安装即可。\n通过Source安装MacPorts\nwget …"
May 24, 2015
mac终端中显示tree的命令(转)
"寻觅了良久终于找到了mac下如何在终端显示tree的命令了,作为从linux下转过来的人,还没适应mac的finder,还是喜欢在命令行下查看文件。\n命令:\nfind . -print | sed -e \u0026#39;s;[^/]*/;|____;g;s;____|; |;g\u0026#39; 然后手动alias一下,在你的.bash_profile或者.zshrc中添加:\nalias tree=\u0026#34;find . -print | sed -e \u0026#39;s;[^/]*/;|____;g;s;____|; |;g\u0026#39;\u0026#34; 搞定\n要是能显示颜色和控制层级就更好了。\nPS:也可以通过brew install tree 安装。"
May 1, 2015
ios8中action segue
"os8 action segue 有几种方法,一般选择哪一个,每种方法都有什么用,在什么环境下使用?\nApple的解释在这里: https://developer.apple.com/library/ios/recipes/xcode_help-IB_storyboard/chapters/StoryboardSegue.html 我的翻译: Show: 在master或detail区域展现内容(典型的如iPad的设置界面,左侧是master,右侧是detail),究竟是在哪个区要取决于屏幕上的内容,如果不分master/detail,就单纯的把新的内容push到当前view controller stack的顶部 Show Detail: 大致同Show,在detail区域展现内容,如果不分master/detail,新的内容取代当前view controller stack的顶部 Present Modally:模态展示内容 Present as Popover:在当前的view上出现一个小窗口来展示内容,无处不在的“选中文字后出现 复制/翻译 按钮就是这个 Custom:自定义的"
April 18, 2015
vmware11下安装mac osx 10.10教程(原创)
"推荐此方法:\n一. 安装vmware 12 pro的破解补丁(unlocker207)\nvmware 12 pro unlocker207( 204版本在vm11处可以使用,在vm12下不管用,各版本下载 http://www.insanelymac.com/forum/files/file/339-unlocker/ )\n二. 下载 Yosemite Install(14F27)_10.10.5.cdr 镜像文件。安装方法同windows一样,设置为cd/dvd就可以了。默认vmware只显示iso文件,选择一下显示所有文件即可。\n安装过程中会提示一下信息,和下面教程的错误和解决方法都一样。\n===============================================\n不在推荐使用以下这种方法,网络安装特别的慢,另外版本已经过时。推荐使用上面的方法安装!\n在安装前请检查您的硬件配置是否支持,特别注意是”虚拟化”功能,有的主板虽然支持,但默认是关闭状态的,需要在bios里开启才可以。\n所需软件:\n1.mac 补丁 unlocker 2.mac os x 10.10.3 …"
April 8, 2015
golang中的sync.WaitGroup
"Golang的sync的包有一个并发原语WaitGroup,在日常开发中比较的有用。\nWaitGroup的用途:它能够一直等到所有的goroutine执行完成,在其期间会会阻塞主线程的执行,直到所有的goroutine执行完成。\n这里要注意一下,在其中的多个goroutine 的执行结果是没有顺序的,调度器不能保证多个 goroutine 执行次序,且进程退出时不会等待它们结束。\nWaitGroup总共有三个方法:Add(delta int), Done() 和 Wait()。简单的说一下这三个方法的作用。\nAdd: 添加或者减少等待goroutine的数量\nDone: 相当于Add(-1)\nWait: 执行阻塞,直到所有的WaitGroup数量变成0\n举个例子\npackage main import ( \u0026#34;fmt\u0026#34; \u0026#34;sync\u0026#34; \u0026#34;time\u0026#34; ) func main() { var wg sync.WaitGroup for i := 0; i \u0026lt; 5; i++ { wg.Add(1) go func(n int) { defer …"
April 8, 2015
Golang语言的GOPATH与工作目录详解
"这篇文章主要介绍了Go语言的GOPATH与工作目录详解,本文详细讲解了GOPATH设置、应用目录结构、编译应用等内容,需要的朋友可以参考下\nGOPATH设置\ngo 命令依赖一个重要的环境变量:$GOPATH\n(注:这个不是Go安装目录( GOROOT)。下面以笔者的工作目录为说明,请替换自己机器上的工作目录。)\n在类似 Unix 环境大概这样设置:\nexport GOPATH=/home/apple/mygo 为了方便,应该把新建以上文件夹,并且把以上一行加入到 .bashrc 或者 .zshrc 或者自己的 sh 的配置文件中。\nWindows 设置如下,新建一个环境变量名称叫做GOPATH:\nGOPATH=c:mygo GOPATH允许多个目录,当有多个目录时,请注意分隔符,多个目录的时候Windows是分号,Linux系统是冒号,当有多个GOPATH时,默认会将go get的内容放在第一个目录下\n以上 $GOPATH 目录约定有三个子目录:\n1.src 存放源代码(比如:.go .c .h .s等)\n2.pkg 编译后生成的文件(比如:.a)\n3.bin 编译后生成的可执行文件( …"
March 30, 2015
亿级用户下的新浪微博平台架构
"序言 新浪微博在2014年3月公布的月活跃用户(MAU)已经达到1.43亿,2014年新年第一分钟发送的微博达808298条,如此巨大的用户规模和业务量,需要高可用(HA)、高并发访问、低延时的强大后台系统支撑。\n微博平台第一代架构为LAMP架构,数据库使用的是MyIsam,后台用的是php,缓存为Memcache。\n随着应用规模的增长,衍生出的第二代架构对业务功能进行了模块化、服务化和组件化,后台系统从php替换为Java,逐渐形成SOA架构,在很长一段时间支撑了微博平台的业务发展。\n在此基础上又经过长时间的重构、线上运行、思索与沉淀,平台形成了第三代架构体系。\n我们先看一张微博的核心业务图(如下),是不是非常复杂?但这已经是一个简化的不能再简化的业务图了,第三代技术体系就是为了保障在微博核心业务上快速、高效、可靠地发布新产品新功能。\n第三代技术体系 微博平台的第三代技术体系,使用正交分解法建立模型:在水平方向,采用典型的三级分层模型,即接口层、服务层与资源层;在垂直方向,进一步细分为业务架构、技术架构、监控平台与服务治理平台。下面是平台的整体架构图:\n如上图所示,正交分解法将整个图 …"
March 28, 2015
用PHP尝试RabbitMQ(amqp扩展)实现消息的发送和接收
"上篇文章我们介绍了 amqp扩展在windows下的安装方法,这里我们看一下用法。\n消费者:接收消息\n逻辑: 创建连接–\u0026gt;创建channel–\u0026gt;创建交换机–\u0026gt;创建队列–\u0026gt;绑定交换机/队列/路由键–\u0026gt;接收消息\n\u0026lt;?php /************************************* * PHP amqp(RabbitMQ) Demo - consumer * Author: Linvo * Date: 2012/7/30 *************************************/ //配置信息 $conn_args = array( \u0026#39;host\u0026#39; =\u0026gt; \u0026#39;192.168.1.93\u0026#39;, \u0026#39;port\u0026#39; =\u0026gt; \u0026#39;5672\u0026#39;, \u0026#39;login\u0026#39; =\u0026gt; \u0026#39;guest\u0026#39;, \u0026#39;password\u0026#39; =\u0026gt; \u0026#39;guest\u0026#39;, \u0026#39;vhost\u0026#39;=\u0026gt;\u0026#39;/\u0026#39; …"
March 28, 2015
windows下安装rabbitmq的php扩展amqp(原创)
"从php官方下载相应的版本 http://pecl.php.net/package/amqp,我这里使用的是1.4.0版本( http://pecl.php.net/package/amqp/1.4.0/windows) 根据当前使用的php版本选择相应的扩展dll,下载后是一个压缩包,里面有两个dll扩展(php_amqp.dll和rabbitmq.1.dll)。\n我的环境是64位的,php5.5.12.所以使用的是 http://windows.php.net/downloads/pecl/releases/amqp/1.4.0/php_amqp-1.4.0-5.5-ts-vc11-x64.zip\n1.将php_amqp.dll放在php的ext目录里,然后修改php.ini文件,在文件的最后面添加两行\n[amqp\\] extension=php_amqp.dll 2.将rabbitmq.1.dll文件放在php的根目录里(也就是ext目录的父级目录),然后修改apache的httpd.con文件,文件尾部添加一行\nLoadFile …"