想当摄影师的程序员 - Part 2

DIY日全食相机滤镜(电焊护目镜版)

7月22日就是日全食了. 我小时候看过日环食, 后来因为各种原因再也没看过日食. 这次终于又有一次机会了, 赶紧准备起来.

在前面某篇文章中我提到了我买了片电焊护目镜, 但是因为那个护目镜是墨绿色的, 所以看到的太阳也是绿色的, 如果能是正常的颜色就更好了. 今天在逛牧夫天文论坛, 看到上面在讨论一个叫巴德膜(Baader AstroSolar Filter Foil, 网址:http://www.baader-planetarium.com/)的东西, 搜索了一下, 就决定在淘宝上买两个使用巴德膜的观测镜, 再买一片70*70mm的巴德膜作为相机的滤镜.

小时候爸爸给我一片电焊护目镜让我看日环食, 所以这次特意买了两个观测镜寄给爸妈, 希望他们也能看到日偏食.

在巴德膜寄到我手中之前, 我先拿护目镜DIY了一个相机滤镜, 感觉还不错, 大小正合适, 而且套到镜头上还能作为变焦环来用. 哇咔咔.

做法就不细说了, 看了图片应该就知道了. 我手工差, 望各位不要笑话.

这是装上滤镜后的拍摄效果, 没用三脚架. 手持2秒拍摄

这是第二天早上拍的太阳, f/29, 1/1600, ISO 100, 55mm(没有其他镜头了). 这是原图裁切后的. 可以看出太阳非常绿, 而且看不到表面细节. 希望巴德膜版本能给我带来惊喜.

过两天巴德膜到了, 我再做个巴德膜版本的滤镜, 以那个为主力, 护目镜版滤镜作为后备. 这个周末先试拍一下找找感觉.

  • Share/Bookmark

自制绿豆芽2(完)

我是周五晚上泡的绿豆, 周六早上种下的. 经过周六,周日,周一三天的生长, 我的绿豆芽终于成型了.

为了让他长得粗壮, 特意压了一个装满水的水壶在豆芽上, 估计有5斤左右吧. 豆芽竟然把水壶顶起来了. 种子的力量果然不可小看.

缺点是长的太狠了, 有点出叶子了. 根长的也太长. 如果今天早上收获, 可能就更好了.

口感方面跟买来的没什么区别, 没有买来的粗. 但是自己弄的豆芽放心. 听说外面会用增粗剂, 去根剂, 漂白剂. 太恐怖了.

长的还不错吧, 科科.

这是纱布底部, 已经被根插透了. 我是用刀将绿豆芽割下来的. 之后花费我将近1小时的时间把根从纱布上清理干净.

  • Share/Bookmark

自制绿豆芽1

最近两天连续看到订阅的Blog中笨鸟开始学种菜(笨鸟学种菜1, 笨鸟学种菜2, 笨鸟学种菜3); 还有张翼轸发绿豆芽.还有这篇自制无公害绿豆芽.

我也知道外面卖的绿豆芽会掺东西保持豆芽的新鲜, 而这种能保鲜的化学物质是一种强氧化剂, 是不能食用的. 所以自己发绿豆芽是个不错的主意哦.

如何发绿豆芽请参考前面提到的几篇文章.

这是我泡过一夜的绿豆, 现在放在菜框里的, 下面铺了纱布. 现在已经长出来一点点芽.

全貌, 哈哈

盖上纱布后.

  • Share/Bookmark

用胶片或者刷墨汁的玻璃能看日全食吗?

我没能力详细说清楚其中的来龙去脉, 我会先说说我理解的, 再附上两篇文章供继续阅读.

我小时候看过一次日环食, 97年的时候有次非常壮观的日全食和海尔波普彗星同时出现, 但是因为天气原因, 我没能看到.

小时候听家长说看日食有几种方法:
1. 用电焊工的护目镜
2. 在玻璃两面涂上墨汁(或者用烟熏黑)
3. 水盆里放一盆水, 然后滴上墨汁
4. 用外面卖的日食观测卡(两张纸片, 中间放上一层会反光的类似包装纸一样的反光纸)
5. 用几张胶片重叠在一起
6. 多戴几个太阳眼镜

我用的是第一种方法: 电焊护目镜.

上面说的几种方法确实能起到阻隔可见光的作用. 但是我们知道, 太阳光中除了可见光还有大量的红外线和紫外线. 那么这些东西是否能隔离红外线和紫外线呢?

首先说说红外线和紫外线会对眼睛造成什么伤害.

红外线的生物效应主要是热效应。红外线易被深色物体所吸收,高强度的红外中使组织坏死,蛋白质凝固。远红外线只能穿入组织0.5cm左面,几乎完全被角膜及房水吸收,近红外线可穿透组织3~cm而达视网膜,在虹膜及视网膜均被色素所吸收。
来源: http://www.qqyy.com/jibing/yanke/080509/12051.html

从太阳发出的紫外线可以分为三种UV-A, UV-B, UV-C. 其中UV-C波长最短, 所以能量也就越大, 越对人体有害. 但庆幸的是, UV-C基本被大气层吸收光了. 能到地面的也就只有UV-A和UV-B了.UV-A可以使皮肤变黑, 而UV-B因为能量大, 能造成皮肤晒伤, 皮肤癌. 高强度的UV-B照射, 可以引起眼部疾病, 如白内障, 结膜黄斑等.

High intensities of UVB light are hazardous to the eyes, and exposure can cause welder’s flash (photokeratitis or arc eye) and may lead to cataracts, pterygium,[19][20] and pinguecula formation.
来源:http://en.wikipedia.org/wiki/UV-A

我们的眼睛构造很奇特, 瞳孔是一个可以放大缩小的孔, 用来控制进光量. 当光线强的时候, 瞳孔缩小, 进入到眼睛的光线变少, 同样进入的红外线紫外线也少了. 当光线暗的时候, 瞳孔放大. 当我们戴上墨镜的时候, 由于到达眼睛的可见光变暗了, 所以瞳孔会比不戴的时候大. 如果墨镜不能阻挡紫外线, 那么进入眼睛的紫外线比不戴要多. 所以这种墨镜更有危害.

在了解我想表达的意思后, 请仔细阅读下面两篇文章.
目视观测日全食的安全指南
观测日全食的防护镜有讲究

  • Share/Bookmark

WordPress不能在别人评论后给我发送邮件的解决办法

这是一个非常诡异的问题.

遇到问题后, 我google了一下. 发现有些人遇到了和我类似的问题. 但是他们的问题原因仅仅是服务器不支持php的mail函数, 他们只需要安装wp mail smtp组件就可以发送了.

而我确定我的服务器支持mail函数.

我对于php还是新手, 还不知道怎么在windows上测试php的mail函数. 所以就只能在本地把文件改改, 然后上传到服务器上做发送邮件测试.

WordPress调用的是PHPMailer组件发送邮件, 经过几个小时的调试之后, 我发现问题的原因在于2点:

1. PHPMailer的Sender属性为空. 这个属性为空将直接导致不会发送任何邮件.

2. PHPMail的MailSend方法中是这么调用mail函数的:

$rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params);

