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

背景

Macの調子がおかしい、Activity Monitorを見てみるとdistnotedというdaemonがCPUを食っている。 巷の情報によると、このdistnotedkillallすれば事なきを得るらしい。

daemonって守護神なんだけど、全然守護神ではなく、破壊神的な感じになっている。

  • launchdでdistnotedを定期的に終了させる
    • https://blog.n-z.jp/blog/2013-11-13-killall-distnoted-periodically.html

しかし、本当にこれを消して良いものかと思い調べてみた。

distnotedとはなにか

$man distnoted

DISTNOTED(8)              BSD System Manager's Manual             DISTNOTED(8)

NAME
     distnoted -- distributed notification server
                <分散通知サーバー>

SYNOPSIS
     distnoted

DESCRIPTION
     distnoted provides distributed notification services.
    <distnotedは、分散通知サービスを提供します>

     There are no configuration options to distnoted.  Users should not run distnoted manually.
    <distnotedには、設定オプションは、ありません。ユーザはdistnotedをマニュアルで実行してはなりません>
Mac OS X                         July 1, 2005                         Mac OS X

<>に日本語参考訳も載せてみた。文字通り、分散通知サービス(分散通知サービスとでもいうか、なんでもいいや)を提供するもの。 その分散通知サービスとはなにかというところが気になった。

このサイトによると emacsのpatchはここ(https://gist.github.com/anonymous/8553178)にあるとのこと。
でもdistnotedが何者かは書かれていないし、自動でKillする人もいるとのこと。

まとめ

正直にもうしあげると、わからなかった。。。 結局AppleのStackExchangeの中にこのポストと回答を見つけた。 launchdを使って消しこむしか無いとのこと。

推測

Macのアプリケーション開発をしている人ならわかることなのかもしれないけど、なにかが能動的にアプリの終了をお知らせするために呼び出している気もしていて、distnotedとしての役目(通知を分散するということ)を果たせぬままCPUとメモリを食い散らかすというバグに近い挙動をしているように思える。 なかなか、難しい。


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

はじめに

日本全体を見渡したときに.NETとJavaのDeveloperは多い。 一部のDeveloperは新しい言語に行かねばならぬと思い込んで他の言語に飛びつくが 実は、日本で食い扶持をつなぐのであれば、メンテナンス可能なソースコードの量で選ぶというのも一つであると思う。また、モダナイズされたJavaのフレームワークや.NETは実は知らぬ間に驚くべき進化を遂げている。JavaはSpring、.NETは次期バージョン.NET 5. そこで、じゃあJavaを始めたいんだけど、重たいIDEはいらないから軽いIDEほしいということでVSCodeでJavaを使う方法無いかなと探して、記事にしてみる。初学者がスタートするときに必要なのは、ボロくても道具なのであるということがこの記事をまとめるモチベーションとなった。

Windowsユーザーの場合

Visual Studio Code Java PackJava Extension Pack をインストールする。

必要であれば、VSCodeのExtensions Marketplaceから検索し、インストールする。

image

以下MacやLinuxの場合

まだ、VSCode Java Packは、MacやLinuxに対応していないようなので、下記の方法から同じことを試せる。必要なのは、JDK、

Javaのインストール

現在Javaの開発環境の選択肢としては、Oracle JDK、Open JDK、RedHat、Azul Systemが提供するOpen JDK。乱暴にいうと自由に選べばいいということになる。 インストール方法など、巷にいくらでも落ちているので割愛。 ちなみに私の環境は下記にあった。どうやらbrew caskで導入した模様。

> brew cask list 
chromedriver ip-in-menu-bar  java
lrwxr-xr-x  1 root  wheel  74 Mar 22 13:12 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
lrwxr-xr-x  1 root  wheel  74 Mar 22 13:12 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
> javac --version
javac 10.0.2
> java --version
java 10.0.2 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)

実は、Azure上でAzul SystemのOpen JDKを使うとサポートが実質無料になる。Oracleのサポートで云々がある方にとって朗報である。Azul Systemのライセンスについてのよくある質問はこちら

VSCodeの設定

本題に戻って、JavaとJavacが入っていたので次。VSCodeのインストールは説明不要だと思うので割愛。Java in Visual Studio Codeの話はこちらにある。 VSCodeは、Marketplaceが存在しており、Extensionを追加することで使い勝手がよくなる。 そのExtensionをまとめたものがJava Extension Packというわけだ。必要に応じて必要なものを使う。

