月別アーカイブ: 2016年9月

.NET Standard とは何か?

.NET Core が 1.0 になってリリースされて、ASP.NET Core MVC が Linux 上で動くようになったと思ったら、今度は .NET Standard ってのが出てきて、え?いきなり、.NET Standard 2.0 ってのは何ですか?ってな感じな人は多いと思いますが(私もそうでして)、ひとまず、.NET Standard とは何なのかを探っていきます。 Introducing .NET Standard | .NET Blog https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/ もともと、.NET Core って、Windows に依存する API を切り離してしまって、Linux やら Mac やら動く環境を作るのが目的じゃなかったんですか?と思っていたわけです … 続きを読む

カテゴリー: 開発 | 1件のコメント

[ソフトウェア開発者の道具箱] 同情プログラミングをやめる

道具箱シリーズの第2弾は「同情プログラミング」の話です。 プロジェクト運営(プロジェクト「管理」ではなく)の視点から言えば、プロジェクトやチームがうまく動く方法は「うまくいかない部分」を切り去っていくことです。「切り去っていく」ということは、冷徹な感じがするような気がしますが、人を切り去るのではありません(チーム崩壊を招く「マイナス生産者」に対しては、切り捨ての手法をとりますが)、その人が何かをやるときに、うまくいかなくてマイナスになってしまう部分を切り落として捨て去ります。人なのだから、何かの間違いもするし、勘違いもするし、運が悪いときもあるし、体調が悪かったときもあるし、状況によりうまくいかない場合もあるでしょう。だから、トータルで考えるわけですが、チームとして(それは人として「成長」なのかもしれません)今よりもうまくいくためには、今、ダメである部分を少しずつ切り取っていくのが着実な方 … 続きを読む

カテゴリー: ソフトウェア開発者の道具箱 | コメントする

PLEN2 で始めるロボット制御の基本…の補足

Plen2で始めるロボット制御の基本(スライド) NETラボ勉強会 20160924 – YouTube 二足歩行ロボットのチート…じゃなくて、参考用に購入した PLEN2 を題材にした発表です。あれこれ、模索した結果を話しているので、本格的なところは ROBO-ONE などを参照して貰うとして、ソフトウェア開発のサイドから見ると、ハードウェアな二足歩行ロボットはこう見える&こうアプローチできるという感じで話をしています。 PLEN2 を購入して、あれこれ弄って分かったことなのですが、 サーボモーターの初期化が結構大変 → 結構、誤差がでるので、誤差は誤差で許容しないといけない。 歩くといっても、モーション作りと、自律制御と、人によるコントロールが混在している → どれを目指すかによって、制御プログラムにいろいろ違いがでる ソフト屋さんのアプローチできるところは多い。 → クラ … 続きを読む

カテゴリー: PLEN2 | コメントする

