技術

フォームの中にラベルを表示してくれるjQueryのプラグイン『In-Field Labels』 | IDEA*IDEA

いつか使うかもしれないのでメモ的にエントリーをメモ的にエントリーします。 これもいつか使うかもしれないのでメモ的にエントリー。フォームの入力欄の中にラベルを表示させるjQueryのプラグイン こういうの

malaさんのYAPC::Asia 2009の資料

http://ma.la/files/yapcasia2009/#0 perlのライブラリはよくわかんないけど、非同期処理は勉強になりました。 旧来のクローラの仕組み ただ並列処理するだけだと遅いよという話。 1プロセスで全て行う(フィードの取得、解析、DB書き込み) 並列実行数だけプ…

AWRレポートを出力するスクリプト

リンクメモです。Oracle10gから使えるようになったAWRレポートですが、これマジで便利です。これをGUIではなく出力したいなぁ〜と思っていた時期がありました。また必要になったときようにメモ AWRのスナップショット取得とレポート出力方法 - ablog AWRレポ…

googleのライブラリ

guava-libraries http://code.google.com/p/guava-libraries/ splitterとか便利そう。 Splitter.on(',') .trimResults() .omitEmptyStrings() .split(" foo, ,bar, quux,") --> ["foo", "bar", "quux"] int count = Files.readLines( new File("/path/to/fil…

GAE/Jでアプリケーションのバージョンを取得する方法

public static String getAppVersionId() { return ApiProxy.getCurrentEnvironment().getVersionId(); } 上記のようにすることで <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <application>id-bluerabbit</application> <version>ここの値がとれる</version> </appengine-web-app>

GAE/Jでロールバックを実装する(1)

昨日のseasarConでid:higayasuoさんとid:kazunori_279さんとお話をしたことで、そろそろ本気で補償トランザクションの実装を考えようと思う。まずJDOのトランザクション機能(EntityGroup)は使えないという前提。で、いきなりの結論がBigtableではDBの機能が…

GAE/J Memcacheの低レベル APIを使ってカウンターを作る

