サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
www.axlight.com
vimで括弧を自動で閉じるには設定が必要です。 普段は閉じ括弧も打っているのでそれほど必要性を感じないのですが、あれば多少便利かなとは思うので調べてみました。 ダイレクトな名前のプラグインはこちら。 https://github.com/Townk/vim-autoclose 無難に動きましたが、改行した時にインデントができず物足りない感じです。 設定では直せないようでした。 次に試したのはこちら。 https://github.com/kana/vim-smartinput これは柔軟に設定ができそうです。 しかし、undoが分断される問題がありました。 最後に試したのがこちら。 https://github.com/cohama/lexima.vim 今のところ不満なく使えています。いくつか設定を加えています。 一つは、文末以外では無効になって欲しいので、 call lexima#ad
node.jsのchild_processのexecとexecFileとspawnの違い nodeのchild_processにはちょっと紛らわしい3つのメソッドがあります。 execとexecFileとspawnです。 いきなり話題がそれますが、forkも紛らわしいですよね。システムコールのforkを連想させるのに、中身は違うので。forkはどちらかと言うと、spawnのラッパーみたいな感じです。 本題に戻ります。google検索すると、execとspawnの違いはいっぱい引っかかります。例えば、これ。 http://www.hacksparrow.com/difference-between-spawn-and-exec-of-node-js-child_process.html ところが、execFileとの比較は極端に少ないです。どうやら、昔はexecFileはundocument
node-http-proxyでリバースプロクシを作る、proxyTable相当を実現するには node-http-proxyというのはnode.jsでhttpプロクシを作るためのライブラリです。 WebSocketsに対応しているリバースプロクシが作れるということで注目していました。 さて、気づいたら、いつの間にかバージョンアップしていました。 http://blog.nodejitsu.com/node-http-proxy-1dot0/ node-0.10用に書き直してv1.0になったということです。 ところが、以前のバージョンで使えていたProxyTableは使えなくなっていて、 userlandでコーディングしてねということでした。 以前のバージョンではほとんどコーディングしなくても使えるようになっていて それはそれでよかったのですが、v1.0ではシンプルなAPIとなっていて 基
HTML5で作ったiPhoneのWebアプリで上下のスクロールを無効にする iPhoneのWebアプリというのは「ホーム画面に追加する」でインストール、というかブックマーク、するものです。HTML5でもそこそこアプリっぽく作れます。 さて、HTMLのタグで、ズームなどは無効にできます。例えば、次のようにします。 <meta name="viewport" content="width=device-width initial-scale=1, user-scalable=no" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> ところが、これだけだと、縦に
MeteorとPhaserの組み合わせで作る1bitコミュニケーションツール 最近、Angular以外も試そうと思って、2012年春にオープンソースになったときから気になっていたMeteorを使うことにしました。 当時は、FirefoxかChromeかどちらかでしか動かず、動かない方で見ると、背景画像しか見えないというすさまじいものでした。 一方、そのコンセプトはとても共感できて、social-cms-backendを自分で開発したときも同じではないものの似た問題意識でした。 さて、Meteorのサイトは、 http://meteor.com/ です。いいドメイン持ってますね。Meteorの発音は「ミーティア」です。 T.M.Revolutionの歌にありましたね。よし、それを聞きながらコーディングしよう。 さて、Meteorの基本的な説明は他に任せるとして、今回はちょっと変わった使い方を
GitHubのDiff表示を再現するJavaScriptライブラリを探した GitHub便利です。その一つが、Compare ViewのDiffです。Pull Requestを確認するときもよく見ます。コマンドラインでgit diffと普通にやるより見やすいです。 さて、背景は省略しますが、HTMLでdiffを表示したいと思いました。AngularJSでの利用を想定しているので、JavaScriptのライブラリが欲しいです。 ところが探してもあまり見つかりません。よくまとまっているのはこちら。 http://stackoverflow.com/questions/3053587/javascript-based-diff-utility ちょっと古い投稿ですが。一番人気なのは、これです。 https://github.com/cemerick/jsdifflib オンラインデモはこちら。
これまでにPassportでFacebook認証をやったことはありますが、OAuth2.0のプロバイダを提供するためにどんなライブラリがあるのか、というのが今回の話です。 OAuth2.0のクライアントライブラリは多くありますが、プロバイダライブラリはどうでしょうか。思ったよりは多かったです。条件は、express/connectのmiddlewareとして使えることです。 現時点でのStar数順に並べます。 https://github.com/jaredhanson/oauth2orize --- 570 https://github.com/ammmir/node-oauth2-provider --- 402 https://github.com/AF83/oauth2_server_node --- 103 https://github.com/thomseddon/node-o
AngularでHTML5モバイルアプリを作るのに便利なライブラリたち ng-conf 2014っていうイベントが1月にあったようですね。 YouTubeで動画が公開されている(でもすべてではない)ので助かります。とても勉強になりますね。ほんと、いい時代になったものです。 さて、Daniel ZenのTalkを見ました。AngularJSでモバイルアプリを作るために使えるライブラリがいっぱい紹介されていたのでメモしておきます。 PhoneGap まず、PhoneGap。 今では、Open Sourceなんですね。 http://cordova.apache.org/ 使ったことはないですが興味はあります。 一部ネイティブ関数にもアクセスできるようです。 http://en.wikipedia.org/wiki/Phonegap#Supported_platforms APNも使えるようです
Angularでng-repeatでフォーム生成するときにバリデーションする方法 小ネタです。 http://docs.angularjs.org/api/ng.directive:form によるとこのディレクティブは普通に<form>とすれば使えるのですが、 ネストするときは、<ng-form>とする、と書かれています。 これを利用したシーンがあったのでメモしておきます。 フォームをバリデーションする機能があります。例えば、次のように使います。 <form name="myForm"> <input required ng-model="text"/> <button ng-disabled="!myForm.$valid" ng-click="submit()"/> </form> このようにすると、テキストフィールドが空のときはボタンが押せないようにできます。 さて、テキストフィー
突然ですが、angular.jsを使うときは、jquery.jsを読み込まないことをおすすめします。 angular.jsとjquery.jsはコンフリクトはしません。ライブラリ的には共存します。しかし、簡単に言えば、angular.jsを使う場合は、jquery.jsを使う必要がないのです。jquery.jsを読み込まない場合、angular.jsはjqLiteというサブセットを使います。ちゃんと検証したわけではありませんが、コードを眺める限りではjqLiteは軽量そうです。 jquery.jsを読み込まないほうがいい理由は軽量化よりも、マインドの問題の方が大きいです。angular.jsのコーディングスタイルとDOM操作は合いません。angular.jsでは、$scopeを使ってDOMをコンパイル(という用語でいいのかな)させればいいのです。こっちの方がパワフルでシンプルです。angu
node.js/v8のgeneratorsのパフォーマンスについてちょっと調べた 初めに断っておきますが、今回の調査は、node v0.11.5 (Linux)で試したもので、他の環境では異なるかもしれません。さらに、今後のバージョンアップによっては全く異なる結果となることも十分ありえます。ご注意を。 ES6にgeneratorsが入るとのことで、JavaScriptでcontinuationが使えないかなぁと思っていた自分としては、興味を持ちました。 ちなみに、generator, coroutine, continuationの順に記述力が上がるそうです。こちらが参考になるかもしれません。 さて、generatorsの説明は他に任せるとして、いきなりコードです。 function* es6_generator() { yield 1; yield 2; yield 3; yield 4
以前調べたネタですが、ここにメモしておきます。 (最近ブログの更新が滞っていたため) gitには普通のリポジトリとbareリポジトリがあります。普通のリポジトリは、チェックアウトされたファイルを含むリポジトリで、bareリポジトリは.gitディレクトリの中身のみを含むリポジトリです。 bareリポジトリは、 % git init --bare hoge のように作ります。サーバにbareリポジトリを作って、そこにみんなでpushするような使い方は一般的でしょう。ちなみに、push先がbareリポジトリではなかったりすると、ワーニングがでたりします。 さて、例えば2つのチームがそれぞれ別々のリモートサーバを使って別のbareリポジトリにpushしていたとします。その2つのbareリポジトリを同期したいとします。bareリポジトリにはチェックアウトという概念がないので、git mergeは使え
最近、ページ内リンクというのはあまり使われないと思いますが、使いたいケースがあったので、調べました。備忘メモです。 ページ内リンクというのは、リンク先に <a name="id001"> とか <div id="id001"> とか書いておいて、リンク元を <a href="#id001"> とすることで、このリンクをクリックするとリンク先にスクロールしてくれるものです。 ところが、AngularJSではこれはルートとみなされ、ご丁寧に#/id001に変換して、$routeProviderの処理がされてしまいます。当然、そのようなルートは用意していないので、予期せぬ動作になります。例えば、otherwiseにredirectToを設定していたりすると、トップページに戻ります。 これは困ったということで、いろいろ調べました。はじめに見つけたのがこれ。 Angular JS - Scrolli
JavaScriptでString.startsWith相当は何か、ベンチマークも JavaScriptにはJavaで言うところのString.startsWithがないです。みんなどうやっているかというと、 if (str.indexOf('prefix') === 0) { console.log('prefix found'); } みたいな感じのコードをよく見ます。AngularJSのソースでも見ました。でも、これって良く考えると無駄ですよね。indexOfというのは文字列を最初から最後までなめて、一致する位置を探すのです。見つかれば一発ですが、見つからなければ最後まで行って-1を返します。本来、prefixを判定するのなら最初だけ検査すればいいのです。 str.substring(0, 'prefix'.length) === 'prefix' という書き方も見ますが、これもいま
このページを最初にブックマークしてみませんか?
『www.axlight.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く