Folioscope

初めてのアメリカでKubeCon + CloudNativeConに参加した

12月10日から13日の4日間、北アメリカのシアトルでKubeCon + CloudNativeCon North Americaが開催されました。 自分も今のチームメンバーと一緒に参加しました。

KubeConキーノート会場の様子

イベント自体の報告は会社のブログで公開してるので、そちらを参考にしてください。

自分はこれまで、シンガ …

もっと読む…

「WebExtensionsとテスト」というお話をしてきました

WebExtensions

先日、WebExtensions Meetup #3 が開催され、そこで「WebExtensionsとテスト」というお話をしてきました。 この発表では、 WebExtensionsのテストの方法と、Vim Vixenが取り組んでいることについてお話しました。

この記事では発表資料をかいつまんで、より詳しく説明してゆきたいとおもいます。 それでははじまりはじまり〜。

はじめに

タイトルスライド 自己紹介スライド

まずは自己紹介。 WebExtensions歴は1年ちょいです。 メインで開発してるWebExtensionsは「Vim Vixen」です。

Vim Vixen Vim Vixenの開発環境

Vim Vixenの開発をスタートしたきっかけは、XUL製だったVimperatorが使えなくなったからです。 開発を始めて1年が経ち、現在はユーザー数も10,000を超えるほどになりました。

開発的な視点で見てみると、本体コードが5,000行程度、テストコードは3,000行程度の規模感です。 ビルドはBabelを使ってES7をトランスパイルし、webpackでシングルJS化して …

もっと読む…

ソースコード検索ツール「Livegrep」を構築する

DigitalOcean TIDE NYC 2018のセッションをなんとなく眺めていたら、「Livegrep」というソースコード検索ツールが紹介されました。 面白そうだったので、手元にも構築してみました。

Livegrepのスクリーンショット

Livegrepとは

Livegrepとはソースコード検索ツールです。 Livegrepの使用感は公式ページにアクセスすればわかります。 以下のリンクから、Linuxのカーネルを対象に検索できます。

Livegrepはリアルタイムのソースコード検索ツールです。 GitHub上でも全文検索できますが、Livegrepはファイルシステムに対して検索します。 そのためGitHub以外のソースコードや、バージョン管理されてないコードも検索の対象にできます。 またGitHubの全文検索と違 …

もっと読む…

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": …
もっと読む…
< Page 2 of 24 >