锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品国产手机,亚洲人成人伊人成综合网无码,国产精品亚洲自在线播放页码http://www.tkk7.com/killme2008/鐢熸椿銆佺▼搴忋佹湭鏉?/description>zh-cnSun, 23 Mar 2025 20:45:53 GMTSun, 23 Mar 2025 20:45:53 GMT60鍗氬鎼縼http://www.tkk7.com/killme2008/archive/2012/12/10/392701.htmldennisdennisSun, 09 Dec 2012 17:24:00 GMThttp://www.tkk7.com/killme2008/archive/2012/12/10/392701.htmlhttp://www.tkk7.com/killme2008/comments/392701.htmlhttp://www.tkk7.com/killme2008/archive/2012/12/10/392701.html#Feedback6http://www.tkk7.com/killme2008/comments/commentRss/392701.htmlhttp://www.tkk7.com/killme2008/services/trackbacks/392701.html寰堜箙娌℃湁鏇存柊鍗氬錛屾病鎯沖埌鏇存柊鏄惉榪佸叕鍛娿傝繖涓崥瀹㈢瘡璁$殑璁塊棶閲忕獊鐮寸櫨涓囷紝鏄垜寤虹珛鐨勬椂鍊欏畬鍏ㄦ病鏈夋兂榪囩殑浜嬫儏銆傚崥瀹㈠鎴戞潵璇存洿澶氭槸璁板綍銆佽蹇嗙殑鍦版柟錛屾垜鏃跺父鍥犱負鎯充笉璧鋒煇涓笢瑗匡紝鏉ョ炕鑷繁鐨勫崥瀹紝鏌ユ壘鏃х煡錛屽彂鐜版柊鐭ャ傞槄璇誨緢澶氫漢鐨勫崥瀹紝涔熸槸鎴戣窡韙佸涔犳柊鐭ョ殑涓昏鏂瑰紡銆傝櫧鐒跺井鍗氬叴璧鳳紝涓嶈繃鍗氬浣滀負鏇寸郴緇熸х殑璁板綍鐨勫湴鏂癸紝涓嶄細榪囨椂銆?br />
闈炲父鎰熻阿blogjava鎻愪緵榪欎箞浼樼鐨勫鉤鍙般傚彧鏄垜浠婂勾緇欒嚜宸辯殑涓涓洰鏍囨槸寤虹珛鑷繁鐨勫崥瀹紝鍥犳鐜板湪瑕佹惉榪侊紝鍔犱笂鍏跺疄鐜板湪涔熷啓鐨勫皯錛屽叾瀹炴惉榪佷笉鎼縼錛屾剰涔変篃涓嶅ぇ浜嗐傜畻鏄竴涓氬憡錛屾湁鍏磋叮鐨勫彲浠ヨ闃呮垜鐨勬柊鍗氬錛屾病鍏磋叮鐨勮鑷鐣ヨ繃錛岃阿璋㈠ぇ瀹躲?br />
鏂板崥瀹㈠湴鍧錛?a >http://blog.fnil.net/
RSS鍦板潃錛?a >http://blog.fnil.net/index.php/feed

鏂板崥瀹㈢殑絎竴綃囪蹇嗘槸銆?a >Leiningen鏁欑▼涓枃鐗?/a>銆嬶紝浠庣幇鍦ㄥ紑濮嬶紝榪欎釜鍗氬灝嗕笉鍐嶅彂甯冧換浣曟柊鐨勬枃绔狅紝宸叉湁鐨勪篃涓嶄細鍒犻櫎錛岄儴鍒嗗彲鑳戒細瀵煎埌鎴戠殑鐭ヨ瘑搴撲笂鍘匯?br />
鏈鍚庯紝紲濈blogjava瓚婂姙瓚婂ソ銆?br />

dennis 2012-12-10 01:24 鍙戣〃璇勮
]]>
Another URL Shortener using NodeJShttp://www.tkk7.com/killme2008/archive/2012/11/25/391936.htmldennisdennisSun, 25 Nov 2012 12:31:00 GMThttp://www.tkk7.com/killme2008/archive/2012/11/25/391936.html
Is is written in NodeJS,using express.js for MVC framework,and using MySQL for storage and Redis for caching.

A demo online: http://fnil.me/

The project is at https://github.com/killme2008/node-shorten

Feel free to modify and use it.Have fun.

dennis 2012-11-25 20:31 鍙戣〃璇勮
]]>
Clojure涓枃涓撲笟鎶鏈ぞ鍖?/title><link>http://www.tkk7.com/killme2008/archive/2012/09/25/388498.html</link><dc:creator>dennis</dc:creator><author>dennis</author><pubDate>Tue, 25 Sep 2012 04:51:00 GMT</pubDate><guid>http://www.tkk7.com/killme2008/archive/2012/09/25/388498.html</guid><wfw:comment>http://www.tkk7.com/killme2008/comments/388498.html</wfw:comment><comments>http://www.tkk7.com/killme2008/archive/2012/09/25/388498.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.tkk7.com/killme2008/comments/commentRss/388498.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/killme2008/services/trackbacks/388498.html</trackback:ping><description><![CDATA[寰堜箙娌″啓鍗氬錛屼竴鏄伐浣滃繖錛屼簩鏄病鏈夊お澶氱殑浜嬫儏鍙銆?br /><br />鏈榪戝湪鍏徃澶т漿鐨勬敮鎸佷笅錛屽緩绔嬩簡涓涓狢lojure璇█涓枃鏂歸潰鐨勫崥瀹㈠拰闂瓟緗戠珯錛屾榪庝換浣曞Clojure榪欓棬鍩轟簬JVM涔嬩笂鐨勫嚱鏁板紡璇█鎰熷叴瓚g殑绔ラ瀷璐$尞鍘熷垱鏂囩珷鎴栬呰祫鏂欙紝鐢寵甯愬彿璇風湅<a >榪欓噷</a>銆?br /><br />鍗氬鍦板潃錛? <a >http://blog.clojure.cn/</a><br />闂瓟緗戠珯錛? <a title="http://ask.clojure.cn/">http://ask.clojure.cn/</a><br /><br />嬈㈣繋杞彂鍜屾敞鍐屼嬌鐢紝璋㈣阿銆?br /><br />閭歡鍒楄〃浠嶇劧浣跨敤google group錛?a >https://groups.google.com/group/cn-clojure/</a><img src ="http://www.tkk7.com/killme2008/aggbug/388498.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/killme2008/" target="_blank">dennis</a> 2012-09-25 12:51 <a href="http://www.tkk7.com/killme2008/archive/2012/09/25/388498.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Ring.velocity:render velocity templates for ring in clojurehttp://www.tkk7.com/killme2008/archive/2012/07/18/383354.htmldennisdennisTue, 17 Jul 2012 16:07:00 GMThttp://www.tkk7.com/killme2008/archive/2012/07/18/383354.htmlhttp://www.tkk7.com/killme2008/comments/383354.htmlhttp://www.tkk7.com/killme2008/archive/2012/07/18/383354.html#Feedback0http://www.tkk7.com/killme2008/comments/commentRss/383354.htmlhttp://www.tkk7.com/killme2008/services/trackbacks/383354.htmlHome: https://github.com/killme2008/ring.velocity

A Clojure library designed to render velocity template for ring in clojure.

Usage

Adds dependency in leiningen project.clj:

  [ring.velocity "0.1.0-SNAPSHOT"] 

Create a directory named templates in your project directory to keep all velocity templates.

Create a template templates/test.vm:

  hello,$name,your age is $age. 

