[勉強会] meetup app@1 でオープンソースについて発表しました

2015/11/21 Sat meetup app@1 という勉強会を開催しました

https://meetupapp.doorkeeper.jp/events/33820

仰々しいタイトルが付いていますが、完全に私見まとめを発表させて頂きました

オープンソースだけというよりは、最後の方は、普通に製品やサービスのロードマップ、ビジネスモデル的な観点になりました
もちろんこれが全てではないと思うし、わたしはマーケティングのプロでもないので間違っているかもしれないですけど


[Android]Xiaomi Redmi Note2にGooglePlayをインストールする

クロスプラットフォームで開発していると、やはり最新の端末が欲しくなりますよね~

1年以内発売の iPhone と Windows Phone は持っているのですが
そろそろ新しい Android が欲しい~と思っていたので、買ってしまいました

シンガポール旅行に行った際に、ブギスの電気屋街、Sim Lim Square(シムリム スクウェア)で、今をトキメク Xiaomi(しゃおみ)デバイスを購入しました

全部で6Fまでありましたが、結局1Fのお店の品ぞろえが一番まとまってる印象でした
Xiaomi正規店も1Fに入っていました


Xiaomi Redmi Note 2

購入したのは、Xiaomi Redmi Note 2

画像のように、デフォルトでは中国語のアプリがたくさん入っています
そして、Google Play Store は入っていません!

デフォルトのIMEが Buidu なので、まぁこのままでは、日本語が打てません(><;)

なので Google Play Store をインストールする方法をメモしておきます


GooglePlay installer APKが最適解

検索すると色々な方法が出てくるのですが、おそらく、Google installer のAPKを直接インストールするのが、手っ取り早いです
(チャイナストアやMIストアからGooglePlayらしきものをインストールしても、わたしの場合は、動作しませんでした)

情報元はこちらの Xiaomi公式コミュニティ掲示板です

Xiaomiはすごくコミュニティも発達してるんですよね~ちゃんと英語の掲示板なので、読めました(^_^)

上記サイトにある、GooglePlayを入れるための Google installer をAPKからインストールします

Google installer谷歌应用下载器.apk
(1009.36 KB, Downloads: 237400)

PCから落とすなどするよりも、直接 Xiaomi デバイスからダウンロードした方が、早いと思います
もしかしたら、MIアカウントを作らないとダウンロード出来ないかもしれません(わたしは作りました)


Androidがセキュア過ぎて、思った順番にインストール出来ない

installer を入れると、以下の4つがインストール可能になります

  1. Google Services Framework
  2. Google Account Manager
  3. Google Play services
  4. Google Play Store

そのままインストールしたら良いので、おそらく、この順番でインストールが走ると思います
(ここ、画面キャプチャを取り忘れたので申し訳ない)

ところが、1番目をインストールしようとすると、本当にインストールしていいかどうかの許可画面が出ますよね、こんな感じに…
(イメージ画像です↓↓↓)

この画面で 「1番のアプリに対して」ユーザが許可を押そうとするときに、すでに「2番目のインストール」が動いてしまうのです

結果的に、 「1番のアプリの許可画面」は裏にまわってしまい
「2番目のアプリの許可画面」が一番手前に来ることになります
つまり最終的には、「4番目のアプリの許可画面」が最前面になります

入れたいアプリは Google Play Store なので、それでも良いかなと思って
4→3→2→1の順にインストールするんですけど、
お察しの通り、Google Play Store は起動しません
おそらく、Google Services Framework とかが、Google Play Store のインストールに必要なんじゃないかなーと思います

なので、いったん、Google Play services、Google Play Store をアンインストールし、再度、Google Play services、Google Play Store をインストールします

いやー(~0~) これで、わたしの端末で、Google Play が動くようになりました!


その他、Xiaomi デバイスで気づいたところ

日本語モードはない

日本語モードは入っていません
ROMとか焼き直すと良いらしいですけど、まだやってないです

Permissions アプリがうれしい

