2013年11月26日火曜日

Qiitaはじめました

技術系の話題はQiitaでやっていきます。
http://qiita.com/NewGyu

何故って、ソースコード貼りやすいから。
あとMarkdownが使いやすい。

2013年9月18日水曜日

apt-cyg update で「setup.ini」が無いと言われて失敗する

なんだか、ミラーリポジトリのディレクトリ構造が変わったらしい。

ftp://mirror.mcs.anl.gov/pub/cygwin/setup.ini

ここにファイルをwgetしに行っているんだけど、実際は

ftp://mirror.mcs.anl.gov/pub/cygwin/x86_64/setup.ini

こことか。

apt-cygのスクリプト自体を修正する必要があるんだけど、rcmdnkさんがフォークした修正版を公開してくださっているのでこちらを利用しました。

2012年6月14日木曜日

Windows7環境にgem install rails したらjsonのgemでエラー

Windows7(64bit)にruby1.9.3をいれて gem install rails すると

ERROR:  Error installing json:
        The 'json' native gem requires installed build tools.

Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions
at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'
こんな感じのエラーが出る。 どうやらgem installの過程でソースコンパイルをしようとしているがコンパイラとかその辺がないのでエラーになっている様子。

http://github.com/oneclick/rubyinstaller/wiki/Development-Kit

って書いてあるので見てみるとDevKit 4.5.2を入れなさいと。

 RubyInstaller download から「DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe」をダウンロードして適当な場所に解凍する。
回答したディレクトリ直下にdk.rb というスクリプトがあってこいつでインストールする。

  1. ruby dk.rb init する
    config.ymlが作られ、中にrubyのパスが書かれるらしい。
  2. ruby dk.rb install する
    なんかインストールされる。
> ruby dk.rb init

[INFO] found RubyInstaller v1.9.3 at C:/dev/Ruby/193p194

Initialization complete! Please review and modify the auto-generated
'config.yml' file to ensure it contains the root directories to all
of the installed Rubies you want enhanced by the DevKit.

> ruby dk.rb install

[INFO] Updating convenience notice gem override for 'C:/dev/Ruby/193p194'
[INFO] Installing 'C:/dev/Ruby/193p194/lib/ruby/site_ruby/devkit.rb'
これでインストールできるようになった
> gem install json
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
Successfully installed json-1.7.3
1 gem installed
Installing ri documentation for json-1.7.3...
Installing RDoc documentation for json-1.7.3...

2012年6月12日火曜日

ASUS ELAN Smart Touch Padの動きがおかしくなった

先日タスクトレイを見ると Asus Live Update というやつに「推奨される更新が10件」と表示されていたので何気なしにアップデートをしてみた。
するとタッチパッドの動きがなんかおかしい。

この手のノートPCはキーボードを打つときに手がタッチパッドに触れてしまってマウスカーソルが反応してしまうという鬱陶しい現象がるのだが、Zenbookにはそれを軽減するために Smart Detectorという機能が付いている。仕組みとしてはキー入力を検知するとタッチパッドの反応する領域を狭めるらしい。
賛否両論あるこの機能だが自分は結構気に入っていたのだが、先日のアップデートでこの機能が効かなくなってしまった。

つぶさに見ていくと先日のアップデートで「Elantech Touchpad driver」のバージョンが10.5.5.0 → 10.5.9.0 になったらしい。

そこで下記のサイトから10.5.5.0をダウンロードしてドライバを再インストール。
http://support.asus.com.tw/download/download.aspx?SLanguage=ja-jp

コレで元通りの動きになった。

一体何のアップデートをしたんだか…完全に改悪だよ。。。

2011年11月13日日曜日

Bitnami Redmineスタック(Virtual Machineバージョン)に微妙にハマる

SVN(Subversionのことね)+Redmineを入れる簡単な手段としてBitnamiの配布している仮想マシンイメージ(Ubuntu10.10にRubyやらApacheやら一式インストール済み)がある。
「お、これいいじゃん」と思って使ってみたのだが、mod_dav_svnではなくてsvnserveを使うように設定されている。こいつでApache経由でhttpアクセスしようとする(mod_dav_svnを使おうとする)と結構ハマりポイントがある…。

1.SVNのlibが読まれていない

/opt/bitnami/apache2/conf/httpd.conf のLoadModuleのコメントを外す。

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

