爆速で成長していた、ベンチャー企業ピクシブ 面接の時の話はこちら=>ピクシブに入るときの話 そんな訳で、ピクシブでアルバイトとして働くこととなった私は、初出勤の日を迎えた。 (↑ピクシブのユニークなオフィス) ほぼ何も分からず始まった開発 プログラミングスキルはほぼ無く、やることも決まっていなかった私は、早速開発の統括をしていたCTOの青木さんからの指示を仰いだ。
よくMySQLはゆるふわだから 値が勝手に切り詰められる エラーが起きずに変な値/日付が入る 不正なスキーマが入ってしまう など言われることがあります。ただそれは、そもそもの設定が悪いのです。(確かに昔デフォルトがゆるふわなのはいけなかったんですが) ということで、データベースには不正な値が入らないように設定はとにかく厳しくしておくのがオススメです。 じゃあどうするか。 MySQLはSQL Modeによって、その辺りの制約をコントロールすることができます。以前、MySQLのsql-modeで一番厳しいやつはTRADITIONAL、というのを書いたのですが、実はそれだけでは不十分で、TRADITIONAL,NO_AUTO_VALUE_ON_ZERO,ONLY_FULL_GROUP_BYとするのがより安心なようです。 これはkamipoさんに教えてもらいました。 @songmu TRADITI
インスパイア元→kamipo traditional (というかSTRICT_ALL_TABLES) では防げないMyISAMという名の化け物 タイトルが全てです。ピンときた方は読み進む必要はありません。 データがなかったらINSERTして欲しいけど既に入っている場合には何もして欲しくないみたいな処理をするときに、 INSERT IGNORE を使ってしまうことがありますが、 INSERT IGNORE はユニークキー制約違反だけじゃなくて、あらゆるエラーをIGNOREしてしまいます。つまりkamipo TRADITIONALすらIGNOREしてしまうのです。なので使わないほうが安全です。 様子です。 mysql> SET SESSION sql_mode='TRADITIONAL,NO_AUTO_VALUE_ON_ZERO,ONLY_FULL_GROUP_BY'; Query OK, 0
kamipo traditional (というかSTRICT_ALL_TABLES) では防げないMyISAMという名の化け物 TL;DR kamipo traditionalですら完全に防ぎきれないアレがあるので、そこを気にするなら出来る限りさっさとMyISAMからInnoDBに引っ越しましょう。 これらの記事を読んだ人向けです。 ルーク!MySQLではkamipo TRADITIONALを使え! | おそらくはそれさえも平凡な日々 Javaでkamipo traditionalを有効にする - その手の平は尻もつかめるさ アプリでミスって不正なデータが入るくらいだった500になったほうがマシ。というのが個人的な考えです。 +激しく同意+ さて、激しく同意したところで、kamipo traditionalでは倒せないMyISAMという名の化け物の話をしたいと思います。 kamipo tr
この記事は京都開発拠点アドベントカレンダー 18日目の記事です。 マネーフォワードには開発拠点が複数ありますが、技術情報はSlackで議論・共有されています。 今日はそんなSlackの中から、東京拠点と京都拠点を跨いで開催した「Railsへコントリビュートする勉強会」について、東京拠点のアルパカ隊長が紹介します。 はじまりのSlack ふとした時に、社内SlackのRubyチャンネルでこんな会話がありました。 @alpaca-tc 程よい難易度で、kamipoさんが「これ自分がやらんでもええやろ」みたいなissueがあれば このslackに投げてもらって 誰かシニアエンジニアがサポートしつつ、新卒がRailsコントリビュートするみたいなのやりたい:eyes: すると、kamipoさんからすぐ解決できるものは見た瞬間に直してしまっていると前置きがあった上で、 こんなissueを教えてもらいま
発端 @Kamipo 2014-04-22 21:06:52 via Twitter for Mac to @kamipo @sugyan 2014-04-22 21:06:57 via YoruFukurou to @sugyan @KAMIPO 2014-04-22 21:10:34 via Twitter for Mac to @kamipo @kamipO 2014-04-22 21:10:59 via Twitter for Mac to @kamipo @kamIpo 2014-04-22 21:11:04 via Twitter for Mac to @kamipo @kAmipo 2014-04-22 21:11:10 via Twitter for Mac to @kamipo @KaMiPo 2014-04-22 21:11:33 via Twitter for Mac
kamipo traditional については以下の記事が詳しい. ルーク!MySQLではkamipo TRADITIONALを使え! | おそらくはそれさえも平凡な日々 ところでこれをJava,というかJDBCで有効にするには以下のように書いてやるとよろしい. try (final PreparedStatement preparedStatement = connection.prepareStatement( "SET SESSION sql_mode = 'TRADITIONAL,NO_AUTO_VALUE_ON_ZERO,ONLY_FULL_GROUP_BY';")) { // This is "kamipo TRADITIONAL". More strict, healthy, nice. // https://github.com/kamipo/etcfiles/blob/
さて2015年も暮れになってきましたので,各位に於かれましては常識の如く kamipo TRADITIONAL を有効にしていることと存じます. kamipo TRADITIONAL とはなんぞや,という方は以下のエントリが参考になりますからご一読下さい. さて Java で kamipo TRADITIONAL を有効にするテクについては 上記のエントリで紹介したわけですが,21世紀の我々には文明があるので connection pooling というものを使う (あるいは使えと言われる) ケースが多くなっております. ということで HikariCP を使うわけですが,この時に kamipo TRADITIONAL をどう設定するのかという話題があります.connection を borrow する度に sql mode を set するというのも渋いので,以下のようにしてやるとよろしい
さまざまな企業で働くエンジニアとリレー形式で対談を行うDevRelay。トレジャーデータの @kamipo こと上薗竜太氏に引き続きインタビューします。今回は、一部で伝説となっている「金髪の神エンジニア」評に関して「意外な事実」を伺いました。この対談は、3部構成(vol.10・vol.11・vol.12)でお届けします。 DevRelay全25回はこちらからご覧いただけます 仕事として「当たり前のこと」を言っていただけ idesaku:私の中で、kamipoさんが他の方と仕事をされる際のイメージは、3年ほど前に大量のはてブを獲得した「ピクシブでの開発 – 金髪の神エンジニア、kamipoさんに開発の全てを教わった話」なんですけれども。ああいう形でのエンジニア教育みたいなことには、今の会社でも関わられているんですか。 kamipo:あー、ありましたね。あれは僕もピクシブを辞めて結構経ってたこ
2017.08.18 週刊Railsウォッチ(20170818)RailsとYarnでTypeScript、Rails新コミッタにkamipoさんも、CSVにSQLクエリをかけられるツールほか こんにちは、hachi8833です。octotreeといういいものがあるのを知らずにGitHubで毎回真正面からディレクトリ掘ってました。 お盆明けのRailsウォッチ、今週は軽めの構成です。それではいってみましょう。 Rails: 🎉🎉 新committerが3名: kamipoさんも(Rails公式ニュースより)🎉 🎉 発表: Three new committers: George, Javan, Ryuta committer入りした3名様、お疲れさまです&おめでとうございます! George Claghorn: Active Storageほか Javan Makhmali: Ja
README.md ISUCON5 予選リポジトリ ISUCON5 予選マニュアル(含レギュレーション詳細): https://gist.github.com/tagomoris/1a2df5ab0999f5e64cff ISUCON5 予選用イメージ(2日目版) https://storage.googleapis.com/isucon5-images/isucon5-qualifier-4.image.tar.gz gs://isucon5-images/isucon5-qualifier-4.image.tar.gz 予選は参加者、ベンチマークノード共に Google Compute Engine n1-highcpu-4 をインスタンスタイプとして指定。 補足事項 apt-get upgrade すると再起動後に正常動作しなくなります (詳細はこちら) 「Java, Golangに
% rake test_mysql2 --verbose /Users/kamipo/.rbenv/versions/2.2.3/bin/ruby -w -I"lib:test" -I"/Users/kamipo/.rbenv/versions/2.2.3/lib/ruby/2.2.0" "/Users/kamipo/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/rake_test_loader.rb" "test/cases/adapter_test.rb" "test/cases/aggregations_test.rb" "test/cases/ar_schema_test.rb" "test/cases/associations/association_scope_test.rb" "test/cases/associations/belong
$ rails new ~/work/foo --edge -d mysql (snip) $ cd ~/work/foo # modify to `encoding: utf8mb4` $ vi config/database.yml $ rake db:create db:migrate rake aborted! ActiveRecord::StatementInvalid: Mysql2::Error: Specified key was too long; max key length is 767 bytes: CREATE UNIQUE INDEX `unique_active_record_internal_metadatas` ON `active_record_internal_metadatas` (`key`) /Users/kamipo/work/foo/vend
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く