八卦一则,官恩娜与godaddy

平均每周收两封高老爹(godaddy)来信的我早已习惯了下面这位Go Daddy Girl的面孔:

突然有一天,我发现邮件里的Go daddy Girl换人了,还是亚洲面孔:

当时眼拙,没看出是谁,直到今天我又收到一封,然后,我就震精了:

介个,这不是官恩娜咩?于是,秉着好学和八卦到底的精神,我请教了google老师,果然,找到了新闻说官恩娜今天10月份开始与高老爹联姻了啊,现在高老爹的官网上的代言人赫然是官老师。

高老爹威武!

分类:其他, 生活 | 标签:, | 1 条评论

你为神马不用git-flow呢?

这是一篇译文(原文在此),当时我从这篇文章开始初识git-flow,经过一段时间的实践后,觉得git-flow非常棒,我决定在团队里面推行,我需要写一篇使用的教程,重新读这篇文章的时候,我认为,我只需要把它翻译成中文版,就是给队员们很好的教程了。遂。。拙译如下,个别地方可能不太靠原文,请看官明了:

================================

今年的一月, @nvie 同学发表了博客 “一种有效的Git分支模型”, 文章讲解了他是如何让自己的Git仓库保持整洁,除此之外,他发布了git-flow; 一个可以轻松实现该模型的Git扩展。

有同学说从来没有听说过?对此,哥表示相当震精,所以,在这篇文章里我要告诉你,为什么它可以让你从早上傻笑到晚上。

安装完git-flow后,你可以在当前目录下创建一个全新的仓库或把一个现有的仓库转换成新的分支结构:

$ git flow init

它会问你一系列的问题,蛋定!尽量使用它的默认值就好了:

