ESDocという(多分)モダンなドキュメンテーションツールの紹介

こんにちは丸山@h13i32maruです。 僕は2015年からESDoc*1というJavaScript向けのドキュメンテーションツールを開発しています。 https://esdoc.org https://github.com/esdoc/esdoc Star 最初のリリースから2年、昨日ようやくv1.0をリリースできました いや…

FlowとTypeScriptをESDocで使用する

ESDoc v1.0をリリースするために、機能をプラグイン化してコアと周辺機能を分離しています。 https://github.com/esdoc/esdoc-plugins この作業は大体終わり、現在はよりadvancedなプラグインのPoCを作成しています。 そこで、今回はFlowとTypeScriptをESDoc…

「チームでプロダクト開発するための取り組み」の補足

昨日、Cookpad TechConf 2017にて「チームでプロダクト開発するための取り組み」というタイトルで登壇しました。 speakerdeck.com www.youtube.com 発表後にTwitterをエゴサーチしてると、評判が良かったようで一安心していました。 しかしその評判が想像以…

GitHub用のIssue Reader「Jasper」の開発を振り返ってみる

この記事はElectron Advent Calendar 2016の11日目の記事です。 この記事では僕がプライベートで開発しているJasperというGitHub用のIssue Readerについて書きました。 JasperはElectronで作られており、どういうものかを一行で説明すると「任意の条件にマッ…

Jasperの便利な使い方

概要 JasperはGitHub/GHE専用のissueリーダーです。 メールクライアントやRSSリーダーに似ており、未読管理やスターをつけたり、アーカイブしたりということができます。 これらのクライアントと同じような操作感を実現するために、JasperはStreamと呼ばれる…

JasperというGitHub Issue Readerを作りました

先にまとめを書いておきます GitHubの大量のIssue/PRを効率的に閲覧できるJasperというソフトウェアを作りました 閲覧したいIssueのStream(RSSフィードみたいなもの)を好きな条件で作成することができます 条件はメンションされた、作成した、特定のリポジト…

2015年の振り返り

仕事 サービス開発 クックパッドに入社してもうすぐ丸二年になります。今期から会員事業部に移動しました。 この部署(にかぎらずですが)には優秀な人ばかりで、どの人との出会いもすごく刺激になりました。 特に森田さんという人がやばくて(褒め言葉)、ああ…

東京Node学園祭2015でESDocについて発表してきました

こんにちは丸山@h13i32maruです。 昨日、東京Node学園祭2015というNode.jsについての国内最大のイベントがありました。参加人数は400人くらいで、海外からも有名なゲスト招いており、2トラック同時並行で行われるというイベントでした。運営のみなさん本当に…

ESDocというJavaScript向けのAPIドキュメントツールを作りました

こんにちは丸山@h13i32maruです。 昨日、ESDocというツールをリリースしました。GW中になんとかリリースできて一息ついているところです。今回はそのESDocというツールについて紹介します。あと最後に雑談と宣伝があります。 ESDocとは? ESDocとはJavaScrip…

ES6はクラスベース?プロトタイプベース?

こんにちは丸山@h13i32maruです。 ES6(ES2015)にclassシンタックスが入って、あー、すごい書きやすくなったなぁ、読みやすくなったなぁと思ってclassシンタックスのありがたみを噛み締めながらコードを書いています。 そんなときに ES6にclassシンタックスが…

AirbnbのES6スタイルガイドを読んで

こんにちは丸山@h13i32maruです。 ES6の仕様がRC4になっており、正式リリースを今か今かと待ちわびている。とはいえもう個人で書くコードはES6一択。ES5には戻れない(それにしてもBabelの勢いがすごい)。 そんな感じでES6を書いてるわけだけど、つい先日にAi…

WHATWG Streams APIについてのメモ

こんにちは丸山@h13i32maruです。 WHATWG Streams APIを少し触ってみたので、そのメモです。 ドキュメント WHATWG Streams このメモはLast Updated 21 January 2015を元に書いた whatwg/streams サンプルやリファレンス実装などがある このメモはcommit 8799…

ES6でWebブラウザ向けにアプリを作るためのスケルトン

こんにちは丸山@h13i32maruです。 最近ES6で色々書くことが多いので、自分用にスケルトンを作りました。 h13i32maru/es6-skeleton 採用したスタックはこんな感じです。 ES6 6to5 Module Browserify Test mocha power-assert karma Doc JSDoc3 CI Travis CI …

エンジニア的弁当作り

