dorivenの日記

気がついたら社会人。気になる技術的なことについて少しずつ書いていけたらと思っております。

頑張って作っていたものがミドルウェアのオプションひとつで実現できた話

どうも、お久しぶりです。
月日は経ち色々と状況は変わり、ちょっとこちらのブログ放置していましたが久々に記述していきたく。

tl;dr

MySQLPHPから使用しているときに、宣言した型の上限などを超えるような値が来たときのために
バリデーションを掛けてエラーを出すというのがダルいから、
それ用のライブラリを作っていたらMySQLSQLモードというオプションで実現できたという話。

続きを読む

監視ツールXymonのrpmをビルドしてみた話

背景



現在、今の環境をpuppetで置き換えようと色々と頑張っています。
Xymonというサーバ監視ツールを勉強で入れているのですが、それをpuppetで表現しようとしていました。
結果的にexecだらけで管理しずらいのと、デフォルトでspecファイルが用意されていのたでrpmをビルドすることにした次第であります。

続きを読む

Vagrant の仕組み上で Puppet をシンプルに導入しようとした話

そろそろミドルウェアだけでなく、ソフトウェア開発の方にも手を出そうと思い、学んだPuppetをVagrant上で利用したら以外と面倒だったのでメモ.

続きを読む

S3cmdのインストール時にエラーで躓いていた件

AWSの知識が必要ということで個人的に色々とお勉強している最中なんだけど、S3をターミナルで操作できるs3cmdをインストールした後に詰まったのでメモ。

環境

使用したサーバはEC2のAmazonLinuxAMIから作成したもので、あまりカスタマイズしていないデフォルト仕様に近いもの。

エラーの内容

Problem: ImportError: No module named S3.ExitCodes
S3cmd:   unknown version. Module import problem?
python:   2.7.9 (default, Mar  4 2015, 20:43:00)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)]
environment LANG=ja_JP.UTF-8

Traceback (most recent call last):
  File "/usr/bin/s3cmd", line 2528, in <module>
    from S3.ExitCodes import *
ImportError: No module named S3.ExitCodes

Your sys.path contains these entries:
	/usr/bin
	/usr/lib64/python27.zip
	/usr/lib64/python2.7
	/usr/lib64/python2.7/plat-linux2
	/usr/lib64/python2.7/lib-tk
	/usr/lib64/python2.7/lib-old
	/usr/lib64/python2.7/lib-dynload
	/usr/local/lib64/python2.7/site-packages
	/usr/local/lib/python2.7/site-packages
	/usr/lib64/python2.7/site-packages
	/usr/lib/python2.7/site-packages
	/usr/lib64/python2.7/dist-packages
	/usr/lib64/python2.7/dist-packages/PIL
	/usr/lib/python2.7/dist-packages
Now the question is where have the s3cmd modules been installed?

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    An unexpected error has occurred.
  Please try reproducing the error using
  the latest s3cmd code from the git master
  branch found at:
    https://github.com/s3tools/s3cmd
  If the error persists, please report the
  above lines (removing any private
  info as necessary) to:
   s3tools-bugs@lists.sourceforge.net
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

python触ったことなかったのでエラーが出ると見なかったことにしようとする自分の悪い癖が出た。
結局、一番上に書いてあるS3のパッケージが読み込めてないことが問題だった。

解決方法

pythonのことはよく分からないので、ライブラリの追加方法とかググる

解決策としては二点あり、

  1. デフォルトのライブラリパスに追加
  2. コード内でライブラリパスの追加

今回は.2のやり方で対策。(1のやり方はpython日頃から触っている人だったらわかるだろうし)

以下のコードを先頭にあるimport sysの下に追加しておしまい

sys.path.append("/usr/lib/python2.6/site-packages")

おわりに

これってpythonを触ってた人ならこんな事じゃ躓かないんだろうな〜って思ったり。

2014年の振り返りと反省・新年の抱負

みなさん、新年が明けましたね。今年もよろしくお願い致します!
正月は神社・寺などには出向けないので家でテレビ見ながら餅を食べてコタツで温々するというのほほんとした生活を送っていました。
5日までは研究室に人がこなくて実験がすすまないので、そこまではゆっくり休みを取らせていただきたいと思っています。

さて、では去年と同様に今年も振り返りなどを行っていきたいと思います。

2014年の振り返り



