blog.takurinton.dev

記事一覧

2022年振り返り

2022-12-31

こんにちは 今年は散々な年だったため書かなくて良いかなと思っていましたが、こういうのは後から見てみてこういうのもあったなーと振り返るものな気がするので一応書いておきます。 去年の振り返りはこちらです。 去年に倣って GitHub の草を載せるとこんな感じです、去年と比べるとあまりコードを書かなかった 1 年だったように感じます。 ざっくり時系列 1 月 卒論の提出期日を間違えてました。 とよ...

SHA-256 algorithm

2022-10-10

こんにちは どうも、僕です。今週猫がきます。 猫の名前について、友人と雑談をしていて、 名前なんて記号なんだから呼びやすくて聞こえが良ければなんでもいいよ と言われたので、記号だなんてそんなのハッシュではないかと思ったと同時に、ハッシュという名前はとてもいいなと思いました。ハッシュという名前にしっくりきたので名前はハッシュにしようと思ったものの、筆者はコンピュータサイエンスの学部を出ているのに...

wmr の prerender 時に明示的な fetch の定義が不要になる

2022-09-26

こんにちは どうも、僕です。 先日、ブログを新しくしました。=> ブログを SSG にしたwmr の prerender mode を使って SSG にしましたが、自分の実装したような wmr の prerender で .md ファイルを使ったブログを書くようなパターンだと、prerender 関数の中で fetch API をオーバーライドしてあげないとプロダクションビルドをする際に f...

ブログをSSGにした

2022-08-14

こんにちは どうも、僕です。今回はブログを SSG にしてみたという話をします。年始に SSR をするような構成にしたばかりですが、色々あって(後述)作り替えてみました。 SSR にする記事は以下からどうぞ。 ブログを作り直した Rust で GraphQL server を書いてみた このブログのソースコードはこちらtakurinton/ssg-blog なぜ作り直したか そもそもなぜ作り直...

Svelte と SPA

2022-01-14

こんにちは どうも、僕です。最近、Svelte が市民権を獲得してきているようで、フロントエンド開発において、選択肢に入ってくる機会が増えてきたと思います。また、Twitter などでも、React よりも Svelte!のような内容のものや、Svelte を勉強してみるといった内容のものが増えてきたように感じます。それ自体はいいことであり、Svelte が選択肢に入ってくることは面白いとは思うの...

2021年振り返り

2021-12-29

こんにちは どうも、僕です。2021年もそろそろ終わります。2021年は色々なことがありましたが、簡単にまとめると、機会と出逢いに恵まれた1年だったと思っています。さまざまな優秀なエンジニアの方々と仕事をさせていただいたり、コミュニティへ招待していただいたりをしていました。自分自身の技術的な成長があったかどうかは微妙ですが、エンジニアとして少しずつ地に足がついてきた実感はあります。来年も頑張って行...

結合時のアルゴリズム

2021-12-18

こんにちは どうも、僕です。SQL アンチパターンを読んでいて、「外部結合をすると処理のコストが指数関数的に上がっていってしまいます」との記述があり、よくわからなかったので調べました。 JOIN アルゴリズム そもそも、 SQL の JOIN には、以下の3種類のアルゴリズムが使用されることが多いです。オラクルと、postges には全部使用されていますが、MySQL には nested loo...

MySQL の FULLTEXT とは

2021-11-16

こんにちは どうも、僕です。MySQL(MariaDB)に搭載されてる最強な検索、FULLITEXT INDEX について書きます。前回のブログ で、検索をアプリケーション側で実装する方法について書きましたが、今回はそれのデータベース側からのアプローチです。このレイヤーでデータを操作するのは賛否が分かれる部分だとは思いますが、簡単に実装してみたのでやっていきます。 そもそも何 インデックスです。全...

検索を作る

2021-11-15

こんにちは どうも、僕です。検索エンジンを自作しようとしてうまくは行きましたが、想定していた規模には耐えることができなかったという内容の記事です。実際、パフォーマンスにこだわると厳しい点が多かったり、検索結果が帰ってこなかったりしてだいぶしんどい実装になってしまいました。もっとうまくやる方法があったら教えてください。 今回の手法と想定する規模 今回は、転置インデックスを作成して戦います。転置イ...

