投稿

2013の投稿を表示しています

#Kindle 写真集を出版しました

「出版」というと、なんだか大層な響きですが、撮影した写真をいくつか纏めてファイルにして、Kindleで公開(販売)することにチャレンジしてみました。

商品はこちらになります。




今回は、テイスト的にはアイドルの写真集のような「基本は写真+ほんの少しのポエム(?)」のスタイルで作ってみました。

はっきり言って「300円だから許してねw」というレベルの作りだと思います…。
が、写真は個人的にはすごくいいものが撮れてると思っています。

Kindle本自体の作り方は、詳しい方がブログの記事にしたりセミナーの教材にしたりしてるみたいなので、その辺を調べていきたいと思いますが、日本語版ではPDFがサポートされていないという点は注意事項です。
ePubを作るのが大変な場合、MS-Wordファイルが一番楽ちんな選択肢になるかと思います。
なぜかMS-Wordファイルはサポートされている…。

300円カンパしていただける方は是非、Kindleからダウンロードして、感想を教えて下さい。


架空の会社の情シスになってPowerShell #psjp

イメージ
この記事は,PowerShell Advent Calendar 2013の8日目の記事です。

こんにちは、PowerShell初心者のTearTheSkyです。

無謀にも、PowerShell Advent Calendar 2013に申し込みました。
当初は、お友達にヘルプを求められてユーザ名からSID取ってくる処理が思いのほかかっこよかったので、そのへんを記事にしよう思っていたんですが、ドメインコントローラに接続できる環境ならクソ簡単なことに気づいて記事にならないとわかったのでやめました。

ということで、架空の出来事ですが、3年前の夏、御徒町のスタバでドヤ顔でDELLのノートブックをまさぐっていると、金髪短髪のノリのいい外人のおっさんが向かいの席に座って話かけてきたときの話を書きます。

「へいYou!君はギーク?」
「日本人にその手の質問すると大抵期待する結果が得られませんよ」
「ということは君 is Otaku?」
「まぁそうです」
「いきなりまじめな話になるんだけどさ、君SEでしょ?俺の会社で働いてくれない?今の給料+10%出すよ」
「は?オフィスはどこ?」
「え、御徒町駅から徒歩10分」

ということで、最近活況なエンジニアの転職市場を横目でうらやましそうに見つつ、重度の社畜的御奉仕を求められて辟易したり疲労困憊していた私は、現在の会社と同じ金をくれるという外人さんの会社に転籍することにしたのでした。ヘッドハンティングというやつですね。いいですね~。

で、初日。

「いいかい、君はこの"利益を生み出すオフィス" であるMy Profit Center 略してMPCでITインフラストラクチャのマネージャとして働いてもらう。我が社は優秀なチームメンバーのおかげでいい感じの利益を出せているが、ここで大きめなstandardizationを起こして、事業としてよりどでかく拡大できるように組織の構造を変えていきたい。わかるか?」
「ええ、なんとなくは…」
「具体的には、今の社員が高いスキルで多くのタスクをこなしているが、そのうちのいくつかを細かく砕いて、社員よりはスキルの低い、コストの安い派遣社員にやってもらうように変えたい。それから、逆にコストの高い一芸に秀た派遣社員も雇って社員のパートナーとしてガンガン稼いでもらう。君にはそういう世界がうまく回るようなITを実現…

呼び水シート

イメージ
最近全然ブログを更新していなかったので、景気付けに簡単なお話を…。

実は今遅い夏休みをいただいて実家でのんびりしているのですが、
積んであったビジネス雑誌を読破する目標を立てて読んでみたりしています。
昨日は「週間 東洋経済 2012年3月31日号」を読んだんですが、
使ってみたいな、とおもった思考フレームワークがあったのでメモ代わりに。

「呼び水シート」と呼ばれる、想定問答集です。



