僕とコードとブルーハワイ

omega (@equal_001) の日記

2018 -> 2019

振り返り。

その前に、2018(後半)

Android開発で学ぶKotlin

> 社のAndroid開発に小さなPRを投げてmergeできるくらいになったら達成でいいかな
とか大層なことを書いてましたが, 担当プロダクトが増えて余裕なくなり, 1つもPR投げれませんでした.
残念無念.

Real World HTTPを業務で使えるレベルまで理解する

> 書かれた内容が8割くらい理解できて人に説明できるくらいならまぁ達成でもいいかな
一通り読んだけど, 自身持って説明できるようになったの4割くらいかなぁ.
社のセッション管理がちょっと複雑なので, セッション周りは結構読み込んだし強くなった.

Golang リモートペアプロ

> 友人とやろうぜという話になったのでやってみる
お流れになったのでやってないです. 個人的には仕事などで触りました.
Goを使った開発のノウハウが少し溜まったかな.

2018年 総評

60/100点
2017年のアウトプット目標を達成したのでこのくらいの点数.
他にプラス点になることは思いつかないので, 今回は60点.

  • カンファレンスで2回以上登壇する(そのうち1つは海外+英語で)
    • PyCon ThailandとPlone Conf Tokyo
  • 技術系イベントでTAを2回以上やる
  • やったことない言語を触ってモノを作ってみる
    • Kotlin



2018年やったこと・学んだこととか

技術的なこと

  • KotlinでAndroid開発を少しやった. Javaが少し読めるようになった
  • Vue.jsを業務で少しやった
  • 開発環境改善のためのbot開発, ツールの導入
  • (大雑把だけど)ネットワークの勉強した. ここのサイトさんにかなりお世話になった
  • インフラ勉強の一環で障害ポイントの特定方法やパケット監視の方法を学んだ
  • GoでAPI開発の仕事をした

趣味的なこと

  • 魚の捌き方・盛り付け方を学んだ
  • 簡単な曲ならギター演奏出来るようになった
  • スノボでこのは(裏表)と裏->表のターンできるようになった
  • ロジカルシンキング本を数冊読み問題解決力を強化

今年はあまり技術的な方面で活動してなかったのでこのくらい.
2ヶ月に1回の頻度で旅行してたのでQOLは割と高かった.

2019

2019年(前半)でやること・やりたいこと

  • Vue.jsの思想を理解し, 実務で使えるレベルになること
    • 仕事でガッツリ使う
  • Node.jsを実務で使えるレベルになること
    • 仕事でガッツリ使う
  • ビジネス側の知見を身につけ, 技術的観点から営業をサポートできるようになること
    • 営業さんと仕事することが増える


Python/Djangoは慣れてきたから引き続き知見溜めをやっていくとして,
前半で挑戦することはこのくらい.

なんだか全体的に目標がふわっとしている.
どこまでやれば完璧みたいな基準ってあんまり無いからなぁ.


  • 旅行たくさんする
  • おいしいご飯食べる
  • 大切な人たちを大事にする

今年も静かに知識を深めていこう。

Lynis - セキュリティハードニングツールを使ってみる

Lynisとは

セキュリティハードニングツールの一つ. Linuxだけしか使えないと思ったらmacOSWindowsにも対応していた.
今回はLynisを使ってみた作業ログを書き残す.

環境: dockerで立てたdebianサーバ (versionなどは下の方に載っけてある)

Lynis install

特に難しいことはなく, apt-getで入れることができた.

root@edbc62cbef6a:/app# apt-get install lynis
root@edbc62cbef6a:/app# lynis --version
1.6.3

lynisでセキュリティチェックしてみる

lynis --check-all と -quickがあった.
最初なので --check-all で一つずつ確かめてみていった. -quickにすると、Enter入力しなくても勝手に結果が標準出力される.
項目が多いので最初と結果だけ. 最新を入れたかったけどこのosのversionだと1.6.3しか入らないようだ.

[+] Initializing program
------------------------------------
  - Detecting OS...                                           [ DONE ]
  - Clearing log file (/var/log/lynis.log)...                 [ DONE ]

  ---------------------------------------------------
  Program version:           1.6.3
  Operating system:          Linux
  Operating system name:     Debian
  Operating system version:  8.11
  Kernel version:            4.9.93
  Hardware platform:         x86_64
  Virtual machine:           Unknown
  Hostname:                  edbc62cbef6a
  Auditor:                   [Unknown]
  Profile:                   /etc/lynis/default.prf
  Log file:                  /var/log/lynis.log
  Report file:               /var/log/lynis-report.dat
  Report version:            1.0
  Plugin directory:          /etc/lynis/plugins
  ---------------------------------------------------