No branches exist yet. Base branches must be created now.
Branch name for production releases: [master]
Branch name for "next release" development: [develop]
How to name your supporting branch prefixes?
Feature branches? [feature/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? []

回答完问题后,git flow会自动地把develop(或随便你重命名它为神马)分支设置为默认分支,此后,你大部份时间都会一直在这个分支上面码代码了。

现在,像往常那样使用Git吧,但只限于develop分支上面的一些小的功能哦。如果你要开始开发一个稍大的功能点,就基于develop创建一个功能分支吧,假设你要增加一个登录(login)页面:

$ git flow feature start login

该命令会基于我们的develop分支创建一个feature/login分支,并切换到该分支上。你在该分支上开发并提交代码,当你完成登录页面的开发后,这样来结束它:

$ git flow feature finish login

该命令将会把feature/login合并到develope分支,然后删除功能(feature)分支。

当你的功能点都完成时(需要发布新版本了),就基于develop创建一个发布(release)分支,然后升级版本号并在最后发布日期前把Bug Fix掉吧:

$ git flow release start v0.1.0

当你在完成(finish)一个发布分支时,它会把你所作的修改合并到master分支,同时合并回develop分支,所以,你不需要担心你的master分支比develop分支更加超前。

最后一件让git-flow显得威武的事情是它处理热修复(即时的BugFix)的能力,你可以像其他分支一样地创建和完成一个热修复分支,区别是它基于master分支,因此你可以在产品出现问题时快速修复,然后通过”finish”命令把修改合并回master和develop分支。

威武吧?那你还在等神马呢?

分类:技术, 软件 | 标签:, | 9 条评论

哪怕你只懂写个通讯录

真的,哪怕你只懂写个通讯录,你的职业生涯就能变得不同!

──有感于一些计科系准毕业生的状态

我出来工作以后,一直有亲戚朋友,姨妈姑爹之类的叮嘱我,多指导多提点一下他们家的那些大学生或准大学生的小朋友,好让他们将来毕业出来工作的时候可以顺利些。

我可以很负责任地说,我答应到他们的事情(对小朋友们做辅导功课)我都做得非常到位了,小朋友们都若有所思地点着头,嗯,我知道了,我会努力。

转眼三四年,到底还是大学的生活太轻松了吗?他们最终还是把几年的大学时光砌底浪费了。(哦不,应该说收获了美丽的恋爱和快乐的游戏时光?),他们去面试程序员被BS,做网管不懂硬件,计算机读的几年你所谓的玩电脑就只是在聊扣扣?这时你才突然想起三年前我对你们讲过的话。

我不是落井下石!我面试过很多在校大学生,懂得及早规划自己的职业生涯和动手的人最受欢迎。说实话,如今公司找一些招人待见的毕业生并不容易,哪怕你只懂用写个通讯录(你真的要动手写过),你可以实习或被试用的机会就提高了80%以上。要在技术行业混饭吃,你一定要够主动,够机灵,勤动手和善于学习。

警钟已响起,最后的时间,谁能把握并好好利用,谁就有可能在毕业的时候站到更高的起跑线上。看你的了。

分类:感悟, 生活 | 标签:, , , | 2 条评论

珠三角技术沙龙12月小沙龙预告

原文见:http://techparty.org/2010/12/10/opensource/

曾经因为所写的某段代码的画龙点睛之妙而欣喜若狂?

多年的历练让你积累了无数的压箱宝而对其呵护备至?

是否,在每次擦拭它们之时总觉得有一股隐隐的冲动?

那么,来开源吧!让它们在其他人的指掌间重放光彩。

开源,固然是个大话题,但实践开源,并不困难:你不必有Plone这种史诗般的作品,不一定要写出rails这样的传世经典;为某开源项目commit一个很小的patch,自个分享一小段心水的代码,向朋友传播开源软件的使用心得时我们已经在实践开源了。

12月小沙龙,独乐乐不如众乐乐,这是一个让你实践开源的舞台。现在向大家征集Topic(总时间30分钟以内为宜)了,topic可以是介绍自己的开源作品(原创),也可以介绍自己喜欢的开源软件(推介)。

小沙龙将在12月19日(周日)下午举行,地点待定(红专厂或寻觅咖啡),接受报名人数为30名左右,由于本次沙龙场地稍大,不要求与会者必携带Topic,但还是强烈建议大家积极准备Topic,现场如果Topic数量多,将通过投票的方式对Topic进行取舍。

现有Topic:

赖勇浩python-message:面向消息编程的程序库》 (原创)

Jeffautoforms:django的自定义表单组件》(原创)

更多的topic见报名表。现在还接受报名,有兴趣移步到这里

让你们的Topic像洪水般涌向12月小沙龙吧。

分类:技术, 生活, 软件 | 标签:, , | 发布评论

又是Mysql和Mac os x

Mac os x和Mysql总是有些。。。。。。哎,你们知道的。今天又学到两个小技巧了。

一、安装ruby的mysql驱动

使用介个命令:

$sudo env ARCHFLAGS=”-arch x86_64″ gem install mysql –no-ri –no-rdoc — –with-mysql-config=/opt/local/lib/mysql5/bin/mysql_conf

  1. 指定ARCHFLAGS很重要,视乎你的系统的架构.
  2. 不要生成ri,rdoc,否则一大批错误信息输出。
  3. 指定mysql-config

二、同时使用标准与非标准.sock文件

有时尽管在安装的时候指定了mysql-conf,同时mysql-conf的文件里也把socket file指向了非标准的.sock文件路径(如/tmp/mysqld.sock),但有些程序就老是死牛一边颈地要找标准的.sock文件(如/opt/local/var/run/mysql5/mysqld.sock)。于是我满世界的网页找解决方案。最终,某位老兄一语惊醒梦中人:“为嘛不建个软链捏?”(这是中译文),哦!

ln -s /tmp/mysqld.sock /opt/local/var/run/mysql5/mysqld.sock

这样世界就清净了。我还真傻。

分类:技术 | 标签:, , , | 发布评论

开始实践git-flow

关于Git-flow,在前几次的珠三角技术小沙龙的现场就听过朋友们介绍了,最近才有时间看看相关的文章:

a-successful-git-branching-model》及《why-arent-you-using-git-flow》,才真正了解到,这真算得上是使用Git的最佳实践啊。于是马上想在自己的项目里用上。

安装Git-flow:

安装完后,试一下git flow命令,得到帮助:

升级已有Git Repo

使用git flow init即可,但结果是杯具的出错了。

原来是我的源码还没commit(unstaged),我先git commit -a ,把原来的改动提交掉。再git flow init,这一次成功了,git flow 帮我创建了两个主要分支,Master与Develop,以及询问我四个辅助分支的命名:

开始使用git flow

现在我要开始工作,为某个功能编写单元测试代码,那么,我只需要告诉git flow我要开始一个新功能的开发,输入git flow feature start sampler_test:

git flow 会为我创建一个feature/sampler_test的分支并切换到该分支下,这时用git branch命令查看一下分支的情况:

有三个分支,当前工作分支是feature/sampler_test,我接下来所写的代码都只会影响该分支,直到我确认完成该功能(通过git flow feature finish sampler_test命令),完成后,代码会被合并到Develope主分支上面。

阶段性小结

git flow屏蔽了git的底层命令,向用户提供更高一级的命令用于完成源码的版本管理,流程模型看上去很好很强大,理论上也比较适合团队协作,因为比较规范和简单。我先自己尝试一番,体验过后再说是啥味道吧!

分类:技术 | 标签:, , | 4 条评论

iPhone开发入门篇–Hello world

嗯。给大家来个hello world,其实iOS开发入门就是那么一回事。

0、准备开发必须的硬、软件

这就不多讲了,需要安装有Mac os x的苹果电脑,并安装了iPhone SDK,包含了(Xcode、ios sdk,Interface Builder)。

一、创建项目

从Xcode新建一个iphone应用程序项目hello-iphone,选择widnow based application为模板。

Xcode将为我们生成下面的文件:

从左边的Groups & Files看项目的的结构(我省略了其他组):

项目的文件主要由框架(Frameworks)、类源码(Classes)、其他源码(Other Sources)、资源(Resources)及产品(Products)5类元素组成。

1、框架:

iphone应用程序的共用框架有Foundation(最基础的基础框架,定义了NS系列的对象)、UIKit(用户界面工发工具Cocoa Touch)、CoreGraphics(核心图形框架,开发游戏和图形报表必用)。

2、类源码:

主要存放有Object-C的类定义及实现代码,默认提供了一个主程序代理。这里有:

hello_iphoneAppDelegate.h及hello_iphoneAppDelegate.m

3、其他源码:

有主程序代码(main.m)及一个头文件前缀文件。

4、资源

包含了一个主窗口的设计文件(MainWindow.xib)及应用程序的主配置文件(-Info.plist)。

5、产品

一个可运行的二进程序产品。

二、试运行

点击Build and Go按钮即可进行调试,Xcode会调用iPhone模拟器来运行hello-iPhone程序。该模板程序只是创建了一个空白的窗口,运行效果如下:

三、看看代码

我们需要关注的代码文件只有三个:

主程序代码main.m以及主代理类的两个文件(头文件及实现文件)

1、主程序代码(main.m)

主程序很简单,一个传统风格的C语言main函数作为程序入口。

程序做的事情是:

1). 创建一个垃圾自动回收池

