摘要: 既然用上emacs了当然要学会怎么用emacs做笔记一个详细的教程http://markdown.tw/本想就用大纲模式算了, google了一下发现了markdown这个好东西先说下安装首先下载 markdown-mode.elhttp://jblevins.org/projects/markdown-mode/markdown-mode.el按照注释中提到的方法将下列代码加入.emacs配置中 (autoload 'markdown-mode "markdown-mode.el" "Major mode for editing Markdown fil 阅读全文
posted @ 2011-11-20 00:16 LemonLi 阅读(3314) 评论(0) 推荐(0) 编辑
摘要: 逼自己在Ubuntu+emacs的环境下做了一周的开发慢慢的对emacs熟悉了起来,但是有一些快捷键还是没用熟练 总结下常用的按键命令作用C-fforward-char向前一个字符C-bbackward-char向后一个字符C-pprevious-line上移一行C-nnext-line下移一行M-fforward-word向前一个单词M-bbackward-word向后一个单词C-abeginning-of-line移到行首C-eend-of-line移到行尾M-eforward-sentence移到句首M-abackward-sentence移到句尾M-}forward-paragraph 阅读全文
posted @ 2011-11-19 22:19 LemonLi 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 1.memcached安装使用apt-get安装memcached# sudo apt-get install memcached启动一个memcached实例# memcached -m 10 -p 12000-m 10 是指定最多使用的内存大小单位是M,如果不指定默认会使用64M-p 12000 是指定端口号,默认端口为11211另一个例子 说明一下参数memcached -d -m 10 -u root -l 192.168.40.4 -p 12000 -c 256 -P /tmp/memcached.pid参数说明:-d选项是启动一个守护进程-m是分配给Memcache使用的内存数量. 阅读全文
posted @ 2011-11-18 12:45 LemonLi 阅读(2605) 评论(0) 推荐(1) 编辑
摘要: 1、安装samba:# sudo apt-get install samba2、查看windows下共享打印机的共享名(注意:不是在windows添加的打印机的名字,而是共享名。可以通过在windows下添加好打印机后,在”开始”->”打印机和传真”,选择那台共享打印机。右键,属性->共享。那里的共享名就是我们想要的)名字中的空格用%20代替3、进入ubuntu。在system(系统)->Printer(打印),AddPrinter(添加打印机).4、选择”NetworkPrinter(网络打印机)”->”使用samba的window打印机”5、可能会弹出几个密码输入框 阅读全文
posted @ 2011-11-18 11:16 LemonLi 阅读(1692) 评论(0) 推荐(0) 编辑
摘要: pywin安装模块:http://sourceforge.net/projects/pywin32/files/import win32apiimport win32conwin32api.keybd_event(17,0,0,0) #ctrl键位码是17win32api.keybd_event(86,0,0,0) #v键位码是86win32api.keybd_event(86,0,win32con.KEYEVENTF_KEYUP,0) #释放按键win32api.keybd_event(17,0,win32con.KEYEVENTF_KEYUP,0)附个键位码表:字母和数字键 数字小键盘的键 阅读全文
posted @ 2011-09-07 16:18 LemonLi 阅读(36109) 评论(2) 推荐(3) 编辑
摘要: [刺鸟原创文章,转载请注明出处]在前面的文章中,我们已经开始了不少逻辑功能的开发,在这期间也有不少可以分享的经验点,这个我们以后慢慢道来。今天,我们主要讨论下如何让服务端能进行分布式部署和工作。一:为什么要支持分布式部署和开发众所周知,python是单线程的语言,存在GIL锁、无法利用多核CPU等诸多限制,为了能让服务端能承载更多的用户,我们必须让程序能在逻辑上、甚至物理上分开,当用户达到一定数量的时候,我们能新开一个进程来响应请求,或多加一台服务器来处理请求。这样就能达到理论上无限扩展的可能性。二:如何让程序能达到上述效果我们简单分析下我们的服务端要实现的功能:战斗服务器:通过之前的文章可. 阅读全文
posted @ 2011-09-06 17:08 LemonLi 阅读(604) 评论(0) 推荐(0) 编辑
摘要: [刺鸟原创文章,转载请注明出处]前面的工作都已准备就绪,现在我们得来看看服务端怎么和客户端之间进行通信了,Python和FLASH之间的通信,我整理为以下3种:1、用现成的协议及类库处理,比如:pyamf2、自己封包进行二进制数据流通信3、用JSON字符串通信一、JSON和二进制数据流的优缺比较pyamf有比较现成的文档,因此,这里我主要研究研究后两种。我们先简单分析下JSON和数据流各自的优缺点:JSON:优点:数据结构灵活,无需先制定复杂的协议;跨语言之间基本都有完整的解决方案。缺点:传送的数据因为要增加json的特征符(',"",:,{等),导致数据量较大;明 阅读全文
posted @ 2011-09-06 17:08 LemonLi 阅读(814) 评论(0) 推荐(0) 编辑
摘要: [刺鸟原创文章,转载请注明出处]在之前的准备工作中,我们已经建立了一个socket服务器,并且经过了简单的测试,得到的结论是python可以满足我们的需求,那么接下来,我们要解决的是身为webgame服务端必须的几个功能模块:一、记录和维护所有客户机的状态更新:按照jinmin_lan同学的建议,这里直接用self.transport.sessionno即可,查twisted文档的时候我忽略了这个东西。因此无需按照我下面的方法来手动维护,好吧,我造了一次轮子……为了实现这个功能,我们先回过头来分析下之前的服务端代码:1、每个客户端连接会有一个gameSocket对象被创建,然后触发connec 阅读全文
posted @ 2011-09-06 17:07 LemonLi 阅读(844) 评论(0) 推荐(1) 编辑
摘要: [刺鸟原创文章,转载请注明出处]就在刚才,我们用基于python下的Twisted库写了一个简单的socket服务器,不知道它的性能和基本的承载到底如何呢?接下来,我们作一个简单的测试。说是简单的测试,一点也不假,因为这确实只是最基本的测试,流程是这样的:用python写一个客户端,设定连接数,然后向我们指定的端口发起socket连接,连接成功后,向服务端发送一个字符串并一直保持连接状态,服务端在收到客户端的内容后,向它回复:bingo!igotyourmsg:{content}。好啦,有了需求,开始动手吧!把我们之前的服务端代码略作修改:fromtwisted.internet.proto. 阅读全文
posted @ 2011-09-06 17:06 LemonLi 阅读(1368) 评论(1) 推荐(1) 编辑
摘要: [刺鸟原创文章,转载请注明出处]在开始之前,先简单描述一下项目的特点:我要实现的是一个mmorpg的webgame,地图上需要看到其他的玩家,战斗系统采用半回合制的模式,所谓的半回合制,即是:采用回合制的画面布局,友方和敌方分列左右,但是战斗的中途,其他的玩家可以及时的随时插入这场战斗。当然,作为一款rpgGame,装备加工,NPC对话,任务逻辑等是必不可少的了。在分析了需求以后,我为这款game的程序结构定义如下:客户端,毋庸置疑肯定是flash,服务端分为两块:一是通讯不需要很及时,但是会涉及到很多逻辑处理的模块(如:各UI窗口内的逻辑,NPC对话逻辑,装备加工等),我为此选择了PHP作. 阅读全文
posted @ 2011-09-06 17:05 LemonLi 阅读(810) 评论(0) 推荐(0) 编辑