forLifeMap

仕事、投資、技術メモ、オカルト、その他クソミソな趣味や日常についてあれこれ綴る、日記帳というより雑記帳。忘却の彼方に置き忘れた夢と情熱を求めて彷徨中。

日々旅にして旅を栖とす

朝から新幹線で移動中。久々の出張である。
かつての部門もお客様は東京の会社で、
異動してからも東京のお客様を相手に
することになるとは…南無南無。


うちの会社には、社内環境PCに社外から
リモート接続できるツールがあり、
業務内外かからわず仕事ができるような
社畜仕様の環境下にあった。こうして書くと
まぁまぁブラック臭が立ち込めていくが、
家で会社のPCに乗り込んで作業が出来る
環境は何かと便利だったので、それはそれで
やりやすい環境だった。
(本音を言うなら家で仕事していたいが、
 まぁ会社に行かなきゃ出来ない作業も
 あるワケで。ままならないものである)

そのため、以前は出張時はノートPCを携帯し、
新幹線での移動中もポチポチ作業していた。
僕のノートPCは東芝DynabookのR93/PBという
奴で、非常にバランスのいいスペックである。
以前の記事でも書いたが、僕の要望全てを
凝縮したような夢のスペックを誇るPCだ。

しかし、持ち運ぶとなるとやや重いしデカい。


うちに転がっている今は亡きIdeaPadちゃんの
ようなUMPCがサブ機としてほしいなぁと
思って価格.comをウロウロしていたら、GPD社の
「GPD Pocket」なる機種を発見した。

f:id:hNeumann:20171128092709j:plain

 
何これめっちゃ欲しい。

7インチディスプレイは若干小さい気も
するけど、抜群のポータビリティだ。
SDカードのスロットがないとか、
キーボードが独特過ぎてなんか怖いとか、
まぁ色々思う所はあるにしても無性に欲しい。
ブログを更新したり、移動中に作業したり、
少しAWSEvernoteDropboxを触りたい
時なんかは最適のガジェットではないか。

元々はクラウドファンディングから始まり、
今年の9月末から発売されたとか。最近やんけ。

うーん…
初期ロットは不具合が頻発するのが風物詩だし、
少し待てば廉価版や改良版や次期モデルが
登場するかもしれないし、今はまだ
人柱になる勇気が持てずにいる。
初物に期待してもロクなことがないしな…

GPD Pocket/ロット毎の違い - GPD Wiki


それにしても、本当にそそるガジェットだ。
何だかんだ買ってしまいそうな気がする…

暗号通貨と新しい朝

暗号通貨の高騰っぷりがすごい。

f:id:hNeumann:20171125085153j:plain

Cryptocurrency Market Capitalizations | CoinMarketCap


2017年8月のBitcoinCash分裂騒動、そして当月
2017年11月のBitcoinGold分裂騒動を受け、
何やら暗号通貨界隈が騒がしい。次は
BitcoinDiamondも出来るとかで、一体何が何やら…

取引所口座内でBitcoin保有していたら、
分裂のタイミングでCash・Goldが同額分
付与されていたらしいが、生憎僕は
持っていなかった。くそっ、悔しい。
僕はEthreum(イーサリウム)しか持ってない。

昨年時点では$20あたりをウロウロしていた
Ethreum(イーサリウム)が今や$470とは…


暗号通貨はなかなか複雑で、真に理解しようと
思うとそれなりに時間がかかるもので、
僕も中身をちゃんと理解しているわけではない。

Google先生に聞けば色々と日本語のサイトも
散見されるが、それぞれのサイト運営者が
ちゃんと理解しているかも怪しいものだ。
別に100%理解する必要はないにしても。


昨今の暗号通貨の高騰ぶりを見ると、
バブルの影を見ているような不安に駆られる。
これほどボラティリティの激しい投機対象も
ないだろうし、いつまでもこの高値が続くとも
思えない。いつかどこかで破綻しそうだ。

僕が暗号通貨バブルに乗っかることが出来たのは
ハッキリ言って運の賜物だ。半信半疑で出資した
10万ばかりのお金が、気付いたら1億近い数字に
なっていた。もうとっくに出資額以上のお金を
回収できているので、このバブルがいつ弾けても
僕は一向に構わない。所詮あぶく銭だし。

…でも、最近出資したICO案件のProteusionは
回収しておきたい。SNSって成功が難しいけど
万が一成功すればボロ儲けだし。次世代型SNS
「Wrappy」か、流行るといいけど…w


とりあえず、暗号通貨を早いとこ換金して、
ビジネスを始める軍資金にしたい。
税金の事もちょっと考えなきゃな…

そんな事をぼんやり考えている週末の朝餉。

今更ながらDOSバッチ

仕事上、コマンドプロンプトで実行される
バッチファイルを作成する機会が多いので、
備忘録がてらメモしてみる。