我注意到如果把$this->EncodeHeader($this->SecureHeader($this->Subject))替换成固定的字符串, 并且将Sender属性设置为我的email地址, WordPress就可以给我发送评论邮件了.

关于字符编码的问题我不是很懂, 大概看看这个EncodeHeader函数, 没看懂.

$this->Subject的内容是”[想当摄影师的程序员] Comment: “Symbian S60 V3系统不破解也能提升权限”"

如果直接用var_dump($this->EncodeHeader($this->SecureHeader($this->Subject))), 会得到一串加了编码前缀的base64字符串. “=?utf-8?B?W+aDs+W9k+aRhOW9seW4iOeahOeoi+W6j+WRmF0gTmV3IENvbW1lbnQgT24=?= =?utf-8?B?OiBTeW1iaWFuIFM2MCBWM+ezu+e7n+S4jeegtOino+S5n+iDveaPkOWNhw==?= =?utf-8?B?5p2D6ZmQ?=”

bin2hex函数可以将任意内容转换成十六进制的字符串.

于是我调用了两次bin2hex方法.

var_dump(bin2hex($this->EncodeHeader($this->SecureHeader($this->Subject))))

var_dump(bin2hex(“=?utf-8?B?W+aDs+W9k+aRhOW9seW4iOeahOeoi+W6j+WRmF0gTmV3IENvbW1lbnQgT24=?= =?utf-8?B?OiBTeW1iaWFuIFM2MCBWM+ezu+e7n+S4jeegtOino+S5n+iDveaPkOWNhw==?= =?utf-8?B?5p2D6ZmQ?=”))

