pseudoyu

pseudoyu

Blockchain | Programming | Photography | Boyi
github
twitter
telegram
mastodon
bilibili
jike

周報 #38 - Foundry 契約テスト、Logseq タスク管理と Surge Ponte リモート開発

前言#

本篇は 2023-04-19 から 2023-04-30 までの二週間の生活の記録と考察です。

前回の週報では、複数の都市を巡る旅をしたことに触れましたが、杭州に戻ってから徐々に元の生活リズムを取り戻し、一人の時間が増え、入力、思考、そして面白いことをたくさんしました。しかし、整理や自分との対話の時間が逆に減ってしまったようで、数日後に時間の経過に気づくことがよくあります。自分はあまり社交に依存せず、適応力が強いと思っていましたが、実際には自分の生活状態を仮想世界に過度に依存しているのかもしれず、現実との乖離感を感じています。

今、深夜のフライト中に少し休んだ後、眠気が薄れてきたので、パソコンを取り出して何かを書こうと思います。ネットワークや外部の干渉がないせいか、思考がよりクリアになっているようです。

工作氛囲与自由度#

新しいチームに加入してから、いつの間にか一ヶ月以上が経ちました。おそらく、最初の二、三週間はあちこちを駆け回っていたため、実感があまりなかったのですが、今は徐々にリズムに慣れ、軌道に乗り始めています。私の所属するグループの雰囲気はとても良く、リモートでも疎外感を感じることはありません。会議では、仕事の話から外食の話、さらには Vlog カメラの購入について(Sony 大法好)まで話が広がります。本来は社交不安のある私も、徐々にグループ内で話すことが増えてきました。

面白いことに、深圳のチームビルディング、香港の Web3 フェスティバル、杭州の一連のチームビルディングに密に参加したため、会社の約 20 人の同僚に会ったことになります。完全リモートの作業モードのチームでは、これはなかなか難しいことです。また、オンライン年会にも参加でき、多くの Slack の対話ボックスにしか存在しない面白い同僚たち(各路神仙)に会うことができました。パフォーマンスを披露することでラッパーを発掘したり、テトリスをプレイすることで人と人とのつながりを感じたりしました。

