Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

モバイルファースト室の @rejasupotaro です。 クックパッドでは、サービスをリリースしてログを収集して分析して改善してまたリリースして、というサイクルを素早く回すことでより良いものを作るということをウェブではやってきました。 クックパッドのサービス開発のフレームワークをモバイルアプリでも適用したいのですが、モバイルアプリにはウェブアプリと違ったロギングの難しさがあります。 今回はモバイルアプリのロギングの問題点とPureeというログ収集ライブラリについて話します。 モバイルアプリのロギングの難しさ ウェブアプリでは、基本的にはサーバー側でログを収集することができますが、モバイルアプリの場合は画面の制御はアプリ側で行われ、APIを介してデータを受け取るため、クライアント側でログを収集して送信する必要があります。 アプリのログを収集するのに、画面遷移をしたりタップするたびにサーバー
Unsupported web browser - Use a modern browser to view this website! Apache FreeMarker® is a template engine: a Java library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data. Templates are written in the FreeMarker Template Language (FTL), which is a simple, specialized language (not a full-blown programming language lik
だいぶ前からDocker(Linuxコンテナ)のパフォーマンスについて、速いことは速いだろうけどどの程度速いのか、もし遅いことがあるなら何がパフォーマンスにとって重要なのか(AUFSが遅いとかそういうの)が気になっていたので、今回は で紹介されていた Docker のパフォーマンス検証に関する IBM の Research Report を読んだ。Report の内容をベースに、Docker のパフォーマンスの勘所などをまとめてみた。 Report のタイトルは An Updated Performance Comparison of Virtual Machines and Linux Containers 。 GitHub にベンチマークコードと実験データが置いてあってちゃんとしてる。 前提 まず、VMとコンテナの歴史を振り返るのに知らぬはエンジニアの恥。今さら聞けない【コンテナ/仮想
B! 16 0 0 0 ブログの中でリンクが間違ってたりしないかとかリンク切れしてないかとかを 検索するツールは沢山ありますが、 LinkChecker というのが使い勝手が良いのでたまにGUIで使っていました。 LinkCheckerコマンドラインでも使えるので、 これを使ってリンクチェックをTravis CI上で自動化してみます。 ここではOctopressをGitHubにデプロイしてる場合の方法ですが、 GitHub Pagesを使ってる様な場合であれば同じような事ができるかと思います。 GitHub側での準備 Travis CI側での準備 Octopressでの設定 結果を見る GitHub側での準備 まず、GitHub Pagesに使ってるレポジトリに対して Travis CI側からpush出来る様に鍵を登録します。 下に従って鍵を作って公開鍵をGitHub側に登録しておきます。
現実的なWebサービス環境において、Docker化によるパフォーマンス低下がどの程度のものか調査するために、 ISUCON4 の予選問題のうち、Nginx と MySQL 部分を Docker 化してベンチマークをとってみた。 典型的なWebサービスシステムの3層構造(Proxy, App, DB)を構築し、ベンチマーカーにより高ワークロードを実現できるので、ISUCON の予選問題は適当な題材といえる。 Docker のパフォーマンスについて留意することは先日書いたエントリに全て書いてる。 上記のエントリを要約すると、Docker のパフォーマンスについて重要なこととは storage-driver の選択 (AUFS or Device mapper or ...) Volume の ON / OFF AUFS などの差分ファイルシステムをバイパスするかしないか Host networ
Architecting RESTful Rails 4 API 22 Oct 2013 This is a follow-up to my previous post about Authentication with Rails, Devise and AngularJS. This time we’ll focus more on some aspects of the API implementation. One thing to keep in mind, where my previous example used Rails 3.2, I’m using Rails 4 this time around. Versioning If you are building an API which could be potentially consumed by many dif
# coding=utf-8 """ fluentdのout_exec_filterで呼ばれるコード 標準入力から1行ずつ処理を行ない、結果を標準出力に吐く """ import json import logging import logging.config import sys import traceback import msgpack logging.config.fileConfig('/path/to/logging.conf') logger = logging.getLogger('fluent-exec') logger.propagate = False def main(): stdin = sys.stdin output(convert(validate(parse(readline(stdin))))) def readline(stdin): for li
私はいつも Vagrant を使って boot2docker や CoreOS をローカルマシンに VM として立てて、いろいろテストしています。 で、テストの度に VM を再構築して、テストで使う Docker のイメージを Docker Hub からダウンロードすることになるんですが、遅い回線だと大変イライラします。 まあ、ローカルマシンは回線もメモリも制約があるから、クラウド使えよって話なんですが。。。 他の案としては、ローカルに Docker Registry を立てて、そこに置けばいいんじゃないのってことですよねー が、最近 Docker Registry Mirror の存在を知って、これは! ってなったので、使ってみることにしました。 Docker Hub のイメージをそのまま使いつつ、一度ダウンロードしたイメージはミラーにキャッシュされるので、次回からは超速で docker
VAGRANTFILE_API_VERSION = "2" DOCKER_REGISTRY_HOST = "docker-registry" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.define "docker-registry" config.vm.box = "yungsang/boot2docker" config.vm.network :forwarded_port, guest: 8080, host: 8080 config.vm.provision :shell do |sh| sh.inline = <<-EOT sudo echo 'EXTRA_ARGS="--insecure-registry localhost:5000"' > /var/lib/boot2docker/prof
% docker version Client version: 1.3.0 Client API version: 1.15 Go version (client): go1.3.3 Git commit (client): c78088f OS/Arch (client): darwin/amd64 Server version: 1.3.0 Server API version: 1.15 Go version (server): go1.3.3 Git commit (server): c78088f 構成 今回は fig を使って以下の3つのコンテナを作成して連携させる。 コンテナ名: web Apache fluentd コンテナ名: elasticsearch Elasticsearch コンテナ名: kibana Apache Kibana webコンテナがフロントエンドの
生物情報科学版 Project Euler といったおもむき。 ROSALIND | Problems やり方は最初の問題を開いてみればわかるはず。問題IDはその分野の用語っぽかったり? としゃれこんでいる。 問題ID:DNA ヌクレオチドの数え上げ 与えられたDNA文字列に含まれるそれぞれのヌクレオチドを数え上げる(文字列はアルファベットA,C,G,Tを含む。例:"ATGCTTCAGAAAGGTCTTACG")。 入力 長さ1000以下のDNA文字列。 出力 に含まれるA,C,G,Tの数を4つの整数としてこの順番にスペース区切りで出力。 サンプルデータ AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC サンプルに対するアウトプット例 20 12 17 21 http://rosalind.info
また Linux カーネルの話です。 Linux では fork によるマルチプロセスと、pthread によるマルチスレッドでの並行処理を比較した場合、後者の方がコストが低く高速と言われます。「スレッドはメモリ空間を共有するので、マルチプロセスとは異なりコンテキストスイッチ時にメモリ空間の切り替えを省略できる。切り替えに伴うオーバーヘッドが少ない。」というのが FAQ の答えかと思います。 が「オーバーヘッドが少ない」と一言にいわれても具体的にどういうことなのかがイメージできません。そこで Linux のスレッド周りの実装を見て見ようじゃないか、というのが今回のテーマです。 3分でわかる(?) マルチプロセスとマルチスレッド まずはうんちく。マルチプロセスとマルチスレッドの違いの図。以前に社内で勉強会をしたときに作った資料にちょうど良いのがあったので掲載します。Pthreadsプログラミ
東大喜連川研究室の早水さんが日本PostgreSQLユーザ会で話された「性能測定道」がとても勉強になった。 スライドとYouTube動画が公開されています。YouTube にはスライドには書かれていない話しも出てきて、説明も非常にわかりやすいです。こういうアカデミックで最先端の研究をされている方が情報発信されるのはとてもうれしい。 id:hayamiz さんのことは何年も前から認識していたが、喜連川研究室でデータベースの研究をされているというのは初めて知りました。 TOP | Yuto Hayamizu's web site も要チェックです。 性能測定道 事始め編 性能測定道 事始め編 from Yuto Hayamizu 性能測定道 実践編 性能測定道 実践編 from Yuto Hayamizu 「性能測定道 事始め編」で紹介されていた本を買ってみましたが、なかなか歯ごたえのありそう
基本的にオブジェクトと関数はおんなじもので、Javaのラムダ式では記述は関数だけど扱いはオブジェクトになってたりします。逆に、関数でオブジェクトを実現することもできます。 なので、オブジェクトと関数が、モノとしてどう違うかっていう話にはあまり意味がなくて、問題は表現としてどう違うかってことになると思います。 表現として、オブジェクトはフィールドとかプロパティとかで状態をもって、その状態をもとにいろいろ動いて、状態を変えます。 関数は引数をとって、その引数をもとにいろいろ動いて、戻り値を返します。 オブジェクトは状態が大事、関数はデータの流れが大事、って感じになります。 アプリケーションの中では、ユーザーインタフェースとデータ構造・ストレージは状態が大事です。処理に関してはデータの流れが大事です。 ここで、ユーザーインタフェースやデータ構造はプラットフォームごとに一揃えあれば充分です。ストレ
Microsoft is holding an AI Agents Hackathon, and we want to see what you can build with Python! We'll have 20+ live streams showing you how to build AI agents with Python using popular agent frameworks and Microsoft technologies. Then, you can submit your project for a chance to win prizes, including a Best in Python prize!
Microsoft is holding an AI Agents Hackathon, and we want to see what you can build with Python! We'll have 20+ live streams showing you how to build AI agents with Python using popular agent frameworks and Microsoft technologies. Then, you can submit your project for a chance to win prizes, including a Best in Python prize!
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く