2009年11月30日月曜日

Google Maps API V3の MVCObject.bindTo()の使用例

Google Maps API v3のMVCObject.bindTo()メソッドは、他のMVCObjectのプロパティを連動させることができます。
これを利用して、チェックボックスのチェックが変化すると、マーカーのvisibleプロパティが変化するようにしています。

うまく使えば便利、なのかな?設計的にかっこよくはある。

via ひひーん!

GMapKitAPIは廃止されるらしい

GMapKit.Googleマップ 拡張ライブラリ 「GMapKitAPI」

GMapKitAPI は、近い将来廃止されます。
代わりのライブラリをgmaps-utility-library-dev でサポートする予定です

あらら。残念&期待。

via ひひーん!

携帯の各キャリアで表示できる画像フォーマット

携帯は各会社の端末ごとに表示できる画像の形式が違います。携帯サイトで画像を使う場合には、画像のサイズや種類(jpegjpggifpng)に注意しないといけません。

なるほど

via ひひーん!

substr()と substring()

文字列 "Standard" から "and" という文字を切り出したい場合は、PHPなら
substr("Standard", 2,3)と文字の始まりのインデックスと切り取るバイト数を渡しますが、JAVAなら話は違って
"Standard".substring(2,5)と2つの引数共に文字列のインデックスを渡します。

JavaScriptのsubstr()とsubstring()の違いと同じだね。

via ひひーん!

2009年11月29日日曜日

Twitter Stream APIで特定のキーワードの Tweetを受信する

track

Specifies keywords to track. Keywords are specified by a comma separated list. Queries are subject to Track Limitations, described in Track Limiting and subject to access roles, describe in the statuses/filter method. Track keywords are case-insensitive logical ORs. Terms are exact-matched, and also exact-matched ignoring punctuation. Phrases, keywords with spaces, are not supported. Keywords containing punctuation will only exact match tokens. Some UTF-8 keywords will not match correctly- this is a known temporary defect.

 

Track examples: The keyword Twitter will match all public statuses with the following comma delimited tokens in their text field: TWITTER, twitter, "Twitter", twitter., #twitter and @twitter. The following tokens will not be matched: TwitterTracker and http://www.twitter.com,  The phrase, excluding quotes, "hard alee" won't match anything. The keyword "helm's-alee" will match helm's-alee but not #helm's-alee.

 

Values: Strings separated by commas. Each string must be between 1 and 30 bytes, inclusive.

Methods: statuses/filter

Example: Create a file called 'tracking' that contains, exactly and excluding the quotation marks: "track=basketball,football,baseball,footy,soccer". Execute: curl -d @tracking http://stream.twitter.com/1/statuses/filter.json -uAnyTwitterUser:Password.You will receive JSON updates about various crucial sportsball topics and events.

1つのキーワードにつき30バイトまで。キーワード数は200まで。
昔は日本語駄目だったけど今は堂なんだろう?

via ひひーん!

firehoseとは

statuses/firehose

Returns all public statuses. The Firehose is not a generally available resource. Few applications require this level of access. Creative use of a combination of other resources and various access levels can satisfy nearly every application use case.

 

URL: http://stream.twitter.com/1/statuses/firehose.>format

Formats: xml, json

Method(s): GET

Parameters: count, delimited

Returns: stream of status elements

Tiwtter Stream APIで全てのTweetを得られるAPI、だけど提携企業しか使えない。

via ひひーん!

2009年11月27日金曜日

Firefoxの select要素のクリックイベントには罠があるらしい

onclick=”javascript:arguments[0].stopPropagation();

何の呪文だろう?
調査しないと

via ひひーん!

ListCampの 「Googleのサービス」

Googleのサービス

googleweb
since 2008/08/14

12 個の情報

12個どころじゃないでしょう

via ひひーん!

IE8で Google Mapsのクリックした位置がずれる問題は解消しないらしい

"At this time we do not plan on fixing this issue in the IE8 time frame. We appreciate the report, but unfortunately we are at a stage where need to choose what we work on to maximize the value for customers and web developers. We will track the issue and hope to address it in a future version of IE. " http://connect.microsoft.com/IE/feedback/ViewFeedback.aspx?FeedbackID=362142

Microsoftとしてはこれを解決するよりIE9に注力したいと。
Google Maps側では対処が難しい問題なんだろう。(Chrome Frameとか?)

via ひひーん!

2009年11月26日木曜日

Google AJAX API にAuto-Loading機能が追加されたらしい

Auto-Loading New!

It is possible to auto-load a list of APIs or Javascript libraries when including the loader script. This can be done in order to reduce the load time in many cases by eliminating a single Javascript request at load time. This advanced feature can be difficult to implement, depending on the exact situation. Therefore, we recommend that auto-loading only be considered in specific cases when a reduction in latency is crucial.

To use this feature, you can start with the configuration wizard. To use it manually, the list of APIs to load is specified in the initial <script> tag, rather than a separate google.load call for each.

使いどころが分からない。1ミリ秒でも早くしたい場合とか???

via ひひーん!

google.load()で Google Maps API v3がロードできるらしい

Google AJAX API を使用して、

google.load("maps", "3.x", {"other_params":"sensor=false"});

のように、バージョン3のMapsAPIを呼んでみましたが、

