在 搜尋 code 方面,ag 顯然比 grep 好用多了,在此紀錄一下,隨時可翻閱。

最簡單的,輸出結果就會有行號,highlight

$ag KEYWORD
$ag "KEYWORD"

常用參數

-i 忽略大小寫
-l 只列出檔名
-L 顯示沒有任何匹配的檔名
-g 檔名匹配,
-h 檢視幫助

指定的目錄下搜尋

ag "KEYWORD" /path/to/directory

特定檔案中類型,搜尋特定文字

$ ag -G ".+\.java" "KEYWORD" /path/to/search

排除目錄

$ag "KEYWORD" — ignore-dir 3rdparty

ag 的 Github

Keep updating

--

--

這週學習了如何做一個簡單的質押智能合約,也就是一個可以將 token 存入至 contract ( ex. 就是交易所),過一段時間再將 token 領出,在存入期間可獲得一些獎勵。

一個基本 staking 合約需要以下要件:

ERC20 token, Bank, Exchange等。

Bank 方則除需要有:deposit(), withdraw()之外,還可加上 timelock, reward(獎勵) 功能,所以還可加上 calculate reward, update reward, get reward 等等功能。

Exchange 方則是要 add liquidity, 執行價格換算。

Simple example: https://github.com/xchehub/eth_sol_zone/tree/main/SimpleStakingContract

Reference:

https://medium.com/harmony-one/introducing-staking-smart-contract-449df2346de1

這個有點就,不過還算是個簡單扼要了範例。

PS. 心得要趕快寫,要不靈感都沒了。

--

--

我老了,主人要把我殺掉

故事是這樣的,有天晚上,女兒吵著要聽故事才要睡覺,所以就找了個 podcast,故事名就是: 布萊梅的音樂家。故事一開頭就說著農場裡頭的一頭驢子,被主人嫌太老,準備拖去屠宰塲殺了,榨乾最後一份利用價值,而這番話被老驢子聽了,老驢子便思索著下一步,聽到這邊,我心裡一驚,這不就是我現在的寫照嗎?不過我沒被直接殺掉而已,不過也差不多拉,慢慢等死!!可是啊,不論我們年紀多大,都是會還想為自己努力一次的。

在這故事裡,還好這一路上,老驢也找了不少同伴,最後也算有個不差的結局。

這數十年的人生道路一路走來,自認不負他人,也對得自己,至今才赫然驚覺我正處於三明治世代的狀態,上有七十餘歲的雙親,下有還需扶養十至二十年的二名女兒,也就是說我還需要工作十至二十年左右。原來啊原來,人生是可以規劃的,原來啊一生可以賺到的錢是可算出來的,現在才覺悟會為時已晚嗎?一路上的堅持總是反反覆覆的審視著,有同伴的扶持才不孤單。

所以說尋覓同好是一件走在崎嶇坎坷的職涯人生道路上時蠻重要的一件事。也就是如此我開始參加了寫作班,理財社群。也就是為了不讓自己深陷職場裡的凶險,當我伸出我的手求援時,能有另一隻手將我從泥沼裡拉出。

驢子和他的同伴們其實一直都沒到達布萊梅,而至今我還在尋找我的布萊梅城,它會是在那兒呢?不過我想走在任何的道路上,都可以找到志同道合的同伴。

(From my another account.)

--

--

Yes, let me start writing, writing for something, some thoughts, for life, for myself, and for my personal growth.

Recently I have read some books about writing, I also think I need to have some practice in writing and organizing how to express my thoughts.

Even though there are only a few words here.

Reference:

  1. 每一篇心得都有價值

--

--

才剛結束我的 blockchain 的課程,打鐵趁熱,持續練習研讀下去。

在 Ethereum 上開發智能合約是件十分有趣的事,我想對於一名有開發經驗的工程師來說更是如此。譬如說:gas 的設計,也因此 developer 需要無所不用其極的節省 gas。

有個例子是關於遞增運算:

在一個 for loop 裡,i +=1 比起 ++i 還需花更多的 gas。

而且 i++ 比起 ++1 還昂貴,因為 i++ 需要先遞增一個值,然後再返回,所以它需要在 memory 中保存二個值。

++1只在 memory 中使用到一個數字,雖然在編譯器的最佳化下,這些差異可能會被消弭。

相關討論:

  1. Gas Golf | Solidity 0.8
  2. Gas comparisons of ++ before, after and += 1 — Solidity 0.8.10

<<Keep updated if needed>>

--

--