月別アーカイブ: 2014年12月

2014年ふりかえり by @masaru_b_cl

今年も残すところあとわずか!ということで、昨年に引き続き1年の活動を振り返ってみようと思います。


1月

長岡IT開発者勉強会 第35回勉強会(#NDS35)に参加

第35回勉強会(2014/01/18) & 新潟開発者新年会(NDS) – 長岡 IT開発者 勉強会(NDS)にて、ゲストスピーカーとして@ugaya40さん、@liliputさんを招き、「設計≒デザインの話をしよう」というテーマで話をしてきました。

私が担当したセッション内容は以下のエントリにまとめています。

設計(≒デザイン)の話をしよう #nds35 by @masaru_b_cl | be free

この企画は「設計」というものについて真摯に向き合う良い機会となりましたし、後日ありがたいお叱りをいただいたりと、非常に有意義なものでした。

こういった機会は貴重なので、またなにかテーマを決めてこういう場を設けたいと思います。

 

2月

TDDBCのC#用のNUnitを使ったスケルトンを追加

昨年くらいから余裕があるときにいろいろやってるTDD Boot Camp(TDDBC) – TDDBCとしての活動として、TDDBC用のスケルトンにC#用のNUnitを使ったスケルトンを追加しました。

 

3月

年度末進行で忙しく、特にコミュニティ活動はありませんでした。

 

4月

「ASP.NET Identity入門」の連載開始

実例で学ぶASP.NET Webフォーム業務アプリケーション開発のポイント:CodeZine(コードジン)実例で学ぶASP.NET 4.5 Webフォーム 新機能活用法:CodeZine(コードジン)に引き続き、CodeZineで連載を開始しました。

ASP.NET Identity入門:CodeZine(コードジン)

現在第7回まで公開されています。

正直記事を書いている間にもどんどんと進化しているフレームワークで、非常に苦労しました&しています。今後ASP.NET 5に向けても変化があるでしょうし、まだまだ目が離せないテクノロジーです。

この後は、一通り既定のログイン周りの処理を紹介した後に、独自認証の実装や単体テストを行う方法等を紹介していく予定です。が、まだ検証が十分ではないので、年明けから本腰入れて調査に入らないといけませんね。

 

5月

会社で教育担当者になったり、一からWinFormsによる3階層リッチクライアントアーキテクチャ用の基盤を作成したりと、実務は多忙で刺激的だったのですが、コミュニティ活動は完全にお留守でした……

 

6月

情報処理技術者試験-情報セキュリティスペシャリスト合格

6月 | 2014 | be free

というわけで、2回目の挑戦で晴れて合格しました。

これで、めぼしいところ(DB、NW、SC)はとっちゃったので、しばらく情報処理技術者試験は受験見送りです。

 

7月、8月、9月

実務が佳境に入ったり、ASP.NET Identity連載につきっきりで、めぼしい活動は何もできず……

 

10月

GistSharpExtensionをVS2015に対応

VSで現在開いているファイルを一発でGistにアップする拡張機能「GistSharpExtension」を、当時リリースされていたVS “14” CTP(現VS2015)に対応させました。

GistSharpExtension:VS14に対応しました | be free

この拡張機能、正直なところ機能としては枯れてるんで、今後どうしようかと思案中です。案としてはこんな感じ。

  • VS2015 SDKを使い、Code Analyzer、Code Refactoring等を活用
  • ソリューションエクスプローラー上でのコンテキストメニュー拡張
    • 右クリックしたファイルをGistへアップ、等
  • UIをWPFで一新
  • OAuth対応(今はBasic認証なので……)

 

11月

7~9月みたいに、実務が佳境に入ったり、ASP.NET Identity連載につきっきりで、めぼしい活動は何もできず……

 

12月

Niigata.pmにてOWINをテーマに発表

完全アウェーなイベントで登壇してきました。

OWINについて #niigatapm #nds39 で発表してきました #aspnetjp | be free

正直Perlコミュニティの空気は羨ましいです!

 

その他

Git関連

Git関連でいくつかエントリ書いてます。

.NET関連

実務内で得た知見をもとに、一般化していくつかエントリ書いてます。

 

1年を振り返って

今年は記事は書いていますが、実プロダクトとしてのアウトプット、コミュニティへのアウトプットが少ないですね。来年はもうちょっとプロダクトコード出していきたい所存です(毎年言ってる)。

それでは、本年はこれで最後のエントリとしたいと思います。よいお年を!

CodeZineで「拡張機能を利用してVisual Studioをより便利にしよう」が公開されました

CodeZineで始まったVisual Studio連載「さらに使いやすく便利になった「Visual Studio」を始めよう!:CodeZine(コードジン)」に、私も寄稿しました。

拡張機能を利用してVisual Studioをより便利にしよう (1/6):CodeZine

Visual Studioはインストール直後の状態でも数多くの機能が搭載されており、非常に便利に使えます。しかし、使っていると「あれができれば」「これがもっと簡単にできないのか」といった不満が段々と出てくるものです。あなたのそういった不満は、もしかしたら「拡張機能」を利用すれば解決できるかもしれません。本記事では「Visual Studio Gallery」で公開されている拡張機能のいくつかについて、その機能、活用法を紹介します。

ちなみに、連載初回は@statemachineさんの「Visual StudioとMicrosoft Azureで楽々クラウド開発 (1/4):CodeZine」ですので、こちらもどうぞご覧ください!

なお、私は別テーマでもう一稿予定していますので、こちらも楽しみにお待ちください。

OWINについて #niigatapm #nds39 で発表してきました #aspnetjp

この記事はASP.NET Advent Calendar 2014 – Qiitaへの参加エントリです。

昨日は@normalianさんの「Java API for JSON Processing(JSR 353) を利用してASP.NET と疎通してみる – 割と普通なブログ」でした。

さて、皆様24時間降雪量が1mを超えた中、いかがお過ごしでしょうか。私は雪を掘って掘って掘りまくっておりました。今朝は6時を過ぎても除雪車が来ていませんでした。お陰で5時半、7時過ぎと朝から2度の雪掘りです。なお、昨日は昨日でお風呂70杯分くらいの雪をスノーダンプで除雪しました。雪はホントいやです。

そんな豪雪の新潟において先週土曜日、アツいイベントが開催されました。

NDS#39 Niigata.pm tech talk – connpass
Niigata.pm

要はPerlなイベントなのですが、そこに完全アウェイでしたが、私もOWINで一席ぶってきました。

今回デモで使ったソースコードは以下にアップしています。

内容はスライドを見ていただくとして、この発表で得た知見をつらつらと。

  • OwinのセルフホストコードはLinux上のMonoDevelopで同じソリューションをそのままビルドできる
  • Monoを使うとHeroku上にもデプロイできる
  • Azure SDKでWebサイト作ってそのままデプロイできるの便利
  • VS2013かっこいいと非.NETクラスタに好印象
  • OWIN完全にPSGI(二票)
    • C#もPerlやったんや!

そして、ASP.NET 5でOwin.dllが使われていないことからOWINの今後が気になるところですが、ASP.NET 5自体がOWIN実装しており(Microsoft.AspNet.Http名前空間等)、ASP.MVCやSignalR等もその仕組の上に乗っています。したがって、OWINで得た知見はASP.NET 5でも決して無駄にはならないでしょう。

というわけで、(強引に)まとめると

The Owin.dll is dead!? Long live the OWIN!!!

というのが今回の結論でした!

次は@_iwateさんの「ASP.NETプロジェクトからDBコンテキストを切り離してマイグレーションする。 – Qaramell Blog」です。

master以外でgit svn dcommitできなくする

!!! CAUTION !!!

このエントリはGit Advent Calendar 2014 – Qiitaではありません。

 

背景

訳あってセントラルリポジトリがSubversionだった場合、”当然”git-svnを使って開発を進めていきます。

そんなとき、たまに間違ってフィーチャーブランチ上でgit svn dcommitしてしまうことがあります。これをやってしまうとmasterをSVNと同期させるのが少し手間だったりします。

そこで、master以外ではgit svn dcommitできなくしてしまおうというのが、このエントリの趣旨です。

 

前準備

gitには当然コマンドをフックする仕組みがあります。しかし、標準のフック機構はgit-svnでは使えません。

そこで、まずは以下の「git-svn-hooks」を導入します。

rkitover/git-svn-hooks

導入手順がREADME.mdに書いてありますので、参考にして導入します。

なお、私の場合、次のような手順で入れました。

  1. ダウンロードしたgit-svn.shを~/binにコピー
  2. ~/.bashrcに次の記述を追加
    source ~/bin/git-svn.sh

 

フックスクリプトの作成

あとはgit svn dcommitをフックして、master以外のブランチでは警告メッセージを出すようにします。例えば、こんな感じの.git/hooks/pre-svn-dcommitファイルを作成します。


#!/bin/sh
WORKING_BRANCH=`git branch -l | grep "*" | cut -d " " -f 2`
if [ $WORKING_BRANCH != "master" ]
then
echo "WARNING: curret branch is NOT \"master\""
exit 1
fi
exit 0

view raw

pre-svn-dcommit

hosted with ❤ by GitHub

 

動作確認

任意のgit svn cloneしたリポジトリで、フィーチャーブランチを作ってgit svn dcommitすると、次のようにエラーになります。

$ git checkout -b some-feature
$ git svn dcommit
WARNING: curret branch is NOT "master"

これで安心してgit svn dcommitできますね!