英語版の公式リファレンス( http://code.google.com/intl/en/apis/ajax/documentation/#GoogleLoad )にもないが、もう使えるらしい

via ひひーん!

Google Maps API V3で未実装のOverviewコントロールを自力で実装

http://koti.mbnet.fi/ojalesa/v3/overview_v3.htm

It is an interesting experiment to see the binding of two MVC objects.
It works both ways. You can drag either of the maps.

すごいなー

via ひひーん!

Google Maps API V3でイベントをハンドリングするサンプル

  google.maps.event.addListener(map, 'click', function(event) {
    placeMarker
(event.latLng);
 
});

event.latLngのLngのLが大文字なので注意!

via ひひーん!

Google Maps API の英語版ドキュメント(マニュアル)の充実ぶり

V3のリファレンスもあるし。
というか日本語版が放置されているのか

via ひひーん!

Blogger (blogspot)のページタイトルでエントリーのタイトルを先にする方法

そこで、Bloggerを使っている方々にとって重要なのは、個別記事のタイトル部分を「記事タイトル:ブログ名(ブログタイトル)」となるように、変更してしまう事だ。
しかし、Bloggerにはクリック一つでタイトル部分を入れ替える方法は無い。
そこで、直接HTMLソースを変えてしまおうというわけだ。

pageNameって隠し設定か?(違うのかな)

via ひひーん!

DELLから 超小型デスクトップPCが出るらしい

発売した「インスパイロン Zino HD」は通常のデスクトップパソコンと同じCPU(中央演算処理装置)やグラフィック機能を備えており、フルハイビジョン動画や3次元ゲームなどをスムーズに再生できる。大きさは縦と横がそれぞれ約20センチメートルと小型で、場所を選ばずに設置できる。

ちょっとしたサーバにちょうどいいかも。静音性とかどうなんだろ?

via ひひーん!

RT: 子供と二人で毎日過ごしてた時

自転車に乗って帰ろうと思っていたら、店から出てきたさっきの人とは違う、知らないおじさんが「気にするなよ」と言って笑いかけてくれた。「ありがとうございます」と言って泣きながら頭を下げたら「子供が泣くのは当たり前だから!がんばれよー!」と言って、おじさんはニコニコ手を振って車に乗って帰っていった。

そういう人に私もなりたい

via ひひーん!

2009年11月25日水曜日

CakePHPの GetTextで poファイルのファイル名を default以外にする方法

ドメインとはファイル名のdefault.poの拡張子を除いた値に該当します。

例として、

__d('sample', 'This is a message');  

とすると、指定言語のフォルダのsample.poファイルからmsgidが'This is a message'の対訳を取得します。

こういうことだったのか。分類ごとにpoファイルを分割するときに使うのかな?

via ひひーん!

CakePHPの i18nで作った potファイルを更新した時に poファイルにマージする方法

今後の作業でテキストの追加等を行った場合は、
「cake i18n」 コマンドでまた、default.pot を作成し、
Poeditで「カタログ」→「POTファイルを元に更新します」→default.potを指定すると、変更点がマージされます。

Poeditを使えば楽なんだ!

via ひひーん!

CakePHP 3って

1行まとめ CakePHP1.3 PHP4&5, CakePHP2 PHP5専用,Cake3 PHP5.3以上、0から再設計。ライブラリとしても利用可能、例外にも対応

CakePHP1.3の間違いかと思った。
ゼロから再設計って、それもうCakeじゃない

via ひひーん!

Windows用 Glade・GTK

The original web site has been hacked and gone. I will create another one but let me release two new packages for now:

via ひひーん!

Windowsで GetTextの msgmergeを使う方法

どうやら、msgmergeは、GNU gettextのツールの一つなんだそうだ。

Windowsの場合は、Glade/GTK+ for WindowsにあるDevelopment Environmentってのを

使うといいらしい。。

Railsで「rake updatepo」した時に「No such file or directory - msgmerge ...」ってなるエラーもこれがあれば解消するらしい

via ひひーん!

PHPで GetTextの poファイルをマージする方法

msgmerge ja_JP/LC_MESSAGES/messages.po messages.pot -o ja_JP/LC_MESSAGES/messages.po

msgmergeって何???

via ひひーん!

Microsoft製 PHPキャッシュエンジン WinCacheが使えるのは IISだけ

The extension is currently supported only on the following configurations:

Windows OS:

  • Windows XP SP3 with IIS 5.1 and » FastCGI Extension
  • Windows Server 2003 with IIS 6.0 and » FastCGI Extension
  • Windows Vista SP1 with IIS 7.0 and FastCGI Module
  • Windows Server 2008 with IIS 7.0 and FastCGI Module
  • Windows 7 with IIS 7.5 and FastCGI Module
  • Windows Server 2008 R2 with IIS 7.5 and FastCGI Module

PHP:

  • PHP 5.2.X, Non-thread-safe build
  • PHP 5.3 X86, Non-thread-safe VC9 build

そりゃそうか

via ひひーん!

Microsoft製 PHPキャッシュエンジン WinCache

Windows Cache Extension for PHP is a PHP accelerator that is used to increase the speed of PHP applications running on Windows and Windows Server. Once the Windows Cache Extension for PHP is enabled and loaded by the PHP engine, PHP applications can take advantage of the functionality without any code modifications. The extension includes PHP opcode cache, file system cache and relative path cache.

APCやeAcceleratorと競合?

via ひひーん!

全PHPファイルの実行前後に、特定の処理を実行する方法

php_value auto_prepend_file /path/to/start_cache.php php_value auto_append_file /path/tp/end_cache.php

auto_prepend_fileなんてあるんだ

via ひひーん!

RE: ねとらぼ:Twitterサーバ、「バルス」に勝つ - ITmedia News

報道によると、TwitterはNTT Americaのサーバを利用しているという。

NTT (America)の宣伝か?
Twitterが2chほど普及してないだけでは

via ひひーん!

COBOL, RDBMS, and The Next

Datastore Serviceはかなり機能が少なく、かつRDBMSのサブセットでもなく全く異なるものなので、Datastore Service自体を良く理解しておく必要があるのです。

かつての汎用機でのデータ構造がRDBMSではまったく通じないように(それどころかはた迷惑に)なったように、これからはKey-Value型のデータ構造を手足のように操る術が重要になるだろう、と思ってる。
Datastore APIはKey-Valueの上にラッピングしてるけど。

via ひひーん!

CakePHPで poファイルの変更が反映されない場合の解決方法

ファイルを更新しても和訳されない場合は、キャッシュに残っている可能性があるので、tmp/cache/persistent/cake_core_default_jpn ファイルを削除する。

開発モードならキャッシュしないで欲しい

via ひひーん!

メールやHTTP POSTをトリガーにして iPhoneなどに通知するサービス

im.kayac.com は通知用のいくつかのAPIを提供するウェブサービスです。

HTTP POSTもしくはEメールを使用して、簡単にあなたの Jabber アカウントや、iPhoneに通知を送信することが可能です。

iPhoneかー

via ひひーん!

はてなブックマークAtom APIに POSTする Pythonのソースコード例

はてブにPOSTするPythonスクリプト

意外にシンプルなのね

via ひひーん!

noxさんの自己紹介に納得してしまった

ところで、整数 n に対し、for (; n > 1; n = n & 1 ? 3 * n + 1 : n / 2); は必ず帰結するそうです。ただし、証明されていません。これでワクワクするのがnoxです。

調べ物をしていてふと見つけた自己紹介。
そうだよねーワクワクするよねー
フェルマーの最終定理を読んでたときを思い出した。

via ひひーん!

はてなブックマークでブックマークできないドメイン?

はてなブックマーク > レシピ検索 ファインディッシュ

「現在このドメインはブックマークできません」ってなんだろ?
はてな八部?それともサイト側でrobots.txt的に禁止してるのかな?

via ひひーん!

2009年11月24日火曜日

Googleカスタム検索の検索結果の表示をサイト内か Google切り替える方法

そこで、JavaScript が有効な環境ではインラインフレームで、無効な環境では Google のサイトで検索結果を表示する方法を考えました。

ユーザビリティ的に良さそう。
メモメモ。

via ひひーん!

JavaScriptで簡単に URLの QueryStringの部分のみを取得する方法

locationオブジェクトのsearchプロパティは、現在ページURLのサーチ情報(?で始まる検索クエリ部分)を取得します。

こんなのあったんだ

via ひひーん!

2009年11月20日金曜日

analogで特定のファイルへのアクセスをビュー数から除外する方法

例えば、もしあなたが2つのファイル名が同じファイルに対応していると知っているときや、内部のホスト名をインターネット上の名称に変換したい場合にこれらのエイリアスは役立ちます。

FILEALIASを使って */foo.html => */foo.gif とかやればできる、のかな?

via ひひーん!

MySQL 5.4.0にバージョンアップする際の注意点

MySQL 5.4 では いくつかの変数オプションが追加されたり変更されたりしたよ。「ハコからだしてポン」な状態でも十分よく動くようにね。16CPUのx86 とか 64CPUのCMTとかで。

洒落でやったのか、初心者をふるい落とすフィルターか。
いまさら5.4.0にはしないだろうけど。

via ひひーん!

MySQL 5.4.0のデフォルト設定

私はMySQL 5.4.0のアグレッシブなデフォルト値が好きなのですが(笑)、デフォルト設定でいきなりメモリを1GBも取られたり、InnoDBのログファイルでディスクを128MB×3も確保されてしまうのはさすがに問題視されたのかもしれませんね。

1ギガって。それはさすがに...

via ひひーん!

PHPの将来の展望

将来の展望: PHP 6 および Zend Engine 3

PHPになんて将来は無いということか?!
展望が無いということか!?

via ひひーん!

セキュリティにあんなに詳しいのに

Additional information about this error:

MySQL error!

Error establishing a database connection!

(mysql_connect(): Lost connection to MySQL server at 'reading initial communication packet', system error: 113)

  1. Are you sure you have typed the correct user/password?
  2. Are you sure that you have typed the correct hostname?
  3. Are you sure that the database server is running?

内部的なエラー内容を表示しちゃ駄目でしょう。
レンタルサーバー側の問題かもしれないけど。

via ひひーん!

jQueryを初めて使う人にお薦めのサイト

jQuery 開発者向けメモ - 基本・サンプル

シンプルにまとめてあって読みやすい。

via ひひーん!

Rubyで正規表現でマッチした部分の文字列を取得する方法 その2

String#scanメソッドは文字列中で任意のパターンにマッチするものを全て抜き出し、配列へ格納することができます。

正規表現オブジェクトの方ではなくてStringオブジェクトの方に(使いやすいのが)実装されてるのね。

via ひひーん!

Rubyで正規表現でマッチした部分の文字列を取得する方法

正規表現オブジェクトを作成し、「=~」メソッドを使って対象の文字列に対してマッチングを行った結果がマッチした場合、「=~」メソッドは文字列の中でマッチした部分のインデックスを返します。この時、対象の文字列の中でマッチした部分文字列が特別な変数「$&」に代入されます。

何この予約変数

via ひひーん!

s3Sliderの CSSと JavaScriptの参考ページ

画像に合わせてテキストがフェードして表示されます。テキストの表示位置はCssにて設定可能(後述)です。

使い方が詳しく書いてある

via ひひーん!

Google AppEngine向けフレームワークの大本命、Slim3登場

Slim3の正式リリースは、来年の一月くらいになりそうですが、ドキュメントも最低限のものはそろったので、今の段階のものをPreview版として紹介しておきます。

Javaじゃなければなー。
デファクトスタンダードになる潜在的可能性を秘めていると思う。

via ひひーん!

SQL Serverで 「STRING または BINARY データは切り詰められました。」

アプリケーションで ActiveX データ オブジェクト (ADO)、OLE DB、または ODBC (Open Database Connectivity) 経由で接続プールを使用しており、以下の条件に該当する場合、アプリケーションの属性が SQL Server ODBC ドライバのデフォルト設定にリセットされます。
  • SQL Server ODBC ドライバで使用される DSN のデフォルト設定 (ANSI 標準の埋め込み文字や警告の動作など) を変更した場合

    および

    接続を再使用した場合

その結果、ANSI の NULL、埋め込み文字、および警告の属性を "on" に設定する必要のあるデータベース接続で、データ挿入時に次のエラー メッセージが表示されることがあります。
[Microsoft][ODBC SQL Server Driver][SQL Server]STRING または BINARY データは切り詰められました。
[Microsoft][ODBC SQL Server Driver][SQL Server]ステートメントは終了されました。

これが原因の場合もあるのか

via ひひーん!

Googleモバイル検索は 3種類あるらしい

xhtml対応の検索結果を出すための検索ページは http://www.google.com/xhtml

www.google.co.jp/m
www.google.co.jp/imode
www.google.co.jp/xhtml

via ひひーん!

MacBook! MacBook! MacBook!

98,000円かー。LEDなんだ。(今はLEDは当たり前なのかな?)
13インチはちょっと小さいか、ちょうどいいか?
ほしーかもー

via ひひーん!

2009年11月19日木曜日

.NETの DataRowオブジェクトの Delete()

ただし、Deleteメソッドにより削除したレコードは、Findメソッドなどでは見つからなくなるが、本当にそのレコードが削除されるわけではない。

Delete()したらそのままDBに反映されるわけではないらしい。

via ひひーん!

JavaScriptで idを指定して iframeの中身を変える方法

逆にdocument.getElementById('ID').src=URL; でも出来そうな気がしますが。

iframeの名前を使う方法(document.iframe_name.location.href = ...)だと、Firefoxが動かない。
srcを指定するほうがいいみたい。

via ひひーん!

SQL Serverで SELECTの TOPに変数を使う方法

変数を使う方法は括弧を使うとすんなりできます。

SELECT (@max_cnt) * FROM table_name ORDER BY nantoka

カッコをつけないとエラーになる。

via ひひーん!

SQL Serverの CONVERT()で日付をフォーマットする方法

CONVERT 関数で expression を変換する方法を指定する整数式です。スタイルが NULL の場合は、NULL が返されます。範囲は、data_type で決まります。詳細については、「解説」を参照してください。

SQL ServerのCONVERT()で日付を文字列に変換する場合、第3引数でフォーマットを指定できる。
YYYY/MM/DDなら「111」

via ひひーん!

SQL Serverには Boolean型 (Bool)は無いらしい

確かに、.NET Frameworkの基本データ型にはBit型はなく、Boolean型があるだけですね。逆に、SQL ServerにはBit型はあるが、Boolean型はない。

たしかMySQLもなかったような。Postgresはあったかな?
フラグはBooleanにしようよ...

via ひひーん!

楽天Webサービス APIのエラーが急に出なくなった

いつからかしょっちゅう頻繁に多発していた楽天APIの「内部APIエラー」が(ついでにその後たまに起きるようになっていた503エラーも)ピタリとやんだ。

内部的に何か改善したのかな?

SELECT句の中でのサブクエリー(副問合せ)の問題点

もう1つの理由は、実行効率が悪いからです。これも今回の例ではサブクエリが1つしかないので問題にはならないのですが、複数の項目でこのようなサブクエリを使用した場合、1つのSQL文を実行するために、いくつものSELECT文を実行することになってしまいます。これでは非効率的です。

リンク先にSQL Server2005の実行プラン例あり

via ひひーん!

2009年11月18日水曜日

.NETと SQL ServerのDateTime型の範囲

.Net FrameworkとSQL ServerのDateTimeの最小値、最大値の違い

詳細はリンク先参照。
SQL Serverの1753年12時からって、何がそうさせたんだろう

via ひひーん!

HTML tableのcellspacing、 cellpaddingを CSSで設定するやり方

table {  	border-collapse: separate;  	border-spacing: 2px;  }

ただ残念なことに、border-spacingはIEが対応していないので実質使えない。そういう時はどうするか。素直に<table cellspacing=”2″>としてやるのが正解。

separateなんてあるんだ。
詳しくはリンク先参照。

via ひひーん!

2009年11月17日火曜日

ASP.NETで TextBoxを ReadOnlyにすると PostBack時に値が消えてしまう問題

ASP.NET2.0でWebフォームでPostBackされた時、
サーバーコントロールのTextBoxのReadOnly属性をTrueにしていると
値が消えてしまいます。

解決方法も書いてある

via ひひーん!

IE7ではボタンが position: absoluteだと横幅が広がるらしい

静的な HTML でも、position:absolute があると、そうなりますね。submit, button, reset で確認。バグっぽいよ。

ASP.NETではデフォルトでabsoluteなので発現しやすい。
widthを指定すれば問題は無いが

via ひひーん!

2009年11月16日月曜日

GridViewの PageIndexChanging()イベントのハンドリング例

Me.GridView1.PageIndex = e.NewPageIndex subDataBind()

素晴らしい!素晴らしい!

via ひひーん!

SQL Server (Transact-SQL)で 全角Spaceを Trimする方法

半角スペースであれば、LTRIM/RTRIM関数で目的の操作ができますが、全角スペースではトリミングされません。そこで、REPLACE関数と組み合わせて処理を行います。

なるほど

via ひひーん!

showModalDialogで PostBackした場合に 別Windowが開く問題の解決方法

フレームの代わりに<head>...</head>セクションの間に

<base target="_self">を追加すると解決するようです。

バグか仕様か?

via ひひーん!

2009年11月15日日曜日

JavaScriptの showModalDialog()の 第2引数

ドキュメントを表示するときに使うさまざまな引数。このパラメータは配列を含むあらゆるものを指定できる。ダイアログボックスは呼び出したスクリプトから渡された値を、windowオブジェクトのdialogArgumentsプロパティから読み出すことができる。

ダイアログのJavaScriptへ何か渡したい場合。サーバサイドスクリプトへ渡したい場合はQueryStringで。showModalDialog()はダイアログをキャッシュするようなので注意。

via ひひーん!

2009年11月14日土曜日

formのボタンの idには submitと付けない方がいい

原因はname="submit"とid="submit"の部分です

詳しいことなんて分かりませんが、nameやidに値にsubmitセットすると
submitが上書きされてしまうのでしょう。

form.submit()しようとすると、form.submitのオブジェクトを取得してfunctionじゃないよとエラーになってしまうから。

via ひひーん!

2009年11月13日金曜日

Google Analytics Mobile (Beta)を日本の携帯の事情に合わせて改善する方法

って、ここまで書いていて、いつ正式リリースされるかもわからない上に、au率がシェアより多い私のサイト。。
何とかならんものかと思って、やらないつもりだったんだけど、ga.phpをチョイっと修正してみました。

Googleさんは取り込んでくれるかなー。
携帯に関しては親日本なんだよね

via ひひーん!

showModalDialog()で ×をクリックされた場合のハンドリング

if(typeof(sRet) == 'undefined')でダイアログが×で閉じられたときの設定をする。

そーなのかー

via ひひーん!

ASP.NETのサーバコントロールに好きな HTML要素を突っ込む方法

Dim br As LiteralControl = New LiteralControl("<br />")
form1.Controls.Add(br)

LiteralControlだって。これならなんでもできる

via ひひーん!

2009年11月12日木曜日

ASP.NETで Tableコントロールに 動的に行(TableRow)追加する方法

Dim tRow As New TableRow() Table1.Rows.Add(tRow)

直感的にTable1.Add(new TableRow())じゃないところが.NET

via ひひーん!

CSSで HTMLの tableのヘッダー部分を固定にする方法 その2の補足

IE8正式版ではヘッダーのth/tdの横幅を指定しないと、ヘッダーの中身が全部左寄せになった

via ひひーん!

CSSで HTMLの tableのヘッダー部分を固定にする方法 その2

データ部のスクロールは 1 番目の方法と同様に div でラップしますが、その div に内包されてる thead を position:absolute で浮かせボディの上方に配置します。(ほぼ)プレーンなマークアップCSS の記述のみで実現できるので最有力な方法かと思ったのですが、最後の最後で IE8 beta1 のみが NG でした。

IE8 Beta2では条件付きならOKらしい

via ひひーん!

CSSで HTMLの tableのヘッダー部分を固定にする方法

これをCSSで簡単に書いてみるとこんな感じでしょうか。

IE8では駄目だった

via ひひーん!

VB.NETでゼロ埋め

0埋め String.Format("{0:D4}", num)
または
String.Format("{0:0000}", num) “0001”

これはなかなか便利

via ひひーん!

2009年11月11日水曜日

VB.NETの Date / DateTimeの CompareTo()の戻り値

説明

0 より小さい値

このインスタンスは value より前の時刻を表しています。

0

このインスタンスは value と同じです。

0 より大きい値

このインスタンスは value より後の時刻を表しているか、または valuenullNothingnullptrnull 参照 (Visual Basic では Nothing) です。

すぐ忘れる

via ひひーん!

ASP.NETで ブラウザキャッシュを防ぐ 1文

Response.Cache.SetCacheability(HttpCacheability.NoCache);

メモメモ

via ひひーん!

JavaScriptで Enterキー等による動作を制御する方法

特定のキーの動作を抑止する

IEは、window.event が読めるが、FireFoxは引数からeventを受け取る

ソースコードは上記リンク先で。

via ひひーん!

2009年11月9日月曜日

SQL Server 2008には MERGEがあるらしい

まあ、SQL Server 2008からはMERGEがあるんだけどさ(・ω・)

ということは2005にはないのねー

via ひひーん!

2009年11月7日土曜日

Blogger投稿用 iGoogleから投稿すると文字化け

投稿文字化けの件、ちょっと調べてみましたら、やっぱりBloggerガジェット自体が日本語に対応していないみたいです。

駄目じゃん

via ひひーん!

?????????????????????

???????????????????????????????????????????????????????????????

2009年11月6日金曜日

Bloggerから簡単に Feed向け AdSenseを設定できるようになるらしい

One of the things our publishers have always asked for are ways to make it even easer to configure their blogs to work with FeedBurner and AdSense for Feeds. We're happy to announce that Blogger users, with just a few clicks, are able to do both at the same time.

言語を英語にしないと駄目かな?
Feed向けAdSenseって、許可サイト以外で見られたらどうなるんだろう?

via ひひーん!

VB.NETで構造体の配列を宣言する

Dim tHoge As StructHoge() = New StructHoge(10)

だと,引数がひとつ有りのコンストラクタになってしまうようなので,

Dim tHoge As StructHoge() = New StructHoge(10){}

なんかもうぐだぐだな仕様だなー

via ひひーん!

VS.NETでデバグ

.NET Frameworkのクラス・ライブラリでは、デバッグ・メッセージ出力のためにDebugクラス(System.Diagnostics名前空間)が用意されている。このクラスには、指定した文字列を出力するためのWriteメソッドやWriteLineメソッド(改行コード付き出力)などが用意されているが、これらのメソッドの呼び出しはデバッグ時にのみ有効となるという点がこのクラスの特徴だ。

やれやれ

via ひひーん!

DBを使わない DataTableの作り方

関数プロシージャを作成し、次のコードを Form1 クラスに追加して顧客 DataTable を返します。

Visual Basic の場合

こうかー

via ひひーん!

Bloggerのコメントを取得できるフィードの URL

ブログコメントフィード

ブログ全体のコメントが掲載されるフィード。

探してたのよー
最近メールで通知が来ないんだからー

via ひひーん!

DBを使わずに DataGridにデータを表示する方法

DataTable の Columns に Add メソッドを使って列を追加し、
その後 Rows に Add メソッドを使って行を追加していってください。

なるほど

via ひひーん!

SQL Serverのローカルな一時テーブルは端末ごとにユニークになるらしい

単純に、テーブル名の頭に「#」を付けて作成したら、端末(IPアドレス)毎にユニークなテーブルが
tempdb に作成されますので、何も意識する必要はありません。

公式リファレンスで確認したいところだが、大丈夫そうかな

via ひひーん!

SQL Server (Transact-SQL)で LIMIT OFFSETする方法 その2 temdb篇

ユーザーが複数のページを繰り返し要求する可能性がある場合に効率的なページ切り替えを行うには、まずベース テーブルのすべての行を、計算した行番号と共に一時テーブルに格納して、その行番号を含む列にインデックスを設定します。

SELECT ROW_NUMBER() OVER(ORDER BY score DESC, speaker) AS rownum, *  INTO #SpeakerStatsRN  FROM SpeakerStats  CREATE UNIQUE CLUSTERED INDEX idx_uc_rownum ON #SpeakerStatsRN(rownum)  

次に、要求された各ページに対し、次のクエリを実行します。

SELECT rownum, speaker, track, score  FROM #SpeakerStatsRN  WHERE rownum BETWEEN (@pagenum-1)*@pagesize+1 AND @pagenum*@pagesize  ORDER BY score DESC, speaker  

該当するページに含まれる行だけがスキャンされます。

INSERT INTO ... SELECT ... じゃなくて、SELECT ... INTO ... FROM ... なんてあるんだ

via ひひーん!

SQL Serverの tempdbでシャープが付くテーブル名

SQL Server では、一時プロシージャは tempdb データベースに作成され、procedure_name の先頭にシャープ記号が 1 つ付く (#procedure_name) のがローカル一時プロシージャ、シャープ記号が2つ付く (##procedure_name) がグローバル一時プロシージャです。

ローカル一時プロシージャはその作成者だけが使用できます。ローカル一時プロシージャを実行する権限はほかのユーザーに許可することができません。ローカル一時プロシージャはユーザー セッションの終了時に自動的に削除されます。

グローバル一時プロシージャは SQL Server の全ユーザーに提供されます。グローバル一時プロシージャが作成された場合、全ユーザーがそれにアクセスでき、その権限は明示的に取り消さなければなりません。グローバル一時プロシージャはそのプロシージャを使用する最後のユーザー セッションの終了時に削除されます。

ローカル一時プロシージャは、複数のユーザーが同時に同じ名前で使っても、別々のテーブルになるのかなー???

via ひひーん!

SQL Server (Transact-SQL)で LIMIT OFFSETする方法

SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY score DESC, speaker) AS rownum, speaker, track, score FROM SpeakerStats) AS D WHERE rownum BETWEEN 4 AND 6 ORDER BY score DESC, speaker

