2018年6月24日日曜日

地図について

あまプロでは地図サービスでOpenStreetMapを使う事が多いです。
乗り換え検索ではGoogleMapを使いますが、チラシ作成やスクリーンショットやデザイン等ではオープンストリートマップを使います。

OSMは15年程前にイギリスで始まった、オープンデータの地図情報プロジェクトです。
簡単に言うと、ウィキペディアの地図版です。

このプロジェクトのおもろい所は、自由に地図が描けますので地図好きには最高のプロジェクトになります。
地図データはODbLのライセンスで使えます。
簡単に説明すると、営利非営利を問わず自由に変更出来ますし、データベースから著作物(地図等)を作れます。但し、データベースはODbLを引き継がなければなりません。

いきなりデータを使うなんて無理やわぁと言う方もご安心!
データベースから生成された地図画像もCCBYSAのライセンスで提供されてます。
簡単に説明すると、営利非営利を問わず自由に変更や使用が出来ます。但し、変更後の地図画像もCCBYSAになります。

縛りが全く無いとは言いませんが、かなり自由度の高い物になります。
例えば、データの方はそのまま地図サービスを提供出来ますし、俗に言う位置ゲーのマップやカーナビやサイコン等にも使えます。
有名所で言えばポケモンGOもOSMを使ってます。facebookの地図もOSMです。ヤフー地図もデフォルトでは有りませんが、地図の種類でOSMの選択が可能です。

地図画像の方も例えば印刷物やスクリーンショットに用いる事が出来ます。
地図画像はCCBYSAに加えて"© OpenStreetMap contributors"というクレジットを地図の何処かに記載する必要が有るのですが、それさえ守れば無料で無断で使えます。
OSMのサイトではこのクレジットは右下に表示されてるので、スクショを撮ると自動的にクレジットが入ります。

自由って言うても何だかんだで縛りが多い…かもしれませんが、一般的な商用のウェブ地図サービスですと更に縛りが多いです。
ウェブ地図サービスの殆どが無料で使えますが、自由に使えるウェブ地図サービスは少ないです。
それは地図サービスのデータが地図会社から提供されている為なのですが、
例えば、日本の無料地図サービスの殆どにダウンロード版(オフライン版)は有りません。
最近は携帯各社のエリアも拡大されていますが、それでも人の少ない場所や人の居ない場所はエリア外になります。
そういう場所で使えるのは当然ダウンロード版のみになります。
OSMにはOsmAndというアプリが有ります。但し、当然ですが地図データをダウンロードするにはそれなりの容量が要ります。

また、ウェブ地図サービスはウェブの外に出ると途端に縛りがきつくなります。
ほぼ使えないと言っても過言ではないです。
詳しくは各サービスの利用規約を読むしか無いのですが、基本は著作権が有りますので、無断使用は著作権侵害になります。
使用には地図会社へ使用料を支払って許諾を得る必要が有ります。

SNSを見てると週一ペースで、無断使用した地図が流れてきます。
こんな感じで。
残念ながら役所の印刷物にも多いです。先日、役所の面接の案内にウェブ地図を無断印刷して有りました…。
個人で使うには問題無いですが、ウェブ地図サービスのスクショや印刷物を無断で外部へ配るのは著作権侵害になります。

良く、地図をそのまま使うのが駄目なら自分で描きます、といって地図をトレース(下書きに使う)して自作したと言う方が居ます。
それは自作ではなく盗作です。

参考にするだけなら問題無いでしょ、と言って略地図を描く人も居ます。
例えば、良識の有る人がピカチュウを参考(パクった)にしたペカチュウを堂々とパンフレットに載せるでしょうか?
まともな団体なら載せないと思います。載せた所は倫理を疑われます。
ですが、それが地図の場合皆さん疑わずに受け入れてしまうねんな…これほんま不思議。
地図もキャラクタも記事もロゴマークもテレビ動画も同じ著作物でやで。

地図会社の地図は莫大な予算を掛けて、様々な調査をして高精度な地図を作成しています。
その成果を利用したいのであれば、使用料を支払うべきです。
高精度の地図でなくても構わなければ無料のOSMを使えば良ぇと考えます。
それが嫌なら何も見ずに地図を描きましょう。するとあなたはきっと自分の描いた地図の出来の悪さに驚き、ついつい他所の地図をチラ見してしまう事でしょう(¬_¬)
それも嫌なら地図を載せるのは控えましょう。

偶に、著作権侵害は親告罪なので、著作者でない人が声を上げるのはおかしいという意見が有ります。
親告罪には違いないです。単独の強姦や名誉毀損も親告罪です。
言われなければ罪にならなのは確かにそうですが、そこから先は個人の倫理観にお任せします。

