猫でもわかるWebプログラミングと副業

本業エンジニアリングマネージャー。副業Webエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

MySQL 5.7のマルチソースレプリケーションを活用する - 無停止でシャーディングを解消

はじめに この記事は ドワンゴ Advent Calendar 2017 - Qiita の15日目の記事です。 昨日の記事は ytanaka さんの Goadを使った負荷試験とパフォーマンス分析手法について - Qiita でした。 自己紹介 ドワンゴでニコニコ動画の開発をしています。 *1 去年も…

PHP の composer で remove する時にパッケージの依存関係も含めて remove したい

PHP

状況 composer remove --update-with-dependencies でもだめだった 一番確実なのは composer.lock を作り直すことだが... ただ、バージョンが固定されておらず composer.lock を簡単に消せないことも ではどうすればいいのか composer.lock を読む どうやっ…

TypeScript 1.5 から internal modules の名前が "namespace" に変わったらしい

A note about terminology: It’s important to note that in TypeScript 1.5, the nomenclature has changed. “Internal modules” are now “namespaces”. “External modules” are now simply “modules”, as to align with ECMAScript 2015’s terminology, (n…

ニコニコ動画は動画の時間とコメントが紐付いているのでそれを解析したら何かできないかなという話

ニコニコ動画とYouTubeのコメントの違い ニコニコ動画とYouTubeのコメントの違い、、、ニコニコ動画は画面の上にコメントが流れる、だけでなく、動画の時間とコメントが紐付いているのが面白いです。YouTubeは動画自体にコメントするのに対して、ニコニコ動…

Code Quest 連鎖ノ試練(しりとり問題)をクリアする

Code Quest 前にも書いたCode Quest、今回は連鎖ノ試練を解いていきます。 geek-out.jp 連鎖の試練 与えられた単語の中からしりとりをできるだけ長く繋ぐようにします。 しりとりはグラフで解ける しりとりは、ノードが文字、エッジが単語のグラフで書けます…

JavaScriptのundefined判定、jQueryのdomが見つからなかった時の判定

Javascriptのundefined判定 if(hoge === undefined) { // } ただし、 undefined の再定義ができるので、注意が必要だが、普通そんなことしないので、基本的には undefined と === 比較したらいいと思います。 例えば行かのようにundefinedの再定義ができます…

Ansibleで構築したVagrant上のLaravel環境を使ってlocal開発環境を整える

この記事の続きてきなやつです yoshiki-utakata.hatenablog.com local環境で書いたLaravelのコードをすぐにvagrant上で動作確認したい 開発しているPCにPHP7を入れるのはめんどいので動作確認はVagrant上でした 書いたコードが即VagrantのVMに反映されて動作…

Ansibleを使ってPHP7環境をVagrant上に構築してLaravelに入門

この記事は Laravel Advent Calender 2017 7日目の記事です。 昨日の記事は LaravelのControllerクラスって何やってるの? - Qiita でした Laravel DI からはじまり何もかもが揃っていてグッドなフルスタックフレームワークLaravelを使っていきましょう。Ans…

Code Quest 「毒沼ノ試練」を頑張って探索してクリアする

この記事は 〇〇勉強してみた Advent Calendar 2017 の6日目の記事です。 昨日も書いた Code Quest の記事ですが、今回は皆が一番苦戦したであろう「毒沼ノ試練」について書こうと思います。 Code Quest プログラミング学習用ゲーム的な、あるいはプログラミ…

Code Quest の「圧縮ノ試練」を何のひねりもなく頑張ってクリアする

この記事は 文字 Advent Calendar 2017 5日目の記事です。果して「文字アドベントカレンダー」に投稿していいのか、よくわからないですが、開いていたので投稿させてもらうことにしました。 一つ前(3日目)の記事 → Twitterの文字数カウントの新仕様につい…

レプリケーションとシャーディング、MySQLでレプリケーションの張り方

この記事は、 MySQL Casual Advent Calendar 2017 4日目の記事です。 1日前の記事はこちら→MySQL 8.0でカジュアルにウインドウ関数(rank, dense_rank) | キムラデービーブログ 僕の記事は、超初心者向けに、レプリケーションとシャーディングについての説明…

はてなブログのMarkdown記法で文字にリンクを簡単に貼れる方法

Markdownのリンクの記法がめんどくさい Markdownの時のリンクの記法ってど忘れしたりしません? [Google](https://www.google.co.jp/) [] と () がどっちがどっちかわからなくなったりとか...。てかそもそも書くのがめんどくさいってのがありますが、これを…

2017年QiitaのAdventCalenderにいくつか参加するのでまとめ

12/4 MySQL Casual Advent Calender 12/15 のドワンゴ Advent Calender につながる話を書く予定。基礎的な話の予定。 レプリケーション、シャーディング、gtidレプリケーション、マルチソースレプリケーション... 12/3 の間に頑張って書く 12/7 Laravel Adve…

依存性の注入(Dependency Injection 通称 DI)とはなにか - 単体テストをしやすくするための「依存性の注入」

依存性の注入、英語では Dependency Injection 、通称 DI と呼ばれる。コードを書く時に単体テストをしやすくする仕組みである。 単体テストとは ユニットテストと言われるやつです。以下のようなコードがあったとしましょう。*1 connect('book_database'); …