デフォルトで入っている Permittions アプリが最高に便利

各アプリ毎の許可 どのアプリが使ってるか

SIMは2枚ささる

両方LTEをつかめます
ただし、片方がLTEをつかんでいるときは、もう一方はつかめない仕様です

なので、日本で、1番目にDocomoを刺して、2番目にauを刺す、とかして
1番目はLTEでデータ通信、2番目はauで電話とメールのみ
とかにしたくても、ちょっと難しいかも
日本は今現在、ほぼLTEになってしまってるので、そういう活用は出来なさそうかも…?

どちらにしても、技適通ってない端末なので、日本では使っちゃダメ

まとめ

もろもろ満足しています
同じようにシンガポールや中国で購入した方の参考になれば~


[Hugo]ブログ構築メモ(1)-Hugoとテンプレート

Windows10のノートPCに Hugo というスタティックジェネレーターをインストールして、このブログを構築しています
作ったブログは、GitHub Pages にアップして運用しています

今のところ気に入っているのは

  1. ブログの管理が GitHubで行えること
  2. ブログ用の運用サーバーが不要なこと (ありがとう!GitHub)
  3. GitHubにPushしたら、werckerの自動ビルドでGitHubPagesにアップすること

この3点かなー
今日は上から2番目までのブログ構築部分(つまりHugoの部分)をメモしておきます


インストール (というか単なるexeファイル設置)

わたしが 2015/9/9 現在ダウンロードしたバージョンは v0.14 です
Hugoはexeだけで動くので、適当なディレクトリに置きます
わたしは

C:\Library\Hugo\bin\hugo.exe

に設置することにしました


ブログ新規作成

Windows標準のコマンドプロンプトで作業します
このとき既に、ブログを作ろうとするディレクトリが存在していたら、ブログ作成は失敗するので、気を付けてください

FATAL: 2015/09/09 C:\Users\haruk\Dropbox\sites\Blog already exists and is not empty

リネームなどして、再チャレンジ
うまくいくと、何の反応もなく終わります

C:\Users\haruk\Dropbox\sites>c:\Library\Hugo\bin\hugo.exe new site Blog

C:\Users\haruk\Dropbox\sites>

ディレクトリ構造の確認

C:\Users\haruk\Dropbox\sites>cd Blog
C:\Users\haruk\Dropbox\sites\Blog>dir
 ドライブ C のボリューム ラベルは MyWindows です
 ボリューム シリアル番号は xxxx-xxxx です

 C:\Users\haruk\Dropbox\sites\Blog のディレクトリ

 2015/09/09  20:29<DIR>  .
 2015/09/09  20:29<DIR>  ..
 2015/09/09  20:28   270 .gitignore
 2015/09/09  20:28<DIR>  archetypes
 2015/09/09  20:28   107 config.toml
 2015/09/09  20:28<DIR>  content
 2015/09/09  20:28<DIR>  data
 2015/09/09  20:28<DIR>  layouts
 2015/09/09  20:2836 README.md
 2015/09/09  20:28<DIR>  static
   3 個のファイル 413 バイト
   7 個のディレクトリ  80,351,985,664 バイトの空き領域

C:\Users\haruk\Dropbox\sites\Blog>

あっという間に自作ブログのベースは完了です
次はテンプレートを落としてきます


テンプレート適用

GitHubから有志の人たちのテンプレートを拝借してきます

たくさんテーマがあるけど、まじでうざいテーマしかない
おっと失礼しました
自己主張が激しいテーマが多いです

とりあえず、GitHubのスター数が多いテンプレートをチェックしてみました
中でも一番自分が気に入ったものが、hyde-x

テンプレートは自分のサイトの顔になるので、色々悩みましたが
結局はデザインよりも機能が一番多いのがいいんでない?という発想で選びました

コンフィグファイルに

が揃っていたので、自分であれこれする手間も省けるかなーという印象

