きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

フリーランスになった

そういえば今まで退職エントリ的なのは書いてなかったし今回も特にどちらでもよかったのですが、会社員生活に終止符を打つことになったので取り合えず日記として書いておくことにしました(所詮は個人の日記ですし)。

 

 

ということで……。 3年半ほどお世話になった職場、株式会社リゾームを3月末日付で退職し、4月からはフリーランスのエンジニアをメインとしてやっていくことになりました。 退職の理由は完全に私の個人的な家庭の事情であり快く送り出してくださった社長をはじめ同僚各位には感謝しきりです。

 

思い起こすとリゾームに転職したのは、特に転職先のあてもない状態でその前の職場をやめる決断をしたちょうどそのタイミングで、絶妙な縁があってことでした*1。ある意味タスクフォース的なプロジェクトのための入社的な部分も少なくなかったので、チームメンバに多大な迷惑をいろいろとおかけしつつも担当していたプロダクトが何とか形を成しまた会社の売り上げに貢献するのに微力ながら力添えができた点については最低限役割は果たせたと思っていいのかなと思ったりしています(が、チームメンバには本当に頭が上がりません本当に)。

 

大学出て就職してから18年ほどの間、システムの設計・開発・保守という似たようなことをメーカー系SIer → ユーザー企業社内SE → 独立系パッケージベンダーとそれぞれ違う立場でやりながら生きてきたわけですが、特にこのタイミングで自社プロダクトを持つパッケージベンダで新商品の開発に一からアーキテクトとしての立場で関われたのは非常に、非常にありがたい経験でした。

 

 

今後はこれまでの経験を生かしつつフリーランスのエンジニアとしてやっていきながら、家庭の事情的な部分である家業的なところやそのほか興味のある分野などに対してワークライフバランス的なところも含めて探りながらやっていこうと思っています。

 

 

少し話は変わって……。

株式会社リゾームですが、現在、社員を募集しています。

株式会社 リゾームの採用/求人 | 転職サイトGreen(グリーン)

リゾームという会社ですが、(今回は私の事情とは最終的にマッチしなかったものの)社員の事情等に合わせた柔軟な働き方を社員と一緒に模索し実行に移していく素敵な会社です*2

例えば、私の(元)同僚が今年から男性として初めて育休を取得しています。 patorash.hatenablog.com

もし、現在転職を考えておられる方がいれば、ぜひ先ほどの求人と会社紹介 を見てもらえると幸いです。

 

 

最後に。 関係各位におかれましては今後ともいろいろとお世話になったりご迷惑おかけしたりすることともいますが、なにとぞよろしくお願いいたしますm(__)m

*1:あの時、広島の某勉強会に参加してなかったらご縁がなかったかもしれない

*2:建前などはともかく実際に制度化して実行していける会社は特にこの規模では現時点ではそう多くないと思ってます

岡山の「かつラーメン」を少し紹介してみる

このエントリは大都会岡山 Advent Calendar 2017の2日目のエントリです。

adventar.org

かつラーメンって知ってるかい?

岡山のラーメン屋さんだと、数店に一店くらいの割合でメニューに「かつラーメン」「とんかつラーメン」があるお店にあたったりします(正確な割合は知らない)。自分の感覚的には他の都道府県よりは高い割合なんじゃないかなと思います。

ということで、なんとなく岡山ご当地グルメっぽい気がするので由来だのなんだのという御託はめんどくさいのでパスしつつ今年食べたかつラーメンの写真を一気に並べてみることにしました。

なおこれはお勧めランキングとかそういうものでは一切なくて、単純に今年食べたときに取った写真を並べただけのものです。順不同です。またあえてかつラーメン食べようとしてお店行ったというよりは普段の生活の生でたまたま寄ったときに食べただけ、という感じでお店自体も生活圏に偏ってます(プロットするとたぶん岡山市南東部がおおいんじゃないかな多分)。

 

前置きはこれくらいにして、行ってみましょう。

 

俺のラーメン画像フォルダが火を吹くぜ!

 

 

1.中華そば専門店 広松 南輝店 【中華そば・トンカツ入り】

f:id:kiyokura:20171202212405j:plain
中華そば専門店 広松 南輝店 【中華そば・トンカツ入り】

