2017-06-28

理性なき正義感を振りかざしている人は、影響力のあるだれかに時間と感情を搾取されていることに気づいた方がいい

タイトルの通りですが、メディアをやって、最近思ったことです。


僕は最近、炎上がなぜ起きるのかについて興味を持ってました。有名なブロガーだと、はあちゅうさんとか、イケハヤさんとか、ホリエモンとかがなんで炎上させてんのかなぁと。


2つ理由があると思います。


1つは金になるから。


本人はどう思ってるか知らないけど、それが広告モデルの本質なんです。つまりコンテンツにいかにメリットが存在しなくても、誰かが見てくれればそれだけでお金になるんです。


彼らの炎上を手助けしてるのは、理性なき正義感を持つ一般大衆なんです。記事の内容も読まない。拡大解釈して、自分が傷つけられている、他人を傷つけていると思い込んで、自分の正義感で感情的にコメントする。そうすると感情は波となって広がるんです。バズとして。


つまりその炎上に加担しているのは、理性ある誰かが拡散させているというより、そういう社会構造にすら気付けない、自分の頭で考え、他責な、力のない、理性なき正義感を持ったガス抜きが必要な人たちなんです。


もう1つは、残酷な事実を突きつけているから。


面白いのは、理性なき正義感を持つ人たちは、解釈よりも事実に怒る傾向があります。きつい事実を突きつけると被害妄想で拡散します。大体の場合炎上する側の人は、誰かを傷つけるようなことは一言も言っていません。ただ、彼らは解釈の余韻を計算して事実を伝えているだけです。


そうやって、理性なき正義感を持つ人は、理性ある影響力を持つ人に広告モデルによって搾取されてることにすら気づかないまま、自分の感情と時間と、そこから生まれる広告収入として搾取されてることに気づかないんです。


個人的には、テレビの殺人事件をコンテンツとして流し続けるのは、おそらく理性なき正義感の強い人たちがいいカモだからだと思います。


どうせ彼らは3日経ったら忘れてしまう、地震のことも忘れてしまう。だけどその時その時は「私も向き合わなければいけない」という気持ちになって自分の正義感に陶酔してくれるからコンテンツとして彼らは消費します。視聴率も取れます。殺人事件なんか報道しても一般人にもたらす価値など0に等しい。それにもかかわらず報道するのは、理性なき正義感を持つ人はいいカモで視聴率をとれ、金になるからです。


理性なき正義感は、社会を何も変えない。ただ搾取されてるってことに気づいた方がいいのになぁと思います。

2017-06-27

就活に必要なのは、自己分析でも業界研究でもない。パンクの精神だ!

エモさを失った過去のロジック童貞の僕は、商業音楽の中で最適化された量産型アイドルになっていた話



ちょうどさっき就活生を見て、去年の就活シーズンに、自分が就活で吐き気に催されながら悩んでいたことを思い出しました。自分のやりたいことが見つからない病です。われわれ日本人の9割くらいはそうなんじゃないでしょうか。


今回はやりたいことが見つからない人に向けた記事です。3行でまとめると



・過去の自分の経験を無理くりつなぎ合わせても、自分のやりたいことは見つからない
・なぜなら好きなことは帰納的に導き出せず、常に演繹的だから。
・だから面白そうなことへの試行回数を増やして、エモいパンクロッカーになって就活をやめよう


という話です。うんこしながらでもみてください。


好きなことをお金にする難しさについて

このブログは今、自分への挑戦で書いてます。趣味をマネタイズする挑戦です。


月6000円くらいにはマネタイズできるようになりましたが、ある程度マネタイズに成功するとかなり悩むことがあります。


それは、どこまで好きとお金を両立させるかという問題です。


目標としてぼくは月1万円稼ぎたいと思っています。欲を言えば5000兆円欲しいです。


News Picksでバズった記事をまとめてみました(100 picks以上)

News Picksでバズった記事まとめ


自分の記事をNews Picksに上げてきましたが、その中でもバズった記事をまとめました。
バズといっても 100 picks 以上の記事です。僕が編集しているThe Academic Timesも含めてとなります。それでは1~8位まで!


2017-06-26

『多動力』(堀江貴文)まとめてみました

『多動力』(堀江貴文)を読んで特に印象に残った点2点


さっそくホリエモンの新書である、多動力ですが、読んでみました。特に印象に残った感想をまとめてみます。ちなみに堀江貴文さんもNews Picksを利用されているので、気になる人は下のURLからみてみてください。


News Picks 多動力

2017-06-25