Use ring.velocity in your namespace:

  (use '[ring.velocity.core :only [render]]) 

Use render function to render template with vars:

  (render "test.vm" :name "dennis" :age 29) 

The test.vm will be interpreted equals to:

  hello,dennis,your age is 29. 

Use ring.velocity in compojure:

  (defroutes app-routes      
(GET "/" [] (render "test.vm" :name "dennis" :age 29))
(route/not-found "Not Found"))

Use ring.velocity in ring:

  (use '[ring.util.response])   
(response (render "test.vm" :name "dennis" :age 29))

Custom velocity properties,just put a file named ring-velocity.properties to your classpath or resource paths.The default velocity properties is in src/default/velocity.properties.

License

Copyright © 2012 dennis zhuang[killme2008@gmail.com]

Distributed under the Eclipse Public License, the same as Clojure.

Home: https://github.com/killme2008/ring.velocity



dennis 2012-07-18 00:07 鍙戣〃璇勮
]]>
Clojure絎旇錛氱敤濂絫ype hinthttp://www.tkk7.com/killme2008/archive/2012/07/10/382738.htmldennisdennisTue, 10 Jul 2012 12:37:00 GMThttp://www.tkk7.com/killme2008/archive/2012/07/10/382738.htmlhttp://www.tkk7.com/killme2008/comments/382738.htmlhttp://www.tkk7.com/killme2008/archive/2012/07/10/382738.html#Feedback1http://www.tkk7.com/killme2008/comments/commentRss/382738.htmlhttp://www.tkk7.com/killme2008/services/trackbacks/382738.html     Clojure鐨勪竴澶т紭鐐瑰氨鏄窡Java璇█鐨勫畬緹庨厤鍚堬紝Clojure鍜孞ava涔嬮棿鍙互鐩鎬簰璋冪敤錛孋lojure鍙互澶╃劧鍦頒嬌鐢↗ava騫沖彴涓婄殑涓板瘜璧勬簮銆傚湪Clojure閲岃皟鐢ㄤ竴涓被鐨勬柟娉曞緢綆鍗曪紝鍒╃敤dot鎿嶄綔絎︼細

user=> (.substring "hello" 3)
"lo"
user=> (.substring "hello" 0 3)
"hel"

    涓婇潰鐨勪緥瀛愭槸鍦╟lojure閲岃皟鐢⊿tring鐨剆ubstring鏂規硶鍋氬瓧絎︿覆鎴彇銆侰lojure铏界劧鏄竴闂ㄥ急綾誨瀷鐨勮璦錛屼絾鏄畠鐨凩isp Reader榪樻槸鑳借瘑鍒ぇ澶氭暟甯歌鐨勭被鍨嬶紝姣斿榪欓噷hello鏄竴涓瓧絎︿覆灝卞彲浠ヨ瘑鍒嚭鏉?3鏄竴涓暣鏁頒篃鍙互錛岄氳繃榪欎簺綾誨瀷淇℃伅鍙互鎵懼埌鏈鍖歸厤鐨剆ubstring鏂規硶錛屽湪鐢熸垚瀛楄妭鐮佺殑鏃跺欓伩鍏嶄嬌鐢ㄥ弽灝勶紝鑰屾槸鐩存帴璋冪敤substring鏂規硶錛圛NVOKEVIRTUAL鎸囦護錛夈?br />
    浣嗘槸褰撲綘鍦ㄥ嚱鏁伴噷璋冪敤綾繪柟娉曠殑鏃跺欙紝鎯呭喌灝卞彉浜嗭紝渚嬪錛屽畾涔塻ubstr鍑芥暟錛?br />
(defn substr [s begin end] (.substring s begin end))

    鎴戜滑鎵撳紑*warn-on-reflection*閫夐」錛屽綋鏈夊弽灝勭殑鏃跺欏憡璀︼細

user=> (set! *warn-on-reflection* true)
true
user=> (defn substr [s begin end] (.substring s begin end))
Reflection warning, NO_SOURCE_PATH:22 - call to substring can't be resolved.
#'user/substr
   
    闂鍑虹幇浜嗭紝鐢變簬鍑芥暟substr閲屾病鏈変換浣曞叧浜庡弬鏁皊鐨勭被鍨嬩俊鎭紝涓轟簡璋冪敤s鐨剆ubstring鏂規硶錛屽繀欏諱嬌鐢ㄥ弽灝勬潵璋冪敤錛宑lojure緙栬瘧鍣ㄤ篃璀﹀憡鎴戜滑璋冪敤substring娌″姙娉曡В鏋愶紝鍙兘閫氳繃鍙嶅皠璋冪敤銆備紬鎵鍛ㄧ煡錛屽弽灝勮皟鐢ㄦ槸涓浉瀵規槀璐電殑鎿嶄綔錛堝姣斾簬鏅氱殑鏂規硶璋冪敤鏈夛級銆傝繖涓鍒囬兘鏄洜涓篶lojure鏈韓鏄急綾誨瀷鐨勮璦錛屽鍙傛暟鎴栬呰繑鍥炲間綘涓嶉渶瑕佸0鏄庣被鍨嬭岀洿鎺ヤ嬌鐢?Clojure浼氳嚜鍔ㄥ鐞嗙被鍨嬬殑杞崲鍜岃皟鐢ㄣ俻s.鍦?a >leiningen閲屽惎鐢ㄥ弽灝勮鍛婂緢綆鍗曪紝鍦╬roject.clj閲岃緗細

;; Emit warnings on all reflection calls.
  :warn-on-reflection true
   
榪囧鐨勫弽灝勮皟鐢ㄤ細褰卞搷鏁堢巼錛屾湁娌℃湁鍔炴硶閬垮厤榪欑鎯呭喌鍛紵鏈夌殑錛孋lojure鎻愪緵浜唗ype hint鏈哄埗錛屽厑璁告垜浠府鍔╃紪璇戝櫒鏉ョ敓鎴愭洿楂樻晥鐨勫瓧鑺傜爜銆傛墍璋搕ype hint灝辨槸緇欏弬鏁版垨鑰呰繑鍥炲兼坊鍔犱竴涓彁紺猴細hi,clojure緙栬瘧鍣紝榪欐槸xxx綾誨瀷錛屾垜鎯寵皟鐢ㄥ畠鐨剏yy鏂規硶錛岃鐢熸垚鏈楂樻晥鐨勮皟鐢ㄤ唬鐮侊紝璋㈣阿鍚堜綔錛?br />
user=> (defn substr [^String s begin end] (.substring s begin end))
#'user/substr
     
    榪欐娌℃湁璀﹀憡錛宆String灝辨槸鍙傛暟s鐨則ype hint錛屾彁紺篶lojure緙栬瘧鍣ㄨs鐨勭被鍨嬫槸瀛楃涓詫紝閭d箞clojure緙栬瘧鍣ㄤ細浠巎ava.lang.String綾婚噷鏌ユ壘鍚嶇О涓簊ubstring騫朵笖鎺ユ敹涓や釜鍙傛暟鐨勬柟娉?/strong>錛屽茍鍒╃敤invokevirtual鎸囦護鐩存帴璋冪敤姝ゆ柟娉曪紝閬垮厤浜嗗弽灝勮皟鐢ㄣ傞櫎浜唗arget瀵硅薄錛堣繖閲岀殑s)鍙互娣誨姞type hint錛屾柟娉曞弬鏁板拰榪斿洖鍊間篃鍙互娣誨姞type hint錛?br />
