TypeScriptで型推論やりすぎな足し算をする関数を作ってみた

こんにちは。shundroidです。最近TypeScriptの型レベルプログラミングにハマっています。 今回実装する「型推論やりすぎ足し算」をする関数はこちらです。既出だったらごめんなさい。 (画像が読み込めない時用のコード)123// 実装省略declare function add<T extends number, U extends number>(a: T, b: U): Add<T, U>;const a = add(12, 34); // testの型が46になる a の型が 46 になり、型レベルでも足し算をして、その結果を返します。Add<T, … Read More

TypeScriptの型レベルプログラミングで足し算・引き算・掛け算を実装する

こんにちは。shundroidです。最近型レベルプログラミングに興味があります。TypeScriptの型機能、気づかぬうちにめちゃくちゃ強くなっていてすごいですね。最大限活用したいですが、実用上は使う機会あるのでしょうか。 変な型を作るのは楽しいですよね。というわけで、今回は次のような型(Add<T, U> 型、 Minus<T, U> 型、 Multiple<T, U> 型)を実装しようと思います。 123type AddTest = Add<3, 5>; // 8type MinusTest = Minus<8, 4>; // 4 … Read More

VuexをVue Composition APIで実装する!【NoVue】

こんにちは。shundroidです。大学の授業が始まって早1週間。最初はガイダンスばかりですが、だんだん面白さが分かってきました。 また、今日は情報系の選抜授業の合格発表があって、無事履修することができました~よかった。倍率2倍強ですが、絶対に取りたい授業で、チャンスは1回だけだったので、本当に良かったです。堪能したいと思います。 さて、今回は、vue-composition-apiを使っていきたいと思います。これが凄いんですよ。おそらく、最初のモチベーションとしては、肥大化したViewModelを整理する、ということだったと思うんですが、おなじみの watch や、リアクティブな変数を生成す … Read More

大学の授業が始まる前日、興味があること

こんにちは。shundroidです。明日から大学の授業が始まります。この後色々好きなものとかが変わっていくことが想定されますが、とりあえず、現時点での自分の興味について書き記しておこうと思います。 プログラミング言語のパラダイムこの前の記事にも書きましたが、プログラミング言語そのものへの興味が湧き始めました。 言語の仕様や、プログラミングパラダイムなどに興味があります。それらがコンピューターの構造や、後述するデザインパターンやアーキテクチャとどのような関係があるのか、について知りたいと思っています。 データフロープログラミングプログラミングパラダイムの中でも、特にデータフロープログラミングに … Read More

これから、どういうプログラムを書いていきたいか

こんにちは。shundroidです。約1年ぶりの投稿です。ブログ開始時は、すごくたくさん記事を書いていたのに、素数の分布みたいな投稿頻度になってしまい、誠にすみません。 さて、今日で高校生は終わりです。(※書いていたときは3/31でした)高校での3年間で、物の捉え方や、考え方、好み、楽しいこと、などが大きく変わったと思います。プログラミングに対する姿勢も変わったと思います。 高校に入るまで、また高校に入ってからしばらくは、プログラミングを、あくまで何か制作物を作るための手段と考えて、そのためにいかにパフォーマンスが良いコードを、綺麗に書くか、ということを大事にしてきました。 ですが、最近は、プ … Read More

Vue で Web Animations をかっこよく実装するライブラリを作ってみた

こんにちは。shundroid です。あけましておめでとうございます(遅)10か月振りくらいの投稿ですね。 高校が休みになっているので、勉強・開発に励んでおりました。 そこで、Vue.js で Transition だけでなく、Web Animations を取り入れたい状況が出てきました。 現状で Vue.js で Web Animations を使う場合そこで次のようなコードを書いたのですが、これは Vue.js としてはふさわしくないですよね。 123456789101112131415161718192021222324252627282930313233343536373839404 … Read More

「キャンベル生物学」を読んで

こんにちは。shundroid です。新年度・新時代が始まりましたね。 さて、昨日「キャンベル生物学」という太い本を読み終わったのでその感想をまとめようと思います。 概要キャンベル生物学 原書11版は1444ページ、目測でA4サイズくらいの本で、生物学の幅広い分野の基礎が学べる本です。 「高校生にとっても最適の教科書」とありますが、まさにその通りで、解説が非常に丁寧でわかりやすかったです。(英訳だからか独特の言い回しがありますがそれは慣れます) わざわざどうしてこの本を読んだのかといいますと、高校の生物の先生に勧められたからです。 最初は割と緩く読んでいたんですけど、このままだといつまでたって … Read More

