[开源]饭否应用-秘饭

2009-9-18 评论(2) 分类:作品 Tags:

mifan2

年初寒假做饭否应用-秘饭的时候,没有发上这里,现在补上,顺便把它开源了。

应用介绍

秘饭是一个可以让你匿名发送饭否信息的网站。不需要饭否帐号,只需要输入你想说的话,点击发送即可。这有什么用呢?一些不太适合在你饭否帐户说的话,但又很想说的,就可以在这里发,也可以说出心中的秘密。有三种方式可以发送你的秘密:

1.在秘饭主页上发送,是完全匿名的,IP地址也不会被记录,发送后需要通过验证才能发布在秘饭上。

2.通过饭否给秘饭发私信,同样需要经过验证,发信人只有管理员看得到,发布在秘饭后是匿名,并且保证不会透露发信人姓名。

3.通过饭否 @秘饭 发布消息,这些消息不需要通过验证,会直接显示在 公开的秘密 页面上,需要先 加秘饭为好友

开发说明

语言使用php,使用smarty模板引擎,三层结构,主要功能为:

后台可以读取两种数据,1.在首页直接发送的信息 2.饭否上给秘饭账户发送的私信 分别对其进行验证,验证通过的消息则标志为已通过,显示在首页,并通过秘饭的账号发送这条消息。验证不通过的消息则删除,验证过程使用ajax,提高效率。

秘饭上每条消息都可以设置标签,效果与博客标签类似。每条消息都可以有评论,评论使用纯AJAX进行,这个功能花的功夫比较多。

大概功能就这些,我自己挺喜欢这个应用,这好像是我写过的结构最清晰的一个应用了,界面自我感觉不错,花多了点心思在细节上。

因为秘饭里使用到curl,本空间似乎不支持,所以无法放上,一直放在一个免费空间里,饭否挂了后,那个免费空间跟着也挂了,等饭否恢复了,再看看要不要重新找个地方放上秘饭~

源程序下载:mifan.zip(329K)

可改API地址的twitter wordpress插件

2009-9-11 评论(7) 分类:作品

plugin-twitese

虽然可能网上早就有各种不同的可用的twitter wordpress插件,但想来改个插件很容易,于是就自己改了。主要算是做给自己用吧~

这个是修改自之前使用的饭否插件,而那个饭否插件又是在yo2.cn的oneoo写的twitter插件的代码基础上修改而成,所以源文件的说明里就没提到饭否插件了。

这插件文件名为twitese,仅仅是文件名,跟twitese也没太大关系,只是里面的首页地址默认为http://twitese.appspot.com 而已,可以自由改。

主要增加了三个选项,一个是API地址,网上有很多可供选用的第三方API, 第二个是首页地址,第三个是是否显示回复,此选项打上勾后,将不会显示@回复别人的消息,实际上只是把获取的N条消息中@回复的消息去掉,所以一般会少于设置的显示记录数量。

下载:wpplugin-twitese.rar

推特中文圈

2009-8-16 评论(64) 分类:作品

twitese

遵从我一个假期一个作品的习惯,这个暑假的作品完成了:推特中文圈 – Twitese http://twitese.appspot.com/

