railsのgemプラグインを作ってみたのでrubygemsに登録をしてみたいと思います。
作ったrailsプラグインに関しては、
http://kingyo-bachi.blogspot.jp/2013/12/rails.html
を見ていただけたらと思います。
rubygemsに登録するためには、rubygemsにアカウントを作成する必要があります。
https://rubygems.org/sign_up
からサインアップしてアカウントを作ります。
アカウントを作成するとAPI Keyが払い出されます。
これを
~/.gem/credentials
に保存するとrubygemsに登録ができるようになります。
API Keyは
https://rubygems.org/profile/edit
にあります。
またこのページには~/.gem/credentialsを作成するコマンドが書いてあるので、それをコピーして実行します。
パスワードが聞かれるので、パスワードを入力すると~/.gem/credentialsが作成されます。
これで登録する準備はOKです。
実際に登録する手順は、
登録するrailsプラグインのディレクトリに移動して
rake release
で登録されちゃいます。
以下の登録されちゃいました。
https://rubygems.org/gems/rails_acclog2db
以下が参考になりました。
http://blog.kyanny.me/entry/2012/02/20/015129
2013-12-30
railsのプラグインを作ってみた
railsのプラグインを作ってみました。
実際に作った手順を簡単に記録しておこうと思います。
作ったのは、railsのアクセスログをdbに保存するというものです。
after_filterでlogsテーブルに記録をするというだけのものです。
とりあえず名前はrails_acclog2dbとします。
githubに実際に作ったものを置いてみました。
https://github.com/vivahiraj/rails_acclog2db
まずは雛形を作ります。
rails plugin new rails_acclog2db -T --skip-bundle --dummy-path=spec/dummy
それぞれのオプションは
関連するgemをvendor配下にインストールするように設定します。(必須ではないです)
environmentの読込先を変更してammeter/initを追加します。
今回はログの記録先としてlogsテーブルに保存したいので、migrationとmodelをrails generateで実行できるようにするために専用のgeneratorを作成してみます。
まずはgeneratorでコピーするファイルを保存するディレクトリを作成します。
mkdir -p lib/generators/rails_acclog2db/install/templates
コピーするマイグレーションを作成します。
vi lib/generators/rails_acclog2db/install/templates/create_logs.rb
ジェネレーターを作成します。
vi lib/generators/rails_acclog2db/install/install_generator.rb
だいたいこんな感じがお決まりのようです。
ジェネレータのspecも作成してみます。
mkdir -p spec/generators/rails_acclog2db/install
vi spec/generators/rails_acclog2db/install/install_generator_spec.rb
specが成功することを確認してみます。
bundle exec rspec spec
実際にジェネレートできるかテスト用のrails環境で試してみます。
cd spec/dummy/
rails g rails_acclog2db:install
bundle exec rspec spec
つづいてメインの部分でlogを記録する部分です。
controllerにaccess_loggingと書いたら、そのcontrollerへのログを記録するようにしてみます。
sessionに:userが設定されていたら、きっと何かしらの認証がされたと思い込んで、それっぽい情報を保存するようにもします。
vi lib/rails_acclog2db/logging.rb
vi spec/controllers/welcome_controller_spec.rb
specが成功することを確認してみます。
bundle exec rspec spec
これが普通な作り方なのかはよくわからないのですが、こんな感じでできました。
以下が参考になりました。
http://guides.rubyonrails.org/v3.2.14/plugins.html
http://d.hatena.ne.jp/kouji0625/20130523/p1
http://d.hatena.ne.jp/kouji0625/20130524/p1
実際に作った手順を簡単に記録しておこうと思います。
作ったのは、railsのアクセスログをdbに保存するというものです。
after_filterでlogsテーブルに記録をするというだけのものです。
とりあえず名前はrails_acclog2dbとします。
githubに実際に作ったものを置いてみました。
https://github.com/vivahiraj/rails_acclog2db
まずは雛形を作ります。
rails plugin new rails_acclog2db -T --skip-bundle --dummy-path=spec/dummy
それぞれのオプションは
-T:テスト用ファイルの作成をスキップ(後でrspecを利用するようにします)
--skip-bundle:コマンド直後にbundle installを実行しない
--dummy-path:作ったプラグインを試すためのrails環境の場所を指定
cd rails_acclog2db
続いてrspecの設定を行います。
vi rails_acclog2db.gemspec
rspec-railsとammeterを追加します。
ammeterはgeneratorのspecを作成する際に利用します。関連するgemをvendor配下にインストールするように設定します。(必須ではないです)
mkdir .bundle vi .bundle/config
内容は以下のような感じです。
------------------------------ BUNDLE_PATH: vendor/bundle BUNDLE_DISABLE_SHARED_GEMS: "1" ------------------------------
gemをインストールします。
bundle install
rspec用のファイルを生成します。
cd spec/dummy ln -s ../../spec rails generate rspec:install cd - cp spec/dummy/.rspec .
spec_helperを修正します。
vi spec/spec_helper.rb
environmentの読込先を変更してammeter/initを追加します。
今回はログの記録先としてlogsテーブルに保存したいので、migrationとmodelをrails generateで実行できるようにするために専用のgeneratorを作成してみます。
まずはgeneratorでコピーするファイルを保存するディレクトリを作成します。
mkdir -p lib/generators/rails_acclog2db/install/templates
コピーするモデルを作成します。
vi lib/generators/rails_acclog2db/install/templates/log.rb
コピーするマイグレーションを作成します。
vi lib/generators/rails_acclog2db/install/templates/create_logs.rb
ジェネレーターを作成します。
vi lib/generators/rails_acclog2db/install/install_generator.rb
ジェネレータのspecも作成してみます。
mkdir -p spec/generators/rails_acclog2db/install
specが成功することを確認してみます。
bundle exec rspec spec
実際にジェネレートできるかテスト用のrails環境で試してみます。
cd spec/dummy/
rails g rails_acclog2db:install
実際にmigrationもできるか試します。
rake db:migrate rake db:migrate RAILS_ENV=test
cd ../../
作成されたLogモデルのspecも作ってみます。
mkdir spec/models
vi spec/models/log_spec.rb
specが成功することを確認してみます。bundle exec rspec spec
つづいてメインの部分でlogを記録する部分です。
controllerにaccess_loggingと書いたら、そのcontrollerへのログを記録するようにしてみます。
sessionに:userが設定されていたら、きっと何かしらの認証がされたと思い込んで、それっぽい情報を保存するようにもします。
vi lib/rails_acclog2db/logging.rb
ActiveSupport::Concernをextendするとモジュールで取り込まれるclassメソッドとかインスタンスメソッドがちょっとすっきりかけるようです。
上記のファイルをrequireできるようにします。
vi lib/rails_acclog2db.rb
実際にテスト用のrails環境のcontrollerに組み込んでみてspecを作成してみます。
まずはcontrollerを準備します。
cd spec/dummy
rails g controller welcome touch app/views/welcome/index.html.erb
vi app/controllers/welcome_controller.rb
vi config/routes.rb
次にspecを作成します。
cd ../../
vi spec/controllers/welcome_controller_spec.rb
specが成功することを確認してみます。
bundle exec rspec spec
これが普通な作り方なのかはよくわからないのですが、こんな感じでできました。
以下が参考になりました。
http://guides.rubyonrails.org/v3.2.14/plugins.html
http://d.hatena.ne.jp/kouji0625/20130523/p1
http://d.hatena.ne.jp/kouji0625/20130524/p1
2013-12-28
gitの供用リポジトリの作り方
gitの共用リポジトリの作り方です。
用件としては、
・commitする人には認証をしてもらいたい
・でも認証なしでread onlyで使えるようにしたい
という感じのものです。
方法としては、commitはssh経由で行うようにしてread onlyはgitプロトコルでgit daemonで提供する感じになります。
環境はCentOS6です。
rootで実行します。
・git commitできるユーザが所属するgroupを追加
・gitリポジトリ格納用ディレクトリを作成
mkdir /var/git
・公開用の認証なしでの利用ができるようにgitデーモンのインストール
yum -y install git-daemon
・gitデーモンの設定
vi /etc/xinetd.d/git
disableとserver_argsを変更します。
server_argsのほうでは、専用のリポジトリの指定したプロジェクトのみが公開されるようにするために--export-allと--user-pathをはずしました。
---------------------------------------------
#disable = yes
・xinetdの自動起動設定と再起動
chkconfig xinetd on
・初期登録
・取得と変更
git clone ssh://git.server.com/var/git/sample.git sample
用件としては、
・commitする人には認証をしてもらいたい
・でも認証なしでread onlyで使えるようにしたい
という感じのものです。
方法としては、commitはssh経由で行うようにしてread onlyはgitプロトコルでgit daemonで提供する感じになります。
環境はCentOS6です。
rootで実行します。
・git commitできるユーザが所属するgroupを追加
addgroup gitrepo
・commitできるユーザの登録
commitする人のアカウントを事前に作っておく必要があります。
そして上記のグループに追加します。
以下はユーザvivahirajにgit commitを許可する例です。
usermod -a -G gitrepo vivahiraj
commitする人のアカウントを事前に作っておく必要があります。
そして上記のグループに追加します。
以下はユーザvivahirajにgit commitを許可する例です。
usermod -a -G gitrepo vivahiraj
・gitリポジトリ格納用ディレクトリを作成
mkdir /var/git
・公開用の認証なしでの利用ができるようにgitデーモンのインストール
yum -y install git-daemon
・gitデーモンの設定
vi /etc/xinetd.d/git
disableとserver_argsを変更します。
server_argsのほうでは、専用のリポジトリの指定したプロジェクトのみが公開されるようにするために--export-allと--user-pathをはずしました。
---------------------------------------------
#disable = yes
disable = no
#server_args = --base-path=/var/lib/git --export-all --user-path=public_git --syslog --inetd --verbose
server_args = --base-path=/var/git --syslog --inetd --verbose
---------------------------------------------
---------------------------------------------
・xinetdの自動起動設定と再起動
chkconfig xinetd on
service xinetd restart
以上で器はできました。
で個別プロジェクトのリポジトリの作成方法は以下のとおりです。
以下ではsampleというプロジェクトを作っているものとします。
・プロジェクト用の供用リポジトリの作成
cd /var/git
以上で器はできました。
で個別プロジェクトのリポジトリの作成方法は以下のとおりです。
以下ではsampleというプロジェクトを作っているものとします。
・プロジェクト用の供用リポジトリの作成
cd /var/git
mkdir sample.git
cd sample.git
git --bare init --shared
cd ..
chgrp -R gitrepo sample.git
認証なしで公開する場合は以下も実行
touch sample.git/git-daemon-export-ok
で、実際にクライアント側からソースの初期登録を行う例です。
別途クライアント側から実行するものとします。
初期データとしてsampleディレクトリに登録するものがある場合です。
リポジトリがあるサーバをgit.server.comとします。
リポジトリがあるサーバをgit.server.comとします。
・初期登録
cd sample
git init
git add .
git commit -m "first commit"
git remote add origin ssh://git.server.com/var/git/sample.git
git push origin master
ついでなので、リポジトリからソースを取得して変更するときの例です。
・取得と変更
git clone ssh://git.server.com/var/git/sample.git sample
cd sample
適当に変更
git add .
git commit -m "change test"
git push origin master
ちなみにgitプロトコルで公開設定したリポジトリにgemを登録しておけば、
bundler利用の場合だったら以下のように指定することでgemインストールすることができます。
gem 'sample', :git => 'git://git.server.com/sample.git'
bundler利用の場合だったら以下のように指定することでgemインストールすることができます。
gem 'sample', :git => 'git://git.server.com/sample.git'
2013-12-25
WindowsでrubyをいじっていてSSLエラーがどうのこうの言われた場合の対処
Windows環境でrubyを利用していて
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
みたなエラーが出た場合の対処です。
http://curl.haxx.se/ca/cacert.pem
をダウンロードして
c:\ruby
みたいな適当なところに保存しておきます。
そして、環境変数SSL_CERT_FILEを設定します。
Windows7の場合だったら
コントロールパネルから
システムとセキュリティ-システム-システムの詳細設定を選び
環境変数をクリックします。
そして、システム環境変数の新規をクリックして
変数名:SSL_CERT_FILE
変数値:C:\ruby\cacert.pem
としてOKとします。
これでOKです。
以下が参考になりました。
http://stackoverflow.com/questions/5720484/how-to-solve-certificate-verify-failed-on-windows
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
みたなエラーが出た場合の対処です。
http://curl.haxx.se/ca/cacert.pem
をダウンロードして
c:\ruby
みたいな適当なところに保存しておきます。
そして、環境変数SSL_CERT_FILEを設定します。
Windows7の場合だったら
コントロールパネルから
システムとセキュリティ-システム-システムの詳細設定を選び
環境変数をクリックします。
そして、システム環境変数の新規をクリックして
変数名:SSL_CERT_FILE
変数値:C:\ruby\cacert.pem
としてOKとします。
これでOKです。
以下が参考になりました。
http://stackoverflow.com/questions/5720484/how-to-solve-certificate-verify-failed-on-windows
2013-12-24
rubyでGoogle Calendarをいじる
rubyでgoogleカレンダーをいじってみました。
コマンドラインからgoogleカレンダーをいじります。
google-api-clientを利用します。
なので
gem install google-api-client -v 0.6.4
gem install jwt -v 0.1.5
でインストールしておきます。
(※ここで記載している内容は0.6.4でないと動きません。またjwtも0.1.5より新しいのが入っていると動きません)
まずはGoogle Developers Consoleにプロジェクトを登録します。
登録したら「APIs & auth」の「APIs」で
Calendar API
を「ON」にします。
そして「APIs & auth」の「Credentials」でOAuth用のCLIENT IDを発行します。
「CREATE NEW CLIENT ID」でApplication typeを「Installed application」、Installed application typeを「Other」としてCLIENT IDを作成して、作成されたCLIENT IDとCLIENT SECRETを控えます。
(※ここいら辺も変更されていますが、似たような設定はできる感じです)
google-api-clientをインストールしたらgoogle-apiをいうコマンドが利用できるようになっているので、これを利用して一度OAuth認証を行います。
以下のような感じです。CLIENT_IDとCLIENT_SECRETは控えたもので置き換えてください。
コマンドを実行するとwindows環境であればブラウザが開いてOAuthの許可を求められるので許可します。認証が完了するとホームディレクトリ(Windows7の場合は、C:\Users\mynameみたいなところの下)に.google-api.yamlが作成されるので、今回作成するプログラムを置く場所に移動しておきます。
このyamlファイルにOAuthでの認証情報が保存されているようなので、この情報を利用します。
でgoogleカレンダーをいじるrubyスクリプトは以下のような感じです。
カレンダー一覧から「仕事用」カレンダーを選び、今日から31日に以内のイベントをすべて削除して、イベントを二つ追加しています。
以下を参考にさせていただきました。
http://blogaomu.com/2012/09/16/ruby-script-using-google-calendar-api
コマンドラインからgoogleカレンダーをいじります。
google-api-clientを利用します。
なので
gem install google-api-client -v 0.6.4
gem install jwt -v 0.1.5
でインストールしておきます。
(※ここで記載している内容は0.6.4でないと動きません。またjwtも0.1.5より新しいのが入っていると動きません)
まずはGoogle Developers Consoleにプロジェクトを登録します。
登録したら「APIs & auth」の「APIs」で
Calendar API
を「ON」にします。
そして「APIs & auth」の「Credentials」でOAuth用のCLIENT IDを発行します。
「CREATE NEW CLIENT ID」でApplication typeを「Installed application」、Installed application typeを「Other」としてCLIENT IDを作成して、作成されたCLIENT IDとCLIENT SECRETを控えます。
(※ここいら辺も変更されていますが、似たような設定はできる感じです)
google-api-clientをインストールしたらgoogle-apiをいうコマンドが利用できるようになっているので、これを利用して一度OAuth認証を行います。
以下のような感じです。CLIENT_IDとCLIENT_SECRETは控えたもので置き換えてください。
google-api oauth-2-login --scope=https://www.googleapis.com/auth/calendar --client-id=CLIENT_ID --client-secret=CLIENT_SECRET
コマンドを実行するとwindows環境であればブラウザが開いてOAuthの許可を求められるので許可します。認証が完了するとホームディレクトリ(Windows7の場合は、C:\Users\mynameみたいなところの下)に.google-api.yamlが作成されるので、今回作成するプログラムを置く場所に移動しておきます。
このyamlファイルにOAuthでの認証情報が保存されているようなので、この情報を利用します。
でgoogleカレンダーをいじるrubyスクリプトは以下のような感じです。
カレンダー一覧から「仕事用」カレンダーを選び、今日から31日に以内のイベントをすべて削除して、イベントを二つ追加しています。
以下を参考にさせていただきました。
http://blogaomu.com/2012/09/16/ruby-script-using-google-calendar-api
2013-12-18
remiリポジトリからyumでインストールしたmysql5.5を5.6にyum updateする
yumは依存関係をいい感じで解決してくれるので便利ですね。
ただmysqlとかはバージョンが古めのものがインストールされちゃう傾向があります。
なのでちょっと前まではmysqlの新しいバージョンを利用するためにremiリポジトリを使ったりしていました。
でもこちらも5.6には対応していないようです。
と思っていたらmysql公式のリポジトリができていたようです。
こちらを追加するとremiでインストールした5.5のmysqlを5.6にアップデートできます。
手順は以下のような感じです。
・rootになる
rootで作業します。
su -
・バックアップの作成
設定ファイルとデータベースを念のためバックアップします。
cp /etc/my.cnf .
mysqldump -u root --all-databases > mysql_dump
・mysql公式のリポジトリを追加
CentOS6では以下のような感じで追加します。
yum install -y http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
CentOS5の場合は
http://dev.mysql.com/downloads/repo/
から以下のrpmをダウンロードします。
mysql-community-release-el5-5.noarch.rpm
インストールの前にmysqlレポジトリ用のgpgキーというものが必要になります。
http://dev.mysql.com/doc/refman/5.5/en//checking-gpg-signature.html
に記載されている
-----BEGIN PGP PUBLIC KEY BLOCK-----
から
-----END PGP PUBLIC KEY BLOCK-----
までの内容をmysql-gpg.txtみたいなファイル名のテキストファイルに保存して
rpm --import mysql-gpg.txt
とすることでキーの登録ができます。
その上でrpmでインストールします。
yum install -y mysql-community-release-el5-5.noarch.rpm
これ以降は、CentOS5でもCentOS6でも変わりません。
・mysql停止
mysqlをとめます。
service mysqld stop
・mysqlのアップデート
mysqlをアップデートします。
yum -y update mysql-server mysql-devel
・mysql起動
mysqlを起動します。起動に失敗する場合は/var/log/mysql.logなどのlogファイルを確認します。
mysql5.6になって利用できなくなった設定を/etc/my.cnfに書いていると起動に失敗したりします。
service mysqld start
・既存DBのアップデート
既存DBに更新処理をかけます。
mysql_upgrade
これで、もともとは入っていた
mysql-libs-5.5.31-1.el6.remi.x86_64
mysql-server-5.5.31-1.el6.remi.x86_64
mysql-devel-5.5.31-1.el6.remi.x86_64
mysql-5.5.31-1.el6.remi.x86_64
みたいなものが以下のように更新されました。
mysql-community-common-5.6.15-1.el6.x86_64
mysql-community-server-5.6.15-1.el6.x86_64
mysql-community-release-el6-5.noarch
mysql-community-client-5.6.15-1.el6.x86_64
mysql-community-libs-5.6.15-1.el6.x86_64
mysql-community-devel-5.6.15-1.el6.x86_64
参考にさせていただいたサイトは以下です。
http://d.hatena.ne.jp/akishin999/20131029/1383050569
ただmysqlとかはバージョンが古めのものがインストールされちゃう傾向があります。
なのでちょっと前まではmysqlの新しいバージョンを利用するためにremiリポジトリを使ったりしていました。
でもこちらも5.6には対応していないようです。
と思っていたらmysql公式のリポジトリができていたようです。
こちらを追加するとremiでインストールした5.5のmysqlを5.6にアップデートできます。
手順は以下のような感じです。
・rootになる
rootで作業します。
su -
・バックアップの作成
設定ファイルとデータベースを念のためバックアップします。
cp /etc/my.cnf .
mysqldump -u root --all-databases > mysql_dump
・mysql公式のリポジトリを追加
CentOS6では以下のような感じで追加します。
yum install -y http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
CentOS5の場合は
http://dev.mysql.com/downloads/repo/
から以下のrpmをダウンロードします。
mysql-community-release-el5-5.noarch.rpm
インストールの前にmysqlレポジトリ用のgpgキーというものが必要になります。
http://dev.mysql.com/doc/refman/5.5/en//checking-gpg-signature.html
に記載されている
-----BEGIN PGP PUBLIC KEY BLOCK-----
から
-----END PGP PUBLIC KEY BLOCK-----
までの内容をmysql-gpg.txtみたいなファイル名のテキストファイルに保存して
rpm --import mysql-gpg.txt
とすることでキーの登録ができます。
その上でrpmでインストールします。
yum install -y mysql-community-release-el5-5.noarch.rpm
これ以降は、CentOS5でもCentOS6でも変わりません。
・mysql停止
mysqlをとめます。
service mysqld stop
・mysqlのアップデート
mysqlをアップデートします。
yum -y update mysql-server mysql-devel
・mysql起動
mysqlを起動します。起動に失敗する場合は/var/log/mysql.logなどのlogファイルを確認します。
mysql5.6になって利用できなくなった設定を/etc/my.cnfに書いていると起動に失敗したりします。
service mysqld start
・既存DBのアップデート
既存DBに更新処理をかけます。
mysql_upgrade
これで、もともとは入っていた
mysql-libs-5.5.31-1.el6.remi.x86_64
mysql-server-5.5.31-1.el6.remi.x86_64
mysql-devel-5.5.31-1.el6.remi.x86_64
mysql-5.5.31-1.el6.remi.x86_64
みたいなものが以下のように更新されました。
mysql-community-common-5.6.15-1.el6.x86_64
mysql-community-server-5.6.15-1.el6.x86_64
mysql-community-release-el6-5.noarch
mysql-community-client-5.6.15-1.el6.x86_64
mysql-community-libs-5.6.15-1.el6.x86_64
mysql-community-devel-5.6.15-1.el6.x86_64
参考にさせていただいたサイトは以下です。
http://d.hatena.ne.jp/akishin999/20131029/1383050569
2013-12-12
人が乗れるロボット「クラタス」がamazonで売っているらしい
人が乗ってパイロット気分が味わえるロボットのような、なんというかという感じの「クラタス」がamazonで売っていたので何かの間違いでこのページ経由で買ってくれる人が現れることを期待してリンクを張ってみました。
2013-12-11
A6サイズのAndroidタブレットって存在しないのですね
ふとA6ノートと同じサイズのタブレットをいい感じのケースに入れて使うと良いような気がする・・・
と思ってA6サイズのタブレットを探してみたのですが、どうもないようです。
A6サイズ タブレット
で検索するとWACOMの違うタブレットばかりひっかかります。
WACOMでないものでもアップルのA6プロセッサーがひっかかったりして肝心な情報はありませんでした。
一番近いサイズがGaraxy Noteの初代のものが近い感じでしたが、幅が細い感じです。
A6サイズのタブレットって使いづらいのですかねぇ。
と思ってA6サイズのタブレットを探してみたのですが、どうもないようです。
A6サイズ タブレット
で検索するとWACOMの違うタブレットばかりひっかかります。
WACOMでないものでもアップルのA6プロセッサーがひっかかったりして肝心な情報はありませんでした。
一番近いサイズがGaraxy Noteの初代のものが近い感じでしたが、幅が細い感じです。
A6サイズのタブレットって使いづらいのですかねぇ。
2013-12-09
ActiveRecordでjoinしたテーブルのカラムでwhere条件を指定するとき
ActiveRecordで他のテーブルをjoinしたときに、joinした側のテーブルにあるカラムを条件として使いたいときに、以下のようにしていました。
Order.joins(:user).where("users.name='viva'")
で、mergeを使って以下のようにも書けるということを知りました。
Order.joins(:user).merge(User.where(:name=>'viva')
以下が参考になりました。
http://api.rubyonrails.org/classes/ActiveRecord/SpawnMethods.html#method-i-merge
どっちもタイプする長さはあんまり変わらなかったので、そのときの気分で当面はどっちを使うか決めようかと思います。
2013-12-02
Raspberry PiとUSBハブにモバイルバッテリから給電しようと思ったけどあきらめた
Raspberry PiにいろいろUSBでくっつけるとなるとセルフパワーのUSBハブが必要になってきます。
それでも、いつでもどこでも利用できたらよいなぁと思いモバイルバッテリからRaspberry PiとUSBハブに給電できたら便利かもと思ってみました。
こんな感じです。

結論からいうとモバイルバッテリからUSBハブに給電する方法がわからなかったのであきらめました。
モバイルバッテリからUSBハブに給電するケーブルを自作した方はいました。
http://zigsow.jp/portal/own_item_detail/225839/
ちなみに2ポートあるモバイルバッテリはありました。
で他の方法とかを調べてみたらUSBハブからRaspberry Piに給電とUSB接続両方をさせることができることがわかりました。
http://shokai.org/blog/archives/7865
この方法ならばUSBハブ用にコンセントを一つしか使わないのでこれはこれでよいことを知ったと思ってみました。
どうしても外で使いたいならば、USBハブのコンセントを以下のようなポータブル電源につなぐというのもありかな?
それでも、いつでもどこでも利用できたらよいなぁと思いモバイルバッテリからRaspberry PiとUSBハブに給電できたら便利かもと思ってみました。
こんな感じです。

結論からいうとモバイルバッテリからUSBハブに給電する方法がわからなかったのであきらめました。
モバイルバッテリからUSBハブに給電するケーブルを自作した方はいました。
http://zigsow.jp/portal/own_item_detail/225839/
ちなみに2ポートあるモバイルバッテリはありました。
で他の方法とかを調べてみたらUSBハブからRaspberry Piに給電とUSB接続両方をさせることができることがわかりました。
http://shokai.org/blog/archives/7865
この方法ならばUSBハブ用にコンセントを一つしか使わないのでこれはこれでよいことを知ったと思ってみました。
どうしても外で使いたいならば、USBハブのコンセントを以下のようなポータブル電源につなぐというのもありかな?