タグ

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

  • キーボードの配列をDvorakにしてみた - mizchi's blog

    昔からずっとqwertyの非効率さは感じていて、前々からやろうと思っていたのだけど、仕事中にやるとおそらく仕事がまったくすすまなくなり、ストレスでヤバくなるということはわかっていたので、この連休中に覚えてしまおうと思った。 今は二日目 なぜ Dvorak か 英文入力において、QWERTY配列と比べて上段と下段の使用頻度が低くなるように設計されている。 そのためQWERTY配列に比べて、英文入力における指の移動距離を短くすることができる。この特徴から、腱鞘炎などの予防に効果があるとされる。 母音は左手に集中しており、英文の入力において母音に連接しやすく高頻度で使う子音ほど、右手に集中している。 このために右、左、右、左とリズミカルに打鍵できる確率が高まり、QWERTY配列に比べて高速かつ効率的な入力が可能であるとされる。キーボードをタイプする速さの世界記録は、この配列を利用する者によって樹

    キーボードの配列をDvorakにしてみた - mizchi's blog
  • なぜ僕は(2015年のフロントエンドで、makeではなく)gulpを選ぶのか - mizchi's blog

    http://d.hatena.ne.jp/m-hiyama/20150511/1431306678 の件 最初に 僕もgulpが今後生き残るかというと、かなり懐疑的です。開発パラダイムに合わせて変わっていくで、来年の段階で自分はgulp使えないなといっている可能性は十二分にあります。そのタイミングの一つはES6 import がHTTP2で並列ロードのオーバーヘッド無しで解決されるようになるタイミングでしょう。 根的な問題として、Web周りは標準化の関係で動きが遅いです。最新の仕様ではままならず、ブラウザ間の実装がまちまちで、また開発上の要求が多様なのでプリプロセッサで解決する文化が根付きました。プリプロセッサがいらなくなるぐらい個々の標準が洗練されればプリプロセッサも不要になりますが、そのような未来は、今の動きをみるに、あと15年は来ないように思えます。 とはいえ、ただひとつ言えるの

    なぜ僕は(2015年のフロントエンドで、makeではなく)gulpを選ぶのか - mizchi's blog
  • プロトタイピングと仮デザイン指針 - mizchi's blog

    プロトタイピングにあたって考えたこと プロトタイピングの目的を損ねない 目的: 機能性の担保 以上の目的にあわないものは優先度を落とす やりすぎると実装の邪魔 どこからどこからが機能性? ユーザー目線で: UIを通して画面に副作用が起きること 開発者視点で: 内部の論理モデルが正しく動くこと デザインとの境界領域 レイアウトや余白の間隔は、機能としての実現性に直結するので機能に含む できるだけテキストボタンじゃなくてfont-awesomeとかを使う アイコン選定は適当でいい(どうせ変えられるし) レスポンシブは難しいので最初に真面目に設計する or 最初は一切考えない 実装者のCSS習熟度によるけど最初は固定幅とかが楽 開発中の未定義領域 ドッグフーディングで感じた小さい不満はその場で直す。プロトタイピング中に感じたものはたぶん正しいという前提 たとえば、ローディングアニメーションや確

    プロトタイピングと仮デザイン指針 - mizchi's blog
  • 一週間自宅のみでリモートワークしてみたけど働き過ぎた - mizchi's blog

    Increments社は元々月曜日がリモートワークの日なんだけど、今週と来週は実験的にリモートワークすることになっている。 家を出てオシャレなカフェで作業したがる人も多いだけど、自分はあんまり外にでる理由がなければ家から出たくないタイプの人間なのと、今週前半は雨が降ってたというのもあって、昼飯買いに行く以外は完全に家で作業していた。 結果 正直なところ、自分はサボりぐせがある人間だと思っていたのだけど、目の前にしかかりのものが放置されるのが我慢できない凝り性でもあって、今回は凝り性な部分が勝ってしまい、完全に仕事しすぎた。 仕事しすぎたので進捗は最高に進んでいるんだけど、夜中まで働いてしまって、午前中はボッーとしている、みたいなことが多くて、オフィスに出る日だったら完全に駄目な感じだった。リモートなので朝ボーっとしているのがクリティカルになることはなかった気がする。 結果として今週めっちゃ

    一週間自宅のみでリモートワークしてみたけど働き過ぎた - mizchi's blog
  • Object.observeのGoogle Chromeでの先行実装とAngularについて - mizchi's blog

    読みました。 Angularが好き - Can I do web? https://twitter.com/agektmr/status/519128909695045633 僕の中で、Object.observe なんてどうみてもangularのためじゃんって雰囲気が最初からあって、あまりにも当前だと思っていたので、さも事実のように書いてしまってました。 実際に検索してみたところ、その関係に実際に言及するような資料は発見できませんでした。この点は僕の想像でした。申し訳ありません。 ですが、検索すると僕以外にも多くの人がそう思っており、それなりに根拠もあります。なぜそう思っていたのか、その理由を提示します。 2012/06 Angularの公開リリース 2012/11 Object.observeの仕様の初出 http://wiki.ecmascript.org/doku.php?id=h

    Object.observeのGoogle Chromeでの先行実装とAngularについて - mizchi's blog
  • Angularが嫌い - mizchi's blog

    僕は当にAngularが嫌いで、もはや許せないレベルに達していて、今ではもう当に使いたくない。 イカ理由。 APIがほんっっっっっとうに糞 趣味の問題といえばそうでもあるが僕は糞だと思う 実装が黒魔術 良識あるJSエンジニアなら Function.prototype.toString() しない 実際に一部のクロージャが破壊されてて挙動が直感に反する DirtyCheckの実装、表面的にもDirtyな挙動として現れるのでデータバインドとして何も嬉しくない Googleだから許される、みたいなコミュニティの驕りが当に嫌 Angularの都合だけでChromeでObject.observeを前倒しするのやめろ Angularの内部モジュール同士が密結合 DI, module, factory, それぞれ大きなテーマなのに密結合 使いはじめるとAngularをやめることが困難 パフォーマン

    Angularが嫌い - mizchi's blog
  • LDRがなくなるとのことで俺用フィードリーダー作った - mizchi's blog

    2日で作った。昨日から無職なので手が空いてたのもある。 こんなの mizchi/my-feed-reader 概要 nodeでクローラ100行、サーバー40行、クライアント400行ぐらい。テストはない。cssもない。 認証とかなくて、ローカルで動かすの前提。LDRのexport.xml(opml)を読み込む。詳しくはREADMEで。 jksaでフィードを移動する。sで飛ばした時に未読フラグつけてる。oでバックグラウンドで開く。 大事なことなんだけど、マウス操作は一切対応してない。 データベースは使ってない。サーバーでインメモリで抱えてる分だけ降ってきて、既読管理は最後に読んだフィードの更新日時をlocalStorageで持ってて新規フィードもらうたびに比較してる。雑な設計。 技術的な話 Koa, React, Generatorとか自分が使いたい技術を適当に使った。 Reactで雑に作るの

    LDRがなくなるとのことで俺用フィードリーダー作った - mizchi's blog
  • あなたがReactを使うべき理由 - mizchi's blog

    最近フロントエンドでfacebook/reactをずっと使っている。世界的には一部のエンジニアの間で流行っているのだが、国内だとqiitaのタグ等を見てもどうも少ない。みんなもっと使うべきだと思うので、宣伝かねて意見をまとめてみる。 複雑化するデータバインドに対する懸念 MVWのVに対して思いを馳せると、だいたい次のことに行き着く。すなわち、「ある構造体の入力に対して、必ず一意なビューを生成したい」 {items: [1, 2, 3]} を入力とすると、 1, 2, 3のli要素になってほしい。これは単純な例だから問題に成り得ないように見えるが、アプリケーション全体の状態を一つのjsonとして定義し、 そこから常に0から組み立てればアプリケーションの健全性が確保できると考えたことはないだろうか? 現実の問題 UIのだいたいの状態は遷移で表現される。遷移の差分をプログラマが記述する。jQue

    あなたがReactを使うべき理由 - mizchi's blog
  • 最小最速で作るaltjs - mizchi's blog

    最近、というか昨日からTypedCoffeeScriptの開発再開してAST 気分が盛り上がってるので、簡単なチュートリアルでも。 この記事でやること ASTの取得 ASTの生成 JavaScript の出力 やらないこと 構文解析 準備 適当にプロジェクト作ります。 $ mkdir tinyaltjs $ cd tinyaltjs $ npm init # 色々聞かれるけどEnter 連打で良い $ npm install escodegen esprima prettyjson --save esprima はJavaScript のコードをASTに変換。 escodegen は AST から JavaScript を生成。どっちもConstellationさん製 escodegenはConstellationさん製で、彼はesprimaにもコミットしてます。この界隈に来ると基的に彼

    最小最速で作るaltjs - mizchi's blog
  • Swift ファーストインプレッション - mizchi's blog

    とりあえずThe Swift Programming Language読んで、実際に自分で少し書いてみた感想。 諸事情でAppleにiOSデベロッパーとしてお布施していたので Xcode6beta落として少し書いてみた。プロジェクトスケルトンをswiftで生成できるので、そのコードを眺めたりしていた。 ファーストインプレッション Immutable脳の人が設計したっぽい。 スクリプト言語っぽい構文に、型注釈。これはGoとシンタックス上の設計思想が似ているんだと思う。 基的にImmutableな設計でありながら、オブジェクト指向を採用しており、Scalaっぽいマルチパラダイム感がある。Scalaの人は好きになりそう。 型推論のおかげで動的型付け言語触ってきた人にも抵抗がない感じになってる。推論のおかげで静的型付け言語が動的型っぽくみえるのはHaskellとかOCaml方面の雰囲気。 LLV

    Swift ファーストインプレッション - mizchi's blog
    nsyee
    nsyee 2014/06/03
  • TypeScriptのd.tsパースして型情報を抜き出すの作った - mizchi's blog

    土日使って気合で作った。 mizchi/dts-parser とりあえずlib.d.tsがパースできたのでだいたいのものはパースできると思う。 パース結果のファイルサイズが大きすぎてバイナリ扱いされてて笑った。 https://raw.githubusercontent.com/mizchi/dts-parser/master/lib.d.ts.parsed 使い方 こんな型定義dummy.d.tsが declare module Foo { export function fun(str: string):void; export function funfun(str: string):void; export var a:number, b: Object; export var c: Object; export class Bar { f():string; x: any; }

    TypeScriptのd.tsパースして型情報を抜き出すの作った - mizchi's blog
  • 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
    nsyee
    nsyee 2014/05/12
  • Promise時代のJavaScriptの関数の処理/提供 - mizchi's blog

    最近自分で非同期前提のプラグイン書くときはThenableな感じで書いてることが多い。 Thenableってのはどういうことかというと、typescirptのes6-promises では次のように定義してある。 interface Thenable<R> { then<U>(onFulfilled: (value: R) => Thenable<U>, onRejected: (error: any) => Thenable<U>): Thenable<U>; then<U>(onFulfilled: (value: R) => Thenable<U>, onRejected?: (error: any) => U): Thenable<U>; then<U>(onFulfilled: (value: R) => U, onRejected: (error: any) => Thenab

    Promise時代のJavaScriptの関数の処理/提供 - mizchi's blog
  • JavaScriptの生きてるundefinedと死んでるundefined - mizchi's blog

    JavaScriptの悪魔的な振る舞いの一つにundefinedがあると思う。 javascriptには存在するundefinedと存在しないundefinedがあるし、それはつまり [undefined].length => 1 だ— 俺は平気だよ (@mizchi) 2014, 4月 22 JavaScript、[undefined].length => 1 で arr = []; arr[0] = undefined; だけど、このとき前者のundefinedと後者のundefinedは性質的には別物ですよ— 俺は平気だよ (@mizchi) 2014, 4月 22 もう一つの例として、 obj = {}; のとき obj[‘a’] = undefined したとき、for i in obj するとイテレータが一回だけ回る。obj[‘a’] = undefined しても キーは消え

    JavaScriptの生きてるundefinedと死んでるundefined - mizchi's blog
  • markdown->TeXの変換だけで卒論を仕上げるのに便利だったツール10個まとめ - mizchi's blog

    卒論書き上がったので環境を後続の人類のためにどうやって作ったかメモっておく。 環境はMacだったけどMacTeX以外たぶんLinuxでもいける。その指導教員に入れられたmacportsのTeXTeXShopを窓から投げ捨てろ。というのが要旨。 MacTeX MacTeX - TeX Users Group http://tug.org/mactex/ 2014年において他の環境を入れる必然性は殆ど無い。これ一。 iconv この時代sjisを扱うのは人生をムダにするだけなので、研究室の秘伝タレたるtexもまずutf8に変換。 その後 ¥ を \ に置換するのは必要だったけどオプションでどうにかなるのかもしれない。 iconv -s -f SHIFT_JIS -t UTF-8 hoge.sty > hoge.utf8.sty pandoc markdowntexに変換できるツール。革命

    markdown->TeXの変換だけで卒論を仕上げるのに便利だったツール10個まとめ - mizchi's blog
  • 型付きcoffees-scriptを作り始めた - mizchi's blog

    たぶん僕は人類の怠惰を極めたようなcoffee-scriptの文法が好きすぎるのだけど、その結果型を書けるcoffee-scriptを作り始めてしまった。 Fork元はCoffeeScriptRedux mizchi/CoffeeScriptRedux https://github.com/mizchi/CoffeeScriptRedux/tree/type とりあえず今の版だと次のコードが通る。 目標 x :: Number = 3 y :: String = "hello" z :: Boolean = false # z :: String = 4 #=> Error # y = x #=> Error a :: Any = 3 a = 'fadfa' b = 'a' fn :: Function = -> x = 3 n = -> i = '' f2 :: Function = (

    型付きcoffees-scriptを作り始めた - mizchi's blog
  • 1