Mysql my.ini 配置文件详解 #BEGIN CONFIG INFO #DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载大 #TYPE: SYSTEM #END CONFIG INFO # # 此mysql配置文件例子针对4G内存 # 主要使用INNODB #处理复杂队列并且连接数量较少的mysql服务器 # # 将此文件复制到/etc/my.cnf 作为全局设置, # mysql-data-dir/my.cnf 作为服务器指定设置 # (@localstatedir@ for this installation) 或者放入 # ~/.my.cnf 作为用户设置. # # 在此配置文件中, 你可以使用所有程序支持的长选项. # 如果想获悉程序支持的所有选项 # 请在程序后加上"–help"参数运行程序. # # 关于独立选项更多的细节信息可以在手册内找到 # # # 以下选项会被MySQL客户端应用读取. [...]
Archive for 十二月, 2009
mysql my.cnf 详解
星期四, 十二月 31st, 2009psyco 真的很神奇
星期六, 十二月 19th, 2009测试代码 http://www.timestretch.com/FractalBenchmark.html#e7142f2f73f8eb4245f1b25aa6340470 没有使用 psyco 3.4 左右,生成 pyc 3.14 ,用了 psyco 0.34 真是太强大了, freebsd 安装 psyco cd /usr/ports/devel/py-psyco make install clean 开启 import psyco psyco.full()
VBoxManage命令详解
星期四, 十二月 17th, 2009VBoxManage命令详解 本人对vboxmange命令按我个人的理解作了解释,由于本人水平有限难免有错误的地方,希望大家帮我指正。 VBoxManage [-v|-version] 显示virtualbox的版本号 VBoxManage -nologo 隐藏logo VBoxManage -convertSettings 允许自动转换设置文件 VBoxManage -convertSettingsBackup 允许自动转换设置文件,并在转换前作备份 VBoxManage -convertSettingsIgnore 允许自动转换设置文件,但是不保存结果 VBoxManage list vms|runningvms 显示列表虚拟机|正在运行的虚拟机 |ostypes|hostdvds virtualbox支持的系统类型|宿主机的光盘驱动器 |hostfloppies 宿主机的软盘驱动器 |hostifs|hostinfo 宿主机的网络接口|宿主机的信息 |hdds|dvds 已注册的虚拟硬盘|已注册的虚拟光盘 |floppies|usbhost 已注册的虚拟软盘|宿主机的USB设备 |usbfilters USB筛选器 |systemproperties 虚拟机的基本信息 VBoxManage showvminfo | 显示指定虚拟机的信息 [-details] 显示详细信息 [-statistics] 显示统计信息 [-machinereadable] 以清晰的格式显示虚拟机信息 VBoxManage registervm 将指定文件所在的虚拟机添加到列表 VBoxManage unregistervm | 从虚拟机列表清除指定的虚拟机 [-delete] 从虚拟机列表删除指定的虚拟机 VBoxManage [...]
php tokyo_tyrant扩展安装
星期六, 十二月 12th, 2009tokyo_tyrant 还是beta 版,freebsd 的 ports 还没有,有点不爽,用 pecl 安装吧, pecl install tokyo_tyrant pecl: Command not found. 先安装 pear 呵呵 cd /usr/ports/devel/pear make install clean pecl install tokyo_tyrant Failed to download pecl/tokyo_tyrant within preferred state "stable", latest release is version 0.1.2, stability "beta", use "channel://pecl.php.net/tokyo_tyrant-0.1.2" to install install failed 还是不行,要加入beta 才行哦 pecl install tokyo_tyrant-beta ee /usr/local/etc/php/extensions.ini [...]
用pngencoder php(AMFPHP) 保存图片
星期四, 十二月 10th, 2009转自:http://hi.baidu.com/harry1299/blog/item/d7a64e323ec976f01b4cff3a.html 1.Flash端,通过adobe的类包,将BitmapData数据Encoder成ByteArray .然后,通过http或者amfphp发送到服务器端。 Code: var bd:BitmapData = new BitmapData(canvas.width,canvas.height); bd.draw(canvas); var jpgEncoder : PNGEncoder = new PNGEncoder(); var jpgBytes:ByteArray = PNGEncoder.encode(bd); 2.服务端的工作(针对amfphp而言):接受ByteArray ,注意,php是直接支持ByteArray类型的,然后通过fwrite或者file_put_contents,写数据,并且输出文件,ok搞定 Code: public function createSavePngFile($ba,$savePoint) { date_default_timezone_set(’Asia/Shanghai’); $now = date("YmdHis"); $path = "resource/shareVideo/"; $fileName = $path.$now.".png"; $data = $ba->data; if(!file_exists($path.$now.".png")) { $input = file_put_contents( $fileName, $data);//写入二进制数据 if($input != 0 && [...]
memcachedb
星期二, 十二月 8th, 2009memcachedb是为了持久化而产生的一个分布式 “key-value”存储系统,你可以认为是memcached+berkeley DB+sina的一些东西的一个集成,这个东西主要是为了提高持久化对象的访问效率,而不是一个缓存,他的特点是: 比传统的RDBMS速度快效率高 高并发环境下访问安全可靠,效率很不错 存储的数据比较小 总之:高效、安全的事物机制、memcached的分布式协议支持 是他的几大亮点. 你可以将一些数据量不大,读写却很频繁的数据放再这里面,而不用往mysql等数据库里写,据说“sohu”的在线用户是存在这里面的,可见这东西还是挺可靠的。 在官方文档里明确指出,只提倡用此数据库保存如下类型的数据: Index, Counter, Flags Identity Management(Account, Profile, User config info, Score) Messaging Personal domain name meta data of distributed system Other non-relatonal data ………………….. 即,要求访问数据快、数据量不大,并且需要持久化到数据库中,却不需要sql查询的数据. 下面我们来说应用: 如果你看过了上一片文章,并且已经成功安装memcachedb的话,那么,现在请启动你的memcachedb,命令如下: memcachedb -p21201 -d -r -u root -f 21201.db -H /data1/demo -N -P /data1/logs/21201.pid 参数说明如下: ‘-p ’ TCP port number [...]
freebsd下python程序打包工具 ── cx_Freeze
星期五, 十二月 4th, 2009cx_Freeze是一个类似py2exe的工具,它们区别是py2exe是将python程序打包成windows下可以执行的exe文件的,而cx_Freeze则是将python程序打包为linux下可以直接执行的ELF格式的二进制可执行文件(看说明好像也能生成windows的可执行文件,号称跨平台)。 cx_Freeze的作用就是让你的python程序可以脱离python运行环境,在没有安装python的微型linux系统(例如cdlinux、tinycore等)里,方便地运行你的python程序。从功能上来说,也可以将其理解为一个python程序的编译器,将你的源码隐藏起来。 安装 cd /usr/ports/devel/cx_Freeze make install clean 打包程序 cxfreeze 你的程序文件.py –target-dir dist
Python date测试
星期五, 十二月 4th, 2009import datetime, calendar today = datetime.date.today() oneday = datetime.timedelta(days=1) # loop back to most recent Friday (could be today) # takes care of end of month and even leap years friday = today while friday.weekday() != calendar.FRIDAY: friday -=oneday oneweek = datetime.timedelta(days=7) nextweek = today + oneweek nextyear = today.replace(year=today.year+1) [...]
當Deferred遇上Thread
星期五, 十二月 4th, 2009當Deferred遇上Thread Deferred不會自動實現將阻塞過程轉為非阻塞過程,雖然它已經有那樣的機制但還是要你去多走一步。要將阻塞過程轉為真正的非阻塞過程,那 只有借用線程。但至於線程調用你不用太擔心,twisted已為你準備好一個方便的用法。就是將Deferred綁在Thread上,這樣就有了deferToThread,味道不比牛奶加巧克力差。 deferToThread在twisted文檔的說明,洋墨水喝得比較少,就不照字面翻譯了。大概意思是將函數f放在線程裡並作為Deferred返回,args和kwargs是函數f的參數。也就是使用deferToThread返回的是一個帶線程的Deferred,並自動使用callback調用指定的函數f。相當於在線程中運行下面的代碼 d=defer.Deferred().addCallback(f) d.callback(result) def deferToThread(f, *args, **kwargs): (source) Run a function in a thread and return the result as a Deferred. Parameters f The function to call. *args positional arguments to pass to f. **kwargs keyword arguments to pass to f. Returns A Deferred which fires a callback with the result of f, [...]
Deferred筆記一
星期五, 十二月 4th, 2009Deferred的簡單套路 從twisted的文檔入手,將Deferred獨立出來簡單的說明作用與使用方法,這樣更能快速對Deferred有深刻的了解。 一、學習資料 1、主要參考資料 官方文檔 http://twistedmatrix.com/projects/core/documentation/howto/deferredindepth.html 關聯譯文 http://wiki.woodpecker.org.cn/moin/twistedTUT00?action=AttachFile&do=get&target=deferred_tutorial.html(此鏈接將會下載離線文檔) 2、關聯資源 http://wiki.woodpecker.org.cn/moin/TwistedTUT 二、Deferred的作用 Deferred的主要作用可以用一句話比較形象說明,“不要打電話給我,我會打給你的(Don’t Call Us, We’ll Call You)”。相當於做好計劃後,執行交給Deferred,完成後再找我,我可要到一邊Happy去了。 它會根據callback運行結果(正常、發生例外)從callback鏈表中選擇執行已註冊的相應的callback函數,從而實現事件方式來驅動程序。 callback的運行不影響主程序的運行,Deferred.callback執行後馬上返回。(這點有待在後面證明) 三、Deferred實例 from twisted.internet import defer d=defer.Deferred() 實例化後就可以對Deferred進行操作。 四、callback鏈表 鏈表是用來放置callback函數,鏈表中的函數可以響應三類事件,正常結束、例外結束、任意(包括前面兩者),它們分別用addCallback、addErrback、addBoth註冊到鏈表中。也就是說函數正常結束返回調用addCallback註冊的函數,發生例外則調用addErrback註冊的函數,使用addBoth註冊的函數無論返回什 結果都會被調用。 五、callback函數註冊 除了上面提過的addCallback、addErrback、addBoth三個註冊函數外,還有另外一個addCallbacks可以同時註冊處理正常結束和例外結束的函數。 1 2 3 4 5 6 def deferredExample(): d = defer.Deferred() d.addCallback(failAtHandlingResult) d.addCallbacks(yesDecision, noDecisionPassthru) d.addCallback(handleResult) # – A – d.addErrback(handleFailure) 上面代碼中第4行的addCallbacks效果如同 d.addCallback(yesDecision) d.addErrback(noDecisionPassthru) 另外,我們也可以將註冊過程寫成下面形式。 d=refer.Deferred().addCallback(failAtHandlingResult).addCallbacks(yesDecision, [...]
Python 语法运用
星期四, 十二月 3rd, 20091. u=["a","b","c"] l = ["name=%s" % user for user in u ] 结果: ["name=a", "name=b","name=c"] l ={“a”:1,”b”:2,”c”:3} [k for k,v in l.items()] 结果: ["a","b","c"] l ={“a”:1,”b”:2,”c”:3} ["%s=%s" % (k,v) for k,v in l.items()] ["a=1","b=2","c=3"] 2.lambda lambda 是预代理,代替要生成方法的指针,我这样理解的 d.addCallback(lambda m: “status of %s : %s” % (msg,m)) d.addCallback(lambda m: self.msg(user,m)) 3.文件的操作 这是方指的是txt文件操作 # 注意路径只能是 / 的方式处理, [...]
python的dict,set,list,tuple应用
星期四, 十二月 3rd, 2009字典(dict) dict 用 {} 包围 dict.keys(),dict.values(),dict.items() hash(obj)返回obj的哈希值,如果返回表示可以作为dict的key del 或 dict.pop可以删除一个item,clear清除所有的内容 sorted(dict)可以吧dict排序 dict.get()可以查找没存在的key,dict.[]不可以 dict.setdefault() 检查字典中是否含有某键。 如果字典中这个键存在,你可以取到它的值。 如果所找的键在字典中不存在,你可以给这个键赋默认值并返回此值。 {}.fromkeys()创建一个dict,例如: {}.fromkeys((‘love’, ‘honor’), True) =>{‘love’: True, ‘honor’: True} 不允许一个键对应多个值 键值必须是哈希的,用hash()测试 一个对象,如果实现_hash()_方法可以作为键值使用 集合(set) 集合是一个数学概念,用set()创建 set.add(),set.update.set.remove,添加更新删除,-= 可以做set减法 set.discard 和 set.remove不同在于如果删除的元素不在集合内,discard不报错,remove 报错 < >=表示超集 | 表示联合 & 表示交集 – 表示差集 ^ 差分集里啊 列表(list) 列表是序列对象,可包含任意的Python数据信息,如字符串、数字、列表、元组等。列表的数据是可变的,我们可通过对象方法对列表中的数据进行增加、修改、删除等操作。可以通过list(seq)函数把一个序列类型转换成一个列表。 append(x) 在列表尾部追加单个对象x。使用多个参数会引起异常。 count(x) 返回对象x在列表中出现的次数。 extend(L) 将列表L中的表项添加到列表中。返回None。 Index(x) 返回列表中匹配对象x的第一个列表项的索引。无匹配元素时产生异常。 [...]
Deferred Object In Twisted
星期四, 十二月 3rd, 2009Twisted uses the Deferred object to manage the callback sequence. The client application attaches a series of functions to the deferred to be called in order when the results of the asychronous request are available(this series of functions is known as a series of callbacks, or a callback chain), together with a series of functions [...]
Python 类型
星期四, 十二月 3rd, 20091.Dictionry {} 相录于一个 key value的内容 mys={“a”:1,”b”:2,”c”:3} mys["a"] = 1 mys.keys() mys.values() for k,v in mys.items(): print k,v 2.List 是一个列表 [] mys=["a","b",1] mys[0] mys[1] mys[-1] for v in mys: print v; 3. Tuple 一个不能改变的list () mys=(1,2,”a”) mys[0] mys[1] for v in mys: print v; 这三种类型可以完全结合 mys=[(2,3),(4,5),("a","b")] mys={“a”:[2,3,4],”b”:[3,4,5]} mys["a"].pop() 可以这样的写。