Android tabletのadware

適当にアプリケーションをインストールさせている
Asus TF201というAndroid tabletがあるのだが、それにadwareが入って
しまったらしくて、鬱陶しくて仕方がない。
そこで、駆除してみることにした。

最初は、
avast! Mobile Security
https://play.google.com/store/apps/details?id=com.avast.android.mobilesecurity
というのを入れて一通りスキャンしてみたのだが、このソフトウェアは
adwareは検出してくれないらしく、何も検出されなかった。

そこで、次に
Dr. Web アンチウイルス Light (free)
https://play.google.com/store/apps/details?id=com.drweb
というのを入れてみると、結構な数のadwareが検出された。

これで、鬱陶しいのがなくなると良いのだけれども。

第1種衛生管理者

第1種衛生管理者の資格を取ろうと思い立った。
そこで、定番らしいテキストを購入して、昨日届いた。

まだ、あまり見ていないけれども、まあ、仕事にも役立つということで。

MacBook Air 11-inchのキーボード到着

今日帰ると、MacBook Air 11-inch mid 2012用のキーボードが到着していた。
パンタグラフも痛んでいたので、キートップと一緒に交換した。

これで快適。

追記
中国の北京から発送された荷物だった。

USB-RS-232C変換ケーブルの仕様

qnap TS-110にNetBSDを載せられないかと思って調べていると、
http://www.cyrius.com/debian/kirkwood/qnap/ts-119/
というページを見つけた。
Debian GNU/Linuxをインストールしようという話だ。
ざっと読んでみて分かったのは、シリアルコンソールがないと
辛そうだと言うこと。

http://www.cyrius.com/debian/kirkwood/qnap/ts-119/serial.html
によると、PHR-4というコネクターまでは用意してあるようだ。
実機は、データを新NASに移行中で開けられない。

で、USB-RS-232Cの方はと言うと、3.3Vだとのことなので、
http://akizukidenshi.com/catalog/g/gM-05840/ TTL-232R-3V3
を勧められた。
手元には、ADM3202ANと書いてあるICもあるのだが、配線するための
半田ごてを買うことを考えると、このケーブルを買った方が安い。
まあ、結局半田ごては、必要になるのかもしれないが、最初の工作
として、今回のは敷居が高いというか、本題から離れ過ぎてしまう。

手元にもUSB-携帯電話ケーブルがいくつかあるので、
これまた紹介された
http://www.geocities.jp/aesthetic_music/memo/scon.html
で、適合するか調べてみた。
すると、SUNTAC PS64P1、SOURCENEXT SSCPUV303Cともに5Vとのことで、
使えないことが分かった。

TS-110の本体を開けてみて、TTL-232R-3V3をコネクター部品と一緒に購入するかな。
でも、実際に見てみてでないと選べないので、日曜日に秋葉原を
通った時に秋月に行けば良かった。

MacBook Airのキーボードの右commandキーをCtrl(control)キーにする

壊れてしまったMacBook Airのキーボードだが、カーソルキーが使えなくなったので、
ctrl+nとかの使用頻度が非常に上がって来た。
となると、左にしかctrlがないのが不便になって来る。

そこで、これまでのcaps lockを左ctrlにするのに加えて、右commandを
ctrlにしたので、書いておく。

xevによると、右commandキーは、Super_Rであり、単純にSuper_Rをcontrolの
グループに加えるという方策を取ることにした。

% cat ~/.Xmodmap
! Make Super_R as Ctrl
remove mod4 = Super_R
add control = Super_R

として、startxし直したが、有効にならない。
いろいろ試してみて、助言もいただいて、

/etc/X11/xorg.confでCaps Lockをctrlにしていたのを無効にした上で、
同じことを~/.Xmodmapですることにした。

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbOptions" "ctrl:nocaps"
EndSection

としていたのを、

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
# Option "XkbOptions" "ctrl:nocaps"
EndSection

にし、~/.Xmodmapは以下のようにする。

% cat ~/.Xmodmap
! equivalent to ctrl:nocaps in xorg.conf
remove Lock = Caps_Lock
add Control = Caps_Lock
keysym Caps_Lock = Control_L

