fc2ブログ

ぽよメモ

2015年08月

DATE

  • このページのトップへ

アクアリウム始めました


友人知人にそそのかされてお金もないのに新しい趣味を始めてしまいました。

アクアリウム始めました


幅25cmほどの小さい水槽ですが、たったこれだけでも部屋がずいぶんと鮮やかになりました。

とりあえず入れてみたのはネオンテトラです。5匹飼育しています。


ひょこひょこと泳ぎまわっていて可愛らしいですね。
そのうち色々とRasPiを使って制御とか観測とかしていけたらいいなと思っています。

スポンサーサイト



カテゴリー:Biology


ヘッダー画像の切り替え


このブログのヘッダー(PC版のみ)が気に入らなかったので変更したついでに、一日のうち何回か画像が切り替わるような実装をしました。

まず現在の時刻を取得します。
var d = new Date()

//時間(hours) 0~23
var hour = d.getHours();

//分(minutes) 0~59
var min = d.getMinutes();

//秒(seconds) 0~59
var sec = d.getSeconds();

//ミリ秒(milli seconds) 0~999
var ms = d.getMilliseconds();
こんな感じで現在時刻に関するパラメータを取得することが出来ます。

というのを用いて以下のようにスクリプトを組んでみました(なぜhourじゃなくてtimeなのかとか1~4の順番がバラバラだとか突っ込まないでください死んでしまいます)
$(function(){
var time = new Date().getHours();
i = 0;
if((time >= 5) && (time < 10)){ i = 4; }
else if((time >= 10) && (time < 15)){ i = 1; }
else if((time >= 15) && (time < 18)){ i = 2; }
else if((time >= 18) || (time < 5)){ i = 3; }
$('#header-column').css({'background-image':'url("http://blog-imgs-82.fc2.com/p/u/d/puddingmemory/header_' + i + '.jpg"'});
});
適当に組んだのでもっと簡単に実装できるよって言うのが有れば教えて下さい…

カテゴリー:ぷよぐやみんぐ


eX cafe 嵐山本店


嵐山に行ってきました。
さすがに夏休みだけあって観光客がかなり多く、渡月橋も渡るので精一杯といった感じ。天気が心配だったのですが、幸運にも雨は降ることなく、むしろ晴れ間も覗いてくれました。

今回はeX cafeに行きました。大通りから少し小さな路地にそれたところにある、見た感じは立派なお屋敷といった感じのお店です。
中に入ると黒で統一された渋い日本家屋と、洋風家具のカッコイイ内装が。席数はそこそこあるようで、並ばずとも座ることができました。

メニュー見て、悩んで、「ネタになりそう!」ということで千年の恋パフェセット(\1200)を注文


可愛らしい日傘の刺さったパフェでした。薄紫のアイスは紫芋のアイスでした。セットにはグリーンティーかお抹茶がついてきます。とても美味しかったです。

隣の席の女性客がかき氷を頼んでいたのですが、割りと大きかったので行かれる方はご注意を。

せっかく嵐山に来たのであちこちを散策。


もちろん竹林も。


夜まであちこちを散策して、日が落ちてから帰路に。阪急嵐山駅はいい感じの雰囲気の照明になってました。


クーラーの効いた部屋でゆっくりアニメ見たり読書したりするのも良いですが、観光地をゆっくりと見て回る休日も良いものですね。

カテゴリー:Food


textとstring


ついさっき投稿したこれBeautifulSoupとMechaizeでwebスクレイピングで最後抽出してきたhtmlの文章を加工整形する際、t.text.strip()しました。

抽出してきたhtmlはこんな感じ(見やすいように改行を加えている箇所があります)


現在あなたの受講している科目についての休講情報はありません。



現在あなた個人を特定した呼び出しはありません。
詳細については「学生呼び出し」一覧で確認してください。



あなたに関係する授業連絡があります。
詳細は「授業関連連絡」一覧で確認してください。(情報掲載日:2015/4/14)



あなたへ送信されたメール情報があります。
詳細は「配信メール履歴」一覧で確認してください。



現在あなたへの学生アンケート情報はありません。



現在受付期間中のファイル提出情報はありません。



これを最初print(t.string)していました。
すると
現在あなたの受講している科目についての休講情報はありません。
None
None
None
現在あなたへの学生アンケート情報はありません。
現在受付期間中のファイル提出情報はありません。
このようにいくつかがNoneになってしまいます。

これが本当によくわからなくて、強い人に聞いてみたところ.textを使ってみてはどうかと言われました。これでようやく先の記事のように文字列だけを抽出出来ました。

textとstringの違いはよくわからないままですが、少なくともこの方法ではこれが最善手だと思いました。

カテゴリー:ぷよぐやみんぐ


BeautifulSoupとMechanizeでwebスクレイピング


Pythonの勉強をはじめました。
手始めに大学の学務課のサイトから休講情報などを取ってこれるようにしたいなぁと思い、webスクレイピングから始めてみることにしました。

