こんにちは、斉藤です。 最近、マネジメントしながらプログラムを書くことが多いです。 今回WEBアプリ開発のプロジェクトを一つ通して、とある問題とその解決方法を模索しました。 その共有をしたいなーと思いましたので、ブログに書いてみます(ラズベリーパイの記事はまたもお休みです)。 問題 * 顧客に開発中のアプリを見てほしい * 自分たちはもちろんのこと、顧客にも素早く確認してもらいたい * アプリが完成に近づけば近づくほど、特定箇所の確認が難しくなる * 特定の手順を踏まなければならない * 特定の条件を満たさなければならない * このためのデバッグ用コードを残しておくと、リリースに影響するため、取り除くことを覚えておかなければならない * かといって、無ければ無いで開発に不便

あまりにも世情にうといので作った。NHKのRSSを定期的にチェックして、新着ニュースの動画を連続自動再生する。 とてもテレビっぽい。おかげで4日後にオリンピックが開催されるという事を知れた。 ソースコード https://github.com/shokai/nhk-news-appzipでダウンロード https://github.com/shokai/nhk-news-app/releases node-webkitはネイティブアプリ作成のためにwebkitが改造されたwebブラウザで、HTML/JavaScript/CSSが実行できるだけでなくnode.jsのAPIもそのまま呼び出せる。 つまりjQueryでDOM操作すると同時にnodeのライブラリを使うような処理が、同じプログラムファイルにまとめて書ける。変にブリッジを書く事なくいつものnodeのように require(‘モジュ

Hubotを導入して半年たったのでレビューします。 Hubotとはなにか いわゆるボットです。サーバー上で待機していて、こちらからコマンドを与えたりイベントが発生するとそれに応じて処理をしてくれるプログラムです。 module.exports = (robot) -> robot.respond /PING$/i, (msg) -> msg.send "PONG" 下記のような特徴を持っています。 CoffeeScriptで「どういうメッセージがきたら なにをする」というパターンをサクサク追加できる。 機能拡張のスクリプトを簡単に使い回せる。(hubot-scriptsレポジトリで公開されている) Campfire,IRC, Skype, Yammerの様々なコミュニケーションツール、HTTP等をインターフェイスとして使える。 特に重要なのは3つ目で、デプロイのコマンドはIRC経由で受け
github社製のhubot。 botとして簡単に扱えそうで既存スクリプトが多いとかnode.jsで動いてるとかgithubをあれこれするのに相性よさそうとかの理由で触り出した。 基本的な起動方法とかは http://tech.kayac.com/archive/15_hubottechkayaccom_advent_calendar_2012.html http://d.hatena.ne.jp/anatoo/20120204/1328368042 らへんにあるように環境変数に色々設定するのが普通みたい。 しかしせっかくnodeで動いてるのに起動用にshell script書くのも負けた気がするので node.jsでなんとかしたくなったのでなんとかした こんな感じ。 node.jsにはchild_processという子プロセスを起動するのがあったのでそれを利用。envという引数で環境引数
以前、jQuery 1.9 のソースマップ対応で圧縮版でもデバッグが簡単になった話 を書いたけど、Node.js でソースマップする方法を紹介する。 何がうれしいかというと、Node.js で CoffeeScript やTypeScript、JSX なんかを使ったときに、例外に含まれるスタックトレースに変換前の位置を表示できる。 やり方は簡単。source-map-support というモジュールを require() するだけ。 ためしに使ってみたGitHub に動かし方が書いてあるので、その通りにやってみる。 こんな感じの demo.coffee があったとする。 require 'source-map-support' foo = -> bar = -> throw newError 'this is a demo' bar() foo() npm install sourc
node をバージョン別に使い分けたりしたかったので、nodebrew なるものを使うことにした(hokaccha++)。 最初は nvm 使ったんだけど、なんかうまくできなかった。 ~/.bashrc に設定書いたら、ターミナル起動するたびに nvm use v0.8.19 とか出てくるのがイラっとしたのでやめた。 1. nodebrew のインストール ターミナルに以下の 1 行コピペするだけ。超簡単。curl https://raw.github.com/hokaccha/nodebrew/master/nodebrew |perl - setup 2. 環境設定ファイルにパスを通す いまだに「パスを通す」っていう意味が分かってないけど、これをやらないと、ターミナルを再起動したときに、せっかく入れたツールが使えなくなるっていう認識でおります・・。 私は ~/.bashrc を使っ
本書について本書は、Node.jsでのアプリケーション開発を始めようとする皆さんに、 ”高度な”JavaScriptについて知るべきあらゆることを解説します。 よくある”Hello World”チュートリアルの、はるか上をいくものです。 ステータス 貴方が読んでいるのは、本書のいわゆる最終版となります。 つまり本書は、間違いが見つかった場合や、 Node.jsの新バージョンにおえる変更点を反映する時のみ、改訂されます。 最終更新日は2012年2月12日です。本書内のコードのサンプルは、Node.jsのバージョン0.6.10でテストしています。 ターゲット読者本書は、Ruby、Python、PHP、Javaのような、少なくともひとつのオブジェクト指向言語を理解しており、JavaScriptについてはあまり経験がなく、Node.jsについては全く経験がないという、 著者と同じようなバッ
node.jsアプリケーションのスタイルを支配する公的な文章はありません。このガイドはあなたが美しく、一貫したソフトウェアを作れるようになる教訓を与えようとする私の独断の試みです。 このガイドはあなたがnode.jsのみを対象にしていると仮定しています。もしあなたのコードをブラウザなど他の環境でも動かす必要があるのなら、いくつかのガイドは無視してください。 様々なパッケージだけではなくnode.jsもまた、それぞれ自体のスタイルを持っています。なので何かのパッケージの開発に貢献することに興味があるのならば、それぞれのルールに従ってコーディングを楽しんでください。 Tab vs Spaces まずはこの宗教的な問題の話をしましょう。私達の慈悲深い独裁者様はnodeのコアに2スペースのインデントを選択なさったので、彼の秩序に従うのが賢明でしょう。 セミコロン あなたからセミコロンを奪おうとする
intro本当にお待たせいたしました。 出す出すといってなかなか出せなかった Node.js本が、ついに出版されました。 共著の一人として、自分も書かせていただいています。 サーバサイドJavaScript Node.js入門 作者: 清水俊博,大津繁樹,Jxck,小林秀和,佐々木庸平,篠崎祐輔,高木敦也,西山雄也出版社/メーカー: アスキー・メディアワークス発売日: 2012/10/26メディア: 大型本購入: 31人 クリック: 803回この商品を含むブログ (6件) を見る これを書いてる時点では、JavaScript 部門では 1 位、 プログラミング部門では 4 位 となっているようです。 それなりに、興味を持っていただけているようで良かったです。 自分の記録としても、少しだけ書かせて頂きます。 2 年間の執筆 書き始めたのは、かれこれ 2 年前になります。 その頃はまだ

