主夫ときどきプログラマ

データベース、Webエンジニアリング、コミュニティ、etc

クラシックレンズを使いたい [Super-Takumar 55mm F1.8] + [PENTAX K20D]

古いカメラにこれまた古いレンズを装着して写真撮影。

Super-Takumar 55mm F1.8 というレンズはアサヒペンタックスが1960年代に作っていたもので、同じくアサヒペンタックスSPOTMATIC というフィルムカメラと共に父からもらいました。

このレンズを PENTAX K20D に装着。古いレンズということで絞りもピントもマニュアルで合わせないといけないし、カメラ側の設定もいろいろ必要なので手軽さはないですが、写真撮ってる感は楽しめます。

三条から鴨川を下り四条通りを烏丸まで散歩しながら撮影。 雨の日の夕方で暗めの写真が多い。

写真

f:id:masayuki14:20190410175017j:plain
三条あたりはよく鴨川の工事してる。

f:id:masayuki14:20190410175342j:plain
雨だれ

f:id:masayuki14:20190410175551j:plain
桜ってどこにでもありますね

f:id:masayuki14:20190410175630j:plain
落書きは良くないけどコントラストがよかった

f:id:masayuki14:20190410175804j:plain
遠くから四条大橋を眺める

f:id:masayuki14:20190410180117j:plain
欄干と提灯に風情がある

f:id:masayuki14:20190410180622j:plain
いちど東華菜館にいってみたい

f:id:masayuki14:20190410181229j:plain
落書きだけどちょっとかわいいじゃないか

f:id:masayuki14:20190410181502j:plain
DOUTORの看板にBOSS

f:id:masayuki14:20190410182041j:plain
どこまでも続く赤い・・・

f:id:masayuki14:20190410182431j:plain
モノクロにしてみた

f:id:masayuki14:20190410182532j:plain
繁華街にも提灯

f:id:masayuki14:20190410183409j:plain
Apple !!

この後勉強会のイベントに向かったのでした。

やはりデジタル用のレンズとは違う写りなのでしょうが、条件が違いすぎてよくわかんない。今度は比較用に同じものを撮ってみようかしらん。

masayuki14.hatenablog.com

Compose on Kubrenetes を使ってみる

Kubernetes を使うはじめのステップとして Compose on Kubernetes を使って試しに動かしてみた。

結果的に「DockerとKubernetesへの理解がまだまだ浅いので、本買ってちゃんと読んだほうがいい」とわかった。

試し終わったあと Docker/Kubernetes 実践コンテナ開発入門 を購入して勉強してます。おすすめ。

ついでに 入門 監視 も買ってしまった。A5サイズ200ページほどで読んでておもしろい。これもおすすめ。

Compose on Kubernetes とは

Docker社がオフィシャルに開発しているツールで Docker Compose ファイル (docker-compose.yml) を Kubernetes cluster にデプロイしてくれるもの。 Kuberetes でインフラを構築するにはそれ用の設定ファイルを幾つか用意する必要があるが、Compose on Kubernetes を使えば docker-compose.yml をそのままKuberetes で動かせられるよ、というもの。

すでに Docker Compose を使ってコンテナを動かしていて、これからKubernetesを使ってみようかな、という人におすすめらしい。

公式ページ のドキュメントが少なく日本語情報も少ないので、動かすのがちょっと大変だった。

Mac で動かす方法

環境のセットアップ

当然ながら Docker Desktop for Mac がインストールされている必要がある。 インストールされていると右上のステータスバーにクジラのアイコンがあって、ここからDockerの設定パネルを開く。 Enable Kubernetes にチェックを入れると、Kubernetesのインストールが始まる。しばらく時間がかかる。

f:id:masayuki14:20190419155144p:plain
Kubernetesのインストール

インストールが終わるとフッターに Kubernetes is running が表示されステータスがグリーンになり、利用可能となる。

kubectl コマンドが使えるようになり、動作を確認できる。

