Wednesday, August 15, 2012

How to Control GIMPをPythonで自在に操る

(このページは「Part3 フリーの画像ソフトGIMPをPythonで自在に操る」のコピーです。サーバーの変更による内容の消失を防ぐためです)

Part3 フリーの画像ソフトGIMPをPythonで自在に操る

2009/02/25
増田 泰
出典:日経ソフトウエア 2008年8月号  pp.62-67
(記事は執筆時の情報に基づいており、現在では異なる場合があります)
日経ソフトウエア2008年8月号にて掲載した「マクロで始める実用プログラミング」をお届けします。Partごとにアプリケーションを定め、プログラミング言語を用いて操作したり、機能を追加したりします。また、2009年4月号においても、Excel/VBAの徹底活用法を紹介しています。
※ 記事は執筆時の情報に基づいており、現在では異なる場合があります。
GIMP(The GNU Image Manipulation Program、ギンプ)はオープンソースのフォトレタッチ・ソフトです。もともと、UNIXやLinux用のアプリケーションであり、多くのLinuxディストリビューションで収録されています。今ではGIMPは、WindowsやMac OS Xでも動作します。
 GIMPは無料で使えるソフトとしては驚くほど多くの機能を備えています。画像の切り取り、拡大/縮小といった簡単な操作から、ホワイト・バランスの自動調整、赤目の自動補正、レイヤーを使った画像編集、画像中の色成分の分布を表したヒストグラムの操作まで対応します。個人で使うレベルなら必要十分な機能を持っていると言えるでしょう。
 そして、この特集で紹介しているほかのソフトと同じように、GIMPも「Script-Fu」というマクロの実行環境を備えています。Script-Fuのマクロ記述言語はScheme(スキーム)という言語です。SchemeはLISP(リスプ)から派生した関数型言語で、LISPと同様にカッコ「( )」を多く使った記法が特徴です。
 しかし、LISPやSchemeの独特な書き方や考え方のために、とっつきにくさを感じている人は多いのではないでしょうか。そこで、本稿ではGIMPがオプション機能として用意している「Python-Fu(GIMP Pythonと呼ぶこともある)」を利用したマクロ・プログラミングを解説します。
 Python-Fuは、動的型付け言語の一種であるPython(パイソン)で記述したマクロをGIMPで実行する環境です。日本では動的型付け言語といえばRubyが有名ですが、Pythonもなかなか使いやすい言語です。
 Pythonは文法として覚えなければならないことが少ない言語です。一方で、ライブラリが充実していて、ほんの小さなプログラムで複雑な処理を簡単に実現できます。
 Pythonの有名な特徴の一つに「インデント(字下げ)」があります。多くの言語では、インデントにはコードの見通しを良くする程度の意味しかありませんが、Pythonでは、インデントがプログラムのブロック構造を表しています。正しくインデントしないと、プログラムが動かないのです。美しく書くことが正しいプログラムにもつながるという点では、プログラミングの学習に向いた言語の一つと言えるでしょう。

Python-Fuを使うための準備

本稿では、Windows版GIMPを使って、Python-Fuのマクロを作ります。Python-Fuのスクリプトは、OSが異なっても動作することが多いので、Mac OS XやLinuxを使われている方にも参考になると思います。
 Windows版GIMPでPython-Fuを使うには、ちょっと準備が必要です*1。もちろん、GIMP本体をインストールしなければ始まらないのですが、その前に四つほどソフトをインストールする必要があります。
 一つ目は、Windows用のPython実行環境です。これは、Pythonの公式Webサイトで入手できます。本稿では、2008年6月中旬の時点で最新版となるバージョン2.5.2を使います。ダウンロード・サイトを開いたら、「Python 2.5.2 Windows Installer」のリンクをクリックして、インストーラをダウンロードします。Python実行環境のインストールには特別難しい部分はありません。
 次に、PythonからGIMPの構成要素を操作するライブラリを三つインストールします。グラフィックス描画機能を提供するフリーのライブラリ「cairo」をPythonから操作する「PyCairo」と、様々な環境で動作するGUI(Graphical User Interface)部品を提供するライブラリ「GTK+(The GIMP Toolkit)」をPythonから操作する「PyGObject」「PyGTK」です。三つとも、PyGTKのダウンロード・サイトでインストーラをダウンロードできます。