副問い合わせで行番号を振って、それで絞り込む
なんて使えない

via ひひーん!

2009年11月5日木曜日

SQL Serverの sp_executesqlとは

何回も再利用可能な、または動的に作成した Transact-SQL ステートメントやバッチを実行します。Transact-SQL ステートメントやバッチには、埋め込みパラメータを含めることができます。

プリフィクスのspはストアドプロシージャかな

via ひひーん!

ストアド内のIF文では複数の命令は BEGIN ENDで囲う

これはIF文が命令文を1つしか条件式として取り扱っていないことに起因します。このような問題を解決するために、「BEGIN…END」構文を利用します。BEGIN…END構文は、命令文をブロック化しひとまとめにできます。

なんともめんどくさい

via ひひーん!

location.hostnameを使って JavaScriptでドメイン名を取得

locationオブジェクトのhostnameプロパティは、現在ページURLのホスト名を取得します。

尚、ホスト名とポート番号の両方を同時に取得する場合にはhostプロパティを使用します。

意外に便利。

つい location.href.split("/")[2] ってやっちゃうけど

via ひひーん!

Firefoxはパスワード入力欄にも ime-modeを適用できる

Firefox の ime-mode は Internet Explorer と異なり、パスワードフィールドにも適用できます。しかしこれはユーザーの使い勝手にはマイナスの影響を与えます。パスワードフィールドでは IME は無効に設定されているべきです。

