2013/11/24

Jpegoptimのrpmを作る

CentOSならrpmで管理したい

パッケージ管理システムを使うのは、軟弱という説もあるが、無用なトラブルを避けるという点で 賢明な選択だと思う。
しかし、新しいソフトウェアだったりマイナーなものだったりすると、rpmが用意されていないことがある。

Jpegoptim

tjko/jpegoptim · GitHubはJpegの容量を削減するソフトウェアで、 Timo Kokkonen - Projectsで公開されている。rpmは用意されていないのだが、ソースをみると、redhatディレクトリにspecファイルが用意されている。specファイルはrpmを作るための設定ファイルなので、これでrpmを作ってみることにする。

specファイルからrpmを作る

SPECファイルからのRPMパッケージの作成という、そのものずばりのページがある。 これに従って作ればいいのだが、ちょっと手を抜く。

  1. Timo Kokkonen - ProjectsからJpegoptimのソースをダウンロード。
  2. ダウンロードしたソースを展開して、redhatディレクトリにあるjpegoptim.specを /usr/src/redhat/SPEC/ にコピー。
  3. ダウンロードしたソースをそのまま(tar.gzのまま) /usr/src/redhat/SOURCE/ にコピー。
  4. sudo rpmbuild -ba jpegoptim.spec と入力して、build。
  5. /usr/src/redhat/RPMS/ にあるディレクトリの下に、rpmが生成される。
rpmさえできてしまえば、パッケージ管理システムにおかませ。



2013/11/10

Nexus5のWifiを安定させるのは、このアプリ!?

Nexus 5でもWifiが不安定?すぐに切れる?

Nexus5を早速入手。取り敢えずの設定をアクセスポイントにして、セットアップ中のアップデート処理を終わらせる。 アップデートが終了したら、環境設定。セットアップの時には使わなかったアクセスポイントも、繋げられるように設定を追加。
すると、問題発生。接続が安定しない。しばらくすると、切断されてしまうのだ。HTC J ISW13HTのWifiを安定させる! | Hiroaki's blogと同じ症状。
全く繋がらないというわけではなく、少しの間はつながっている。が、気がつくと切れていて、LTEで通信している。

このアプリで解決?!

動きをよく観察していると、どうやら、切断された後の再接続が行われていない様子。自動接続してくれる Auto WiFi Toggle - Google Play の Android アプリを入れてしばらく使ってみたところ、問題が解消している感じ。これで解決?!

無線LANの設定が問題?(2016/6/26追記)

Wifiがつながらない?Channel14が原因かも? | Hiroaki's blog にも書いたのだが、無線LANで使用できるChannelの中に日本専用のものがある。Nexus5の設定を色々見たけど改善しないという場合、無線LANの基地側の設定を見てみよう。チャンネルを「自動」設定にしていると、周りを見て使われていないチャンネルを使おうとするので、Channel14になっているかもしれない。
本当にChannel14だと通信できないのか、試してみたわけではない。試した人は、コメントで知らせてくれると嬉しい。

インストールしたWifi関係のアプリ

Wifi再接続
Auto WiFi Toggle
Hideki Kato
価格:undefined  平均評価:4.2(1,362 件)


Wifiが通信できなければ切断
chkConnect
hiroaki0404
価格:undefined  平均評価:0.0(0 件)


公衆無線LANサービスに自動ログイン
公衆無線LANログイン - moopener
NetVision Co.,Ltd.
価格:undefined  平均評価:3.8(88 件)



2013/10/03

Macにリモートログインできない原因は、こいつだ!

概要

sshでリモートログインできるように設定し、netstatでも問題ないと確認したにもかかわらずログインできない場合、アンチウイルスソフトがファイアウォールの設定を変えたことが原因かもしれない。

リモートログインできない

いつの頃からか、mac-miniにsshでログインできなくなっていた。ログインしようとしても、しばらく待たされた後、timeoutしてしまう。
mac-mini側でnetstatしてみると、ちゃんとPort 22でListenしている。IPv4だけでなく、IPv6でも。

解決策

