2013-01-01から1年間の記事一覧

関数デコレーターの動作

処理フロー 実行時、インタプリタがデコレーター割り付けを見つけると、直ちにそのデコレーター関数を呼び出す。関数の戻り値は関数オブジェクト(呼び出し可能:callable)であること。 デコられた(被デコ)関数(例ではhello/hello2)を呼び出したときの動きとし…

Ubuntu12.4.1 + Python3 + Bottle + Jinja2 の組み合わせ

少しハマったのでメモ。 Ubuntuのapt-getでインストールできるPython3系は3.2なのですが、 これだとJinja2が動かないようです。 Jinja 2.7 brings experimental support for Python >=3.3. Introduction — Jinja2 2.8-dev documentation ソースをビルドして…

カスタムオブジェクトの定義について

JavaScriptのprototype周りを勉強しながら、過去・現在の自分で書いたコードを見直したところ、 ちょっとまずい構成をしていたことが判明しました。例として以下のコードで考えます。 //ストップウオッチ var StopWatch = function(){ var _st = undefined; …

NancyでSessionを扱う

ナンシーはデフォルトではSessionが無効になっています。 有効化するにはBootstrapperの初期化時に以下を呼び出します。 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Nancy; using Nancy.Session; namespa…

Nancyでのセキュリティー (CSRF)

ナンシーでのセキュリティ対策として、CSRFについて調査しました。 パッケージは Nancy.Hosting.Aspnet と Nancy.Viewengines.Razor を使いました。 ビュー - 登録フォーム (Views/form.cshtml) ASP.NET MVCと同様に、チェック対象フォームにトークンを組み…

Nancyメモ

ASP.NETアプリケーションとしてホストした場合の処理フローメモ Nancy.Hosting.Aspnet.NancyHttpRequestHandler 静的オブジェクト。 コンストラクタ内で呼び出すGetBootstrapper()で、 web.configにnancyFxセクションが存在する場合は、そこからオブジェクト…

Nancyでのフォーム認証

ナンシーでフォーム認証を行うには、以下の流れで行います。1, Nancy.Authentication.Formsパッケージのインストール 2, IUserMapper実装クラスの作成 3, ログイン、ログアウトルートの実装 4, フォーム認証の設定 IUserMapper実装クラスの作成 IUserMapper…

Nancyでの静的リソースアクセス

ナンシーで静的リソースへのアクセスを行うには3つの方法があります。 デフォルト設定に従う。 Nancy supports multiple static content conventions at once and is shipped with a default convention that will look for files in the /content path of y…

Nancyのトレース機能