一つのおおまかな質問にたいし、相手が回答しそうな答えを3パターン用意しておく。 そしてその回答の1つに対して、さらに深堀りするような質問を3つ考える。 これを3セットもやれば、事前に質問したいことが27個もできるということで、顧客と話をする際にそれらの質問に引っかかって話が広がる、つまりこれらが「呼び水」になるということなんですね。
雑誌では営業用のTipsとして紹介されていましたが、ITシステム開発の要求定義のヒアリング何かにも使えそうですね。
もちろん、顧客の背景をある程度理解して、その知識とセットにして対談に望む方が良いです。なので、そのような情報を社内、部署内、チーム内などで共有できていることも大事ですね。 その辺はナレッジマネジメントの領域ですね。知識の共有と整理…。 そういう知識も不足しているような気がするので、これから勉強していきたいですね。

話は変わりますが、最近アーモンドの栄養価のバランスの良さにびっくりして、おやつにし始めてみました。思ったより美味しいです。素焼きもいいですけど、塩味のやつもいいですね。折角ダイエット効果があるので、食べ過ぎには注意したいところです…w

素焼きアーモンド 260g

Cisco iOSのSNMPTrapの種類について

こんにちは。最近はなぜかネットワークのプロジェクトをやっているわたしです。
担当範囲が狭いとはいえ、経験ゼロからだと勉強しなきゃいけないことがいっぱいで大変!

仕事のなかでこんなページを参照する必要がありました。

SNMP-Server Enabled Traps を設定した場合に送信されるトラップ
http://www.cisco.com/cisco/web/support/JP/100/1007/1007841_SNMPTrapsInImages-j.html


SNMPTrapでこんな情報飛ばせまっせっていう情報なのは分かるんですが、
はっきり言ってAAAとかBGPとかって何!
っていう感じで、割とちんぷんかんぷんなところが多かったので、
休日の宿題としてこんな表を作ってみました。

https://docs.google.com/spreadsheet/ccc?key=0AqenEwC7S50CdEF6TXdQZzZNVTZmUXBiVVBOdEhuSXc#gid=0


お粗末なところもありますが、ご愛嬌ということで。


乗り遅れてるSIerとして感じた #awssummit

イメージ
AWS全く使っていない、クラウドなにそれ美味しいの的なレベルの、危機感を感じているSIer(インフラ)の目線で書きます。

2013/06/06 (Wed)に、awssummitに参加して来ました。

■awssummitとは?
Amazon Web Service のカンファレンスです。
毎年やっているみたいですが、私は今回が初参加でした。
全2日間あるうちの2日目のみ参加。



■公式ページ
http://www.awssummittokyo.com/?id=awswebsite
こんなかんじで、なんというか、スタートアップ的感情をくすぐられるデザイン。
いいですね。
このサイトが、イベント決済のシステムと連動していて、まずそこのアカウントを作ってから、申し込む必要がありました。
しかし、知ったのが1週間前だったので、人気のセッションはほとんど売り切れ。
残ってるものの中から興味があるものをチョイスして登録。
そして基本的に企業名とか書かなきゃいけないので、会社に在籍してるって大事だよなぁと振り返るように思いました。



■入場
品川のグランドプリンスホテル新高輪というところでした。
入り口がオシャレに撮れました。



あったこれだ、と思って地下二階に行ったんですけど…、




ホテルの従業員さん「Amazonさんのイベントは一階のずーっと奥だよ!」
なんと、ここはAmazon Data Service Japanの社員の皆様のためのスペースでしたwww
なんとか受付をすませて会場入り…。



■キーノート




こういうカンファレンスとかはたいていキーノートっていう開幕だけどまとめみたいなプレゼンがあるみたいです。
カンファレンスとか一回も行ったことなかったけどTwitterで学びました。
ネットって本当に凄いですよね。
メインスピーカーというか司会というかプレゼンターはアマゾン データ サービス ジャパンの社長の長崎さんという方。

1時間遅れで会場入りしたので、三井物産のプレゼンがちょうど終わるところからでした。
キーノートを聴いて感じたのは、やっぱり使ってもない立場でネットから流れてるおこぼれだけで情報を形成してると、明らかに情報が古くなるなぁと。
たとえばAWSはいわゆるパブリッククラウドですが、フツーに専用線とかVPNでセキュアネットワークを構築することが可能になっているとのこと。
そのた…

