2013年3月1日金曜日

Rails自習その2:rails new blog

http://guides.rubyonrails.org/getting_started.html

わけわからないまま指示通りいってみよー♪
とりあえず事前にフォルダ作成

sudo mkdir /usr/local/rails
cd /usr/local/rails

初のrailsっぽいコマンドを実行!

rails new blog

むむむ。おかしい。
それっぽいメッセージじゃない(勘)

sudo rails new blog

むむむ。なんかそれっぽいメッセージキター!
が・・・・データベース系をぜんぜん入れてないので、最後にエラー・・・

An error occurred while installing sqlite3・・・

そりゃそうだ。sqlite3など入れてない。

gem install sqlite3 -v '1.3.7'

をやれと言われたが、sudoつきでやってもエラーが出る。
sqlite3.hがないからだそうだ。
stackoverflowだと


sudo apt-get install libsqlite3-dev

を先にやる必要があるようだ。なるほど。
どうせなので

sudo apt-get install sqlite3

もやっておく。そして再度gemからsqlite3(rubyのsqlite3用ライブラリ?)をインストール

sudo gem install sqlite3
gem list | grep sqlite
sqlite3 (1.3.7)

どうも入れることができたっぽい。
・・・

回り道になった。

sudo rails new blog

なんかsecret tokenのところを上書きするとか出ていたが、
さっきsudo gem new blogで途中まで作成しちゃってたのが原因らしい。
Yを選択して上書き、しばし待つ・・・

Your bundle is complete!

無事何かができたー


http://guides.rubyonrails.org/getting_started.html

次は・・・

 cd blog
rake db:create

ここでエラーとなる

rake aborted!
Could not find a JavaScript runtime.

よくわからんがここらあたりか?
試してみよう。blog/GemFilesに追記

gem 'execjs'
gem 'therubyracer'
sudo bundle install

途中までは進んだがエラーが・・・

よく見たらg++がないっていうエラーぽい
sudo apt-get install g++

ここまでやって、そもそも環境準備が色々足りなかったらしいことに気づく。
が、必要な物はその時に入れればよい!そのまま続行!

sudo bundle install
...
your bundle is complete!

ヤッター
じゃあ戻って
sudo rake db:create
何もメッセージも出ずしゅーりょー(何かメッセージくれー)

sudo rails server
WEBRICKとか何かが動いたぽい。
なんとなくWeb Serverが動いたのだと感じる。

うちの環境だと
http://192.168.0.5:3000/
で何やらアクセス成功

今日はここまでm(_ _)m

2013年2月28日木曜日

Rails自習その1:必要な物をインストール

Ruby on Rails=Rubyのフレームワーク?
ほとんど情報0から開始してみた。


とりあえず必要そうなものをubuntu12.04にインストールしてみた

○ruby(当然)

$ sudo apt-get install ruby1.9.3

 「ruby」だけだと1.8、「ruby1.9」だとそんなのないと言われる。
rails3.2だと1.9.3推奨と書かれてたので入れてみた。

○gems(RubyGems) Ruby用パッケージ管理システム?
 Rubyライブラリ用のapt-get(yum,aptitude)みたいなもの?

ruby1.9.3を入れたら入ってたぽい

gem -v
1.8.11

gemを最新にしてみたくて、
sudo gem update --system
とやらをやってみたが、Debianがどうとか言われて上げられない・・・これubuntuだよなぁ・・・

試しに
sudo apt-get install gem
としたら、何やらいろいろインストールされたが結局1.8.11のままで
gem update --system
も変わらずNGだった。

良くわからぬが、何やらupdate用のパッケージを入れてそこからUpdateすればいいらしい
sudo gem install rubygems-update
sudo rubygems-update
(中略適当に、sudo gem update --systemとかしてた)
sudo gem uninstall rubygems-update

そして気づいたら
gem -v
2.0.0
になってた(汗)

sudo gem update --system
でも
Latest Version Currently Installed
これでよいのかな?


○rails
インストール前
gem list
なし

sudo gem install rails
なんか大量にインストール

gem list
いっぱいの中に
rails (3.2.12)
を確認

ただ、インストール中
unable to convert ...
とか言われていたのでlocaleがおかしいらしい。