で、Apacheを sudo apachectl restart …でフツーにモジュールが読み込まれるつもりだったのだが次のエラーが出る。

Cannot load /opt/bitnami/apache2/modules/mod_dav_svn.so into server:
 libsvn_repos-1.so.0: cannot open shared object file: No such file or directory

ldconfig -p すると確かにlibsvn_repos-1.so.0が読み込まれていない。
bitnamiではsvnは/opt/bitnami/subversionにインストールされているので、/etc/ld.so.conf.d/libc.conf に /opt/bitnami/subversion/lib を追加してsudo ldconfigする。

再度ldconfig -p すると今度は読み込まれているはず。
この状態でsudo apachectl restartするとOK.

2.SVNが依存しているSQLiteがthread-safeじゃないと怒られる

で、などを書いてhttp://hoge/svn/fuga にブラウザでアクセスするとリポジトリの参照ができた。次にTortoiseSVNを入れて上記のリポジトリにコミットをすると…

Couldn't perform atomic initialization

なんのこっちゃわからん。apacheのエラーログを見ると…

SQLite is required to be compiled and run in thread-safe mode

ググると、SQLiteを --enable-threadsafeをつけてコンパイルしなおせと。
しかしそう言うことではなかった。

まず、lddでmod_dav_svn.soが参照しているライブラリを調べる。

ldd /opt/bitnami/apache2/modules/mod_dav_svn.so
libsqlite3.so.0 => /usr/lib/libsqlite3.so.0

ありゃ、SQLiteは /opt/bitnami/sqlite に入っているはずだが…
なるほど/usr/lib/libsqlite3.so.0があかんのか。

/user/lib/libsqlite3.so.0 をls -l で調べてみとシンボリックリンクだ。
libsqlite3.so.0 -> /usr/lib/libsqlite3.so.0.8.6

じゃあ、この先を変えてやればいいか。

ln -s libsqlite3.so.0 /opt/bitnami/sqlite/lib/libsqlite3.so.0.8.6

これでsudo ldconfigして、sudo apachectl restartする。

おおー、コミットできたー。

という訳でSVN関連のライブラリパスがうまく設定されていないのが原因でした。

2011年10月14日金曜日

利用しているソーシャルサービスの関連を図にしてみた

自分が利用しているソーシャルサービスの関連を図にして見ました。
フィードをあっちやこっちに流し込んでいるのでなにがなんだかよくわからなくなってきたのです。
こう描いてみると…Buzzもういらんですね。

2011年8月11日木曜日

#Xperia 2.3.3 (GingerBread)化

遅ればせながらXperia(X10)を2.3にバージョンアップしました。
海外では公式にソニー・エリクソンがアップデートを配布しているのですが、国内のDOCOMOはどうやら対応ナシのようです。(公式にやるともやらないともアナウンスはありません)

まぁ、DOCOMOが対応しないならしないでXperiaには様々なカスタムROMが出いているのでそれを導入すればいいやということで、今回は国内で有名な「ゴローさん」のRomを導入しました。

参考にさせていただいたサイトは次の「XperiaにおけるAndroidアプリ考察」です。

開始状態
  1. root化されたXperia2.1(普通のDOCOMOファーム)
  2. xRecoveryは導入済み