分かってるならやめてくれればいいのに

via ひひーん!

ime-modeのデフォルト

ime-mode・・・テキスト入力時のIMEの状態を指定する(IE独自仕様)

たぶんauto。

via ひひーん!

Twhichさん(0歳)、不治の病であることが発覚

そもそも Mashup Awards 5(MA5) に応募するため作ったのですが、
使用している「日本語解析エンジン なずき」
MA5 開催期間限定公開の API だったんです。

なずき関係者がなずきを広めるために作ったのかと思ってた

via ひひーん!

tempuri.orgとは

Each XML Web Service needs a unique namespace in order for client applications to distinguish it from other services on the Web.  By default, ASP.Net Web Services use http://tempuri.org/ for this purpose.  While this suitable for XML Web Services under development, published services should use a unique, permanent namespace.

Your XML Web Service should be identified by a namespace that you control.  For example, you can use your company's Internet domain name as part of the namespace.  Although many namespaces look like URLs, they need not point to actual resources on the Web.

For XML Web Services creating using ASP.NET, the default namespace can be changed using the WebService attribute's Namespace property.  The WebService attribute is applied to the class that contains the XML Web Service methods.  Below is a code example that sets the namespace to "http://microsoft.com/webservices/":

Google翻訳

各XML Webサービスは、Web上の他のサービスから区別するためにクライアントアプリケーションのための一意の名前空間が必要です。デフォルトでは、 ASP.Net Webサービスを使用http://tempuri.org/は、この目的のために。これは、XML Webサービスの開発の下で公開され、サービス固有の、恒久的な名前空間を使用する必要があります適していません。

