Google Cloud Platform (Google App Engine, Compute Engine, BigQuery や Container Engine など)の情報の日本公式ブログ
![Stackdriver Debugger : 稼働中のアプリに “ログポイント” を追加](https://cdn-ak-scissors.b.st-hatena.com/image/square/832e1ee57367511106911167fde597eb46a6b3b5/height=288;version=1;width=512/http%3A%2F%2F3.bp.blogspot.com%2F-m90zG1Qb7vc%2FVel5wAn_isI%2FAAAAAAAARGE%2FiSOuuYWUXUA%2Fs1600-r%2FCloudPlatform_128px_Retina.png)
Webアプリやモバイルアプリの受託開発やコンサルティングを行うthoughtbot社のブログにて、Sandi MetzルールというRubyプログラマ向けのルールが紹介されていました。 Sandi Metz’ rules for developers このルールは、プログラマーでありPractical Object-Oriented Design in Rubyという書籍も執筆しているSandi MetzさんがRuby Roguesポッドキャストに出演した際に紹介していたものです。 そのルールは以下の通りです。 クラス内のコードが100行を超えてはならない メソッド内のコードが5行を超えてはならない 4つより多い引数をメソッドに渡すようにしてはならない(ハッシュによるオプションもパラメーターとみなす) コントローラーではただ1つのオブジェクトだけをインスタンス変数化できる ビューは1つのイン
はじめに ひとつ前のエントリでRSpecの話を書いたので、それにちなんで最近僕の身の回りで起きたテストコードに関する雑多なエピソードをいくつか書いてみます。 その1:テストコードを書いてない処理で見事にバグを出してしまった・・・!! 僕はソニックガーデンの中では「テスト番長」の異名を持っていて、基本的にテストコードはしっかり書くタイプです。 ですが、どうしてもリリースを優先しなければいけないときは、やむを得ずテストコードを後回しにして先にリリースすることもあります。 先日リリースした「テストを後回しにしたコード」は、リリース直後は問題なく動いていました。 その数週間後、別の仕様変更が入り、変更したコードをリリースしました。 「テストは全部パスしているので大丈夫なはず~!」と思ったら、リリースの翌日に変なシステムエラーが発生。 エラーが起きている場所を見て、ガーン。 例の「テストを後回しにし
Rubyでちょっとしたこと、例えばテキスト処理などをしたくてスクリプトを書くことはよくあります。そんなスクリプトは意外と再利用したくなるものです。しかし、作業用ディレクトリに適当なファイル名で保存していたりすると探し出すのは困難ですし、コマンドラインにワンライナーで書いたものだとそもそも残っていないこともあります1。別のPCでの再利用も、それらの保存方法では当然ながら不可能でしょう。 そこで、どこか整理された場所に保存しておいて再利用に備えたいのですが、保存先が問題になります2。そんなとき、私は次のような理由からgem(RubyGems)にしてしまうことにしています。手元ですぐに実行できますし、別の環境へのインストールも簡単です。また、他のRubyプログラムへの組み込みもコピペせずに実現できます。もちろん他の人が使えるようになるというメリットもあるのですが、自分の用途に限っても長い目で見れ
Goで作成されたテキストエディタ「Micro」の開発者が9月4日、「Micro 1.0.2」を公開した。8月末に公開したバージョン1.0系のポイントリリースとなる。 Microは仮想ターミナル上で動作するテキストエディタ。nanoエディタの後継を目指しており、モダンなターミナルの機能を活用できると同時に、容易に直感的に使えるという。Luaベースのプラグインシステムを持ち、機能を拡張できる。Go言語がサポートするすべてのプラットフォームで動作し、さまざまなショートカットキーサポート、マウスのサポート、自動文法チェックおよびエラー通知、75以上の言語向けのシンタックスハイライトなどの機能を持つ。 Microは8月末にバージョン1.0を公開しており、1.0.2は1.0系のポイントリリースとなる。新たに「Bracketed Paste Mode」のサポートが加わった。また、設定ファイルではjson
はじめに WebRTCの通信形態は大きく分けて、暗号化を解く/メディアを解釈するサーバを介するもの と 介さないもの、の2種類がある。 暗号化を解く or メディアを解釈する サーバを介さないもの P2P TURN経由 暗号化を解く or メディアを解釈する サーバを介するもの MCU経由★ SFU経由★ (VoIP-WebRTC Gatewayなどもあるが、ここでは取り上げない) どれが必要になるかは、WebRTCを利用するアプリケーションのユースケースに依存するので、一概に何が1番良いというものはない。 本記事では、上記のうち、★をつけているメディアサーバ(SFU/MCU)の現状(2016年)について記載する。WebRTCを使う上で、特にMCUやSFUに興味がある方には参考になれば幸いだ。 もし、記載で誤っている点などがあれば @iwashi86 までメンション/DMをいただきたい。
2016 - 08 - 12 Dockerホストのパフォーマンスを引き出すTCPカーネルパラメータチューニング Docker Linux もう半年くらいフルDockerでmicroservicesなサービスを運用してるんですが、イマイチパフォーマンスを出し切れていないなという面がありまして、今回Dockerホストの TCP カーネル パラメータを抜本的に見直しました。 そしたら劇的に症状が改善して、 インスタンス 数も削減できた上に安定して メシウマ状態 になったので紹介します。実際効果があったのでチューニングポイントとしてはある程度正解であったと考えていますが、もちろん扱ってるアプリケーションの特性にもよるはずなので一つの ケーススタディ であることをご了承頂ければと。 前提 まずは今回のお話の前提を。こんな環境です。 EC2 c3.xlarge ホストは Ubuntu (EC2 Opt
こんにちは。アプリケーション共同開発部 開発担当の図子です。 次期 iOS の iOS 10 がもうすぐリリースされるであろうこの時期、iOS アプリケーションエンジニアのみなさんはいかがお過ごしでしょうか。私はこちらのエントリでも書かせていただいたように今年も WWDC に参加して現地でいろんなセッションを見ました。WWDC から帰国したあともセッションビデオをいくつか見ました。そのなかで個人的におもしろいなぁと思った "Proactive Suggestions" について紹介します。 Proactive Suggestions とは何か Proactive とは辞書によると "先を見越した"、"先回りした" という意味です。Suggestion は "提案"、"忠告" です。つまり Proactive Suggestions とは "先回りした提案" という意味になります。 Proa
Scalable job queue system built with Docker @k0kubun http://rubykaigi.org/2016/presentations/k0kubun.html "While job queue system has been indispensable to execute a task asynchronously for a long time, we have some problems in typical job queue systems built with Ruby. Have you ever suffered from job queue system's availability, scalability or operation cost? Don't you want to implement a job wit
cssnextとは策定中のCSS仕様を先立って使えるようにするツールのことです。 ひとことで言うとCSS版Babelです。 CSSを変換する仕組みはPostCSSのプラグインとして有志によって作成されています。 cssnextはそのプラグインをまとめたプラグインパックと呼ばれるものです。 ※古いブラウザに対応させるためのフォールバック機能を提供するプラグインも含んでいます。 本記事は策定中のCSSの知識をつけることが目的です 参考リンクなど cssnext(PostCSS)の背景や使い方は先日記事を書いたので是非見てみてください Step by Stepで始めるCSSモダン化(PostCSS) playgroundでcssnextが実際にどのように変換するのかを試せます。 機能一覧 本記事で紹介する機能一覧を出すのに使ったcssnextのページです。 postcss-cssnext fea
Yahoo! JAPAN MeetUp #2 (iOS) の時の発表資料です。 http://yj-meetup.connpass.com/event/38348/
golang で処理の高速化をするために goroutine/channel を使って並行処理にし、待ち時間を無駄にしないようにするのは言葉で表すのは簡単ですが、実際にパターンとして落としこむためには経験が必要だなと思うので、今回 Dispatcher-Worker として Job Queue を golang で実装する方法を紹介したいと思います。 この記事は mattn さんの Big Sky :: golang の channel を使ったテクニックあれこれ の次のステップとして読むことをオススメします。 mattn.kaoriya.net golang で作成したアプリケーションで多くのリクエストをアプリケーションが送受信する必要がある場合、高速に捌くために並行処理にして非同期化を図る場合を想定しています。 今回は get という関数でHTTPリクエストを実行して取得したデータのサ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く