2019年11月28日木曜日

Xsd.exeでXMLからC#モデルクラスを生成さす

あまプロではC#の案件をお請けする事が有ります。
先日、XMLファイルからC#のモデルクラスを生成するXSDというツールでハマったのであメログ。

.net frameworkにはXMLファイルからC#のモデルクラスを生成してくれるXsd.exeという
ツールが予めインストールされてます。
※見付からない人はドットネットのインストールディレクトリを検索してみてね

このツールでXMLからC#のクラスファイルを生成する事が出来ます。
手順
  1. xsd hoge.xml
    これでスキーマファイル(hoge.xsd)がカレントディレクトリに生成されます
  2. xsd /c hoge.xsd /n:namespace.hoge
    これでC#のカレントディレクトリにクラスファイルが生成されます
二段階あるのでちょっと手間ですけど、多数のXMLファイルからC#クラスを生成せなあかん場合はバッチファイルとかを組むと良いでしょう。

これはこれで便利やねんけど、例えば
hoge.xml
<?xml version="1.0" encoding="utf-8"?>
<root>
  <child0>value0</child0>
  <child1>value1</child1>
  <child2>value2</child2>
</root>
こんなXMLファイルやと生成されるC#クラス内に
NewDataSetという内部クラスが生成されてしまいます。

C#クラス一つだけなら問題なくコンパイルも通んねんけど
生成されたクラスが二つ以上同じネームスペース内に有ると
重複エラーでコンパイルが通らんくなってしまいます…。

ツールの引数を色々変えて試してみたけど、あかんくて結局
hoge.xml
<?xml version="1.0" encoding="utf-8"?>
<root>
  <child>
    <child0>value0</child0>
    <child1>value1</child1>
    <child2>value2</child2>
  </child>
</root>
こんな感じに要素を一つ追加して回避しました。
こうするとNewDataSetという内部クラスは生成されず、重複エラーも起きない。

その他の回避策としてはクラス毎にネームスペースを変えるとかかな…美しくないけど。

ツールの仕様らしいです〜。

グーグルフォームでアンケート結果が消える件について

あまプロではグーグルフォームを使ったアンケート作成する事が有ります。
先日アンケートで困った事があったのであメログ。

グーグルフォームではアンケート結果を保存する事が出来ます。
質問と回答は組になってまして、この質問についてはこの回答という関連付けになっています。


アンケートを開始すると、回答がどんどん溜まっていくのですが、
既に回答が保存済みの状態で、 関連付く質問を削除すると…保存済みの回答も削除されてしまいます。2019/11/25現在

警告も無しに保存済みの回答も消されてまうので、知らない人は
アンケート結果が消えてびっくりされると思います。
が、仕様です。

一応フィードバックを送信しておきましたので、ひょっとしたら改修されるかもしれませんが
今の所はご注意を…。

2019年11月3日日曜日

ラインオフィシャルアカウントマネージャでのグループチャットについて

あまプロではline公式アカウントを使ってプログラミング教室の生徒と連絡する場合が有ります。

最近、line@がライン公式アカウントに統合され、管理アプリもLINE Official Account Managerに変更されました。
その移行の際に設定が変わってしまって、公式アカウントでのグループチャットが出来なくなってしまったのであメログ。

あまプロの様に教室を経営していると、教室と生徒で1:1の遣り取りだけでなく、教室と複数の生徒さんで1:nの遣り取りが要る場合が有ります。
例えば、友達と一緒に教室に通われてて、友達と一緒に日程を調整したい場合等はグループチャットの方が便利です。
但し、初期設定ではグルチャ出来へん設定になっているので、以下の手順で設定を変更します。

設定 > アカウント設定 > チャットに
  • グループ・複数人チャットへの参加を許可しない
  • グループ・複数人チャットへの参加を許可する
が表示されてます。
何故か初期状態では許可しないになってるので、許可するに変更しておきます。

これで公式アカウントからグループチャット出来るかと思いきや、公式アカウントからはグループチャットを開始出来ません
生徒から公式アカウントを招待してもらわなあかん様です(今の所)。

生徒さんからグループに招待してもらったら、晴れて1:nでのチャットが出来る様になります。

ちなみに、LINE Official Account ManagerはPC版でフリープランで行ってます。
スマホ版や有料プランでは違うのかもしれません…。

2019年9月17日火曜日

FirefoxでJavaScriptをデバッグ出来ない

あまプロではJavascritの開発を行う事が有ります。

ジャバスクの開発にはブラウザが要りまして、Ubuntuの標準ブラウザはファイヤーフォックスです。

以前の記事でも書きましたが、最近Firefoxの調子が悪いです。
前回のJavaScriptの整形表示は最新版(69.0 Ubuntu 64bit)で改修されておりました。アリガトウゴザイマス
だがしかし!、今度はブレークポイントで処理を止めるデバッグが出来なくなっております…。ザンネンスギル