f:id:hNeumann:20171124222205j:plain


なお、当エントリーでは、コマンドをすべて
大文字で記載しているが、別に小文字でも
問題ないので、その辺はお気になさらず。

1.冒頭のおまじない

@ECHO OFF	… 実行中のコマンド非表示
SETLOCAL … 環境変数の操作のローカル化

無論、SETLOCALと対を為すENDLOCALという
コマンドもあるが、バッチ終了時に暗黙的に
自動実行されるため、基本的に書かなくてもいい。

2.コメント

REM コメント	… 正しいコメント方法
:コメント … ラベルをコメントとして使用

 なお、複数行をコメントアウトしたい場合、
GOTO文とラベルを使って対象を「GOTO :○○」
「:○○」で囲えば無理矢理実現できる。

3.システム日付・時刻

日付の場合は一発でYYYYMMDD形式で取得できる。

%DATE:/=%	… 「/」を除去した日付

なお、曜日を取得しようと思うと
それなりに作りこみが必要。

時刻の場合、一発でhhmmss形式で
取得することができない。そのため、
変数Tに欲しい形式で加工する。

SET T=%TIME:~0,8%	… %TIME%の先頭8文字取得
SET T=%T::=% … 「:」を除去
SET T=%T: =0% … 半角スペースを0埋め

これでTにhhmmss形式でシステム時刻が
セットされる(ミリ秒は除外している)。

4.実行ファイル

コマンドプロンプトで「CALL /?」と叩けば
詳細を教えてくれる。

%0     … フルパスのファイル名(""あり)
%~0 … フルパスのファイル名(""なし)
%~f0 … フルパスのファイル名
%~d0 … ドライブ文字
%~p0 … ドライブ文字以降のパス
%~n0 … ファイル名
%~x0 … ファイル拡張子
%~s0 … フルパスのファイル名(短縮あり)
%~a0 … ファイルの属性
%~t0 … ファイルのタイムスタンプ
%~z0 … ファイルのサイズ

%~dp0 … ファイル格納先のフルパス
%~nx0 … 拡張子つきのファイル名
%~ftza0 … DIRコマンド風の出力

なお、
「C:\Users\Public\Desktop\CommandPrompt_TEST\echo.bat」
上記内容を記述して出力した結果は
下記の通りである。

%0     "C:\Users\Public\Desktop\CommandPrompt_TEST\echo.bat"
%~0 C:\Users\Public\Desktop\CommandPrompt_TEST\echo.bat
%~f0 C:\Users\Public\Desktop\CommandPrompt_TEST\echo.bat
%~d0 C:%~p0 \Users\Public\Desktop\CommandPrompt_TEST\
%~n0 echo
%~x0 .bat
%~s0 C:\Users\Public\Desktop\COMMAN~1\echo.bat
%~a0 --a--------
%~t0 2017/11/24 20:40
%~z0 189

%~dp0 C:\Users\Public\Desktop\CommandPrompt_TEST\
%~nx0 echo.bat
%~ftza0 --a-------- 2017/11/24 20:40 189 C:\Users\Public\Desktop\CommandPrompt_TEST\echo.bat

 

5.引数

変数%0が自分自身を表す変数であったのに対し、
%1、%2、%3、…というのは、バッチ実行時に
渡された引数の内容を表す変数である。

test.bat "hoge.txt" 1

としてtest.bat実行時に引数が渡された場合、

ECHO %1  … "hoge.txt"
ECHO %2  … 1

が格納されることになる。
ちなみに、引数は%1~%9までの最大9個まで
しか渡すことができず、それ以上の引数を
渡したい場合は作りこみが必要。

7.DOS窓からの入力

SET /P 変数名="入力を促すメッセージ"

DOS窓からの入力を受け取ることが出来る。
よくあるパターンとして、

SET /P I="処理を実行します。よろしいですか?(Y/N): "
IF "%I%"=="Y" (GOTO MAIN)
IF "%I%"=="y" (GOTO MAIN)
EXIT
:MAIN
(以降、メイン処理を記述)

のように、処理実行前の確認用として
用いられることが多い。

8.リダイレクト出力

>   ファイル名  … 標準出力(新規)
>> ファイル名 … 標準出力(追記)
2> ファイル名 標準エラー出力(新規)
2>> ファイル名 標準エラー出力(追記)
> NUL 2>&1 … NULL破棄

(おまけ)
ECHO. … 空行の出力

最後の空行出力は、リダイレクトと直接関係は
ないような気がするけど、まぁよく使う
コマンドなので、とりあえずここに記載。

9.デバッグ確認

処理の中で不具合が検出された場合、

ECHO %変数名%  … 変数のウォッチ
PAUSE          … 処理の一時停止(ブレーク)

