Archive for the ‘技術っぽい話’ category

USB メモリを書き込み禁止にする – SDカードは?

6月 29th, 2010

レジストリをいじって、USB接続のメモリやデバイスの読み書きを制御できるのは、分かった。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies (無ければ、作る)にdwordでWriteProtect というキーを作り、値を 1 にしてやればよろしい。再起動要。

が、同じことをSDカードやMMCでやろうとしたときにどうやらレジストリでは制御がきかないようだ。

WordPressにしてみましょう

11月 4th, 2009

このサイトはずっとXOOPSで作ってきたんですが、ちょっとWordpressに浮気してみようとしてます。携帯対応とか、標準的なCMSってどうなってんの、という自分自身のアップデートのために。

なので、しばらくの間少し見にくくなるかもしれませんがご容赦ください。

携帯電話の環境変数一覧

7月 1st, 2009

携帯電話がWEbアクセスするときの環境変数をがさっとまとめて、WGETで擬似アクセススクリプトも書いてみましたよ、と。

ダウンロードのページからどうぞ

大体500機種ぐらい - 第3世代携帯電話のほとんど全部と、第2世代携帯電話が若干の環境変数を集めてみました。
今回ここでアップロードしたのは、こういう情報がどこまで世の中で求められているのか良く判らないので、このファイルのダウンロード具合を見てみようという調査的意味合いが強い。

WGETでのスクリプトはFireFoxのUser Agent Switcherみたいに環境変数を偽装してのWEBアクセスを、上記の500機種分一気にやってしまえ、というもの。とはいえシェルファイルでシーケンシャルなので負荷試験には向かない。

これでそこそこニーズがあるようならば、環境変数+αの情報をWEbAPIで提供するようなものをやってもいいかな、と思っている。

Google Static Map が表示されない

5月 22nd, 2009

Google MapをGET文だけで表示できるStatic Mapですが、ちょっとトリッキー。

直接、例えば以下のようなURLをたたくと…地図が表示されます。

http://maps.google.com/staticmap?center=00.0000000,00.0000000
&format=gif&zoom=0&markers=00.0000000,00.0000000
&size=300×300&key=THISISDUMMYKEY&sensor=true

が、そのまんまimgタグに貼ってやると、出ないことがある。
これはStaticmapへのアクセスにRefferが付いてる=どっかのページのimgタグからアクセスが来ている場合には、KEYのところにそのサイト用に作られたGoogle MAP APIキーがくっついてないと、Google側からBAD REQUESTが返ってくるからだ。

サンプルが、これ。

ここに上のURLが貼ってある。
でもおそらく上の地図は皆さん見えちゃってると思う。

そうなのだ。Bad Requestを出しつつデータ返したりとか、Bad Requestなしでデータ返したりとか、Bad Request出してデータも出さないとか、いろいろしている感じがするのだ。
APIキーを正しくつけてリクエストを出せば、正しく返してくれるのでそのようにすれば何の問題もない。

タダで使うのは控えろよ、と人のコンテンツをタダで使っている奴が言うという変な感じの…
まぁ、Fair Tradeのうちだとは思うけれど。

AUでTableの内側のTableが表示されない

5月 22nd, 2009

Auの携帯電話で、Tableタグの内側にもうひとつTableタグを書くと、あら不思議。

内側のTableタグの内容は出力されない。

おいおい。

OTRS 日本語化

4月 16th, 2009

なんだか技術屋みたいなことをしてますが、OTRSというオープンソースのヘルプデスクアプリを使って新商品を作りましょうということでをカリカリと日本語化作業をしました。出来上がったリソースファイルはダウンロードコーナーにおいてありますので、持って行ってください。OTRSがGPLなので、これもGPLです。

—- 2010年8月追記 —

プラットフォームを移行してダウンロードページが無くなったので、日本語化ファイルは以下のリンクからどうぞ。

OTRS 日本語化リソースファイル

メール送信用バッチファイル

3月 31st, 2009

ちょっと必要があって作ったメール送信用バッチファイル。
以下のユーティリティを取ってきてどっかのディレクトリにがさっと入れ、yyyymmddhhmm.Mail.txtとMaillist.txtを突っ込むとどかっとメールを送ってくれるという代物。
Cron的なもので自動実行させるために、Mail.txtで指定した年月日、時分でしか動いてくれない。
Pycronとかを使えばWindowsでも分単位の自動実行ができる。

