oinume journal

Scratchpad of what I learned

gcloudコマンドを使わずにGoogle Cloud Storageにファイルをアップロードする

概要 gcloudコマンドを使わずにPythonとgoogle-cloudを使ってGoogle Cloud Storage(GCS)に頑張ってファイルをアップロードしてみる。google-cloudはPython向けのGoogle Cloud Platformの何かを操作するためのクライアントライブラリ。GCPの以下の機能の操作…

2017年の進捗

2017年の抱負 - oinume journal で書いた、今年の抱負の進捗。 機械学習を学ぶ みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習 | Udemy というものをやったけど、本当にまだまだわからないことが多い。あと、自分は機械学習よりもデータ分析の方が…

MySQLのデータをJupyter Notebook上でグラフにする

最近少しずつJupyter Notebookやpandas, matplotlibに慣れてきて、PythonによるData Scienceが面白くなってきたと感じてます。今日はMySQLのデータをSQLで持ってきて、Jupyter Notebook上でグラフにしてみる話。 セットアップ Python3はインストールされてい…

Udemyがなかなかいい感じ

最近は健康のために、六本木→渋谷まで歩いて帰っているのでPodcastをよく聴くようになった。1日30分以上歩いていて、その間は暇なのでPodcastを聞いていたのだけれどPodcastが在庫切れになってしまった。どうしようかと悩んでいたところ、以前Udemyでいくつ…

go test in practice

This blog post describes basics and practical examples of go test. Go’s automated test mechanism is well designed and easy to use. I’ll show you some techniques of go test in this article. What is go test go test is a command to run automa…

Jupyter NotebookをAnacondaを使わずにセットアップする

Web+DB Press Vol.97のEmerging Web Technologies を見て、「Anacondaは別に使わなくてもいいんでない?」って思ったので、Anacondaを使わずにJupyter Notebookをセットアップしてみる。 Mac + Homebrewを使う場合だとこんな感じ。 Python3のインストール br…

読書感想「ルポ MOOCS革命」

ルポ MOOC革命――無料オンライン授業の衝撃作者: 金成隆一出版社/メーカー: 岩波書店発売日: 2013/12/26メディア: 単行本(ソフトカバー)この商品を含むブログ (8件) を見る を読んだので、メモと感想。 感想 まず「MOOCSってなに?」という状態からスタート…

お金を節約するワザ

個人的にやっているお金の節約方法をまとめてみる。 Amazonで商品をなるべく安く買う方法 Amazonギフトカードを安く買う まずはAmazonでの買い物を2〜8%安くする方法。世の中にはAmazonギフトカードを安く手に入れることができるサイトがいくつかあって、だ…

2017年の抱負

明けましておめでとうございます。いまだに年賀状に手をつけられていない怠惰な人間ですが、新年の抱負を書きます。 機械学習を学ぶ 今まで機械学習を勉強しても実践する場がなかなか見つけづらかったけど、自分で作ったサービスもあるので学んだ成果を投入…

2016年の振り返り

まずは今年の1月に書いた新年の抱負を振り返ってみる。 英語を頑張る 技術的なやり取りは苦がなくできるぐらいになっていたいなぁと。会話も文章も両方で。あとブログの英語比率を50%に持って行きたい。あと何か1冊英語の本を最後まで読む。 ブログの英語比…

2016年に読んだ本

本当は「2016年に買ったもの」という記事を書こうと思ったけど、日用品以外で買ったものがあまりなかったので読んだ本(技術書以外)を晒してみる。 ヒューマンエラーを防ぐ知恵 ミスはなくなるか ヒューマンエラーを防ぐ知恵 ミスはなくなるか (朝日文庫)作者…

Herokuの好きなところ

これはHeroku Advent Calendar 2016の13日目の記事です。個人的にHerokuを使い続けてはや3年。仕事でヘビーに使っているわけではないけど、Herokuの好きなところを挙げてみます。 ディプロイが楽 ディプロイがgit push heroku masterで済むのは本当に楽。一…

