読者です 読者をやめる 読者になる 読者になる

歩いたら休め

If the implementation is easy to explain, it may be a good idea.

【R】テキストファイルからSQLを文字列として読み込む

R

Rを使っていると、DBに接続してSQLを投げる作業がよく発生します。 すると、大抵は、RPostgreSQLなどのDBを扱うライブラリを用いてDBに接続し、 SQLの文字列を用意し、ライブラリの関数の引数に指定するというコードを書くことになります。 ただ、SQLの文字…

【Python】Web上にあるpdfのタイトルを取得する(中間報告)

不動産のことよくわかんねーって言ってる友だちがいたので、簡単なスクレイピングのプログラムを書いて、不動産の情報収集を日々行っています。 「urlを集め、htmlの<title>タグの中身(つまりページのタイトル)と一緒に表示する」というロジックです。htmlのparse</title>…

【Python】はてなキーワードAPIを使って特徴語を抽出する

最近、スクレイピングで記事を集めることにハマっているのですが、その記事の中に含まれるトピックなり特徴語なりを簡単にチェックする方法はないかと悩んでました。 例えば、音楽ナタリーから好きなバンドの記事を集めてくる際には、関連リンクのタグを取っ…

【Python】たった12行のコードで音楽ナタリーの好きなアーティストの記事をTwitterBotに通知するライブラリを作りました