今思うと今年って何をしたんだろう?と焦ってブログを振り返る。
一番のイベントはもちろん結婚式だと思うんですけど、あとは国際会議の発表でボコボコにされた事とか、同期との顔合わせ、内定式、合宿、セキュリティ関係とか。
こうやって思い返してみると色々あったんだな、と実感。

インターンシップのTAとしての参加

今年は内定者として会社のインターンシップにTAとして参加をさせて頂きました。
そこに関しての感想の詳細はこちら。
インターン生をTAという視点から見て感じたこと - datchの日記

  1. 教えることで得られるフィードバックの大切さ
  2. 年々向上する学生エンジニアの技術力
  3. 第三者から見たサービスの視点

これらを学ぶことが出来ました。
そして、このインターンシップで使った学習サービスを作ったのがTAのエンジニア同期であり、その開発では遠方であるためにコミュニケーションを取ることが難しく、サポーターの方には非常に迷惑を掛けてしまいました。自分はログイン周りを担当していたのですが、これだけの人数でシステムを開発したことは今までなかったのでチーム開発の難しさを改めて認識しました。

チーム開発

インターン生と同様に自分たちTAもチームを組んでサービスを開発しました。
大学の予定があり時間が足りない中で開発を進め、遠方である自分も混ざっていたためにチームでのコミュニケーションを取ることは中々苦労しましたが、自分はサーバサイドを1人で担当していたので仕様が固まった自分の好きなように作れたのでそこに関しては非常に楽でした。
ただ、API周りのコードは時間も短かったのでコピペが多くて汚いのが反省点。
後で触れるTDDの知見があればもう少し良いコードがアウトプットできたかも、と思う。

結婚式関連

特に結婚式はプライベート周りがすごく忙しくなりました。
一ヶ月に3,4回結婚式場に向かうのですが、実家と住んでいる場所の距離が離れているので基本一日掛かり。
式場の都合で平日に行ったり、あちらの家族との食事や実家にお邪魔して話をしたりと色々と気を使う場面も多かったです。
式場に伺わない日でも結婚式の準備(出席者への周知、式の内容に関する奥さんとの話し合いなど)があり、新郎と新婦のモチベーションの違い、時間も上手く使えないことに対する自分への焦りで精神的に疲弊していた時期も今なら言えますがありました。
ただし、そんなこともいざ結婚式を挙げてみれば、「本当に結婚式を挙げてよかった」ということに尽きます。
始める前までは、奥さんの強い結婚式の願望に押されていた形だったので「奥さんの為に結婚式を」という側面が強かったのですが、両親への手紙を書いて感謝を述べた事や周囲からの祝福を受けられて本当にやって良かったなと思っています。

エンジニア内定者研修

自分たちの強い希望からエンジニアの内定者研修を11月から行ってもらいました。
内容はTDD(テスト駆動開発)についてだったのですが、日頃から綺麗にコードを書こうとは思っているものの、テストをやるという側面からコードを書いたことが無かったので、それによってより一層コードが綺麗に掛けるようになったと思っています。
どのように単体テストを行えばいいのか、という作法や定石などを知らずに手探りでのテストを書き、メンターの人に質問をしては修正を加えるなど、単体テストに対する理解も上がってきました。
ただ、自分の場合はソフトウェアの全体像から作っていくのではなく、部品である処理の末端の部分(データの実体の取り扱い)から触れていったこともあり、単体テストの書き方に迷いがあったのは反省点。
「森を思い描きながら木を植える」、それが必要だと感じました。

セキュリティ講座への参加

大学が開催してくれた前期・後期にわかれたセキュリティ講座。
IPAが推進するセキュリティキャンプのミニ版であるセキュリティミニキャンプに参加をさせて頂きました。
ここで感じたことはセキュリティという分野にも様々な分野(デジタル・フォレンジック、ウェブアプリケーションセキュリティ、ネットワーク・セキュリティなど)が存在し、非常に深い知識が要求されるということでした。また、セキュリティミニキャンプでは自分よりも下の年齢の人たちが高い意識を持って技術修得に臨んでいる姿を見ていて、「おじさんも、頑張っちゃう!」という気分にさせてくれます。
若い世代に囲まれるのはパワーを貰えて良い、と私の指導教員の人が仰っていましたが、それを実感させてくれました。

去年の抱負の振り返り



さて、まずは自分が去年の今頃にどのようなことを書いていたかを思い出していきたいと思います。
2013年の振り返りと反省・新年の抱負 - datchの日記

  1. 時間管理
  2. 英語
  3. 技術

