原创 redis中的hash實現

典型的數據結構hashtable的一個封裝typedef struct dict {    dictType *type; //函數集合    void *privdata;     dictht ht[2];  //真正的hashtab

原创 深入淺出redis事件框架

1) 事件驅動的常用數據結構//eventLooptypedef struct aeEventLoop {    int maxfd;    long long timeEventNextId;    aeFileEvent events

原创 ubuntu 下的squid安裝日誌

ubuntu 9.0.4   1) 安裝   wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE20.tar.gz tar xzvf squid-3.0.STA

原创 ubuntu9.0.4 安裝中文輸入法ibus

1) install sudo apt-get install ibus ibus-table ibus-pinyin 無法成功,因爲 ibus-pinyin沒有源,於是--> 2) 2) 在 /etc/apt/sources.list

原创 談談jetty8 的io模型

幾個重要的概念Connector: jetty網絡接口的封裝,用於監聽網絡連接SelectorManager:底層selector封裝,管理網絡事件,主要是向底層selector註冊感興趣的網絡事件,並從selector中輪詢出準備好的事

原创 長短信實現系列之移動CMPP2.0

1)背景 目前我們的短信發送基本上就是超過140字節(甚至更少)就切分(移動普通短信超過140個字節甚至都發送不了,聯通倒是可以),然後分幾條發給客戶,而且也不能保證順序,用戶體驗不好, 運營這邊抱怨說精簡再精簡還是超過了字數,於是長

原创 java instrument 初探

java在1.5引入java.lang.instrument,你可以由此實現一個java agent,通過此agent來修改類的字節碼即改變一個類。本文中,會通過java instrument 實現一個簡單的profiler。當然inst

原创 dom4j的亂碼問題

1)背景 長期運行的爬蟲程序(抓取xml)突然出了問題。xml的亂碼導致無法驗證通過 2)亂碼是怎麼產生的 發現不同的網站返回的xml編碼不一致,有的是gb2312,有的utf-8。 爬蟲程序將urlConnection.getIn

原创 長短信實現系列之電信SMGP3.0

按照以前的老套路見(長短信系列之聯通sgip1.2 和長短信系列之移動cmpp2.0 )   1)第一階段 首先上來就是下面的條件 設置MsgFormat爲8就(UCS2) 在MsgContent前加入7個字節的TP_udhi頭(和此前

原创 jprofiler監控遠程服務器的安裝配置

1) 客戶端安裝 客戶端 xp,jprofiler 5.1.4 可採用兩種方式安裝 1.1)需要dll和註冊碼配合,僅適於windows http://luanma.javaeye.com/blog/183827 1.2)僅需註冊碼,適合

原创 談談服務器的編碼問題

參考tomcat-5.5.201)核心流程涉及到的幾個類 1.1)org.apache.catalina.connector.Request (這個就是我們在servlet中看到的HttpServletRequest的tomcat

原创 長短信實現系列之聯通SGIP1.2

由於有了上次開發移動長短信的經驗(見長短信實現系列之CMPP2.0 ),這次輕車熟路 和移動的長短信思路完全一致 設置TP_udhi爲1 在MsgContetnt前加入TP_udhi 7個字節的協議頭 MessageCoding設爲8 即

原创 HashSet/HashMap在併發下的奇怪行爲

最近服務器 一直不太正常,經常cpu佔到200%,load到2,隨時都有可能報警   通過 top -H -p xx看到  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME

原创 說說ReentrantReadWriteLock

1) 背景     jni的使用場景,多線程讀,單線程寫,寫的時候會更新java對象,當老的java對象無須再使用的時候必須釋放jni所佔用本地方法區的內存,這個區域的內存不在java heap範疇,因此也無法被垃圾回收掉,需要顯式的釋放

原创 談談opennlp maxent

背景:最大熵模型可用於文本分類   簡介 maxent是個非常不錯的最大熵java實現 主要的功能還是分爲兩部分特徵提取和GIS迭代算法 1)特徵提取採取了簡單將分詞作爲特徵,目前只支持單個字段,但如過要實現多字段特徵也是很簡單的事情