GooglePlusはもう今ではダサいんじゃね?
というアドバイスを受けたので有効にしていません\(^o^)/
同様、Gravatarもいらんやろ…と思いましたが、アイコン代わりに仕方なく使いました

Gravaterは自分でハッシュ作成をしないといけなかった
とゆーか、こんな変換くらいサイトで提供してよ… イマドキプログラマに変なところで手間かけさすなよなーいやまじで(‘ε’)
https://ja.gravatar.com/site/implement/hash/

話が多少逸れましたが、この hyde-x をテーマとして、Gitコマンドを使って適用します

わたしは、SourceTree内蔵のGitを使ってみました
%USERPROFILE%\AppData\Local\Atlassian\SourceTree\git_local\bin
(参考)https://answers.atlassian.com/questions/245850/how-to-run-a-git-command-as-a-custom-action

“c:\Program Files (x86)\Git\bin\git.exe とか持っているなら、それでも可

themes ディレクトリの下で作業します

C:\Users\haruk\Dropbox\sites\Blog\themes>C:\Users\haruk\AppData\Local\Atlassian\SourceTree\git_local\bin\git.exe clone https://github.com/zyro/hyde-x
Cloning into 'hyde-x'...
remote: Counting objects: 358, done.
remote: Total 358 (delta 0), reused 0 (delta 0), pack-reused 358
Receiving objects: 100% (358/358), 253.37 KiB | 175.00 KiB/s, done.
Resolving deltas: 100% (153/153), done.
Checking connectivity... done.

C:\Users\haruk\Dropbox\sites\Blog\themes>

C:\Users\haruk\Dropbox\sites\Blog\config.toml をhyde-x用に修正しましょう
hyde-xテーマのサイトに解説が書いてあるので、それをそのままコピペします
タイトルやTwitterアカウントなど、自分に必要な情報を更新します

他のジェネレータも同様ですが、
コンフィグは結構、個別テーマに依存した項目になっているので(元のHugoの機能が少ない)別テーマでは使えないかもしれない点は注意です


ブログ投稿

contentの 下に postディレクトリを作り、ブログ更新するMDファイルを置きます

C:\Users\haruk\Dropbox\sites\Blog\content\post

わたしの場合、hyde-x が post の下、という仕様だったからであって
他のテンプレでは違うかもしれません
とにかく、ここの post の下に、以下のマークダウンファイルを用意します

<20150909-HugoInstallAndTheme.md>

+++
date = "2015-09-09T01:11:00+09:00"
draft = false
title = "[Hugo]Hugoブログ構築メモ-WindowsインストールとHugoテンプレート"
categories = ["Hugo"]

+++

