スベリミナル効果

技術的なことを書こうと思ってたけど何でも書くことにします


通常用

ふざけ用
何でもコメントください。誤り指摘コメントなどには「コメン(ゴメン)」ト誤ります(1スベリ)
ダジャレ好きの方はこちらにどうぞ(更新してないけど)→スベリブログ2.0

YAPC::TOKYO 2019を真面目に聞いてきました

相変わらず聴講者としてですが、YAPC::TOKYO 2019 に行ってきました。沖縄は行かなかったので、YAPC::Fukuoka以来ほぼ2年ぶりのYAPCでした。登壇者の想いがヒシヒシと伝わってくる発表の数々で久々に熱くなってきました。最後は感動の一幕もあり、やっぱりYAPCはいいなあと改めて思いました。すごく楽しかったです。 残念ながら、私自身は「日本人カンファレンス真面目に聞きすぎ問題」の例に漏れずマジメに聞いてただけではありましたが(しかも懇親会も出てない…)、聞かせてもらった発表についてつらつら書いておきます。

2019年冬のPerl

perl_2019_winter - Speaker Deck

5.28や5.30、そしてPerl6といった最近のPerl動向まとめ。もはやこれを聞かないとYAPC感が出ない!ということでしっかり聞かせていただきました。ただ、個人的には、主戦場がCentOS7であり基本5.16から進む予定がしばらく無いので宝の持ち腐れ感は否めないのですが… でもいつかはno dot in @INC (v5.26)問題みたいなことと対峙するかもしれないし、知っておくことは重要ですよね。 そして、毎回出てくる話ですが、CPANコミッタが減っている問題はやはり厳しいようです… 今後どうなるのかなあ… Perl6の時代来るのかなあ… など、遠い目になってみたりしました。

Perl to Go

資料はいつか上げていただけるようです。

Perlを書いてきた人がGoでWebアプリケーションを書くための入門講座的なお話でした。「Goは良い」とよく聞くものの、ほとんど触ったことのない自分にとってありがたすぎるお話でした。Goのメリットや注意点がものすごく分かりやすくまとまっており、Goを書いてみたくなる発表でした。以下、粗メモ、間違ってたらごめんなさい。本物の資料とほぼ同じことなので、資料公開されたら消すかも。

なぜGoか

Webサーバとして見たGo
  • オンプレでなくクラウドでコンテナが当然になり、低スペックをたくさん並べる構成が主流
  • 高速で動作してメモリ効率よい言語が求められる LL言語は分が悪い
  • コンテナサイズ小さい方が良い
  • ランタイムが必要なものは数百MBを超えてしまい避けたい
  • gorutine により自然と効率的にCPU機能を利用できる
CLIツールとして見たGo
  • コンパイル自体が高速なのでLLと遜色ないレベルで簡単にコードを書いて試すことができる
  • ロスコンパイルが容易なのでバイナリを置いとけば良い

Perl Mongerがハマるところ

CPANがない
  • gitがエコシステム
  • インデクサーみたいのがない、ぐぐるとでてくる、探すのが困難
  • github.com で golang + hogehoge で検索
  • Module Indexer を作る予定らしい、CPANぽくなるかも(githubが落ちてもmirrorからDLできるように)
$GOPATHから逃れられない
  • golangの開発はGOPATHの下で行う必要がある
  • あらゆるライブラリがGOPATHの下にある前提
  • Go1.8以降では $HOME/go
  • Go1.12で入る go.modで気にしなくてもよくなるかも
ライブラリの管理方法がむずい
  • masterのHEADを取ってきちゃう、それstableなの?
  • タグ切られてないので心の目で見る必要がある
  • go.mod だと semverを使うようになる、よく使われるライブラリは対応してきている
  • 当面は glide/dep/go mod を使い分ける必要がある
  • go modを覚えましょう
  • まだまだこなれていない感
オーサリングツールがない
  • MinillaとかExtUtils::MakeMaker(古い)みたいなものがない
  • ライブラリの扱いとかでハマっていた
  • しかも今後変わっていく...

GoとPerlの相違点