github.com こんな感じのコードを24時間ごとに動かせば、人間椅子やTHE BACK HORNの記事が更新されるたび、Twitterに通知することができます。 import natalie_to_twitter as nt tw_conf = { 'token': 'your twitter access token', 'token_secret': 'your t…

【Python】簡単に音楽ナタリーの好きなアーティストの記事を集めるためのライブラリ「nataliechecker」を作りました

音楽ナタリーは素晴らしいサイトなのですが、RSSを登録していると自分の興味のないアーティストまで流れてきてしまい、ちょっと不便に感じることがあります。 そこで、ナタリーのRSSをいい感じに整形してくれるためのライブラリを作りました。 github.com cr…

【Python】最近Twitterを見る暇がないので、Twitterのリストから最新ニュースのurlを簡単に取ってくるライブラリ(らしきもの)を作った

就職して1年も経つと多少は忙しくなってしまいます。つまり、しっかりと意識して自分自身の勉強や趣味の時間を確保する必要があります。 そのため、Twitterについても今までのようにだらだらとタイムラインを眺めるような使い方はできなくなり、 Twitter業務…

【Ruby】injectでリストに値を加えていくコードで、代わりにEnumerator::Lazyを使ってPythonのジェネレーター風の遅延評価を行う

会社のRubyistが「一つの言語を極めておくと、他の言語もゴリゴリ書けるようになるって最近Go言語書いてるPerl Mongerのオッサンが言ってた」って言ってました。 私も、Pythonをある程度書けるようになってたおかげで、RubyやR言語でも迷わずにプログラミン…

【Ruby】DBからの戻り値をdplyr風に操作するleft_outer_join関数を定義したら便利だった

最近、BigQueryに解析・レポート用にデータの紐付け&クレンジングしたテーブルを入れるプログラムを実装しています。 例えば、ある学園の生徒名簿のテーブルを考えると、こんな感じになるはずです。 生徒id 名前 年齢 1 hoshimiya 17 2 ozora 13 3 kiriya 1…

【R】データベースのマスターテーブルから、重複&データの不整合のあるidを取り出すための書き捨てコード

明らかにバッドノウハウですが、関数型プログラミングのライブラリであるpurrrのサンプルコードにある data %>% split(.$カラム名) %>% purrr::map(データフレーム操作) のコンボを上手く決められたので、せっかくなのでブログに貼り付けておきます。 github…

【雑記】deepart.ioを見てると、機械学習を使ったGlitch Artみたいなのが生まれるんじゃないかと思う

要するに今日はプログラミングをサボってWEBサービスで遊んでました。 先日、「人工知能(ディープラーニング)が画像の絵柄を真似して、別の画像に適用する」というサービスが話題になってました。 ima.goo.ne.jp 人工知能が写真を元に「特定の絵柄っぽく真…

【R】Rでchatworkにメッセージを投稿するライブラリ『rChatwork』を作りました

R

時間のかかる計算が終わったときに、Chatworkに通知させたいという需要があったので、Rからchatworkに投稿するライブラリを作りました。 github.com 英語が糞なのは気にしないでください。 Pythonistaなのでクラスベースのオブジェクト指向が理解しやすいた…

【本】『文化進化論 - ダーウィン進化論は文化を説明できるか』は理系で社会科学を研究したい人に読んでほしい

『文化進化論 - ダーウィン進化論は文化を説明できるか』という本がすごく刺激的でした。 人間に関する研究と同様、生物に関する研究も多数の関連分野があります。 ところ生物の研究では異文化間の交流ができて研究が積み重なっているのに対し、 人に関する…

【R】(☞ ´。ω゜)☞ 全てのRプログラマーはLispを学ぶべきである!

R

Lispを使って、関数型言語の機能を過不足なく勉強できそうな本が発売されていました。 はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる (Software Design plus)作者: 五味弘,272出版社/メーカー: 技術評論社発売日: 20…

【Python】chatworkのAPIを叩くライブラリpychatworkを作りました

Python3.5でchatworkAPIを叩くためのライブラリを作りました。 とりあえず動くやつ作ったので色々と適当です。 github.com こちらの本が参考になりました。 Pythonプロフェッショナルプログラミング第2版作者: ビープラウド出版社/メーカー: 秀和システム発…

【Python】chatworkAPIを叩くとき、requestsライブラリを使うと楽だった

以前、こちらの記事を参考にchatworkのAPIを叩くプログラムを書いてましたが、自分のOSXのpyenvでpycurlがうまく動作せず、pyenv上のPython3系に移行させる際に不便そうでした。 qiita.com しかし、Pythonのrequestsライブラリを使うことで、更に簡単にPOST…

【R】RでPythonの"str".isdigit()みたいな操作

R

ルールに従っているidがあって、「idの冒頭2文字が数字かどうか」をチェックしたい案件がありました。 example_ids <- c("01_orange_0001001", "09_red_0001001", "aa_purple_0002002") Pythonであれば文字列のスライスとis_digitメソッドで簡単にチェックす…

【本】ハッカーニュースでよく紹介されるという『影響力の正体』など、最近読んだ本の紹介

プログラマーは休日には手を動かしてプロダクトを作るべきだと思うのですが、日本語歴のほうが長くて慣れてるので本ばかり読んでいます。 もっと自由にプログラミングできるようになりたいと思いつつ、いろいろと後回しにしてるので良くないですね。 影響力…

【Python】不動産のドメイン知識を得るために、業界の方々が紹介しているリンク集を自動投稿するブログを作った

データ分析にはドメイン知識が必須です。 せっかく一生懸命分析しても、「あ、その結果ってそうなんだよ!でもありがたいけど、当たり前すぎて役にたたないなあ…」と言われ、がんばった成果が無駄になってしまうことも度々だとか。 売上がアップしても、その…

【R】社内勉強会でRの紹介をするときの原案

R

私のいる会社はWEBサービスで成長してきた会社なので、 社内ではエンジニア≒WEBアプリケーションエンジニアという認識の人が多いです。 前任者の先輩が強力なRプログラマーで、すごい統計解析やツールを作っていたにも関わらず、 その結果が正しく理解され運…

【本】社長が薦めてた『解決!空き家問題』を読みました

社長さんがお薦めしてた本を読んでみましたのコーナーです。 うちの会社の社長さんは、あれだけいろいろな場所を飛び回っているのに、おそらくその合間にものすごい量の勉強もしていて、新しいネタを引っ張ってアレもしたいコレもしたいと言っているすごいバ…

【Python】KING OF PRISMが素晴らしかったのでテキストマイニング環境を整えてみた

みなさんは現在放映中の映画KING OF PRISM by PrettyRhythmを観ましたか? kinpri.com 2014年に放送終了した女児向けアニメプリティーリズム・レインボーライブのスピンオフで、男性キャラにフォーカスしたストーリーが展開されています。監督を始めとする、…

【Ruby】RubyでRのdplyrっぽいメソッドチェーン

今日は、RubyでDBの戻り値を集計する部分を触っていました。 DBからの戻り値は例えばこんな感じです。ここから、各アイドルグループ(soleil, luminas)ごとに平均年齢を出したいとします。 # スターライト学園のアイドルの名簿 name_list = [ {'name' => 'ich…

【R】パイプ演算子ってdplyrやmagrittr独自の機能じゃなくて、F#が元ネタなんだね

R

Rのプログラマーは「Rって独特な言語だから、R言語独自の機能が多くて他の言語に応用が効かない」とか言いがちですが、そんなことは無いと思います。関数型言語(Scheme)の影響が強いので、ちょっと立ち位置は遠いのかもしれませんが。 例えば、以前私が「…

【R】そうです。Hadley Wickhamが僕の畏敬する天使様なのです

R

「Rのプログラマーは当たり前に思ってるけど、他の人達にとってはそうじゃないこと」をまとめておいて、 先輩や同僚から「Rって何が便利なの?使って or 勉強して得になるの?」って聞かれたときにパッと答えられるように備えておこうという記事です。 (自…

【R】『新米探偵、データ分析に挑む』を読んでいます

R

同僚のRプログラマーにおすすめのRの本は無いかと聞いたところ、 「新米探偵データ分析本→実務→(みんなのR→)advanced R」の順番に学ぶといいと聞き、新米探偵本を借りて読んでいます。 新米探偵、データ分析に挑む作者: 石田基広,shimano出版社/メーカー: …

【R】ふつうのスクリプト言語プログラマーのためのR言語入門

「他のスクリプト言語ならそれなりに触れるけど、Rって変な機能が多いから難しい」と感じている人のために、Rの独特な点、ハマりどころ、そして特にデータの集計での強力な機能やパッケージをまとめてみました。 社内のデータリソース移行の作業の中で、前任…

【画像】Excelが憎い

urasunday.com

【本】『クックパッドのデータ分析力』とかを読みました

最近読んだ本について、ざっくり紹介しておきます。 クックパッドのデータ分析力 法人向けにユーザー行動のデータを提供するたべみるというサービスのリニューアルの話です。 「少し先の未来」を予測する クックパッドのデータ分析力作者: 中村耕史出版社/メ…

【R】bigrqueryパッケージでBigQueryにデータをインサートするとき、integer型の最大値で困った

RからGoogle BigQueryを操作できるbigrqueryが便利です。クエリを投げてローカルにデータを取得する他、データソース名やテーブル名を取得したり、テーブルを削除したりもできます。 github.com また、次のようにしてinsert_upload_jobを使って、データフレ…

【R】R6ライブラリを使ってクラスを作ってChatworkのAPIを叩いてみた

R R6

Pythonでプログラミングする際、「まずコードを書いて、ある程度コードが大きくなってきたらクラスを作って整理する」ということをよくします。 R言語ではなんだかオブジェクト指向の概念が特殊で、その辺の機能を敬遠していましたが、 「普通のオブジェクト…

【Python2】弊社のコーポレートサイトが更新してたらChatworkに通知するbotを作った

私、ずっと弊社にいたのに、弊社のこと全然分かってあげられてなかった…。 「他の部署が面白いことやってるのに、社長が話してて初めて知った!」ってことが多かったので、 弊社のコーポレートサイトが更新したらChatworkに通知するbotを作りました。 Chatwo…

【雑記】森を見てから木を見るようにしたい

ここ最近、社内の分析環境のデータソースの移行(の一部)を担当してたのですが、 いろいろな要因が絡み合ってかなり遅くなってしまいました。 なんとか完了できたのですが、まだ一部データの検証ができていない部分があって、対応中の部分があります…。 い…

【R】パイプで引数のリストを展開(Pythonのfunc(*args))してパイプで渡す方法を探しています

DBに何日分かデータが入っていなかったため、DBの中身をチェックする必要がありました。 そこで、以下の日付の範囲を取る関数を作り、DBの戻り値にないものを探すようにしました。 library(dplyr) library(purrr) # 日付の範囲を取る関数 date_range <- func…

【R】RからChatworkAPIを叩いて計算終了を通知する

社内でChatworkが使われているのですが、Rの計算が終わったときに通知してくれると便利だと思い、 ChatworkのAPIを叩いて通知する関数を作ってみました。 chatworkにbotアカウントを用意し、計算終了時にメッセージを投稿させます。 こちらのコードを参考に…

【R】ファイルサーバー上のファイルの更新を定期的に確認するスクリプトを作成中

R

弊社には古より伝わったファイルサーバー上のExcelやPowerPointで色々な仕様書や必要な情報がやりとりされる文化があります。 (正直不便すぎるのでやめてほしいのですが、すぐに変更できるとは思えないし、過去の遺産もあるのでなんとか作業しなければいけ…

【Python2】Twitterの検索結果を自動でリツイートするbotを作りました

@kayourockというアカウントを運営しているのですが、 ここ1年以上、ツイートの内容も更新できないし、自分の力で音楽をdigる時間も少なくなってきてしまいました。 twitter.com 歌謡曲のようなノスタルジックなメロディーのロック/ポップスを紹介。日本なら…

【読書】(ITエンジニアの勉強をサボって)『方言学入門』を読みました

妹が言語に興味があるとかで、授業で使って面白かったという方言学入門という本を貸してくれました。 方言学入門作者: 木部暢子,竹田晃子,田中ゆかり,日高水穂,三井はるみ出版社/メーカー: 三省堂発売日: 2013/08/21メディア: 単行本この商品を含むブログ (4…

【Python2】Python2.7 + zbar + PILでプリチケのQRコードを隠すプログラム

こちらのプログラムがひとまず完成しました。 kiito.hatenablog.com プリチケのQRコードを隠すプログラムが完成した pic.twitter.com/yBe59HMYnh— 黒めだか (@takeshi0406) December 3, 2015 やっている事自体は簡単なので、zbarを使えれば他の言語でも可能…

【Python】PV数、UU数を出すSQLのクエリを作る関数を作った

最近、Google BigQueryにクエリを投げる毎日です。 社内のデータをBigQueryで一元管理しようとしているため、過去に使われていたクエリの絞り込み条件を移植し、それぞれの絞り込み条件でPV数とUU数をひたすらチェックするという面倒くさい作業をしています…

【Python】音楽ブログをFC2からはてなに移転しました

音楽ブログをFC2ブログからはてなブログに移転しました。 sakana38.hatenablog.com 最近のFC2アカウントの凍結騒ぎ等、FC2がいろいろとキナ臭そうなので。Amazonリンクが使えなくなったりと、年々サービスとして使いづらくなってましたし。 news.yahoo.co.jp…

【プリパラAdventCalender】Pythonの画像処理でプリチケのQRコードを隠せるかどうか試してみた

プリパラ &amp; プリティーリズム Advent Calendar 2015 - Adventarの3日目です。 プリチケの写真を撮ったら、自動でQRコードをかわいく隠してくれるアプリがあると便利だよねって記事です。 プリチケの写真ファイル(png形式)を指定すると、自動でQRコードを…

【Python】Pelican + GitHub Pagesでプロフィールページを作ってみました

Python製の静的サイトジェネレーターPelicanを使って、github.ioのページを作ってみました。 https://takeshi0406.github.io/ ほぼこのページの通りにやっただけです。 Pelican + Markdown + GitHub Pagesで管理するブログの作り方 - blog@sotm.jp 似たよう…

【Ruby】Effective Rubyの項目19 『ruduceを使ってコレクションを畳み込む方法を身に付けよう』のメモ

普段はPythonユーザーなのですが、仕事ではRubyを扱う機会が増えてきました。 Perlから受け継いだTMTOWTDIの思想とか、書いてて勉強になり、楽しい言語です。 関数の定義に必ずしも()が必要なく、関数が変数と同じように扱えるところとか、 「ここインスタン…

【Python】Twilog + Pythonで他人の過去の全ツイートを取得するコード

statsbeginner.hatenablog.com を書いている方がいたのですが、BeautifulSoupとリスト内包表記を使えばもう少し楽に書けるということを示すために書きました。 参考資料 PythonとBeautiful Soupでスクレイピング - Qiita import time from urllib import req…

【TODO】やることリスト

先にやるべきことが色々あるから、忘れないうちにメモしておく。 メタ規範ゲームを実装してみる これを kiito.hatenablog.com これを基に実装し直す(日本語の論文があってよかった) ci.nii.ac.jp prrrを見てみる Rキチガイの先輩にHaskellやってるって言っ…

【ABM】鳥海先生のメタ規範ゲームの話を聞いて、実装しようとしてみた(いくつかわからない点があるけど)

@zaoriku0さんから鳥海不二夫先生がされていた発表の話を聞きました。SNSが流行るかどうかの必要条件を、ゲーム理論を使って説明できないか、という趣旨の研究のようです。 社会シミュレーションの先駆者のAxelrodの論文が基になってるようです。 SNS とゲー…

【R】Rで関数型プログラミング

R

最近Rを使っていて、dplyrなどの強力なパッケージで気軽にデータの成形ができることに感動しています。 先輩に渡してもらったコードの中で、tidyr::spreadにデータフレームをパイプ%>%で渡し、 データの成形を一気に終わらせていて、こいつはただごとではな…

【R】SQLのクエリをいい感じに作ってくれるRの関数

R

DBにクエリを投げてテストする際、RStudioからRPostgreSQLなどのライブラリを利用すると非常に便利です。 なぜかというと、DBからの戻り値をRのデータフレーム型の変数に格納することができ、 その値をR言語の豊富な関数によって集計することができるからで…

【Python】R言語を勉強するために「言語処理100本ノック」をPythonで解いてみる

会社の先輩から「これ使ったらいい感じにデータ取ってこれるよ」と渡されたものが、 dplyrとかstringrとかよくわからないパッケージをガンガン導入した自由奔放なRのコードで困っています。 R言語自体にも慣れていないため、 「コードを使って何を表現したい…

【愚痴】新卒入社半年のへっぽこエンジニアが、来年の後輩のためにアドバイスを残しておく

へっぽこ新卒エンジニアの黒めだか(仮名)です。 情報系でない研究室から新卒で入社し、半年間IT(WEBサービス)のエンジニアとして働いてきました。 その間、社内の特殊ルールや何らかの歴史的経緯による変な設計や文化で困ることが多々ありました。 今後…