现在很多大网站都有了图片反盗链,于是有时候在某些论坛或者博客就会遇到些“此图片仅限于…用户之间交流与沟通”的图片,这真是无法理喻。 反盗链 引用一段话:来自http://www.ningoo.net/html/2007/get_away_from_photo_defense.html 这里忍不住再次提起这茬,是在豆瓣九点看blog的时候,时不时冒出一副“此图片仅限于…用户之间交流与沟通”的图片出来,一个字,烦。不让看你干脆将所有的img直接过滤掉不显示就好了,还TMD放这么恶心的一个东西来刺激我的眼睛,要知道我眼睛本来就不太灵光,还好心脏不错,不然搞不好弄出人命官司。Blog和网页有啥区别?我想区别就在于我可以通过rss聚合阅读而不必要跑到blogger的网站上去吧。要是你输出的东西这不能看,那仅限于,那还搞个屁的rss。 图片防盗链,请离blog远点。呼吁所有的blogger,离图片防盗链的XX网站远点,不然,你们的内容再好,也只能敬而远之了。 这个我深有同感。
我的FTP Server——ftp.py
在上文中,我们简要地学习了下FTP协议,链接 http://everet.org/2012/03/ftp-protocol.html。 有兴趣的同学们可以去围观下。 因为最近偶看了下FTP协议,所以决定写个FTP Server玩玩。毕竟一直写的都是应用程序,于是乎想写下服务器端的程序。 结果就有了ftp.py,名字灵感来源于web.py。 ftp.py ftp.py由Python 2.x实现。目前有部署到我的服务器上。支持Windows、Unix和类Unix系统。支持多线程模式和多进程模式,不过在Windows上仅支持多线程模式。支持虚拟用户。 其中多进程模式支持以其他用户身份运行,加强了安全性。 其中用户设置写在ftp.py.config中,如果文件不存在则默认使用anonymous账户。 用户设置文件ftp.py.config格式如下: account_info = { ‘et’:{‘pass’:’123456789′, ‘home_dir’:’/root/’}, ‘lst’:{‘pass’:’987654321′, ‘home_dir’:’/tmp/’} } 也就是账户名+密码+家目录路径。 ftp.py.config 我们还可以在ftp.py的同级目录中通过ftp.py.config设置我们的FTP Server。 最大用户连接数 limit_connection_number 超时时间(单位:秒)timeout 默认家目录:default_home_dir 日志文件:logfile 运行的用户身份:runas_user 默认值为: 源码如下:
Python端口转发及重定向实现Eclipse的TCP/IP Monitor
记得在上个学期的时候选了徐扬老师的《Web服务与面向服务的体系结构》,讲了SOA之类的一堆东西。然后实验就是要4个下午做完IBM一个星期的培训课程…… 于是偶们便开始无脑地照着下面这本手册来狂做实验。记得要做10多个实验,算一下一个下午要做2-3个实验,所以当场做的话只能无脑操作鸟。不能不说是教育的悲哀啊。 记得在做“Exercise 7. Creating Web service clients”,有一小节是使用TCP/IP Monitor来检查SOAP消息。 也就是在Eclipse的TCP/IP Monitor中,设置监听一个端口如9081,然后设置你的SOA服务器的端口9080。然后你和9081端口的通信就会重定向到了9080.然后你就可以看到他们的数据传输。
进程间通信:管道pipe一个简单的例子
管道是进程间通信的有力的武器.记得初中时在写Windows的后门的时候,也是开了一个匿名的管道和cmd进行交互.今天终于在Linux上写了下管道. 在Linux下,两个程序之间传递数据的最简单的方法就是使用popen和pclose两个函数了。但它们都是需要启动一个shell。这个成本略高啊。 于是我们可以使用底层的pipe函数。通过这个函数,我们在两个程序之间传递数据而不需要启动一个shell来解释请求的命令。 原型是: #include <unistd.h> int pipe(int file_descriptor[2]); 参数是一个由两个整型的文件描述符组成的数组的指针。成功返回0,失败返回-1,并设置errno来表面失败的原因。 两个文件描述符以特殊的方式连接起来。写到file_descriptor[1]的所有数据都可以从file_descriptor[0]中读回来。数据基于先进先出FIFO的原则。 我们使用read和write来访问数据。 管道有一些内置的缓冲区,它在write和read调用之间保存数据。
Python进行图像处理——生成交替颜色的格子图
今天小孟师兄要一张贴图做测试,屠文翔同学用Fireworks花了两分钟做了下面的一张图片。但是师兄说要一张颜色相隔的图片,于是Fireworks此时就显得有点力不从心了。于是此时Python就要上场啦。 Fireworks生成的图: 好,下面,我们来用Python的PIL库来敏捷地生成一个颜色相隔的格子图。只需要10行代码。
神奇的Python:解析OGRE配置文件
OGRE(Object-Oriented Graphics Rendering Engine,即:面向对象图形渲染引擎)是一个用C++开发的面向场景、非常灵活的3D引擎,它旨在让开发人员更容易、更直接地利用硬件加速的3D图形系统开发应用。这个类库隐藏了底层系统库(如:Direct3D和OpenGL)的所有细节,提供了一个基于世界对象和其他直观类的接口。 译者注:ogre在英文中意为:食人魔鬼, 怪物, 象鬼的人,故其LOGO是一个怪物头。 以上引用自百度百科。 OGRE的很多东西都通过配置文件来控制,这样会很灵活。 配置文件的例子如下: [Bootstrap] Zip=../media/packs/OgreCore.zip # Resource locations to be added to the default path [General] FileSystem=../media FileSystem=../media/fonts FileSystem=../media/sounds Zip=../media/packs/ogretestmap.zip Zip=../media/packs/skybox.zip #Zip=../media/packs/chiropteraDM.pk3 它分了section,在section下有许多配置语句,也就是一些赋值语句。 其配置文件的文法类似如下:
神奇的Python:格式化UltraDemo的文法
SimpleParse是一款非常简洁的Python解析模板,可以自己定义EBNF文法,然后SimpleParse会输出结构化的。 SimpleParse的介绍可以见,http://www.ibm.com/developerworks/cn/linux/sdk/python/charm-23/index.html,我也是从IBM的网站上看到这个神奇的模块的。 我们有如下的UltraDemo的文法,这个是我们之前写在word文档里面的。 他们很乱,于是我们要对其进行格式化。 不幸的是,我们没有现成的工具可以格式化它,所以我们要自己定制一个小工具来完成我们的任务。 此时我们可以借助SimpleParse。 下面的原始的文法,很乱是不是:
