Friday, May 09, 2014

Ubuntu 14.04 起動時に無線 LAN につながらない問題を /etc/pm/power.d/wireless の新規作成で解決しました

超久し振りにブログの更新。

最近、古い iMac (確か、2007年くらいに買って、購入時に入っていた OS は Leopard)に Ubuntu 14.04 を入れたのだが、起動時に無線 LAN につながらないという問題が発生していた。再起動をすることで、一応は無線 LAN につながるようにはなるのだけれども、使いたい時に毎回、起動、再起動をしないとインターネットにつながらないのはちょっと不便なので、修正をした。

結論としては、以下のリンクにある通りに実行するだけで、問題解決した!

networking - Cannot connect to wireless in Lubuntu 14.04 - Ask Ubuntu

やったこととしては、/etc/pm/power.d/wireless を新規作成して、以下の内容を記述しただけ。ファイルが存在していなかったので、新規作成をする必要があったけれども、それ以外は /etc/network/interfaces に必要な記述がされているかを確認するだけだった。

$ sudo vi /etc/pm/power.d/wireless
#!/bin/sh

/sbin/iwconfig wlan0 power off

これで、少しは時間の節約になるね。良かった!

Tuesday, July 24, 2012

ターミナルでの処理が終わったらGrowlで知らせる方法

こちらに掲載されていた内容の横流し。

ターミナルでの処理が終わったらDockアイコンを跳ねさせ未読バッヂを表示、警告音も鳴らす方法 - Macの手書き説明書

"&& tput bel" をコマンドの後につけるだけ。"bell" ではなく "bel" なので注意。

$ ping -c 5 www.google.com && tput bel

とかすると、ping が終了した後に Growl でお知らせしてくれる。ターミナルがアクティブ状態になっていないことが条件のようだ。

因みに、エラー音も出る。エラー音の設定は、System Preferences の Sound で出来る。

自分はデフォルトの Funk を利用している。

地味に便利なので使ってみて!!

Tuesday, June 19, 2012

emacs-w3m 実行時に Wrong type argument: arrayp, nil のエラー

突然ですが emacs-w3m をインストールすることにした。

まずは、いつものように環境から。

環境

  • Mac OS X Version 10.6.8
  • GNU Emacs 24.1.1 (x86_64-apple-darwin, NS apple-appkit-1038.36) of 2012-06-10 on bob.porkrind.org
  • emacs-w3m-1.4.4

インストール

こちらのページを参考にして、emacs-w3m をインストールした。