2). 调有UIApplicationMain函数

3).释放垃圾自动回收池

毫无疑问,秘密肯定在UIApplicationMain函数里面了。

可以这样理解,UIApplicationMain函数里面做的事情就是把一个应用程序所需要的基础设施打理妥当,如创建主事件循环(用过WFC,wxWindows等客户端编程的同学应该很熟悉了)、监听和派发事件等。

先进去这个函数的定义看看:

前两个参数是接收Main函数传进来的,重点是后两两个参数:
1). principalClassName,指定主程序的类名,如未指定(nil)则尝试使用Info.plist里面指定的,如果还是找不到就使用UIApplication类。
2).delegateClassName,指定主要代理类名(代理类下一节有说明),如果没有指定(nil),则需要在xib/nib文件中指定一个代理类,由于本例中并没有指定代理类名,我们打开MainWindow.xib文件看看,双击该文件,Interface Builder会替你打开它:

这个是预览窗口,显示界面的最终运行结果。

上面这个窗口的内容显示当前编辑的窗口里面的主要角色,File’s Owner是指这个窗口的拥有者,从Type属性可以看到它就是一个UIApplication的类。选中File‘s Owner,看左边的检查器,选中Connections标签:

嗯,可以看到Outlets下面的delegate属性是与Hello_iphone App Delegate关联起来的。

2、主代理程序(hello_iphoneAppDelegate)

