亲,玩过大波罗没。玩过魔兽没,那么应该了解技能树的一些特征吧。
当一定的等级达到的时候,可以新开一个技能树。然后已经点亮的技能树可能还要升级,因为前面的技能树也可能会需要初级技能的升级版。
说的有点乱了。NND,直接复制一份百科的技能树的说明算了:(靠,百科居然没有。。。。连知识树也没有,只能用企业知识树模型来代替了):
XML/HTML代码
- 企业知识树模型本质上就是一个层级式知识图,它表达了为实现某一组织目标的所有相关组织知识间的因果关系或从属关系。层级式知识图由于具有对称性、良好图形、连续性等特点,而得到广泛的应用。企业知识树模型在层级式知识图的基础上拓展了更多的管理功能。考虑一个为完成某一组织目标的知识构成的层次知识结构。它是若干个关联的知识结点集K,知识结点间的关系集r,构成了一个关系集R。
意思差不多。。。
下面的文章就是来自于对LAMP技能的知识树的的提炼。您看好了:(http://blog.cunsheng.me/?p=42)
俗话说温故而知新,也正好培训需要,我最近也整理了一张LAMP程序员技能树,相比我所见过的技能树Flash开发者,这张图有以下特点:
- 由于同一门知识在不同阶段有不同的要求,为了具有更好的参考性,技能树将所有知识和技能点按1、初中级(工作1-2年)2、中高级(工作3-4年)和3、高级(工作3年+)分成三级, 但除了网络与架构外其余的知识和技能点都只罗列到了第二级,原因是大多知识和技能到了一定程度后,都着眼于非常具体、非常细节的问题,很难全面罗列,也可 能也因为我自身有限的眼界,至于网络与架构有第三级倒不是因为这些知识有多高深,而是相比其余知识,这些知识可以晚一些再掌握
- 知识点附带资料与书籍推荐,蓝勾表示有网页资料,绿手表示有书籍推荐(查看flash版可直接链接到资料页),毕竟每个知识点只是简单几个字,人背景不同理解也不同,对着资料或参考书籍来看能更好的表达我的意图,同时也更能帮助到所需之人
- 全面性是这棵技能树的主要考虑之一,但不得不承认要完全掌握所有内容是非常不容易的事情,有些理想化,现实中往往还要考虑如你上级的要求、公司的需要等实际因素,能作为checklist发现问题,能让读者更了解自己的能力现状,那么制作技能树的目的也就达到了
由于技能树涉及到多种编程语言,所以把语言的共通部分以及编程基础单独提炼了出来:
http://cunsheng-wordpress.stor.sinaapp.com/uploads/2012/08/LAMPer%E6%8A%80%E8%83%BD%E6%A0%91.swf
------
值得一观啊
修复HTML页面,以前一直用的是tidy庫,但SAE上其實是無法使用的
所以,我選擇了htmlPurifier庫,不過如果直接使用的話,是會報錯的,因為HtmlPurifier默認在修復頁面的時候會使用緩存,這樣可以加快速度。因此代碼就變成了這樣
PHP代码
- $htmlPurifier = new HTMLPurifier(array(
- 'AutoFormat.AutoParagraph' => TRUE,
- 'HTML.TidyLevel' => 'medium',
- 'Cache.DefinitionImpl' => NULL,
- ));
本来,我是将Cache.DefinitionImpl设置为SAE_TMP_PATH的,但HTMLPurifier中会chmod这个目录的权限,而tmppath是无法设置权限的,因此我干脆设置为NULL。
这样一来,问题就解决了。哈哈
之前在給數據做緩存的時候做了一件挫事:
將某個數據表進行了cache,數據索引的鍵是該表的某個字段 。這個數據我是一般不會動它的,但是我需要知道這個表中最大的xxx_ID(索引字段)是什麼。
當然是有兩個辦法:
1、select max(xxx_id) from table
2、直接將緩存中最大的xxx_ID取出來就完事了
我用的是第二種,因為我order by 的時候是xxx_id ASC,於是我想當然的就直接array_keys($data),然後array_pop一下,最後彈出的這個xxx_ID就是最大的xxx_ID
但理想往往都是與現實相反的,不知道為什麼,它就是沒按順序排。。於是我array_pop死出彈不出我要的數值。
想了半天,突然想到。。。max不就完了嗎?於是蛋疼N久的問題一下子就解決了。何苦那麼累呢。哎。。。
腦子真的有時候是轉不過彎啊
不好意思,这是一个标题党,主要是这个词语太让人震惊,但现在它又将变的地了。所以我先记录一下。
什么是完美哈希函数?
這一段內容來自:(http://www.kuqin.com/algorithm/20111108/314569.html)
最小完美哈希函数是什么,要从定义说起,这个名字很长,一步步解释。
- 哈希函数 任意函数h(x)都可以说哈希函数,一般来说,一个良好的哈希函数可以尽量避免重复。x的集合是参数域,h(x)的集合是值域。
- 完美哈希函数 完美哈希函数,就是完全不会冲突的哈希函数,这要求函数的值域至少比参数域要大
- 最小完美哈希函数 最小完美哈希函数,就是指函数的值域和参数域的大小完全相等,一个也不多
- 保序最小完美哈希函数 保序的意思就是指这个哈希之后顺序是不变的,同时还能满足其他两个条件。
这个函数的优点就是形式上很完美,就像给一个排好序的文档编上的序号一般紧凑可靠。但是这个函数有两个缺点,一是必须事前必须知道原数据集,二 是需要花一定的CPU来生成这个函数。我认为,对于数据仓库类的线下搜索应用,这个算法是有用武之地的。但对于强调实时的数据业务,这个算法是不适合的。
----------
這裏還有一個點評:(http://liulixiang.info/blog/tag/%E6%9C%80%E5%B0%8F%E5%AE%8C%E7%BE%8E%E5%93%88%E5%B8%8C%E5%87%BD%E6%95%B0/)
点评:(by liulixiang)
“最小完美哈希函数”从概念上很完美,生成的思想也很不错,不过实际运用中并不是那么常见:应用中已知数据集再做哈希的情况不是特别多,对时空的复杂度要求也没有过于苛刻,普通的方法即可承受。另外一般数据集很大,生成该函数的开销也太大。
---------
參考文檔:
最小完美哈希函数方法来自于Czech, Havas, Majewski等的论文:
An optimal algorithm for generating minimal perfect hash functions(Czech等1991)
Graphs, hypergraphs and hashing(Havas等1993)
A family of perfect hashing methods(Majeki等1996)
本文大部分转述或摘抄自《深入搜索引擎——海量信息的压缩、索引和查询》(该书豆瓣链接) 一书(Page 173~181),该书由梁斌翻译(原版即大名鼎鼎的MG——“Managing Gigabytes: Compressing and Indexing Documents and Image, Second Edition” 由Ian H. Witten, Alistair Moffat, Timothy C.Bell合著)(MG网站)
count_chars表面上是計算char出現的次數,但事實上對中文支持明顯是不好的。
所以,它還有另外一個作用,即count_chars($str,4);
看好第二個參數哦。當這個參數是4時,會返回所有的会用作计算的字符串:
XML/HTML代码
- !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`defghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™šœžŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¹»¼¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
嗯,因此这也算是一个小技巧啦。