! Make Super_R as Ctrl
remove mod4 = Super_R
add control = Super_R

/etc/X11/xorg.confと干渉するとか、良くないよな…

ちなみに、キーボードはさきほど出荷されたとのこと。

Apple MacBook Air 11-inch mid 2012のキーボード

買って半年も経っていないのに、キーボードのキートップが
破損してしまった。Apple storeに持ち込んでみたが、保証は効かず
16000円強かかるとのことで、店員の人にウェブで探してみては
どうかとアドバイスをいただいた。

http://www.powerbookmedic.com/MacBook-Keys---Individual-Key-Keycap-p-16959.html
には、MacBook Air 11-inchのもののバラは売っていないっぽい。

http://www.ifixit.com/MacBook-Parts/MacBook-Air-11-Inch-Mid-2011-Upper-Case-with-Keyboard/IF108-018
は修理に出すより高い。

と言うことで、ebayで探すことにした。
ifixitによると、mid 2012と2011は同じキーボードだそうだ。

一番リーズナブルな値段だったのが、これ。
http://www.ebay.com/itm/Fast-Ship-Replacement-US-Layout-Keyboard-for-Macbook-Air-A1370-11-11-6-2012-11-/170969518016?pt=PCA_Mice_Trackballs&hash=item27ce93cfc0

私のMacBook AirはUSキー配列なので、こういう時に便利だ。

しかし、買って半年で破損してしまうとは、残念だ。

もし日本語配列のものを探しているのであれば、
http://www.hanashin-world.com/SHOP/0151780.html?prd=google_ps&bid=56000000
が候補になったのかなと思う。

私の破損したキーは日本語配列でも一緒かもしれないが、他のキーの破損
も起きるかもしれないと考えると、一式持っておくのも良いのかもしれない。

一週間くらいで届くかな?

Open sourceなGroupware softwareの比較

某所に置いているGroupwareを比較した文書は、他の駄文よりも
アクセスが多いようなので、更新が簡単なこっちでまとめ直してみる。

まず、使っているのは、open sourceではないもので、GroupSession 4.1.0。
http://www.gs.sjts.co.jp/v4/index.html
から入手できる。
Javaで書かれており、apache-tomcat6を使って設置する。
sourceは公開されているが、open sourceではない。
私はJavaも分からないので、修正することもないし気にしない。
かっちりとした作りで、使いやすい。
外部のデータベースサーバーを使ったり、LDAPと連携したりというのは、
無料版ではできない。まあ、sourceはあるのでJavaの分かる人ならば
そう難しいことではないのかもしれない。


使ってみたのものとして、Aipoがある。
http://www.aipo.com/
からdownloadできる。
GPL v3なopen sourceと言うか、free softwareなグループウェア。
ちょっとふわっとした作りの所もあるが、version 7になって
ちょっと良くなったかも。
なんか使い方が良く分かっていない人がいるようなのだが、
pkgsrc/www/aipo/MESSAGEの通りやれば良いはず。
PostgreSQLを使っており、大規模に展開しても、
パフォーマンスが落ちることはないのかな。


他にはJoruri Gwがある。
http://joruri.org/
からdownloadできる。
Joruri Gwは、他のJoruriシリーズより導入実績があまりないようだ。
古いバージョンでは、LDAPと連携するとloginできなかったので、
使用をあきらめた経緯がある。ものはとても良い。
自前で認証機構を持っていないも同然なので、LDAPの導入が不可欠である。
userminとかでpasswordを変更できるようにしないといけないのも、
ちょっと敷居が高いかもしれない。
最大の問題は、Ruby on Railsで書かれていること。
Ruby on Railsのソフトウェアはpkgsrcに入れようとすると、
gemのバージョンの要求の問題などでうまく維持できない。
なので、あまり試す気がなくなってしまう。


Feng Officeも良い。
http://www.fengoffice.com/web/
ただし、サイボウズのような複数人の予定を日本人好みに上下に並べて
表示する機構がないので、導入の支障になるかもしれない。


他にもeNote for Communityがあるのだが、更新されていない。
ほかにも、英語メインで良ければ、いろいろある。

他にも日本語のものがあれば教えてください。