forwardRef を習得した

2021-11-01

こんにちは どうも、僕です。最近色々あって、Material UI のコードを読んでいるのですが、forwardRef がさまざまな箇所で出てきて理解できないと辛いので勉強しました。 ref とは ref とは、簡単に言うと、dom であれば element、それ以外の要素であればその class のインスタンスに対してアタッチするためのものです。class component だと、要素 +...

JPHACKS に出場した

2021-10-30

こんにちは どうも、僕です。人生初ハッカソン、出場しました。総合すると、毎日忙しかったものの、とても楽しくコードを書くことができたと思います。また、一緒に出てくれたメンバーや、今回のハッカソンに出場していた皆さん、また、開催してくれた方々には感謝しかありません、ありがとうございました。 作品 https://github.com/jphacks/F_2111 チームメンバー チームメンバーは、...

addEventListener の第3引数

2021-10-13

こんにちは どうも、僕です。addEventListener の第3引数って知ってますか。僕は知りませんでした。いや、厳密に言うと、存在は知ってたけど理解してませんでした。理解するために、DOMのイベントフローとともに見ていきたいと思います。 イベントフローとは まずはイベントフローとは何かについて考えます。イベントフローとは、DOM に対するイベントの委任(伝播)のことで、例えば以下のような...

React のメモ化

2021-10-13

こんにちは どうも、僕です。プレイドのインターンで人生で初めて業務でフロントエンドを書いてから3ヶ月半が経ちました。プレイドでは Vue と Svelte を書いていて、最後の2週間くらいは React を書いていましたが、まだまだよくわからない点が多く、特に hooks 周りを自分はしっかり理解してませんでした。プレイドでは Vue と Svelte を書いていて、最後の2週間くらいは Reac...

プレイドのインターン終了した

2021-09-30

こんにちは どうも、僕です。会社のブログ にも書いたのですが、プレイドのインターンを終了しました。理由としては、これから色々忙しくなるからであって、別にクビになったわけではないです。ここでは、なんというか、こんなこと感じたみたいなことを書きます。会社のブログは事実ベース、こっちのブログは感情ベースです。 あのブログに関して あのブログ、実は1ヶ月前くらいから書いていて、めちゃくちゃ時間かけました。...

自サイトのアクセス可視化2

2021-09-25

こんにちは どうも、僕です。この記事は 自サイトのアクセス可視化 の続きです。前回は AST をこねくり回して、form をいじる実装をしました。今回はそのアクセスごとの詳細画面を作成し、そこにグラフをつけて見やすくするみたいなことをしてみました。まだまだきれいではないのですが、これからきれいになります、きっと。 概要 前回、ちょっとだけ作っていた Detail.tsx を拡張します。詳細ページで...

自サイトのアクセス可視化

2021-09-23

こんにちは どうも、僕です。1ヶ月ほど前からポートフォリオとブログのトラッキングを始めて、だいぶデータが溜まってきたのでどうしようかなと思っていました。ちょうど、昨日(9月23日)は祝日で、数日前に研究の中間発表も終わり(学部の研究発表なんてたかが知れてるだろという声はさておき)、たまには休日っぽいことでもするかと思っていたので、ポートフォリオとブログのログを可視化するというコードを書いてみました...

GraphQL の parse エディタ

2021-09-20

こんにちは どうも、僕です。シルバーウィークなのでこれまで書きたくても時間がなくて書けなかった記事をどんどん投下しています。今回は、最近作ってる GraphQL の DocumentNode を parse して作ったエディタから動的に query を生成する画面のプロトコーディングをしたのでそれを簡単にまとめます。 概要 このツイートの感じです。 https://twitter.com/taku...

Preact の change event

2021-09-19

こんにちは どうも、僕です。先日、Preact を使用して、簡単なアプリケーションのプロトコーディングをしていて、input タグのイベントハンドラを呼ぼうとしたらうまく動かくてハマりました。 以下のように定義していたのですが、結論としては、onChange ではなくて onInput を使わなければならないようです。 const HogeComponent = (): JSX.Element...

GraphQL の print と parse

2021-09-19