user=> (defn ^{:tag String} substr [^String s ^Integer begin ^Integer end] (.substring s begin end))
#'user/substr
    
    榪斿洖鍊兼坊鍔爐ype hint鏄埄鐢╰ag鍏冩暟鎹紝鎻愮ずsubstr鐨勮繑鍥炵被鍨嬫槸String錛屽叾浠栧嚱鏁板湪浣跨敤substr鐨勬椂鍊欏彲浠ュ埄鐢ㄨ繖涓被鍨嬩俊鎭潵閬垮厤鍙嶅皠錛涜屽弬鏁扮殑type hint璺焧arget object鐨則ype hint涓鏍蜂互^寮澶村姞涓婄被鍨嬶紝渚嬪榪欓噷begin鍜宔nd閮芥彁紺鴻鏄疘nteger綾誨瀷銆?br />
    闂1錛屼粈涔堟椂鍊欏簲璇ヤ負鍙傛暟娣誨姞type hint鍛紵鎴戠殑瑙傜偣鏄紝鍦ㄤ換浣曚負target object娣誨姞type hint鐨勫湴鏂癸紝閮藉簲璇ョ浉搴斿湴涓哄弬鏁版坊鍔爐ype hint錛岄櫎闈炰綘浜嬪厛涓嶇煡閬撳弬鏁扮殑綾誨瀷銆?/strong>涓轟粈涔堝憿錛熷洜涓篶lojure鏌ユ壘綾繪柟娉曠殑欏哄簭鏄繖鏍鳳細

1.浠嶴tring綾婚噷鏌ユ壘鍑烘墍鏈夊弬鏁頒釜鏁頒負2騫朵笖鍚嶇О涓簊ubstring鏂規硶
2.閬嶅巻絎竴姝ラ噷鏌ユ壘鍑烘潵鐨凪ethod錛屽鏋滀綘鏈夎緗弬鏁扮殑type hint,鍒?
鏌ユ壘鏈鍖歸厤鍙傛暟綾誨瀷鐨凪ethod錛涘惁鍒欙紝濡傛灉絎竴姝ユ煡鎵懼嚭鏉ョ殑Method灝變竴涓紝鐩存帴浣跨敤榪欎釜Method錛岀浉鍙嶅氨璁や負娌℃湁鎵懼埌瀵瑰簲鐨凪ethod銆?br /> 3.濡傛灉絎簩姝ユ病鏈夋壘鍒癕ethod錛屼嬌鐢ㄥ弽灝勮皟鐢紱鍚﹀垯鏍規嵁璇ethod鍏冧俊鎭敓鎴愯皟鐢ㄥ瓧鑺傜爜銆?br />
   鍥犳錛屽鏋渟ubstring鏂規硶鐨勪袱涓弬鏁扮増鏈垰濂藉氨涓涓紝鏂規硶鍙傛暟鏈夋病鏈塼ype hint閮芥病鏈夊叧緋伙紙鏈変簡閿欒鐨則ype hint鍙嶈屼績浣垮弽灝勭殑鍙戠敓錛夛紝鎴戜滑閮戒細鎵懼埌榪欎釜鍞竴鐨勬柟娉曪紱浣嗘槸濡傛灉鐩爣鏂規硶鐨勬湁澶氫釜閲嶈澆鏂規硶騫朵笖鍙傛暟鐩稿悓錛岃屽彧鏄弬鏁扮被鍨嬩笉鍚岋紙Java閲屾槸鍏佽鏂規硶鐨勫弬鏁扮被鍨嬮噸杞界殑錛孋lojure鍙厑璁稿嚱鏁扮殑鍙傛暟涓暟閲嶈澆錛夛紝閭d箞濡傛灉娌℃湁鏂規硶鍙傛暟鐨則ype hint錛孋lojure緙栬瘧鍣ㄤ粛鐒舵棤娉曟壘鍒板悎閫傜殑璋冪敤鏂規硶錛岃屽彧鑳介氳繃鍙嶅皠銆?br />    
   鐪嬩竴涓緥瀛?瀹氫箟get-bytes鏂規硶璋冪敤String.getBytes錛?br />
user=> (defn get-bytes [s charset] (.getBytes s charset))
Reflection warning, NO_SOURCE_PATH:26 - call to getBytes can't be resolved.
#'user/get-bytes
user=> (defn get-bytes [^String s charset] (.getBytes s charset))
Reflection warning, NO_SOURCE_PATH:27 - call to getBytes can't be resolved.
#'user/get-bytes

    絎竴嬈″畾涔夛紝s鍜宑harset閮芥病鏈夎緗畉ype hint錛屾湁鍙嶅皠璀﹀憡錛涚浜屾錛宻璁劇疆浜唗ype hint錛屼絾鏄繕鏄湁鍙嶅皠璀﹀憡銆傚師鍥犲氨鍦ㄤ簬String.getBytes鏈変袱涓噸杞芥柟娉曪紝鍙傛暟涓暟閮芥槸涓涓紝浣嗘槸鎺ユ敹涓嶅悓鐨勫弬鏁扮被鍨嬶紝涓涓槸String鐨刢harset鍚嶇О錛屼竴涓狢harset瀵硅薄銆傚鏋滄垜浠槑紜湴鐭ラ亾榪欓噷charset鏄瓧絎︿覆錛岄偅涔堣繕鍙互涓篶harset娣誨姞type hint:
user=> (defn get-bytes [^String s ^String charset] (.getBytes s charset))
#'user/get-bytes
   
    榪欐鎵嶇湡姝g殑娌℃湁璀﹀憡浜嗐傛葷粨錛氬湪璁劇疆type hint鐨勬椂鍊欙紝涓嶈鍙冭檻琚皟鐢ㄧ殑target object錛屼篃瑕佽冭檻璋冪敤鐨勬柟娉曞弬鏁般?br />
    闂2錛氫粈涔堟椂鍊欏簲璇ユ坊鍔爐ag鍏冩暟鎹憿錛熺悊璁轟笂錛屽湪浠諱綍浣犳槑紜煡閬撹繑鍥炵被鍨嬬殑鍦版柟閮藉簲璇ユ坊鍔爐ag錛屼絾鏄繖涓嶆槸鏁欐潯錛屽鏋滀竴涓伓灝旇璋冪敤鐨勬柟娉曟槸鏃犻渶榪欐牱鍋氱殑銆傝繖涓鐐瑰彧瀵瑰啓搴撶殑绔ラ瀷瑕佺壒鍒敞鎰忋?br />
    Type hint鐨勫師鐞嗗湪涓婃枃宸茬粡澶ф鎻忚堪浜嗕笅錛屽叿浣撳埌clojure婧愮爜綰у埆錛岃鍙傝僣lojure.lang.Compiler.InstanceMethodExpr綾葷殑鏋勯犲嚱鏁板拰emit鏂規硶銆傛渶鍚庯紝闄勯佹槸鍚︿嬌鐢╰ype hint鐢熸垚substr鍑芥暟鐨勫瓧鑺傜爜涔嬮棿鐨勫樊寮傚姣旓細