Windows10のノートPCに [Hugo](http://gohugo.io/) というスタティックジェネレーターをインストールして、このブログを構築しています  
...(以下略)

ルート C:\Users\haruk\Dropbox\sites\Blog\ に移動し、Hugoコマンドを実行します

C:\Users\haruk\Dropbox\sites\Blog\themes>cd ..

C:\Users\haruk\Dropbox\sites\Blog>c:\Library\Hugo\bin\hugo.exe server -w
0 draft content
0 future content
5 pages created
1 paginator pages created
5 categories created
in 201 ms
Watching for changes in C:\Users\haruk\Dropbox\sites\Blog/{data,content,layouts,static,themes\hyde-x}
Serving pages from C:\Users\haruk\Dropbox\sites\Blog\public
Web Server is available at http://127.0.0.1:1313/
Press Ctrl+C to stop

ブラウザで http://127.0.0.1:1313/ にアクセスすると、サイトが出来ています
実際には、public 以下にHTMLがジェネレートされているので、public以下を自分の GitHub の gh-pages ブランチにアップすると、自前ブログの完成(^^)

これも余談ですが、CNAMEファイルを置くと、独自ドメインが使えますね   (これ、ファイル名が大文字じゃないとダメでした)


簡単に構築は出来たが…

ここまでだと結構簡単にできますが、ここから先は、自分で頑張るしかない部分です…

何がって?
結局最初に諦めた、デザインのことと
CMSに当たり前にあって、Hugoには無い機能を、実装していく必要があります

今のこのブログは、先ほどの hyde-x テンプレートを改変しまくっています
とはいえ、トライ&エラーの繰り返しだったので、解説まではできないかも…
テンプレートやHugo本体の解説は、また気が向いたときにするということで許してください

それよりは次回は、CIツールである wercker の設定をメモします
(次へ続く)


[Hugo/wercker]ブログを移行しました

ライブドアで書いていたブログ 「遥佐保の技術メモ」 http://blog.livedoor.jp/haruka_sao/ を移植することにしました

思えばライブドアはソースコードを表示するのには適していないブログでした…
2008年からなので、もう7年も!?
かなり気づくのが遅かったですね…

もともと、Sao`s Closed Circle というGitHub Pages の練習用のブログを JekyllBootstrap で作っていました
今回からは、ツールも新たに Hugo を使うようにしました

書くほどのお知らせじゃないですが、このブログはHugoという静的サイトジェネレーターで作っています、静的、つまりただのHTMLです
自前運用です
ここ5年くらい前?から流行っているらしいです
最近は技術系以外でもよく使われているらしいです

どのジェネレーターが良いかと言うのは、よくわからないですけど
Jekyll(Rubyベース)が有名なのかなーと思います

Static Site Generators まとめによるとJekyllはGithubスター数がトップですね
(Static Site Generatorsは、ちまたの静的サイトジネェレータ一覧です)
https://staticsitegenerators.net/
こうしてみると、Hugoは後発ながら結構人気みたい

Jekyllはとても高機能で(イイコトなんですけど)
でもわたし、Rubyがよくわからなくて(すまん…Web屋さんじゃないの…)
そんなときにGoで作られた、ちょっぱや生成のHugoを知ってしまったら、もうJekyllには戻れなくなりました、haha…

Jekyllの方が事例も多いし、検索ですぐ解決できるけど、ちょっとジェネレートの時間がかかるのが弱点かも
たいして記事数のないわたしでもそう思いましたから、記事数の多い人に取ったらちょっとイライラの原因だったかもしれませんね

Hugoは、機能あれもない、これもないの、(ヾノ・∀・`)ナイナイずくし
けどそこが良い!シンプルで良いんです!(_≧Д≦)ノ彡☆

さらに、生成するだけでなく、CIサービスである wercker を使って、GitHubにプッシュしたら自動でデプロイするという仕組みにしました
これを構築したメモもおいおい記載していくつもりです
(そうしないと自分が忘れてしまう…)

このブログ自体もまだまだ作り中で、色々と足りてない機能が多いのですが、勉強しながら追加していこうと思います

過去ブログの情報移植もこれからです
(RSSが変に更新されるかもしれません)

気持ちも新たに、役立つ情報を発信していければと思っています!

またよろしくお願いしまーす!


[Mac] Homebrewインストールログ

Homebrew とは、Mac上のアプリケーションパッケージを管理するソフトです

詳しくはこちら↓↓↓に書かれているのですが、自分のメモとログを残します

Macでのインストールログ

## Homebrew入ってない状態
MacProSao:~ Sao$ brew
-bash: brew: command not found
 
## VIMでバッシュプロファイル作成
MacProSao:~ Sao$ vim .bash_profile

MacProSao:~ Sao$ more .bash_profile 
export PATH=/usr/local:$PATH

MacProSao:~ Sao$ pwd
/Users/Sao

