Skip to content

【Linux】複数ファイルを対象とした文字列検索

2012 5月 16
tags: , , ,
by shigezo

タイトルにあるような作業をする際、都度しらべるハメになっているのでってメモ。

# find / -name "*" -print | xargs grep abcdefg

“abcdefg”って文字列を検索する例。

以下、CodeZineから抜粋 (http://codezine.jp/article/detail/3279)

 xargsコマンドは、標準入力から引数を読み込み、指定の「コマンド」を実行します。上記の例では、
findコマンドを利用して見つかった全ファイルのパスを、一度に「コマンド」へ渡しています。
 
 なお、空白や特殊文字を含むファイルを正しく処理するため、findコマンドには必ず「-print0」
オプションを付け「xargs -0」で受け取るようにしましょう。「-0」オプションは「--null」でも
構いません(FreeBSDでは「-0」オプションのみ利用可能)。

【Java】ActionFormの文字化け対策 (resetメソッド)

2012 4月 7
tags: ,
by shigezo

掲題のとおりな初心者メモ。
by Struts駆け出し

ActionFormで日本語を取り扱ったときに、おもいっきり文字化けた。
正しい対策方法か分からないっていうオチはあるものの、とりあえず解決。

■restメソッドをActionFormBeanに追加して文字コードの設定をしてやる

public void reset(ActionMapping mapping, HttpServletRequest req) {
    try {
        req.setCharacterEncoding("Shift_JIS");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
}

resetメソッドはHTTPリクエストからパラメータ値を読み取って設定する前に必ず呼ばれるらしい。

===【更新 2012.4.16】=====================
本件の事象解決に至っては、フィルタ機能で対処するのが
スマートのようです。(web.xml)

【Linux】PostfixでのOP25B対策

2012 2月 25
by shigezo

「メール送信ができなくなった。受信はできるけど。。。」と家族から報告があった。

Final-Recipient: rfc822; ***@gmail.com
Original-Recipient: rfc822;***@gmail.com
Action: failed
Status: 5.7.0
Remote-MTA: dns; smtp.nifty.com
Diagnostic-Code: smtp; 535 5.7.0 authentication failed

それもそのはず、少し前にプロバイダをニフティから他社へ変更したが、自宅メールサーバのSMTP認証設定を変更していなかった。
そんなメモ。

■ 設定ファイル最終行へ追記 (はじめて場合)

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/authinfo
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = LOGIN, CRAM-MD5, PLAIN

■ SMTP認証情報を編集

# vi /etc/postfix/authinfo
[smtp.nifty.com]:587 メールアカウント:メールパスワード
 ↓↓変更↓↓
[新SMTPサーバ]:587 メールアカウント:メールパスワード

■ authinfo.dbを再作成

# /usr/sbin/postmap /etc/postfix/authinfo

■ 設定を反映

# /etc/rc.d/init.d/postfix reload

【ST17a】Xperia activeへClockworkModリカバリの導入

2012 2月 5

いろいろとインストールが面倒なClockworkModだったが、Xperia向けのClockworkModインストールアプリが
Androidマーケットで公開中だったので、早速入れてみた。

端末のRoot化必須のアプリです。
対応機種はXperia arc、arc S、neo、PLAY、mini、mini pro、activeだそうです。

■Xperia CWM Auto-Instalerをインストール
Androidマーケットからインストール
Xperia CWM Auto-Instaler

screenshot_2012-02-05_1659

アプリ起動後、CWM5を導入してからST17aを再起動。

ソニエリのロゴが表示されている時に、ボリュームダウンを数回押すとCWMが起動する。

とりあえずバックアップを実行しておけば安心。

【ST17a】Xperia activeバッテリーの100段階表示化

2012 1月 7
by shigezo

掲題とおりなメモ。

Xperia activeの記事は「とても」少ないため、とあるXperia Arcのバッテリ100段階表示を参考に作業ををしたら、見事に文鎮化した。。。orz
ほぼ常時利用可能状態にまで環境構築できていただけに、かなり凹んだ。。。。が、どうにかこうにか100段階表示することができたってメモ。

Xperia activeは国内販売されているXperia rayと同時発表だっただけにXperia rayの100段階表示をやってのけた先人記事を参考にした。

手を加えるファイルは、次の2つ
/system/framework/frameworkーres.apk
/system/app/SystemUI.apk

■Root化したのち、上記2つのファイルをPC側へ取り出す。
PC側では、取り出した2つのファイルを基にUOT Kitchenでバッテリテーマを作成する。
UOT Kitchenの使い方は、素晴らしくまとまったサイトがあるので、そこを参考にしてください。
http://arkdroid.info/017/
※但し、あくまでもUOT Kitchenの使い方のみ参考すべし(ST17aで手順を丸々ふむと文鎮化する)

■UOT Kitchenで調理した2つのファイルをST17aへ
とりあえずPCと繋いで2つのファイルをコピー

■既存ファイルを上書き
SystemUI.apkの上書きが何でもないが、frameworkーres.apkを上書きした瞬間、起動中アプリが強制終了しまくるので強引に電源ボタン長押しで端末の電源オフする。
再起動後、frameworkーres.apkのパーミッションを644へ変更する。

【結果】
screenshot_2012-01-07_2127

【ST17a】Xperia activeのFomaプラス対応化

2012 1月 7
by shigezo

まずはRoot_Unroot_Sonyで、サクっとRoot化したST17a。
次は、Fomaプラス対応化ってことで、メモ。
なお、北米版Xperia active (ST17a)でなければ、そもそもFOMAプラスには
対応できないようです。(グローバル版のST17iは×)


===【提供情報 2012/1/8】=========================
上記の方法でFOMAプラス対応化を行うと、プリインストールされている
「フラッシュ」アプリが機能しなくなるそうですし、なりました。
ただ、普通にカメラ撮影時のフラッシュは問題なく点灯するので、
極論、自分には問題ないです。
「フラッシュ」アプリが重要な方は、また別の方法を探してください。

===【注意情報 2012/1/21】=========================
SEUSで最初に初期化したらダメです。
最新ファームではRoot奪取の穴が塞がれてしまってます。
※ベースバンドバージョンの最後が”-64″になってたらアウト。(“-54″までセーフ)

■SEUSをPCへインストール

■SEUSでST17aをアップデート

■PCにダウンロードされたファームウェアをコピー
※試した環境では、以下の場所にあった
FILE_278020564 (サイズは66KB)
C:\Program Files (x86)\Sony Ericsson\Update Service\db\13740270\blob_fs\FILE_278020564

■ConvertTool.zipをダウンロード
http://forum.xda-developers.com/showthread.php?t=730282

■ConvertTool.zipを解凍し、できたフォルダ内にコピーした「FILE_278020564」をペースト

■DOS窓で、以下のコマンドを実行

H:\Xperia\ConvertTool>SeusDecrypt.bat FILE_278020564

FILE_278020564.tgzが作成される

■作成されたFILE_278020564.tgzを7-Zipで解凍する
FILE_278020564.tarが作成される

■FILE_278020564.tarをloader.sinへリネーム

■Xperia arc(ST18i)のファームウェアからamss_fs.sinを取り出す
http://forum.xda-developers.com/showthread.php?t=1253112
ここからST18i_4.0.A.2.368_GENERIC_(1248-9545).ftfをダウンロードして
拡張子をZIPへ変更し解凍する。
解凍したフォルダからamss_fs.sinをコピー

■loader.sinとamss_fs.sinを任意のフォルダに設置

■FlashToolを起動して「Advanced」→「Bundle Creation」を選択し、
2つのファイルを設置したフォルダを指定。
farmware content側へ2つのファイルを設定
※DeviceやVersionなどは適当でOKみたい

■上記の設定をすると以下のログが出力される

07/023/2012 01:23:40 - INFO  - <- This level is successfully initialized
07/023/2012 01:23:41 - INFO  - Starting adb service
07/030/2012 01:30:38 - INFO  - Starting bundle creation
07/030/2012 01:30:38 - INFO  - Adding amss_fs.sin to the bundle
07/030/2012 01:30:38 - INFO  - Adding loader to the bundle
07/030/2012 01:30:38 - INFO  - Finished bundle creation

■ROM焼き
Flashボタンを押して、電源OFFのST17aをボリュームダウンボタンを押しながらPCへ接続する。

07/040/2012 01:40:29 - INFO  - Preparing files for flashing
07/040/2012 01:40:52 - INFO  - Searching for Xperia....
07/040/2012 01:40:52 - INFO  - Found at USB\VID_0FCE&PID_ADDE\5&2A31152F&0&1
07/040/2012 01:40:52 - INFO  - Start Flashing
07/040/2012 01:40:52 - INFO  - Sending loader
07/040/2012 01:40:54 - INFO  - Loader sent
07/040/2012 01:40:54 - INFO  - Flashing amss_fs.sin
07/040/2012 01:40:54 - INFO  - Flashing finished.
07/040/2012 01:40:54 - INFO  - Now unplug the device and power it on
07/040/2012 01:40:54 - INFO  - Then go to application settings
07/040/2012 01:40:54 - INFO  - turn on Unknown Sources and Debugging

このあたりのログが出力されて終了。

■ST17aを再起動し、*#*#7378423#*#*をダイヤルする
「Service info」→「Configuration」を選択
“Working band/s”項目に”UMTS_BC6“が新たに追加されていれば成功

【対応前】

before

【対応後】

after

【Linux】今更のSSL導入

2011 12月 31
tags: ,
by shigezo

「まぁ、おいおいで。。。」としてスッカリ忘れていた自鯖へのSSL導入メモ。

■ mod_sslのインストール

# yum -y install mod_ssl

■ 秘密鍵&証明書作成

# cd /etc/pki/tls/certs/
# make server.crt
umask 77 ; \
 /usr/bin/openssl genrsa -des3 1024 > server.key
Generating RSA private key, 1024 bit long modulus
............................++++++
..................................................++++++
e is 65537 (0x10001)
Enter pass phrase:
Verifying - Enter pass phrase:
umask 77 ; \
 /usr/bin/openssl req -utf8 -new -key server.key -x509 -days 3650 -out server.crt -set_serial 0
Enter pass phrase for server.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:JP ←国名
State or Province Name (full name) [Berkshire]:Fukuoka ←都道府県
Locality Name (eg, city) [Newbury]:Hakata-ku ←市区町村
Organization Name (eg, company) [My Company Ltd]:www.cozzbox.com ←サイト名
Organizational Unit Name (eg, section) []: ←所属組織名(とりあえず空)
Common Name (eg, your name or your server's hostname) []:www.cozzbox.com ←Webサーバ名
Email Address []:example@cozzbox.com

■ 秘密鍵からパスワード削除

# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:
writing RSA key

※削除しないとApache再起動毎にパスワード入力が必要

■ SSL設定

# vi /etc/httpd/conf.d/ssl.conf
 
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
↓書換え
SSLCertificateFile /etc/pki/tls/certs/server.crt
 
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
↓書換え
SSLCertificateKeyFile /etc/pki/tls/certs/server.key
 
#DocumentRoot "/var/www/html"
↓コメント削除
DocumentRoot "/var/www/html"
 
#ServerName www.example.com:443
↓コメント&編集
ServerName www.cozzbox.com:443

■ Apache再起動

# service httpd restart

【PHP】Fatal error: Allowed memory size of ……

2011 12月 22
by shigezo

そこそこ大きなCSV出力をした際、以下のようなエラーにあった時のメモ。
基本的にメモリ気にしないでいいのがPHPなんだろーけどなぁ。。。

Fatal error: Allowed memory size of 16777216 bytes exhausted 
(tried to allocate 8965128 bytes) in ・・・・<<省略>>

メモリ不足なんで、php.iniの”memory_limit”を増やしましょう。
http://jp.php.net/manual/ja/ini.core.php

スクリプトが確保できる最大メモリをバイト数で指定します。
この命令は、 正しく書かれていないスクリプトがサーバーのメモリを食いつぶすことを
防止するのに役立ちます。 
もし、使用可能メモリに制限を設けたくない場合は、ここに -1 を指定してください。

“-1″の指定で制限かけないんですって。
んー、危険!

【PostgreSQL】DBスクリプトを出力する

2011 12月 2
by shigezo

掲題のとおりなメモ。
定義書の無いDBを調査機会があったので。

【環境】
Windows 7 (64bit)
PostgreSQL 8.2

コマンドプロンプトでPostgreSQLインストールDirのbinへ移動し、次のようにコマンド実行するだけ

pg_dump.exe -U postgres -f C:\schema.sql -F p -v -s 出力したいDB名

上記の例だと、Cドライブ直下にschema.sqlで出力される。

【OpenLayers】Addinsの追加手順 (Try&Error版)

2011 10月 11
by shigezo

OpenLayersのAddins追加について調べた時のメモ。
※とにかくOpenLayersって情報全然なくて困る。。。。

OpenLayers Addins
http://trac.osgeo.org/openlayers/wiki/Addins

【環境】
Windows XP sp3
OpenLayers 2.11-rc3
Python 2.5.4

【追加Addins】
Swipe Control
http://trac.osgeo.org/openlayers/ticket/2886

Swipeサンプル
http://dev.openlayers.org/sandbox/bjornharrtell/swipe/examples/swipe.html
※”Activate Swipe Control”をチェックするとSwipeが機能する模様
※OpenLayers-2.10を使っているようで、GoogleMaps利用時のバグがでている(ポップアップ)


Addinsについては、オフィシャルの英文解説をちゃんと読解できればいいのだろうが、今なお英語の能力がない僕の試行錯誤の結果なので、情報の精度については注意してもらいたい。
※余計な事をやってたり。。。

■Addinsを入手

Addinsサイトから"Swipe.js"をダウンロード

■OpenLayers内へ設置
設置場所:\OpenLayers-2.11-rc3\lib\OpenLayers\Control\

ダウンロードしたSwipe.jsをOpenLayersへ配置する

■ライブラリ定義ファイル?を編集
対象ファイル:\OpenLayers-2.11-rc3\lib\OpenLayers.js

 
<< 省略 >>
 
if(!singleFile) {
    if (!jsFiles) {
        jsFiles = [
            "OpenLayers/BaseTypes/Class.js",
            "OpenLayers/Util.js",
            "OpenLayers/BaseTypes.js",
            "OpenLayers/BaseTypes/Bounds.js",
            "OpenLayers/BaseTypes/Date.js",
            "OpenLayers/BaseTypes/Element.js",
            "OpenLayers/BaseTypes/LonLat.js",
            "OpenLayers/BaseTypes/Pixel.js",
 
              << 省略 >>
 
            "OpenLayers/Control/Swipe.js",  ← 追加
 
             << 省略 >>

■OpenLayersをビルド
どのAddinsのインストール手順をざっくり読んでみても”build tool”でビルドしろみたいなことばっかり。。。。なんだbuild toolって!
と、思いきや何てことない。
OpenLayersの中にbuildフォルダがあった。

実行ファイル:\OpenLayers-2.11-rc3\build\build.py
http://trac.osgeo.org/openlayers/wiki/Profiles

ターミナルからビルド処理ファイルを実行
 
 > build.py full
 
引数のfullは、設定ファイル"full.cfg"の読込指定
出力は以下のとおり
 
<< 省略 >>
 
Total files merged: 271
Compressing using jsmin
Adding license file.
Writing to OpenLayers.js.
Done.

カレントディレクトリに”OpenLayers.js”が作成されるので、これを現在のOpenLayers.jsと差し替えればOK
※lib直下のOpenLayers.jsでなく、OpenLayers-2.11-rc3直下のOpenLayers.jsと差替
※Python 3.**ではビルド処理中にエラーが発生するのでver 2.5.*で実行する

上記で作成したOpenLayers.jsを使うことで、Swipe Controlが使えるようになった。

↑結果オーライ!
試行錯誤の結果だが機能を実装できたことが重要ってことで。