自由課題

学んだり、考えたり、試したりしたこと。

Polymerでscriptタグを使わずにAJAXする方法

はじめに ぼちぼち勉強していたら、Google I/Oでブチあげられて俄然注目度が上がってきた(?)Polymerに関してです。 (関連記事は Polymer - 自由課題 を参照) リファレンスを見ていたら、<core-ajax>というエレメントが用意されているのを見つけました。確か公式チュート</core-ajax>…

Web ComponentsのライブラリPolymerを試しはじめるまでの記録

Polymerを試し始めるまでの手順を淡々とまとめました。 PolymerはWeb Componentsの機能をいろいろなブラウザで利用するためのライブラリです。詳しくはこちらなどを参照してください。 環境 OSX 10.9.3 VirtualBox 4.3.2 Vagrant 1.6.3

声に出して読みたいUNIX&LINUXライブラリ関数

C C++

"LINUXプログラミングインターフェイス"という本を読みました。 この本は、"本書は Linux および UNIX システムプログラミング API の(ほぼ)完全な解説を目標とし、内容 は広範囲の Linux プラットフォームに通用するもの(まえがきより)"ということで、約150…

Polymerのデータバインディングについて(公式ドキュメント日本語訳)

はじめに 最近気になっていたWeb Componentsを本格的に触り始めようかということで、Web Componentsの機能をフル活用したライブラリであるPolymerの公式ドキュメントを斜め読みしていたところ、データバインディングについて記載があったので訳してみました…

C++における単体テストのための依存性注入方法まとめ

はじめに あるモジュールを作成した時、当然ながら(ですよね?)このモジュール(以降テスト対象モジュールと呼びます)を何らかの方法でテストする必要があります。テスト対象モジュールが別のモジュール(以降依存モジュールと呼びます)に依存している場合、 テ…

node.jsを支えるlibuvのチュートリアル"uvbook" :ユーティリティ

この文書はuvbookの日本語翻訳の一部となります。文書そのものの説明その他については目次をご覧ください。

node.jsを支えるlibuvのチュートリアル"uvbook" :イベントループ

この文書はuvbookの日本語翻訳の一部となります。文書そのものの説明その他については目次をご覧ください。 より進んだイベントループ libuvはイベントループに対して相当な制御機構を提供しており、複数のイベントループで曲芸を行うことにより興味深い結果…

node.jsを支えるlibuvのチュートリアル"uvbook" :プロセス

この文書はuvbookの日本語翻訳の一部となります。文書そのものの説明その他については目次をご覧ください。 プロセス libuvはかなりの量の子プロセス管理機能を提供しており、プラットフォーム間の差異を抽象化し、ストリームや名前付きパイプを用いて子プロ…

node.jsを支えるlibuvのチュートリアル"uvbook" :スレッド

この文書はuvbookの日本語翻訳の一部となります。文書そのものの説明その他については目次をご覧ください。 スレッド ちょっと待って下さい? なぜスレッドの話をするのですか? イベントループは web-scaleプログラミング を行うための 手段 だったのではない…

node.jsを支えるlibuvのチュートリアル"uvbook" :ネットワーク処理

この文書はuvbookの日本語翻訳の一部となります。文書そのものの説明その他については目次をご覧ください。 ネットワーク処理 libuvにおけるネットワーク処理は直接BSDソケットを用いた場合のそう変わりませんが、いくつかのことは簡単になっており、全ては…

node.jsを支えるlibuvのチュートリアル"uvbook" :ファイルシステム

この文書はuvbookの日本語翻訳の一部となります。文書そのものの説明その他については目次をご覧ください。 ファイルシステム 単純なファイルシステムの読み取り/書き込みには uv_fs_* 関数群と uv_fs_t 構造体を用います。 Note libuvのファイル操作はソケ…

node.jsを支えるlibuvのチュートリアル"uvbook" :基礎

この文書はuvbookの日本語翻訳の一部となります。文書そのものの説明その他については目次をご覧ください。 libuvの基礎 libuvは 非同期、 イベント駆動 のプログラミングスタイルを強制します。 libuvの中心的な機能はイベントループとI/Oと他の活動(activi…

node.jsを支えるlibuvのチュートリアル"uvbook" :イントロダクション

この文書はuvbookの日本語翻訳の一部となります。文書そのものの説明その他については目次をご覧ください。 イントロダクション この'書籍'はWindowsとUnixで同じAPIを提供するハイパフォーマンスなイベント駆動(evented)I/Oライブラリとしてlibuvを使うため…

node.jsを支えるlibuvのチュートリアル"uvbook" :目次

はじめに node.jsの基礎となるライブラリにlibuvというものがあります。以前からnode.jsの仕組みについて気になっていたので調べようと思ったところ、uvbookというlibuvのチュートリアルがあったので訳してみることにしました。 この文書のライセンスについ…

リーダブルコードを書くこと、あるいはコードをデザインすること

リーダブルコードという書籍を読みました。 私はデザイナというわけでは全くないのですが、視覚デザイン(知覚心理学)におけるゲシュタルトの法則と類似点を感じたのでまとめておきます。 リーダブルコード ―より良いコードを書くためのシンプルで実践的なテ…

vagrant sshがスリープすると切断される件

MBPでVagrantを使っている最中にスリープさせると、スリープ復帰後SSHが切断される現象が起きてかなり不便だったので他に困っている人がいないか調べてみました。 他に困っている方がいるかも知れないので備忘録ついでに書いておきます。 現象 vagrant sshで…

makecontext関数でコルーチンを実装してみる

C

ユーザレベルでコンテキストの切り替えを行う関数としてmakecontextという関数があります(ここでいうコンテキストはこれです)。 これを使うとpthreadやプロセスを利用せずに処理の流れを制御できます。 車輪の再発明感がかなりありますが、この関数と関連す…

ファイバ・コルーチン実装まとめ

リアクティブプログラミングを行うにあたって、並行処理の方法としてマルチスレッドモデルではなくファイバ(またはコルーチン)を使うことがひとつのポイントに思えたので調査してみました。なお、範囲は普段自分がよく使う言語ということで、C/C++/Ruby/Java…

The Reactive Manifesto 日本語訳

まえがき ガートナーのレポートやInfoQの記事なんかをみると、リアクティブプログラミングというのがこれからくるよ、というのが書いてあったので少し前にちょっと調べていました。その時にアジャイルマニフェストみたいな感じでThe Reactive Manifestoとい…

Ruby on Railsをすぐに試せるVagrant環境

Ruby on RailsでWebアプリを作るときには、当たりまえですがRuby on Railsの環境を準備する必要があります。慣れの問題といえばそうなのですが、これが結構面倒くさい。しかし、ちょっとググってみたところだとVagrantをOSのセットアップの自動化手段として…