YAML で履歴書を作るを Docker 環境でやってみた
- 最近、転職を考えるようになっていろいろ行動し始めた
- 履歴書や職務経歴書を要求される場面が増えてきた
- 以前転職したときはインターネットのどこかでダウンロードした Microsoft Word のテンプレートで作成したものを PDF に変換して使ってた
- 必要な情報をアップデートしたらそれだけで履歴書を更新できるような仕組みにしたい
- いい感じのがある
というわけで、さっそくやっていきましょう。
実行環境
必要なライブラリ等 にあるように、 Prawn と IPAex フォントがあれば動きます。 あと Ruby の Script なので当然 Ruby も。
これくらい軽量ならサクッとローカル環境にインストールしてしまってもいい気がするんですが、せっかくなので実行環境を Docker 化してみました。
2023/09/24 追記
本家の変更に追従しやすくするよう、本家を Fork したリポジトリに追加する形に変更し、docker-yaml_cv はアーカイブしました。 以降はこちらを利用ください。
$ docker compose up [+] Running 1/0 ✔ Container yaml_cv-app-1 Created 0.0s Attaching to yaml_cv-app-1 yaml_cv-app-1 | ruby make_cv.rb -i data.yaml -s style.txt -o output.pdf yaml_cv-app-1 | Calling `DidYouMean::SPELL_CHECKERS.merge!(error_name => spell_checker)' has been deprecated. Please call `DidYouMean.correct_error(error_name, spell_checker)' instead. yaml_cv-app-1 | input file: data.yaml yaml_cv-app-1 | style file: style.txt yaml_cv-app-1 | output file: output.pdf yaml_cv-app-1 | Done. yaml_cv-app-1 exited with code 0
これだけで動く! 簡単!
git clone
したディレクトリ内でさらに kaityo256/yaml_cv を git clone
し、 docker-compose up
します。
$ docker-compose up Creating network "dockeryamlcv_default" with the default driver Building make_cv Step 1/5 : FROM ruby:alpine ---> 8ea9c590ec75 ... 省略 ... make_cv_1 | input file: data.yaml make_cv_1 | style file: style.txt make_cv_1 | output file: /output/output.pdf make_cv_1 | Done. dockeryamlcv_make_cv_1 exited with code 0 $ ls -l output.pdf -rw-r--r--. 1 root root 109173 Jan 28 05:51 output.pdf
しかし、 JIS 規格の履歴書とやらは冗長だ
資格や通勤時間といった情報はともかく、趣味・特技や志望動機なんて履歴書に必要なのか?
ということで、 fork して A4 1 ページに収まるスタイルも作ってしまいました。
課題
スクリプトを Dokcer で動かすため、出力される PDF のファイルオーナーが root になってしまいます。 これは fixuid というものを使えば解決できそうです。
まとめ
- YAML で履歴書を作るスクリプト kaityo256/yaml_cv の実行環境を Docker で作りました
- A4 1 ページに収まるスタイルを作りました
謝辞
@kaityo256 さんありがとう!
参考
Amazon Echo Dot から Fire TV Stick を操作する
様子
Echo Dot と Fire TV Stick のある生活 pic.twitter.com/t9SNGTG9sp
— ɐɯɐsɐʞ! (@ikasamak) 2018年12月15日
設定方法
1. Amazon Alexa アプリのサイドメニューを開いて 設定
をタップ
2. ALEXA の環境設定
-> TV・ビデオ
をタップ
3. firetv
をタップ
4. Alexa デバイスをリンク
をタップ
5. Fire TV Stick を選択して 続行
をタップ
6. Echo Dot を選択して デバイスを接続
をタップ
7. 接続完了!
Echo Dot 第3世代 (Newモデル) - スマートスピーカー with Alexa、チャコール
- 出版社/メーカー: Amazon
- 発売日: 2018/10/30
- メディア: エレクトロニクス
- この商品を含むブログを見る
- 出版社/メーカー: Amazon
- 発売日: 2017/04/06
- メディア: エレクトロニクス
- この商品を含むブログ (17件) を見る
Heroes of Hammerwatch Patch notes for version 87 を訳した
Heroes of Hammerwatch とは?
一言でいうと
公式ページ
Steam
ちょうど新パッチのトレイラーがあった
Patch notes のソース
おことわりと謝辞
- 一部翻訳間違いなどがあるかもしれません。気が付いたら指摘ください。
- ゲーム内の固有名詞の翻訳にあたっては、以下の日本語化 MOD を参考にしています。ゲームでも使ってます。感謝!
Steam Workshop :: Japanese Translation
以下、翻訳内容
- 新しいステージ 6
Battlements
( 2 フロア ) 追加 - ステージ 5
議会
のマップを大きくしたが、フロアを 2 フロアに削減 - ショートカット・ポータルのステージを改変
- Mod サポートを追加
クラス
シーフ
- レベルアップによる HP 上昇量を 4 から 5 に増加
回避
はこれまでの効果に加え、時間経過によって追加で 1 回の回避判定をスタックする- 要するにスタックした状態だと最大 2 回の回避判定になる
鉤なわ
の当たり判定を大きくした
ソーサラー
ウィンターオーブ
で射出されるかけらは敵に当たると反射/貫通するフロストシャード
は敵に貫通/反射するたびにダメージが 10% 増加する痛烈な冷気
の凍結確率が 5% から 7.5% に増加
ウォーロック
- 基礎 HP が 75 から 60 に減少
ソウルダガー
がヒットごとにダメージを与えるようになるが、ヒットによるダメージ量は -2 される
ウィザード
ブラストウェーブ
のレベル 3,4 において正しい焦土
を設置するようになる
プリースト
聖なる光
に小さな AOE を追加
レンジャー
獲物の印
のデバフを付与したときに同時にクリティカルが発生するパワーショット
のチャージ中にゆっくり動けるようになる *1矢の突風
のクールダウンが 2 秒から 0.75 秒に短縮
アイテム/酒
- アイテム/酒をいろいろ追加
- 酒のストックがあると無料で飲めるようになる
- ストックがないときはより高い金額を払えば飲めるようになる
スピードブーツ
が 2 つのセットアイテムに分割される- それぞれが以前の
スピードブーツ
と同じくらいの効果を与える
- それぞれが以前の
- 以下のアイテムのクールタイムが減少する
アーススプリッター
ストームコーラー
雷神の怒り
守護のスカラベ
降りかかる破壊
スパイクブーツ
のダメージ量が 15 から 25 に増加ストームコーラー
のチェインライトニングの射程が増加降りかかる破壊
のダメージ量と燃焼時間が増加補強グローブ
のダメージブロック量が増加
変更と修正
- ステージ 3
武器庫
の儀式の像
のボタンを押す必要がなくなった - クラスタイトルが無限に増加するようになる
- アイテム同調のポイント再分配とスキルのポイント再分配がそれぞれ別に行えるようになる
- 最後のボスを倒した際の税率が減少
- 各ステージのフロア 1 ではショップが出現しなくなる
- ショップに新しいバリエーションを追加
- マナ減少のデバフが絶対量ではなく、最大マナ量の割合で減少するようになる
- インプ出現のアナウンスを追加
- モノリスのバフとして
ゴールドフィーバー
を追加 - ゲームオーバーの画面にとどめを刺した敵のアイコンを表示
- 2,3 人でマルチプレイしているときの敵の HP 倍率が減少
- ロックされている教会のアップグレードのコストを表示
- 染料の追加
- 統計の数値が 20 億を超えてもバグが起きないようになった
- キャラクターメニューで表示される攻撃やスキルのアイコンをツールチップの中に移動
- フレーム制限の精度向上
- 壁の中に埋まる現象についての実験的な修正
- 街でリロードすると
エースキー
が複数付与されるのを修正 - ときどき発生する画面クラッシュ *2 の修正
- 新しい効果音の追加
Apache HTTP Server の ServerLimit を変更するための再起動方法
結論
apachectl
apachectl stop; apachectl start;
SysVinit 系
service httpd|apache2 restart
systemd 系
systemctl restart httpd|apache2
解説
Apache HTTP Server のドキュメントによると ServerLimit
は apachectl restart
で無視されるとあります。
mpm_common - Apache HTTP サーバ バージョン 2.4
実際、 ServerLimit
を変更して apachectl restart
すると以下のようなログが出ます。 *1
これは ServerLimit
を 16
から 32
に変更した場合です。
[Mon Sep 24 13:36:35.613950 2018] [mpm_prefork:warn] [pid 1788] AH00179: changing ServerLimit to 32 from original valueof 16 not allowed during restart
というわけで、 ServerLimit
を変更したときは apachectl stop; apachectl start;
に相当するコマンドで再起動をしましょう。
service
や systemctl
による Apache HTTP Server の起動停止がどういう挙動をしているかは、以下を参考にそれぞれの起動停止スクリプトを読んで理解しましょう。
AWS EC2 に OpenVPN を構築して Chromebook から接続するときにハマったポイント
OpenVPN 2.4によるVPN接続環境をAWSで構築する | DevelopersIO
Chromebook から OpenVPN(TLS-Auth、LZO圧縮有り)へ接続してみた - Qiita
基本はこの2つのあわせ技です。 作業内容のほとんどはそれぞれの記事を参考にしてもらえば。
個人的にハマったところ
インターネット向けのトラフィックを全部 OpenVPN 経由にするとき
OpenVPN の server.conf
に以下のような設定を書きます。
push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 192.168.1.1"
このとき、dhcp-option DNS
で指定する DNS サーバのアドレスは、 OpenVPN サーバから到達できるものを指定してください。
何故なら、名前解決も全部 OpenVPN サーバから実行するからです。
最初これがわかってなくて、無限に名前解決に失敗してインターネットに出られなくなった。
AWS EC2 上で構築するなら、AmazonProvidedDNS を指定するのが良いかもしれません。
たとえば VPC のネットワークが 172.30.0.0/16
だったら、AmazonProvidedDNS は 172.30.0.2
になります。
固定で 169.254.169.253
も使えるみたいですけど、試してません。
詳しくはこちら↓。
Chromebook から接続するときはパスワード欄の入力が必須
クライアント証明書をパスワード設定せずに作成した場合でもパスワード欄に何かしらの文字列の入力が必要です。 空欄だと接続しに行ってくれません。
サーバー側の設定と ONC ファイルの設定を合わせる
ONC ファイル作るのが面倒だったんでベースの作成にこれを使いました。
ただ、2018/05/28 時点でそのまま使うのはちょっと微妙で、いくつか手を入れないといけなかったです。
"Proto": udp
と出力されるので"Proto": "udp"
に直す必要がある。udp
にダブルクォーテーションがなくて JSON Syntax Error になる
- クライアント証明書が埋め込まれてしまっているので、デバイスにインポートしたものを使う場合は要修正
"Auth": "SHA512"
がサーバ側のデフォルト設定と異なる- サーバ側に
auth SHA512
を設定するか、ONC ファイルから"Auth": "SHA512"
を消す
- サーバ側に
Source IP アドレスを OpenVPN サーバのものにしたい
IP Masquerade しましょう。
$ sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
以上、楽しい VPN ライフを!
他の参考サイト
Chromebook で iso イメージを USB フラッシュメモリに焼く
背景
- メインマシン (Windows10) がクラッシュを繰り返してとうとうレジストリ破損で起動しなくなった
- OS クリーンインストールをしようと思ったけどインストールメディアがない
- サブマシンである Chromebook でインストールメディアを作成しよう! ← いまここ
確認した動作環境
- ASUS Chromebook Flip C100PA
- Chrome OS バージョン: 67.0.3381.0(Official Build)dev (32 ビット)
ASUS Chromebook Flip ノートパソコン C100PA/Chrome OS/10.1型/Quad-Core RK3288C/2G/eMMC 16GB/タッチ/C100PA-RK3288
- 出版社/メーカー: Asustek
- 発売日: 2015/10/03
- メディア: Personal Computers
- この商品を含むブログを見る
手順
1. Ctrl + Alt + T で ターミナルを開く
2. shell
でシェルを起動
crosh> shell chronos@localhost / $
3. df
で USB フラッシュメモリっぽいのを見つける
chronos@localhost / $ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 1640868 1446944 193924 89% / devtmpfs 1031524 0 1031524 0% /dev tmp 1031736 176 1031560 1% /tmp run 1031736 476 1031260 1% /run shmfs 1031736 25656 1006080 3% /dev/shm /dev/mmcblk0p1 10801712 9147840 1085452 90% /mnt/stateful_partition /dev/mmcblk0p8 11760 24 11412 1% /usr/share/oem /dev/mapper/encstateful 3185468 135304 3033780 5% /mnt/stateful_partition/encrypted media 1031736 0 1031736 0% /media none 1031736 0 1031736 0% /sys/fs/cgroup imageloader 1031736 0 1031736 0% /run/imageloader /dev/dm-2 12476 12476 0 100% /run/imageloader/PepperFlashPlayer tmpfs 1031736 4 1031732 1% /run/arc/oem tmpfs 1031736 0 1031736 0% /run/arc/sdcard tmpfs 1031736 0 1031736 0% /run/arc/obb tmpfs 1031736 0 1031736 0% /run/arc/media tmpfs 1031736 0 1031736 0% /run/arc/adbd /dev/fuse 10801712 9147840 1085452 90% /run/arc/sdcard/default/emulated /dev/fuse 10801712 9147840 1085452 90% /run/arc/sdcard/read/emulated /dev/fuse 10801712 9147840 1085452 90% /run/arc/sdcard/write/emulated passthrough 1031736 0 1031736 0% /run/arc/media/removable /dev/sda 3704296 3704296 0 100% /media/removable/RHEL-7.3 Server.x86_64
今回は /dev/sda
がそれっぽい。前に RHEL7
の起動ディスクにしたやつだった。
4. dd
で iso ファイルを焼く
$ sudo dd if=./Win10_1709_Japanese_x64.iso of=/dev/sda
5. お茶でも飲みながら気長に待つ
CakePHP を Docker 上の Nginx + PHP-FPM + MySQL にインストールして動かす
仕事でもりもりつかっている CakePHP ですが、ようやく自宅の環境にもインストールしてみました。
ハマったところ
intl PHP 拡張がなくて CakePHP のインストールにコケる
エラーメッセージ
$ docker-compose run --rm composer create-project --prefer-dist cakephp/app . Current working directory: '/home/ikasamak/work/docker-cake' Installing cakephp/app (3.5.1) - Installing cakephp/app (3.5.1) Downloading: 100% Created project in my_app_name Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - cakephp/cakephp 3.5.9 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.5.8 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.5.7 requires ext-intl * -> the requested PHP extension intl is missing from your system. ...
対策
composer, php-fpm イメージに intl PHP 拡張をインストールする
Dockerfile
(抜粋)
RUN apk update && apk --update add icu-dev RUN docker-php-ext-install pdo_mysql mysqli mbstring intl
注意: icu-dev
パッケージがないと intl PHP 拡張のインストールに失敗するのでインストールしておく。
CakePHP インストール後にアクセスすると 404 エラーが返ってくる
原因
- Nginx と PHP-FPM を別のコンテナで動作させている
- Nginx の conf に
try_files $uri =404;
が設定されている
CakePHP のインストールガイドには Nginx の設定例が載っています。
https://book.cakephp.org/3.0/ja/installation.html#nginx
location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_intercept_errors on; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
しかし、今回のように Nginx と PHP-FPM を別のコンテナで動作させている環境ではうまく動きません。
try_files $uri =404;
は Nginx 上で該当のファイルが見つからなければ 404 エラーを返します。
PHP-FPM と別コンテナである Nginx 上には CakePHP のソースはないため、この設定が入っていると 404 エラーになってしまいます。
対策
- Nginx の conf から
try_files $uri =404;
を消す