変数と型
  • camelCase
  • 変数には型があり、一度定義されたら別の型は代入できない
  • 配列とスライスがあり、基本的にはスライスしか使わない
  • perlはハッシュを使うけど、goはstructが使えるのでそっちが基本
関数
  • func () 戻り値 {}
  • camelCaseで書くとprivateになる
  • ...で可変長引数
  • 複数の値を返せる -> Perlっぽい
  • 関数は変数に代入し他の関数に渡すこともできる、無名関数もできる -> javascriptっぽい
  • 関数を引数にしたり戻り値にする場合すべて書く必要があり面倒、型だからしょうがない
エラーハンドリング
  • perl同様例外機構がない
  • 例外を出す場合は panic() -> perlのdie
  • recover()でキャッチ
  • panicは非推奨、致命的なエラーのみ、recover()もない
  • goではエラー値を戻り値で返すことが推奨されている
  • 基本的には最後の戻り値がerrorインターフェース、もしくはboolになるようにする (慣習)
defer
  • defer func()すると現在の関数から抜けるときに func()を実行する
  • perlのScope::Guardみたいなもの
  • 戻り値がないのでdismissのようなことはできない
  • スコープを抜けたときでなく、あくまで関数を抜けたときしか発動しない
  • if や dorの中でdeferを書くと意図しない挙動にならない可能性がある
  • defer file.Close() だと、file.Close() にて発生したエラーをハンドリングできてない
gorutine
  • 理解するには時間がかかる
  • go func() するだけで、別スレッド的なものが走るので並列プログラミングが簡単にできる
  • gorutine同士はchannelでやりとり
  • PerlでいうAnyEvent や Coloと概念はほぼ一緒らしい
context.Context
package
  • Perlと結構違う

追いつかなくなった

制御構文

  • whileなどない
  • 悪名高いswitch ですがcaseのあとにbreakを書かなくてもいい
  • GOTOがある!

その他

  • Struct: Perlのオブジェクトっぽいもの
  • interface 満たすべき関数の定義を書く
  • javaとかと違う、struct側がinterfaceを満たすとコンパイルが通る
  • interfaceに関数いっぱい書くと大変
  • code formatter 結構いっぱいあるので便利

WebAPI作ってみよう

  • net/http を使うことで簡単にWebサーバが立つ
  • Plackやってればわかりやすい?

発表が時間切れ...(残念)


ランチセッション



いつもありがたいランチセッション。今回も無事先着お弁当をいただけました。今半の弁当なんて普段食べないからなあ。

Garuda紹介

使ってみないと何とも言えない感じでしたが… GUI的なツールが必要になったときに、こういうものがあることを知っていることが重要なんだろうなあと思います。

Perlを書いたことがない新卒エンジニアがPerlを書くWebエンジニアとして働いて何を感じたのかを語る

温かい気持ちになるセッションでした。若手でもPerl書いてるんですよ!って。(でもGoへ...)

Perl5の静的解析入門 機械と人間双方の歩み寄りによる平和編

Perl5の静的解析入門 / The static analysis of Perl5 - Speaker Deck

PPR.pmを駆使したPerlコードの静的解析に挑むお話。やはり動的型付け言語の静的解析はハードルが高いということを実感。しかしそこに挑む気概が凄いと思いつつ、この静的解析コードをメンテするのはまた大変そうだなとも思ってしまいました。レベルが高い… そして、やはり最後は双方の歩み寄りは必要になるということで、

印象的な言葉でした… こういう心がけで望めば平和なプロダクトが訪れるわけですね…たぶん…

PerlプログラムでPerlプログラムを修正する方法

Perl プログラムで Perl プログラムを 修正する方法 - HackMD
このスライドいいなあ… hackmd.ioってのがあるんだ、知らなかった。

PPI.pmでPerlコードの把握・変更ができるので、ダメなところを自動で直せたら嬉しいよね。さてじゃあどこがダメなところなの?を特定することがやはり大変ということを、対応事例などを交え見せていただけた感じ。一つ前のお話と通じるものがありました。CPANなどをうまく使って開発プロセスの一助とする姿勢を見習いたいです。本番環境でなければ、たとえPerlが古かろうが、Dockerなどでうまく対応できるわけだし。うん、見習おう。

レガシーPerlビルド 〜現代に蘇るPerl[1-5].0とPerl6〜