使うのはPython(今回は2.7.10)、BeautifulSoup、Mechanize、lxmlです。
pyenvでPythonのバージョンを管理しているのですが、ここでpipの挙動が何やら怪しく、少し手間取りました。どうもpipが2つインストールされていたらしく、何も指定しないままだと~/.pyenv/shims以下にあるpipではなくなぜか入っていたpython-pipが動くようになっていたようでパッケージ導入に失敗したことも有りましたがそれは割愛。
pip install BeautifulSoup4
pip install mechanize

sudo apt-get install libxml2-dev
sudo apt-get install libxslt
pip install lxml
とりあえずまぁこれで大丈夫です。
# coding:UTF-8
import re
from bs4 import BeautifulSoup
import mechanize

br = mechanize.Browser()
br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Mozila/5.0(X11; U; Linux i686; en-us; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
とりあえず下準備は完了。
これからmechanizeにしてもらう仕事は、
1. サイトを開く
2. フォームを選択
3. ユーザ名とパスワードを選択
4. データを送信
ここまでがmechanizeの仕事です。
ここからBeautifulSoupにお任せして、
5.該当部分を抽出、整形
してもらいます。
urllogin = "学務課のurl"
username = "ユーザ名"
password = "パスワード"
br.open(urllogin)
とりあえずこれでサイトを開けました。なお、今回用いるサイトは認証ポータルサイトに一旦リダイレクトされます。urlloginのurlとは異なるサイトに飛ばされることになっています。
ここで、このポータルサイトのソースを確認し、select_formを使って入力フォームを決定します。


ユーザ名/Username




パスワード/Password






  

幸い認証サイトは非常に簡単なページで、フォームも一つしか存在しませんでした。(適当にタグを削除整形してわざと簡単にして表示しています)
br.select_form(nr = 0)
br['j_username'] = username
br['j_password'] = password
br.submit()
これで認証サイトのフォームに入力、および送信が完了しました。
ここから更に一旦リダイレクトのページを挟んで学務課に飛ばされるはずなのですが、なぜかうまく行きませんでした。そのままではリダイレクトされないようで、続行ボタンを押してやる必要があるようでした。
そこでコードを追加。
br.select_form(nr = 0)
br.submit()
これでログインが完了。学務課の個人用ページにリダイレクトされるので後はスクレイピングするだけです。
html = br.response().read()
bs = BeautifulSoup(html, 'lxml')
for t in bs.findAll('p', {'class':'info_message'}):
print(t.text.strip())
else:
print('done')
ここで何も考えずprint(t)するとhtmlのタグごとごっそり表示されます。なのでt.text.strip()とすることで余計な空白及びタグを除去しています。(ここで躓いた話は後日)

というわけで上記のものを全て合わせて、わかりやすいように進捗状況の報告も加え、
# coding:UTF-8
import re
from bs4 import BeautifulSoup
import mechanize

br = mechanize.Browser()
br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Mozila/5.0(X11; U; Linux i686; en-us; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
urllogin = "学務課のurl"
username = "ユーザ名"
password = "パスワード"
br.open(urllogin)
print('シボレス認証にアクセスしました')
br.select_form(nr = 0)
br['j_username'] = username
br['j_password'] = password
br.submit()
print('ユーザ名及びパスワードを入力、送信しました。')
print('リダイレクト中です。')
br.select_form(nr = 0)
br.submit()
print('学務課公式サイトにアクセスしました。')
html = br.response().read()
bs = BeautifulSoup(html, 'lxml')
print('通知を検索中です。')
print('----------------------')
for t in bs.findAll('p', {'class':'info_message'}):
print(t.text.strip())
else:
print('----------------------')
print('現在上記の通知が出ています。')
実行結果は以下の様な感じです。

正直思ったよりもmechanizeの挙動がわかりやすく、通常のサイトならおそらく難しいことはなにもないだろうと思います(今回はリダイレクトされるページがいくつかあり良くわからないところが多かった)。

いまのところログインできなかった場合などを想定していないので、今後そういった処理も追加していこうと思っています。

カテゴリー:ぷよぐやみんぐ


WindowsでSuperDriveを使う




MacBook Proを買った時にせっかくだからと一緒に購入したApple Super Driveですが、なかなか使う機会がなくしまわれっぱなしでした。

見た目超おしゃれでカッコイイんですが、いかんせんMacでしか使用できないのがネックで…
特にメーカー品に付いている初期のCD-ROMにはWindowsのものしか入っていないことが多く、PCを使う上でほぼ唯一ドライブを使用する機会にすらもなかなか出番がありません。

そこで今回はもう少し活動の幅を広げるためにこのSuperDriveをWindowsでも使えるようにします。



と言ってもやることは大して難しくないです。

Appleのwebサイトにアクセスします。右上の「サポート」を押しましょう。


一番下までスクロールし、「ダウンロードとアップデート」を押します。


「製品別に表示」を押すと検索ウィンドウが出てきます。


「bootcamp」で検索をかけましょう。


いくつか候補が出てきますが、今回用いるのはBootCamp環境用のドライバパッケージです。基本的に最新版を選択すれば良いと思います。


こいつをダウンロードし(800MBくらいあります)、展開するといくつかのフォルダが出てきます。
下図のようにBootCamp>Drivers>Appleとたどり、AppleODDInstaller64.exeを探しだして実行してください。


そうすればもう準備は完了です。SuperDriveをつないでみましょう。ちゃんとドライブとして認識されています。


ちなみにデバイスマネージャーで確認するとこうなっています。Apple Super Driveではないんですね(笑)



とまぁこんなかんじで簡単に使用可能にすることが出来ます。
一応Windows10(2015/8/12時点)ではちゃんと動作しました。MacでBootCampして「ドライブつないだのに動かない!」って人がいれば同じことをすればSuperDriveが使用可能になります。

Appleは独自のハードウェアをたくさん使うので非常にめんどくさいですが、SuperDrive程度ならドライバを導入すれば簡単にWindowsでも使えるように出来るよっていうお話でした。

カテゴリー:Other


Win10に上げた話


7月29日に無料アップグレードが開始されたWindows10ですが、さすがにいきなりデスクトップに入れるのは怖かったので、とりあえず先日のX220にぶち込むことにしました。

WinUpdateを自動更新にしてもアップグレード通知は表示されなかったので、MediaCreationToolを公式サイトからダウンロードし、そこからアップグレードを実施しました。

※此処から先しばらく見づらい画像が続きます。
MediaCreationToolという名前がそもそもどうにかならないのかと思いますが、とりあえず起動するとUSBメモリのインストーラを作成するか、そのままアップグレードするかを選ぶことができます。
今回はアップグレードです。


パッケージのDLにしばらく時間がかかり、それが終わってからも更新の確認等でしばらく何もすることはありません。


放置しておくと操作ができなくなり、アップグレードが始まります。


何度か再起動し、数十分で完了。SSDのためわりと高速に感じました。手元にシステムドライブがHDDのPCがないので比較のしようがありませんが…


ちゃんと出てきました。


X220はUbuntuとWin7のデュアルブートで使っていたのですが、legacyで運用していたため特に問題は起きず、Win10にアップグレードしてからも問題なく使えています。
メモリ使用量は圧倒的に減り、起動時読みで1.6~1.7GBほどに収まっています。Officeやブラウザ等を起動しても、今のところ3GBを超えていません。

MS Edgeですが、完全にIEよりはマシな挙動をしますし、場合によってはChromeやFirefoxより快適に感じることもあります。しかし今のところお気に入りのインポートがIEからしかできないため、そこだけ少し面倒です。今後のアップデートでなんとかなるといいのですが。

とにかくタスクビュー及び仮想デスクトップ切り替えが便利です。


MacやUbuntuを使っているとWinに戻った時に仮想デスクトップがなくて辛くなるのですが、これでようやく『追いついた』といった感じです。

心配だった無線LANモジュールやLenovoの純正ツールも問題なく稼働したため一安心です。僕の場合手持ちのWindowsで新規インストールしたためあまり参考にはならないかもしれませんが、Win7からのアップグレードでデバイスドライバ周りのエラーは出ていません。
当初、Firefoxのウィンドウを小さくした時、最小化や最大化のボタンが隠れてしまうという不具合がありましたが、いつの間にか治っていました。
また、いくら既定のIMEにGoogleIMEを設定しても再起動すると戻ってしまう不具合は、GoogleIMEの再インストールによって解決しました。

調子に乗ってデスクトップも更新したのですが、こちらはてんでダメで、スタートが動かない・タスクバーが死ぬ・タスクマネージャしか動かない等の不具合が出ました。どうにかこうにかして8.1に戻すを呼び出し、どうにか修正。非常につらかったです。

そもそもアップグレード時にかかる時間がX220の数倍かかり明らかにやばい雰囲気を漂わせていましたが、本当にひどかったです。


ディスプレイの設定を呼びだそうとしたところ。エラーが出て何もできません。


スタートメニューとCortanaが死んでいると言われ、修復すると言っていますが何をしても修復されることはありませんでした。


このように、年季の入ったデスクトップではエラーが起きまくっていますが、X220はスムーズに導入することができました。全体の挙動としては結構安定しており、少なくとも7よりはかなり良いです。

しかし未だにコントロールパネルと、「設定」の項目が分かれており、これは非常に分かりづらいです。どちらかにまとめてもらえたほうが良いのですが、Microsoftは何を考えているんでしょう。

また、全体的に色々小さくなった反面「設定」の画面はかなりアイコンが大きいです。X220のような低解像度のディスプレイでは良いのですが、昨今流行りの高解像度液晶ではどうなるのか不安です。

以上、簡単な報告でした。

カテゴリー:Other