you21979の日記

実験ネタとか。仮想化とかnodejsで嵌った所とかおもしろかったところとかいろいろ

Stellar XLM/BTC

StellarがBTCに対して底練りをしている 価格は0.2円相当 無料で配った分の調整が終わるかどうか 価格帯は大底圏、流通時価総額もそれほど高くはない 35 Stellar Lumens $14,498,919 $0.002041 7,104,805,570 XLM * $529,937 4.27% Market Cap $14,467,800 13…

暗号通貨ツアー

Bitcoin Advent Calendar 2014 この記事はBITCOINアドベントカレンダー21日目の記事です ビットコインを試してみたい、体験してみたいという人向けの記事になります 技術者向けの話は特にありません。 はじめに ビットコインはインターネット上のお金です。…

エンジニアと糖質制限

最近糖質制限が流行っている 自分は去年から始めた あまりまじめに記録してないので記憶をたよりにするが 30歳頃から急激に太り始めて70kgを超えた 自分はソフトドリンクはあまり飲まないのでおかしいなとおもいながらご飯の量を半分にしたりして4年…

nodejsをプロジェクトで適用してメンバーに使わせてみた話

node.jsを1からプロジェクトメンバーに教えてみて思ったことを書いていきます チームのメンバーはC++使える新卒4人とPHPを扱う中堅3人といった構成です。 それぞれ知識のバックエンドが違うのでそれぞれ教える方法も変えました。 PHPプログラマー ■JavaScr…

node.jsのセキュリティ

nodeの脆弱性について http://www.ustream.tv/recorded/40193490 node学園のLTでコレをみて思い出したのだけれどHTTPの脆弱性を直してもバックエンドが遅い場合 nodeの場合いくらでもリクエストを受けてしまってバックエンドのリクエストをキューにためてし…

東京node学園祭2013行ってきました

東京node学園祭2013行ってきました ■基調講演 印象に残ったのは ・strongloopのように優秀なモジュールを組み合わせた環境を用意したりするのもkernelとdebianみたいな関係でnodeコミュニティとしては問題ないと。 ・小さなコアを維持する ・モジュール機構…

VMWARE ESXi 5.5 その1

VMWARE ESXi 5.5 が公開されていたので試してみた。 構成は前の記事参照のこと 簡単になったGPUパススルー - you21979の日記 とりあえず確認することは5.0、5.1ではパッチが当たるたびに使えたり使えなくなったり迷走していたUSB3のPCIパススルー関連…

GPUとUSB3のPCIパススルーができるESXiのバージョンはどれ?

ちゃんとした情報がまとまってるページが見つからなかったので書いておく。 すぐ動かせるカスタムISOイメージ VMware-ESXi-5.1.0-1021289-Fujitsu-v251-2.iso 自分でパッチ当てるなら以下の組み合わせ VMware-VMvisor-Installer-5.1.0-799733.x86_64.iso ESX…

簡単になったGPUパススルー

富士通のFMVじゃなくてprimergy tx100 s3pという安鯖をいまさら買ってみた。 メモリはなんか3月に比べて倍近くになってるようで円安に加えかなり供給を絞ってるから急な値上がりになってる模様。 買う時期が悪いように見えるがそれでも安いと思える安鯖。 pr…

node.jsで簡単にircへメッセージ送信

https://github.com/you21979/bot-irc-notifier サーバーからircにサーバー落ちたよとエラーメッセージを通知をするシステムが欲しかったので作ってみた。 ただ作るだけじゃおもしろくないのでtypescriptで作ってみたけど単純な仕組みなので あまり型の恩恵…

スキルシート

プログラマの求人みていて思うのだがなぜ言語を最重要視するのだろうといつも思ってた。 言語はたしかに大事だがそれは道具の使い方の話だろうし武器にたとえるならいろいろな流派もあるはずだ。 武人にもしスキルシートがあればこんな感じだろうし ・流派 …

re:Ryan Dahl の面接試験:csv データのオブジェクト配列への変換

中島聡さんのブログにある頭の体操をやってみた 所要時間15分くらい http://satoshi.blogs.com/life/2012/12/ryan-dahl.html >JavaScript は Node.js の最新バージョンに使われているものを前提としてください(←ヒント)。 とあるがもっと簡単にできるの…

ストリーム型通信でプログラマが知らなければいけないこと

