笑いながらコードを書く。

vimから出たくないフロントエンドエンジニアの備忘録的な何か。

javascript

Read.jsを更新した

https://github.com/AtsushiM/Read.js 最近Rubyの勉強ばっかりしててあんまり自分のプロダクト作れてないけどRead.jsを更新した。 run(path/to/file)でjsを非同期読込して実行したりとかファイル圧縮したりとか。// なんか仕事でやってた案件の影響でやたら…

Closure Compilerのexternsでプロパティを圧縮しないようにする設定方法

ドキュメントとかに書いてなくてデフォルトで設定されるextern見ててわかった。 // externs Object.prototype.hogehoge; なるほどなーって感じ。

js同期読み込みライブラリを作ってみた。

■Read.jshttps://github.com/AtsushiM/Read.jshttps://github.com/AtsushiM/unite-read-js javascriptの同期読み込みライブラリを作ってみた。仕組みとしては 1.XMLHttpRequestで同期読み込み(xhr.openじに第三引数にfalseを渡す)2.読み込み完了後scriptタグ…

ライブラリをCoffeeScriptで書きなおしてみた時の話。

Composite.jsをCoffeeScriptで書きなおしてみた https://github.com/AtsushiM/Composite.js/blob/master/js/src/main.coffee 結構いい勉強になった。 よくCoffeeScriptやってからRubyやったらいいとか言われたけど、あえてRubyちょっとやってみてからCoffeeS…

Galaxy SⅡのJSはDateがちょっとおかしい。

new Date('2000-01-01T11:00:00+09:00') ってやるとInvaid Dateと言われる。面倒臭いけどテキストをパースしてsetFullYearとかやる必要があるみたい。

スマートフォン向けのWeb&ハイブリッドアプリ開発用ライブラリ作ってみた。

CIR.js http://atsushim.github.com/cir.js/ ちょっと前からアプリ開発で使ってた色々をまとめて公開してみました。名前の由来は「Cool is Right.(かっこいいは正義)」からです。いや、良い感じで痛いですね。 いいと思います。 余談: 名前は年末友だちと…

google closure libraryで画像にドラッグイベントつけてもなんかうまくいかない時

goog.events.listen(element, 'mousedown', function(e) { e.preventDefault();}); mousedownイベントをpreventDefaultすれば綺麗になるよ!というメモ。

JSでオブジェクト指向っぽく開発させるVimプラグイン(マゾ仕様)を作った。

https://github.com/AtsushiM/oop-js.vim おもいっきりhttp://www.slideshare.net/MoriharuOhzu/ss-14083300の影響を受けて最近開発していたので「ならプラグインにしてしまえばいいんじゃね?」ってことで作ってみた。 スライドとは結構内容違うけど割りと…

Google Closure Compilerで圧縮レベルを最大にする

--compilation_level ADVANCED_OPTIMIZATIONS

Google Maps APIで、地図の読み込み完了時に処理をしたい場合

google.maps.event.addListenerOnce(map, 'idle', function() { // write code. });

Android 4.1.1のデフォルトブラウザではcanvasをjsなどで動かすとバグる

内容を移動させたい場合はcanvasを移動させるのではなく、drawImageで位置を指定する

mobile safariではonclickは連打できない

onclickをbindしても連打すると反応がなくなる。ontouchstartなら行ける。

テキストをシャッフルしつつ表示する

後で見なおしてみる。 function ShuffleText(container, speed, easing) { this.container = container; this.speed = speed; this.easing = easing; this.isShuffling = false; } ShuffleText.prototype.shuffle = function (targetText, endress) { if (th…

enchant.js使用時、iOSでviewportが書き換えられ、画面が広がってしまう場合の対処方法

iOSの場合、どうにもviewportを書き換えてる模樣。自前でzoom:0.5;してmargin:0 auto; でセンタリングしたら可笑しくなったので気づいた。 http://yslibr4ry.blogspot.jp/2012/06/enchant-js-iphone.html どうにも勝手にやっちゃってる系みたいなのでどうに…

SenchaでitemTpl中で日付フォーマットする方法

~ <div class="date">{[Ext.Date.format(values.date, "Y/m/d")]}</div>, ~ {[]}で囲むとjsで処理が書けるらしい。 values.dateが{date}と等価。

そのブラウザでondevicemotionが使えるかどうか判定する方法

if ('ondevicemotion' in window) { //true } http://jsdo.it/Atsushi.Mizoue/lSoF

senchaでPanelとかを縦横センタリングしたい時

config: { ~ centered: true, ~ } 他に条件あるかもしれないけどとりあえず。

senchaでPanelとかを縦横センタリングしたい時

config: { ~ centered: true, ~ } 他に条件あるかもしれないけどとりあえず。

Chrome拡張でpermissionsを指定する際はURLの最後を/*にしたほうが良い

{ "name": "TEST", "version": "0.1", "description": "test", "permissions": [ "http://asionm.hatenablog.com/*" ], "content_scripts": [ { "matches": ["https://www.google.co.jp/search*"], "css": [], "js": ["jquery-1.7.2.min.js", "main.js"] } ]…

Sencha touch : itemsで指定したアイテムを左右に並べる場合

{ xtype: 'spacer' }を間に挟むことで実現できる ~ items: [ { xtype : 'button', text : 'Cancel', itemId: 'cancelButton' }, { xtype : 'spacer' }, { xtype : 'button', text : 'Done', itemId: 'doneButton' } ] ~ spacerを間に指定した場合、可能な範…

Sencha touch:showとshowByの違い

showByの場合、渡された要素に紐付く形で表示される。 動作としてはtop,leftが自動的に計算され付与され、三角形の矢印が表示される。showの場合、通常通りの表示となる。

Google アナリティクスで外部リンクとかをカウントしたい時

<a onclick="javascript:_gaq.push(['_trackPageview', 'hogehoge/fugafuga']);"href="uhehe/ohoho">擬似カウント</a>

第29回 HTML5とか勉強会 メモとか思ったこととか

アジェンダ ngCore on HTML5 PhoneGap Titanium Mobile 座談会 ngCore on HTML5 紀平 拓男さん ソフトウェアソリューション部所属 FlashPlayer ExGameなどを制作 ngCoreとは? javascriptのゲームフレームワーク ゲーム&ソーシャルに特化したAPI ngGOライ…

jasmine.jsのテスト用テンプレート

// テストしたいクラス名を設定 describe('XXXXX クラスは', function() { //テストしたい変数名 var a = null, b = null; beforeEach(function() { //初期値 a = 'test'; b = 'test'; }); afterEach(function() { //テスト実行後の処理(DOM操作をした場合な…