% kubectl api-versions | grep compose
compose.docker.com/v1beta1
compose.docker.com/v1beta2

デプロイしてみる

デプロイはローカルにインストールされた Kubernetesdocker-compose.yml を使ってコンテナを起動させるというもの。 サンプルにある内容で docker-compose.yml を作る。

version: '3.3'

services:

  db:
    build: db
    image: dockersamples/k8s-wordsmith-db

  words:
    build: words
    image: dockersamples/k8s-wordsmith-api
    deploy:
      replicas: 5

  web:
    build: web
    image: dockersamples/k8s-wordsmith-web
    ports:
     - "33000:80"

改めて見ると deploy: replica: 5 という項目がある。普段 Docker Compose を使うときには指定しない項目。 Kubernetesのための拡張なのか、Docker Composeにもともとあるのか、Docker Swarm の項目なのかわからんので、気が向いたら調べる。 ただ、この実行したらわかるけど、Podとして words コンテナが5台起動してるので、そういう設定のものらしい。

$ docker stack deploy --orchestrator=kubernetes -c docker-compose.yml hellokube

docker stack コマンドでデプロイできる。オーケストレーターに kubernetes を使って hellokube という STACK名でデプロイする。 公式ドキュメントはここまでで、この後どうしていいかわからないので気をつけましょう。

コマンドを実行するとこうなった。

Ignoring unsupported options: build

service "words": build is ignored
service "web": build is ignored
service "db": build is ignored
Waiting for the stack to be stable and running...
db: Ready       [pod status: 1/1 ready, 0/1 pending, 0/1 failed]
adminer: Failed     [pod status: 0/0 ready, 0/0 pending, 0/0 failed]
web: Ready      [pod status: 1/1 ready, 0/1 pending, 0/1 failed]
words: Ready        [pod status: 5/5 ready, 0/5 pending, 0/5 failed]

ブラウザからコンテナにアクセス

docker-compose.yml にあるように http://localhost:33000 にアクセスできる。

f:id:masayuki14:20190419164146p:plain

docker stack コマンド

今回はじめて使ったコマンドなのでなんのコマンドかわからなかったのでヘルプをみる。困ったときのヘルプ。

$ docker stack help

Usage:  docker stack [OPTIONS] COMMAND

Manage Docker stacks

Options:
      --kubeconfig string     Kubernetes config file
      --orchestrator string   Orchestrator to use (swarm|kubernetes|all)

Commands:
  deploy      Deploy a new stack or update an existing stack
  ls          List stacks
  ps          List the tasks in the stack
  rm          Remove one or more stacks
  services    List the services in the stack

Run 'docker stack COMMAND --help' for more information on a command.

rm で停止できそう。

コマンドで状態をみたり停止したり

コンテナのリストや状態を docker stack コマンドで確認できます。 別途 kubectl get all など kubectl コマンドも使える模様。

$  docker stack ls --orchestrator=kubernetes
NAME                SERVICES            ORCHESTRATOR        NAMESPACE
hellokube           3                   Kubernetes          default

$ docker stack ps --orchestrator=kubernetes hellokube
ID                  NAME                               IMAGE                             NODE                 DESIRED STATE       CURRENT STATE          ERROR               PORTS
a02c17eb-60c        hellokube_db-79b45689db-p5bsh      dockersamples/k8s-wordsmith-db    docker-for-desktop   Running             Running 21 hours ago
a026f294-60c        hellokube_web-6b56cf97b9-9kpwj     dockersamples/k8s-wordsmith-web   docker-for-desktop   Running             Running 21 hours ago                       *:0->80/tcp
a038f9bf-60c        hellokube_words-6d654698d5-5dvcl   dockersamples/k8s-wordsmith-api   docker-for-desktop   Running             Running 21 hours ago
a0393b47-60c        hellokube_words-6d654698d5-jbpvc   dockersamples/k8s-wordsmith-api   docker-for-desktop   Running             Running 21 hours ago
a02f6edf-60c        hellokube_words-6d654698d5-k5ffg   dockersamples/k8s-wordsmith-api   docker-for-desktop   Running             Running 21 hours ago
a0342f61-60c        hellokube_words-6d654698d5-kvx2k   dockersamples/k8s-wordsmith-api   docker-for-desktop   Running             Running 21 hours ago
a0342102-60c        hellokube_words-6d654698d5-ssldw   dockersamples/k8s-wordsmith-api   docker-for-desktop   Running             Running 21 hours ago