发现转出来的十六进制码竟然有差别.

3d3f7574662d383f423f572b6144732b57396b2b6152684f573973655734694f6561684f656f692b57366a2b57
526d463067546d563349454e766257316c626e51675432343d3f3d0a203d3f7574662d383f423f4f694254655
731696157467549464d324d4342574d2b657a752b65376e2b53346a656567744f696e6f2b53356e2b6944766
561506b4f574e68773d3d3f3d0a203d3f7574662d383f423f35703244365a6d513f3d

3d3f7574662d383f423f572b6144732b57396b2b6152684f573973655734694f6561684f656f692b57366a2b57
526d463067546d563349454e766257316c626e51675432343d3f3d203d3f7574662d383f423f4f694254655
731696157467549464d324d4342574d2b657a752b65376e2b53346a656567744f696e6f2b53356e2b6944766
561506b4f574e68773d3d3f3d203d3f7574662d383f423f35703244365a6d513f3d

你会看到第一个方法比第二个方法多出两个0a

不知道为什么.

为了不使用PHPMailer的EncodeHeader函数, 我调用了PHP自带的函数. 做了以下修改:

$subject = ‘=?UTF-8?B?’ . base64_encode($this->Subject) . ‘?=’;
$rt = @mail($to, $subject, $body, $header, $params);

这样我就可以收到邮件了.

关于刚才说的第一个问题, 我也不清楚是怎么回事.

干脆我就直接给Sender属性赋值好了. 将以下两句加到MailSend函数的开头.

$this->Sender = ‘这里填上自己的email地址’;

  • Share/Bookmark

Symbian S60 V3系统不破解也能提升权限

在特殊时期, 由于特殊原因, 我们喜爱的服务twitter撞墙了.
在windows上可以采用修改hosts文件的方法来访问twitter, 而在Symbian S60 V3系统的手机上呢?
同样可以, 只是hosts文件必须存在于手机C盘的系统文件夹内, 而这个文件夹一般的程序是无法读取和写入的.
有两种办法可以让程序访问系统文件夹:
1. 破解手机, 试手机的证书体系完全失效, 这样所有软件都不用签名, 直接获得最高权限. 但我觉得这样以后装软件就会有点风险. 不清楚什么时候就会中病毒.
2. 临时破解手机内存, 提升权限. 这样做的好处是只会在内存中破解, 手机重启一下就恢复了. 对于需要偶尔访问系统文件的用户来说是相当不错的.
下面我就来说说具体方法.

  1. 下载Y-Browser文件浏览器, 或者使用你熟悉的其他文件浏览器. 安装到手机.
  2. 下载HelloCarbide(文章最后有下载提示), 安装到手机.
  3. 创建hosts文件. 该文件在电脑上创建, 然后放到手机sd卡上(手机E盘). hosts文件内容请看本文的最下方.
  4. 运行Y-Browser, 按一下手机的菜单键, 跳转到手机菜单, 再运行HelloCarbide. 也就是让Y-Broser在后台运行, 同时运行HelloCarbide. 一定要保证Y-Browser在运行, 否则破解内存后, 不能运行任何程序.
  5. 在HelloCarbide中按Options->Menu1, 会让你选择Yes还是No, 选择No. 具体Yes和No的含义我不清楚, 因为没提示任何信息. 点No之后, 这个软件就自动关掉了.
  6. 按住手机的菜单键, 切换出Y-Broser, 打开E盘, 把前面放到sd卡上的hosts文件复制一下, 然后打开C盘, 找到Private文件夹(这个文件夹平时看不到, 只有破解之后才能看到), 看看有没有10000882这个文件夹, 如果没有的话创建一个. 打开10000882这个文件夹, 把hosts文件粘贴进来.
  7. 一切OK之后, 重启手机. 你会发现hosts文件生效了. 能访问twitter了.