## /usr/local の作成 
MacProSao:usr Sao$ sudo mkdir /usr/local/

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:
MacProSao:usr Sao$ ls -al
total 8
drwxr-xr-x@   12 root  wheel    408  5 11 02:24 .
drwxr-xr-x    30 root  wheel   1088  5 11 02:17 ..
drwxr-xr-x     5 root  wheel    170  9 10  2014 X11
lrwxr-xr-x     1 root  wheel      3  2 22 18:01 X11R6 -> X11
drwxr-xr-x  1053 root  wheel  35802  5  2 23:30 bin
drwxr-xr-x   257 root  wheel   8738  5 11 01:25 include
drwxr-xr-x   271 root  wheel   9214  5 11 01:25 lib
drwxr-xr-x   170 root  wheel   5780  4 26 13:43 libexec
drwxr-xr-x     2 root  wheel     68  5 11 02:24 local
drwxr-xr-x   244 root  wheel   8296  4 26 13:40 sbin
drwxr-xr-x    44 root  wheel   1496  5 11 01:25 share
drwxr-xr-x     4 root  wheel    136  2 22 17:56 standalone

## Homebrewのインストール
MacProSao:usr Sao$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/...
/usr/local/share/man/man1/brew.1
==> The following directories will be made group writable:
/usr/local/.
==> The following directories will have their group set to admin:
/usr/local/.

Press RETURN to continue or any other key to abort
==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/.
==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/.
==> /usr/bin/sudo /bin/mkdir /Library/Caches/Homebrew
==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew
==> Downloading and installing Homebrew...
remote: Counting objects: 3572, done.
remote: Compressing objects: 100% (3421/3421), done.
remote: Total 3572 (delta 35), reused 1459 (delta 18), pack-reused 0
Receiving objects: 100% (3572/3572), 2.72 MiB | 2.47 MiB/s, done.
Resolving deltas: 100% (35/35), done.
From https://github.com/Homebrew/homebrew
 * [new branch]      master     -> origin/master
HEAD is now at c007efc Riak 2.1.1
==> Installation successful!
==> Next steps
Run `brew help` to get started

## プロファイル読み込み 
MacProSao:~ Sao$ source .bash_profile 

## バージョン確認
MacProSao:~ Sao$ brew -v
Homebrew 0.9.5
 
MacProSao:~ Sao$ 

Hugoを入れるためにインストールしてみました
ついにわたしもGoを使う日が来るなんて…(゚∇゚ ;)


[PMP] PMPロゴのダウンロード場所

何かと探したけど、全く判らなかった…

「PMP ロゴ ダウンロード」で検索に引っかかる情報が、個人的に理解できなかった
古いのか、単にわたしのITリテラシーが低いだけなのか…

PMIサイトの中にあります

PMPLogo

Certifications
 >Certification Program
  >左の MyPMP
   > PMP Logo

ここからダウンロードできます

Certifications のページって、思いつかなかったですよ…(>o<“)

ちなみに、追い打ちをかけるように、Chrome で JPGをダウンロードがうまく出来なかった
 ※ PMP_Business_Card_Logo.ashx って……(><)

IEだと、JPGロゴがダウンロード出来ましたよ 


[Android] 開発者向けオプション表示とAPKインストールコマンド

ずいぶん昔から出ている情報ですが、メモっときます

Android端末に自作アプリを入れるシンプルな方法です

Android端末での準備

Android4.2以降の端末だと「開発者向けオプション」が非表示になってるので

USBデバッグを有効にしたい場合は

端末情報 > ビルド番号

このビルド番号を7回クリックしたら、「開発者向けオプション」が表示されます

やっておくことは
こんなところでOK

(参考)
USBデバッグを有効にする、提供元不明アプリのインストールを許可する - Yahoo!スマホマネージャーヘルプ 

Android端末にAPKをインストール

AndroidSDKをインストールした場所に adb tool が入っています

わたしの場合は C:\Library\android-sdk にインストールしたので、adb.exe は

C:\Library\android-sdk\platform-tools\adb.exe

よく他のサイトで、PCの環境変数パスに、C:\Library\android-sdk\platform-tools を追加設定する、というのを見かけますが
単にこの abd.exe を使うだけであれば、環境変数への追加は必要ないです

UBSでAndroid端末をPCに接続した状態で
手元の MyApp.apk をインストールするコマンドはこちら

 adb install -r MyApp.apk