システムの「正常」とは何か

最近はITインフラに関するお仕事をやっています。

おもに設計に関するお仕事ですが、
この前先輩より面白い質問を受けました。

「『正常』って端的に表すとなんだろね?」

ドキュメントに残す、簡潔な表現で『正常』を表す…
簡単なようでとても難しいですよね。

「『異常』ってなんだ?」という問いに対しては、

「『正常』じゃないこと」と言い切れますが、

じゃあ「『正常』ってなに?」と。

もちろん、インフラ上に構築するシステムによりけりな部分は
多々あると思うんですが、

できるだけ抽象化してまとめるとこんな感じじゃないでしょうか


・定義したシステムの機能がすべて稼働していること

・定義した測定項目がすべて閾値の範囲内であること

・定義したエラーが出力されていないこと

・ユーザからの不具合申告等がないこと

・その他動作感が想定通りもしくは想定に近いこと


という、自分なりの答えが出たのでメモとして
このエントリを書こうと思いました。

どこかにこういうの書いてあったりするんですかね?
IPAのサイトとか。

もっといい表現がありましたら教えていただけると嬉しいです。



2013年 1日目 SDKがアップデートできない

イメージ
Androidのお勉強を再開したく、
殆ど使ったこともないEclipseを開いて 「へいYou,ADTが古臭ぇぜ?アップデートしていくか?」 みたいに聞かれたのでアップデートしました。
しかし失敗。
キャプチャとかメッセージのコピーとか 保存するの忘れちゃったので無いんですが、 なんか、ファイルを置き換えようとしている時に eclipseがロックしてるから出来ませんって感じの エラーでした。
おい、eclipseってあなたでは…? Android SDKアップデートマネージャーみたいなのを Eclipseから呼び出してアップデートしますよね? そして処理の途中で「eclipse.exeがロックしてるから処理出来ません!」 って、おかしくね?
ググってみたらこんなページ
Windowsではファイルシステムの都合により、更新対象のファイルが開かれてたままだと上書きできないことが発生します。その際にはEclipseを終了させ、adb.exeが動作していない状態で、SDK Manager.exeをコピーの上実行するか、それでもうまくいかない際にはSDKをインストールした"android"をフォルダを"android_old"の様にリネームの上、再度新規インストールを試みてください。
あっ?と思い、エクスプローラで移動

ここにあるSDK Manager.exeを直接起動してみました。
そしたら普通にEclipseから起動した画面が出て来ましたね。 そして同じようにアップデートを実行。 今度はEclipse.exeにロックされているから云々のエラーメッセージは出ませんね。 これでいいのかー。たぶん。




アップデート出来ましたと言っていますね。良かった良かった。
この後「not installed」なプログラムは「installed」に変わって、
ひとまずはこれで良さそうです。

今日はここまで。

隅々まで理解するとういこと

■隅々まで理解するということ
会社では、テクニカルサポートみたいな仕事もやってます。
先日、ストレージのアレイコントローラーの機能を使ったスナップショットボリュームについてのお問い合わせがあり、うまく答えることができませんでした。

スナップショット機能は、仕様は違えどおそらくどのストレージベンダーの製品にもある機能だと思います。
しかし私は、共通的というか汎用的な概念、数学でいうと公式のような部分をしっかり理解していなかったため、サポートのリクエスト者に適切な回答を提供することができませんでした。


日々の仕事のなかでは、「必要な部分は理解できたから」という大義名分のもと、曖昧な理解度のままに仕事を進めることがあります。
たとえば今回のような場合は、「スナップショットというのがあるからどうやら過去の状態に戻れるらしい」という程度の、非常に概念的な話を関係者とやり取りするような。

プロっぽくないですよね。
いつどこでどんな質問がされるか分からないんだから、隅々まで理解しておいたほうが良いのではと最近よく感じます。
実際のインフラ機器がある現場へ赴く業務をやっている人、私もたまにありますが、そんな仕事をやっている間は、本当に重箱の隅をつつく感じで徹底的に調べあげるような気概で取り組みたいです。