レガシーPerlビルド ~現代に蘇るPerl[1-2].0とPerl6~ - Speaker Deck

歴代Perlを現代の環境で動かそうという考古学?でした。情熱が凄い。1987年のコードがGithubから簡単に取れるとか、古いPerlの方がビルド簡単だったりするとか、PerlのビルドにPerlがいるとか、無駄な興味深い知見をたくさんもらえた。何より、話す方も聞く方もみんな楽しげですごく良かった。普通に聞き入ってしまいました。

WebVRで作品を作って展示しよう

blog.sushi.money

WebVRの話が主ではありますが、「面白いものを作る」という情熱が淡々とした語りの中に感じられてすごくよかった。正直、WebVRの有効活用ってなかなか難しいなあと思っていたんですが、シンプルに面白いもの作る、だけでも十分価値出るんだよなあと反省しました。Unity挫折気味おじさんですが、A-Frameのチュートリアルだけはとりあえずやってみたい。

実演 サーバレスPerl - 顔認識データを扱おう

実演サーバレスPerl.pptx - Microsoft PowerPoint Online
Azureの発表はパワポオンライン。

Microsoft Azure FunctionsでPerlのサーバレスができることを実証するお話。構成の細かいところは理解できていませんが、とにかくAzureでもPerl使えるんやぞと。shを噛ませるオーバーヘッドは大きそうですが… そして20分でライブコーディングもといライブ環境構築をするのは大変すぎるなと思いました。やはり「さて、こちらに完成したものがあります」は重要。 ちなみに、この発表内容は WEB+DB PRESS 2019年2月号 に載るそうです。興味ある方はそちらも必見です。

レガシーPerlと、Perlのこれから

20190126_YAPC_TOKYO.pdf - Speaker Deck

平成ネット史ならぬ、平成Perl史的なお話でした。聴講者から沸き起こる「懐かしい!」「あったなあ!」的な声が印象的でした。しかし、話の中には「え…それまだ使ってるんですが…」的な部分があり、個人的には心穏やかではない部分もありました… レガシーでも、そのままで十分なものは残してもいいと思うものの、ノーチャレンジになるのはよくないし… Dockerに封じ込めるとかそういう対応はすごく良いんだろうなあと。ケースバイケースではあるけど… と、懐かしさと、なんかいろいろと言葉にならない気持ちが渦巻いてしまいました。

10年モノ熟成Perlその後

資料は後ほどアップされるようです。

YAPC::Hokkaidで印象深かったのでよく覚えていたお話のその2年後談。どうなったのかなあと期待していましたが…

ここまで基本的には問題なく動いてきて利益出してるものを安々と変えられない事情はすごくわかる… リソースとの兼ね合いもあるし… どうしても超えられない限界が来たときにリプレースを検討することになりがち… 熟成感はこれからも深まっていくのでしょう…

Perlコミュニティへの報恩感謝

平成ネット史ならぬ、平成Perlコミュニティ史って感じでした。あれ?デジャブかな?

CPANモジュールに必要なものが無ければ作るし、使いづらいと思えば作り直すし、やろうと思ったらみんなで面白がりながら全力でやる、そんな繰り返しでPerlコミュニティができあがっていったんだなあと。主なコミュニティメンバーのアイコンが集結した最後のスライドは感動ものでした… 

私自身はコミュニティには全く貢献してないし、ちょっとPerl使ってるってだけでYAPCに来るようになり、基本的には聞いてるだけで、冒頭にも書きましたが「日本人カンファレンス真面目に聞きすぎ問題」の代表例な自覚もあり、耳が痛い感じもありました。ただ、それで気負いすぎず、まずはブログ書くところからやっていきたいと思いますなう。Perlだけでなく、OSSへの関わり方を一歩ずつ深めていきたいと感じました。頑張ろう。

まとめ

ということで、書き残しておきたい気持ちがでてきてしまったので、長めに失礼いたしました。あまり恩に報いれている気はしないのですが、少なくとも参加してブログ書くだけはしたぞということで…

