Tairan's Story

2011

Jun 28

独立程序员接定制软件开发项目总结

定制软件开发中陷阱重重,主要的原因是客户对自己的需求不清楚。很奇怪吧? 客户竟然对自己想要什么东西说不清楚。事实上,在软件开发领域这是常有的事情。软件这玩意抽象,看得见摸不着,甚至看都看不见。让对技术一无所知的人来描述自己想要什么样的软件,太困难了。 这样的事实对乐天派的程序员来讲就是一个噩梦,这里引用西乔姐在 Twitter 上发表的一段话: @arthur369: 千万不要相信那些在谈需求的时候说:“做一个和XX一样的就行了” 的人。其实这种人最好就不要和他一起做事。因为最后结果只有2种,1、你白做了(需求一定会变动数次);2、做出来一个垃圾。” 最近我就接到一个这样的项目,刚开始的版本是对照着某软件的前一个发行版做,然后又变成了要具有此软件当前版本的某些功能,最后又发现客户的客户已经有一个类似的软件,于是乎又开始向模仿此软件+改进的方向前进,漫漫长路多折腾,如此多的波折才算拿到最终 …
Jun 20

为Fedora 15安装64位的FlashPlayer - Update

Update 现在Adobe已经提供正式版本下载 http://get.adobe.com/flashplayer/ 总的来说,复制下面的代码并执行就可以将64位的flashplayer安装到fedora 15 x86_64上去了。截至目前为止,Adobe 依然没有官方的正式版flashplayer 64bit版本释放出来,只有在http://labs.adobe.com 能拿到测试版本。不管怎样,测试版本在fedora上工作的也不错。:-) INSTALL #!/usr/bin/env bash FLASH=http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_2_p3_64bit_linux_111710.tar.gz cd /tmp wget -c $FLASH tar zxf …
Apr 14

转战亚马逊EC2

EC2 Nginx PHP FastCGI MySQL WordPress 关于 Amazon EC2 的教程已经铺天盖地了,有英文也有中文。现在EC2对新注册的用户有优惠,及Micro Instance级别的会有1年的免费份额。注意只是对新注册用户,如果你已经注册了 AWS 账户,即使并没有开通任何服务也不属于新注册用户,意思就是只要你使用就没有免费的。这一点我是用了$2美金的账单换来的教训。网上也有其他同学遇到,看来不仔细阅读文档就是没文化的代表。这里是账单查询地址https://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=activity-summary 一旦发现产生莫名其妙的费用,赶紧查。 我这次使用 Amazon EC2 的目的是把即将到期的博客迁移到这里,并且让手中的一些闲置域 …

more

Mar 30

守规矩才能行的方便

规矩是无处不在的,使用工具也有使用工具的规矩,就像你不能拿个榔头去拧螺丝一样。 就算是软件也有其使用的规矩, 经常看到有人抱怨某个软件怎么样的难用,其实大多数情况下他是用使用其他软件的习惯去使用另一个软件,也就是因为没有遵守使用此软件的规矩而带来的诸多不便。当然也有极少部分的软件真的很难用,那么就打破规矩,重新建立一个。 举几个例子, Windows 上的软件管理,如果不用第三方的软件管理工具的话,那么使用MSI安装,卸载就是它的规矩。 Debian/Ubuntu 则是 apt-get 进行软件的管理,如果你使用咒语的话 ./configure & make & make install 那么就要自己去管理软件的诸多文件。 Mercurial 如果你要删除或者移动文件那么就使用 hg rm / hg mv 的命令来做,而不是直接的 rm / mv
Mar 26

如何判断程序是安装后第一次执行

有时我们需要在程序第一次启动的时候进行一些初始化工作,如何识别程序是部署后第一次运行呢? .net framework就提供了这样的功能。 参考这里 http://msdn.microsoft.com/zh-cn/library/system.deployment.application.applicationdeployment.isfirstrun.aspx 这里还有更多的关于.net 程序部署相关的技术说明 。http://msdn.microsoft.com/zh-cn/library/system.deployment.application.aspx
Feb 24

如何在Alwaysdata上部署Django应用

Alwaysdata是一个法国的ISP,提供相当不错的VPS,共享主机等服务,而且免费的项目也相当的好,可惜你需要在墙外才能享受到如此高档的服务。 在Alwaysdata的wiki上已经详细说明了如何部署Django的应用,但是如果一丝不苟的依葫芦画瓢你未必能一次成功,因为这篇文档还遗漏了一点。 你还需要在project的根目录中放一个.htaccess 如下 project |-- apps |-- public |-- django.fcgi |-- .htaccess |-- .htaccess |-- settings.py |-- manage.py 而这个 .htaccess 的内容是: AddHandler fastcgi-script .fcgi RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f …