$ docker stack services --orchestrator=kubernetes hellokube
ID                  NAME                MODE                REPLICAS            IMAGE                             PORTS
a03132da-60c        hellokube_db        replicated          0/0                 dockersamples/k8s-wordsmith-db
a03132da-60c        hellokube_db        replicated          0/0                 mysql:8.0
a041e664-60c        hellokube_web       replicated          1/1                 dockersamples/k8s-wordsmith-web   *:33000->80/tcp
a04bdfa0-60c        hellokube_words     replicated          5/5                 dockersamples/k8s-wordsmith-api

コンテナの停止方法。これは公式ドキュメントにないので困った。

$ docker stack rm --orchestrator=kubernetes hellokube
Removing stack: hellokube

とりあえず止められた。良かった。

参考文献

公式ドキュメントは リポジトリの /docs にあるので読んだらいいことあるかもしれない。

Docker blog でも紹介されていて、日本語訳記事もあるので、概要を理解するのに役立つ。

似たようなものに Kompose というものもあり、同じように docker-compose.yml を使ってKubernetesにデプロイできる。

感想

やっぱりちゃんと本読んだほうがいいよね!

Docker/Kubernetes 実践コンテナ開発入門

Docker/Kubernetes 実践コンテナ開発入門

フォトブログを始めたい [HD PENTAX-DA 21mmF3.2AL Limited] + [PENTAX K20D]

最近カメラ熱が上がっているんだ!っていう感じのエントリを書いては見たものの、まとまらなくって下書きのままなので、とりあえず撮った写真をつらつらと並べるだけのエントリを書きます。

春だなあ、ということでHD PENTAX-DA 21mmF3.2AL Limited というレンズを PENTAX K20D に装着して街のスナップを撮ってきました。

f:id:masayuki14:20190403164816j:plain
橋の灯籠 夜は点いたりするんだろうか

f:id:masayuki14:20190403164931j:plain
洗濯物ってわけでもない

f:id:masayuki14:20190403165055j:plain
ブロック塀がきれいになったんだけど低くなって後ろの鉄骨がまるみえ

f:id:masayuki14:20190403165905j:plain
提灯その1 ここは予約がとれない

f:id:masayuki14:20190403165951j:plain
提灯その2 ここも予約がとれない

f:id:masayuki14:20190403170046j:plain
提灯と思いきや樽 こんど入ってみよう

f:id:masayuki14:20190403170734j:plain
柵に付いてる大きな四角いパネルはなに?

f:id:masayuki14:20190403170931j:plain
これからは遊べる時間が長くなりますね

f:id:masayuki14:20190405154235j:plain
ずいぶん上からの「SECOMしてますか」

f:id:masayuki14:20190405154348j:plain
柵を彩る

f:id:masayuki14:20190405154432j:plain
インスタに腐るほどありそうな写真撮れた

今回はパンフォーカスの写真だー、ということで 21mmの単焦点で適当な位置にフォーカス固定して撮ってきました。 とりあえず満足。

「はんなりPython+PyData Osakaの可視化特集会」で発表してきました

pydataosaka.connpass.com

はんなりPythonとPyData Osakaの両コミュニティで共同の勉強会を開催し、そこで発表してきました。

昨年PyDataOsakaのKozo2さんがはんなりPythonに参加された時、共同で勉強会やりましょう、ということになり企画がスタート。Kozo2さんの方で会場などを調整してもらって当日を迎えました。

発表に使ったスライドはこちら。