sudo gem update
とかすると再度同じようなエラーがいくつか見れる。


sudo locale-gen ja_JP.UTF-8
sudo update-locale LANG=ja_JP.UTF-8

でlocaleを修正し、再度
sudo gem update

失敗していたパッケージのインストールが成功
sudo gem update
...
Updating Installed gems
Nothing to update
これでとりあえず問題なさそうだ。

ubuntu 12.04 初期調整

ubuntu 12.04 64bitをインストールした後の調整


○date

 ubuntu@ip-10-160-69-235:~$ date
 Sun Feb 17 13:57:04 UTC 2013


 ubuntu@ip-10-160-69-235:~$ sudo dpkg-reconfigure tzdata

Asia > Tokyo

 Current default time zone: 'Asia/Tokyo'
 Local time is now:      Sun Feb 17 22:59:44 JST 2013.
 Universal Time is now:  Sun Feb 17 13:59:44 UTC 2013.

 ubuntu@ip-10-160-69-235:~$ date
 Sun Feb 17 22:59:46 JST 2013



○Locale
http://www.compnet.jp/index.php/archives/2571


sudo locale-gen ja_JP.UTF-8
sudo update-locale LANG=ja_JP.UTF-8


2011年9月23日金曜日

AS5750-N52C/K 3ヶ月ほど使ってみて

その後の使用感を簡単に。

Web、開発環境、VMwareなどにしか使っていません。
Gameや動画メインの人とは感想が違うかもしれません。


<良し>
・処理能力
メモリ8Gに増やしてあるので、普段困ることは何もありません。
先日の#devquiz #gdd11jp では、3プロセス、各メモリ2Gの処理を行い、
一週間程度電源OFFすることなく断続的に走らせ続けました。
少し心配でしたが、残暑の残る部屋の中、暴走することもなく完走してくれました。

普段はHDDのある(?)右手の下辺り、
高負荷の処理を行うとCPUのある(?)左手の下辺りが熱くなります。
パソコンの底面奥側に、細長いゴムなどをおいて傾斜をつけると
多少底面からの排熱が良くなるかもしれません。

cyanogenmodの「make clean」からの「make -j4」も30分以内に終わるため、
楽になりました。

・キー以外の打鍵感
これは個人的な趣味ですが、私はこのキーボードの打鍵感好きです。


<悪し>
・グレアの映り込み
明るい部屋なら問題ないのですが、朝など照明を使わない時に映りこみが気になります。
「じゃあ、ノングレアを選べばいいんじゃね?」と言われれば、まさにそのとおりです(・ω・)

・BackSpaceキーの位置
NumLockキーが右横隣にあり、キーの大きさも同じであるためか、打ち間違いが多いです。
なれれば平気かもしれませんが・・・・

・拡張性
拡張カードスロットがありません。
いや、それも「購入前に分かってたことじゃね?」と言われるとそのとおりです(・ω・)
けど人は使い始めると「これも使えるかなぁ」とか欲が出るのですよ・・・

・タッチパッド
Acerのタッチパッドが悪いというより、タッチパッド全般の問題です。
右クリックを混ぜた(テキストのコピーペーストなどの)細かい作業を行おうとすると
両手が必要になります。マウスだと片手で完結するので、やはり作業効率はよくありません。


<普通?>
・HDD
320Gもあるので、動画や画像をバンバン保存しないなら十分ですし、
そういう用途の人は、外付けHDDを持っていることでしょう。
速度の面でSSD換装も考えましたが、
コスト対メリットを考えると「私は」必要ないと判断しました。


今はだいぶ安くなりましたね。最安\38,500とは。
ちなみに追加したメモリは、
CFD ELIXIR W3N133Q-4G
の4G2枚組です。

2011年9月21日水曜日

サーバーへの安定したデータ接続を確立できません


AndroidのMarketに接続出来ない際に出るメッセージです。
以前調べた情報をいくつかまとめたいと思います。

ちなみに英語では、
「Can't establish a reliable data connection to the server」
というメッセージになるようです。(ぐぐる際のキーワードにどうぞ)

<結論>
私の調べた範囲では、解決方法が一つに定まらず、
うまくいくこともあればいかないこともある、という状態です。
最終手段「Factory Reset(出荷時状態に戻す)」を選んでいる人も多い印象でした。