理解している範囲が広がると、「想定外の質問を想定外に変える」ことができます。
そして想定内の質問や仕事が増え、想定外のものが減るにつれ、
無駄に長い残業が減り、帰る時間が早くなるのではないかなと思います。

「隅々まで理解する」を頭のなかにいつも置いておきたいと思います。


ディスクが一個でも故障してると、ホットスペアを用いたリビルドが完了していたとしても、ストレージによるリモートレプリケーションに失敗するなんて、思いもしませんでした…。
今回対応した機種独特の仕様だと思いますが、
要は「故障Aの影響で、思わぬ障害Bが発生する」ってことですよね。

つまり、「思わぬ」と思っている自分の頭の想定範囲が狭すぎるということですね。
これを「思ってた」に変えれるように、日々勉強していきたいです。

インフラメンテナンス計画 と Vimがんばります

■ITインフラのメンテナンスについて 
最近の仕事の一つにITインフラのメンテナンス計画の策定みたいなことがあります。 いろんな事を考えてあげなくちゃいけないから大変です。
まぁ大変じゃない仕事なんてないでしょうけれども。

0から考える際の切り口としては…  ・いつ
 ・何を   ・誰が    ・どんな多重度で
 ・どんなマイナス影響があって
 ・どんな試験で確認して
 ・どんな環境で
 ・どんな期間で

などを考慮しながら計画をドンドンBreakdownしていきます。
ITインフラについて、どこまでだれが面倒を見るのかという考えについては、
できるだけ早く明確にしておいた方が良いのではないでしょうか。
「責任分界点」という言葉が使えると思うんですが、
どうも正直に言葉を習ったときの使い方のまま、

「障害発生時の責任追及試験紙」

のようにしか使われていない気がします。それって勿体無いような気がします。
予防保守においても、予防保守実施の責任分界点をきっちり決めて、
ここはアウトソース先にメンテナンスさせるのか、
それとも自社のエンジニアがやるのか、とか、
この機器はどれくらいの頻度でメンテナンスしてパッチを適用するのか、
一年に一回でいいのか、
それとも毎日丁寧に見て挙げなくちゃいけない箱入り娘なのか、
それとも障害がおこるまでほっとけばいい手間のかからない子なのか、
とか、
そういうところの議論は少し時間を取って行っても損にはならないのでないでしょうか。

当たり前といえば当たり前ですが、
運用保守の各業務の責任分界点を決めたいですね。
要は仕事を事前にきちんと細部まで考慮して
担当者をアサインしてましょうということですね。
基本こそきっちり忠実にこなす、私は苦手です…。


■Vimがんばります 会社でVimを使うようにしたいと思い、Vimを触り始めました。
iで挿入モードになったら普通のエディタとおんなじことできるとか、
その程度の知識しかない。なので勉強していかないと…。 教えてもらったのはざっとこんな感じ。
Ctrl + W + ?で画面(ウインドウ) をいろいろいじれる
・画面の分割
・画面を分割して空のファイルを開く

:edit ファイル名 でVim上からファイルを開く
:set number で行番号を表示
 →行番号は設定ファイルに書き込んでおいてあげて、
 …

[Powershell] 日付計算とか日付に関するあれこれ

いきなり仕事でPowerShellいじってと言われてちょっと困惑、
プログラム触れてちょっと嬉しいTearTheSkyです。
久しぶり過ぎて忘れまくっているんですが… どのプログラムでも必要になる、日付計算
まずPowerShellで日付を取得するのはget-dateコマンドです。 PS C:\Users\TearTheSky> Get-Date 2013年3月31日 11:41:11
こちらのサイトを参考にさせていただいたんですが、
PowerShell/Get-Dateで前日、翌日、前月、翌月などの日付を取得する方法

PowerShelだと日付型のオブジェクトに対して、
addDays
addMonths
addYears
といったプロパティが利用できるようです。

以下のようにすると、面倒くさい日付計算なしに、
1ヶ月前の日付を取得することが可能です。

PS C:\Users\TearTheSky> (Get-Date).addMonths(-1) 2013年2月28日 12:10:32

