2017年2月11日土曜日

Node.jsはエコなのでIoTに適している

Node.jsはエコなのでIoTに非常に適している。
と私は思う。
  • 単一プロセスで非常に少ないメモリで動作する。
    →ページングなどのコストが少ない。
  • 基本的にシングルスレッドなので無駄なコンテキストスイッチが発生しない。
    CPUを食わないので電力消費量が少なく発熱も少なくて済む。小さいデバイスには重要な要素。
  • 通信に強い。特に複数のデバイスとの非同期通信に。
IoTというか小さいデバイスには上記の特徴が有効だ。
更にサーバ側でも...
  • シングルプロセスでも、非常に少ないメモリで、1万~最大6万のデバイスと同時接続が可能。(ポート数の限界まで)
  • シングルスレッドがボトルネックになる場合は複数プロセス(コア数以下)のクラスタで対応できる。
    (複数サーバでの対応とほぼ同じ)
  • サーバ側でも無駄なコンテキストスイッチが非常に少ないためCPUを食わない。電力消費量も少なく熱も出ない。
もちろん C/C++, Go, Rust などの言語にはかなわないと思うけど、Ruby, Python, Perl, PHP, Java, などよりは遥かに Node.js が向いていると思う。

2014年7月20日日曜日

Webページの未読既読管理をGoogle Chromeのブックマークを使う

私はWebページを見たかどうか、つまり既読か未読かをブックマークで管理している。

いろいろと仕事柄、技術関連のキーワードで検索してWeb ページを見ている。
仕事じゃなくてもプライベートでもそうだと思う。

で、技術などで有効だなと思えるページで「あ、これ、前にも見たかも」、
と思うページに出くわす事が良くある。
そう思った時は、迷わずブックマークする様にしている。
Google Chrome を使っているので、Gmail アカウントに紐づけされたブックマークだ。

ブックマークすると、星★が黄色になる。
そうすると、次から同じページを見た時は、星★が黄色になるので、
以前にも見たページかどうかは すぐにわかるのだ。
ただ、それだけのこと。

ただしすごいブックマーク数になるのでフォルダ構成を考えておかないと
管理しずらくなる事は確かだ。

2014年のブックマークはこういうフォルダ名で管理している。
「2014/カテゴリ名.14」の様に「年」と「カテゴリ名」+「ドット」+「年」という感じで管理している。
するとブックマークした年がわかるのだ。

あ、もちろん、ただの日記とかニュースの様なページはブックマークしない。

2014年2月1日土曜日

Node.jsが成熟してきた。Express の代わりとなる Koa に移行しましょう。

Node.js が、もうすぐ成熟する時を迎えている。

Express の終焉を予告しよう。(個人的にね)

新しい Koa に移行しましょう。

Koa 0.2.0リリース


2013年2月2日土曜日

neu.Node がリリースされた。Node.js for iOSという感じだ。

neu.Node というものがリリースされた。
(neu.Node リリースのお知らせ)
去年から気になっていたやつだ。

Node.js for iOS という感じだろうか。
iPhone や iPad で Node.js が動いている。
iPhone 上で JavaScript で書かれた
サーバが動作するという事だな。

微Webサーバ、微Chatサーバ、等いろいろ考えられる。
MMOゲーム中に各自のChatルームを作れるかもね。
アイディア次第ではなかろうか。
何に役立つの? ではなく、何に使えるだろうか?
と真剣に考えていける人が広げていくだろう。

iPhone をセキュリティカメラにして、近くのPCで監視するとか。
これはPCをサーバにすればいいか。
neu.Nodeでは iPad をサーバにするとかができるな。
お店に入ると、WiFi 内だけで接続できる SNS とかどうだろうね。
お店で使える注文用 iPad とかどうだろうね。1台をサーバにして
他の iPad は注文を入れる様にするといいだろうな。
こんな事書くと誰か作っちゃうかな。

近くのゲートウェイをつかまないと外の世界には
サービスできないかもしれませんね。
近くの管理用PCとかを踏み台にして出てみる?

READMEなどに例として以下の様なものがあげられている。
・サーバー不要のローカル・ネットワーク・ゲーム
・WiFi 上で動くローカルなソシアル・ネットワーク・アプリケーション
・P2P スタイルのファイル共有、共同編集、コラボレーション
・リアルタイムなメディアの転送(セキュリティ・カメラ、リモート Jukebox など)
・Proxy サーバー内蔵の HTML5 アプリケーション

9分間の動画の中で iPhone 上でいろいろ動作している。
これぞ Node.js というものを全部!
・Hello World 表示とタイマーで応答を遅延させる例
・net socket echo server
  -> 入力したものをオウム返しするだけ
・net socket chat server
  -> 入力したものを接続している人全員に配信
・http web server
  -> 3msecで1requestに応答してるね
・http web server 3sec delayed (3秒遅延させる版)
  -> 3secで応答するよね
・ab (Apache Bench) でベンチマーク
  -> 1request → 3.004sec
  -> 10接続×10回 → 3.030sec
  -> 100接続×100回 → 5.690sec
YouTube → http://youtu.be/xzFH80-HYTo

すごいな。楽しみだな。

GistでREADMEが翻訳されてる
https://gist.github.com/4571063

GitHub でneu.Nodeのソースが公開されているよ
https://github.com/snakajima/neunode

neu.Node Facebook Group に参加しよう
https://www.facebook.com/groups/neunode/

neu.Node リリースのお知らせ
http://satoshi.blogs.com/life/2013/01/neunode.html

Life is beautiful 永遠のパソコン少年の理科系うんちく
http://satoshi.blogs.com/

2012年12月20日木曜日

プログラミング言語、速度比較


プログラミング言語、速度比較。
http://attractivechaos.github.com/plb/
http://benchmarksgame.alioth.debian.org/u64/which-programs-are-fastest.php

ベンチマークプログラムの種類によって得意・不得意は
出てくると思います。その辺を考慮して見ましょう。

C/C++, Java, C#, JavaScript(V8), Ruby, Python, Perl...

スクリプト言語の中では JavaScript(V8) は特に速いですね。

言語そのものの速度だけでは判断できないと思うけど、
速い言語でやりたい。

Node.js は比較されていないが JavaScript(V8) と
エンジンが同じなのでたぶん同程度でしょう。

2012年11月27日火曜日

GitHub がコード共有プラットフォームを制圧

GitHub がコード共有プラットフォームを制圧。(ソーシャルコーディング)


http://tech.a-listers.jp/2011/06/07/github-dominates-the-forges/
この頃は Ruby, Python が多かったみたい。
※2011年6月の記事です。


今は JavaScript (+Node.js) が Top ですね。
→ https://github.com/languages/

2012年11月20日火曜日

そろそろプログラミングを再開しようかな

何からはじめようか。

  • 言語は JavaScript、Node.js でよさそうだ。
  • Webだから、HTML5+CSS3も勉強しなきゃな。
  • GitHubは必要そうだ。
  • Herokuとかもな。

とりあえず、はじめてみるか。

2008年1月14日月曜日

はじめまして

はじめて書き込んでみます。