タグ

ブックマーク / mizchi.hatenablog.com (24)

  • 実践: React Hooks - mizchi's blog

    hooks が発表されてから趣味でも現場でもずっと hooks を使っています。おかげでだいぶこなれてきて、だいたいなんのライフサイクルでも表現できるようになってきました。 最初は単に useState が state を、 useEffect が componentDidMount/componentDidUpdate を置き換えるもの、と説明を済ますつもりでしたが、 useEffect についてはライフサイクルのモデルがぜんぜん違うので、別の説明をする必要があるように感じていました。 で、その結果 React Hooks を理解するには、関数のメモ化を理解するのが最も簡単だと思ったので、その説明をしつつ、イディオムを解説していこうと思います。 最初に: React Hooks は何であり、何ではないか 関数コンポーネントが状態を持てるようにするもので、関数のメモ化のテクニックを多用しま

    実践: React Hooks - mizchi's blog
  • ブラウザでマイク入力から書き起こしを行うツールを作った - mizchi's blog

    Chrome でマイクからの音声を録音して、その音声認識で書き起こしも同時に行うツールを作った。 recording-studio.netlify.com で遊べる。 Chrome に搭載されてる Web Standard Proposal? の SpeechRecognition API を使っている。 developer.mozilla.org Chrome のみだが、 PC Chrome だけではなく Android Chrome でも動作確認済み。 ブラウザをオフラインにすると動作しないので、このAPI の 中身はたぶん Google Speech to Text API だと思われる。 出力 録音したものは webm ファイルとしてダウンロードできる。認識されたテキストも、タイムスタンプ付きのプレーンテキストなので、適当にもっていって、ぐらいの気持ち。 クラウドで音声認識してるこ

  • プログラマという現代の傭兵 - mizchi's blog

    エンジニア転職とかプログラミング教育周りで考えていたこと。 フランス革命と技術のコモディティ化 最近フランス革命やナポレオン戦争やナショナリズム、そしてクラウゼヴィッツの戦争論などを調べたりしていたんだけど、傭兵や専門技術の扱いについて、示唆的なものが多かった。 当時の傭兵は、扱いが難しかった大砲・銃火器を扱う専門集団で、技能職でもあった。それが 18 世紀になり火器の改良が進み、産業革命で効率的な生産が可能になり、そしてナポレオンによる国民軍の創設、そのヨーロッパにおける戦果によって、傭兵はその役割を終えた。 「傭兵はすぐ逃げる」というのが定説だが、彼らは金で動く専門職なので、負ける側に付く理由がないので、当然とも言える…特に戦争という、敗者の支払いが期待できない場では。そして彼らを雇う王侯貴族の経済力が、そのまま軍団の動員力に直結した。常備軍を持たない分、平時のコストも安くついた。

    プログラマという現代の傭兵 - mizchi's blog
    houyhnhm
    houyhnhm 2018/12/26
    砲兵の下りはちょっと違うなー。対比としても、傭兵はIT土方であり、専門とかスキルとかはあるなら剣客やるんだろう。
  • Edge 終了に寄せて - mizchi's blog

    初報を聞いたとき、描画系だけ blink に入れ替えて処理系は V8 使わず ChakraCore などに入れ替えるのかな、と思っていたが、どうも V8、というか chromium 一式を使うらしい。 正直に言って、Edge が死ぬことに、そこまで強く思うところはない。Edge は内部的に自身のベンダープレフィックスで webkit と名乗るぐらい (標準ではなく) webkit との互換性の意識が高いので、お前自分のことを webkit だと思ってるもんな、みたいな気持ちがあった。 webkit みたいなブラウザが消えて、webkit 後継のブラウザをベースに作り直される。開発者として追うべきは、個別の実装ではなく依然として標準仕様であって、それだけの話。 リリースサイクル 僕が思うに、 MS の抱えていた真の問題は、Windows に紐付けられたリリースサイクルとサポートにあって、Wi

    Edge 終了に寄せて - mizchi's blog
    houyhnhm
    houyhnhm 2018/12/13
    一点言っておくと、実際のところIEの方がEdgeより延命したねという感じです。MSが過去使えてたSharePointとかを置き換えるの困難になっている。かなりストレスフルな状況で、困ったなと。
  • 「この〜を導入すると、なんとこうなりました!どうです?わかりやすいと思えませんか?」 - mizchi's blog

    主にUI設計やプログラミングのAPI設計について、「わかりやすい」というのは主観的で合意が取れないのでクソという話。 定量的な指標が示されてない そもそも趣味が合わない場合はそこで終わり 〜の来意図された機能が隠れてしまっている ↑によって隠れてしまった機能を呼び出すのが、最終的にコストが掛かる 何が言いたいかと言うと、「指標の伴わない変更に意味はない」「APIの呼び方を変える程度のラッパーライブラリやヘルパーには、特に意味がない」ということです。 ここからプログラミングの話に絞りますが、特にショートハンドしたいだけの場合、ショートハンドするAPIの実装は、必ず来の機能を呼び出す脱出ハッチも必要となります。 よく練られていない「わかりやすさ」は、次第にこの脱出ハッチを使うことを要求するようになり、結果として捨てられることになります。この破棄までの過程は、結果的に「技術的負債」と表現され

    「この〜を導入すると、なんとこうなりました!どうです?わかりやすいと思えませんか?」 - mizchi's blog
    houyhnhm
    houyhnhm 2018/11/08
    再利用性の低いラッパーを見ると、可読性下がるだけなのは止めた方がと思う。あと、APIもバージョンするのでソコソコ短命なのは覚悟しておくと良し。
  • 新技術の紹介する際の「魂が震える」テキストのパターン - mizchi's blog

    これは自己観察の結果で、自分が新しい技術の採用を行う際にアジる記事のパターン、個人的に「魂が震えるシリーズ」と呼んでるんですが、それがどういう文章構造を持つことが多いかメタ的に解釈したものです。 単に誰もがこうすればいいという話ではないではないです。功罪あると思ってます。 導入 新技術の既存の文脈での解釈 +αの示唆 仮想敵の宣言 概要 説明 ポテンシャルの例示 極端な例の例示 現実的な制約の存在で現実に引き戻す ユーザーが知るべきことを要約 実例 既存の技術とのアナロジー 古い手法から進化している点を指摘 今の手法の問題点をいかに解決してどんな未来が来るか 応用 既存の考え方を、あたらしい技術で再解釈 来は無関係だった他の技術との親和性を指摘 課題 新しい技術ゆえのエコシステムのなさを指摘 構造上の欠陥を指摘 まず取り掛かれる現実的なエントリポイントを例示 未来 ここまで読んできたなら

    新技術の紹介する際の「魂が震える」テキストのパターン - mizchi's blog
  • React Component 視点でのアトミックデザインの解釈といくつかの疑問 - mizchi's blog

    フロントエンドの中でも、JS書くプログラマと、CSSを書くマークアップと、デザインカンプを作るデザイナで、コンポーネントという概念がズレる。だいたいこれらが一人だったり兼任だったりで1~2レイヤーの開発ステップになるが、完全分業だったり人が多くなると混乱の元になる。 誰かが決定的に間違ってるというつもりはない。正直、どっちかというと来のデザイナ側の用語定義に倒した方がいい気がしているが、プログラム上の都合もいろいろ混ざってきて、話が簡単ではない。 自分の理解が間違ってる可能性もある。この記事はレビューをもらうために書いている側面もあり、指摘されたら追記していく。 読んだもの。 Atomic DesignとCSS設計 - Atomic Designとは何か | CodeGrid Atomic Designの考え方と利点・欠点 – wkr. Atomic Design の大雑把な理解 基

    React Component 視点でのアトミックデザインの解釈といくつかの疑問 - mizchi's blog
    houyhnhm
    houyhnhm 2018/06/08
    うーん、AtomとMoleculeの依存って多分意味合いが違うよな(非UIエンジニアの雑感です)。Moleculeくらいでデータのそれと近くなるんじゃなかろうか(超適当)。
  • 最近のフロントエンドのエディタ事情 - mizchi's blog

    これは、個人でどんなエディタを使うべきか、ではなく、「チームとして」新しいものを採用するとき、あるツールがエディタ横断で便利かどうかを考える必要がある。 自分個人としては、基はAtomを使って、TypeScriptを書くときだけVS Code を使っている。ターミナルでは Vim。 環境でエディタを選ぶ 最近の新規プロジェクトでは、とくにブロッカーがなければ TypeScript を使っていいと思う。TypeScript を使うなら当然 VS Code を使うことになる。Atom や Vim でもいいが、TypeScriptのエディタとしては、流石に完成度が頭一つ抜けてる。JavaならJetBrains 的なノリで、TSならVSCode、そういうものと思ったほうが楽。 TS以外なら、エディタはなんでもいいが、ある程度流行ってるものでないとエコシステムに追いついてくれない。 prettie

    最近のフロントエンドのエディタ事情 - mizchi's blog
    houyhnhm
    houyhnhm 2018/06/01
    うーん。
  • クライアントサイドのモデルとは何か 後編 ~ 単方向データフローと参照透過性 - mizchi's blog

    この記事は クライアントサイドのモデルとは何か 前編 ~ クライアントサイド MVC の死 - mizchi's blog の後編。 前提として、今回の出す例で、「Web フロントエンドで、そこまで複雑な状態を考慮するなんてそもそも間違ってる」という意見があると思う。これに関して、そもそも「SPA というものが、いかに実現可能になったか」という視点の話であり、また、自分の経験上「フロントエンドなんて雑でシンプルでいいでしょ」というものが、複雑な構成を取っていくのを、何度も目にしてきた、という2つの前提がある。 適切な粒度に応じた適切な構成をとるべし、というのは別の話で、今回、対象が複雑なアプリケーションなのは前提とする。 Flux 以前 先の記事で ActiveRecord を前提にしたサーバーサイド ORM をクライアントで輸入しようとすると、クライアントでは Storage 層が存在し

    クライアントサイドのモデルとは何か 後編 ~ 単方向データフローと参照透過性 - mizchi's blog
    houyhnhm
    houyhnhm 2018/05/18
    おつー
  • クライアントサイドのモデルとは何か 前編 ~ クライアントサイド MVC の死 - mizchi's blog

    前置き この記事、来は Flux には Model がないのではないかと思った覚書 - ナカザンドットネット と Flux の Store が ViewModel かって話からの MVW とかどうでもいいって話 - 型の蓄音機は 1 分間に 45 回にゃあと鳴く のアンサーとして書き始めた記事だが、前置きだけで別テーマとなったので、前後編に分割する。 僕は元々がゲームクライアント屋だったときの発想を引きずってるのと、既存の Web の開発の文脈に対して距離を置いていることを明言しておく。あとこういうテーマでとある原稿書いていたので、頭の整理も兼ねて。 ActiveRecord の功罪を振り返る このテーマを語るにあたって、まず Rails の MVC について述べなければならない。なぜなら、フロントエンドのアーキテクチャとは、サーバーサイドの MVC の模倣に始まり、破綻し、結果として

    クライアントサイドのモデルとは何か 前編 ~ クライアントサイド MVC の死 - mizchi's blog
  • すべてのプログラマが機械学習を受け入れる準備をする時代になった - mizchi's blog

    という予感がしたので書く。正確に言うと機械学習の成果としての訓練モデルを。 まず事前に前置きしておくと、僕は機械学習をほとんど抑えていない。トレンドだけ追ってる。 大学生の時にニューラルネットワークを実装してみてフ~ンって言ってた程度に知識しかなくて、ディープラーニングが流行る前だから、「バックプロパゲーションってややこしかったけど、今は自動でモデルの最適化いい感じにやってくれるんでしょ?」ぐらいの雑な理解しかない。(この時点で怪しい) で、今はフロントエンドやってて、ここは機械学習は縁遠いように思えるかもしれないだろうけど、最近のGoogleはなんとブラウザで tensorflow を動かすのに情熱を注いでいる。 で、こんなのが Hacker News で流れてきた。 medium.com とりあえず試した。デモをそのままデプロイした。 PoseNet - Camera Feed Dem

    すべてのプログラマが機械学習を受け入れる準備をする時代になった - mizchi's blog
    houyhnhm
    houyhnhm 2018/05/09
    「すべての」とか煽り好きだなあ。
  • Atomのコード読みまくったので、git-grepの結果へジャンプできる拡張を作ってみた - mizchi's blog

    ここしばらく気が狂ったようにGithubのAtomのコードを読んでた。 コードリーディングの成果はここに貼ってる。まだ更新するかもしれない atom-reading.md で、大体のコードを読んだのはいいとしてなんか作らないと勿体無い気がしたので、エディタ内でgit-grepの結果見てジャンプできるやつ作った。 mizchi/atom-git-grep 自分で作っといてなんだけどくっそ便利だと思う。Sublimeで作りたかった。 プラグインの作り方の大雑把な概要 nodeのモジュール使って、普通のブラウザっぽいUIを組む。基パーツはatom側に揃ってるので継承して使う。 必要なインスタンスはだいたいatom変数以下に入ってる。shift+cmd+I でデバッガ開いて叩きまくるとだいたい察することができる。 プラグインのスケルトン生成 shift+cmd+p でコマンドパレット出して、 P

    Atomのコード読みまくったので、git-grepの結果へジャンプできる拡張を作ってみた - mizchi's blog
  • やはりHTML/DOMは再発明されるべきじゃないか - mizchi's blog

    と思う次第である。以下理由。 JavaScript, GUI設計の今 JSはそのプラットフォーム特性上、あらゆる言語の使用者の、あらゆる不満が集まる場所で、ヘイトを集めやすい環境だと思う。近年は npm というプラットフォームの登場でエコシステムが生まれ、思いつく限りあらゆるメソッドが適用されてきた。貧弱な言語基盤だが、その中で生き残った方法論が、今一番GUIの課題を上手く扱えている、と自分は考えている。 React/ReduxAngular によって、Flux/MVVMという抽象パターンが枯れてきたように思う。(この際、現場はまだ jQuery だぞ、みたいな話は無視する)。要は View は State の写像である、ということに尽きる。State はシリアライズ可能(JSON)で、Flux Action/Rx.Observable の Event Stream を入力とし、それ

    やはりHTML/DOMは再発明されるべきじゃないか - mizchi's blog
    houyhnhm
    houyhnhm 2017/10/02
    レンダリングエンジンとJSエンジンに手を入れる必要が出て来てかなりしんどそう。というか、段階的なシフトのイメージが出来ない。いや、まー、それやり始めたらNativeでいいじゃんとかになりそうなのは置いといて。
  • ロックイン - mizchi's blog

    Rebuild.fm の mirakui さんの回聴いてたんだけど、インフラの世界観だと、ロックインさせたい Amazon/Google VS 自由を手に入れたいDocker みたいな構図がある、な話があって、思うところがあった。 rebuild.fm 勿論、話はそう単純じゃないし、それぞれがそれぞれの成果を利用しあってるので、どっちが正義だみたいな話にはならない。第三者目線としては、寡占にならず競争が続くのが望ましい。僕個人の意見としては、金が生まれるところには、正しく金が生まれてほしい。それで全体としての健全性が育まれるなら。日にいてあんまり面白くないのは、その辺の基盤技術に関われる機会があんまりないことだが…。 とはいえ、利用者目線としては、できるだけ自由なポジショニングを可能な限り選び続けるべき。だが、自由を手に入れるには、それだけの知識が必要となるし、そこを諦めたところをアウト

    ロックイン - mizchi's blog
    houyhnhm
    houyhnhm 2017/02/22
    ある程度パフォーマンス上有利になりそうな所は共通化出来るんだが、下手すると各DB向けオプティマイザーを作る羽目になるのでなあ。
  • 半年ほどHTC Viveで遊んだVRコンテンツの感想 - mizchi's blog

    半年前に買った。HTC Vive、GTX980、ルームスケール2.5m x 2.3m。という環境で遊んでる。Oculus は最初のDK1を触ったはずだが、よく覚えていない。 大雑把な感想 何にも変えがたいのは、映像を見ているのではなく、自分が映像に入り込んでいる、という錯覚。これは体験するまで半信半疑だったが、これだけで10万以上払った甲斐はあったと思う。 HMD、コントローラーともにトラッキング性能に不満はない。自分が映像の中に入っていて、かつその中のエレメントとインタラクティブに触れたりできる、というのは、ここまで来ると触覚がないのが嘘のよう。VRは、没入感を高めるために、周辺機器を揃えたくなるので、その周辺の市場も育ちそうではある。ただ機材を前提にすると体験できる人が減っていく問題もありそう。 不満 問題もたくさんあって、それ用の空間を用意して、部屋を掃除するのがだるい、というルンバ

    半年ほどHTC Viveで遊んだVRコンテンツの感想 - mizchi's blog
    houyhnhm
    houyhnhm 2017/01/11
    ざっと見ると、「VR内移動が違和感ある」「つまり女性の裸を色々な角度から見れるという意味でのアダルトコンテンツ最強」・・・・・・USBのアレと連動させるとかするとスゴそう。
  • スターエンジニアはキラーアプリを生み出すのか? - mizchi's blog

    Web技術界隈著名人の残念さ具合 - thinkchangの日々日誌 は内容自体はどうしようもないのだけど、テーマ自体は自分も日頃悩んでいたものなので書き出してみる。あ、そういえば行方不明のmalaさんは一昨日のハッカソンで振り向いたらいたんで大丈夫です。 キラーアプリの出現と技術的イノベーションに相関あるかと言われたらあるとは思うけど枯れた技術の水平思考的な余地も十分あるんでキラーアプリが必ずしも技術的なイノベーションを果たしている必要はない。ただし技術優位がない場合は企画レベルで制限かかるので、それを許容するかどうかという話— 賢さを上げて法で殴る (@mizchi) 2015, 8月 24 技術的イノベーションによって可能になったサービスはたくさんあって、たとえばデータベースを使った動的なウェブサービス、2000年前ごろにPerl CGIが現実的な速度で動くようになってから増えた

    スターエンジニアはキラーアプリを生み出すのか? - mizchi's blog
  • 睡眠障害で辛い - mizchi's blog

    一緒に働いたことがある人は知ってると思うけど、自分は尋常じゃなく朝に弱い。 で、自分でもさすがに酷いと思っており、様々な努力をしたが改善せず、結局睡眠科をうけて睡眠障害だと診断された。 自分がそうだと疑った理由は 睡眠障害らしきものとわたしの20年間振り返りメモ - 青いの のおかげ。inoaoさんとは違うけど、自分は 睡眠相後退症候群 DSPSに罹患して9時5時生活を送ることは、毎日6時間の時差ぼけを体験しているようなものである。患者は週日には数時間しか眠ることができないので、週末には午後まで眠って睡眠時間を補うことがよくある。週末によく眠ったり、普段昼寝をしたりすることで、DSPS患者は昼間の眠気から解放されるが、遅い睡眠相はそのまま続く。 DSPS患者は、極端な夜型の傾向がある。彼らは、夜が最も頭が冴えていて、物事がうまくでき、創造力にも溢れていると感じる。彼らは単純に早く眠ることが

    睡眠障害で辛い - mizchi's blog
    houyhnhm
    houyhnhm 2015/07/31
    つらそー。
  • 修正: 意識高い系に食い物にされる学生プログラマ - mizchi's blog

    追記2 Sun Nov 23 2014 17:12:29 GMT+0900 (JST) 書いた時点でいくつか事実誤認があったようで、このまま変に拡散するよりも文を取り消させていただきます。情報が非常に限られた状態での思い込みで記事を書いてしまい、ご迷惑おかけしました。指摘してくださったはてブの皆様ありがとうございます。 今現在、この件についてなんらかの意見を持ってはいません。変に消すと誤解を生むので、記事自体は残しておきます。 追記1 Sun Nov 23 2014 15:28:27 GMT+0900 (JST) 全然追ってなかったけどブコメで2chの書き込みの件把握しました 自分も多少そうだったんだけど、政治とか意識高い系の学生団体とかがウヨウヨしてるキャンパスにプログラム多少書ける人間として通ったりしていると、君すごいね~とおだてられてああいうことに巻き込まれる確率高くなるんだけど、

    修正: 意識高い系に食い物にされる学生プログラマ - mizchi's blog
    houyhnhm
    houyhnhm 2014/11/23
    食い物というのは違うなあ。もうそれなりに自分のやった事の責任は背負う必要ある。
  • はてブオフのコンテキストがブっ壊されたこと - mizchi's blog

    今日は風邪で寝込んでたんだけど気分悪いついでにあの件胸糞悪いなと考えていたら頭がグルグルしだして、グワーと書き連ねてしまった。 最初に、僕はツイキャスを途中まで見ていた勢で、現場にはいなかった。某プロポーズのシーンは見ていないが、LTは見ている。 オフ会そのものの感想 最初に感じたのは、自分が大昔にTwitterをはじめたときの、あのグチャグチャな感じがあの場で再現されていて、やっぱり行けばよかったと思う程度には楽しそうだった。ネット越しに見知らぬ人が仲良くしているのをみたときに感じる、「けまらしさ」という感情を久しぶりに思い出した。 僕はああいう場が好きだ。別種の人間がぶつかる場所。異なる価値観同士が、お互いの価値観を手探りに伺う場所。全く知らない人間が集まる場所が提供されるのは、東京に出てきて当に良かったと思えるものの一つ。まあ僕がいったとしても、運営が1/3ほど知り合いだったからそ

    はてブオフのコンテキストがブっ壊されたこと - mizchi's blog
    houyhnhm
    houyhnhm 2014/07/15
    もうちょっと頑張ってほしい。
  • タッチタイピング矯正器としての無刻印キーボードが良いという話と、無刻印の辛い点 - mizchi's blog

    これみて思い出した。 私はブラインドタッチが出来ない - はてな村定点観測所 僕も昔は右手のホームポジションが右に一個ずれてた我流で、たまに手元見ながらタイピングしちゃう癖があったんだけど、HHKB無刻印にしたら綺麗なフォームになってたので、ちゃんとタッチタイピングしたい人はHHKB無刻印使うといいと思う。 PFU Happy Hacking Keyboard Professional2 墨/無刻印 英語配列 USBキーボード 静電容量無接点 UNIX配列 WINDOWS/MAC両対応 ブラック PD-KB400BN 出版社/メーカー: PFU発売日: 2006/03/23メディア: Personal Computers クリック: 192回この商品を含むブログ (23件) を見る HHKB無刻印炭、たしか前職で @shishi4tw が使ってるのみてあーこれカッコイイと思って買ったんだけ

    タッチタイピング矯正器としての無刻印キーボードが良いという話と、無刻印の辛い点 - mizchi's blog
    houyhnhm
    houyhnhm 2014/05/19
    記号は確かに辛いが、逆にそこまでブラインドタッチに拘らんからなあ。