【2017年6月ブログ運営振り返り】ブログのPV数・収益と、ブログ運営で学んだことについて

6月振り返り



6月のブログ運営を振り返りたいと思います。


目次

6月の成果
・PV数
・収益
・クリック率
挑戦したこと
・新しいメディア『Academic Times』のローンチ
・プログラミングXブログ
学び
・コンテンツとデリバリー:デリバリーこそ肝だ
・誰もやっていない領域で価値パターンを身に着けると、勝ち続けられる
・外発的動機付けで、趣味を苦しめてはいけない
・ソーシャルメディアによって、クリック率が違う


【Pythonで定期処理】 Cloud9を利用して、Seleniumでherokuから定期実行する

Python Cloud9を利用して、定期処理をherokuから行う




Cloud9というIDEを利用して、PythonからSeleniumを利用し、あるサイトでいいねを自動化するプログラムを作った。


これを定期実行を行いたい。検索してみると、crontabを使えば定期実行ができるようだが、cloud9上では実行できないらしい。


ほかの代替案を考えたとき、heroku schedulerを利用して定期実行を行えるのではと思い、やってみたらうまくいった。その時の作業ログを残しておく。特に詰まったところ。


手順としては


・bottleを使ってherokuにdeploy
・heroku schedulerに接続
・heroku schedulerに実行プログラムを入力

pythonプログラムをherokuにdeployする


実行したいプログラムをherokuにdeployする。herokuにdeployするところまでは下記参照。これ通りにやれば、ひとまずherokuにdeployするまではできまする。


【ローカル環境構築不要】Cloud9で作ったPythonのbottleアプリケーションをHerokuにdeployする - Qiita http://qiita.com/masaibar/items/86dd57efd50ab729ccf6


Selenium関係のインストール


あとは自分のseleniumを使うアプリケーションのファイルをcloud9上のrootディレクトリに保存する。


その後以下をインストールする。


$ pip install selenium
$ pip install crontab
$ npm install phantomjs


で、heroku上で環境を構築するために、requirements.txtを作成する。


$ pip freeze -l > requirements.txt

requirements.txtから、つかわない以下の項目を削除する。


ちなみに今回はここで詰まって、3日間解決できなかった。結局、scipyはherokuだと動かないらしい。なので、自分のアプリケーションとは関係ないmoduleは全部削除しておく。


matplotlib==1.3.1
pygobject==3.12.0
python-apt==0.9.3.5ubuntu2
python-dateutil==2.0
unattended-upgrades==0.1
scipy==0.13.3
numpy==1.8.2
requests==2.2.1
numpy==1.8.2


で、普通にgitにcommitした後に、herokuにpushすれば大丈夫。


$ git push heroku master

これでdeployがうまくいったみたい。


Heroku Schedulerと接続する



herokuスケジューラーを起動する。heroku schedulerはdeployしたファイルを定期実行してくれる。10minutes, hourly, dailyで実行を決められる。djangoとか使わなくても、シンプルなpythonプログラムをコマンドで実行できるので今回はこれを利用した。


$ heroku addons:create scheduler:standard



で、今度はherokuで実行するスケジュールをセットする


$ heroku addons:open scheduler


Opening https://addons-sso.heroku.com/apps/d5087dc6-6949-4335-bd42-3f13150fa199/addons/9a753940-5305-4b2e-b520-a7cc80f7655e...


実行するとこんな感じのURLが出てくる。


クリックするとタスクの設定画面に移動する。やりかたは下記参照。


簡単!Herokuで動くTwitter botをPythonで実装する - Qiita http://qiita.com/enomotok_/items/41275dd904c8aa774e72


こんな感じで、スクレーピングするプログラムを自動定期処理できることができました。Cloud9からできるのいいね!



Python データ分析入門マニュアルに戻る

2017-06-14

PythonでTinder APIを使ってネトストとサイバーナンパ師やってみた

Python TinderのAPI Pynderを利用する



こんにちは。突然ですが、ナンパしたい。僕は陰キャラなので、歌舞伎町でナンパに繰り出すことなんてできない。


そういえば前回、PythonでTinderのAPIをいじるで書いた通り、PythonでTinderのAPIをいじれた。原理的には自分のアカウントのFacebook access tokenを取得して、Python上でTinderを動かす。


前までは導入編だったので、今回は応用編。APIを使わないとできないことを試してみよう。最終目標は地理情報を取得して、その場所に行かなくてもある場所の半径5km以内でナンパすることだ

2017-06-13

Pynder PythonでTinderのAPIをいじる

PythonでTinderのAPIを利用する



