TouchBar有りのMacBook Pro13 inch買いました。macOS Sierraになったんですが、githubへpushする時など、KeyChainがsshの秘密鍵のパスフレーズを覚えてくれなくなりました。

下記でplistに設定を追加すればよいようです。

$ curl -o ~/Library/LaunchAgents/ssh.add.a.plist https://raw.githubusercontent.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain/master/ssh.add.a.plist

ssh-agentにキーを登録する。

$ ssh-add -K ~/.ssh/id_rsa

僕が断念していたこの問題。

gakubuchi gemが落ちる - komagataのブログ

@tkawa さんのIssueきっかけに @_yasaichi さんが直してくださったそうです。

sprocketsなど追えてないのですが、ActionView::Base#asset_digest_pathに問題があったようです。

無事僕のcapistrano deployも落ちなくなったようです。ありがたい!

今週月曜日から弊社にフレッシュなローカルインターン生K氏が来てくれています。

弊社のインターンシップへの取り組みについて « FJORD, LLC

リモートインターンは何人かいますが、現在、オフィスに来てやるローカルインターンは1名なので、一緒に勉強する人がいると切磋琢磨してやりやすいんだけどなーと残念に思います。

最近はMF社など他の会社を受けた方が、いい人だけどrailsのスキルが足りないので、名指しで

「フィヨルド(弊社)で勉強してくれば?」

と紹介されてくるケースが多いです。

弊社も儲かるわけじゃないのに何やってるんだろうと思わなくはないですが・・・。

弊社のカリキュラムの特徴はrailsの前にnginx, mysqlを使ってのLinuxサーバー構築とそこへのrailsアプリデプロイが含まれてるところです。

まだオフィスの席に空きがありますので、rails勉強したい方は是非。

β版として誰でも使える状態みたいです。

https://gyazo.com/9ef1222e2ce899889de22b3ee9be6f0d

asia-northeast1ってのが東京リージョン。

GAEがどのくらい速くなってるのか期待です。

qiita-markdownを含んだGemfileをHerokuにpushするには - Qiita

こちら、HerokuのBuildpackの仕組みが環境変数ベースのものからちゃんとしたサブコマンドが用意されたのでそちらを使わないと動きません。

Buildpacks | Heroku Dev Center

素の状態だとqiita-markdownが依存してるcharlock_holmesruggedがインストールできません。

rugged

cmakeが必要なのでcmakeを入れてくれるbuildpackを入れます。

$ heroku buildpacks:add --index 1 https://github.com/rcaught/heroku-buildpack-cmake

charlock_holmes

libicuが必要なため、Aptfileに書いたライブラリをapt-getでインストールしてくれるbuildpackを使います。

$ vi Aptfile 
libicu52
libicu-dev
$ heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-apt
$ heroku buildpacks
1. https://github.com/heroku/heroku-buildpack-apt
2. https://github.com/rcaught/heroku-buildpack-cmake
3. heroku/ruby

aptが使えるならいろいろやりやすそうです。

日本語変換の話です。

日本語の変換って、「こまめに決定していく派」と「一気に打って後で変換していく派」があると思います。

僕は前者です。これは日本語変換が賢くない時の癖で、変換対象の文が長い方が予測も効きやすいはずで、後者に変えたいんですが、後者の方法だと不可能なパターンがある気がしてならない。

それが「csvをgz圧縮」できない問題です。

Google日本語入力とことえり両方で駄目でした。

そもそも後者の人はたくさんいるんだろうか。そしてみんなどうやって対応してるんだろうか。

railsのcreated_atupdated_atnot nullなので「無くてもいいけどあってもいい」かな?ぐらいのときに面倒。

他からデータを入れる時に困る。

embulk-filter-add_timeプラグインで追加できる。

$ embulk gem install embulk-filter-add_time
in:
 ...

filters:
  - type: add_time
    to_column:
     name: created_at
     type: timestamp
    from_value:
     mode: upload_time
  - type: add_time
    to_column:
     name: updated_at
     type: timestamp
    from_value:
     mode: upload_time

out:
  ...
sudo apt-get install openjdk-8-jre-headless

やりたいこと

BigQueryに日別に集計結果のログテーブルを作っています。

例:logs_20160101

その集計結果をCloud SQLに追加したい。

例:logs

日次バッチで動かしていて、毎日BigQueryから集計結果をCloud SQLのlogsテーブルに追加したい。

  • 今日:logs_20160101(BigQuery) -> logs(Cloud SQL)
  • 明日:logs_20160102(BigQuery) -> logs(Cloud SQL)
  • 明後日:logs_20160103(BigQuery) -> logs(Cloud SQL)

やろうとしたこと

BigQueryからGoogle Cloud Storage(GCS)にCSVファイルでエクスポートして、Cloud SQLにインポートする。

$ bq extract datasetname.logs_20160101 gs://bucket-name/logs_20160101.csv

BigQueryからGCSへのエクスポートはできた。

しかしCloud SQLにCSVでファイルを読み込むことができない。

ローカルでmysqlimportを使うバターン

$ gsutil cp gs://bucket-name/logs_20160101.csv /tmp/logs_20160101.csv
$ mysqlimport --fields-terminated-by=',' -hxxx.xxx.xxx.xxx -uroot -ppassword database_name /tmp/logs_20160101.csv
mysqlimport: Error: 1045, Access denied for user 'root'@'%' (using password: YES), when using table: logs

権限が無い。

ローカルでmysqlクライアントからLOAD DATA INFILEを使うパターン

mysql -uroot -ppassword -hxxx.xxx.xxx.xxx database-name
mysql> LOAD DATA INFILE '/tmp/logs_20160101.csv' INTO TABLE logs;
ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)

権限が無い。

mysqlimportとLOAD DATA INFILEはmysqlのFILE権限が無いとできない。しかしCloud SQLではその権限が無い。権限付与ができない。

LOAD DATA LOCAL INFILEを使うパターン

mysql> LOAD DATA LOCAL INFILE '/tmp/logs_20160101.csv' INTO TABLE logs;
ERROR 1148 (42000): The used command is not allowed with this MySQL version

このmysql versionでは使えない。

CSV以外のフォーマットを使う方法

mysqldump形式やSQL形式のファイルをインポートする方法はいくつかありそうだが、BigQueryではそれらの形式でのエクスポートはサポートしていない。

その他

Cloud ConsoleのGUIではインポートできるが、バッチで実行するのには使えない。

最終手段は普通にAPIを使うプログラムを書くというものだが、「Cloud SQLでCSVインポートぐらいできないわけがない」という思いがあり、踏み出せない。

Stack Overflowに投稿してみた。しかし英語で伝えられてる気がしないので状況の整理の意味も込めてブログにも書いてみました。

How to import table from BigQuery to Cloud SQL - Stack Overflow

あれ、マニュアルにはあるのにWITHが使えない。

WITH foo AS (SELECT 1) 
SELECT * FROM foo
Error: Encountered " "WITH" "WITH "" at line 1, column 1. Was expecting: <EOF>

デフォルトではLegacy SQLを使うようになってるのでチェックを外す。

https://gyazo.com/394944bcc66ca708e13f011bbc5c17da

https://gyazo.com/b9332c4ee87f5a910a66202dd345e7b5

Yes.

TIL: Dialect = 方言