このエントリーをはてなブックマークに追加

アメリカに行くプランはどうなった?と聞かれて無言になる自分。そんなこと考えていた事もあったなぁと。アメリカに行くプランは。。。僕は、何になりたいのか、何を目標にしているのかを気づかせてくれた彼の一言に感謝です。大体、日本人には、inspireされずに外国人にinspireされているんです。

日本人だらけの職場にダイバーシティとは何かを自問自答する日々。僕の一言もハラスメントを含んでいたかもしれない。ダイバーシティのある組織が強い理由を身をもって体感したことのある自分。そしてそれを許容してくれている、組織。仲間。お客様、パートナー様。

この半年に起こった苦しい事も楽しかった事もすべて自分の糧となり残っていくのです。特に痛みに関しては、次の世代に残してはいけないものだと思うのです。

僕は職場の公用語が何語だろうと、Microsoftの製品を愛してやまない人もオープンソースが嫌いな人がいても、それを許容しながら自分の糧にしようと思っています。価値観がぶつかりあったときにしか、innovationは生まれない、建設的な議論にならないと思うのです。各ミーティングルームの横に貼っていますよね。

僕がもしMSの社内を紹介するときには、モノではなく、カルチャーを紹介しようと思います。

MSには、素晴らしいカンパニーカルチャーがあって、自由にものが言えて、革新的なアイデアが溢れていて、周りがチャレンジする姿に感化されてチャレンジが繰り返されている。

でもね、気づいてほしいのは、評価されるものや、目に見える成果が全てではないこと、その成功を陰ながら支えている人がいるということ。批判される人が悪いかというとそうではなくて、批判される人っていうのは、必ず良いものを持っていて、普段は、寡黙な人であっても、何か意見を引き出せるようなファシリテーションが必要だということ。

ミーティングでは、タイムキーパーとファシリテーターがいて、上司にそれを任せないこと。上司は、部下の言うことを拾って行くこと。小さな積み重ねがinnovativeな組織を産む。建設的に既成概念にとらわれず、ディスカッションに集中すること。前を向いて進む事。

みんながYes!いいね!って言うのは、再考する必要があるのではと思う。

ライト兄弟のイノベーションを誰が予想できたでしょう? 貧乏で金がなくて、時間もない、それでも物体を重力に逆らわせて空を飛ばせたかった。そんな熱意が人を動かした 。金は集まらなかったけどね。スタートアップに必要なものそれは、多くがタイミングで、それを下支えするカルチャーにあるんです。

Simon SinekのTEDx Talkを見てください。スタートアップが成功する仕組みがあります。どうやって顧客に接するか、プロジェクトを考えるか、プロダクトを考えて行くか。

how great leaders inspire action : simon sinek

そして、bill grossのこのプレゼンテーションでは、スタートアップが成功する唯一の理由を説明してあります。

The single biggest reason why startups succeed

シンプルにいうと、Whyから始めることと、タイミングです。

もし、スタートアップでベンチャーをあげようとする人、もしくは新しい組織をboot upしょうとしている人、
特にリーダは、この仕組みに着目して行動すると良いと思います。

Whyは、Whatより大切です。何をするかより、なぜそれをするのか考えてみましょう。なぜが出て来なければ、それをする意味はないです。その組織が存在する理由もその会社が存在する理由もないです。人々の行動を決定づけるのは、残念ながらWhatから始まります。ただし、Whatは長続きしない。

何をするのか→何のために→どうやって では遅いです。
何のために→どうやって→何をするのかという思考のほうが収束が早いです。
そして、仲間はそれに向かって必死に働きます。しかも楽しく。理由がはっきりしているからです。

生きている意味を問答している暇があるなら、なぜあなたがそこにいるのかを問うてみると良いと思います。必ず各人に存在理由があり、そこにいるのです。一人では生きていけないので、人を頼る必要があります。それなのに過当競争の中で食い合って行くのでしょうか?そんな必要はないです。Whyが定義されていれば。