事前準備
    1. FlashTool
      FlashTool_0.2.9.1.exe
    2. ゴローさんのROMファイル
      gb-3.0.1.G.0.75-fix2.zip
    3. 2.3.3対応のxRecovery
      xRecovery-0.3_GBready.zip
    4. 2.3.3にするためのftfファイル
      X10i_3.0.1.G.0.75_only kernel_baseband.ftf
    5. バッテリー100段階パッチgb-GoroSpecial-fix1.zip
    手順
    まず、2,3をXperiaのSDカードの適当なところにコピーします。
    ここでは/sdcard/tempにコピーするものとします。

    次に、Xperiaの電源をOFFにし、xRecoveryを起動します。
    (ソニエリロゴがでたら←をポン…ポン…ポンと押すアレです)

    んで、xRecoveryより「Install Custom zip」にて2のzipをインストールします。
    (音量↑↓で上下移動、□で決定、←で戻る)

    引き続き3のzipをインストールします。

    で、xRecoveryのトップページに戻ります。

    Reboot Phoneはしないで、そのまま電池を引っこ抜いて2,3分待ちます。

    PCでFlashToolのfirmwaresに4のファイルを置いておきます。

    FlashToolを起動して「Flash」ボタンを押して、*.sinを全選択してOKします。




    電源が切れた状態のXperiaを←を押しながらPCにUSB接続します。







    しばらくするとFlashToolのコンソールに色々でて、「Flashing Finished !」みたいなのが出たらおしまいです。

    これで電源を入れると2.3.3になっているはず!

    あとはもう一回電源を切って、xRecoveryで5のファイルをインストールするとステータスバーのバッテリー表示が100段階になっているはず!

     

        2011年7月26日火曜日

        あーあ、Google+アカウント停止くらったよ

        各地で被害者続出のアカウント停止を自分も食らいました。
        それはラブストーリーのように突然にやって来ます。警告とか一切ないです。

        まあね、絶対実名嫌だって訳でも無いんですが、プロフィールの公開範囲がGoogle+だけに留まらなさそうなところがなんか嫌なんですね。このBloggerもPicasaもGoogle Profileに紐付くわけで、今まで「乳牛」としてやってきたのにそれに実名が出ちゃうってちょっと躊躇しません?

        ってAndroid使ってBlogerに書いてる時点でどうよ、と言う話でもありますが。

        ネット上でも長い間コテハンでやってきた人達がみんなこれをくらってるようです。
        ちょっと様子見るか・・・

        2011年7月20日水曜日

        Google+を使ってみる

        6月末頃にさっそうと登場して話題になっているGoogle+。
        @takman1210に招待状をもらって使ってみているが周辺のユーザーが少なくてまだイマイチ盛り上がらない。(というか自分の周りにはmixi一択な人が多くて、自分はmixiは半年に1度くらいしか見ないという…)

        あちこちで使用感レポートが書かれていますが、自分も何か偉そうに書いてみます。
        ってかいたら何かGoogle Buzzとの比較になっちゃった…。
        ちなみにFace Bookはなんか肌に合わずにほぼ使ってない人です。

        buzzっぽい、っていうかベースbuzzでしょう

        もはやオワコン扱いされているbuzz(個人的には悪く無いと思っていたのだが、twitterに比べると気軽感がなくて疎遠になっていた…)と似てる。
        一個一個のPOST(っていうの? twitterでいうところのツイート)に埋め込めるリンクの扱い方だったり、写真の扱い方だったりが、buzzを踏襲している。なので、buzz使ってた人だとあまり違和感がない。

        サークル単位にPOSTの公開範囲を制御できるのが目新しい要素と言われていますが、実はbuzzにもあったりして・・・。そうbuzzはGMailの連絡先グループ単位に限定公開出来る機能がこっそりありました。
        GMail密着型ならではの発想だと思っていたのですが、世間的にはイマイチだったようで。

        サークル単位にStreamをみられる

        こっちはbuzzでは出来なかった。twitterのリスト相当。
        確かにこれは助かる。フォローを増やすと身近な人のPOSTがあっという間に流れて行ってしまう。
        ただ、今後の機能拡張として、「デフォ表示のStreamを設定できる」といいなと思いました。
        (今はデフォのStreamはすべてのサークルのPOSTが表示される。twitterのTL的な感じ。)

        Picasaといいかんじに連携(しようとしている)

        公開範囲やら、コメントやらがGoogle+とPicasaと上手いこと連携する。
        今のところいろいろ不足はあるけど、これから調整されていくんでしょう。
        で、たぶんYoutubeとかの他のGoogleサービスもこんな感じで連携していくんでしょう。

        え? 実名?

        Google Profileとやらに入れる名前は
        スパムや偽のプロフィールを防ぐために、友だち、家族、同僚などから普段呼ばれている名前を使用してください。たとえば、法的なフルネームが Charles Jones Jr. で、普段は Chuck Jones や Junior Jones という名前を使用している場合は、いずれの名前も使用できます。
        とな。戸籍上の実名とまでは書いていないが、限りなく現実の名前を意識している。

        Google+ › ヘルプ記事 › 公開プロフィール  によると
         Google プロフィールの目的は、ユーザーがオンラインにある自分についての情報を管理できるようにすることです。現在、ほぼすべての Google プロフィールが一般公開されています。Google では、Google プロフィールを使用してユーザーを見つけ、オンラインで交流できるようにすることが、サービスの効果的な利用につながるものと考えています。限定公開のプロフィールではこれができないので、すべてのプロフィールを一般公開とすることに決定しました。
        ただし、プロフィールに表示される必須情報はフルネームと性別だけで、共有したくないその他の情報は編集、削除できます。
        現在ご使用のプロフィールが限定公開で、一般公開したくない場合は、プロフィールを削除することができます。何も行わなくても、2011 年 7 月 31 日を過ぎるとすべての限定公開のプロフィールが削除されます。
        とな。要するに「アンタの知り合いが、アンタをググッて見つけられるように」ってこと?
        うーん、知り合いに探してもらうのはいいんだが、ほとんど知らない人に探されて勝手になんか調べられたりするのは抵抗あるな。
        実名強要のウザさがいやでFace Bookパスしてるわけだし。


        そんなわけで、概ねのところでは気に入っているし期待もしているのだが、実名公開を強要されるとなるとちょっと考えるな…。

        2011年5月15日日曜日

        #IS01 (1.00.10) をアドホック接続可能にする

        眼鏡ケースこと IS01はWifi接続できるのですが、アドホック接続ができません。
        普通に家Wifi接続して使うのには全く問題ないのですが、出先でxperiaのBarnacle Wifi Tetherに接続して…という使い方ができません。

        どうやら root 化するとアドホック接続できるということでやってみました。
        IS01にはファームウェアバージョンが幾つかあって、1.00.09というバージョンまでは比較的簡単にできますが、自分のIS01は迂闊にもケータイアップデートをかけてしまって1.00.10に上げてしまったために面倒な感じになってしまいました。

        アドホック接続可能にする手順の概要は、
        1. root化する…というかsuコマンドを使えるようにする
        2. /system を書き込み可能にする
        3. /system/bin/wpa_supplicant をアドホック対応版に入れ替える
        こんな感じ。

        1.root化してsuを使えるようにする

        root化はMobileHackerzさんのところのIS01 Rooterで比較的簡単にできます。
        このページでは基本1.00.09以前のものの対応なのですが、下の方にコソッと test って書いてあるリンクがあって、そこからIS01root_simple.apkってのがダウンロードできるので、それをIS01にコピってインストールしてく下さい。

        IS01rooterではSTEP1~3まで手順がありますが、1.00.10ではSTEP3はできないので、
        1. STEP1...途中で強制終了するけど気にしない
        2. STEP2...とりあえず終わる。再起動しろって言ってくるけどガン無視。
        こんな感じです。

        これで ADB で接続すると su コマンドが使えるようになります。
        あ、superuserは必須ね。

        ちなみに、1.00.10では一回電源を切ると上記の設定は消えてしまうので、電源を入れ直すたびに上記STEP1,2をやる必要があります。

        2./systemを書き込み可能にする

        これがメンドクサイ!
        イマイチ理解できてないけど次の手順で。

        まずは insmod というコマンドを使えるようにするらしい。
        えぬえす工房からmodules_enabler+をダウンロードして、下記の二つのファイルをSDカードの適当なところにコピーします。
        • prepare
        • modules_enabler_plus
        # ./prepare
        # ./modules_enabler_plus
        Start.
        Finish. Enjoy!
        こうすると insmod というコマンドが使えるようになるっぽい。
        それから、

        # insmod ./msm_nand_ex.ko
        ※ msm_nand_ex.ko はMobileHackerzさんのところの IS01root_002proj.zipの中の ./res/row に入ってます。
        んで、

        # mkdir /system.rw 
        # mount -o rw -t yaffs2 /dev/block/mtdblock10 /system.rw 
        
        
        とすると /system.rw に /system 相当の領域が書き込み可能状態でマウントされます。
        元々あった /system との関係が良く解らんけど、/system.rw に対して書き込みすると /system の中身も変わるっぽいです。

        3.wpa_supplicantを入れ替える

        さて、これでようやく /system/bin/wpa_supplicant を入れ替えることができるようになりました。
        アドホックに対応したwpa_supplicantはこちらからダウンロードします。
        これをSDカードにコピーして、

        # cd /system.rw/bin
        # busybox ./ wpa_supplicant cp /sdcard/backup
        # busybox cp /sdcard/downloads/wpa_supplicant
        

        まぁ、ようするに元々あったwpa_supplicantはSDカードにバックアップを取っておいて、上記でダウンロードしてきたヤツと差し替えるわけです。


        それで、 IS01 を最起動すると、Wifiアクセスポイントにアドホックモードのアクセスポイントが (*)hogefuga みたいな感じででてきます。