How to choose a safe password パスワードをハックされないためには

    よくありがちのパスワードは以下の通りだと言われます。最後の単語うは西洋人の習慣ですが、日本人なら、Taro、sachikoなどでしょうけど。
配偶者、子供あるいはペットの名前。または0と1を後ろに付ける
保険証や運転免許などの最後の4ケタ番号
123、1234あるいは123456.
“password”
住まいの都市、大学、好きな球団のチーム名
誕生日。本人、配偶者あるいは子供のものを含む
“god”
“letmein”
“money”
“love”
    以上のルールに従わない暗証番号を使っても、大体の人は同じパスワードを使いまわします。それで、オンラインサービスの中で、金融関係は厳しい体制が整っているのでハッキングされないが、Brutuswwwhack, or THC Hydraなどハッキングツールで、セキュリティのより弱いサービス、例えばオンラインショッピングのギフトカードサービス、をアタックすれば、簡単にパスワードを破られることもあります。
    ハッカーたちは大体上記のロボットツールを使います。そのような手にやられないため、大文字や、「@#$%^&*)」のような特殊文字を使うのはお勧めです。また、組合せの数を考えると、当然ながら長ければ長いほど、破られにくいです。例えば、8文字のパスワードを使う場合、小文字の英文字だけを使うと、2.24日で破られるに対して、大文字と「*」をそれぞれ一つ使うと、210年もかかってしまいます。

参考リンク
 Here’s How Easily A Hacker Can Crack Your Weak Passwords

Vietnam Agent Orange ベトナムの枯れ葉剤問題

    米軍によってベトナム戦争で沢山散布された枯れ葉剤(Agent Orange)は数十年経ってからも、いまだに人々に害を与えてつけています。その悪のもとであるアメリカ政府は、その解決の責任から逃れようと同じ数十年も「努力」し続けてきました。
    しかし、最近突然アメリカ政府から、数千万ドルを出資して、被害面積のわずか一部について、枯れ葉剤の主成分であるダイオキシン(猛毒!)除去作業を開始しました。
    何故でしょうか?いったい何が起きて、アメリカ政府の重い腰を動かせましたでしょうか。
    それは、何も中国政府の「最近南シナ海問題での対中牽制でも利害一致」しているからのは一因だそうです[1]。
     悲しいことに、人命も、人の健康などは政治の手札に使われたり、それによって左右されたりするのは、いつまで経っても、どの政府も同じです。ベトナムにおける枯れ葉剤問題は、誰にとっても分かりやす過ぎることです。しかし、正義の象徴と自負しているアメリカ政府は堂々とそれを否定してきました。また、そうことをして置きながら、平然とほかの国の是非を正々堂々と論じてきています。
    何もここで反米運動を起こそうとしているわけでもなんでもないので、誤解をしないでほしいです。簡単にメディアの事を信じて、あるいはメディアを操って当事者にとって好都合なメッセージを信じ込むのはよくないことを言いたいです。
    明らかな矛盾を簡単に見抜く知識と努力が常に必要です。

参考リンク
[1] ベトナムの枯れ 葉剤 / ダイオキシン問題 ――解決の日はいつ
[2] Vietnam Agent Orange Relief & Responsibility Campaign
[3] ベトナム 米越合同の枯葉剤汚染除去作業始まる 深まるアメリカとの経済関係
アメリカに「正義」はあるのか?
4%B1%E3%83%BB%E6%AD%A3%E7%BE%A9%E3%83%BB%E6%80%9D%E6%83%B3">アメリカの自由・正義・思想
アメリカは本当に正義の国なのでしょうか

Monday, August 13, 2012