を駆使すれば、変数の中身の変遷を
追いかけることが出来る。

 10.サブルーチン定義

バッチには関数が定義できない。そのため、
ラベルを用いてサブルーチンを定義する
手法がよく用いられる。以下、例を挙げる。

@ECHO OFF
SETLOCAL

CALL :SUB1 %~dp0
ECHO %ERRORLEVEL%

CALL :SUB2 "fuga.txt"
ECHO %ERRORLEVEL%

ECHO.
PAUSE
EXIT

:SUB1
IF "%~d1"=="C:" EXIT /B 0
IF "%~d1"=="D:" EXIT /B 1

:SUB2
IF EXIST %1 EXIT /B 0
IF NOT EXIST %1 EXIT /B 1

簡単に説明しておくと、まずSUB1をCALL
する際に引数%~dp0を渡している。
これは、バッチを実行しているファイルの
ドライブ文字で、SUB1でドライブ文字の
判定を行っている。ドライブが「C:」であれば
0を、「D:」であれば1をエラー用変数に返す。

その後、SUB2をCALLして引数"fuga.txt"を渡す。
SUB2では"fuga.txt"がバッチが格納されている
フォルダに存在するか判定しており、ファイルが
あれば0を、なければ1をエラー用変数に返す。
なお、実行結果はこうなった。

0  … ドライブは「C:」
1  … "fuga.txt"は存在しない

続行するには何かキーを押してください . . .

ラベルを用いた場合、メイン処理の末尾に
「EXIT」コマンドを入れておかないと、ラベルに
記述した処理がすべて実行されてしまう。
また、サブルーチンの終了時は「EXIT /B」に
しないとサブルーチンどころかバッチそのものが
終了してしまうため注意が必要である。

おわりに 

さて、思ったより長くなってしまった。
IFやFORの構文も書こうと思ったけど力尽きた。
どうせHELPコマンド叩けばすぐに分かるし…
まぁ、気が向いた時に更新しようと思う。

しかし、Windowsスクリプト言語と言えば
Powershellがもう少しメジャーに扱われても
いいような気がするが、現場レベルで言うと
やはりまだまだDOSバッチやVBscriptが幅を
利かせているのが現状ではなかろうか。

バッチ作成は普通にテキストエディタ使えば
問題なく作成できるが、VisualBatなる
IDEも存在するので、気になる方は
使用されてみては如何だろう。

では、これにて失礼。

「会社を辞めたい」と感じたら

今日は飛び石連休中日の平日という事で、
会社からお休みをいただいたので、
ありがたいことに4連休になった。
前の部門では考えられない事である。

「転職」でもなく「独立」でもなく
「異動」という選択肢を選んで正解だった。


僕の本業がSE(システムエンジニア)なので
本業ベースの話になってしまうが、
「今の会社を退職したい」と感じたときに
取れる行動の選択肢を考えてみる。

f:id:hNeumann:20171124163112j:plain

1.転職

まず思いつく選択肢はこれだろう。
僕自身、転職経験がないので多くは語れないが、
最近は転職エージェントの質も高く、
その人のスキルに応じた適切な転職先を
斡旋したり、必要に応じてトレーニングを
やってくれるところもあるらしい。

転職を乱暴にパターニングすると、
 ① 大企業  → 大企業
 ② 大企業  → 中小企業
 ③ 中小企業 → 大企業
 ④ 中小企業 → 中小企業
ってなところだろうか。

「もっと自分の能力に見合った報酬が欲しい!」
「大企業でスケールの大きな仕事がしたい!」
といった、1つ上のステージを目指す上昇志向
バリバリの人たちは①・③のパターンだろう。
僕にはまったく理解できないけど。

「地元の小さな会社でのんびり働きたい!」
「スピード感のあるベンチャー企業で働きたい!」
なんて人は②のパターンだったりするんだろうか。
大企業と比較すると待遇や福利厚生が弱かったり
しそうだが、これはこれでアリだと思う。

④のパターンについては、少なくとも
待遇面では大きくは変わらないと思う。

中小企業は大企業と比べると体力的にか弱く、
景気の煽りを受ければすぐに待遇悪化や
倒産の可能性に見舞われそうだが、
しかしそれは大企業とて同じことである。
結局、どの企業に行っても戦える、
地に足付けた地力が必要なワケで。


また、SEの場合で言うと
 ・同業他社への転職
 ・ユーザ企業(顧客起業)への転職
 ・異業種への転職
が考えられる。

同業他社であればやることはほとんど
変わらないので特に面白くもなさそうだが、
慣れた業務なので比較的安牌と言える。

「大半のSEはユーザ企業への転職を夢見ている」
とはよしたにまこと先生の談だが、実際そういう
SEは多いと思う。ユーザ企業のシステム部門で
働くのか、社内SEとして働くのか、それとも
システム開発とは無縁の世界に身を置くのか。
そこも熟慮の余地がある。