の三点を挙げていますね。
なんかこの抱負が半分も実行できてなくて本当に駄目だと感じる。
本当に英語に関しては何にもアプローチできてない。
というよりも、目先に国際会議があり、これからは英語の資料も読んでいきたい、という気持ちの元の抱負だったのですが、実際に英語の資料を見るときはコードしか読まない上にコードを読めば何が言いたいのかなんとなくわかるのであまり必要としていなかった、というのが大きかったです。
これから海外への出張、洋書の読書とかで必要に迫られなければ多分勉強しないんだろうな、って思いました。

技術に関しては、毎年「もっとこうしていれば」という気持ちを持って新年を迎えるのですが、こうやってブログに自分のやって来たことを書いていると色々なことをやってきたんだな~、と改めて再実感させてくれます。
しかし、サーバのインフラ整備に関しては未だに知識が疎くこのまま社会人になっていいものだろうか、という不安感が凄い押し寄せているのも事実。
それでも分野を絞った抱負を述べても、必要な・学びたい技術というのは刻々と変化していくのもわかったので分野は絞らずに学ぶ気持ちは保っていきたいと思います。

そして、最後に時間管理についてですが、今年は10月に入ってから時間の使い方が下手になりました。
何故かと言うと10月に今までまったくやっていなかったゲームに猛烈にハマってしまい、そちらに技術的な学習の時間を使ってしまったことです。
趣味の時間に傾倒したのも結婚式関連で自分の時間が少なくなった反動もあると思います。
もちろん、趣味と仕事の切り分けはしたいですし、元からゲームは大が付くほど好きだったので、むしろゲームをやること自体は歓迎なのですが、いかんせん私はひとつの事に集中し始めるとそれ以外をやらなくなるという性質があります。
といっても、やるべき事に時間を使わなくなったわけではないのですが、7つの習慣でも第Ⅱ領域と呼ばれる緊急ではないが重要な事に対する時間管理の必要性は言及されています。
時間とは全ての人に平等であり(総量ではなく経過という観点から)、その時間を有効に使うのも使わないのも本人次第なので、趣味もスキルアップに取る時間もやるべきこともしっかりこなせるようになりたいと思います!

今年の抱負



上記でも去年の抱負を振り返りながらどうあるべきか述べていますが、改めて今年の抱負を!
今年は前回の抱負も引き続き合わせて以下の2点に絞りたいと思います。

  1. 時間管理
  2. 強い気持ちを持ち続ける
時間管理

上でも触れましたが「7つの習慣」には4つの領域が存在し、それらの領域に対してどのように時間を割いていくかを考えなければなりません。
社会人になれば学生と違い時間というリソースを確保するのがより一層難しくなるため、時間をいかに確保してどのようなことに使っていくのかが非常に重要だと考えています。
まずは第一段階として、今自分がやっている事の重要度・意義を考られるようになる事。
第二段階として、自分がやっている事の矛盾や気付きその行動を修正出来るようになる事。
最終段階としては、自分のやりたい事・やるべき事をリストにしてしっかり意識し、一日を通して行動がコントロール出来るようになること。
今までの自分は最後の段階をいきなり行おうとしたことで行動が長続きしていなかったように思います。
時間管理という当たり前の事を当たり前のように出来るように今年は頑張って行きたい。

強い気持ちを持ち続ける

ややふわっとしている抱負ではあるが、強い気持ちを持ち続ける事。
全ての行動は感情(モチベーションとも言うべきか)に伴ってされるために、気持ちが維持していなければどのような行動も長続きしません。
常に走り続けるためにもその原動力である気持ちを持ち続ける事を意識したいと思っています。
ただ、「じゃ、お前どうやってその気持を維持し続けるの?」と聞かれるとちょっと頭が痛い。
ただ思うことは、常に小さな間隔で目標を設定し続け、様々な環境で刺激を受け続けることが大事だとは思っています(まだ漠然としているけど)
ここらへんの掘り下げも合わせて頑張る!

終わりに



常に前傾姿勢であるためか、少しでも成長を感じられないような時期があるときには全体を通して駄目だと思ってしまうので、こうやって一年を振り返ってみると自分が色々な事を成してきたことがわかって少し気持ちが楽になった。
ただ、以前よりも気持ちの面で失速しているのでもっと強い気持ちを持って行動をしなければな、とは常々思い続けています。
自分が生き抜く業界は日進月歩であり、歩みを止めたらあっという間に振り落とされてしまうでしょう。
強い気持ちを持ち続けて行動することが出来る一年、今年はそんな年にしたいと思います!
長文失礼しました~