2012/01/26

Mac OS X 10.7(Lion) + Ruby + SQLite3 = 10.6のWebアプリが動かない...

Facebookに移行してから、ずいぶんとブログを書かない日が続きました。
でも、やっぱり長文はブログかな...と思い、こちらにまとめてみます。

先日、内蔵HDDを交換し、メモリを8GBにして、OSをLion(10.7)にしました。
また一段とOSが軽くなって、様々な操作が早く終わるので、もうSnowLeopard(10.6)には戻れない...と感心していたら、以前使用していたWebアプリケーションが全然動かない。

調べてみたら、Lionからはsqlite3-rubyが標準では入っていないみたい。

ということで、インストール...でも、うまくいかない。

$ sudo gem install sqlite3
Password:
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/sqlite3-1.3.5 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/sqlite3-1.3.5/ext/sqlite3/gem_make.out

ふー...ヘッダーファイルがない(can't find header files)から構築(build)できないとのこと。
以前、MySQL/Rubyを入れた時の経験から、こんな時はXcodeを入れれば良いはず!
ということで、App StoreからXcodeをダウンロード中。

ダウンロードしたら、Install Xcodeを実行してインストール。

20120126_xcodeinstaller

インストールが終わってから、一応バージョンを確認してみる。

$ xcodebuild -version
Xcode 4.2.1
Build version 4D502

インストールが無事に終了したようなので、もう一度gemでsqlite3-rubyのインストールを試みる。

$ sudo gem install sqlite3
Password:
Building native extensions. This could take a while...
Successfully installed sqlite3-1.3.5
1 gem installed
Installing ri documentation for sqlite3-1.3.5...

No definition for libversion

Enclosing class/module 'mSqlite3' for class Statement not known
Installing RDoc documentation for sqlite3-1.3.5...

No definition for libversion

Enclosing class/module 'mSqlite3' for class Statement not known

エラーがいくつか出てるけど、インストール成功(Successfully installed)って書いてあるから、良しとしよう。

そして、作ったWebアプリを起動してみると...やったー!動いた、動いた。

ということで、僕以外にも困っている人がおられることと思い、何かの参考になることを期待してインストール作業をまとめてみました。

ちなみに、MacでWebアプリケーションを動かす参考として、以下の記事もご参照下さいな。

Mac(Apache) + Ruby + 少しの労力 = CGI

| | コメント (0) | トラックバック (0)

2011/10/03

ULTRA WiFi SoftBank 007Z

水曜日に用事があって従姉妹の勤めているソフトバンクショップへ行ったら、モバイルルータを勧められてテスト機をお借りしました。

そしたら僕の行動圏内のほとんどで利用可能!
これは便利。ネット上ではいろいろな酷評も見かけますが、とりあえず今の問題解決に役立ちそう。

ということで、土曜日にテスト機を返しに行って、そのまま契約!

http://mb.softbank.jp/mb/data_com/product/mobilewifi/007z/

MacでもiPadでも、どこでもネットに接続出来るようになりました。

今は「接続出来たところでそれほどのアクティビティがあるのか?」と問われると返答に困る生活をしているのですが、そんな生活のままではいけないと常々思う日々を送っているから、この機器を導入する事で僕の生活を少しでもアップグレードできるよう頑張ってみよう。

さて、久しぶりに少し最近の行動履歴を書いてみようかな。

9/25 小学校の運動会

娘と一緒に参加する競技があるのですが、ちょっと次女のペースを考えずに走ってしまい、気がついたらつないだ手が離れ、バランスを崩して二人とも校庭で砂まみれになってしまいました。反省...
夜は空手の指導員の集まりがあり、いろいろな意見を交換しながらこれからの練習方法や会の方針について考えさせられました。
二次会で手品を見せてくれるバーに行きました。
目の前でいくつかの手品を見せてもらったのですが、あまりに僕が凝視するから「ネタを考えるより、目の前の手品を楽しめよ!」と言われてしまいました...その通りかもね。

9/26 しまねOSS協議会 事務局会議

11/12開催のオープンソースカンファレンス開催に向けて、様々な調整をしておりました。
子供達も後ろで参加。ちょっと帰るのが遅くなって申し訳ない...

http://www.ospn.jp/osc2011-shimane/

9/27 異動する同僚のための送別会

送別会と言っても遠く離れるわけではなく、業務の内容が変わるだけなのですが、100%違うことをするようになるので、送別会というより「壮行会」という気持ちかな。
大変だとは思うけど、頑張って下さい。

9/30 オープンソースサロン

Railsでスマートフォンのアプリを開発する「Rhodes」の紹介と高専生のプログラミングコンテストの報告でした。みんな頑張ってる!素晴らしい!
この日は久しぶりに懇親会に参加。ついつい調子に乗って「俺の生き方がアジャイル!」とか言ったら、そこからどんどん話が盛り上がって...また偉そうな事をべらべらと話してしまいました。
気がついてみるとずいぶんと遅い時間になってしまっていて...反省。

10/1 少しの仕事と007Z導入

プラバホールで市民文化祭があり、子供達はそのお手伝いに行き、僕は仕事。
「市民文化祭が終わったよ」というメールが来たので仕事を終わりにしてソフトバンクへ。
007Zを導入して一番喜んでいるのは子供達かもしれない。車の中でYouTubeが見れる!
帰りにTSUTAYAで少しの映画と子供のアニメを借りて帰宅。
とても疲れていたらしく、知らない間に爆睡!

10/2 お家の掃除とイベント参加

子供達は朝、教会に行き、帰ってきてから家の掃除。
夕方から県立美術館で「水辺の祭典」を見に行き、つじあやのさんの歌を聞き、マイケルゲリラダンスを見学。「やっぱり本物は良いね」、「本物は違うね」と実感させられる

http://www.ustream.tv/recorded/17634260

その後、松江城に行き、水灯籠の見学。駐車場で知人が屋台を出していたので、そこでうろうろしながら食べたり、天守閣に上ったりしてました。

概ねこんな一週間でした。
明日からまた新しい一週間です。
また、頑張ろう!

FBを使うようになって、ブログの更新頻度が極端に落ちているけど、長文を書くにはやっぱりブログの方が便利だなと改めて思う。

| | コメント (0) | トラックバック (0)

2011/09/28

PlayOnMac + MacUIM = Inkscape用日本語入力環境 + α

これまでSnowLeopardのInkscapeではなぜか日本語の入力ができないまま、試行錯誤を続けていました。

MacPortsを導入すればできそうな雰囲気がありますが、なぜかMacPortsにとても近寄り難いものを感じていて、これまでも、これからも使う気になれないまま時が流れていました。

そんな折、Inkscapeで色々と作成しなくてはならなくなり、どうしても日本語の入力が必要で、なんとかならないものかと...SnowLeopardからはX11のクリップボードの仕様が変わったらしく、従来より少し面倒になっており、ネイティブアプリからのコピペをする度に設定を変更せねばならず、とても煩わしい。

そこで見つけたのがMacUIM。これはMacのX11で日本語が入力出来るようになるという優れもの。

http://code.google.com/p/macuim/

X11のターミナルやGIMPでの日本語入力ができるので、Inkscapeでも...と期待はもちろん裏切られ、入力はやっぱりできませんでした。

そこで見つけたのがPlayOnMac。これはIntelCPU上でWindowsアプリケーションを動かすWINEというソフトウェアのMac版を使いやすくしたソフトウェア。

http://www.playonmac.com/

何故このソフトなのかというと、WindowsアプリケーションはX11の上で動くので、Inkscapeとのコピペは普通にcontrol+cでできるようになるのです。

早速インストールすると...文字化け。どうしたものかと試行錯誤した結果、多分下記の方法でできるだろうと思われる(自己責任でね)。

1. Windowsからフォントを取り出す
c:¥windows¥fontsにある、「msgothic.ttc」「msmincho.ttc」「REFSAN.TTF」「REFSPCL.TTF」をUSBメモリなどにコピーする。

2. WINEのWindowsにフォントをコピー
「ライブラリ」に「PlayOnMac」というフォルダがあるので、下記フォルダに前述のフォントファイルをコピーする。
~/Library/PlayOnMac/wineprefix/default/drive_c/windows/Fonts

ということで、これを鑑みて別の方法で日本語表示に成功しました。

次に日本語の入力ですが、PlayOnMacに入っているnotepad.exeを起動してみると、MacUIMを使って日本語入力に成功!
ちなみに、notepad.exeはwindowsフォルダの中に入っています。

ここで入力した文字列を選択し、Inkscapeにコピペすると問題なく日本語の入力に成功!

そして、PlayOnMacを使えばMicrosoft Officeも動作するし、Photoshopも使えるようになります(全て少し前のバージョンですが...)。

また、環境設定の「Install packages」から、DirectXなどもボタン一つでインストール可能なので、わたたこんくりたいぱぁ2ももちろん音付きで動作させることが可能です。

http://www.ttt-artcraft.net/games/watata2/index.html

以前、MikuInstallerというのをこのブログで紹介させて頂いたのですが、2008年以降開発されていないようなので、WINEのバージョンがとても古いです。

http://shinob.cocolog-nifty.com/mix_dvd/2008/09/mikuinstaller-c.html

今回のPlayOnMacを使う事で、現在最新のWINEを使ってWindowsアプリケーションをMac上で使え、Inkscapeでの日本語入力もスムーズになると一石二鳥となりました。

え、誰か「Win版InkscapeをPlayOnMacで使えば良いじゃん」とか言いました?

| | コメント (0) | トラックバック (0)

2011/09/27

Inkscape 0.48.1 for Mac 日本語版

先日、Inkscape 0.48.2が出たというニュースがあってダウンロードしてみたけど、Mac版はなにやら日本語の表記が不自然だったのと、コピペなどのショートカットキーが使えなかったので、一つ前の0.48.1に戻して使っています。

さて、少し前のことになりますが、いくつかの依頼をうけて0.48.1 for Mac日本語版というのを作っていたので、アナウンスします。

下記URLよりダウンロードが可能なので、Inkscapeユーザーではじめから日本語で使いたいという方がおられましたらご利用下さい。

Inkscape-0.48.1-1-LEOPARD .ja.dmg

ちなみに、対応OSはMacOS X 10.5(Leopard)以降となっているので、ご注意下さい。

| | コメント (1) | トラックバック (0)

オープンソースカンファレンス2011 Shimane

今年も島根で「オープンソースカンファレンス2011 Shimane」を開催いたします。
Rubyのメッカ「松江」は、様々な企業がオープンソースに感心を持ち、個人ですらRubyと聞けば宝石よりプログラミング言語を連想する土地柄でもあります(本当か?)

オープンソースに感心のある方で、縁結びの地「出雲」に興味のある方は来て損はしないはず!
ぜひ、観光をかねて島根まで来てみられませんか?

開催日 平成23年11月12日(土)
開 場 松江テルサ4階大会議室ほか

公式Webサイト
 オープンソースカンファレンス2011 Shimane

参考URL
 しまねOSS協議会
 facebook

ちなみに、しまねOSS協議会では他にも色々なイベントを開催・共催して地域のオープンソースソフトウェア普及活動を行っております。

今週末(9/30)にもオープンソースサロンを企画しておりますので、こちらもあわせてアナウンスしておきます。詳しくは下記リンク先でご確認下さい。

第62回オープンソースサロン

| | コメント (0) | トラックバック (0)

2011/08/23

Ubuntu + SQLite3 + Ruby = 簡易データベースの準備

これまでPostgreSQLやMySQLでデータベースを構築して、Webアプリケーションを作成してきたけど、なんだかいつもしっくりこない。RDBMSを使っても、結局はローカルでアクセスする場合がほとんどだし、それほどトラフィックがあるわけでもなく、速度も要求されない。

僕の場合は、その多くがテストか小規模のものなので、わざわざこれらRDBMSを使わなくても簡単に利用できるものがあればそれを使ってもかまわない。というよりむしろ、そちらの方が便利が良い。

ということで、代替手段を探してみるとSQLiteというのが一番良さそう。

では早速Ubuntuにインストールしてみる。

http://techno.hippy.jp/rorwiki/?HowtoUseSQLite

上記URLを参考にして下記コマンドでインストールしてみる。

$ sudo apt-get install libsqlite3-dev sqlite3 swig

他にもlibsqlite3-0をインストールするように書いてあったけど、locateしてみたら入ってそうだったので除外してます。

次にRuby用のモジュールをgemでインストール。

$ sudo gem1.8 install sqlite3-ruby

まずはSQLite3の動作確認。

$ sqlite3 sample.db
SQLite version 3.4.2
Enter "".help"" for instructions
sqlite> create table `test` (
...> id integer primary key,
...> name varchar(255)
...> );
sqlite> .schema
CREATE TABLE `test` (
id integer primary key,
name varchar(255)
);
sqlite> insert into test values(1,'test');
sqlite> insert into test values(2,'test');
sqlite> select * from test;
1|test
2|test
sqlite> .quit

おぉ、動いてる動いてる。
なかなか面白いですね。

では次にRubyからの接続確認。

$ irb
irb(main):001:0> require 'sqlite3'
LoadError: no such file to load -- sqlite3
from (irb):1:in `require'
from (irb):1
from :0

何?...ちょっと調べてみたらgemで入れたものはgemをrequireしないとだめなのね。
しかも、どこに行ってもActiverecordを使った接続の解説ばかり...なんだか気に入らない。

ということで、純粋なライブラリを入れ直し。

$ sudo apt-get install libsqlite3-ruby

またirbで接続確認。

$ irb
irb(main):001:0> require 'sqlite3'
=> true
irb(main):002:0> db=SQLite3::Database.new(""sample.db"")
=> #<SQLite3::Database:0xb7ac2878 @closed=false, @handle=#
irb(main):003:0> sql =<<EOFrnirb(main):004:0"" insert into test values(3, 'ddd');rnirb(main):005:0"" EOFrn=> ""insert into test values(3, 'ddd');""rnirb(main):006:0> db.execute(sql)
=> []
irb(main):007:0> exit

おおぉ、いきましたね。
では、次に入力した内容をコマンドラインで確認してみます。

$ sqlite3 sample.db
SQLite version 3.4.2
Enter "".help"" for instructions
sqlite> select * from test;
1|test
2|test
3|ddd
sqlite> .quit

パチパチパチ...
ということで、SQLiteが使えるようになりました。Accessみたいにデータをファイルでやりとりできるから僕にはかなり便利。

これから、MySQL用に作ったライブラリをSQLite3用に転用する作業をしてみようかな。

参考URL

http://sqlite-ruby.rubyforge.org/sqlite3/faq.html

| | コメント (0) | トラックバック (0)

2011/08/20

Ubuntu + PM-A900 + ダウンロードといくつかのコマンド = 印刷 + スキャン

Ubuntu 9.xの時の記事です。少し古いですが、アップしてみます。
今では、少し手順が違うみたいだけど、LinuxでもEPSON製プリンターとスキャナーが使えるという事に変わりはないので、参考までに。

##### ここから #####

我が家のプリンターはEPSONの複合機PM-A900で、印刷も画像の取り込みもできます。
普段はMacで作業しているので、何の問題も感じたことはありませんが、せっかくなのでUbuntuでも同じような作業ができるかどうか試してみました。

結果から先に言うと、多少不便はあるものの充分使えています。

では、下記に作業手順を書いてみます。

まず、印刷について。

プリンタの電源を入れ、PCのUSBポートにUSBケーブルを接続します。すると、メニューバーにプリンタドライバが見つかりませんとかいうメッセージが表示されますが、無視してシステムメニューのシステム管理から「印刷」を選択。

新規プリンタをクリックすると一覧にPM-A900があるのでこれを選択し、「データベースからプリンタドライバを選択」でEpsonを選び、モデルからPM A900を選択します。そしてデフォルトのまま、「進む」をクリックしたら、使用できるようになりました。

簡単!

次はスキャン。

EPSON AVASYSのホームページからLinux用ドライバをダウンロードします。

http://avasys.jp/hp/menu000000300/hpg000000249.htm

僕がダウンロードしたのは、スキャナドライバの「iscan-2.10.0-1.c2.i386.rpm」です。

端末を起動して、ダウンロードしたフォルダに移動後、下記のコマンドを実行。

$ sudo alien iscan-2.10.0-1.c2.i386.rpm
$ sudo dpkg -i iscan_2.10.0-2_i386.deb

次に設定ファイルの編集。

$ sudo vi /etc/sane.d/dll.conf

末尾に「epkowa」を追加し、これで準備完了。

$ sudo iscan

とコマンドを入力すると、スキャン用ソフトが無事起動し、スキャンに成功しました。

Linuxもどんどん機能が充実してきているなと実感させられます。

| | コメント (0) | トラックバック (0)

2011/08/19

Ubuntu + Apache2 + Ruby + ちょっとした手順 = CGI実行環境

せっかくなので、UbuntuでもRubyのCGIを動かす手順をまとめてみたりします。

注) ユーザー名は仮にXXXとします。

1.Webサーバのインストール

$ sudo apt-get install apache2

2.公開用ディレクトリの編集

$ sudo mkdir /home/www
$ sudo chown XXX.XXX /home/www
$ cd /var/
$ sudo mv www www.000
$ sudo ln -s /home/www www

これでXXXのユーザ権限で自由にWebページを作成できるようになります。
試しに、サンプルページを作ってみます。

$ gedit /home/www/index.html


<html>
<body>
  This is a test.
</body>
</html>

ブラウザを起動して、http://localhostを確認すると、きちんとテストページが出力されるはずです。

3.スクリプト実行用の準備

apacheの設定ファイルを変更します。以下のコマンドを実行し、

$ sudo gedit /etc/apache2/sites-enabled/000-default

12行目にある「None」を「All」に書き換えます。

AllowOverride All

保存したら、以下のコマンドでapacheの再起動。

$ sudo /etc/init.d/apache2 restart

4.Rubyスクリプト確認

以下のコマンドを実行し、.htaccessファイルを作成します。

$ gedit /home/www/.htaccess


Options +ExecCGI
AddHandler cgi-script .rb
DirectoryIndex index.rb

先ほど作成したサンプルファイル(index.html)を削除し、別のインデックス用ファイルを作成します。

$ rm /home/www/index.html
$ gedit /home/www/index.rb


#!/usr/bin/env ruby
print "Content-type: text/html\n"
print "\n"

print "<html>"
print "これは<b>CGI</b>のテストです。"
print "</html>"

保存したら、実行権限を付与します。

$ chmod a+x index.rb

再びhttp://localhostを確認。

文字化けしていたので、エンコーディングを合わせてやるときちんと出力されました。

| | コメント (0) | トラックバック (0)

2011/08/18

Mac(Apache) + Ruby + 少しの労力 = CGI

先日サービスを終了した松江SNSにて公開していた記事を少しずつ転載してみたいと思います。
ネタは古いですが、古いネタは意外とすぐにネットから消えてしまうようなので、きっと誰かのお役に立てるはず。

MacでApacheとRubyを使ったCGI動作設定のメモです。

調べてわかったこと

・設定ファイルは"/private/etc/httpd"の中
・個人用設定ファイルは"/private/etc/httpd/users"の「ユーザー名.conf」
 *Lepardでは"/private/etc/apache2/users"
・公開用ディレクトリは"/Library/WebServer/Documents"
・個人公開用ディレクトリはホームの中にある"Sites"

ということで、個人用設定ファイルを確認すると

<Directory "/Users/XXXX/Sites/">
Options Indexes MultiViews
AllowOverride none
Order allow,deny
Allow from all
</Directory>

となっているので、

$ sudo vi /private/etc/httpd/users/[ユーザー名].conf

を実行し、

AllowOverrride All

と書き換える。
ちなみにviでの上書き保存をして終了する方法は「esc」を押してから「:wq」と入力して「return」。

個人公開用ディレクトリに移動して、htaccessの設定を変更するため、

$ cd
$ vi ~/Sites/.htaccess

を実行し、

Options +ExecCGI
AddHandler cgi-script .rb
DirectoryIndex index.rb

と入力。

システム環境設定で「共有」を選択し、サービスの「パーソナルWeb共有」にチェックを入れると準備完了。

下記のスクリプトを作って「text.rb」という名前で保存してみる。

#!/usr/bin/ruby

print "Content-type: text/html

"
print "Test"

ブラウザを立ち上げ、

http://192.168.0.28/~XXXX/test.rb

にアクセスし、無事にテストと表示されることを確認。

| | コメント (0) | トラックバック (0)

2011/07/25

白潟天満宮のお祭り

昨日、お祭りに行きました。
久しぶりのお祭りで、子供達は大喜び。

屋台の並ぶ通りを歩いていると、知人に出会う出会う。
普段から頻繁に会う人から久しぶりの人、ご無沙汰の人。
知人と知人のつながりがわかったり、「久しぶりで覚えてないかなぁ」なんて思っているとよく覚えてもらえていたり。

「また来てね」

歩きながら出会う人たちとの一言一言が布の上に落ちた水のように心に染み渡ります。

色々なものをひっくるめて、「祭」って大切なのだと思いました。

帰りの車の中で子供の寝顔を見られるのもまた楽し。

| | コメント (0) | トラックバック (0)

«サービス終了のお知らせ