Dn42_sites
この記事はなに DN42にMacからアクセスできるようになったのでおもろいサイトを発掘していく DN42 nwのDNS まずは以下を登録しよう sudo tee /etc/resolver/dn42 > /dev/null <<'EOF' nameserver 172.20.0.53 timeout 3 EOF DN42のpeeringマップ https://map.dn42/ 俺のASもここに載っておる笑 https://map.dn42/#4242422139
この記事はなに DN42にMacからアクセスできるようになったのでおもろいサイトを発掘していく DN42 nwのDNS まずは以下を登録しよう sudo tee /etc/resolver/dn42 > /dev/null <<'EOF' nameserver 172.20.0.53 timeout 3 EOF DN42のpeeringマップ https://map.dn42/ 俺のASもここに載っておる笑 https://map.dn42/#4242422139
ブログとGitHubから分析する、コンピュータ分野における自分の強みと弱み 自分のブログとGitHubをChatGPTに見てもらい、コンピュータの各分野について、強みと弱みを5段階で評価してもらった。研究で書いたミドルウェアと、その研究に対応する論文の受賞実績も判断材料に含めている。 きっかけは、自己紹介記事の末尾に書いた「もはやコンピュータの分野で学べることはこれ以上ないのではないか」という感覚だった。自分では見えていない分野や理解の穴を洗い出し、今後どういう技術者を目指すか考えたかった。 以下は、その分析をブログ掲載用にまとめたもの。点数そのものより、何を根拠に評価したか、何がまだ分からないか、次に何をできるようになると伸びるかを重視している。 分析対象と評価の前提 分析には、次の資料を使った。 対象 確認した範囲 この資料から分かること ブログ 自己紹介記事から年代順に、サイトマップ上の公開記事164件の本文。短いメモや雛形を含む。コード・設定は評価に関係する箇所を確認 学習の経緯、構築・運用経験、障害の切り分け方、当時の理解 GitHub 公開29リポジトリの一覧・構成。そのうちfork以外18件、fork 11件。主要なリポジトリのソース・テスト・評価プログラムと、一部のコミット履歴を確認 公開されている実装、実験方法、テストの範囲、コードから読み取れる課題 論文・受賞記録 論文の公開情報、APDCM公式の受賞記録・開催案内 研究成果の発表と、研究コミュニティによる評価 主に読んだ公開コードは、The_Middleware、zwidy、gslb-prober、renogy-bt2-module-exporter、c-compiler、atcoder、opt_using_scip_or-toolsなど。全リポジトリの全行を監査したわけではない。 コードのビルド、テスト実行、実機での性能測定は行っていない。 コード上の問題については、実行で再現した不具合と混同しないよう、静的レビュー上の指摘として記載する。仕事上の非公開成果物も評価に含めていない。 また、以下の点を前提とする。 古い記事の誤りが、現在も同じ理解のままであることを意味するとは限らない。 公開された証拠が少ない分野の低得点は、「実力が低い」という断定より、今回確認できた到達度の下限に近い。 リポジトリの所有やコミット名だけでは、共同開発の担当範囲や、各部分を独力で説明できる深さまでは確定できない。 fork元や同梱された外部ライブラリの実装全体を、本人の実績として数えていない。 研究としての貢献、実用システムの運用品質、教材に沿った学習成果は、それぞれ評価する内容が異なる。 コードに対する具体的な指摘では、確認したコミットへのリンクを使った。以後の修正で解消されている可能性がある。 全体像:強みはシステム構築と、研究に基づく性能改善 最も強い領域は、大きく二つある。 一つは、Linux・ネットワーク・アプリケーションをつなぎ、必要なシステムを構築・運用する力。VPN、経路制御、プロキシ、コンテナ、監視まで、複数の層にまたがって問題を追っている。 もう一つは、科学技術データの転送・圧縮・キャッシュを組み合わせ、性能改善の仕組みを研究・実装・評価する力。こちらには公開コードに加え、国際ワークショップでのBest Paper受賞という外部評価がある。 一方、伸ばす余地が大きいのは、並行動作や障害時の正しさを保証し、他人が再現・運用できる形に仕上げる力。テスト経験や実装経験はあるが、公開された複数の成果物に、同期・異常系・再現性に関する課題が見える。 「広く触ってきたため次に学ぶ対象が見えにくい」という感覚は理解できる。ただ、資料からは、専門性を深める余地と、既存の実装をさらに完成させる余地の両方が確認できる。 5段階評価の基準 一般の人との比較ではなく、その分野でどの程度の問題を扱えるかを目安にした。採用試験や資格のような標準化された測定ではなく、公開資料に基づく推定である。 点数 目安 1 入門段階。概念や基本操作を学んでいる 2 基礎を学び、例や資料を参考に実装・実験できる 3 通常の課題を、自分で組み立てて実装・検証できる 4 複雑な課題や研究課題に対し、設計・実装・評価を組み合わせて成果を出せる 5 難しい課題を継続して主導し、成果を他者の利用・指導・分野への貢献につなげられる 4から5の差は、知っている製品名の数より、扱う課題の難しさ、成果の継続性、他者への波及にある。 一度の受賞だけで5を確定することも、公開資料だけで5の能力がないと断定することもできない。 以下の「根拠の厚さ」は点数の精密さを表すものではない。「厚い」は複数の具体的成果があり、「中程度」は経験が確認できるが範囲や現在の深さに不明点があり、「限定的」は資料が少ないことを示す。 分野別の評価 強みの中心となる分野 分野 評価 根拠の厚さ 判断の根拠・現在見える限界 Linuxサーバ構築・運用 4/5 厚い 自宅サーバ運用、systemd、権限、ストレージ、障害調査の蓄積がある。カーネル実装の熟練度とは分けて評価。Linuxの学習記録 ネットワーク・VPN 4/5 厚い NAT、戻り経路、OpenVPN内部経路、FRR・OSPFの実験に加え、zwidyのTUN・TLS通信実装がある。OpenVPNとFRR、zwidy 複数レイヤをまたぐシステム構築 4/5 厚い VPS、VPN、自宅オリジン、プロキシ、DBなどを接続し、用途を実現している。VPNクライアントとDocker 科学技術データのI/O・キャッシュ設計と性能評価 4/5 厚い 多段キャッシュ、先読み、圧縮、転送を組み合わせた実装・評価と、対応する研究の受賞実績がある。カーネル・DB内部など性能全般を一律4とする評価ではない。The_Middleware システム研究の遂行・成果の論文化 4/5 厚い 共同研究による論文発表とAPDCM 2024 Best Paper受賞。継続した研究主導や研究指導の実績は今回の資料では判断できない。公式受賞記録 HTTP・Nginx・リバースプロキシ 4/5 厚い 複数ドメイン、TLS終端、WebSocket、オリジンへの転送を運用している。複数サービスの公開 Docker・コンテナ利用 4/5 厚い Compose、永続化、containerd、Singularity、GPU環境まで利用範囲が広い。コンテナランタイム自体の開発とは区別。コンテナの学習記録 監視・ログ収集基盤 4/5 厚い Prometheus、Grafana、Vector、OpenSearchの構築に加え、機器データ用exporterも実装している。O11y、Renogy exporter 実践経験があり、さらに深められる分野 分野 評価 根拠の厚さ 判断の根拠・現在見える限界 Kubernetes 3/5 中程度 クラスタ、Service、Ingress、Probe、更新・障害調査まで実践。多数のサービスを長期運用する深さは不明。学習記録 IaC・構成管理・CI/CD 3/5 中程度 Ansibleの業務利用や構成管理の経験がある。テスト・配布・ロールバックまで一貫した自動化の公開証拠は限定的。Ansible 可用性・バックアップ設計 3/5 中程度 UPS、別拠点への同期、フェイルオーバ試験まで経験。復元時の整合性、復旧時間、データ損失量の定量化は追加材料が欲しい。ドライブの冗長化 バックエンド・API開発 3/5 厚い REST、WebSocket、DB連携、GSLB制御などの実装経験がある。入力検証・認可・並行更新・互換性まで含めた品質は伸ばせる。API設計、gslb-prober SQL・データベース利用/設計 3/5 中程度 スキーマ、JOIN、集計、MySQL・PostgreSQLの利用経験がある。高度な実行計画分析やトランザクション設計の材料は少なめ。JOINの振り返り HPC・科学技術計算の環境構築 3/5 中程度 Slurm、MPI、GPU、コンテナ、圧縮ライブラリを扱っている。大規模クラスタの管理やMPIアプリ全般の最適化まで4とは判断しない。Slurm C/C++・システムプログラミング 3/5 中程度 ソケット、ライブラリ、CMake、Pythonとのバインディングなどの経験がある。大規模なC/C++製品のメモリ安全性・保守品質は未確認。Pybind Goによるネットワークサービス実装 3/5 中程度 gslb-proberとzwidyで、ネットワークI/O、goroutine、設定・状態管理、メトリクスを実装。完成度は成果物ごとに異なる。GSLBのソース 並行処理の実装 3/5 中程度 Pythonの先読みスレッド・ワーカープール、Goの送受信・監視処理の経験がある。安全な同期や終了処理の保証が次の課題。ClientAPI、zwidyクライアント TLS・証明書・認証基盤の利用 3/5 中程度 OpenSSL、SAN、mTLS、Athenzの学習・実践とTLS接続テストがある。暗号理論やシステム全体の安全性評価は別途必要。TLSの記事 機器連携・データ収集 3/5 中程度 BLE機器への要求・応答とPrometheusへの出力を実装。組み込みファームウェア全般の評価ではない。exporter.py LLM・RAG・エージェントの組み込み 3/5 中程度 自前推論、ベクトルDB、Gmail・Slack連携などを実践。精度、失敗率、権限、安全性の体系的評価は確認材料が少ない。RAG アルゴリズム・データ構造 3/5 中程度 競プロコードの探索・順序付き集合、自作DPとソルバーの比較を確認。問題ファイルの存在だけで正答や競技水準は保証できない。AtCoderのコード、ナップサックの照合 基礎経験はあるが、公開資料上は厚みが足りない分野 分野 評価 根拠の厚さ 判断の根拠・現在見える限界 DBエンジン・分散アルゴリズムの実装 2/5 限定的 バッファプールやRaftの学習記録はある。完成した自作エンジンと、再起動・通信断・リーダー交代時の検証は確認できない。分散システム テスト・品質保証の体系化 2/5 中程度 単体テスト、TLS接続テスト、結果照合はある。一方、異常系・システム全体のテスト・再現可能なビルドを継続して整備した証拠は薄い。テスト未経験という意味ではない フロントエンド・UI/UX 2/5 限定的 HTML/CSS/JSの経験はある。複雑な状態管理、アクセシビリティ、ユーザー評価までの実践は未確認。React 機械学習・予測モデルの評価 2/5 限定的 Keras、scikit-learn、予測モデルの経験はある。汎化性能、データ漏洩、モデル選択の体系的検証は資料が少ない。システムの性能実験における統計集計とは分けて評価。機械学習 コンパイラ 2/5 中程度 教材に沿い、数値・加減算のトークン化、アセンブリ出力、簡単なテストを実装。型・関数・最適化などを備えた処理系の実績ではない。学習用コンパイラ AWS/GCPのクラウド設計、モバイル開発、組み込みファームウェア、カーネル・ドライバ開発、暗号アルゴリズムの設計などは、今回の資料では採点する材料が足りない。未評価を一律に1点として扱うことはしない。 ...
背景 最近、Docker Compose で .env を使っていて「あれ?なんで変数が読み込まれないんだ?」という問題に直面しました。結論から言うと、Docker Compose は .env を自動で読み込むが、コンテナの環境変数としては勝手に渡さないという、なかなか紛らわしい仕様によるものでした。 この記事では、自分がハマったポイントと、それによって得られた正しい理解を共有します。 結論だけ知りたい人向け .env ファイルは Compose ファイルで ${VAR} の形で参照されたときのみ自動で読み込まれる。 ただし、.env の内容は自動的にコンテナの環境変数として渡されない。 コンテナに渡したいなら、env_file: または environment: を明示的に使う必要がある。 ❌ 勘違いしていたこと 「.env は docker-compose.yaml と同じディレクトリに置けば、何もせずともコンテナに環境変数として渡される」 実際に .env に以下のような内容を記述していました: hogehoge=hoge hoge=foo ところが、Compose を起動してもコンテナ内にこれらの変数は存在しませんでした。 原因:.env はあくまで Compose ファイル用のテンプレート変数 例えば以下のように docker-compose.yaml 内で ${VAR} を使えば、それは .env から自動で補完されます: ✅ コンテナに環境変数を渡すには? 方法は2つ: env_file: を使う(.envファイルをそのまま指定) services: web: image: myapp env_file: - .env この場合、.env の中身がまるっとコンテナに渡されます。 environment: を使う(必要な変数だけ) services: web: image: myapp environment: - P_ARS=${P_ARS} - INET_ID=${INET_ID} このように書けば、Compose 内で .env の変数を参照して環境変数として渡せます。 ...
プロが使いがちなシェルです まあ自分はこだわりとかなかったので、bashを使っていたのですが、先輩たちのターミナル裁きを見ていると、なんかすごいんですよね。 queryとか出して過去のコマンドを一発で実行したり、tmuxとかで複数立ち上げたり、まあとにかくすごい。 でね、まあzshというのを使っているっポイのですわ。 ということで、zshのについていろいろ書いていこうと思います。 How to install sudo apt install zsh chsh -s $(which zsh) sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" (oh my zshのインストール) 色々調べていい感じにカスタマイズしてください
家事 8/13 R 風呂掃除 皿洗い T 昼ごはん 洗濯 コンロ掃除 8/14 R T 朝ごはん 昼ごはん
プライベートIPアドレス Class A: 10.0.0.0 to 10.255.255.255 This range supports a large number of hosts and is often used in very large networks. Class B: 172.16.0.0 to 172.31.255.255 This range is commonly used in medium-sized networks. Class C: 192.168.0.0 to 192.168.255.255 This range is typically used for smaller networks, like home or small business networks. 合計いくつあるのでしょうか? class Aは2^24くらいいけね?つまり? >>> 2**24 16777216 はい、classBは? >>> 16*2**16 1048576 classCは? >>> 2**16 65536 グローバルIPアドレス はい、グローバルIPね。JPNICとか、そのへんによって管理されているやつね。 2^32個ありますね、はい。そこから上のクラスのを抜いていきます 2**32 - 2**24 - 16*2**16 - 2**16 =4277075968 それでも40億箱しているって話ね。しかしだよ。これすごく重要なこと言います。実はまだグローバルに割り当てられていないIPが存在するんです。知ってましたか??(初耳) ...
「コンピュータ」を学ぶに当たり、自分がたどってきた過程 コンピュータに強くひかれてから6年弱(2018/10 - 2024/04)が経過したわけだが。 自分は、ほぼ手探り状態でコンピュータの知識を身に着けていった。 今となっては知らなくてもよかったと思う知識もおおい。しかし、「ランダムサーチ」的な勉強によって「点」で身に着けていった知識が、少しづつ「線」でつながっていき、結果的にコンピュータ分野における自分の視野を広げてくれているとも思う。 自分がコンピュータを学ぶ時にどんな過程を辿ってきたか、まあ、簡単に書いていきたいと思う。 ただの日記になってるとこもある。 そして、結構リアルタイムで追記しているので、自分の思考がだんだんと変遷していくのもわかる。 これがまた面白い。 2018/04 サーバーって何?ブラウザって目の前にあるコンピュータのなかに入ってる辞書みたいなものじゃないの?インターネットって、インターネットエクスプローラのことじゃないの?って思ってたところからの成長過程 2018/5 授業でcをやる。正直何が楽しいのかわからなかった。printf()でもじが出力できます。。うんたらかんたら、、、で? でも、レポートとか早くまとめられるようにタイピングは速くなりたかった。適当にwordで日記をつけたりしてた。 2018/08 たけしに勧められ、タイピングバラエティーを始める。 2018/10 なんか、大学って俺が思ってたところと違うな、と思い始める。 機械系に入ったのは、バリバリ機械をいじれるからだと思ってたのに、なんか学校でやるのは線形代数とか、微分とか、は?って感じだった。僕は実用的なことが好きだった。 んで、その時とってた授業で唯一実用的だなって思ったのが、前期はなかったcプログラミングの授業。最近の機械は制御でもcが使われてるらしいし、ちゃんと聞いて損はないなって思った。 ##### 2018/11 cの授業が楽しくてはまっていった(そのC言語の授業を担当していた先生が好きで、せっかくなので授業も頑張ろとおもい、それに付随してコンピュータも好きになったと思う。自分にしては珍しく、教室の一番前で授業を受けていた。3年生の時この先生の研究室に入ることになるが、入った年に別の大学に移ってしまったのは本当に残念なことである。)。最終的には7並べのゲームを作るらしい、ということでやる気が出た。 自分のノートpcにMingwとか入れた。windows用のcコンパイラだね。 この時はパスって概念もわからなかったし、コマンドプロンプト上でコンパイルできた時はかなりうれしかった。 ##### 2019/01 とりあえずpc極めたいならデスクトップ買うしかなくね?と思って、ドスパラでで現在も愛用しているbtoのpcを買う。ちなみに、一代目にBTOを購入することにしたのは非常にいい選択だったと思う。すぐ動くけど、拡張性にも優れているからね。 2019/02 春休み。なんか、せっかくデスクトップ買ったのにどうやって活用するのかわからない(笑) うーん、デスクトップ買う意味なかったか?(笑)って思ってるうちに、まあとりあえずネットワークについて学ぼう、と思い図書館へ足を運ぶようになる。 このころからマジで図書館にめっちゃ行くようになる。 パソコンに触れ始めた人って結構ハッカーとかにあこがれること多いと思うんだよね(笑)俺もそうだった。んで、最初に借りた本が『ハッカーの教科書』 これ、ネットワークについて何も知らない人が読むものではありませんでした(笑)ARP?ポート?SSH。。。なにそれまったくわからんわ。。。 とか思ってるうちに春休みが終わった。この年は厳冬期の聖岳に行って凍傷になりました。でもマジで楽しかったー。 2019/4 しんがっき。とりあえず、プロコン始めるか!って言ってプロコン始めた。こっから2020/2くらいまで、ほぼ毎週出た。 C言語で出続け、アルゴリズムとデータ構造とかもほとんどわからなかったから、ぶっちゃけレートは全然上がらなかった。が、c言語の基礎は学べたし、後々c++を習得することにつながったと思っている。今思うと、キューもマップも使わずにcで出続けるってかなり無謀だったな… 2019/5 プロコンに興じていたが、なんか、これって結局誰かの掌の上で踊らされてね?って思って、再びハッカーの教科書を読み始めた。しかし、やっぱり何もわからん。。。 唯一わかったのが、kali linuxというosにはハッキングツールがたくさん入っていて、なんかかっこいいといういこと。で、このころ、せっかく買ったデスクトップがマジでただ置いてあっただけになりつつあったので、 こいつ、windows入ってるけど、kali linux新しくいれね?って思って、どうやって入れるのかいろいろ調べていたら、なんとデュアルブートというものがあるじゃない。 dual bootは一つのpcに二つのosが入ってる状態のこと。その当時、結構パソコンに詳しくなってきて、「完全に理化した」状態になっていたけど、まー今の俺から見るとその当時の俺なんてぺーぺーで、kali linuxをdual bootできるようにするまでも結構時間かかったねー。 しかし、ミスったらwindowsが消える可能性もあったが、結構頑張ってとりあえずkali linuxを入れることに成功した。よくあきらめなかったぞ! 2019/7 頑張ってハッカーの学校を読み進めた。理解できた概念は、ポート、ipアドレス、ドメイン、など。 そして、nmapというポートスキャンツールの存在を知った。 こいつにはまった。マジで。ネットでnmapと検索すると、絶対にwanでポートスキャンしちゃいけないとか書いてあるし、中二ごころをくすぐられたね。あーおれハッカーになったんだと錯覚した。実際は全然大したことなく「script kiddy」にも達していなかっただろう。しかし非常に楽しかった。kaliを使って、lan内で、wifiでつながってるノートpcに何回もポートスキャンかけて遊んだ。起きて一番最初にすることは、nmapだった。 でもだんだん出てくるドーパミンの量も減っていくんですよね。。。そして、だんだんと飽きてくるんですねー。ノートpcにnmapをかけるのも。で、やってしまったんですよ。出来心で。 あのg社のdnsサーバにnmapをかけた。 普通のnmapは5秒くらいでスキャンが終わるんですけど、その時は20秒くらいたっても終わらず、なんかだんだん焦ってきて、 とりあえず、ctrl+cでnmapプロセスを停止。んで、ブラウザでnmap についてしらべようとしたら、いつまでたっても検索できなくなったんだよね。 ????ってなって、だんだん焦ってきて、しばらくたったら回復して検索できるようになった。で、どのサイトで見ても、他人のサーバーにnmapしたら犯罪って書いてあったんだよね。 あ、大学退学になるわ、俺の人生終わったわ、っておもって2日くらいびくびくしてた。眠れなかったね。でも結局あれから5年以上たってるけど、G社からやばい手紙とかは来ていないので大丈夫そう。被害妄想が激しかった。 2019/8 10月実施の基本情報技術者試験のための勉強をした。それと、ハッカーの学校のレベルが高すぎるかなと思い、代わりにTcp/ipの絵本を読んだ。こっちはかなり基本から書いてあって読みやすかった。 このころ、資格の勉強って実用的じゃなくて、ほんと資格のための勉強って感じだな、学校の勉強みたいだなて思ったね。でも今思うと、そこで基礎を鍛えられて気もする。まあ、理論と実践はバランスが大事ですよね。 2019/9 ラズパイというものがあると知った。格安コンピュータ6000円?!。しかもosはlinuxだと。即買いしましたね。 パソコン技術を爆上げしてくれるきっかけになったのはやっぱりラズパイ購入だと今でも思ってる。 まずCLIの基礎についてかなり勉強できた。そして、LINUXについて勉強した。 そして、sshを学んだ。生まれて初めて、ネットワークでパソコンがつながっていることを実感した。firelilyから、ラズパイにssh成功した時は震えた。これが「通信」なのか、とね。 朝起きてから最初にやることはsshになった。しかし、これにも飽きて次に進むわけです。 ...