Netatmo Weather のAPIをとりあえず使ってみる

準備

  • https://dev.netatmo.com/
  • 上部メニューCREATE YOUR APP クリック
  • App name, App Description を入力
  • "I accept Netatmo APIs Terms and Conditions" にチェックを入れて同意する
  • Client idClient secret が作成される

API使ってみる

curl -w '\n' 'https://api.netatmo.com/oauth2/token' --data 'grant_type=password&client_id=xxx&client_secret=xxx&username=xxx&password=xxxx&scope=read_station' -X POST
{"access_token":"xxxx","refresh_token":"xxx","scope":["read_station"],"expires_in":10800,"expire_in":10800}
  • access_token を使用してAPIにアクセス
curl https://api.netatmo.net/api/getstationsdata\?access_token\=xxx
json のレスポンス

json のレスポンスが返ってきて、中のデータ(温度や湿度など)が正しいことを確認出来た。

Windows サーバーで サービスから Jenkins を起動しようとしたときに起動しなかったときの対応

状況

  • http://jenkins/restart とかを何回か実行した
  • サービスでステータス確認したら 停止 になっている
  • サービスから開始をクリックしてもステータスは一瞬 実行中 になるがすぐに 停止 になる

対応

  • jenkins.err.log を確認
  • エラーが出ている
警告: FAILED ServerConnector@8c1c9b{HTTP/1.1}{0.0.0.0:8090}: java.net.BindException: Address already in use: bind

java.net.BindException: Address already in use: bind

    at sun.nio.ch.Net.bind0(Native Method)

    at sun.nio.ch.Net.bind(Unknown Source)

    at sun.nio.ch.Net.bind(Unknown Source)

    at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)

    at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)

    at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:321)

    at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)

    at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:236)

    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)

    at org.eclipse.jetty.server.Server.doStart(Server.java:366)

    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)

    at winstone.Launcher.<init>(Launcher.java:152)

    at winstone.Launcher.main(Launcher.java:352)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

    at java.lang.reflect.Method.invoke(Unknown Source)

    at Main._main(Main.java:246)

    at Main.main(Main.java:91)

TFS でビルド時にアプリケーションのバージョン番号に日付とビルド回数を設定する

したいこと

  • MSBuild でバージョン番号を付与したい

  • 今回設定したいバージョン番号

    • ApplicationVersion=1.0.20170926.1
1  0  20170926  1
-  -  -         -
|  |  |         |
|  |  |         `-- その日にビルドした回数(翌日にリセット)
|  |  `------------ ビルドした日付
|  `--------------- とりあえず固定
`------------------ とりあえず固定

TFS で使用できる変数について

$date=$(Get-Date -Format 'yyyy-MM-dd');

Write-Host "##vso[task.setvariable variable=date]$date"
  • この PowerShell をタスクの一つにして、起動すれば、$(date) でビルド時に使用可能

その日のビルドした回数はどうやって取得するか

    $buildNumber = $env:BUILD_BUILDNUMBER
    if ($buildNumber -eq $null)
    {
        $buildIncrementalNumber = 0
    }
    else
    {
        $splitted = $buildNumber.Split('.')
        $buildIncrementalNumber = $splitted[$splitted.Length - 1]
    }
  • $(Build.BuildNumber). で分割した2つ目から取得できそう

  • じゃ $(Build.BuildNumber) の1つ目が何か出力して確認してみる

20170926.1 
  • 自分が欲しい値そのままではないか。。。

まとめ

というわけで、今はこの設定でビルドしてる

/p:ApplicationVersion=1.0.$(Build.BuildNumber)

SourceTree で rebase してコンフリクト解決してすぐコミットしてしまったとき

qiita.com

上記の記事を参考にして、rebase -> コンフリクトの解決をしてたんですが、

特に手順5の後にコミットメッセージを入力してコミットしてしまうというミスを犯しやすいので注意が必要です。

これをやってしまいました。

SoureceTree からの解決方法が分からなかったので、コマンドから rebase を無かったことにしました。

1.コマンドで確認

$ git status
On branch fix-branch
You are currently rebasing branch 'fix-branch' on 'e114a18'.
  (all conflicts fixed: run "git rebase --continue")

nothing to commit, working tree clean

2.rebase中でコンフリクト解消したから、git rebase --continue を実行してみる。

$ git rebase --continue
Applying: コメント
No changes - did you forget to use 'git add'?
If there is nothing left to stage, chances are that something else
already introduced the same changes; you might want to skip this patch.

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".

3.対応方法がよく分からなかったので、rebase を無かったことにしようと git rebase --abort を実行。

rebase 中止して最初からやり直しました。

GitHub勉強会 in Kanazawa に行ってきた

connpass.com

メモ

感想

  • GitHub を中心に開発を行うってことが世界中でスタンダードになってきていると感じた
  • ただし、それはまだごく一部であって、どうやって今後 今も残るバージョン管理?なにそれ?みたいな企業が、自分で気づいて普及していけるかが大事
  • それをサボった企業とかに魅力はなくなってくよ(GitHub にかぎらず)

@wtnabe 氏のツイートを肝に銘じてく

Windows10 に Go インストール

環境

  • Windows10 64bit
  • Go 1.9

インストール

Downloads - The Go Programming Language

go1.9.windows-amd64.msi をダウンロード

インストールフォルダーも C:\Go\ のまま続行

インストールが完了すると GOROOT(C:\Go\), PATH(C:\Go\bin) 共に設定されているので、 コマンドプロンプトを起動して go コマンドを入力すると、help が表示される。

GOROOT とか PATH を自分で設定して、OS再起動必要みたいなブログもあったけど現在バージョンでは不要みたい。

あと、GOPATH っていう変数の設定が必要みたいだけど、Helpで確認すると設定されていない場合はホームディレクトリになるみたい。

>go help gopath

If the environment variable is unset, GOPATH defaults
to a subdirectory named "go" in the user's home directory
($HOME/go on Unix, %USERPROFILE%\go on Windows),
unless that directory holds a Go distribution.
Run "go env GOPATH" to see the current GOPATH.

とりあえず最初はこのまま。