最近はVisualStudio2012でASP.NETで大乱闘してやばいのですが、ふと現実逃避しているとtwitterでまさかの人がまさかのVisualStudio発言をしていてリプ投げたら、pebbleなるものを投げ返してきました。
Pebble Smartwatch | Smartwatch for iPhone & Android
自分でお手軽にプログラムできるデジタル時計です。
で、画像の1つもおかずに、以下はメモです。
最近はVisualStudio2012でASP.NETで大乱闘してやばいのですが、ふと現実逃避しているとtwitterでまさかの人がまさかのVisualStudio発言をしていてリプ投げたら、pebbleなるものを投げ返してきました。
Pebble Smartwatch | Smartwatch for iPhone & Android
自分でお手軽にプログラムできるデジタル時計です。
で、画像の1つもおかずに、以下はメモです。
Windows Server 2012にjenkins slaveを動かし、asp.net mvcのプロジェクトをbitbucketのプライベートリポジトリから取得して、ビルド、テスト、azure websitesにデプロイしてみる。
ロジェクトを発行してazureにデプロイできる前提です。
1. ノードの追加
=========================
jenkinsはlinuxサーバー上にあるので、ノードの管理>新規ノード作成からwindows server 2012のサーバーを追加
* JNLP経由でスレーブを起動するよう設定
* ここのツールの設定は設定しなかった。
2. jenkinsのシステム設定
=========================
jenkinsの設定>システムの設定>Gitに対象のサーバー用のgitを追加。
:Name: git
:Path to Git executable: C:/Program Files (x86)/Git/cmd/git.cmd
git.cmdの中身はこんな感じ
[powershell]
@echo off
set HOME=C:\Users\Administrator
set PATH=C:\Program Files (x86)\Git\bin;%PATH%
git %*
[/powershell]
このjenkinsのスレーブはAdministratorで動かすので、HOMEにC:\Users\Administratorを設定する。
C:\Users\Administrator\.sshを作って、ssh-keygenで鍵を作り、公開鍵をbitbucketに登録する。
3. ジョブの追加
=========================
ジョブを追加して設定を開く
ソースコード管理: Git
—————————
* Repositories: git@bitbucket.org:xxxxx/yyyyyyy.git
* Credentials: なし
* Git executable: 2で追加したgit
ビルド・トリガ
—————————
* SCMをポーリング: H/15 * * * *
ビルド
—————————
ビルド->テスト->デプロイのイメージ。全部Windowsのバッチ処理。
1. restore nuget packages
ビルドするときにも復元してくれるけど、先にやらないとビルドが成功しない・・・。放置。
.nuget\nuget.exe restore xxxxx.sln -ConfigFile -NonInteractive
2. ビルド
“C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe” xxxxx.sln /t:build /p:Configuration=”Release”
3. テスト
“C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe” xxxxx.unittests\bin\release\xxxxx.unittests.dll
4. デプロイ
“C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe” xxxxx.sln /p:DeployOnBuild=true /p:PublishProfile=”xxxxx” /p:Password=yyyyy /p:AllowUntrustedCertificate=true
:xxxxx: 発行のプロファイルの名前
:yyyyy: Azureから取得した発行プロファイルの中にあるパスワード
NuGet.exeでパッケージの復元でエラー
============================================
リモートサーバーに接続できないようなエラーがでていたので、確認してみるとファイアウォールに引っかかって失敗していました。
NuGet.exeの通信を許可するよう設定したところうまくいくようになった。
その他
===========
あとはメール通知をしたりして終わり。
そういえば
============
* MSBuildのプラグインがあったけど、以前はうまく動作させることができず、Windowsバッチにしていた。今度暇があれば試してみよう。
* VisualStudioOnlineってこういうことできるのかなぁ。
* デプロイしたサイトに対してseleniumを走らせて、問題なければプロダクション環境の切り替えがしたいなー。
* jenkinsの本を買おうかなぁ。こういうこと書いてるかなぁ・・・。
ASP.Net MVC4のプログラムをWindows AzureのWebsitesにデプロイしようとAzureでWebsitesを見てみると、bitbucketからデプロイできるようになってました。
前からあったっけ?
普通のデプロイはできる状態だったので、bitbucketからのデプロイにしてみましたが、デプロイ(ビルド)でエラーが・・・!
1. nugetパッケージが無くてエラー
これは、ソリューションから NuGetパッケージ復元の有効化 を有効にするとOKみたいです。
ただ、ソリューションのトップディレクトリに.nuget\NuGet.exeが出力してくれるが、.gitignoreで*.exeとしていたので、デプロイに反映されなくて悩んだ。
2. System.Web.MvcとSystem.Web.Helpersの参照エラー
これはなぜ!?
解決方法がわからず、ローカルでビルドして出力されたdllをコピーして、そちらを参照するよう変更したらビルドできました(当たり前か)。
とりあえず目的は達成出来ましたが、System.Web.Mvcが参照できていないのがいまいち。
最近、スリープ解除後にフリーズするようになりました。
chromeを触っているときによく止まるのでChromeが悪いのかと思っていましたが、最近はそうでもないことが続いたのでそうでもないようです。
そういうわけで、Macが調子悪い時のお約束を実行しておきました。
・Macの調子が悪くなって遅くなった時にディスクの修復をしたら一発で治った | ごりゅご.com
・OS X Mountain Lion: コンピュータの PRAM をリセットする
これで良くなると良いなー。
なのぼ〜どというArduino互換Scratchセンサーボードを購入してみました。
なのぼ~ど NanoBoard AG « ちっちゃいものくらぶ
旭川で参加している Coder Dojo 旭川 でScratchをやる子供がいたら、
ネタの1つになるかと思い購入しました。
お値段は完成品が送料込で2000円です。キットだと1500円ですね。
今回は、「ギアモーター + LEGO用ゴムチューブ + ケーブル」も頼みました。
なのぼ〜どには最初から光センサー、音センサー、ボタン、スライダー、抵抗A〜Dがついており、arduino互換で拡張も可能です。
以下はMac OSX 10.9.1 の場合です。
Windowsの場合は、 ScratchとつなげられるNanoBoardAGのセットアップ方法 | LittleCoder Mie が参考になると思います。
ScratchNanoBoardAG.zip – Google Drive からダウンロードします。
ダウンロードしたファイルを展開(解凍)します。
md_PL2303_MacOSX10.6_dmg_v1.4.0 をインストールします。
開くときは、右クリックして、SHIFTを押しながら開きました。
インストールしたら再起動します。
再起動後、なのぼ〜どとMacをUSBケーブルでつなぎます。
NanoBoardAGWithMotor.image という名前のファイルをダブルクリックしてScratchを起動します。
起動したら「調べる」を開き、一番下にある「[スライダー]センサーの値」にチェックを付けます。
スライダーセンサーの値が表示されるので、なのぼ〜どのスライダーを動かして値が変わることを確かめます。
モーターを接続します。
M1と書かれたところ(左から2つ分)にケーブルを差し込みます。
ケーブルの反対側の端子をモーターに繋ぎます(左右はどちらでもいい)
「編集ー>モーターのブロックを表示する」をクリックします。
「モーターを1秒オンにする」をクリックします。
急に動いてびっくりします!
これで遊ぶ準備は完了です!(たぶん)
「たぶん」なのは今日はこれで終わりだからです。動作確認しかしていません・x・;
http://lowlevellife.com で動かしていたブログを http://dkpyn.com/blog に移すテスト。
もう1年も放置していました。
数日前からこのサイトが落ちているようなので確認してみたところ、wrodpressのphpがエラーで止まっていました。
なんでだろうと見てみると、あやしげなコードが沢山!!
なんかやられちゃってました。ちゃんと更新しないとダメですね。
今年最後の投稿ですね。
今年はたくさん本を読みたかったけど余り読むことができませんでした。
ほんとうにもっともっと読みたかった。
その原因の1つは「スクリプト言語の作り方」という本です。
「Stone言語」というオリジナルのスクリプト言語をJavaで作りながら、プログラミング言語の作り方の基礎を学んでいくといった内容の本です。
サンプルコードがJavaなので、それをpythonで書き直しながら読んでいます。
8月に本を買って現在chapter12です(基本的なところはchapter14まで)。毎日取り組めるわけではないけど、絶望的な進捗具合です。自分の頭が悪さが悔やまれます。
planset/stone-py · GitHub
ただ、実際にうまく動いたとき(サンプルなので必ずうまく動く!)は楽しいものです。
年をまたいでしまいますが、あとchapter2つ+αをがんばります。
さて、というわけで、どうでもいいような投稿が今年の最後ですが、皆様今年も本当にお世話になりました。
来年もよろしくお願いします。
Python勉強会@旭川です。もう4回目なんですな。
今回は割と読んだつもりだったのですが、
raiseで例外を送出できるのが、インスタンスだけではなくて、
クラスでもいいってのは見落としていたので、気がつけてよかったです。
というわけで、今日のメモ。