鏈嬌鐢╰ype hint 浣跨敤type hint

  // access flags 1

  public invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

   L0

    LINENUMBER 14 L0

   L1

    LINENUMBER 14 L1

    ALOAD 1

    ACONST_NULL

    ASTORE 1

    LDC "substring"

    ICONST_2

    ANEWARRAY java/lang/Object

    DUP

    ICONST_0

    ALOAD 2

    ACONST_NULL

    ASTORE 2

    AASTORE

    DUP

    ICONST_1

    ALOAD 3

    ACONST_NULL

    ASTORE 3

    AASTORE

    INVOKESTATIC clojure/lang/Reflector.invokeInstanceMethod (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;

   L2

    LOCALVARIABLE this Ljava/lang/Object; L0 L2 0

    LOCALVARIABLE s Ljava/lang/Object; L0 L2 1

    LOCALVARIABLE begin Ljava/lang/Object; L0 L2 2

    LOCALVARIABLE end Ljava/lang/Object; L0 L2 3

    ARETURN

    MAXSTACK = 0

    MAXLOCALS = 0

public invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

   L0

    LINENUMBER 15 L0

   L1

    LINENUMBER 15 L1

    ALOAD 1

    ACONST_NULL

    ASTORE 1

    CHECKCAST java/lang/String

    ALOAD 2

    ACONST_NULL

    ASTORE 2

    CHECKCAST java/lang/Number

    INVOKESTATIC clojure/lang/RT.intCast (Ljava/lang/Object;)I

    ALOAD 3

    ACONST_NULL

    ASTORE 3

    CHECKCAST java/lang/Number

    INVOKESTATIC clojure/lang/RT.intCast (Ljava/lang/Object;)I

    INVOKEVIRTUAL java/lang/String.substring (II)Ljava/lang/String;

   L2

    LOCALVARIABLE this Ljava/lang/Object; L0 L2 0

    LOCALVARIABLE s Ljava/lang/Object; L0 L2 1

    LOCALVARIABLE begin Ljava/lang/Object; L0 L2 2

    LOCALVARIABLE end Ljava/lang/Object; L0 L2 3

    ARETURN

    MAXSTACK = 0

    MAXLOCALS = 0


    
    瀵規瘮寰堟槑鏄撅紝娌℃湁浣跨敤type hint錛岃皟鐢╟lojure.lang.Reflector鐨刬nvokeInstanceMethod鏂規硶錛屼嬌鐢ㄥ弽灝勮皟鐢紙鍏蜂綋瑙乧lojure.lang.Reflector.java)錛岃屼嬌鐢ㄤ簡type hint涔嬪悗錛屽垯鐩存帴浣跨敤invokevirtual鎸囦護錛堝叾浠栨柟娉曞彲鑳芥槸invokestatic鎴栬卛nvokeinterface絳夋寚浠わ級璋冪敤璇ユ柟娉曪紝閬垮厤浜嗗弽灝勩?br />       

    鍙傝冿細


dennis 2012-07-10 20:37 鍙戣〃璇勮
]]>
Clojure涓栫晫錛氬埄鐢℉ouseMD璇婃柇clojurehttp://www.tkk7.com/killme2008/archive/2012/06/15/380822.htmldennisdennisThu, 14 Jun 2012 18:52:00 GMThttp://www.tkk7.com/killme2008/archive/2012/06/15/380822.htmlhttp://www.tkk7.com/killme2008/comments/380822.htmlhttp://www.tkk7.com/killme2008/archive/2012/06/15/380822.html#Feedback2http://www.tkk7.com/killme2008/comments/commentRss/380822.htmlhttp://www.tkk7.com/killme2008/services/trackbacks/380822.html     HouseMD鏄窐瀹濈殑鑱氱煶鍐欑殑涓涓潪甯鎬紭縐鐨凧ava榪涚▼榪愯鏃惰瘖鏂拰璋冭瘯宸ュ叿錛屽鏋滀綘鎺ヨЕ榪嘼trace錛岄偅涔圚ouseMD涔熻浣犲簲璇ュ皾璇曚笅錛屽畠姣攂trace鏇存槗鐢紝涓嶉渶瑕佸啓鑴氭湰錛岀被浼約trace鐨勬柟寮廰ttach鍒癹vm榪涚▼鍋氳窡韙皟璇曘?br />
    鍩烘湰鐨勫畨瑁呭拰浣跨敤璇風湅榪欑瘒鏂囨。銆?a >UserGuide銆嬶紝鎭曚笉閲嶅銆備互涓嬪唴瀹歸兘鍋囪浣犳紜畨瑁呬簡housemd銆?br />
    鏈枃涓昏浠嬬粛涓嬫庝箞鐢╤ousemd璇婃柇璺熻釜clojure榪涚▼銆侰lojure鐨刯ava瀹炵幇涔熸槸璺戝湪JVM閲岋紝褰撶劧涔熷彲浠ョ敤housemd銆?br />
    鎴戜滑浠ヤ竴涓畝鍗曠殑渚嬪瓙寮濮嬶紝鍋囪鎴戜滑鏈夊涓媍lojure浠g爜錛?br />
(loop [x 1]
  (Thread/sleep 1000)
  (prn x)
  (recur (inc x)))

    榪欐寰堢畝鍗曪紝鍙槸闂撮殧涓縐掍笉鏂湴鎵撳嵃閫掑鐨勬暟瀛梮銆傛垜浠噯澶囩敤housemd璺熻釜榪欎釜紼嬪簭鐨勮繍琛岋紝棣栧厛榪愯榪欎釜紼嬪簭錛屼綘鍙互鐢╨ein錛屼篃鍙互鐩存帴java鍛戒護榪愯錛?br />
java -cp clojure.jar clojure.main test.clj

    榪愯鏃朵笉鏂湴鍦ㄦ帶鍒跺彴鎵撳嵃鏁板瓧錛岄氳繃jps鎴栬卲s鏌ヨ鍒拌榪涚▼鐨刬d錛屽亣璁句負pid錛屼嬌鐢╤ousemd榪炴帴鍒拌榪涚▼錛?br />
housemd <pid>
    欏哄埄榪涘叆housemd鐨勪氦浜掓帶鍒跺彴錛岄氳繃help鍛戒護鍙互鏌ヨ鏀寔鐨勫懡浠わ細

housemd> help

quit      terminate the process.
help      display this infomation.
trace     display or output infomation of method invocaton.
loaded    display loaded classes information.

    瑕佺敤housemd璋冭瘯clojure錛屼綘闇瑕佸clojure鐨勫疄鐜版湁涓鐐圭偣浜嗚В錛屾湁鍏磋叮鍙互鐪嬭繃鍘葷殑涓綃嘼log銆?a href="http://www.tkk7.com/killme2008/archive/2010/07/11/325775.html">clojure hacking guide銆嬶紝綆鍗曟潵璇達紝clojure鐨勭紪璇戝櫒浼氬皢clojure浠g爜緙栬瘧鎴恓ava綾誨茍榪愯銆傚浜嶫VM鏉ヨ錛宑lojure鐢熸垚鐨勭被錛岃窡java緙栬瘧鍣ㄧ敓鎴愮被娌℃湁浠涔堜笉鍚屻?br />     鍏蜂綋鍒頒笂闈㈢殑clojure浠g爜錛屼細鐢熸垚涓涓悕涓?strong>user$eval1
鐨勭被錛寀ser鏄粯璁ょ殑namespace錛岃宔val1鏄痗lojure緙栬瘧鍣ㄨ嚜鍔ㄧ敓鎴愮殑涓涓爣紺虹被鍚嶏紝閫氳繃loaded鍛戒護鏌ヨ綾葷殑鍔犺澆鎯呭喌錛?br />
housemd> loaded user$eval1 -h
user$eval1 -> null
    - clojure.lang.DynamicClassLoader@1d25d06e
        - clojure.lang.DynamicClassLoader@1d96f4b5
            - sun.misc.Launcher$AppClassLoader@a6eb38a
                - sun.misc.Launcher$ExtClassLoader@69cd2e5f

    閫氳繃-h閫夐」鎵撳嵃浜嗗姞杞絬ser$eval1鐨勭被鍔犺澆鍣ㄧ殑灞傛鍏崇郴錛屽洜涓簎ser$eval1鏄姩鎬佺敓鎴愮殑錛坈lojure鍚姩榪囩▼涓級錛屽洜姝ゅ畠涓嶅湪浠諱綍涓涓猚lass鎴栬卝ar鏂囦歡涓傞櫎浜嗘煡璇ser namespace鐨勭被涔嬪錛屼綘榪樺彲浠ユ煡璇lojure.core,clojure.lang,clojure.java絳変換浣曡鍔犺澆榪涙潵鐨勭被錛屼緥濡傛煡璇lojure.core.prn鐨勭被,鍦╟lojure閲岃繖鏄竴涓嚱鏁幫紝鍦╦vm鐪嬫潵榪欏彧鏄竴涓被錛?br />