■必要なもの
Smail : コマンドラインメール送信プログラム
Unix Utilities : Windowsで動くUnixのユーティリティ群
Base64エンコーダ : やすあきさん作のフリーウェア。
csconv :Unibirth Software作フリーウェア。文字コード変換ユーティリティ。あて先のニックネームをISO-2022-JPにするの使用。
Mfc42.dll : なんかのランタイムライブラリ。

これらをがさっとバッチファイルと同じディレクトリに突っ込んでおく。
Unix UtilitiesはWCとHEADしか使っていないので、これだけでも良い。

バッチ本体は以下の通り。
時分チェックとかを外しておけばローカルで簡単に実行できる。
「共有ファイルに突っ込んで使う」ために作ってあるので、あて先ファイルとかデリケートなものは実行後に削除している。

@echo off

cd C:Mailbat
::年月日時分.Mail.txtがあったときに、本文ファイルを送信して結果をレポートする。
::情報保護の観点から、送信先リストは実行の都度消去する。
::つまり、送信するときには本文ファイルと送信リストの両方を投入しておく必要がある。

::現在日時、時分をセット
SET DATESTR=%date:~0,4%%date:~5,2%%date:~8,2%
SET TIMESTR=%time:~0,2%%time:~3,2%
SET TIMESTR=%TIMESTR: =0%

::Windowsのバッチファイルでは、実行前に全ての式を評価する。
::なので、入れ子のFor文は評価しない。
::従って、後続するメール送信部分でのIf判定に以下の部分を入れてしまうと
::変数にNullが入って「構文エラー」が出ることになる。
::実行時に評価するオプションもあるようだが、うまく動かなかった。
::なので、外だしで。

::メールファイルを読んで、1行目をあて先にセット
for /f %%A in (‘head -n 1 %DATESTR%%TIMESTR%.Mail.txt’) do set SUBJECT=”%%A”

::メールファイルは3行以上無ければ、エラー
SET LINENUM=000
for /f %%A in (‘wc -l %DATESTR%%TIMESTR%.Mail.txt’) do set LINENUM=%%A
if exist %DATESTR%%TIMESTR%.Mail.txt (
if %LINENUM% LSS 3 goto NOMAILTXT
)

::対象にするファイル名を確認し、あれば実施。
::あて先リストが無ければ、警告メールを送信
::あて先リストは「お名前」の形式。
::お名前部分をISO-2022-JP変換後、BASE64して送信する。
::メールファイルは3行以上無ければ、エラー
::メールファイルの1行目を取り出して件名とし、
::残りをbody.txtへ吐き出して本文ファイルにする。
::Body.txtは処理が終わったら消去する。

if exist %DATESTR%%TIMESTR%.Mail.txt (

if not exist Maillist.txt goto NOMAILLIST

csconv MailList.txt -FWORK.Maillist2022.txt -OISO-2022-JP -Auto -ROFF

CALL :CODECONVERT

more +1 %DATESTR%%TIMESTR%.Mail.txt > body.txt

for /f “delims=” %%i in (encoded.MailList.txt) do smail.exe -i -h192.168.0.1 -f”=?ISO-2022-JP?B?GyRCJTUlcyVXJWslYSE8JWsbKEI=?= ” -s”%SUBJECT%” -Fbody.txt %%i >> log.txt

smail.exe -i -h192.168.0.1 -f”MailReport ” -sメール送信結果 -alog.txt,MailList.txt,%DATESTR%%TIMESTR%.Mail.txt hogehoge@hage.com

DEL encoded.MailList.txt
DEL MailList.txt
DEL log.txt
DEL body.txt

)

goto :EXT

:NOMAILLIST
smail.exe -i -h192.168.0.1 -f”MailReport ” -s送信先リストがありません hogehoge@hage.com

exit

:NOMAILTXT
smail.exe -i -h192.168.0.1 -f”MailReport ” -sメールファイルが3行以下です hogehoge@hage.com

exit

:EXT
exit

:CODECONVERT
for /f “tokens=1-2 delims=<>” %%A in (WORK.MailList2022.txt) do (
SET MAILTO=%%B
echo %%A > WORK.ISO-2022.txt
Base64c WORK.ISO-2022.txt WORK.ISO-2022enc.txt
for /f %%C in (WORK.ISO-2022enc.txt) do SET ENCSTR=%%C
CALL :MAILLISTWRITE
)

DEL WORK*.txt

GOTO :EOF