こんにちは どうも、僕です。最近、業務や趣味で GraphQL の AST や query を動的にいじるようなことをしていて、その中で print 関数や parse 関数を脳死で使っていたのですが、ふと中身がどうなっているのか気になったため、ちょっと調べてみました。なお、今回は、AST の見方などは書きません。 print と parse とは parse 関数 print 関数とは、Grap...

インフラのパフォチュー

2021-08-29

はじめに どうも、僕です。先日、ISUCON に出場して、学生枠で6位、5位と2000点差で惜しくも本戦出場を逃しました。(チームメンバーに助けられまくってたので僕はなにもしてませんが) 普段はフロントエンドの実装をメインとしてやっているのですが、最近仕事で Docker や k8s 周りを触ることが多く、少しサーバサイドやインフラについて少し興味が出てきたときに出場した ISUCON だった...

dumb-init とは

2021-08-18

はじめに こんにちは、どうも僕です。Dockerfile を読んだり書いたりしてる時に出てきた dumb-init を知らなくて気になったので調査しました。 dumb-init とは dumb-init とは Linux コンテナ用の最小限の init システムで、PID が 1 になるように作られています。最小限のコンテナとは、Docker などの小さめの環境のことを指していています。C で...

日報?を作った

2021-07-21

こんにちは どうも、僕です。 今回は Twitter API を使って自分のツイートを自動で拾ってきてそれをもとに140文字以内の任意の文章を生成してツイートする bot を作成したのでその様子を記事にします。なお、@takurinton ではないアカウント(知ってる人は知ってる)なのでそこはご了承ください。 使用技術 JavaScript バンドルするのがめんどくさいので CommonJS べ...

iframe のスクロール

2021-07-17

はじめに こんにちは、どうも僕です。Intersection Observer API を使ってスクロール率を用いてコンテンツの表示を操作するためにコードを書いていたのですが、ちょっとこけたのでまとめます。 Intersection Observer API とは Intersection Observer API とは、ターゲットとなる要素が指定した監視対象の要素が指定した viewport...

バンドルツール作る

2021-06-05

こんにちは どうも、僕です。最近バンドルツールを作った(というか作ってる途中)なのでその様子を記事にします。 まだ作ってる途中なのと、あまりきれいな構成ではないので多目に見てください。ではやっていきます。 技術選定 プログラムを実行するためのものと、バンドラーを作成するための補助として使うもののそれぞれを別に悩むことなく以下のように選定しました。 deno プログラムの実行に関してですが、...

マルコフ連鎖実装してみた

2021-02-15

こんにちは どうも,僕です.今回はみんな大好きマルコフ連鎖についてです.コードはこれ.与えられた文章をもとにして新しい文章を生成するやつを実装しました.ではやっていきます. マルコフ連鎖って何? マルコフ連鎖とはどうやら離散マルコフ過程の別称のようです.知らんかった.Twitterで見かけてググってみたら出てきてほへーってなりました.今回は文章を自動生成するためのマルコフ連鎖を実装していきます...

JWTについて学ぶ

2021-01-11

はじめに どうも,僕です.今日はGolangでJWTを実装したけどちょっとつまづいたことが多かったので記事にしたいと思います.これ実装したのだいぶ前なので思い出しながら頑張っていこうと思います. JWTについて そもそもJWTとはなんなのかについて簡単におさらいをしておきたいと思います.JWTとは,JSON Web Tokenの略で属性情報(Claim)をJSONの中に丸め込むことで個人を識別...

2020年振り返り

2020-12-25

こんにちは どうも,僕です.これを書いているときはクリスマスで,TLのみんなはコード書いてるんだろうなって思いながら書いてます.今年一年,某病気にほぼ潰されてしまいましたが,個人的には充実した1年間になったと感じています.インターン,就職活動,技術的な成長,その他もろもろ人生の分岐点となるようなことが多かった気がします.それを割と雑に振り返っていきたいと思います. 2020年という年 今年は大...

フロントエンドの今

2020-12-15