コンソール.appを開いて、ログリスト /var/logの中にある appfirewall.log を選んだ状態で他のマシンからsshでログインしようとすると、 Deny sshd-keygen-wrapper connecting from xxx to port 22 proto=6なんて行が出てくる。また、ググって見つけた 画面共有とファイアウォール: Apple サポートコミュニティには、「システム環境設定>ファイアウォール の確認」とか、 /Library/Preferences/com.apple.alf.plistとか書いてある。/Library/Preferences をみてみると、com.apple.alf.plistの他に、com.apple.alf.plist~origなんてファイルがある。作った覚えはないので、一旦com.apple.alf.plist~origをcom.apple.alf.plistにコピーしてから、「システム環境設定>セキュリティとプライバシー のファイアウォールタブ」をみてみる。 ファイアウォールオプション...ボタンを押して中身を見ると、sshd-keygen-wrapperが「外部からの接続をブロック」となっていた。
これを、「外部からの接続を許可」に変えたところ、無事復活。

犯人探し

自分でバックアップファイルを作るときは、~origとは付けないので、何らかのアプリが行ったのだろうと予想できる。ファイルの日付から、Mac用の無料のアンチウイルスソフトをいろいろ試した頃に作られたっぽい。どのソフトなのかわからないけど、問題は解決したから、いいや。

おまけ

Emacs+ WanderlustでPOP3sの サーバのメールを読もうとしたところ、途中でだんまりになるようになった。アンチウイルスソフトのavast!の設定で、Scan secured connections のチェックを外したところ、解決。



2013/09/01

HTC J ISW13HTのWifiを安定させる!

Wifi接続が不安定

auで3円運用するための、解約メモ | Hiroaki's blogで購入したHTC J ISW13HT、Wifi接続が不安定で、まともに使えない。 2.4GHzのアクセスポイントが2つ、5GHzのアクセスポイントが1つあり、5GHzのポイントに接続しにいくものの、IPアドレスが割り当てられるまで待ちきれないらしく、割り当て中の表示になったと思ったら2.4GHzのポイントに接続しに行き、結局アドレスが割り当てられない。
WifiをチェックするAndroidアプリを作った | Hiroaki's blogの正式公開版をGoogle Playから入れていたので、それが原因かとアンインストールしてみたのだけど、状況変わらず。

設定の問題?

ふと思って、Wifiの設定を5GHzだけにしてみた。

今までとは違い、ちゃんとIPアドレスが割り当てられ、通信できるようになった。原因って、これ?

いちいち切り替えるのは不便

そうと分かっても、公衆無線LANサービスの多くのアクセスポイントはまだ2.4GHzだし、でも、5GHzでサービスしているポイントであれば、空いているであろう5GHzで接続したい。でも、いちいち切り替えるのは面倒。結局、「Wifi使えねー」ってことになっちゃうよね、こんな状態だと。

無線周りのupdateが出るまで、この端末は外に持ち出せないかなぁというのが結論。安く手に入れたのがせめてもの救い。



MACのメニューバーが狭い

メニューバーが狭い

アプリをいろいろインストールしたら、メニューバーにアイコンがいっぱい並ぶようになった。

メニューバーにアイコンが表示しきれていない!メニューバーのアイコンのメニューから操作するようなアプリが使えない事態に!

これか!

みんなどうしているんだろう?広いディスプレイを使うからこういった問題には直面しないのか? MacBook Airを使うような人は、そんなにアプリを入れないのだろうか?と思いながらググってみたところ、 目から鱗が落ちるとはこのことだった。『AccessMenuBarApps』でメニューバーを広く使う! | 男子ハックという記事を発見。早速入れてみる。

これか!上のメニューバーのようにいっぱいいっぱいになっていても、AccessmenuBarAppsを起動すると、下のようにすっきり。
いちいちアプリを立ち上げるのはかったるいのだが、ジェスチャーで起動するように設定して解決。これは便利!



2013/08/26

P-01D復旧作戦

文鎮化?

なんか調子が良くないなぁと思ってP-01D を再起動してみたら、Docomoのロゴの画面から進まない。 ロゴを出して固まっているのではなさそうで、よーくみていると、一定期間でロゴが一瞬消える。 が、またロゴが表示されて繰り返し。
root取って何か作業していたわけでもなく、しいて言えば、ネットワークドライブのアプリで大量のファイルがあるフォルダを開いていたくらい。

復旧できないかもがいてみる