OSMは自由度の高い地図データを提供してますので、そのデータを利用した様々なプロジェクトが派生しています。
  • Wheelmap   道路や施設が車椅子対応しているかの登録表示に特化したサービス
  • F4map    3D表示に特化したサービス(但し端末に3D表示機能が要ります)
  • uMap     地図に道案内線や吹き出し等の書き込みに特化したサービス
  • OpenLevelUp! 施設内の階表示に特化したサービス
  • OpenPoiMap 標準のタイルに表示されないPOI(地物)の選択表示に特化したサービス
           例えばAEDマップとか消火栓マップとかを作れます
  • OSMjp    標準のタイルには載らないけど、日本で要望の多い表示に特化したサービス
どれも尼の同じ場所を表示したリンクを貼り付けてますので、違いをお楽しみ下さい。

OSMを色々と紹介しましたが、もし興味を持たれた方は是非参加してマッパー(地図職人)になってみて下さい。
メールアドレス一つ有ればマッパー登録が可能です。
地元や旅行先の地図等、色々描いてみて下さい。ハマる人はハマる…筈。
注意点としては他所の地図を写さない事。これは厳禁です。
詳しくはまた次回の投稿で紹介しようと思います。

また尼限定ですが、あまプロではCodeforAmagasakiと連携して、毎年インターナショナルオープンデータデイみんなのサマーセミナーに参加して、OSMの紹介や講習を行ってます。
ご近所の方は参加してみて下さいね〜。

2018年6月10日日曜日

コマンドプロンプトで再帰的にファイルの行数を調べる方法

あまプロでは、時々Windowsの案件を受ける事が有ります。

先日、 C#(拡張子が.cs)の行数を調べる事が有りましたのであメログ。

コマンドプロンプトで
dir *.cs /b /s > ..\csList.txt

for /f %i in ( ..\csList.txt ) do type "%i" | find /c /v "" >> ..\csline.txt
を実行します。
バッチファイルで実行する場合は%を%%に置換する必要が有ります。

カレントディレクトリ配下のC#ファイルの一覧がcsList.txtへ出力され
各ファイルの行数がline.txtへ出力されます。

Linuxのシェルスクリプトとはだいぶちゃいますが、ちゃんと出来ました。

2018年5月25日金曜日

エクセルのマクロについて

あまプロではエクセルのマクロ作成授業も行っています。

先日、簡単なマクロの授業依頼が有りましたので、デバッグの方法を教えつつVBAについて教えていました。
するとある日、生徒のエクセルで文字が入力出来なくなる問題が発生しました。
問題を切り分けてみると、他のソフトでは日本語が入力出来て、どうやらMSOfficeのみ文字が入力出来ない様です。

良く良く聞いてみると、どうやら何処かで入手したエンタープライズ版を個人のパソコンにインストールされてました。
百均のCDに手書きのプロダクトコードでした…。
エクセル起動後のメッセージを見ると、プロダクトコード入力画面が表示され、プロダクトコードを入力すると、入力したプロダクトコードが無効な為に機能を制限していますと出ています。
オフィスの入手の経緯は知りませんが、サポートに電話してみたら如何でしょう?と伝えておきました。

ちなみに、エクセルの基本はそれ程変わってませんので、自宅のマクロ作成用でしたら10年前のバージョンのエクセルでも問題有りません。そして、10年前のバージョンでしたらネットで正規品を千円程度で購入出来ます。

Ubuntuで画面を録画する

あまプロではOSにUbuntuを使てます。
Linuxにはディスプレイサーバという機能が有りまして、Xorgが長い事使われてきました。
そのディスプレイサーバ上でGNOMEKDE等のデスクトップ環境が動作して、良く見るパソコンのデスクトップが使える様になります。
最近、新たにUnityというディスプレイサーバ(とデスクトップ環境)が登場し、Xorgに置き換わりそうでした。
しかし、利用者に不評で、置き換わりには至らず、再びXorgへ戻っています。で、今回Ubuntu18.04から新たにwaylandというディスプレイサーバが選択肢に加わりました。
初期選択されるディスプレイサーバはXorgですが、ログイン時にwaylandへ切り替える事が出来ます。
今後はwaylandに置き換わって行くんちゃうか、と言われています…。

(新しい物好きなんで)試しにwaylandに切り替えて使ってみました。
普段使いでは問題無さそうですが、未だSimpleScreenRecoderkazam等の録画ソフトが対応してへん様です。
あまプロでは授業で作成したゲームの動画をアップしているんですが、waylandで録画しても黒しか映らず録画出来ませんでした。音は録れるんですけどね。
なので、録画する時はXorgのSimpleScreenRecorderで録画してます。
暫くはXorgを使う事になりそうです。

