momoの手帳

個人でevernoteに記録してたけどデータ欠損してたので数少ないデータをブログへお引越しすることにした。和暦も変わることだし新たに得た知識とか趣味のこととか書いていきます。現在、お引越し中

2月中旬近況

風邪は治りました。しかし、今度は別のことで滅入ってる状態になってしまいました。黒字なんで経営的な問題ではないのですがメンバー同志のギクシャクで業務すらままならない環境になってました。同期と私以外はこの原因を知らされてるみたいですが休みの間に何かあったらしい。ちゃんと業務してる側としてはどうしてこうなったかの説明がないのは不安になるものです。

ちゃんと仕事できるところへ行けるためにも気を引き締めてスキル向上が必要と考え、前から気になってたGo言語に着手することにしました。

まずは Tour of Go から開始することにしました。

あとは、念のために興味持った本を購入。ソケットの実装とか色々あって難しそうだけど理解できたらかなり強みが得られそう。

Goならわかるシステムプログラミング

Goならわかるシステムプログラミング

 

 あとは、情報セキュリティマネージメントの試験に申し込みました。

暗記が非常に苦手で資格取得を敬遠してたのですがさすがにひとつくらいはIPAの資格はあったほうがいいかなと思い受験を決心。

そのあと、またTOEICも継続して勉強します。TOEICは勉強してて割と楽しいときがあるので抵抗はあんまりないですね。点数は数十点しか伸びなかったですが 笑

 

なんか色々良くないことに巻き込まれてるけど精進していくしなかないですね。

2月上旬近況

職場で風邪をうつされて2月1日から喉と頭を痛めて鼻づまりとフルコースでした。

昨日まではずっと頭痛に苦しめられて何もはかどらなかったです。

ただ、仕事には行ってた。

風邪なかったら久々にpython復習するか新たにGoを学ぶかって予定だったんだけどな。

 

今日はGoのチュートリアルからはじめます。

OSC2019 Osaka行ってきました

昨日、OSCがあるということで行ってまいりました。主に知識蓄えを目的としていたのでセミナーを見に行ったといったところです。構築に関することしたいからそれらの知識おさえておこうという目的もあります。具体的な内容は自分でメモしてたノートにあるのですがここには雑にですが感想程度でとどめておきます。

 

◆Pacemakerで学ぶHAクラスタ

主にロードバランサー機能のお話。pacemakerのお話よりロードバランサーの話という感じ。

フェイルオーバータイプのロードバランサーでHAポートが何らかの事情で通信不能となったときにスタンバイ系もアクティブになって競合させる状態を「スプリットブレイン」っていう名称があったのは知らなかった。

過去、あの現象になって困ることはあって手動で修正した記憶がある。

この対策としては、対抗のノードを別経路でハードウェア制御ボードで強制ダウンさせるという方法があるみたい。

他にはスタンバイ側からping打って応答がなければサービスを立ち上げるってやり方もあるみたい。

私はバラクーダ製のロードバランサーとbondingくらいしか触ったことないので暇できた時くらいに検証してみよと思った。

 

◆Zabbix4.0、MIRACLE ZBX4.0の新機能解説

タイトルどおり、Zabix4系の新機能に関すること。

自分はZabbix3.0までしか触らなかったし4系の公式ドキュメント見ればわかるかなと思ってたけど知るには良い機会だった。

紹介された4系で変更になってるのは下記の通り

・UI

 ホストグループの階層化

 タブの「イベント」は「障害」に名称変更

 見た目変更

・障害検知

 イベントタグの追加

 イベント相関の追加

・アイテム

 ログバースト処理追加

 依存アイテムの追加

 障害の手動クローズ機能

 アイテムの保存前処理の追加

 アイテムタイプのエージェントを追加

history

 history即時取得機能を追加

・監視データ

 json/xml形式で監視データを出力可能

 

◆Docker Compose 徹底解説

DockerやDocker Composeについての解説。使ったことないけど徹底解説というだけあって濃厚かつわかりやすかった。 現職に居るならこれから使う機会はありそうだし覚えていたほうが得と思ったので個人的にはちょうど良い機会に恵まれた。

まず、Dockerの意義から解説されていた。これは、「コンテナ実行に必要なパッケージ化(Linuxのfsをdockerイメージと)してコンテナを動かす」ということ。冷凍食品みたいですね。私は、OpenVZとか簡単に触ったことあるからDockerも大体イメージつきやすかった。

