居眠りプログラマの休憩所

へっぽこSIerなプログラマが書き起こす日記です。

『学生でもわかるXamarin勉強会』に参加しました

皆さま、いかがお過ごしでしょうか。長らく放置しており申し訳ないです。書くこともないなと思って何もせずにいた結果がこれです。これからは小さなことでも記事に書いていこうかな、と思います。

さて、本題に入っていきたいと思います。

遅ればせながら、6/17(土)に名古屋で開催された、Xamarinの勉強会についてです。いつの話だよって方、安心してください…1か月はたっていません。(白目)
語っていく前にぼくのXamarin技術レベルについてお教えします。エアプ勢です。

もう一度言います。

エアプ勢です。

Xamarinとかよくわからんしーみたいな状態で行ってきました。

※この記事には聞き間違いや認識の齟齬がある可能性があります。
指摘があれば都度修正しますが、ご理解をお願いします。



目次

発表者一覧

田淵さんが体調不良で欠席だったり、LTが思ってたよりライトニングだったりして順番がおかしかったりするかもです。
影白さんだけアカウントが見つからなかったですごめんなさい。

会場の雰囲気

会場は港生涯学習センターということで、ぶっちゃけ人数に対して狭かったです。
なんか名古屋の会場事情が複雑らしく、場所もいいとこ悪いとこはっきりしてますね。
次は頑張って広いとことるらしいです。(まるちゃんさん談)
以上

Xamarin.Forms.Maps

発表者はあめいさん
地図機能を扱うにあたって、Xamarin.FormsにはXamarin.Forms.Mapsが公式提供されています。
しかし、機能が貧弱。ラインが描けない、ポリごんが描けない、ピンがカスタマイズできない等できないこと盛りだくさん。公式は「カスタマイズすればできる」と言っているようですがカスタムレンダラーなるものを使わなければいけない。いやいや、そんなのめんどくさいじゃん。

そこで出てくるのがXamarin.Forms.GoogleMaps
github.com

あめいさんが作ったXamarin.Forms向けAPIです。
なんかたくさんできます。(よくわかってない顔)
デモでマップをドロイド君が埋め尽くしてたところでぼくは理解を放棄しました。
Mapのstyleをjsonで指定することができたりもするらしいです。
mapstyle.withgoogle.com

使用されたスライドはこちら。
Xamarin.Forms.GoogleMaps について // Speaker Deck

Xamarin アプリとプッシュ通知