housemd> loaded -h core$prn
clojure.core$prn -> /Volumes/HDD/Users/apple/clojure/clojure.jar
    - sun.misc.Launcher$AppClassLoader@a6eb38a
        - sun.misc.Launcher$ExtClassLoader@69cd2e5f
   娉ㄦ剰錛屼笉闇瑕佸畬鏁寸殑namespace——clojure.core錛岀洿鎺ore$prn鍗沖彲銆傚叾浠栦篃鏄被浼箋?strong>灝忔妧宸э細濡傛灉浣犲疄鍦ㄤ笉鐭ラ亾clojure緙栬瘧鍣ㄧ敓鎴愮殑綾誨悕錛屼綘鍙互鍒╃敤jvm鑷甫鐨刯map鍛戒護鏉ユ煡璇€?/strong>

   鎺ヤ笅鏉ワ紝鎴戜滑灝濊瘯鐢╰race鍛戒護璺熻釜鏂規硶鐨勮繍琛岋紝渚嬪渚嬪瓙涓殑clojure浠g爜鐢ㄥ埌浜唋oop鍜宺ecur涓や釜sepcial form錛屾垜浠窡韙笅loop:
housemd> trace -t 5 core$loop
INFO : probe class clojure.core$loop
core$loop.doInvoke(Object, Object, Object, Object)    sun.misc.Launcher$AppClassLoader@a6eb38a            0            -ms    null
core$loop.getRequiredArity()                          sun.misc.Launcher$AppClassLoader@a6eb38a            0            -ms    null

core$loop.doInvoke(Object, Object, Object, Object)    sun.misc.Launcher$AppClassLoader@a6eb38a            0            -ms    null
core$loop.getRequiredArity()                          sun.misc.Launcher$AppClassLoader@a6eb38a            0            -ms    null

core$loop.doInvoke(Object, Object, Object, Object)    sun.misc.Launcher$AppClassLoader@a6eb38a            0            -ms    null
core$loop.getRequiredArity()                          sun.misc.Launcher$AppClassLoader@a6eb38a            0            -ms    null

core$loop.doInvoke(Object, Object, Object, Object)    sun.misc.Launcher$AppClassLoader@a6eb38a            0            -ms    null
core$loop.getRequiredArity()                          sun.misc.Launcher$AppClassLoader@a6eb38a            0            -ms    null

core$loop.doInvoke(Object, Object, Object, Object)    sun.misc.Launcher$AppClassLoader@a6eb38a            0            -ms    null
core$loop.getRequiredArity()                          sun.misc.Launcher$AppClassLoader@a6eb38a            0            -ms    null

INFO : Ended by timeout
INFO : reset class clojure.core$loop

    鍦?縐掑唴錛宑lojure.core$loop綾繪湁涓や釜鏂規硶鍚勮璋冪敤浜?嬈★紝doInvoke鏄疄闄呯殑璋冪敤錛岃実etRequiredArity鐢ㄦ潵鏌ヨloop鎵闇瑕佺殑鍙傛暟涓暟銆倀race榪樺彲浠ヨ窡韙埌鍏蜂綋鐨勬柟娉曪紝渚嬪鎴戜滑璺熻釜prn鍑芥暟鐨勮皟鐢ㄦ儏鍐碉細
housemd> trace -t 5 core$prn.doInvoke
INFO : probe class clojure.core$prn
core$prn.doInvoke(Object)    sun.misc.Launcher$AppClassLoader@a6eb38a            1            1ms    clojure.core$prn@3e4ac866

core$prn.doInvoke(Object)    sun.misc.Launcher$AppClassLoader@a6eb38a            2           <1ms    clojure.core$prn@3e4ac866

core$prn.doInvoke(Object)    sun.misc.Launcher$AppClassLoader@a6eb38a            3           <1ms    clojure.core$prn@3e4ac866

core$prn.doInvoke(Object)    sun.misc.Launcher$AppClassLoader@a6eb38a            4           <1ms    clojure.core$prn@3e4ac866

core$prn.doInvoke(Object)    sun.misc.Launcher$AppClassLoader@a6eb38a            5           <1ms    clojure.core$prn@3e4ac866

INFO : Ended by timeout
INFO : reset class clojure.core$prn
  
   trace鎵撳嵃浜嗘柟娉曠殑璋冪敤嬈℃暟錛?縐掑唴錛夊拰姣忔璋冪敤鐨勬椂闂達紙姣綰у埆錛夛紝浠ュ強璋冪敤鐨則arget object銆傚皬鎶宸э細娌℃湁鍙彉鍙傛暟鐨勫嚱鏁扮敓鎴愮被鏈緇堣皟鐢ㄧ殑鏄痠nvoke鏂規硶錛堝弬鏁頒釜鏁板彲鑳介噸杞斤級錛屾湁鍙彉鍙傛暟鐨勫嚱鏁拌皟鐢ㄧ殑鏄痙oInvoke鏂規硶銆?br />
   trace鍛戒護榪樻敮鎸佹墦鍗拌皟鐢ㄥ爢鏍堝埌鏂囦歡錛屼緥濡傦細
trace -t 5 -d -s  core$prn.doInvoke

   鍒╃敤-s鍜?d鍛戒護浼氬皢璇︾粏鐨勮皟鐢ㄤ俊鎭緭鍑哄埌涓存椂鐩綍錛屼復鏃剁洰褰曠殑璺緞鍙互閫氳繃trace help鍛戒護鏌ヨ鍒幫紝鍦ㄦ垜鐨勬満鍣ㄤ笂鏄?tmp/trace/<pid>@host鐩綍涓嬨傝皟鐢ㄥ爢鏍堢殑杈撳嚭綾諱技錛?br />
example$square.invoke(Long) call by thread [main]
    example$eval9.invoke(test.clj:11)
    clojure.lang.Compiler.eval(Compiler.java:6465)
    clojure.lang.Compiler.load(Compiler.java:6902)
    clojure.lang.Compiler.loadFile(Compiler.java:6863)
    clojure.main$load_script.invoke(main.clj:282)
    clojure.main$script_opt.invoke(main.clj:342)
    clojure.main$main.doInvoke(main.clj:426)
    clojure.lang.RestFn.invoke(RestFn.java:421)
    clojure.lang.Var.invoke(Var.java:405)
    clojure.lang.AFn.applyToHelper(AFn.java:163)
    clojure.lang.Var.applyTo(Var.java:518)
    clojure.main.main(main.java:37)

   涓婇潰榪欎釜綆鍗曠殑渚嬪瓙灞曠ず浜嗕嬌鐢╤ousemd璺熻釜璇婃柇clojure榪涚▼鐨勬柟娉曘?br />
   鑷畾涔塶s鍜屽嚱鏁扮殑璋冭瘯涓庢綾諱技錛屽亣璁炬垜浠湁涓嬮潰鐨刢lojure浠g爜錛?br />
(ns example)
(defn square [x]
  (* x x))

(loop [x 1]
  (Thread/sleep 1000)
  (square x)
  (recur (inc x)))
 
   ns涓篹xample錛岃嚜瀹氫箟鍑芥暟square騫跺畾鏈熷驚鐜皟鐢ㄣ備嬌鐢╤ousemd璇婃柇榪欐浠g爜錛?br />
loaded -h example$square     #鏌ヨsquare鐨勫姞杞芥儏鍐?br />trace -t 10 -d -s example$square.invoke  #璺熻釜10縐掑唴square鐨勮皟鐢ㄦ儏鍐?/div>

