blog.takurinton.dev

記事一覧

2022年振り返り

2022-12-31

こんにちは 今年は散々な年だったため書かなくて良いかなと思っていましたが、こういうのは後から見てみてこういうのもあったなーと振り返るものな気がするので一応書いておきます。 去年の振り返りはこちらです。 loading... 去年に倣って GitHub の草を載せるとこんな感じです、去年と比べるとあまりコードを書かなかった 1 年だったように感じます。 ざっくり時系列 1 月 卒論の提出期日を間違えてました。 twitter card is not supported anymore... 2 月 卒論を頑張っていました。 3 月 卒論を提出して無事卒業が確定しました。 引っ越しをしたりバイトを

SHA-256 algorithm

2022-10-10

こんにちは どうも、僕です。 今週猫がきます。 猫の名前について、友人と雑談をしていて、 名前なんて記号なんだから呼びやすくて聞こえが良ければなんでもいいよ と言われたので、記号だなんてそんなのハッシュではないかと思ったと同時に、ハッシュという名前はとてもいいなと思いました。 ハッシュという名前にしっくりきたので名前はハッシュにしようと思ったものの、筆者はコンピュータサイエンスの学部を出ているのにも関わらずハッシュ化アルゴリズムを自前実装した経験がありません。 そのため、今回は [Secure Hash Standard (SHS)](https://nvlpubs.nist.gov/nist

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

2022-09-26

こんにちは どうも、僕です。 先日、ブログを新しくしました。=> [ブログを SSG にした](/post/109) wmr の prerender mode を使って SSG にしましたが、自分の実装したような wmr の prerender で .md ファイルを使ったブログを書くようなパターンだと、prerender 関数の中で fetch API をオーバーライドしてあげないとプロダクションビルドをする際に fetch API がない旨のエラーが吐かれてしまいます。 import { VNode } from “preact”; let initialized = false; exp

ブログをSSGにした

2022-08-14

こんにちは どうも、僕です。 今回はブログを SSG にしてみたという話をします。 年始に SSR をするような構成にしたばかりですが、色々あって(後述)作り替えてみました。 SSR にする記事は以下からどうぞ。 ブログを作り直した Rust で GraphQL server を書いてみた このブログのソースコードはこちら takurinton/ssg-blog なぜ作り直したか そもそもなぜ作り直したか、理由は 2 つあります。 AWS の料金が高すぎる そもそもの話ですが、筆者の [ポートフォリオ](https://takurinton.dev) やブログ、[技術メモ](https://d

Svelte と SPA

2022-01-14

こんにちは どうも、僕です。 最近、Svelte が市民権を獲得してきているようで、フロントエンド開発において、選択肢に入ってくる機会が増えてきたと思います。 また、Twitter などでも、React よりも Svelte!のような内容のものや、Svelte を勉強してみるといった内容のものが増えてきたように感じます。 それ自体はいいことであり、Svelte が選択肢に入ってくることは面白いとは思うのですが、React と Svelte を同列に考えているツイートや文章を目にすることもあり、難しい感情になっています。 Svelte のユースケースは、他のフロントエンドフレームワークよりも限定

2021年振り返り

2021-12-29

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

結合時のアルゴリズム

2021-12-18

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

MySQL の FULLTEXT とは

2021-11-16

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

検索を作る

2021-11-15

こんにちは どうも、僕です。 検索エンジンを自作しようとしてうまくは行きましたが、想定していた規模には耐えることができなかったという内容の記事です。 実際、パフォーマンスにこだわると厳しい点が多かったり、検索結果が帰ってこなかったりしてだいぶしんどい実装になってしまいました。 もっとうまくやる方法があったら教えてください。 今回の手法と想定する規模 今回は、転置インデックスを作成して戦います。 転置インデックスについては、[Wikipedia](https://ja.wikipedia.org/wiki/%E8%BB%A2%E7%BD%AE%E3%82%A4%E3%83%B3%E3%83%87

マリオのUX

2021-11-08

こんにちは どうも、僕です。 最近、スーパーマリオブラザーズにハマっていて、昼夜問わずにゲームばかりしています。もともと、ゲームなんかするよりも小説読んだり、コード書いたりする方が楽しいだろみたいな思考回路をしていたので、こういうのは新鮮で没頭してしまいます。もう少しでラスボスを倒せるので非常に楽しみです。 なんかマリオをやっていて、ゲームのUXって大事だなって思ったので記事にします。 UX UX、体験体験言われていますが、個人的には、最近のUXはユーザーに意識させないことをいうものだと思っています。 ユーザーが「体験いいな〜」って思うのではなく、「体験悪いな〜」って思わないことなのではないか

僕がサブスクを使わない理由

2021-11-04

こんにちは どうも、僕です。 若干時代の流れに背くようなタイトルになっていますが、半分くらいは釣り です。 僕が使っているサブスクのサービスは以下になります。 AWS Spotify Amazon prime Notion(学生なのでタダみたいなもん) 別に、使ってないわけではないですし、しっかり使ってる方なのではないかとか思っています。(ごめんなさい) そんな感じで僕がサブスクをあまり積極的に利用しない理由について書いていきます。 補足 書き終わってから思ったのですが、思ったよりサブスクのようなサービスは多くなく、マネフォくらいしかありませんでした。いつか税金についての勉強をして、freee

forwardRef を習得した

2021-11-01

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

JPHACKS に出場した

2021-10-30

こんにちは どうも、僕です。 人生初ハッカソン、出場しました。総合すると、毎日忙しかったものの、とても楽しくコードを書くことができたと思います。 また、一緒に出てくれたメンバーや、今回のハッカソンに出場していた皆さん、また、開催してくれた方々には感謝しかありません、ありがとうございました。 作品 https://github.com/jphacks/F2111 チームメンバー チームメンバーは、僕を含めて4人いました。 人の金で焼肉を食うことしか考えていない [ましくん](https://twitter.com/masibw) と、たくりんとんの真似をすると言って「酒飲まないと yum」と言っ

React のメモ化

2021-10-13

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

addEventListener の第3引数

2021-10-13

こんにちは どうも、僕です。 addEventListener の第3引数って知ってますか。僕は知りませんでした。いや、厳密に言うと、存在は知ってたけど理解してませんでした。 理解するために、DOMのイベントフローとともに見ていきたいと思います。 イベントフローとは まずはイベントフローとは何かについて考えます。 イベントフローとは、DOM に対するイベントの委任(伝播)のことで、例えば以下のようなコードが動くのはイベントフローによるものです。 これは、parent をクリックすると当然 parent clicked と表示されますが、child の方をクリックしても同じように parent

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

2021-09-30

こんにちは どうも、僕です。 会社のブログ にも書いたのですが、プレイドのインターンを終了しました。 理由としては、これから色々忙しくなるからであって、別にクビになったわけではないです。 ここでは、なんというか、こんなこと感じたみたいなことを書きます。 会社のブログは事実ベース、こっちのブログは感情ベースです。 あのブログに関して あのブログ、実は1ヶ月前くらいから書いていて、めちゃくちゃ時間かけました。やたら長文ですし、特定の技術領域の人にしか刺さらない内容になってしまっていて、若干反省しています。やはりインターンブログというのは、インターンに参加したくなるような、そのような内容が求められる

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

2021-09-25

こんにちは どうも、僕です。 この記事は [自サイトのアクセス可視化](https://blog.takurinton.com/post/78) の続きです。 前回は AST をこねくり回して、form をいじる実装をしました。 今回はそのアクセスごとの詳細画面を作成し、そこにグラフをつけて見やすくするみたいなことをしてみました。 まだまだきれいではないのですが、これからきれいになります、きっと。 概要 前回、ちょっとだけ作っていた Detail.tsx を拡張します。 詳細ページでは、クエリパラメータから、domain と path を取得して、その情報を使用してサーバサイドにリクエストを投

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

2021-09-23

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

GraphQL の parse エディタ

2021-09-20

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

社会人になったら〜♪

2021-09-20

こんにちは どうも、僕です。 超ポエム記事です。 就職まであと半年くらい、多分東京に住み始めるまであと5ヶ月くらいになってきました。 妙に就職についてリアルに考えるようになり、社会人になったら時間取れるかなとか、やりたいことできるかなといった不安があります。 最近では、社会人の方と一緒に働かせてもらえることが多くて、色々な学びがありますが、みなさん輝いている方が多いです。OSS を積極的にやられてる方、趣味に没頭してる方などさまざまですが、好きなことをやっている方はみんな輝いています。自分もそのようになりたいなと考えています。 そんな感じで、自分の就職してからやりたいことや理想像などを書いてい

GraphQL の print と parse

2021-09-19

こんにちは どうも、僕です。 最近、業務や趣味で GraphQL の AST や query を動的にいじるようなことをしていて、その中で print 関数や parse 関数を脳死で使っていたのですが、ふと中身がどうなっているのか気になったため、ちょっと調べてみました。 なお、今回は、AST の見方などは書きません。 print と parse とは parse 関数 print 関数とは、GraphQL の query から AST を生成する関数で、以下のようになります。 import { print, parse } from 'graphql'; const query = quer

Preact の change event

2021-09-19

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

インフラのパフォチュー

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 で書かれていて、静的リンクしたバイナリとしてデプロイされます。 デフォルトのままだと 700KB ありますが、musl と静的リンクさせて自分でビルドをすると 20KB まで抑えられるようです。(参考:

日報?を作った

2021-07-21

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

iframe のスクロール

2021-07-17

はじめに こんにちは、どうも僕です。 Intersection Observer API を使ってスクロール率を用いてコンテンツの表示を操作するためにコードを書いていたのですが、ちょっとこけたのでまとめます。 Intersection Observer API とは Intersection Observer API とは、ターゲットとなる要素が指定した監視対象の要素が指定した viewport の範囲に入ったときに変更を非同期的に監視するための API です。 用途としては、 画像などの要素をスクロール位置を用いて lazy loading する ブログとかでスクロール位置によって見出しを管

バンドルツール作る

2021-06-05

こんにちは どうも、僕です。 最近バンドルツールを作った(というか作ってる途中)なのでその様子を記事にします。 まだ作ってる途中なのと、あまりきれいな構成ではないので多目に見てください。 ではやっていきます。 技術選定 プログラムを実行するためのものと、バンドラーを作成するための補助として使うもののそれぞれを別に悩むことなく以下のように選定しました。 deno プログラムの実行に関してですが、今回は [Deno](https://deno.land/) を選択してみました。 存在は知っていたけど触れてなかったやつです、これを機に触れてみよ〜ってなりました。 Deno とは Node.js の欠

Nuxt入門した

2021-02-27

はじめに どうも,僕です. Nuxtに入門しました.よくわからないバグで昨日1日溶かしましたがまああれも経験ということで(元々使おうとしてたライブラリが某アダルトサイトの非公式ライブラリだったのでどこかがおかしかったのかも) ということで元々作ろうとしてたものに比べてだいぶ簡単な構成になってしまいましたがNuxtデビューブログを書いていきます. あと今回内容薄いので許してください.あくまでも入門です. 構成 全体の構成はこんな感じです.ツリー書くのめんどくさいのでスクショで許してください. リポジトリは[こちら](https://github.com/takurinton/nuxtvitesu

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

2021-02-15

こんにちは どうも,僕です. 今回はみんな大好きマルコフ連鎖についてです. コードは[これ](https://github.com/takurinton/tsmarkov). 与えられた文章をもとにして新しい文章を生成するやつを実装しました.ではやっていきます. マルコフ連鎖って何? マルコフ連鎖とはどうやら離散マルコフ過程の別称のようです.知らんかった.Twitterで見かけてググってみたら出てきてほへーってなりました. 今回は文章を自動生成するためのマルコフ連鎖を実装していきます.また,何段階にもなるマルコフ連鎖があるようですが(全く知らん)今回は何も手を加えていないものを実装しました.こ

仕事を始めて感じたこと

2021-02-14

こんにちは バレンタインなのにチョコレートもらえない非リアのみなさん.どうも,僕です. 最近働き始めたので朝が辛いです. 今回は最近働き出して感じたことを書いていきたいと思います. 前提 まずちょっと前提について話します.僕は労働は初めてではなく,一応サイバーエージェントさんでの就業型のインターンに参加して実務的なコードを書いたことはあります. その時のブログは[こちら](https://www.takurinton.com/post/18) ただ,あの時はそもそもな技術力が不足していたり,焦ってしまって周りが見えていなかったり,サーバサイドもそこまで書いたことがなかったので全然だめでした.

preactとfastifyでSSR

2021-01-27

こんにちは どうも,ぼくです. 久しぶりにブログ書いてる,日本語死んでそう. 今回はSSRについての記事です.頑張るぞ〜 前提 ここしっかり書いとかないと解釈違いとかで怒られそうなので書いておきます. この記事はSSRを理解するためのもの First Viewは初期表示のことをいう,細かい分類はしない,レンダリングした結果がブラウザに表示されたタイミングのこと preactとfastifyを使用している コードは[これ](https://github.com/takurinton/preact-fastify-ssr) 超簡単な構成 create react appでReactの開発経験がある

Golangとの半年

2021-01-14

こんにちは どうも,僕です. 2021年1月の時点でGolangと出会ってから半年が経ちました.この半年,様々なことを感じ,Golangを通して様々なことを学びました.その過程の振り返りと今後どうしていきたいかを自分自身の振り返りとして残していきたいと思います. また,この記事を通じてGolangを新しく学ぶ人や新しい言語を習得する人にとって何か力になれればいいなと思っています. 前提 前提として,まずこの半年ずっとGolangを書いていたわけではありません.量だけで言えばTypeScriptやPythonの方が多かったように感じます. TypeScriptはフロントエンドでの開発.Pytho

JWTについて学ぶ

2021-01-11

はじめに どうも,僕です.今日はGolangでJWTを実装したけどちょっとつまづいたことが多かったので記事にしたいと思います. これ実装したのだいぶ前なので思い出しながら頑張っていこうと思います. JWTについて そもそもJWTとはなんなのかについて簡単におさらいをしておきたいと思います. JWTとは,JSON Web Tokenの略で属性情報(Claim)をJSONの中に丸め込むことで個人を識別することができるようにした仕様のことです. こいつを使うと署名や暗号化ができURL-safeになるということなのです. JWTと書いてジョットと読みます.ショットじゃないです.誰が酒カスやねん. もう

2020年振り返り

2020-12-25

こんにちは どうも,僕です. これを書いているときはクリスマスで,TLのみんなはコード書いてるんだろうなって思いながら書いてます. 今年一年,某病気にほぼ潰されてしまいましたが,個人的には充実した1年間になったと感じています. インターン,就職活動,技術的な成長,その他もろもろ人生の分岐点となるようなことが多かった気がします.それを割と雑に振り返っていきたいと思います. 2020年という年 今年は大変な年でしたね.様々なことがおきました. 中でも最近流行りのCOVID-19,タピオカより流行ってますね. 最初はお年寄りが感染していましたが最近では若者も感染するようになりました.逆に無症状患者と

フロントエンドの今

2020-12-15

こんにちは どうも、僕です。 今日はフロントエンドについて書いて行こうと思います。(抽象的〜〜〜) 僕はフロントエンドの人間ではないのであまり詳しくはないのですが、そんな僕でも知っていることや最低限意識していることなどを簡単にですがまとめていきたいと思います。 最近のフロントエンド 最近はフロントエンドの進化が早く、バックエンド側まで侵食しかけている印象を受けます。SPAとはみたいなことを思うようなフレームワーク(Blitzとか(僕は好かない))なども見かけますが、そこは今回は考えないこととして、あくまでSPAでのコーディングを前提とした話をしていますのでよろしくお願いします。 また、解釈や概

アドテクって何?

2020-12-18

こんにちは どうも、僕です。 この記事は[KITアドベントカレンダー19日目](https://qiita.com/advent-calendar/2020/kitdev)の記事になります。 アドテクって? そもそもアドテクってなんなのでしょうか。 アドテクは、インターネット上に広告を出したい「広告主」と、広告を出すことによって収益を得たい「メディア」が存在しており、アドテクによって「広告主」と「メディア」の両方の収益を最大化するような仕組みを作っています。また、ユーザーに対して価値の高い広告を表示することでUXの向上も見込めます。 めちゃくちゃ簡単なアドテクの収益モデルはこんな感じ。 どうし

Goの名前付き戻り値

2020-12-11

こんにちは どうも僕です。 この記事は[KITアドベントカレンダー11日目](https://qiita.com/advent-calendar/2020/kitdev)の記事になります。 今回はGolangの名前付き戻り値について簡単にまとめてみました。 そもそも名前付き戻り値って何? まずこれですよね、僕も最初はわからんってなってましたし、今もよくわかってないです。 簡単にいうと、戻り値に名前をつけておくことができます。比較は以下のコードで。 // 通常の関数 func nomalFunc(name string) string { return "hello " + name } //

puppeteer楽しい

2020-12-05

はじめに こんにちは、僕です。 この記事は[KITアドベントカレンダー11日目の記事](https://qiita.com/advent-calendar/2020/kitdev)になります。 今日はpuppeteerで遊んだってだけの短い記事を書いていきます。 これ面白いのでおすすめです。(今テスト勉強しながらコード読んでる) 今回作成したやつのコードは[こちら](https://github.com/takurinton/puppeteertest) puppeteerとは何か puppeteerとは操り人形という意味を持っています(知らんかった) ちなみにコードは[これ](https:/

asgiをぽよってみたつづき

2020-11-30

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

asgiをぽよってみた

2020-11-27

こんにちは どうも、僕です。今回はDjangoでasgiを使用してみたということでチュートリアルを自分なりにまとめたいと思います。最近のブログ暇つぶしみたいな感じだったので今回は久しぶりに新しい技術に触れたアウトプット感があって良きです。浅い asgiって何? まず最初にasgiについて説明したいと思います。そもそもPythonで鯖を立てるためにはwsgiとasgiの2種類があります。 wsgi これまで一般的に使われてきたPythonの鯖 強い gunicornなどと一緒に使うことができる asgi wsgiに加えて非同期通信を実現したもの なんか強いらしい Websocketはそのままでは

DRFのViewについてまとめる

2020-11-27

こんにちは どうも、こんにちは、僕です。 今日はDRFのなんちゃらAPIViewについてまとめたいと思います。 自分の推しはAPIViewです。対戦お願いします! DRFとは? そんなもんは自分で調べてください(辛辣) 参考までにこれは[前回の記事](https://www.takurinton.com/post/32)でさらっと書いてしまったAPIView周りの深堀りみたいなイメージで描いていきます。 今回使うモデル 今回使うモデルはとてもシンプルで、以下のようなものを想定しています。 User name (strint, primary) age (int) sex (int) Userを

pyparsing触ってみた

2020-11-24

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

DRFのすゝめ

2020-11-19

こんにちは こんにちは、こんばんは、あるいはおやすみなさい。僕です。 今日はDRFを布教します。みんな使って欲しいなあ。 DRFとは? これです。 https://www.django-rest-framework.org/ みんな大好きDjangoでREST APIを実装することができるようにしたフレームワークです。 通常のDjangoと比較すると以下のような感じになります。 models.py、views.pyは同じ urls.pyの考え方も同じ、Djangoだとルーティング、DRFだとエンドポイントになる templatesがない。SPAを想定している設計のためレスポンスはhtmlではな

DjangoでUser認証機能を作る

2020-12-04

こんにちは これです どうも、僕です。 この記事は[KITアドベントカレンダー](https://qiita.com/advent-calendar/2020/kitdev)の4日目の記事になります。 今回はユーザー認証の機能を実装してみようと思います。 やり方 Djangoではデフォルトでユーザーモデルが定義されています。今回はそれを書き換えることでユーザー認証の仕組みを作成して行こうと思います。 最近だと外部の認証に任せるパターンも増えていますが、こっちの方が楽だと感じることもちょこちょこあるのでこっちで実装します。 初期設定からしていく まずは最初の設定からやっていきます。 今回はプロジ

Goのdeferに注意する

2020-11-15

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

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

2020-11-14

こんにちは どうもこんにちは。僕です。 最近あったことといえば、Vのインターン落ちて落ち込んでるところに人事の方からのなぐさめのDMがきてさらに泣きそうになったところでRからの内定もらってなんだかメンタルが忙しいことです。 今回は僕がポートフォリオを作り替えた話(需要あるのか?)について話していこうと思います。 なんで作り替えたの? まずここから 作り替えた理由としては3つあります。 Next.jsを試したかった 月曜日にあった勉強会でNextの話出てきて感化されちゃった(元々やりたいとは思ってた) SSR真面目にやりたかった OGPの動的な変更をしたかった(それ用の部分的に使えるライブラリが

easyjsonを使ってみた

2020-10-21

こんにちは どうも、[僕](https://www.takurinton.com)です。 この記事は随分前のインターン期間中に自分のために書いた記事を転載してます。 GoでJSON使う時ってだいぶめんどくさいんですよね。まあ型による安心感がバケモンなのでやった方がいいんですけど。 GoでJSONを捌く時はstructを使用します。 クラスとかはないのでこれでいきます。 Unmarshal 早速やってみます。 例えばこんな感じのjsonがくるとします。 var req string req = [ {"name": "takurinton", "age": 20, "favorite": ["r

Django + RDS

2020-10-15

こんにちは どうも、僕です。 今回はAWSのEC2にデプロイしたDjangoのプロジェクトをRDSに接続する方法について書きたいと思います。 Djangoを理解してればとても簡単。困ることなんてありません。ではいきます。 バックアップを取る DjangoではデフォルトのDBとしてプロジェクトを作成したときにsqlite3のテーブルがついてきます。 しかし、RDSに乗り換えるときにはsqlite3のデータは当然消えてしまいます。そのため、事前にバックアップを取っておこうと思います。 AWSのコンソールに入り、manage.pyのあるディレクトリで以下のコマンドを実行します。 ./manage.p

音声検索β

2020-10-10

こんにちは こんにちは。僕です。 今日はブログに音声検索の機能を実装したのでつまづいたところ、うまく行ったところ、逆にうまくいかなくて現状では実装できていないところなどを書いていきたいと思います。 全体のコードは[こちら](https://github.com/takurinton/takurinton.com)にあります。 実装する 実装ですが、今回は文字起こしまでをフロントエンド、形態素解析と処理はバックエンドで実装しました。 フロントエンドでも文字起こしはできたのですが、形態素解析から処理までの流れを一連の動き(型や言語なども含めて)にしたかったためバックエンドで実装しました。 そのうち

Skywayでビデオ通話

2020-10-09

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

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

2020-09-25

こんにちは どうも、僕です。今回は夏の締めくくりに参加した楽天のインターンについて書きたいと思います。 楽天のインターンはここまでのインターンの中で一番辛かったような気がします(言語的な問題) 海外で仕事できる気がしませんでした。そんな感じでまとめていきます。 選考 インターンには選考がつきものです。 選考内容はコーディングテストと面接で、両方とも1日で終わらせます。参加者全員。 コーディングテストはcodilityというサービスを使います。ググるのは禁止だそうで、バレたらどうなるかは知りません。面接はエンジニアの方2人と行い、こちらは普通の面接といった感じでした。 また、英語に対して抵抗はな

Amebaでコード書いてた

2020-09-13

こんにちは どうも、僕です。 今回はサイバーエージェントの就業型インターンに参加して、Ameba事業本部という部署で少しだけコード書かせてもらったのでそのことについて記事にしたいと思います。 参加した経緯 これは遡ること2月、、、 僕が某企業のアドテクのインターンに参加して、楽しかったことを大学の先輩のYさんに報告しました。 僕「この前アドテクのインターンに参加して、DSP周りのコードを簡単にですけど書いたんですよ〜」 Yさん「へー、楽しそうじゃん、いいね」 僕「ちょっとだけアドテクに興味持ちました!」 Yさん「サイバーのインターン行けばもっと長い期間、大きな規模の広告捌けるよ」 本人が覚えて

Treasureに参加した話

2020-09-02

はじめに こんにちは。僕です。 以前の記事にも書きましたが、VOYAGE GROUPのTreasureというインターンに参加したのでまとめたいと思います。 結論から言うと最高のインターンでした!!(迷惑かけてばっかりだったけど) 来年以降インターンシップに行きたいと思ってる人はぜひTreasureにも申し込んでみてください! そもそもTreasureってなんだ TreasureとはVOYAGE GROUPの夏インターンです! 詳しくは[こちら](https://voyagegroup.snar.jp/jobboard/detail.aspx?id=upwT50B8xR8)をご覧ください! Tr

冷房壊れて3週間

2020-08-08

こんにちは 前回に引き続き、Treasureについての記事を書きます。まだエアコンが壊れているので家の中は地獄です。(๑˃̵ᴗ˂̵) 2日目の今日はGolangについての講義がありました。 自分自身Golang知らんって感じの人間なので、ヒイヒイゼエゼエしてました。また、Golang以外にもテスト駆動開発についての話や認証についての話についての講義もあり死ぬかと思いました。(生きてて良かった) ちなみにさっき終わったばかりで何も理解してません。人に説明できるなって思ったところだけをこの記事には書いていきます。それ以外の部分はこれから復習していきます。(多分やった内容の10分の1くらいしか書

冷房壊れて2週間

2020-08-05

こんにちは ハローエブリワン! 先日この記事書いてたら割と書き進めたところで下書き保存せずにブラウザ閉じて書いたもの全部消えちゃったので今日になって泣く泣く書き直してます。(他にも泣きたいことはたくさんあるのですが今回は割愛) 冷房が壊れて2週間経ちますが、だいぶきついのでそろそろ大家さんに相談しようと思ってます。 さて、今日の記事はVOYAGE GROUPのサマーインターンのTreasureに参加してるので初日を終えての学んだことと感想を簡単にですがまとめたいと思います。 ではいく! 初日は講義 初日はJavaSctiptの講義がありました。 午前中は歴史や発展の背景について。 午後は実際に

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

2020-06-11

こんにちは こんばんは、先日サポーターズの1on1面談イベントに参加したので記事にしたいと思います。 簡単にまとめると、とっても楽しかったし充実した時間になったけど、その分周りのエンジニア志望の学生との差を痛感してとても刺激がもらえたイベントでした!!!! 1on1面談イベントってなんだよって思った方は[こちらのリンク](https://talent.supporterz.jp/events/a848a771-6236-4792-b2f9-91e1301b2ba8/)を参照してみてください。 事前に準備したこと このイベントは、各ターンの最初に学生から企業に5分ほど自己紹介をする時間が設けられ

ブログを引っ越した話

2020-06-10

はじめに こんにちは。疲れた。 てことで今回は僕がはじめてAWSを使ったときに詰まったところについてまとめたいと思います!!! また、この記事はQiitaにも全く同じことが書いてありますので、見やすい方がいいなと思ったら素直にQiitaに言ってください。 URLは[こちら](https://qiita.com/takurinton/items/6f1e98907ba4043be745)です 僕のレベル AWSって何???? まず最初に言っておきますが、私はこのレベルの人間です。AWSって言葉は知ってるけど中身は知らない、また、インフラの知識も皆無の状態から始めました。 いろいろググった結果、今

Djangoのすゝめ

2020-05-16

Djangoって知ってますか? Djangoって知ってます?DjangoはPythonで書かれているWeb開発フレームワークです。フレームワークとはなんぞやって人は[こちら](https://www.otsuka-shokai.co.jp/words/framework.html)から。 DjangoはMTVモデルというもので構成されています。MTVモデルとは、Djangoに標準装備されているモデリングのことで、この概念はやっていくうちに理解していけばいいと思います。 ちなみにMTVはなんの略かというと M (Model) T (Template) V (View) これらの頭文字ですね。 最

GWの過ごし方

2020-05-01

どうも 皆さん、コロナですがどうお過ごしでしょうか?僕はとっても暇です(ほんとは暇ではないのですがそこは割愛) まあ、今日はほんとに暑くて、気温が23度もあったらしくて、そんなことどうでもいいので本題に移りましょう。 散歩をしてきた 私は散歩がとっても好きで、音楽を爆音で流しながら散歩をします。 そこで、ふと思いついた、大学1年生の時Javaで素数の列挙書いたなあ、でも汚いコードだったなあ ということで、散歩中に素数の列挙のプログラムを少し考えながら歩いて、帰宅して20分くらいで実装して、今記事を書いてるって感じです。 実装していく まあ、実装したと言っても、大した内容ではないのですが、簡単に

OngaqJS触ってみた

2020-04-24

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

title B

2022-08-13

title B const a = "takurinton"; a aa bb cc b c h2 h3

title A

2022-08-13

title A hogehoge