
furuyamah
ISAOfm : Google Cloud Next’18 DAY3
...こんにちは。 エンジニアの古山です。
ついにGCNext最終日。本日はDeveloper Dayということでコード多め、デモ多めな日でした。 それではGCNext'18最後の収録をお楽しみください。
[audio mp3="/uploads/GCNEXT4.mp3"][/audio]
今日も一日がはじまる
今日も移動しまくり
カンファレンス終了。歩いて中華街に到達
最終的にフィッシャーマンズワーフまで歩いたこれにてオマケ編も終了です。 来年のGCNextをおたのしみに〜。
[

](https://www.colorkrew.com/gcp/?utm_source=isaofm_gcnext4&utm_medium=referral&utm_campaign=owned)
ISAOfm : Google Cloud Next’18 DAY2
...こんにちは。 エンジニアの古山です。
本日はGoogle Cloud Next 2目です。 パートナーサミットから数えて3日目になります。 時差ボケの中頑張ってカンファレンスに出席しております。
[audio mp3="/uploads/GCNEXT3.mp3"][/audio]
会場のひとつはこんな場所。Palace Hotel
昼ご飯に"kyoto salad"なるものをセレクト。豆腐と米入り。
カンファレンスの会場が4箇所に分散しているので合間に移動しまくり。[video width=“800” mp4="/uploads/at_t2.mp4"][/video] 本日のイブニングイベントはAT&Tパーク隣!
[

](https://www.colorkrew.com/gcp/?utm_source=isaofm_gcnext3&utm_medium=referral&utm_campaign=owned)
ISAOfm : Google Cloud Next’18 DAY1
...こんにちは。 エンジニアの古山です。
今回は一般公開初日の収録です。
[audio mp3="/uploads/GCNEXT2b.mp3"][/audio]
毎日朝は曇っていて寒いのですが、昼は晴天で気温も暑すぎず寒すぎずの絶妙な心地よさでした。サンフランシスコいいところ。
さすが本編。すごいひとだかり。
ブースもすごいひとだかり。そしてブースエリアが広い。
TPU v3!ついに時代は水冷に!<img src="/uploads/apple.jpg" alt=“Google Cloud Next 18 apple” width=“360"class=“alignnone” /> ランチにはりんごまるごとついていること多し。
カンファレンス後の交流会。色々お話させていただきました。
今日の帰り道は暗くなっていました。ISAOfm : Google Cloud Next'18 Partner Summit
...こんにちは。 エンジニアの古山です。
本編としてGCNextで気になった事柄TOP10を書きましたが、おまけとして現地で収録した音声をpodcastっぽく公開したいと思います。
まず第一弾は一般公開日前日に行われたパートナーサミットの日に収録したもの。 なるべく記憶がフレッシュなうちにということでAirbnbの宿に戻ってすぐ収録しました。
[audio mp3="/uploads/GCNEXT1b.mp3"][/audio]
PCのマイクで収録しているためか、音質が非常に悪くて申し訳ない気持ちでいっぱいですが、現地の雰囲気は伝わるのでは、と思っています。
写真もいくつかあげますので、あわせてお楽しみください。
まだ羽田。でもすでにできあがっている。
We are in San Francisco!
めっちゃ坂。そして路駐多し。
Airbnbで確保した宿泊先はめちゃくちゃ綺麗でした。
家主さんの心遣いのwelcome drink。うれしい。
会場のMoscone Southに入って一枚。入るまでが大変だった。TOP 10 information of Google Cloud Next '18 @ San Francisco 後編
...はい。 では、飛行機で来た(San Francisco まで)後編です。 ネタが古すぎますが気にしないでください。
我社は一応パートナー枠での参加ということで、GCNextの前日に開催されたパートナーサミットからの参加でした。 内容は要約すると、Google Cloudはいいプロダクトだからじゃんじゃん売ってくれ、という感じでした。 もうこれは売るしかないですね。
半分会場の空気にのまれつつパートナーサミットを終えると今度は隣接した公園でのパーティです。 会場は広いがそれ以上に人がたくさんということで、自然と相席になったのですが、ビールの力を借りて対面のハンサムガイに話しかけてみると、イタリアから12時間もかけて来ているとのこと。スゲー!

素直にすごいと言ったら、いやあなたもでしょ、と返されました。 そりゃそうか。我々も地球の反対側から10時間かけて来てますな。酔狂なことです。
我々も含めて世界中にわざわざサンフランシスコに来ちゃうほどのGoogle Cloudファン、そして商売しようという人がいることに不思議な感動を覚えました。みんな一緒じゃん!
It’s a small world!
さて、それではお待ちかねの4位から1位までの発表です。 若干分割の比率がおかしい気もしますが気にせず進めます。
4位: CloudSQL for MySQLのライブマイグレーション機能
これはキーノートではなく参加したセッションネタです。 最近PostgreSQLばかりで知らなかったのですが、CloudSQL for MySQLはオンプレや他のクラウドで稼働しているMySQLからのライブマイグレーションをサポートしている模様。いやほんと知らんかった。
オンプレ上のシステムをクラウドに移行しようとする時、ダウンタイムを減らしたい、できればゼロにしたいというのが人情です。 その際にネックとなるのが、大量にデータを溜め込んでいるデータストアであり、それをダウンタイム無しで移行できるのであれば、システム全体をダウンタイム無しでクラウドへ移行する道が開けたと言えます。 セッション内ではプロダクト固有の話だけではなく一般的にダウンタイムを短くするためのノウハウの話もありました。
曰く、データ移行はデータのエクスポートとインポートで構成されるわけですが、注目すべきはインポート時間とのこと。 インポート時間を短くするための戦略は3つ。
インポート先のインスタンスタイプをなるべく大きくする インポートが終わってから適切なサイズにすればいい。
絶対必要なindex以外はあとで追加 index構築時間の削減。
絶対必要ではないロギングもインポート中は停止 インポートが終わってから開始すればいい。
なるほどな内容です。 特にインスタンスタイプをでかくしておくというのはクラウドならではのソリューションですね。
なお、セッション最後の質問タイムで、PostgreSQLへはライブマイグレーションはくるの?と質問されている方がおりました。 考えることは世界共通みな一緒ですね。 対する回答は
YES.
TOP 10 information of Google Cloud Next '18 @ San Francisco 前編
...こんにちは。エンジニアの古山です。 このたび機会を頂き、Google主催のイベント、Google Cloud Nextに参加させて頂きました。 今回参加したメンバーは、セールスの市橋、エンジニアの粕谷、古山です。 パートナー向けイベント1日+一般向け3日の合計4日。ひたすらGoogle Cloudの情報を浴び続けるなんとも贅沢な4日間でした。

日本にいてもキーノートはyoutube越しに見ることができます
し、各種プロダクトの情報も公開されています。
Google Cloud Next 2018 まとめ (Thanks to @sinmetal)
この状況では、網羅的な説明は薄くなるし私が現地に行った意味もない、ということで独断と偏見で気になった情報TOP10を発表します!
10位:サンフランシスコのシャワー操作が難しすぎる
GCP関係なくてすみません。 不覚にも問題のシャワーの写真撮り忘れたのでAirbnbでとった宿泊先の外見など。

朝の宿の前でUberを待つけだるげな一枚
Airbnbのリンクも貼っておきます。3人以上ならホテル(平均一泊3万台?)より安くオススメです。
Gorgeous & Updated 2 Bedroom in Cow Hollow
のですが、サンフランシスコのシャワーって、シャワーヘッドは存在感抜群なものの、目の前のレバーを操作しても、バスタブに湯を貯めるための蛇口からお湯がどぼどぼでるだけで、シャワーはうんともすんともいいません。 周囲を見回してもシャワーからお湯が出そうなボタンなりレバーなりは見つかりません。
ば、ばかな・・。
サンフランシスコといえば、これでもかとUI/UXを突き詰め世界を席巻するサービスをいくつも生み出しているアフォーダンスに満ち溢れた約束の地。 そこでは言語すら必要とされず、求める意思さえあれば三歳児ですら要求を具現化することは容易いはずだ。 それが、単にシャワーからお湯をひねり出すことが、で、で、できないだとぉぉぉぉー!
いまこそDocker入門
...こんにちは。プログラマーの古山です。
先日社内にてDocker入門セミナーをやりました。
dockerセミナーの様子そもそもなんでこんなセミナーをやっているのか
弊社は定期的に社内で技術系のセミナーを開催しています。 これ自体はIT系の会社では珍しくないことだとは思いますが、開催理由は、その会社毎に性格があらわれるポイントなのではないでしょうか。 弊社ではこんな目的を掲げてセミナーをやっています。
- バックエンドエンジニア教育開始にあたり
日本人なら誰でも知っている例の丸顔キャラクター。あのテーマソング覚えていますか?
我が家には三歳児がおりますので、朝夕にこのテーマが流れるのですが、何年聞いても飽きない、そして深い、とても幼児向けとは思えない、いやむしろ何色にも染まっていない幼児向けだからこその、深い意味を感じさせる歌詞だと思います。
ア○パン○ンは問います。幸せとはなにか。よろこびとはなにか。
これほど普遍的で生の本質に根ざした問が他にあるでしょうか。誤解を恐れずに私はここで、ない、と断言します。
そして弊社のVISION 2020です。
我々は世界のシゴトを楽しくするを掲げております。
なにを幸せと感じるかは、もちろん人によって違います。しかし人はその人生の大半をシゴトにつぎこみます。
であれば、シゴトを楽しくする、が、先程の○ンパンマ○の問いかけに対する一つのメタ的な回答にならないでしょうか。
こんな根源的なVISIONを掲げる会社、しびれませんか。手前味噌モリモリもいいところですが、私はしびれます。
もちろん簡単に達成できるVISIONではありませんし、短期的に達成できるものでもありません。 しかしそれを達成するために、レベルアップが必要なことだけはわかります。
絵に書いたモチを現実とするために、僕らはスキルを磨いていきます。
そんなわけでこんなセミナーをやっております。
なぜ今Docker入門をするのか
使った資料はこちら
弊社でも1年ほど前から開発環境、本番環境へのDocker導入が進んでいます。
ある意味、入門の時期は過ぎ去ったといえます。しかし、それはあくまでシステムの基盤を構築するエンジニアの間での話。それ以外のエンジニア、またエンジニアの枠を超えてデザイナーまで観測範囲を広げると、まだまだという現状です。
えっ、デザイナーがDocker使える必要あるの!?
そう思ったあなたはするどい。実にするどい指摘です。しかしあえていいます。
**必要あるんです!**と
ちょっと手元でWEBサーバー立ち上げて組んだレイアウトを確認してみたい。そんなことないでしょうか。
既に開発環境が用意されていればいいですが、自分発、世界にまだ無いシステムを試したい時、どうしたらいいでしょうか。
世にあまたあるデザインのツールを試したらいいでしょうか。もちろんそれも正しい選択肢です。 しかし、我々は長いブラウザとの戦いの歴史の中で学んできたはずです。
実際にブラウザで確認しないとわからないくずれがある! ことを。
そんな時にこそDockerの出番。
Dockerは本番に使用するであろう環境とほぼ同等の環境を圧倒的手軽さで手元に用意してくれます。
つまりDockerは新しいサービスを世に出す敷居を、一段階、いや数段階一気に下げてくれるツールなのです!
セミナーを受けた人の声
受講後アンケートをとってみました。結果はこちら。
- 研修の目的は達成したと思いますか?

- 研修の内容は理解しましたか?

- この研修は今後に活かせると思いますか?

- 講師の説明・進行はいかがでしたか?

実を言うと弊社内でDocker研修は度々行われています。資料を見て頂ければわかりますが、今回は間口を広げかなり初心者向けの内容としました。結果既にこの内容を知っている人には満足度が足りず、まだ知らない人にはそれなりに有用なセミナーになったかと思います。
I went to Seattle.
...プログラマーの古山です。 今回、弊社のスーパーAzureエンジニア原氏のおまけとして、レドモンドのマイクロソフト本社にお邪魔することができたので、その顛末をざっくりまとめてみます。 実のところ、私の初渡米でしたので、うっそーん、みたいな表現をあるかと思いますが、笑って許していただければ、と思います。いやほんと。
遠くへ行きたかったんだ。
僕が駆け出しのエンジニアだった頃、遥か海の向こうからやってきた肌の白い男はそう語った。
「どうして日本に来たんすか?」 「生まれたところから、とにかく遠くに行きたかったんだ。」 「どうして?」 「どうしてって、それが全てだ。君はそう思わないのか?」
なるほどと思った。 遠くへ行きたい。 遺伝子の運び手としての自分を顧みれば、確かにそれは本能に根ざした根源的な欲求なのかもしれない。 自らを構成する情報を遠くへ運び、あわよくば冗長化する。 そのために、遠くへ、ただ遠くへ行きたいと。 深く納得した僕は、自分をもっと遠くへ運びたいと、うっすらとそう思うようになった。
あれから長い時間が経ち、そして僕はまだ日本に居た。 あの遠くからやってきたエンジニアの故郷には、結局一度も足を踏み入れていない。 結局のところ、僕はそういう人間だった、ということなのだと思う。
+++
今日も今日とて慣れ親しんだキーボードを叩き、バーチャルな意味で遠くへと逃避していた僕を、その日現実がゆさぶった。弊社のイケメン代表が、僕にこう語ったのだ。
「シアトルにいかないか?」 「!?」
そこからのやりとりはよく覚えていない。 ぼんやりとした意識の中で、妻に土下座しまくり、田舎から母を呼び子供の世話と頼み、仕事はただかなぐり捨てた、そんな覚えがあるだけだ。
チケットとパスポートを握りしめ、エコノミーシートに座り。 気がつけば、僕は生まれたところから8,000キロも離れた場所に立っていた。 ついに僕は彼の故郷に足を踏み入れたのだ。 イミグレで一人隔離され、同行者をひたすら心配させたことも、この地にたどり着けた事実に比べれば小さなことだ。
それにしても、まさか、まさかこんなに時間がかかるとは。 気がつけば配偶者がおり、子供に4人も恵まれ、このままこの場所で老いていくのだろう、そんな風にあの頃の情熱を忘れたふりをしていたこともあった。でもどうにかこうにかこの場所にたどり着いたのだ。 たとえそれが3日だけだとしても、僕の人生的には初めて月に降り立ったアームストロング船長並の出来事だった。 人類史上初より自分史上初。人間は主観という檻から抜け出すことはできない。 神様ありがとう。

+++
僕のキャリアはゼネコン的SIerで始まった。 その大企業特有の技術は二の次で政治優先、体力優先な体質に嫌気がさし、OSSの自由な雰囲気に惹かれて、ただ電灯の明るさに蛾が惹かれるような機械的さで、ApacheやTomcat、JavaやLinuxの周りをフラフラしていた。 学ぶことは常に無限で尽きることはなかった。 政治はなく、ただ世界を前に進めようとする情熱だけがそこにあった。 正直言って、直接的な貢献はなにもできなかった。 ただ一度どこかの質問サイトで、Vmwareの上でVine Linuxを動作させようとしている人を助けたことが、その感謝の言葉が、僕にこの場所に居てもいいと、免罪符代わりになっていた気がする。 結局僕はスクリプトキディレベルの、そんなオタクだった。
そんな当時の僕にとっても、マイクロソフトは端的に言って敵だった。 だってこんなモノが出回るような会社なのだ。
ハロウィーン文書 http://cruel.org/freeware/halloween.html
今回の目的地は、その敵であるところの総本山、本社であるのだ。 オーマイガ。フォースよ、ともにあってくれ。

PaaSの観点から見たGCP
...こんにちは。プログラマーの古山です。
弊社はAWS,Azure,GCPと、大手一通りのMSPをやっています。 今回はGCPをとりあげてみます。 GCPは結構歴史が古く、とくにGAEは2008年から提供が開始されています。 ちなみにAWSは2006年から提供開始とのことです。若干負けておりますが、GAEはPaaSであり、PaaSとしてはかなり早いほうです。 ちなみにちなみに一番早いPaaSはForce.comのようです。2007年。おしい。 ちなみにちなみにちなみにGAEとは、Google App Engineの略で、サーバーのレイヤーが完全に隠蔽されたPaaSです。いまさらですがPaaSとはPlatform as a Serviceのことです。サーバーのレイヤーを意識する必要がないのでアプリなエンジニア向けです。なんか略語ばっかりですみません。
では、この辺の範囲の話ならばISAOに聞けば詳しい説明ができます、という概要レベルでさらっとふれていきます。 念のためですが、ここで触れている内容が全てではないです。 興味を持った方はぜひISAOにご連絡ください。
Cloud Endpointsについて
https://cloud.google.com/endpoints/
Google CloudDatastoreに簡単にアクセスするためのAPIを提供するサービスです。 SDKが充実しているので超簡単です。バックエンド側は簡素に実装して、フロント側をネイティブアプリやらJSやらで実装しようという戦略で輝くやつです。ただし現時点ではJavaかPythonでしか実装できないのでGolang一筋な方やPHP大好きな方は注意が必要です。
私、以前Javaで利用したことがあったのですが、その際JDOというデータアクセス用のライブラリを使用していました。 これ、やたら重く実際かなり泣かされたのですが、後で知った知識ではバットプラクティスなのでふつー使わない、らしいです。 GoogleがJavaでやる場合のデフォルトにしてるっぽいので、クラスが自動生成されたりと楽だったのに。泣ける。。 Javaでやるならあんまりメンテされてないですが、Slim3、もしくは世界標準なObjectifyあたりをオススメということです。 でも一番いいのはGOで実装すること。その場合、フルスクラッチか3rdパーティ製のライブラリを使う必要があります。
go-endpoints https://github.com/GoogleCloudPlatform/go-endpoints
google謹製の言語だけあって、リクエスト受けてからインスタンスが起動するまでのスピンアップタイムがダントツに短い。40msecくらいらしいです。ちなみにJDOだと7000msec。GOすごい。そろそろGOやるべきか。
認証について
アプリやウェブサイトってふつーログイン機能がありますよね。そのログイン認証をCloudEndpointsひいてはGAEで作成したアプリ/ウェブサイトでもっとも簡単に実装する方法は、Googleアカウントを使った認証方法。 これなら超簡単。 でも実際問題Googleアカウント持っていない人もいるだろうし、そもそもGoogleアカウントで認証したくないというサービスも多いだろうし。Googleアカウントホイホイ的な戦略でしょうか。闇が深そうな印象を受けました。
GCPのマネジメントUIについて
一昔前に比べるとずいぶん綺麗になったGCPのコンソールですが、機能てんこもりなAWSのコンソールと比べるとまだまだ素朴な感じがします。複雑なのがいいとは限らないので、これはこれで良いと思います。 無料枠が嬉しいGCPですが、その無料枠をフルに活用するためにクォーターを適切に設定する必要があります。 とはいえそれほどむずかしくはなく割と直感的です。 少なくとも日曜プログラミングにはGCP、そしてGAEが一番だと感じました。 目指せEXIT!(?)
Cloud Datastoreについて
https://cloud.google.com/datastore/
NoSQLなDBです。GAEと組み合わせれば無敵のスケーラビリティを発揮します。どんだけDAUが増えようともアクセスがスパイクしようとも、ほぼほったらかしにしておいておけるらしいです。すごい。
またNoSQLではあるものの、SQLっぽいGQLというクエリを使うことができます。
GQL reference https://cloud.google.com/datastore/docs/apis/gql/gql_reference
非常に制限が強く、また性能を発揮させるためにSQLとはまったく異なる気を使う必要があるものの、GQLのおかげで敷居はだいぶ下がっていると思います。ぜひ使ってみてください。
NoSQLに分類されるデータストアにはRedisやMongoなど色々あるとは思いますが、NoSQLとしてのベストプラクティスがあるというよりは、それぞれのデータストアごとにベストプラクティスがあるので、横展開は難しい模様。 また、薄々は気がついていましたが、学習コスト的な意味でちょっとショック。
Cloud SQL
リモートワークと未来
...気がつくと子供が4人になっていた。
こんにちは。プログラマーの古山です。
上から8歳、5、1、1。驚くべきことに下の二人は双子ちゃん。
日本が抱えるトッププライオリティな問題、少子化への貢献を考えれば手厚いサポートを期待してもバチはあたらないのではないか。。と思いつつ現実は厳しいのです。
私も妻の実家も遠く離れて親パワーには頼れない現状。
二人でなんとかしなければならないんだけど、まあ小学校にあがるまでは急に熱だして保育園に預かってもらえなくなったり、熱が1日で治るとかなにそれどこのファンタジーだし、そのうち有休尽きたりとか、非常にしんどくつらいです。
そもそも子育てに対しクリティカルな形で父親が関わる事に対し、社会の理解がまだまだ足りていない、具体的には仕事は常にトッププライオリティ。
トラブルがあるなら残業してリカバーするのが当然という空気がそこはかとなく漂っています。
この空気が残っているうちは、母親は父親をあてにすることができず結局負担は減らず、家庭崩壊の危機です。
話によれば、小学校入ってからも危機は続くらしい。恐るべし。
そして真に恐るべしなのはけっして我が家だけではなくこれが日本のふつーの子育て風景だということ。
弊社所属三児のママがリコメンドしてくれた記事 涙無くしては読めません 小4の壁 http://toyokeizai.net/articles/-/126281
これが少子化の国、日本のリアル。
そんな崩壊まっしぐらな我が家に、会社が救いの手を差し伸べてくれました。 それが、リモートワーク。
リモートワークのメリット
通勤時間が短くなる
通勤に2時間弱かかっていたが半分以下に。の時間を双子の相手にまわせばみんなにっこり。 いや幼児なんで起きてる時間の半分くらいは泣きまくりなんですけれども。
通勤時間を基準に考えれば在宅がベストなんですが、家にはいろいろ誘惑が多いのです。 それはもういろいろ。また家に居るんだから病気の子供を看病しながらだって仕事できるぜ!といいつつ、だいたい幼児は熱があるだけであってむしろ保育園に行きたくないからわざと熱出しているんじゃないかと思うほど元気にころげまわるので、実際は仕事なぞできるはずもなく。
なにもできないまま、翌日のカタストロフを迎える….なんて未来予想図を避けるためにもリモートワークなのです。これ大事。
集中できる
話しかけられない。 毎日続くと人恋しくなって自分から見ず知らずの人に話しかけにいっちゃうんじゃないかと思うほどの孤独。 それでいて周囲には働いている人々。 適度な背景としてのホワイトノイズ。これだけでゾーンに入れる確率30%アップ。
確率が上がるだけで確実に入れるわけではないんだけれども。 使っているコワーキングスペースの椅子は若干硬いがそれ以上の価値が有る、と思います。
全社会議に最前列で参加できる
会議はどうすんねん!という当たり前な疑問にも弊社バックオフィスチームはぬかりなく対応しております。 ツールはSkype for Buinness。 そのカメラを最前列に設置して頂いているため誰よりも前の席でプレゼンを鑑賞できるという、たぶん誰も思っても見なかったリモートワークのメリット。

知らないクラスタの人々と知り合いになれる、かもしれない
どうも個人事業主クラスタの方々が多いと思われる私が使っている空間。 イベントも数多く企画されている。 エンジニアという人種はその仕事の本質的に内向的だったりする人が多いんじゃないかと思いますが、強制的にフラグを立てるチャンスが多いんじゃないでしょうか。
きっと会社のオフィスに閉じこもっていてはありえなかった出会いがある、、、と妄想中。
仕事の未来はこの先にあるという確信
実はこれが一番大事だと思っています。
今はまだ子育てや介護世代向けのソリューションという位置づけですが、場所や時間に囚われない、国を、言語を、Timezoneすらまたいでチームを組んで働くという未来は、会社組織が順調に成長すれば必ずやってくる避けうることのできない確定した事項です。 そうでなくても日本語市場は減少の一途なわけですし、海外市場をターゲットにするためにもチームのグローバル化は必須でしょう。
仮に日本というドメスティックなエリア内に限定しても、過疎化する地方を活性化するためにリモートワークが強力な力を発揮することでしょう。
さらば満員の通勤電車。さらば過密のメガロポリス。
Google for Mobile に行ってきました
...会社さぼって、もとい直行直帰で横浜までGoogleのイベントに行ってきました。
終日イベントにも快く送り出してくれる良い会社です。 リクルートもしてるので、エントリーはこちらから。
さて、この1日分の仕事どっかでリカバらないと。。

久々のイベント参加でしたが、なかなか面白かったです。 こういうとこに行く楽しみは、テック業界のフロントランナー達のトラックを聞くのも、もちろんですが、それ以上に参加者を眺める、に尽きます。 当たり前といえば当たり前ですがうら若い女性エンジニアからスーツを着たいかにもなリーマン、腹の出た気むずかしげなおっさんまで、とにかく老若男女色んな人たちがいて、この種々雑多な人たちと同じクラスタに居るんだな〜と思うとなんか感慨深いものがあります。

さて私自身、Androidアプリデベロッパーですのでその視点から面白かったものを拾ってみます。
Android Studio 2.2
Android StudioとはAndroidアプリ開発に使う開発環境のことです。これがないとアプリ作れません。もとい作ることはできますがめっちゃハードルがあがります。 Androidニュービーにも簡単にアプリ作成の門を開く。それがAndroid Studio(以下AS)です。
その昔はEclipseというIDEにAndroid Developer Toolというプラグインを追加した環境を使用していたのですが、よりモダンで気が効いているIntelliJというIDEベースのものに変わりました。 個人的には使い勝手自体はそれほど変わらないと思っていますが、Gradleを使ったビルド周りだけは、antベースのADTより確実に進化していると感じます。ASの話題ではないんですけれども。
レイアウトにConstraintLayoutとFlexboxLayoutが追加
一人前のデベロッパーとして、AS付属のレイアウトエディタになぞ頼らずxmlをガリガリ編集するのだ! というか、エディタが使い物にならないので、それが唯一の選択肢だ! ADT時代からその辺はまったく進歩しとらん! というのが Androidアプリデベロッパーの共通見解だと思うのですが、ようやくまともに使えるものがでてくるようです。 その名もConstraintLayoutとそれをサポートするASのGUIエディタ。
ConstraintLayout
Androidのレイアウトを組むときはだいたいLinearLayoutとRelativeLayoutを組み合わせて作ると思うのですが、そういったようにLayoutGroupをネストさせてデザインすると、描画速度に悪影響があるとのことです。 知らんかったよ、というか知っててもそれ以外に手はないんですけれども。 ConstraintLayoutであれば、ほぼそのlayoutのみでデザインできるらしく、LayoutGroupのネストも不要になりパフォーマンス的にもよし?とのこと。 これは使うしかありません。
ただ気になるのは、そのネーミングといい使い勝手といい、これってiOSのStoryboardそのままでは? というあまりにクリソツな出来でした。 Appleにさされないよね?これ。
まあ、StoryboardはほぼGUI一択でのレイアウトデザインになるため、むしろ設定ファイルさわらせろ! というジレンマがあり、あまり好きになれなかったのですが、ある程度のものがGUIで作れ、さらに生成されたxmlを手で編集できるのであれば結構いいなーと思いました。
FlexboxLayout
そしてもうひとつがFlexbox-layoutこれも名前まんまな CSSのFlexboxをAndroidのレイアウトに使えるというシロモノのようです。 大丈夫か?このパクリっぷり。。
一昔前のCSSといえばfloatでの段組。そこで地獄を見た身としては、Flexboxは結構好きです。でもConstraintLayoutが十分使い物になるなら、これは覚えなくてもいいかな。 ただ日本のエンジニア @thagikura氏が書いているのでぜひ盛り上がってほしい気持ちもあります。
AngularUI Calendar (FullCalendar) dayClick not work expectedly on iOS
...bowerで入れた angularUI Calendar 1.0.0, FullCalendar 2.1.1での話です。
Angular WEBアプリでカレンダーを使いたいというニーズを完璧なまでに満たす AngularUI Calendar http://angular-ui.github.io/ui-calendar/
ですが、月(month)表示から日セルクリックで日(agendaDay)表示に切り替えようとしてdayClickを使用した場合、なぜかiPhoneではうまく動作しません。
正確にいえば、タップではなく一秒ほど長押しするか、軽く日セルをドラッグしようとするとdayClickが呼ばれます。
なんでどぅあぁぁぁーーーー!
と3日ほど頭を悩ませた結果、なんとか対処できたのでおすそ分けします。 ちなみにAngularUI CalendarはFullCalendarのラッパーなので、FullCalendarで同じような問題に悩んでいる方にも効くはず….です。
原因
dragイベントの扱いの違いに起因しています。 dayClickはclickイベントで呼ばれていません。dragの終了を検知して呼ばれています。 iOS上のSafari(というかwebkit?)以外では、タップして指を離した瞬間に drag開始、drag終了のイベントが発生するのですが、iOSではdragするか、しばしタップし続けないとdrag終了イベントが発生しないためのようです。
どうにもならんのでタップイベントでdayClickを呼ぶようFullCalendar.jsを修正しました。
4038行目付近
coordMap: null, // a GridCoordMap that converts pixel values to datetimes cellDuration: null, // a cell's duration. subclasses must assign this ASAP isTouch : false, // separate touch and scroll. // Renders the grid into the `el` element.4093行目付近
Amazon Linux に Moodle2.8.2 をインストールする方法
...eラーニングパッケージMoodleをインストールする機会がありまして速攻でggったところ
がヒット。
あまりに詳細な内容に勝ったな、、と思いつつセットアップしたところMoodleバージョンアップによる地雷が埋まっていたため地雷除去メモを作成しました。
Amazon Linux AMI 64biをセットアップ <-変わらず
phpとMySQLのインストール <- ココ!
上記リンク先の手順通りやると、以下のメッセージにぶちあたります。
Moodle 2.7 or later requires at least PHP 5.4.4 (currently using version 5.3.29).<br />Please upgrade your server software or install older Moodle version.てか、Amazon LinuxのPHPって5.3なのかよ!
ということで、以下のコマンドでphp5.5,MySQLをセットアップ
apache2.4とphp55-mysqlndあたりがポイントです。
sudo yum -y update; yum install httpd24 mysql-server git php55 php55-gd php-pear php55-mbstring php55-mcrypt php-zts php55-xmlrpc php55-soap php55-intl php-zip php55-xml memcached php55-mysqlnd php55-pecl-apc php55-common sudo chkconfig mysqld on sudo chkconfig httpd on sudo service mysqld restart sudo service httpd restart sudo mkdir /var/www/moodledata sudo chown apache:apache /var/www/moodledata3.DB作成 <-変わらず
Mac どこでもターミナル
...最近ubuntuからmacに乗り換えました。 これでiPhoneアプリ開発し放題だぜ!(ウソ
しかし同じunix由来のOSとはいえ、異なる点もちらほら。 一番気になるのが、基本いちアプリ、いちウィンドウである点。
たくさん仮想デスクトップを生成してあっちこっちでターミナルを立ち上げたい派の私としては、この仕様がイマイチなじまないのです。 まあ仮想デスクトップ使いまくり、ターミナル立ち上げまくりなのはubuntuerの悪いクセだとは思いますが。
複数のターミナル立ち上げようと思ったら 1.spotlightでterminal.appを呼び出す。 2.⌘ + N で新しいターミナルを表示 3.表示されたターミナルを目的の仮想デスクトップまでドラック
だるぃ….
ggってみると、スクリプトをアプリケーション化する方法があるみたいなので作ってみました。
https://blog.colorkrew.com/uploads/T.zip
zipを展開してApplicationsに放り込めば使用可能です。
▪️使用方法 1. spotlightでT.appと入力(t.で補完されるはず) 2. 今いる仮想デスクトップでターミナル起動!
やってることは
open -n /Applications/Utilities/Terminal.appだけです。 では良いターミナルライフを!
▪️参考 技術/MacOSX/シェルスクリプトを".app"(“Bundle”)化する http://www.glamenv-septzen.net/view/1201