我昨天弄这个问题, 以及文件签名的问题到凌晨4点, 终于都搞定了.

hosts文件内容:

168.143.162.100 twitter.com
168.143.162.100 www.twitter.com
128.121.146.101 assets1.twitter.com
128.121.146.229 assets2.twitter.com
128.121.146.229 assets0.twitter.com

本文所说的软件, 除了Y-Browser之外, 其他软件都能在<<权限与证书完全破解>>下载.

关于手机论坛, 我发现dospyopda是非常不错的.

如果有问题请在下面留言. 我不是高手, 你问的问题我不一定能回答. 呵呵

  • Share/Bookmark

CakePHP报500错误的解决方法

我把CakePHP做的网站传到主机上, 发现只有首页能打开. 点其他链接都报500错误. 在看不到日志的情况下问题出现的可能性是多种多样的.
后来google一下, 发现有人遇到过类似的问题, 解决方法是换个主机…….

不信邪. 首页能打开就说明我的配置没错, CakePHP是能正常运行的. 可能问题出现在URL的Rewrite上, 于是我尝试使用/index.php?url=service (注: service是controller的名字)来打开, 可以打开. 更加证实了CakePHP是没问题的想法. 于是我就修改了.htaccess.
原来内容是

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

我改成

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]

看到吗? 我给index.php前面加了个斜线, 问题解决.
这会是一个很好的解决方法吗? 继续google, 后来在cakephp的官方网站上找到了一个方法.

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

参考: CakePHP: 500 Internal Error

  • Share/Bookmark

多款国外虚拟主机简单比较

最近试用了几款国外的虚拟主机, 多少有些感受. 这里不讲非常具体的参数, 只讲我的感受. 由于主机在国外, 被和谐的可能性很大, 所以为了网站的稳定, 一定需要一个独立IP.

Bluehost:

参数: 不限空间, 不限流量, 不限建立站点数, 不限FTP用户数, 100个数据库, 支持SSH. 总体来说就是什么都不限制, 送一个免费域名.

价格: 7.95美元一个月, 独立IP 30美元一年, 一年的花费是125.4美元, 折合人民币约877元.

优点: Bluehost的SSH很强, 除了一些对文件的操作外, 还能编译程序. 我就编译了一个Subversion, 然后就可以在SSH上去更新我的订餐网站了(注意, 这个Subversion不是仓库, 而相当于客户端. 但是可以通过SSH+SVN方式来把Bluehost当Subversion仓库使用). 你的虚拟主机可以共用同一个独立IP.

缺点: 这个主机给我的最大感受就是不稳定. 因为我做了个公司订餐的网站, 每天9点半到10点半这段时间就会有同事上去订餐, 所以当访问不了订餐网站的时候他们就会告诉我: 网站打不开了. 我们的订餐管理员收款的时候需要在订餐网站上结帐, 打不开网站就挺耽误事的.

Dreamhost:

参数: 同样不限空间, 不限流量, 不限制建立站点数, 送一个免费域名, 支持SSH.

