2007年03月31日 16:59
今天猛禽给我看一个
照顾新生儿的难题,并问我有没有碰到类似的问题。我说没有,因为我们家小虫吃母乳,随时可以吃,解决方案成本比冲奶粉放凉要低得多,因此反而可以作为最先尝试的项目。
然后我说,这个题目应该没有想像的那么难,首先可以尝试直接命中,如果不对,从最低成本的项目开始逐项尝试即可。
我没有系统论证过我的方法到底有多优,但是我感觉应该是比较优了,因为已经尽可能的减少了逐项尝试的成本了。
作为一个程序员,很多人喜欢追求完美,最优算法、最快效率、最短路径……。但是有的时候,寻找一个最优算法,所花费的时间和精力可能会超出可承受的范围;而实际问题可能只需要一个较优的解决方案就够了,较优算法通常会比最优算法简单的多,可以省下很多时间和精力用于项目的其它部分。
所以有时我们也应该转换一下思路,从理想的最优情况中跳出来,回到现实的可行情况中去。
2007年03月30日 19:34
今天猛禽跟我说,他买了一块1米1的反光板。现在我们2个人各有一块,也就是说,一共有2块反光板了。
两块板差不多等于两支灯,想到今后外拍我们也可以尝试双灯布光,自然是很兴奋。然而我们很快就意识到一个问题:把反光板随便摆在地上是起不了作用的,但是如果两个人都拿着板打光,谁来拍照呢?猛禽说可以把我们摄影论坛的同好叫上,这样人就多了,打光的人自然也多了,就可以有两个人打光一个人拍了。但还是有问题,人家来是为了拍照的,不是给你打光当小弟的,凭什么让我打光你来拍?那好,为了公平,大家轮流打板吧,这下模特又要不干了:什么意思,你们几个人在那里折腾来折腾去,让我一个人在这儿摆POSE摆半天,搞什么鬼?要不就买个板架自己摆位置吧,投资大了不说,每次拍摄都带那么一大堆东西,累都能累死你。
最后猛禽说,干脆,下次约模特拍照,都声明需带BF或好友一名,专做小弟以供差遣。问题终于解决了。
其实我们平时看到的那些影楼的外拍,大多也只有一块反光板还不一定打得很讲究,拍出来的照片也可以卖好几百一张。不过如果我们也这样想,那就失去了很多摄影的乐趣了。
2007年03月29日 23:08
我做这台个人服务器的目的,除了搭建blog做相册和朋友交流之外,当然还有一个很重要的私人原因就是利用它24小时开机的优势,为自己谋点福利。其中最重要的当然就是使用aMule下载电影了。
aMule我并不陌生,在PC机上它就是我最常用的程序之一。然而服务器上没有安装X环境,况且我也不想直接在服务器接上键盘鼠标显示器来直接使用,因此,我需要一个命令行版本的amule。幸亏amule早就有这个东东,叫做amule-daemon,非但没有界面,而且可以作为服务开机运行。正合我意。
然而当我兴冲冲的sudo apt-get install amule-daemon的时候,却返回一个错误信息告诉我这个包不存在。愣了一愣并确认自己没有拼错软件名称之后,我想到是apt源的问题。然而作为一个服务器来说,使用第三放源是非常冒险的事情。还好我打开/etc/apt/sources.list之后,发现里面还有两行是被注释掉的。仔细看了看说明,这两行的目的是让你可以使用universe的软件。amule恰好是属于universe部分的。于是将注释去掉,sudo apt-get update,然后再次install amule-daemon,哈哈,终于可以了。
安装完成之后,有个提示告诉你,amule-daemon没有运行,请修改/etc/default/amule-daemon文件。打开这个文件一看,就两行设置,设置启动时是否自动运行amule以及使用哪个用户运行。我设置成使用我个人的用户运行。然后在命令行跑一下amuled,会告诉你有参数没有配置正确。于是进入~/.aMule/目录,打开amule.conf进行配置。这个amule服务是自带一个WebServer的,我当然希望能够配置好这个webserver,否则几乎就没有任何可用性了。为了使用WebServer,首先要让amule能够接受外部连接,AcceptExternalConnection要设为1。然后要给外部连接设置一个密码,ECPassword。但是这个地方填入的应该是MD5Sum后的结果,而不是密码本身。我就是在这里上了当,折腾了好半天。得到密码的MD5结果,可以用命令: echo -n yourpassword | md5sum | cut ' ' -f 1
全部设置完成之后,先在命令行运行amuleweb -w生成amuleweb所需的配置文件,然后sudo /etc/init.d/amule-daemon start运行程序,这样应该就可以了。因为我这里配置了防火墙,还需要开放4662/TCP,4665/UDP,和4672/UDP给外部网络,并且开放4711/TCP和4712/TCP给内部网络。其中4662是ed2k协议所需的端口,这个端口可以自己修改,修改完之后,一定要另外开放一个此端口号+3的UDP端口。4672/UDP是Kad协议所使用的端口,也可以自己修改。4711是webserver的默认端口,4712是amule接受外部连接时的默认端口,这些端口都可以自由修改。
全部配置完成后,重新运行shorewall,就可以在浏览器输入 http://<内网地址>:4711/ 来打开amule管理界面了。使用起来自然没有本地的GUI程序那么方便,但是考虑到这时一台24小时开机、低功耗的服务器,这种不方便忍受一下就算了。
现在主要的问题是,中文会乱码。以前用GUI的时候它会自动转码,Web界面就不会了。不知道能不能改。
Blog方面现在主要的问题是点击分类得不到结果,也要慢慢改了。
不过到目前为止进展还算顺利。接下来主要的工作是帮LP迁移Blog,以及写一个简单的照片幻灯展示程序。
2007年03月29日 17:50
这两天一直忙于自己的服务器,竟然都忘了看一下Google Reader。今天打开来一看,才发现Zola已经为了“重庆钉子户事件”亲赴当地做起了私人采访。
猛禽说:
支持Zola的报道。我也是十分支持他的,但是理由和猛禽有点不一样。
中国的Blog完全不缺少时评,在一个话语权被处处控制的国家里,能找到一个途径自由的发表一些自己的看法,无疑是一个极好的宣泄出口。因此我们可以看到大量的精彩时评出现在Blog的RSS中。
但是正如我们在群里讨论到的“
什么是真”一样,坐在家里发表意见是轻松而且安全的(当然这种安全目前而言是有限度的),然而你并不知道你所评论的事件到底是真还是假。而误导公众,一直是媒体的拿手好戏,因此,很多人或超然自得或义愤填膺的时评,实际上都是陷入了官方媒体事先设计好的陷阱之中。
了解真相的最好方法,就是从不同的独立途径获得不同的信息,加以综合,得出自己的结论。
因此我无条件的支持Zola,因为他所做的,正是脱离官方媒体的控制,以自己的亲眼所见亲耳所闻,来带给我们一个独立的信息来源。而且更为难得的是,他的
两 篇 Blog,完全没有自作主张的替读者做出结论,而仅仅是罗列了一些客观事实,将做出结论的工作,留给读者自己完成。
我很高兴的看到Blogger从“时评者”转变为了“独立媒体”,而我更加希望这样的独立媒体会越来越多,队伍越来越壮大。这正是目前我们所缺乏的东西。
最后,希望Zola能够安全完成这次任务。
2007年03月29日 12:40
3月25号跟几个朋友去了东方风云榜的拉票会,顺便晾晾我那好久不用的长焦镜头。
因为出发已经有些晚了,到达的时候拉票会早已开始,舞台前挤得人山人海,我根本挤不到前排。拍舞台上的主角就有些困难,甚至连观众们的正脸都难拍到。不过这样也好,反而给了我一些另类思考的空间:不拍明星歌迷,拍什么比较好呢?
舞台前的人山人海:
于是我把镜头对准了那些高举挥舞着的手臂和相机。我觉得它们才是造就偶像的真正因素。
我拍我拍我拍拍拍:
挥动的手臂,如此妩媚:
年龄虽小,拍起自己的偶像来可是一丝不苟:
偶像偶像我爱你,就像老鼠爱大米:
由于现场实在太吵,拍摄了一阵子之后我们一帮子人退了出来,决定去大宁灵石公园转转。
大宁公园果然是一个外拍圣地,一路走下来我们看到了不下10对拍摄结婚照的、3组以上集体外拍的,更有甚者好几对准备结婚的新郎新娘们排成一排等待拍摄的。心中不禁对这种流水线式的工业摄影感慨万千。同去的朋友抓拍了不少此类的照片,我不擅抓拍,基本上没有拍到什么。不过在经过一片沙滩的时候,倒是拍到了一些天真的小孩子。
最后准备回家的时候,换上了广角镜头,拍了一张不算太成功的水中倒影:
2007年03月28日 23:10
自从去年聚会被TR放了一把个人服务器的毒之后,搭建一个个人服务器就成了2007年我的年度计划之一。前阵子项目刚忙完,我就迫不及待的开始了个人服务器的组建工作。
第一步是确立计划。我打算将个人服务器做成对外提供我和LP的blog,以及我的相册和小虫录像的发布站点,另外还可以做一些临时文件的共享。说到底,对外部分主要是建立一个和朋友之间的交流点。对内,我希望它能够变成一个共享上网的路由器(我们小区的宽带限制了一个接入点只能同时有2台机器拨号,而我家的电脑经常会有3台,甚至4台。有路由的话就可以同时上网了),以及文件服务器。
首先当然是硬件。挑选再三,我决定使用Dell的GX150准系统。这个准系统因为有些年头了,所以现在的价格,以及相应的配件都很便宜。一台看起来还很新的GX150,搭配PIII 1G的CPU和512M的SDRAM,只需600多元即可搞定。另外,这个准系统带有我所需要的所有基本配置:内置网卡、显卡,有紧凑式的CD-ROM,可以最大限度的省电。
几天等待之后,GX150终于到手了。