ナンシーのトレース機能について調べてみました。まずはBootstrapperのサブクラスを作成してトレース機能を有効にします。 using Nancy; using Nancy.Bootstrapper; using Nancy.TinyIoc; using Nancy.Diagnostics; namespace NanNan { public class MyBoots…

050plusの留守番電話設定

仕事用の電話番号が欲しかったので、050plus契約してiPhoneで使ってます。 今のところ3G回線でも一部地域を除き、ほぼ問題なく通話できています。*1 そんな感じで完璧ではないけど、まぁいいかなという感じで契約してから半年くらい使ってます。つい昨日、最…

ブログの引っ越し(2回目)

やっぱ自分のデータは自分で管理しなきゃ!ということで、はてなダイアリーからレンタルサーバー上のWordPressへ引っ越ししたものの、日々のメンテナンスに疲れてしまいました。そんな折、はてなブログがいい感じになってきてるということを聞きましたので再…

新しい非同期呼び出し(async,wait)を試す

C#

.NET4.5から導入される新しい非同期呼び出し。 こんな感じで使うようです。 public partial class Form1 : Form { public Form1() { InitializeComponent(); } //内部で非同期処理を行うメソッドにはasyncをつける private async void button1_Click(object …

複雑なラムダ式

C#

最近、ASP.NETMVCのソースコードを読んでいるのだが、そこでは複雑なラムダ式が多々でてくる。 今回はその一例としてアクションフィルタの処理(ControllerActionInvokerクラスのInvokeActionMethodWithFiltersメソッド)を自分なりに解釈し、コードを起こした…

Windows端末でIPルーティングさせる

上記ネットワークにおいて、 開発端末(VM)(Win7)からサーバー(VM)(XP)へ接続できるようにネットワーク設定した時のメモ 通信の流れ 開発端末(VM)(Win7) → ルーター → ホスト端末(Win7) → ホスト端末(Vista) → サーバー(VM)(XP) ルーターのルーティングテーブ…

javascriptで再帰処理

こんな感じで書きました。 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title>再帰呼び出しサンプル</title> </head> <body> <p id="msg_aisatu1">おはよう</p> <p id="msg_aisatu2">こんにちは</p> <p id="msg_aisatu3">おげんきですか</p> <p id="msg_aisatu4">調子はどうだい?</p> <…</body></html>

オブジェクト思考のキモを体感するには

このエントリーを読んで。 突破すると一気に学習が加速する「オブジェクト指向学習の壁」を突破する鍵となる知識を、中学生でも分かるように図解してみた(初学者向け) - @fromdusktildawnの本館「壁」を突破できたと思ったのは、デコレーターパターンとコマ…

Jenkinsによるテストの自動化

はじめに Jenkinsの話(CIの話)を聞き、テストの自動実行がとても魅力的に感じたので、 空きPCに環境構築して体験してみた。 やりたいこと VisualStudioのソリューションファイルをビルドする。 MSTestを使ったユニットテストの実行。 ユニットテストの失敗時…

あとでやるリストを抽出&出力するemeditorマクロ(ハッシュタグ機能追加バージョン)

これの派生バージョンとして ハッシュタグ別にリストを出力する機能を追加しました。公式サイトに登録しているもの(本流バージョン)はこれで完成形かなと思います。 出力結果も微妙に違ってくるので派生バージョンの公開は独自に行うことにします。 こちらか…

あとでやるリストを抽出&出力するemeditorマクロ

テキストファイル内に書かれている"あとでやる"リストを表示するマクロです。私個人で、テキストファイルに日々の作業実績記録&あとでやるメモを書き出しています。 これらタスクの消化を忘れないために、タスクのリスト抽出&表示するマクロを作りました。…

行列逆転するemeditorマクロ

アプリ開発時、エクセルを使ってダミーデータを作成するときによくやる操作を自動化できるようにと思い、このマクロを作成しました。 ※DBにSQLServerを使ったときのダミーデータ作成方法。他はよくわかりません。 select雛形をSQLManagementStudioから取得*1…

現在編集中ファイルをバックアップするemeditorマクロ

マクロ第二段です。現在編集中ファイルを保存してそのコピーを同フォルダに作成します。 サンプルソースほぼ引用なので、この場で公開するに留めておきます。 このマクロの発展案として、一定数たまったら別の保管用フォルダに移動する処理を入れたりしよう…

選択範囲の指定列に連番をInsertするemeditorマクロ

EmEditor既存機能で「番号の挿入」が存在しますが、 自分の思っているのとすこし違っていたので、欲しかった動きをするマクロを組んでみました。 公式サイトに登録させてもらいましたので、下記URLから取得できます。http://jp.emeditor.com/modules/mydownl…

ジェネリックな各種リストをスレッドセーフに扱う

C#

その1 System.Collections.ICollectionインターフェイスにキャストすることで、SyncRootにアクセス可能。これでlockを行うことができる。 //こんな感じ var list = new List<String>(); lock (((System.Collections.ICollection)list).SyncRoot) { list.Add("アイテ</string>…

ASP.NETアプリケーションでデバッグ時の値書き換えを有効にする

WindowsFormアプリでデフォルトでできていた、ブレークポイントで張る→止まる→ソースコード書き換え がASP.NETアプリではソースコード書き換えができない。次の設定を行うことで可能になる。

ExpresswebのSQLServerでメンバシップ機能を使用する

クエリのエクスポート この機能で、テーブル定義とレコード設定のクエリを生成することができる。 そのクエリをホスティング先のSQLServerで流す。 web.config設定について ビルド別に使用DBを分けたい場合(例えば、デバッグ時はローカルの*.MDFを使用。本番…

ExpresswebでSQLServerCe4を使用する

VisualStudio2010 Pro SP1 ASP.NET MVC 3 Webアプリケーション ターゲットフレームワークは.NET4 ADO.NET Entity Data Model で確認 はじめに SQLServerは3つまでしかDBを作成することができない。これは嬉しくないのでSQLServerCompact4を使うことにした。 …

TrueCryptでマウント時にフォルダ共有したい

マウント時に行う処理を指定するといったことが、TrueCryptではできなさそうなので、 バッチファイルを作成し、それを実行させることで対応した。 マウント&共有フォルダ作成 <...>は各自環境に置換してください。 cd <ボリュームファイルのフォルダ> "…

レガシーコード改善ガイド5

このメソッドをテストハーネスで動かすことができません 隠れたメソッド privateなメソッドをテストしたい場合の対処方法。 ・publicなメソッドにしてしまう。*1 ・そのメソッドの責務を別クラスに分離する。 ・テストクラスからそのメソッドを呼び出せるよ…

レガシ―コード改善ガイド4

このクラスをテストハーネスに入れることができません いらただしいパラメータ 本番コードでは、それ以外に手段がない場合を除き、パラメーターにnullを渡すのはやめる。 nullを渡せるような実装だと、処理の至る所でパラメーターチェック処理が行われている…

レガシーコード改善ガイド3

いつまで経っても変更作業が終わりません 遅延時間 外部ライブラリなどの依存性がひどいシステムのコードは、ビルドする度に未変更箇所すべてもビルドしなおす必要がある。 その間ぼーっと待つことになる。(遅延時間) 改善済コードだとビルド~テスト実行の…