マイクロソフトがOSSに取り組む理由をはっきりと語れる人がいますか? 理由はすべてmissionに含まれています。

世界中のすべての人々とビジネスの持つ可能性を最大限に引き出すための支援をすること

一緒にもっともっとやりたいことをできるようになろう。まずは、自分から。そして、僕の周りから。

Every story begins with a name…


このエントリーをはてなブックマークに追加

※2017-06-01 update

※タイトル偉そうですが、MCPの受験何度か失敗しています。私がMicrosoftに移ってLinuxおよびOpenStackしかほぼ知らなかったところから、Azureを知り、Azureを活用し、パートナー様およびお客様へAzureを訴求できるところまでの半年間を中心にまとめて行きます。

免責事項

こちら、個人的にまとめているものなので、JFYIということでおねがいします。試験合格の保証をするノートではありませんし、このノートにおいて生じたいかなる問題も責任を負いかねるとご承知おきの上、ご活用いただければと思います。

MCPを取るといいこと

MCP の試験勉強を通して、体系的に学習でき、実践的な問題・課題を通して、最新の技術のキャッチアップも含めてできることができるようになります。また、他のソリューションとの違いを学習することで、いかなる場面においても、Microsoft製品の良い所もしくは、制約事項を説明できるようになります。

試験準備

  1. OD(試験範囲:Objective Document)は必ず読む
    70-532 (VisualStudio)
    70-533 (Microsoft Azure)
    70-534 (Microsoft Azure)
    試験の難易度は、532 -> 533 -> 534という感じです。
  2. MSが用意しているリソースを参考にしてください。(MSTEP、Channel9など)
    70-532 Ignite2016 セッション (70-532:英語)
    70-533 Ignite2016 セッション (70-533:英語)
    70-534 Ignite2016 セッション (70-534:英語)
  3. 試験範囲のドキュメント
    (少なくとも日本語のもの)を斜め読みしておくのをおすすめします。
  4. ドキュメントでわからない単語がある場合は、その単語が何を意味しているか解読してください。
    (古いワードの場合、現状の物に置換が必要)
  5. ドキュメント眺めながら、手を動かさないとよくわからないところは手を動かしてください。
    (例えば、PowerShellやAzure CLI、ポータルの使い方)
  6. 手を動かすだけでなく、ノートか何かにお絵かきしながら頭に図が浮かぶようにしておいてください。
    (アーキテクトの試験なので)
  7. 少し古い情報があることを念頭において勉強してください。
    試験のアップデートがAzureの進化のスピードに追い付いていません。が
    クラウドに関する基本的な考え方、アーキテクトとしての資質を問う試験には変わりないので そこを意識して勉強することが大事です。

試験申し込み

概ね勉強出来た場合、試験を申し込んでください。
Pearson VUEで申し込みができます。
70-532 (VisualStudio)
70-533 (Microsoft Azure)
70-534 (Microsoft Azure)

パートナー様向けに、AzureのMCPに関して特典もあります。
Azure Skill向上のためのページ

試験本番

  1. スキップできる問題は、スキップしてください。(きっと難易度高いので、あとから考えてください)
    複数の設問にまたがる問題が出題される可能性があるため、そこも意識するといいです。
  2. 日本語がおかしいと感じたら、英語で確認してください。
  3. チェック忘れやチェック間違いなど見直しは必ずやってくださいね :)

不合格の場合

もし、失敗したら、Microsoftの公式認定模擬試験を提供する会社である
MeasureUP ”を使って勉強することも頭に入れておいてください。  
試験を受ける前から利用しても良いのですが、試験対策にはなるものの、*Azureを知る*という意味ではおすすめしません。
(英語も含む)ドキュメントを読めるようになるのもアーキテクトとしての資質だと思うからです。

他のクラウドソリューションを使ってきた人、マイクロソフト製品およびAzureの初心者