WebアプリケーションのE2EテストをGoで書く

これはGo Advent Calendar 2016の18日目の記事です。今回はGoでE2Eテストを行うためのライブラリagoutiについて書きます。 GoでE2Eテストを書く理由 WebアプリケーションのサーバーサイドをGoで書いている場合、GoでE2Eテストを書くメリットとして JavaScrip…

Better Heroku Schedulerを探したらCustom clock processesにたどり着いた

これはHeroku Advent Calendar 2016の11日目の記事です。 HerokuではHeroku Schedulerというcronのようなサービスがあるのですが、使い込むうちに「Daily, Hourly, Every 10 minutesの単位でしかジョブを動かせない」という制限がつらくなってきたので、より…

mysqldumpで特定のレコードだけエクスポートする

忙しい人向けまとめ mysqldumpの--whereオプションを使うと特定のレコードだけmysqldumpできる --whereにはLIMIT句も指定できる --whereオプションで大量のデータから一部だけをmysqldumpすることが可能 本文 mysqldump、データだけエクスポートしたりCREATE…

新しいMacで設定している項目 - macOS Sierra編

Mac

5年間MacBookPro 13-inch, Early 2011のRetinaじゃないヤツをSSD変えたりして延命しつつ使ってたのだけど、さすがに限界だったので新しいMacBookPro 13inch Retina のTouchBarなしモデルを買った。 Apple MacBook Pro 256GB SSD 13インチ Retina Displayモデ…

DMM英会話でお気に入りの先生の空きレッスンがあった時にメール通知するlekcijeというサービスを作った

www.lekcije.com lekcijeという、DMM英会話で講師に空きレッスンがあった時にメール通知するサービスを作った。もともとは下記で書いたものがベースになっていて、これに画面を付け足したという感じ。毎日家に帰ってから自分の空き時間でチマチマ作っていた…

コードリーディングのためのIntelliJ IDEAショートカット

自分がソースコードを読む時によく使っているIntelliJのショートカット集。もちろんWebStormやAndroid StudioなどIntelliJシリーズなら全部使えるはず。他にもこんなのがあるよ、というのがあればコメントとかTwitterで教えてもらえると嬉しい。ちなみにショ…

VPSをConoHaからVultrにお引越し

VPS

昔はブログ用のWordPressをホスティングしていたVPS、今ではもうリダイレクトするためだけにNginxを動かしているだけなので、$5で1CPU, 768MBとそこそこのスペックなVultrに引っ越してみた。以下はUNIX Benchの結果。たいしたことしなければ速度的な不満はな…

HerokuでMySQL 5.7系を使う方法

JawsDBというaddonを使うともれなく5.7系のMySQLが使える。2016年9月現在だと5.7.11。 elements.heroku.com HerokuのデフォルトのデータベースはそもそもPostgreSQLで、MySQLを使いたい場合はこのJawsDBもしくはClearDBの2者択一なんだけど、ClearDBの方は5.…

Arguments to defered functions are evaluated when the defer executes

The arguments to the deferred function (which include the receiver if the function is a method) are evaluated when the defer executes, not when the call executes. Effective Go - The Go Programming Language I sometimes make a mistake that d…

会社のITシステムで良かったところまとめてみた

今まで勤めてきた会社で良かった社内のITシステム(?)を思い出してみた。 BYOD (Bring Your Own Device) 会社用の携帯を別途支給されるのは携帯の2台持ちになってしまってつらい。2台持ちのつらいところは 単純に邪魔 2台あると紛失するリスクも2倍 2台あると…

3 things I do after installing Nodejs

Installing latest npm $ npm install -g npm@latest Disabling npm’s progress bar Disabling progress bar for faster npm install. $ npm set progress=false See Progress bar noticeably slows down npm install · Issue #11283 · npm/npm Installing n…

Go Tip: Don't take the address of loop variable