XML Webサービスの場合、そのコントロールの名前空間によって識別される必要があります。たとえば、名前空間の一部として、あなたの会社のインターネットドメイン名を使用することができます。しかし、多くの名前空間のURLのように見えるが、実際のリソースには、Web上の点はありません。

XML WebサービスASP.NETを使用して作成するためには、既定の名前空間は、WebService属性のNamespaceプロパティを使用して変更することができます。 WebService属性は、XML Webサービスのメソッドを含むクラスに適用されます。その下に"には、名前空間を設定するコードの例ですhttp://microsoft.com /webservices/":

ASP.NET用のテンポラリーな名前空間?

via ひひーん!

2009年11月4日水曜日

Firefoxのプラグインの Update有無を調べてくれる Webページ

Plugin Check

Keep your Plugins up to date!

  • Click Update Now to update a plugin.
  • Complete all recommended updates before restarting your browser.

Flash Playerはこれを使わなくてもチェックしてくれるらしいけど。

No ScriptやRequestPolicyで制限をかけてると、"Plugin Finding Service Error"となるので注意。

via ひひーん!

Flash Playerのセキュリティを設定する方法

メモ:上に表示されている設定マネージャは、説明用の仮画像ではなく、実際に機能する設定マネージャです。 設定マネージャ内のタブをクリックすると別のパネルにもアクセスでき、各パネル内のオプションを調整することで Flash Player の設定を変更できます。

