分类: ‘发芽网开发记录’ 的所有文章

发芽网下线,恢复时间未知

2016年07月29号,星期五 作者:半瓶墨水   链接:http://www.2maomao.com/blog/fayaa-offline/

因为没有时间维护,发芽网5年没有更新,后台记录显示还有一些用户使用,还会持续的收到反馈邮件,感谢大家长久以来的支持。今天接到bluehost通知说发芽网占用内存过多,需要停站维护,而最近又没有时间折腾,所以暂时关停了,对不起。以后真的要重新启用的话,不会再选bluehost,那会是另外一种折腾。

谢谢支持。

发芽网用户可以更改邮箱地址了,应对雅虎中国邮箱关闭问题

2013年05月1号,星期三 作者:半瓶墨水   链接:http://www.2maomao.com/blog/fayaa-edit-email/

雅虎中国邮箱 ( @yahoo.com.cn ) 要停止服务了,有好几位网友来信说想更改发芽网的邮箱。
我看了一下后台,发芽网用户有好几百个用雅虎中国邮箱的,觉得有必要添加更改邮箱地址的功能。

今晚花了一个小时添加了这个功能,半个小时做了一些测试之后上线了,同时发信给所有雅虎中国邮箱的用户,结果收到许多退回的邮件。

所以在这里也张贴一下提醒:

鉴于 @yahoo.com.cn邮箱地址即将停用,为了不影响您正常使用发芽网,请登陆发芽网更改邮箱地址。

需要两步:
1. 登陆发芽网并打开更改界面: http://fayaa.com/user/edit/
2. 填写新的邮箱,输入密码和验证数字,提交个人资料更新

提交以后,新的邮箱地址立即启用。同时你的旧邮箱会受到邮件地址更改的提醒。

感谢所有来信提醒以及提出这个需求的网友。

发芽网华容道精装版App发布(iPhone和iPad)

2013年02月16号,星期六 作者:半瓶墨水   链接:http://www.2maomao.com/blog/fayaa-hrd-ios-app-released/

发芽网华容道精装版App发布啦(iPhone和iPad版), 点击查看
https://itunes.apple.com/cn/app/fa-ya-wang-hua-rong-dao-jing/id599917734

还是一样的精装版,一样的过关记录回放,精致的过关特效,方便的操作,精美的配乐。
包含发芽网华容道在线版的所有布局以及许多首手机程序独有的布局。
(所有的Android/iPhone/WindowsPhone的手机华容道游戏中,80%的关卡都直接盗用发芽网的,而且做得相当不专业)

iphone4inch1 iphone4inch2 iphone4inch3 iphone4inch4

  • 你不需要懂中文也能玩这个游戏。
  • 知道智力游戏的三大不可思议吗?华容道游戏就是其中一个。
  • 本游戏是特制精装版,从操作体验到关卡选择,从精美画质到配乐,每个细节都经过精雕细琢。
  • 在游戏里你需要用最少的移动让大方块曹操从下放中间的出口逃脱。
  • 本游戏从易到难有400多关,多数为网友贡献。
  • 悄悄告诉你,世界上只有很少的人能全部通关,并且每关都有三爵一樽哦。
  • 你的过关记录都会被保存下来以便于以后查看或者秀给朋友看看哦。
  • 本游戏改编自发芽网华容道的在线版本,上面已经有一百多万人次访问, 8万多个过关记录。
  • *注意*: 每关的评分标准是移动步数,一个方块的连续多次移动算作一次移动,最少0分,最多4分

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

猫猫和乐乐回国的那两三个月,周末有了大把的时间,即便是一天用来爬山,还有一天闲置。
特别是圣诞节放假的那几天,甚至开始研究做饭炒菜。

有天无意间在appstore搜索了一下华容道,发现了十来个程序,其中有5个是抄袭发芽网的,要么是图片,要么是布局,完全不打招呼直接就用了,甚至有一个直接把发芽网的截图那过去做了程序图标。最最关键的是,他们都做得超烂,可用性太差了,是可忍孰不可忍!

于是我决定把发芽网的华容道游戏搬到手机上。从头开始学,先按照ios developer guide完成了两个小程序,然后简单浏览了一遍Objective-C以及所有的iPhone界面元素,画了十来张草图,写了一个简单的计划,开始动手实现。前后花了两个月左右的周末时间,一点点制图/实现/验证/调整,终于在上上周老婆孩子回来之前提交了。过程中艰难和欣喜并存,过几天我会撰写一篇文章单独说说我的学习过程以便同道参考。

