2016年4月16日土曜日

災害時の安否確認について

熊本での地震発生を受けて某無料通話アプリ会社が被災地への10分間無料通話を開始した

通信っていうのは専用Lineを通信会社毎に持っている訳ではなくて、皆が同じケーブルを通る
経路は複数有るけど全体の通信料は限られている
そこで問題になってくるのは通話の通信量で、Line通話は大体1分で0.5MB程掛かるらしい
10分フルフル使ったら5MB
それに比べてメールは100文字で0.01MB程度

単純計算すると
熊本県の世帯数は約70万世帯
70万世帯に対して1分間通話すると350GB
10分話すと3.5TB
メールやと送信と受信の2通送ったとして14GB
10通送ったとしても70GB
非常時こそ通話を控えるべきとご理解頂けると思います

固定電話しかお持ちでない方へは電話するしかいないですけど

一秒でも早く肉声を確認したい気持ちは解るが
残念ながら肉声に似た音声であって、肉声ではないです
通話機のマイクで集音された音声は電気信号に置き換えられ、相手先のスピーカで再生されるだけ

安否確認は文字で行おう

2016年4月15日金曜日

熊本での地震について

昨夜の熊本での地震を受けてOSMではHOTのタスクが立てられました
特に被害の大きい益城町を中心に地域を升状に分けています
地図職人の皆さん、衛生写真を見ながら地図を描きましょう
緊急事態とは言え、決して他所の地図は写さない様に

ウェブの地図サービスは非常に便利ですが、(個人且つ非営利の場合を除いて)印刷は有料でオフラインで使用出来ない等の制限が有ります
グーグルマップのオフライン版って無いですよね?
これは地図会社の資産を利用しているので当然です

又、日本の様な先進国では無料のWeb地図は当たり前の様に使えますが、途上国の地図を見てみると良くて大都市周りだけで、少し郊外に出るとほぼ白紙というのが現状です
例えばネパール地震の震源近くの地図をグーグルマップでご覧下さい
理由は簡単で需要が無いから供給も無い、それだけの事です

さて、この様な地図の状況で途上国で災害が発生した場合、救援支援活動ではどの様にして地図情報を共有すれば良いでしょうか?
手書きの地図や口頭で伝えたりしか地図情報を共有出来ないので、現地の赤十字国境なき医師団等めっちゃ困るそうです

その様な場合に役立つのがオープンデータのOSMです
今まで口頭や手書きで伝えていた地図をスマホ等の端末で共有出来ます
勿論、無料で印刷出来ます
道路が途切れていれば、地図上の道路を切断する事が出来ます
家が流されていれば、地図上の家を消す事が出来ます
線路が復旧すれば、地図上の線路を描き足す事が出来ます
何故ならオープンデータだから
例えばネパール地震の震源近くの地図をOSMでご覧下さい

東日本大震災でもネパール地震でもOSMが一役買っています
sahanasinsai.info等の災害支援サービスでも使われています

OSMは災害時だけ使えるという訳ではないんですが…今回はその一例として紹介しました

さぁ、皆さん自宅で出来る被災地支援
地図を描きましょう

2016年4月14日木曜日

LibreOffice Writerの行間

リブレオフィスのライタは殆ど使った事が無いので…嵌った事をメモログ

文書の行間を狭くし様と思って、書式 > 段落の所を色々変更してみてんけど
段落ウィンドウのインデントと行間隔タブ
全く反映されません…
幾ら値を変更しても行間を変更できないんです
何でかなぁ…と思って色々調査した結果ページスタイルと設定が競合してた事が原因でした
ページウィンドウの行数と文字数タブ
ページスタイル行数と文字数指定が選択されてた場合、段落行間の設定は無視されるらしい
幾ら行間を広げようが狭めようが、ページ単位の行数で決められた値になる様です
ページスタイル行数と文字数指定なしを選択する事で段落行間の設定が有効になりました
個人的にはバグっぽいなぁ…行数を指定して行間を変更したい場合はどないすんねん

反映されへん(ページスタイルの設定が優先される)なら、ページスタイル行数と文字数指定が選択されてた場合は段落行間は無効(Disable)にしといて欲しいわ

環境 LibreOffice 5.0.5.2 for Linux 32bit

オープンソースの活用について

仕事柄NPOや非営利団体の方々とお仕事する事が多いです
こういうボランティアとか非営利の人達って熱意は凄い有んねんけど、ITにはほんまに疎い(個人の感想です)

僕がこの仕事を始めた切掛でもあんねんけど、機械(PC)を持ってんねんから、便利機能を使い倒してもっと効率良く貢献せな勿体ない
  •  (今、手作業で頑張ってはる)それ、簡単に出来ますよ~
  •  アップデート何それ?
  •  何か出たけど消してもうた!さっきの何?
というのがこのお仕事あるある

で、そういう人達はほぼ例外なく高性能PCを使って業務を頑張っていらっしゃる
理由としてはこういう所で正規品がお安くお買い求め頂けるんだと

うん、確かにそれも一つの手やね
それも一つの手やねんけど、その場合
お安く買い続けなあかんのよね
塵も積もれば結構な額になります

そこで僕がいつも提案しているのが、OSS(フリーソフトも含めるとFLOSS)の採用