1).头文件(hello_iphoneAppDelegate.h):

hello_iphoneAppDelegate类继承于NSObject,实现UIApplicationDelegate协议(即我们熟知的接口),该代理有一个UIWindow的属性window。
UIApplicationDelegate协议定义了一系列作为程序代理需要实现的方法,如applicationDidFinishLaunching会在程序完成加载时被调用,

applicationWillTerminate会在程序被关闭前调用,applicationDidReceiveMemoryWarning会在收到内存过低警告时被调用。但我们在编写代理类时,并不是必须实现协议中定义的全部方法。如本示例中的代理实现中,就只实现了applicationDidFinishLaunching方法。

2).实现文件(hello_iphoneAppDelegate.m):

在applicationDidFinishLaunching函数里面,只是调用了window的makeKeyAndVisible方法,使window成为关键窗口并显示之。实际上,该函数就是可以真正加入我们的逻辑代码的地方。

四、向世界say hi!

如上所述,就从applicationDidFinishLaunching开始吧!

上面是重新实现的applicationDidFinishLaunching方法,在window上面显示一个带阴影效果的hello world文本。运行一下看看效果:

到这里,当然,才是刚刚上路,要真正做iOS应用开发,还有很多需要学习:
# Object-C的各种特性,包括语法及内存管理方面等。
# iPhone应用程序的开发模型(代理模型、MVC神马的)深入探索。
# InterFace Builder的熟练使用。
# 各种常用Framework的使用。

分类:技术 | 标签:, , , , | 发布评论

破解让IOS变得更好玩

破解IOS不一定是为了安装盗版软件,而是为了让自己的IOS设备更自由,实际上,我破解后还继续购买付费软件。

破解IOS

在线破解:www.jailbreakme.com  使用IOS设备登上该网页,然后按指示操作即可,它会指标你安装破解,最后会把Cydia安装在桌面上。

通过Cydia安装一萝筐好玩的

有了Cydia就好玩了。使用Cydia可以让你的ios设备支持多进程、不通过itunes安装程序、下载更多其他好玩的东西等,让你的ios设备的功能更加强大。下面几件事情应该要做的:

  1. 修改Root密码,以后通过更安全的密码来执行管理员操作。
  2. 安装SSH,让你从电脑上面直接命令行控制ios设备。
  3. 安装BackGrounder,支持多进程。
  4. 安装Multifl0w-多任务切换管理,连按两下Home键查看当前活动的进程。
  5. 安装mobile terminal,可以使用终端哇!
  6. 安装Netatalk,支持Apple Talk协议,让你的Mac可以直接访问IOS设备文件系统。
  7. 安装iFile,类似Filder的东西,在设备上浏览文件。
  8. 安装appsync,支持安装ipa文件必须基础组件。
  9. 安装installous,出寨版AppStore,不过最主要的是,把ipa文件放到它的下载目录后,用它来安装程序。
  10. 安装iDownload,可以直接从ios下载东西。可以从installous安装。
分类:软件 | 标签:, , , , , | 发布评论

博客的计划

这一次,我会把以往所有的博客的文章都导入到这里来,以后就使用WP做为我的唯一博客工具了,弃用三年多前自己用Django写的fallever博客程序。

之所以要使用WordPress是因为它现有的功能更强大,用来编写日志更舒服,而且插件丰富,可以很方便地实现各种想要的功能。另外一个原因是,使用python来写一个应用来学习的时间已经过去好久了,我实在找不到更好的理由继续去维护和更新那分博客程序,现在对我而言,有现成的工具可以更好的解决问题的话,我不会轻易去重新开发一份,除非有学习的必要。

所以,再见了,我的老博客,虽然你以后不再运行,但你是我进入python世界的第一个作品,我会永远保存,并珍惜。

我在Webfaction的主机上也将会架设一个Django实例,不是用来跑博客,而是会用来跑的要开源的一些小工具的Sample。

分类:技术 | 标签:, , | 发布评论

我在11月小沙龙的讲稿–《商业智能简述》

发起了珠三角11月份小沙龙–数据挖掘专题,沙龙已成功举行,并收获良多,在此,我附上我在沙龙贡献的Topic–《商业智能简述》:
分类:技术 | 标签:, | 发布评论