Nand2Tetris(コンピュータシステムの理論と実装)でCPUからOSまで一気通貫で作るのが最高に楽しかった話
どうも、しいたけです。去年あたりからローレイヤー周りの知識を充実させようと思い、 低レイヤを知りたい人のためのCコンパイラ作成入門を読んでCコンパイラを書いてみたりx86_64の勉強をしたりしていました。今年に入ってから、よりローなレイヤー、具体的にはハードウェアやOSについてもう少し知りたいと思い始め、手頃な書籍を探していました。...
View ArticleラズパイとWebRTCで動物の死活監視ができるようにした話
こんにちわ、しいたけです。今は夏休みで奥さんと子どもたちが帰省しているので、動物と2人で暮らしています。で、外出すると動物だけを家に残していくことになります。 ペットモニターとか市販でもあるんですが、せっかくなので、 夏休みの自由研究として、ラズパイ+カメラモジュールとWebRTCを使って、外出先からでも動物の状態を確認できるやつを作ってみました。↑ 死活監視される動物の様子です用意したものPi3...
View Articleasync/awaitとpromise使えばモナド糖衣構文っぽいの書けそうだよねって思って書いてみたけど、async () => {}...
タイトルで全部言い切ってますが// Optional container like maybe monad class Option { constructor(value){this.value = value } async promise() {returnnew Promise((resolve, reject) => {if (this.value) {...
View Article関数の話
こんにちは、しいたけです。某所で関数型プログラミングとはリスト処理のことなのか、と燃えているのを見て、関数型プログラミングとは何か、ということを自分なりの考えを述べたいと思いました。春なので。この資料は2年ほど前にSupershipの社内勉強会で使ったものですが、この中で関数とオブジェクトを対比している箇所があります。...
View Article作って学ぶ 「Https Man in The Middle Proxy」 in Go
ᕕ( ᐛ )ᕗ こんにちわ、しいたけです。webのhttps化が推進される昨今ですね? https通信は経路上での通信内容が盗聴・改竄されるのを防ぐことができますが、開発用途でhttps通信の内容を確認したい場合が稀にあります。そのような場合は mitmproxyなどを導入すればよいのですが、せっかくなので実際にこのようなProxyをGoで実装してみて、...
View Articlego tool traceでgoroutineの実行状況を可視化する
こんにちわ。しいたけです。今日はgoroutineの実行状況をいいかんじに可視化するツールの話です。goのプロファイリングツールと言えば、 runtime/pprofや net/http/pprofですよね。これらの使い方はググればすぐに出てくるのですが、 詳細なtraceを取得して可視化できる...
View Articleディスク使用量をFlameGraphで可視化する
こんにちわ。しいたけです。今日はディスク使用量をFlameGraphにするツールの話です。FlameGraphについては、 Flame Graphsや GolangでFlame Graphを描く |...
View Article「関数型Ruby」という病(7) - Elixir's Pipe operator |> in Ruby
最近Elixirが人気ですよね。ErlangVM上でOTPの恩恵を受けながら簡潔な記法で並行処理を書ける言語ということで話題になっていますな? Elixirは関数型プログラミングのエッセンスを取り入れていると言われており、そのひとつにPipe演算子(|>) がある。Enumerables and Streams - ElixirKernel – Elixir...
View Article「commit-m: GitHubコミットメッセージの文例が検索できるサービス」がとても便利だったのでcliから使えるコマンド書いた
http://commit-m.minamijoyo.com/:titeleという有名OSSのコミットメッセージを検索できるサービスがあって、英語のコミットメッセージを書くときに「あれ? これどういう風に書けばいいんダー」ってときに例文を検索できて捗る。commit-m.minamijoyo.comが、自分の場合はコミットメッセージ書くときはvimとか git commit...
View Article表参道.rb #4で「本当は怖い オープンクラスと Duck Typing」というLTをやった話
スライドです本当は怖いオープンクラスとDuckTyping - 表参道.rb #4まぁたいした話じゃないんですが、マッドマックスの画像をスクリーンに大写しできたのでその点だけで個人的には満足しています「型を讃えよ」
View Article"err"という文字列をHighlightしておくとGolangのコードリーディングが捗る
vimの人はこんな感じでautocmd FileType go :highlight goErr cterm=bold ctermfg=214 autocmd FileType go :match goErr /\<err\>/
View Articlegolang勉強会で「cgoやってみた」という話をしてきた
Go lang勉強会 - connpassで発表してきた。今までにblogに書いたcgoの話。以下が資料とサンプルコード。資料 : http://yuroyoro.net/trying_cgo/サンプルコード :...
View ArticleぼくのかんがえたさいきょうのGit Repository Browser: Gitterb...
3年ほど前に、GitterbというGitリポジトリのコミットログを可視化するツールを作った。ぼくのかんがえたさいきょうのGit Repository Browser - ( ꒪⌓꒪) ゆるよろ日記Gitterb by yuroyoroyuroyoro/gitterb · GitHubこのアプリケーションはRuby1.9/Rails3.2...
View Articleʕ ゚皿゚ ʔ GolangのASTを可視化するツールを作った
はじめてのGo Runtime。ということで、GoのAST(抽象構文木)を可視化するツールを書いた。yuroyoro/goast-viewer ·...
View ArticleオマエらはもっとObject#tryの便利さについて知るべき
arr = [ ["foo", "", "bar"], nil, ].sample arr.try(:reject, &:blank?) #=> [“foo”, “bar”]Object#tryはnil-safeなcallとして使えるblockを取るメソッドのsymbolを渡した場合に、第二引数にprocを渡しても動作する要activesupport.gem...
View Articleʕ ゚皿゚ ʔ GolangのWeb Application Frameworkを色々試してみてもいいかしら?
うちのメロンちゃんはLv.117です。Golangで、簡単なWebアプリケーションをいくつかのフレームワークを用いて作成してみた。サンプルアプリケーションは、こんな感じのPhotoギャラリーアプリケーションで、画像URLを入力すると追加される。 PureというCSSフレームワークのサンプルから拝借した。Photo Gallery – Layout Examples –...
View Articleʕ ゚皿゚ ʔ GolangからLevelDBを使う
cgoとLevelDBを使って、タイトルのとおりのものを作ってみた。頑張ればRiakとかInfluxdbみたいなのを書けるかもナー。ʕ ゚皿゚ ʔ cgo楽しいおシーゴォーコードはすべてGithubにある。yuroyoro/leveldb-go-sample ·...
View Articleʕ ゚皿゚ ʔ Golangからv8を使う
cgoとlibv8を使って、タイトルのとおりのものを作ってみた。頑張ればnodeみたいなのをgoで書けるかもナー。ʕ ゚皿゚ ʔ cgo楽しいおシーゴォー基本的な方法は以下の記事にあるとおりだが、v8のバージョンが上がっていたりするので、多少の手直しをしてある。Embedding V8 Javascript Engine and Go | Brave New...
View Article「関数型Ruby」という病(6) - 関数合成と文脈、Proc#liftとProc#>=、そしてモナ
前回から一年以上が経過しているけど、最近lambda_driver.gemに機能を追加したので、そのことについて書こうと思う。Rubyで、モナ……っぽい関数合成を実装した話だ。Rubyで関数合成とかしたいので lambda_driver.gem というのを作った - ( ꒪⌓꒪) ゆるよろ日記関数合成関数合成については以前に書いたので、こちらを見て欲しい。「関数型Ruby」という病(2) -...
View Article