Panda Noir

JavaScript の限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。

ポートフォリオ

就活しているのでブログにもポートフォリオを書いておきます。

自己紹介

名前はクロパンダです。

現在は東北大学の工学部で情報工学を学んでいます。学部4年生なので、まだ研究は始まっていません。

趣味はプログラミングと合気道です。プログラミングは中学生から、合気道は大学から始めました。

主にJavaScriptを書いています。今までに作ったもの・書いたものとして以下が挙げられます。

制作物

  • unitaryjs 宣言的に書けるCanvasライブラリ
  • Paper Memo ブラウザ上で紙のUIを再現するメモサービス
  • 炎上

ほかにもあるのでサイトの制作物一覧をご覧ください。

unitaryjs

HTML5のCanvasは「線を引く」「円を描く」のような命令ベースでプログラムを書かなければなりません。これではコードを読んでもどういう図形を書こうとしているのかがわかりません。そこで、「四角形を描く」「多角形を描く」「5本の線分で星を描く」といった風に宣言的に書けるようにするライブラリを作りました。Qiitaに投稿したところ、52いいねを頂けました。

Paper Memo

ページ上の任意の箇所に入力フォームが設置できるサービスです。テキストファイルは1次元方向(横方向)にしか文字を設置できず、紙のような自由度がなくて使いづらいと思ったのが動機でつくりました。紙のような自由度、キーボードによる入力のしやすさを組み合わせたサービスです。

技術的に(自分としては)新しいことにたくさん取り組みました。たとえば、バックエンドでGoを使い、GraphQLのリクエストをさばいています。また、今までRDBMSしか触ってこなかったのでNoSQLのMongoDBを使ってみました。

ほかにもReact + TypeScript + Redux + immerでフロントエンドを書いたり、メールサーバーを建ててアクティベートメールを送信したり、ソーシャルログインを実装したり(これはまだ未完成)といったことをしました。

これは「新技術を試してみたい」と「こういうサービスを作りたい」というタイミングがマッチして作ったサービスです。サービスをつくるときは「新技術を試したい」という動機で作ることが多いのでめずらしいパターンでした。

炎上

これはWebSocketの習作として作ったミニゲームです。アクセスしているユーザーは「火を起こす」か「薪を足す」ことができます。そして、アクセスしている人みんなで火を絶やさず燃やし続けようというゲームです。誰かが「火を起こす」か「薪を足」したらサーバーから通知が送信され、画面が更新されます。

こっちは「WebSocketを試したい!」という理由だけでつくりました。「薪を燃やしてぇッッ!!」みたいな動機はありません。上でも書きましたが、「新技術を試したい」という動機でサービスを作ることが多く、これはその最たる例です。