OpenStacker(もしくは、AWSのアーキテクト)がAzureを勉強するためには、共通部分を認識しつつ、置換できるところを置換していくのが良いです。そもそも、Azureポータルを触ったり、Azure CLIを触ったり、Visual StudioやAzure Storage Managerを使ったことない人は、受けないほうが良いと思います、合格できる可能性は、極めて低いです。
一般的なクラウドに関する知識を問われる試験ではなく、あくまでAzureのArchitectとしての認定を受けられるかどうかなので。

例えば、仮想ネットワークという言葉の意味は、同じだけど、サブネットのバインディングの考え方違うとか(OpenStackも最近、マルチプルサブネットをサポートした気がします。)、VNET Peeringを使う場合、Route機能を利用すると同時にOS側の設定が必要などがあります。Azureのベストプラクティスを読むことで他のクラウドソリューションとの違いを覚え、ベストな提案ができると信じています。
MCPは、Azureの中でも幅広い一部なので、必ず一番最初に試験範囲を読むことをおすすめします。

あまりないかも知れませんが、OpenStackやAWSなどでブイブイ言わせていたアーキテクトでもAzureに触れずにいきなり、試験を受けた場合、とんでもないことになります。Azureを体系的に学び、Azureを知り、AzureのMCPに合格したうえで、制約事項を知りながら、ベストな提案でお客様に使っていただくのが良いかと思います。

ちなみに、私はMSに入って6ヶ月が立ちました、以前からAzureのインフラ部分は、すごいと思っていましたが、触ってみるとクラウドプラットフォームとしての出来がかなりよく、他社のサービスとの差別化を意識して、お客様の声をよく反映出来ているクラウドだなと感じています。

何かご質問があればお気軽に。

以上、よろしくおねがいいたします。

pub 4096R/102EFFB8 2017-04-02 Kyohei Moriyama (sasukeh) flogofrein@gmail.com
Primary key fingerprint: 2BE2 1FA9 8F72 C692 1E37 6072 5440 EEBA 102E FFB8


このエントリーをはてなブックマークに追加

DockerのSubcommandはこの前ご紹介したので
今回は、Docker composeのご紹介をします!

Define and run multi-container applications with Docker.
# Dockerとマルチコンテナアプリを定義し実行します。

Usage:
  docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
  docker-compose -h|--help

Options:
  -f, --file FILE             Specify an alternate compose file (default: docker-compose.yml)
  #ファイル名の指定
  -p, --project-name NAME     Specify an alternate project name (default: directory name)
  #プロジェクト名の指定
  --verbose                   Show more output
  #バーボス、ログたくさんモード
  -v, --version               Print version and exit
  #docker composeのバージョン
  -H, --host HOST             Daemon socket to connect to
 #dockerdが走っているホストの指定

  --tls                       Use TLS; implied by --tlsverify
  #TLSの使用
  --tlscacert CA_PATH         Trust certs signed only by this CA
  #指定されたCAだけを信用する
  --tlscert CLIENT_CERT_PATH  Path to TLS certificate file
  #TLS証明書ファイルのパス
  --tlskey TLS_KEY_PATH       Path to TLS key file
  #TLSキーファイルのパス
  --tlsverify                 Use TLS and verify the remote
  #TLSの利用と遠隔の確認
  --skip-hostname-check       Don't check the daemon's hostname against the name specified in the client certificate (for example if your docker host is an IP address)
  #ホストネームチェックの無視
  --project-directory PATH    Specify an alternate working directory
                              (default: the path of the compose file)
 #ワーキングディレクトリの指定

Commands:
  build              Build or rebuild services
  bundle             Generate a Docker bundle from the Compose file
  config             Validate and view the compose file
  create             Create services
  down               Stop and remove containers, networks, images, and volumes
  events             Receive real time events from containers
  exec               Execute a command in a running container
  help               Get help on a command
  images             List images
  kill               Kill containers
  logs               View output from containers
  pause              Pause services
  port               Print the public port for a port binding
  ps                 List containers
  pull               Pull service images
  push               Push service images
  restart            Restart services
  rm                 Remove stopped containers
  run                Run a one-off command
  scale              Set number of containers for a service
  start              Start services
  stop               Stop services
  top                Display the running processes
  unpause            Unpause services
  up                 Create and start containers
  version            Show the Docker-Compose version information