今回改めて感じたのは、Perlの歴史の長さでした。Perl1.0を蘇らせる話からPerl周りの技術・コミュニティ発展の歴史が感じられる発表、一方でVRだったり、若い人がPerlを学ぶ話があったりと、このカンファレンスの中で時代を駆けていく感がすごかったなあと。歴史があり、かつコミュニティが長く活発に動いているからこそできる場なんだろうなあと思いました。Perl言語の人気自体は衰退していく状況はなかなか覆らない気はしますが、適材適所の役割が確実にあり、細くなるかもしれないけど、これからもまだまだ続いていくんだろうなという気がしました。なんか壮大だな。

まあ、大層な話は置いといて、参加しただけでも十分楽しかったですし、熱気がすごくて気持ちのいいカンファレンスでした。スタッフ・スポンサーの皆様には本当に感謝したいです、ありがとうございました。

おまけ

note.mu

あと、twitterで見かけたこの手書きメモすごいなあと。似顔絵付きで非常にイメージしやすいだけでなく、メモとしても要点がすごく上手くまとまっているんですよね。こういうカンファレンスに行くたび、その場でうまくメモとりたいなあと思うんですが、聞きつつ考えたりしてるとどうもうまく行かない… 絵も加えながらこのメモが書けるって凄いなあとただただ関心してました。記事書くにあたり、参考にさせていただきました。メモうまくなりたいな…

センター試験からの1000tar試験

学生の皆様、そして各会場の関係者の皆様も、センター試験お疲れ様でした。私にとっては遥か昔の出来事なので、どのくらい大変だったかもはや思い出せなくなっております。そんな他人事としてセンター試験を眺めている中で、『1000tar試験』という糞なダジャレを思いついてしまいました。せっかくなので、センター試験後の息抜きに1000tar試験はいかがでしょうか。(1スベリ)

1000tar試験 問題

GitHub - hijili/1000tar_test: joke of National Center Test

問題を作って確認するスクリプトは一応ここにあります。動くかわかりませんが。

問1

0001.tar ... 1000.tar がある。解凍(解答)せよ。(2スベリ)
なお、tarには同名のtxtファイルが1つだけ含まれていることが分かっている。
$ ls -1 q1
0001.tar
0002.tar
  : 
1000.tar

問2

0001.tar ... 1000.tar がある。解凍せよ。同時に、tarでないファイルを特定し削除せよ。
なお、tarには同名のtxtファイルが1つだけ含まれていることが分かっている。

問3

0001.tar ... 1000.tar がある。解凍せよ。
ただし、tarファイルの中身は不明であることに注意せよ。

解答

問1

まあ、ただのfor文の使い方だけですね。1tarが1txtだと書いてあるのでこんなもんでよいでしょう。

for i in {0001..1000}; do
    tar xf $i.tar
done

問2

内容としては大して変わってませんが。

for i in {0001..1000}; do
    tar xf $i.tar &>/dev/null || echo "$i.tar is illegal" && rm $i.tar
done

tarかどうかチェックする方法もありますが、エラーが返ったら消す、だけでもこの場合いいでしょう。別のエラーが混ざるかもしれませんけど…

問3

問1の段階でやっとけよという話ですが…

for i in {0001..1000}; do
    mkdir -p ${i}dir
    tar xfk $i.tar -C ./${i}dir
done

得体の知れないtarファイルを解凍する場合は、同名ファイルを上書きしない -k オプションをつけたり、解凍先ディレクトリを分けるべきです。このtarの中には、重複して上書きされてしまうファイルがいくつも混ざっていました。

終わりですがなにか?

Q1. この内容なら1000個もtar要らなくね?

要らないけどそれじゃダジャレにならんやろがい!!

Q2. 内容薄くない?

そもそも『1000tar試験』ってダジャレがちょっと浮かんだだけでここまでやったんだから十分やろがいボケェ!!

Q3. 間違ってない?

細かいことは気にせず自分のできることをやれ!!

Q4. ひょっとしてゾンビランドサガの巽さん意識してない?

ちょうど観たばかりで影響受けまくってます。

以上です

1000tar(センター)と解凍(解答)がかかってて面白いと思っただけなんです。 それにしても問題作るって大変ですね。その苦労を思えばニンジンに羽を生やすくらいの自由はいいのではないかと感じました。