2010

Nov 29

读《创业者》

这本书我读的是中文版,现在我还是无法流畅的阅读英文版以及购买英文版对于墙内的我来说也是在是不方便。既然是翻译版,那么总会有几个人跳出来说翻译的不好,我认为翻译的质量固然重要,但是你不能因为还不至于影响阅读的小毛病来排斥一本好书。 英文版 中文版 曾经在书店蹲点看过第一篇关于Paypal的,其他的都是跳着看的,因为这本书对32个不同的创业者的采访,所以跳着看是最合适的。你喜欢谁就可以先看谁! 这本书里,我最喜欢的几个人是:史蒂夫·沃兹尼亚克、大卫·海涅米尔·汉森 、乔尔·斯波斯基、埃文·威廉姆斯、梅娜·特洛特。当然其他的人我也很喜欢,但是这几个人对现在的我来说,影响颇深。 在我眼里,史蒂夫·沃兹尼亚克简直就是一个完美的黑客,好吧,你可以把Apple I当作一个玩具,但是Apple II对个人计算机产生了划时代的影响,正是史蒂夫·沃兹尼亚克一个人独立完成的Apple II,从硬件组装设计到操作 …
Oct 26

论人生

这篇文章已经躺在我的硬盘中一个月有余,题目起的有点大,正因此我总是觉得自己写出来的东西不够深刻。不过我还是先把它放出来,现在不放又不知道多久才能放出来。借此希望能够引起一些看客的共鸣,最好能得到一些中肯的建议,让我完善自己的思想。 文章全文如下: 论人生 在岔路口 爱丽丝问猫:我该选择哪一条路? 猫:那要看你去什么地方? 爱丽丝:随便什么地方都行。 猫:那你选择任何一条路都可以。 人生就是岔路口的选择题,一条是随便走一条路,另一条是选择一条通向自己目的地的路。 不管你做出什么选择都没有对和错,人生就是如此,出生后一步步地走向死亡。 当你随便选择一条路,可能你在认为这是顺其自然,路通向何方走着瞧。我认为这是很浪漫的选择,能顺其自然则不会感受到被自然规律所束缚的痛苦。然而做出这样的选择,则说明你有足够的信心和一份不用为物质所担忧的心。如果没有这些,这个浪漫的选择会被现实打击地粉碎,并不断的 …
Oct 21

安全与易用

今天在公司里出现了一件事情,让我认真的思考了下Windows平台的易用性和安全。 事情是这样的,我们需要远程登录到一台德语的机器上工作。为了设置可以同时有两个相同用户名的用户远程登录,我们修改了组策略。两个德语文盲想当然的把一个和英语环境相同位置的选项给禁止了,然而那是拒绝远程用户登录的选项。刚改好的时候还很高兴马上用另外一台机器远程登录试用,很不幸将另外一个已经在上面的用户踢掉后自己也无法登录。 根据以前使用Windows的经验加上问Google,发现Windows远程维护是如此的强大。不仅仅是远程注册表编辑,还可以远程编辑组策略,AD,等等一大堆的东西。这一切在MMC中就可以完成。 如此强大的远程管理,却把我引入到为什么Windows不安全的地方去了。因为如果这是在Linux上把唯一的SSH关闭了,我还真的没辙。 在Windows上的这些远程控制是可以管理的,你可以选择让它不提供这些服 …
Oct 12

使用App Engine跟踪ADSL外网IP

在家使用ADSL拨号上网,并使用一台电脑作为Home Server,这样以来可以在工作的时候发现什么好东西,就可以远程连接到家中的电脑进行下载,也可以在家托管自己的代码仓库等,工作学习生活都不耽误。 使用ADSL有个问题,ADSL使用DHCP服务动态分配的,可能每一次拨号得到的IP都不一样。为了跟踪当前所获得的IP地址,我设计了一个简单的IP跟踪解决方案。下面是结构图: 整个架构分为3个部分 1. Home Server, 定时向 App Engine 发送请求告知自己当前的外网IP 2. Google App Engine, 管理用户和IP地址 3. 用户, 提供预定义的口令后就可以看到当前Home Server的外网IP 我的Home Server使用的是 Gentoo Linux, 每一个小时向 App Engine 发送一次请求,如果使用Windows XP,可以使用系统自带的计 …

© Copyright 2019 Tairan Wang