stackoverflow.com If you take the address of loop variable, it may cause a bug which all values are same. You might expect following program prints 5 10 15 but it prints 15 15 15. That’s because loop variable v is initialized just once. pa…

First loaded configuration becomes default_server in nginx

How nginx processes a request server { listen 80; server_name example.org www.example.org; ... } server { listen 80; server_name example.net www.example.net; ... } server { listen 80; server_name example.com www.example.com; ... } In this …

Sorting processes by memory usage

$ ps aux --sort -rss Sorted by ascending order if you don't add -. alvinalexander.com

Making an enviroment to learn ES6 with babel

This is a just memo for me who is a beginner of front-end development.

Tokyo Developers Meetup 17に行ってきた

www.meetup.com こんなイベントがあることを知って行ってきました。最初はボッチで同じテーブルの人も話しかけてくれないし、開始10分ぐらいでもう帰ろうかと思ったけど、自分から "This is the first time to come here. May I introduce myself?" と言って…

MySQL Casual Talks vol.9でしゃべってきた

表題の通りでMySQL Casualで「カジュアルに本番データを開発環境に入れる」というタイトルで発表してきました。 カジュアルに本番データを開発環境に入れる #mysqlcasual from Kazuhiro Oinuma 当日はカジュアルウォーターを飲んでしまい発表時に顔が真っ赤…

2016年の抱負

明けましておめでとうございます。今年もよろしくお願いします。 ということで、新年の抱負を書きたいと思います。昔は抱負を考えたりするのは好きじゃなかったのだけど、去年やってみて食わず嫌いだということがわかったので今年も抱負を掲げてみたいなと思…

2015年振り返り

2015年はざっくり言うとこんな感じだったと思う。 * 2014年の夏から作り続けていたサービスが3月にローンチできた * 英語の勉強を本格的に始めた * 2年ぶりに趣味プロダクトを作った * 初心に帰ってアルゴリズムの勉強を始めた

Heroku Schedulerやcronが正常に稼働しているかをチェックするDead Man's Snitchが便利

これはHeroku Advent Calendar 2015 21日の記事です。今回はHeroku Schedulerを監視するDead Man's Snitchというものを紹介します。 Heroku Schedulerってなに? Heroku上で特定のスクリプトやコマンドを動かすcronみたいなもの。「みたいなもの」というのは…

dmm-eikaiwa-tscにバグ

以前紹介したDMM英会話でお気に入りの先生の空きレッスンが登録されたらメールで通知するヤツにバグがあったので、使っている人がいたらアップデートお願いします。 バグの内容はレッスン講師のスケジュール表に「休講」というステータスが出現したため、ス…

Parsing MySQL's URL in Python3

Just add urllib.parse.uses_netloc.append("mysql") if you want to parse URL such as mysql://root:pass@localhost/demo. #!/usr/bin/env python import urllib.parse urllib.parse.uses_netloc.append("mysql") if __name__ == "__main__": url_str = "m…

DMM英会話でお気に入りの先生の空きレッスンが登録されたらメールで通知するヤツ作った

DMM英会話でお気に入りの先生の空きレッスンが登録されたらメールで通知するヤツ作った。同期としては、人気のある先生はすぐ予約が埋まっちゃう、でもスケジュールをいちいち検索してチェックするのはダルい、という感じ。

まだ3大キャリアSIMで消耗してるの?MVNOのススメ

Docomo iPhone6 + IIJ mioに乗り換えてから3ヶ月ぐらいたったのでその使用感をば。結論から言うと今すぐキャリアSIMやめてMVNOに切り替えた方がいいと思う。 料金が安い SoftbankからIIJ mioに切り替えてから、月々の利用料金が約半額になった。具体的には、…

Amazon RDS for Aurora 東京ローンチ記念セミナー

Auroraの検討を導入していることもあり、11/10のAmazon RDS for Aurora 東京ローンチ記念セミナーに行ってきたのでそのメモ書きと感想。 Debanjan Saha, GM, Amazon Aurora Auroraチームの人。AuroraはAWS史上最速で成長しているサービスと言っていた。 エン…