ISC dhcpdを使って固定IPアドレスの割り当てを簡単にし、bindにDDNSも設定する

今まで、/etc/hostsに記入して、ホスト名の解決をしてきたのだが、
仮想マシンが多いのでマシン数が多いのもあって、
それぞれのマシンで同期するのが面倒になっていた。

今回、三菱電機 MITSUBISH ME R7150-100というHP 9000/715/100のOEM機を
いただいたので、それでNetBSD/hp700を動かしてみるのにdhcpdが
必要になった。そこで、かねてから思っていた、以下のようなことを
実施することにした。
ここでは、最初の2つのみ記載する。

* MACアドレスを見て、いつも同じIPアドレスをDHCPで振り出す。
* bindのDDNS機能を使って、HDCPで振ったホスト名とIPアドレスを正引き逆引きできるようにする。
* netbootさせるためのBOOTPの設定

DHCPサーバー、DNSサーバー(bind)を動かすのは、NetBSD/cobalt 5.2とする。
他のNetBSD 5.2でも全く同じである。


# ISC DHCPDで固定IPアドレスの割り当てをする。

## 自分を固定IPアドレスを使うように設定する。
これは私の場合には改めて実施した訳ではないのだが、
DNSサーバーと言うことで、自分自身のIPアドレス等を
DHCPで設定するのは楽しくないので、/etc/rc.confに以下のように
設定しておく。

hostname="nickel.elements.tetera.org"
ifconfig_tlp0="inet 192.168.81.249 netmask 0xffffff00"
defaultroute="192.168.81.1"

本当は、/etc/ifconfig.tlp0や/etc/mygate、/etc/mynameを使うのだろうが、
見通しが悪くなるような気がして、私は使っていない。
これらを使うのも、今回の設定ができれば、機会はなくなってしまうが。

この辺が分からなければ、
http://www.netbsd.org/docs/network/index.html
を読めば良いと思う。


## /etc/rc.confにでDHCPDを起動するように設定する。

dhcpd=YES
dhcpd_flags="-q tlp0"

と/etc/rc.confに追記する。NetBSD/cobalt 5.2を動かしているCobalt Qube 2は
プライマリとセカンダリの2つのイーサネット・ポートを持っている。
私はプライマリにしかUTPケーブルをつないでいないので、
プライマリであるtlp0を使うように指定した。


## 空の/var/db/dhcpd.leasesを用意する。
DHCPDの起動には、/var/db/dhcpd.leasesが必要であり、ないとエラーが出て
起動できない。

# touch /var/db/dhcpd.leases

として、空(サイズ0)のファイルを作っておく。

## /etc/dhcpd.confを作成する。
/etc/dhcpd.confはデフォルトでは存在しないようである。
間違って/etc/dhcpcd.confに追記しないこと。
私は最初困惑した。

# vi /etc/dhcpd.conf

として、以下のような内容を入力する。
#を付けてコメントを付けておくので、そこは入力しなくても良い。

# DHCPで割り当てるホスト名のドメイン名を指定する。
# bindの方と合わせておかないといけない。
option domain-name "elements.tetera.org";

# DDNSを有効にする。
ddns-updates on;
# DDNSでbindに登録しに行くようにする。
ddns-update-style interim;
# 固定IPアドレス(下のfixed-address)の際にもDDNSに登録しに行くようにする。
update-static-leases on;

# 標準のIPアドレスのリース時間。適当に変えたら良い。
default-lease-time 604800;
max-lease-time 604800;

# HP 900/715/100のnetbootでBOOTPを使うので有効にする。
allow bootp;

# DHCPで配信するDNSサーバーのIPアドレスを指定する。
option domain-name-servers 192.168.81.249;

