VirtualBoxを使ってcentOSに入ろうとするがvagrant upでエラーがおきてしまう
久しぶりに開発環境にログインしようとすると Vagrant upしてcentOSにログインする際にエラーが起きてしまう
VirtualBoxが2015年2月12日にversion 4.3.22にversion up したらしく新しいのをインストールしてしまったのが 原因っぽい・・・
結局仮想開発環境を一旦削除して対応したけどまた環境構築からなのでめんどくさかった(´;ω;`)
ちなみに再び環境を整えようと思ってvagrant up までいったとこで似たようなエラーを吐き出しましたが
vagrant-vbguestプラグインがGuestAdditionsを無効にしてしまう - Qiita
を参考にしたら解決しました
続きを読むraspberry pi typeAを無線LANに接続、リモート操作するのに詰まったので
raspberry pi TypeAが必要になったので煽ってみました
色々なサイトさんが解説してるけどひとまず 「raspberry pi 入門」
みたいな感じでググってやると色々出てきましたが
RaspberryPi - Raspberry Pi に入門してみた。 - Qiita
詰まったところもあったので記載
有線LANは(ほぼ)必須
有線LANなくてもいけるかな、がんばろうと思いましたが 想像以上にうまくいかない というか、最初にraspberry piをアップデートしてあげたほうがよいみたいなのですが アップデートするのにインターネットに繋ぐ必要がある\(^o^)/
というわけで有線LANにつないであげた usbハブを用いて、変換アダプタを使ってイーサーネットのケーブルをつないであげる たぶんこれで自動的にネットには繋がるはず
↓
ターミナルで
$ sudo apt-get update
コマンドをうってあげる
↓
$ sudo reboot (アップデートした後なので、一応再起動してみる)
無線LANアダプタではまる
家電量販店で買ったELECOMの無線LANアダプタを使ってみたのですが どうもraspberry piに対応してなかったのか 認識はしてくれるけど無線LANとしては起動してくれないorz
ELECOM 無線LAN子機 コンパクトモデル 11n/g/b 150Mbps USB2.0 WDC-150SU2MWH
- 出版社/メーカー: エレコム
- 発売日: 2014/05/11
- メディア: Personal Computers
- この商品を含むブログを見る
raspberry piはSDカード、無線LANなど対応してるやつじゃないと使えないので レビューでraspberry piで使ってみたって人がいるか もしくは、マイコン基板を売ってるようなパーツショップさんで探すのがいいみたいです (僕はマルツさんで買いました http://www.marutsu.co.jp/ )
色々とレビューが叩かれてたりもするけど、確実なところでBUFFALOのやつを購入
BUFFALO 無線LAN子機 コンパクトモデル 11n技術・11g/b対応 WLI-UC-GNM
- 出版社/メーカー: バッファロー
- 発売日: 2010/06/25
- メディア: Personal Computers
- 購入: 44人 クリック: 226回
- この商品を含むブログ (23件) を見る
こちらにしてやると速攻で認識されました ELECOMさんぇ・・・
無線LANを使ってリモートからraspberry piを操作してやる
raspberry piをディスプレイに繋ぎっぱなしでもいいのですが 無線子機(無線ドングル)を使うと たとえばMacのターミナルから、sshコマンドを叩いてやればリモートでraspberry piを操作してやることが出来ます その方法が2つ ・固定IPアドレスを振ってやる ・IPアドレスは自動で振り分けてやって、ホスト名を指定しておいてホスト名でMacなどからログインする
今回はひとまず固定IPアドレスの設定を行ってみた(後々必要になるので)
固定IPアドレスでログイン
RaspberryPi - Raspberry PiでWiFi接続 - Qiita
などを参照
が、詰まる・・・初心者には厳しいところがいくつかあったので記載
おもいたったがきちじつ - RaspberryPi - 使いこなす - IPアドレスを固定する
を参照した
固定にするIP addressは最後の数字だけ固定できるだけ
なぜかこの辺記載されてないのですが、IPアドレスって
192.168.☓☓☓.△△△
みたいな感じで設定されているのですが、☓☓☓のところは自前の無線サーバーの値みたいなので 自分で確認してから設定してあげないといけません (どのサイトも当たり前のように 192.168.1.200 とか 192.168.2.200 とかで設定してたけどそれじゃ繋がらなかったので )
確認方法としては、raspberry pi のターミナル(コマンドプロンプト)のところで 無線LANまたは有線LANを接続した状態で $ ifconfig
ってコマンド打つと、おもいたったがきちじつ - RaspberryPi - 使いこなす - IPアドレスを固定するのサイトでは例えば eth0 のところ(有線LAN)のところに
inet 192.168.2.104
って出てきてます。 この場合は、固定IPアドレスを指定する時は
address 192.168.2.△△△
となるので自分の使ってるLANを確認してあげなければならない(たぶん)
それ以上に大事なのがgateway ゲートウェイ
次に、コマンドで
$ route
と打ってやると、ゲートウェイというのが出てくるので これはその値を用いるみたいです
おもいたったがきちじつ - RaspberryPi - 使いこなす - IPアドレスを固定するのサイトでは例えば ゲートウェイ 192.168.2.1 って出てますね
この値をそのまま用いてください
他のサイトとかだと、当たり前のように何も言わずに
gateway 192.168.2.254
とか設定してたからなんなのかと思ったよ・・・初心者には厳しい(`;ω;´)
全体の設定をまとめると /etc/network/interfaces で
auto lo iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 #iface wlan0 inet dhcp iface wlan0 inet static address 192.168.☓☓☓.△△△ #ここはifconfigで確認した☓☓☓の部分の数字と、△のところは自分で好きな数字をいれる。わからなかったら200がおすすめ netmask 255.255.255.0 gateway 192.168.☓☓☓.◯◯◯ # ここはroutesコマンドで確認したゲートウェイの番号 wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp
としてやればつながるはずです
これで、raspberry piを再起動してあげて($ sudo reboot) 、macのターミナルなどから $ ssh pi@192.168.☓☓☓.△△△
と自分で設定してあげたアドレスを打ち込むことでリモートでraspberry piを操作することが出来るようになりました
Mac使っててwikipediaに繋がらない時の対処方法
Wikipediaなどに繋がらないのはipv6 or AVASTが問題?
原因として
・ipv6が原因?
・セキュリティソフトのavastが原因?
mac book airを使ってるのですが wifiの種類によってはwikipediaなど特定のサイトに繋がらないという問題がありました
しかしエラーコードの ERR_EMPTY_RESPONSE
を検索してもなんか情報があまり出てこず・・・ というか似たような現象が起きてるブログなんかもブロックされて表示できない\(^o^)/ みたいなことが起きたのでこうやったら対処できたよ! ってやつを
ipv6をいじってみる
色々調べてみると、もしかしたらネットワーク環境のipv6というものをいじればいいんじゃないかとなって いじってみると確かにページが表示されるようになりました!
ipvに関しては↓
【Wi-Fiルータ】IPv6通信(光テレビ・ウイルスクリア)ができない/設定...
WINDOWS7 「識別されていないネットワーク」と出てインターネットにつながらない - マイクロソフト コミュニティ
IPv6 - FacebookとGoogleだけ、やたら遅い場合の対処 - Qiita
対策としては
Dockから
「システム環境設定」
↓
「ネットワーク」
↓
下のほうにある「詳細」
↓
TCP/IPタブの中にあるIPv6の設定を 自動からリンクローカルのみに変更してみる
これでwikipediaなどに接続できなかった問題を 解消することができました
avastのシールドをoffにすると繋がる
自分はセキュリティソフトでavastを入れてみてるのですが avastによってアクセスがはじかれてるのもあるみたいです
というわけでavastの設定を行いましょう
アプリケーションフォルダの中の Avast Mac Securityアイコンをクリック
↓
一番したのPreferenceをクリック
↓
Web Shieldの settingをクリック
↓
Enable IPv6のチェックを外す
↓
Done
これで繋がるようになりました
どちらでもよいとは思いますが、なんかIPv6を使ってるとページの読み込みが遅くなる場合があるみたいですね
IPv6 - FacebookとGoogleだけ、やたら遅い場合の対処 - Qiita
このへんもうちょっと調べてみてよいほうを選ぼうかなーと思います。
Three.jsのBoxGeometryでそれぞれの面に別々の色を指定する方法
Three.jsで直方体の面に別々の色をあてたいので調べてみた
HTML5による物理シミュレーションを読んでいるのですが
HTML5による物理シミュレーション―JavaScriptでThree.js/jqPlo
- 作者: 遠藤理平
- 出版社/メーカー: カットシステム
- 発売日: 2013/02
- メディア: 単行本
- この商品を含むブログ (4件) を見る
物体の面ごとに違う色などを指定してあげたいので調べてみた
(1) MeshFaceMaterialを使う
こちらの記事を参考にしました THREE.jsのCubeGeometryで六面別々のMaterial(Texture)を使う方法 - tsuge development page
しかし2年前の記事だからなのかちょっと記述方法が今と異なってたので訂正 (three.jsのリビジョンはr69を使ってます)
MeshFaceMaterialメソッドを使えば複数面をバラバラに指定することが出来ます 例えば直方体を描写する時は、一番シンプルなやつだと
//箱型オブジェクトの宣言 var geometry = new THREE.BoxGeometry(20, 20, 20); //材質の宣言 var material = new THREE.MeshLambertMaterial({ color: 0xFF0000 }); //オブジェクトの生成 mesh = new THREE.Mesh(geometry, material); //シーンへの追加 scene.add(mesh);
のように記述しますが、六面に異なる色を付けたい場合は配列を用いて
//箱型オブジェクトの宣言 var geometry = new THREE.BoxGeometry(20, 20, 20); //材質を配列で指定する(箱型なので6面分) var materials = [ new THREE.MeshLambertMaterial({color: 0x00ff00}), new THREE.MeshLambertMaterial({color: 0x00ff00}), new THREE.MeshLambertMaterial({color: 0x0000ff}), new THREE.MeshLambertMaterial({color: 0x0000ff}), new THREE.MeshLambertMaterial({color: 0xff0000}), new THREE.MeshLambertMaterial({color: 0xff0000}) ]; //MeshFaceMaterialで材質を宣言 var material = new THREE.MeshFaceMaterial(materials); //オブジェクトの生成 mesh = new THREE.Mesh(geometry, material); //シーンへの追加 scene.add(mesh);
のようにします。 MeshFaceMaterialの引数にmaterialsを用いてあげます。
ドキュメントに書いてあるんだけどちょっとわかりにくいんだよね・・・英語だし http://threejs.org/docs/#Reference/Materials/MeshFaceMaterial
(2) for文でロープ表現を用いる =>ランダムに色が指定されます
これは、three.jsのファイルをダウンロードした時のexampleフォルダに入ってるcanvas_geometry_cube.html内の記述を参考にしました
コードを書いてやると
//形状オブジェクトの宣言 var geometry = new THREE.BoxGeometry(20, 20, 20); //for文で材質をランダムに指定 for ( var i = 0; i < geometry.faces.length; i += 2 ) { var hex = Math.random() * 0xffffff; geometry.faces[ i ].color.setHex( hex ); geometry.faces[ i + 1 ].color.setHex( hex ); } //材質の宣言 var material = new THREE.MeshLambertMaterial({ vertexColors: THREE.FaceColors }); //オブジェクトの生成 mesh = new THREE.Mesh(geometry, material); //シーンへの追加 scene.add(mesh);
です。0xffffffをランダムな数字で掛け算してやることで毎度違う色を生成してるみたいです
今のところはこの2つなので他にもあれば便利だなーと思います。 なお、テクスチャをそれぞれの面で別々に指定する場合も最初の方法を使えば出来そうです
jQuery_uiのエフェクトの書き方がfxからshowに変わってる
jQuery_ui の使用がバージョンに異なっていて困ったので記載
2014年11月現在、jQuery_uiのバージョン1.11.2を使っていますが バージョンが違っているせいかコードの記載方法が異なる・・・
エフェクトをつけるのに fx opacityなどを使っていたのですが全然動かない・・・
例えば今、jQuery_uiでtabsを扱っているのですが ネットで検索した情報や一年前の本などではちょっと書き方が異なってて詰まったので記載
tabsのエフェクトを変える
jQueryを使ったタブメニューの実装サンプルまとめ | 5am! Web Illusions
のサイトが真っ先にヒットしたけど 今は記述の仕方が違うみたいなので注意!
jQuery_uiのサイトのAPI Documentationを参考にしました
例えば、タブをゆっくり表示させる透明度変化のアニメーションは
古い
$('#tabs').tabs({fx: {opacity: "toggle", duration: "normal"}})
のように記載していましたが
新しい
$('#tabs').tabs({show:{effect:"fade", duration: 100}});
(完全に一致したエフェクトではないみたいですが)
のようになります。 色々と試してみなければですねー
ちなみにtabsだけ作りたい場合のコード全体を下に記載しておきます (jquery-ui.min.jsなど必要なファイルのディレクトリはご自分で場所を設定されてください)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>jQuery_UI_tabs</title> <link href="jquery-ui/jquery-ui.min.css" rel="stylesheet"> <script type="text/javascript" src="jquery-ui/external/jquery/jquery.js"></script> <script type="text/javascript" src="jquery-ui/jquery-ui.js"></script> <script> window.addEventListener("load", function () { resizeTo(400, 300); //ウインドウサイズを指定 //タブ切り替えインターフェースの実装 }); $(function(){ $('#tabs').tabs({show:{effect:"fold", duration:"normal"}}); }); </script> <style> body{ font: 10px "Trebuchet MS", sans-serif; margin: 40px } .demoHeaders { margin-top: 2em; } </style> </head> <body> <!-- tabs --> <h2 class="demoHeaders">Tabs</h2> <div id="tabs"> <ul> <li><a href="#tabs-1">First</a></li> <li><a href="#tabs-2">Second</a></li> <li><a href="#tabs-3">Third</a></li> </ul> <div id="tabs-1">タブ1番です </div> <div id="tabs-2">タブ2番です </div> <div id="tabs-3">タブ3番です </div> </div> </body> </html>
Rails チュートリアル 9章 演習
英語版の解答はありました
Hartl's Rails Tutorial - Solutions for Ch 9 Exercises · Valhalla
2. の
リスト9.3の Gravatarの [change] リンクを改造し、別ウィンドウ (または別タブ) で開くようにしてください。ヒント: Webを検索してみましょう。この目的にうってつけの堅牢なメソッドが見つかるはずです。_blankという文字も一緒に検索してみてください。
の部分
検索したら、どうやら _blank というのを使うらしい
下記を参照
ruby on rails - Open link in new tab with link_to - Stack Overflow
一応、答えとしては
app/views/users/edit.html.erbの
<%= gravatar_for @user %>
<a href="http://gravatar.com/emails">change</a>
</div>
のhrefのところに
<a href="http://gravatar.com/emails" target="_blank">change</a>
と、target="_blank" を追加してやればよい
これだけで新規タグでリンクが開くようになります
target = .......
はHTMLのタグによるものなので
HTMLのリファレンスが参考になります
_self とか _top など別の属性もあるので
参考に
9.6.3 ProfileやSettingのリンクが無いことをテストする
一応、こちらのページに解答例を見つけたのですが
Railsチュートリアル 4.0版の演習について、自分なりの解答をまとめてみた - メモ的な思考的な
FactoryGirlを生かした解答例を自分なりに考えてみました
(Rspecは3系でやってるので、it {should ....}ではなく it {is.expected.to ....}になってます)
spec/requests/authentication_pages_spec.rb に対して
require 'spec_helper'
describe "Authentication", :type => :request do
subject { page }describe "signin page" do
let(:user) {FactoryGirl.create(:user)}
before { visit signin_path }it { is_expected.to have_content('Sign in') }
it { is_expected.to have_title('Sign in')}
it {is_expected.not_to have_title(user.name)}
it {is_expected.not_to have_link('Users', href: users_path)}
it {is_expected.not_to have_link('Profile', href: user_path(user))}
it {is_expected.not_to have_link('Settings', href:edit_user_path(user))}
it {is_expected.not_to have_link('Sign out', href: signout_path)}end
describe "sign in" do
before { visit signin_path}describe "with invalid information" do
let(:user) {FactoryGirl.create(:user)}
before { click_button "Sign in"}it {is_expected.to have_title('Sign in')}
it {is_expected.to have_selector('div.alert.alert-error', text: 'Invalid')}
it {is_expected.not_to have_title(user.name)}
it {is_expected.not_to have_link('Users', href: users_path)}
it {is_expected.not_to have_link('Profile', href: user_path(user))}
it {is_expected.not_to have_link('Settings', href:edit_user_path(user))}
it {is_expected.not_to have_link('Sign out', href: signout_path)}
describe "after visiting another page" do
before { click_link "Home" }
it {is_expected.not_to have_selector('div.alert.alert-error') }
end
end
のように、赤字の部分を追加した
(他の人の解答と違うのでここは自信ないですが一応青信号になります)