基本は3つしかない。 これはバイナリだろうがテキストだろうが同じ。 ・バッファリング 一回の受信ではデータが揃わないのでデータが解読できるまで貯めておくこと。 ・ディスパッチ データを解読してイベント処理を発行すること。 ・イベント イベント処理…

nodejsで実行時にスクリプトファイルを読み込んで実行する

C++などでluaを使ってよくやるスクリプトシステムと同等の仕組みを意味があるか別としてやってみた。 new Functionを使うと簡単かつJITが効く速いコードができる。 逆にこういう用途に使うであろうvmモジュールはくっそ遅い上にunstableなので使いにくい var…

東京node学園祭2012参加してきました

東京node学園祭2012参加してきました イントロダクション 基調講演New Readable Stream in Node 0.10 Nodeコアの歩き方~Nodeの開発に参加しよう~ Running Node.js in Production layering distributed systems ECMAScript tools - composable modules and …

node.jsのベンチマークいろいろ

githubにリポジトリ作った https://github.com/you21979/nodejsbenchmark ・new Function new Functionで動的にコード作るのたしかに早い。 evalはJIT効かないけどnew Functionは効いてる requireが使えないけど。 ・mysql + ayncblock mysqlでasyncblock使…

freenas8.3

freenas8.3が気づけば出てたのでついでにVMWARE-ESXiの仮想化ドライバも入れた mount -o rw / mount -t cd9660 /dev/cd0 /media cd /tmp tar zxvf /media/vmware-freebsd-tools.tar.gz cd vmware-tools-distrib cp lib/modules/binary/FreeBSD8.1-amd64/*.ko…

最適化2

前回の最適化で気になったので調べてみた http://you21979.hateblo.jp/entry/2012/10/19/143845 nodejsでswitch ~ case遅いとあったけど実際に試してみて5000超えたあたりから許容できないかもしれない 20000のenumを作ってcaseしまくってるのだが https://…

node.jsの0.8系

そろそろ使っても大丈夫そうだろうか やばそうなバグもだいぶ取れてるっぽいし(メモリリークとか) 0.6系のアップデートが12月までだしなぁ 起動管理ツールでforeverが使えないとやっぱきついなぁと思っていたのだが 最近qilinもよさそうに感じてる

最適化

↓の記事を読んで自分なりに解釈 https://github.com/felixge/faster-than-c こんなかんじで最適化してるのか。DSLでソースコードジェネレートすればこういうのもありだな。オブジェクトを初期化時に項目を設定することが最適化につながるようだ -- 最適化前 …

プログラム言語

自分はあまりプログラム言語にこだわりがなくて いろんな言語をつまみ食いするのが好きで 邪道なことばかりやってる C言語のマクロでパスカル書いたり(昔怒られた) C言語のマクロとキャスト使ってOOやったり javaにプリプロセッサ使ってマクロ適用させたり…

python

テンプレートエンジンいまだにgenshi使ってるけど djangoのほうがよいのだろうか。 外部DSLのコード生成に何使うか再検討してるので。。。 あとでコード書いて試してみよう #ぱいそんは俺俺ツールとクローラ以外作ったことないからあまりモジュール詳しくな…

リアルタイムサーバーでのリソース管理

nodejsで大量のオブジェクトを管理する方法 WEB系のPHPerの人は意外にしらないようなので普通のサーバーアプリケーションのリソース管理方法を記載してみる 下のようにシングルトンのマネージャを作成しマネージャ経由でオブジェクトを生成する 削除もマネー…

android4.1のcyanogenmod

いつの間に出てた そのうち試してみよう http://download.cyanogenmod.com/?device=maguro&type=nightly ↑のリンクはgaraxy nexus用 M1とついてるのが一応動くバージョンらしい それ以外は単なるデイリービルド

freenasのvirtioドライバ

freebsdのvirtioドライバはぐぐってみつけたのだけど http://people.freebsd.org/~kuriyama/virtio/ shellからpkg_addコマンドでインストールしても再起動すると元に戻るようだ どうにかして入れられないものだろか

関数型慣れてきた

というか オブジェクト指向言語でオブジェクト指向じゃないものが だいたい関数型パラダイムなんだなぁ C言語のマクロとかで関数合成みたいのやってたし ファイバーとかマイクロスレッドとかの継続はモナドの一種だし デザインパターンはモナドだし オブジェ…

node.js

node.js触ってて職業プログラマが仕事で触るにはまだ早いかもなぁと思ってしまう。 以下の2つを何かの言語で習得してないならnode.jsはきついと思う リアルタイムプログラミング ネットワークプログラミング オンラインゲームを支える技術を読んで理解でき…

KVMでデスクトップ仮想化でやったことリスト

UBUNTU12.04の場合 ・grub kernelパラメータの設定 IOMMUを使えるようにする /etc/default/grub GRUB_CMDLINE_LINUX="amd_iommu=on iommu=on,pt,noaperture pass-through" ・kvm /etc/modprobe.d/kvm.conf options kvm allow_unsafe_assigned_interrupts=1 …

KVMでデスクトップ仮想化

esxiのデスクトップ仮想化がうまくいかなかったのでKVMで。 (XENからの移行なのでXENとあまりやり方かわらない) CPU AMD-FX 8120 MEM16G MOTHER ASROCK990FX EXTREME4 RADEON 4350 RADEON 6570 ・あきらめ PCIデバイスのパススルーとマザボのオンボードSAT…

node.jsをサーバーとして立ち上げるときにやること1

1.daemon化 foreverを使うのがよいが0.8~しかサポートしなくなった 0.6系を使うならstart-stop-daemonを使う https://github.com/jiem/start-stop-daemon これで以下のコマンドで制御できる node --expose_gc ./daemon.js start node --expose_gc ./daemo…

夏休みの宿題

今年はesxiのデスクトップ仮想化 CPU AMD-FX 8120 MEM16G MOTHER ASROCK990FX EXTREME4 RADEON 4350 RADEON 6570 躓いたことリスト ・イーサネット broadcomのドライバがインストールcdになかったので落としてきてCD再構成 http://www.vladan.fr/esxi-custom…

node.jsの構文による速度比較

なんかブラウザの常識と違う気がする v0.8.4で測定 オブジェクト生成 var x = null; for(var i=0;i<100000000;++i){ x = new Object(); } real 0m2.619s user 0m2.573s sys 0m0.005s var x = null; for(var i=0;i<100000000;++i){ x = {}; } real 0m0.419s u…

node.jsのオブジェクト

ハッシュテーブルとして使った場合遅くて使えない・・・ 削除しなければいいのだけど削除が入ると死ぬほど遅くなる var x = {}; for(var i=0;i<1000000;++i){ x[i] = 0; if(i%10000 === 0){ console.log(i); } } for(var i=0;i<1000000;++i){ delete x[i]; i…

haskell

haskellはじめました maybeはともかくモナドが手ごわい なつやすみの宿題だなぁ

node.jsのガベコレ

よくメモリリークしてるとか言われているがどういうときに起こるか そもそもnode.jsのガベコレは他のガベコレと同じようにリアルタイムアプリケーション作る場合によくやるフレーム毎にGC処理をコールしてやる必要がある(UNITY,AS3など) これをやらないと…

node.jsでのMYSQLトランザクション処理実装例

今回の御題はasyncblock fiberで実装されたI/O処理同期化モジュール コレを使ってSQL処理に特化したnode-seqに似たようなことをやってみた 前回の記事の3番の実装例っす https://github.com/scriby/asyncblock var q = new Query(mysqlconn); q .begin() .qu…

node.jsでmysqlはつらい

mysqlのモジュールで普通に組むといろいろな問題に直面する ・1.1アクセス1コネクションだとあっというまにmysqlの接続上限に達する ・2.コネクションプールしてコネクションをユーザー間で使いまわすとトランザクションが使えなくなる ・3.クエリー…

node.jsで参考にした記事とか

はてブをさらしておく http://b.hatena.ne.jp/you21979/node.js/ http://b.hatena.ne.jp/you21979/node.js/module/

websocket + node.js + node-http-proxyで負荷分散

websocketでググルとsocket.ioばかりヒットするがブラウザの対応がまちまちなことによる一過性の技術だとおもうので使わない方針 WorlizeのwebsocketがActionScript3版のライブラリも用意しててブラウザ使わないならよさそう https://github.com/Worlize/Web…

node.jsのfiber実験

こんなことしてもいいのだろうか script.js var Fiber = require('fibers'); (function(){ var check = (function(){ var i = 0; return Fiber.prototype.run.bind(Fiber(function() { // なんかする while (true) { // 完了するまで待つ if(i>=10000){ brea…