oinume journal

Scratchpad of what I learned

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…

Make VirtualBox's network faster with paravirtualized network adapter

virtio makes VirtualBox's network faster. In my case, it's 1.7x faster.

Building Vagrant box from VirtualBox OVF

Packer can build Vagrant box from VirtualBox OVF file.

RDS(MySQL)のバイナリログはすぐ消えるから注意

RDSではバイナリログはすぐ消えてしまう。もし自前でスレーブを立てたりするためにバイナリログをある程度とっておきたい場合はプロシージャを実行することで保持期間を伸ばすことができる。

AnsibleでPlaybook流した時のgit commit hashをファイルに出力したら捗った

「このサーバにどこまでPlaybook流したんだっけ?」みたいなことでよく悩んでいたので、AnsibleのPlaybookが入ったリポジトリのgit commit hashをファイルに出力してそれをサーバーに置くようにしてみた。 こんな感じのアクションをPlaybookに書いて簡単にで…

新年の抱負の進捗どうですか?

2015年の抱負 - oinume journaloinume.hatenablog.com こんな感じの新年の抱負を書いたのだけど、そろそろ2015年も40%経過したので進捗報告。 Dockerを実戦投入する 進捗ダメです。やっと個人でDockerを使い始めたレベル。 英語でブログエントリーを書く割合…

開発スピードと技術的負債

よくある「開発スピードを優先させるか技術的負債をなるべく発生させないようにするか」という議論、ケースバイケースだとは思うけど、ことプロダクトの立ち上げ段階では、悩んだら「開発スピード」を優先させるようにするべきだと自分は思ってる。 理由は …

Mocking a HTTP access with http.Transport in Golang

Mocking HTTP access with http.RoundTripper

Changing bower package cache directory

bower caches packages in ~/.cache/bower. How can I change the directory? bower's document says "Add the following in .bowerrc" but it's totally wrong. "storage": { "cache" : "~/.bower/cache", "registry" : "~/.bower/registry" } I try the co…

2015年の抱負

一年の計は元旦にあり、という言葉がありますがこのエントリーは1月4日に書いています。どうもこんにちは。あまり一年の目標は立てずにフラフラと生きてきたんだけど、アラフォーに近づいてきてそろそろ自堕落な生き方に危機感を覚えてきたので今年の目標を…