さくらインターネットさんの石狩データセンターにご招待いただいた話

年があけてのご報告になってしまいましたが、、、

先月の12月3日、さくらインターネットさんの石狩データセンターを見学させていただきました。

すごくよかったです!面白かったです!「ほんとにこんなにいいんですか?!」と申し訳なく思うくらいおもてなししていただきました。

コトの発端はこちら。

さくらのLT大会 in 大阪 ~全国さくら前線ツアー2016 #さくらクラブ ~ - さくらクラブ(総合) | Doorkeeper

正直に言うと、優勝狙って参加ました。
石狩データセンターに興味があったし、北海道でまともに観光をしたことがなかったので、とにかく北海道行って美味しいもの食べたかったんです。

で、蓋を開けて見ると、参加者は10人そこそこで、半分はさくらさんの中の方で、与えられたテーマでLTした方はほとんどいなくて、優勝してしまいました。

今回、行き帰りの航空券、宿泊1泊分、空港とホテルの往復とデータセンターまでの交通費、初日の昼夕食をサポートしていただだいて、いろいろすごく満喫できました。
さくらインターネットさん、本当にありがとうございました。

 

データセンターと周辺については写真NGでしたので、ここからは個人的な写真を交えて旅の様子をお送りします。

 

関空から久々の国内便出発でした。前回国内線を利用したのは沖縄ハッカソンのときにピーチでしたので、そういう意味では初第1ターミナル国内線。

関西を発つときから遠くまでよく見えるいい天気で、青森の下北半島とか、北海道の広大な大地を、空からずっと眺めていました。外を見すぎて首が痛かったです。

f:id:satomicchy:20161203092128j:plain f:id:satomicchy:20161203094222j:plain

北海道に来れた嬉しさと同時に、ご招待という今まで受けたことないおもてなしで複雑な気持ちになりながら、新千歳空港に到着しました。

まず、空港内のお土産やさんの充実っぷりテンションあがりまくりました。美味しそうなものたちを横目に見つつ、買い物をしたい気持ちを抑えて、小腹がすいたのを理由にタラバガニの天ぷらだけいただきました。

f:id:satomicchy:20161203102751j:plain 

待ち合わせの時間になって、後ろ髪をひかれながら待ち合わせ場所へ行って、さくらの林さんをはじめ、他の地区で優勝した方2名(全員同日のご都合がつかず、2回に分けての見学ツアーでした)と合流。まずは一路、石狩データセンターへ。

センターの場所の詳細は非公開とのことで詳しくはお伝えできませんが、電車を乗り継ぎながら行くと、ありました、写真で見たカタチの建物が。休日とあって、事務所にはほとんど誰もいらっしゃいませんでしたが、杉本さんにお出迎えいただき、セキュリティーの扉の向こうに足を踏み入れました。

 

まずはセンター内の休憩スペースでお昼のお弁当。こんなに海の幸ふんだんなお弁当は見たことがありません。冬の間はお休みしているというお弁当屋さんに、特別に作ってもらったそうです。ありがたいです。これで海のものは制覇した気になりました。

どーん。(嬉しかったのと美味しかったので写真サイズそのまま)

f:id:satomicchy:20170118185322j:plain 

そのあとはいよいよセンター内の見学です。

まずは会議室で簡単に全体のお話を伺い、いざ出陣!
最初は、高圧電源装置の室内を安全のために覗き見するだけにして、分電室から空冷のための吸気口設備を通り、建設中の3号棟を眺めて(土曜日でも工事されてました。ご苦労様です。)からの、無停電装置に圧倒されました。12気筒のディーゼルエンジンです!それも超大型トラックに乗せるようなすごいやつ!こんなところで見られるとは!カッコいい!残念ながらエンジンがかかるところは見られませんでしたが、機械好き&バイク乗りにはたまりませんでした。それからメインであるサーバー室に移動して、設備の古い順にご案内いただくと、冷却方法、電源の供給方法などのいろいろな試行錯誤、進化の跡がわかって、とても有意義な見学でした。

巷はクラウドだサーバレスだと騒いでおりますが、こうやって実際にサーバを守る方々がいらっしゃってのことだと改めて実感しました。ありがとうございます。

 

見学のあとは、参加者で改めて自己紹介を兼ねたLTをして、夜は札幌市内に戻ってから居酒屋さんで道産のコースをご馳走になり、お腹いっぱいになったあと、ホテルで解散となりました。

f:id:satomicchy:20161203183651j:plain f:id:satomicchy:20161203185410j:plain f:id:satomicchy:20161203191322j:plain

f:id:satomicchy:20161203185515j:plain f:id:satomicchy:20161203191901j:plain f:id:satomicchy:20161203192725j:plain

 

かなり五感を刺激された1日でした。

