The Yak Shaver
さあ、今日も毛を刈ろう。
skip to main
|
skip to sidebar
2013/08/25
Raspberry Pi の電気代はいくら?
[これ](http://yak-shaver.blogspot.jp/2013/02/blog-post_22.html)のつづきで、Raspberry Pi の電気代も考えてみたいと思います。 Raspberry Pi は24時間 常時電源ONで、Webサーバとして動かすとします。 [ココ](http://www.raspberrypi.org/phpBB3/viewtopic.php?t=18043&p=182118 )によると、3.5W 以上食うことはないということです。 3.5W ✕ 24 = 84Wh/日 → 2.5kWh/月 ≒ 3kWh/月 とします。 Raspberry Pi 導入以前の電気代を114kW/月とすると、導入後は+3kW なので 117kW/月となります。 関西の場合は、[ココ](https://www2.kepco.co.jp/eigyonet/servlet/n08.simulation.N08NB00Servlet)で 114kW と 117kW を入力して差分をとります。 - 導入前:114kW : 2,533円/月 - 導入後:117kW : 2,598円/月 2,598 - 2,533 = 65円/月 と出ました。 65円/月 なら容赦なく常時ONにできます。 ---- ここからは余談です。 私の Raspberry Pi (Type B) にはセンサやカメラ等はつけておらず、Mac のUSBポート(非Powered USB)につないでいるので、最大でも 500mA → 5V ✕ 0.5A = 2.5W のはずです。とすると同様の計算では44円/月 以下になります。 Mac mini 2012 は [アイドル時 11W 未満](http://www.apple.com/jp/mac-mini/environment.html) とのことですが、これをWebサーバとして使うと 273円/月 となります。 これを単純に比較すると、Raspberry Pi は Mac mini の 6倍以上安上がりということになります。 しかし、一方で、よく使う重めの Pythonコードで簡易ベンチを取ってみると Raspberry Pi は Mac mini の 30倍ほど遅いという結果も出ています。 何が安いか、考えどころです。
「x 秒後に自動的にジャンプします。」な Javascript
よく見かける「x 秒後に自動的にジャンプします。」な Javascript サンプルです。 JQuery は使っていません。「x 秒後」の数字の部分は 10, 9, 8, 7, ... と変化します。 リダイレクトするだけなら、ヘッダに下の1行を書き足せばいいのですが、
数字を変化させるとなると Javascript 書くしかないかなと。 ちなみに、クロージャを使っています。
CSS の 'rgba(255,255,255,1.0)' と #fff を変換する
Pythonによる、CSS3 の 'rgba()' 表記と従来の #16進数表記の相互変換の関数です。
文字列を指定した文字数ずつに分割する
Python の文字列の `split()` は区切り文字による分割はできますが、「何文字ずつに分割する」ということはできないと思います。 [Split string into strings by length?](http://stackoverflow.com/questions/13673060/split-string-into-strings-by-length) で Pythonic な解決方法を示してくれた方がおられました。 シンプルさに感動したので関数化して置いておきます。
2013/08/24
KeyRemap4MacBook で Chrome のキーバインドを変更
[KeyRemap4MacBook](https://pqrs.org/macosx/keyremap4macbook/) で Google Chrome のタブ切り替えを F11/F12 でできるようにしてみました。 - F12: Ctrl + TAB - F11: Ctrl + Shift + TAB `~/Library/Application Support/KeyRemap4MacBook/private.xml`に下記を書き足します。 KeyCode, ModifierFlag の順に書かないとダメなようです。
2013/08/20
Emacs で ssh 接続してファイルを開く
ふつうに C-x C-f で開けます。 C-x C-f /ssh:ユーザ@ホスト#ポート番号:ファイル名 例: C-x C-f /ssh:john@192.168.1.2#1022:/etc/hosts ポート番号はデフォルト(22)のときは省略可です。
Raspberry Pi の Debian で最初の設定
Raspberry Pi / Wheezy で、インストール後に最初にやることのおぼえがきです。 HDMIでディスプレイにつないで、 - User: pi - Pass: raspberry でログイン。 #### まずは一般ユーザをつくる $sudo su #adduser hoge <-- ユーザ 'hoge'を追加 #### sudo できるようにする #chmod +w /etc/sudoers #vi /etc/sudoers : # User privilege specification root ALL=(ALL:ALL) ALL hoge ALL=(ALL:ALL) ALL <-- この行を追加 : #chmod -w /etc/sudoers #### sshのポート番号を変更する $cd /etc/ssh/ $sudo cp sshd_config sshd_config.orig $sudo vi sshd_config Port 22 --> Port 1022とか #### IPアドレスを確認した後にリブート $ifconfig $sudo reboot ここまでやると ssh でつながるので、Ethernet ケーブルをつないで、PC から ssh 192.168.xx.xx -p 1022 で入ります。 #### タイムゾーンを UTC → JST へ tzconfig は deprecated らしいので、下記で。 $sudo dpkg-reconfigure tzdata Asia / Tokyo $date Sun Aug 18 09:42:34 JST 2013 現在時刻がJSTで表示されればOK。 まずはここまで。
2013/08/19
Raspberry Pi の Debian に mod_wsgi をインストール
以下は、Raspberry Pi のApacheに mod_wsgiをインストールしたときのメモです。 - Debian(Wheezy) - Apache 2.2.22 - Python 3.3.2 最初は mod_python を試そうとしたのですが、[ココ](http://stackoverflow.com/questions/16667356/cherrypy-behing-apache-with-mod-python)によると、 > mod_python は古くてメンテされていないので、 mod_wsgi の方がイーンジャネ。 とのことなので入れてみたしだいです。流されやすくてすいません。 ほぼ[ココ](https://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide)のまんまです。 まずは mod_wsgi を入れます。Python3を使っているので mod-wsgi も Python3用のものを入れます。 $sudo apt-get install libapache2-mod-wsgi-py3 テストとして走らせる .py を入れるディレクトリを作ります。 $cd /var/www $sudo mkdir test テストとして走らせる .py をそこに置きます。 $cd test $sudo vi wsgi0.py ----------- def application(environ, start_response): status = '200 OK' output = 'Hello World!' response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output] ----------- バーチャルホストを設定します。 このRaspberry Pi のローカルIPアドレスは 192.168.1.2 とし、架空のDDNSサービス(ddns.net)で mynetというホストを登録した例です。 $cd /etc/apache2/sites-available $sudo cp default hoge $sudo vi hoge ----------- NameVirtualHost 192.168.1.2:80
ServerAdmin admin@hoge.mynet.ddns.net ServerName hoge.mynet.ddns.net DocumentRoot /var/www
Options FollowSymLinks AllowOverride None WSGIScriptAlias / /var/www/test/wsgi0.py
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
----------- $sudo a2ensite hoge Apache を再起動します。 $sudo /etc/init.d/apache2 restart WWWブラウザで http://192.168.1.2/test にアクセスして 'Hello World!' と出ればOKです。 ルーターのポートを開放してあれば、http://mynet.ddns.net/test でも同様に 'Hello World!' と出るはずです。
2013/08/15
Python の takewhile と dropwhile
map のようにリストを高階関数で回して、途中で終了したいときや途中から始めたいときに便利です。 takewhile:条件が成立しているうちは継続し、成立したら中断 >>> from itertools import takewhile >>> l = [0, 1, 2, 3, None, 5, 6, 7, 8, 9] >>> list(takewhile(lambda x: x != None, l)) [0, 1, 2, 3] dropwhile:条件が成立しているうちは読み飛ばし、不成立になったらそこから継続 >>> from itertools import dropwhile >>> l = [0, 1, 2, 3, None, 5, 6, 7, 8, 9] >>> list(dropwhile(lambda x: x != None, l)) [None, 5, 6, 7, 8, 9] 他にも itertools には使いでがありそうなものが多いです。
filter, map をリストの内包表記で。
Python3 では、filter や map がイテレータオブジェクトを返すらしく、Python2の習慣でリストのように扱おうとすると `TypeError` が発生します。 >>> l = filter(lambda x: x % 2, range(10)) # 奇数だけ抜き出し >>> l
>>> l[0] TypeError: 'filter' object is not subscriptable これを回避するには、下のように list() で包んでやればいいのですが、ちょっと冗長な気がします。 >>> l = list(filter(lambda x: x % 2, range(10))) >>> l [1, 3, 5, 7, 9] >>> l[0] 1 やはりPython的には、リストの内包表記で書きなおす方法が自然なので、filter は下記のように。 l = list(filter(lambda x: x % 2, range(10))) # 奇数だけ抜き出し ↓ l = [x for x in range(10) if x % 2] 同様に map は下記のように。 l = list(map(lambda x: x * 2, range(10))) # 各要素を2倍する ↓ l = [x * 2 for x in range(10)] reduce は… for で回す…くらいなら `from functools import reduce`します… 。
新しい投稿
前の投稿
ホーム
About
Unknown
詳細プロフィールを表示
Labels
AVR
( 12 )
Blogger
( 10 )
Chrome
( 2 )
cocoa
( 5 )
Eagle
( 5 )
emacs
( 31 )
game
( 1 )
Google
( 4 )
iPhone
( 2 )
Javascript
( 1 )
lisp
( 4 )
LPCXpresso
( 1 )
mac
( 53 )
Markdown
( 4 )
msp430
( 1 )
NXP
( 1 )
Parallels Desktop
( 1 )
PIC
( 3 )
python
( 19 )
Raspberry Pi
( 9 )
ruby
( 1 )
Safari
( 2 )
shell script
( 4 )
Sublime Text
( 1 )
windows
( 7 )
xcode
( 8 )
xyzzy
( 60 )
おぼえがき
( 69 )
まとめ
( 6 )
メール
( 2 )
よもやま
( 19 )
工作
( 23 )
電験
( 4 )
本日の探索結果
( 2 )
Blog Archive
►
2015
( 3 )
►
02
( 1 )
►
01
( 2 )
►
2014
( 17 )
►
12
( 1 )
►
07
( 3 )
►
06
( 3 )
►
04
( 2 )
►
03
( 4 )
►
01
( 4 )
▼
2013
( 135 )
►
12
( 5 )
►
10
( 6 )
►
09
( 7 )
▼
08
( 10 )
Raspberry Pi の電気代はいくら?
「x 秒後に自動的にジャンプします。」な Javascript
CSS の 'rgba(255,255,255,1.0)' と #fff を変換する
文字列を指定した文字数ずつに分割する
KeyRemap4MacBook で Chrome のキーバインドを変更
Emacs で ssh 接続してファイルを開く
Raspberry Pi の Debian で最初の設定
Raspberry Pi の Debian に mod_wsgi をインストール
Python の takewhile と dropwhile
filter, map をリストの内包表記で。
►
07
( 24 )
►
06
( 15 )
►
05
( 15 )
►
04
( 17 )
►
03
( 13 )
►
02
( 17 )
►
01
( 6 )
►
2012
( 11 )
►
10
( 5 )
►
07
( 1 )
►
02
( 2 )
►
01
( 3 )
►
2011
( 86 )
►
12
( 2 )
►
11
( 2 )
►
10
( 1 )
►
07
( 2 )
►
06
( 3 )
►
05
( 20 )
►
04
( 49 )
►
03
( 7 )
►
2009
( 4 )
►
03
( 1 )
►
01
( 3 )
►
2008
( 8 )
►
12
( 8 )
STAT
Ads
Amazon.co.jp ウィジェット
Powered by
Blogger
.