Secret Hack Codes for Android Mobile Phones 電話の秘密コード


1.電はに関するすべての情報
 *#*#4636#*#*
2.出荷データリセット
 *#*#7780#*#*
 グーグルアカウント設定、システムとアプリケーションデータと設定、ダウンロードしたアプリケーションはすべて消去されます。
3.Android電話をフォーマットする
 *2767*3855#
 すべてのファイル(内蔵メモリにあるものをふくめて)や設定を消去し、電話のファームウエアを再インストールする
4.電話カメラのアップデート
 *#*#34971539#*#*
5."End Call/Power"ボタンの変更
 *#*#7594#*#*
 直接電源をオフできるように変更できる
6.バックアップのためのファイルコピー
 *#*#273283*255*663282*#*#*
7.サービスモード
 *#*#19732864#*#*
8.WLAN,GPS,Bluetoothテストコード
 WLAN test
 *#*#232339#*#*
 *#*#526#*#*
 *#*#528#*#*

 WiFi MACアドレスを表示
 *#*#232338#*#*

 GPSテスト
*#*#1472365#*#*
*#*#1575#*#*

Bluetooth テスト
*#*#232331#*#*

Bluetoothのデバイスアドレスを表示
*#*#232337#*#

9.ファームウエアバージョン情報について

PDA, 電話, ハードウエア, RFCallDate
*#*#4986*2650468#*#*

PDA と電話
*#*#1234#*#*

FTA ソフトウエア バージョン
*#*#1111#*#*

FTA ハードウエア バージョン
*#*#2222#*#*

PDA, Phone, CSC, Build Time, Changelist number
*#*#44336#*#*

10. 各種の工場向けテスト

Packet Loopback
*#*#0283#*#*

LCD テスト
*#*#0*#*#*

メロディテスト
*#*#0673#*#*
*#*#0289#*#*

デバイステスト(バイブ、バックライト)
*#*#0842#*#*

タッチスクリーンテスト
*#*#2663#*#*
*#*#2664#*#*

近接センサー
*#*#0588#*#*

RAMバージョン
*#*#3264#*#*
 

Tuesday, August 7, 2012

GPS Data Format NMEA-0183 位置情報ロガーデータフォーマット

    GPSロガーで自分の足跡を記録した後、手元のツールで色々と加工してみたくなります。それで、その肝心はデータフォーマットを知らないととどうしようもありません。
    一番元祖なのは、アメリカ発のNMEA-0183というフォーマットです。これはASCIIのテキストで、とても加工しやすいものです。
    以下はそのフォーマットの詳細です。デバイスによっては、その一部しか出力しないものもあります。基本的に、$GPRMC、$GPGGA、$GPGSA、$GPGSV、$GPVTG、$GPWPLという6種類のデータレコードしかありません。
    ほかのデータフォーマットへの変換はGPSBabelというパブリックドメインの無料ソフトウエアで行えます。

$GPRMC

センテンス例:
$GPRMC,085120.307,A,3541.1493,N,13945.3994,E,000.0,240.3,181211,,,A*6A
単語例説明意味
085120.307協定世界時(UTC)での時刻。日本標準時は協定世界時より9時間進んでいる。hhmmss.ssUTC時刻:08時51分20秒307
Aステータス。V = 警告、A = 有効ステータス:有効
3541.1493緯度。dddmm.mmmm
60分で1度なので、分数を60で割ると度数になります。Googleマップ等で用いられる ddd.dddd度表記は、(度数 + 分数/60) で得ることができます。
緯度:35度41.0450分
N北緯か南緯か。N = 北緯、South = 南緯北緯
13945.3994経度。dddmm.mmmm
60分で1度なので、分数を60で割ると度数になります。Googleマップ等で用いられる ddd.dddd度表記は、(度数 + 分数/60) で得ることができます。
経度;139度45.2337分
E東経か西経か。E = 東経、West = 西経東経
000.0地表における移動の速度。000.0~999.9[knot]移動の速度:000.0[knot]
240.3地表における移動の真方位。000.0~359.9度移動の真方位:240.3度
181211協定世界時(UTC)での日付。ddmmyyUTC日付:2011年12月18日
磁北と真北の間の角度の差。000.0~359.9度
磁北と真北の間の角度の差の方向。E = 東、W = 西
Aモード, N = データなし, A = Autonomous(自律方式), D = Differential(干渉測位方式), E = Estimated(推定)モード:自律方式
*6Aチェックサムチェックサム値:6A

