tech

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 …

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

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

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

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

Androidのdpについて

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

AndroidのCipher.java問題

こんにちは丸山@h13i32maruです 最近AndroidのCipher.javaで問題に遭遇して解決したので、そのメモです。 問題 AndroidでCipher.javaを使ってデータを暗号化するときに暗号化処理方式として[AES/CTR/PKCS5Padding]を使用するとAndroid4.4とそれ以外の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、チューニングのステップ、ボトルネック、ポイントなんかについて触れ…

QCompleterを部分一致補完させる

最近「NavyJS & NavyCreator」というモバイルWebフレームワークとそれ専用の開発環境(簡易IDE)を作ってます。 そのNavyCreatorはC++/Qtを使って実装していて、Qt便利ですごくありがたいなーと思ってます。 QCompleter NavyCreatorでコンボボックス(ファイル…

Sencha Animatorで作るCSSアニメーションがすごく良い感じ

最近Android, iOS上のWebブラウザでのアニメーションについてちょっと調べています。 有名所だと、こんな感じのがあります。 CreateJS LWF AdobeEdge ただ、どれもJSをゴリゴリ使ってタイムラインの制御と各フレームでのオブジェクトの状態を計算しています…

JavaScriptでクラスを実現する「nClass.js」

JavaScriptでクラスを実現するためにnClass.jsというものを作ってみました。 nClass https://github.com/h13i32maru/nclass MITライセンス クラスの生成 (new演算子と共につかう関数) コンストラクタ関数 (インスタンス生成時に自動実行される関数) クラスの…

なぜBTreeがIndexに使われているのか

※この内容は個人的な考察なので、間違っている箇所もあると思います。そういう部分を見つけた際はぜひ教えて下さい。 RDBMSの検索を早くするためにIndexって使いますよね。例えばこんなテーブル CREATE TABLE user ( id INT UNSIGNED NOT NULL, name VARCHAR…

Webサーバの性能測定

先月にWebサーバの性能測定、負荷試験、パフォーマンスチューニングというようなことをやっていました。初めてのことで周りの人に色々アドバイスをもらいながら取り組み、結構面白かったです。で、その内容をまとめてみようと思いながらも1ヶ月以上がたって…

Sphinxを使ってプログラムドキュメントを楽しく書こう

今日はソフトウェアのドキュメントツールの紹介です。 ソフトウェアってプログラムだけじゃなくて、「テスト」と「ドキュメント」も大事だなと最近思うようになってきました。 僕は今までプログラムは書いてきたけど、テストもドキュメントもさっぱりでした…

Google Closure Compilerを使ってみた

最近JavaScriptでちょっとしたフレームワークを作ろうと思ってちょこちょこコードを書いています。で、そこで困ったことは「機能的に複数のファイルに分割した*.jsをどうやってまとめるか」です。単にcatで結合するだけでもできるかもしれないですが、何か良…

はてなダイアリーからGitHub Pagesに引っ越しました

先週あたりからごそごとと準備をしていたんですが、今日ようやく移行作業が終わって晴れて新しいブログに引越しが完了しました。 なぜ引っ越したか はてなにロックインされたくなかったから はてな重すぎるから MarkdownもしくはreSTで書きたいから JavaScri…

リクエスト単位で独立したコンテキストをtornadoで使用する

今の案件ではtornadoを使ってるですが、リクエスト単位でまとまったログを出したいなと思って、色々調べてみました。 (と言っても数時間かけてtornadoのソースとにらめっこして何となくできたコードを元に@methaneさんに色々教えてもらった。python知らない…

JavaScriptプロトタイプマップ

最近JavaScriptを触ることが多いのですが、JavaScriptのプロトタイプについて調べてもすぐに忘れてしまうので、ちょっとまとめてみました。 プロトタイプベース プロトタイプベースってそもそも何だろうと。僕の理解ではこんな感じです。 オブジェクトの振る…

CoffeeScript言語リファレンスを日本語訳しました

最近CoffeeScriptというものを知って少し調べてみたら、本家の言語リファレンスがそんなに多くなかったので日本語訳に挑戦してみました。 http://coffeescript.org/ CoffeeScriptとはJavaScriptにコンパイル可能なシンプルな言語です。クラスベースのオブジ…

一日の摂取カロリーを記録するアプリ「32Calorie」をリリースしました!

詳細はこちら。 https://market.android.com/details?id=jp.h13i32maru.calorie

Androidアプリをリリースしました「32Cart」&「32Task」

最近Androidアプリを2つリリースしました。32Cartという買物メモアプリと32Taskという起動中のタスク管理アプリです。マーケットを探せば高機能なものはいくつも出てくるのですが、僕はシンプルですっきりした物が好きなので好みに合うものがなかなかありま…

C2DMアプリ「Chrome to Phone」を改造しました。

C2DMってご存知ですか?C2DMはAndroidアプリに外部からデータをプッシュ配信できる仕組みです。 そのC2DMを使ったアプリでGoogleが開発している「Chrome to Phone」というのがあります。このChrome to Phoneを使うと、AndroidへGoogleChromeからURLを送信で…

FireMobileSimulatorにホストごとに端末設定できる機能を作りました

僕の会社(KLab)では携帯電話やスマホコンテンツを作ってるので、結構みんなFireMobileSimulator(FMS)を使っています。 で、先日同僚がこんなこと言ってました。 接続先のホストごとに端末の設定変えれたら良いのに よし、じゃあその機能作りましょう!という…

ListViewの簡単な使い方

アプリで良く見かけるListViewのサンプルです。 文字だけを表示するListViewを作るのはAndroid組み込みのレイアウトを使うため凄く簡単です。layout <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" >…</linearlayout>