あ、あとWindowsのキミ!シェルスクリプトとか関係ないなんて思わないで!Windows Subsystem for Linuxでも試せっから(10なら)!ぜひやってみてくれよな!zipとかでも同じことできるからな!!

Windowsのパッケージ管理(chocolatey)とかレジストリ周りの初期設定をPowerShellスクリプトにまとめる

やりたかったこと

  • 新しいノートPC買ったとか、ディスククリーンインストールしたときのアプリ初期インストール作業がめんどい
  • chocolateyでパッケージ管理するにしてもコマンド忘れちゃうので毎回ぐぐるのめんどい
  • 最初しかやらないレジストリ変更とかもすぐ忘れちゃうので毎回ぐぐるのめんどい
  • Linuxならbashyum(dnf, apt-get)で簡単にできるのにぃぃ

的な悩みをPowerShellで解決したかった。chocolateyって何?って人はGoogle先生に聞いてね!

スクリプト

無駄なコードもありますが、個人用途なので適当にこんな感じで作りました。参考にしたURLは "ref :" で記述しておりますので、合わせてご参考まで。

function install_choco {
    # install chocolatey: ref https://chocolatey.org/docs/installation
    try {
        iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
        SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
    }
    catch {
        Write-Error("なんかエラー: " + $_.Exception)
    }
}

# インストール対象リスト
$softwares = @("dropbox", "googlejapaneseinput",
    "terapad", "visualstudiocode", # editor
    "googlechrome", "firefox",     # browser
    "virtualbox", "libreoffice",   # other
    "thunderbird",                 # mailer
    "unity", "blender"             # VR
)
function install_softwares_by_choco {
    $excludes = @("terapad") # 今は一旦様子見であとで入れようかなとか(上から消せばいいんだけども)
    foreach ($soft in $softwares) {
        if ($excludes.Contains($soft)) { continue; }
        Write-Output("[INFO] exec: cinst -y $soft")
        cinst -y $soft
    }
}
function update_all_by_choco {
    $excludes = @("unity", "blender") # まとめてバージョンアップされてほしくないとか
    $opt = $excludes -join ","
    Write-Output("[INFO] exec: choco upgrade -y all --except=$opt")
    choco upgrade -y all --except="$opt"
}

function setup_configs {
    # CapsとCtlの入れ替え
    # ref: https://mk-55.hatenablog.com/entry/2015/10/15/020000
    Write-Output("[INFO] modify registory: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout")
    Set-ItemProperty `
        "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout" `
        -name "Scancode Map" -value (`
            0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00,
        0x02, 0x00, 0x00, 0x00,
        0x1D, 0x00, 0x3A, 0x00,
        0x00, 0x00, 0x00, 0x00 `
    ) -type binary

    # デスクトップアイコンの縦の間隔
    Write-Output("[INFO] modify registory: HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics")
    # ref: https://kazooblogging.com/windows10-iconspace/
    Set-ItemProperty "Registry::HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics" `
        -name "IconVerticalSpacing" -value (-1030) -type string
    # デスクトップアイコンの横の間隔
    Set-ItemProperty "Registry::HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics" `
        -name "IconSpacing" -value (-1030) -type string

    # Windows Subsysten Linuxの有効化
    # https://docs.microsoft.com/ja-jp/windows/wsl/install-win10
    Write-Output("[INFO] enable windows subsystem linux")
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

    Write-Output("[INFO] You need to reboot.")
}

### main
# debug
#Set-PSDebug -Trace 1