<解決方法>
私自身が試行錯誤でやったわけでなく、ほとんど先人の情報をまとめただけです。
情報提供者の方々には感謝を。


(1)Youtube Workaround(?)

http://fubar.school.nz/techblog.php?action=show&id=54

上記は私が調べた時に見つけたURLでしたが、
同じところを読んで解決された人を見つけました。
http://mykddi.com/archives/240


(2)マーケットアプリのデータ消去・アンインストール


設定>アプリケーション>アプリケーションの管理
から、「マーケット」を探し、
・データを消去
・キャッシュを消去
・アップデートのアンインストール
あたりを行うと治ることもあるようです。



(3)(2)をすると1回目は接続出来るが2回目接続出来なくなる → 1回目の接続成功時適当にアプリインストール

どうもこのパターンは、
 ・初回の接続はOK
 ・2回目の接続時、マーケット自体が自動的にアップデート&上記エラーが発生
ということが起こっているようです。
(上記アプリケーションの管理から、マーケットのバージョンを見ると、
 初回接続前と2回目接続後で、バージョンが上がっているのが見れる)

2chで投稿してくださった方がいてリンクしようかと思ったのですが、
スレがdat落ちしたようなので、引用させていただきます。





> 48 : fi01 ◆w.f0Q9VCUk : 2011/08/10(水) 02:02:52.95 ID:H6J3/AEV [2回発言]
> > マーケットのバグ、原因が解ったかも。 > > アカウントと端末とアプリのインストール状態の3つが > 紐付いていて、これに矛盾が出るとダメみたい。 > オールリセットすると矛盾が発生し、マーケットの初回 > 起動時にダウンロード履歴を見ると以前にインストール > されていたアプリが表示される。 > ここでそのままマーケットを終了するとマーケットが > アップデートされて、その後は一切接続不能。
>
> 対策はマーケットのアップデートをアンインストールして > 古いマーケットを起動する。 > 正常に起動したら、ここで何かをダウンロードする。 > するとダウンロード履歴がFIXされて、マーケットが > アップデートされた後も正常に使えるようになる。


(4)パソコンのブラウザでGoogle Latitudeを開き、プライバシーで現在地を非表示にする

調子が悪くなる前にLatitudeやプレイスを触っていた方は以下の可能性があるかも。
http://blogs.yahoo.co.jp/dokomademoevolution/62968761.html


(5:少し危険)/data/data/com.android.providers.settings/databases/settings.dbを削除

root権限が必要です。
(6)を実行を決意した人が、「物は試し」程度に行うようにしてください。

・アプリケーションの管理から、マーケットなどのデータやキャッシュなどを(適当に?)削除する。
・上記ファイルを削除する
・再起動する

#私はこれで治りました(^^;


(6:最終手段)
Factory Reset(工場出荷時状態に戻す)です。
この症状になった人のほとんどが回復を諦め、リセットしています。


最近はあまり聞かれない気もしますし、
最新のマーケットアプリだと問題ないのかもしれませんね(・ω・)

2011年9月16日金曜日

#gdd11jp #devquiz

ここしばらくスライドパズルと遊んで取り組んでましたm(_ _)m


最終的に力技(マンパワー、パソコンパワー)で5000問分の回答を得ましたが、
他の#gdd11jpの方々と比べると、超非効率だったなと痛感しています。
計算時間もかなり使っており、かなり泥臭いですorz

ざっと他の方々の手法を読ませていただいて、
私独自だったかもしれない点を書かせていただきます。


(1) 3つの評価関数の上位いくつか + 乱数でピックアップ

ステップ検索(ある程度計算し、閾値になったら評価関数の優等生を選抜、次のステップへ)
を使ったのですが、その評価関数を上記のように用意しました。

単一の評価関数だとローカルミニマムに落ちてそれ以上発展しない様子が良く見られたので、
評価関数を複数追加すれば、例えば、

評価関数Aの優等生 →閾値分進行→ Bの優等生が発生→進行→ Cの優等生が発生

というように、評価関数間上位を渡り歩くようなパスが生じるのではないかと考えたからです。
乱数でピックアップも同様の意図を持っています。