P-01Dのアプリを整理する | Hiroaki's blogで 使用したroot化セットを使うと、一応、USB経由でリカバリーモードに入れた。手順に従って緊急用のイメージを入れていたので助かった。
緊急用のイメージで起動して、バックアップを戻そうとしたら、バックアップがなかった。いや、root化セットでバックアップは作成していたのだけど、それを戻そうとしても、通常起動しないときは無力っぽい。いや、いろいろがんばればできるのだろうけど。

諦めて

結局、■ P-01D 再設定 ■: boon blogを参考に、factory reset。きれいに初期化されたので、すべて再設定。もちろん、注意! Google 2段階認証プロセスにしていたら、Android 2.x用のパスワードが必要 | Hiroaki's blogに書いたように、パスワードを再度準備。
端末だけ再設定して、root化セットの復元メニューで戻せたのかもしれないけど、いい機会なので、アプリも入れなおし&削除しなおし。
今度はリカバリーモードのメニューからもバックアップを作成しておく。次に同じ症状がでても、今度はリカバリーモードからリストアできるはず。



2013/08/11

P-01Dのアプリを整理する

アプリがいっぱい…

ぷらら3Gでテザリング | Hiroaki's blog にも書いたけど、P-01D にはプレインストールされているアプリがたくさんあり、自分が使いたいアプリを入れるスペースがほとんど残っていない。 ガラケーと同じノリで、プレインストールで小金を稼ごうとした結果なのかもしれないけど、このままでは不便。

root化してアプリを消す

プレインストールされているアプリは、普通には消せない。ので、root化して消すことにする。
root化は危険を伴う作業なので、自己責任で行うこと。この投稿も、紹介する記事も、何かトラブルが発生したとしても、責任を負うものではない。
root化
こちらで紹介されているroot化セットを使って、バックアップを取ってからroot化を行う。
アプリの整理
Titanium Backupを入れる。このアプリで、プレインストールされているアプリを消す。 を参考に。
Docomoの契約回線を使うわけではないし、通話もしないので、ガシガシ消しちゃう。



FANの掃除にエアダスター

暑い

夏だということを考慮しても、今年は暑い。外気が高ければ当然マシンも熱くなる訳で、MacBook Airのキーボードが結構熱い。
熱い原因は外気だけではない。ホコリが溜まって排気がうまくいっていないということもある。

掃除

そんなわけで、マシンの掃除。MacBook Airはキーボードの上側、ディスプレイとのつなぎ目にFANの口があるので、ホコリを取りにくい。 取りにくいのであれば吹き飛ばしてしまえ!ということで、Digio エアダスター/ノンフロン 390ml DGC-JB8を購入。写真だと大きさがわかりにくいけど、500mlのペットボトルよりも大きい。ノズルが付いているので、今回のような狭いところにもピンポイントで吹きつけられる。


2013/08/06

開発環境もクリック一発! Nitrous.IO

もっと簡単に環境を用意する

ドットインストールのRuby on Rails入門をRails4でやってみる | Hiroaki's blogでは環境を用意するところから始めたが、もっと手軽に!というのであれば、Nitrous.IOというのもアリ。

Nitrous.IO

Nitrous.IOは、クリック一発で立ち上がる開発用サーバ+Web版IDE。サーバはAmazon EC2に用意される。
のいずれかを使った開発を行うことができる。
Web版IDEにはサーバにログインした状態のフレームも用意されるので、IDEから抜けることなく、Webアプリの雛形を生成することが可能。
Better JavaとしてScalaGroovyを試してみたいので、これらの環境も提供してほしいなぁと思ったり。
Nitrous.ioへの登録は、こちらからどうぞ。

手軽に環境が用意できるのは嬉しいけど、「環境構築はさっぱり」って人を量産することにならないかな?


2013/07/20

ドットインストールのRuby on Rails入門をRails4でやってみる

Javaだけやっているのも危険ではないか?ということで、3分動画でマスターする初心者向けプログラミング学習サイト - ドットインストールRuby on Rails入門をやり始めてみた。

どーせやるなら最新版で!ということで、Rails4 と Ruby 2.0の環境を 入門Chef Solo - Infrastructure as Codeをみながら作った。のだが、当然のことながら、バージョン違いでレッスンの通りでは動かない箇所がちらほら。