こんにちは どうも、僕です。今日はフロントエンドについて書いて行こうと思います。(抽象的〜〜〜) 僕はフロントエンドの人間ではないのであまり詳しくはないのですが、そんな僕でも知っていることや最低限意識していることなどを簡単にですがまとめていきたいと思います。 最近のフロントエンド 最近はフロントエンドの進化が早く、バックエンド側まで侵食しかけている印象を受けます。SPAとはみたいなことを思うよ...

Goの名前付き戻り値

2020-12-11

こんにちは どうも僕です。この記事はKITアドベントカレンダー11日目の記事になります。今回はGolangの名前付き戻り値について簡単にまとめてみました。 そもそも名前付き戻り値って何? まずこれですよね、僕も最初はわからんってなってましたし、今もよくわかってないです。簡単にいうと、戻り値に名前をつけておくことができます。比較は以下のコードで。 // 通常の関数 func nomalFun...

DjangoでUser認証機能を作る

2020-12-04

こんにちは これですどうも、僕です。この記事はKITアドベントカレンダーの4日目の記事になります。今回はユーザー認証の機能を実装してみようと思います。 やり方 Djangoではデフォルトでユーザーモデルが定義されています。今回はそれを書き換えることでユーザー認証の仕組みを作成して行こうと思います。最近だと外部の認証に任せるパターンも増えていますが、こっちの方が楽だと感じることもちょこちょこある...

asgiを触ってみたつづき

2020-11-30

どうも こんにちは、僕です。今回は前回の記事の続きを書いていきたいと思います。まだまだリファクタリングしないといけないのですが、現状動くものをのせる的な感じで。 前回なにしたか 前回はぽよりました。(適当)まあ、簡単にソケットでチャットを作りましょうみたいなことをしました。 今回はなにするか そこに今回はユーザーを定義してさらにチャットを保存していくみたいな実装をしました。簡単な実装しかしてい...

DRFのViewについてまとめる

2020-11-27

こんにちは どうも、こんにちは、僕です。今日はDRFのなんちゃらAPIViewについてまとめたいと思います。自分の推しはAPIViewです。対戦お願いします! DRFとは? そんなもんは自分で調べてください(辛辣) 参考までにこれは前回の記事でさらっと書いてしまったAPIView周りの深堀りみたいなイメージで描いていきます。 今回使うモデル 今回使うモデルはとてもシンプルで、以下のよう...

asgiを触ってみた

2020-11-27

こんにちは どうも、僕です。今回はDjangoでasgiを使用してみたということでチュートリアルを自分なりにまとめたいと思います。最近のブログ暇つぶしみたいな感じだったので今回は久しぶりに新しい技術に触れたアウトプット感があって良きです。浅い asgiって何? まず最初にasgiについて説明したいと思います。そもそもPythonで鯖を立てるためにはwsgiとasgiの2種類があります。 ws...

pyparsing触ってみた

2020-11-24

こんにちは こんにちは、僕です。最近、pyparsingというPythonのライブラリを使用していて、面白いなあと思ったので記事にしてみました。元々自分は言語解析などに興味があって(NLPとか)、今回は形式言語解析になりますがまとめたいと思います。 pyparsingとは? これです。ドキュメント The pyparsing module is an alternative approach ...

Goのdeferに注意する

2020-11-15

はじめに 今日開発してて遭遇したエラーについて話します。短めです。よろしくお願いします。 状況 GoでAPIサーバを開発してる時に、エラーハンドリングについての実装をしていた。現状の問題としては、DBと接続する時にアプリケーションサーバ(NginxやらGolangやら)が生きてる状態でDBサーバ(今で言うRDS)が死んでる時にDBのIPアドレスとポートがクライアント側に渡されてしまうという問題が起...

4日間でポートフォリオを作り替えた

2020-11-14

こんにちは どうもこんにちは。僕です。最近あったことといえば、Vのインターン落ちて落ち込んでるところに人事の方からのなぐさめのDMがきてさらに泣きそうになったところでRからの内定もらってなんだかメンタルが忙しいことです。 今回は僕がポートフォリオを作り替えた話(需要あるのか?)について話していこうと思います。 なんで作り替えたの? まずここから作り替えた理由としては3つあります。 Nex...

easyjsonを使ってみた

2020-10-21