waylandに対応したGreenRecorderというソフトも有るらしいですが、未だUbuntuのリポジトリには載っておらず、他のリポジトリを追加してインストールする必要が有り、ちょっと面倒です。

過渡期はどうしてもこういう不具合や手間が発生してしまいます。
この先どうなるんでしょうね〜

2018年5月24日木曜日

パスワード管理ツールについて

あまプロでは、色々な外部サービスを活用して日々の業務を行っております。

メールにブログにSNSにレンタルサーバに地図にプログラミング…有り難う御座います。
そこで、各サービスに必要なのがアカウント(ユーザ名)とパスワード。
ユーザ名は使い回しても構いませんが、パスワードはそれぞれ個別に生成しないといけません。パスワードの使い回しはとても危険です。
かと言って、それぞれのサービス毎にパスワードを覚えるのも大変です。
テキストファイルにメモっとくのも一つの手ですが、それでも件数が増えると大変です。

そういう時に、あまプロではパスワード管理ツールを用いています。
ツールは何でも良いのですが、KeeXassXというのを使ってます。
画像は英語表記になってますが、日本語表記も使えます。
他のツールでも大体同じやと思うんですが、使い方は
  1. マスターパスワードの登録
  2. アカウントとパスワードの組を作成
  3. 各サービスの登録時やログイン/サインイン時に使う
以上です。

マスターパスワードの登録

マスターパスワードは自力で生成して登録する必要が有ります。
恐らく、これが一番大変な工程で、長め(出来れば10文字以上)のパスワードを作って登録して下さい。
毎回KeePassXを起動する度に入力するパスワードになります。
面倒ですが、これさえ出来れば、後はKeePassXが手伝ってくれるので楽です。
OSのログインパスワードとは変えた方が良いです。

アカウントとパスワードの組を作成

パスワード生成時はこの画像の様に、パスワードの文字数や使用可能文字を選択出来ますので便利です。

パスワードは各サービスの最大桁を生成すると良いです。
パスワードは長ければ長い程良いです。
どんなに長くしても、コピペで使いますので、手間は掛かりません。 覚える必要も有りません。
そして、長ければ定期的に更新する必要は無いです。
ちなみにKeePassXでは最大9999桁まで生成出来ます。

殆どのサービスではユーザ名(ログインID)は一意でなければなりません。
先取りされているメールアドレスは取得出来ないのと同じです。
使える文字を駆使してユニークなアカウントを作りましょう。
アカウントは他の方に知られても大丈夫ですし、知らせなくても構いません。そこはお好みで。

各サービスの登録時やログイン/サインイン時に使う

後はサインアップ(登録)/サインイン(入室)の際に作ったパスワードを使うだけです。
パスワードはCtrl+cで、ユーザ名はCtrl+bでコピーできます。
そして、各サービスの入力欄にカーソルを合わせてペーストCtrl+vするだけです。

ちなみに初期設定ではコピーした内容は10秒後にクリップボードから消去されてしまいます。
つまりコピーしてから11秒後にペーストしても、何も貼り付けられないという事です。
この秒数を変えたい場合は設定のセキュリティから変更可能ですので、お好みで変更して下さい。
勿論、この機能を無効にも出来ますが…無効はお薦めしません。
他にも登録パスワードの分類分けや、パソコン買い替え時等に使うエクスポート/インポート機能等も付いてますので、是非ご利用下さい。
終了時はCtrl+sでパスワードの保存をお忘れなく〜

2018年5月21日月曜日

Ubuntuにプリンタドライバをインストール

あまプロではOSにUbuntuを使っています。

先日、プリンタの設定を行いましたのであメログ。
プリンタはエプソンのEP-705Aです。ジモティで3000円で譲って頂きました。
スキャナー機能も付いてまっせぇ。

Ubuntuの標準ドライバでは印刷出来ないので、ダウンロードセンタからドライバをダウンロードします。
今回はepson-inkjet-printer-201205j_1.0.0-1lsb3.2_amd64.debというdebファイルになります。

debファイルをインストールする場合はsudo dpkg -i *.debなんですが、一つ問題が有って
dpkgコマンドはパッケージの依存関係を解決してくれないです。
プリンタドライバの場合、lsb等色々なパッケージに依存して作られてます。
パッケージの依存関係とはプリンタドライバの場合、ドライバを動作される為に必要な物、パッケージを実行される為に要るパッケージです。
依存するパッケージを一つ一つインストールして行っても良いんですが、面倒なので依存関係を解決してくれるgdebiコマンドをインストールします。
sudo apt install gdebi
で、その後