MySQLでbulk insert + on duplicate key updateしたい

MySQLでINSERT INTO hoge VALUES (...), (...), (...) のBulk insertでon duplicate key update(すでにレコードがあったらUPDATEで上書きする)って併用できるのかな?っていうのが気になったので調べてみたらVALUES関数を使ってできるみたい。

ターミナルとキーボードだけでプルリクエストを送る

Git

これはSending pull-request only with terminal and keyboardの日本語の記事です。 必要なもの Mac Terminal hub command (brew install hubでインストールしておく) How to send pull-request ブランチを作る $ git checkout -b new-cool-feature ソースを…

Sending pull-request only with terminal and keyboard

Sending pull-request only with terminal and keyboard. Mac, Terminal and hub command are required.

Logging into dmm.com by Selenium

I use Selenium to log into dmm.com because dmm.com requires JavaScript enabled browser. Here is a sample code. You can see Firefox is launched and automatically logging into dmm.com if you use Firefox instead of PhantomJS. login_dmm.py #!/…

Get auto increment values from MySQL information schema

Information schema is metadata about MySQL. We can obtain useful information from it. For example, I get current auto increment values by following SQL. SELECT t.table_name, t.auto_increment FROM information_schema.tables AS t WHERE t.tabl…

最近のインプット

最近読んで面白かったブログとかYouTubeとかPodcastの紹介。 Talk Python To Me talkpython.fm Pythonのpodcast。SQLAlchemyやrequestsなどめっちゃ使われているライブラリの作者が登場していて面白い。「SQLAlchemyはHibernateの影響を受けている」とか作者…

What I read, watched, listened recently

dotGo 2014 - Andrew Gerrand - 5 things I love Andrew Gerrand is a Googler and worked for Go. I watched this video just to learn English but it was good that he was describing Go's feature very well. www.youtube.com Golang UK Conference 201…

Ansible Meetup in TokyoでLTしてきた

「Vagrant環境のAnsibleを速くしたいというタイトル」でAnsible MeetupでLTしてきました。資料はこちら。 Vagrant環境のAnsibleを速くしたい from Kazuhiro Oinuma もともとは、「Ansible Meetup 行きたいなー。でももう埋まってるなー」から「LT枠に空きが…

Duplicating a MySQL table schema and data

Duplicate foo table into foo_20150904 /* Create a new table from foo's schema */ > CREATE TABLE foo_20150904 LIKE foo; /* Insert whole data into a new table */ > INSERT INTO foo_20150904 SELECT * FROM foo;

Detecting duplicated code in Golang with CPD and Jenkins

Use CPD to detect duplicated code in Golang. And visualize how much duplicated by Jenkins DRY plugin.

YAPC::Asia 2015に行ってきた(2日目)

前夜祭、1日目のエントリ YAPC::Asia 2015行ってきた(前夜祭) - oinume journaloinume.hatenablog.com YAPC::Asia 2015に行ってきた(1日目) - oinume journaloinume.hatenablog.com ちなみにトークはYouTubeにアップロードされる予定だそうなので、正座して…

YAPC::Asia 2015に行ってきた(1日目)

1日目感想 遅刻してしまいLarry Wallの話が聞けなかったのが一番悔やまれるところだったけど、他の聞きたいトークは全部聞けたし、前夜祭で初めて話したnekogataさんのトークがすごく良くて、さらにその後懇親会でも話せたのですごく嬉しかった。YAPCは毎年…

YAPC::Asia 2015行ってきた(前夜祭)

今年でJPA主催のYAPCは最後ということで、いつもは前夜祭は参加しないのだけれど行ってきた。 最初に聞いたのは @hsbt さんの言語開発の現場という話。Rubyはリリース作業が特に大変だと言っていた。自動化したくてもなかなか面倒くさいものなのかなぁ。Ruby…