こんにちは どうも、僕です。この記事は随分前のインターン期間中に自分のために書いた記事を転載してます。 GoでJSON使う時ってだいぶめんどくさいんですよね。まあ型による安心感がバケモンなのでやった方がいいんですけど。 GoでJSONを捌く時はstructを使用します。クラスとかはないのでこれでいきます。  Unmarshal 早速やってみます。 例えばこんな感じのjsonがくるとします。 v...

Django + RDS

2020-10-15

こんにちは どうも、僕です。今回はAWSのEC2にデプロイしたDjangoのプロジェクトをRDSに接続する方法について書きたいと思います。Djangoを理解してればとても簡単。困ることなんてありません。ではいきます。 バックアップを取る DjangoではデフォルトのDBとしてプロジェクトを作成したときにsqlite3のテーブルがついてきます。しかし、RDSに乗り換えるときにはsqlite3のデータ...

Skywayでビデオ通話

2020-10-09

はじめに こんにちは、ブログに MaterialUIを導入してルンルンの僕です。今回はSkyWayで1対1の音声通話、またそれを文字起こしをしてGASに投げる処理までを書いたのでまとめたいと思います。GitHub Pages でデプロイしたサイトはこちらになります。レポジトリはこちらになります。 SkyWayって何? SkyWayとは、Webでリアルタイムコミュニケーションを実現する標準技術、We...

楽天のインターンに参加した話

2020-09-25

こんにちは どうも、僕です。今回は夏の締めくくりに参加した楽天のインターンについて書きたいと思います。楽天のインターンはここまでのインターンの中で一番辛かったような気がします(言語的な問題)海外で仕事できる気がしませんでした。そんな感じでまとめていきます。 選考 インターンには選考がつきものです。選考内容はコーディングテストと面接で、両方とも1日で終わらせます。参加者全員。 コーディングテストはc...

サイバーエージェントのインターンに参加した話

2020-09-13

こんにちは どうも、僕です。 今回はサイバーエージェントの就業型インターンに参加して、Ameba事業本部という部署で少しだけコード書かせてもらったのでそのことについて記事にしたいと思います。 参加した経緯 これは遡ること2月、、、 僕が某企業のアドテクのインターンに参加して、楽しかったことを大学の先輩のYさんに報告しました。 僕「この前アドテクのインターンに参加して、DSP周りのコードを簡単に...

Treasureに参加した話

2020-09-02

はじめに こんにちは。僕です。 以前の記事にも書きましたが、VOYAGE GROUPのTreasureというインターンに参加したのでまとめたいと思います。 結論から言うと最高のインターンでした!!(迷惑かけてばっかりだったけど) 来年以降インターンシップに行きたいと思ってる人はぜひTreasureにも申し込んでみてください! そもそもTreasureってなんだ TreasureとはVOYAGE G...

サポーターズの1on1面談に参加した話

2020-06-11

こんにちは こんばんは、先日サポーターズの1on1面談イベントに参加したので記事にしたいと思います。 簡単にまとめると、とっても楽しかったし充実した時間になったけど、その分周りのエンジニア志望の学生との差を痛感してとても刺激がもらえたイベントでした!!!! 1on1面談イベントってなんだよって思った方はこちらのリンクを参照してみてください。 #事前に準備したこと このイベントは、各ターンの最初に学...

ブログを引っ越した話

2020-06-10

はじめに こんにちは。疲れた。 てことで今回は僕がはじめてAWSを使ったときに詰まったところについてまとめたいと思います!!! また、この記事はQiitaにも全く同じことが書いてありますので、見やすい方がいいなと思ったら素直にQiitaに言ってください。 URLはこちらです 僕のレベル AWSって何???? まず最初に言っておきますが、私はこのレベルの人間です。AWSって言葉は知ってるけど中身は知...

OngaqJS触ってみた

2020-04-24

はじめに こんにちは ポートフォリオ(おふざけ入ってるあれです)にリンク貼ってあるOngaqJSについてのソースコードをまとめてみたので記事にしました。 #OngaqJSとはなんぞや? OngaqJSとは、JavaScriptで音楽が作成できるというAPIです。 Keyの取得はこちらから 有料枠と無料枠があり、使える楽器の種類などが異なる模様(有料会員になろうかな) ぽちぽちしていけば簡単に登録で...