Monthly Archives: 2月 2012

[C#]コマンドライン引数の解析ライブラリ WinGetOpt

2012年2月9日 (カテゴリ: C#:)

C#でコマンドラインプログラムを作成した際の、起動引数を解析するためのライブラリを作りました。 出来ること 以下の形式でパラメータ指定された引数を解析できます 1:key,valueの指定が可能   例: example.exe /key1 value1 /key2 value2 2:value無しで、キーだけ指定することも可能(スイッチ・フラグ等)   例: example.exe /verbose 3:普通に値だけ指定することももちろん可能   例: example.exe c:\out.txt 4:もちろん上記全部を組み合わせることも可能   例: getOrder.exe /March…


続きを読む

[C#]コンソールプログラムで、Ctrl-Cが押されてもプログラムを終了させない

2012年2月9日 (カテゴリ: C#:)

Console.CancelKeyPressにイベントを登録することで、Ctrl-Cが押されたことを検出できます。 さらに、イベントハンドラ内でCancel=trueにすることで、プログラムの終了を阻止することが可能です。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 using System;   class Test { public static void Main( String[] args ) {   Console.CancelKeyPress += (sender, …


続きを読む

C#で、hello worldをコマンドラインからコンパイルする

2012年2月9日 (カテゴリ: C#:)

C#で、hello worldをコマンドラインからコンパイルする プログラム: using System;   class Test { public static void Main( String[] args ) { System.Console.WriteLine( "hello world" ); } }using System; class Test { public static void Main( String[] args ) { System.Console.WriteLine( "hello world" ); } } …


続きを読む

Amazonマーケットプレース用アプリの使用時に必要な準備作業(出品者向け)

2012年2月8日 (カテゴリ: 未分類:, )

誰かが作ったAmazonマーケットプレース用のアプリを使用する場合は、事前に「権限付与」の作業を行う必要があります。 ここでは、この「権限付与」の仕組みと、作業手順を説明します。 なぜこんな作業が必要なの? 開発者と利用者が別人の場合、利用者が開発者に対して権限を付与する必要があります。 これは、利用者の出品情報を想定しない他人に使用させないための保護機能です。 アプリ(ソフト)から出品情報にアクセスするには、以下の3つのIDがそろっている必要があります。 「MWS開発者アカウント番号」(開発者から教えてもらいます) 「出品者ID」(出品者が取得します。詳細は後述) 「マーケットプレイスID」…


続きを読む

アマゾンマーケットプレースの「複数商品の出荷通知」で、配送業者を自動選択する

2012年2月8日 (カテゴリ: 未分類:)

アマゾンマーケットプレースの出品者側の画面で、購入者に出荷通知を送る画面があります。 この画面で、毎回配送業者を選択するのが面倒なので何とかして欲しいとの依頼を受けたので、自動化するスクリプトを作成しました。 (大抵の場合、ヤマトのメール便らしいです…) 作った自動化スクリプトですが、せっかくなので公開します。 スクリプトはfirefoxのGreasemonkeyプラグイン用として作成したので、firefoxとgreasemonkeyがインストールされている必要があります。 インストールの仕方は、下記のサイトを参照してください。 http://gihyo.jp/dev/featur…


続きを読む

[jQuery]一度発行したajaxリクエストを途中で中断する方法

2012年2月7日 (カテゴリ: JavaScript:)

jQueryでサーバからデータを取得する際、ajaxで問合せを行うと非同期処理となる為、ユーザビリティが向上します。 ですが、データの問い合わせによっては、サーバ側で非常に時間が掛かる場合もあります。 この際に一旦行った問い合わせをキャンセルする場合は、どうしたらよいでしょうか? 一旦行ったリクエストをキャンセルする場合は、$.ajax()で取得したオブジェクトに対して、abort()をコールするとリクエストのキャンセルが可能です。 サンプル: var req;   // 検索を行う $( "btnSearch" ).click( func…


続きを読む

Amazon MWSの注文関係API

2012年2月6日 (カテゴリ: 未分類:)

URLのベース: https://mws.amazonservices.jp/Orders/2011-01-01 オペレーション一覧 オペレーション名 内容 リクエスト制限 ListOrders 注文一覧を取得 max:6req回復レート:5req/min ListOrdersByNextToken 注文一覧の続きを取得 max:6req回復レート:5req/min GetOrder 注文IDを指定して、注文を取得(一度にmax50件まで) max:4req回復レート:1req/10min ListOrderItems 注文ID指定で、注文の商品明細を取得 max:30req回復レート:1re…


続きを読む

Amazon MWSのAPIリクエスト制限の仕組み

2012年2月6日 (カテゴリ: 未分類:)

Amazon MWSでは、リクエスト数の上限管理に、leaky bucket algorithmを採用している。 wikipedia: リーキーバケット 用語の説明 スロットル Amazon MWSで、サーバ側が高負荷にならないように、APIリクエスト回数の制限を作っている。 MWSではこの仕組み(アルゴリズム)を、スロットルと呼んでいる。   リクエストクォーター リクエスト可能な最大数(この数を超えるとリクエストできない) リクエストを投げるたびに加算される。   最大リクエストクォーター 各オペレーション毎の上限値   回復レート 増えてしまったリクエストク…


続きを読む

[jQuery]formのselect要素を操作する方法まとめ

2012年2月6日 (カテゴリ: JavaScript:)

jQueryを使用して、formのselect要素を操作する方法のまとめです。 例は、以下のselect要素があった場合で記述しています。 <select id="selTest" size="6" multiple> <option value="key1">value1</option> <option value="key2">value2</option> <option value="key3">value3&lt…


続きを読む

[jQuery]セレクタで指定したノードの存在チェックを行う関数

2012年2月5日 (カテゴリ: JavaScript:)

jQueryでは指定したノードが存在するかを存在するチェック関数が有りません。 幸い、jQueryではjQuery.fnにメソッドを追加することで、期待するような処理を行うことが出来ます。 jQuery.fn.exists = function(){return this.length>0;}jQuery.fn.exists = function(){return this.length>0;} 呼び出し側は、以下のような感じになります。 if ($(selector).exists()) &#12…


続きを読む

[JavaScript]ハッシュに登録したデータの削除方法

2012年2月5日 (カテゴリ: JavaScript:)

例えば、以下のハッシュがあった場合に var dataList = {"key1":"value1", "key2":"values" };var dataList = {"key1":"value1", "key2":"values" }; key1は、こうやって削除できます。 delete dataList.key1;delete dataList.key1; 削除キーが動的に決まる場合は、”[]&#…


続きを読む

Node.jsを始める上でチェックしておきたい資料:21+α

2012年2月5日 (カテゴリ: JavaScript:)

全て海外のリソースです。 Tutorials Node.js guide Node tuts Videos Introduction to Node.js with Ryan Dahl Node.js: Asynchronous Purity Leads to Faster Development Parallel Programming with Node.js Server-side JavaScript with Node, Connect & Express Books The Node Beginner Book Mastering Node.js Up and Runnin…


続きを読む

[jQuery]チェックボックスの変更方法

2012年2月5日 (カテゴリ: 未分類:)

jQuerでform内にあるチェックボックスの状態を変更する方法です。 jQuery1.6以降は、prop()メソッドが追加されているので、以下の処理で変更できます。 // チェックを入れる $(".chkBox").prop("checked", true);   // チェックをはずす $(".chkBox").prop("checked", false);// チェックを入れる $(".chkBox").prop(&…


続きを読む

名古屋市地下鉄:複数の路線が乗り入れている駅の一覧

2012年2月4日 (カテゴリ: 未分類:)

各アルファベットの意味 H:東山線 S:桜通線 T:鶴舞線 M:名城線 E:名港線 K:上飯田線 駅名 駅番号1 駅番号2 金山駅 E01 M01 栄駅 H10 M05 丸の内駅 S04 T06 久屋大通駅 M06 S05 御器所駅 S10 T12 今池駅 H13 S08 上前津駅 M03 T09 新瑞橋駅 M23 S14 八事駅 M20 T15 伏見駅 H09 T07 平安通駅 K02 M11 本山駅 H16 M17 名古屋駅 H08 S02


続きを読む

名古屋市地下鉄の駅名と駅番号の一覧

2012年2月4日 (カテゴリ: 未分類:)

名古屋市地下鉄の駅名と、駅番号の対応表です。 あおなみ線と、リニモは地下鉄じゃないので未記載です。 H:東山線 駅番号 駅名 場所 H01 高畑駅 中川区 H02 八田駅 中川区 H03 岩塚駅 中村区 H04 中村公園駅 中村区 H05 中村日赤駅 中村区 H06 本陣駅 中村区 H07 亀島駅 中村区 H08 名古屋駅 中村区 H09 伏見駅 中区 H10 栄駅 中区 H11 新栄町駅 東区 H12 千種駅 東区 H13 今池駅 千種区 H14 池下駅 千種区 H15 覚王山駅 千種区 H16 本山駅 千種区 H17 東山公園駅 千種区 H18 星ヶ丘駅 千種区 H19 一社駅 名東区 H…


続きを読む

[JavaScript]数値を,N進数の文字列に変換する簡単な方法

2012年2月4日 (カテゴリ: JavaScript:)

NumberのtoString()の引数として、基数を指定するとN進数の文字列に変換できます。 例えばtoString(2)で、2進数の文字列に変換できます。 var x = 5; x.toString(2) // "101"   (10).toString(8); // "12" (255).toString(16); // "ff"var x = 5; x.toString(2) // "101" (10).toStrin…


続きを読む

[JavaScript]rubyの「times」メソッドをJavaScriptで実装する。

2012年2月4日 (カテゴリ: JavaScript:)

プログラム言語のrubでは、数値クラスに対してtimesというメソッドが実装されてます。 この為、以下のプログラムで”0,1,2,3,4,5″の文字を出力することが出来ます。 5.times { |i| puts "#{i}" }5.times { |i| puts "#{i}" } これと同様のことをJavaScriptで行いたい場合は、以下の関数定義を行います。 Number.prototype.times = function( funct ) { if( typeof …


続きを読む

[JavaScript]”010″が10として評価さず、8になってしまう。

2012年2月4日 (カテゴリ: JavaScript:)

JavaScriptで先頭0から始まる数字は8進数とみなされるからです。 例えば以下のコードは、8が表示されます。 <script> var value = parseInt( ‘010’ ); alert( value ); </script><script> var value = parseInt( ‘010’ ); alert( value ); </script> 先頭に0が入ると8進数とみなされる仕様は、JavaScript以外にC言語も同様です。 “0x”が入ると16進数とみな…


続きを読む

[JavaScript]本番環境時、存在しないconsole.log()でエラーを出さない方法

2012年2月4日 (カテゴリ: JavaScript:)

firefox+firebugを使用して、javascript開発を行う際console.log()関数を使用すると、 デバッグログをコンソールに出力できるので便利です。 とても便利なconsole.log()ですが、リリース時に該当処理を削除し忘れると、コンソールの無い環境では当然エラーが出てしまいます。 このような場合は、以下のコードを入れておくと、エラーを回避できます。 if (typeof(’console’) == ‘undefined’) { console = { log: function(){&#1…


続きを読む

JavaScriptとC言語のスコープの違い

2012年2月4日 (カテゴリ: JavaScript:)

C言語では、ブロック内のみ有効なスコープというものが存在します。 例えば、下記のコードで、”a = 20″はブロック内のみで有効なので、”a=10″と表示されます。 int a = 10; { int a = 20; } printf( "a=%d", a ); // a=10が表示される。int a = 10; { int a = 20; } printf( "a=%d", a ); // a=10が表示される。 一方でJavaScriptでは、ブロック単位でのスコープ…


続きを読む