$GPGGA

センテンス例:
$GPGGA,085120.307,3541.1493,N,13945.3994,E,1,08,1.0,6.9,M,35.9,M,,0000*5E
単語例説明意味
085120.307協定世界時(UTC)での時刻。日本標準時は協定世界時より9時間進んでいる。hhmmss.ssUTC時刻:08時51分20秒307
3541.1493緯度。dddmm.mmmm
60分で1度なので、分数を60で割ると度数になります。Googleマップ等で用いられる ddd.dddd度表記は、(度数 + 分数/60) で得ることができます。
緯度:35度41.0450分
N北緯か南緯か。N = 北緯、South = 南緯北緯
13945.3994経度。dddmm.mmmm
60分で1度なので、分数を60で割ると度数になります。Googleマップ等で用いられる ddd.dddd度表記は、(度数 + 分数/60) で得ることができます。
経度:139度45.2337分
E東経か西経か。E = 東経、West = 西経東経
1位置特定品質。0 = 位置特定できない、1 = SPS(標準測位サービス)モード、2 = differenctial GPS(干渉測位方式)モード位置特定品質:SPS(標準測位サービス)モード
08使用衛星数使用衛星数:8個
1.0水平精度低下率水平精度低下率:1.0
6.9アンテナの海抜高さアンテナの海抜高さ:6.9[m]
M[m]メートル
35.9ジオイド高さジオイド高さ:35.9[m]
M[m]メートル
DGPSデータの最後の有効なRTCM通信からの時間。空 = DGPS不使用DGPS不使用
0000差動基準地点ID差動基準地点ID:0000
*5Eチェックサムチェックサム値:5E

$GPGSA

センテンス例:
$GPGSA,A,3,29,26,05,10,02,27,08,15,,,,,1.8,1.0,1.5*3E
単語例説明意味
Aモード。M = 手動、A = 自動モード:自動
3特定タイプ。1 = 存在しない。2 = 2D特定。3 = 3D特定特定タイプ:3D特定
29,26,05,10,02,27,08,15,,,,,衛星番号。最大12個列挙。衛星番号:29,26,05,10,02,27,08,15,,,,,
1.8位置精度低下率位置精度低下率:1.8
1.0水平精度低下率水平精度低下率:1.0
1.5垂直精度低下率垂直精度低下率:1.5
*3Eチェックサムチェックサム値:3E

$GPGSV

センテンス例:
$GPGSV,3,1,12,26,72,352,28,05,65,066,37,15,50,268,35,27,33,189,37*7F
 単語例説明意味
3総GSVセンテンス数総GSVセンテンス数:3個
1このセンテンスの番号3個中の1個目のセンテンス
12ビュー内の総衛星数ビュー内の総衛星数:12個
26衛星番号衛星番号:26
72衛星仰角。00~90度衛星仰角:72度
352衛星方位角。000~359度衛星方位角:352度
28C/No(キャリア/ノイズ比)。00~99dBC/No:28dB
05衛星番号衛星番号:05
65衛星仰角。00~90度衛星仰角:65度
066衛星方位角。000~359度衛星方位角:66度
37C/No(キャリア/ノイズ比)。00~99dBC/No:37dB
15衛星番号衛星番号:15
50衛星仰角。00~90度衛星仰角:50度
268衛星方位角。000~359度衛星方位角:268度
35C/No(キャリア/ノイズ比)。00~99dBC/No:35dB
27衛星番号衛星番号:27
33衛星仰角。00~90度衛星仰角:33度
189衛星方位角。000~359度衛星方位角:189度
37C/No(キャリア/ノイズ比)。00~99dBC/No:37dB
*7Fチェックサムチェックサム値:7F

