プロジェクト

フリーランスプロジェクト及び趣味のプロジェクトの一覧

フリーランス

ライデン大学卒業論文の共同採点・播信のウェブアプリ

ライデン大学卒業論文の共同採点・播信のウェブアプリ

Nuxt/Vueで書いた卒業論文の播信・採点を共同で行うためのウェブアプリケーションです。   指導教員情報の入力・仮審査の透かし・成績通知書PDFの生成などといった論文播信における過程を自動化します。  もともとはライデン大学のソフトウェアエンジニアリングコースのために開発されましたが、そのプロトタイプは評価が高かったため、後さらに開発を依頼されました。

  • Vue
  • Nuxt
  • Python
  • Flask
  • MongoDB
  • JavaScript
  • Pytest
  • Reportlab
日本言語学音声研究ツール

日本言語学音声研究ツール

被験者に音声断片を聞かせる言語実験を行うためのウェブアプリケーションです。 一般的な調査用ウェブサイトとは異なり、被験者が音声を1回しか聞かないような調査等に向けて開発してきました。 参加者が入力しなければならないデータを最小限にするために、条件ロジックのフォームを備えています。 他に、被験者の統計を収集しCSVまたはExcel形式でエクスポートもできます。ウェブサイトのフロントエンドはVueで、バックエンドはFlaskです。

  • Vue
  • Python
  • Flask
  • MongoDB
個人サイト(Laarman教授)

個人サイト(Laarman教授)

ライデン大学教授Alfons Laarmanの個人サイトです。Svelteで書かれ、SvelteKitで静的に生成されています。 Markdownファイルから生成されたニュース項目と、BibTexファイルから生成された出版物の概要が主な機能です。

  • Svelte
  • JavaScript

趣味・コース

LDPFUSE

LDPFUSE

LDPFUSEとは、ファイルシステムを完全にユーザー空間で動作するためのLinux FUSEに代わるものです。 C言語のヘッダオンリーライブラリであり、カスタムなファイルシステムの開発をより簡単にします。 その後、実際にファイルシステムを使うには LD_PRELOADのトリック(英語)を使います。プロセス内に埋め込まれるためコンテキストスイッチは不要で、普通のFUSEより格段にパフォーマンスが向上します。 詳しくはリポ自体をご覧ください。

  • C
DBDライブゲーム情報

DBDライブゲーム情報

人気ゲームのデッド・バイ・デイライト(DBD)用のTwitch.tvの拡張機能です。現在のゲームに使われている技名とその説明を表示するインタラクティブなUIを視聴者に提供します。 拡張機能は、配信者用・モデレーター用・視聴者用の3つのオーバレイで成り立っています。Twitchによって検討され承認されましたが、多忙のため、開発を一旦中止します。

  • React
  • WebSocket
  • ExpressJS
  • TypeScript
CyberSpies

CyberSpies

CyberSpiesとは、人気ゲームAmong Usに似ているようなゲームを現実世界で複数の人でプレイできるモバイル用のウェブアプリケーションです。 ゲームのロケーション(例:タスク、ミーティングルーム)を代表するNFCタグをWeb NFC APIを通じてスキャンしてプレイする感じです。 また、プレイヤー自身もNFCタグを肩につけ、ゲーム中に互いにスキャンするとインタラクションができます。 Svelteのフロントエンドでは、ロビーを作成したりQRコードで参加したり、ゲーム内情報を表示したり携帯電話のNFCスキャナーを使用したりすることができます。 ExpressJSバックエンドは、ウェブソケットを介してゲーム内の情報を全プレイヤーにリアルタイム同期させ、ゲーム内のタイマーを強制します。

  • Svelte
  • ExpressJS
  • WebSockets
  • JavaScript
ゲームボーイアドバンスエミュレーター

ゲームボーイアドバンスエミュレーター

Rust言語で作ったゲームボーイアドバンスのエミュレーターです。まだ開発中でゲームを実行できませんが、Armv4t命令セットの多くの命令のデコード・実行はできます。

  • Rust
サイドチャンネル分析用ECDSA実装

サイドチャンネル分析用ECDSA実装

ChipWhisperer-Liteで公開鍵の生成・ 秘密鍵によるメッセージの署名のためのECDSAアルゴリズムの教育用の実装です。 サイドチャネルアタックの脆弱性がわざと含まれているため、サイドチャンネル分析の勉強のためになります。

  • C
BoterBotTS

BoterBotTS

TypeScriptで書かれている、MongoDBを使ったモジュール式のDiscordボットで、機能は次のようです。 YouTube動画からサウンドトラックの保存、保存されたサウンドクリップをFFMPEGを通じて元と違うスピードやピッチで再生、友達による言葉を保存・表示、ロシアン・ルーレット (参加希望のユーザーがボットのメッセージにリアクションを残してから、1人がランダムで選ばれてチャンネルからキックされます。)

  • TypeScript
  • NodeJS
  • MongoDB
  • Mongoose
  • FFMPEG
  • Docker
CMinusコンパイラ

CMinusコンパイラ

Rustで書かれた最小限のCライクな言語のコンパイラです。 デッドコード削除、演算子強度低減、ヌルシーケンス削除、定数畳み込みなどという様々な最適化が実装されています。

  • Rust
© 2024 Sjors Holtrop