dennis 2012-06-15 02:52 鍙戣〃璇勮
]]>鍒嗗竷寮忔秷鎭腑闂翠歡Metaq鍙戝竷1.4.3http://www.tkk7.com/killme2008/archive/2012/06/04/379895.htmldennisdennisMon, 04 Jun 2012 02:03:00 GMThttp://www.tkk7.com/killme2008/archive/2012/06/04/379895.htmlhttp://www.tkk7.com/killme2008/comments/379895.htmlhttp://www.tkk7.com/killme2008/archive/2012/06/04/379895.html#Feedback1http://www.tkk7.com/killme2008/comments/commentRss/379895.htmlhttp://www.tkk7.com/killme2008/services/trackbacks/379895.html鎴戜滑鍦ㄧ淮鎶ょ殑娣樺疂寮婧愭秷鎭腑闂翠歡鐨?a style="color: #006699; ">metaq鐨?a style="color: #006699; ">github鍒嗘敮錛屼粖澶╁彂甯冧簡1.4.2鐗堟湰錛屼富瑕佸仛浜嗗涓嬫敼榪涳細

1.鏀寔鍙戦佸拰璁㈤槄鍒嗙錛屽彲浠ョ粏綺掑害鍦版帶鍒禕roker鎴栬呮煇涓猅opic鏄惁鎺ユ敹娑堟伅鍜屾帴鍙楄闃呫傛湇鍔$娣誨姞鏂伴夐」acceptPublish鍜宎cceptSubscribe銆?br />
2.鏇村弸濂藉湴鍏抽棴Broker錛屾⒊鐞嗗叧闂祦紼嬪茍閫氳繃JMX璋冪敤鏂規硶鍏抽棴鏇夸唬鍘熸潵綆鍗曠殑kill銆?br />
3.鏇存柊python瀹㈡埛绔?/a>鍒?.2鐗堟湰錛屽彲浠ラ氳繃pip瀹夎:  pip install metaq

4.鍙戝竷ruby璇█瀹㈡埛绔?a style="color: #006699; ">meta-ruby
 0.1鐗堟湰銆?br />
5.鍏朵粬灝忔敼榪涳細鍗囩駭gecko鍒?.1.1鐗堟湰錛屽崌綰uartz鍒?.1.4鐗堟湰錛屾坊鍔犻泦鎴愭祴璇曞伐紼嬪拰鍐呴儴閲嶆瀯絳夈?br />
6.鏂版枃妗?a >銆婁嬌鐢╨og4j鎵╁睍鍙戦佹秷鎭?/a>

綆浠嬶細https://github.com/killme2008/Metamorphosis/wiki/浠嬬粛
涓嬭澆錛?a style="color: #006699; ">https://github.com/killme2008/Metamorphosis/downloads

鏂囨。錛?a style="color: #006699; ">https://github.com/killme2008/Metamorphosis/wiki



dennis 2012-06-04 10:03 鍙戣〃璇勮
]]>
濡備綍鐔熸倝涓涓紑婧愰」鐩紵http://www.tkk7.com/killme2008/archive/2012/05/22/378885.htmldennisdennisTue, 22 May 2012 15:12:00 GMThttp://www.tkk7.com/killme2008/archive/2012/05/22/378885.htmlhttp://www.tkk7.com/killme2008/comments/378885.htmlhttp://www.tkk7.com/killme2008/archive/2012/05/22/378885.html#Feedback9http://www.tkk7.com/killme2008/comments/commentRss/378885.htmlhttp://www.tkk7.com/killme2008/services/trackbacks/378885.html    浣犳湁涓換鍔★紝闇瑕佺敤鍒版煇涓紑婧愰」鐩?鎴栬呰佸ぇ浜や唬浣犱竴涓簨鎯咃紝璁╀綘鍘諱簡瑙f煇涓笢瑗褲傛庝箞涓嬫墜鍛紵濡備綍寮濮嬪憿錛熸垜鐨勪範鎯槸榪欐牱錛?br />
1.棣栧厛錛屾煡鎵懼拰闃呰璇ラ」鐩殑鍗氬鍜岃祫鏂欙紝閫氳繃google浣犺兘鎵懼埌鏌愪釜欏圭洰澶т綋浠嬬粛鐨勫崥瀹紝蹇熼槄璇諱竴涓嬪氨鑳藉欏圭洰鐨勭洰鐨勩佸姛鑳姐佸熀鏈嬌鐢ㄦ湁涓ぇ姒傜殑浜嗚В銆?br />
2.闃呰欏圭洰鐨勬枃妗o紝閲嶇偣鍏蟲敞綾諱技Getting started銆丒xample涔嬬被鐨勬枃妗o紝浠庝腑瀛︿範濡備綍涓嬭澆銆佸畨瑁呫佺敋鑷沖熀鏈嬌鐢ㄨ欏圭洰鎵闇瑕佺殑鐭ヨ瘑銆?br />
3.濡傛灉璇ラ」鐩湁鎻愪緵鐜版垚鐨別xample宸ョ▼錛岄鍏堝皾璇曟寜鐓у紑濮嬫枃妗g殑浠嬬粛榪愯example錛屽鏋滆繍琛岄『鍒╋紝閭d箞鎭枩浣犻『鍒╁紑浜嗕釜濂藉ご;濡傛灉閬囧埌闂錛岄鍏堝皾璇曞湪欏圭洰鐨?strong>FAQ
絳夋枃妗i噷鏌ユ壘絳旀錛屽啀嬈★紝鍙互灝嗛棶棰橈紙渚嬪寮傚父淇℃伅錛夊綋鎴愬叧閿瘝鍘繪悳绱紝鏌ユ壘鐩稿叧鐨勮В鍐沖姙娉曪紝浣犻亣鍒頒簡錛屽埆浜轟竴鑸篃浼氶亣鍒幫紝鐑績鐨勬湅鍙嬩細璁板綍涓嬭В鍐崇殑榪囩▼;鏈鍚庯紝鍙互灝嗛棶棰樻彁浜ゅ埌欏圭洰鐨勯偖浠跺垪琛紝璇峰ぇ瀹跺府浣犵湅鐪嬨?strong>鍦ㄦ病鏈夋垚鍔熻繍琛宔xample涔嬪墠錛屼笉瑕佸皾璇曚慨鏀筫xample銆?br />
4.榪愯浜嗙涓涓猠xample涔嬪悗錛屽皾璇曟牴鎹綘鐨勭悊瑙e拰闇瑕佷慨鏀筫xample錛屾祴璇曢珮綰у姛鑳界瓑銆?br />
5.鍦ㄤ簡瑙e熀鏈嬌鐢ㄥ悗錛岄渶瑕佸紑濮嬫繁鍏ョ殑浜嗚В璇ラ」鐩備緥濡傞」鐩殑閰嶇疆綆$悊銆侀珮綰у姛鑳戒互鍙婃渶浣沖疄璺點傞氬父涓涓繍浣滆壇濂界殑欏圭洰浼氭彁渚涗竴浠戒粠嫻呭埌娣辯殑鐢ㄦ埛鎸囧崡錛屼綘騫朵笉闇瑕佷粠澶村埌灝鵑槄璇昏繖浠芥寚鍗楋紝鏍規嵁鏃墮棿鍜屽叴瓚o紝鐗瑰埆鏄綘鑷繁浠誨姟鐨勯渶瑕侊紝閲嶇偣闃呰閮ㄥ垎绔犺妭騫跺仛絎旇錛堟帹鑽恊vernote錛夈?br />
6.濡傛灉鏃墮棿鍏佽錛屽皾璇曚粠婧愮爜鏋勫緩璇ラ」鐩傞氬父寮婧愰」鐩兘浼氭彁渚涗竴浠芥瀯寤烘寚鍗楋紝鎸囧浣犲浣曟惌寤轟竴涓敤浜庡紑鍙戙佽皟璇曞拰鏋勫緩鐨勭幆澧冦傚皾璇曟瀯寤轟竴涓増鏈?br />
7.濡傛灉鏃墮棿鍏佽騫朵笖鏈夊叴瓚o紝鍙互灝濊瘯闃呰婧愮爜錛?br />錛?錛夐槄璇繪簮鐮佷箣鍓嶏紝鏌ョ湅璇ラ」鐩槸鍚︽彁渚涙灦鏋勫拰璁捐鏂囨。錛岄槄璇昏繖浜涙枃妗e彲浠ヤ簡瑙h欏圭洰鐨勫ぇ浣撹璁″拰緇撴瀯錛岃婧愮爜鐨勬椂鍊欎笉浼氭棤浠庝笅鎵嬨?br />錛?錛夐槄璇繪簮鐮佷箣鍓嶏紝涓瀹氳鑳芥瀯寤哄茍榪愯璇ラ」鐩紝鏈変釜鐩磋鎰熷彈銆?br />錛?錛夐槄璇繪簮鐮佺殑絎竴姝ユ槸鎶撲富騫詫紝灝濊瘯鐞嗘竻涓嬈℃甯歌繍琛岀殑浠g爜璋冪敤璺緞錛岃繖鍙互閫氳繃debug鏉ヨ瀵熻繍琛屾椂鐨勫彉閲忓拰琛屼負銆備慨鏀規簮鐮佸姞鍏ユ棩蹇楀拰鎵撳嵃鍙互甯姪浣犳洿濂界殑鐞嗚В婧愮爜銆?br />錛?錛夐傚綋鐢誨浘鏉ュ府鍔╀綘鐞嗚В婧愮爜錛屽湪鐞嗘竻涓誨共鍚庯紝鍙互灝嗘暣涓祦紼嬬敾鎴愪竴寮犳祦紼嬪浘鎴栬呮爣鍑嗙殑UML鍥撅紝甯姪璁板繂鍜屼笅涓姝ョ殑闃呰銆?br />錛?錛夋寫閫夋劅鍏磋叮鐨?#8220;鏋濆共”浠g爜鏉ラ槄璇伙紝姣斿浣犲緗戠粶閫氳鎰熷叴瓚o紝灝遍槄璇葷綉緇滃眰鐨勪唬鐮侊紝娣卞叆鍒板疄鐜扮粏鑺傦紝濡傚畠鐢ㄤ簡浠涔堝簱錛岄噰鐢ㄤ簡浠涔堣璁℃ā寮忥紝涓轟粈涔堣繖鏍峰仛絳夈傚鏋滃彲浠ワ紝debug緇嗚妭浠g爜銆?br />錛?錛夐槄璇繪簮鐮佺殑鏃跺欙紝閲嶈鍗曞厓嫻嬭瘯錛屽皾璇曞幓榪愯鍗曞厓嫻嬭瘯錛屽熀鏈笂涓涓ソ鐨勫崟鍏冩祴璇曚細灝嗚浠g爜鐨勫姛鑳藉拰杈圭晫鎻忚堪娓呮銆?br />錛?錛夊湪鐔熸倝婧愮爜鍚庯紝鍙戠幇鏈夊彲浠ユ敼榪涚殑鍦版柟錛屾湁綺懼姏銆佹湁鎰忔効鍙互鍚戣欏圭洰鐨勫紑鍙戣呮彁鍑烘敼榪涚殑鎰忚鎴栬卛ssue錛岀敋鑷沖府浠栦慨澶嶅拰瀹炵幇錛屽弬涓庤欏圭洰鐨勫彂灞曘?br />
8.閫氬父鍦ㄩ槄璇繪枃妗e拰婧愮爜涔嬪悗錛屼綘鑳藉璇ラ」鐩湁姣旇緝娣卞叆鐨勪簡瑙d簡錛屼絾鏄欏圭洰鎵鍦ㄩ鍩燂紝浣犲彲鑳借繕鎯蟲悳绱㈢浉鍏崇殑欏圭洰鍜岃祫鏂欙紝鐪嬬湅鏈夋病鏈夊叾浠栫殑鏇村ソ鐨勯」鐩垨鑰呰В鍐蟲柟妗堛傚湪騫垮害鍜屾繁搴︿箣闂存潈琛°?br />
    浠ヤ笂鏄垜涓漢鐨勪竴浜涗範鎯紝鎴戣嚜宸變篃騫舵病鏈夊畬鍏ㄦ寜鐓ц繖涓潵錛屼絾鏄寜鐓ц繖涓『搴忥紝鍩烘湰涓婅兘璁╀綘姣旇緝楂樻晥鍦板涔犲拰浣跨敤鏌愪釜寮婧愰」鐩?img src ="http://www.tkk7.com/killme2008/aggbug/378885.html" width = "1" height = "1" />

