teratermからpareantを利用したssh通信ができなくなった件について
ssh-agentを使って自動でログインするように設定していたはずのteratermがsshの接続に失敗しましたというメッセージを出すようになったので、トラブルシューティング。
結論としてはホームディレクトリのアクセス権を変えたせいでした。
他のプログラムからデータを書き出すために、ホームディレクトリのアクセス権を書き込み可にしていたら、pareantさんがディレクトリの所有者が分からなくなって、サーバがアクセスをはじいていた、という事らしいです。
「/etc/log/messages」に吐き出されるログをよく見ると色々データが乗っているよとアドバイスされました。ログを見る癖をつけた方がいいとは知っていたけど、ログの見方も勉強しないといけないですね。
Ubuntuにruby on railをインストールしてみる
webサービスを作るならrailsがいいよと聞いたので、とりあえずまずは環境を揃えてみる事に。
ubuntuに入れてみようと思ったらちょっと詰まったのでまとめ。
課題
Ubuntuにruby on railsをインストールする。
環境
Ubuntu12.04
ruby 1.8.7
ruby on rails 3.2.13
インストール
まずはrubyすらインストールされてなかったのでrubyをインストール
$ sudo apt-get install ruby
このタイミングでgemなるものがインストールできると聞いていたので、
$ sudo gem install rails
としてみたら
Fetching: json-1.8.0.gem (100%) Building native extensions. This could take a while... ERROR: Error installing rails: ERROR: Failed to build gem native extension.
となりインストールできなかった。
このバージョンじゃビルドできねーよって言われてる感じだったので、調べてみるとrubygemsというのをインストールしないとならないらしい
というわけでインストール
$ sudo apt-get install rubygems
railsを入れるためには、gemでrdocなるものをインストールしなければならないらしいので、インストール
$ sudo gem install rdoc-data
そして本命のrailsをインストール
sudo gem install rails
これが結構時間かかって失敗したかと思ったけど、気長に待つ。
終わったらバージョンの確認をしてみる。
$ rails -v Rails 3.2.13
無事インストール完了
結論
bootstrap適用時にinputタグのサイズがおかしくなる
bootstrapを使ってみようと思い、色々と適用していたらハマったので備忘録。
問題
bootstrapを適用すると、inputタグのtextやpasswordのレイアウトが崩れる。
縦のサイズとかを指定しているのになぜか大きくならない。隣にあるボタンより狭い幅になってしまう。
解決
bootstrapはhtml5を利用するので、htmlファイルを宣言する先頭でhtml5のファイルだよという事を表す必要がある
<!DOCTYOE html> <html lang="ja"> ~~~~~~~~~~~~~~~~~~~~~~~~ </html>
参照
やはりstackoverflowは一瞬で答えが見つかりますね。
http://stackoverflow.com/questions/14293294/bootstrap-text-input-wrong-height
Ubuntuでドキュメントルートのファイル一覧を非表示にする
ドキュメントルートにindex.htmlがないとファイルの一覧が表示されてしまうので、その一覧を消したい。
apacheの設定を調べるとCentOSとかのが出てきて案外設定に手間取ったので備忘録。
課題
webサーバにアクセスした時にファイルの一覧を表示させない。
解決
「/etc/apache2/sites-available/default」に入っている設定をいじる。
10行目の「Options Inexes FollowSystemLinks MultiViews」設定をコメントアウト。
11行目に「Options All -Indexes」設定を追加。
「sudo /etc/init.d/apache2 restart」でApacheの再起動
/etc/apache2/sites-available/default
ServerAdmin webmaster@localhost DocumentRoot /var/www Options FollowSymLinks AllowOverride None # Options Indexes FollowSymLinks MultiViews Options All -Indexes AllowOverride None Order allow,deny allow from all ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128
androidのviewに隙間ができる
WebViewを使ったアプリを作っている途中、どうしても上下左右に隙間が出来て、それ以上viewを大きくできないなぁと思ったので備忘録。
課題
viewを配置した時の上下左右の隙間を無くす
原因
xmlでpadding(内側の隙間のサイズ)が決められてただけ。
解決
activity_main.xmlを見てみると、@dimen/activity_vertical_marginと@dimen/activity_horizontal_marginというのが設定されていた。
resフォルダにあるvalues/dimens.xmlの中のそれぞれのmarginの値を0にする事で、画面いっぱいいっぱいまでwebviewを広げる事ができた。
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <WebView android:id="@+id/mainWebView" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
dimens.xml
<resources> <!-- Default screen margins, per the Android Design guidelines. --> <dimen name="activity_horizontal_margin">0dp</dimen> <dimen name="activity_vertical_margin">0dp</dimen> </resources>
android2.3のエミュレータにおいてwebviewからjavascriptInterfaceを使うとアプリが落ちる
タイトルが長いですが、
android2.3のエミュレータにおいて、webviewからjavascriptInterfaceを使うとアプリが落ちます。
環境
android2.3のエミュレータ
webviewからjavascriptInterfaceクラスを使って、javaのネイティブメソッドを呼ぶとアプリが落ちる。
結論
android2.3エミュレータの仕様です。
javascriptInterfaceを試したい場合は他のバージョンのエミュレータを使用する事。
過程
最初は普通に起動しますが、javascriptからjavaのメソッドを呼ぶ機能が動いた瞬間にアプリが落ちます。
エラー内容は以下の通り。
05-17 23:30:47.919: E/InputDispatcher(61):channel '4077cd08 hoge.fuga.パッケージ名/hoge.fuga.パッケージ名.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
android build targetが変更できない
前回、androidの開発環境を構築していて、なぜかeclipseからエミュレータが起動出来ないという事態が発生していた。
今回はそれの原因究明を行う。
課題
eclipseからandroidシミュレータを指定して、起動させる。
症状
eclipseからプロジェクトを「androidアプリケーションで実行」を選ぶと、
unknown target 'android-10'
となりシミュレータを起動できない。
原因
eclipseの方で設定していたandroid-sdkのビルドパスが、入れた事を忘れていた方のsdkになっていて、いくら新しく入れた方のsdkでシミュレータを作成しても見つからない=unknown targetとなっていました。
プロジェクトのプロパティで、android2.3をターゲットにして作成したはずなのに、ビルド・ターゲットに2.3が現れてないという事に気づいて、パスが間違っているんだと気づいて解決しました。
まとめ
気づいてしまえばとても間抜けなミスでした。
下手にシミュレータを起動させていると、パスの通っていないsdkから起動したものでもeclipseが見つけてしまうので発見が遅れてしまいました。
起動しないと思ったらまずはパスを確認する事が重要ですね。