intro 最近は Readme やら執筆原稿などでmarkdown を使うことが結構多かったりします。markdown をレンダリングするツールは色々あるんですが、 エディタは好きなものを使いたいので、自分でレンダリングして、 ブラウザで確認できる何かがあればいいなぁと思ってました。 そんな時、Github がmarkdown のレンダリングをAPI としてやっていたことを知りました。Markdown |GitHubAPI しかも、サーバから叩くぶんには認証などもなく、 5000 回/時も叩けるということで、 それを使ってリアルタイムにレンダリングするツールを作りました。 使い方 インストールは $ npm install markup $ markup readme.md [3000]これだけです。 流行りに乗っかって?、ググラビリティの低い名前でリリースしてます。 m

Node.jsでのHello worldを済ませて、expressコマンドでアプリの雛形を自動生成できるようになったので、自分がNode.jsに興味を持った当初の目的である以下について実行してみる。 普段自分がRubyで使っているSinatra+Slim+Sassと似たような開発環境を、Node.jsでもExpress(CoffeeScript)+Jade+Sassを使えば実現できるかも? 個人的には、上記の憶測がなかったらNode.jsをやってみようと思わなかったと言っても過言ではないので、できるだけ早い段階でこの組み合わせをやってみたくて、まずはCoffeeScriptを触ってみた。 Node.jsアプリの雛形を自動生成 まずはNode.jsアプリの雛形を自動生成する。-cオプションでCSSにはSassを使うことを指定する。HTMLはデフォルトでJadeが選ばれるので指定はなし。 $

