MASM32编写的表单提交库

这个库是以前用MASM32的时候写的,它的功能其实就是实现multipart/form-data的标准的方式去与HTTP WebServer交互。只是这个库是纯socket实现的模拟浏览器表单提交,包含提交文件的功能。 首先要承认,做这个库的时候,我没有去看相关的规范文档,而是截获的IE提交表单的数据包来分析,然后再用socket直接封装的这个库。Multipart的form其它字段跟post的也差不多,而上传文件的时候是用一个界限字符串来区分文件。我一直在想,如果文件是一个文本文件,文本文件里恰好又包含这个boundary的结束标记,那会出现什么情况呢。呵呵,当然,我的boundary标记是随机生成的,所以基本上是不大可能与文本文件里有相同的字符串,有就不知道是什么结果了。总之我觉得我们不用太关注这种基本上不可能发生的小概率事件。 有了这个库,应用程序就可以实现跟浏览器一样的向webserver上传文件功能了。

Firefox 的Add-on备忘

Firefox的扩展主要以动态链接库Plugin和js的Add-on为主。前者以开发动态链接库的方式,一般是firefox浏览器提供标准的NPAPI函数供插件调用,(NPAPI好像Opera浏览器也为它的插件提供的),现在要记录的是第二种方式,第一种就不多说了。 如果要直接访问页面元素,用Add-on方式肯定是比插件方式更简单的操作了。 Add-on模板生成地址: https://addons.mozilla.org/en-US/developers/tools/builder 有了上面的制作工具,填填表单就可以生成基本的插件模板,用户可以自己选择自己需要的功能。生成的插件解压后放到firefox的extensions目录下,重启firefox就会看到插件已经成功安装。 \chrome\content目录下放了主程序和插件的主要配置,如插件的首选项配置,插件显示的位置配置。 \chrome\locale 目录下放了各种语言包,如果你想插件国际化的话就要写很多,不想的话可直接改en-US内的语言,中文的话存成UTF-8就OK了。 \chrome\skin 目录下放了一个css,这个css可以控制插件显示样式,如目录项的背景色,或工具条的样式。

32bit ASM to 64bit ASM–汇编语言64bit心得

最近有个项目,我使用NASM编写的,运行在32位windows和linux主机上,但后来需求增加了,需要在64位windows和linux上运行,windows自身有个wow(windows on windows)机制,32位程序根本不用移植就能在64位机器上跑,而linux虽然没有LOL机制(是Linux on linux,不是laugth out loud哈,呵呵 ~),但linux 可以安装ia-libs库(ia 应该是 Intel x86 Archive的简写)达到LOL效果,不过,编译ELF64和WIN64OBJ也是我比较感兴趣的,所以我要移植程序!

搞了个手柄玩super mario RPG

最近突然想玩sfc了,以前的《时空之轮》,《最终幻想VI》给我的印象都非常好,square公司的游戏音乐,剧情,可玩性都非常棒! 最近又看到super mario rpg这个游戏,是任天堂和square公司合作出品的游戏!两个都是巨头,游戏肯定好玩,果然不出所料。为了玩它,特地去搞了个手柄,以便阿拉倘着玩。。。

给朋友网站做的世界地图flash

这个flash应该是我最后一次拿AS2做flash了,AS2读GBK编码的XML的问题Linux上就会显现出来,而AS3可以统一用UTF-8就不会出现这个问题。自从这个Flash以后我都用的AS3。 呵呵。这个flash在朋友的网站上放了好几年了,看着挺舒服,就把它转到自己的博客上来了。 Flash地址是:http://www.ccbdd.com/hoverlees/worldmap/world.swf

应用微积分平滑连接Flash中两条二次贝赛尔曲线

大学里有一门很重要的课程,叫高等数学。这门课是既让人喜又让人忧的课,我觉得还是忧占多数吧,书上讲的很抽象,而且很少提到这些东西在实际中的运用,所以很难提起大学的兴趣,最终会被大多数人归为‘天书’,我当年就觉得没兴趣。 但最近要实现的功能里必须用到微积分的知识,终于体会到了它带来的乐趣。。。 这次是要做一个网络拓扑的flash,包含拓扑图的编辑和展现功能,遇到一个难点是两台主机之间如多有个连接时,连接需要用孤线。在flash中孤线有二次贝赛尔曲线的绘图函数,只要提供三个点就OK了。但是,我的需求里,每个连接是要表示连接的两个方向流量信息,所以实际上,我们是要两段线组成一段线。直线就最简单,知道两个点取中点,分别画两条线就OK了,但要两根二次贝赛尔曲线组合成一根圆滑的曲线,就成了难点了。 现在就是,我们有一个起始点和一个结束点的数据,还有中点的数据是自己规定的,现在需要用两根二次贝赛尔曲线来组合成这一根曲线,以达到“把一条曲线分成两部分”的效果。下图就是最终实现后的效果。我这儿故意多连了几根线,但设了不同的带宽来表示同一条线的流量,所以颜色是不一样的。根据带宽和当前流量值设置各段线的颜色不是难点,呵呵。

windows虚拟桌面

这个小程序是以前用windows  xp的时候写的,用的MASM32编写。XP里程序开多了的时候任务管理栏显得很挤,不过这个问题在windows7上应该算是得到了很好的解决。 ubuntu等系统一个Screen都有多个Desktop,程序窗口可以放在任何一个Desktop里,当然这个是Gnome的支持。而windows一直没有,任务栏又这么挤,所以当时就搞的这个。

MASM32的结构化异常(SEH)宏

这个是以前做的,发在了MASM32论坛上。现在转回到自己的博客上来。。适合32位windows。 这些宏的实现是利用了“函数嵌套函数”方式。在我知道的所有语言里,只有汇编语言里可以实现函数嵌套函数。 另外Linux也有类似的SEH方式,是通过sigsetjmp方式,先把我的旧文章发了再提下。。

换用MySQL Workbench了

没事想上上mysql官方看看,居然发现MysqlWorkbench这个软件,介绍上说是Mysql GUI Tools的替代品。用了这么多年的MysqlGUITools,感觉很不错,既然这个是升级产品,当然要下载下来试试了。 我下了一个gnome版本的,界面还是很友好的,可以保存多个连接和各自的密码,数据库的操作看起来也比Query Browser好用多了,大型脚本如存储过程,视图,触发器等也非常方便地管理。总之是非常好用,强烈推荐!发两张图看看。