说一个有趣的事情,这个程序提交以后,我拿给隔壁小朋友试玩,其中8岁大的小朋友很快就玩过了20关,然后卡住了,于是我回来调整了以下布局顺序与难度。另外不到两岁的小朋友最神奇,她找到了这个程序一个致命的bug,而之前我自己还有其他人试玩过很多关都没有发现这个问题。

这个bug是这样的:当同时把两个方块往空白处拖动的时候,两个方块会重叠。之所以没有发现,是因为游戏界面上有引导动画,一般大家都看得懂,只有这位小朋友,她看不明白,拿着手机根本就是瞎划,反而发现了这个问题。还好她拿着手机咬的时候我没有把手机抢回来。

根据乐乐和邻居小孩玩的结果来看,5岁小朋友两天可以玩到20关左右,8岁的小孩两天可以玩30关左右,在往上就需要不断的思考与推理了。而这款程序,有400多关!希望大家能喜欢。

发芽网一直是靠兴趣维持,年年入不敷出。这个程序收最低的费用,$0.99 / ¥6,希望能把开发成本赚回来吧(每年$99)。

希望朋友们有钱的捧个钱场买一个,没钱的捧个人场帮忙宣传一下,在此多谢了。

发芽网挂掉10个小时, mysqldb模块出了点儿问题

2012年11月24号,星期六 作者:半瓶墨水   链接:http://www.2maomao.com/blog/fayaa-down-due-to-mysqldb-python/

什么时候挂掉的真不清楚,因为在bluehost上面用Django一直是不被官方支持的,只能自己想办法了。

因为上次升级的时候遇到过类似问题,于是跑到后台直接运行python t.fcgi,发现输出这样的信息:


ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory
Status: 500 Internal Server Error

在网上搜索了一大圈,没发现问题所在,有好几篇文章提到要设置/etc/ld.so.conf文件,处于sharehost上的人表示欲哭无泪啊。

最后想想还是重装以下mysql-python模块试试,顺便把easy_install这个不能uninstall的安装工具淘汰掉,适当备份以后,移除easy_install安装的egg文件,然后把同样目录下的easy_install.pth的相关记录删掉:
mv /home1/XXXXX/python2.7.2/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-linux-x86_64.egg ~

然后 pip install mysql-python

然后,居然就搞定了。。。

折腾 – 发芽网后台更新Python2.7.2, Django1.3, Pygments1.4, jQuery1.6.2

2011年08月21号,星期日 作者:半瓶墨水   链接:http://www.2maomao.com/blog/bluehost-python272-django13-pygments14-jquery162/

发芽网后台更新了:Django1.3, Python2.7.2,jQuery1.6.2,Pygments1.4

其中Pygments的更新带了更多的语法高亮支持,包含了许多人熟悉的AutoHotkey

话说,似乎是临时的,很多的国外网站都没法访问了,连ssh也不可用了,这些网站都是技术性网站,应该没问题的,加上vpn就可以访问了,奇怪的是,用vpn也访问不了twitter了,难道传说中的白名单制度开始试水了?Fuck GFW! @ 2011-08-21, 18:47:11

—————————————————————

最近有人在代码发芽网上留言问能不能加上AutoHotkey的高亮支持,瞄了一眼Pygments的新版本1.4,发现已经支持了,打算搞过来。另外发现发芽网后台的Django和Python以至于jQuery都老了,想起前几天看到阮一峰介绍新版jQuery性能的文章,据说快了很多,决定把这些一起更新一下,折腾开始了,且看一个业余的网页开发者会遇到多少问题。。。

1. 首先,参考以前的文章”configure your own python 2.5.2 on bluehost”安装Python2.7.2,下载编译安装,搞定。顺手改了.bashrc,这样下次ssh到服务器用的就是2.7了

2. 然后,下载easy_install的egg包,用 sh xxx.egg 安装完毕,然后,easy_install安装了发芽网依赖的库:django1.3, PIL, flup, MySQL-Python, Pygments1.4, markdown2, python-openid,为了用起来顺手,又安装了ipython

3. 然后,参考以前的文章Bluehost Django fastcgi配置, 静态(static)文件处理更改了t.fcgi,指向新的python库

