研究会

機械学習、データベース、分散システム、その他技術的なことを書く研究会です

フリーランス 2 年目の振り返り

はじめに 今年はフリーランスとしては 2 年目になる年でした。 2 年目もなんとかフリーランスのエンジニアとしてやっていくことができたので、去年と同様にこの 1 年を振り返ってみようと思います。 実績 今年は 5 社と契約し、5 つのプロジェクトに携わりま…

フリーランスになって 1 年経ったので振り返り

はじめに 私は 2021 年の初めに前職を退職してフリーランスのエンジニアになりました。 そろそろフリーランスになってちょうど 1 年経つので、この 1 年間の活動をまとめつつ、その中で感じたよかったこと・よくなかったことを振り返ってみようと思います。 …

30 年前の Python 0.9.1 をコンパイルして動かしてみた

この記事は はんなりPython Advent Calendar 2020 の 16 日目の記事です。 関西でフリーランスのエンジニアをやっている @tsujio です。データ分析とか分析基盤のお仕事を承っています。 今日のインターネットには Python の最新情報がたくさん流れています…

Ceph で使われている CRUSH アルゴリズムの論文を読んだのでメモ

この記事は Ceph でオブジェクトの配置先を決定するのに使われている CRUSH アルゴリズムの論文を読んで内容を自分向けにまとめたものです。 CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data 翻訳ではないので私の解釈が入ったり…

Win10 の WSL2 に Ubuntu をインストールして Docker 上の minikube で Flask アプリを Hello World

Kubernetes を勉強しようと思って手元の Windows に minikube の環境を構築したら、その過程でいろいろなエラーに遭遇したので解決方法を添えて手順をまとめた。 構築した環境は手元のノート PC (Windows 10 Home 64bit) に WSL2 をインストールし、それで U…

ニューラルネットワークの実装

はじめに shop.ohmsha.co.jp わかりやすいパターン認識の第 3 章でニューラルネットワークの誤差逆伝播法が説明されていたので実装してみた。 コード コードはこんな感じ。scikit-learn の make_moons 関数で生成したデータを学習させてみた。 from matplotl…

Widrow-Hoff の学習規則でクラス分類

はじめに shop.ohmsha.co.jp わかりやすいパターン認識の第 3 章で Widrow-Hoff の学習規則が説明されていたので実装してみた。 コード コードはこんな感じ。それぞれ 2 次元正規分布に従う 2 クラスのパターンで学習してみた。パターンはわざとクラス間で一…

パーセプトロンで多クラスの分類

はじめに shop.ohmsha.co.jp わかりやすいパターン認識の第 2 章で多クラスを分類するパーセプトロンが説明されていたので実装してみた。 学習データは パーセプトロンで Iris データセットの 2 クラス分類 - 研究会 の時のように Iris データセットを使おう…

パーセプトロンで Iris データセットの 2 クラス分類

はじめに shop.ohmsha.co.jp わかりやすいパターン認識の第 2 章でパーセプトロンが説明されていたので実装してみた。 学習データは scikit-learn が提供している Iris データセットを使った。 Iris (アヤメ) データセットは Setosa, Versicolour, Virginica…

Nearest Neighbor 法で MNIST データセットの分類

はじめに shop.ohmsha.co.jp わかりやすいパターン認識の第 1 章で k-NN 法が説明されていたので、MNIST データセットを分類してみる。 コード コードは以下の通り。特徴ベクトルとしてはピクセルごとの濃淡値をそのまま使い、距離尺度としてはユークリッド…

MNIST データセットの読み込み方

ML

機械学習を学習する上で学習データを準備するのに苦労する場面がよくある。 今回は MNIST データセットと呼ばれる、機械学習のベンチマークでよく使われるデータセットの使い方をまとめる。 MNIST データセット MNIST データセット は手書き数字文字データを…

人工知能を初めから学びなおそうと思った

最近、二十代も終盤に差し掛かり、技術者として何か一本これというスキルを得たいと思い始めている。 世間では AI、コンテナ、ブロックチェーン、ドローン…等々、華やかな話題で賑わっているが、さて自分はどのような分野に興味があるだろうか。 これまでの…

Freenet のプラグインを作ろう: HelloWorld プラグインの作成

はじめに 最近 Freenet のプラグインを書く必要に迫られ情報収集をしている。しかし開発に当たって必要な情報が英語でも日本語でも纏まっていない印象なのでここに記しておく。 Freenet はインターネット検閲に対抗するため匿名でのコミュニケーションを実現…

WebRTC を使った P2P ファイル共有ソフトは違法か

概要 WebRTC を使った P2P ファイル共有アプリケーションを公開することは果たして著作権的に違法なのかどうかというお話です。 ※ 私は法律全般に関して素人です。本記事はそれを踏まえてお読みください。 詳細 WebRTC によってお手軽に Web ブラウザー間で …