Nuxt v2 のビルドが重すぎるので軽くする

こんにちは。shundroid です。お久しぶりです。記事を書くたびにお久しぶりになりますねw 早いもので高校に入学してから1年になります。この1年はプログラミング以外のことにもいろいろチャレンジして、充実した高校生活を送ることができました。 クラス替えがドキドキ… さて、今回は割と今年(少ない機会でも)愛用した Nuxt のビルド速度を向上させる方法を紹介します。 あ、そだそだ、今年はプログラミングを目的にしてプログラミングすることは少なかったんですけど、割と学校の発表で(Nuxtを使って)デモアプリを作ったり、ディベートの授業で電子投票用のシステムを作ったりと、「手段」としてプログラミング … Read More

フリーで使えるクラウドIDE「Codenvy」を使って Vue.js の開発を始めてみる

こんにちは。shundroid です。高校生活が本格的になってきました。楽しいですが忙しいですね。 さて、今回は、友人とアプリを1つ開発することになりました。そこで、環境構築などを友人の pc で行うのは手間がかかるため、その必要がない、クラウドIDEを用いることにしました。使い方などを記録しておこうと思います。 サービス・ライブラリなど Vue.js : Web アプリ開発のフレームワークです。最近ホットになってきてうれしいです。 クラウドIDE : クラウド上で動くIDEです。環境構築の手間がいらないので、スマホで動作するものもあります(codeanywhereなど) Eclipse Ch … Read More

Twitter で誤凍結されてから解除されるまでの道のり

こんにちは。shundroid です。昨日、本垢の Twitter アカウントが、なぜか凍結されてしまいました。 正直かなり焦ったのですが、今日の朝、凍結解除のお知らせが入っていました。今回は、その道のりについて書きたいと思います。 凍結の種類まず、Twitter の凍結の種類について書きます。 警告凍結一番軽いやつです。本人確認したら解除されます。 c.f. ロック「ロック」というものもありまして、僕が調べた限り、ロックと警告凍結の違いがよくわかりませんでした。わかる方は教えてください。 画像は本垢が凍結されたとき、別垢を作ったらなぜかロックされたときの物です。短時間にフォローをしすぎたの … Read More

僕がプログラミングを始める人に、「言語なんて何でもいいのだ」という理由

追記:2021/04/01確かに、プログラミングを始める段階では「言語は何でもよい」と思います。ですが、プログラミングについて深く理解したい、と思う際は、どの言語か、が大事であるな、と最近痛感するようになってきました。このことについて、新しく記事を書いたので、よろしければそちらもお読みください。 こんにちは。shundroid です。夏休みが終わりに近づいてきました。 この夏にプログラミングを始めようという友達がいて、どのようにプログラミングを教えるのが効率的なのか、改めて色々考える機会がありました。 そこで思ったことを今回は書きたいと思います。 プログラミングを学習するときに大切なこと よ … Read More

ノートパソコンを直した話

※今回の記事の内容を実践することは本当に自己責任になります。というか分解しないことをおすすめします。 ちなみにPC落としてから突然電源が落ちる問題が発生していたけど分解したら内部でねじが緩んでいたことが発覚しそこをきつくしたらなんと電源が落ちなくなりました。つまりノートパソコン直した―――――――やったーーーーーーーーーーー— shundroid (@shundroid_p) 2018年8月7日 こんにちは。shundroid です。2年前の夏、ノートパソコンを落としてしまい、そこから突然電源が落ちるようになっていた僕のノートパソコンが、 この度、なんと、直りました!今回はその … Read More

先生の名言を画像にして排出するだけの、誰得かわからないLINE BOT を作った話

こんにちは。shundroid です。お久しぶりです。期末考査も終わって、一段落したところです。 何かひと書きしてみたいところだったので、クラスメートみんなで使える、何かを作ってみたいと思いました。 そこで LINE BOT の開発をしてみることにしました。 作ったもの「某先生と会話bot」bot完成しました。近日中に仕組みをブログに公開します。 pic.twitter.com/oxhvmIq1fe— shundroid (@shundroid_p) 2018年7月14日 「(名前)、○○」と話すと、某先生の写真と文字を合成した画像を返すbotです。特徴はただ一定の画像を返すの … Read More

ガロア理論ジェネレータを作った