Dockerの次はタイトル通りDocker Composeの話。複数コンテナ立ち上げるにしても毎回同じ立ち上げるコマンド(docker run)を打つのはナンセンス。そこで一気に立ち上げることを実現できるのがdocker compose。docker-compose upを打つとymlの定義ファイルを参照して特定コンテナを立ち上げるといったことが可能になる。

具体的なコマンドを紹介してくれたのでどうすればよいかってのはわかりやすかった。

今月からはじめた転職活動が無事終わればDockerもあわせて検証してみようと思わされた。

TOEIC勉強やったこと

自分が数週間でパートごとに勉強したものを列挙。

以前、自分がどんなことしてきたか見返すためのメモ

 

・使用アプリ

英語物語

スタディサプリEnglish

 

・本

問題解決力とコーディング力を鍛える 英語のいろは

公式 TOEIC Listening & Reading 問題集 3

 

・パートごとに使用したもの

パート1 公式問題集

パート2 前回良かったので今回はパス (スタディサプリEnglish)

パート3 スタディサプリEnglish

パート4 スタディサプリEnglish

 

パート5 スタディサプリEnglish 英語物語 公式問題集

パート6 スタディサプリEnglish 英語物語 公式問題集

パート7 スタディサプリEnglish

新年、サーバー移動に伴うMySQL文字化けで困っていた人の手助けをしたときのメモ

これは2019年早々早朝から受けた相談

文字コードについて詳しくないけど割と楽しんで形にしたときのメモ

 

◆条件(相談を受けて途中から介入したので正しい情報か不明)

・移動元/移動先共にcharacter_set_serverはbinary

・移動元DBの文字コード:Shift-jis、しかし1つのテーブルのdefaultで登録してる文字はUTF-8

◆問題点

  1. ・移動元DBで伝統的に使ってるであろうdumpスクリプトを使用して移動先でリストアしたら文字化けや日本語データの抜け落ちが発生していた。
    (そのスクリプトはテーブルの文字コードnkfUTF-8へ変換してるらしい)
  2. 移動元でmysqldumpコマンドを実行してそれを移動先でリストアしたら
    ERROR 1067 (42000) at line NN: Invalid default value for 'ZZZZZZ'
    と出てリストアに失敗する。

 ◆結論

dumpコマンドで作成したdumpファイルの中で問題となっているテーブルのDEFAULT CHARSETをsjisからbinaryへ変更した後、restoreを実施した。

 

◆過程

テーブル構造だけでも見たかったのでdumpファイルの文字化けしてる日本語を削ってrestoreした。
そこからshow create tablesをすると下記のような構造だった。
※文字化けしてたオリジナルの内容はその人の秘密を守るって意味で変更
 
