Posts

Showing posts from 2016

NetBSD上のFirefoxからVMware ESXi 6.0u2または6.5のウェブクライアントを使う

この記事は、NetBSD Advent Calendar 2016の12日目の記事です。 Qiita上で代わりに投稿できるのを見付けてしまったので、勝手に投稿します。 すみません。 はじめに 普通は、NetBSD/amd64-currentをラップトップで使っているのですが、 pkgsrcの検証等のために、それ以外の環境も必要です。 386またはamd64については、VMware ESXiを使って仮想マシンを動かしています。 今は、先日インストールしたVMware ESXi 6.5を使っています。 VMware ESXi 6.0u2以降は、Windowsで動く管理コンソールソフトウェアである VMware vSphere Clientではなく、ウェブクライアントが無料で 使えるようになりました。 ですが、NetBSD/amd64-currentで動くFirefox (pkgsrc/www/firefox)では、 コンソールウィンドウで無限にキーリピートされてしまい、 まともに操作できませんでした。 ですので、インストールはVMware vSphere Clientでしなくてはいけませんでした。 ですが、VMware ESXi 6.5からは、どうやらVMware vSphere Clientが 提供されなくなってしまいました。 どうにかして、キーリピートの問題を解決しなくてはいけなくなりました。 キーリピートを調整する設定を追加してみる これまで、この問題についてGoogleで検索したことさえなかったので 検索してみました。すると、 Repeated characters when typing in remote console (196) と言う同じような問題を解決するためのサポート記事が見付かりました。 ですが、ウェブクライアント用の内容ではないように見えます。 ですが、まずは試してみました。 仮想マシンは終了させておきます。 Edit→VM Options→Advanced→Configuration Parameters→Edit Configuration... を選択し、keyboard.typematicMinDelayの行を追加し、 2000000 (2秒を意味する)に設定しました。 その上で、仮想マシンを起動してみましたが、 効果はありま…

The pkgsrc guideをEPUB3の電子書籍にしてみる

