Folioscope

Builderscon Tokyo 2018 に行ってきた (2/2)

builderscon2日目レポートです。 今日も豪華なスピーカーが勢揃いで、最高の1日でした。

builderscon tokyo 2018 end day

※ 画像はaphyrさんのスライドからです

Security, privacy, performance of the upcoming transport protocols

1本目は、kazuho氏による次世代のインターネットプロトコルのお話でした。

インターネット・プロトコルは変革期で、次々と新しいプロトコルが生まれています。 セキュリティという観点では、パブリックWi-Fiの普及やスノーデンの話をきっかけに、完全なネットワークで暗号化が必要となっています。 現在、あるいは近い将来にDNS over HTTPSやQUICなどの次世代のプロトコルが必要になっています。

この発 …

もっと読む…

Builderscon Tokyo 2018 に行ってきた (1/2)

Builderscon Tokyo 2018 1st Day

builderscon1日目に行ってきたので、忘れる前に参加レポートです。 buildersconは弊社からもスポンサーをしており、その招待チケットを頂いたのでbuildersconに行くことにしました。

buildersconは「知らなかった、を聞く」をテーマとした技術を愛する全てのギーク達のお祭りです。

buildersconの発表は最大5並列で行われ、ジャンルは組み込み系からWebフロントエンドまで様々です。 今年は(今年も?)ゲストスピーカーが豪華でNetflixやLyftのエンジニアなども招待されてました。 1日目の全体的な所感として、Kubernetesやマイクロサービスなどのモダンなインフラの話が熱い印象で、人が入り切らず途中で締 …

もっと読む…

オライリー・ジャパンから「Kafka」が発売されます

2018年8月3日に、オライリー・ジャパンから「Kafka: The Definitive Guide」の日本語訳が発売されます。 自分はこの本で、監訳という形で出版に携わらせてもらいました。

Kafak books

この本について

原書「Kafka: The Definitive Guide」は、Apache Kafkaの開発者たちによって執筆されてます。 本書はその和訳版です。

本書は、リアルタイムのストリーム処理基盤であるKafkaを使ったシステムの構築方法や、本番環境で運用するための手続きについて紹介しています。 本書ではKafkaのインストールから、Kafka APIを使ったアプリケーション、データパイプラインの構築方法、そしてKafka運用に必要なモニタリングやオペレーションをカバーしています。 またKafkaを使ったサービスのデザインパターンや、Kafkaの内部構造について …

もっと読む…

シェルスクリプトでIPアドレスの計算

sh

IPAMやDHCPサーバーを実装するとき、IPアドレスを機械的に生成するために、IPアドレスの計算をする事があります。 例えばIPAMがラックやデータセンターから機械的にIPアドレスを割り当てたり、DHCPサーバーが連番のIPアドレスを割り当てたりします。 この記事ではシェルスクリプトでIPアドレスを計算する方法を紹介します。

IPアドレスと数値の変換

IPアドレスを計算する上で欠かせない操作が、IPアドレスと数値の相互変換です。 IPv4アドレスは長さ4のバイト列に過ぎませんが、通常は192.168.0.1 のように人間の扱いやすい文字列で表現します。 一方IPアドレスを計算するには、IPアドレスをバイト列や32ビット数値などの、計算機で扱いやすい形に変換します。 IPアドレスを数値として扱えると、数値演算でIPアドレスを計算したりネットワークアドレスを求めやすくなります。

実はPythonは標準で、IPアドレスと数値の相互変換を簡単にできます。

import ipaddress
ipaddress.ip_address('192.168.1.200') + …
もっと読む…

オープンソース活動はドキュメントの修正から始められる

Readme Patch

先日、Vim VixenでREADME修正のPull Req.をいただきました。

あまりにも嬉しくて勢いで記事を書きました。

ドキュメントのメンテナンスは面倒くさい、なのでドキュメントの修正は嬉しい

ドキュメントのメンテナンスはソースコード以上に面倒です。 個人プロジェクトなんかは、作ってる本人は仕様が頭に入ってるので、文章が無くなったら引き継ぎができないなんてことはありません。 READMEが無くとも自分は全く困ってなかったので、これまでもメンテナンスは手を抜いてました。 さらに母国語でないと慣れば、なおのことメンテナンスは面倒です。

これは個人じゃないプロジェクトでも共通することだと思っています。 ドキュメント専門のチームが、ユーザーマニュアルをメンテし続けているのなら話は別ですが、 …