2.独立

独立と言っても、パターンとしては
 ① フリーランスとして独立
 ② 起業
が考えられる。

①のフリーランスについて言えば、
報酬面の話だけ聞くと魅力的に感じられる。

従業員の場合で言えば、自分が所属するA社は
顧客であるB社から、自分の1ヶ月分の労働力を
「月単価80万円」として受領していたとする。
しかし自分の手元に行くのは給与である
「月20万円」。残りの60万円はどこへ消えたかと
言うと、A社の利益として内部留保されたり
間接費用として使用されたりするわけである。
これがフリーランスの場合、B社と自分が直接
契約を取り交わせば80万円丸々が懐に入る。
社会保険や税金を支払うのはどちらも同じ)

しかし、フリーランスもいい事ばかりではない。
有名な話だが、フリーランスには
「健康」「生活」「孤独」という
3つのリスクが基本的には付き纏う。
フリーランスは健康観が低く不摂生で、信用力も
低いから生活基盤も不安定になりがちで、何より
組織への帰属がない不安と孤独に苛まれる。
(すべてのフリーランスがそうではないけど)

また、フリーランスは分類上「個人事業主」に
なる。何か特別なパイプがない限り、高単価を
支払ってくれる大企業が「個人事業主」と
直接契約を結んでくれるかはかなり怪しい。
少なくとも僕は仕事上、フリーランスのSEには
一度もお目にかかったことはない。


②の起業についても、規模をどこまで大きく
したいかによって話は変わってくる。

事業を起こし、小綺麗なオフィスを借りて、
人を雇って、ゆくゆくは事業拡大を目論んで
いるようであれば、それ相応のイバラの道を
歩む覚悟を持たなければならない。

僕も何人か本物の起業家たちを見てきたが、彼らは
「ぶったまげるくらいスピーディーな行動力」
「周囲を巻き込んで進んでいくエネルギー」

「この人なら大丈夫と思わせるカリスマ性」
がとにかく凄い(言葉では言い表しにくいが)。
「環境を変えたい」とか「収入をあげたい」とか
もはやそういったチンケな願望ではなく、何か
事を成そうという強い意志で動いている人たち
である場合が多く、あまり参考にならない。

従業員は自分一人、オフィスは自宅、という
レベルの小規模起業を検討するのであれば、
フリーランスとまぁ似たような感じだ。
営業も経理も開発もすべて一人でこなす
というのは並大抵の事ではないと思うが。
僕も早く起業したい。

3.異動

ある程度以上の規模の会社であれば、
異動は十分魅力的な選択肢と言える。
待遇や福利厚生を下げることなく、
環境を変えることが出来るからである。

憶えておくべきは、「自分が今いる部署が
自分の会社の全てではない」ということだ。

人事・経理・総務などのバックオフィス、
あるいは研究色の強いR&Dの部署、
今の部署とは異なる開発部や営業部なんかも
選択肢として十分挙げられる。

異動方法をパターニングすると、
 ① 異動願の提出
 ② 社内公募への応募
 ③ ヘルプラインに相談
あたりが妥当な線だろう。

①の異動願については正攻法だが、よっぽどの
理由がない限り受理される事は難しい。
(まぁたぶん会社にもよるだろうけど)
「仕事を辞めたい」というのが前提なので、
退職をチラつかせて突きつけることが大事。
それで慰留されれば話くらい聞いてもらえる
だろうし、慰留されなければ黙って去るのみだ。

②の社内公募はかなりオススメの方法である。
僕もこの方法で異動を実現できた。
ただ、こういった人事制度が整っていることが
前提なので、制度がない場合は別の選択肢を
取らざるを得ない。また、社内公募は人間関係に
軋轢を生じさせる可能性が非常に高い制度なので、
円満な異動を心がける必要がある。

③のヘルプラインというのは、他に打つ手がない
場合のみに講じるべき最終手段である。
要するに「今の部門の状況・待遇が酷すぎる」
という内部通報に他ならないので、現在の
上司の人事査定にダメージを与えかねない。
(報復を望むならそれも一興だが…)
後はまぁ、パワハラ・セクハラ等の悪質な
事案の場合はこちらを適用するのも手かも。
その場合は厳罰に処してやってほしい。

ここで、どういった部署に異動したいかも
当然検討しておくべき。同じ業務内容の
部署で働くもよし、まったく違う畑の仕事を
するもよし、閑職で仮面社畜するもよしw
どう働きたいかをしっかり検討する。

4.休職

仕事がどうしてもツラくなった場合、
休職というのも一つの手だと認識しておく。
仕事なんてのは、何も体や心を壊してまで
続けるべきものでもないのだ。しかるべき
手続きを会社に申請し、療養して自分を
見つめ直すというのもアリではなかろうか。