評価関数は、
・壁があったらその迂回分距離を足すマンハッタン距離
・マンハッタン距離に、上、もしくは、左にいけばいくほど重みを掛ける
・2方向しか移動出来ないパスにおける重み(後述)
とかを、人力(マンパワー)で適当に入れ替えたり、足し合わせたりしながら回してみました。


(2) 2方向しか移動出来ないパスにおける評価

これは、2方向しか移動出来ない場所が連続でつながるパスを判別し、
そのパス内の状態を評価関数で表現しました。

例えば、1-2-3-4-5 という2方向しか移動出来ないパス構造があった場合、
そのパス上で配置されたパネルの評価関数を、
以下の下に行けばいくほど大きくなるよう表現します。(実際はもうちょっと細かく数値化してます)

1-2-3-4-5 がパス上にある(完成)       評価値:0
<1-2-3-4 or 2-3-4-5 (完成一歩手前)  評価値:10
<1-2-3 or 3-4-5     (完成2歩手前)   評価値:100 ※自分で間違い発見・・・
<1-2 or 4-5                      評価値:1000
<1 or  5 がパス上にある               評価値:10000
<1~5のどれもパス上にない               評価値:100000

マンハッタン距離にこの評価関数を加算すると、
最初(2)の評価関数を落とすようにまずは動き、(10000→10とか)
つまり、パス構造になっている部分を先に解き、
その後は普通にマンハッタン距離を落とすように評価値が動きます(数10→0)。
これを使って、左上がL字形の一本道になっているような盤面を倒しました。

ただしこれは問題があり、
2箇所以上のパスが互いに影響及ぼしあっている場合には使えませんでした。
・Tの字型にパス3本が一箇所で接合している場合
・パスを挟んで最終的にループ構造をとっている場合(3つとか4つの島になっている盤面)
というより、そういう問題が10問?ほど残りましたorz

最後は残念ながら「マンパワー」で解きました。



勉強を兼ねて書いたことのなかったjavaを使ったり、
ぐんと解け出した時のわくわく感も感じられ、
寝不足になりましたがとても楽しかったです(・ω・)ノ



よく考えたら、例えば、(完成2歩手前) 「2-3-4」でも良いではないか・・・
あーなーだーらーけーだーΣ( ̄Д ̄;)


※2011/9/21追記
こういうひらめき(ソルバー3号)、かっこいいですねぇ(・ω・)
http://mnu-j.tumblr.com/post/10279560089/cattaka-devquiz

2011年8月10日水曜日

repo start *** --all

「makenekoが学習したandroid build初心者向けTIPS」 メモ(1)です。


cm4is01やcyangoenmod、はたまたAOSPのsourceをrepo syncした後

repo start *** --all
*** = branch名、例えば「master」とか。

を一度実行しておくと後々ちょっとだけ便利です。

androidのsourceはgitで管理されているのですが、
これをしておくと、repo sync直後の状態をbranchとして記録(?)出来ます。

たとえば、
framework/base/wifi/java/android/net/wifi/WifiStateTracker.java
を少し編集したあと、カレントディレクトリをframework/baseより下にして
git diff
とすると

diff --git a/wifi/java/android/net/wifi/WifiStateTracker.java b/wifi/java/androi
index e2d2a96..755ef93 100644
--- a/wifi/java/android/net/wifi/WifiStateTracker.java
+++ b/wifi/java/android/net/wifi/WifiStateTracker.java
@@ -368,7 +368,7 @@ public class WifiStateTracker extends NetworkStateTracker {

         mSettingsObserver = new SettingsObserver(new Handler());

-        mInterfaceName = SystemProperties.get("wifi.interface", "tiwlan0");
+        mInterfaceName = SystemProperties.get("wifi.interface", "wlan0");
         mDnsPropNames = new String[] {
             "net." + mInterfaceName + ".dns1",
             "net." + mInterfaceName + ".dns2"

とか表示されて、変更点を表示してくれます。


しかし、例えば、framework/base、と、framework/policy/baseはgit上別プロジェクト扱いになるため、
それぞれのフォルダでgit diffを実行しないと、それぞれフォルダの中身の差分が表示されません。