@ledsun blog

Hのキーがhellで、Sのキーがslaveだ、と彼は思った。そしてYのキーがyouだ。

JavaScript

アルゴリズムとデータ構造をたどるWebサーフィン

#rustfestの発表 yoshが #rustfest の発表が、すごい面白かったとツイートしているのを見ました。 Reading list:- https://t.co/CSO8OCB3jM- https://t.co/Zr6BBRa1yeAnd more, linked in the slides: pic.twitter.com/eafHj3oTDj— yosh at rustfest (@yoshu…

「有名な統計力学ゲーム」をcanvasで表示してみる

今回のテーマ 前回の ledsun.hatenablog.com では、やり取りの結果をSVGのレーダーチャートで表示しました。 SVGではやり取りが1000回を超えると快適に表示できませんでした。 今回は、canvasのレーダーチャートに表示します。 チャート See the Pen statist…

「有名な統計力学ゲーム」をレーダーチャートで表示してみる

今回のテーマ 前回の ledsun.hatenablog.com では、分配アルゴリズムの実装と結果を数値で表示しました。 今回は、アルゴリズムには変更を加えずに結果をレーダーチャートで表示します。 チャート See the Pen statistical_mechanism_on_chart by shigeru.na…

「有名な統計力学ゲーム」を実際に試してみる

有名な統計力学ゲーム 有名な統計力学ゲーム。6人が均等にコインを持つとする。サイコロを二つ振り、一つ目の出目の人はコインを中央に、二つ目の出目の人はそのコインを貰う。無い人は出さない(借金なし)。これを繰り返すと少数の金持ちと多数の貧乏人がで…

DOM更新アルゴリズムを実装しました

github.com 動機 virtual-domの良さ Reactに代表されるようにGitHub - Matt-Esch/virtual-dom: A Virtual DOM and diffing algorithmを使うと、デザイン変更時に、JavaScriptのロジックを考えずに、HTMLとCSSを考えるだけよくなることがわかっています。 一…

はてなブックマーカによる「アニメ史上に残るオリジナル展開」

集計対象 コメント数 全コメント プラネテス 鋼の錬金術師 喰霊 ドラゴンボール 攻殻機動隊 蒼き鋼のアルペジオ うる星やつら こどものおもちゃ みなみけ アイドルマスター セーラームーン 幽遊白書 くまみこ ぼくらの サザエさん デビルマン ミスター味っ子…

はてなブックマーカによる「日本史上で優れた思想家って誰?」

anond.hatelabo.jpに対する はてなブックマークコメント b.hatena.ne.jp を集計しました。 10人 お題どおりに10人挙げます。 西田幾多郎 福沢諭吉 本居宣長 丸山眞男 道元 鈴木大拙 夏目漱石 安藤昌益 平田篤胤 荻生徂徠 私は門外漢です。結果が妥当かどうか…

はてなブックマーカによる「凄い面白いファンタジー小説」

ベスト3 十二国記 守り人シリーズ ゲド戦記 4位以下 ドラゴンランス 魔法の国ザンス 本好きの下剋上 はてしない物語 ナルニア国物語 勾玉シリーズ グイン・サーガ 〈卵王子〉カイルロッドの苦難 以下票数のみ 集計方法 データ取得 集計 anond.hatelabo.jp に…

Node.jsでつくるNode.js その2