休職のメリットは、
 ・心身ともにリフレッシュ
 ・傷病手当金ウマー
デメリットは、
 ・評価が下がって閑職行きかも
 ・何度もやると免職される
って感じかな。
まぁ、死んで花実が咲くわけではないので、
冷静なうちに休職を視野に入れておこう。


さて、つらつらと書いた。
「会社を辞めたい」「仕事を変えたい」
と考えている人の一助になれば。

死への呼び水

子どもが生まれてからというもの、
すっかり病院通いの日々が続いている。
今日も今日とて足繁く通った。嫁の顔と
可愛い我が子の顔を見るためである。

問題になってくるのがタバコだ。

f:id:hNeumann:20171118194106j:plain


産婦人科の入り口前に灰皿があるので
「なんだかあなぁ」と思いつつ、
喫煙者である僕にとってありがたかった。
しかし流石に病院前でタバコを吸うのは
顰蹙を買うので、近くのコンビニまで
わざわざ行って吸っていたのだが、
子どもが生まれたとなると考えが変わる。

最近では「三次喫煙」とかいう言葉まであり、
我が子を喫煙の脅威に晒すのは憚られる。


僕は去年、フィリップモリス製の電子タバコ
「IQOS(アイコス)」を手にし、しばらくの間は
次世代タバコの水蒸気をくゆらせながらいい気に
なっていた。普通のタバコを吸っている上司に
「まだ燃えるタバコ吸ってるんスか?www」
と嘯いては無駄に怒りを買っていたものだ。

しばらくIQOSを吸っていた僕だが、ふとした
時に、あの旧式タバコの、何とも言えない
いがらっぽさ、紙が燃える雑味が欲しくなり、
結局は燃える旧式タバコに立ち返ってしまった。
あの時の上司。馬鹿にしてごめん。


子どもが生まれたいい機会なので、
とりあえず久々にIQOS吸おうかな。
なんか新しい味も出てるし。
(スムースレギュラーとパープルメンソール)
これで気兼ねなく我が子を抱ける!と
思っていた矢先、下記の記事を見つけてしまった。


なんということでしょう。
これが事実なら「有害成分90%カット☆」という
触れ込みが危ぶまれる、致命的な問題である。
「禁煙先進国であるシンガポール」とか言ってる
時点でこの記事も若干嘘くさい気がするけど。
あそこは法律は厳しいけど皆パカパカ吸ってるし。

うーん、プルームテックもgloも一緒だろうなぁ。
おとなしく薬局でニコレットでも買うか…

そして父になる

本日2017年11月16日(木)、22時05分、
待望の第一子が生まれました。
体重2729gの玉のような女の子でした。
(血液型はまだ不明。たぶんB型。)

f:id:hNeumann:20171117194605j:plain


予定日は21日だったので、若干のフライング。
嫁が妊娠して39週2日のことでした。
初産だったこともあり、本陣痛が夜に来てから
およそ27時間。嫁は本当によく頑張ってくれた。


今回お世話になった産婦人科は無痛分娩で
結構有名なところだったので、うちの嫁も
無痛分娩でお願いしていた。

無痛分娩でも麻酔が効いたり効かなかったりして、
嫁は結構長い時間苦しんでいた。無痛分娩の
場合は痛みが少ない分、長期戦を強いられる
場合が多いらしい。ただ、うちの嫁はまだ
マシな方で、隣の部屋の方は陣痛が来てから
3日も苦しんでいて大変そうだった。
(お隣さんも同日無事に出産されていた)


しかし、出産直後の安心感と来たら
何物にも代えがたい。僕も嫁両親も
昨晩からほとんど寝ずの番だったので
疲労困憊だったが、可愛い子どもの顔を
見ると本当に一気に疲労が吹き飛んだ。
赤ん坊の力、恐るべし…

僕の家族も嫁家族も、本当に心から
喜んでくれて良かった。僕も、
母子ともに健康無事で本当に嬉しい。

家族が増え、これからはより一層お金を
稼がなければならない。頑張ろう。

最後に。

夜中に何度も車を走らせてくれた義父、
甲斐甲斐しく嫁を支え続けてくれた義母、
LINEで冷静なアドバイスをくれた実母、
急な休みだったのに配慮してくれた会社、
頼りがいのある産婦人科の関係者の皆様、
それから、本当に頑張ってくれた最愛の嫁。
本当にすべての方々に感謝感謝です。

よーし、さてさて。
久々の独身生活を謳歌しようかね。

AWS・Bitnamiの無料枠AMI

今月に入ってからずっとAWSに傾倒している。
特に、BitnamiのAMI(仮想マシンイメージ)
には割とガチで感動した(前回エントリー)。
驚くほど速くサービスを利用できるようになる。

f:id:hNeumann:20171111232527j:plain


