タグ

ブックマーク / sbfl.net (11)

  • 音屋の動画によくある音に合わせて動くかっこいいバーをJavaScriptで作る

    音楽作る人ってすごいですよね。私も何度かGaragebandを開いて挑戦したことがあるのですが、これがなかなか難しくて。できる人は尊敬します。 音屋さんの動画って必ず音に合わせて動くバーがついてますよね。あの棒グラフみたいなやつ。あれかっこいいですよね。作りたくありません?作りましょう。 音屋のアレ 音屋さんのアレ、かっこいいですよね。音に合わせて動くバー。 オーディオスペクトラムとか言うらしいですね。これJavaScriptで作っちゃいましょう。 今回のソースコード一式 https://github.com/subterraneanflowerblog/audio-spectrum デモ ここをクリックでデモを開く まずは普通の棒グラフ まずは普通の棒グラフスタイルのスペクトラムバーを作りましょう。 まずHTMLからですね。canvasとファイル選択ボタンを置きましょう。 <!DOCTY

    音屋の動画によくある音に合わせて動くかっこいいバーをJavaScriptで作る
    yuiseki
    yuiseki 2023/06/03
  • 最近Reactを始めた人向けのReact Hooks入門

    ReactにHooksの仕組みが導入されてからずいぶん経ちました。Hooks導入当時のコミュニティの熱狂は、それはもう凄いものでした。「Reactにとんでもない機能が実装されたぞ!」と大騒ぎで、Hooksについての新しい記事を見ない日はありませんでした。 そんな盛り上がりも冷めつつあり、Hooksも実務に密着した「当たり前」の機能になったのかな、と思いました。しかしその一方でまだHooksについてはよくわからないという人も多く、知識の二極化を生んでいるように感じます。 世の中にはReactにすでに全く馴染んでいる人向けのHooksの解説記事は多く見当たりますが、最近のReact初心者に向けてのHooks解説記事はあまり多くありません。この記事では、Hooksについて実例を示しつつReactの基礎的な面からの解説を行います。 React初心者向けのHooks 世の中にはもう多くの高品質なHo

    最近Reactを始めた人向けのReact Hooks入門
  • Barcode Detection APIでブラウザ上からQRコードを読み取る

    我々の生活にQRコードが浸透してから何年経ったでしょうか。QRコードの読み取り機能はOS標準で可能になり、もはや「QRコードアプリ」すら不要な時代になりました。 一方でブラウザにおけるQRコードの取り扱いは、全くサポートされていませんでした。今まではゼロから実装した有志のライブラリを使ってQRコードの読み取りを実装していました。 しかしBarcode Detection APIの実装で、そういったライブラリも不要になるかもしれません。 Shape Detection API 近年になって、ブラウザにShape Detection APIというAPIの策定・実装が始まっています。 Shape Detection APIは現在以下の2つのAPIから構成されています。 Barcode Detection API Face Detection API また、「親戚」として、OCRを実現するText

    Barcode Detection APIでブラウザ上からQRコードを読み取る
  • 転職したいエントリです。プログラマとして拾ってください

    どうもどうも。古都ことです。転職したい気分になってきたので書きます。 なおこの記事は、転職先が決まるか、諦めるか、反応がなかったら消します。この記事が残っている間は連絡待ってます。(2019/07/25追記 残しておきます) 希望条件 自分の知識や技術をより活かせる職場を探しています。拾ってください。 勤務先:できれば大阪周辺(豊中市から近いとかなり良い)遠いようならリモートワーク可給料:手取り25万は欲しい勤務時間:普通でもフレックスでも業務内容:可能ならばウェブ系がいいです(フロント/サーバ/バック問わず)新しい技術や新しい試みができる、挑戦的な内容開始:8月以降?備考:まだ退職してないです 連絡先 連絡は締め切りました プライベートでの実績 大雑把にはGitHub見てもらえばいいと思いますここと https://github.com/kotofurumiyaここ https://gi

    転職したいエントリです。プログラマとして拾ってください
  • 正真正銘のReactだけの不純物なしでReact入門

    Reactのチュートリアル、たくさんありますよね。どれも質が高く、どこから手をつければいいかわからなくなっちゃいます。 ですがやはり巷のチュートリアルには面倒な問題もあります。今回は面倒ごとを全部すっ飛ばしてReactでのウェブアプリ作りに入門してみましょう。 Reactを始めるには、まずあれとこれとそれとどれと…… Reactやるには、まずNode.js入れてbabel入れてreact入れてreact-router入れて、ついでにredux入れてreact-redux入れて、redux-saga入れて…… Reactめんどくせえ!!!ってのが正直なところだと思います。はい、私もそう思います。ただ、まあ、色々必要なのも事実なので……。 それでもやっぱり「ReactやるならReactだけやりたい。他はどうでもいい」という気持ちは簡単に捨てられるものではありません。そこで今回はそういう面倒全部

    正真正銘のReactだけの不純物なしでReact入門
  • 他人に読んでもらうJavaScriptコードを書くために

    とりあえず動けばいい、の精神でコードを書ける個人開発とは違い、仕事やオープンソースプロジェクトにおけるコーディングでは、「他人が読むコード」を意識して書く必要があります。 他人が読むのですから、もちろんわかりやすいコードでなくてはなりません。でも、「わかりやすい」とは何でしょう。どうしたら実現できるのでしょう。 この記事では、他人が読む可能性があるコードを書くときに気をつけていた方がいい事項について、いくつか紹介します。 まえがき 私が社会人になって数ヶ月が経ちました。会社では自分でコードを書くのはもちろん、他人の書いたコードをいじるという、今まであまり経験していない作業をすることもあります。 そしてその中で使われている言語にはJavaScriptも含まれます。JavaScriptは平易な言語であり、クライアントサイドでもサーバサイドでも採用できるので、様々な場面で使用されています。 さす

    他人に読んでもらうJavaScriptコードを書くために
  • JavaScriptのStreams APIで細切れのデータを読み書きする

    近年、PCに搭載されるメモリは爆発的に増えました。16GBや32GBのメモリが搭載されているのが当たり前の時代です。性能の制限が強いスマートフォンですら4GBほど搭載していることがあります。ストレージの読み書き速度もどんどん加速し、昔では扱えなかったようなデータ量をリアルタイムで処理できます。インターネット回線も同様に大量のデータを扱えるようになりました。 しかし現実的な大きさのデータを一度に扱おうとすると、現代でもそれなりに処理時間がかかります。ユーザはレスポンスに対して敏感で、反応が0.1秒でも遅れるとストレスを感じます。しかし時間がかかるものはかかるのです。この問題は一見どうしようもないように思えます。 そこで登場するのが「データを細切れにして処理する」というコンピュータにおける万能の薬です。細切れにして逐次処理すれば、少しずつデータを処理することができ、素早いレスポンスを実現するこ

    JavaScriptのStreams APIで細切れのデータを読み書きする
  • なぜWii版マリオ64で長時間放置すると足場が浮かび上がるのか(非技術者向け解説)

    ゲームのバグって面白いですよね。進行不可能バグはもちろん論外ですが、ちょっとした不思議なバグはなかなかに楽しめます。 さて、今回話題になったのはWii版(バーチャルコンソール)のマリオ64で、「長時間たつと足場がどんどん浮き上がる」というものです。オリジナル版では起こらず、バーチャルコンソール版だけで起こるというのがミソです。 この摩訶不思議なバグがいったいどうやって起きているのか、確かめていきましょう。 話題のバグ:時間が経つと足場が浮かぶ Automatonなどで記事になった「『スーパーマリオ64』を研究するプレイヤーたちは、Aボタンを押さずステージクリアするために3日間待ち続ける」がゲーマーの間で話題になっています。 このバグは、炎の海から顔を出したり沈んだりするだけの足場が、時間が経つにつれほんの少しずつ炎の海から浮遊するというものです。ゲームを起動したまま3日間放置すると、足場が

    なぜWii版マリオ64で長時間放置すると足場が浮かび上がるのか(非技術者向け解説)
  • JavaScriptで大量のオブジェクトの当たり判定を効率的にとる - Subterranean Flower Blog

    ゲームなどのコンテンツにおいて、「当たり判定」から逃れることはできません。オブジェクトとオブジェクトが衝突したかどうかという判定は、インタラクティブコンテンツにおいて最も重要な部分になるからです。 当たり判定の実装自体は難しくありません。ですが、素朴な実装ですと、対象となるオブジェクトが大量である場合に、十分なパフォーマンスが出ません。これはオブジェクトの多い、現代的なゲームでしたり、弾幕シューティングなどを作るときに大きな障害となります。 この記事では、大量のオブジェクトの当たり判定を処理する、効率的な方法について紹介します。 まずは素朴に実装してみる 当たり判定の処理を語るには、ある程度ゲームの骨組みのようなものが必要になってきます。もちろんクラスなどを使わないベタ書きでもよいのですが、大変読みにくくなってしまいます。ですので、今回は、まず簡易的なゲームエンジンのようなものを作って、そ

    JavaScriptで大量のオブジェクトの当たり判定を効率的にとる - Subterranean Flower Blog
  • この1年間でVRゲームを50本ほど遊んだので、VRの現状とか感想とか

    VR元年が謳われた2016年から1年が経ち、2017年になりました。つまり、私がHTC Viveを購入してから1年経つということでもあります。 半年前、私は「半年間VRゲームを体験した感想とオススメのVRゲーム」という記事を書きました。VRの体験記事はいまだ貴重なようで、多くの方に読まれています。 さて、それから半年。VRを取り巻く環境は、全く変わらない部分もあれば、大きく変わった部分もあります。私自身も、あれから多くのタイトルに触れて、意見が変わったところもあります。今回はそのあたりのことにも触れつつ、この1年間でVRに抱いた雑多な感想などを書いていきたいと思います。 VR体験とすぐに解ける魔法 ヘッドマウントディスプレイ(HMD)、モーショントラッキングコントローラ、ルームスケール、これまでゲームの世界には積極的に持ち込まれてこなかった技術が、VRでは利用されています。そのうちどれもが

    この1年間でVRゲームを50本ほど遊んだので、VRの現状とか感想とか
  • Promiseとasync/awaitでJavaScriptの非同期処理をシンプルに記述する

    JavaScriptにおける非同期処理は一種の悪夢です。非同期処理は容易にコードを複雑化させ、品質の低下を招きます。そこでこの問題を解決するため、非同期処理を簡単に扱うことができる、Promiseやasync/awaitという機能が導入されました。この記事では、Promiseとasync/awaitを用いた非同期コードの単純化について簡単な解説をします。 実行順序がコード通りにはならない非同期処理 非同期処理とは何でしょうか。非同期な処理は、コードの順番通りには実行されません。どういうことか、簡単な例を見てみましょう。 setTimeout(() => console.log('hello'), 500); console.log('world!'); このコードでは500ミリ秒後に「hello」と表示し、その後に「world」を表示しようとしています。ですが、実際には「world」の後に

    Promiseとasync/awaitでJavaScriptの非同期処理をシンプルに記述する
  • 1