(update:PHP版项目地址:http://tuite.googlecode.com)

介绍

推客中文圈Twitese旨在帮助中国twitter使用者寻找国内优秀twitter用户,同时让大陆用户无需翻墙即可更新状态和浏览好友消息,通过抓取twitter上的中文用户形成”排行榜“以及“随便看看”,让用户有一个类似饭否的界面和功能使用twitter。

原理

twitter 一两个月前开始被和谐,估计以后是不会再恢复了,于是出现了很多翻墙或不翻墙使用twitter的方法。其原理是通过API把获取和发送twitter信息的程序放在国外服务器上,国外的服务器访问twitter没有限制,而国外的这台服务器没有被和谐,所以国内也是可以访问的,等于把这台服务器作为国内用户与twitter连接的中介。这就是twitter不可能被完全封杀的原因,每一台外国服务器都可以把你连接到twitter上。推特中文圈也是这个原理。

功能

此网站搭建在Google AppEngine上,也就是外国服务器。分两部分功能:

功能一:实现使用twitter的所有功能,发推,加好友,看消息。

实际上就是给twitter加个外壳和中介,跟itweet等网站一样。界面模仿饭否,所有用词都遵从饭否,缅怀饭否,同时也是符合国人使用微博客的习惯。

功能二:不断抓取twitter上所有中文用户,形成“随便看看”和“排行榜”

通过Google AppEngine的Cron功能,每隔一定的时间抓取某一用户的好友存进数据库,存之前判断是否为使用中文的用户。只要从任意一个好友数非零的用户开始抓取,循环下去,就差不多能抓取到所有twitter上的中文用户。对已抓取的则只更新最新消息,这样就形成了“随便看看”

困难

做的过程碰到的问题和困难不少,列举主要的:

  1. Google AppEngine的数据库很差,十分差,如下:
    • 数据库建立后不能增加新栏不能减少栏,必须删除重建才可以。
    • Key不能以数字开头,导致我每一个Key前都要增加一个字母。
    • 查询语句没有like也就算了,连or都没有,服了~导致制作排行榜的标签功能变得困难。
    • 一次最多只能查询到1000条数据。导致我不知道我已经抓取了多少条数据,排行榜上能显示的也就1000个用户。
  2. twitter停止source的申请,新应用只有通过OAuth验证才能有“from [myApp]”的字眼,OAuth验证需要经过twitter网站,这对于大陆用户实在不是什么好东西,没有了source,对于宣传和统计很不利。
  3. 本地测试十分慢,是因为本地读取twitter的API十分慢,有时全部传上去在网站上看效果反倒快了,另外Google AppEngine的上传很不方便,就算我只改某一个静态js文件的一个标点,都要整站上传,Eclipse插件也没有提供只更新cron的功能,麻烦。
  4. Eclipse一天无响应十几次-_-! 这不知道是什么原因

过程

暑假刚回来那阵子在想要做什么东西好,起初准备用javascript做一个AIR程序,jquery专用编辑器,后来发现AIR里的WebKit竟然不支持撤销功能,后来再发现Aptana写jquery也有提示的,更没必要做了,作罢。

后来接触下Google AppEngine,发现Cron Job,我在寒假做秘饭里饭否统计的时候就很希望有这么一个功能:每间隔一段时间执行一次程序,因为对web程序来说一个程序不能运行太久,抓取数据一次只能抓一点,所以要能自动间隔时间执行程序就能实现连续抓取。Cron Job正合我意~起初只想抓取所有twitter中文用户把排行榜和随便看看做出来就是了,后来觉得索性做全套,把用twitter需要的功能都加上了。

做的过程还是跟做Q版海底俄罗斯时一样疯狂,可能更疯狂些,我做东西似乎都急着要把它做完,这次做的速度也算挺快的了,5号开始到14号完成,期间还有一天回碣石没做。做的过程中觉得乱,但做完后觉得结构还可以不是很乱,该分出来的分出来了,还算清晰~接下来还要慢慢完善,还有许多功能可以做。

前天晚上放上去后发了一推,很快被传播,twitter的传播速度比想象中要快,那晚忙死了,都在回复和修复大小bug~看到挺多正面评价挺开心的,呵~辛苦没白费~

最后

祈祷别被封~

Q版海底俄罗斯

2009-6-13 评论(5) 分类:作品 Tags:

quadrapop

普通版:http://bangswork.googlecode.com/svn/trunk/QuadraPop/index.html

校内应用版:http://apps.xiaonei.com/quadrapop/

关于游戏

某一天突然想做索爱手机里的“Q版海底俄罗斯”游戏,上网搜了,没人做过非手机版的,有点惊讶,难道这个游戏知名度这么低?没人做刚好,我挺想做这个游戏的。下了这个游戏的手机版,搜了JAR破解软件Halo,提取了里面的图片资源,做成FLASH里一个个元件。FLASH很久没碰了,边做边回顾FLASH那些语法特点,倒还挺快熟悉它,有一些模糊印象,重新学起来很轻松。果然编程思想才是主要的,语言无关紧要。

我做起东西来是挺疯狂的,直到把它完成了才算了解心头一事,所以最近坐在电脑前的时间几乎都用在这上面了。小小的一个游戏,做起来还真不容易,bug不断,逻辑复杂,这也是我设计不合理造成的吧,功力还未到家,但最后总算做出来了,但有多少潜在bug还不知道。

整个游戏还没全做完,还差菜单和排行榜部分,就不放上了,之后打算放上校内网,这该是暑假的事了,快要考试,得集中精力学课程了。

关于体会

写个游戏可以体会到编程一些相关的东西,代码刚开始还很注重质量,分出类,但到后来几乎所有的逻辑都写在一个类里了,因为关联度都很高,不知怎么分出来。成了半对象半结构的程序了。

在查找错误的时候面对一坨代码,复杂得要命,才知道设计模式里那么折腾分出那么多个类是干嘛使的。

面对非常偶然出现的错误,很难碰到,又不知道去哪里查错,了解到软件测试应该是怎样的。

写游戏要注重太多细节了,虽然说事先把整体规划好再写会轻松很多,但没达到一定水平实在是做不到,跟建筑一样,砌砖实施容易,设计整个建筑难。

关于目的

有时候做一件事,不需要那么目的明确吧?有人说“做这个干吗”,很早以前也是,初中时高中时,“怎么老是做这些东西(不好好学习)?”。我可以有很多答案,最简单的是,just for fun。如果每做一件事都要想清楚做它干嘛,那也太累了,想做就做。

关于FLASH

编程过程中,对FLASH以及AS3的一些特点有点不爽:

  1. 编辑器差,连选中整段tab都不行,代码提示非常少。
  2. debugger差,程序出错不会提示是哪一行 只会提示是哪一个函数(也可能是我不会用)
  3. removeListener写错不会报错,如果从未设定addEventListener(Event.ENTER_FRAME,move),写removeEventListener(Event.ENTER_FRAME,move); 时也不会报错
  4. 例:addEventListener(Event.ENTER_FRAME,move) 向侦听函数move传参数超麻烦
  5. 在把显示对象添加进舞台前,在现实对象里无法调用stage,麻烦。
  6. 要在某处延迟执行某一语句很麻烦

后续(6月15日)

做完菜单,本来以为OK了,一玩才发现有时暂停结束回来会出错,为了这个BUG,抓狂了好几个小时,就是找不到究竟是哪里错了,而且到现在我还不知道这个bug解决了没有,惨,被一个BUG搞到头晕脑胀,想来还是因为整个游戏结构设计得差,程序写得乱,有时为了实现一些功能就这补些代码那不些代码,改来改去,很乱。这也是能力不足的体现吧。快要考试了,不能再继续这样疯狂地折腾这个了,就先这样吧。算是有成品出来了:http://cnbang.net/QuadraPop/

JPuzzle – 拼图游戏

2009-6-2 评论(1) 分类:作品 Tags:

puzzle

http://cnbang.net/lab/Jpuzzle/

最近继续学javascript,某一时刻想试着用jquery和jquery UI里的drop and drop实现之前用FLASH做的拼图游戏,于是动手做了,主要的功能很快就做好了,但做着做着,就想把它做完整了,在细节、代码结构、注释、界面、效率这些方面花了很多时间。

代码结构自我感觉算是不错了,但计时器似乎不应该那样写,在卡的时候计时也会跟着卡,不能正确地计时。

注释第一次用英文写,肯定有语法错误,可能还有歧义,算是尝试吧。

运行效率上,我一直没法找到提高运行效率的方法,现在一直按Start开始新拼图的时候,在firefox和Chrome下没问题,在IE下会一直增加内存,暂时还不知道怎么解决这个问题。

排行榜也花了不少时间,只保留10个最高分数,虽然可以正常运行,但要作弊是十分简单的,在本地做个有score和name的表单提交过去就能随意写入任何分数了,这个,应该是要在php加session或cookie解决吧,先不改了。

做个成品出来真是很耗时,尤其是做界面。这次我没有虎头蛇尾,由始至终都很认真做每一部分,我好像有个坏习惯,自己做个什么东西,在没做完的时候,会老是惦记着它,近乎疯狂地想赶快完成,相当疯狂~

最后还是说下玩法,进入页面后直接点击start就可以开始了,可以复制网上任意一张图片的地址在photo url框,也可以在随后的选择栏里选择预置的几张图片,piece Num为切割的块数。分数的计算是,块数越多分越高,时间越多分越少。

源码

[AIR]微博客数据保存 twitkeeper

2008-10-2 评论(8) 分类:作品 Tags:

twitkeeper

需要安装最新ADOBE AIR v1.01 :http://airdownload.adobe.com/air/win/download/latest/AdobeAIRInstaller.exe

twitkeeper下载:twitkeeper.zip

在某个时候看到一句话:“话说,腾迅QQ也总有一天会消失,那么一些记录也就只是或长或短的暂时;那么,饭否,也是吧?”

我是 觉得腾讯QQ是只会演变成别的东西而不会消失,饭否就不知道它能提供服务多久了,饭否没有盈利,创建它的人也放任着饭否不管全力搞海内了。不过饭否有那么 多的用户,在互联网用户是基础~~所以该是不会突然就消失的。数据是放在网上安全还是放在本地由自己保管安全?就几年前的话毫无疑问自己保管才踏实,现在 就不一定了,有时放在实力雄厚的网站上更安全。饭否现在来说,实力并不咋样。饭否已经不增加新功能了,搜索功能都没有(不会是我没发现吧?),各种对数据 的统计也没有。

所以,就想写个程序,一可以保存饭否上的数据,二可以对保存的数据进行分析统计。其实所有的微博客构造都差不多,于是想做可扩展的,不单是读取饭否的,也可以读取叽歪、滔滔、twitter等其他微博客内容的。

获取数据是一页页读取HTML再提取有用的数据的,由于安全沙箱的关系,网页中不能获取不同域的网站的页面数据,所以需要做桌面应用程序。做桌面软件, 我就只会做ADOBE AIR程序而已,事实上,我只会用网络语言。上次的账本程序用actionscrīpt3写,这次就用javascrīpt写了,刚好很想练练js,刚好 发现一个很好的软件aptana,写程序、调试都很方便,又刚好看到一本好书Pro Javascrīpt Design Patterns,于是在暑假接近8月的时候就开始写了~~

开头部分十分认真,想结构想半天,想很多以后扩展什么的,定一个类都定半 天,写的代码看起来挺舒服。后来暑假某一段时间开始就不写程序啦,到了开学都没怎么再写,开学后事情又多,没啥时间,又想快点完成这个程序,好专心做其 他,结果,我做东西的一贯作风:虎头蛇尾又出现了。。现在的程序又变成了只求效果,不管结构、扩展什么的东西了~~这个是匆匆完工的,外观做得马虎,统计 的东西应该用图表表现出来的,现在直接输出数字了,挺难看,名字叫twitkeeper,twit是微博客元始天尊twitter的缩写,但里面只能读取 之前写的饭否和叽歪,懒得去写twitter的读取了。。程序没经过多少测试,BUG有多少就不知道了。。

之前设想,先做出基本的,以 后再慢慢扩展以下功能:用户登陆,可发送信息,可同时发送一条信息到多个微博客(饭否、叽歪、twitter等),支持读取封闭帐户(就是只有好友才能查 看的帐户),支持读取保存私信,视图可任意扩展,本地收藏夹(每条消息后面有选项“保存到收藏夹”),等等,有了数据,就可以进行各样的分析统计。上面那 些想起来都是可以实现,不过相当麻烦,估计我是不会再做。。

在做的过程发现,饭否比叽歪好很多,饭否读取速度飞快,叽歪读取速度那个慢啊。。饭否页面结构好,获取数据的时候省事不少,叽歪的页面。。内容不是单独在一个标签里,奇怪。页面又很不简洁。

运行的时候,才发现在页面插入DOM很耗时,显示四五十页的文件都要五六秒。。这个应该可以改善的,改成不一次性读取,有空再改。搜索遍历等的查找就很 快。用XML格式储存数据得注意”<” “>” “&”这三个字符,会破坏XML的结构,当时分析XML结构出错时就在想,早知用json了,没那么严格,XML一不小心结构没了就完蛋。。

ADOBE AIR虽然说支持用JS写,但觉得还是用FLEX做,用actionscrīpt才是正道~~用JS麻烦不少~~

我自己是觉得应用里的搜索功能挺好用,就是读取数据多的文件时很慢,上面说了,在页面插入DOM很耗时,待改进。

10月3日更新:

昨晚放上twitkeeper时就说到,读取数据多的文件时十分慢,今天刚好看一篇文章:Javascrīpt动态生成表格的性能调优,用数组储存元素再一起放进页面,速度提高了近10倍~~~~现在读取的速度很快~~~不晓得为啥用数组储存会比其他方式快那么多,估计得深入了解才能知道~~

第一个项目

2008-7-13 评论(1) 分类:作品 Tags:

东莞石龙第三中学

学校网站:http://www.dgslsz.com/index.asp

5月4号,琉森转发一条消息,某学校招人做网站,要求挺低,觉得我做得来,就联系了,几经周折,通过了N个人的联系,第二天傍晚,找到那个学校的人,说了具体要求,当晚就开始动工做了。在此先感谢琉森~~~

第一次接项目,他们要求15号之前做好,10天时间,于是很赶,虽然没有熬夜做,但坐在电脑前的时间都贡献出来了,而且课都不想去上了~~~当时每一天都随便记录了下当天完成了什么:

5日晚:首页面PS图

6日白天:首页css  晚上:内页PS+CSS

7日:ASP article catalog getCatalog页面

8日:评论页面/操作   后台 添加文章

9日:编辑文章 审核评论

10日:教学资源 文件上传 校友之窗

11日:早上:博客 友情连接

12日:公告 管理员登陆、检测 编辑器图片错误 首页内容

嘿,最令人头疼的页面设计在第一、二天就搞定了,自我感觉页面还不错。接下来的时间就是专心写代码了。

第一次做后台,但挺顺利,出现最大的问题就是后台的那个编辑器,因为是插件,不是自己写的,所以一有点小错误,就要搞很久,有一天晚上被它烦透了,最后用了治标不治本的方法解决一个小问题,还留有后患~~~

本来是要用一位师兄写的操作数据库的类的,因为那样防SQL注入,安全性高,但当时时间很紧,那个类的代码看了半天没看懂,就觉得,算了。还是用原始的方法吧。

期限是15号,实际上12号就基本上完成了。做到后面其实有点不想再碰了,所以做完后很少测试。。错误是挺多的。后来他们测试的时候跟我说那些错误,我才改过来。

这项目貌似还没结束,他们提出了两点改进的要求,接下来还要继续改。。。不知啥时候才能彻底结束。不知道,做项目的人,有为网站提供技术支持的义务吗?

[FLASH]游戏——倒转数字

2008-6-13 评论(3) 分类:作品 Tags:

上上次班里的“大学生之家”,就是帮忙在饭堂里收餐具,以及在食堂外面玩玩游戏,我们出的游戏是,给出7个数字,让对方倒着念出来,结果由于太容易,那些礼物都是半玩半送。。

今天突然想到这个游戏,想做出来。这学期,或者说这一年的实践实在太少,这个游戏做出来后,发现。。。FLASH的水平,跟去年的这时候比,完全没进步,还是全都是函数一块块拼成。。。

因为考虑到要四级,要期末,课程平时又没学,所以五月做完那个学校网站后,就一直没专心去学.net等东西,就一直在看博客、聊天,可谓时间安排得极 差,我一心不能二用,心想着考试就搞不了学习这些东西,高中也是因为这样,虽然在电脑前的时间不少,但啥都没学,就玩游戏。。嗯。。想试下一心二用,在临 近考试的时候,还能继续学、做东西。

貌似在游戏中按“重新开始”会有一些BUG,传都传了,不改了~~~最后分数的计算有点乱来。。

Flash: 倒转数字 在线玩

源文件下载

[AS3]面向对象的计算器

2008-6-7 评论(0) 分类:作品 Tags:

昨天看了下《大话设计模式》的样章, 看了第一章,通俗易懂,语言风趣,看得很爽,第一章讲用面向对象的形式编写一个计算器,普通地实现计算器的功能很简单,但用要使编出来的程序有封装、继 承,可重用,耦合度低,就变得挺难了,我至今是没编过什么面向对象的程序,理论是看了很多,就是没实践,看了这篇东西后觉得用AS写下,练习下,熟悉下面 向对象的编程,是挺好的~~

此程序包含了7个类,一个运算基类,供继承用,四个运算类,具体实现运算,一个工厂类,创造类的实例用,一个计算器类,具体实现功能用。

源文件下载

网站设计赛作品

2008-5-2 评论(1) 分类:作品 Tags:

改革开放

http://cnbang.net/lab/gg/

学校网站设计赛,主题是改革开放。就做了个~~~尽了80%的力,展示了90%的网页水平,40%的FLASH水平~~数字不太准确。发现我会的网页“技术”就差不多这些了~~~相当poor~~~~努力学.net中。。。这个网站内容少,完全没思想,就几篇文章拼凑起来,拿去比赛也是凶多吉少的了。。

介绍:

首页以纯FLASH形式展现,开头是LOADING,“改革开放”四字会随影片的载入进度由半透明变为白色,载入完成后点击进入。

选择任一栏目进入主页面。为了使看不到FLASH的人也能顺利进入主页面,在下面加了skip直接连接到主页面。

主页面采用DIV+CSS布局,兼容IE6、IE7、FireFox。

语言采用ASP及javascrīpt。数据库为ACCESS。

主页面左边的目录栏目采用AJAX异步无刷新获取目录,在禁用Javascrīpt的情况下点击栏目会跳到每个栏目的第一篇文章,确保不影响浏览,启用Javascrīpt的情况下异步无刷新获取目录增强用户体验。

左下的FLASH图片展示根据文章所在的目录显示不同的图片,所有图片放于外部,一张张载入。

内容部分右上角的字号可以改变内容的字号大小,左边是减小,右边是增加,中间是恢复12px的大小。

顺便一提:寒假做的桃李苑内容也都加上去了~~算完工了,非校园网的速度会很慢:

桃李苑

http://www.oursdqn.net/TaoLiYuan/TLY/index.asp