少し興味が湧いたので、BitnamiのAMIのうち
無料枠対象のものについて色々と調べてみた。
なお、無料枠と言っても、あくまでアカウント
登録から12ヶ月間のみなので注意されたし。
(2017年11月調べ)

1.プラットフォーム系

1-1.WordPress(ワードプレス)

AWS Marketplace: WordPress Certified by Bitnami

言わずと知れたブログ・CMSのプラットフォーム。
テーマやプラグインも豊富で、ハッキリ言って
これだけで何でもできそうな気がする。

1-2.MediaWiki(メディアウィキ)

AWS Marketplace: MediaWiki Certified by Bitnami (PV)

OSSWikiパッケージ。元々はWikipedia
作成するために開発されたらしいので、
Wikipediaっぽいトピック編集サイト向け。

1-3.Magento(マジェント)

AWS Marketplace: Magento Certified by Bitnami

EC(ネット商取引)サイトのプラットフォーム。
集客機能や接客機能も備えており、
多言語・多通貨にも対応している。

1-4.Discourse(ディスコース)

AWS Marketplace: Discourse powered by Bitnami (PV)

OSSのコミュニティプラットフォーム。
掲示板、グループトーク、チャット等に対応。
フォーラム系サイトを作成したければどうぞ。

2.マネジメント系

2-1.Odoo(オドゥー)

AWS Marketplace: Odoo Certified by Bitnami (PV)

世界的人気を誇るOSSERPスイート。
ありとあらゆる業務管理や社内統制支援まで
可能にした、ERPの域を超えたパッケージ。

2-2.Liferay(ライフレイ)

AWS Marketplace: Liferay powered by Bitnami (PV)

OSSで世界市場シェア1位の実績がある
ポータルサイトのプラットフォーム。
企業の社内ポータルなどに向いている。

2-3.Mautic(マウティック)

AWS Marketplace: Mautic powered by Bitnami

世界初のOSSマーケティングオートメーション
プラットフォーム。リード(見込み客の)の
獲得や管理を支援してくれるらしい。

2-4.Moodle(ムードル)

AWS Marketplace: Moodle Certified by Bitnami

eラーニング(Webによるオンライン教育)の
プラットフォーム。受験者に対してテストや
教材配布を行ったり、受講者の管理もできる。

3.デベロッパー系

3-1.Redmine(レッドマイン)

AWS Marketplace: Redmine Certified by Bitnami

世界的に有名なプロジェクト管理ツール。
タスク管理や進捗管理などをメンバーで
共有できる。アジャイル開発との相性は抜群。

3-2.Gitlab(ギットラボ)

AWS Marketplace: GitLab CE Certified by Bitnami (PV)

ソースのバージョン管理として有名なGithub
クローズド環境版(Githubの場合は有償)。
(ちなみに、GitbucketやSubversionのAMIもある)

3-3.Jenkins(ジェンキンス)

AWS Marketplace: Jenkins Certified by Bitnami