こんな感じ
使い方は、巷のblogを参考にしていただけばいいと思うだが、 簡単な流れは以下の通り

  1. docker-compose.ymlにリソースの塊を記述する
  2. ホストでdockerdでも何でもいいんだけど、container runtimeが動いていることを確認する。
  3. docker-compose.ymlとともにdocker-composeを実行する。

以上

pub 4096R/102EFFB8 2017-04-02 Kyohei Moriyama (sasukeh) flogofrein@gmail.com
Primary key fingerprint: 2BE2 1FA9 8F72 C692 1E37 6072 5440 EEBA 102E FFB8


このエントリーをはてなブックマークに追加

どこの環境にもGoogle日本語入力を入れた時に感じているのが Ctrl + Spaceで日本語と英語を切り替えることがとても煩雑だということ。

実は、Google日本語は設定をエクスポートインポートできることに気がついた。 設定覚えて置くのは、面倒だし、設定するのは一回なんだけど、 そのためにGoogle先生に聞くのは、何だと思うのでGistとPrivate GithubにConfigurationを上げておいた。

ご入用の方は、適当に拾って使ってくだされ。

ダウンロードはこちらから

pub 4096R/102EFFB8 2017-04-02 Kyohei Moriyama (sasukeh) flogofrein@gmail.com
Primary key fingerprint: 2BE2 1FA9 8F72 C692 1E37 6072 5440 EEBA 102E FFB8


このエントリーをはてなブックマークに追加

Azureポータルを触りつくして、その後に見えてくるのは、運用の自動化などではないだろうか 単にクラウドとはいっても、他社と差別化を図りたければ、運用の自動化をするなどして 人件費を減らしていく必要がある。

Azure CLIについては、以前触れたが、Python実装であり、かなり高速に実装されている印象がある。 とくに非同期実行に関しては、それほど触れられていないが大量のサーバをデプロイしたり、 Azureのスケールアウトを高速に実行する場合に役にたつ。そのためAzure CLIには、–no-waitのオプションがついている。

たとえば、すべてのリソースグループを消したいなどの要望があるだろう。 そのような場合、–no-waitオプションを使うと、かなり効率的にリソースの削除ができる。

az group list |grep name | awk '{print $2}' | sed 's/,//g' | xargs -i az group delete --yes --no-wait -n {} --debug

これは一例だが、VMを大量に立てたい場合や、予想していなかった急激なトラフィックの上昇、もしくは Bash Scriptingにおいて、waitを待たずに他のリソースも平行して準備したい場合に有効であると考える。

以上

pub 4096R/102EFFB8 2017-04-02 Kyohei Moriyama (sasukeh) flogofrein@gmail.com
Primary key fingerprint: 2BE2 1FA9 8F72 C692 1E37 6072 5440 EEBA 102E FFB8


このエントリーをはてなブックマークに追加

2017/04/21時点でのDocker subcommand memo