Java Projectのサポート

もっと詳しい内容はこちら

Javaのチュートリアル

このチュートリアルが参考になる

まとめ

とりあえず、環境としては、Extension Packを入れるだけで完成。このあとは具体的にどう使うか、Projectをどうやって作るかを知りたいと思うので、後日公開する予定。

参考記事


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

こちらの記事は、Azure Tech Advent Calendar 2017の20日目の記事です。

皆様、こんにちは マイクロソフト パートナー事業本部 クラウドソリューションアーキテクトの森山です。

今年もマイクロソフトからOSSに関する様々なニュース、アナウンスがありました。 クラウドに関するニュースもたくさんあったのですが、 マイクロソフトが発表するニュースはいつもびっくりすることだらけでした。

特にOSSというキーワードではびっくりすることが多いのですが 逆に知人の反応を見るとマイクロソフト自身がオープンへシフトしていること自体への反応が 薄くなっており、むしろ、当たり前の選択となっているということを聞くとOSSファンな私としては、とてもうれしくなります。

Azureおよびマイクロソフトの多くのニュースや発表された機能からピックアップして紹介します。
※以下の内容はOSS推進フォーラムで発表した内容を抜粋しました。

image

クラウドプラットフォームおよびハイパーバイザーでは、当たり前のようにx86アーキテクチャで稼働するものが動きます。同じようにAzureでもx86ベースのOSが動きます。そして、今年ついにAzure computeで選ばれるOSとしてLinuxの仮想マシン比率が40%を超えました。特に驚くべき数字ではないのですが、選ばれるということは、AzureでもLinuxがちゃんと動くことの証明となったのではないでしょうか?ぜひ、来年はどしどしLinux仮想マシンをAzureで立ててほしいと思います。

image

SQL Serverといえば、マイクロソフトが誇るSQLパッケージですが、今まではWindowsでしか、動きませんでした。ですが、開発チームの努力によりネイティブでLinuxをサポートし、LinuxのSystem callを直接呼べるようにフルスクラッチで開発完了しました。細かい機能・品質については、これから改善が見られると思いますが、Oracle SQLなどをLinuxで動かしていた人にとってとても価値のある実装だなと感じています。

image

DockerイメージもDocker hubに公開中であるので、docker runすれば、即時にSQL server を試すことができます。

image

巷でブームのKubernetesですが、Azure Container Service(AKS)のマネージドコンテナプラットフォームサービスとして公開されました。まだ、プレビューではあるのですが、kubectlから直接K8Sクラスタを操作できたり、コンソールを見ることができたりと簡単にK8Sを試したい方には必見です。

image

Bashを中心に使っているかたにとってとてもありがたい機能ですね。

image

Azure portal上からbashコンソールを呼び出すことが可能になりました。Azure Cliはもちろんのこと、kubectlもdefaultでインストールされているので、Azure上のサービスの操作を手軽に試すことができます。

image

image

image

image

image

VSCodeですね、この記事もVSCodeで書いてますが、軽量IDEとして最強だと思います。 AzureのリソースもVSCodeから操作することができます。Blobの拡張機能はとても便利ですよ:)

image

最後にこれですね。このナマケモノの名前 “Sloth Ninja”というらしいです。 マイクロソフトOSSのキャラなのでぜひ覚えてくださいね。

ではでは、良いお年を!


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

Redhat関連のPostでAWSとの話が出ていたのでメモ。

以下、アナウンスの通り、Redhat OpenShift Container platform 3.7がGAしました。

OpenShift:Announcing the OpenShift Container Platform 3.7 GA

ZDNET:Red Hat partners with AWS with OpenShift Container Platform 3.7

redhat:Latest Version of Red Hat OpenShift Container Platform Joins Infrastructure and Services Across Hybrid Cloud Environments

