programmingの最近のブログ記事

2 次元バーコード作成 CGIについて、以下のバグ修正 & 機能追加を行いました。

  • フリガナ、電話番号に全角文字が入力されても内部で半角に変換するようにした。
  • TV電話番号の入力が作成されるバーコードに含まれていなかったのを修正。
  • 「;」「:」のエスケープ処理を修正
  • 「QR コード」から「2 次元バーコード」へ変更。

Docomo 携帯電話向けの QRコード作成 CGI を使っていただいた方から、エラーがでるよという連絡をいただきました。

確かめてみると、エラーの言葉が文字化けていました。原因は文字コードの関係でした。先のリンク先のページは作成当初は単独のページだったので EUC コードで書いていたのだけど、今はサイドバーを組み込み blog と同じ1ページの見栄えにしているので文字コードは UTF-8 。

ということで、スクリプトの文字コードを UTF-8 にしたのと、Jcode を用いた入力フォームの文字コード変換を euc -> sjis から utf8 -> sjis に修正しました。作った QR コードが文字化けしてて QRコードを使えなかった人たちごめんなさい。

以下、あとでやる。

  • フリガナや電話番号のの全角→半角ぐらいの自動変換
  • 「QR コード」と「2次元バーコード 」のどっちが「携帯」「ドコモ」のコンテキストより広く使われているかちょっと調査してページ修正
  • トラックバック一覧の文字がでかすぎるので修正

以前、amazon の商品紹介のページから商品画像のリンクを作成する bookmarklet を紹介しましたが、この script ではこのリンク先のURLのように URL に ref=nosim が付いたリンクからリダイレクトされた先の URL に対してはうまく動かないことが分かりましたので、下に修正版を書いておきます。