発表者は伊勢さん
プッシュ通知って簡単なんじゃねって思ってたぼくは開始十分くらいで叩き潰されました。
DebugとReleaseで証明書が違うでは、はあ…ってなったところにトークンは突然変わります、で例外起こして脳が動作停止しました。
らいとにんぐすげー((

うどん

お昼はうどんを食べました

UnitTest

発表者はくぅさん
ぼく「()」
やっべさっぱりわからん、なんだこれ最近の学生ここまでやるんか、となってましたまる
プリキュアは最近見てないけど見たくなった。

Robi

発表者はakinobu_yamamotoさん
発想の違いを見た。
やっぱ既製品でもカスタマイズできることは多々あるんやなと。
ただし、鬼畜

MSPについて

発表者はまるちゃんさん
これがLTか……
スピードはやすぎ(((
MSPが良いだけのものではないことは分かった

欅坂Time

発表者はくぅさん
……くぅさん…………? 二回目の登壇です。
写真撮って欅坂の誰に似てるか判別するやつ、しかも学習する。すごい。
qiita.com

.NETアプリのバイナリを覗いた話

発表者はやきそばメロンパンさん
スライド2枚、まさに鬼畜
アセンブルの容易さも見せつけた気もするんだが、アセンブリ署名なんかを行うとまた違うんだろうか?

なぜXamarin

宇佐美さんと可知さんが発表
偶然被ったみたいです。
Xamarinである必要性を問う、ある意味一番実務的な話でした。
結局のところ、顧客にとってXamarinで作ろうが、Javaで作ろうが、VB6で作ろうが、きちんと要件が満たされていれば関係ないわけで。
じゃあどんなときにXamarin使うのって話で。
なんでもかんでも○○でやる!、じゃなく、プログラムも適材適所で使う言語を変えていきましょうという非常にためになるお話でした。

まとめ

これは学生にはわからないのでは……?
というかぼくもわかっていないが

幕張公演

THE IDOLM@STER CINDERELLA GIRLS 5thLIVE TOUR Serendipity Parade!!! 幕張公演1日目に参加してきました!!




…………嘘です。ごめんなさい。
幕張公演1日目のライブビューイングに参加してきました。

会場はユナイテッド・シネマ アクアシティお台場

当日はなんかいろいろゴタゴタしていたこともあって、5分くらい遅れての到着(到着した瞬間死ぬほど後悔した)

到着すると、そこには……センターにるるが!!!
すでにここで一瞬心臓止まったと思います。

トークが始まると、センターにるるがいることを強く感じて、感動
マリエッティいじりに始まるトークパート、この辺は安心して見れました。

そして始まるライブパート
1曲目、……Radio Happy!!
ななみんが公演前に大切な役目をもらった(意訳)とつぶやいていたので、何かあるとは思っていましたがまさかのトップバッター
お台場も騒然としました。
ぐるぐる~
2曲目、ステップ
飯屋~~~~
センスってやつだね(キリッ)
3曲目、スローライフ・ファンタジー
リズムがつかめねえんだよ!!(切れ気味)
ずっと聞いてたらライブ中にもかかわらずほけった
4曲目、あいくるしい
息 苦 し い
りっか様ほんと美人さんなんだよなぁあの人が30超えてるとかうそでしょ
5曲目!! NUDIE★!!!!!!!!!
ここでくるなんてぇ……
るるかわいいよるる
かわいい、色っぽい、美しい、美嘉見える、最高かよ……! カリスマほんとカリスマ、一生ついていきます。
今思い出してもテンション上がってきます。

トークタイム
ぐるぐる~をみんなでやってたんですけど見事に合わない((
劇団あいくるしい
るるほんとかわいいから、みんな応援しよう。

ライブパート
6.薄紅
大阪でも聴いたけど、完成度が段違い。
というか、りっか様ほんと美人。結婚しよ。
7.in fact
もう一度言います。
7.in fact
青の一番星来ると思ってたよ!
あみな姫のことは前々から噂には聞いていたんですが、ちょっと予想以上でした。
ありす見えます(マジ)
8.この空の下
あみな姫劇場第二幕
キャラ的に言うとしゅーこと杏とありす。いい組み合わせですね。
感慨深いものがありました。
9.AnemoneStar
これぞしぶりん!!
かっけえんだよなぁ……歌詞を覚えていないのでかっこいいリズムしかわかってない。
10.命燃やして恋せよ乙女
17歳、乙女。ビール大好き、乙女。流されやすい、乙女。
アカン

トークタイム
アネモネでマリエッティに心配されるふーりん。お歳だからね、仕方ないね。
腰を多めに回しております(るーりーかな?)

ライブタイムー
ここのブロックが一番印象弱かったり
11.アタシポンコツアンドロイド
相変わらず(裸に)なっちゃえー!の掛け声がでかい((
12.Netion Blue
クールクール超クール
これぞクール曲、そうとしか言えない(
13.SUN♡FLOWER
聞き覚えがないぞ……?(
14.BEYOND THE STARLIGHT
テンションがあがるあがるあがるあがる!!
叫んで叫んで叫ぶ。

talk
七夕コーナー!イェイ!!(順番間違ってたらスマヌ)
強そうなチームB
やっぱるるがかわいいね。
かっこいい体を目指すあしゃかさん(今でもかっこいいしかわいい)
本田未央がほしい飯屋
ボロを出したくない茜さん(

ライブパートおおおお!!
15.Snow Wings
世にも珍しい6人曲(個人的意見)
ちょっとの間あれ?1人多いってなってました 。
16.Can’t Stop!!
やっぱパッションはいいな、最高だ
りっか様の動きキレッキレ、何だあの人ほんとにぼくと同じ人類か?
全てのPが逮捕された模様
17.メルヘン∞メタモルフォーゼ!
ミンミンミン!2番の宣伝が面白すぎる
18.With Love
ふつくしい……
シンデレラの未婚率が頭をよぎってしまった悲しさ
19.Take me☆Take you
んー、んー?(記憶がない)
20.Tulip
待 っ て い た ぞ !
カリスマるる、大人なりっか様、ちょっと大人ぶったようなあしゃかさん、不思議とエロスを感じさせるまこ、セクシー()なルゥティン
これずるすぎるって……
なんなのこれ、最高かよ……
あ…あ……あ…………

トーク
キスたくさんしちゃった★

21.夢色ハーモニー
ど 安 定
泣いてたので映像見えておりません((

アンコーール!!
22.EVERMORE
やっぱさ、こういう曲っていいよね
ぱっと聴くと浅く感じるんだけど、やっぱこういうことは素直に伝えたいじゃん

挨拶
ぼくはもう何も言わない(((
というのも、ぼくが言葉にできることなんてキャストさんが言った中のほんの一部だし、そのときの気持ちが代弁できるわけではないから
みんなBD買ってくれればいい

23.お願い!シンデレラ

アイマスですよ!アイマス!!
にしても、素のりっか様とお喋りしたい()

xamppの設定に苦しめられた件

今日の業務中にxamppでlocalhostに繋ごうとしたら、503が出て死にました。
忘れないために書いておこうと思います。

とりあえず、xampp(というかlocalhost)でよくあるエラーをまとめてきます。

ポートの占有

大抵はこれ(多分)
skype入れてる人は要注意(skypeの設定に『追加の受信接続にポート80と443を使用』とかいう需要があるのかよくわからないチェック項目があるため)
他にもポート80を使うアプリ入れてる人は注意しましょう。

試しに上記で上げたskypeの例で試してみたいと思います。
コマンドプロンプトを起動して、netstat -ano*1でポートが使われているか確認します。

f:id:hayahina82:20170314223059p:plain
↑の場合はポート80がPID14880のプロセスに使われています。
※長すぎて見えない!! という方はコマンドプロンプトのプロパティから画面バッファーの高さを長めに設定してみましょう。

次に、tasklist /svc /fi "PID eq 14880"*2でPID14880のプロセス名を突き止めます。
f:id:hayahina82:20170314224425p:plain
想定通りですが、skype.exeが使っています。
※イメージ名を見れば大抵わかると思いますがわからないものだったらググってね

この例での対処は単純でskypeの『追加の受信接続に(以下略)』のチェックを外せばよいだけです。
ほかのアプリの場合は設定でいじれるのなら、設定で回避するのが一番だと思います。
できないときは仕方がありません。タスクを終了させましょう。
ポートの占有の対処はこれで完了です。

hostsファイル

結果から言うと、これと後述するもう一つが原因でした。
C:\Windows\System32\Drivers\etc\hosts というファイルがおかしい場合です。
では、見てみます。

#	127.0.0.1       localhost

……おや?(実際に起きた事例です)
状況がつかめない方のために言うと、コメントアウトされています。

対処としてはコメントアウトを解くだけでいいです。
ないとは思いますが、削除されていた場合は上述の#を除いたコードを記述しましょう。

原因ですが、適当に調べたところWindowsUpdateでこうなることがあるらしいです。なぜだ……。

ファイアウォール

なんでお前が来るんだよっ!
体験してないため実感はわきませんが、割とあるそうです。
本当にざっくりですが紹介しておきます。

結論から言います。
アンチウイルスソフトが邪魔してます。
ファイアウォールの設定からポートを開放しましょう。

proxy

これでした。
悲しくなりました。
業務で使うPCの場合、引っかかる場合があります。
プロキシ通したらそりゃつながりませんよね……。

対処法
Win10の場合
Windowsの設定からネットワークとインターネット.プロキシの設定画面に入ります。
f:id:hayahina82:20170314233047p:plain
プロキシのアドレス云々の入力フォームの下に『ローカル(イントラネット)のアドレスにはプロキシ サーバーを使わない』というチェックボックスがあります。こちらにチェックを入れて保存するだけです。

Win7の場合

  1. IEのインターネットオプションを出す
  2. 接続タブからLANの設定
  3. ローカルアドレスにはプロキシ サーバーを使わない的なチェックボックスがあるのでチェックをつける

これで503の人は状況が変わります。



大きな項目でいうと、この程度だと思います。
ほかにも、Apache自体の設定がおかしかったりする場合があるらしいんですが、自分でいじらなければ出ることはないと思います。


以下参考
www.cherrypieweb.com
colors1314.blog68.fc2.com
blog.verygoodtown.com

*1:-a: 接続を表示, -n: IPアドレス・ポート番号を表示, -o: プロセスを表示

*2:/SVC: プロセスのサービスを表示, /fi: フィルタ

オセロ

Twitterを見ている方はご存知かもしれませんが、現在進行形でHTMLとJavaScriptでオセロを作っております。一応長くやっていく企画です(オセロだけじゃなく、フリゲ集みたいになっていきます)。詳細を詰めてないので、UIの部分がすかすかになっておりますが。

今作っているのは取っ掛かりの部分で、ただ単にオセロというゲームをするのに必要な機能を詰めている段階です。(ひっくり返す処理、勝敗判定等)
これから先、CPU対戦やオンライン対戦といった機能を拡大していく予定ではあります。(オンライン対戦は鯖事情もあるので大分先になりますが)


では、なぜオセロを作ろうかと思ったかという話に入るのですが、理由は2つあります。
1つ目は自分がオセロに限らずボードゲームが好きで、オセロは数あるボードゲームの中でも単純なロジックで動くものだからというものです。将棋とかも好きなんですけどね。持ち駒のロジックに悩んでしまう。
2つ目は簡単な話、何でもいいのでプログラムを自力で1つ完成させたかったという思いからです。ぶっちゃけた話、自分は1人で1つのプログラムを完成させたことないです。学生時代に作ったもの(卒業課題ではチェスもどきを作ってたり)はバグが多く、とても完成したとは言えないものでした。業務で作っているものはどうなのかというと、確かに完成はしているのでしょうが、部分部分を変えているだけで実装しているので、どうにも自分で作成した感覚が薄いのです。業務的に微妙に問題かもしれないですけど。まあ、そんな感じでなにか作ってみようと思って始めたのが本企画になります。

近日中に、ソースの一部を記事としてあげる予定です。よければレビューをお願いします。致命的なバグは……ないといいなぁ……。

DataTable→List<T>(C#)

DataTableからList<T>への変換法です。

いつも忘れて調べる羽目になっているので、自分用にメモっておきます。

 

一口にDataTableからListに変換するといっても方法は色々あるんですが、ぼくは大抵の場合リフレクションを使ってます。なんかパフォーマンス的には良いらしいです。詳しいパフォーマンスを知りたい方は御自分でベンチマークしてください。

実装方法を忘れた+実装するほどのやる気がない場合はforeachで回します。どう考えても怠惰&怠惰です。

 

gistc2cef2ffa184b08b189ddf6c2ae504c7

 

多分少し調べるとやり方としては全く同じ方法を使ってる方もいる、はずです。というか、参考(という名目でパクった)記事があったはずなので。

匿名メソッド式にしていない理由は特にありません。変えても全く支障はありません。

 

VB.NETでもこれだけ楽に書けるといいんですけどねぇ。

現在方法模索中です。

なんかすっきりした方法を書けるようになったら別記事で上げます。