岡山で一大派閥(?)を形成しているいわゆる『松系ラーメン』の一点、広松さんの南輝店。 家がそこそこ近いというか前の職場とか生活圏もであったりしてちょいちょい行くお店です。松系の中では個人的に一番好きかも。

参考:https://tabelog.com/okayama/A3301/A330101/33009325/

 

2.名代中華そば 山金 岡山店 【カツラーメン】

f:id:kiyokura:20171202212406j:plain
名代中華そば 山金 岡山店 【カツラーメン】

新見に本店のある山金さんの岡山店。隣にアパートが建った絡み……かどうかは知りませんが、北側の駐車場が整備されて車の出入りがしやすくなった感があります。 前職の時は本社が新見だった絡みもあって新見本店もちょいちょい言ってたのですが最近はご無沙汰です。久しぶりにいきたいのう。

参考:https://tabelog.com/okayama/A3301/A330101/33000446/

 

3.レストラン サントピア 岡山ふれあいセンター店 【かつラーメン】

f:id:kiyokura:20171202212407j:plain
レストラン サントピア 岡山ふれあいセンター店 【かつラーメン】

ラーメン屋さんじゃなくて、複合施設に入ってる軽食コーナーです。じつはかつラーメンって、ぶっちゃけラーメンにとんかつ載せただけなので、メニューに「ラーメン」と「とんかつ」や「かつどん」があるような食堂だと割と追加コスト無しでメニューに追加できてしまうという事実があり、ここなんかはまさにそれで出してるっぽい気がします*1

参考:https://tabelog.com/okayama/A3301/A330101/33009082/

 

4.イレブン 【カツラーメン】

f:id:kiyokura:20171202212408j:plain
イレブン 【カツラーメン】

わりと最近できた(といっても去年か一昨年)お店です。もともとは中山道あたりで喫茶店としてやられてたとか。定食のメニューの豊富なのとかなり近所なので比較的ちょくちょくお邪魔するお店だったり。

参考:https://tabelog.com/okayama/A3301/A330101/33012898/

 

5.だてそば 【かつそば】

f:id:kiyokura:20171202212409j:plain
だてそば 【かつそば】

有名店・老舗のだて。ガイドとかにも載ってるので昼時なんかはいつも列ができてる印象です。久しぶりにここのかつラーメン食べたんですが、個人的にはここのかつはかつ丼で食べるほうが好きだな、と(おい)

参考:https://tabelog.com/okayama/A3301/A330101/33000024/

 

6.華麺 【カレーラーメン(リッチ)トッピング・ポークカツ】

f:id:kiyokura:20171202212410j:plain
華麺 【カレーラーメン(リッチ)トッピング・ポークカツ】

ここらでちょっと変化球。中庄にあるカレーラーメンで有名な華麺さんで、トッピングのポークカツを載せてみました。まあこれもある意味でかつラーメンと言ってよいと思います(異論は認める)。カレーラーメンは二種類あって、写真はコクとまろやかさの『リッチ』にトッピングしたもの。

参考:https://tabelog.com/okayama/A3302/A330201/33001397/

 

7.中華そば 駒 【カツラーメン】

f:id:kiyokura:20171202212411j:plain
中華そば 駒 【カツラーメン】

以前は天満屋ハピータウン岡南店の裏通りにあったのが、しばらく前に市場の中に移動しました。市場と言っても飲食店や一般客相手の店が多い「ふくふく通り」ではなく、道を挟んで北側の「花き卸売り市場」の方なので注意。

個人的にかつラーメンとしては一押しだったりします。

参考:https://tabelog.com/okayama/A3301/A330101/33000455/

 

8.グリルみゆき 【カツレツそば】

f:id:kiyokura:20171202212412j:plain
グリルみゆき 【カツレツそば】

西大寺にある洋食屋さんです。比較的こじんまりしたアットホームな洋食屋さんなんですがメニューがすごく豊富です。ここのかつラーメンは600円という値段も魅力。かつラーメンはおおむね『その店のスタンダードなラーメン+200~300円』くらいの値段になるのがほとんどの為900~1,000円超える店も珍しくはない中、600円という価格はなかなか他にはないような。