TinderにはAPIがあるそうなので、さっそく利用してみた。
PythonはCloud9というクラウドで環境構築してある。

TinderのAPIを使うために必要なのはFacebookのアクセストークンと、Pynderというモジュール。


Pynderを準備


pythonでapiをいじるためのpynderをinstall


$ sudo pip install pynder


インストールされたみたい。

インストールされたか確認


$ python -m pip freeze


はいってるみたい
pynder==0.0.13

apiいじるコードをgithubからコピペする
https://github.com/charliewolf/pynder


import pynder
session = pynder.Session(facebook_id, facebook_auth_token)
session.matches() # get users you have already been matched with
session.update_location(LAT, LON) # updates latitude and longitude for your profile
session.profile  # your profile. If you update its attributes they will be updated on Tinder.
users = session.nearby_users() # returns a iterable of users nearby

で、facebook idとaccess tokenをぶち込む。で、実行


$ python ex50/bin/test.py


でもエラーがでる

TypeError: request() got an unexpected keyword argument 'json'


requestsがないからupdateしてみる

$ sudo pip3 install --upgrade requests

うまくいったらしい。
Successfully installed requests chardet idna urllib3 certifi


うまくいったらしい。もう一度実行


$ python ex50/bin/test.py


エラーを吐いた。
pynder.errors.RequestError: 401


ぐぐったら、どうもfacebookidはいらないみたい
https://github.com/charliewolf/pynder/issues/133


だから消してFacebook access tokenだけにしてみた。で、実行

$ python ex50/bin/test.py

pynder.errors.RequestError: Couldn't authenticate

Facebookアクセストークンで承認できないらしい。アクセストークンが違うんだろう。


またググる
https://github.com/charliewolf/pynder/issues/28

Sanity check: Can you try generating a token using the method outlined here?
https://gist.github.com/rtt/10403467


ふむ、
調べたらtinder apiを利用する際にアクセストークンを入れる方法があるらしい。

----------翌日---------------

あ、そうだ、すでにtinderのprivate apiを利用しているサイトがあったよな。
それにアクセストークンを利用するって書いてあったから、その方法で試してみよう。

このサイトに、アクセストークンの取得の仕方が書いてある。
https://tinderface.herokuapp.com/

Step 1
Click the button below to open the auth dialog and login to Facebook if you are not already.
Step 2
You will see a dialog that says you have already authorized Tinder.
At this point, open your browser’s developer tools. (Cmd + Option + I on Mac) or (F12, Ctrl + Shift + I on Windows) or right click the page anywhere and select 'Inspect'.
Switch to the 'Network' tab in your developer tools window. Your dev tools window should look like the image below.
Step 3
Press the 'Okay' button on the Tinder dialog, and you will see some activity in the Network tab.
In the Network tab, locate the new 'confirm?dpr=2' entry, and right click it.
Select the 'Copy Response' option from the context menu like in the image below.
Step 4
After copying the response, paste it into the text field below, press the 'Submit' button, and your FB access token will be parsed from the response. We will then fetch your Tinder auth token and log you in to Tinder.
Paste Facebook Auth Response

なるほど、TinderにFacebook認証するページで、Inspectorを起動して、Networkタグを開くと。で、そこで'confirm?dpr=2' という値の中に、アクセストークンが入っているらしい。You have already authorizedと出てきたときに、Inspectorを切れるのね。




おお、あった。


for (;;);{"__ar":1,"__sf":"iw","payload":null,"jsmods":{"require":[["ServerRedirect","redirectPageTo",[],["fb464891386855067:\/\/authorize\/#signed_request=[ここにアクセストークンがありました]&expires_in=6415",true,false],[]]]},"js":["kzs9X"],"bootloadable":{},"resource_map":{"kzs9X":{"type":"js","src":"https:\/\/www.facebook.com\/rsrc.php\/v3i-F-4\/yz\/l\/en_US\/oS3FMOV7Adn.js","crossOrigin":1}},"ixData":{},"lid":"6430893981742660939"}



これをそのサイトのフォームにぶち込んで、その後ログアウトして、もう一度ぶち込んだフォームを見ると、さきほどjson形式で取得したデータのうち、facebook access tokenだけが保存されているみたいだ。



で、このコードのSigned Request以降を利用してみようか。これをアクセストークンにするとどうなるんだろう。で、さっきのコードに今出てきたアクセストークンをぶち込んで、実行してみよう。


$ python ex50/bin/test.py


お、成功したっぽい。とりあえず認証はできたようだ。今度は認証後にデータを取得できるかためしてみよう。