アリスは無限にプラダから猫を取り出す(F#編)

アリスは無限にプラダから猫を取り出す | Moonmile Solutions Blog http://www.moonmile.net/blog/archives/8179 これをF#版に直してみる。 実は、GetCatsメソッドを末尾呼び出しにして、F#のほうは無限に猫を取り出せる…という風にやろうと思ったのだが、この方式だと lst に詰め込むときにスタックオーバーフローになってしまう。 最初は head::tail 方式で書いていたのだが、なんか面倒になって(ツリー構造だから)、外部で list を持っているのが問題かも。

カテゴリー: F# | コメントする

アリスは無限にプラダから猫を取り出す

アリスはプラダがお好き | Moonmile Solutions Blog http://www.moonmile.net/blog/article/alice-plada アリプラシリーズの第24弾めは、イテレーターの話…というか、とある林檎な国では for がなくなって for in だけになってしまったものだから、いやいや、配列とコレクションがごっちゃになってないか?と思って作ろうと思ったのだけど、横道に逸れてイテレーターになってしまったという訳。 最近のプログラム言語ではコレクションの全ての要素に対して何かやるときは、foreach を使う訳ですが(林檎の国では for in ですね)、これはコレクションの中身のすべてのアクセスするというだけで、特に順序は決まっていません。まあ、実装上は最初の要素からアクセスするんだけど、Javascript のように実はとびとびだった … 続きを読む

カテゴリー: 開発, C# | コメントする

[ソフトウェア開発者の道具箱] イチゴジャムの法則

6月末に出版した 現場ですぐに使える! Visual Basic 2015 逆引き大全 520の極意 なのですが、この第19章には不思議な Tips が入っています。章自体は「トラブルシューティングの極意」ということで、運用保守や設計段階の落とし穴について書いた章なのですが、最後の10個の tips が「対人関係」になっています。端的に言えば、トラブルシューティングなんて、その場その場の経験の積み重ねと、根本的な対処の方法を知っていればよいだけなので、あまり表面的な対症療法なものは、これ以上追加したくなかったんですよね。というのと、試しに「技術書に技術的なじゃないものを紛れ込ませてみたかった」というのがあります。真面目に書くと、えらい時間が掛かるのだけど、Tips 風に1頁にまとまるぐらい(1000字ぐらい)を目標に書き下してみました、という具合です。 でもって、ものがVBだったからなのか … 続きを読む

カテゴリー: ソフトウェア開発者の道具箱 | コメントする

Bitbucket にプライベートな git を作る方法

月7$ 払って github にプライベートレポジトリを作ればいいんだけど、その前にお試し的に Bitbucket で作って運用してみるテスト。大抵の場合は、面倒なので public で github で作ってしまえばいいのだが、ちょっと内部的なのだと非公開で作りたいときもあるので、メモとして。 既存のものからアップロードしようとしたり、あれこれやったんだけど、なんかうまくいかない。したかがない(?)ので、Bitbucket の手順に従ってちまちまやるのが一番手っ取り早いです。 リポジトリの作成から、新規リポジトリの作成 新しいリポジトリが作成できたら、コマンドラインの「私はゼロからスタートします」をコピペしながら実行する。「SourceTreeにクローン」のほうは、Firefox で動かなかったので   mkdir /path/to/your/projectcd /path/t … 続きを読む

カテゴリー: 開発 | コメントする

MVVM+MVCパターンを大規模システムにスケールする

大規模プロジェクトで MVVM を導入するときの注意 | Moonmile Solutions Blog をもう少し突っ込ん考えてみます。大規模といっても、みずほみたいにできあがらなくて破綻したパターンもあれば、特許庁の場合のように設計時で破綻した場合もあれば、豊洲のように作ってからそもそも破綻しているのもあるわけで、常々プロジェクトの成功率は30%程度なので、大抵は破綻します。まあ、途中でプロジェクトとしてうまく失敗させる(一気に解散する)か、うまくプロジェクトを軟着陸できずにだらだとお金をつぎ込んで「失敗」させることがことができず終わる二百三高地になるやもしれません。 さて、それなりの資源(人と金)をつぎ込んでペイができるかどうかのバランスを保つ場合(公共事業の場合は、バランスを保たなくてもよい場合もあるので別)、「失敗が許されない」パターンがあります。しかし、失敗が許されないの対偶を … 続きを読む

カテゴリー: 設計 | コメントする

アリスは System.Json に出会う

System.Jsonなるものが爆誕してた。https://t.co/sZY8lumbX3 — 高張大雅 (@taiga_takahari) 2016年9月14日 ということで、さっそくダウンロードして、無理矢理 .NET Framework のほうでビルドします。ええ、.NET Core じゃなくて、普通の .NET Framework に持って来るわけですね。 corefx/src/System.Json at master ・ dotnet/corefx https://github.com/dotnet/corefx/tree/master/src/System.Json から System.Json の src 以下をごっそり持ってきます。 Visual Studio 2015 でクラスライブラリを作成 実は、そのまま corefx のプロジェクトを持って来て少し変えるだけでいけ … 続きを読む

カテゴリー: C# | コメントする

アリスはプラダに猫がいることを知らない

ありぷらなネタ的には、weekpointer あたりをカプセル化して、LINQ の遅延実行風に、実際の参照時に中身を取ってくることができる。例えば、ストリーム的に流れてくる計測データの大半を捨てて、UI の都合で定期的にピックアップ表示する感じ。 — Tomoaki Masuda (@moonmile) 2016年9月14日 な感じで、内部データを遅延して持って来る例を作ってみる。 実行するとこんな感じ 意味合いとしては、アリスはプラダのバックを3つ持っている(pradaRed、pradaBlue、pradaYellow)んだが、中に猫がはいってるかどうかは分からない。どの順番で開ける猫がいるかわからないし、猫がいるかどうかも知らない。でも、開けると猫が入っているか、また猫が入ってないかわかる。というシュレディンガーなプラダな猫の話。 cats は最初から用意されているので、外部データとし … 続きを読む

カテゴリー: 設計 | コメントする