博客 / 列表

yangrd - idea遠程鏈接k8s debug

首先在容器啓動時增加一個環境變量 env: - name: JAVA_TOOL_OPTIONS value: - -agentlib:jdwp=transport=dt_socket,server=y,address=5005,suspend=y 然後將服務端口轉發暴露出來,如deployment名稱是user-service kubectl port-forward deployme

kubernetes , JAVA , debugging

yangrd - web-compiler:mvvm 的實現思路

最近一段時間留意到一個叫Svelte的前端框架,它與Vue 等前端框架的最大不同是採用了編譯的方案進行的實現,這是官網的介紹 Svelte 是一種全新的構建用户界面的方法。傳統框架如 React 和 Vue 在瀏覽器中需要做大量的工作,而 Svelte 將這些工作放到構建應用程序的編譯階段來處理。 與使用虛擬(virtual)DOM 差異對比不同。Svelte 編寫的代碼在應用程序的狀態更改時就

css3 , mvvm , compiler , HTML , Javascript

yangrd - 用lisp寫一個 柯里化(curry)的宏

curry.lisp (define-macro curry (lambda (fn) ( (define curry0 (lambda (args body) ( (if (nil? args) (body) ( `(lambda ((,(car args))) (,(

rust , currying , lisp ,

yangrd - 用rust寫lisp解釋器2 (實現一個簡單的異步模型(channel + thread => go))

背景 前段時間實現了一個 call-with-tcp-listener 過程(函數) (call-with-tcp-listener "127.0.0.1:8088" ( lambda (in) ( (display (req-read-string in)) "HTTP/1.1 200 OK\r\n\r\n hello word" ))) 如果是簡單的返回數據還不存

interceptor , channel , rust , lisp , thread

yangrd - 用java寫lisp 解釋器 (10 實現對象和類)

在實現解釋器的過程中,發現了一個好玩的東西,那就是怎樣更好的使用面向對象的思路來編寫代碼, 想了想可以定義一套模板。再開始前先整理了兩種面向對象的模板。 一種是java風格的模板 (class classname (superclass) (. field) ( func t()( ) func j()( ) )) 一種是go風格的模板 ( (def

macro , JAVA , lisp , object