考える×つくる×動かす

主に技術系のことを書いていきます。

2月の振り返り

運動関係

ジムには11回行った
自転車では2回走った
ジムで5キロを10回走った
ついに人生初のフルマラソンを走った

体重推移

60.2 kg → 61.4 kg
22.3 % → 22.5 %

ジムで結構走ったけど、
自転車通勤辞めたせいであんまり痩せれなかった。
自転車通勤とジムはなんとか継続しないとなぁ。

読んだ本

走ったり飲みに行ったりであんまり読めなかった。

1月の記録

運動関係

ジムには14回行った
自転車では1回走っただけ
ジムで5キロを7回と3キロ2回走った

今のところフルマラソンに向けていい感じで走れてる。
2月は週4くらいで5キロ走ってフルマラソン前に1回20キロ走ってみるのが目標。

体重推移

60.2 kg → 60.4 kg
22.3 % → 21.2 %

今月はとにかく飲みすぎたな。
運動はいい感じでしてるけど、
飲み会の回数を制限しても、一緒にいる人が飲む人だとお酒の量が減らないのが原因。
かと言ってビールを辞めて焼酎にすると二日酔いになるのが嫌だからなぁ。

読んだ本

  • ラズパイで初めての電子工作:Raspberry Pi 3対応
  • 高勝率トレード学のススメ 続
  • ここが違った!株で稼ぐ人、損する人
  • 欲望と幻想の市場
  • 株で資産を蓄える
  • マーケットの魔術師

電子工作関連と、
ちょいっと株と投資関連の本を図書館で借りてを読み漁った。

2018年の目標

新年の計は元旦にあり
ということで2018年度の目標をきちんとブログに書いてアウトプットしておこうと思います。

2017年は激動なくらい色々な事がありました。
その中での反省とかを踏まえて2018年は大きくは以下の5個の目標を立てました。

  1. エンジニアとしてきちんとしたわかりやすい基盤を作る
  2. 料理人としてアウトプットを出して何かしらの場を作る
  3. 家の環境を整える
  4. 健康管理を引き続き頑張る
  5. 新しいことにチャレンジする

1. エンジニアとしてきちんとしたわかりやすい基盤を作る

今まではマネジメントだったり、データ分析だったり、拠点立ち上げとか
限られた会社内でしか通用しないをやってきたけど、
市場からもわかりやすい技術をきちんとインプット+アウトプットするようにしたい。

具体的には以下の技術にフォーカスしようと考えています

アウトプットの方法としては - 自分のサイトをきちんと作る (今はドメイン取って、AWS上にEC2追加してnginxとSSLの設定したくらい)

https://kazupyong.com/

  • hatenaブログにアウトプットを書く

考える×つくる×動かす

  • Qiitaに技術情報を載せる

kazupyong - Qiita

  • githubできちんと草を生やす

kazupyong (kazupyong) · GitHub

RebuildFMとかGoRailsとかの技術系ポッドキャストを聞いたり、
WebDBプレスとソフトウェアデザインをきちんと読んだり
インプットだけじゃなくてアウトプットも積極的にやっていきたい。
あとは勉強会にも積極的に参加したり開催したり、発表したりも一応の目標。

2. 料理人としてアウトプットを出して何かしらの場を作る

自炊とかホームパーティーとかで作ったものをしっかりと記録に残したい。
今までは作りっぱなしだったけど、それをきちんと分かる形でアウトプットしたい。
あとは知り合いのBarを月1とかでお手伝いするかなと計画中。

アウトプットの方法としては

  • 自分のサイトにRails+Vueとかで簡単なブログチックなもの作ってそこに上げるようにする。

https://kazupyong.com/

3. 家の環境を整える

昨年はDIYでテレビや自転車を壁掛けにしたり、キッチン周りの収納作ったり、ベッドを作ったりした。
夏場に水耕栽培にチャレンジしてみたけど、長期旅行の結果枯れてしまった。

今年は水耕栽培に再度チャレンジしたり家でも仕事できる環境をDIYで作りたい。
あとはRaspberry PiAmazon Echoで家の家電を操作できる環境を作ったり、
Raspberry Piソーラーパネルを使って水耕栽培自体の自動化とかログをとったりしたい。

4. 健康管理をきちんとする

今の健康管理は

  • Apple Watchで日々の歩数と心拍数と運動量の自動管理
  • Withings Scaleで体重と体脂肪の自動管理
  • Withings Auraで睡眠時間と睡眠の質の自動管理
  • Google Timelineで訪問場所等のログの自動管理
  • Apple WatchとRuntasticでのサイクリングログの記録
  • Apple Watchで水泳のログの記録
  • AnyTimeでジム訪問数とLFConnectでマシントレーニングの記録

自分的には大分自動化できているので今後も引き続いて健康ログの管理をする。

体脂肪率が18%なので12%くらいまでには落としたい。
体重は自転車通勤しているお陰で大体理想くらいだけど、
12月に体調崩すことがあったので暴飲暴食はやめる。

5. 新しいことにチャレンジする

フルマラソンに参加

2月に東京マラソンなので体をきちんと仕上げる

ロードバイクレースに参加

今のところ予定はないけどどっかで参加する