#26 新しい記事を追加しよう (3)
万年素人からGeekへの道のroute_paramsメソッドをまねて、post_paramsメソッドを作る。また、Post.newのパラメータをpost_paramsと書き換える。
#33 記事を更新してみよう (3)
これも上と同じ。update_attribute()の引数をpost_paramsにする。
#36 削除処理をAjax化しよう (2)
ずばりな記事がこれ。ドットインストール Ruby on Railsの基礎 #36 でAjaxによるPost削除処理が動かない - 定食屋おろポン

この先はこれからやるので、また動かない箇所が出てくれば、その2で。





2013/06/22

Privoxyのログをfluentdで送る

いろいろなログをfluentdに集めてみるシリーズ。Privoxyのログを集めてみる。PrivoxyはiPhone, Android用のProxyをたててみる - 3 | Hiroaki's blogとか。
を参考に、formatやtime_formatを決めてみた。

<source>
  type tail
  format /^(?<time>[^ ]* [^ ]*) (?<id>[^ ]*) (?<action>(Request|Crunch:[^:]*):) (?<path>.*)$/
  time_format %F %T.%L
  path /var/log/privoxy/logfile
  pos_file /var/tmp/privoxy-logfile.pos
  tag td.privoxy.access
</source>
これをtd-agent.confに追加。


2013/05/12

Macbooi Airの温度情報をfluentdで扱う

httpのアクセスログじゃぁ物足りないので、Macの温度情報を扱ってみる。
MacでScreenのステータスライン(hardstatus)にCPU使用率&温度とメモリ使用率を表示させる - mfumiの日記を参考にTemperature Monitorをインストールし、出力をちょっと整形。
#!/bin/sh
/bin/echo -n "`/bin/hostname` "
#/bin/echo -n "macbook-air "
cmd=/Applications/TemperatureMonitor.app/Contents/MacOS/tempmonitor
$cmd -tv|/usr/bin/sed 's/,/ /g'
2行目と最終行の空白部分はタブ。
これを動かせば、マシン名とあちこちの測定結果をTSV形式で出力してくれる。ので、fluentdのexecプラグインでキックするようにする。
<source>
  type exec
  command 上記script
  keys host,time,core1,core2,core3,core4,disk,battery,charge,battery2,battery3,diode,proximity,palmrest,heatsink,logicboard,mainboard,bay
  tag td.system.temperature
  time_key time
  time_format "%Y-%m-%d %T %z"
  run_interval 300s
</source>
keysの行は
tempmonitor -th
の出力を見て決定。マシンによって測定できる内容が変わるのだそうだ。


2013/05/05

ビックデータを体験する-準備編

ビックデータブームって

ビックデータブームって、一昔前のデータウェアハウスブームと同じような臭いがする。
で、こういったものは、とにかくデータがないと始まらない。分析しようと思ってからデータを集め始めても、遅いのだ。
とはいうものの、分析対象とするデータをいろいろと集めるのもシンドイ作業。手元にあるデータで手っ取り早く試してみたい。
もう1つの問題は、データをどこに集めるのかということ。集めるための大容量のサーバを用意すべきなんだろうけど、手軽に試すという範疇を超えてしまう。

Treasure Data

こういった問題を解決する方法があった。Hadoop-based Big Data as a Service on the Cloud | Treasure Dataというのがあり、容量の制限はあるものの、試してみることができる。
データは、syslogで収集しているものを使えばよい。とにかくまずは使ってみて、そこから何に適用できるかを考える。

td-agent

Treasure Dataに登録すると、そのままデータ登録・操作のプログラムのインストールとチュートリアルに進むようになっているので、その手順に従う。
td-agentは、乱暴に言うと、fluentdの安定版。従って、td-agentが提供されていないOSでは、fluentdを使う。他にも、fluent-agent-liteというのがあるけど、手軽に試してみる段階では考えなくてよさそう。

td-agent(fluentd)は
  • データを受け取って
  • フォーマットの整形とかして
  • 保存先に送信する
ということをやる。今回は
  • データはsyslog
  • フォーマットの整形はなし
  • 保存先はTreasure Data
とし、td-agent.conf(fluentd.conf)に設定を記述していく。

syslogからのデータ取得