西大寺緑化公園からも歩いて行ける距離なのでお散歩がてらとかもいいかもしれませんね。

参考:https://tabelog.com/okayama/A3301/A330101/33001909/

 

9.なるほどや 【かつラーメン】

f:id:kiyokura:20171202212413j:plain
なるほどや 【かつラーメン】

なるほどやの福富のほうのお店のかつラーメンです(島田にもお店がある。そっち行ったことないんですが)。 写真は醤油ベースですが、味噌ラーメンベースのかつラーメンもあって、そっちのほうがおいしいって人もちらほらいるような。

参考:https://tabelog.com/okayama/A3301/A330101/33001173/

 

10.カレーハウス CoCo壱番屋 岡山岡南店 【手仕込かつカレーラーメン】

f:id:kiyokura:20171202212414j:plain
カレーハウス CoCo壱番屋 岡山岡南店 【手仕込かつカレーラーメン】

ここでまた変化球。これはご存知カレーのチェーン店のcoco壱番屋さんで特定の店舗で展開してるカレーラーメンのとんかつトッピングです。こちらは全国の対象店舗で食べれるんじゃないでしょうか。

参考:https://tabelog.com/okayama/A3301/A330101/33002142/

 

11.豚太郎(平島店) 【ミソカツラーメン】

f:id:kiyokura:20171202212415j:plain
豚太郎(平島店) 【ミソカツラーメン】

岡山に数店舗ある豚太郎さんの平島店。写真は味噌ベースですが、しょうゆベースのかつラーメンもあります(たしか)。平島もラーメン屋さん多いので激戦区っぽい中、むかしから変わらず営業されてるお店ですね。

参考:https://tabelog.com/okayama/A3301/A330101/33006407/

 

12.ゑびすや 【カツラーメン】

f:id:kiyokura:20171202212416j:plain
ゑびすや 【カツラーメン】

昔からある『地元の定食屋さん』という感じのお店です。高校時代は通学路上にあったことなんかもあってたまにお邪魔してたんですが、駐車場がないのでその後は足が遠のいていました。今年は近くの病院に家族が入院してたこともあって久しぶりに何度かお邪魔しましたという感じ。

参考:https://tabelog.com/okayama/A3301/A330101/33012687/

 

13.一仙 【中華そば とんかつ入り】

f:id:kiyokura:20171202212417j:plain
一仙 【中華そば とんかつ入り】

松系のお店です。写真ではわかり辛いですが、カツの下にカツが隠れていて結構なボリュームです。ハーフとんかつのメニューもあります。

参考:https://tabelog.com/okayama/A3301/A330101/33000865/

 

14.地養 【とんかつ地養そば】

f:id:kiyokura:20171202212418j:plain
地養 【とんかつ地養そば】

ラーメン屋さんがひしめく、中山道・問屋町地区の一店です。以前は「麺屋 哲」という名前で岡山に何店舗かあったかな?哲のころとは全然系統が違うスープな気がします。濃厚な鶏のスープで結構好き。

参考:https://tabelog.com/okayama/A3301/A330101/33001625/

 

15.児玉屋 【マサラカツカレー麺】

f:id:kiyokura:20171202212419j:plain
児玉屋 【マサラカツカレー麺】

ひょっとしたら夏の期間限定メニューだったかもしれません。ここは普段あまり通らないところなのですが、旧山陽町あたりでどこも駐車場がいっぱいでラーメン屋難民してた時にふらっと足を延ばしたんだったような。普通のメニューのラーメンもおいしいのですよね。

参考:https://tabelog.com/okayama/A3301/A330101/33013489/

 

16.とん亭 【カツラーメン】

f:id:kiyokura:20171202212420j:plain
とん亭 【カツラーメン】

以前は表町にあって移転されたお店です。東岡山界隈もラーメン屋さんの選択肢がそこそこあるので悩みますよね。そんな中でかつラーメンを食べたいんだったら、個人的なお勧めはこちらかも。

参考:https://tabelog.com/okayama/A3301/A330101/33010440/

 

17.ひろ兵衛 【かつラーメン】

f:id:kiyokura:20171202212421j:plain
ひろ兵衛 【かつラーメン】