dennis 2012-05-22 23:12 鍙戣〃璇勮
]]>Emacs + Clojure閰嶇疆鐨勫嚑涓猅iphttp://www.tkk7.com/killme2008/archive/2012/05/19/378535.htmldennisdennisFri, 18 May 2012 16:57:00 GMThttp://www.tkk7.com/killme2008/archive/2012/05/19/378535.htmlhttp://www.tkk7.com/killme2008/comments/378535.htmlhttp://www.tkk7.com/killme2008/archive/2012/05/19/378535.html#Feedback11http://www.tkk7.com/killme2008/comments/commentRss/378535.htmlhttp://www.tkk7.com/killme2008/services/trackbacks/378535.html     寰堜箙娌℃洿鏂板崥瀹簡錛屽湪鍖椾含宸ヤ綔錛屽繖紕屽茍涓斿厖瀹炪傜洰鍓嶆潵璇達紝Clojure鏈濂界殑寮鍙戠紪杈戝櫒搴旇鏄疎macs + Slime鐨勭粍鍚堬紝鍒╃敤swank-clojure榪欎釜欏圭洰錛屽姞涓奵lojure-mode錛屽彲浠ュ畬緹庡湴榪愯slime銆傜紪璇戙佽繍琛屻佽煩杞佹枃妗e拰寮曠敤鏌ョ湅鐢氳嚦debug閮藉彲浠ユ悶瀹氥傚叿浣撻厤緗仌涓嶉噸澶嶏紝鐪媠wank-clojure鐨勬枃妗e嵆鍙嚜宸卞畨瑁呰搗鏉ワ紝鎴栬呰繖綃?a >涓枃鍗氬錛?a >windows涓婇厤緗?/a>銆?br />
    鍒嗕韓鍑犱釜Tip錛屼篃鏈熷緟澶у鍒嗕韓浣犱滑鐨勪嬌鐢ㄥ績寰椼?br />
    棣栧厛鏄嚜鍔ㄥ湪鎵撳紑clj鍚庣紑鏂囦歡鐨勬椂鍊欏惎鍔ㄦ墽琛宑lojure-jack-in涓巗lime榪炴帴錛屽彲浠ュ湪emacs閰嶇疆閲屽姞涓婁釜callback錛?br />