【参考】EmacsでWebページをみる。(Emacs-w3m) - redtower's memo
$ wget http://emacs-w3m.namazu.org/emacs-w3m-1.4.4.tar.gz
$ tar zxvf emacs-w3m-1.4.4.tar.gz
$ cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot co emacs-w3m
$ cp -pr emacs-w3m/* emacs-w3m-1.4.4
$ cd emacs-w3m-1.4.4
$ ./configure --prefix=~/.emacs.d/elisp/emacs-w3m
$ make
$ make install

~/.emacs に以下の内容を記述。

(add-to-list 'load-path "~/.emacs.d/emacs-w3m/share/emacs/site-lisp/w3m")
(add-to-list 'Info-additional-directory-list "~/.emacs.d/elisp/emacs-w3m/share/info")
(require 'w3m-load)

エラーへの対応

M-x w3m として w3m を起動する。しかし、起動時に以下のエラーが表示され、起動に失敗する。

Wrong type argument: arrayp, nil

以下のページを参照すると、Emacs 22 未満でバイトコンパイルした *.elc を Emacs 23 でロードしているのが原因とのこと。

【参考】Re: (wrong-type-argument arrayp nil) in w3m-ems

「*.elc を直接開いてみると、先頭の方にバイトコンパイルした Emacs のバージョンが記載されている」とのことなので、インストールされた w3m.elc の先頭を確認してみると Emacs 22.1.1 でバイトコンパイルされていた。

「おかしい。。。自分の使っている Emacs は 24.1.1 だぞ。。。」と思い、コマンドプロンプトにて Emacs のバージョンを確認してみた。

$ which emacs
/usr/bin/emacs
$ emacs --version
GNU Emacs 22.1.1

ということで、Emacs 22.1.1 がバイトコンパイルに使われていることが判明した。これは、GUI で使っている Emacs と CUI で使っている Emacs が別のバージョンの Emacs であったことに原因がある。

  • CUI - /usr/bin/emacs
  • GUI - /Applications/Emacs.app/Contents/MacOS/Emacs

それぞれ CUI は 22.1.1、GUI は 24.1.1 であった。

よって、GUI の Emacs で w3m.el を開き、M-x byte-compile-file で w3m.el をバイトコンパイル。するとコンパイルエラー。先ほどのページのスレッドを辿ると「w3m-ems.el でエラーになる」とのことだったので、w3m-ems.el をコンパイルした後に、w3m.el をバイトコンパイル。

【参考】Re: (wrong-type-argument arrayp nil) in w3m-ems

すると今度は、バイトコンパイルに成功!!

そして、M-x w3m をするとエコーエリアに以下のエラー。

Searching for program: No such file or directory, /usr/bin/w3m

/usr/bin/w3m にシムリンクを貼る。

$ which w3m
/usr/local/bin/w3m
$ sudo ln -s /usr/local/bin/w3m /usr/bin/w3m

をして、M-x w3m をしたところ、無事に emacs-w3m を起動することが出来ました!!

しかし、よくよく先ほどのスレッドのページを見なおしてみると「EMACS を指定するようにして解決しました。」とのこと。以下のように make 実行時に EMACS を指定してインストールすると、無事に emacs-w3m をインストールすることが出来た。。。手動で w3m.el や w3m-ems.el をバイトコンパイルする必要なんてなかった。。。

$ ./configure --prefix=~/.emacs.d/elisp/emacs-w3m
$ make EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs
$ make install

何はともあれ、emacs-w3m が動いて良かった!!これで次のステップに進めるょっ!!

(・∀・)

Saturday, March 17, 2012

Command+Tab で Finder を表示しないようにする方法

Mac OS Xの「Command+Tab」でアプリ切替をする時にFinderが表示されないようにする方法 : ライフハッカー[日本版]

こちらのリンクを参考にやってみた。Command+Tab でアプリを選択している時に誤って Finder が選択されてしまうことが時々あったので、この Tips はとても嬉しい。

ほぼリンク先のまんまの記事で申し訳ないが、リンク先にある手順を実行するだけで簡単に設定することが出来る。

環境

  • Mac OS X Version 10.6.8
$ su -
# vi /System/Library/CoreServices/Finder.app/Contents/Info.plist

dict ノードの下に以下を追加する。

< key > NSUIElement < /key >
< string > 1 < /string >

Doc にある Finder を Option キーを押したまま右クリックして、「Relaunch」を選び、Command+Tab で Finder が表示されないことを確認。

これは便利だ!!

(・∀・)イイ!!

Friday, September 02, 2011

bm.el の色の設定を変更してみた

背景

以前、bm.el をインストールした訳だが、デフォルトの色がちょっと見にくかったので変更してみた。

【参考】自分のための日記: bm.el を入れてみた

環境

  • Mac OS X Version 10.6.7
  • GNU Emacs 22.3.1 (i386-apple-darwin9.8.0, Carbon Version 1.6.0) of 2010-01-09 on gs674-seijiz.local
  • bm.el,v 1.55


デフォルトの色

デフォルトの色は、こんな感じ。文字の色は白で、背景は紺っぽい色。


文字の色が単色であれば、そんなに問題ないようにも思えるが、ソースコードなどは型名、クラス名、メソッド名、リターンタイプ、予約語などは色付けされているので、紺だとちょっと色が強すぎる気が。。。あと、文字色がすべて白になってしまうのも、ソースコードを読むとき、コーディングしているときに見づらいと思った。

デフォルトの色の変更

bm.el 内で color で検索したら、この辺が出てきた。

    (((class color)
      (background light)) (:foreground "White" :background "DarkOrange1"))
    (((class color)
      (background dark))  (:foreground "Black" :background "DarkOrange1")))

    (((class color)
      (background light)) (:foreground "White" :background "DarkBlue"))
    (((class color)
      (background dark))  (:foreground "White" :background "DarkBlue")))

    (((class color)
      (background light)) (:foreground "White" :background "DarkOrange1"))
    (((class color)
      (background dark))  (:foreground "Black" :background "DarkOrange1")))

    (((class color)
      (background light)) (:foreground "White" :background "DarkBlue"))
    (((class color)
      (background dark))  (:foreground "White" :background "DarkBlue")))

bm-persistent-face, bm-fringe-persistent-face に設定されている以下の色が怪しい、と思った。

(:foreground "White" :background "DarkBlue")

自分のバックグラウンドは白で明るいので (background light)の行を変更する。という訳で、399行と434行の設定を以下のように変更してみた。

  • 変更前
          (background light)) (:foreground "White" :background "DarkBlue"))
  • 変更後
          (background light)) (:background "LightGreen"))


設定を変更して、Emacs を再起動。


すると、何も変わらなかった。。。

Σ(゚Д゚;)ガーーーン!

よくよく bm.el のある ~/.emacs.d/auto-install ディレクトリを見ると、bm.elc ファイルがある。という訳で、bm.el をバイトコンパイル。

M-x byte-compile-file[Enter]
~/.emacs.d/auto-install/bm.el

そして、Emacs を再起動。

すると、ブックマークの色が期待した色になりましたー!

(・∀・)!


こちらの方が、foreground のカラーは維持されるし、background のカラーもどぎつくないので、断然見やすいのではないでしょうか?

因みに、今回は bm-persistent-face, bm-fringe-persistent-face の両方を変更しましたが、bm-persistent-face を変更するだけで、所望の結果が得られることが分かりました。lisp の書き方が分からないので、emacs の設定をするときは毎回「トライ&エラー」なのが悲しいところ。。。


(´・ω・`)

Saturday, June 11, 2011

Mac OS X で Java のアップデート

背景

JPCERT/CC からの 注意喚起にて、Java SE のクリティカルパッチアップデートがあることを知る。Java SE 6 Update 26 にアップデートする必要があるようだ。


環境

現在の環境は、以下の通りです。

  • Mac OS X version 10.6.7


現状確認

JPCERT/CC によると、以下のページで Java のバージョンの確認が出来るようだ。

Java のバージョンの確認


実際に確認してみたところ、以下のページが表示された。



Mac をお使いの場合: お使いの Mac に最新バージョンの Java がインストールされているかどうかを確認するには、アップルメニューのソフトウェアアップデート機能を使用します。

とのことだが、ソフトウェアアップデート機能を使用しても何の更新も起こらない。

iTerm2 から以下のコマンドを入力すると、古いバージョン(1.6.0_24)のままであることが分かる。

$ java -version



対策

以下の自分のブログの記事を参考にして、"Java for 10.6 Update 5" をインストールした。

自分のための日記: Eclipse で rt.jar のソースを見る方法


インストールすると、/Library/Java/JavaVirtualMachines に 1.6.0_24-b07-334.jdk の他に 1.6.0_26-b03-377.jdk がインストールされていることが分かる。


ついでだから、上記の自分のブログを参考に、Eclipse で使う JRE を 1.6.0_26 の JRE に変更しておいた。


因みに、1.6.0_24-b07-334.jdk は必要なさそうというか、以下の記事を参考にすると「旧バージョンの Java は削除することを推奨する」とのことだったので削除した。

JDK および JRE 6 Update 26 が公開されています - 特に重要なセキュリティ欠陥・ウイルス情報


1.6.0_24-b07-334.jdk を削除するとどうでしょう。java -version とコマンドを入力すると、バージョンが 1.6.0_26 となっていることを確認することが出来ました。



感想

あれ?おかしくない?java コマンドは /usr/bin/java にあり、/usr/bin/java は /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java へのシムリンクになっている。

$ which java
/usr/bin/java
$ ls -l /usr/bin/java
(略)java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java の親フォルダが /Library/Java/JavaVirtualMachines/1.6.0_26-b03-377.jdk/Contents/Home/bin へのシムリンクになっているのかと思ったが、そうではないようだ。

「現状確認」でも確認したように、Mac の場合、「最新バージョンの Java がインストールされているかどうかを確認するには、アップルメニューのソフトウェアアップデート機能を使用」するしかないようなので、ソフトウェアアップデートによって Java を最新の状態にすることでデフォルトの Java が最新の状態になるのかと思っていた。しかし、開発版の Java を入れることで Java が最新になった。

自分でも何がなんだか分からない。

Mac OS X 上にある java コマンドを探すと

$ find / -name java -type f 2>/dev/null
/Library/Java/JavaVirtualMachines/1.6.0_26-b03-377.jdk/Contents/Home/bin/java
/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java
/usr/share/file/magic/java

と表示される。それぞれのコマンドで java -version を実行してみた。

  1. /Library/Java/JavaVirtualMachines/1.6.0_26-b03-377.jdk/Contents/Home/bin/java
  2. /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java
  3. /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java
  4. /usr/share/file/magic/java
とする。
  1. java version "1.6.0_26"
  2. java version "1.6.0_26"
  3. java version "1.6.0_24"
  4. zsh: permission denied: /usr/share/file/magic/java
4. は、file コマンドが使う magicfile と呼ばれるデータベースのようだ。 【参考】 2005年4月 | 今日の一行 | column | OSS-Web

という訳で、システムにインストールされている Java で 1.6.0_26 のものは、

  • /Library/Java/JavaVirtualMachines/1.6.0_26-b03-377.jdk/Contents/Home/bin/java
  • /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java

で、1.6.0_24 のものは、

  • /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java

だった。

「アップルメニューのソフトウェアアップデート機能を使用」することで、/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java のバージョンが 1.6.0_26 になるのではないか、と信じている。

Friday, June 03, 2011

Eclipse で rt.jar のソースを見る方法

完全にこちらのサイトを参考にしました。



環境

  • Mac OS X version 10.6.7
  • Eclipse ( Version : Helios Service Release 2 )


ダウンロード

Developer Downloads & ADC Program Assets から "Java for Mac OS X 10.6 Update 4 Developer Package" をダウンロード(2011年6月3日現在での最新版)。


インストール

ダウンロードした dmg ファイルを解凍してインストール。


src.jar のパス

以下の手順に従って、src.jar があるパスを突き止める。

  1. /Applications/Utilities から Java Preferences.app を起動する
  2. General タブにある "Java SE 6" をダブルクリックする
    • 因みに、"Java SE 6 (System)" をダブルクリックしても何も起こらなかった
    • 自分の CPU-Type は 32-bit だが、CPU-Type が 64-bit の "Java SE 6" をダブルクリックしても目的とするフォルダが開いた
  3. 1.6.0_24-b07-334.jdk を右クリックして Show Package Contents を選択する
  4. 1.6.0_24-b07-334.jdk/Contents/Home ディレクトリの中に src.jar があることを確認する

ということで、私の環境では src.jar は以下にインストールされていた。

/Library/Java/JavaVirtualMachines/1.6.0_24-b07-334.jdk/Contents/Home/src.jar


Eclipse の設定

  1. Eclipse メニューの Preferences を選択する
  2. Prefereces ダイアログの Java の Installed JREs を選択する
  3. Add をクリック
  4. MacOS X VM(多分)を選択して Next をクリック
  5. JRE Home に以下を入力する
    /Library/Java/JavaVirtualMachines/1.6.0_24-b07-334.jdk/Contents/Home
    • Directory... ボタンを押してディレクトリを選択する方式で行くと 1.6.0_24-b07-334.jdk が選択出来ない状態になっていて行き詰まる
  6. 名前は Home にする(適当)
  7. Finish をクリック
  8. デフォルトで使う JRE を Home にする
  9. 既存のプロジェクトを右クリックして Properties をクリック
  10. Java Build Path をクリックし、JRE System Library [JavaSE-1.6] をクリック
  11. Edit... をクリック
  12. ラジオボタンの Workspace default JRE (Home) をクリック
  13. Finish をクリック
  14. JRE System Library [Home] となっていることを確認する
  15. すべての既存のプロジェクトの System Library を JavaSE-1.6 から Home に変更する

既存のプロジェクトの1つを変更すると、あるプロジェクトは System Library が Home に勝手に変更され、あるプロジェクトは JavaSE-1.6 のままだった。System Library が自動で変更されなかったプロジェクトについては、手動で Home に変更した。


使い方

調べたいクラスやメソッドを選択した後、F3 を押すことで、クラス、あるいはメソッドのソースを見ることが出来る!!

これは、便利だ!!

(・∀・)


感想

今まで、なんでエラーになっているかよく分からなかったところ、どういう実装になっているか興味のあったところなど、ソースをみてみたいと思う。特に Collection, Map, HashMap などは興味があるので見てみようと思う。