さくっとインストールできました

デバイスからAPKリンクをつつくなどでも良いのですが
開発者っぽい感じかつ、
ちょっと手元でAPKを試したい時の参考までに(^^)/


[GitExtensions] 行単位で変更をリセットするRコマンド

GitExtensions を使ってみました

GitExtensions では、commit 時に、行を選択して
その選択部分だけをリセットする(コミット前に合わせる)という機能があります

以下↓↓↓のような適当なファイルがコミットされていたとします

ファイルの下に、変更を追加してみました

Giet Extensionsを見ると、ファイルが変更されたので、Commit(1) になっています

差分は、以下のような感じ
追加した 「20」、 「100…」 の数字が、緑色の変更分として表れていますね

実は、これは作成中のプログラムなどで、
「100…」 の部分は、Commit には不要だったとします

そこで、以下のように、Commit には不要だなと思った部分を選択して [R] キーを押してみます

以下↓↓↓のような感じで、ここの行消してもいいの?と聞いてくれます

「はい」にすると、元のファイルから、選択した行を削除してくれます

この動作は、Commitした/しないに関わらず、元ファイルに反映されます

「はい」を押したあとのファイルの状態↓↓↓

あぁーあそこ、削除しとかなきゃ。。。
というときに、元ファイルに戻ってから、再度コミットする、
という手間が省けます

便利やね(^^)/


[勉強会]2015 MVP Community Camp~大阪~「クロスプラットフォーム開発 の紹介」

2015/1/31 に 2015 MVP Community Camp~大阪~ というイベントが開催されました

http://connpass.com/event/10478/

そちらで一枠セッションをさせていただきました

実際には指摘通り、あまりクロスプラットフォームの話は入ってなくて申し訳ないです

ちなみに 2015/1/31 現在、Visual Studio 2015 はまだCPTなので
この資料に記載している情報は未確定、未実装ですが

mobile first and cloud first の思想は
Satya Nadilla からのメッセージということで
受け取っていただければと思います


[MSMVP] 2015年1月度Windows Platform Development再受賞しました

遥佐保(はるか・さお)です

今年もマイクロソフトさまより MVP を受賞させて頂きました

カテゴリー名称は Windows Platform Development となります
昨年と変わらず、クライアントサイドの技術カテゴリーでの受賞となります

クライアントサイドというのは、わたしの解釈では、PCやモバイル端末に関する技術のことを指します
わたしは特に、Windows Runtime について、知的好奇心を満たすための試みを去年はたくさん行いました
これはサーバ、クラウドとはちょっとジャンルが違いますね
また、開発言語やアプリケーションのジャンルとも少し違いますね

そしてこの、マイクロソフトMVPとは、何かしらの形で技術コミュニティに貢献した結果、マイクロソフト社がアワードとして個人を表彰する制度のようです

マイクロソフトの技術に中立的もしくは否定的な方にとったら
お前だから何なんだよって思う方も多くいらっしゃると思います

去年は非常にそれを多く感じた1年でもありました
たぶんピュアなC++について、例年よりも、たくさん勉強したからですね(*´ω`)

OSS的な発想の方との関わりも例年に比べて多かったです
マイクロソフトの好意的なコミュニティの輪から外れた体感も多く出来ました

そこでは、勉強しようという姿勢が自分の中にあったら
自分自身のメインが何であれ、全否定はされないということがよく判りました

助けてくれる人も多くて、本当に本当に、沢山の人に助けられました
お礼を自分のブログに書くなんて、とてもおこがましい行為なのですが、本当にありがとうございました

MSマンセーのわたくしが記載するのも全くもってナンセンスではありますが
今年も何かを維持し続けることが出来たというのは、自分でもまーよくやったんじゃないかと思います…

自信をもって、謙虚を忘れず、これからも日々精進してゆきたいと思います

これも、周りの方々のおかげです
重ねてですが、本当にありがとうございました

2015年もよろしくお願いします!