スマホアプリ「モンスターストライク」のサーバー負荷は、年末年始に1年のピークを迎えます。2018年元旦のサーバー負荷に立ち向かうために実施した対策の一例として、データベースサーバー(MySQL)を安全に水平分割した事例を紹介します。見積もりから計画、実施に至るまでを時系列で振り返ります。
スマホアプリ「モンスターストライク」のサーバー負荷は、年末年始に1年のピークを迎えます。2018年元旦のサーバー負荷に立ち向かうために実施した対策の一例として、データベースサーバー(MySQL)を安全に水平分割した事例を紹介します。見積もりから計画、実施に至るまでを時系列で振り返ります。
元ネタ A Survey on Real Time Bidding Advertising 気付き - DSPはSSPから広告枠を買い付けていると思っていたが、厳密にはAd Exchangeから買っているらしい。SSPと思っていたサービスのサイトをよく見ると、確かにAd Exchangeと書いていた。 - 広告主からマージンをもらって儲けるOpen DSPと、自社の様々な事業の広告を配信して事業の売り上げ増加を目指すNative DSPでは戦略が違うので、その辺りを意識してサーベイする必要がある。 メモ RTB広告の成長 - 2017年にはディスプレイ広告予算の29%を占める見込み - 昔: プレミアムな在庫はオフラインで、残りはRTBで - 最近: プレミアムな在庫もRTBで DSPでは効率的な入札アルゴリズムが重要 - 最適な広告を選択する - 最適な入札額を決める DSPが目指すパフ
今週の Vim の細道見てて neosnippet で困った挙動があるのを思い出して、重い腰上げて help 見て設定したら解消した。 <Tab> にこんな感じで割り当ててたけど imap <expr> <Tab> neosnippet#expandable_or_jumpable() ? \ "\<Plug>(neosnippet_expand_or_jump)" : "\<Tab>" smap <expr> <Tab> neosnippet#expandable_or_jumpable() ? \ "\<Plug>(neosnippet_expand_or_jump)" : "\<Tab>" これだとプレースホルダーがある時に <Tab> を押すとジャンプよりも展開を優先してしまう。 func<Tab> で展開した後、以下で <Tab> を押すと path が現在のファイルのパスに展開
こんな感じに使う。 package main import ( "errors" "fmt" ) func main() { fmt.Println("start") if err := f(); err != nil { fmt.Println(err.Error()) } fmt.Println("end") } func f() (err error) { fmt.Println("f() start") g := &Guard{} defer func() { err = g.Rollback(recover()) }() g.Add(func() { fmt.Println("rollback 1") }) // if true { // panic("panic!") // } g.Add(func() { fmt.Println("rollback 2") }) // oop
まとめNuxt は route に応じて自動で Vuex Store を module 分割できるが、あえて手動で registerModule することもできるmodule 分割の際に大事なのは namespaced 設定state を function にregisterModule はすでに存在する module を上書きしてしまう(壊れる)Store は SSR での扱いに注意が必要。不要なら beforeMount() 以降のタイミングで初期化することでサーバサイドでは無視されるようにすることができる。Vuex Storeのmodule分割の基本cf. モジュール · Vuex 基本的な Vuex Store の構造は
今日マネージドクラウドの正式版リリースがされました。 mc.lolipop.jp 前々から(使う側として)目をつけていたサービスの開発チームにまさかJOINできるとは思っていませんでした。 たった1ヶ月半で、何も知らないところから、技術面にもビジネス面にもいろいろ関わらせてもらい、新しい挑戦も さらに失敗まで 経験することができました(当然チームメンバーのリカバーがありました)。 本当に濃すぎる。 これからやりたいことももっと良くするためにやるべきこともたくさんあります。 マネージドクラウドも、今でも「使える」「楽ができる」良いサービスですが、アーキテクチャを知っている立場からすると、実はまだまだ追加で面白くできそうな要素があります。 自分ですら思うのですから他のメンバーはもっと思っているでしょう(逆に収束させるのが難しいくらいで困る)。 新しい技術だから夢が広がるのはしょうがない。 とこ
golang の html/template について書かれたブログ等を色々見ていると、みんなレイアウトとコンテンツの分離に苦労している感があったのでどうやるか書いておきます。 t.ExecuteTemplate(w, "content", data) Go の html/template はテンプレートの名称を指定して ExecuteTemplate を実行します。しかし html/template には、その content を囲う layout テンプレートを指定する方法がありません。特に以下の様に ParseGlob を使った場合、各 html で同じ content という名前で define する事は出来ません。 template.ParseGlob("public/views/*.html") やりたいのは layout というテンプレートの中から content という名称
TypeScriptのリファクタリングに興味がでてきていろいろ調べていた.ASTでリファクタリングやってる知見ないですかって聞いたら,tslint --fixの仕組みに乗っかると楽ではって意見をもらって,やってみたら簡単だった. ふだん触ってるプロダクトではjQueryだんだん脱出しようと思っていて,JQuery型で受け取ったりプロパティとしてJQuery型で保持していたら怒るのを作ってみた.HTLElementにしましょう!って案内してくれる.JQuery型で受けてるのをHTMLElementにすると当然動かなくなり,コーディング規約にあわせてfixするとかができなくなるので不便.次はtscodeshiftで書き換えるのをやってみようと思う. gist.github.com よく寝た!!!!!!!!と起きたら2時半だった— 趣味はマリンスポーツです (@hitode909) 2018年4
_ ヘッドレスChromeでPDF HTMLからPDFを生成する必要があって、以下の方法を考えた。 Edgeに該当URIを叩かせて、プリンタドライバにMS純正のPDF出力を設定しておいてJavaScriptでprintを呼び出す。 で、これが確実に動くのはわかっているのだが、実行環境がGNU/Linuxなのでどうにもならない。 Firefoxはapt-getで入れられるのでメンテナンスが楽そうだが、PDFに出力する簡単な方法が考え付かない。 しょうがないので、ヘッドレスChrome(頭があって手足がないが正解な気がするが本人がヘッドレスを名乗っているのだからまあ良いのだろう)を使うことにした。 Chromeはapt-getはできないが、debが用意されているから我慢する(のだが、今、あらためてみると、どうやってdebをダウンロードしたのかまったくわからない。どうあってもWindows版をダ
Russia Bans 1.8 Million Amazon and Google IPs in Attempt to Block Telegram ロシアはインスタントメッセージングサービスのTelegramをブロックするため、AmazonやGoogleの所有する約180万ものIPアドレスをブロックした。 以下がそのIPアドレスの範囲で、1835008個のIPアドレスになる。 52.58.0.0/15 18.196.0.0/15 18.194.0.0/15 18.184.0.0/15 35.156.0.0/14 35.192.0.0/12 Telegramの創始者は以下のような声明を出したそうだ。 Telegram: Contact @durov 過去24時間でTelegramはロシアのISPによってBANされた。理由は我々が暗号鍵をロシアの諜報機関に提出するのを拒んだためだ。我々にとっ
近年、RailsアプリにService Objectを追加するメリットを説く記事が次から次へと量産されています。私は本記事において、それがなぜ正しくないかを述べたいと思う次第であります。もっとよい方法はあるのです。 私はこれまで、Service Objectに関するネット上の議論にときおり参加しては、問題に対するまっとうな解決方法としてService Objectが正しくない理由について繰り返し見解を述べてきました。実際、私は多くの場合においてService Objectよりもっとよい解決方法があると考えるのみならず、Service Objectはオブジェクト指向設計原則への配慮が損なわれている兆候を示すアンチパターンとして取り扱っています。 このような深遠なポイントを細切れのツイートやコメント欄を追って理解するのは大変です。そこで私は、私の見解を正確に表すいくつかの現実的なコードを詳しく
Amazon DynamoDBは、RDSのようなインスタンスサイズによる課金モデルではなく、ストレージのデータ使用量とスループットを基にした課金モデルになっている。 インスタンスサイズによる課金モデルでないデータストア系サービスとして、他にはS3、Kinesisなどがある。 これらは、AWSの中でも、フルマネージドサービスと呼ばれる位置づけとなるサービスだ。 フルマネージドサービスは、ElastiCacheのようなそうでないものと比較し、AWSに最適化されていて、サービスとしてよくできていると感じている。 Mackerelの時系列データベースのスタックの一つとして、DynamoDBを採用している。 時系列データベースの開発は、コストとの戦いだったために、それなりにコスト知見が蓄積してきた。(時系列データベースという概念をクラウドの技で再構築する - ゆううきブログ) (※ 以下は、2018
はてなブックマーク検索PWAというはてなブックマークでブクマしたデータをオフラインでも検索できるPWAを作りました。 サイト: https://hatebupwa.netlify.com/ ソース: https://github.com/azu/hatebupwa はてなブックマークの自分のブクマを検索できるPWAを作りました。 Service Workerに対応してるブラウザ(IOS Safari 11.3+を含む)ではオフラインでも検索できます。https://t.co/RCVkRYAFz0 モバイルはホームスクリーンアプリで、macOSはアプリ版もあります。https://t.co/5MDuyC9baN pic.twitter.com/KAc3KV690b — azu (@azu_re) April 16, 2018 使い方 使い方は特に難しい話でもないですが、次のように任意のはてな
現状のIoTに付いての私見をTwで呟いたのでまとめておきます。 IoTなんてただのバズワードです。話す人間のコンテキストによって内容がこれほど違うバズワードも珍しいけど。まずIoTときいたら、おまえのIoTはどのIoTだと、コンテキストの推測から始める必要があります。 — Tadahiro Ishisaka🖖 (@ishisaka) April 17, 2018 その2 計装制御機器メーカーの人間が話すとそれは大体DCSやPLCといっていたものとほぼ同義です。最近はエッジデバイスやクラウドサービスまで含むようになりました。私は個々の人間に属します。 — Tadahiro Ishisaka🖖 (@ishisaka) April 17, 2018 その3 デジタルデバイスやチップメーカの人たちでこれはセンサーデバイスや、低電力Bluetooth、ZigBeeなどの話になって、それがIoTと
Today we are ready to introduce the first major release of ReSharper Ultimate family for this year – please welcome ReSharper Ultimate 2018.1! ReSharper gets a significant number of bug fixes (based on more than 260 requests) and a bunch … Continue reading → 情報源: ReSharper Ultimate 2018.1 is available for download – .NET Tools Blog.NET Tools Blog 正式リリースとなりました。 主な変更点 C# 7.2のサポート ナビゲーション機能の改善 コードフォー
Warning: Undefined array key "id" in /home/c5684745/public_html/opcdiary.net/wp-content/plugins/advanced-responsive-video-embedder/php/Video.php on line 408 情報源: Microsoft introduces Azure Sphere to enable highly secured IoT devices – MSPoweruser RSAカンファレンスでMicrosoftがIoTのエッジデバイス向けの総合的なセキュリティソリューションとしてAzure Sphereを発表しました。 Azure Sphereは大きく以下の3つの要素から構成されていおり、専用のMCU(マクロコントロールユニット, ようはSoCチップ)と専用OS、Azur
MEMO. WindowsのAPIはある程度の文字のUNICODE情報を教えてくれるものの、不完全です。また、対応UNICODEバージョンもよくわかりません。(対応表があれば教えてください!)また、当然のことながら、OSとそのバージョン依存になるのでWindows/Linux間はもとより(.NEt Coreを考えるなら)、Windowsの異なるバージョン間でも結果が異なってくる可能性が有ります。 上理由から、Windows APIに依存しないでUNICODE文字の文字情報をUnicode Databaseより返してくれるライブラリを探していたのですが、すぐにこのNetUnicodeInfoが見つかりました。 GitHub: https://github.com/GoldenCrystal/NetUnicodeInfo NuGet: https://www.nuget.org/package
JSer.info #379 - New WebKit Features in Safari 11.1 | WebKitという記事では、Safari 11.1で追加された新しい機能の概要がまとめられています。 Service Worker API Payment Request API for Apple Pay Directory Upload & Clipboard API Updates Beacon API Video as Image Assets CSS font-display HTML Image Decoding(decoding属性) Passive Event Listeners Storage Access API Subresource Integrity WebDriver など大きな機能追加があるので興味がある人は見てみると良さそうです。 また、Safari
CompanyEngineeringProductSunsetting AtomWe are archiving Atom and all projects under the Atom organization for an official sunset on December 15, 2022. January 30, 2023 Update: Update to the previous version of Atom before February 2 On December 7, 2022, GitHub detected unauthorized access to a set of repositories used in the planning and development of Atom. After a thorough investigation, we hav
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く