こうしてブログに書いていると、私がわざわざ海外カンファレンスに足を延ばすのも、五感に響くことがあるからなんだなと思い出しました。(「五感で遊ぶ」というようなことを書いた記憶があるのですが、どこに書いたか忘れてしまいました。)

 

二日目は札幌市内をちょっとウロウロしたので、写真で簡単にご紹介します。

みなさんよくご存知のテレビ塔と時計台。写真のとおり、雪が全くない週末で、食べ物以外に冬の北海道という感覚はあまりありませんでした。ただ、風がすごく冷たかったです。

f:id:satomicchy:20161204104357j:plain f:id:satomicchy:20161204103801j:plain

お昼は、カレーショップ エスさんで、スペシャルなやつをいただきました。開店と同時に満席で、お店を出ると列ができていました。それぐらい美味しかったです。

https://tabelog.com/hokkaido/A0101/A010103/1000569/

f:id:satomicchy:20161204114127j:plain

それから、やっぱり札幌だしと思ってサッポロビール博物館へ。飲み比べセットを注文すると、ビール小サイズのグラスが3つの中に、創業当時のビール(一番右)がついてきました。私は今の味よりこの創業当時ビールのほうが好きかな。ただ、一人でグラス3つはちょっとしんどかったです。

サッポロビール博物館 | 工場見学とミュージアム | サッポロビール

f:id:satomicchy:20161204121701j:plain f:id:satomicchy:20161204123824j:plain 

最後は、新千歳空港に戻ってから、晩ご飯の時間には早かったのですが、勢いでジンギスカンのレストランへ。大阪の十三でもジンギスカンを食べたことがあるんですが、お店によって食べ方が違うんですね。こちらは鉄板の周りで野菜をスープで煮るようにして、てっぺんでお肉を焼くというスタイルです。

https://tabelog.com/hokkaido/A0107/A010701/1000826/

f:id:satomicchy:20161204155651j:plain

 

エンジニア魂を刺激されて、しっかり食べ物を満喫して、幸せな2日目でした。充実した北海道旅行になったことは間違いありません。次は暖かい季節に、食い倒れツアーを企画して来たいと思います。

あらためて、さくらインターネットさんありがとうございました。

最後までお読みいただいた方も、ありがとうございました。

2016年のふりかえりと2017年にやること

お久しぶりなブログです。書き始めると時間があっという間にすぎてしまうので、まとまった時間があると思う時にしかかけない今日この頃です。

年の初めにブログを書くのが恒例になりつつあるので、今年も書こうと思います。今日はざっと、簡単に。

 

2016年のふりかえりから。

1)スマホアプリを1つ作ること

また作りませんでした。アプリ作る作る詐欺になりつつあります。よくないですね。

2)とある資格試験の科目合格とそのあとに税理士試験の勉強を再開すること

とある資格試験というのは、中小企業診断士でした。テキストを買ってみたら、内容は浅いくせにむちゃくちゃ範囲が広くて、なんだかやる気がなくなっちゃったんですよね。で、関係あるようなないようなところで、東京理科大大学院のMOTの入門コースに行ってみました。それはそれで1本分ぐらいのブログは書けますが、また別の機会に。

3)ピアノと丁寧に向き合うこと

丁寧には向き合ってませんが、発表会前の9月中旬から11月の当日まで、毎日欠かさず、東京に行った時も、島根に行った時も、レンタルスタジオで練習しました。単に、7,8月にほとんど練習が進まなかったからです。はい。おかげで、何とか発表会に間に合って、よかったよかった。もっと体の使い方とか楽譜の読み方とかもやりたいなぁと思うんですが、1日24時間ではどうしようも時間が足りないです。

4)バイクでどこかへ一度は遠出をしてからバイクを処分するのを考えること

遠出はしませんでしたが、バイクを処分する理由がちょっとなくなってしまって。1ヶ月に1回ペースで一緒に勉強しているプログラマー仲間がバイクの免許を取ったので、一緒にツーリングするという目標ができてしまいました。

5)いま個人事業としてやっている仕事を法人化することです。

これは法人化してしまいました。でも、税金いっぱい取られるし、提出する書類が増えて、大してメリットも見えないので、ちょっと後悔しています(笑)。

 

そして、2017年はどうしようかなと。

1)Xamarin.formの公式ワークブック?を一通りやって、自分のアプリを作るのは一旦わきに置いておく。

スマホアプリをやらないとというのが半分義務感になってて、ワクワクがないというか。ゲームもそこまで好きというわけではないし。ただ、知識としては何かないとこれから仕事として困ると思うので、エンタープライズ系のXamarin.formは追いかけておこうかと思っています。

2)ロビをハッキングする