例えば有名なんやと
中には聞いた事の有る名前も有るでしょう
ちなみにAndroidiOSもOSSのLinuxやUnix( BSD)を基に開発されてます

当たり前の事やけど商用製品の場合、ライセンスの形態がOSSに比べて厳しい
例えばIllustratorを団体で一つ購入したからといって、団体内の前PCにインストールして使って良ぇ訳ではない
必ず使用するPC毎にお買い上げ下さい

最近のPCは物凄く高性能なってて、普段の業務中にCPUを100%使い切る事って殆ど無い
ほな高性能のPCを奮発して一台買うて、余った性能を皆で使い回せばお得よね、という考えが出て来る(資源の節約にもなるし)
これが仮想化という技術で実現出来まして、簡単にいうとPCの中にOSをインストールしてあたかも複数のPCが有る様に構築する技術です
この場合でも仮想化毎にインストール毎に必ずお買い上げ下さい

そうすると、例え割安でも積み上がって結構なお値段になってしまいます…
でもOSSなら100台のPCにインストールしても購入費は無料です

当然、OSSかて万能ではない
ボランティアが作っている物なんで、何も保証せぇへんし、品質面で言えば商用製品には及ばない
日本語化されてへん所が有ったり、2日間起動しっ放で急にクラッシュなんて事も有る
同じ機能を有している訳ではないので出来てた事が出来へん場合も有る
普及率も低い

でも、まぁ騙されたと思って使ってみて下さいよ、無料やし、皆さんと同じボランティアが作ってくれてるんですよ~と言って僕はお薦めしている
実際使って頂くと、日本語化されてへん所の機能は使わへんし、09:00-17:00で帰るんでクラッシュにはお目に掛からへんかったりする
要はほぼ問題ないって事
大規模な業務で高い品質を求められる環境には適さへんかもやけど(企業自治体等での導入も聞くけど、僕にはそんな実績無いです)、少なくとも僕の周りのPTAとかボランティアとかNPOとか市民団体に於いては無問題

勿論、移行にはそれなりに手順や業務が発生します
○○で出来てた物が●●では出来へんねん…代わりにこっちでどない?
という事になります

良かったら使ってみて下さいオープンソース

2016年4月8日金曜日

Scratch2をUbuntuにインストール

Ubuntu上でScratch2を動作させる場合はAdobe Air上で動かす
なので、先にAirをインストールしとく必要が有る
しかしマニュアル通りにインストールしても途中でrootのパスワードを求められ、進めない…
なので、インストール時のコマンドをsudoで実行する

アップデートの際も一緒
sudo /opt/Scratch\ 2/bin/Scratch\ 2
でスクラッチ起動して、アップデート中にパスワードを求められない様にする

LibreOfficeBasicの配列

リブレオフィスベーシックで配列の要素数を指定せずに定義すると

Dim a( ) As String
Print Ubound( a( )) '-1
Dim b( 0) As String
Print Ubound( b( )) '0

環境 LibreOffice 5.0.5.2 for Linux 32bit

2016年4月7日木曜日

LibreOfficeBasicの開発

リブレオフィスで開発する際
SubやFunction単位で実行するには
LibreOfficeBasicIDEのエディタでカーソルを合わせてF5押下

但し、引数が有る場合はエラーになるので引数無しの場合に限る
使い難いかもしれんけど、ちょっとしたコードの動確には最適
エクリプスのスクラップブックみたいに使える

LibreOfficeBasicのprint

LibreOfficeBasicでデバッグする際printを重宝する
今のところ、標準のBasicIDEでは変数単位ぐらいでのウォッチしか対応しておらず、演算子を含んだ複雑なウォッチには未対応

で、Printでウォッチせざるを得ない訳やけど
    Print "A" & Chr( 10) & "B"
の様に改行を含む場合は二回メッセージボックスが出る
Printは出力関数なので一行単位なのね
一回で表示したい場合は
    MsgBox( "A" & Chr( 10) & "B")

ちなみにPrintのメッセージボックスのキャンセルボタン押下でマクロ強制終了になる

環境 LibreOffice 5.0.5.2 for Linux 32bit

LibreOfficeBasicの置換

リブレオフィスで文字列を置換する場合
ヘルプには未記載やけどReplase関数が有る
使い方は
Replace( 文字列, 検索文字列, 置換文字列)
で置換後文字列を返す

環境 LibreOffice 5.0.5.2 for Linux32bit

LibreOfficeBasicの構文

リブレオフィスで
tmpSheet.getCellRangeByPosition( 0, 0, cursor.getColumns.Count, cursor.getRows.Count).sort( sortPty( ))
というコードが有る場合
tmpSheet.getCellRangeByPosition( 0, 0, cursor.getColumns.Count, cursor.getRows.Count). sort( sortPty( ))
とか
tmpSheet.getCellRangeByPosition( 0, 0, cursor. getColumns.Count, cursor.getRows.Count).sort( sortPty( ))
みたいにドット(ピリオド、ポチ)の前後にスペース(ブランク) を入れるとコンパイルエラー
あかんらしい

環境 LibreOffice 5.0.5.2 for Linux 32bit

LibreOfficeBasicのMid( )

LibreOfficeBasicのMid( )関数の第二引数に0を指定するとRuntimeError
1以上やないとあかんらしい