javascript:
 var t=document.title;
 var u=location.href;
 var i = u.indexOf("ASIN/",0);
 var a = (i!=-1) ? u.substr(i+5,10)
                 : u.substr(u.indexOf("duct/",0)+5,10);
 var alt=t.substring(t.indexOf("co.jp:")+6, t.indexOf(": ")); 
 u="http://images-jp.amazon.com/images/P/"
      +a+".09._SCMZZZZZZZ_.jpg";
 window.prompt("amazon 画像抽出", 
      '<a href="http://www.amazon.co.jp/exec/obidos/ASIN/'
      +a+'/tsuyuguchicom-22/ref=nosim" title="'+alt+'">
       <img src="'+u+'" alt="'+alt+'"/></a>' );

適宜、改行、スペースを削除の上よろしければお使いくださいませ。

2009/02/03 追記:

最新のブックマークレットを紹介しています。是非新しいモノをご利用ください。

【2009/02/03 追記】最新のブックマークレットを紹介しています。是非新しいモノをご利用ください。

前にどっかのサイトで見つけたネタで、左カラムの画像なんかのリンクを作成するのに使っていたんですが、OS を入れなおした拍子になくなってしまったので、作りました。下記のコードを 1 行に直してお気に入りに登録したあと、amazon のこういうページを表示して、このブックマークを実行するとリンクつきの画像が得られます。

javascript:var t=document.title; 
var u=location.href;
var a = u.substr(u.indexOf("ASIN/",0)+5,10);
var alt=t.substring(t.indexOf("co.jp:")+6, t.indexOf(": "));
var u="http://images-jp.amazon.com/images/P/"
            +a+".09._SCMZZZZZZZ_.jpg";
window.prompt("amazon 画像抽出", 
 '<a href="http://www.amazon.co.jp/exec/obidos/ASIN/'+a+'/" 
 title="'+alt+'">
 <img src="'+u+'" alt="'+alt+'"/></a>' );

amazon の画像 URL に関しては ココを参考にしました。

でも、ギブスンの本はサムネイルがないので、最近使う機会がありません(泣)。モナリザ・オーバードライブを買ったんですけどね。

Yahoo! Design Library

| | トラックバック(0) http://tsuyuguchi.com/masaaki/mt/archives/2006/02/18-1946.php のはてなブックマーク件数

少し前のことですが、 Yahoo! Inc. がよくあるweb デザインをパターンとしてまとめたものをYahoo! Desgin Libraryとして公開しました。コードもYahoo! UI Libraryとして公開されています。

コードのほうはまだ見てないですけど、デザパタのほうはちらっとのぞいてみました。パターンですので、「こんな問題」は「こうしたら」「こうよくなる」というシナリオにそって簡潔にまとめられています。簡潔なので、読んでいても書かれてある内容について別段深く考えることはありません(よくまとまってるな~と深く考えることはありますが)。で、ちょっと日本語訳を作ってみました。まだ Auto Complete パターンだけですが、よろしければどうぞ。

Auto Complete : http://tsuyuguchi.com/ydpl/pattern_autocomplete.php

「もう別のところに日本語訳あるで」という方がいれば教えてください。

kovaio さんの日記で firefox の検索プラグインに PHP マニュアルを追加する方法が紹介されていたので、IE その他のブラウザでも同じことができるような bookmarklet を作ってみました。

javascript: var x=prompt("php の関数検索",""); 
document.location(
  "http://www.php.net/manual/ja/function."+x.replace("_","-")+".php");

横幅が狭いディスプレイでも見れるように何行かに分けて書きましたが、実際には全部 1 行にまとめてお手元の Bookmark に登録してお使いください。IE だとお気に入りの「リンク」フォルダにこの bookmarklet を追加して、「表示」→「ツール バー」→「リンク」にチェックを入れて「リンク」をツールバーにを表示しておくとハッピーかもしれません。

会社の先輩から「トランプをランダムに配るアルゴリズムを考えてみぃ」とクイズを出されたので帰りの電車で考えていました。で、なかなか面白かったのでここに記録。

疲れているうえに、もともとない頭を振り絞って考えたのが

  • vector を使う方法(反則ぎみ)
  • ランダムにソートして上から配る方法

の 2 つ。で、先輩から教えてもらったのが、

  • 残りの札からランダムに選んだ 1 枚を配る方法

1 番目は論外なのでちょっと置いといて、2 番目と 3番目についてちょっと説明してみようと思います。

それぞれを shuffle2, shuffle3 とするとコードは

void shuffle2( int *card, int n ){
   qsort( card, n, sizeof( *card ), cmp_rand );
}
int cmp_rand( const void *a, const void *b ){ return (rand() % 2 == 0) ? -1 : 1; }
void shuffle3( int *card, int n ){ int tmp; int i,j; for( i = 0; i < n; i++ ){ j = rand() % (n - i ); /* (1) */ tmp = card[j]; card[j] = card[ n - i - 1]; card[ n - i ] = tmp; } }

こんな感じです。私は並べ替えに qsort 関数を使ってしまったのですが、ソートはあくまでも順序付けられた並べ替えなのであって、シャッフルするのには qsort は計算量が無駄すぎました。しかも、そこからカードを配る場合には、さらに n 回ループしなくてはならず…。まだまだ勉強不足です。

一方、shuffle3 の場合は配列要素のスワップの回数は n 回 だし、カードを配るコードを追加するにしても (1) の箇所に追加すれば新たにループする必要もありません。すべてのカードの位置が変わっているのもいいところです。

ちなみに perl の List::Utilモジュールにある shuffle も、Java の Collections クラスの shuffle メソッドも shuffle3 と同じ方法でした。

これからも精進してまいります…。

ver 1.1 を公開します。

変更点:1週間の開始を日曜日または月曜日から選べるように選択項目を追加。内部的な変更としては日付の色指定を条件付き書式からマクロで色を指定するように変更(条件付き書式だと 3 つまでしか指定できないので)。

* 将来のバージョンアップにより ver1.1 が旧バージョンとなった場合、ver.1.1 をサーバから削除するかもしれません。その場合は カテゴリ programming から最新のバージョンを見つけてください。

3 カラム化

| | トラックバック(0) http://tsuyuguchi.com/masaaki/mt/archives/2006/01/07-1902.php のはてなブックマーク件数

サイトのスタイルを変更し、3 カラムにしました。左右のカラムは position:absolute でそれぞれ left:0、right:0 で配置して、真ん中のカラムは左右のカラムの幅をマージンに持たせるようにしています。エッセンスだけを抜きとれば、

 .left{ position: absolute;
        left: 0;
        width: 200px;
  }
 .right{ position: absolute;
         right: 0;
         width: 220px;
 }
 .center{ margin-left: 200px;
          margin-right: 220px;
 }

のような感じなります。このスタイルの利点は

  • 真ん中のカラムがブラウザの幅に合わせて変動するので、読む人が好きな幅に変更できる。
  • 左右カラムが絶対配置なので、HTML ソース内の記述箇所に依存しない。したがって本文である中央のカラムをソースの先頭部分に持ってくる事ができ、ひょっとすると SEO に効果があるかもしれない

です。カテゴリが programming なのはご愛嬌と言う事で。

以前にも紹介しましたが、Excel で万年カレンダーを作りました。よろしければどうぞ。ダウンロードはこちらから。

特徴としては、

  • 振替休日に対応
  • 六曜の表示・非表示を設定可能
  • 「バレンタインデー」や「ひなまつり」のような記念日を設定可能
  • 「給料日」のようなマンスリーなイベントを設定可能
  • 印刷後も手書きで追記できる程度の余白

反対にできない事は、

  • 週を月曜開始に変更すること
  • 「ゴミの日」のようなウィークリーなイベントの設定
  • 9月の国民の休日(敬老の日(第3月曜日)と秋分の日が1日におきになった場合)
  • 祝日とイベント・記念日が重なったときは祝日のみ表示され、イベント・記念日が表示されない

できない事もいくつかありますが、実用には充分耐えられると思います。技術的なことを言えば、セルに関数を埋め込みまくり各セルが他のセルを参照しまくりなので、VBA かなにかでスマートに作り直したい…かな。

1 2 3 4 5 6

最近の画像

Zero History - ギブスンの新作が 9 月に発売 -
虐殺器官
ドミニオンのランダマイザアプリ、dominion minion が日本語対応!
ハイペリオンの没落 ~ 完結...でもまだ続く~
ハイペリオンの没落 ~ 完結...でもまだ続く~
ハイペリオン - 長大な叙事詩 SF のスタート -
ハイペリオン - 長大な叙事詩 SF のスタート -
「都市と星」 - 10億年と言われてもよく分からない -
「星を継ぐもの」 - 良い Sci-Fi -
トールサイズのニューロマンサーを買った
虎よ、虎よ! - 主人公フォイルの執念の物語 -

私の本棚

 

自転車走行距離

自転車走行距離

Flickr Photos

FlickrPhotos

なかのひと

Y!ログール

このサイトについて

2015年2月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28

アーカイブ

My Update

  • Loading...

その他

あわせて読みたいブログパーツ