ledsun.hatenablog.com の続きです。四則演算の対応するオペレーター(演算子)を増やします。 オペレーターを増やす 前回+に対応しました。 次に、-, *,/,%に対応します。 実装 switch文に演算子ごとの分岐を追加するだけです。 const esprima = require('e…

Node.jsでつくるNode.js その1

ledsun.hatenablog.com の続きです。Node.jsで動くJavaScriptインタプリタを実装しようとする試みです。 作戦 パーサにはEsprimaを使う TDD的なスモールスタート戦略で進める(最初はセルフホスティングを意識しない) 下調べ EsprimaがどのようなASTを返す…

RubyでつくるRuby 読書感想文

どんな本? RubyでつくるRuby ゼロから学びなおすプログラミング言語入門(紙書籍)www.lambdanote.com 言語処理系の実装を体験するための本。 言語処理系の実装はパーサの実装が面倒臭くて、大抵の人はそこで力尽きます。 そこで、パーサは著者の方が用意し…

テキストより複雑な構造のデータを扱うWikipediaを作る

モチベーション 専門性を持った不特定多数のユーザに協力してもらい、個人では作り得ない大規模なデータベースを作りたいことがあります。 例えば、Wikipediaは、(記述の正確性や公平性における問題は抱えているかもしれませんが)規模の点で成功しています…

東京Node学園祭2015に参加しました #nodefest

本編短評 Node Discussionがめっちゃくちゃ面白かった @domenicさんはbabelが好きじゃない*1。moduleはもっと好きじゃない*2 Node.jsにES6 moduleサポートが入る目処は立っていない。そもそも仕様が決まっていない。 power-assertはNode.jsのコアに入らない…

Form で遊ぶために対抗サーバーを作って公開した

背景 HTML fromを新人に説明しようとしました。 うまく説明できませんでした。 つまり、よく分かっていません。 ドキュメントを読んで言葉で理解し、 パラメーターを変えながら実際に動かして、心で理解したいです。 しかし、formは対抗するサーバーがないと…

JavaScript入門用のコンソールプログラムjavascriptingを翻訳しました

javascriptingを翻訳しました。 javascripting-jpとは何か? ledsun/javascripting JavaScriptの文法を学ぶコンソールアプリケーションです。 文字列や数値、条件文やforループなど文法を学びます。 次のコマンドでインストールできます。 npm install --glo…

bowerパッケージのアップデート手順

bower.jsonを見て、使っているパッケージ名を確認します。 bower info xxxで最新バージョンを確認します。 bower.jsonのバージョンを書き換えます。 bower installで更新します。

(私的)npmモジュールの作りかた

npmモジュールを作るときの自分の手順をまとめました。 プロトタイプをコーディング済みで、コンセプトが固まっている前提です。 モジュール名を決める npmを検索、類似ライブラリが無いか探す。 ついでに、APIや実装にパクれるネタを探します ハイフン区切…

6to5で作ったnodeライブラリ

ライブラリをES6で書いて公開する所から始めよう | Web Scratch 読んで触発され、 6to5を使ってライブラリを書きました。 作ったライブラリ チャットワークにメッセージをポストするだけの関数です*1。 ledsun/post-chatwork-message こんな感じで使います。…

JavaScriptの日付に1日足したり2時間引いたり、計算するライブラリを作りました

IE9以降のブラウザとNede.jsで動きます。 AMDでも動くはずです。 試していません。動かなかったら教えてください。 ledsun/date-adder どんなライブラリか? こんな感じ dateAdder(new Date(2014,10,27), {days: 1}) //Thu Nov 28 2014 00:00:00 GMT+0900 (J…

グーグルカレンダーに予定を追加するURLを作るライブラリを作りました

ledsun/generate-google-calendar-url Node.jsとブラウザどちらでも動くように作ってあります。 作った理由 Google Chrome拡張で使いたかった。探してもURLだけを作ってくれるライブラリがありませんでした。 carlsednaoui/add-to-calendar-buttons URLは作…

東京Node学園祭2014に参加しました #nodefest

東京Node学園祭2014に参加しました。 nodeschool in Japan maxwell ogdenによるNode.jsのワークショップの日本出張版。 Nodeschool Tokyoに大体の内容が書いてある。 maxogden/levelmeup-jp · GitHub をやってみました。 levelmeup-jpコマンドでターミナル上…

reduceでPromiseをつないでタイムライン実行する

Promiseとreduceを組み合わせたトリック。 適当な間を置いてイベント発行するstubを作る時に使いました。 指定時間後に処理を実行するPromiseを作ります。 var DelayPromise = function(delay, action) { return new Promise(function(resolve, reject) { se…

Ansibleを使ってRaspberry PiにNode.jsをインストールする

前提 2014-06-20-wheezy-raspbian.imgを使ってRaspberry Piが起動できていること。 ansibleをインストール Mac ではHomebrewが使えます。 brew install ansible 設定ファイルを準備 hosts [raspberry-pi] 192.168.0.54 IPアドレスを適切に設定します。 ansib…

crestとバグとpacage.json

MongoDBを外部プログラムから更新するのにREST APIがあると便利です。 Cordazar/crest · GitHubというアプリケーションを試してみました。 バグを踏みましたが、原因がわかりました。そういう話です。 npm installできない npm install crest エラーが起こり…

MQTTとJavaScript

MQTTってなに? PUB/SUBプロトコルです。 HTTPと同じレイヤーです、主にTCP上で動きます。 WebSocket上でも使えます。 温度計などのセンサーの計測値を集めるM2MプロトコルとしてIBMに開発されました。 なぜMQTTなの? 公式には 小さいコンピューター(Rasbe…

Gitlabの更新情報をChatworkに通知するアプリケーション、Syamoを作りました

Gitlabの更新情報をChatworkに通知するアプリケーション、Syamoを作りました。 Syamoとは? Gitlabのプロジェクトが更新されたときにChartworkのチャットルームにメッセージを送ります。 Gitlabのプロジェクトの更新情報は次の三つです。*1 gitブランチへのp…

Gitlabの更新を契機にJenkinsでnode.jsアプリケーションをテスト

はじめに 前提条件 ソース管理はgitlab JenkinsはCloudbeesを使う*1 テストはfresby.jsで書いてる 目標 gitlabでトピックブランチをmasterにマージしたら自動的にテストする gitlabの設定 秘密鍵 Jenkinsがgit cloneできるように秘密鍵を登録します。 Jenkin…

component.js(1.0.0-rc5)を試す

component.js component.jsはnpmやbowerを使った依存する外部ライブラリ(JavaScript,CSSともを含む)の解決と、 unglifyやcssminで行う自作ファイルを適切に組み合わせるビルドを1つのツールでやってしまおうとする 意欲的なツールです。 Getting Started …

ZeroClipboard

ZeroClipboardを紹介します。 ZeroClipboardとは ブラウザからクリップボードに書き込むためのJavaScirptライブラリ。 githubで使われています。 なぜZeroClipboard? クリップボード操作はブラウザ依存(InternetExplorer専用)です。 ZeroClipboardはFlash…

設定なし、コマンド一つで起動できる簡易httpサーバー http-server

nodeapps/http-serverを紹介します。 これはなに? 設定なし、コマンド一つで起動できる簡易httpサーバーです。Node.jsで実行します。 どうやって使うの? インストール brew install node npm install http-server -g 起動 http-server . ブラウザで http:/…