td-agentは、syslogのようにデータを受け取ることが可能なので、
<source>
type syslog
port 5140
bind 127.0.0.1
tag td
</source>

のように記述しておくと、port 5140で動いているsyslogdのように見える。なので、syslogd.confに

*.*       @127.0.0.1:5140
と書いておくと、今のsyslogが受信している内容をすべてtd-agentに渡すことができる。

Treasure Dataへ保存

<match td.*.*>
  type tdlog
  apikey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  auto_create_table
  buffer_type file
  buffer_path /var/log/td-agent/buffer/td
  use_ssl true
  flush_interval 10s
</match>
と記述しておくと、自動でfacility名でデータベースを作り、priority名でテーブルを作ってくれる。

td-agentを起動してエラーが出てなければ、syslogdにシグナルを送ってsyslogd.confの再読み込みをさせて、準備OK。

td

Treasure Dataに保存したデータにアクセスするのが、tdコマンド。これについては、次回。


2013/04/14

サーバーのマザーボード交換

家のネットワークをようやくギガビットにしたので、サーバもバージョンアップしてGigaに対応したドライバを使うようにしようと思った。そこで、FreeBSD7→8にしようと、kernelを入れ替えて再起動させたところ、起動時のbeep音がしない。ディスプレイを繋げてみたところ、BIOSの画面すらでていない。1uのラックマウント型のケースに入れているので、熱がこもってどこかイカれてしまったんだろう。
インテル® デスクトップ・ボード D425KT。これ、いつ買ったんだっけ?と悩んでもサーバが動かないまま不便なので、代わりのマザーボードを購入。


1uのラックに収まるマザーボードは、意外と少ない。オーディオの縦に並んだ端子が、高くてひっかかってしまうのだ。というわけで、今回も無理矢理押し込んで使えているIntelのマザーにする。インテル Atom Onboardマザーボード BOXD2500HN 【Mini-ITX】。これをいつも通り無理やり押し込んで、復旧。ディスクのパーティションを認識しないとかちょっとトラブルがあったけど、livefsのkernelをまるっとコピーしたら動いたので、とりあえず良しとする。ゴールデンウィークにちゃんと対処する、できれば、FreeBSD 8にすると。

せっかくギガビットにしたんだから、外部との接続も速くしたいというのでいろいろ調べたのだけど、それはまたの機会に。



2013/04/07

CentOS 5.9にしたら、openswan+xl2tpdが繋がらなくなった!

Amazon EC2にVPN Serverをたてる(L2TP編) | Hiroaki's blogをパクってCloudCore上にopenswan+xl2tpdでVPN Serverを立てていたのだが、CentOS 5.9にアップグレードしたところ、繋がらなくなった。
ログをよーく見ると、
STATE_QUICK_R2: IPsec SA established transport mode
とあるので、IKEでキーの交換まではできているらしい。tcpdumpでパケットとにらめっこしていたら、どうやらこのメッセージの後、繋ごうとしているクライアントからのパケットに対し、応答を返していない様子。
ググっていくつかのサイトの設定と自分の設定とを見比べる。と、
rightsubnet=vhost:%priv
って記述でいいの?これを
rightsubnet=0.0.0.0/0
に直してみたところ、解決。
leftnexthop
もいらなさそうなので、削除。
openswan-2.6.32になって、解釈が変わったというか、今までたまたま動いてきたってこと?2.6.38ではAndroid 4.0.4用のworkaroundも入ったようなので上げてみたいけど、またハマルのは嫌だなぁ。


2013/04/04

2in1 契約でMNPする時のはまりポイント

ドコモのfoma契約だと安価に回線を増やせる2in1契約。MNPするために2in1契約したときの注意点が1つ。
2in1で契約した回線のMNP手続きは、電話で行う。ネットでは手続きできない。
ドコモのサイトには載っていないので、ネットで手続きしようとして???な状態になってしまうけど、単に2in1で増やした回線に対する手続きはネットでできないというだけのこと。何日待ってもできるようになる訳ではないので、とっとと電話してしまいましょう。


2013/01/09

ぷらら3Gでテザリング

FixAPN - Google Play の Android アプリdocomo P-01Dの組み合わせで、MVNOの回線でもテザリングができるというので、中古のP-01Dを買ってきて、試してみた。
OKばっちり。