項目が多いので最初と結果だけ. Warningsが3つあった.
今回は一番上の syslog daemon が無いというWarningをやっつけてみる.

  -[ Lynis 1.6.3 Results ]-

  Warnings:
  ----------------------------
  - No syslog daemon found [LOGG-2130]
      https://cisofy.com/controls/LOGG-2130/

  - No swap partion found in /etc/fstab [FILE-6332]
      http://cisofy.com/controls/FILE-6332/

  - klogd is not running, which could lead to missing kernel messages in log files [LOGG-2138]
      http://cisofy.com/controls/LOGG-2138/


  Follow-up:
  ----------------------------
  - Check the logfile (less /var/log/lynis.log)
  - Read security controls texts (http://cisofy.com)
  - Use --upload to upload data (Lynis Enterprise users)

セキュリティの問題を解決してみる

基本手順

基本的には, var/log/lynis.log/var/log/lynis-report.dat を見てsuggestされたアクションを取っていく.

早速 /var/log/lynis-report.dat をLOGG-2130でgrepしてみると, suggestion項目 に syslogdを起動しろという内容が書いてあった. その通りのアクションを取っていくことにする.

  Check if any syslog daemon is running and correctly configured [LOGG-2130]
    https://cisofy.com/controls/LOGG-2130/

例) syslogdを導入する

調べたらそもそもsyslogdが入っていなかった. なので, syslogdをinstallするところからのスタート.

syslogdでinstallしてみたらinetutils-syslogdがサジェストされた.
これはDeianのsyslogd packageの名前だった.
Debian -- sid の inetutils-syslogd パッケージに関する詳細

root@edbc62cbef6a:/app# apt-get install syslogd
 : 
Package syslogd is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  inetutils-syslogd

install後, 無事にsyslogdが入った.

root@edbc62cbef6a:/app# apt-get install inetutils-syslogd
Reading package lists... Done
Building dependency tree
:
Processing triggers for systemd (215-17+deb8u7) ...

root@edbc62cbef6a:/app# which inetutils-syslogd
root@edbc62cbef6a:/app# which syslogd
/usr/sbin/syslogd
# 実行
root@edbc62cbef6a:/app# /usr/sbin/syslogd
# 起動した
root@edbc62cbef6a:/app# ps aux | grep syslogd | grep -v grep
root     32308  0.0  0.0   8440  1828 ?        S    17:45   0:00 /usr/sbin/syslogd

syslogd導入前のlogディレクト

root@edbc62cbef6a:/app# ls /var/log
alternatives.log  apt  btmp  dmesg  dpkg.log  faillog  fontconfig.log  fsck  lastlog  lynis-report.dat	lynis.log  wtmp

syslogd導入後のlogディレクトリ. log fileが色々増えている.

root@edbc62cbef6a:/app# ls /var/log
alternatives.log  auth.log  daemon.log	dmesg	  faillog	  fsck	    lastlog  lynis-report.dat  mail.err   mail.log   messages  syslog	 uucp.log
apt		  btmp	    debug	dpkg.log  fontconfig.log  kern.log  lpr.log  lynis.log	       mail.info  mail.warn  news      user.log  wtmp

もう一度セキュリティチェックをする

今回は --quick で実行する.
Warningが減っていた. どうやらセキュリティハードニングの第一歩を踏み出せたらしい.

  -[ Lynis 1.6.3 Results ]-

  Warnings:
  ----------------------------
  - No swap partion found in /etc/fstab [FILE-6332]
      http://cisofy.com/controls/FILE-6332/

  - klogd is not running, which could lead to missing kernel messages in log files [LOGG-2138]
      http://cisofy.com/controls/LOGG-2138/

感想

  • 結果が見やすい. 項目ごとにチェックした結果を表示してくれる.
  • Suggestionsを出してくれるのがありがたい. 解決の糸口を一つでも提示してもらえるだけでも調べる時間が短縮されて助かる.
  • 無料枠でもそれなりに使えそうではあった.
  • セキュリティとかOSについて詳しくないとWarningsに出てくる項目の脅威度がいまいちわからない. そういう場合はLynis Enterprise Suiteでサポート受けるとかになりそう.

Python boot camp Kyoto にTAとして参加してきたよ

TAしてきました

pyconjp.connpass.com

Python boot campって何?

Python Boot Camp(初心者向けPythonチュートリアル) — PyCon JP に書いてあります.

