2014年7月30日水曜日

(編集中) 生きていく中で欠かせないWebサービス・ツール・デバイスその他もろもろのまとめ

絶賛編集中


ツール系


Google Chrome

Chromeエクステンション
Vimium
Smooth Gestures
Gmail
Google Drive
Google日本語
Skype


Webサービス系


SNS系

Facebook
LINE
Linkedin
Twitter
Google Analytics
Google Adsense
Google Maps
Google Calendar
Blogger
楽天オークション


開発系

SourceTree
Amazon Web Service(特にAmazon EC2)
Github
Launchy


ニュース系

Google News
はてなブックマーク



勉強系

Coursera
Rarejob



日常系

Amazon
Youtube
ジョルダン

お金系

楽天カード
edy
nanaco
ponta
Tカード
EMoneyReader


デバイス系

ポケモンキーボード
ロジクールホイールマウス
縦置きPCモニターと横置きでデュアルスクリーン
Mac book air
Raspberry Pi
nasne
iPad mini
Nexus5

2014年7月23日水曜日

Raspberry PiからFacebook APIを叩いてみるの巻


Raspberry PiからFacebook APIを叩くサンプルコードを実装してみました。
OAuth2 認証処理とかもついでに勉強しつつ。


コマンドラインベースで、HTTP Request飛ばして、クライアントをリダイレクトさせつつ右往左往させる処理がOAuth2認証。
参考になったリンクは以下のものです。


PythonでのOAuth2認証に際しては requests-oauthlib がよしなにやってくれます。
Facebook APIを叩くためのOAuth認証では、 client_idclient_secret というものを入力として、
access_tokenを取得する処理が必要になります。

access_token が取得できれば後はAPIを叩くだけです。
API叩くにあたってはpythonのfacebook-sdkを使えばHTTPリクエストを生成する際の面倒な処理がスキップできるので楽。
URLを入力としてjsonが帰ってくるイメージ。

返ってきたjsonはjsonモジュールでパースしてあげて適当に捌けばよろし。
mongodbでデータベースに打ち込むとかもあっさりできるでしょう、なにせpython神なんで。

掲載したソースコードはRaspberry Pi(≒ Ubuntu)で動作検証済のものです。
システム側で幾つかモジュールをインストールする必要があるので、
それはコメント欄を参照下さい。

2014年7月15日火曜日

思考のフレームワーク: 事実・判断・仮説


ソフトウェアエンジニアをしている私。
不具合修正の日々が続いています。

様々な問題に対して、エンジニアとしてどう解決していくかというアプローチの仕方・考え方について試行錯誤した結果、少し学ぶことがあった。

日常的に遭遇するソフトウェアの不具合という具体的な問題から、
あらゆることに応用できる定理のような一段抽象化したノウハウの形でまとめる。


ノウハウとかビジネススキルというと、世間では「外資系ほげほげの・・・」とか「マッキンゼーの・・・」とかいうやつがいっぱいある。
代表的なものは以下のフレームワークだ。

マッキンゼー社員の問題解決フレームワーク「空→雨→傘」


コンサルタントがうまく言いくるめるためのうさんくせぇ話術とか思って、
こういうの気にも留めていなかったんだけど、最近エンジニアとして仕事をしていく中で
このフレームワークで物事を切り分けることの大切さをひしひしと感じております。


まず、私はエンジニアの仕事は少し抽象的に言うと
  - 自明でない有用な事実を集めること
  - 事実から論理的に説明がつく判断を下すこと
  - 判断から検証可能な粒度で仮説を立てること
だと思っている。
# まさにマッキンゼーのほげほげとほぼ一緒でニュースバリューゼロなわけですw

例えば、誰かが「AはBだ」と言っている時、
それが誰から見てもそう言える事実なのか、
はたまた個人的な判断や未検証な仮説なのかで受け取り方が異なってくる。

事実であれば、「あ、そうだね」って反応でいいし、
判断であればそれが論理的に妥当なものか推し量る必要があるし、
仮説ならそれを確かめるための検証してみようかってなります。


反面教師的ではあるけれどいろんなダメな事例をたくさん見てきた & しでかしてきたので、
意識して思考を整理していこうと思う。
特に、意識すべき3点のアクションアイテムは以下のとおり。

1. 「なんとなくこんな感じかなぁ」とかふわっとした妄言を吐くことはやめて、事実・判断・仮説を明確に分けて地に足の着いた議論をしよう。

2. 仮説は検証可能な粒度に砕いて、検証のフェーズはだれでもできるタスクに落とし込もう。筋の良い仮説は経験から作られることが殆どなので、なれないうちは仮説が外れても気にしないことにしよう。

3. 仮説が外れた時にこそより良い軌道修正のチャンスと思うようにしよう。



問題解決をする初期のフェーズは情報が混沌としていて、
何から取り組めばよいか全くわからないことでしょう。
そこで嫌になって、盲目的に「AはBなんじゃない?」みたいな妄言を吐いて、
ピントのずれたものをさも「うん、大体合ってる」みたいな雑な仕事はしないようにしよう。
# 激しくイラッとしてSATSUIを覚えます


振り返りも大事かと思うので問題解決までの過程を残して、
 - 精度がどうだったか、
 - 生産性はどうだったか
 - 改善点はないか
を考えてスキルを上げていこう。


おしまい。