これはすごく便利ですね。

で、問題はここからで、


こーいう風に変数に入れたくなるじゃないですか。

PS C:\Users\TearTheSky> $lastmonth = (Get-Date).addMonths(-1)

そしたらこういう風に表示されますよね。

PS C:\Users\TearTheSky> $lastmonth 2013年2月28日 21:05:21
で、今のままだと$lastmonthはdate型だから、文字列型…stringにしたいと思うじゃないですか。
それでこうしてみたんです。


PS C:\Users\TearTheSky> [string]$lastmonth = (Get-Date).addMonths(-1) PS C:\Users\TearTheSky> $lastmonth 02/28/2013 21:05:46 PS C:\Users\TearTheSky>
!?

いや、アメリカ式表記にしなくていいから!

そこで思い返りました。
俺が欲しいのって、yyyymmdd形式の8桁の情報だよな…と言うことは
こうすれば…


PS C:\Users\TearTheSky> $lastmon…

[#CentOS][#Apache]Apacheにアクセスできない

Apacheが起動するようになったんだけど、なぜかクライアントからアクセスできない…。

ポートが開いているか確認

# netstat -ln | grep 80
tcp        0      0 :::80                       :::*                        LISTEN
unix  2      [ ACC ]     STREAM     LISTENING     8801   private/smtp
unix  2      [ ACC ]     STREAM     LISTENING     8805   private/relay
unix  2      [ ACC ]     STREAM     LISTENING     8809   public/showq

LISTENしてる。
状態確認してみても



$ /etc/init.d/httpd status
httpd は停止していますがサブシステムがロックされています


ん??
なにこれ。
ググってみると、80番が競合とかしてるんじゃないの?とのこと。

# /etc/init.d/httpd status
httpd (pid  1863) を実行中...

rootだと実行中になってるよね。


$ sudo /etc/init.d/httpd status
httpd (pid  3128) を実行中...

これは権限上そうなるというだけで、問題ないみたいだ…。


ググってみたところ、ロックファイルのせいかもしれないということで、ロックファイルを削除…


# rm /var/lock/subsys/httpd

結局原因はiptablesの設定不足でした。

iptablesについてはまた纏めて別記事にしよう。

[#CentOS][#Apache] CentOS6 でApacheが起動できない

CentOS 6 で httpd を起動させようとした時のこと

$ sudo /etc/init.d/httpd start
httpd を起動中: httpd: bad user name apache   [失敗]

なんじゃこりゃ。


■問題
Apacheが起動できない。問題はapacheユーザ


■原因
httpd.confには ユーザ:apache グループ:apache でhttpdを起動するようになっている。
ユーザとグループを確認してみよう…


$ cat /etc/passwd | grep apache
$


ユーザが居ない…


$ cat /etc/group | grep apache
apache:x:48:

グループはある。なんでこうなってんだ?


■対処
ユーザ「apache」を作ってグループ「apache」に入れてあげよう。


# useradd -g apache apache
useradd: /etc/passwd をロックできません。後でもう一度試してください。


は?(#゚Д゚)


# ll /etc/*.lock
-rw-------. 1 root root 5  2月 12 07:29 2013 /etc/passwd.lock
-rw-------. 1 root root 5  2月 12 07:29 2013 /etc/shadow.lock

これを消すか

# rm /etc/passwd.lock
rm: remove 通常ファイル `/etc/passwd.lock'? y
# rm /etc/shadow.lock
rm: remove 通常ファイル `/etc/shadow.lock'? y


これでもう一度apacheをuseraddして…あれ、もしかしてロックファイルがApahceをインストール剃る前からあって、もしかしてyumのインストールシーケンスの中でユーザ作成だけ失敗してたりしてるのかな?

ということでApacheをインストールし直す方向で。

# yum remove httpd
$ sudo yum install httpd httpd-devel mod_wsgi

Pythonの勉強したいからmod_wsgiも入れてます。
で、yum入りました。


Transaction Summary
=====================================…

情報処理技術者試験 データベーススペシャリスト 松岡修造で分かる2相コミット

こんにちは。データベーススペシャリスト試験に向けて
勉強を少しずつ開始しています。

仕事忙しくて今回も勉強時間確保できなくて落ちそう…
とか言ってるから落ちるんだよな。
頑張らないと。


さて、過去の自分のつぶやきをたどっていたら
データベースのコミット処理方式の2相コミットについて
こんなつぶやきをしていました。

どうやら2相コミットとは


松岡修造で分かる 2相コミット
— TearTheSky(てあざすかい) (@TearTheSky) March 29, 2010 サーバ「はい君たちデータベースの書き換えやるよー!準備できてますかー!できてるならCOMMIT送って!はい送って!駄目ならROLLBACK送ってね!ダメでも送ることが大事!」
— TearTheSky(てあざすかい) (@TearTheSky) March 29, 2010 サーバ「ハイAくんコミット!ハイBくんもコミット!Cさんもコミットきたよ!!あとDくんだよ!Dくん準備できてますかー!」
— TearTheSky(てあざすかい) (@TearTheSky) March 29, 2010 サーバ「Dくんロールバック!はいやめー!!みんなデータもどして!ロールバックロールバック!!みんなで進歩することが大事だからね!!ボクは一人もおいてかないよ!!」
— TearTheSky(てあざすかい) (@TearTheSky) March 29, 2010


ということらしい。
つまり、

みんなコミットを送ってきたら、改めて全DBにコミットを指示して全DBを更新させる。
— TearTheSky(てあざすかい) (@TearTheSky) March 29, 2010
全体一致でCommitしない限りロールバックっていうことですかねー。


理解した!!
— TearTheSky(てあざすかい) (@TearTheSky) March 29, 2010 おなかすいた
— TearTheSky(てあざすかい) (@TearTheSky) March 29, 2010
データベースはに限らないですけど、試験に出るIT要素は、ちゃんと環境を用意して触ってみないと何かよくわからないままフワフワした感覚で覚えちゃいますよね。で、すぐ忘れる。
こうやってつぶやいたらまとめる勉強法は有りかもしれませんね。
そして自分のつぶや…

CentOSにVMware Toolsをインストール

備忘録として。

現在はWindowsメインのお仕事環境かつ、知識レベルや知識範囲の偏差が
割りと大きい環境だったりするので、自分よりよくわかってないメンバーに教える
ことも想定して今後はメモして行きたい。


■ 前提
    ・ESXにCentOSの仮想マシンを作成済み
    ・vSphere ClientでそのCentOSにアクセスできる
    ・Tera TermとかのSSHクライアントで操作できるほうが便利


■やりかた
1.vShere Client でVMware Toolsをインストールしたい仮想マシンを選んだ状態で、
    [インベントリ]-[仮想マシン]-[ゲスト]-[VmwareToolsのインストール/アップグレード]
    をクリックし、Linux仮想マシン(今回はCentOS6でした)にマウントさせる。

2.  /mnt/cdrom が無ければ mkdir /mnt/cdrom してディレクトリを作成する。

3.  mount /dev/cdrom /mnt/cdrom を実行して自分で作ったディレクトリに
    /dev/cdromをマウントする。

4.  /mnt/cdromを見てみると
    「vmwawVMwareTools-9.0.0-782409.tar.gz」みたいなインストーラファイル
    があるのでテキトーな個人領域へコピーする。今回は/usr/local/srcにした。
    コマンド的には
    -----
    cd /mnt/cdrom
    cp VMwareTools-9.0.0-782409.tar.gz /usr/local/src
    cd /usr/local/src
    -----

5.  解凍。自分の解凍オプションは並びが変なのを自覚してるけど気にしないことにする。
    tar xvzf VMwareTools-9.0.0-782409.tar.gz

6.  解凍したインストーラのディレクトリに入ってインストール開始
    cd vmware-tools-distrib/
    perl vmware-install.pl
    Enter連打して「デフォルト設定で入れました」と報告。ログさえとっときゃたぶん問題ない。

7.  終わったらゴミ掃除してインストー…