4. 然后到后台杀死所有t.fcgi进程,网站立马不可访问了,500 Error或者干脆半天都不返回,杯具。

5. 查吧,一个个查,根据多次折腾的经验,觉得应该是t.fcgi里面出异常了。这个好办(现在说好办,当时也想了半天),因为t.fcgi也是python脚本,直接执行之,居然没有发现任何问题,突然发现,t.fcgi最上面一行,对,就是指定python可执行文件地址的地方,用的还是python2.5,sigh,亏我还在以前的文章里专门写过注意事项。

6. 再次杀死进程,打开网站,nnd,依然是挂的,再次执行t.fcgi,这次报了异常 – flup库没有安装,晕倒(前面步骤2里是全的,当时忘了装了),再次执行,没有啥问题了………中间由于每次fail都会发日志给我的邮箱,还遇上了bluehost发email的限制,不得不在Django配置文件里打开了Debug=True调试选项

7. 再次杀死进程,打开网络,tnnd,依然是挂的;好吧没关系,就放我换个姿势再来一次,在发芽网源文件目录底下,敲入python manage.py runserver,对,就是起了一个本地Django Server,果然起不来,但是可以看到异常了,看出来似乎是PIL里面出的问题,错误信息是MemoryError还提到了ctypes,肿么办?这个吓不倒我,Google之,发现这篇文章,里面说,打开$HOME/lib/python2.7/ctypes/__init__.py,找到CFUNCTYPE(c_int)(lambda: None),注释掉它就ok但是不知道到底为神马。我打开一看,里面居然有一段注释,意思是,写这几行代码的人也不完全清楚为什么要写这行代码:

# XXX for whatever reasons, creating the first instance of a callback
# function is needed for the unittests on Win64 to succeed.  This MAY
# be a compiler bug, since the problem occurs only when _ctypes is
# compiled with the MS SDK compiler.  Or an uninitialized variable?
CFUNCTYPE(c_int)(lambda: None)

8. 这样的神问题都碰上了,我像个小强一样挺了过来,注释掉这一行,居然,就搞定了~~~

9. 终于,发芽网可以打开了,世界和平了,王子和公主从此过上了幸福的生活~~~直到,我发现admin页面无法访问了

10. 这时候我大概已经患上了斯德哥尔摩综合症,看到这个问题,居然虎躯一震,精神焕发,查起了Django1.4的文档,发现,urls.py里面有个地方要改改了。这么快就搞定,很是乏味啊~

11. 终于成功的打开了admin页面,发现页面布局有些古怪,突然想起以前发的另一篇文章Bluehost上架设Django之Admin,原来admin_media还是指向以前安装的1.1的,删掉链接文件重新ln一下,搞定

12. 终于,看起来一切正常了,siteuptime服务告诉我说 back to normal 。。。咚咚呛

13. 然后发现代码发芽网贴代码以后,看起来就是一片漆黑,用chrome的developer tools验证了一下,原来所有的jQuery.ajax调用都会跑到异常分支里去,加上了几行代码发现报错 Unexpected token 。继续Google关键字Unexpected token和jQuery,发现stackoverflow上面有个帖子说这个事情,居然是个jQuery的bug?jQuery会把返回结果当成json进行eval,当然会有些问题啦,于是把所有的ajax调用里面都加上了一句 dataType: ‘text’ 之后,一切ok了

14. 至此,好像一切都好了,第二天,tianyi song同学给我写信,问我为什么代码发芽网不能用了?还给我发来了截图。来回交流了几次,发现我原来的代码里对Pygments的一个格式有严格依赖,在Pygments1.4里面这个格式有些改动,没办法,把Pygments源码里面html.py这个formatter改了几行,总算搞定了

15. 篇幅限制,省略细节问题十数条,还会遇到神马问题?期待~~~

经验总结

1. 不要怕,找到问题,细心分析,想各种方式去debug,搜索Google,大不了去看代码

2. 本地环境和部署的环境的一致性很重要,Service Engineer很重要啊,要想再更新的同时网络不下线,没有SE的支持是很困难的

3. 做个大网站,没有unit test也没有测试团队,那是不可能地~

btw, 或许有人问,搞这么多问题,就为了一个小小的网站,值吗?

值!兴趣是无价的,折腾是永恒的~~~在折腾中学习就是爽~~~!