この記事は、NetBSD Advent Calendar 2016の20日目の記事です。 はじめにThe pkgsrc guideを スマートフォンでオフラインで読みたいと思っていました。 今回は、The pkgsrc guideをEPUB3形式に変換することで、 スマートフォン上でも快適に読めるようにしました。 The pkgsrc guideはどのように書かれているのか The pkgsrc guideは、pkgsrc/doc/guide/files以下にXMLファイル として管理されています。pkgsrc.xmlと言うファイルを見ると、 最初に以下のように書かれています。 <!DOCTYPE book PUBLIC "-//NetBSD//DTD DocBook XML V4.5-Based DocBook Extension//EN" [ DocBook XML 4.5と規格に沿って書かれていると言うことのようです。 DocBook XMLのファイルを、www.NetBSD.org の仕組みと同じものを利用して、HTML等に変換しています。 DocBook XSL 1.79.1には、DocBook XMLをEPUB3に変換するスタイルシートが 含まれています。 しかし、pkgsrc/textproc/docbook-xslでは、 DocBook XMLをEPUB3に変換するのに必要なファイルはインストールされません。 pkgsrcはpkgsrc-2016Q4ブランチに向けてフリーズ中で変更はできませんので、 今回はpkgsrcの枠組みの外でEPUB3形式のファイルを作成してみたいと思います。 XSLTプロセッサーとしては、pkgsrc/textproc/libxsltに 含まれているxsltprocコマンドを使用します。 バラバラになっているXMLファイルを1つにまとめる The pkgsrc guideは、複数のXMLファイルに分かれています。 最初にこれを1つにまとめないといけません。 $ ls -F files CVS/ creating.xml getting.xml pkgsrc.xml Makefile debug.xml…

NetBSD/amd64を使っているマシンのCPUのマイクロコードをアップデートする

この記事は、NetBSD Advent Calendar 2016の18日目の記事です。 はじめに これまで、購入したマシンは、WindowsなりmacOSなりはすぐに消してしまっている ので、BIOS的なもののアップデートもしていませんでした。 BIOS的なものくらいは、起動可能なUSBメモリー用のイメージ等で配布して欲しいものです。 昔はフロッピーディスクで起動させて更新したこともあった気がします。 ああ言うオペレーティングシステムによらない更新が望ましい気がします。 IntelのCPUは、マイクロコードをロードすることができます。 この作業は、NetBSDでも、pkgsrc/sysutils/intel-microcode-netbsdで実施する ことができます。 これまで一度も試したことがありませんでしたが、常用のラップトップである 東芝dynabook R63/PSで試してみました。 pkgsrc/sysutils/intel-microcode-netbsdをインストールする 2016年12月18日現在のintel-microcode-netbsdのバージョンは、20161104です。 以下のようにインストールします。 $ cd /usr/pkgsrc/sysutils/intel-microcode-netbsd $ make install $ make clean-depends clean /usr/pkg/share/examples/rc.d/intel-microcodeと言う起動スクリプト もインストールされます。 以下のようにして、インストールし、再起動時に実行されるように設定します。 # cp /usr/pkg/share/examples/rc.d/intel-microcode /etc/rc.d # echo "microcode=YES" >> /etc/rc.conf ロードしてみる ロードする前には、現在の状況を確認しておきましょう。 # cpuctl identify 0 のように実行して、最終行に表示されるのが、マイクロコードのリビジョンです。 cpu0: highest basic info 00000014 cpu0: highest extended info 80…

VMwareの仮想マシンでNetBSDとopen-vm-toolsを使ってみる

この記事は、NetBSD Advent Calendar 2016の17日目の記事です。 はじめに VMware Workstation PlayerやVMware ESXiを使って、 いろいろなオペレーティングシステムを試すことができるのはありがたいです。 NetBSDには、OpenBSDに由来するvmt(4)というデバイスドライバーがあって、 電源関連の処理とホストへのIPアドレスの報告、ホストとゲストの時刻の同期を してくれます。 open-vm-toolsはvmt(4)の機能に加えて、以下のようなことができます。 複数のIPアドレスをホストに報告できますVMware Workstation Playerの場合に、ホストとゲスト間でテキストの コピー・アンド・ペーストができます共有フォルダー機能が使用できます もしかしたら、ドラッグ・アンド・ドロップもできるかもしれませんが、 それを実現するためのゲストであるNetBSDの要件が良く分かりません。 と言いますか、基本的には、vmt(4)で十分です。 私のように 、事情があってVMware toolsかopen-vm-toolsを 使わないといけない人向けかもしれません。 open-vm-toolsのインストール 2016年12月17日現在、pkgsrcには、pkgsrc/sysutils/open-vm-toolsとして 10.0.7が収録されています。HGFS FUSE (共有フォルダー関係) は、pho@さんが NetBSD側も含め有効にしてくださいました。ありがとうございます。 インストールは、以下のようにします。 $ cd /usr/pkgsrc/sysutils/open-vm-tools $ make install $ make clean-depends clean ホストとゲスト間でのテキストのコピー・アンド・ペーストをしたい場合には、 x11オプションを有効にするのを忘れないでください。標準では有効になっています。 手元には、最新版である10.1.0のアップデートを持っていますので、 この記事を投稿した後にコミットしておきます。 open-vm-toolsの使い方 実際に、各機能ごとに、使用方法を説明します。 基本的には、NetBSDでの場合に限定されるような内容ではないと思…

NetBSDでディジタルカメラのRAWデータを扱ってみる

この記事は、NetBSD Advent Calendar 2016の16日目の記事です。 はじめに 個人的には、あまり写真を撮ることには興味がないのですが、画像ファイルの扱いには興味があります。 最近の良いディジタルカメラでは、RAW形式で写真を取り、撮影後にソフトウェアで コントラストや色調などを調整し現像するようです。 このRAW形式は、基本的にはディジタルカメラを製造する各社の独自の フォーマットのようです。 私はそんな高級なディジタルカメラは持っていませんので、 今回は、ウェブで公開されているRAW形式の画像ファイルをNetBSDで扱ってみました。 今回試したRAW形式の画像ファイルは、インプレスのやじうまPC Watchの記事のものを使用しました。 darktableを使ってみる 最初に、pkgsrc/graphics/darktableを使ってみることにします。 ですが、2016年12月17日現在のpkgsrc/graphics/darktableは、 NetBSD/amd64 7.99.51では、darktableのソースコードに誤りがあるために ビルドできません。 この記事を書き終えましたら、最新版(2.2.0rc3)にアップデートしておきますので、 そちらをお試しください。 インストールは以下の通りです。 $ cd /usr/pkgsrc/graphics/darktable $ make install 上述したウェブページにあるRAW形式の画像ファイルのうち、 PanasonicのディジタルカメラのRAW形式である拡張子がrw2であるファイルは、 darktableでは扱えない機種のディジタルカメラの生成したもののようです。 Panasonic DMC-GM1Sという機種のようです。 ホワイトバランスが読み込めないとのエラーでdarktableの機能は試せませんでした。 上述したウェブページには一つだけ、Canon性のディジタルカメラで撮った 拡張子がcr2のものがあります。これについては、無事に現像できました。 UFRawを使ってみる 他にもRAW形式の画像ファイルを扱うものと言うと、UFRawが思い付きます。 pkgsrcでは、pkgsrc/graphics/gimp-ufrawから使用することが できます。gimp-u…

NetBSDでMTPデバイスをマウントしてみる

この記事は、NetBSD Advent Calendar 2016の13日目の記事です。 はじめに6日目の記事で、 gphoto2を使って、NetBSDからMTPデバイスの中身を普通のディスクにコピーしてくることは できるようになりました。 しかし、やはりmtools的な操作では使い勝手が良くありません。 動作確認のとれたgphotos2を使ったFUSEモジュールであるpkgsrc/filesystems/fuse-gphotosを試してみました。 fuse-gphotofsのインストール gphotofsは、既にpkgsrcに取り込まれていました。 ですので、以下のように簡単にインストールすることができます。 $ cd /usr/pkgsrc/filesystems/fuse=gphotofs $ make install $ make clean-depends clean 準備はできました。 マウントしてみよう NetBSD/amd64 7.99.51では、特にエラーもなく pkgsrc/filesystems/fuse-gphotofsはインストールできました。 実際にマウントしてみます。 6日目の記事の反省を踏まえ、Xperia Z Ultraはロック状態ではない状態に しておきます。 /usr/pkg/share/doc/fuse-gphotofs/READMEによると、 マウントは以下のように実行すれば良いようです。 # gphotofs /mnt/usbssd 複数のMTPデバイスをつないでいる場合が不安になりますが、 今は1つしかデバイスがないので試せていません。 無事にマウントできると以下のようになります。 $ mount $ mount (snip) /dev/puffs on /mnt/usbssd type puffs|refuse:gphotofs (nodev, nosuid) 写真をImageMagickのdisplayコマンドで表示してみます。 $ ll /mnt/usbssd/store_00010001/DCIM/100ANDRO/DSC_0001.JPG -rw-r--r-- 1 root wheel 1576203 Oct 27 06:15 /mnt/usbssd/store_00010001/DC…

NetBSDの新しいOSSを使ってみる

この記事は、NetBSD Advent Calendar 2016の9日目の記事です。 どうも忙しくていけません…。 はじめに pkgsrc/www/firefoxは先日までpkgsrc/audio/pulseaudioに依存していましたが、 それはOSS (Open Sound System)サポートでは、一つのプログラムが オーディオデバイスを占有してしまい、複数のプログラムからオーディオ出力 できないためでした。 (今は、pkgsrc-currentのpkgsrc/www/firefoxは、pkgsrc/audio/alsa-lib経由で OSSとpulseaudioを選べるようになっています。) 最近の nat@のオーディオサブシステムの変更によって、一つのプログラムが オーディオデバイスを占有することはなくなったようですので、試してみました。 カーネルをビルドする NetBSD/amd64-currentで試してみようと思います。 そのためには、カーネルのソースツリーを最新にして、ビルドし直す必要があります。 NetBSD-currentを追い掛けている方には、当たり前の内容ですが、 簡単に書いておきます。 詳細は、Tracking NetBSD-current を参照してください。 カーネルモジュールだけ作っても良いのですが、ここではユーザーランド全体を更新してしまいます。 $ cd /usr/src $ cvs update -dP $ ./build.sh -U -O /usr/world/7.99/amd64/obj -T /usr/world/7.99/amd64/tools -D /usr/world/7.99/amd64/destdir -u -j4 tools $ ./build.sh -U -O /usr/world/7.99/amd64/obj -T /usr/world/7.99/amd64/tools -D /usr/world/7.99/amd64/destdir -u -j4 kernel=GENERIC $ ./build.sh -U -O /usr/world/7.99/amd64/obj -T /usr/world/7.99/amd64/tools -D /usr/world/7.99/amd64/destdir…

NetBSDでAndroidスマートフォンのBluetoothテザリングを利用する

この記事は、NetBSD Advent Calendar 2016の7日目の記事です。 現実に戻って来るのが遅くなったので、日付を大幅に越えてしまいました…。
はじめに Andoridなスマートフォンには、Bluetoothテザリングと言う機能があります。 私の使っているXperia Z Ultraでは、Wi-Fiで接続されている時に、 Bluetoothテザリングすると、Wi-FiからBluetoothへの変換器のように 動作します。 これを、NetBSDからやってみます。
Bluetooth PAN 前述したBluetoothでのテザリングは、Androidなスマートフォンが NAP (Network Access Point)として動作していると言うことになります。
NetBSDで、Bluetooth PANを扱う際に必要なのは、btpand(8): Bluetooth PAN daemonです。 基本的には、btpand(8)のマニュアルページに書かれているようにやれば良いはずです。
まず、Bluetooth PANで使うネットワークインターフェイスを用意します。 仮想Ethernetデバイスであるtap(4)を使います。 自分の使っているカーネルがtap(4)を有効にしているかカーネル設定ファイルで 確認しておきましょう。 おそらく多くの人が使っているであろうGENERICカーネルには、 標準で含まれています。
pseudo-device tap がカーネル設定ファイルに含まれていれば大丈夫です。 続いて、tap0ネットワークインターフェイスは、btpand(8)が自動的に 作成してくれますので、心配いりません。
Bluetoothデバイスを用意しておく必要もあります。 普通のラップトップには、Bluetoothレシーバーが 内蔵されているのではないかと思うのですが、 私の使っている東芝dynabook R63/PSには、ACPIの先につながっているようで、 NetBSD/amd64 7.99.43からは使えません。 ですので、今回は、プラネックスコミュニケーションズのBT-Micro3E1Xという USB接続のBluetooth 3.0+EDRなレシーバーを接続してみます。 以下のように認識されます。
ubt0 at uhub0 por…

NetBSDからMTPデバイスを使う

この記事は、NetBSD Advent Calendar 2016の6日目の記事です。 はじめに AndroidなスマートフォンはMTP (Media Transfer Protocol) で 内蔵ストレージや挿し込まれたmicroSDカード等の中身をPCから見ることができます。 私の使っているXperia Z Ultraで言うと、どうやら内蔵ストレージは MTPでしか見ることができないようです。 と言うことで、NetBSDな常用ラップトップから、Xperia X Ultraの内蔵ストレージと microSDカードの中身を扱う方法を書いてみます。 libmtpを使う 一番簡単なのは、昔のMS-DOSのFAT領域を扱うmtoolsのような仕組みを使う方法です。 このようなツールは、一つは、pkgsrc/devel/libmtpで提供されています。 Xperia Z UltraをMTPモードに設定して、NetBSD/amd64なラップトップに接続してみます。 カーネル的にはデバイスドライバーはありませんので、ugen(4)として認識されます。 ugen0 at uhub0 port 5 ugen0: Sony C6833, rev 2.00/2.32, addr 11 libmtpをインストールして、Xperia Z Ultraが認識されるか試してみます。 $ cd /usr/pkgsrc/devel/libmtp $ make install $ mtp-detect libmtp version: 1.1.12 Listing raw device(s) Device 0 (VID=0fce and PID=019c) is a SONY Xperia Z Ultra MTP (ID3). Found 1 device(s): SONY: Xperia Z Ultra MTP (ID3) (0fce:019c) @ bus 0, dev 16 Attempting to connect device(s) Android device detected, assigning default bug flags Error 1: Get Storage information failed. USB low-level info: I…

Chromium browserをNetBSDで使う計画の経過報告

Image
日付が変わってしまいましたが、NetBSD Advent Calendar2016の2日目の記事です。 はじめに Chromium browserは、Google Chromeのopen source版のような位置付けのウェブブラウザーです。 WebkitのforkであるBlinkというレンダリングエンジンを搭載しており、私の愛用しているFirefoxよりも軽快に動作すると言う話です。 これまでの経緯 Chromium browserについては、2016年7月頃にバージョン51をNetBSD/amd64 currentで動かそうと試みていました。 しかし、以下の理由で積極的には使用できない状態でした。 PR kern/49691に該当してしまい、頻繁にkernel panicを引き起こしてしまう。Googleアカウントによるサインインができず、ブックマークの同期等ができない。 しかし、2016年11月8日にchristos@がhttp://mail-index.netbsd.org/source-changes/2016/11/08/msg078942.htmlでPR kern/49691で提案されていた修正をコミットしたので、安心してChromiumを試すことができるようになりました。 今回の取り組み Chromium 51は、FreeBSD Portsのパッチをベースに、NetBSD向けに修正して行く形で進めました。 今回も、Chromium 54に対するFreeBSD向けのパッチをベースにしました。 ですが、公式なFreeBSD Portsのツリーには収録されていませんでしたので、https://github.com/gliaskos/freebsd-chromiumにあるパッチをベースにしました。 ですがこのパッチは、*BSD向けとしてFreeBSDのみに該当するような内容を含めている箇所が数多くありました。 NetBSDとFreeBSDは、同じと考えられない部分も多いですので、ここでされているような対処は行き過ぎだと考えています。 ですので、NetBSDで動かす際には、なるべくFreeBSDでも動くと考えられるようにしつつ、NetBSDに対応するように変更しました。 最終的には、FreeBSDの環境でも試すべきですが、そこまではできていません。 …

Certificate authorityの研究1 〜Certificate authorityをどう日本語に訳すか〜

先日、日本国のGPKIのルート証明書がMozillaのNSS/Firefoxに含まれていないことに気付いた。これを機会に、Certificate authority (Certification authorityとも言うらしい。以下CAと略す)について調べる気持ちになったので、その内容を記載していく。 まず、CAについては、どのように日本語訳を考えれば良いのだろうか? Wikipedia英語版のCertificate authorityからの、Wikipedia日本語版へのリンクは、認証局という項目になっているが、認証局という単語は、私にはあまりに一般的な用語であるように理解される。 英語のCertificate authorityという語自体も日本語の認証局に劣らず一般的な用語のように理解される。 ではどのような日本語訳が適切であるか、日本語を主に利用しているCAを探して、そこでの表記を調べてみることにする。 既に、日本ベリサインという会社はなくなって、Symantecの一部になっているようであるが、そこのCAの業務に関連すると思われる日本語のトップページを見てみた。シマンテックSSL情報センターというウェブページである。 ここで、認証局と言う単語が表示されているか検索してみると、全くそのような単語は表示されていないことが分かった。 SSLの概要というサブページには、認証局という単語が使用されている。 どうやら、SymantecはCAを認証局と訳しているようである。 日本の企業ということで、セコムトラストシステムズの用語を調べてみた。リポジトリウェブページからリンクされているセコムパスポート for Web SRサービス利用規程 (PDF)においても、セコム認証基盤共通 Certification Practice Statement (PDF)においても、CAは認証局と訳されている。 次に、CAの業界団体的なものがないか検索してみる。 すると、電子認証局会議というウェブサイトが見付かった。 電子認証局会議についてというページによると、英語名は、Certification Authority Conferenceと言うと分かる。 この団体では、CAは電子認証局と訳していることが分かる。 ちなみに、2016年11月28日現在、https://www.…

Microsoft Update

いまだにWindows 7をセットアップする機会があるのだが、Internet Explorer 11を最新の状態にして、Windows Updateも最新の状態まで持って行った後に、Microsfot Updateを有効にしようと、Microsoft UpdateのウェブページをInternet Explorer 11で開いても、 『「スタート」メニューを使用して、更新プログラムを確認してください。Windows Updateはコントロールパネルの一部になりました。…』と表示されて有効化できない。互換表示設定にmicrosoft.comを追加した後に、操作するとMicrosoft Updateを有効化できた。有効化できたら、互換表示設定からmicrosoft.comは削除して良い。

HTTPプロキシーを通したhttpsなGitリポジトリーへのアクセス方法

どうもいつも忘れがちなので書いておく。 $ cat ~/.gitconfig [http] proxy = http://USERNAME:PASSWORD@10.1.1.1:8080

SKYSEA Client ViewとFirefox addon

SKYSEA Client View 10.2というのがあって、まあ、企業で必要とするロギングはできるものなのであろう。ただ、Firefoxのアドオンを勝手に追加されるのは気に入らない。e10sとか阻害されても面白くないし。 と言うことで、試しに排除できるかやってみた。 SKYSEA Client View 10.2がFirefoxに対して何をしているかは、C:\Users\userID\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\extensions.ini を見ると分かる。以下のようにExtension5の行が強制的に追加される。 [ExtensionDirs] Extension0=C:\Users\userID\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\extensions\itsalltext@docwhat.gerf.org Extension1=C:\Users\userID\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\extensions\{e968fc70-8f95-4ab9-9e79-304de2a71ee1}.xpi Extension2=C:\Users\userID\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\extensions\{8f8fe09b-0bd3-4470-bc1b-8cad42b8203a} Extension3=C:\Users\userID\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\extensions\{ad0d925d-88f8-47f1-85ea-8463569e756e}.xpi Extension4=C:\Users\userID\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\extensions\{53A03D43-5363-4669-8190-99061B2DEBA5}.…

Mantis BTを、nginxとphp-fpmの環境で、サブディレクトリーで動かす

サブディレクトリーで動かす nginxとphp-fpmでサブディレクトリーで動かす話なのだが、 Mantis BTに限らず、PHPなウェブアプリケーションは何であっても同じような話になるような気がする。 しかし、Mantis BTしか確かめていない。 ここでは、http://example.com/its/ のようなURLで動かす例を示す。 http { upstream php-handler { server 127.0.0.1:9000; } (snip) server{ (snip) # Mantis BT location ^~ /its { alias /usr/pkg/share/mantis; index index.php index.html; location ~ \.php$ { include fastcgi_params; fastcgi_pass php-handler; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; } } } } Mantis BTは、/usr/pkgsrc/devel/mantisから、1.3.1を導入してある。

Mantis BTでユーザー認証をActive Directoryと連携する

はじめに Mantis BTは、ユーザー認証をLDAPの情報を使って行なえるようになっている。 とある事情でActive DirectoryのLDAPの情報を使ってユーザー認証をしたい機会があったので、その設定を書いておく。 しかし、Admin Guideには、一般的なLDAPについて書かれているので、ちゃんと読まないとActive Directoryで使えるようにならない。 残念ながら、私はLDAPにもMantis BTにもさほど詳しい訳ではないので、最適解ではないかもしれないが、動く例として記載しておく。 Mantis BTは、pkgsrc/deve/mantisから導入したMantis BT 1.3.1であり、/usr/pkg/share/mantis 以下に配置されている。LDAP機能を使うため、pkgsrc/databases/php-ldapも追加でインストールしている。 Active Directoryでの認証の有効化方法 まず最初にやらないといけないのは、Active Directory認証に移行した後に使う管理者ユーザーの追加である。 Mantis BTのインストールをしたばかりの状態では、ユーザーID/パスワード = administrator/root でログインできる。ここで、Active Directoryに登録されているユーザーを管理者として登録しておく。 Active Directory認証を有効化した後には、administratorユーザーでログインすることはできないので、先に管理者ユーザーを作っておく必要がある。 Active Directoryについては、以下のような情報が与えられている。 Active Directoryサーバーtetera-ad.tetera.orgブラウジングするユーザーID/パスワードaduser/aduser_password これらに対して、/usr/pkg/share/mantis/config/config_inc.php の末尾に、以下のように追加する。 $g_login_method = LDAP; $g_ldap_server = 'tetera-ad.tetera.org'; $g_ldap_port = '3268'; $g_ldap_root_…

Google Static Mapsの代替としてのOpenStreetMap

はじめに Google Mapsには、Google Maps Static API というものがあって、パラメーターを渡すと、PNG画像を返してくれる。 これを散布図グラフの背景に設定すれば、地図上に散布図で示した情報をマッピングできるので、便利である。 しかし、Google Static Mapsは、例えばイントラネットに閉じたサービスでは使用できない。 Open Street Mapは、Creative Commons Attribution-ShareAlike 2.0 Genericでライセンスされているので、 このような環境でも使用できるのだが、tile.openstreetmap.orgのAPIは、 Google Static Maps APIとは指定の方法が違うようで、Google Static Maps用のパラメーター計算の方法がそのまま使えない。 調べてみると、staticmapliteというのが、Google Static Maps APIに類似のAPIで、 tile.openstreetmap.orgから画像を取得できるようだ。 特にズームの値の指定が一緒なのが大変助かる。 しかし、インストール方法も書かれていないのが難点だった。 後からよく調べてみると、 staticMapLiteExtと言うものもあって、こちらの方が高機能であるようだ。しかもインストール方法もちゃんと書かれている。 新規で導入するのであれば、こちらの方が良いかもしれない。 インストールの事前準備 今回は、nginxとphp-fpmを使って動かすことにしたため、 pkgsrc/www/nginxpkgsrc/www/php-fpmpkgsrc/www/php-curlpkgsrc/graphics/php-gd、 をインストールしておく。私の場合は、既にnginxでウェブサイトを構築しているため、新規にインストールはしなかった。 導入したPHPは、5.6.25である。 php-curlとphp-gdは、staticmapliteの動作に必要である。 php-fpmの設定 php-fpmは、localhostからのみ接続できるように、/usr/pkg/etc/php-fpm.confに listen.allowed_clients = 127.0.0.1 …

jwmのタスクバーに年月日も表示する

jwmでのタスクバーの時刻表示を24時間制にするで、24時間制で時刻を表示するようにしたが、使っていると日付も表示して欲しいと思うようになった。以下のように変更することで、2016-08-18 21:36のように表示できた。 --- /usr/pkg/share/examples/jwm/system.jwmrc 2016-08-05 00:30:50.000000000 +0900 +++ .jwmrc 2016-08-18 21:27:42.149972917 +0900 @@ -58,7 +58,7 @@ <TaskList maxwidth="256"/> <Dock/> - <Clock><Button mask="123">exec:xclock</Button></Clock> + <Clock format="%Y-%m-%d %R"><Button mask="123">exec:xclock</Button></Clock> </Tray>

ibus-skkのデフォルトで全角になっている記号を半角で入力するようにする

uim-skkとibus-skkをきまぐれに行き来して使っているのだが、 操作性としては、Ctrj-jの動作がより自然なisus-skk 1.4.2が使いやすい。 しかし、細かい入力規則の設定方法が分からず、クエスチョンマークやコロン等が全角で入力されてしまうのを放置していて、非常に面倒だった。 ふと、/usr/pkg/share/libskk/rules ディレクトリーを見ると、libskkの設定ファイルを書くことで変更できるようなので、やってみた。 しかし、入力規則は、Defaultを変更は一般ユーザー権限ではできず、自分独自の入力規則を作成することで、カスタマイズするらしい。 以下のように操作して、記号類を半角にできた。 $ mkdir ~/.config/libskk/rules $ cd ~/.config/libskk/rules $ cp -r /usr/pkg/share/libskk/rules/default hankakusymbols $ vi metadata.json $ diff -u /usr/pkg/share/libskk/rules/default/metadata.json metadata.json --- /usr/pkg/share/libskk/rules/default/metadata.json 2016-08-05 05:24:16.000000000 +0900 +++ metadata.json 2016-08-13 08:20:46.044465179 +0900 @@ -1,4 +1,4 @@ { - "name": "Default", - "description": "Default typing rule" + "name": "Hankaku Symbols", + "description": "Default typing rule with hankaku symbols" } $ vi rom-kana/default.json $ diff -u /usr/pkg/share…

jwmでのタスクバーの時刻表示を24時間制にする

長らくopenmotif/motifのmwm (Motif Window Manager)をX11環境のWindow Managerとして使用していたのだが、 さすがに近代的なものに変えたいと考えていた。 sloppy focusであって欲しく、軽量なものを探していたところ、JWM ((Joe's Window Manager)がデフォルトでsloppy focusで、全画面表示を正しく扱える等の近代的なものであったので、 乗り換えることにした、 しかし、LANG=ja_JP.UTF-8なロケールである場合、12時間制で時刻が表示されているのが気になっていた。 以下のパッチのように~/.jwmrcを変更することで変更できた、 --- /usr/pkg/share/examples/jwm/system.jwmrc 2016-08-05 00:30:50.000000000 +0900 +++ .jwmrc 2016-07-14 00:08:47.813229150 +0900 @@ -58,7 +58,7 @@ <TaskList maxwidth="256"/> &ltDock/> - <Clock><Button mask="123">exec:xclock</Button></Clock> + <Clock format="%R"><Button mask="123">exec:xclock</Button></Clock> </Tray> これで快適に生活できる。

Adobe Flash Playerのオフラインインストール

通常は、Adobe Flash Playerが必要になることは、Amazon Prime Musicのプライムラジオくらいしかない。その場合には、Google Chromeを使っている。 しかし、Mozilla FirefoxでAdobe Flash Playerが必要になり、かつAdobe Flash Playerの通常のブートストラップ型のインストーラーが必ず失敗する環境がある。 自動アップデートは成功するのだが、自動アップデートが必要な時に表示されないので、最新のAdobe Flash Playerを使い続けることができない。 結果として、FirefoxがAdobe Flash Playerが古くなったら、オフラインインストーラーで手動でインストールし直さないといけない。 オフラインインストーラーは、だんだんとAdobeのウェブサイトから入手しにくくなっているのだが、Windows 7用のものは、2016年7月2日現在では、Flash Player / Installation problems | Flash Player | Windows 7 and earlierの最下部にあるFlash Player for Firefox - NPAPIからダウンロードすれば良い。 早くAdobe Flash Playerを使わなくて良いようにならないかな…。

株式会社コスミックの腕時計のコマ調整

とある事情で、株式会社コスミックの4-TM116L-WH/G0という腕時計を購入した。 買ったお店の都合で、株式会社コスミックの時計サービスセンターに送らないと、バンドの長さ調整をしてもらえない。 調整には最長で2週間かかるらしい。 と言うことで、どのように調整できるのか試してみた。 結果から言うと、http://www.10keiya.com/site/tips/tips_sizing.htmlで解説されているもので言うと、ピンタイプで、割りピンが使われていた。 と言うことで、ハンマーと細い精密ドライバーを使って調整できた。

ストリーミングを録音する

某所のwmaファイルに書かれているURLで流れてくるストリーミング音声を録音する方法を書いておく。 ストリーミングにしていると言うことは、録音して欲しくないと考えていることは理解するのだが、常にネットワークにつながっている訳ではない事情から、仕方がないと思うことにする。 ダウンロードしたwmaファイルは、XMLファイルである。httpなURLが書かれているので、以下のように実行すれば良い。mplayerは、pkgsrc/multimedia/mplayerからインストールしておく。 $ mplayer 'http://example.com/example.wma?xxx' -dumpstream -dumpfile example.wma

STM32F4 DiscoveryでeCos 3.0を動かす

eCosはSTM32F4 DiscoveryというARM Cortex-M4の評価ボードで動く。 昨年の10月に試していて、無事に動作させることができたのだが、 きちんと再現できるように書いておかなかったので、再現に苦労してしまった。 NetBSD/amd64 7.99.29と7.0_STABLE (2016-05-06時点)で確認したが、別にNetBSDに限るものではないと思う。 ツールの導入BinutilsとGCCの導入 pkgsrcより、pkgsrc/cross/arm-none-eabi-gcc5をmake installで導入すると、 Binutils 2.26とGCC 5.3.0が導入される。 依存するパッケージの導入 GUIツールであるconfigtoolとコマンドラインツールであるecosconfigは、 TclとTk、wxGTK28、wxGTK28-contribを必要としているので、 pkgsrcから以下をインストールしておく。 pkgsrc/lang/tclpkgsrc/x11/tkpkgsrc/x11/wxGTK28pkgsrc/x11/wxGTK28-contribeCosのソースツリーの取得 eCosのソースツリーは公式にはAnonymous CVSで取得できるが、 私は自分でGitリポジトリーに変換している。 ecosmasterブランチをデフォルトのブランチとして管理している。 以下のように取得しておく。 $ cd ~/rtos/ecos $ git clone git@github.com:ryoon/eCos.git 依存するライブラリーの導入 cyginfraとlibcdlというライブラリーがeCosの一部として提供されている。 設定ツールが使用するので、用意しておく。 $ ~/rtos/ecos/eCos/host/infra/configure --prefix=/home/ryo_on/rtos/ecos/tools $ gmake install $ ~/rtos/ecos/eCos/host/libcdl/configure --prefix=/home/ryo_on/rtos/ecos/tools --with-infra=/home/ryo_on/rtos/ecos/tools --with-tcl=/…

OLEDBのドライバーを列挙する

WindowsにおけるOLEDBの良い所は、ODBCのようにあらかじめODBCデータソースに登録しておく必要がないことだと思う。 しかし、事前に明示的に登録する作業がないせいで、OLEDBのドライバーがインストールされているかが分かりにくいように感じている。 PowerShellを使うとOLEDBドライバーを列挙できる。 > (New-Object data.oledb.oledbenumerator).getElements() 例えばOracle Provider for OLE DBがあるかは、OraOLEDB.Oracleがあるかで分かる。 SOURCES_NAME : OraOLEDB.Oracle SOURCES_PARSENAME : {3F63C36E-51A3-11D2-BB7D-00C04FA30080} SOURCES_DESCRIPTION : Oracle Provider for OLE DB SOURCES_TYPE : 1 SOURCES_ISPARENT : False SOURCES_CLSID : {3F63C36E-51A3-11D2-BB7D-00C04FA30080}

ADO+OLEDBでTNSをJScriptから直接指定してOracle Databaseにアクセスする

WindowsにおけるOLEDBの良い所は、あらかじめODBCデータソースを設定しておかなくて良いというところだと思う。これは特に複数のクライアントPCにからデータベースにアクセスしなくてはいけない状況で、そのクライアントPCのユーザーがODBCのことを理解していない場合には、重要であると思う。ODBCデータソースに自動登録するスクリプトも書けるものだとは思うが。 しかし、Oracle Databaseにアクセスする場合には、インスタントクライアントのインストールが必要であるのは仕方がないとしても、tnsnames.oraを配置するのは面倒である。 ADOとOLEDBの組み合わせで、TNSの文字列をそのままサーバー名として与えることで、tnsnames.oraに追記する必要はないことが分かったので例を示しておく。 ADOをWindows Scripting Host (WSH)のJScriptから使った場合でまとめておく。 /* * テーブルをTSVファイルにダンプする * Copyright (c) 2016 Ryo ONODERA, All rights reserved. * License: 2-clause BSD */ var bTable = "table1"; // Define columns var columns = ["column1", "column2", "column3", "column4", "column5", "column6", "column7", "column8", "column9", "column10", "column11", "column12"]; // Start main(); // YYYYMMDDhhmm function getNow() { var date = new Date(); //date = new Date(2016, 1, 3); var dateString = (""…

GXemul 0.6.0.1のエミュレートする環境

GXemul 0.6.0.1でエミュレートしているマシンの情報がGoogleで検索してもうまく出て来ないので、gxemul -Hの結果を掲載しておく。 改めて見てみると、知らないアーキテクチャーも含めて本当に多くをエミュレートしている。 Available template machines: testm88k Experimental M88K machine. testmips Experimental MIPS machine. -------------------------------------------------------------------------- The following applies to the LEGACY modes only: Available CPU types: Alpha: 21064 21066 21164 21164A-2 21164PC 21264 21364 ARM: ARM3 ARM610 ARM610 ARM620 ARM700 ARM710 ARM710A ARM720T ARM740T4K ARM740T8K ARM7500 ARM7500FE ARM810 ARM920T ARM922T ARM940T ARM946ES ARM966ES ARM966ESR1 ARM1020E ARM1022ES ARM1026EJS ARM1136JS ARM1136JSR1 SA110 SA1100 SA1110 TI925T IXP1200 80200 …