こんにちは丸山@h13i32maruです。 「弁当男子」という言葉はGoogleトレンドによると、どうやら2009年くらいから出てきた単語らしい。別にそのトレンドに乗っかったわけではないけど、僕も2010年5月から週2〜3回のペースで弁当を作っている(実は1年くらいお休…

ES6 Generatorを使ってasync/awaitを実装するメモ

こんにちは丸山@h13i32maruです。 ES6のGeneratorを勉強する題材としてasync/awaitを実装してみたので、そのメモです。 Genratorとは ES6のGeneratorとは「任意の時点で処理を中断/再開することができる関数」というもの。一般的にはコルーチン(coroutine)と…

モダンぽいJavaScriptテスト環境の構築メモ

こんにちは丸山@h13i32maruです。 ES6でアプリコード、テストコードを書いてテストをするための環境を作ったので、そのメモです。 目標 ES6で書いたアプリコードとテストコードをnpm run testでテストする 最終的な環境 最終的にはこんな環境になった。リポ…

Code Lunch Podcast #5

こんにちは丸山@h13i32maruです。 しばらくお休みしていたCode Lunch Podcastですが、昨日ひさびさに収録を行いました。 今回は@tenntennさんに来て頂いてLuaのデバッガやClojureによるAndroid開発の話をしました。 興味のある方は聞いてみてください。 http…

「技術は手段」について考える

こんにちは丸山@h13i32maruです。 「技術は手段」という言葉を聞くことが有ります。何が目的で何が手段かを忘れないようにして、あくまでも目的を重視して仕事などのプロジェクトを遂行するべきというフレーズとして使われているように思います。私の身の回…

丸山食堂

こんにちは丸山@h13i32maruです。 先日、知り合いのカフェで丸山食堂という名前で夜定食を出してきました。金曜、土曜の二日間だけでしたが非常に楽しくて勉強になり良い経験ができました。食べに来てくださった方々、協力していただいた方々本当にありがと…

Androidのdpについて

こんにちは丸山@h13i32maruです。 最近は2年ぶりくらいにAndroidを触る機会が増えてきました。そこで当時も曖昧のまま過ごしていたdpという単位についてまじめに考えてみたので、そのメモです。(間違っていたらごめんなさい) 背景 Androidは解像度、画角イン…

AndroidのCipher.java問題

こんにちは丸山@h13i32maruです 最近AndroidのCipher.javaで問題に遭遇して解決したので、そのメモです。 問題 AndroidでCipher.javaを使ってデータを暗号化するときに暗号化処理方式として[AES/CTR/PKCS5Padding]を使用するとAndroid4.4とそれ以外のAndroid…

KLab株式会社を退職しました

2月末でKLab株式会社を退職しました。2010/09/01に入社したので3年半働いていたことになります。長いようであっという間でした。プロジェクトも5つほど関わり非常に楽しく働けました。ということで未来の自分に向けた思い出話を書いておきます。 Androidアプ…

NavyJSというJavaScriptフレームワークとNavyCreatorというIDEを作りました

http://navyjs.org 今流行のMV*系(AngularJS/Ember.js/Knockout/Vue.js/Backboneなど)とは少し違った方向のフレームワークになっています。 NavyJS モバイル端末向けのフレームワークです View、レイアウト、SPA、アセット、画面ライフサイクルなどをサポー…

Heap Snapshotを使った時のsetIntervalの罠

Chrome DevtoolsにはHeap Snapshopという機能があり、この機能を使うと任意のタイミングでJavaScriptのメモリの詳細を見ることができます。インスタンスがどれだけ存在するかやどの変数から参照されているかなどがかなり細かくわかります。 このHeap Snapsho…

WebStormによるJavaScript開発のすすめ

Qiita JavaScript - Client Side - Advent Calendar 2013 12月20日の記事です。 みなさんはJavaScriptをどんなエディタで書いていますか?僕はこれまでVimで開発していたんですが、最近はもっぱらWebStorm(PhpStorm)を使ってJavaScriptを書いています。 とい…

rebuild.fmに憧れてCode Lunchという技術系ポッドキャストを録ってみました

@miyagawaさんが主催されているrebuild.fmというポッドキャストを最近よく聞いていて、職場の人とrebuild.fm面白いよねーって話をしていました。で、僕達でも真似してやってやってみない?というノリで僕(@h13i32maru)と@iizukakさんで録音してみました。内…

ブログを書くまでがHTML5 Conference 2013

2013/11/30にHTML5 Conference 2013が行われました。 運営の方々、スピーカーの方々お疲れ様でした。当日は風邪を引いてしまい、参加できなかったのですが、YouTubeでリアルタイムに見みることができて非常にありがたかったです。 で、ブログを書くまでがHTM…

HTML文字列に含まれるscriptを実行する

HTMLの文字列をXHRで動的に取得してきて、それをdocument.bodyなんかに突っ込む場合があると思います。 その時に文字列中にscriptタグが含まれる場合、elm.innerHTML = html;ってしてもscriptは実行されません。 jQuery.fn.loadはそのへんが考慮されていてsc…

GalaxyS4のWebViewで要素を削除しても表示が残るバグ

GalaxyS4のWebViewである要素をremoveChildしても画面に表示が残り続けるバグを踏みました。 removeChildした後に当該要素をquerySelectorしてみてもnullになるので、DOMツリー上からは消えてるみたい。 で、その要素がposition:absoluteだったのでおそらく…

Webフロントエンドのパフォーマンスチューニングについて

社内の勉強会でWebフロントエンドのパフォーマンスチューニングについて発表してきました。 Webフロントエンドパフォーマンスチューニング // Speaker Deck JavaScript、Chrome DevTools、チューニングのステップ、ボトルネック、ポイントなんかについて触れ…