P2P の視点で見たポータブル Web アプリケーション

概要 ポータブル Web アプリケーションと P2P アプリケーションの相性についてのお話です。 詳細 先週くらいに Heroku Button という Heroku へのデプロイを簡単にするツールが発表されました。Heroku Button により GitHub で公開しているアプリケーション…

Heroku Button で webrtc-bbs を容易にデプロイできるようにした

概要 Heroku Button という便利ツールが提供されるようになったので P2P 匿名掲示板 webrtc-bbs をそれに対応させてみました。 詳細 Heroku Button というツールが Heroku のブログで発表されています。 Heroku Button に自分の GitHub 上のプロジェクトを対…

P2P ファイル共有の発展の鍵は経済学にある

未開社会の経済 アマゾン奥地に見られる未開社会では人々は狩猟により得られた獲物を分け合い生活している。食糧の分配は狩りで獲物を仕留められなかった者や狩りに出なかった者を問わず皆平等に行われる。しかし狩りは常に危険が伴うため、なるべく狩りに出…

PeerJS でコネクションプールを実装した webrtc-connectionpool を公開しました

概要 WebRTC の定番ライブラリ PeerJS を使ってコネクションプールを実装した webrtc-connectionpool を公開しました。 tsujio/webrtc-connectionpool - GitHub 詳細 WebRTC のデータチャンネルはコネクション指向の通信インターフェースであり、コネクショ…

P2P 匿名掲示板 webrtc-bbs で伝えたいこと

概要 先日 WebRTC を用いた P2P 型分散匿名掲示板 webrtc-bbs を公開しましたが、これについて私が思っていること、伝えたいことを文章の形で表現してみます。 P2P の悪いイメージ Peer-to-Peer (P2P) といえばまず思いつくのがファイル共有ソフトです。P2P …

WebRTC による P2P 型分散匿名掲示板 webrtc-bbs を公開しました

概要 WebRTC を利用した P2P ネットワーク上で動作する分散型匿名掲示板システム webrtc-bbs を開発しています。 tsujio/webrtc-bbs - GitHub また、テストとして現在 Heroku にデプロイしています。 webrtc-bbs.herokuapp.com 詳細 WebRTC とはサーバーを介…

WebRTC でカメラからの映像を多段中継して配信するサンプル

概要 WebRTC を用い、カメラからの映像を多段中継して配信するサンプルを書いてみました。 tsujio / webrtc-relay.html - Gist 詳細 WebRTC はサーバーを介さない P2P 通信を Web ブラウザー間で行うことができます。 さらにカメラやマイクから取得したビデ…

Immutable Infrastructure はプロセスとして扱うインフラだった

概要 最近話題の Immutable Infrastructure ですが、一体何者だろうと考えたところ「インフラをプロセスのように扱う」ことだという結論に至りました。 Immutable Infrastructure Immutable Infrastructure とは昨今話題となっているサーバーインフラについ…

webrtc-chord のバージョン 1.0.0 をリリースしました

概要 以前公開した WebRTC による Chord の実装 webrtc-chord のバージョン 1.0.0 をリリースしました。 tsujio/webrtc-chord - GitHub 詳細 WebRTC で DHT の一種である Chord を実装した webrtc-chord を公開していましたが、この度めでたくバージョン 1.0…

Node.js で WebRTC を試せる Docker イメージを公開しました

概要 ブラウザー間リアルタイムコミュニケーションを実現する WebRTC の機能を Node.js で使えるようにするプロジェクト node-webrtc をすぐに試せる Docker イメージを Docker Hub で公開しました。 tsujio/node-webrtc - Docker Hub 詳細 WebRTC はブラウ…

webrtc-chord を利用した分散型の学術論文検索エンジン Scholar Ninja の紹介

概要 以前公開した WebRTC を用いた Chord 実装である webrtc-chord を利用した分散型の学術論文検索エンジン Scholar Ninja を開発したという知らせを開発者の方から頂いたのでその紹介記事です。 An open distributed search engine for science Scholar N…

PeerServer の分散構成

概要 WebRTC の定番ライブラリの一つである PeerJS でシグナリングサーバーとして利用される PeerServer を分散構成に対応させました。 tsujio/peerjs-server at distributed-store - GitHub 詳細 WebRTC では相手と通信を始めるために SDP や ICE メッセー…

WebRTC で動く Chord DHT の実装 webrtc-chord を公開しました

概要 分散ハッシュテーブルの実装の一つである Chord を WebRTC を用いて実装しました。 tsujio/webrtc-chord - GitHub Chord とは Chord は分散ハッシュテーブル (DHT: Distributed Hash Table) の実装の一つです。 分散ハッシュテーブルはその名の通りハッ…