机器看起来不错,很新的感觉。
带着兴奋的心情,开始组装。没想到很快就碰到了第一个问题:我原先准备好的160G硬盘,在这个系统中居然不认!这个问题我倒是事先没有想到,因为我接触硬件比较多的那段时间里,一直没有走在时代的尖端过,所用的设备,都是当时最保守的,因此从来没有为“系统不认最新技术的设备”之类的问题困扰过。可是这一次不一样,我是在技术发展了很久之后回过头去用老设备,因此在现代社会中毫不起眼的160G硬盘居然变成了“太先进而认不出”的东东。没办法,以前没有准备过的功课,不得不重新拿起来复习一遍。刷BIOS,无效;硬盘跳线,无效;手动设置参数,无效……,忙活了1个晚上之后,我终于觉得这个硬件是不可能支持这样大的硬盘了,因为我已经尝试了所有我能找到的方法。最后没有办法,只能决定把我现在用的80G硬盘和这个160G硬盘做一下交换,PC机使用160G而服务器使用80G。
第二天,又是迁移系统,重新分区格式化硬盘……,忙了半天,终于把老系统迁移到160G上,然后将80G的硬盘装进了服务器。还好,80G的硬盘它还是认的。于是开始安装Ubuntu Server 6.10操作系统。这个系统不像Desktop,没有livecd的功能,而且安装界面是文本的。毕竟用了这么久的Linux,安装倒没有碰到太大的困难,安装完基本系统之后,可以选择DNS Server还是LAMP Server,我自然是毫不犹豫的选择了后者。
安装完系统之后,考虑到不能长时间霸占LP的电脑,而加上服务器之后只能有一台电脑可以上网了,我决定首先配置防火墙和路由。我选择的工具是shorewall,这是Ubuntu推荐使用的防火墙软件。它不同于Windows下的防火墙概念,shorewall并不作为服务一直运行。因为Linux的内核是支持iptables防火墙功能的,shorewall只是帮助配置了iptables的规则并激活了iptables能力,做完这些事情之后它就退出,剩下的事情就由Linux内核完成了。而它的好处是,shorewall配置文件比iptables简单很多。
我是通过交换机拨号上网的,eth0本地网卡作为本地网络的接口,ppp0作为外部网络的接口。然后根据shorewall网站上的Two-Interface说明,分别配置/etc/shorewall目录下的shorewall.conf、zones、interfaces、policy和rules,就可以把防火墙部分设置好了。在路由部分遇到了一点问题,网上找了资料才知道路由需要配置masq文件,但是因为对masq所做事情的实质没有搞清楚,结果把dest和source interface写反了。 -_- 我说怎么路由功能总是弄不出来。后来才发现原来是一个配置上的低级错误。所有配置完成之后,执行sudo shorewall start就可以启动规则了。
再接下来就是配置apache2。由于安装的时候直接选择了LAMP Server,所以Apache2、PHP、Mysql已经都安装好了并且做了基本的配置,不需要自己再操心了。但是因为不喜欢数据库,我打算不到万不得已不使用mysql。因为没有固定的IP地址,我申请了一个3322.org动态域名解析的免费服务。并且为我和LP分别设定了一个URL地址。然后,到/etc/apache2的sites-available里去设置了两个Virual Host,并在sites-enable里做两个soft link就可以了。这种enable机制我认为的确比较方便。
然后就去下载安装了现在这个Blog ── pivot。之所以选择这个系统,就是因为它不依赖数据库,安装维护特别方便。(我只要定期打个tar包就可以全站备份了,连Blog本身的配置和blog内容)当然做应用系统的配置就是个细致活了,这里不一一细说。还好pivot算是一个比较简单的系统,上手不算困难。折腾了一天,基本上有点样子了。
接下来就是相册系统了。上网找了一圈,没有找到特别合乎心意的,所以我打算自己写一个简单的。不过这是接下来的工作了。
不管怎么说,服务器现在已经启动了,接下来的事情还有很多。希望自己有这个恒心和毅力坚持下去。