物凄くメジャーなCI(継続的インテグレーション
ツール。ビルド・テスト・デプロイなどの
開発工程の作業の自動化を図ってくれる。

3-4.Let'sChat(レッツチャット)

AWS Marketplace: Let's chat powered by Bitnami

SlackやRocketChatのようなチャットツール。
デスクトップ通知機能もあり、Hubotにも
対応しているのでツールとしては十分実用可。


疲れてきたので、とりあえず今日はこの辺で。
しかし、一つ一つインスタンスを作ってたら
ソッコーで無料枠を使い切りそうなので、
結局は自前で一つのサーバに構築した方が
費用対効果は高いかもしれない。
(Dockerとか使って)

Bitnamiには他にも様々なパッケージAMIが
存在するので、興味がある方はご自身の目で
どうかご確認をおねしゃす。
(無論、使用はすべて自己責任でよろしく)

AWS Marketplace: Bitnami

Bitnami Application Catalog


ぼちぼちAWSネタから卒業しようかねぇ。

AWSでWordPress構築(Bitnami)

部署が異動になってからはずっとAWS関連の
仕事に携わることが出来ている。とても嬉しい。

以前はローカルのVirtualBox
VagrantWordPressを構築した際の
備忘録エントリーをアップしたが、
今回は勉強がてらAWSの環境に
WordPressを構築してみた。
なんかWordPressばっかりだな、最近。

0.構築の前提

【アカウント】
AWSサポートプラン:ベーシック(無料枠)

インスタンス
AMI:WordPress Certified by Bitnami(無料枠)
インスタンスタイプ:t2.micro(無料枠)
EBS:汎用SSD(GP2) 10GiB(無料枠)

【セキュリティグループ】
SSH(22)…マイIPのみ
HTTP(80)…任意の場所
HTTPS(443)…任意の場所

1.インスタンスの作成

AWSのコンソールから
「サービス」→「EC2」
を選択し、EC2ダッシュボードへ移動する。
上記の前提通りにインスタンスを作成。
(AMI選定時は「AWS MarketPlace」から)

作成時には「キーペア」も一緒に作成され、
SSH接続の際に必要となるので厳重に保管する。

2.グローバルIPアドレスの付与*1

EC2ダッシュボードの下の方に
「Elastic IP」
とやらがあるので選択。
「新しいアドレスの割り当て」
を選んで進んでいくと、
グローバルIPが付与される。

その際、インスタンス作成時に
付与されていたパブリックIPは
削除される。

AWSの世界には3種類のIPアドレス
存在し、「Elastic IP」が通常は
グローバルIPとして使用される。

IPアドレス 概要
Private IP インターネットから到達できない。
VPC内での通信に使用できる。
Public IP インターネットから到達できる。
インスタンス起動のたびに変更される。
Elastic IP インターネットから到達できる。
インスタンスを起動してもずっと固定。

 
ちなみに今回はやってないけど、AWS
「Route53」というDNSサービスを使えば
ドメインの設定もできる。


3.WordPressへログイン&日本語化

この時点で、URLに「http://<Elastic IP>」を
叩けばWordPressの画面にたどり着ける。

f:id:hNeumann:20171111002803j:plain

早い。早すぎる。慣れてる人なら
数分でWordPress環境を構築できる。
自前でチビチビ入れて5時間かかったのに…

デフォルト設定が英語なので、まずは
管理者権限でログインして日本語化する。
サイドバーの下の方に「Log in」という
リンクを踏むとログイン画面に遷移する。

その際にパスワードが必要になるのだが、
AWSWordPress導入チュートリアル
従うと下記の方法により取得する。

  1. EC2ダッシュボードで、作成した
    WordPressインスタンスを選択。
  2. 「アクション」→「インスタンスの設定」
    →「システムログの取得」を選択。
  3. システムログウィンドウが表示されるので
    その中から見つけてね。
    "#"(ハッシュ)マークで囲まれてるよ。

…確かにあった。

f:id:hNeumann:20171111004009j:plain

よって、WordPressには下記でログインする。

Username:user
Password:############

無事にログインが出来たら、
「Settings」→「Site Language」
で日本語を選択。これで日本語化完了。

4.phpMyAdminの有効化
 (と、Bitnamiロゴの非表示化)

ご存じの通り、WordPress
PHPMySQL(またはMariaDB)で
稼働している。基本的には管理画面から
様々な設定を施すことが出来るので
あまりDBを気にすることはないが、
時にはDBを直接閲覧・編集をしたくなる
シーンも想定される。
そのため、Web画面からphpMyAdmin
アクセスできるように設定する。
(ついでに鬱陶しいロゴも非表示にする)

「1.インスタンスの作成」で作成した
キーペア(秘密鍵)を用いてSSH接続する。
ちなみに「WordPress Certified by Bitnami」は
OSが「Ubuntu 14.04」なので、ユーザーは

ubuntu

である(鍵認証なのでパスワード不要)。
phpMyAdminのアクセス制御ファイルである
「/home/bitnami/apps/phpmyadmin/conf/httpd-app.conf」
について、下記の箇所を修正する。

<IfVersion < 2.3 >
Order allow,deny
# Allow from 127.0.0.1
Allow from <自分のPCのIPアドレス>
Satisfy all
</IfVersion>
<IfVersion >= 2.3>
# Require local
Require all granted
</IfVersion>

Bitnamiのロゴを非表示にするには
下記コマンドを実行する。

sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1

最期に、Apacheを再起動する。

sudo /opt/bitnami/ctlscript.sh restart apache

 これで「http://<Elastic IP>/phpmyadmin」へ
アクセスができるようになる。
DBAユーザー名およびパスワードは

/home/bitnami/apps/wordpress/htdocs/wp-config.php

 に記載されている。

5.WordPressのカスタマイズ

あとは、管理画面からWordPress
自分好みにカスタマイズするだけである。

正直、WordPress環境をこんなにあっさり
構築できるとは思っていなかった。
最近はレンタルサーバーVPSでも
WordPressの導入支援機能があるみたいなので、
いずれにしても自分で一からインストールするより
遥かにラクにできるようである。
(当然その分自由度は下がると思うけど)

AWSではRDSというDB管理サービスがあり、
本格的なサイトを構築しようと思うと
このサービスを利用してアプリケーション
サーバとDBサーバを分離した方がいいらしい
けど、今回はお試しなので特に実施予定なし。


AWSでは、いとも簡単にサーバを
作ったり潰したりできるのが素晴らしい。
DR対策もバッチリだし、セキュアだし。
しかしやはり、コスト面は非常に心配。
無料期間が過ぎたら検討の余地アリですな。

流行りモンのLambdaも気が向いたら
触ってみようかね。


~参考にさせていただいたサイト~

*1:グローバルIP(Elastic IP)は$0.01/hで課金されます

ROBOCOPYの堕とし穴

ROBOCOPYの設定値で思いのほか
苦労してしまったので、備忘録メモ。

やりたいこと

簡単のため「Terapad」を例に出すと、

History.txt
Keys.txt
Readme.txt
TeraPad.exe
usr.txt

 という5つのファイルが

C:\test\Terapad

というフォルダに入っており、
この「Terapad」フォルダごと

D:\Terapad

として、ROBOCOPYでコピーしたい。

ハマったこと

通常、ROBOCOPYのコマンドは

ROBOCOPY <src> <dest> [<file> <options>]

という指定をする。
上記の「やりたいこと」を実現しようとすると、

ROBOCOPY "C:\test\Terapad" "D:"

でいいのかな、と安易に考えていた。
それが大いなる勘違いだった。

上記のコマンドを実行すると、
Dドライブ直下に

History.txt
Keys.txt
Readme.txt
TeraPad.exe
usr.txt

がブチ撒けられてしまう。

f:id:hNeumann:20171110010233j:plain


確かに、よくよくROBOCOPYの仕様を
読んでみると、まぁ確かにそうなんだけど。
でもこんな形のコピーは全く望んでいない。

力技で解決

ウンウンと色々悩んだ末に、力技で解決。
諸事情によりPowershellでゴリゴリ記述。

# コピー元のフルパス
$srcpath = "C:\test\Terapad"
# コピー先のフルパス
$dstroot = "D:\"

# オブジェクト種別によってコピーオプション変更
# $srcpathがフォルダかファイルか判定する
$isDir = Get-Item $srcpath | Where-Object{$_.PSIsContainer}

# フォルダの場合
if($isDir){

# 「Terapad」のフォルダ名を取得
$dirname = [System.IO.Path]::GetFileName($srcpath)

# 出力先に「Terapad」フォルダ名を作成
$dstpath = $dstroot + $dirname
New-Item $dstpath -itemType Directory > $null

# 遠慮なくROBOCOPYでブチ撒ける
ROBOCOPY $srcpath $dstpath /E > $null

# ファイルの場合
}else{

# コピー元のファイル名を取得
$filename = [System.IO.Path]::GetFileName($srcpath)

# コピー元の親フォルダを取得
$srcpath = Split-Path $srcpath -parent

# 対象ファイルをブチ撒ける
ROBOCOPY $srcpath $dstroot $filename > $null
}

 なお、上記ソースは、コピー元のパスが
ファイルの場合もフォルダの場合も対応している。

うーん。
もっとスマートなやり方が
あるのだろうか…

よっこいしょういち

どうでもいいけど、はてなのテーマを変更した。
スマホだと分からないけど)
以前使用していたテーマでは、「記事一覧」を
表示したときにレイアウト崩れが起こっていて
しゃーなしでの変更。本当にどうでもいい。


