タグ

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

  • さよなら CoffeeScript - mizchi's blog

    prototype.js が jQuery に置き換えられた時、開発者が気づいたのは、自分に当に必要だったのはprototypeのメソッド拡張などではなく、クエリエンジンだったということ。 coffeescriptが当初、熱狂的に支持された背景はなんだっただろう。今思えば、それはアロー記法とクラス構文だったと思う。 javascriptの関数型への憧れ、prototypeベースの限界 javascript は断じて関数型言語ではないが、他の言語と同じぐらい関数型言語に憧れていたのも、また事実だろう。しかしビルトイン関数が高階関数を要求するデザインにしては function というキーワードはながすぎたし、その function が暗黙に作り出す this スコープの複雑な振る舞いも開発者の悩みの種だった。「あらゆる関数スコープで状態を持つことが"できすぎる"」という割れ窓だった。 ES5

    さよなら CoffeeScript - mizchi's blog
    hiroshi_revolution
    hiroshi_revolution 2015/10/02
    さよなら CoffeeScript - mizchi's blog
  • YAPCで俺たちの夏が終わった - mizchi's blog

    これを書くことによってYAPCが終わる そもそも自分も発表申し込もうかなとは思ってたけど、@teppeis @koba04 @yosuke_furukawa @Jxck (敬称略)が喋る時点でJS方面の界隈としては役満感があったしみんなフロントエンドの話そこまでして聞きたくないやろ、という感じで申し込まなかった。彼らの話はどれも評判良かったのでめでたい。 1日目 朝起きれなかったのでラリー・ウォールみてない。 Matzのセッションとてもよくて「今日はRubyの話をしません」「ネタが尽きたのでRubyの話をします」「Rubyの言語デザインの最大の失敗はPerlの影響を受けたこと」というコンボがよかった。 質問タイム、「TypeScriptとかで動的型付けの言語に静的型のタイプヒンティングいれるの流行ってるけど、Ruby3.0のソフトタイピングは開発者支援とコンパイラ支援どっちを目指してますか

    YAPCで俺たちの夏が終わった - mizchi's blog
    hiroshi_revolution
    hiroshi_revolution 2015/08/24
    YAPCで俺たちの夏が終わった - mizchi's blog
  • JavaScriptの情報の仕入れ方 - mizchi's blog

    ぼくのフロントエンドの情報収集ソース | Yuhiisk みたけど多すぎて逆に機能不全になると思う。 自分が主に見てるのは次の2つ。 efclのはてなブックマーク JSer infoのazuさんのはてブ。 Echo JS - JavaScript News Hacker News のJS版みたいなもの これを読み流すんじゃなくて、LDRで一件一件丁寧にみてる。日語圏で再生産され続ける情報に意味があるもの少ないので、上流とまとめだけみればよい。

    JavaScriptの情報の仕入れ方 - mizchi's blog
    hiroshi_revolution
    hiroshi_revolution 2015/07/09
    JavaScriptの情報の仕入れ方 - mizchi's blog
  • Flux設計論 - mizchi's blog

    scala.jsの実用が真面目にペイされる環境を考えると、jsとscalaのアダプタ部分を考える俺と、scalaレベルで何ができて何ができてないか考える俺が二人いればプロダクションで成立しそう— ガソリンの味 (@mizchi) 2015, 4月 28 Scala.jsが生きる場所、たとえば次のプロジェクトはウェブ版シムシティを作ることですって言われたら、ドメイン部分がピュアでかつ複雑になるのでScala.jsを選択するのはありだと思う— ガソリンの味 (@mizchi) 2015, 4月 28 ドメインがピュアでかつ複雑、基的にatljsが活かせる部分なので、人によってはpurescript選んでもよいわけだし— ガソリンの味 (@mizchi) 2015, 4月 28 アダプタの書き方が altjs => js か js => altjsかで運用勘が結構変わる— ガソリンの味 (@m

    Flux設計論 - mizchi's blog
    hiroshi_revolution
    hiroshi_revolution 2015/04/28
    Flux設計論 - mizchi's blog
  • Rebuild.fm#66 にちょっとだけ出演した、ちょっとだけな #rebuildfm - mizchi's blog

    なんかいろいろあってIncrements社全員でサンフランシスコにいる。 ここがgoople村 pic.twitter.com/JlPfYYLKQM— 主語 (@mizchi) 2014, 11月 7 @miyagawa さんみた— 主語 (@mizchi) 2014, 11月 5 ホテルの部屋割りが僕と r7kamura が同じ部屋で、この部屋でmiyagawaさんとr7kamuraがrebuild.fmの収録がはじまり、Aftershowで呼ばれたのでちょろっとしゃべった。nodeエコシステムとrubyの関係とか口走った気がする。 #rebuildfm 収録風景です pic.twitter.com/uJy43ZFZTk— 主語 (@mizchi) 2014, 11月 8 (ルームサービス来そうだったのでDon’t disturb 掛けといた) #rebuildfm— 主語 (@mizc

    Rebuild.fm#66 にちょっとだけ出演した、ちょっとだけな #rebuildfm - mizchi's blog
    hiroshi_revolution
    hiroshi_revolution 2014/11/09
    Rebuild.fm#66 にちょっとだけ出演した #rebuildfm - mizchi's blog
  • 「JavaScriptエンジニア養成読本」でCoffeeScriptについて書いた - mizchi's blog

    kyo_agoさんに誘われて、CoffeeScriptについて1章書きました。 JavaScriptエンジニア養成読[Webアプリ開発の定番構成Backbone.js+CoffeeScript+Gruntを1冊で習得!]:書籍案内|技術評論社 他の章の紹介は他の著者さんに任せるとして、自分の書いた章について少し紹介。 JavaScriptエンジニア養成読を書きました - watilde's blog 実践的CoffeeScript CoffeeScriptの言語仕様について、初心者でも誤解しないよう、言語マニアでも新しく学びがあるように書いたつもりです。 とくにオブジェクトや配列のパターンマッチ、CoffeeScript特有のオブジェクト指向のイディオム、大規模開発時のディレクトリ構成について実例を交えて書きました。 たとえばこんなコード module.exports = class

    「JavaScriptエンジニア養成読本」でCoffeeScriptについて書いた - mizchi's blog
    hiroshi_revolution
    hiroshi_revolution 2014/10/08
    「JavaScriptエンジニア養成読本」でCoffeeScriptについて書いた - mizchi's blog
  • node.jsで Isomorphic フレームワーク作ってみようとしたら超辛かった - mizchi's blog

    現状どんな実装があるかはここみてください Isomorphic JavaScript - The future of web app development 主張 Node.jsは現状フロントエンドユーティリティに最も適している Node.jsは一般にサーバーサイドでの運用は難しいし、自分もそう思う どうせやるなら、Node.jsにしかできないことをやるべきだ Node.jsのキラーアプリはRailsクローンではなく単体ソースからクライアント・サーバーのコードを同時に生成するIsomorphicフレームワークであるべきだ。 これだけは他のフレームワークには絶対に真似できないので、一応可能性は検証すべきだ 自分で実装することで、MeteorとかDerbyはなぜうまくいってないのかも考えたい というわけで Isomorphicなフレームワークを自分で作ってみたいと思っていた。 今ならせめてCo

    node.jsで Isomorphic フレームワーク作ってみようとしたら超辛かった - mizchi's blog
    hiroshi_revolution
    hiroshi_revolution 2014/10/08
    node.jsで Isomorphic フレームワーク作ってみようとしたら超辛かった - 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
    hiroshi_revolution
    hiroshi_revolution 2014/10/06
    Angularが嫌い - mizchi's blog
  • 未来の大統一言語を妄想する - mizchi's blog

    未来では全てのプログラミング言語が1つになる? : ギズモード・ジャパン これ読んでwyvern調べてみたけどJVM言語ですごいがっかりした。wyvernlang/wyvern そういえば昨日LLDiverっていう軽量言語のイベントに出て喋ったりしてたんだけど、大統一言語ってどうよ?って話があって、まあ現時点じゃよくわかんないよねって感じだった。 「俺が考えた最強の言語」 以下、自分の理想です。現実は甘くないのはわかってる。妄想なのでマジレスは控えるように。 内部表現はLispのS式で、文法拡張マクロを持つ 意味的論型システムと、機械的なバッファサイズとしての型システムは分離 定理証明とか型理論とかは隔離しないと永遠に(議論もコンパイル時間も)終わらない気がする 推論器とかどうするんだって気はするが… ATS言語とかそうなんだっけ? 最適化レベル/ランタイム方式/意味論的型システム/文法マ

    未来の大統一言語を妄想する - mizchi's blog
    hiroshi_revolution
    hiroshi_revolution 2014/08/24
    未来の大統一言語を妄想する - mizchi's blog
  • バグ動画みると心が落ち着く - mizchi's blog

    ニコ動の中でとにかくバグ動画だけ見続けてて、若干病んでる気がしてきたけど、やっぱり好きなモノは好きで、紹介する。 コンテキスト ヒテッマンリスペクト、ヒテッマンが元々ハイコンテクストなコンテンツだったのが、家がいなくなってよりハイコンテクストになって、外野から何がなんだかわからん感じになってる。好きだけど。— 片手間以上 (@mizchi) 2014, 7月 7 ヒテッマン氏はニコ動でひたすらチートコードでゲームに意図的にバグ発生させてそれを動画にして一大ジャンル作った人なんだけど、人が失踪してからファンがヒテッマンリスペクトタグで動画上げ始めて、家で生まれた名言がそのまま使われてるんだけど、家が消失しているので今からだと辿れない— 片手間以上 (@mizchi) 2014, 7月 7 バグ動画みるの、スプライトのぶっ壊れ方でどうやってゲームが作られてるかわかるし、綱渡り的に作られ

    バグ動画みると心が落ち着く - mizchi's blog
    hiroshi_revolution
    hiroshi_revolution 2014/07/08
    バグ動画みると心が落ち着く - mizchi's blog
  • Haxe知見 - mizchi's blog

    昔一度調べたんだけど、2系以来で2年ぶり2度目。 前提 自分はrobotlegsでのFlash経験があるJSerです。 セカンドインプレッション 昔と比べて生成されるコードがすごく綺麗になった 同窓会で会った幼馴染が綺麗になってたみたいな感じだった たぶん今なら生成したコードをJavaScript側から触るのも問題ないのでは (ライブラリ呼ばない限り)コードサイズも小さいのでnpm/bowerライブラリとかでも使えそう TypeScriptに慣れたあとに触るとコンパイル爆速すぎてウケる ウケる… でも「Haxeは速度を気にしてOCamlなんです!」って主張、OCamlで書くようなケースはだいたいOCamlそれ自身で書くことそれ自体が目標なのでは…(じゃなきゃC++になるだろうし) 文法的に気に入らない点は Arrow Functionがないこと ForumにIssueあるけど2年ぐらい放置

    Haxe知見 - mizchi's blog
    hiroshi_revolution
    hiroshi_revolution 2014/06/29
    Haxe知見 - mizchi's blog
  • JavaScriptで最近試そうとしてるライブラリ - mizchi's blog

    を晒すことで俺以外が試してくれるかもしれない!というのは置いといて、現在の知見です。 MV* React | A JavaScript library for building user interfaces Facebook製データバインディング。jsxという謎拡張子に目をつむれば未来を感じる設計。とにかく生DOM触りたくないという気概を感じる。 Welcome - Polymer Google製WebComponent。WebComponent使うならこれが有望株っぽい。 component/component MV* とはちょっと違うけどCSS/JavaScript/HTML まとめてライブラリにできる。JavaScript以外もライブラリに含む際は有望。 何がしたいかはt_wadaさんがまとめてくれたtogetterみてください。Web フロントエンド開発用パッケージマネージャ c

    JavaScriptで最近試そうとしてるライブラリ - mizchi's blog
    hiroshi_revolution
    hiroshi_revolution 2014/06/26
    JavaScriptで最近試そうとしてるライブラリ - mizchi's blog
  • altjs武闘会で得られた知見 あるいはTypedCoffeeScriptの進捗と、TypeScriptリファレンスについて - mizchi's blog

    vvakameさんに誘われて、どのAltjsが最強か殴りあう会合に参加してきた。 当日の資料やどんな様子だったかはこちら。 天下一altJS武闘会 - 資料一覧 - connpass 天下一altJS武闘会 - Togetterまとめ で、TypedCoffeeScriptについて発表してきた。自分の発表資料はこれ。 基的な思想とコードを載せてるので、TypedCoffeeScript気になる人はここに載ってるとおりに遊んだらいいと思う。 小学生並みの感想 遅刻しました(完) 自分の発表は淡々としすぎてたのでもっとネタに走ればよかった。でも Altjsのモチベーションは型システムへ ぶっちゃけ構文拡張程度のAltjsはもう皆飽きてて、coffeeでお腹いっぱい感があった。動的型付けのaltjsは、他の動的型付け言語の変換ぐらいしかもう目がないような気がする。 で、後半のパネルディスカッシ

    altjs武闘会で得られた知見 あるいはTypedCoffeeScriptの進捗と、TypeScriptリファレンスについて - mizchi's blog
    hiroshi_revolution
    hiroshi_revolution 2014/06/11
    altjs武闘会で得られた知見 あるいはTypedCoffeeScriptの進捗と、TypeScriptリファレンスについて - mizchi's blog
  • 1989年前後生まれのブロガー ウェブエンジニア編 - mizchi's blog

    1989年前後生まれ世代のブログをまとめたい - ぐるりみち。 これみて、自分は88年なんだけど、エンジニア界隈って、観測側がすごい偏ってて、とりあえず自分が知ってる情報だけでまとめてみようと思った。自分の観測範囲の影響で88が多い。 hitode909の日記 @hitode909。たしか88らへん。はてなブログ開発チーム。 $shibayu36->blog; @shiba_yu36。しばゆーさん。はてなブログ開発チーム 未読の故意 @uasi。最近大学院を退学していた気がします。Qiita社。 ギークに憧れて @hotchemi。彼も僕と一緒で転職時にホッテントリで炎上してましたが、大学の同期(学部違うけど)だったような気がします。所属はたぶん非公開。 銀の人のメモ帳 @gin0606。彼も僕と一緒で転職時にホッテントリで炎上してましたが、大学の同期(学部も同じ)だったような気がします。

    1989年前後生まれのブロガー ウェブエンジニア編 - mizchi's blog
    hiroshi_revolution
    hiroshi_revolution 2014/06/03
    1989年前後生まれのブロガー ウェブエンジニア編 - mizchi's blog
  • GithubKaigi 感想 #githubkaigi - mizchi's blog

    昨日知ったんだけどAtomの作者きてて、Atomのコード全部読んだマンとしては懇親会で凸せざるを得なかった。英語がたまに通じなかったりしたんだけど、Qiitaの @yaotti さんに手伝ってもらったりして助かった。学びがあった。 Github Issue #githubkaigi うちもGithub Issuesで管理しているけど、Assigneeの変更ログとかタイトル変更のログが残ってくれたらもっと便利だと思うんですよ(チラッ— 俺は平気だよ (@mizchi) 2014, 6月 1 Githubで働くことについて #githubkaigi エンジニアがドッグフーディングできるプロダクトがある会社羨ましいと思う— 俺は平気だよ (@mizchi) 2014, 6月 1 リモートワークについて よい / Everything should have an URL #githubkaigi

    GithubKaigi 感想 #githubkaigi - mizchi's blog
    hiroshi_revolution
    hiroshi_revolution 2014/06/02
    GithubKaigi 感想 #githubkaigi - mizchi's blog
  • モバイル環境でDOM挿入する時innerHTMLとappendNodeどっちが速いの?という話 - mizchi's blog

    面白かったので紹介。 Mika Raento's Tech Blog: innerHTML vs appendNode vs DocumentFragment - Optimizing bulk DOM operations for mobile まあ正確に言うとDocumentFragmentの比較もあるんだけど、ベンチ上appendNodeと違いはないのでタイトルからは割愛。 結論 普通はappendNodeが速いけど、要素数を多くすると徐々にinnerHTMLに分がでてくる。均衡点は1000ノード。 ベンチマーク 上の記事から図を引用 これは自分の予想だけど、要素が多くなるにつれappendNodeのDOMとのネイティブのブリッジを経由するのがボトルネックになる。innerHTMLはパーサのコスト+appendNode一回分。 誰が気にするの テンプレートエンジン作者は気にすると良さ

    モバイル環境でDOM挿入する時innerHTMLとappendNodeどっちが速いの?という話 - mizchi's blog
    hiroshi_revolution
    hiroshi_revolution 2014/05/20
    モバイル環境でDOM挿入する時innerHTMLとappendNodeどっちが速いの?という話 - mizchi's blog
  • タッチタイピング矯正器としての無刻印キーボードが良いという話と、無刻印の辛い点 - 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
    hiroshi_revolution
    hiroshi_revolution 2014/05/19
    タッチタイピング矯正器としての無刻印キーボードが良いという話と、無刻印の辛い点 - mizchi's blog
  • 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
    hiroshi_revolution
    hiroshi_revolution 2014/05/18
    TypeScriptのd.tsパースして型情報を抜き出すの作った - 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
    hiroshi_revolution
    hiroshi_revolution 2014/05/16
    最小最速で作るaltjs - mizchi's blog
  • 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
    hiroshi_revolution
    hiroshi_revolution 2014/05/03
    Promise時代のJavaScriptの関数の処理/提供 - mizchi's blog