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

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

シェルで実行にかかった実時間を表示

timeだと実時間が取れなかったのでさっくりと。hogehogeの行を処理と書き換えで実行時かかった実時間を表示する。 START=`date +"%s"` ## hogehoge END=`date +"%s"` TOTAL_SEC=`expr $END - $START` SEC=`expr $TOTAL_SEC % 60` SEC=`printf %02d $SEC` MIN…

sudo -u hogehogeでユーザーを変えても環境変数は元のまま

知らずに余計な時間を使った。 例えばHOMEなんかも変わらない。shファイルとかなら内部で強制的にHOME書き換えてやればOKだった。

mysqlでダンプしたいとき

データ含んで全部 mysqldump -u root -x --all-databases --events > dump.sql 構造だけ mysqldump -u root -x --all-databases --events --no-data > dump.sql テーブル指定 mysqldump -u root -x --all-databases --events --tables TABLE_NAME > dump.sql

phpなどからシェルスクリプトを実行するとコマンドが無いと言われる場合がある

PATHが通らないらしい。 shの中で明示的にPATHをexportするといい。 export PATH=/usr/local/bin:/usr/bin:/bin

シェルで標準エラー取得

コマンドの最後に2>&1つければ取得できる

wc -lで行数カウントするとなんかおかしい

wc -lで行数カウントするとなんか1行少なくなった。 どうにも改行コードとかそもそも改行コードしか数えないとか色々あるらしい。 wc -l hogehoge.txt 微妙に気づきにくい。調べてたらgrep -cのほうが安定してるらしいのでこちらでやることに。 grep -c '' h…

メモ: vagrantでCentOS6.4の環境作ってChef使ってたらなんかやたら重い

最初そんなもんかなーと思いながらやってたけど http://redmine.dev.qteras.co.jp/issues/13148 これやったら爆速になりました。遅かったら全てを疑え。

面白法人カヤックを退職しました。

本日が面白法人カヤックの社員として最終日でした。 // ちょっと前から有給消化だったので席があるのが今日までということです。 2010年からちょうど2年間くらい、ちょっと短かったなぁと思います。 2年前友人の誕生パーティの席でデザイン王子と知り合い 「…

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…

Closure LibraryのdispatchEvent時に値を渡す方法について

goog.events.listenで登録したイベントに、値を渡したい。でもドキュメント読んでも引数で渡す設定とかは無さそうだしどうやんねん! となったので調べたらカスタムイベントを作ればいいっぽい。 // CustomEvent goog.provide('hogehoge.CustomEvent'); goog…

coffeescriptで逆順で配列をループさせたい時

最近Ruby始めてみたらCoffeescriptがすごく書きやすくなった。 いい傾向だなーと思いながらライブラリを書き直していたですが、forの逆ループのさせ方がわからずにちょっと詰まる。 色々試してみたけど展開後がなんかしっくりこないので仕方なしに i = array…

vimprocがアップデートされたらvimshellが動かなくなったので対策

調べてたらどうもよくあることみたい。 ■vim初心者がいろいろググって作ったvimrcを晒してみるhttp://www.sougetu.net/archives/1170 ここのコメント欄で便利そうなことが書かれてた。 NeoBundle 'Shougo/vimproc', { \ 'build': { \ 'windows': 'make -f ma…

さくらVPS借りてRuby on Railsインストールしてみた。

タイトルの通り、最近Ruby on Railsをしっかりやってみたくて。 もとからさくらのスタンダードは持ってて、それで何とかできないかなーと思って色々やってみたんだけどきつそうだったので行きおいでVPSを借りてみた。 後悔はしてない。 やっぱり作ったら公開…

facebookのコメントプラグインがモバイルで下に余白ができてしまう問題の解決策

<div class="fb-comments" data-href="hogehoge" data-width="320" data-num-posts="10" data-mobile="false"></div> data-mobile="false"をつけたら消えた。

ChromeでEmulate touch eventsを使ってるとcursorとかで戸惑う

http://jsdo.it/Atsushi.Mizoue/jEZt ChromeのEmulate touch eventsを指定してると mousedownなどのイベントがちょっとわかりにくい動作になるのでテストしてみた。 ・CSSのcursorが効かなくなる ・mouseoverはmousedown?時に効くのか? ・mouseoutは一度mou…

fs.createReadStreamのオプションでbufferSizeが無い