$GPVTG

センテンス例:
$GPVTG,240.3,T,,M,000.0,N,000.0,K,A*08
単語例説明意味
204.3地表における移動の真方位。000.0~359.9度移動の真方位:240.3度
T[True course]True course
地表における移動の磁方位。000.0~359.9度
M[Magnetic course]Magnetic course
000.0地表における移動の速度。000.0~999.9[knot]移動の速度:0.0[knot]
N[knot][knot]
000.0地表における移動の速度。0000.0~1800.0[km/h]移動の速度:0.0[km/h]
K[km/h][km/h]
Aモード, N = データなし, A = Autonomous(自律方式), D = Differential(干渉測位方式), E = Estimated(推定)モード:自律方式
*05チェックサムチェックサム値:05

$GPWPL

センテンス例:
$GPWPL,3568.615,N,13975.967,E,TP0278*41
単語例説明意味
3568.615緯度。dddmm.mmmm 緯度 35度68.615分
N[北緯か南緯か。N = 北緯、South = 南緯北緯
13975.967経度。dddmm.mmmm経度。139度75.967分
E東経か西経か。E = 東経、West = 西経東経
TP0278Waypoint名称Waypoint名:TP0278
*41チェックサムチェックサム値:41

 因みに、上記のGPSBabelでサポートだれているデータフォーマットは以下の通り、ほぼありとあらゆる種類です。
Alan Map500,one tab-separated line, Brauniger IQ Series Barograph, Bushnell GPS Trail, Bushnell GPS Waypoint, Cambridge/Winpilot glider,CarteSurTable, Cetus for Palm/OS, CoastalExplorer XML, Columbus/Visiontac V900,Comma separated values (csv), CompeGPS, CoPilot Flight Planner, cotoGPS, Custom "Everything" Style, Data Logger iBlue747, Dell Axim Navigation System, DeLorme,Destinator Itineraries, Destinator Points of Interest, Destinator TrackLogs, EasyGPS, Embedded Exif-GPS, Enigma, FAI/IGC, Franson GPSGate Simulation, Fugawi, G7ToWin, Garmin, Geocaching,Geogrid-Viewer ascii overlay, Geogrid-Viewer, GEOnet Names Server, GeoNiche, GlobalSat DG-100/BT-335, Google Earth (Keyhole) Markup Language (kml), Google Maps XML (google), Google Navigator Tracklines, GoPal GPS track, GpilotS, GPS TrackMaker, GPSBabel arc filter, GpsDrive, GPSman, GPSPilot Tracker, gpsutil, GPX XML, HikeTech, Holux, Honda/Acura Navigation System, HSA Endeavour Navigator, HTML Output, Humminbird, IGN Rando, iGO2008, IGO8, Jelbert GeoTagger, Jogmap.de, Kartex,KuDaTa PsiTrex, Lowrance, Magellan, MagicMaps, Map&amp, MapAsia, Mapopolis.com Mapconverter, MapTech Exchange Format, Memory-Map Navigator, Microsoft AutoRoute 2002, Microsoft Streets and Trips, Mobile Garmin XT, Motorrad Routenplaner, MS PocketStreets 2002 Pushpin,MTK Logger, National Geographic Topo, Navicache.com, Navigon, NaviGPS, Naviguide, Navitel binary track, Navitrak DNA marker NetStumbler, NIMA/GNI, NMEA 0183 sentences, Nokia Landmark Exchange, OpenStreetMap, OziExplorer, PalmDoc,PathAway, PocketFMS, Quovadis, Raymarine, Ricoh GPS, See You flight analysis, Skymap / KMD150, SkyTraq Venus, Sportsim, SubRip, Suunto, Swiss Map 25/50/100, Tab delimited fields useful for OpenOffice, Ploticus etc., Teletype, Textual, TomTom, TopoMapPro, TrackLogs, U.S. Census Bureau Tiger Mapping Service, Universal csv, Vcard, VidaOne, Vito Navigator II/SmartMap, WiFiFoFum 2.0, Wintec, XAiOX, Yahoo Geocode API

    参考リンク
NMEA-0183センテンス
GPSのNMEAフォーマット

Sunday, August 5, 2012

Athletes and Skin Color 陸上選手と肌色

    オリンピックの実況放送を見て、分かりやすかったのは、(特に陸上)選手の肌色です。100メートル準決勝から決勝になると、ほぼ100パーセント肌色の黒い選手ばかりです。
    ある宗教の教徒ならば、これは神様の意思・設計だと固く信じるに違いないでしょうし、現代科学の信者であれば、DNAの不動の証明だと主張するでしょう。
    深いことを考えなくても、自然の力に反することはいかに難しいかを示されていることだと思います。人種の違いによって、どんなに練習・訓練を重ねても、どんなに先進的な方法に頼っても、成績を上げることはほぼ不可能に近いです。
    失望の挙句、違法な薬品に走る人もいますが、逆にいえば、そうでもしない限り、どうしても無理であることです。勿論、生まれつきで一番得意な人種であっても、人間の限界を超えるために、やはり違法な手段を選ぶ人も後は立ちません。そのつけとしては、早死にをしてしまう人も少なくありません。
    もともとゴルフやテニスのような、精度や反射神経などを用するスポーツは主にマインドコントロールと繰り返しの練習に頼るものです。肉体の限界を超える運動をすることは殆どありません。それに対して、重量挙げや陸上の諸距離競走などは、常に肉体の限界を超える状態で行われ、肉体を破壊し続けています。日常生活の中で、コレステロールやら中性脂肪やらで騒いている割に、スポーツで自殺的な運動を繰り返される弊害については何故か誰も言及しません。
    言ってみれば、スポーツ選手は昔の剣闘士と同じ、その健康や寿命などは誰も気にせず、剣闘士による戦いさえ楽しめて、それによって儲けさえできればよいです。彼らがそれによってどんなに体を壊しても、戦いによって命を失っても、その親族や知人を除けば、それで悲しむ人は誰一人もいません。剣闘士達も、生活のため、より贅沢に暮らせるために、命を掛けています。
    今のスポーツは、ほかでもなく、単純なマネーゲームになってしまっています。マスメディアはあたかも愛国精神であるかのように騒いでいるのは、その放送権の購入費用を取り戻すための努力にすぎません。愛国主義さえ醸し出せれば、視聴者を引きよせて、視聴率を上げられて、スポンサーからの収入を増やせる勘定です。
    ヘッジファンドやベンチャーキャピタルが横行している世の中、もはや不自然なのもになってしまています。色々な経済活動は、自然な法則(あたかも自然・当たり前であるかのように唱えられてはいるが)を無視して行われています。
    自然を尊重し、自然と調和しつつ生き続けていかなければいけません。それを守らないと、いずれ酷い目に遭います。

Browser Frozen when Upload Many Photos to Google+ 大量に写真を選択するとブラウザがフリーズ

    Google+の写真アルバム機能は編集機能が付くのと、容量は無制限(片方サイズは2048画素以下時?)という2点ではいいと思いますが、大量に写真をアップロードするときに酷い目に合うことがあります。
    それは、写真を選ぶときに「ドラッグ・ドロップ」を使う時です。「PCから写真を指定する」機能では問題がありません。しかし、写真を指定するウインドウに、エキスプローラからファイルを選択し、ドラッグ・アンド・ドロップする場合、数が多いとブラウザーが固まってしまいます。多いと言っても、100枚程度だから、実に不思議です。勿論数100枚だと、もっと確実に固まります。
    酷いのは、他のアプリケーションもそれで反応しなくなります。実に困ったサービスです。
    対策としては、格好よくドラッグアンドドロップを使わないと、地道にファイル指定機能でアップロード機能を選択することです。