bluetoothを乗せてスマホをリモコン代わりにして遊びたいですね。声はパターンがないとダメなので、声優さん募集しようかな。

3)コミケに出る

RailsGirlsで座学している内容がいつも好評で、同じ内容で来月5回目になるんですが、これを薄い本にしてコミケで売ってみようかなと。イラスト描いてくれそうな方が見つかったので、タイミングです。

4)バイクを冬眠から覚ます

バッテリーは買ってあるので、エンジンがかかったらオイルとタイヤを交換して、とりあえず走れる状態までは何とかしたいなと思います。遠出はどうかな、九州の実家にフェリーで帰るぐらいはするかも。

5)ピアノの小曲をいくつかと、1度挫折したリストのピアノ曲を今年の発表会に向けて練習する(かも)

リストはマゼッパという曲です。まだ決心がつきません。でも、大きく体力を使う曲なので、年を取ってからでは大変そうだなという気がするので、今のうちかなと思います。小曲はショパンエチュード10-1,4とかプーランクとか、短くて素敵だけど弾いたことなかった曲を練習して、レパートリーを増やしたいです。

6)MBAの大学院を受験する

去年、理科大大学院のMOT入門に行ってから、俄然、経営の方に興味がわいて本もいろいろ読んでます。理科大まで行くのは遠いので、名古屋商科大のMBAかなと。3月に試験です。学費高いんですよね。事業主になっちゃったから、教育訓練給付金が受けられないかもしれないと言われてて辛いところ。

 

というのが、2017年前半にやろうと思ってることいろいろです。年々、書くことが具体的になってきた気がします。2017年後半は、またこれのふりかえりとともに記録しようと思います。

Xamarinの構成についてもう少し。Xamarin.Formsとそれ以外の使い分けについて。

スマホアプリなので、Guideだけでアプリを作り始めるにはちょっとハードルが高くて、こちらのe-learningを聞いています。

Introduction to Xamarin.Forms | edX

その中で、アプリのプロジェクトを作る際に選択するテンプレート(という言い方が正しいのか分かりませんが)について、どう使い分けたらいいかという話が興味深かったので書いておきます。

 

Xamarin Studioでプロジェクトを作り始めるとき、こんなウインドウでテンプレートを選択するところから始まります。

使い分けと言っても、Xamarin.Forms(Cross-platform)かそれ以外という選択になるんだと思いますが、クロスプラットフォーム対応してるのに「選ばなきゃいけないの???」て迷いました。

f:id:satomicchy:20160420190001p:plain

で、先日作成したサンプルのディレクトリ構成を並べてみると、

(左から、Closs-platform, Android, iOS。トップのプロジェクト名は無視してください。)

f:id:satomicchy:20160420190003p:plainf:id:satomicchy:20160420190004p:plainf:id:satomicchy:20160420190002p:plain

フォルダ名に多少違いはあるものの、"template"と言ってるので、あとからコード追加したら好きにできそうには見えます。(検証はしてません。)

そんなあいまいなことは、そうなったときに考えるとして、e-learningの中で先生がQ&A形式で説明してくれてました。(無料のe-learningなので、英語をそのまま聞きたい、全部きちんと知りたい方は以下のページにて。)

https://courses.edx.org/courses/course-v1:Microsoft+DEV215x+1T2016/courseware/246de271c88348a4a2ece43c2b854b64/52de8ceb762f48b38a5178a925dbf177/

 

Q1. Xamarin.Forms か、今まで(Xamarin.iOSやXamarin.Androidのことだと思います。)のようなやり方か?

A1. アプリによっては、Xamarin.Forms がいつもベストなやり方とは限らない。場合によっては、今までのやり方のほうが実質簡単なこともあるし、どんなアプリを作ろうとしているかによる。どちらのやり方も、利点・欠点ある。

 

Q2. 作ろうとしているアプリは、データ入力を重視するものか?言い方を変えると、そのアプリが主にデーターフォームで構成されたものか?

A2. いわゆる企業向けアプリは、Xamarin.Forms によく適合して、実際、まさにそういう状況で解決するために設計された。その場合は、Xamarin.Forms を使ったほうがいい。その他の一般的なケースは、ロジックが動くプロトタイプを早く作りたいときや、投資家に見せたいとき。長時間UIをデザインしないでいち早く構想を確認するのもいい。

 

Q3. UIについて1つ大事な質問は、どのぐらいアプリのデザイン(pixel perfect design)が重要かということ。

A3. もし、デザインが重要ではなくて、プラットフォーム間での微妙は変更が問題ないなら、Xamarin.Forms はそのアプリにふさわしい。エレメンツ間のspacingや色指定など、実質プラットフォームに一任していて、Xamarin.Forms で変更するのは簡単じゃない。だから、もし、デザイン(pixel perfect design)を再設計するつもりなら、Xamarin.Forms は適切じゃない。すべての場合において完全にコントロールするのはほぼ不可能だから。