价格: 9.95美元一个月, 独立IP3.95美元一个月, 一年的花费是166.8美元, 折合人民币是1167元. 但是在Dreamhost第一年可以通过优惠码购买, 优惠码分为几种: 省钱型, 最省的一个第一年只需要9.95美元就能使用Dreamhost一年. 送东西+省钱型, 常用的一个是第一年69美元+一个独立IP, 此独立IP每年都是免费的. 看起来很大方, 但仔细算下来就不省了, 因为第二年就没有任何折扣了.

优点: 功能多. Bluehost有的他都有. 而且比Bluehost多了一个Subversion仓库的功能(使用http协议, 而Bluehost使用SSH+SVN协议, 显然http协议更方便, 而且可以为每个用户分配权限). 有完整的Resell机制, 使得每个合租的用户都会有自己的控制面板以及完全独立的FTP, SSH.

缺点: 价格高, 虽然可以通过优惠码方式获得一个免费的独立IP, 但是每年的费用约为119.4美元, 折合人民币835.8元. 独立IP只能分配给一个域名, 也就是说如果你的网站被和谐了, 而你有很多域名, 你只能通过购买多个独立IP来解决了.

HostMonster:

没试用过. 它是Bluehost的一个子公司, 所以各种参数都一样, 只是价格比Bluehost便宜了1美元, 为6.95美元一个月, 加上独立IP, 一年是113.4美元, 折合人民币793.8元.

GoDaddy:

参数: 150G空间, 1500G月流量, 50个FTP用户, 25个200M的数据库, 不限站点, 支持SSH. 6.64美元一个月, 独立IP2.99美元一个月, 115.56美元一年, 折合人民币808元. 但是有通用的优惠码(25%优惠的不知能否用于续费, 但20%的一个优惠码肯定可以), 折算下来是606元一年(按25%优惠计算).

优点: 稳定. 我看了一下到目前为止Uptime为62天, 而Bluehost仅仅10天甚至更短就要重启. 功能也算丰富, 比较中规中矩.

缺点: 不支持Subversion, Python是以CGI方式运行, SSH中不能编译.

总结:

以上主机除了HostMonster没用过, 其他都用过, 感觉GoDaddy是非常不错的. 一个网站必须要稳定, 否则三天两头宕机, 没人能吃得消. 至于能否在主机上编译程序, 到不是一个重要的功能点. 相反, 如果允许编译程序, 那消耗的还是大家的资源. 主机空间和流量是没人能用完的, 如果你拼命用, 就会违法他们的其他规定, 比如CPU限制等. 这时你不得不升级了.

如果你想买国外主机, 建议你还是亲自考察一下, 毕竟自己买东西还是要适合自己的胃口.

  • Share/Bookmark

如何按时起床

熟悉我的人肯定会很BS我写这篇.

我从小就这样, 不能按时起床, 听我妈说这跟我外婆有关, 我小时候跟外婆的时间比较长, 每次都跟外婆睡到9点多才起床, 所以才有了睡懒觉的习惯. 我也不是研究睡眠的科学家, 对此无法评论.

不知其他人是否跟我一样, 到起床的时间, 眼睛特别难睁开, 一睁开就酸涩. 所以还是闭着比较舒服. 闭上眼睛, 心里在想: 我就闭1分钟, 然后起床. 结果1分钟没到我就睡着了. 有时还会做梦, 梦见自己穿衣起床吃饭. 但是如果是自然醒的, 或者做梦醒的, 或者憋醒的, 眼睛就不会有不适. 我有时晚上开电脑下BT, 夜里可能会自动醒过来, 然后就跑到电脑前面看看下载进度, 然后继续睡觉, 这时也没有不适. 唯独早上被闹铃之类的外界声音吵醒后眼睛特别酸涩.

工作日还好, 每天起床很有压力, 如果不起就迟到, 旷工, 扣钱. 再加上老婆的催促, 所以我上班几乎没迟到过. 但是周末上课就不行了. 周末我8点15上课, 按理说6点半起床, 悠悠闲闲的洗漱完毕, 7点走, 坐公交, 到教室差不多8点钟. 但现实是我每次都迟到, 有时实在起不来就干脆旷课了. 这学期学校管理的挺严, 所以经常旷课对我不利, 但是在思想上又不能特别重视起来, 所以只好寻求外界帮助.

