くり坊の技術ブログ

しがないSEが日々勉強した内容を備忘録的に記載するブログです。

しめじソート

昨日のピタゴラスイッチだったと思うけど、しめじソートなるものがやってた。
気づいたときには始まっていたので途中から見たのだけど、何やらしめじ13本を半分の本数に分けている。
そして、一本ずつになるまで分けて、隣のしめじ群と合わせてから並び替えている。

ん?これはマージソートか?と途中で気づいた。
アルゴリズムの本やらサイトを見てもわかりづらいものを、子供向けに分かりやすくするNHKすごいなーと感心した。

f:id:kuriboo1002:20170712104344j:plain

初心者向けXamarinハンズオンに参加してみた

またまたとっても久々の更新。

若干はてブロのこと忘れてた。

 

前回の仮想技術やらのところは実はまだ勉強していない。

が、IoT関連というところでモバイルアプリの開発をしてみたくて今回はXamarinの勉強会に参加してみました。

jxug.connpass.com

 

とりあえず使う技術はC#なので、あんまり困ったことは起こらなかったけど、

MVCの時からそうだけど、Xamarinのアプリ開発もMVVMという概念で開発を行うとのこと。

MVVMって、Model,View,ViewModel(だったかな)らしく、画面は?ロジックはどこに?というようにまた理解が追いつかないという事態に。

これは帰ってから勉強しようととりあえず思いました。

とりあえず、今日の記事はやったこととのまとめでも。

 

まずは以下のGithubに繋いで資料を準備。

https://github.com/chomado/xamarin-dev-doc

 

ここには日本語ドキュメントがある。

この日本語ドキュメントを読み進め、コピペをするのが今回の行ったハンズオンの中身。

 

サンプルのソリューションファイルは以下のGithubに配置されていた。(上のリンクの中にも記載あり)

https://github.com/xamarin/dev-days-labs

資料は緑ボタンのZIPダウンロード推奨とのこと。

 

ダウンロードしたら適宜いい感じの場所に展開して利用する。

Windowsの場合はパスの長さの制限があるため、C直下などの浅い階層に配置することを勧められた。(今回はMacを使っていたためダウンロードフォルダ直下で利用)

 

使ったソリューションはdev-days-labs/HandsOnLab/Start/ の中のDevDaysSpeakers.slnを利用。

あとは日本語ドキュメントに沿って実装していくだけでとりあえず動きます。

 

一部ytaguchi氏のAzure環境に繋いだりということをしたので、

ドキュメントとは違う部分もあるけれど、そこはドキュメントに沿ってAzureを契約すればいいと思う。(仮想マシンの起動しっぱなしには注意)

 

とりあえず以上がまとめ。

モバイルアプリが実機で動くという成功体験はまだなので、それを体験してみればもうちょいやる気が出るかもしれない。

Xamarin面白そうなのは確かなので、頑張ってみよう。

コンテナ技術と仮想化

今見たら転職活動のあたりからぱったりと更新が止まってました。

 

先月家に勉強用のサーバを購入しました。

富士通Primergy 200 s5です。

とりあえず、CPUが1つしか載っていなかったので、Xeon L5520の4つ入を買ってDualCPUにしました。残りは予備パーツ。

久々に中をいじってやはり楽しいですね!

 

そして、題名の話につながります。

そのサーバーにVMWare ESXi6.0を導入しました。

まだゲストOSは載せてないですが、これからCentOSでも載せてみようと思っています。

 

そして先日入手した、DockerやOpenStack, OpenShiftというネタ。

これらが気になってるので、CentOSの上に乗せてDockerエンジンの上にnginxでも複数載せて動かしてみようと思います。

 

実施した結果はまたここに載せます。

サービスインを制御する

こんばんは。

来週リリースするサービスのサービスイン時間について本日揉めました。

何故揉めたかというと、リリースは9月20日までしか決めておらず、直前で11時にサービスインすると言われたからです。

 

厳密にサービスインするためには以下のパターンが考えられます。

・サービスの起点となるページを表示できなくする