Traceback (most recent call last):
  File "ex50/bin/test.py", line 5, in <module>
    session.update_location(LAT, LON) # updates latitude and longitude for your profile
NameError: name 'LAT' is not defined



今のところ、LAT、LONという緯度経度情報を入れてないからだめらしい。
逆に言えば、LATとLONを定義すれば、好きな場所で人を集めることができるわけだ。
しかもここ、手打ちでいいんだね。

https://user.numazu-ct.ac.jp/~tsato/webmap/sphere/coordinates/advanced.html


いったん、ソースコードを消してみよう。

import pynder

session = pynder.Session("[ここに僕のfacebookアクセストークンが入ってます。]")
session.matches() # get users you have already been matched with
users = session.nearby_users() # returns a list of users nearby
users[1]


しかしうまくいかない
TypeError: 'generator' object is not subscriptable

じゃああれだ、nearbyを使ってみようか。

どちらにしても
TypeError: 'generator' object is not subscriptable

が出てくる。これなんだ。


pynder TypeError: 'generator' object is not subscriptableで検索





どうもgeneratorオブジェクトというらしい。user[1]みたいに数字で取り出せないらしい。
Pythonで良く見かける「unsusbscriptable object」エラーとは…
subscript という英単語を辞書で引くと
プログラムで配列要素を指定するために用いられる記号《集合の要素につける番号》
という意味がありました.
あるオブジェクトをlistオブジェクトとみなして”[]”演算子(?)を使って要素を取出そうとした.だけど,あるオブジェクトはlistオブジェクトじゃないのでTypeErrorになる.つまり,Pythonの unsubscriptable object は「番号によって要素指定できないオブジェクトだよ」という意味ですね.

------0935-------------------------

山手線でtinder apiをいじる

どうも数字しているとダメなオブジェクトみたいだったので、forで回してみる。

users = session.nearby_users() # returns a list of users nearby
for user in users:
print(user.name)
print(user.schools)

そしたら、いっぱい出てきたwwwやったーぬきとったぞ!

純ジャパです🇯🇵
✩Super Like待ってます✩
XXXX

XXXX
Hi I'm XXXX😊I'm a cheer girl👯
like snowboading/singing/sports
live in Tokyo/20yo
ちありーだーやってます👯
運動と食べることとアメフト観戦が好きです!
152cmのちびです。
ゆるーく絡んでいただけると嬉しいです☺️
Instagram:XXXXXXX
XXXXXX
社会人です。
邦ロック、ライブに行くのが趣味です〜
関西出身 お酒飲まない煙草吸わないギャンブルしないウェイ系苦手ピアス開けない髪染めたことない
XXXXXXX
はじめたばかりで、良く分からないのですが仲良くしてください。
今年の四月に社会人になりたて。
仕事やめたくて仕方ないですが頑張ってます…!笑笑
マンガ、アニメ、甘いもの、大好きです。笑