最近部署を異動してからというものの、
毎日のように定時に帰ることが出来て
いささか戸惑っている。今の時期が夏なら
明るい空を見上げて涙していたに違いない。

大御所ブロガーであるフミコフミオ先生も
最近再就職に成功し、以前のブラック体質の
企業とのあまりのギャップに当惑されている
ことをブログに綴られている。


記事の中では

戦地から戻ってきた帰還兵がキツイ体験の
フラッシュバックなど後遺症に悩まされ、
普通の生活に戻れないという話を聞くが、
僕もブラックな環境から普通の環境への
順応に苦戦しているのかもしれない。

と言ったことを書かれているが、
僕も気持ちが分かるようになった。
僕の場合は再就職ではなく社内の異動だが、
まったく違う環境でまったく違う人達と
仕事をするという意味ではまったく一緒だ。

手厚いフォロー、ゆとりのあるスケジュール、
先進的な開発環境、技術教育にかける情熱、
何より、僕の周囲を取り囲む、あの
何とも言えないゆる~~~い空気感。
にも関わらず、その中の人たちは
とてつもなく優秀な人たちだった
もはや同じ会社とは思えない。

まだまだ新しい部署に慣れない部分も多いが、
徐々に順応していける見立てはある。
そして、今回の異動について言えば、
この先何があったとしても、
きっと後悔することはないだろう。


…と異動した最初の方は思っていたが、
僕が入るのと同時に、部署の重役たちが
他部署へ次から次へと異動し、気付けば
新部署の体制はスカスカになっていた。
えっ嘘でしょ。

今のところ、この部署の今後については
なんとかなるだろうと楽観視しているが…

はぁ。
本当に大丈夫なんかいね。

f:id:hNeumann:20171106220048j:plain

横井庄一さんも戦争神経症だったのでしょうか…)