➜  ~ docker
attach     -- Attach to a running container
build      -- Build an image from a Dockerfile
commit     -- Create a new image from a container's changes
container  -- Manage containers
cp         -- Copy files/folders between a container and the local filesystem
create     -- Create a new container
daemon     -- Enable daemon mode
diff       -- Inspect changes to files or directories on a container's filesystem
events     -- Get real time events from the server
exec       -- Run a command in a running container
export     -- Export a container's filesystem as a tar archive
help       -- Show help for a command
history    -- Show the history of an image
image      -- Manage images
images     -- List images
import     -- Import the contents from a tarball to create a filesystem image
info       -- Display system-wide information
inspect    -- Return low-level information on Docker objects
kill       -- Kill one or more running containers
load       -- Load an image from a tar archive or STDIN
login      -- Log in to a Docker registry
logout     -- Log out from a Docker registry
logs       -- Fetch the logs of a container
network    -- Manage networks
node       -- Manage Swarm nodes
pause      -- Pause all processes within one or more containers
plugin     -- Manage plugins
port       -- List port mappings or a specific mapping for the container
ps         -- List containers
pull       -- Pull an image or a repository from a registry
push       -- Push an image or a repository to a registry
rename     -- Rename a container
restart    -- Restart one or more containers
rm         -- Remove one or more containers
rmi        -- Remove one or more images
run        -- Run a command in a new container
save       -- Save one or more images to a tar archive (streamed to STDOUT by default)
search     -- Search the Docker Hub for images
secret     -- Manage Docker secrets
service    -- Manage services
stack      -- Manage Docker stacks
start      -- Start one or more stopped containers
stats      -- Display a live stream of container(s) resource usage statistics
stop       -- Stop one or more running containers
swarm      -- Manage Swarm
system     -- Manage Docker
tag        -- Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top        -- Display the running processes of a container
unpause    -- Unpause all processes within one or more containers
update     -- Update configuration of one or more containers
version    -- Show the Docker version information
volume     -- Manage volumes
wait       -- Block until one or more containers stop, then print their exit codes

pub 4096R/102EFFB8 2017-04-02 Kyohei Moriyama (sasukeh) flogofrein@gmail.com
Primary key fingerprint: 2BE2 1FA9 8F72 C692 1E37 6072 5440 EEBA 102E FFB8


このエントリーをはてなブックマークに追加

メモ。


➜  ~ azure location list | grep -i location | grep data | awk '{print$2" : "$4}'
Location : eastasia
Location : southeastasia
Location : centralus
Location : eastus
Location : eastus2
Location : westus
Location : northcentralus
Location : southcentralus
Location : northeurope
Location : westeurope
Location : japanwest
Location : japaneast
Location : brazilsouth
Location : australiaeast
Location : australiasoutheast
Location : southindia
Location : centralindia
Location : westindia
Location : canadacentral
Location : canadaeast
Location : uksouth
Location : ukwest
Location : westcentralus
Location : westus2
Location : koreacentral
Location : koreasouth

pub 4096R/102EFFB8 2017-04-02 Kyohei Moriyama (sasukeh) flogofrein@gmail.com
Primary key fingerprint: 2BE2 1FA9 8F72 C692 1E37 6072 5440 EEBA 102E FFB8


このエントリーをはてなブックマークに追加

As you might know, jeykill is one of static web creator. At the biggining, Jeykill try to create parth html file within ruby scripting. if you use oh-my-zsh and zsh, you could see following result.

If you wanna add something, you must use it as easist way.

pub 4096R/102EFFB8 2017-04-02 Kyohei Moriyama (sasukeh) flogofrein@gmail.com
Primary key fingerprint: 2BE2 1FA9 8F72 C692 1E37 6072 5440 EEBA 102E FFB8


このエントリーをはてなブックマークに追加

gpgの鍵が使えないという旨のエラーが出る。 下記の設定が必ず必要らしい。

git config user.signingkey xxxxxxx

Or もしすべてのrepositoryで鍵を使えるようにしておきたい場合
#鍵をつけてcommitするのは、任意なので。 自分がSignatureとかsignとか残しておきたいのであれば、 -Sをつけてcommitすればいいだけのこと。

git config --global user.signingkey xxxxxxxx

以上、よろしくです。

pub 4096R/102EFFB8 2017-04-02 Kyohei Moriyama (sasukeh) flogofrein@gmail.com
Primary key fingerprint: 2BE2 1FA9 8F72 C692 1E37 6072 5440 EEBA 102E FFB8


git gui

  • 2017-04-07
このエントリーをはてなブックマークに追加

Git guiというものがあるらしい。

#apt install git gui

下記のコマンドで起動する。

-> ~git gui

pub 4096R/102EFFB8 2017-04-02 Kyohei Moriyama (sasukeh) flogofrein@gmail.com
Primary key fingerprint: 2BE2 1FA9 8F72 C692 1E37 6072 5440 EEBA 102E FFB8