両方の記事の中で、OpenShift platformからAWSのサービスをデプロイできるようになると書いてあります。
RedhatはいずれにせよProvateCloudを諦めたわけではなくて、HybridCloudの文脈でビジネスを進めて行くことが記事から感じられます。
これも”Open”の戦略の一つで、特にライバルは存在しない状態を作り出すための製品のサービス拡充でしょう。
できれば、Azureも下記のリストにあげているサービスと同様のサービスがあるので対応していただきたいところです。

  • Amazonのサービス

    Amazon Simple Queue Service (SQS)
    Amazon Relational Database Services (RDS)
    Amazon Athena AWS Route 53
    Amazon Simple Storage Services (S3)
    Amazon Simple Notification Service (SNS)
    Amazon ElastiCache
    Amazon Redshift Simple Email Service (SES)
    Amazon DynamoDB
    Amazon Elastic MapReduce (EMR)

  • Azureのサービス

    Azure Storage Blob Queue / Azure Service Bus
    Azure Virtual Machine(SQL Server, Oracle) / Azure Database for mysql・Postgresql
    Azure Data Lake Analytics / SQL DWH Polybase
    Azure DNS
    Azure Storage Blob blob
    Azure Notification Hubs
    Azure Redis Cache
    SendGrid (サードパーティ)
    Azure DocumentDB / Azure CosmosDB
    Azure HDInsight

また、以前より話がでていた、OpenShift Service Catalogも今回のGAに含まれています。
MicrosoftでいうAppSourceのようなイメージでしょうか。

更に、RedHatコンテナ ネイティブストレージについても触れられています。

コンテナからクラウドのManaged Serviceのリソースを使ったり、ストレージを使ったりするのも、アーキテクチャとしては当たり前になっていて、バックエンドのリソースさえしっかりしてSLAを担保できれば、どこのリソースであろうがどんどん使って新しいサービスを産んだり、既存サービスのコスト構造改善につなげるというのが世の中のトレンドになっていると感じますね。

では、コンテナおよびサービスが使うソースコードや画像などのアセットはどこから拾ってくるかというとAzure Blob, AWS S3, OpenStack Swiftなどの、オブジェクトストレージやgithubなどのバージョン管理システム(ソフトウェア)だったりします。

仮に、そのリポジトリがどこからでもアクセスできる状態であると、クラウドベンダーにロックインされずにアプリケーションデリバリーが可能になります。

ビジネスのスピード感が求められている昨今、正しい方向に走るために迷いは必要ないと考えます。はやりにすぐに飛びつくのはナンセンスだということも考えられますが、それよりもビジネスのリスクを鑑みないことのほうがナンセンスだと感じています。

さてさて、いろいろと良くなればいいですね。僕も良くしていきたいと思っています。

Reference:

その他の関連記事


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

Dockerをubuntuで使うためには?

手順が古いところがあるのでupdateしつつ以下の手順で実施

sudo apt update
sudo apt remove docker docker-engine docker.io
sudo apt install -y \
    linux-image-extra-$(uname -r) \
    linux-image-extra-virtual
sudo apt install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
sudo apt update
sudo apt install docker-ce

Docker run

root@ubuntu1604-sand:~# docker run -it ubuntu
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
ae79f2514705: Pull complete
5ad56d5fc149: Pull complete
170e558760e8: Pull complete
395460e233f5: Pull complete
6f01dc62e444: Pull complete
Digest: sha256:506e2d5852de1d7c90d538c5332bd3cc33b9cbd26f6ca653875899c505c82687
Status: Downloaded newer image for ubuntu:latest
root@da99b4c6f769:/#
root@da99b4c6f769:/#

Misc checker