上記リンク先で設定する。
マイクとかカメラのアクセス権とか。
まだmacromedia.comにあるのか。adobeへの統合作業に時間がかかってるのかやる気が無いのか。

via ひひーん!

.htaccessで特定のファイルにのみ Basic認証をかける方法

ここでのミソは、

  • require」で指定したユーザーに対して Basic認証を行う
  • <Files>~</Files>」で指定したファイルに対してアクセス制限を行なう

という2点です。

こんなこともできるんだー

via ひひーん!

Basic認証のパスワードって作るたびに変わる?

こちらにID、パスワードを入力するとパスワードを暗号化することができます。
入力すると新しいWindowが開き、ID:パスワードが表示されますので、コピーを取り、「htpassed.txt」に貼り付けます。

上記サイトで作ると、作るたびに変わる。そういうものだったかなあ

via ひひーん!

Apacheの Basic認証のパスワードファイルの作り方

# htpasswd -c /usr/local/apache/.htpasswd ichishi
New password:
Re-type new password:
Adding password for user ichishi

htpasswdの実行ファイルのありかを探してしまったが、コマンドとして実行すればいいだけか。

via ひひーん!

MySQLの全文検索ツール Sphinx Searchで日本語を使う方法

それで途方に暮れていたんだけど「Sphinx search japanese」で検索したら、Sphinx Search in Japanese という記事が見つかった。日本語の検索エンジンの話だから、日本語で書かれているだろうと想像したのだが、甘かった…。いまや日本語は国際的なのね。