下記のようにするとMemcacheでカウンターが作れるようだ。MemcacheServiceのincrementメソッドが便利ぽい。 MemcacheService s = MemcacheServiceFactory.getMemcacheService(); if (!s.contains("MemcacheCounter")) { s.put("MemcacheCounter", 1); // 初…

GAEでログをローカルにダウンロードする方法

http://code.google.com/intl/ja/appengine/docs/java/tools/uploadinganapp.htmlに書いてあり。あとで詳しく書きます。 と思ったけど上記のURLのコピーでいいですね。 ログのダウンロード App Engine はアプリケーションが出力するメッセージのログを保持し…

Google Wave - Tutorial

あとで http://www.vogella.de/articles/GoogleWave/article.html

mobyletのPC接続か携帯端末接続かを判定するロジック

mobyletのfilterを使うと文字コード判定がどうもうまくいかなくて、とりあえず携帯端末からの接続かを判定したかったので下記のようなコードを書いた。 private Carrier getCarrier(String userAgent) { List<MobyletDialect> dialects = new ArrayList<MobyletDialect>(); dialects.add(new </mobyletdialect></mobyletdialect>…

コマンドプロンプトからエクスプローラに移動する

コマンドプロンプトで作業中に、カレントディレクトリのファイルをエクスプローラで操作したくなることがあります。たとえば、カレントディレクトリにあるいくつかのファイルをほかのディレクトリにコピーする場合、各ファイルの名前をキーボードから入力す…

入社3〜10年目くらいのエンジニアが読むといい本を読んで

めもするだけ。 入社3〜10年目くらいのエンジニアが読むといい本 - wyukawa’s blog まだ読んでない本がいっぱい。あとで読む。

2009年 9月 12日(土)はSeasarConだよ。

このセッションはみたい。あとはmobylet Google App Engineを使って一番悩むのは、RDBMSが使えなくなって、Bigtableを使わなければならなくなったことでしょう。 「これまでSQLでこう書いていたのが、Bigtableではそのまま実現できない、どうすればいいんだ…

Amazon VPC

Amazon VPCは、仮想的な専用ネットワーク(VPN)接続を通して企業のITインフラとアマゾンのウェブサービス間の接続を提供するもので、企業は既存のセキュリティサービスやファイアーウォール、侵入検知を導入することができる。 仮想的なプライベートクラウ…

明日はLightweight Language Television (通称: LLTV)の開催日

開催日 2009年8月29日(土) 10:30-20:40 (予定) 開場:10:00、開演:10:30 場所 なかのZERO 大ホール 参加費 3,000円(Tシャツ付き) 2,000円(Tシャツなし) 定員 1000名(予定) URL http://ll.jus.or.jp/2009/ タイムテーブル http://ll.jus.or.jp/2009/timetabl…

HTML5でjsからHTML要素のclassを自由に操作できるようになる

var p = document.createElement("p"); p.classList.add("foo"); p.classList.remove("foo"); console.assert(!p.classList.contains("foo")); これは便利だわ。greasemonkeyやるとクラスをいじりたくなることが多々ある。

google app engineではマスタの取り込みが辛い

とりあえず今はこんな感じ。 csvファイルをアップロードする(アップロードする仕組みはslim3itを参考に自作) cronでcsvファイルからモデルにインサートする csvファイルからキーをMemcacheに保存する Memcacheにキーが存在する場合 スキップ Memcacheにキ…

slim3で1000件以上のレコード件数を取得する方法

404 shin1のつぶやき ないわー Not Found: #appengine でクエリの結果件数を取得する方法(1000件超とか)の情報を元にDaoクラスに下記関数を追加した。 public int countAll() { Query query = this.pm.newQuery(this.modelClass); query.setResult("key"); i…

クエリの結果件数を取得する方法(1000件超とか)のリンクめも

404 shin1のつぶやき ないわー Not Found: #appengine でクエリの1000件超の結果件数を取得する方法 まだ試してない。

shin1ogawaさんのGAE/Java説明資料

株式会社ヌーラボの東京メンバの方々にGoogle App Engine for Javaの勉強会を開催させていただきました 途中まで読んだけど良いまとめ。長かったのであとで読む。

google app engineでは所有関係があると極端に遅くなるらしい

ぶいてくさん調べによると 一度に100件登録した場合 <所有関係の負荷> 所有関係あり: 15秒くらいから。件数が増えるとだんだん遅くなる。 非所有: 3秒くらい。件数が増えても変わらない。 <Index作成の負荷> インデックスなしと、インデックスありの、ど…

slim3のupload/download処理でインデックスが存在しないとエラーが出た。

エラー ローカルでは正常に動くがサーバにデプロイすると下記のエラーが出た。 org.slim3.controller.Controller runBare: no matching index found. com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found. at com.goo…

ロギングの技術

随分前にメモってたのをアップする。 意味のあるロギング デバッガが使用できない状況でもプログラムの動きが追えるか 何か障害が発生した際に、そのロギングだけで原因究明できるか 障害が発生した際に、膨大なログが生成されてしまわないか ロギングのせい…

バグデータベースをより入力しやすくし、テストを楽しく

バグデータベースでバグの登録が面倒だとやる気が減る。もっとも入力コストがないバグデータベースの入力方法はWEBアプリであればその画面で直接登録出来るのが良い。ブックマークレットでもテストモードのみ出る隠し項目入力欄でも良い。 随分と前から作ろ…

クラウド上に保存した大規模なデータを、ほかのクラウドへ移動したいときにどうするか?

Google App Engine上にデータを移行するのは結構めんどうな作業(要プログラム)。データ件数多かったら時間かかりすぎるだろ。。 Amazonが出した答えは下記のようです。何百万、何千万、何億のデータを移行するならそれが一番だな。 アマゾンにハードディス…

Google App Engineのインデックスは自動で作成される。作成中のクエリはエラーになる。

データの検索や登録の度「datastore-indexes-auto.xml」にインデクスの定義が追加されたり消えたりするので、とりあえず出てきたものは「datastore-indexes.xml」にコピっておく、ちょっと面倒くさい。どうして追加されたり消えたりするのかわからないけど、…

ISIDのJavaコーディング規約

このISIDの規約は、規約というよりも良きJavaコードのために知っておくべき事という感じがします で知った。 コーディング規約の会にあった。あとで読む。

vbsでデバッガーを動かす方法

vbsでもVS2005とかを使ってデバッグ実行できますよ。コマンドプロンプトでcscriptを使って//Xオプションを付ければできますよ。 例) C:\>cscript test.vbs //X

slim3で設定をslim3.hotReloading=trueでUPするとエラーが出る?

appengine-web.xmlに下記設定をした状態でデプロイするとSecurityExceptionが発生するようです。 設定 <system-properties> <property name="java.util.logging.config.file" value="WEB-INF/classes/logging.properties"/> <property name="slim3.hotReloading" value="true"/> </system-properties> エラー failed hotReloadingFilter java.lang.SecurityEx…

slim3でjspのスクリプトレットでもHot Reloadingする方法(2)

slim3でjspのスクリプトレットでもHot Reloadingする方法 - あおうさ@日記の続き。 CallerUtil.getCallerClassLoader()でJSPのクラスローダーを取得する。 ViewHelper.class @SuppressWarnings("unchecked") public static <T> T get(String attributeKey) { T</t>…