Network

  • interface
    root@ubuntu1604-sand:~# ip a
    ///////
    3: docker0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state UP group default
      link/ether 02:42:b7:f3:14:1b brd ff:ff:ff:ff:ff:ff
      inet 172.17.0.1/16 scope global docker0
         valid_lft forever preferred_lft forever
      inet6 fe80::42:b7ff:fef3:141b/64 scope link
         valid_lft forever preferred_lft forever
    ///////
    
  • docker network
    root@ubuntu1604-sand:~# docker network ls
    NETWORK ID          NAME                DRIVER              SCOPE
    db4c63b9a818        bridge              bridge              local
    d481d6a6b105        host                host                local
    d89ef5fa06f3        none                null                local
    
  • docker network inspect
    root@ubuntu1604-sand:~# docker network inspect bridge
    [
      {
          "Name": "bridge",
          "Id": "db4c63b9a818a99458c52f7818635cc00fd77b15b03b0e4b70a4e37760bbc94f",
          "Created": "2017-10-18T07:27:23.090097897Z",
          "Scope": "local",
          "Driver": "bridge",
          "EnableIPv6": false,
          "IPAM": {
              "Driver": "default",
              "Options": null,
              "Config": [
                  {
                      "Subnet": "172.17.0.0/16"
                  }
              ]
          },
          "Internal": false,
          "Attachable": false,
          "Ingress": false,
          "ConfigFrom": {
              "Network": ""
          },
          "ConfigOnly": false,
          "Containers": {},
          "Options": {
              "com.docker.network.bridge.default_bridge": "true",
              "com.docker.network.bridge.enable_icc": "true",
              "com.docker.network.bridge.enable_ip_masquerade": "true",
              "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
              "com.docker.network.bridge.name": "docker0",
              "com.docker.network.driver.mtu": "1500"
          },
          "Labels": {}
      }
    ]
    
  • docker run -itd ubuntu
  • docker attach
  • Ctrl+p + Ctrl+q
  • containerのお掃除
    docker ps |awk '{print $1}' | grep -v CONTAINER | xargs -l docker rm -f
    
  • burst 起動
    root@ubuntu1604-sand:~# for i in [1 2 3 4 5]; do docker run -itd ubuntu; done
    ba55666235c6d8fe6e081258904e4cae738e87a7e3ff9761fb28feccdc9497e0
    7309238f8559e226ec7fdaa917cb2b3afeca6287b9305d99c34eef21a08992c5
    235d2d4f5dbb3cfb279ca314bc05f0825eebe6b8b29e0240a405e2bc122ca724
    ab00ec1bc49ddcbdecf794056670d2bcff98109bca8561a5769da1804e9e926b
    0355c1eeebe3b3e469174fdf8b149672fae9c5f9ebefbf0042bb0a7ceaa3c066
    

To help the humans, Docker also supplies containers with a randomly-generated name from two words, joined by an underscore, e.g. evil_ptolemy. This can make it easier to tell one container from another, but the random names don’t give any more insight into the container function than the UUID.
- https://www.digitalocean.com/community/tutorials/naming-docker-containers-3-tips-for-beginners -

root@ubuntu1604-sand:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
6ed929c157b3        ubuntu              "/bin/bash"         About an hour ago   Up About an hour                        thirsty_joliot
6a23db61e574        ubuntu              "/bin/bash"         About an hour ago   Up About an hour                        priceless_saha
930a48641895        ubuntu              "/bin/bash"         About an hour ago   Up About an hour                        flamboyant_hodgkin
a357bec9ce4e        ubuntu              "/bin/bash"         About an hour ago   Up About an hour                        fervent_yalow
  • tmux
  • ip reachiablity check
    apt update
    apt install -y iputils-ping net-tools 
    
  • netstat -untap
  • ping-pong
    #ping <some container's ip address>
    

image

Reference

  • Procedure for docker official
    https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/

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

Javaだと確かにCFv2(DEA:Buildpack)の方式がいいと思ってた(ちょうど2年くらい前ですね)。

CFv3(Diego:Docker / Buidpack & other component)とOpenShift(K8S&Docker&other component)と比較した場合にCore Architectureの違いが極小になっているから、製品価値を高めながら独自の進化を続けるんだろうなと思うんですよ。

この二つの違う製品(ISV)は、一つの共通する特徴として実行環境とSourcecodeのDeliveryを高速化を達成するんです。価値としてcomponentの組み合わせやそれらのサポートをしてくれる。

ただ、Rock-inを防ぐために他の製品を自社で組み合わせて使う、使えなくなったら潔く捨てて、入れ替えるというPaaSのライフサイクルを考える必要が出てきている気がするんですよね。

僕はIaaS/Ops/SRE側に立っているので、正直何が動いていてもDevの人たちが開発しやすい環境であって、Applicationがちゃんと動く、ライフサイクルがうまく回るということを達成できれば、仕事したなという感じがするわけです。

やっていくうちに自社の開発に足りないコンポーネントが出てくる時がくる可能性はあるんだけど、それをOpenSourceにしながらDefactにもっていくという活動が必要になってくると思う、ベンダーだけじゃなくて人にLock-inされることと、車輪の再発明を防ぐ意味で。

NetFlixがOSS的な方法(として)で開発した結果、かなりいい感じに成長している(OpenShiftのJava実行環境のコンポーネントにも入った)。だからインハウスエンジニア(ソフトウェアに限らず)は必要だし、インハウスエンジニアはもっともっと外にでてWorld Wideで活躍できることを自覚して頑張っていくべきかなと。