いくつかのコミュニケーションを経て、仕事の内容にいくつかの調整を行い、スマートコントラクトの開発やブロックチェーン関連の研究と探索を引き続き行うことができ、自分の好きな製品にもより深く関与できるようになりました(まだ xLogxSync を使っていない人がいるかどうか見てみてください。具体的にはこの「週報 #25 - Crossbell に基づく個人情報出力と同期システム」を見てください)。作業量や時間のバランスが必要かもしれませんが、こうした選択の自由度があることに少し嬉しく思っています。

Foundry 与合约测试#

仕事で新しいグループのプロジェクトを理解し始めたため、以前に少しブロックチェーンの研究を行い、半年間コントラクトを書いていたにもかかわらず、複雑さや開発実践においてまだまだ足りないと感じています。この分野をしっかり補うつもりなので、今週は多くのコントラクトや調査文書を見て、Hardhat から Foundry に移行することにしました。

実は以前、Noy や他の友人たちから Foundry フレームワークを熱心に勧められていましたが、以前のプロジェクトではコントラクトの単体テストの要求がそれほど高くなかったため、JavaScript で多くのツールスクリプトを書いていたこともあり、ずっと Hardhat を使用していました。しかし、今回は本当にいくつかのプロジェクトを実行し、いくつかのデモ単体テストを書いてみて、その巨大な利点を感じ、瞬時に裏切りました。ほぼ使われなくなっていた Solidity コントラクト開発シリーズも新しい更新を迎えようとしています(書いていますので、信じられない方は画像を見てください)。

foundry_framework_outline

実際、現在のコントラクトに関する企業レベルの実践はあまり多くなく、後で行ういくつかのコントラクトはオープンソースであるため、少しずつ自分の失敗経験やベストプラクティスを記録していくつもりです(フルタイムオープンソースの利点です)。

Logseq 与任务管理#

現在、自分の個人的な予定と仕事のタスクがより多く、より複雑になっているため、Logseq を個人のタスク管理ツールとして再び使用することにしました。実は以前は Notion を使って個人のボードを作成していましたが、使用中に心の負担が大きすぎると感じていました。重度の強迫観念のある自分は、タスクのカテゴリや説明情報を常に最適化しようとして、逆に大きなストレスを感じていました。また、TickTick や Todoist のような一般的なアプリも使用しましたが、同様に毎日さまざまなタスクやタグを整理する必要があり、振り返るのも便利ではありませんでした。

その後、Logseq というノートソフトを見つけました。最初はブロック単位のマークダウンノートソフトとして使っていましたが、双方向リンクという概念を試してみたくて、使ってみるとかなり適応できました。そのため、徐々に Notion の Knowledge Base を移行しました。その後、Simplified を使って自分のウェブページの注釈を同期しようとしましたが、しばらくしてから少し面倒だと感じてやめました。

Randy のこの動画「Logseq を使って生活とノートを管理する方法」を見つけたとき、彼は Logseq の Daily Journal を使ってさまざまなノートや TODO 管理を行うことを提案していました。これにより、Notion のようなソフトウェアのように、最初に計画を立ててから提示する必要がなくなります。

logseq_daily_journal

そのため、突然やりたいことを思い出したとき、新たにタスクをボードやタスク管理ソフトに作成する必要はなく、ノートを書くように Daily Journal に自由に項目を追加し、TODO、LATER のようなシンプルな構文を使うことで簡単なタスク管理ができるようになります。

ただし、いくつかのタスクは数日を跨ぐことがあり、私たちのタスクはさまざまな日付の Journal に散らばっているため、統一管理にはあまり適していません。そこで、Logseq のもう一つの強力な機能である Query を使用する必要があります。この機能は、ブロック単位のクエリ(SQL でレコードを取得するようなもの)として理解できます。いくつかのタグや構文などの内部ロジックを使ってフィルタリングし、私たちが欲しいブロックを表示します。

この部分は Randy の実践を参考にして、Dashboard ページを作成し、さまざまなクエリ結果を表示しました。主に以下のいくつかの Query を使用しています(括弧内はそれに対応する query 文で、必要な方は自由に取得し、必要に応じて修正してください):

  1. In Progress ({{query (todo now)}})
  2. Todo ({{query (todo later)}})
  3. Writing Plan ({{query (and (todo later) [[writing]] )}})
  4. Reading ({{query (and (todo now) [[books]] )}})
  5. Read It Later ({{query (and (todo later) [[books]])}})

表示結果は以下の通りです:

logseq_dashboard_in_progress

logseq_dashboard_todo

logseq_dashboard_other_queries

これは Randy の実践なので、別途ブログ記事を出すことはありませんが、週報の中で自分の使用方法を簡単に紹介しました。興味のある方は彼の元の動画を見てみてください。

Surge Ponte 与远程开发#

自分はネットワークやさまざまなハードウェアデバイス、システムの操作において、初心者でありながらも楽しむタイプです。以前、スリムクライアント開発のいくつかのベストプラクティスを探求したことがあります。詳細は以下の記事を参照してください:

その中で最も核心的で難しい点は、外部ネットワーク環境で自宅のデバイス(サーバー、Mac ホストなど)にアクセスする方法です。以前の私の提案では、frp というツールを使用して内網穿透を行っていましたが、半年以上が経過し、非常に安定しており、依然として最も推奨される方法です。

しかし、Yachen Liu が投稿した「Surge Ponte 研究ノート」を見たとき、またもや試してみたくなりました。

五一の連休に外出する予定があり、日常の開発は自宅のホストで行っているため、外出先でもアクセスできるようにしたいと思い、ちょうどシステムを再インストールしたばかりで frp クライアントの設定がまだだったので、Surge Ponte を試してみることにしました。

出発前日の夜に Surge 5 をアップグレードし、Surge Ponte の設定を行いました。一通り探索した結果、frp や他の類似の解決策と比べて、Surge Ponte は設定の使いやすさと拡張性において絶対的な優位性を持っていると感じました。

Surge Ponte の操作は詳細なブログ記事に値するため、今週の報告では原理や設定の詳細については詳しく説明しませんが、現在使用している機能の一部を簡単に示します。

私が自分の 16 インチ MBP と自宅の Mac Studio で同時に Surge Ponte 機能をオンにしたとき(私は NAT traversal via proxy モードを使用しており、UDP をサポートするラインがあれば大丈夫です。自分で構築した Trojan プロトコルのプロキシなど)、登録されたデバイスの中に表示されました。

surge_ponte_config

この時、デバイスがリモートログインの許可をオンにしていると、ssh [username]@[surgepontename].sgponte というコマンドで直接リモートログインできるようになります。これにより、VS Code のリモート開発などもサポートされます。

surge_ponte_ssh

もちろん、これは frp などでも簡単に実現できますが、さらに強力なのは、この時に自宅のホストで起動しているサービスにも、[surgepontename].sgponte:[port] のような URL で直接アクセスできることです。例えば、ssh で自宅の Mac Studio にリモート接続した後、ローカルの Next.js ウェブサービスを起動し、ローカルで localhost:3000 でアクセスしていたものを、今では MBP から http://yu-macstudio.sgponte:3000 で直接アクセスできるようになりました(frp でもサービスをマッピングすることはできますが、frp クライアント側でポートマッピングルールを書く必要があります)。

surge_ponte_servies

理論的には、VS Code を使って直接リモート接続し、コードファイルを修正し、[surgepontename].sgponte:[port] の方法で完全なローカルデバッグ体験を得ることができ、携帯性と性能を兼ね備えています(これで MBP を売って Air に変えようかな)。

もう一つ実用的なシーンは、私たちが自宅のローカルネットワークでしかアクセスできないサービス(ソフトルーターの設定、NAS、ラズベリーパイなど)を持っていることです。この時、frp を使用すると、それぞれを個別に設定する必要がありますが、Surge Ponte は DEVICE ルールを設定することで外部アクセスを実現できます。例えば、今外地にいるときに http://router.asus.com を使って自宅のルーター設定ページにアクセスできるのは、遠隔管理のために非常に便利です。

surge_ponte_router

他にも面白いアプリケーションがたくさんあります。例えば、smb プロトコルを使って自宅のホストデバイスのファイルに直接アクセスすることなどです。今後のブログ記事では、面白いアプリケーションシーンをできるだけカバーするつもりですので、興味のある方は(更新を催促)ぜひブログをチェックしてください。

捏捏近况#

nie_nie_in_painting

博訳学姐が捏捏の油絵を描いています!!!これはまだ初稿に過ぎず、さらに細部を加える予定ですが、すでに見せたくてたまらないほど素晴らしいです!!!

nie_nie_and_new_toys_01

nie_nie_and_new_toys_02

新しいキャットタワー、早めにバケーションモードに突入!

五一の後、去勢手術を受ける予定ですが、少し緊張しています。すべてがうまくいくことを願っています。

有趣的事与物#

输入#

面白い入力のほとんどは「Yu's Life」Telegram チャンネルで自動的に同期されますが、ここでも一部を選んで列挙してみます。ニュースレターのような感じです。

文章#

视频#

同様に、見た面白い動画も記録しておきます:

动漫#

  • 鬼灭之刃 锻刀村篇、超期待!!!崩れないことを願っています
  • 我推的孩子、議論が高いようですが、少し痛いと聞きました。冒頭を少し見ました。
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。