普通に仲良くなれる方とも知り合えたらいいなあ(*´-`)
XXXXXXXX
XXXXXXXX
XXXXXXXX好きなもの、公園、海、茄子とトマトを育てる、大型犬
ふつうくらいの顔。
XXXXXXXX
XXXXXXXX

XXXXXXは名前を隠してます。


一応、Tinder APIを利用して、現在の位置情報から近くのユーザーをPythonで取得することに成功!やったね!

2017-06-11

rubyとjs書いてて、はじめてpythonを学んだ感想

はじめてpythonの基礎を書いてみて思ったことつらつらと。


条件分岐文(IF, WHILE)が特殊!インデントでやるんかい!



一番驚いたのが、if文の使い方。インデントでif文の条件の範囲が決まるのが面白い。
RUBYとかは、必ず条件範囲はendで終わるし、jsは{}で範囲指定できる。だけどpythonはインデントで指定しているから、慣れるまで時間がかかりそうだ。


データ型の指定いらないから楽だね!



jsやjavaだと、変数指定するときに必ずデータ型指定が必要になる。INTとか、STRINGとか。javascriptの時も、varが必要にある。だけど、pythonの場合はrubyと同様に変数指定の時に、varなどが必要ない。これは楽だなあと思った。

ただ、文字列で出力している中に数値が入っているとき、javascriptなら空気を読んで文字列型に変換してくれるけど、pythonの場合は一度String型に変換してあげなければいけないんですよね。そこがちょっと面倒くさいなと思った。


ライブラリ、外部ファイルの指定もらくちんそう。



import文でやるんだけど、結構楽そう。

2017-06-10

シェアされる記事が、いい記事とは限らない



お昼から大好きなカフェでビールを飲みながら、徒然といろいろなことを考えている時間はすごく幸せだ。


学生のころは常に何かをしていないと、死に急いでいるような気持ちになったけど、ゆっくり好きなことをやっているような時間が、社会人になるとこの上なく大事に思えてくるようになった。


社会人になっても続けている唯一の趣味はブログだ。学生時代アカデミック合コンとやらを開いて、友達と夜な夜なアカデミックは話をしていたことがきっかけで、一つの問題を人がどんな風にとらえているのか。そしてどんな側面から問題を見ているのかをとらえるのが趣味になり、こうしてブログを書き続けている。リスポンスをもらって、世の中の人がどう考えているのか知るのが楽しい。


2017-06-08

ちょっと待って!専業主婦で本当にいいの?



20代になると、いままでの恋愛から、結婚を意識するようになるかもしれない。特に女性の場合、専業主婦になるか、共働きになるかで迷うこともあるだろう。



2017-06-04

お金とは信用と感謝を数字に表したもの?

「お金とは信用と感謝を数字に表したものだ。」それは本当かはげ人事?



僕は去年就活をしていた。そして典型的な雑魚就活生だった。現代のヤムチャだった。働く意味がわからなかったのだ。4年生にもなって。なぜ働かなければいけないか、ずっと考えていた。血迷って「俺、バンドマンになりたい」と、僕は4年の6月にミュージシャンのおやじに伝えたら、めっちゃくちゃ怒られた覚えがある。「おせえよボケ」と。


【本屋の社会学】専門書を安く買いたければ、教育所得水準の高い地域の本屋へ行こう


専門書は恐ろしく高い



「専門書がほしい!できれば安く買いたい!」
専門書がほしい人はおそらくこう思っているはずだ。特に大学等で専門書が必要になる大学生、仕事で必要になるエンジニア、ビジネスマンもそうだ。


しかし専門書は基本高い。特に大学生からすると、教科書の購入は大きな出費だ。教授のポケットマニー化する、馬鹿みたいに分厚い専門書を定価5000円のぼったくり価格で購入しなければいけないこともあるだろう。社会人も、知識産業に従事する人であれば、月のうち多くの投資を書籍に行うはずだ。


2017-06-03

満員電車のストレスを乗り越える、究極のライフハック術




まだ満員電車消耗してるの?


東京都という大航海時代の大海原で、毎朝朝早く満員電車という奴隷船で通勤している人はどのくらいいるのだろう。



満員電車とは何か。知らない人にために紹介しておこう。


満員電車(まんいんでんしゃ)とは、電車の中に一定数以上の人間が乗車することによって自動的に開催されるエクストリームスポーツの一種である。都会では頻繁に大会があり、JR東日本では大相撲のように巡回する山手杯、首都の中央を横断する中央杯、エクストリーム・痴漢も同時開催される埼京杯などが開催される。私鉄では東急での東横杯・田園都市杯、東京地下鉄での東西杯などが有名。乗客、電車本体共に尋常ではない負担が掛かるにも拘らず一日に数回開催される。その異常ぶりはサバンナのヌーの群れをして「俺達でもここまではしないよ」と言わしめるほど。ラッシュアワーの一環でもある。アンサイクロメディア


かくいう筆者も、山手杯には毎日出場している一人である。ここ最近では、「ドア上部を支点に、自分のお尻を押し込む技術」を身に着けてしまった。しかしこれはペナルティ行為なので減点対象らしく、乗車した瞬間に外国人に肘打ちされた。(僕はチビなので顔面に直撃した。)


2017-06-02

日本人リーマンはかっこ悪い



朝、電車でいろいろ嫌なことがあった。なぜか座っている不潔なリーマンが周りに「ちっち」と言いながら、めちゃんこうるさいキータッチ音でキーボードをたたいていた。となりに座ると、「邪魔なんだよ」と小声でささやいてくる、40代のおっさんだ。あほみたいにギューギュー詰めの電車で、おっさんは慌てて資料を作ろうとするも、パソコンが固まってさらにいらいらしているようだった。ちなみにそのおっさんはがたいのいいおっさんに蹴り飛ばされていて、日本人の通勤はクレイジーだと思った。


注目の投稿

 PythonのTweepyを利用して、Twitter APIを利用している。 その中で、ハマったポイントをメモしておく。 まず、Searchに関して。 Twitter検索は、クライアントアプリ側では、全期間の検索が可能になっている。 一方で、APIを利用する際は、過去1週間しか...