(eval-after-load "clojure-mode"
  '(progn
     (require 'slime)
     (require 'clojure-mode)
     (unless (slime-connected-p)
       (save-excursion (clojure-jack-in)))))
    榪欐牱鍦ㄦ墦寮clj涓哄悗緙鐨勬枃浠剁殑鏃跺欙紝灝嗚嚜鍔ㄥ惎鍔╟lojure-mode鎵цclojure-jack-in鍑芥暟騫朵笖榪炴帴slime銆?br />
    灝哻lj鍚庣紑鐨勬枃浠惰嚜鍔ㄥ叧鑱斿埌clojure-mode:
(setq auto-mode-alist (cons '("\\.clj$" . clojure-mode) auto-mode-alist))
    閫氬父鏉ヨ濡傛灉浣犳槸鍒╃敤marmalade瀹夎鐨勶紝浼氳嚜鍔ㄥ叧鑱旂殑銆?br />
    鍙﹀錛屽惎鍔ㄨ嚜鍔ㄥ尮閰嶆嫭鍙楓佸瓧絎︿覆寮曞彿絳夌殑paredit妯″紡涓瀹氳鍚姩錛?br />
(defun paredit-mode-enable () (paredit-mode 1))
(add-hook 'clojure-mode-hook 'paredit-mode-enable)
(add-hook 'clojure-test-mode-hook 'paredit-mode-enable)

   鍦ㄤ嬌鐢╟lojure-mode鎴栬卌lojure-test-mode鐨勬椂鍊欒嚜鍔ㄥ惎鐢╬aredit妯″紡錛屾嫭鍙峰啀涔熶笉鏄棶棰樸傛嫭鍙峰尮閰嶆彁紺轟竴鑸槸寮鍚殑錛屽鏋滄病鏈夛紝寮哄埗寮鍚細

;;    鏄劇ず鎷彿鍖歸厤
(show-paren-mode t)
(setq show-paren-style 'parentheses)

    slime鏇村閰嶇疆錛屽惎鐢↖O閲嶅畾鍚戯紙澶氱嚎紼婭O杈撳嚭閮藉畾鍚戝埌SLIME repl錛変互鍙婅緗氳瀛楃緙栫爜絳夛細

(eval-after-load "slime"
  '(progn
     (slime-setup '(slime-repl slime-fuzzy))
     ;;(setq slime-truncate-lines t)
     (setq  swank:*globally-redirect-io*  t)
     ;; (setq slime-complete-symbol-function ' slime-fuzzy-complete-symbol)
     (setq slime-net-coding-system 'utf-8-unix)))

    緇嗗績鐨勬湅鍙嬪彲鑳芥敞鎰忓埌鎴戞敞閲婁簡slime-fuzzy-complete鐨勯厤緗紝榪欐槸涓涓敮鎸佹洿濂界殑鑷姩琛ュ叏鍔熻兘鐨凷LIME鎻掍歡錛堝彲浠ョ敤緙╁啓鏉ヨ嚜鍔ㄨˉ鍏級錛屽彲鎯滃湪鎴戞満鍣ㄤ笂娌℃湁灝濊瘯閰嶇疆鎴愬姛錛屾湁鍏磋叮浣犲彲浠ュ皾璇曚笅銆?br />
    鍦≧EPL閲屾敮鎸佽娉曢珮浜紝涓瀹氳閰嶇疆涓婏細

(add-hook 'slime-repl-mode-hook
          (defun clojure-mode-slime-font-lock ()
            (require 'clojure-mode)
            (let (font-lock-mode)
              (clojure-mode-font-lock-setup))))

    鍗曠嫭鍦╟lojure-mode錛堝湪鍏朵粬mode閲岃繖浜涘揩鎹烽敭涓嶄細璧蜂綔鐢級閲岄厤緗揩鎹烽敭鍙互榪欐牱:
(eval-after-load "clojure-mode"
  '(progn
     (require 'slime)
     (require 'clojure-mode)
     (define-key clojure-mode-map (kbd "M-/")  (quote slime-complete-symbol))
     (define-key clojure-mode-map (kbd "C-c s")  (quote slime-selector)))

   渚嬪鎴戣繖閲屽皢M-/浣滀負鑷姩琛ュ叏鐨勫揩鎹烽敭錛屽洜涓簃eta閿湪鎴戠殑Mac鏈哄櫒涓婅緗負command閿紝鍥犳鑷姩琛ュ叏鐨勬搷浣滀範鎯氨璺烢clipse綾諱技銆傝?strong>slime-selector鏄竴涓潪甯告湁鐢ㄧ殑鍑芥暟錛岀敤鏉ヨ煩杞埌slime鐨勪竴緋誨垪buffer錛屽洜姝ゆ垜緇戝畾浜咰-c s蹇嵎閿?br />
    棰濆涓鎻愶紝鍦∕ac osx涓嬶紝灝哻ommand浣滀負meta閿?
;;; I prefer cmd key for meta
(setq mac-option-key-is-meta nil
      mac-command-key-is-meta t
      mac-command-modifier 'meta
      mac-option-modifier 'none)

    鏈鍚庯紝鏈熷緟澶у涓嶅悵鍒嗕韓浣犵殑蹇冨緱銆?br />    

dennis 2012-05-19 00:57 鍙戣〃璇勮
]]>
clj.monitor : monitoring applications in clojure based on SSHhttp://www.tkk7.com/killme2008/archive/2012/05/12/378018.htmldennisdennisSat, 12 May 2012 14:38:00 GMThttp://www.tkk7.com/killme2008/archive/2012/05/12/378018.htmlhttp://www.tkk7.com/killme2008/comments/378018.htmlhttp://www.tkk7.com/killme2008/archive/2012/05/12/378018.html#Feedback5http://www.tkk7.com/killme2008/comments/commentRss/378018.htmlhttp://www.tkk7.com/killme2008/services/trackbacks/378018.html
    My weekend project clj.monitor is beta release,it's a clojure DSL for monitoring system and applications based on SSH.

Home:https://github.com/killme2008/clj.monitor

An example:
(ns clj.monitor.example
  (:use [clj.monitor.core]
        [control.core]
        [clj.monitor.tasks]))

;;define a mysql cluster
(defcluster mysql
  :clients [{:user "deploy" :host "mysql.app.com"}])

;;define a monitor for mysql cluster
(defmonitor mysql-monitor
  :tasks [(ping-mysql "root" "password")
            (system-load :5 3)]
  :clusters [:mysql])

;;start monitors
(start-monitors
 :cron "* 0/5 * * * ?"
 :alerts [(mail :from "alert@app.com" :to "yourname@app.com")]
 :monitors [mysql-monitor])

API document: http://fnil.net/clj.monitor

It is just a beta release,if you have any questions or find issues ,please let me know,thanks.


dennis 2012-05-12 22:38 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 黄色网页免费观看| 特级av毛片免费观看| 国产亚洲蜜芽精品久久| 亚洲国产欧美一区二区三区 | 人与动性xxxxx免费| 亚洲精品黄色视频在线观看免费资源 | 亚洲国产精品久久人人爱| 亚洲人成日本在线观看| 中国china体内裑精亚洲日本| 亚洲AV无码精品国产成人| 又粗又长又爽又长黄免费视频| 亚洲免费网站观看视频| 国产无遮挡又黄又爽免费视频| 久久精品国产亚洲一区二区三区| 亚洲bt加勒比一区二区| 亚洲w码欧洲s码免费| 性生大片视频免费观看一级| 国产精品冒白浆免费视频 | 亚洲视频在线一区二区| 亚洲毛片免费观看| 久久亚洲精品高潮综合色a片| 最近2019中文字幕免费看最新| 亚洲精品二区国产综合野狼| 亚洲人成电影网站| 91精品导航在线网址免费| 免费大香伊蕉在人线国产 | 黄色一级视频免费| 国产免费人视频在线观看免费| 白白色免费在线视频| 亚洲熟妇少妇任你躁在线观看无码| 精品乱子伦一区二区三区高清免费播放| 亚洲视频在线免费看| 五月婷婷亚洲综合| 亚洲人成综合在线播放| 麻豆一区二区免费播放网站| 图图资源网亚洲综合网站| 16女性下面无遮挡免费| 亚洲精品午夜国产va久久| 在线免费观看韩国a视频| 亚洲免费人成视频观看| 成年轻人网站色免费看|