人によって価値観は異なるので、その貢献をどのように還元するかは、いまいちわからないけども、会社経営の投資対象としてコストセンターの人にもある程度自由を与えるというのも開発現場の雰囲気がよくなる方法論の一つかな。 自由も価値観によって定義されると仮定すると人によって自由な時間を使って何に貢献するか考えてそれぞれの人がself-learningの方法を探っていくのかな。自由には責任が伴うとはよく言ったもので、成長志向で頑張れるくらいの自由を会社に求めてもいいと思う。緩いつながりが新しい価値を産むし、個人の価値観が新しい価値を産む、会社は社員を利用する、社員は会社から貢献度に応じて給与と福利厚生を受け取る。

日本の某社は、それにチャレンジして成功してる感じ、本当に、素敵。githubもしくは他のRepositoryで公開できる部分は公開して社外からのPRを積極的に受け入れる姿勢とか良いと思う。緩いつながりが新しい価値を産む気がするので。


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

ubuntuでCudaを使うまでの準備とchainerを使って GPUに何かを処理させるまでの流れ。

1. Azureにubuntu 16.04LTSをインストール

point

  1. market placeからubuntuを選択、Canonicalのものがおすすめ。

image

サイズの選択:NVシリーズ
image

  1. ssh login

  2. Prerequisite :
    3.1 Driver package installation

#!/usr/bin/env bash

export LC_ALL=C

# Drver installation
wget http://us.download.nvidia.com/tesla/384.81/nvidia-diag-driver-local-repo-ubuntu1604-384.81_1.0-1_amd64.deb
sudo dpkg -i nvidia-diag-driver-local-repo-ubuntu1604-384.81_1.0-1_amd64.deb
sudo apt-key add /var/nvidia-diag-driver-local-repo-384.81/7fa2af80.pub

# module blacklisted
sudo -i
echo -e "blacklist nouveau\noptions nouveau modeset=0\nalias nouveau off" > /etc/modprobe.d/blacklist-nouveau.conf

sudo update-initramfs -u && reboot
#!/usr/bin/env bash
# python installation
sudo apt update
sudo apt -y upgrade
sudo apt -y install python3 python3-pip
echo "alias python=python3" >> ~/.bashrc
echo "alias pip=pip3" >> ~/.bashrc
sudo rm 

# cuda installation
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
sudo apt update
sudo apt -y upgrade
sudo apt install -y ocl-icd-libopencl1 cuda-drivers nvidia-cuda-toolkit cmake
sudo update-initramfs -u && sudo reboot

Availability check

while :; do nc -z -v -n 52.187.66.133 22; sleep 0.5 ; done

PCI hardware check

lspci -vvv

image

nvidia device check, required nvidia-cuda-toolkit

nvidia-smi

image

nvcc -V

Cuda test

sudo apt -y install cuda-samples-9-0
 cd /usr/local/cuda-9.0/samples/
sudo make #長時間かかるから覚悟
>>> WARNING - simpleGLES_EGLOutput is not supported on Linux x86_64 - waiving sample <<<
>>> WARNING - egl.h not found, please install egl.h <<<
>>> WARNING - eglext.h not found, please install eglext.h <<<
>>> WARNING - gl31.h not found, please install gl31.h <<<

30分くらい?

Cuda benchmark

image

OpenCL benchmark

information

- Cuda Software
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=debnetwork

http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.0.176-1_amd64.deb

- Driver
http://www.nvidia.com/Download/index.aspx?lang=en-us
http://us.download.nvidia.com/tesla/384.81/nvidia-diag-driver-local-repo-ubuntu1604-384.81_1.0-1_amd64.deb

Reference

<img src=”https://user-images.githubusercontent.com/406525/31165794-58f15bb4-a927-11e7-8d88-fb35438778dc.png” width=250>

image


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

Azure CLIを久々にローカルにインストールすると文字コードのエラーをはくという減少にぶち当たったので少々。

PS C:\Users\xxxxxxxx> chcp
現在のコード ページ: 932

Windowsの日本語の標準文字コードであるCP932(Shift-JIS拡張)。 python3ではケアされていないというよりも、日本語Windows自身がUnicode(UTF-8)への移行を考えてないから。多くのシステムに導入されているので、今更その互換性を無視して先にすすめると言うのはいかがなものかということでしょう。 ただ、Office365で扱う文字は、きっとunicodeになるので2020以降、Windowsにも何かが起こると期待しています。(自社のOSですが、なんとも言いづらいところはあります。お察しください)

で、本題に戻りますが
簡単に解決するなら

PS C:\Users\xxxxxxxx>chcp 65001