ぷらら3Gの設定は、上のキャプチャの通り。

Wifiルータよりは手軽にいじれるP-01Dだが、使わないアプリが山のように入っているのにはまいった。空き容量があまりないので、日常使うアプリを入れるのは断念。



2013/01/05

注意! Google 2段階認証プロセスにしていたら、Android 2.x用のパスワードが必要

2段階認証プロセスの説明文

概要

Android 2.xは2段階認証プロセスに対応していない。従って、2段階認証プロセスを有効にしたGoogle アカウントを設定しようとした場合、アカウント情報のページで専用のパスワードを生成する必要がある。

アカウントの認証が成功しない

いろいろあって、中古のスマホを購入した。Googleアカウントを登録しようとIDとパスワードを入力すると、エラーになる。IMEの変換を間違えたのかと何度か繰り返したものの、アカウントの認証は成功しない。
「もしかして、やられた?」と思ってGmailのページをずぅっと下にスクロールさせ、右下の「アカウントアクティビティの詳細」を見てみると、特に問題はなさそうだ。

2段階認証プロセス

このアカウントは2段階認証プロセスに切り替えていたことを思い出し、Googleのアカウントページからアカウント情報を眺めていた。
「Android Login V1」なんてサービスが登録してある。
さらにアプリケーション固有のパスワードを設定するところを見ると、「旧式の Android スマートフォン」ととして登録してある。

Android 2.3は対応していないアプリケーション

中古で買ったスマホは、Android 2.3だったため、2段階認証プロセスに対応していかった。従って、
  • あらかじめアプリケーション固有のパスワードを生成し
  • スマホでGoogleアカウントを登録するとき、生成したパスワードを入力する
という手順が必要だった。ちょっと前に購入したHTC J(Hiroaki's blog: auで3円運用するための、解約メモ)はAndroid 4.xでこの手順が不要だったため、気付くのが遅れた。 Android 2.xと4.xでは、こんなところも変わっているんだ。

型落ちのスマホを格安で打っていることも多いので、
  • 年末から騒がれているから、よくわからないけど2段階認証プロセスにしてみた。
  • スマホはよくわからないので、販売店で設定してもらおう。
ってノリの人だと、見事にはまるね。


2013年年賀状

これでみんな1回以上登場。


2013/01/01

auで3円運用するための、解約メモ


MNP一括0円とか、捨て身のように見えてくるau。そうはいっても、こちらも懐に余裕があるわけなどないので、ありがたく利用させていただく。

このとき、販売店で付けられたいろいろなオプションを解約していないと、月々の支払いが安くならない。
ダブル定額スーパーライト
auを使うのが初めてで、au IDの取得など3Gを使うことがあるというので、付けてみた奴。au IDを取得したら、Webから解約予約。実際に解約されるのは、月替わり。
インターネット接続サービス(EZ WIN/IS NET)
3Gでネットを使うために必要。また、電源を入れたときに3Gの通信が発生することがあるというので、購入時には付けておいた。用が済んだら、サポートに電話して解約。
安心ケータイサポート
3円運用を考えると、不要。端末が故障したら、そのまま回線を放置してしまえばいい。3円運用×2年縛りなので、ほうっておくのが一番安い。インターネット接続サービスと一緒に解約。
auスマートパス
いらない。スマートパスのアプリから解約できるのだが、そのとき、SIMを挿していないとエラーになってしまう。ダブル定額スーパーライトを解約する前にこっちを解約しておくか、auスマートパスのサポートに電話して解約する。
スマートパスのシステムがトラブルとかで、通常のサポート窓口と、スマートパスの窓口と、別々に電話して解約する必要があった。auのページを見ても、どこに電話すればいいの?って感じだった(全体を一覧で見ることができない)ので、解約した人の手続きを参考にする。
auスマートパスの退会方法 | すまコジ ひょかレポ: auスマートパスをパケットを発生させずにサクっと退会する方法
SIMをまだ挿しているなら、Wi-Fi接続でもOK!au スマートパス解約手順 | マイスクラップブックでいけるけど、挿していないと、アンケートに答えた後にエラーになる!

3Gで通信するつもりはないので、一応、SIMは抜いておく。HTC Jって、どう蓋をはずすの?ってことで、これ。

蓋をはずして、SIMを抜いておきましょう。