前回のつづき。Node.js(Express)で使えるSassは、1つ前の旧型のSassシンタックスで、現在最新のバージョン3形式での記述が出来なかったという話。これを改善する情報をいろいろ探し回った末、Stylusという新しいCSSテンプレートに出会ったぁ(ウルルン風に) 旧型Sass問題 Sassは、現在最新版のバージョン3でのシンタックスと、それ以前のシンタックスで微妙に書き方が違う。さらに、バージョン3からはSCSS形式も導入されたので、結構ややこしい。expressコマンドの-cオプションを使って、Sassを指定した場合に自動生成されるstyle.sassはこんな感じ。これは旧型のSassシンタックス。 body :padding 50px :font 14px "Lucida Grande", Helvetica, Arial, sans-serif a :color #00B

http://keima.herokuapp.com/ 「えーpolling!? pollingが許されるのは小学生までだよねー、キャハハハ」というわけでpush通知にWebSocketをお使いのみなさま、こんにちは。 しかし、毎回、WebSocketを扱う機能を実装するのは、いくつかの理由で面倒ですよね! WebSocketは様々なバージョンがあるので、すべてに対応するのは面倒。 同様の理由で、個別のアプリで作り込んでしまうと、WebSocketのバージョンアップに追従するのが面倒。 WebSocketは大抵別サーバになっているので、設定が面倒。Heroku等のPaaSではWebSocketを使えないことが多い。 (2015/1/23追記:HerokuはWebSocketをサポートするようになりました) そこで、WebSocketによるpush通知に特化したWebサービス Keima

先日GREEを支える大規模インフラテクノロジー」-GREE Platform Summer Conference 2012 という記事が公開され、GREEのCTOの藤本さんが、javascriptをサーバーサイドでも使うケースが多くなってきていて、必然的にnode.jsを使うことになるが、大きく3つの問題がある。 ひたすらすごい勢いでバージョンアップしているので安定しない。コストを払ってついていく覚悟を持って取り組んでいる。 メモリリークがあるので、サーバを起動しっぱなしにするとメモリが食いつぶされる。 コードをデプロイしても再起動しないと読み込まれない。 (中略) これで絶対大丈夫という解決策がなくて、node.jsで一番悩んでいる。これでバッチリ解決するというものがあれば、是非教えて欲しい。 といった話が掲載されていました。GREEさんに限らず一般的に Node に対して同じ問題

増井研の合宿があった。 スケジュールに飲み会の時間が書いてなかったので、もしやと思ったら最初からずっと飲んでた。 夕方にgeta6がNode.jsを1時間ぐらいでみんなに教えてくれた。Express+Socket.IOを使って簡単なチャット一歩手前ぐらいのもの。 そこから改造してちくわぶチャットができた。 Tiqav Chat TiqavのJSONPAPI使った。 コードはgithubにある デプロイ先のHerokuだけど、よく有料サービスと勘違いされてるけどDBとかを多めに使わない限り無料で使えます。 とくにSinatraやNode.jsに少量のMemcached/MongoDB/PostgreSQLなら無料で使える。俺もまだ金払ったこと無い。Herokuはレンタルサーバーみたいにパソコンをまるごと借りるんじゃなくて、ソースコードをgitでアップロードすると実行してくれるサービスだよ

Balloons.IOはnode.js+Redisで作られたWebチャットサーバです。 node.jsを使ったWebアプリケーションとしてよく取り上げられるのがWebチャットではないでしょうか。WebSocketsとノンブロッキングなnode.jsの特徴を引き出したサービスです。そんなWebチャットを自分でも立ててみたいと思ったらBalloons.IOを使ってみましょう。 トップページです。認証はTwitterを利用します。 ログインしました。ついで部屋を作成します。 チャット画面です。 アイコンが表示されていませんが会話は出来ます。 日本語も特に問題なく使えます。 Balloons.IOはnode.js + Socket.io + Redisの組み合わせで実装されています。さらにTwitterによるOAuth認証も使われており、WebフレームワークにExpressを利用するなど今時の技術
Express CoffeeTemplateは、ExpressJSのCoffeeSciprt版です。 $ git clone http://github.com/twilson63/express-coffee.git express_coffee_sampleCloning into express_coffee_sample $ cd express_coffee_sample/ $ npm install本家よりも多くのパッケージがインストールされます。早速起動してみます。 $ node server.js Listening... ブラウザで http://localhost:3000/ にアクセスします。本家と見た目がずいぶん異なります。本家ExpressJSと何が違うのか? スタイルシートにStylusを使っている スタイルシートのデフォルトテンプレートにRespons

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く