できるんだー
いつか試す...かも

via ひひーん!

MySQLの Tritonnとは

TritonnはMySQLから全文検索エンジンSennaを利用可能にするための改造を行うプロジェクトです。

以前はMySQLに当てるパッチを開発するプロジェクトでしたが、現在は1歩進めてMySQLの改造版ソースを開発するプロジェクトとして活動しています。

MySQLがバージョンアップするごとにこっちもバージョンアップするのかなー

via ひひーん!

Ruby、 Rails、 RSpcecの API仕様書のサイト

APIdock is a web app that provides a rich and usable interface for searching, perusing and improving the documentation of projects that are included in the app.

本家が落ちている時(まさに今)に便利。

via ひひーん!

Railsでドル表記をするのに便利なヘルパー

number_to_currency(number, options = {})
通貨のフォーマットに変換。($13.65)

オプション設定は上記リンク先を参照のこと。

via ひひーん!

ASP.NETの App_Codeとは

ASP.NETでは、動的にコンパイルされるクラスのソースコードはApp_Codeの下にいれなければいけません。

ほうほう。
App_CodeとApp_Dataだけ浮いてる気がする

via ひひーん!

ASPNETDB.mdfとは

実際にプロファイルがデータベースに保存されている様子を自分の目で確認したければ、仮想ディレクトリ直下の「App_Data」フォルダから「ASPNETDB.mdf」を開いてみよう。aspnet_Profileテーブルを開くと、以下のようにユーザーごとのプロファイル情報がデータベースに保存されていることが確認できるはずだ。

ユーザーごとのProfileを保存しているようだ

via ひひーん!

SQL Serverの SET NOCOUNT ONとは

SET NOCOUNT が ON の場合、行数は返されません。SET NOCOUNT が OFF の場合、行数が返されます。

SET NOCOUNT が ON の場合でも、@@ROWCOUNT 関数は更新されます。

SET NOCOUNT ON を指定すると、ストアド プロシージャ内の各ステートメントに対する DONE_IN_PROC メッセージは、クライアントに送信されなくなります。このため、実際に返すデータが少量のステートメントで構成されるストアド プロシージャ、または Transact-SQL ループを含むプロシージャの場合、ネットワーク通信量が大きく減少するので、SET NOCOUNT を ON に設定するとパフォーマンスが大きく向上します。

デフォルトをONにすれば良い気がするが。
設定とかできるのかな

via ひひーん!

UPDLOCKの有効範囲

UPDLOCK テーブルの読み出しの間、共有ロックの代わりに更新ロックを使用します。更新ロックは、データを読んだ後、トランザクションが終了するまでの間、ほかのユーザーがデータを参照することは可能ですが、更新することはできません。通常の更新系のトランザクションの場合は排他ロックが掛けられるため、ほかのトランザクションからは読み取ることもできなくなります(NOLOCKの場合以外)。参照ロックと排他ロックを上手に使い分けることで、同時実行性能を上げることが可能なオプションです

トランザクションが終了するまでかな

via ひひーん!

SQL Server 2005、 MySQL、 Postgresのデフォルトのロックレベル

SQL Server 2005とMySQLは4つの分離レベルに対応した機能を実装している。一方、PostgreSQLは「READ COMMITTED」と「SERIALIZABLE」を実装し、「READ UNCOMMITTED」や「REPEATABLE READ」が指定された場合は、上位のトランザクションの分離レベルで動作する仕様となっている。

SQL Server 2005もデフォルトはREAD COMMITEDと。

via ひひーん!

COM+を使うとデフォルトのロックレベルが Serializableになるらしい