抜粋:

Pythonの普及のため、一般社団法人PyCon JPは日本各地での初心者向けPythonチュートリアルイベントです。

Python Boot Campの目的

  • 日本各地でのPythonを盛りあげたい
  • 各地のPythonistaとの連携強化
  • ゆくゆくは地域PyConの実施

これまで東京でしか開催できていなかったチュートリアルを日本各地で開催することが目的です。

直近では, 9/8(土)に山形, 9/28(土)に沖縄 で開催されます.

参加のキッカケ

京都にいる友人から「PyCamp 京都やるぞ!」と来たので, 「日程調整します!」と即答した.
調整する予定特に無かったので, すぐ新幹線と宿を押さえた. 

PyCamp Kyoto 当日

togetterにまとめがあったのでペタリ. まとめ作成ありがとうございます!
イベントの様子はこちらを見ると良いです.
togetter.com

イベント中に上がった質問

TAしながらだったので全てメモしきれていないけど, できる範囲で残したもの.
スタッフ・TAで他にこんな質問がありましたというのがあればcommentに書いてもらえると嬉しいです.
gist.github.com

感想

今回は質問がとても多かったように感じました. とても良いことだと思います.
積極的に質問をすることで学習効率も高くなるし, こちらもやりがいがあって嬉しいです.


運営スタッフの皆さま, 参加者の皆さま, お疲れ様でした!

余談

ちょうどこの日, アップルストア京都 が 10:00からオープンだったので朝6:30くらいから並んでいた.
積読本を消化したりPyCampの資料読み返したりしていたらすぐに時間が過ぎた.

前日の夜には既に何人か並んでいて, 気合入っているなという感じ.
Twitter観測していたら, 並んでいた何人かが路上で焼き鳥を焼いていたという写真が上がっていた. 自由過ぎる.

月イチくらいで四人で七輪を囲んで雑な会話をしたい

前はMTGや飲み会でたくさん意見を喋るほうだったけど, 最近は割と黙って聴くことが多くなった.
どっちが良いということはないけど, 話を聞いてもらいたいという欲求が発散できてないから多分本当は話したがりなんだと思う.
どうでも良いことでも真面目な話でも, ちゃんと最後まで話しを聴いて受け止めてくれる人はとてもありがたい. そういう態度を取ってくれる人だと, こっちも話をちゃんと聞くか〜となる. ちゃんと聴いてくれないで何度も話を遮ったりする人は「もうお互い自由に振る舞いましょう」という感じになる. それで成り立てば吉, それが駄目だったらまずお前がちゃんと話を聴く姿勢を持てよとなって, 変な空気になり, 多分そこでコミュニケーションは終了する.
世の中, ちゃんと話を聴いてくれる人というのは少ない.

私は話の腰を折られるのが大嫌いで, 話してる最中に微妙なタイミングでウェイトレスがご飯を運んできて話が中断され, 相手がその話はもういいやみたいな空気になると食欲も失せて即退店したくなる. 人生でそういうことたくさんあってもういいやとなって以来, お店では内容が長くなるような真面目そうな会話は自分からは段々しなくなった. 「あ、こいつちゃんと話聴いてくれないタイプだ」と思った瞬間から, 料理美味しいですねーとかしか喋らなくなる. 一緒にテーブルに座っている人がたまたまちゃんと最後まで話を聴いてくれる属性を持った人の場合は「それで, さっきの続きは〜」みたいな流れになり, 最後まで自分の思ったことを伝えることができるからイラッとしなくて済む. そういう人とご飯に行くと, 自分から話を開始する回数と発話時間が圧倒的に長くなる.
親や付き合いの長い友人だとそういうのを気にせずにお互い言いたいこといって雑に話を聴く感じになるけれど, 社会に出た先で出会った人たちでそういう感じで会話できることはあまり少ない.

昨日の社の飲み会は結構良くて, 普段仕事上の関わりも雑談もすること無いメンバーなのに, お互いが喋りたいタイミングで言いたいこと言うのに皆それを楽しんでいたし私も一切不愉快にならなかった. でも会話は程よくちゃんと聴いてくれて, レスポンスもあるしで最高だった. 昨日のアレは, みんな気が合って重くない感じに気を使いあえる奇跡的な集まりだったんだなぁと朝起きたときにふと思った.
人数の問題もあるかも知れない. 昨日は四人だったから会話場の狭さがちょうどよかった気がする.
空間にも要因があるかも. お店も赤ちょうちん系で親しみやすい空間でもあった. 皆の席も比較的近めで, 七輪を囲むスタイルというのも良かった.