青江というか泉田というか、今は無きジャスコの並びのこれまた今はなき屋根にタコがのったたこ焼き屋さんの隣のお店です。ラーメン屋さんというか定食屋さんというか。今年頃に結構な期間お店を開けてなかった気がするのですが、秋頃には再開されてた模様。

参考:https://tabelog.com/okayama/A3301/A330101/33006650/

 

18.梶屋 【トンカツ中華そば】

f:id:kiyokura:20171202212422j:plain
梶屋 【トンカツ中華そば】

「えび丼」で有名なガッツリ系のお店。最近岡山駅前にお店出されてますが、あっちはえび丼メインでかつラーメンはないって聞いたんですが行ったことないので知らなかったり(。 昼時は店外に行列できたりするので、空いた時間に行きたい人は夕方のほうがおすすめかも。

参考:https://tabelog.com/okayama/A3301/A330101/33000921/

 

19.マル伴(下中野店) 【カツラーメン】

f:id:kiyokura:20171202212423j:plain
マル伴(下中野店) 【カツラーメン】

こちらもいつも駐車場は車が多い下中野の伴さんです。以前は飲んだ後に中央町のほうによく行ってたんですが、子供生まれてからはそっちにはめっきりいかなくなってしまった感。岡山のかつラーメンとしては安定したスタンダート感を感じました。

参考:https://tabelog.com/okayama/A3301/A330101/33005964/

 

20.八方 【かつそば】

f:id:kiyokura:20171202212424j:plain
八方 【かつそば】

私が西大寺方面で一番よくいくラーメン屋さん、八方です。人によっては『西大寺のソウルフード』という人も。鉄板焼きもやってるの一度ここで飲みたいんですが車以外で行くことがまずないのでなかなか実現しませんのう……。

参考:https://tabelog.com/okayama/A3301/A330101/33000976/

 

21.ラーメン宝福 【醤油ラーメン トンカツトッピング】

f:id:kiyokura:20171202212425j:plain
ラーメン宝福 【醤油ラーメン トンカツトッピング】

表町・県庁通り沿いのお店で、この界隈もラーメン屋さん多いですが、セットメニューの多さで差別化が図られてる感(個人の感想です)。カツラーメンはお好みのラーメンにトッピングのとんかつを載せることで実現できます。写真は醤油ラーメンです。

参考:https://tabelog.com/okayama/A3301/A330101/33012929/

 

22.風風ラーメン(今店) 【味噌ラーメン パーコートッピング】

f:id:kiyokura:20171202212426j:plain
風風ラーメン(今店) 【味噌ラーメン パーコートッピング】

ここはいわゆる「排骨麺」として提供されている感じですが、排骨=厚切り豚アばら肉のから揚げなのでかつラーメンにカウントしてもバチはあたらないはず( 下中野の伴さんもですが、漫画がたくさん常備されてるのでアイドルタイムにお邪魔してのんびり漫画読みながら食事するのに最適なお店です(個人的に)。

参考:https://tabelog.com/okayama/A3301/A330101/33001319/

 

23.玉松 【ラーメン とんかつ入り】

f:id:kiyokura:20171202215338j:plain
玉松 【ラーメン とんかつ入り】

「松系」総本山の玉松さんのかつラーメン。普段こっちのほう行くことがあまりなくて、免許センターに行くついでが多い感。たしか今年も嫁の免許の更新に行ったときに酔ったんだったような。

参考:https://tabelog.com/okayama/A3301/A330101/33001409/

 

まとめ

今年は忙しかったのでラーメン屋さんに全然いけてないつもりだったんですが、思ったより行ってた感があります。あと2軒行ってたら一人アドベントカレンダー出来てましたね。 ……じゃなくて『ラーメン+とんかつ』というある意味暴力的な食べ物を月二回くらいのペースで食べてるのはちょとダメっぽいというか当然ですがカツのってないラーメンも結構食べてますのでこれは要反省な感じですね結構診断でまた怒られたし。

 

それはともかく。 写真を見ていただくとなんとなくお分かりいただけるかと思うのですが、「かつラーメン」というなにか一貫したスタンダードなスタイルが存在しているわけではなくて、大抵は『そのお店のノーマルのラーメンにとんかつを載せたもの』として存在してます。なので、これも個人の感想ではありますが、「『ラーメンとしては美味しい』が『かつラーメンとしてはイマイチ』」とかその逆とかも普通にあり得ます。スープと衣(油)の相性は特に味に影響するので、逆に雑な味のほうがパンチ力があったりすることもあるような。まあ、いろんな楽しみ方ができる食べ物だと思ってます。

 

ともあれ、興味あれば一度岡山でかつラーメンを食べてみてください。また、「かつラーメン」として自分の好みの一杯を見つけるのものまた一興かもしれませんよ?

*1:実際そういう理由でメニューにあるのかは知りません。サントピアを経営してる魚宗フーズさんは知り合いなので興味ある人が入れば聞いてみますが(だれも興味ないですよね)

Azure の仮想マシンの起動と終了をメールで通知する

前に少し調べたときにはよくわからなかくて他の方法で逃げたんですが、昨日Azure Monitorのドキュメントとかを何の気なしに眺めてるとなんか簡単にできそうなので試してみました。

実現したいこと&実現方法

実現したいこと:

- 仮想マシンの起動が成功したらメールで通知する
- 仮想マシンの停止が成功したらメールで通知する

実現方法:

- 仮想マシンのブレードから「アクティビティ ログ アラート」を追加する

 

手順

1. 仮想マシンを選択して[アラートルール]で[アクティビティログアラートの追加]を選択

いくつか入り口がありそうですがとりあえずここから。

f:id:kiyokura:20171106230936p:plain

2. 各プロパティーを設定

ブレードのフォームを埋めていきます。

仮想マシンのアクティビティログのイベントをひっかけるにはソースはこんな感じで良さそう。

項目 選択値
イベント カテゴリ 管理
リソースの種類 Vertual Machines
リソースグループ <監視したい仮想マシンのリソースグループ>
リソース <監視したい仮想マシン>
操作名 仮想マシンの起動
レベル すべて
状態 成功

アクションではメール通知を[Edit details]からメールアドレスを設定しておきます。

f:id:kiyokura:20171106231453p:plain

登録を完了させると、通期先のメールアドレスに登録完了の旨のメールが届きます。

f:id:kiyokura:20171106231555p:plain

以上で設定は完了です。

その後仮想マシンを起動するとメールで通知が飛んできました。

そのほかの操作について通知を飛ばしたい場合

なお、仮想マシン終了時など、そのほかの操作をトリガに通知したい場合は操作名で該当する操作を選択すればOKです。

f:id:kiyokura:20171106235016p:plain

 

まとめ

なんだか拍子抜けするほど簡単でした。素晴らしい。

今回は通知方法にメールを使いましたが、WebHookで任意のURLにJSON形式のデータをPOSTすることもできます。とりあえずAzure Functionsに投げたらそのまま素直に連携できましたので、後日またそれについて書いてみたいと思います。

Hangfireを使ってみる (6):Jobの種類について:3. Continuations

前回の続きです

今回は3つ目のタイプのジョブについて。

3.Continuations

連続という玉突きというか、指定したJobが終わった後に実行されるように登録するタイプのジョブです。

この前提の話として、前回と前々回で紹介したFire-and-forgetとDelayedを登録するBackgroundJob.EnqueueBackgroundJob.Scheduleメソッドは、戻り値として登録したジョブのidを返します。Continuationsなジョブの登録は、BackgroundJob.ContinueWithメソッドにそのidを指定して登録することで行います。

例えばこんな感じです。

var jobid = BackgroundJob.Enqueue<MyJobsLib.ICostomJob>(x => x.Execute("Job Executed."));
BackgroundJob.ContinueWith<MyJobsLib.ICostomJob>(jobid, x => x.Execute("2nd job Executed."));

ダッシュボード

上記コードを実行後にダッシュボードをみると、このように『awaiting』にリストアップされていました。

f:id:kiyokura:20170806172032p:plain

Jobテーブル

Jobテーブルはこんな感じです。

f:id:kiyokura:20170808001837p:plain

JobQueueテーブル

JobQueueはこうです。一つ目のジョブのみが登録されています。

f:id:kiyokura:20170808001719p:plain

Setテーブル

Setテーブルを見ると、ここでawaitingで登録されていることが分かります(Valueがジョブid)。

f:id:kiyokura:20170808001347p:plain

JobParameterテーブル

Continuations Jobsの場合のポイントはこのJobParameterテーブルです。JobId=1のレコードの中のName=Continuationsのレコードがあり、後続のジョブのJobIdが記録されていることから、このパラメーターでジョブ同士の関連性を管理しているのでしょう。

f:id:kiyokura:20170808001018p:plain

実行されるときの挙動

Job StorageがSQL Serverの場合、Hangfire Serverによるキューのポーリングを起点に順次実行されます。

このとき、現在キューにあるジョブが読み込まれたタイミングで、ストレージ上に存在する連続するジョブはすべて一度に読み込まれたのち、そのまま連続して処理されるようです。

例えば、ContinueWithで関連付けられたJob1Job2が存在する場合、Job1が実行された後、次回のポーリングを待つことなくそのまま連続して実行されました*1。 ただし、ジョブのステートの遷移を見ると一応は一瞬キューイングされてるようには記録されていますので、内部的には一応キューを経由してるはしているのかも知れません(このあたりソースを読めばはっきりするのでしょうが)。

まとめと次回

Continuations ジョブを利用すると、ちょっとしたバッチ処理のようなことも可能だと思います。ただしBackgroundJob.Requeueメソッドで再実行を行う際には二つ同時にRequeueしても順番の保証はされないようですので*2、その点は注意が必要と思いました

次は 『Recurring』、つまり定期実行タイプのジョブ実行について書きます。

*1:キューのポーリング間隔を十分に長くして検証した結果、そういう挙動が見られました

*2:ダッシュボードで連続するjobを同時に選択してRequeueすると、どちらも同時にQueueに登録された

Hangfireを使ってみる (5):Jobの種類について:2. Delayed

前回の続きです。

今回は二つ目のタイプのジョブについて。

2.Delayed

指定した時間の経過後に遅延実行されるタイプ。 BackgroundJob.Schedule()またはBackgroundJob.Schedule<T>()で登録する際にTimeSpan型で指定した時間を経過した後に実行されます。

ドキュメントとしてはこちらを参照 : Calling methods with delay

コード例

遅延時間はTimeSpan型で指定します。例えば10分後だとこんな指定です。

BackgroundJob.Schedule<MyJobsLib.ICostomJob>(x => x.Execute("Job Executed."), TimeSpan.FromMinutes(10));

ダッシュボード表示

ダッシュボードを見るとこんな感じになってます。

f:id:kiyokura:20170806144051p:plain

Jobテーブル

jobテーブル上のステータスはScheduledになってます。

f:id:kiyokura:20170806144148p:plain

Setテーブル

そしてSetテーブルになにやらエントリが作られています。

f:id:kiyokura:20170806144717p:plain

Score列に1501998606という値が入っています。この値についてドキュメントでの言及を見つけることはできなかったのですが、ソースを見る限りは以下のようです*1

  1. SetテーブルのScore列(float型)には実行時のUNIXエポックからのUTCの秒数が格納されいる
  2. Hangfire Serverがスケジュールをポーリング
  3. 現在日時とScoreから算出される日時を比較し経過していたら実行される

当初は上記 3 のタイミングで、一度キューに入れられた後改めでキューがポーリングされたタイミングで実際に実行される……と思ったのですが、動きを見る分にはどうもそういうわけではなく、スケジュールのポーリングのタイミングで実行まで行われてるように見えました*2

スケジュールのポーリングの設定

既にスケジュールはHangfire Serverからポーリングされて実行されることについては書きましたが、ついでにこのポーリング間隔の設定にも触れておきます。

Delayedの場合のスケジュールは、Hangfire ServerのオプションであるBackgroundJobServerOptionsSchedulePollingIntervalで決められています。これも規定値は15秒で、秒以上の単位でカスタマイズできるようです。この設定についても先に紹介したドキュメントで触れられています。

次回

次は 『Continuations』タイプのジョブ実行について書きます。

*1:ざっと見ただけなので違ってるかもしれません

*2:これについてはソースまで読んでないので定かではないですが、キューに入れて次のキューのポーリングを待つよりも効率的ですし多分そういうことなんだろうと思ってます