もっと読む…

Linuxのユーザー管理をetcd上でする

週末の自由研究で、Linuxのユーザー管理をetcd上でするサービスを書いてみました。

複数のマシン間でユーザー情報を管理するサービスといえば、LDAPが有名所です。 しかしLDAPは重装備すぎるので、もっとlightweightなサービスができないかと考えてみました。 そこでPoCですが、etcdをバックエンドにユーザー管理をしてみました。

ueokande/etcd-passwd Linux user managerment on etcd github.com

NSSサービスを書く

Linuxのユーザー情報を、/etc/passwd以外を参照するには、Name Service Switch (NSS)を設定します。 NSSとは、ユーザーやグループ、ホスト名を参照する時の参照データベースを切り替える仕組みです。 その設定は /etc/nsswitch.conf にあります。

たとえば以下のような設定があります。

# /etc/nsswitch.conf
passwd: files …
もっと読む…

Vim Vixen 0.13をリリースしました

Vim Vixen WebExtensions

お待たせしました。先日Vim Vixen0.13をリリースしました。

このバージョンでは多くの機能が追加されました。 主な機能を簡単に紹介したいと思います。

ページソースの表示

現在のタブの、ページソースを表示できるようになりました。 デフォルトはgfに設定されます。 古いバージョンから更新したユーザーは、以下の設定を設定画面の"keymaps"以下に追加してください。

{
  "keymaps": {
    "gf": { "type": "page.source" }
  }
}

リンクフォローの強化

リンクフォロー(Fキー)で開くタブの機能が強化されました。 新たなタブをバックグラウンドで開くことができるようになりました。 この機能はキーマップで変更可能です。

{
  "keymaps": {
    "F": { "type": …
もっと読む…

WebExtensionsでE2Eテストを自動化した

WebExtensions

Running Screenshot

Vim Vixenの開発では、開発スピードではなく品質を重視しており、毎リリース直前にフルリグレッションテストを行ってます。 それらの試験を手動で行っており、各リリース前にQA Pull Req.に試験結果を記録してます。

現在の試験項目は100を超えてます。 品質は大事にするとはいえ、各リリース毎に手動で試験を行うのは、地道で退屈な作業です。 今後機能追加などで更に試験項目数や複雑な試験が増えることは予想されます。 このままでは将来、同様の品質を保つのは難しいと思い、Vim VixenでもE2Eテストの自動化を始めることにしました。

構成

WebExtensionsをテストするには、テストのセットアップや実行結果を観測するために、WebExtensionsと同等の権限が必要です。 Karma …

もっと読む…

etcdでleader electionしようと思ったら難しかった話

あるクラスタ内に複数ノードがあり、そのうち高々1ノードのみがサービスを提供する仕組みを作りたいと思いました。 これはetcdを使うとかんたんに実装できるんじゃないかとおもい試してみました。

etcdにはcompare and swapのAPIがあり、キーの前の値や無い時のみにキーを更新できます。 それを使ってノード間でleader electionして、leaderになった後にサービスを起動する仕組みを考えました。 他の場所でもよくみる方法だったので、これを使えば実現できるんじゃないかと思い実装してみました。

試しに次のようなシェルスクリプトを書いてみました。 結果から言うと、これは正しく動きません

#!/bin/sh

ID=$(uuidgen)
LEADER_KEY="localhost:2379/v2/keys/master"
TTL=5 …
もっと読む…

Vim Vixenの開発について

Vim Vixen WebExtensions

昨日Vim Vixen 0.10をリリースしました。 おかげさまでVim Vixenのユーザ数も8,000人に届こうとしてます。

このVim Vixen 0.10では、クリップボードからURLを開く、Inputにフォーカスするなど、新たに4つのキーマップが新たに加わりました。 またプロパティという仕組みを追加し、スムーズスクロールと、ヒントのカスタムキーマップを設定できるようになりました。 詳しくはリリースノートをご覧ください。
Vim Vixen – Add-ons for Firefox

この記事ではVim Vixenの開発について紹介します。 Vim VixenはGitHub上で開発していおり、IssueやPull Requestは大歓迎です。

ueokande/vim-vixen Accelerate your browsing with Vim power!! github.com

開発環境

Firefox Add-onはJavaScriptで記述します。 現在はサポートしている動作環 …

もっと読む…
< Page 2 of 24 >