としpip installすれば良いです。

pyyaml module installで失敗します。

Exception:
Traceback (most recent call last):
  File "c:\users\xxxxxxx\code\azure-cli2.0-bin\lib\site-packages\pip\compat\__init__.py", line 73, in console_to_str
    return s.decode(sys.__stdout__.encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 80: invalid start byte

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\users\xxxxxxx\code\azure-cli2.0-bin\lib\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
  File "c:\users\xxxxxxxx\code\azure-cli2.0-bin\lib\site-packages\pip\commands\install.py", line 342, in run
    prefix=options.prefix_path,
  File "c:\users\xxxxx\code\azure-cli2.0-bin\lib\site-packages\pip\req\req_set.py", line 784, in install
    **kwargs
  File "c:\users\xxxxxx\code\azure-cli2.0-bin\lib\site-packages\pip\req\req_install.py", line 878, in install
    spinner=spinner,
  File "c:\users\xxxxx\code\azure-cli2.0-bin\lib\site-packages\pip\utils\__init__.py", line 676, in call_subprocess
    line = console_to_str(proc.stdout.readline())
  File "c:\users\xxxx\code\azure-cli2.0-bin\lib\site-packages\pip\compat\__init__.py", line 75, in console_to_str
    return s.decode('utf_8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 80: invalid start byte

compatでtryしてinitializeで例外だしている次のところで。。 ただ、コンソールに書き出すためだけに

if sys.version_info >= (3,):
    def console_to_str(s):
        try:
            return s.decode(sys.__stdout__.encoding)
        except UnicodeDecodeError:
            return s.decode('utf_8')

この部分でUnicodeDecodeErrorエラーを吐きます。 読んで字のごとくUnicodeをデコードする時のエラーです。

if sys.version_info >= (3,):
    def console_to_str(s):
        try:
            return s.decode(sys.__stdout__.encoding)
        except UnicodeDecodeError:
#            return s.decode('utf_8')
            return s.decode('cp932')

今後いちいちchcpするのめんどいのでこんなことしました。 忘れないようにメモ。python3に移行するひとが必ずハマる感じですね。 Mac/Linuxユーザは気が付かずに幸せかもしれませんね。

と思ったら同じようなことやってる人がいました。 http://blog.techlab-xe.net/archives/5361

PS C:\Users\xxxxx> $OutputEncoding


IsSingleByte      : True
BodyName          : us-ascii
EncodingName      : US-ASCII
HeaderName        : us-ascii
WebName           : us-ascii
WindowsCodePage   : 1252
IsBrowserDisplay  : False
IsBrowserSave     : False
IsMailNewsDisplay : True
IsMailNewsSave    : True
EncoderFallback   : System.Text.EncoderReplacementFallback
DecoderFallback   : System.Text.DecoderReplacementFallback
IsReadOnly        : True
CodePage          : 20127

以上


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

AzureRMやっぱり最新バージョンを使いたいよねということがあるかと思います。

2017-09-26 13_12_35-moriyama kyohei - https___blog docker com_2017_09_docker-official-i

こういうこともあるようで、

Cloud ShellのAzureRMを上書きして使う方法。

現在のバージョンの確認

PS Azure:\> Get-Module

2017-09-26 14_09_57-redhat-sandbox - microsoft azure

PS Azure:\> Get-Command *SecurityGr*

2017-09-26 14_10_21-redhat-sandbox - microsoft azure

PS Azure:\> Install-Module -Name AzureRM -RequiredVersion 4.4.0 -AllowClobber

Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to
install the modules from 'PSGallery'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): A

負荷がかかるのか、プログレスバーが進み終わっても、すこし固まります。

2017-09-26 14_11_30-redhat-sandbox - microsoft azure

カーソルの反応がなければ違うタブでcloud Shellを立ち上げて 次に進みましょう。

ModuleのreloadのためにCloud Shellをrestartします。

2017-09-26 14_41_39-azurerm network - microsoft azure

2017-09-26 14_41_43-azurerm network - microsoft azure

ここで、installしたmoduleはblob上へ展開されます。
中身を確認したい場合は、blobのFileサービスへアクセスすると、中身を確認できます。

get-moduleして下記のようなものが見えれば完了

PS Azure:\> get-module

2017-09-26 14_32_00-file - microsoft azure

PS Azure:\> Get-Command *SecurityGr*

2017-09-26 14_43_23-azurerm network - microsoft azure

以上


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

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