table_name | CREATE TABLE `table_name` (
  `ID` int(11) NOT NULL,
  `XXXXXX` varchar(255) NOT NULL,
  `YYYYYY` varchar(255) NOT NULL,
  `ZZZZZZ` varchar(512) DEFAULT '【日本語】', <-元はこんな感じで入っていた日本語を削除した
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=sjis |
 
ちなみに、desc table_nameした結果
| Field        | Type            | Null | Key | Default | Extra |
| ID              | int(11)          | NO  | PRI  | NULL    |  |
| XXXXXX| varchar(255) | NO       |  | NULL |  |
| YYYYYY| varchar(255) | NO       |  | NULL |  |
| ZZZZZZ | varchar(512)  | YES  |     | 【日本語】| |
 
次にselect * from table_name limit 1;すると中身は文字化けしていたがTeraTerm文字コードUTF-8からShift-JISへ変更すると中身は見えた。
この状態でshow create tablesをすると当然、defaultの「【日本語】」が文字化けで見えなかった。
このことからテーブルのデフォルトで入力される日本語はUTF-8、テーブルの中のデータはShift-JISであることを予想。
 
昔、先輩が困ったときはdumpのときにnkfUTF-8に全部変換してそれをbinaryで展開すれば良いと助言貰ったことがあったがそれで解決する根拠がよく想像できなかったので良い機会だったので実際試してみた。
多分、日本語が化けるか最悪無視されてリストアされるんじゃないだろうかと思っていた。
結果は、show create tableをUTF-8で見る分には問題なかったが、selectしたらやはり日本語の部分だけデータが飛ばされていた。
 
色々考えて出たのが結論にもあるとおりdumpファイルのDEFAULT CHARSETをbinaryにしてrestoreすると形式的には入るのではないだろうかということ。
sed -e "NN s/sjis/binary/g" /home/momo/tmp/table_name_dump.sql > /home/momo/tmp/table_name_dump_change.sql
mysql -p --default-character-set=binary table_name < /home/momo/tmp/table_name_dump_change.sql
すると狙い通り、データの移動を元と同じ状態で見えるようになった。
 
あとはテーブルの型がvarbinaryになってるのをvarcharに変更すると完全に元通りになりそう。
テーブルdumpしてそのファイルをsedでvarbinaryからvarcharへ変換。
mysqldump db_name -p --default-character-set=binary --tables table_name > hoge.sql
 sed -i 's/varbinary/varchar/g' hoge.sql
これをリストアしたらいけるかなと思ったがvarbinaryのままだった。ここで時間切れとなってしまった。
 
残る課題として型はvarbinaryとなってるのでそれをどうvarcharへ戻すかというとこである。

本日のTOEIC

今日はTOEICの試験があった。前回と同じ会場だが遠くて行くまでに苦労させられる。

今回、受験した感想は前回と違ってpart2やpart6が難しかった印象を受けた。

本当にpart2が何言ってるかわからなくて出鼻くじかれて少々驚かされた。

part3から徐々にペースを戻せてpart4で難しかったけど言ってることのイメージはできた。なのでpart3,4はちょっと自信ある。

 

part6もなかなか難しくて悩まされた。書いてることはわかるんだけど言いかえとなる答えの選択肢がどれかわからず困った。

1300単語くらいは一通り見たことあるな程度まで準備してたんだけどそれでも選択肢内に初めて見た単語があった。ここで考え込んでしまってやはりpart7に影響が出た。

結局、part7中盤までしかできなかった。この感じだとpart7を完遂するには5,6の問題を10秒くらいで解かないとだめなのかな。

 

次回、受けるかどうかはわからないけどちょっと留意しておこう。

 

ちなみに、今回やったことは英語物語とスタディサプリを併用して問題をこなした。

単語は英語物語、その他はスタディサプリを使い分けた。

スタディサプリは講義と単語だけしかやれなかったけど一通りはやったので大まかなコツは得れたように思う。これだけでもかなりボリュームあって40時間以上はかかる。

2018後半~2019年にはじめたこと

・2019年はじめたこと

久々にブログを書くことを始めました。

元々は、evernoteで管理してたメモやコード類が多数消えていた。

なので、メモとして残ってるのは残り少ないけどブログで残すことにした。

ということがきっかけ。

ちょうどアウトプットのトレーニングしたいなと思ってたけどきっかけがなかったので今回はちょうど良い機会に恵まれたと思っています。

 けど、ZabbixAPI使ったものとかphpで練習してたコードが逝ってしまったのは泣きそうです。

 

もうひとつ、今年から始めたことは代謝増やしたいことを目的に腹筋をしてます。

手始めに一日10回*2を目標にしてます。というのも筋トレが苦手なのでまずは少量から開始。

しかし、2日前に業務ででかいサーバー持ち上げるときに腰をやらかしてしまったので出鼻くじかれた感じはします。

 

あと、UdemyでPythonの講座を購入したのでゆっくりやっていくつもりです。

 

・2018年後半

TOEICの勉強をはじめました。

私は、過去にZabbixAPIやAnsibleの公式ドキュメントを見るときに少しだけ読めてた程度の実力しかなかったです。

当時、社内の一部の人がTOEICの勉強をはじめてプチブームになってたのでそれに参加しました。

試しにPart5の公式問題集を解いてみるも単語力がなく、書いてることがあまりわからなかったのを覚えてます。

なので、数週間ほどリスニングのことは考えず単語だけを勉強してとりあえず300点取れたらいいかな程度でTOEIC記念受験しました。

長文問題までたどり着くころに時間切れとなった。

結果は、400点超えと予想よりは良い点を取得できました。しかし、点数良かったのはリーディングではなくまさかのリスニング。

終わった後も構文勉強したり単語少し勉強したりしてます。

今日、最初のころ試しやった問題をもう一度やってみたら意外と解けるようになった。