トランザクション化された Microsoft Transaction Server (MTS) または COM+ 1.0 コンポーネントで開かれるデータベースの接続は、そのアクティビティの Microsoft 分散トランザクション コーディネータ (MS DTC) トランザクションに参加します。COM+ が MS DTC トランザクションの接続に参加すると、トランザクション分離レベルが Serializable に設定されますが、それは最も可能性が高い分離の設定です。デフォルトでは、MTS および COM+ を別のレベルに設定することはできません。

これかー

via ひひーん!

SQL Server 2000のデフォルトのロックレベル

Read Committed (デフォルト)

Read Uncommitted

Repeatable Read

Serializable

Serializableかと思ってた。

via ひひーん!

SQL Serverのストアドで BEGIN TRANSACTIONしたり ROLLBACKしたりするサンプル

■TRY~CATCH命令によるエラー処理

 そこでリスト1に明示的なエラー処理を加えたのが、次のリスト2です(追記部分は太字)。

なんか冗長。
MSはDBに関しては保守的だね

via ひひーん!

DB テーブルのロック

・ 共有ロック(Share Lock, S-Lock)   ・ 自分がそのデータを読み出していることを、他のユーザに示すために立てるフラグ。   ・ 更新ロック(Update Lock, U-Lock)   ・ 自分がそのデータを後で更新する予定であることを、他のユーザに示すために立てるフラグ。   ・ 排他ロック(eXclusive Lock, X-Lock)   ・ 自分がそのデータを更新していることを、他のユーザに示すために立てるフラグ。

メモ。
リスト形式はくずれちゃうかなー

via ひひーん!

採番とは

コンピュータ関係では、ごくごく一般的な用語です。
補足にお書きのように、番号を割り当てる、という意味ですね。
英語のnumberingの訳語だと思います。

MS IMEで変換できないのが不便なんだよねー

via ひひーん!

2009年11月3日火曜日

MySQLの Integerの最大値

たとえば、INT カラムの範囲は -2147483648 から 2147483647 です。

すぐ忘れる

via ひひーん!

2009年11月2日月曜日

IEにキャッシュさせない METAタグ

対策案2:キャシュさせない設定にする。
head部に
<meta http-equiv="Expires" content="-1"> 
<meta http-equiv="Cache-Control" content="no-cache"> 
<meta http-equiv="Pragma" content="no-cache"> 
を追加

メモメモ。

via ひひーん!

Google AdSenseによる携帯サイト向けサイト内検索サービス (AdSense for Mobile Search)

Google AdSense for Mobile Search is a new Google-hosted web search solution for mobile network operators and publishers.  This service makes it easy to embed a Google search box on a mobile portal or web site and to share in resulting search ad revenue.

まだクローズドテスト中のようだ。

via ひひーん!

携帯サイトのテキストボックスの横幅指定方法

「画面横幅いっぱいじゃなくて、右にちょっと余白があったほうがいいな...」
という場合は、size="**"とstyle="width:**"両方の指定が必要となってきます。

上記リンク先にあるサンプルが良さそう

via ひひーん!

携帯サイトのデザインを検討する際に気をつけること

docomoの901、701、702、が対応端末にはいっている場合はtableの使用可否の確認します。901、701、702(一部)はtableが効きません(なかったこととしてレンダリングされます)。

TABLE要素が使えないと、いろいろいろいろできないことが発生するらしい。

それと、太字は使えないらしい。

via ひひーん!

Bloggerのページの一番上の Navbarで「透明」が選べるようになった

フラッグボタン読者になるボタン共有ボタンと徐々に機能が追加されてきた Blogger の Navbar ですが、今回は機能面ではなくデザイン面での変更です。バー自体が細くなったり、検索窓が丸みを帯びたものに変更されたりしていますが、一番の目玉は新しく 2 種類の半透明 Navbar が用意されたこと。

ああちょっといいかも。
元が白いサイトだと透明(明)にすると真っ白になるね

via ひひーん!

Google Analyticsで外部ページへのリンク等のクリックを計測する方法 (新)

_trackEvent(category, action, optional_label, optional_value)
  • category (required)

    The name you supply for the group of objects you want to track.

  • action (required)

    A string that is uniquely paired with each category, and commonly used to define the type of user interaction for the web object.

  • label (optional)

    An optional string to provide additional dimensions to the event data.

  • value (optional)

    An integer that you can use to provide numerical data about the user event.

Google Analyticsの機能として、今年の夏に実装されていたらしい。
これならページビューにフィルタをかけずに済む。
categoryとactionで分類して、詳細はlabelに書く感じかな?

via ひひーん!

Google Analyticsで外部ページへのリンク等のクリックを計測する方法

イベントをトラッキングするには、イベント名を引数に指定して _trackPageview() を呼び出します。 たとえば、下記のように記述します。

pageTracker._trackPageview("/purchase_funnel/page1.html");

ただし、このJavaScriptの定義は、Google AnalyticsのJavaScriptファイル(ga.js)の読み込みと一連の処理より後にしなければならない。(pageTrackerが無いよーエラーになってしまう。)
functionを作ってその中でやればいいだろう、きっと。

でもこれやると、ページビューがその分加算されるんだろなー。フィルタリングするのも面倒だしなー

via ひひーん!

ASP.NETの DropDownListで選択去れた時のイベントの書き方

    Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
        Me.Label1.Text = Me.DropDownList1.SelectedValue + "が選択されました。"
    End Sub

handlesの後ろも必要。
自動で作れない???

via ひひーん!

ASP.NETの DropDownListで先頭に空行を入れる方法 その2

DropDownListにAppendDataBoundItems="True"を追加すると可能です。Addメソッドで追加する代わりにデザインにListItemで定義することもできます。

データバインドしているドロップダウンリストの場合、これをやらないと空行を追加できない。

via ひひーん!

ASP.NETの DropDownListで先頭に空行を入れる方法

DataBindした後に下記のコードを記述することで先頭に空白を入れることができます。

Me.ドロップダウンリスト.Items.Insert(0, "")

メモメモ。

via ひひーん!

Google Chromeと Visual Studioって

アイコンが似ている。
色遣いが...

ブログ アーカイブ

カテゴリー