# 192.168.81.0/24が我が家のネットワークなので、それを指定する。
subnet 192.168.81.0 netmask 255.255.255.0 {
# 固定IPアドレスは192.168.81.101以降にするので、その前は動的IPアドレス
# 割り当てをするようにする。fixed-addressの値がこのrangeの範囲に
# 入っているとエラーになる(DHCPDは起動はするが)。
range 192.168.81.2 192.168.81.100;
# DHCPで配信するサブネットマスクを指定する。
option subnet-mask 255.255.255.0;
# DHCPで配信するデフォルトルーター(デフォルトゲートウェイ)を指定する。
option routers 192.168.81.1;
# DDNSに登録する時に使うドメイン名を指定する。
# Windowsのようにホスト名を返してくるものには必要ないはずであるが、
# dhclient bge0のようにホスト名を指定しない場合に対応するために
# 必要になる。dhcpcdを使えば良いのかもしれないが…
ddns-domainname "elements.tetera.org";

# 正引きのホスト名を登録する先を指定する。
# 最後のピリオドに注意。
zone elements.tetera.org. {
primary 127.0.0.1;
}

# 逆引きのホスト名を登録する先を指定する。
# 最後のピリオドに注意。
zone 81.168.192.in-addr.arpa. {
primary 127.0.0.1;
}

# 固定IPアドレスを割り当てるマシンの情報を指定する。
host calcium {
# MACアドレスを記載する。
hardware ethernet CC:CC:CC:CC:CC:CC;
# 割り当てる固定IPアドレスを指定する。
# 上にも書いたが、動的割り当ての範囲に含まれないように注意する。
fixed-address 192.168.81.241;
# DDNSで正引きを登録する際に使うホスト名を指定する。
ddns-hostname "calcium";
# 以下は、netboot用の設定。
filename "SYSNBSD";
next-server 192.168.81.249;
option root-path "/export/hp700/root";
}

# NetBSD機の設定。
host tellurium {
# MACアドレスを指定する。
hardware ethernet DD:DD:DD:DD:DD:DD;
# 割り当てる固定IPアドレスを指定する。
fixed-address 192.168.81.118;
# DDNSで正引きを登録する際に使うホスト名を指定する。dhcpcdを使えば不要に
# できるのように思う。
ddns-hostname "tellurium";
}

# Windows機の設定。ホスト名が報告されるので、改めて指定はしない。
host niobium {
hardware ethernet EE:EE:EE:EE:EE:EE;
fixed-address 192.168.81.108;
}

}


# DNSサーバー(bind)の設定

$ cat /etc/named.conf

# $NetBSD: named.conf,v 1.5.2.1 2011/01/16 13:00:02 bouyer Exp $

# boot file for secondary name server
# Note that there should be one primary entry for each SOA record.

options {
directory "/etc/namedb";
# DNSSECは設定しないので、エラーが出ないように無効にしておく。
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside auto;
managed-keys-directory "keys";
allow-recursion { localhost; localnets; };

#
# This forces all queries to come from port 53; might be
# needed for firewall traversals but should be avoided if
# at all possible because of the risk of spoofing attacks.
#
#query-source address * port 53;
# ISPのDNSサーバーを指定する。これはso-netの例。
forwarders {
202.238.95.24;
202.238.95.26;
};
};

# RNDCを使う時は設定する。今回は使わない。
controls {
inet 127.0.0.1 allow { localhost; } keys { RNDC; };
inet 192.168.81.0 allow { 192.168.81.0/24; } keys { RNDC; };
};
include "/etc/namedb/rndc.key";

# 192.168.81.0/24のネットワーク向けの設定をinternalというviewで指定する。
view "internal" {
# bindにアクセスできるIPアドレスの範囲を指定する。127.0.0.1を忘れないこと。
match-clients {
127.0.0.1;
192.168.81.0/24;
};
# ここは、bindのデフォルトのまま。
zone "." {
type hint;
file "root.cache";
};
# ここは、bindのデフォルトのまま。
zone "localhost" {
type master;
file "localhost";
};
# ここは、bindのデフォルトのまま。
zone "127.IN-ADDR.ARPA" {
type master;
file "127";
};
# ここは、bindのデフォルトのまま。
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" {
type master;
file "loopback.v6";
};
# 自宅ネットワークの正引きの情報を指定する。
zone "elements.tetera.org" {
type master;
file "elements.tetera.org";
# DDNSで登録するのは、127.0.0.1からだけとする。
allow-update {
127.0.0.1;
};
};
# 自宅ネットワークの逆引きの情報を指定する。
zone "81.168.192.in-addr.arpa" {
type master;
file "81.168.192.in-addr.arpa";
# DDNSで登録するのは、127.0.0.1からだけとする。
allow-update {
127.0.0.1;
};
};
};


