bussorenre Laboratory

hoge piyo foo bar

読書の時間11限目「九つの物語」

ハルヒのキャラで誰が一番好きかって言われたら、私はもう最高にハルヒが一番好きだって事は昔のブログ(http://bussorenre.blog59.fc2.com/)で散々述べたので省略するのですが、最近年を取って価値観が変わったのか、みくるちゃんかわいいよなーとか、結婚するなら鶴屋さんだよなーとか思ってるぶっそれんれです。

今更消失見たし、驚愕も読んだ。あぁ、佐々木さん素晴らしい。消失の長門は最高にかわいいですが、「現実にあんな子いねーよ。居たらもう彼女にしてるわ」って本気で思い出したところで思考中断。



こんだけうだうだ語って何が言いたいのかと言いますと。


青春したいー恋愛したいーどっぷり溺れたいー。



どうもおはようございます。ぶっそれんれなるものです。

そんな私が手に取った本は橋本紡の「九つの物語」橋本紡さんって、私と同じ世代の人なら知ってると思いますが、「半分の月がのぼる空」の人です。

まぁ、九つの物語も同じような空気で、穏やかでやさしい物語です。

主人公のゆきなちゃんが、まー素直で純粋でかわいいことかわいいこと。お兄ちゃんが格好良すぎること格好良すぎること。香月くんはこんなかわいい彼女をもって、そのお兄ちゃんに料理教えてもらって、本当に幸せものだなー。あははー。


って感じで、ものすごく和みました。はい。


九つの物語。実在の小説とかを主人公が読み、現実と重ね合わせながら成長していく様子が良かったです。山椒魚と女生徒は読んだことがないので、読みたくなりました。

どなたか持っていませんかね〜…。貸してくれないかなー。図書館は貸し出し中で終わってたので。


                                                                                                                                  • -


幸せって、温度なんだなーって思います。



要するに、熱いんです。



熱しつづけたら、熱くてオーバーヒートしちゃいます。倒れちゃいます。



だから、人間は時々不幸でクールダウンするのです。



時々居るんですよね。四六時中太陽のような人。暑苦しいです。たまには月になってくださいww



ということで、今日のブログおーわり。

Python Djangoとか触ってみた

こんばんは。いや今は昼ですが。ぶっそれんれです。


ちょっとひょんなことからRubyを始めたのですが、どうもしっくりこない。のでどうせならPythonを初めようということで、UbuntuPythonを始めました。


今回の目的はPythonでWebサービスを作るということで、どうもぐぐっているとDjangoというフレームワークがいいらしい。


最近思うのですが、フレームワークとかの学習コスト。あれなんとかなりませんかねぇ?


さておき、早速Ubuntuで全部インストールするよ!

$ sudo su -    #例によって全部root権限でインストール
# apt-get install python
# apt-get install python-django
# apt-get install python-mysqldb  # PythonMySQLを扱うためのフレームワーク


インストール終わり!
早速プロジェクトを作る。作業フォルダに移動して、以下のコマンドを打ち込んでくださいましまし。mysiteのところは好きな名前で。

$ django-admin startproject mysite
$ cd mysite
$ python manage.py runserver

これでmysiteというディレクトリがでているはず。で、mysiteの中にあるmanage.pyを実行すると,localhost:8000になんか動作しているらしいページが出る。


導入以上。これ以上はまだ言語構文すら把握していない私には無理であった(←

10限目:僕たちはいつまでこんな働き方を続けるのか?

 こんばんは。昨日は駄文を投稿してしまって反省しているぶっそれんれです。どうせ同じ時間を使うなら有益なものを書こうと思いまっす。

 というわけで、今日は四条烏丸大垣書店でこんな本を見つけたので1時間かけて全部読みました。



書店に入る。


本を見つける。


働く…(・∀・)


働いたら負けかなと思ってる(・∀・)


あ、オレ今年就活生だったわ(←ココで本を手にとった



非常に良い本でした。ただ途中(5章辺り。自分の精神的なコストを下げる)ってところで、論理的な話がされず、「精神的なコストを下げるには、その人がどう思うか次第だww」って感じで投げられていた感じが非常に残念でしたが、その点を除けばレビューで4点は書いてもいいかなーという内容でした。


私はきっと将来どこかの企業に就職して、働く。その時、もらえる給与はどのように決定しているのか。そもそも就職して働いて給与を得ることとは、資本主義の社会の中でどのようなシステムで決定されているのか。という、非常に深い部分の話がわかりやすくてよかったです。




その本の結論は極めて簡単で、

  1. 如何に自分の労働コストをかげずに自分の労働によって産める利益(や自分の中の満足感とか)を高めるか。
  2. 如何に自分の労働コストを下げながら自分の労働によって産める利益(や自分の中の満足感とか)を維持するか。

という事に焦点が当てられて後半は進んでいくのですが、その中で登場する考え方の一つに、学習コストの高いものを習得すると、自分の市場価値が上がるというもの。

これは、よく考えなくてもすぐわかることで、例えば医者という仕事は他の仕事に比べて非常に膨大な量と時間の学習を要しそのコストに大して大きな給与が支払われる。という仕組みなんですね。これは納得です。

だから、自分のスキルを高めるような仕事を選ぶといい。もしくは、そう心がけるといいよ。というような内容なのですが。


世の中にはそんな都合のいい仕事ばかりではないです。むしろ、そんな仕事のほうが少ないんじゃないかなと思っています。


最もわかりやすいのが家事や清掃ですね。誰でもできることは価値が低いし、スキルアップなんて概念も殆ど無い。けれど、誰かはやらなきゃ社会が回らないのです。だって、トイレ一ヶ月放置したら悲惨なことになりますよ。「スキルアップできないし…」「誰でもできるし俺がやる必要はないし…」って言って誰もしないわけに行かないのです。かといって、その役目を引き受けてしまうとその時間はその労働のためだけに使われる。だから誰も進んで引き受けない…。


このようなジレンマ、実はいまの就活の現場で顕著なんじゃないかな?と思っています。そうです。若者はわかっています。こんな本読まなくとも、スキルアップしながら、働くほうが有利だってことくらい。だから、有効求人倍率は1以上なのに、大企業や「スキルアップできそうな企業や職種」に学生が偏る。単純労働(だけどやらなきゃいけない仕事)には学生は見向きもしない。



さて、この問題に対して、日本経団連はすごい解決策を示してますね。

「若者が単純労働をしないなら…、移民を受け入れるしかないじゃない…ッ!」

なるほど、確かにアリですねこの解決策。けど、この結果どうなったかは、今の欧州を見ればよく分かるでしょう。うまくいかないのです。

移民を受け入れたって、彼らだって人間です。「労働力」ではないのです。「人間」です。だから、ある程度すれば、「オレだってスキルアップできる会社で働いて、もっと金がほしい」って思うようになります。当たり前です。


だから、この問題は全く根本的な解決になっていない…。



私が考えた解決策なんですけど、2つあります。

ひとつは義務化です。法律で義務化とかをするのは難しいので、例えば会社でのオフィスの清掃は週ごとに担当者を分けてやる。という感じです。昔の日本は結構こんな感じだったらしいです。しかし、一時間で10万円の価値を産める人と,一時間で1万円の価値を産める人、にそれぞれ毎週一時間掃除を義務化すると、どうなるか。1時間で、9万円もの損失が会社に生まれますね。だから、この方法は現実的でないのです。



もう一つは専門化です。こちらのほうがまだ現実的かな?
掃除はバイトとかではなく、掃除のプロがやるんです。プロなんでめっちゃ早かったり、「普通の人はかわねーよこんな道具」を駆使して素晴らしい成果を上げます。日本でもありますよね、清掃業者とか色々と。

専門性があるので、その分学習コストとかがあるから労働単価高いよね。って社会が認知すればいいのです。北欧などの社会福祉の強い国はこのような価値観が浸透しています。




さて、一冊の本を通じて働くってことについて色々考えてみました。

働くって楽じゃないですよね。なんで人間は進化しても進化しても、しんどい生き方を選ぶのか。不思議ですねー…。


という感じで、なんとなく閉まらない終わり方ですが今日はこのへんで終わろうと思います。ではでは☆彡

Windows 8 Consumer Preview とかいろいろ入れてみた。

どうもこんばんは。ぶっそれんれです。最近、学生起業家(?)っぽい頭おかしい人の下でアプリ開発しています。詳しいことはまぁTwitterとかでよくつぶやいていますが。

今日は、せっかくWindows 8 Consumer Preview がダウンロードできるようになったので、入れてみました。前のDeveloper Preview と違って、「日本語版」がダウンロードできるようになりました。素晴らしいですね。さて、早速これをダウンロードします。

Windows 8 Consumer Preview
http://windows.microsoft.com/ja-JP/windows-8/consumer-preview

さて、入れた!スタート画面こんな感じです。前のプレビュー版よりもはるかに動作が軽くなりました。あと、日本語まわりが綺麗に表示されるようになりましたね。
f:id:bussorenre:20120301200716p:image:w640

個人的に一番感動したのがタスクマネージャーの見やすさ。いつもどおりCtrl+Alt+Delete で、タスクマネージャを出すと、こんな感じの画面が呼ばれます。
f:id:bussorenre:20120301200714p:image:w640


Windows Vista / Windows 7 よりはまぁいいOSになってるんじゃないですかね?

さて、個人的に一番きになっていたのがVisual Studio 11 Beta版。まさか、日本語があったのです。中国語ではなく日本語があったことに感動しています。VS使いの皆さんはMicrosoftに感謝ですね。


私は、Windows 7 を失ってしまったので、しばらくこの環境で開発作業とかしようと思います。であであ。

全体的な感想

動作速度に関して、Winodws 7に比べては良くなった(ただし、あくまでこれはプレビュー版なので、製品版になったら圧倒的に重くなる可能性は高い)。Metro UI も思ったより綺麗に表示されています。

ただ、新しいスタートメニューとかになれるのに時間がかかる。というか、この扱いが非常にめんどくさい。いや、Windows Tablet意識しているのはわかるのですが、ちょーーーっとデスクトップ環境で使うのはめんどくさくないですかね??

このあたり改善されたら全然ありなんじゃないかな?と思います。


追記:
この魚は一体なんなんだろう??どうせなら、日本語版だけクラウディアたんとか(ry
f:id:bussorenre:20120301200712p:image:w640

PEARでSign in with Twitterを実装する

どうもこんばんは。何番煎じかわかりませんが自分用のメモとしてPEARを使ってのTwitter のOauth 認証の作り方を書きます。最近、Cacooとか読書メーターとか、Sign in with Twitter とかいうログインボタンありますよね。あーいうのを作ります。

PEARのインストールとかは前の記事でやっているので、そちらをご覧ください。

さて、まずTwitter のdeveloper 登録をします。https://dev.twitter.com/ に自分のTwitter アカウントでログインしてください。すると、右下にCreate an App という文字があると思うので、それをクリック(Twitter developers は全部英語で書かれているので、ちょっと混乱するかもですが、気合で乗り切りましょう)

すると、アプリケーションの登録フォームが出てくるので、サクっと除法を入力

Name
アプリケーションの名前。〜〜から投稿 という風にクライアント名が表示される。
Description
アプリの説明。特に何を書いても問題なし。
WebSite
何でもOK。私は自分のブログ(これ)を指定してますが。「〜〜から投稿」というのをクリックすると、ここで指定されたアドレスにリンクされる。
Callback URL
地味に重要。ログイン処理を行うアプリのURLを記載する。

はい。登録はこれだけ。あとは規約を読んで同意し、英字か何かを入力して次へ。
すると、My Application Details みたいな画面が出てくるので、そこで「Consumer key」と「Consumer secret」を確認する。この鍵を用いて、Twitterへのログイン処理をする。

ここまでできたら、あとはコードをガリガリ書くだけ。
私はとりあえず、こんな感じで描いてみた。

// ライブラリのロード
require_once("Services/Twitter.php");
require_once("HTTP/OAuth/Consumer.php");

// OAuth関連。
define('TWITTER_CONSUMER_KEY',		'※先程取得した※consumer_key');
define('TWITTER_CONSUMER_SECRET',	'※先程取得した※consumer_key_secret');

// ログイン関連のURL情報
define('TWITTER_REQUEST_TOKEN',		'http://api.twitter.com/oauth/request_token');
define('TWITTER_ACCESS_TOKEN',		'http://api.twitter.com/oauth/access_token');
define('TWITTER_AUTHORIZE',			'http://twitter.com/oauth/authenticate');
define('TWITTER_CALLBACK',			'先程指定したCallback URL');

/* 
 * Sign in with Twitter ボタンをその場に生成する。
 * @param $consumer OAuth認証用に作成したHTTP_OAuth_Consumerインスタンス
 */
function signinwithTwitter($consumer)
{
	// リクエストトークンの取得
	$consumer->getRequestToken(TWITTER_REQUEST_TOKEN, TWITTER_CALLBACK);
	
	// トークンをセッションに保存(この部分必要あるか…??→クロスサイトスクリプティング対策に必要)
	$_SESSION['twitter_request_token'] = $consumer->getToken();
	$_SESSION['twitter_request_token_secret'] = $consumer->getTokenSecret();
	$auth_url = $consumer->getAuthorizeURL(TWITTER_AUTHORIZE);
	print('<a href="'.$auth_url.'"><img src="http://si0.twimg.com/images/dev/buttons/sign-in-with-twitter-d.png" /></a>');
}

/*
 * Twitterでのログイン認証を実現する.
 */
function login_Twitter()
{
	// OAuth に必要なインスタンスの作成
	$oauth = new HTTP_OAuth_Consumer(TWITTER_CONSUMER_KEY,TWITTER_CONSUMER_SECRET);
	$oauth_flag = false;

	// セッションを開始する。
	session_start();
	if(empty($_SESSION['twitter_access_token']) && empty($_GET['oauth_verifier']))
	{
		// 初回ログイン時
		// sign in with Twitter のアイコンを表示
		signinwithTwitter($oauth);
	}
	else if(isset($_GET['oauth_verifier']))
	{
		// Twitter からCALLBACKを呼ばれて帰ってきた時。
		// Oauthにリクエストトークンをセットする
		try {
			$oauth->setToken( $_SESSION['twitter_request_token']);
			$oauth->setTokenSecret( $_SESSION['twitter_request_token_secret']);
		
			// アクセストークンを取得(これが大事)
			$oauth->getAccessToken(TWITTER_ACCESS_TOKEN, $_GET['oauth_verifier']);
			$_SESSION['twitter_access_token'] = $oauth->getToken();
			$_SESSION['twitter_access_token_secret'] = $oauth->getTokenSecret();
		} catch (Exception $e){
			// エラーです。
		}
		// これでログインされました
	}
	else 
	{
		// ログインされてるはず
	}
}
/*
 * Twitter からログアウトする。それ以上でもそれ以下でも無いです
 */
function logout_Twitter()
{
	unset($_SESSION['twitter_access_token']);
	unset($_SESSION['twitter_access_token_secret']);
}
// テスト------------------------------------------------------
login_Twitter();

はい。これで動きました。
もしかしたら、リクエストトークンの発行と、アクセストークンの取得は別ファイルにする人が多いかもしれない…

PEARをMac OS X とUbuntuにインストールする

pear を使ってTwitterのOAuth 認証をさせるアプリを作ることになりました。PEARというのは、PHP Extension and Application Repository のことで、要するにPHP のライブラリ群ですね。http://pear.php.net/ が公式サイトです。かなり便利!

さて、これをどうやって使うのかということでインストール方法をまとめてみました。

環境整備

Mac OS X Lion の場合

※※このあたり全部書き直しました。(2012/02/16 11:00 くらい更新)
色々なサイトに書いてある方法が通用しなかった。具体的にはyour php version is too new!! といったエラーが出てgo-pear が使えない。そこで、別の方法を模索するとこんな感じでインストールできた。(http://sudhanshuraheja.com/2011/03/installing-php-pear-on-mac-osx-10-6-with-php-5-3-3/ を参考にした。英語です)

$ curl http://pear.php.net/go-pear.phar > go-pear.phar
$ sudo php -d detect_unicode=0 go-pear.phar
// これで以下の設定画面に入ることができる。
Below is a suggested file layout for your new PEAR installation.  To
change individual locations, type the number in front of the
directory.  Type 'all' to change all of them or simply press Enter to
accept these locations.

 1. Installation base ($prefix)                   : /usr
 2. Temporary directory for processing            : /tmp/pear/install
 3. Temporary directory for downloads             : /tmp/pear/install
 4. Binaries directory                            : /usr/bin
 5. PHP code directory ($php_dir)                 : /usr/share/pear
 6. Documentation directory                       : /usr/docs
 7. Data directory                                : /usr/data
 8. User-modifiable configuration files directory : /usr/cfg
 9. Public Web Files directory                    : /usr/www
10. Tests directory                               : /usr/tests
11. Name of configuration file                    : /private/etc/pear.conf

// 以下のように設定しました。
 1. Installation base ($prefix)                   : /usr/share/pear
 2. Temporary directory for processing            : /tmp/pear/install
 3. Temporary directory for downloads             : /tmp/pear/install
 4. Binaries directory                            : /usr/bin
 5. PHP code directory ($php_dir)                 : /usr/share/pear
 6. Documentation directory                       : /usr/share/pear/docs
 7. Data directory                                : /usr/share/pear/data
 8. User-modifiable configuration files directory : /usr/share/pear/cfg
 9. Public Web Files directory                    : /usr/share/pear/www
10. Tests directory                               : /usr/share/pear/tests
11. Name of configuration file                    : /private/etc/pear.conf

最後に、php.iniの編集です。include_path に先ほど設定した$php_dir を設定します。(今回の場合は/usr/share/pear

これでPEARコマンドが動くはず。ということで、早速Services_Twitterを入れてみます。

# pear install --force --alldeps Services_Twitter
// 中略
install ok: channel://pear.php.net/Net_URL2-2.0.0
install ok: channel://pear.php.net/Log-1.12.7
install ok: channel://pear.php.net/Cache_Lite-1.7.12
install ok: channel://pear.php.net/DB-1.7.14
install ok: channel://pear.php.net/MDB2-2.4.1
install ok: channel://pear.php.net/Mail-1.2.0
install ok: channel://pear.php.net/Net_Socket-1.0.10
install ok: channel://pear.php.net/Auth_SASL-1.0.6
install ok: channel://pear.php.net/HTTP_Request2-2.0.0
install ok: channel://pear.php.net/Net_SMTP-1.6.1
install ok: channel://pear.php.net/Services_Twitter-0.6.3
install ok: channel://pear.php.net/HTTP_OAuth-0.2.3

入った!!やった!!

さて、実際にコードを書いたら動くのか??ということで以下のようなコードを描いてみた。といっても、@IT に書いてあったコード丸パクリですが。

// Test of Twitter
require_once 'Services/Twitter.php';

$twitter = new Services_Twitter();
$twits = $twitter->statuses->public_timeline();
?>
<html>
<body>
  <table>
    <tr>
      <td>日付</td>
      <td>画像</td>
      <td>ユーザー</td>
      <td>つぶやき</td>
    </tr>
    <?php foreach($twits as $twit): ?>
    <tr>
      <td><?=$twit->created_at?></td>
      <td><img src="<?=$twit->user->profile_image_url?>" width=48 height=48></td>
      <td><a href="<?=$twit->user->url?>"><?=$twit->user->name?></a></td>
      <td><?=$twit->text?></td>
    </tr>
    <?php endforeach;?>
  </table>
</body>
</html>

実際に表示させてみた。
f:id:bussorenre:20120216111657p:image:w360
よっしゃ動いた!!爆

Ubuntu の場合
$ sudo su  // ルートユーザーになる
# apt-get install php-pear
# pear update pear // 更新の確認
# pear install --force --alldeps Services_Twitter

コマンドラインベースでこうやって簡単に入れれます。Linux触り始めた頃は、Linux難しいコマンドライン訳が分からないよって嘆いていましたが、最近コマンドラインがいかに便利か分かって来ました。爆

もしこれで正常に動かないようでしたら、phpの設定ファイルを編集する必要があります。include_path にpearがインストールされているパスを指定してやると動きます。