4人中3人(自分含む)がDashについての発表になりそうだったので、私はDashを使って云々というよりも、それを動かしたり開発したりするための環境の方にフォーカスした内容にしました。 今回はスライドもうまくまとめられたかなぁというところです。 Dashについては特に思い入れがあるわけでもなく、まぁ使ってみようかなというところから始まり、アプリのテーマみたいなものも決まってつらつらとPythonのコードを書いて開発しています。 ただ現在のところの興味はk8sの方に移ってきていて、このアプリをはやく作ってしまって(アルファ版でいい)GCPのマネージドk8sであるGKEにデプロイして公開してやるぜ!というところにモチベーションがある状況です。 とりあえず公開までこじつければブログや勉強会のネタにもなるしって感じです。

乞うご期待

当日の様子

当日の様子については公式ブログやScrapBoxなんかでまとまっています。記録を残すってのは実績をつくる上でも大事だなぁと思いますね。

hannaripython.hatenadiary.com

www.mazarimono.net

scrapbox.io

コミュニティの宣伝

PyDataコミュニティは世界的なコミュニティで、勉強会の内容などをYoutubeでシェアしましょう、みたいな方針があるようです。 なので今回もスライドの画面と音声を録画してYoutubeで公開予定です。 PyData Osakaのチャンネルがあって、登録者数が100人を超えるとURLに pydata osaka が使えるようになるとのことなので、ボランティアでいいので登録してみてください。

www.youtube.com

次回のはんなりPythonも募集中です。

hannari-python.connpass.com

hannaripython.hatenadiary.com

ひさしぶりに Kyoto.rb に参加しました

3/16に開催されたKyoto.rbの勉強会に参加しました。普段は休日の勉強会にはなかなか参加できないですが、うまく予定が空いたので久しぶりの参加となりました。

会場はMoneyForwardさんの京都オフィス!!開設されたばかりでとってもきれい!!まだメンバーも少なく半分以上がフリースペースになっていました。

今回はテーマに沿ってディスカッション

自己紹介の時に個々に興味を持っているテーマを集めて、その後テーマごとにトークをしていく、というディスカッションメインの勉強会でした。kyotorbとしては初の試みです。

など20を超える多くのテーマが出ました。

ruby歴やプログラミング歴の浅い参加者も多く、30を超えるいろいろな関心ごとがテーマとして集まり、 その中でもオブジェクト指向への関心が高かったので、まずはそれについてトークとなりました。 とはいえ全員だと人数も多いので、「オブジェクト指向」についてトークするチームと、それ以外をテーマにするチームに分かれてトークをすることに。

私は後者のチームを選びました。しばらくRuby使ってないし人数も少なかったし、なによりオブジェクト指向のコード書いてないし!! とりあえずシニアエンジニアが多かったので、いくつかのテーマをちょっとずつトークするかんじで進んでいきました。

このあたりの内容はScrapboxで公開されているのでKyotor.bに興味がある方は御覧ください。

scrapbox.io

scrapbox.io

懇親会 & 2次会

終了後、そのままオフィスをお借りして懇親会となりました。お久しぶりの方や、はじめましての方たちといろいろな話ができて楽しい時間でした。前回書いた記事を見てくれた人がいて「めっちゃ共感しました」とコメントをもらいました。やはり人間は孤独になると、おかしくなるみたいですね。

その後さらに2次会へと木屋町へ移っていくのでした。

写真など

こんな感じの会でした。

f:id:masayuki14:20190316195413j:plain
品と落ち着きのあるエントランス
f:id:masayuki14:20190316195601j:plain
懇親会の様子。奥の壁紙には隠し(?)メッセージが!

f:id:masayuki14:20190316195349j:plain
反対側からの1枚

奥には勉強会が行われた広い和室があります。30畳くらいありそう。

f:id:masayuki14:20190316195552j:plain
茶室をイメージしたにじり口がある

次回の勉強会も決まっているので興味のある方はぜひ参加してみてください。

kyotorb.doorkeeper.jp

オフィシャルな記事でも紹介されています!

www.wantedly.com