今度からいい感じに打ち解けたいときは4人くらいで七輪を囲むスタイルをやっていこうかな.

昨日はメンタルが最悪に近かかったので気分転換に帰り道に本屋へ寄った.

昔から本が大好きで, 本棚を眺めていると良い方向に気持ちが紛れたりする.
今回は, 今解決したい問題について考えながらタイトルを眺めて「この本になにかヒントが書いてありそう」というものを発見したら自由に手に取ってみた.
本屋や図書館は私の知らないことを知っている偉大な先生がたくさんいて, 誰でも自由にその道の門を叩け, 正しく吸収すればいかようにも知識を使えるようになる, というイメージ. だから大好き.


色々見て回った上, 以下の二冊を買った.


「いちいち気にしない心が手に入る本」は, ネガティブ思考が身に付いて自分で自分を苦しめているみたいな状況をどうにかしたくて買った. これまた気分転換に, ランチ時間を使ってカフェで一気に読み終えた.
装丁について, 文字が大きく, ポイントと解説が明確に分かれていて読みやすかった.
内容について, 「なんかその手法聴いたことある, 改めて言われてみるとたしかにそう考えたら良さそう!」ということが多めだった. これは悪いことではなく, なんか知ってるけどちゃんと行動に移そう!となる気持ちにさせてくれるところが凄い. この本はそういう気にさせてくれる様になっていた.
本書にまずはなんでも試してみよう!と書かれていたので, 本を読みながら本に書かれていることで今すぐできることをやってみていた.
どういうことしたかというと, 姿勢を良くしながら口角上げて笑顔の表情を作り, 本を読んでいるときに嫌なこと思い出しはじめたら気を紛らわすおまじない行動を必ずするというのをやっていた.
あと「健全な魂は健全な肉体に宿る」というのは本当にそうだと最近実感したので, 毎日少しでいいから運動しようと思った. 10分間運動するだけでも抑うつ物質が脳内で生成されるらしい. 人間って結構便利な作りしてるね.

「思考は現実化する〈上〉」はまだ読んでない. 前からタイトルは知っていて気にはなっていた. 物理本で読みたかったのでつい買ってしまった. 気が向いたら読もうかなという感じ.

2018(前半) -> 2018(後半)

振り返り.

2018(前半)

Kotlinでまともに動作するWebアプリケーションを作ってみる

50/100点
同僚と週イチで開発をしていたけど, お互い緊急対応だったりでリスケが結構あって思ったよりも開発が進まなかった. 週イチはちょっと少なかったかな.
技術選定, アプリケーションの設計からKotlinで簡易login機能の開発など色々できて楽しかった.
現在は趣旨を変える+仕事的なアレでAndroidアプリをKotlinで開発するという方針に変えたので, 一旦こちらの開発はstopしそう. でももったいないから時間を見つけてPRを出し続けたい.

Real World HTTPを業務で使えるレベルまで理解する

20/100点
業務で活用する部分があまりなかった. 後半は色々お世話になると思うので活用していきたい.

いくつかのDesign patternを"使える"ようにする

20/100点
これも評価が難しいけど, そんなに使う場面無かったのとあまり勉強進まなかった.

Djangoのコードを読んでWeb Application Frameworkへの理解を深める

70/100点
仕事上自動的にコードを読まざるを得なかったのでそれなりに知識は増えた. 学んだことをBlogとかにまとめれば良かったかなとちょっと反省.

Frontendのレベルを人並みにまで上げる

10/100点
ほぼほぼフロントエンド触ることがない半年だった.
Vue.jsのチュートリアルをやって同僚のVueのコードをレビューしたくらい.

総評

40/100点
やりたいこと詰め込みすぎた. あとプライベートで色々辛みがあってメンタル的に個人素振りの時間が取れなかったというのがある. Kotlin開発はちょっとずつ前進しているので良い感じ.
全体的にもう少し学習スピードを上げていきたい.

2018(後半)

2018年(後半)でやること・やりたいこと

  • Android開発で学ぶKotlin
    • 社のAndroid開発に小さなPRを投げてmergeできるくらいになったら達成でいいかな
  • Real World HTTPを業務で使えるレベルまで理解する
    • 書かれた内容が8割くらい理解できて人に説明できるくらいならまぁ達成でもいいかな
  • Golang リモートペアプロ
    • 友人とやろうぜという話になったのでやってみる

  • 旅行たくさんする
  • 美味しいご飯いっぱいたべる
  • 自分の時間を大事にする