こんな簡単なJavaScriptですらデバック出来へん
<html>
    <head>
        <script type="text/javascript"><!--
            (function ( )
            {
                alert( "JS"); //ここでブレークしたい
            })();
      </script>
    </head>
    <body>
</html>

次のバージョン(70.0)迄待たなあかんのでしょうか?
ちょっとお仕事では使えない品質ですねぇ。
それまでは取り敢えずChromiumを使ときます…。

ーーーーーーーーーーーー追伸ーーーーーーーーーーーー
Windows版は正常にデバッグ出来たので、Linux版のみの不具合みたいです。

2019年9月11日水曜日

シェルスクリプトで時間を測る方法について

あまプロではプレゼンの時間計測をする事が有ります。
ストップウォッチアプリをインストールしても良いですが、シェルで簡単に作成も出来ますのであメログ。

例えば経過秒を延々と表示し続けたいなら
ワンライナーで
since=`date +%s`; while :; do clear; echo $(( `date +%s` - $since )); sleep 1; done
こんな感じ。
止めたい時はCtrl + cで割り込みます。

応用すれば
since=`date +%s`; while [ $(( `date +%s` - $since )) -lt 10 ]; do clear; echo $(( `date +%s` - $since )); sleep 1; done; echo "時間やで〜"
こんな感じで10秒後にお知らせしてくれるタイマーも出来ます。
十秒前に止めたい場合も同じくCtrl + cで割り込みな。

結構簡単に時間を測れるのでお試し下さい。

2019年9月1日日曜日

外出時のサングラスについて

あまプロでは市内の立花、塚口、園田、武庫と伊丹昆陽でプログラミング教室を開催しています。

定期開催している教室は上述の通りで、リモートの授業も行うんですが、基本的にはその教室へチャリで通ってます。
日中の移動中は日差しが強いのでサングラスが欠かせません👓
強い紫外線から目を守る為にも。

私の扱いが雑なのも有るんですが、サングラスは大体1〜2年で壊れたり傷付いて交換になります。
先日はサマセミの二日間でフレームをバッキリ割ってしまいました…。

とは言え、安物では効果が薄いので、自分に有った少々お値段張っても良いサングラスを買うてます。

私がいつも付けてるサングラスは偏光レンズでスポーツタイプのサングラスです。
偏光レンズは簡単に言うと光のちらつきを抑えて目を疲れ難くしてくれるレンズです。
余計なちらつきを抑えるので、川なんかを除くと水中の魚が良く見えます。
外出時に目が疲れ易い方は是非一度お試し下さい。

スポーツタイプは軽くて運動してもずれ難くなってます。
それとサングラス自体の形が顔の形に沿って曲がっているので、サングラスと顔の隙間から光が入って来るのも少なくなってます。
例えるなら (○ こんな感じ。○が上から見た顔っていうか頭ね。
普通のメガネは平らな形で、顔は丸いので |○ こんな感じ。

で、この偏光レンズのサングラスなんですが、眼鏡屋さんに行っても数が少なく、選ぶ程置いてません。
しゃーないんで眼鏡屋さんをハシゴするしかないんですが…眼鏡屋さんってコンビニ程多くないんで、尼でもハシゴは大変です。
まぁ駅前とか商店街毎に一軒程度でしょうか。

そんな時に私がいつも活用してるのがあまがさきキューズモール
メガネショップアイJ!NSパリミキZoffが階は違えど同じ建物内に有るのは助かります。
眼鏡屋さん四軒も有れば、まぁまぁ自分に有ったお気に入りのスポーツタイプ偏光レンズサングラスが見付かる筈。
それでも見付からへんかったら…その時に考えます。

Eclipseのショートカットについて

あまプロではシステム開発を請ける事が有ります。

先日、Javaでのウェブシステム開発で不便を感じましたのであメログ。

その案件ではデータベースの命名規則はスネークケースで、Javaの命名規則はキャメルケースでした。
変数名等でHyogoAmagasakiにするのがキャメルケース(駱駝っぽいやつ)、hyogo_amagasakiにするのがスネークケース(蛇っぽいやつ)ね。

で毎回ソースに選って切り替えるのが面倒で工数掛かってしゃーないんで、ショートカットで楽したいと考えました。
Eclipseでキャメルケースとスネークケースを切り替える機能が有ります。Ctrl + Alt + kで切り替えられます。
なんですが、その案件ではEclipseに色々なプラグインを追加した独自の開発環境で、勝手に設定が変えられませんでした。

そして残念な事にその案件の開発環境ではCtrl + Alt + kのショートカットは使えないんです。
何やねん、その非効率なローカルルール。
面倒くさいわぁ…。