正引きのと逆引きゾーンファイルを書く。これは、DDNSでホストを登録に成功すると
勝手に書き変わる。
ここでは、DHCPD/DNSサーバーとファイルサーバーのみ固定IPアドレスで指定しておく。
# 動作確認していないので、これで合っているかは確証がない。
# おかしかったら他のサイト等を見たら良い。

$ cat /etc/namedb/elements.tetera.org

$TTL 3600 ; 1 hour
elements.tetera.org IN SOA nickel.elements.tetera.org. root.nickel.elements.tetera.org. (
8 ; serial
3600 ; refresh (1 hour)
900 ; retry (15 minutes)
3600000 ; expire (5 weeks 6 days 16 hours)
3600 ; minimum (1 hour)
)
IN NS nickel.elements.tetera.org.

nickel IN A 192.168.81.249
silicon IN A 192.168.81.214


$ cat /etc/namedb/81.168.192.in-addr.arpa

$TTL 3600 ; 1 hour
81.168.192.in-addr.arpa IN SOA nickel.elements.tetera.org. root.nickel.elements.tetera.org. (
7 ; serial
3600 ; refresh (1 hour)
900 ; retry (15 minutes)
3600000 ; expire (5 weeks 6 days 16 hours)
3600 ; minimum (1 hour)
)
IN NS nickel.elements.tetera.org.
214 IN PTR silicon.elements.tetera.org.
249 IN PTR nickel.elements.tetera.org.


# bindとDHCPDを起動する。

# bindの起動をする。

/etc/rc.confに以下のように書き加える。

named=YES

その上で、bindとDHCPDを起動する。

# /etc/rc.d/named start
# /etc/rc.d/dhcpd start

エラーがないか、tail -f /var/log/messageとでもして見ておくと良い。
エラーがないようであれば、DHCPでIPアドレス等をもらいに行ってみる。
成功したら、fixed-addressで指定したIPアドレスが割り当てられると
同時に、/etc/namedb/*jnlというバイナリーファイルが生成される。
また、この時ゾーンファイル(テキストファイル)も更新される。

電子メールでtwitterに投稿する

このブログの記事も電子メールで投稿しているのだが、
twitterも電子メールで投稿できる。

かつては、twtr.jpドメインでそういうサービスがされていた
ように思うのだが、いつの間にかアナウンスもなしに
終ってしまったように思う。
今は、サードパーティーのサービスしかないようで、
今回はTwitter CounterのTwittermailサービスを使ってみることにした。

http://twittercounter.com/pages/settings/twittermail
で、ランダムに設定された電子メールアドレスが表示されるので、
そこに送れば良い。写真を添付しても良いとのこと。

クライアントの表示については、Twittermailと表示されて欲しい所だが、
The Visitor Widgetと表示される。
tweet数の制限とかは分からない。

P.S.
この記事を消してしまったので、復活させた。

電子メールでtwitterに投稿する (2)

かつてtwtr.jpに電子メールでtweetするサービスがあったと書いたが、
http://blog.jp.twitter.com/2010/01/blog-post_26.html
にあるように、携帯電話からtwtr.jpにログインすると、
各種設定の中に、投稿用の電子メールアドレスが表示される。
前に把握した時から変わってしまったので、サービス自体がなくなった
と勘違いしてしまった。

また、携帯電話のキャリアの電子メールアドレスから投稿しないと
駄目なようだ。PCで使っているISPの電子メールアドレスから
送ったが、tweetできなかった。

まあ、PCからの時は、twittermailを使うようにしよう。

P.S.
クライアントはKeitaiWebと表示されるように変わっている。
前は電子メール経由であることが分かるようになっていたはずだが。

NetBSD上でDeepSeek R1 LLMを動かしてみる

この記事は、 NetBSD Advent Calendar 2024 の21日目の記事です。 はじめに 中国のHangzhou DeepSeek Artificial Intelligence Basic Technology Research Co., L...