# 管理者権限チェック ref: https://qiita.com/skkzsh/items/5e03bb7792629927acfa
if (! ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(`
            [Security.Principal.WindowsBuiltInRole] "Administrator")) {
    Write-Warning "You need admin permission..."
    Read-Host "press enter to exit this script"
    exit 0
}

# 引数渡されたらその動作をする、渡されなければ入力を要求する
$acceptable_mode = "init|install|update|config"
if ($Args[0] -match "^($acceptable_mode)$") {
    $mode = $Args[0]
}
else {
    $mode = Read-Host "Input mode: {$acceptable_mode} "
}
switch ($mode) {
    "init" { install_choco }
    "install" { install_softwares_by_choco }
    "update" { update_all_by_choco }
    "config" { setup_configs }
    default { Write-Warning "unexpected mode: $mode" }
}

# エラーとか出がちなので、実行後、勝手にウインドウが閉じないように
Read-Host "press enter to exit this script"

これを setup.ps1 とかで保存して、管理者権限で開いたPowerShellにて

$ powershell -NoProfile -ExecutionPolicy Unrestricted .\setup.ps1 init
$ powershell -NoProfile -ExecutionPolicy Unrestricted .\setup.ps1 install
$ powershell -NoProfile -ExecutionPolicy Unrestricted .\setup.ps1 config

とかやれば、

  • chocolateyのインストール
  • (ぼくの)主要ソフトウェアのインストール
  • CapsとCtlの入れ替え
  • デスクトップのアイコン間隔の設定(狭くしてます)
  • Windows Subsystem Linuxの有効化

あたりが一気にできます。めでたしめでたし。

GUIで実行したいんや

せっかくなのでマウスでポチポチするだけで実行したいという気持ちもありますが、Windowsのデフォルト設定では簡単に行かないんですよね… 以下の記事様に分かりやすくまとまっていました。

qiita.com

セキュリティ的な制約なので、デフォルトポリシーは変えたくない、でもGUIで実行したい… というバランスを考えたときに、以下の方法に落ち着きました。

cd /d %~dp0
powershell -NoProfile -ExecutionPolicy Unrestricted .\setup.ps1
pause > nul
exit /B 0

これを executor.bat として保存しsetup.ps1と同じディレクトに置きます。そして、executor.bat を「右クリック」→「管理者権限で実行」することで、setup.ps1を管理者権限で実行できます。この場合は何を実行するか入力する必要がありますが。めでたしめでたし。

※pauseしてるのはやはりデバッグとかエラーが閉じないように… ps1と二重でやってるのがあれですが…

初期設定まだなのにどっから取ってくんだよこれ

私の場合は、Dropboxにこれらスクリプトを入れておき、EdgeでWebUIにログインして取ってきたりしてます。でもそれもめんどいので、今ブログに書きました。ログイン不要だけどコピペが必要…さてどっちが楽かな…

2018振り返り

ついにエンジニア限界の35歳になってしまった2018年、いろいろと辛みがあり、単純な現状維持にも難しさが出てくるんだなと実感してしまった年でした。これは振り返らざるを得ないということで、twilogを眺めながら簡単に振り返ってみようかと思います。別に誰に向けてのものでもないです。
ちなみに、あまり明確な目標を掲げずダラっと生きてしまっている私ですが、2018年当初は

  • VR方面でなんか開発できるようになりたい
  • なんでもいいから発表できる側に回れるようにしたい

と漠然と考えていましたが、見事に達成できてません。もともと漠然としていて具体性ないし…体調面もありますが…うーむ…本気度が低すぎたことに尽きます…

振り返り

twilogを見ながら、行ったカンファレンスとか、テック系トピックとか、自身の不調など、トピックを適当に書いてみます、長くなりそう。

1月

2月

3月

4月

  • 地味に痛みが続き、整体に通いつつだましだまし働く日々...

5月

6月

  • 造影剤CTまでやって腎結石による血尿だろうという診断、安心する
  • マイクロソフトが謎のIT企業 "ギットハブ" の買収を発表しザワザワする
  • JSONという聞いたこともない奇妙な拡張子にザワザワする
  • シマンテック証明書の無効化対応として、三菱UFJオレオレ証明書のインストールを要求しザワザワする
  • Coinhiveで逮捕者が出て憤る
  • ZOZOSUITでZOZO立ちを決める

7月

  • W杯盛り上がる
  • 思い出したようにVR開発をちょっとやってみはじめる
  • July Tech Festa 2018

8月

  • サマータイム導入検討でザワザワする
  • 地味にVR開発を続けるがあまり進展しない
  • 引き続き腰が痛いためMRI検査してみたところ腰椎分離症に加えて腰椎椎間板症とヘルニアの初期段階であることがわかる

9月

  • builderscon tokyo 2018
  • 東京ゲームショウに初めて行く
  • 腎結石が全く排出される様子がなく(それ自体は別に問題ないけど)血尿がちょくちょく出るので体外衝撃波結石破砕を勧められる
  • 腰痛がようやく落ち着く

10月

  • PSVRのASTRO BOTに感動する
  • MANABIYA(3月のリベンジ)
  • 腰痛根本改善のためにジム通いを初めてみたものの3回目で腰痛が悪化する
  • IBMRed Hat買収を発表

11月

  • 左のかかとだけ違和感レベルの軽い痛みが出て継続中
  • いきものがかり集牧!
  • shownet.conf_
  • 証明書切れ事件その2:うんこボタンのサーバ証明書期限切れにより機器の更新が不可能になり全品回収
  • 悪化した腰痛がおおむね回復

12月

twitter振り返ってみて

ながいよ、疲れた。年あけちゃったよ。中途半端なピックアップですが、感じたことを少し。

どっかしら微妙に痛い期間がほとんどだった

やっぱ辛かった。不運な面もあるけど、多分に体を動かさなさすぎたことが反省としてあります。その一方で、いざ動かしてみたら悪化したので、体の維持が難しくなってるなあと言わざるを得ない。この先もエンジニア的な仕事を続けるためには、最優先で対処すべき課題だと考えております。

証明書系の話題が多かった(やや恣意的にピックアップしましたが)

TLS化がほぼ必須になってきた昨今、証明書周りの問題は今後も引き続き起こりそうです。期限チェックや更新の運用などしっかりやらないといけないし、そもそも論として証明書の内容の細かい部分など抑えてないところもあるので、常識として使いこなせるようにしないといけないよなあと再認識させられました。

暗号通貨("暗号資産"呼びに統一すんの?)は2018年後半はなりを潜めたか

GOX事件もあり価値がだいぶ下がったので、話題も下火気味ですが… 某ポッドキャストの受け売りですが、Coinhiveみたいな仕組みは新しい広告の形になりえるものだと思うので、うまく安定的に利用できるものになればいいなあと… 引き続き動向は注視していきたいですね。

VR界隈の話題は事欠かなかった(あまり書いてないけど)

常時VR元年というほどガンガン進化している感じですが、一般層への普及は今ひとつという感じですね。個人的な開発自体は停滞気味ですが、少なくともユーザーとしては積極的に触って楽しみたいと思っております。商品としてはOculus Questと、Blenderアバターづくりをもう一度やりたいかなという気持ちはあります。

あと、上の項目には書かれてないけど、自分のTLを眺めていった結果、

  • 自分の日本語のヘタさ酷い
  • 「あとよむ」はたいてい読んでない
  • こち亀の未来予測すごい

という点が気になるところでした。120文字でも油断せずわかりやすい日本語を書きたい。あとで読まずにすぐ読む。は今年の小さな目標ですかね… そして、こち亀の凄さ。今年起きたいろんなことが、過去のこち亀で出てきた話だった。秋本先生凄すぎ。やっぱり電子書籍で全巻セット買っちゃおうかな…と思うなど。

おわりに

という感じで振り返ってみたんですが、予想以上に時間を取ってしまったのでこのへんで… 明確な目標とか出てませんが… とにもかくにも、2019年もよろしくお願いいたします。もう少し更新しないとなあという気はしている…

今年もbuilderscon tokyo 2018 で「知らなかった」を聞いてきました!

builderscon.io

自分がbuilderなのかどうかはさておき、今年もbuildersconで知らなかったを聞いてきました。興味深く面白く、そしてタメになるお話が満載で大満足でした。ブログを書くまでがbuildersconということで、印象に残った話をサラリと書き残しておこうと思います。

IoTの闇

書いてはいけない内容ということで何も書けませんが、こういう、ここだけの話が聞けるのはすごくよいです。来年は闇のトークを増やしてもらいたい。こわいな~こわいな~。

人類バーチャル化のすすめ

受肉したアバターによる発表、新鮮でした。これはいつかマネしてみたい… twitter.com

VR面接の話はすごく興味深くて、まずは単純に受けてみたいと思いました(アバター無いけど)。ただ、アバターの認知話もあったなかで、実際にVR面接があちこちでできたとしたらアバター格差が生じて「同じアバターじゃないと不公平だ」的なクレームが発生しだすんだろうなあ…とか無駄にいろいろ考えてしまいました。3Dモデル制作業務の面接ならバッチリなんですけどね。広く普及してもらいたいけど、それはそれで色々起きそう、みたいな… どんな世界が来るのかなあ。

また、内容とは別ですが、会場の様子をWebカメラVR内に投影する(今回は失敗)とか、16:9のつもりで空間配置するとスライドに被ってしまうとか、VR登壇の工夫や注意点みたいなものも垣間みれて面白かった。こういう発表も含めて、今後のVRの広がりに期待して乗っかっていきたいと改めて思いました。

次世代通信プロトコルにおけるセキュリティ・プライバシー保護・パフォーマンス

TLS1.3、QUIC関連の詳しいお話でした(少し遅刻した…)。この手の専門的な話が聴けて本当にありがたやです。ここでは細かく書けませんが、今日聞いた話でも色々と自分に関係しそうな変更があったので、細かい部分をしっかりキャッチアップしなきゃと思います(この時点ですでに遅いんだけどね…

最後の質疑応答にて「トラッキングできる余地も必要なのでは」という意見に関するプロトコルコミュニティでの議論についての回答は貴重でした。「正解がないこと」と質問者の方も言っていましたが、喧嘩別れになるまで議論を繰り返しながら良い方に発展していると思うので、正直トラッキングしたい側の私ですが、プロトコルを尊重して一緒に進んでいきたいものです。

ajito.fm Live

いやー、昨年のランチセッションで知ってからちゃんと聴いています。全然Web系ではないのですが、和気あいあいとした技術トーク、すごく面白いです。

高集積コンテナホスティングにおけるボトルネックとその解法

ちょうどLinuxカーネルコード読む必要性がある調査をしてたのでわかりみが深かった。調査コマンドなどのノウハウは明日から役立つこと間違いなしで超感謝です。コンテナ数そっちのけで聞いてた笑

なぜエンジニアはパフォーマンス計測しないのか

直接的な出費が一番あったセッションです。様々な生活データを収集し因果関係を探っていく素晴らしい企画。単純にガジェット紹介として聞いてても面白かったです。

やった、やはり夜型でした。

Withings Aura Smart Sleep System [並行輸入品]

Withings Aura Smart Sleep System [並行輸入品]

これも悩みだしてます… 類似品もあるようなので少し調べてから決断します。中途覚醒のクセがすごいんですわ…これで治るわけではないけど、まずは可視化から…

腰痛対策でスタンディングデスクには既にしていましたが、ステッパーまでは考えてなかった。立っているとき意味なくステップを踏んだりはしている。ステッパーもありだなあ…

すぐ買いました、積読に埋もれる前に読まなきゃ。

とまあ、一番反応させて頂いたセッションでした。集中度を測るとかは今後流行るかもしれないですよね。JINS MEMEも元々興味あったので、ああいう使い方になるのかあなど参考になりました。まずは健康を維持できるようがんばります…

おわりに

他のセッションも全てに学びや刺激があり大満足でした。登壇者の皆様が本当に楽しそうなのがいいですよね。Tシャツからお弁当からコーヒーから天然のうまい棒まで配られ生活に困らないカンファレンスですw
ただ、部屋のキャパシティが明らかに不足してしまっているのは辛いですね。私個人は全ての希望セッション聞けましたが、聞きたいけど入れなかった…は辛いので、なにか策があればなあと思いました。満員御礼なのは素晴らしいことなんですけどね。部屋広くするのが難しければ、ライブビューイング部屋とか…スライド見るのがより難しくなってしまうかな…

(追記)忘れてましたが、セッション動画は上がるんでしたね。Q&Aも音が入るように、質問内容を登壇者が繰り返してるんでしたね。後から見ることは可能ということで、このあたりは非常に素晴らしいです。


ということで、素晴らしいカンファレンスを実現してくれたスタッフの皆様、知らなかったを教えてくれた登壇者の皆様、本当にお疲れ様でした、そしてありがとうございました。来年も是非参加したいです。LTくらいはやれるようになりたいけどなあ…(最後、登壇したこと無い勢として挙手しなかったな…)