自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

猛禽的编程艺术

编程是一门艺术

  • 博客(263)
  • 收藏
  • 关注

原创 FreeBSD升级及pkgng

Ports和Package长期以来 FreeBSD 的应用安装主要都是依赖源码编译的 ports 系统,二进制的 package 系统当然也有,只是弱爆了,至少依赖问题需要人工处理( ports 是自动处理依赖的)。这跟 apt 之类的二进制包管理系统相比,差距太大。所以后来 FreeBSD 也搞了一个跟 apt 之类类似的东西,叫做下一代的包管理系统:pkgng 。不过我这人比较保守(其实是懒)

2014-07-15 16:08:23 8605 1

原创 用FreeBSD10搭建基于ZFS的iSCSI服务

用FreeBSD 10搭建的免费ZFS IP-SAN实现

2014-06-03 13:24:03 8625 1

原创 WordPress 3.9使用PostgreSQL数据库问题的解决

我一向不喜欢mysql,这事在blog上说过很多次了。所以在我部署的几个wordpress实例中,有部分是使用postgresql数据库的。用pgsql代替mysql的最大好处是资源可以节约很多。mysql即使只用MyISAM引擎,占用的内存也比标准配置的pgsql大得多——在跑同样的WP应用情况下。更不用说pgsql提供的功能比mysql的InnoDB还多——虽然在WP中用不到。但是因为WP在代

2014-05-12 16:57:16 6442 7

原创 通过RSS实现app的自动更新

缘起其实这个想法早在十年前我还在做桌面应用的时候就想过了,而且还在一个DELPHI程序里尝试了一下,但是因为后来没再做桌面应用,这事也就放下了。最近在做移动应用,又开始觉得需要这样一个功能。本来这种事情交给Google Play处理就好了,但是因为国内的奇葩环境,完全依赖Google Play并不现实,所以大部分国产应用都实现了自己的自动更新功能。我不知道别人是怎么实现应用的自动更新的,但基本功能

2014-04-02 10:37:45 4912 1

原创 使用Google帐号登录Android应用