なんかやってたらどうにも指定できないようなので調べてみたら bufferSize → highWaterMarkになってた模樣。 なるほどなぁ。 でもこれbufferSizeの方がわかりやすい気がするんだけど。

Closure CompilerのADVANCED OPTIONで.を['']に書き換えるのが面倒なのでmapする

nnoremap <expr> ;jrb getline('.')[col('.')-1] ==# '.' ? "s['<Esc>ea']<Esc>F[" : "F.s['<Esc>ea']<Esc>F["nnoremap <expr> ;jrd getline('.')[col('.')-1] ==# '[' ? "2s.<Esc>f]h2xF." : "F[2s.<Esc>f]h2xF." 結構便利。</esc></esc></expr></esc></esc></esc></esc></expr>

sassとかcompassとかのアップデート

http://frmmpgit.blog.fc2.com/blog-entry-75.html

chromeでtextareaの右下を表示させたくない場合

textarea { resize: none;} 正直どうかと思う対応だけど手段の一つとして。

ackで特定のディレクトリを対象にしたくない場合

ack

ack hoge --ignore-dir=foo --ignore-dir=_barとか

ackでscssとかが検索対象にならない場合の対策

ack

ack -a hoge で対象が増える。ただしこれでも対象にならないものもあるらしい(_buildとか)

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

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

AndroidのwebViewでスクロールの位置になんか余白が出来る場合の対策

webView.setScrollBarStyle(0);

とりあえずやってみる。

http://techwave.jp/archives/51778511.html ブックマークレットにしてみた。 ブラウザエディタ

フロントエンジニアがちょっと幸せになるかもしれないプラグイン作ってます。

おはようございます!盛大に出遅れました。本当にすいません!この記事はVim Advent Calendar 2012の51日目の記事です。50日目は@kmnkさんのgitを操作したいときにちょっと便利かもしれないunite-sourceを書いています。 でした。 今日はフロントだけどVim使…

スマートフォン向けの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

webkit系のinput要素などに適用されるスタイルを初期化する

-webkit-appearance: none;

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 どうにも勝手にやっちゃってる系みたいなのでどうに…

使ってるvimプラグインの一覧

vim

登壇してたら使ってるプラグイン教えて欲しいと言われたので。 今のところの一覧です。 " My Create plugin " NeoBundle 'AtsushiM/simple-todo' NeoBundle 'AtsushiM/simple-memo' " NeoBundle 'AtsushiM/simple-bookmark' " NeoBundle 'AtsushiM/simple-do…

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

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

git rm で間違って消してしまった場合

git reset HEAD hoge/fuga git checkout hoge/fuga

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

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

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

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

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

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

ChromeのウェブインスペクタでUserAgentを上書きしているとCharlesが正しく動作しない

Chromeでスマートフォンを確認する際やたら時間を取られたので。 インスペクタの機能でUserAgentを変更できるがこれをやっているとどうにもChralesのBreakpointで停止しない模樣。正確に調査していないが恐らくヘッダの情報見て云々していると思われるのでそ…

Android 4.1.1のデフォルトブラウザ&Chromeで今までのバグが治ってるかどうか検証してみた。

手持ちのGalaxy Nexusがアップデートされたのでさくっと検証してみる。 最初から4.1.1の場合はChormeが入ってるようですがアップデートされた場合は デフォルトブラウザが削除されるわけでは無いようなので念のため両方で。 以前はめんどくさくてやってなか…

WebエンジニアがVimに乗り換える必要性を考えてみる。

Vim使いたての素人がこんな事書いていいのかどうかは置いておいて。 FacebookでvimvimいってたらHamachiya2さんが 「imの利点、他のエディタより優れているところ、Vimに乗り換えるべき理由をわかりやすくまとめた記事があればいいのにと思う。だいたい初心…

Sencha Touch 2でshow,hideをアニメーションさせたい場合

~ config:{ ~ showAnimation: {type:'slideIn', direction: 'up', duration: 200}, hideAnimation: {type:'slideOut', direction: 'down', duration: 200}, ~ } ~ など。

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"] } ]…

FQLでJOINっぽい動作をするfql.multiquery

FB.api({ method: 'fql.multiquery', queries: { 'q1': q, 'q2': 'select uid,name,profile_url from user ' + 'where uid IN(select actor_id from #q1)' } },function(){}); #q1でqueries.q1の結果を元に実行する。