为了能按时起床, 我每天都把手机定N个闹铃, 比如我准备7点40起床, 8点是Deadline, 所以我就从7点20开始, 每5分钟定一个闹铃, 直到8点5分. 但结果往往是这样的: 一遍又一遍的闹铃响了, 我就熟练的按了一下手机左键, 关掉闹铃继续睡觉. 有时我都不知道自己按了闹铃.

某天我开始google如何准时起床, 找到一篇<<关于“早上如何按时起床”的成功学引申思考>> .文章写的挺搞笑的, 把起床写的那么复杂. 我就按照他一开始说的方法强迫自己起床, 那就是: 把闹铃放到自己够不到的地方, 闹铃一响, 就爬起来, 关掉闹铃, 然后开始穿衣服. 一定不能再回到被窝里, 否则前功尽弃.

为了达到目标, 我还特意买了个会打铃的闹钟. 我就这样坚持了2周, 感觉还不错, 起码不会迟到了. 不爽的就是熟睡中被闹铃惊醒, 有点害怕(连我家狗都害怕, 听见闹铃响了狂叫), 不知时间长了会不会得神经病.

  • Share/Bookmark

诺基亚E70摇杆修复

我的诺基亚E70是2年前买的, 它的方向操控键是一个5向摇杆. 1年前摇杆就开始不好用了. 尤其是”向下”的方向, 有时没反应, 有时执行的却是”按下”操作, 很是讨厌. 一番google之后, 发现大家的摇杆都不好用, 有人最后换成了N73的摇杆, 有人用酒精擦了擦, 有人换上了其他兼容摇杆. 我在淘宝看了一下, 一个兼容摇杆要40元左右, 再加上需要拿到手机维修店里去更换, 需要再花费50元左右. 所以我决定先用酒精擦洗, 如果不行, 再拿去手机店里换一个摇杆.

既然要拆手机, 用蛮力是不行的. 所以在泡了几个论坛之后, 发现了一个好东西, 那就是诺基亚E70的拆机视频, 看起来是官方的视频.  还找到了诺基亚E70维修手册.

先仔细观摩视频, 看看他是怎么拆机的. 按照视频中的方法, 一步步把手机拆开, 不用向他一样拆到散, 我们只需要拆到摇杆露出来就行了.

工具方面, 我们肯定没那么专业. 不过以下这些还是必须的.

  1. 外六方的螺丝刀, 我没有, 所以就去手机维修的地方借用了一下, 这个也是最讨厌的. 如果遇到一般的店员, 他会帮你拧下来, 如果遇到态度差的, 才懒得理你呢. 所以多跑几家店吧.
  2. 酒精, 我没买到纯酒精, 所以用的是75%的医用酒精, 用它擦洗后, 会留下一点水, 用吹风机吹干即可.
  3. 棉签, 我以前用棉签来擦相机镜头, 效果还不错. 不过我建议用脱脂棉, 和一般的面签有什么区别我也不清楚. 感觉就是棉花里的脂肪没了, 用起来更安全.脱脂棉具体请参考 {zh:浸润} , 或者百度知道
  4. 镜头笔/刷子/眼镜布, 随便用一个. 我用的镜头笔. 因为你修理完毕后, 屏幕上肯定会沾上灰, 所以需要用这个来擦干净
  5. 镊子等小工具, 如果熟练的话是不需要的. 但是对于我这个第一次拆机者来说, 手头有点小工具还是必不可少的.
  6. 备用手机. 防止你在修手机的时候漏接电话, 另外也以防你把手机修理坏了, 起码还有个备用的.

下面开始拆机了. 只要根据视频一步步来即可. 请看我的部分图片.

  • Share/Bookmark
Page 2 of 4412345102030...Last »