サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
tech.gmo-media.jp
先日ConoHa presents - Groonga “How-To” Talksなるイベントが開催されていました。 当日私はGroongaの話が聞きたかったわけでもなく、Twitterのハッシュタグ #ボスケテ を眺めながら遅れてくる皆さんを助けに行く仕事をしていたのですが、主催者の須藤さん@ktouが「ブログ書いてください」とおっしゃっていたので、今こうして書いております。 イベントの様子今日は、みなさん週の真ん中で、お忙しいところ、お集まりいただきまして、ありがとうございました!私とお写真とってくださいね♡ #groonga pic.twitter.com/cML4mNiD7L 2014, 9月 3発表内容などは資料が上がっているのでtogetterから見ていただくと良いかと思います。あとは弊社のDBAが何か書きそうな気がします。 ConoHa presents - Groonga
こんにちは、技術推進室の篠崎(前回より5ヶ月ぶり)です。 Ruby on Rails(以下Rails)にはイベント(SQLを実行する、テンプレートを描画するなど)に対してフック(計測)できる仕組みがあるのはご存じですか? おなじみのログもこのフックの仕組みを利用して出力されています。(1行目除く) Started GET "/samples/1.json" for 127.0.0.1 at 2014-12-10 12:35:30 +0900 Processing by SamplesController#show as JSON Parameters: {"id"=>"1"} Sample Load (0.5ms) SELECT `samples`.* FROM `samples` WHERE `samples`.`id` = 1 LIMIT 1 Sample Load (0.5ms) S
技術推進室の浅井です。 技術的負い目とは、世に言う技術的負債のことです。 社内で技術的負債の定義、ことばの表現を考える中で、「『負債』は優れた比喩表現であるものの、第三者への返済義務がない点で会計上の負債とは異なり、言葉としての問題も多く、不必要な議論を生み出しやすい」などの指摘があり、代わりの表現として社内の一部で使われている言い回しです。 最近社内のたいへん古いシステム(16年の歴史があります)の技術推進を行う機会があり、たくさんの技術的負い目と向き合いました。 そのような古いシステムの技術的負い目と向き合ったとき、エンジニアはストレスを感じ、ネガティブな感情を抱いてしまいがちです。負い目に苦しめられることで過去のコードや技術的判断に対して不満を言いたくなる気持ちはとてもよくわかりますし、実際に私もたくさん苦しんでたくさん不満を言いました。 ですが技術的負債の文脈でよく言われるとおり、
こんにちは、DBAです。 MySQL 5.6でInnoDBのバッファプールウォームアップが機能追加されました。みなさん使ってますか? MySQL 5.6では正常終了時のダンプも起動時のロードもオフ、対してMySQL 5.7では両方ともオンです。また、MySQL 5.7ではダンプするバッファプールのページ数は(デフォルトでバッファプール全体の25%だけ、となっています。 わたしのオススメ設定は↓です。MySQL 5.6, 5.7両方でも使えるように、loose-接頭辞付きでinnodb_buffer_pool_dump_pct(5.7にあって5.6にないパラメーター)を書いています。 [mysqld] loose-innodb_buffer_pool_dump_pct = 100 innodb_buffer_pool_dump_at_shutdown= 1 innodb_buffer_poo
技術推進室の木村です。 最近暑い日が続くので、重めの話ではなく軽めな話をします。 皆さんchownは使っているでしょうか? chownコマンドはCHange file OWNer and groupの略でchownですが、ファイルの所有権を変更する際に利用することがしばしばあります。 さてこのコマンドですが、以下の様に使うことが出来ます。 $ chown ユーザ名[.|:]グループ名 ファイル名 ユーザ名とグループ名で指定する方法が「.(ピリオド)」と「:(コロン)」2つあるんですね。 ということで2つあるなら、どっちの方が利用者が多いのか気になりますよね?ということで社内でサクッとslack上でアンケート取ってみました。 結果は以下の通りで弊社では、大体半分半分くらいでした。 正直私は「:」で覚えてしまっていて「.」が使えることを知らなかったので驚いたのですが、コマンドにも歴史ありという
技術推進室とサービス開発部兼務の宇津井です。 前回、前々回から連続してTerraformネタです。 Terraformを利用していると、Moduleの利用は避けて通れないですよね。 そのModuleの管理方法は大きく別けても以下の7つが存在します。 https://www.terraform.io/docs/modules/sources.html Local file pathsTerraform RegistryGitHubBitbucketGeneric Git, Mercurial repositoriesHTTP URLsS3 bucketsGMOメディアではこれまでLocal file pathsを利用してきました。Terraform RegistryとGitHub共に実質的には全公開状態でしか運用できなかったためです。 最近になって、Terraform Registryに内包
技術推進室とサービス開発部兼務の宇津井です。 前回から連続してTerraformネタです。 Terraform Enterprise(以下TFE)が新しいバージョンになって、TerraformのModuleソースとしてGitHubプライベートリポジトリを利用することができるようになりました。 https://www.terraform.io/docs/modules/sources.html#github なお、以前でも利用はできたのですが、以下の方法しかありませんでした。 認証情報をソースファイルに書くパブリックリポジトリを利用するTFEが新しいバージョンになって色々と調べている中で、SSH KEYを登録して、外部からmoduleをcloneする機能がついたことで世界が変わりました。 なお、TFEにはPrivate Module Registryを利用する方法もあり、こちらでも似たような
こんにちは、最近GoogleHomeとビットコインにハマっているミーハーデザイナーの大西です。 今回は、Chrome59でCSSとJSのカバレッジを取得できるようになったので、自社媒体で運用可能かどうかCSSカバレッジの調査と検証を行ってみたいと思います。 そもそもカバレッジとは?所定の網羅条件がテストによってどれだけ実行されたかを割合で表したものです。 出典:カバレッジ(網羅率)分析とは | ソフトウェアの検証の種類 | テクマトリックス株式会社 つまり、CSSカバレッジとはCSSの網羅率ということになります。 カバレッジをあげると何が良いのか?余分なものを含まなければ、ダウンロードの時間が短くなり(ページの軽量化)、おのずと表示速度が早くなるはずなので、結果的にユーザー体験の向上をはかることが可能であると言えます。(なんと素晴らしい!) カバレッジツールの利用方法というわけで、実際にC
概要おはようございます。最近すっかり寒くなりましたね…(´ . .̫ . `)秋のすかっとした青空が待ち遠しい。PHPエンジニアの千葉です。 今日は、サーバサイドでサイト表示速度改善を頑張ったお話です。 現在、プリ画像のサイト表示速度は画像一覧画面が約140ms、画像詳細画面は約40msです。 もともとプリ画像の表示速度はとても速かったらしいのですが、去年の夏頃には画像一覧画面で約250〜300msまで悪化していました。 そこで、2016/09〜2016/12にかけて弊社エンジニアの河野と表示速度改善に取り組みました。そのなかで効果の良かったものをまとめたエントリです。 サイト表示速度の推移下記グラフの赤い線が画像一覧画面のサイト表示速度の推移になります。 クローラーはさまざまな検索ワード・さまざまなページ番号でアクセスしにくるため、キャッシュのないページが見られることが多いです。逆にユー
GMOメディアでエンジニアをやっています河野です。 本日Amazon Web ServicesよりNetwork Load Balancer(以下NLB)の発表がありました。 新しいNetwork Load Balancer – 秒間数百万リクエストに簡単にスケーリング 弊社でもいくつかのサービスでAWSを利用しており、Application Load Balancer(以下ALB)やClassic Load Balancer(以下CLB)をバリバリ使っています。 HTTP ProtocolについてはALB、それ以外のTCP通信に関してはCLBという住み分けは出来ていましたが、 CLBはClassicとついている通り今後の積極的な機能拡張はされず、でもTCP通信のLoadBalanceにはCLBを使わざるを得ないという状況でした。 そこで今回のNLBの登場となり、個人的に夢が広がりまくって
ぬいぐるみが好きな方のDBAです。 GMOグループには4年くらい前から始まった GMOテクノロジーブートキャンプ なる新卒エンジニアの一斉研修(とはちょっと違うみたいですが)があります。 その際講師を務めるのは、各分野の第一線で活躍する先輩エンジニア。この研修を通して会社の垣根を越えた師弟関係が誕生することでしょう。 残念ながら今日MySQLの話をしたおじさんは先輩エンジニアというより ズンドコキヨシストレージエンジンとか書いて喜んでいるMySQLジャンキー です。ごめんなさい。 ( ´-`).oO(去年と同じ書き出しにしてみた GMOテクノロジーブートキャンプでMySQLおじさんしてきた | GMOメディア エンジニアブログ 去年は「 明日使えないMySQLの無駄知識 」をテーマにMySQLへの愛を語ってきて今年もそれで乗り切ろうかと思っていましたが、今年の新卒の某氏が「2年くらいまえに
ぬいぐるみが好きな方のDBAです。 弊社ではMySQLのリソースモニタリングにCactiを利用していますが、こんな形の “InnoDB Row Operations” のグラフを見たことはないでしょうか。月初には低い値を示していたRows Read(水色のエリア)が月末に向かってだんだんだんだん伸びていくグラフです。 そして、月初になるとス㌧と落ちて月末に向かって大きくなっていって…を繰り返します。 よく訓練されたMySQLerのみなさまにはこのグラフを見ただけで原因の想像がつきそうなものだと思いますが、Innodb_rows_readがこのようなグラフの形を描く場合、ほとんどの原因はログテーブルのテーブルスキャン です。 月初はTRUNCATEや新しいテーブル(テーブル名_201705 とかでローテーションしたりするのに心当たりはありませんか?)への切り替え直後なので、テーブルスキャンで
ぬいぐるみが好きな方のDBAです。 TL;DRPercona Server 5.6を正常にシャットダウンしたのに [ERROR] InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5.7.9, and we did not find a valid checkpoint. Please follow the instructions at http://dev.mysql.com/doc/refman/5.7/en/upgrading.htmlと言われて5.7のバイナリーで起動できないときは、 innodb_log_block_sizeの指定をコメントアウトして InnoDBログファイルを消してmysqldを再起動新しくInnoDBログが作成されて起動してくるので、停
この記事はCSS Advent Calendar 2016の23日目の記事です。 こんにちは、技術推進室の色川です。 今年も残すところわずかとなりましたがいかがお過ごしでしょうか。 私はというとこの一年取り組んできた社内のフロントエンド開発環境整備の締めくくりとして、とあるサービスで未だ使われていた Compass からの脱却に勤しんでおりました。 Compass といえばかつては「CSS を書くなら Compass を使え」とまで言う人もいたほどですが、その機能の多くは PostCSS に取って代わられ、ここ数年は話を聞くこともなくなりました。GitHub にも「Compass is no longer actively maintained.」とか「Depreciated: Compass is no longer supported.」などと書かれており、もう完全に過去のものとなって
こんにちは、サービス開発部の村山です。 GMOメディア株式会社では会社概要にも記載されている通りオフショア開発を行っております。 https://www.gmo.media/company/ グループ会社であるGMO Z.com Run System社とラボ契約を結び連携しています。 アプリチームとしてiOSアプリ4名とAndroidアプリ4名のチームでコラボレーション開発をしておりました。 この度2016年の5月から好調のアプリチームに続き、サーバーサイドチームを立ち上げることになりました。 言語はRuby on Rails、Java、PHPの3言語です。 私はテクニカルマネージャーとして6ヶ月間現地に赴任してPHPチームの立ち上げを行ってきました。 前提サーバーサイド開発は無くならない。 ネイティブアプリであろうがブラウザアプリであろうが、データを扱うという点では変わらないサーバサイド
みなさん、こんにちは。角煮でお馴染みの深町です。 以前、弊社浅井より、16年間うごいているWebアプリケーションが抱えていた技術的負い目を考察するというブログを公開いたしました。 その項目のひとつに「危険なデプロイメント」という項目がありましたが、今回はこちらの詳細をお伝えしようと思います。 環境弊社のとあるサービスは下記のような環境で動いています。 言語 : Javaテンプレートエンジン : JSPウェブサーバー : ApacheWebコンテナ : Tomcatこのサービスは1日にJSPのみのデプロイ、アプリケーション全体のデプロイを合わせて10回程度の頻繁なリリースがが行われるWebアプリケーションでして ロードバランサ => 複数台のApache => 複数台のTomcat といった構成になっております。 JSPのみのリリースをする場合はJSPが存在するディレクトリをrsyncしてリ
ぬいぐるみが好きな方のDBAです。 再来週、8/29(月)に開催される Database Night Hokkaido 2016 Summer に弊社から約1名の yoku0825 が登壇します。 約1名なのは、20分のセッショントークと MySQLとPostgresSQLがキャッキャウフフする の再演(?)となる50分のパネルディスカッションがあるからです。 ( ´-`).oO(あ、セッション意外と短かった セッショントークは弊社で公開している MySQL Fabric のフォークである mikasafabric for MySQL を利用したHA構成のはなし(そう、YAP(achimon)C::Asia Hachioji 2016 mid in Shinagawa の時点でぼっこぼこにされたMySQL Fabricを手懐けるためにフォークしてパッチしたという話です)をします。 mika
あまりにもつらかったので、おとなしくフォークして自前でパッチを当てることにしました。フォークするついでに名前を変えたのが mikasafabric for MySQL (みかさファブリック フォー マイエスキューエル)になります。 期待通りに使えるMySQL Fabric を目指した結果なので、まあまあ期待通りに動きます(ただし、MySQL Routerとの組み合わせしかサポートしていません。他のコネクターは動くかも知れないし動かないかも知れない。一部、APIの戻りにも手を入れているので) 名前を変えた理由- MySQLは商標なのでフォークとはいえMySQL Fabricは微妙(MySQL xxxはダメで、xxx for MySQLならOK) - mikasafabric for MySQL は MySQL Fabric 1.5.6 をベースにしているので、リポジトリー分けるまでは1.5.
はじめにはじめまして、サービス開発部DBチームの本多と申します。 弊社のサービスポイントタウンではデータ分析用DBとしてPostgreSQLを使用しています。本番DBはOracleとMySQL併用で、そこから日々必要なデータを溜め込んでいます。 導入当初は特に不便も無く動いていたのですが、データが溜まりテーブルサイズが大きくなるにつれクエリ応答速度の低下に悩まされるようになってきたため、citusdata社がオープンソースで提供しているPostgreSQLのカラムストア拡張、cstore_fdwを導入してみましたので使用感を報告したいと思います。 cstore_fdwはカラムストア(列指向)テーブル、データ圧縮、SkipIndex(ストライプ毎に値の上限・下限値を持つ事で範囲検索時に不要なブロックの読み出しをSkipする(ファイルレイアウト)の3つの特徴を持つ外部テーブルをPostgreS
ぬいぐるみが好きな方のDBAです。 このエントリーは Tableau Serverで簡単にMySQLテーブルの容量(概算値)を時系列でモニタリング に対する8か月ぶりの当てつけエントリーです。はふん。 前提として、上記のTableau Serverでテーブル容量をモニターしているやつは、RDSのようですが、DBチームが戦うMySQLサーバーはデータセンターに設置されています。物理だったり仮想だったり、バージョンも上は5.7から下は4.0(そう、かつて 三日間戦争 を繰り広げたあのサーバーです、はふん)まで、information_schemaなんて存在しないMySQLもいっぱいあります。あと、くだんの環境はAWSで動いているようでナウいTableau Serverとかあるようですが、データセンター側にはそんなものはありませんので、自分たちで何とかしないといけません。 というわけで、データセ
ぬいぐるみが好きな方のDBAです。 先週土日に開催された YAP(achimon)C::Asia Hachioji 2016 mid in Shinagawa に、弊社からは延べ4名の yoku0825 が登壇しました! - MySQLと正規形のはなし 某ギョーザエンジニア氏に「こんなキモいテーブル設計見たことないけど、信じていいんですよね?」と言われたり、某DBA氏(つば九郎が好きではないひと)に「このflg1~flg9はいつか正規化したいんですよね…」と言われて書き上げました。 正規化ってなんであんなに難しい言い回しをするんだろう。日本語でおk。というのがメインテーマです。 - MySQL 5.7 + MySQL Fabric + MySQL Routerでぼっこぼこに された はなし ここ三か月くらい向き合っている新規サービスの構成を検討した話です。おとなしくPercona Xtra
こんにちは、ベガルタ仙台サポーターのCSMです。 本職は (たぶん) サーバ/インフラエンジニアです。 ※ CSM: 認定スクラムマスター 私はプリ画像というサービスを運営するコミュニティ事業部にインフラ・運用担当として所属しているのですが、今回はこのプリ画像ユーザの継続要因を決定木分析で調べてみたお話をします。 経緯部内のチャットツールで下記のような課題が挙がっていました。 施策を考える上で、継続率が高いユーザはなぜ継続率が高いのか知りたい 各アクションの日次件数は取れているが、そのアクションをしたユーザーの継続率の変化を追えてないので追う何回やれば継続率が高いのか、集計できないか検索1回だけだと継続率低いけど、5回やれば高い!とかがわかれば、より具体的なアプローチができそう例) Facebookは初日に友達7人以上と繋がると、その後の継続率がかなり高くなるよくある課題だと思います。 こ
こんにちは、コンテンツ事業部の井田です。 さて、今回はjavascriptに関連する投稿です。 弊社でもここ1年ほどでjavascriptの最新技術の取り入れが盛んになってきました。 しかし、数年間続くシステムだと最新どころかスパゲッティ化してしまって動いているけど手を入れづらいことがあるかと思います。 往々にして数年前の自分がやらかしてたりするんですが… 数カ月前にこういった状況に実際に直面し、思い切ってES6の構文を取り入れつつリファクタを実施してみました。 今回はその実施内容のご紹介です。 ※リファクタに際しbabel,gulpなどのツールを用いましたが今回はその導入手順は省略させていただきます。 Beforeまずは実施前のコードの構造がどうだったかを簡単に。 <div>......</div> <script> $(function() { $.ajax({//機能Aに関するデータ
こんにちは!iOS大好きだけど最近はAndroid開発ばかりして欲求不満な玉澤です。 皆さんSwift書いてますか? 今回は、PointTownアプリをObjective-CからSwiftに移行するときに役だった簡単なTipsをご紹介します。 Objective-CからSwift化するときのゆるいポリシーPointTownアプリをデザインリニューアルをするタイミングで、Swiftに置き換えていったため、以下の3点を意識して取り組みました。 Swift化が目的出はないので、100%Swift化を目指さない。Swiftで追加された言語仕様を積極的に使って楽をする。(guard, let, struct, for in whereなど)得られた知見を共有していく。(社内勉強会やブログとかで)NSKeyedArchiver+NSUserDefaultでキャッシュしてるオブジェクトの扱いSwift化
ぬいぐるみが好きな方のDBAです。 GMOグループには一昨年あたりから始まった GMOテクノロジーブートキャンプ なる新卒エンジニアの一斉研修(とはちょっと違うみたいですが)があります。 その際講師を務めるのは、各分野の第一線で活躍する先輩エンジニア。この研修を通して会社の垣根を越えた師弟関係が誕生することでしょう。 残念ながら今日MySQLの話をしたおじさんは先輩エンジニアというより ズンドコキヨシストレージエンジンとか書いて喜んでいるMySQLジャンキー です。ごめんなさい。 あまり技術的な内容を含まないカジュアルな読み物となっております。 「世の中にはこんな人もいるんだなって新卒氏らに知ってもらえばいい」とか 中の人 が言っていたので、言葉通りに受け取ってMySQLへの愛を語ってきました。余った時間(?)で Brian Akerの写真を見たり 、 Montyの写真を見たり しました。
はじめにこんにちは若林です。 iOS 9 ではウェブページを表示するために SFSafariViewController を利用できます。 弊社でもファッションコーディネート共有アプリ『CoordiSnap(コーデスナップ)』のリニューアルにともない、SFSafariViewController を導入してみました。 SFSafariViewController とはSFSafariViewController はウェブブラウジングの標準 UI を提供する View Controller で、次のような特徴があります。 Safari の機能(リーダー, オートフィル, 不正サイト検知, コンテンツブロッキングなど)が使えるCookie などウェブサイトのデータを Safari と共有できるウェブページ内インタラクション, オートフィルデータ, ブラウジング履歴, ウェブサイトのデータなどに
こんにちは、ぬいぐるみが好きな方のDBAです。 MySQL 5.7では JSONデータ型 がサポートされ、今までTEXT型やBLOB型にJSONを入れていたのに比べて バイナリーフォーマット(らしい)容量が小さいのでTEXT型に比べて基本的にレイテンシーが低い何も考えなくても4バイト文字も入るというメリットがあります。 ( ´-`).oO(Generated Columnでインデックスが張れるとか、json_*関数でアクセスできるとかはTEXT型でもできるのでJSON型のメリットじゃないし、型としてのバリデーションも生JSONを自分で組み立てることはほとんどない(ライブラリー通すから)からあんまり旨味を感じない。。 というわけでwktkしながら作ったんですよ、JSON型カラム。 そしたら。 ギョザー: とりあえずConnector/JのあとのDBアクセスライブラリの結果はStringで、文
技術推進室の色川です。 ここ一年くらいランキングシェアというキュレーションメディアのフロントエンドを担当しています。その記事作成画面をReactで実装しており、先日アイテムの移動をDrag&Dropで行えるようにしたのですが、動きはガクガク、ブラウザは途中で固まる、という有様で、パフォーマンスチューニングを余儀なくされたのでその内容を紹介します。 [ランキングシェアの記事作成画面] ※画面は開発中のものです。(動画にしたら?との意見があったのですが、Windowsで画面を録画する方法が分からず…) Reactのパフォーマンス改善の基本Reactはコンポーネントをツリーとして管理していて、あるコンポーネントの更新が必要になるとそのコンポーネントをルートとするサブツリー全体を更新します。 引用元:Reactive, Component-based UIs with React | Consta
こんにちは、DBAです。 ズンドコキヨシ大流行ですね。 ズンドコキヨシまとめ - Qiita を見ていたんですが、MySQLでやってる人はいなさそうなので MySQL CasualのSlack で呼びかけてみました。 * by @do_aki 。JOIN使ってる。確かに止められない。SET @zd = ''; SELECT zundoko FROM ( SELECT @t := IF(@zd = 'ズンズンズンズンドコ', 'キヨシ!', ELT(FLOOR(1 + RAND() * 2), 'ズン', 'ドコ') ) AS zundoko, @zd := RIGHT(CONCAT(IFNULL(@zd,''), @t), 10) FROM (SELECT 0 UNION SELECT 1) AS t0 JOIN (SELECT 0 UNION SELECT 1) AS t1 JOIN (
次のページ
このページを最初にブックマークしてみませんか?
『GMOメディア エンジニアブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く