需求对于一个应用来说,帐号管理真是一件麻烦事,所以通过OAuth之类的使用第三方帐号登录是常见的做法。关于这个实现,在Web端有很多现成的解决方案。我之前发过的《RESTful客户端库:RestClient 》也实现了一些(当时提供了饭否、foursquare和google,现在又增加了twitter)。那么在移动端要怎么做?Android系统内置了Google帐号(不要跟我谈被阉过的国行版,我们

2014-03-01 10:21:46 10849 2

原创 在Android应用中使用自定义证书的HTTPS连接(下)

因为这部分才是本文的重点,要说得详细一点,所以单独做成一篇来说。

2014-02-02 09:47:37 32829 20

原创 在Android应用中使用自定义证书的HTTPS连接(上)

通过HTTPS连接网络是一种常用的方法。但是在实际使用中存在几个困难:* 使用商业证书的成本* 使用自定义证书不被系统承认* 忽略证书验证则可能被“中间人攻击”本文将针对这些问题讨论技术解决方案。

2014-02-01 21:53:37 33649 14

原创 具有中国特色的docker折腾记(下)

自制Dockerfile和自建Docker-registry服务器

2014-01-17 13:41:06 20909 1

原创 具有中国特色的docker折腾记(上)

简介在刚刚过去的2013年里,docker无疑是运维工作的一项革命性创新,然而在有中国特色的互联网环境里,要折腾这玩意儿还真是不方便。且不说docker.io的官网在墙外,包括它的apt源和image index都在墙外,导致用户增加了很多不必要折腾成本,真是中国程序员的一大悲哀啊。真不知道docker这种纯技术的东西怎么就不河蟹了……那么docker究竟是个什么东西呢?首先,你可以认为docke

2014-01-15 11:21:55 30597 1

原创 HoloEveryWhere笔记(新版本)

上个月suliu在旧文那边给我留言说新版的HoloEveryWhere已经不再依赖ActionBarSherlock了,这是好事。正好最近在更新了一个用了HoloEveryWhere的程序,顺便就换用新版试试。新版的HoloEveryWhere果然好了很多,除了用官方新的ActionBarCompat取代ActionBarSherlock以外(在library的源码里可以看到包含了support.

2013-11-12 14:53:13 3915 5

原创 云服务商的技术问题和商业道德问题

前两天乌云报了一个漏洞:《如家/汉庭等酒店客户开房记录被第三方存储并因漏洞导致泄露》……且不说其它酒店也可能有类似问题,更可怕的是除了酒店以外,其它地方也有可能有类似的问题——只要它们用了某些无良国内厂商的服务……

2013-10-09 11:18:07 4012 1

原创 试用Android Annotations

Android Annotations本来我想写个 Java 版本的《RESTful客户端库:RestClient 》用于 Android 应用开发,结果发现不太好写,虽然用了 Dynamic Proxy 实现了大部分功能,但是因为无法通过反射取得参数名,而且 Java 没有 DuckType ,再加上也没有方便的 Dict 类型,搞出来的东西很难看,不好用。后来令狐给我推荐了这个 Android

2013-09-22 13:30:51 12045 6

原创 Nokia可以再着一次火了(修订版)

如果没有木马,Nokia应该选择Ubuntu Touch

2013-09-03 13:33:58 3331 3

原创 「书评」SAP内存计算——HANA

《SAP内存计算——HANA》一书的书评

2013-08-22 13:25:00 6161 2

原创 Android Studio安装

其实这货刚出来的时候我就装过了,不过因为没资料,又没用完过InteliJ IDEA,所以完全不会用,还是用回Eclipse去了。最近忽然想起来看看再试试这货,就又装了最新的版本。当然,下面记录的问题是我第一次安装的时候碰到的,因为当时已经解决了,所以现在再重装是没有这个问题的。安装方法都一样的,具体可以看官网。不过安装完成后创建第一个项目时会碰到一个问题,那就是它会下载一个叫 Gradle 的东西

2013-08-01 15:01:30 3642 3

原创 把从Google Reader备份的BLOG做成电子书

一个将用 GReader-Archive 生成的 Google Reader 备份转成 epub 电子书的工具。

2013-07-11 16:53:35 2991 1

原创 bottle的几个小坑

距离我在《web.py应用工具库:webpyext 》里说要换用bottle,已经过去快两个月了……其实在那之前我已经开始着手在换了。目前那个用于 Backbone.js 介绍的例子程序已经完成更换,其它一些原来基于web.py的应用也在逐步重写中。期间各种小坑不断,还好至今还没有碰到什么大坑……不过目测应该也不会有大坑。unicode作为非英文应用的开发者,unicode是一个绕不过去的坑。 w

2013-07-01 17:51:53 5170 3

原创 把Apache换成Nginx笔记(续之FreeBSD)

前文《把Apache换成Nginx笔记 》里只谈了 debian/ubuntun 平台,这里补充一下 freebsd 平台的。总体上差别不大,这里只记录一下区别之处。主要的区别在 php-fpm 上。在 ports 里安装 php 时,先运行:make config选择 fpm 支持即可同时安装 php-fpm ,这货在 ports 里貌似没看到有单独的安装。然后到 /usr/local/etc

2013-06-20 11:55:49 2980 1

原创 RESTful客户端库:RestClient

WebService话说我刚知道这词的时候还是十二年前…大约2001年,微软的.net刚出来的时候,这货就热了,只不过当年这货的标配通讯协议是SOAP。当年我觉得这货还是很方便的,但是在尝鲜过后,我根本没有兴趣将它用于实际的应用…它实在是太笨重了。这种笨重包括几个方面:首先SOAP本身的数据结构就很啰嗦,加上XML就更啰嗦了。其次,各种实现技术在高层逻辑上的定义各有一套,实际上并不那么通用。最主要

2013-06-01 21:32:20 32200 3

原创 Google Glass 初体验

石老王参加今年的 Google I/O 带回来一只Google Glass。周五晚上在泡泡的组织下,我们十几个人集体围观了这个先进武器。关于这货的很多信息,网上爆料无数,我就不重复了,谈点自己的体会。目前这个版本还是挺好看的,我因为本来就戴眼镜,所以只能把这货再架到眼镜上,略不方便。不过据说是可以把glass主体拆下来单独固定到眼镜上去的。架好之后可以看到投影屏幕在右上方,分辨率看上去还行,不过显

2013-05-27 13:29:59 4208 1

原创 HoloEveryWhere笔记(续坑之一)

前文《HoloEveryWhere笔记 》说了一些使用 HoloEverywhere 可能碰到的坑,但这货的坑不是一般的多,尤其是混合了 ActionBarSherlock 的坑。比如前文已经提到过的一个坑:在 ActionBar 里使用了 Tab 以后就无法同时正常使用 HoloEverywhere 或 ActionBarSherlock 提供的菜单功能了。这里要说的还是关于菜单的坑。HoloE

2013-05-23 16:39:34 4529 7

原创 web.py应用工具库:webpyext

缘起在前面关于Backbone的文章里提到过要谈后端的,现在就来简单说说在那个离线客户端的后端实现中用到的一些东西。用了很长时间的web.py,之所以选择web.py,是走过很多弯路的。早年主要是一些重量级框架,接触过Django、TurboGears和Pylons相当长时间,尤其是TG1用了很久,具体在《SD2C之三种Python的Web框架 》里说过。后来还有一段时间用了web2py——因为它

2013-05-16 10:33:01 4822 1

原创 HoloEveryWhere笔记

简介HoloEveryWhere 是一套 Android 开发库,提供了全套 Holo Style 控件,它的外观与功能和标准 Holo Style 控件基本相同,但是它可以运行在低于 4.0 版本的 Android 系统上。除此之外,还必须提到的另一个库——同时也是 HoloEveryWhere 所必须依赖的库: ActionBarSherlock 。它提供了 Android 4.x 起提供的最

2013-05-03 13:15:47 10971 13

原创 Backbone笔记之四(修正与补充)

修正感谢朋友令狐虫的指出,《Backbone笔记之一(View) 》的第一个例子里原来漏掉了 initialize 部分,导致view并不能正常显示(后面的例子里都有),可能是复制代码时搞错了。因为除了在initialize里调用render方法显示以外,还有一种方法是不需要initialize,而是在new出view对象以后调用render方法。目前原文已更新修正。补充也是令狐虫提出的问题:如何

2013-04-01 11:29:02 3262

原创 使用gunicorn部署web.py应用

经常看到有人问python的web应用如何部署的问题。常见的方案是用apache的mod_wsgi,或者高端一点的用uWsgi。但是个人觉得这些都太复杂了,使用维护都不方便,我一般是推荐用gunicorn,配合Apache或Nginx,可以实现简单高效的应用部署和维护。为此特地写了这么个文档来介绍,并且本文提交pull request到web.py项目的cookbook,只是Aaron Swart

2013-03-16 15:59:22 37218 4

原创 Backbone笔记之三(Controller与集成)

Router等等,这篇标题不是说要讲Controller的吗?好吧,据说这是Backbone 0.5以前的叫法,现在都0.9了,早就改名叫Router了。Router的花头不多,一个例子就可以说明完全。var AppRouter = Backbone.Router.extend({ routes: { "index" : "index", "task/:id

2013-03-03 00:19:47 7098

原创 Backbone笔记之二(Model/Collection)

ModelView的部分基本上就是这样了,现在开始来谈Model。Model其实就是一条数据记录。只不过它不是一般的静态数据记录,它不但可以不限定数据结构,还可以自动与后端交互,甚至还可以绑定事件以实现相应View的自动更新。最简单的Model就是这样:var Foo = Backbone.Model.extend({});// 或是初始化默认数据var Foo = Backbone.Mode

2013-02-10 23:00:53 24018 1

原创 Backbone笔记之一(View)

关于Backbone是什么,就不用我多介绍了,不知道的这货是什么的话请直接忽略本文吧。本文只是作为本人学习这货的一个笔记,顺大便给其他学习者参考一下。View首先从View部分开始,第一个程序注定是从hello world开始。在开始之前,先创建一个HTML文件,在其中引用这三个JS库(注意:underscore要在backbone前面):jquery.jsunderscore.jsbackb

2013-02-02 21:22:12 16620 2

原创 Surface,送我都不要

SurfaceRT在入手一周后出掉了,换了台华硕的普通笔记本给京京用。因为这个Surface得来没花钱,等于是送的。所以也不算是标题党吧。虽然我作为一名资深微软黑,长期以黑微软为乐,但其实在一年前,我对微软在移动领域的新动作还是略赞赏的——《MDCC印象之二:芒果的味道》。可惜啊,到头来微软终归还是不行,都不能给我一个不黑的机会。上次喷PC厂商的时候,已经顺带黑了一次——《人类已经无法阻止苹果了—

2013-01-12 23:11:46 10085 5

原创 家庭云及其它(下)

远程管理我反对用Windows做服务器的一大原因就是远程管理不方便。不论是远程桌面协议(RDP)还是VNC,都太麻烦,也不安全。除非用VPN。最关键的是远程传输屏幕内容实在是太浪费流量了,而且碰到低速网络时就杯具了。另外就是,GUI操作实在很麻烦,点几下鼠标的时间,足够跑一堆的命令了。因为远程管理往往并不是说在公司里连家里,而是出门在外用3G甚至是手机上网——Android下装一个Terminal

2012-12-11 10:01:45 5626 1

原创 家庭云及其它(中)

硬件基本上0bug老师对自己的需求还是比较清楚的,所以没有选择NAS产品,也没有选择企业级服务器都是很正确的。当然选择APU算是一个小失误,这个方案更适合做HTPC,而不是家用服务器,N550不论从功耗还是发热上,都优于E350的方案。当然选N550的话肖老师也会碰到一个杯具:N550最大只支持2G内存,跟E350最大32G没法比……毕竟N550只是上网本CPU。不过在最新的第21篇里,0bug老

2012-12-10 13:26:54 13348 1

原创 家庭云及其它(节外生枝:License问题)

顺大便谈一谈正版的问题。0bug老师说:……从个朋友那搞到了一套最新的2008R2,64bits版本,他们单位买的IBM3650服务器带的哦,这可是原装正版,呵呵。 这会没问题了。 一切顺利,朋友单位的服务器工作在内网,永远不上网的。我呢,老实不客气地就把注册号给用了,嗯,正版,可以在线升级。这是一种普遍的误解。这 种情况无疑是属于盗版的。服务器带的OS一般来说叫做OEM版,OEM版的意思就是,这

2012-12-09 13:51:11 5094 2

原创 家庭云及其它(上)

自从去年我自己在家里搞了一个小服务器以后——见《基于GPT和ZFS的FreeBSD安装》,就一直想谈一下这方面的话题,结果琐事太多,给忙忘记了。多亏0bug老师也在搞这方面的东西,见《我的家庭私有云计划》,推荐大家看一下,还是有点意思的。本文写了有些时间了,只是一直比较忙,没空弄完,但又不好再拖到明年,还是凑和写完它吧。本想请0bug老师批评指正一下的,结果可耻滴被他拒绝了(此链接已经于最近不幸被

2012-12-08 12:56:36 8739

原创 重写了一下gcrawler

去年做过一个《gcrawler:一个基于gevent的简单爬虫框架》,当时因为是模仿Scrapy的,所以整个实现其实很不gevent,太难看,并且实际上效率也不高。这次因为要改写一个以前用Scrapy写的爬虫,于是就拿这个自己做的东西来用——去年其实也拿这个东西做过,只是有一段时间没用了。改写了一部分以后发现原来的代码有很多改进的方面,本来想修改修改就算了,不过改了一部分以后发现还是把整个结构重新

2012-11-07 23:33:35 3176

原创 继续小测python web server

上次的测试见《小测几种python web server的性能》。前两天参加了PyCon2012上海站。虽然今年的PyCon被各种吐槽,但还是有点收获的。比如ShellXu的元编程,赖总的state/message,沈大侠谈的pypy等。回来就想测一下用pypy跑web应用看看性能如何。顺便也对上次的测试范围作了点扩大化。PyCon上谈到的Pyramid我虽然没用过,但是前身Pylons和Turb

2012-10-23 12:39:43 5988

原创 小测几种python web server的性能

因为换了nginx就不再使用mod_wsgi来跑web.py应用了,现在用的是gevent-wsgi,效果还不错。但还是想试试别的,比如传说中超级猛的meinheld什么的。软硬件环境硬件:一台04年初购置的IBM X235服务器,CPU为Xeon 2.4G两颗,内存1G,100M网卡。软件:Ubuntu Server 10.04 LTS Apache 2.2.14 Nginx 0.7.65 Py

2012-10-03 19:53:15 14554

原创 nginx log_format for webalizer

换了Nginx以后Webalizer不好使了,因为日志格式不对。放狗搜了一个所谓的标准log_format,用了几天基本正常,但还是缺少 kB In 和 kB Out。查了一下文档,补全如下:log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_b

2012-09-07 21:26:17 2739

原创 在FreeBSD的virtualenv环境下安装pysqlite和gevent

virtualenv是个好东西,可以为各个python应用建立各自独立的虚拟环境,对于开发和部署都是很有用的。特别是增强版的virtualenvwrapper,好用到爆。但是它也会带来很妖蛾子的问题。比如之前我就曾经碰到过这样的问题:题外话:Mac OS X 10.6 Snow Leopard 下 virtualenv 发生 install_name_tool 错误在Mac OS X 10.6 S

2012-09-02 16:57:34 3992

原创 把Apache换成Nginx笔记

其实想把Apache换成Nginx已经很多年了,只是一直懒得弄,也可能是因为上了年纪的关系,有点得过且过的意思。当然更主要的原因是没有压力,目前我的所有应用在Apache下都跑得挺好,对Apache的配置也比较熟悉。但是Nginx 10倍的性能优势始终在那里,这是一个挡不住的诱惑。上周与令狐和帮主小聚的时候顺手在手机的Ubuntu里装了个Nginx,但是Ubuntu 9.04带的那个版本实在太老了

2012-08-22 14:05:19 11099

原创 编译安装ffmpeg以支持mp3,x264等

本来ffmpeg是个挺好的东西,但可能是因为License冲突方面的问题(个人感觉好像是GPLv3跟别的License有冲突),所以这两年 的ffmpeg中已经不包含如libmp3lame和libx264之类常用库的支持,这在实际使用中就会很不方便。虽然据说有一些简单的方法,如《HOWTO: Easily enable MP3, MPEG4, AAC, and other restricted e

2012-07-31 23:36:31 4580 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除