sudo gdebi epson-inkjet-printer-201205j_1.0.0-1lsb3.2_amd64.deb
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Reading state information... Done
以下のパッケージのインストールが必要です: alien at debhelper debugedit dh-autoreconf dh-strip-nondeterminism libarchive-cpio-perl libfile-stripnondeterminism-perl libjpeg62 libmail-sendmail-perl librpmbuild8 librpmsign8 libsys-hostname-long-perl lsb lsb-core lsb-printing lsb-security ncurses-term pax po-debconf rpm

EPSON EP-705A Series - Epson Inkjet Printer Driver
 This software is a filter program used with Common UNIX Printing
 System (CUPS) from the Linux. This can supply the high quality print
 with Seiko Epson Color Ink Jet Printers.
 .
 This printer driver is supporting the following printers.
 .
 EP-705A
 .
 For detail list of supported printer, please refer to below site:
 http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX
 .
 (Converted from a rpm package by alien version 8.79ubuntu0.1.)
ソフトウェアパッケージをインストールしますか? [y/N]:y
Fetched 0 B in 0s (0 B/s)                                                     
以前に未選択のパッケージ dh-autoreconf を選択しています。
(データベースを読み込んでいます ... 現在 163837 個のファイルとディレクトリがインストールされています。)
.../00-dh-autoreconf_17_all.deb を展開する準備をしています ...
dh-autoreconf (17) を展開しています...
以前に未選択のパッケージ libfile-stripnondeterminism-perl を選択しています。
.../01-libfile-stripnondeterminism-perl_0.040-1.1~build1_all.deb を展開する準備をしています ...
libfile-stripnondeterminism-perl (0.040-1.1~build1) を展開しています...
以前に未選択のパッケージ dh-strip-nondeterminism を選択しています。
.../02-dh-strip-nondeterminism_0.040-1.1~build1_all.deb を展開する準備をしています ...
dh-strip-nondeterminism (0.040-1.1~build1) を展開しています...
以前に未選択のパッケージ po-debconf を選択しています。
.../03-po-debconf_1.0.20_all.deb を展開する準備をしています ...
po-debconf (1.0.20) を展開しています...
以前に未選択のパッケージ debhelper を選択しています。
.../04-debhelper_11.1.6ubuntu1_all.deb を展開する準備をしています ...
debhelper (11.1.6ubuntu1) を展開しています...
以前に未選択のパッケージ librpmbuild8 を選択しています。
.../05-librpmbuild8_4.14.1+dfsg1-2_amd64.deb を展開する準備をしています ...
librpmbuild8 (4.14.1+dfsg1-2) を展開しています...
以前に未選択のパッケージ librpmsign8 を選択しています。
.../06-librpmsign8_4.14.1+dfsg1-2_amd64.deb を展開する準備をしています ...
librpmsign8 (4.14.1+dfsg1-2) を展開しています...
以前に未選択のパッケージ debugedit を選択しています。
.../07-debugedit_4.14.1+dfsg1-2_amd64.deb を展開する準備をしています ...
debugedit (4.14.1+dfsg1-2) を展開しています...
以前に未選択のパッケージ rpm を選択しています。
.../08-rpm_4.14.1+dfsg1-2_amd64.deb を展開する準備をしています ...
rpm (4.14.1+dfsg1-2) を展開しています...
以前に未選択のパッケージ alien を選択しています。
.../09-alien_8.95_all.deb を展開する準備をしています ...
alien (8.95) を展開しています...
以前に未選択のパッケージ at を選択しています。
.../10-at_3.1.20-3.1ubuntu2_amd64.deb を展開する準備をしています ...
at (3.1.20-3.1ubuntu2) を展開しています...
以前に未選択のパッケージ libarchive-cpio-perl を選択しています。
.../11-libarchive-cpio-perl_0.10-1_all.deb を展開する準備をしています ...
libarchive-cpio-perl (0.10-1) を展開しています...
以前に未選択のパッケージ libjpeg62:amd64 を選択しています。
.../12-libjpeg62_1%3a6b2-3_amd64.deb を展開する準備をしています ...
libjpeg62:amd64 (1:6b2-3) を展開しています...
以前に未選択のパッケージ libsys-hostname-long-perl を選択しています。
.../13-libsys-hostname-long-perl_1.5-1_all.deb を展開する準備をしています ...
libsys-hostname-long-perl (1.5-1) を展開しています...
以前に未選択のパッケージ libmail-sendmail-perl を選択しています。
.../14-libmail-sendmail-perl_0.80-1_all.deb を展開する準備をしています ...
libmail-sendmail-perl (0.80-1) を展開しています...
以前に未選択のパッケージ ncurses-term を選択しています。
.../15-ncurses-term_6.1-1ubuntu1_all.deb を展開する準備をしています ...
ncurses-term (6.1-1ubuntu1) を展開しています...
以前に未選択のパッケージ pax を選択しています。
.../16-pax_1%3a20171021-2_amd64.deb を展開する準備をしています ...
pax (1:20171021-2) を展開しています...
以前に未選択のパッケージ lsb-security を選択しています。
.../17-lsb-security_9.20170808ubuntu1_amd64.deb を展開する準備をしています ...
lsb-security (9.20170808ubuntu1) を展開しています...
以前に未選択のパッケージ lsb-core を選択しています。
.../18-lsb-core_9.20170808ubuntu1_amd64.deb を展開する準備をしています ...
lsb-core (9.20170808ubuntu1) を展開しています...
以前に未選択のパッケージ lsb-printing を選択しています。
.../19-lsb-printing_9.20170808ubuntu1_amd64.deb を展開する準備をしています ...
lsb-printing (9.20170808ubuntu1) を展開しています...
以前に未選択のパッケージ lsb を選択しています。
.../20-lsb_9.20170808ubuntu1_all.deb を展開する準備をしています ...
lsb (9.20170808ubuntu1) を展開しています...
ncurses-term (6.1-1ubuntu1) を設定しています ...
libjpeg62:amd64 (1:6b2-3) を設定しています ...
po-debconf (1.0.20) を設定しています ...
ureadahead (0.100.0-20) のトリガを処理しています ...
ureadahead will be reprofiled on next reboot
debugedit (4.14.1+dfsg1-2) を設定しています ...
librpmsign8 (4.14.1+dfsg1-2) を設定しています ...
libarchive-cpio-perl (0.10-1) を設定しています ...
at (3.1.20-3.1ubuntu2) を設定しています ...
lsb-security (9.20170808ubuntu1) を設定しています ...
pax (1:20171021-2) を設定しています ...
libsys-hostname-long-perl (1.5-1) を設定しています ...
librpmbuild8 (4.14.1+dfsg1-2) を設定しています ...
libmail-sendmail-perl (0.80-1) を設定しています ...
libc-bin (2.27-3ubuntu1) のトリガを処理しています ...
doc-base (0.10.8) のトリガを処理しています ...
doc-base ファイルを 1 個追加 を処理中...
systemd (237-3ubuntu10) のトリガを処理しています ...
man-db (2.8.3-2) のトリガを処理しています ...
libfile-stripnondeterminism-perl (0.040-1.1~build1) を設定しています ...
rpm (4.14.1+dfsg1-2) を設定しています ...
dh-autoreconf (17) を設定しています ...
dh-strip-nondeterminism (0.040-1.1~build1) を設定しています ...
debhelper (11.1.6ubuntu1) を設定しています ...
alien (8.95) を設定しています ...
lsb-core (9.20170808ubuntu1) を設定しています ...
lsb-printing (9.20170808ubuntu1) を設定しています ...
lsb (9.20170808ubuntu1) を設定しています ...
以前に未選択のパッケージ epson-inkjet-printer-201205j を選択しています。
(データベースを読み込んでいます ... 現在 167414 個のファイルとディレクトリがインストールされています。)
epson-inkjet-printer-201205j_1.0.0-1lsb3.2_amd64.deb を展開する準備をしています ...
epson-inkjet-printer-201205j (1.0.0-1lsb3.2) を展開しています...
epson-inkjet-printer-201205j (1.0.0-1lsb3.2) を設定しています ...
libc-bin (2.27-3ubuntu1) のトリガを処理しています ...


こんな感じでプリンタで印刷出来る様になります〜。

契約書の袋綴について

あまプロでは、お客さんとの取引で契約書を交わす場合が有ります。

先日、複数枚の契約書を交わす機会が有りました。
一般的に、複数枚の契約書の場合、袋綴じにして割印します。
契約書をA4に複数枚印刷して、留めて、帯で糊付けして、割印するだけなんですけど。
百均で売ってへんかなぁ…と思って探してみたら
百均に売ってました、しかも10枚セットで!
袋綴テープにした方が探し易い様な気がしますが、製本テープという商品名なんですね。
契約書も製本っちゃ製本なんでしょう。

ホワイトボードセットとか領収書とかちょっとしたお菓子とか虫除けリングとか…ほんま色々売ってはりますね。
個人事業主には大助かりです。