もし、アプリがプラットフォーム毎にユニークなコントロールを利用したり、プラットフォーム固有のAPIで固有の投資(investment)があるなら、Xamarin.Forms はおそらくダメだろう。今までの Xamarin の方法(多分Xamarin.iOSやXamarin.Androidなどのこと)でビジネスロジックを共有するのが賢明だ。

 

* * * * * * * * * * * * * * * * * * *

 

案外、Xamarin.Formsを手広く使うというわけではないのですね。これだと、ゲームはXamarin.Formsじゃ無理ですねぇ。ビジネスロジックだけ共有化するにしても、プロジェクトが別になっていては、使いにくいよなぁと思うわけです。

次は、共通レイアウトのライブラリが用意されてるようなので、そこをもちょっと調べてみようと思います。

Xamarinはいいかもしれない(Hello, Xamarinシリーズをやってみた)

2016年のスマホアプリを作る目標がやっと動き出しました。

去年はAndroid Studioを触ってたのですが、iOSAndroidで別々に開発をする時間がもったいないよなと常々思っていたところにXamarinのオープンソース化の話を聞き、これは試してみなければとインストールしました。

 

 『開発環境』

開発環境は、以下のとおりです。

Xamarinをインストールする前に、OS Xを10.9から10.11にするためのストレージ容量がなくて、がんばっていろんなものを削除してなんとか6G空けて、OSアップデートしたら15G近く何かが削除されて、一気にストレージが空いたとかいう嬉しいこともありました。

ところで、Xamarinのマスコットはお猿さんなんですね。かわいいので+1。

  • MBA Mid2013, プロセッサ1.3GHz, メモリ4G
  • OS X 10.11.4
  • Xcode 7.3
  • Xamarin Studio 5.10.3

 

『動作環境について少し』

そもそも、Xamarinはどうやってスマホアプリを作って、それぞれのOSで動かしているかというと、

  • iOSに対しては、ARM*4アセンブリとしてコンパイルしてるみたいです。結構低レイアにアプローチしてるんですね。Appleがそのへんのアクセス?の制限かけてるみたいで、こちらも注意することがあるようです*5

 

Windows phoneについては考えてないので省略。

その他詳しいことはこちらをご覧ください。

Part 1 – Understanding the Xamarin Mobile Platform - Xamarin

 

『Guide(チュートリアル)』

やってみたのは、こちらのGuide(チュートリアル)3つ。

Hello, Xamarin.Forms - Xamarin

Hello, Android - Xamarin

Hello, iOS - Xamarin

 

Guideで作るアプリは、アルファベットで入力した文字列を数字に変換して、その数字を番号として電話をかけるというもの。

細かくステップに分けてスクリーンショットを貼り付けて、丁寧に解説してくれているので、改めてここで明記することなく、どれもすんなり動きました。

ビルドの時間も短かったですし、もっさり感はどこにも感じられません。使えそうという印象です。

 

 『所感』

全般的にはいい感じです。IDEはよくできていると思います。ただ、Xcodeを触ったことがないのと、去年Android StudioをいじってからのXamarinなので、感想に多少偏りがあることは否めません。

一応、浅い考察ですが、いいと思う点と検証が必要だと思う点を箇条書きしておきます。

(いいと思う点)

  • AndroidiOSも、コードがある程度共有できて、開発時間が短縮できる。
  • OS毎にコードを書き分ける部分もC#で記述できて、あれこれ悩まなくていい(言語の勉強コストが削減できる)。
  • Guideやその他の説明が丁寧で英語も読みやすい。
  • IDEのデザインがシンプルで見やすく、動作のもっさり感もない。
  • 個人的に、エディタのメソッド補完の相性が合った。

(検証が必要な点)

  • Androidについては、MonoVMとJITが一緒のせいか、ダウンロードサイズが大きめなので、画像バリバリのアプリや凝ったものは肥大化する可能性。(iOSは、開発コードがなかったので実機の検証は未確認。)
  • 前述したとおり、OS毎にビルド/コンパイルの制限があるので、それがどの程度なのか要確認。

 

このまま継続して、簡単なゲームか何かを作ってみようと思います。

*1:ILとかJITが何?ていうのはこちらから。Thanks:C#で作られたプログラムをデコンパイルしてみよう - ほげほげー

*2:MonoVMについては、そのままググると全然見当違いのものが出てくるので、要はMonoのラインタイムの機能という理解でいいみたいですね。from:The Mono Runtime | Mono

*3:Android Limitations - Xamarin

*4:ARMていうのはこれ。from:ARMプロセッサ アーキテクチャ - ARM

*5:iOS Limitations - Xamarin