:MAILLISTWRITE
echo =?iso-2022-jp?B?%ENCSTR%?=^<%MAILTO%^> >> encoded.Maillist.txt

ConvertとFindで一気に画像サイズを変換する

3月 29th, 2009

find ./ -name *.jpg -or -name *.JPG -exec convert -size 250 {} {}  ;

拡張子がjpgもしくはJPGのファイルを拾ってきて、Convertコマンドに渡して横幅250ピクセル見当へリサイズし、同じ名前で保存する、と言うワンラインコマンド。
単純に備忘録。

ECプラットフォーム Magentoを使ってみる

3月 21st, 2009

このサイトのショップはXoopsのモジュールで簡単に組み込めることもあってZenCartで作っているのだが、友人のEC/ブログサイトを作るのにSorceForge.net の2008年度ベスト・プロジェクトに選ばれたMagentoを使ってみた。

成果は近日公開できると思うけれど、まずは簡単に印象を述べてみる。

多層構造による圧倒的な自由度でページ構築が可能

Magentoで特徴的なのは、やはりデザイン・処理・コンテンツがそれぞれ独立して管理出きることだ。
これを実現するためにテーマ、テンプレート、CSSという3層構造でサイトを組み上げていける。
さらにサイト、ストア、ストアビューと3つの概念を持つことで例えば複数言語への対応が簡単に出来る。
これはいわゆる企業サイトではそれほど有利性は無いのだけれど、ショップサイトを作るとなったときは非常に大きなアドバンテージをもたらす。

ひとつには、商品の特性に合わせてカテゴリごとにページの構成を自由に変更することが出来る。
例えばラクシャリーブランドものであれば大きなウォールペーパーでブランド想起を補完しながら、商品それぞれの表示には仕様情報のようなものはそれほど不要だろう。が、同じブランドであっても小物系であれば品数を多く見せたいかも知れない。さらには言語によってレイアウトを変えたいかも知れない。Magentoでは、先に上げた3×3の層概念でほぼ完全にこうした要素を管理することが出来る。作成することが出来る、と言う観点では他のECソフトでも十分できるが、管理できるというのはすごい。デザインの仕込みが良ければ、ショップの店長さんが他のソフトを使っているショップに比べて圧倒的に柔軟で自由にショップを管理していけるだろう。

また、構成の自由度はコンバージョンレートを上げていくための試行錯誤にも有効だ。
きちんとレイヤリングされているので、ページ内でのコンテンツ配置をそれぞれ試して最適解を見つけていくようなオペレーションにも適している。

最新のECソフト

特別価格の期間付き適用、商品画像のクロースアップ、特別組み合わせ価格の適用、ページデザイン適用期日の指定など今時のECサイトが欲しいだろう機能があらかじめ一通り揃っている。
先に上げたデザインの自由度と合わせて、価格や商品構成その物の自由度も非常に高いことになる。
言うまでもないことだがこれはショップの戦闘力を大幅に引きあげる。
ZenCartでもこうしたことは出来るが、デフォルトではない。(不勉強かも。間違ってたら指摘して。)

でもちょっと敷居が高い

SQLにしてもPHPにしても要求する要件がちょっと、高い。それはまぁ何とかなるとしても、デザインをきちんと作りこもうとすると、かなり大変。テンプレート、CSS、PHP処理を行ったり来たりしなきゃいけない。
静的ページの造り込み画面では素っ気ないテキスト入力画面でちまちまとHTMLを打たなきゃいけない。
WYGIWYSなエディタがついていないことで導入をためらうショップ店長もいるかもしれない。

総合的に見れば、今触っておくべきオープンソースのNo.1だろう。
友人のサイトでは、これにWordpressを組み合わせて情報ページの入力エディタとして使用するつもりでいる。個人商店向けショップサイトとしてはかなり良い具合にまとまりそうな気がしている。

なぞのサーバーエラー

3月 12th, 2009

このサイトはさくらインターネットを使っているが、何故だか本日いきなりWEBルート直下でPHPを使うとInternal Server Errorが出るようになった。.htaccessをいじったわけでもなく、ファイルパーミッションも大丈夫。PHP.iniもいじってない。

ふーん、ということでWEBルートの下にもう一個ディレクトリを作ってコンテンツを全部移してWEBルートを指定しなおすと…直った。

なんだろう?

— 追記
すいません。ディレクトリにchmod 666とか打ってたらしくて、実行権が消えてました。シロートかよと。
さくらのサポートの方、ご対応すいませんでした。