オープンウォーターの大会に参加

今のところ予定はないけどどっかで参加する

青色申告

ちょっと手違いで確定申告しないといけなくなったのできちんとやる。

英語の勉強する

最近英語を全く使ってなくて、
年末に海外の方とお話したときに、英語力の低下を実感したので

BBQとかキャンプに行く

去年はあんまり行けなかったので今年は行く。
あと道具をきちんと整備する。

おまけ

Twitterで見かけたいい言葉だと思ったのでShare

ってことで2018年も頑張って生きていこうと思います!

本番で動いているWordPressをMacのローカルで動かす方法

ちょっと非エンジニアに何度か聞かれたので個人的なメモ

MAMPのダウンロード+インストール

https://www.mamp.info/en/downloads/

本番のデータをコピー(ファイル)

本番でpublic_html 以下をダウンロードする。
(これはエンジニアがサーバー上でtar.gzとかでまとめてあげて直接渡すのが良さそう)
/Applications/MAMP/htdocs/ に展開しておく

本番のデータをコピー(DB)

(これもエンジニアがサーバー上dumpを取って直接渡すのが良さそう)
MAMPの設定パネルのphpMyAdminから
新しいDB(sample_wp)を文字コードutf8_general_ciを作成してDumpしたDBをimportしておく

Wordpressの設定ファイルを変更

/Applications/MAMP/htdocs/wp-config.phpを以下に変更

define('DB_NAME', 'sample_wp');
define('DB_USER', 'root');
define('DB_PASSWORD', 'root');
define('DB_HOST', 'localhost:8889');

ローカルなのでデフォルトのままです。
セキュリティーに拘る人はDBのユーザーを新規で作る方がいい。

DBの設定を変更

MAMPの設定パネルのphpMyAdminからwp_optionsの siteurlを http://localhost:8888 homeを http://localhost:8888 に変更する

MAMPでhtaccessを有効化する

/Applications/MAMP/conf/apache/httpd.conf

<Directory />
    Options Indexes FollowSymLinks
    AllowOverride All         ←"None"を"All"に変更
</Directory>

.htaccessの設置

/Applications/MAMP/htdocs/.htaccess に以下を記述して作成する

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

MAMPを再起動する

セキュリティーを考えるとwp-config.phpのSALT値を変えたり、
DBのユーザーをrootから変えたり、記事内で絶対パスで記述されてる場所をローカルURLに置き換えたり
バーチャルホストで動かしたり色々あるけど一応これで最低限動くはず。

ISUCON2014予選に参加してみた

チーム名:「/^o^\マッミョサーン」
最終スコア:26890
チームメイトはid:kazuphと@kokonoka

詳細はid:kazuphが書いていてくれるので割愛します。


ISUCON2014予選でがんばってきた - 僕の車輪の再発明


9月の頭に昨年の過去問を1回4時間くらいやって傾向と対策を練っていました。

基本的なスタンス

・nginxやmysqlのログを見て遅い部分のボトルネックを解消
・インデックスは貼る前と貼った後のEXPLAINをみながら貼っていく
・DBの構造とかを変更
・ロジックで減らせるクエリは極限まで減らす
ミドルウェアに手を入れたりは最後までしない
・最後にキャッシュ出来る部分はキャッシュする


そのおかげで変なエラーが出てベンチマークとか動かない(´・ω・`)とかなくて
基本的には成功法で攻めることができたはず。

やったこと

・全体のロジックを確認
・3回以上ID,PASSを間違えたipアドレスをブロックするipsテーブルを追加
・10回以上ID,PASSを間違えたユーザーをブロックするunlock_usersを追加
・初期で上テーブルにINSERTする初期スクリプトを作成
・usersに最新ログインの日時+IPアドレスを加えた
・login_logを使わなくした
mysqlの設定ファイルを秘伝のタレを利用した
・自分たちで新たに加えたテーブルにインデックスを貼った
・WORLOADが増えるとTCPでTIME_WAITが発生してPORTが専有されてしまうのを解決した

ハマったところ

・login_logのロジックを確認しつつテーブル分割するかキャッシュを使うか決めきれなかった
→これで午前のほぼ時間を費やしてしまった。。
・お昼ごはんのメニュー(結局寿司食べたく出前とった)
・/loginのエラー時にリダイレクトされるのを減らすためにnginxで静的ページを返したかった
MySQLのバージョンアップ(最後で5.6系に変えようと別インスタンスでテストしたけどエラー出て動かなかった)

反省点

・もっとはじめにベンチ前にく初期投入データを見ておくべきだった(これがランダムだと思ってた)
・全体ロジックを確認してUSERSをキャッシュ化してしまうべきだった
・パスワードのHASH処理を始めに計算にしてDBに入れておくべきだった
・nginxでCookieの値を持ってこれるそしてその値を見て静的ページを返せばよかった
・土曜朝じゃなくて金曜朝に海外から帰ってきて万全の状態で挑むべきだった(言い訳ですがw)


今回基本的にはid:kazuphがほとんどコード書いてくれてた。
自分ももっとさくっと書けるようにならないとと反省。


1年強振りのブログ記事でした。
詳細とMySQLの秘伝のタレに関しては別エントリ書きます。