自由課題

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

IoTシステムにおけるRESTful設計

RESTful Design for Internet of Things Systemsのドラフト版というものを見かけたので、ざっと読みつつ雑感をメモしておくことにしました。 なお、本記事はRESTに関してある程度知識を持っていることを前提としています。

YosemiteのIntelliJ IDEA CE上でGradleプロジェクトを作成するまで

もろもろの環境が少し落ち着いたので、前から気になっていたReactive Streamsを 試してみようと思ったのだけれど、そもそも自分のMBPにはソフトウェアの開発環境が全く入っていないことに気がついた。 ということで、まずは開発環境の整備から、と思ったのだ…

2015上半期に読んだ書籍まとめ

基本的に活字中毒なので、時間が空けばほぼ何らかの活字を読んでいる。思いつき以上のものはないのだが、ここ半年のAmazonの購入履歴の中からソフトウェア開発・ビジネス書について印象の強いものをまとめてみた。なお、それぞれのカテゴリ中の並びは購入順…

The NoTCP Manifesto 日本語訳

はじめに インターネット通信の高速化については個人的に結構前から興味があって、確か2012年か2013年時点でGoogleがQUICに取り組んでいたことはなんとなく覚えているのだけれど、インフラの話も絡んでくることもあり、なんとなく誰にでも検討できるものでも…

NetBeansにおけるアーキテクチャの質問(日本語訳)

はじめに インターフェイスを設計するために読んだ技術書まとめ - 自由課題 の記事でも紹介した書籍 APIデザインの極意 Java/NetBeansアーキテクト探究ノート作者: Jaroslav Tulach,柴田芳樹出版社/メーカー: インプレスジャパン発売日: 2014/05/23メディア:…

インターフェイスを設計するために読んだ技術書まとめ

アーキテクトの(機能面での)主要な仕事の1つに、システムを構成するサブシステム/コンポーネントの境界、つまりインターフェイスを決める、というものがあります。またはそこまで大げさに捉えなくても、例えばライブラリのAPIを設計する、というのは単にプ…

James Lewis/Martin Fowlerの"Microservices"日本語訳

はじめに 本記事はMartin Fowler氏のBlog記事を日本語訳したものです。 なお、訳は2014/11/09時点のもので、オリジナル記事中のコラムは訳せていません。コラムの訳に関しては、暇や反応を見ながらぼちぼちやろうと思います。 訳に対する指摘・ご意見などあ…

イベント駆動っぽくmbedのLチカをやってみた

すみません。タイトルはほぼ釣りです。 何周遅れかわかりませんが、mbed NXP LPC1768を買ったのでLEDチカチカ(Lチカ)のコードを書いてみました。 開けたらこれくらいのボードが入ってた。小さい。 pic.twitter.com/NDsOfu8lzl— kimito_k (@kimito_k) 2014, 1…

今日から始めるgitlab生活

ふとgitlabサーバを立ててみようと思い立って少し調べてみたところ、 意外と簡単そうだったのでgitlabを全自動でセットアップするVagrantfileを作ってみました。 正直あまり大したことはやってませんが、一応記録として。 kimito/vagrant_gitlab kimito/vagr…

Jenkins/Gitlab Merge Request Builder PluginのREADME訳

はじめに 本記事は 2014/09/09(commit:d9ce6a4bef)時点の https://github.com/timols/jenkins-gitlab-merge-request-builder-plugin のREADMEを適当に訳したものです。 なお、本プラグインはApache License, Version 2.0となっています。 特にメニューの名称…

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のセットアップの自動化手段として…