①会員登録ページのリンクを削除する

②会員登録ページを表示できないようにLBで振り分ける

・サービスの会員登録をできなくする

③データ投入しなければ会員登録ができないため、そこで制御する

 

色々検討して③に決めたのですが、最後の最後に、厳密に制御は不要という鶴の一声があり何も対応がいらなくなりました。

 

もともと会員登録ページを表示できないようにメンテナンス画面と期間指定できるコンフィグ設定が必要と感じました。

上記の仕組みはどのシステムにも使えるように汎用的にする必要がありそうです。

 

 

VisualSourceSafeのエラー対処

久々の更新です、こんにちは。

技術系の勉強はなかなか時間が取れず更新できないので、仕事であった躓きなども投稿することにしました。

自分の備忘録も兼ねてます。

 

題名通り、VSSのこと。

今時使っている会社も少ないと思います。

今やGitやらTeamFoundationServerなど使っているのではないでしょうか。

 

で、VSSで起こった悲劇。

後輩があるソースファイルを誤って更新し、チェックインしてしまいました。

よくある?話ですかね。

ですので、ロールバック機能を使って戻しました・・・戻りませんでした。エラーです。

「PKEEEEEファイルがありません。」

なんじゃこりゃ?と。

ソースの参照も、履歴の比較もできなくなりました。焦りました。平静を装って先輩らしく頑張って対処しました。

 

まずはVSSを操作していじってみたのですが何も変わらずエラーを出し続けていました。

そのため、VSSサーバの中を直接覗いたところ、pkeeeee.newとpkeeeee.oldがありました。怪しいです。

 

とりあえずバックアップ取ってからoldの拡張子を外したところ、ロールバック前の状態に戻せました。

そこでまたロールバックしたところうまくいきました。

うまくいったので不要なファイルは削除して一見落着です。

 

というお話。

リポジトリ管理サーバがエラー出してソースが無くなるとか結構シャレにならないので、もし同じ現象が再発したときはこの記事を見返したいと思います。

 

 

esp-12e 2

1か月ぐらい前に行ったESP-12Eの作業を続きやりました。

 

結果としては、Arduino IDEからスケッチの書き込みができるようになりました。

 

 GPIO0がGNDに接続されている状態f:id:kuriboo1002:20160807210439j:image

 

GPIO0のGND接続を外した状態

f:id:kuriboo1002:20160807210444j:image

今回スケッチ書き込みまでかなり悩み苦労しました。

 

前回と同じように接続図は以下の通り。

 

ESP-12E:VCC ⇔ 電源回路:3.3v
ESP-12E:GND ⇔ 電源回路:GND
ESP-12E:CH_PD ⇔ 電源回路:3.3v + 10kΩ
ESP-12E:GPIO15 ⇔ 電源回路:GND
ESP-12E:GPIO02 ⇔ 電源回路:3.3v
ESP-12E:GPIO00 ⇔ GND or 未接続
※電源投入時にGNDに入れておくとスケッチ書き込みモードになる。
ESP-12E:TXD ⇔ PC(シリアル通信):RXD
ESP-12E:RXD ⇔ PC(シリアル通信):TXD
PC(シリアル通信):GND ⇔ 電源回路:GND
 
ESP-12Eに下記のスケッチを書き込んで動かした状態が最初の写真。

void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, LOW);
  delay(1000);
  digitalWrite(13, HIGH);
  delay(2000);
}

 

書き込み時の設定は下記の写真通り、ボード「Generic ESP8266 Module」

書込装置は標準のまま「AVRISP mkII」※これをesptoolに変えるなどの記事を見つけたが、どうしてもesptooは出てこないし、このままでも書き込みできた。

 

この状態でマイコンボードに書き込み(Arduinoへの書き込みと同じ)動作で、書き込みが始まりました。

ドットが大量に表示され、止まったところで書き込みが完了。

GPIO13に接続したLEDがチカチカするようになりました。

 

とりあえずESP-12E単体でスケッチが動くようになったので、

今度はブラウザで接続できるようにしてみたいと思います。