Dear Mr. Tomohide Suzuki https://t.co/rXsQJEGyF7できた!!!!— shundroid (@shundroid_p) 2018年6月2日 こんにちは。お久しぶりです。shundroid です。高校生になりました。 いやー忙しい。最近もテストがありましたが、テスト範囲が広すぎて本当に大変でしたー。 そこで疲れを癒やしたいのもあり、1つサービスを作ってみました。ガロア理論ジェネレーターです。 https://galois-gen.netlify.com/ 製作期間は2日です。今回はどうやって作ったかなどを紹介したいと思います。 これを入 … Read More

Hexo で検索結果を表示するページを生成するプラグインを作った。

こんにちは。shundroid です。お久しぶりです。 今回は新しく作った Hexo のプラグインについて、仕組みや工夫したところなどを書きたいと思います。 追記:2018/02/08client 側の工夫したところが消えましたw多分 vscode-vim で insert モードを解除せずに消しちゃったからかなとりあえず大まかには書いておきました。 概要hexo-generator-search で生成された search.xml を使って、検索結果を表示するページを作成します。 このブログでも使用しています。サイドバーの検索ボックスで検索すると、このプラグインで生成されたページが表示されま … Read More

【Spacechem】Sync-3 何回かに1回

こんにちは。 Spacechem の解法、Sync の3つ目です。 今回は Sync コマンドの応用の使用法の1つである、 何回かに1回 について説明しようと思います。 具体的には、 1つのウォルドが何回か実行するたびに、もう1つのウォルドが1回処理する というのを繰り返すことです。 例: ヘーパイストスIV KOHCTPYKTOP例として、ヘーパイストスIV のサイドストーリー、KOHCTPYKTOP の、ケイ素の分子を作り出すところを見てみましょう。 めちゃくちゃ長い処理になってしまったので、早送りしていますが、 赤のウォルドで2回輪の形をしたケイ素の分子を作った後、青のウォルドで1回 … Read More

Wercker を使って Hexo の deploy を自動化する

こんにちは。shundroid です。 Hexo にブログを移行しましたが、一回一回記事を上げるごとに、git commit して hexo deploy するのはめんどくさいですよね。 そこで、今回は wercker を使って git commit されると自動でデプロイしてくれるようにします。 目指す運営形態 上のような形を目指し、今回 Wercker に関するところを作っていきます。 間に通しすぎじゃないか!?と言われるかもしれませんが、それぞれ意味があります。 Bitbucket: ブログ全体の非公開リポジトリ。 Wercker: Bitbucket の更新をチェックし、自動で Gi … Read More

ブログ移転しました!

こんにちは。shundroid です。あけましておめでとうございます。今年もよろしくお願いします。 さて、ブログを WordPress から Hexo に移転しました!ここではブログ移転の経緯などを説明していきたいと思います。 今までメールアドレスで購読していただいた方いつもありがとうございます。Hexo ではデフォルトでメールアドレスによる購読ができません。 今後プラグインを使い、対応させていくかもしれませんが、それまで、前のサイトでも使っていた、Feedly などの RSS リーダーによる購読をよろしくお願いします。 移行の背景重かったWordPress は、ページを表示する際、動的に … Read More

【Spacechem-tips】Sync-2 交互に実行

spacechem-sync-alternate
こんにちは。 Spacechem の解法、Sync の2つ目です。 今回は Sync コマンドの応用の使用法の1つである、 交互に実行 について説明しようと思います。 具体的には、 1つのウォルドの処理が終わったら、もう1つのウォルドの処理を行う というのを繰り返すことです。 例: ヘーパイストスIV KOHCTPYKTOP例として、ヘーパイストスIV のサイドストーリー、KOHCTPYKTOP を見てみましょう。 ヒ素とホウ素を、1つずつ交互に ψ に出力しています。 これも Sync コマンドを使って実装しています。 どのように実装しているのか見てみましょう。 Sync コマンド2つ … Read More

【Spacechem-tips】Sync-1 「待機」としての「同期」

spacechem-basic-of-sensing
こんにちは。 Spacechem の解法、Sync の1つ目です。 今回は Sync コマンドの使い道の1つである、 「待機」としての「同期」 について説明したいと思います。 Sync の基本の使い方その前に、まずは Sync の基本的な使い方を説明します。 Sync は、基本的に 2つのウォルドのタイミングを合わせる ために使います。 例として、アルコノストの1ステージ目「検出の基本」を見てみましょう。 このように、2つのウォルドが、自転車のペダルのように、ぐるぐると回っていますね。 2つのウォルドのタイミングを合わせることで、原子同士の衝突を防いでいるのです。 2つのウォルドで操作す … Read More