Welcome to Sentry DocsSentry is a developer-first error tracking and performance monitoring platform.
先日 Java + Spring Fraework で、サーバ/クライアント間の通信についてまとめました。 上記ではさらっとしか触れなかった、特殊文字の Unicode シーケンス 変換について整理いたしました。 Overview 何をするのか Jackson を利用した Json、Object のコンバートで特殊文字をエスケープする。 Cocos2d-x で実装したクライアントとの通信で、クライアント側 C++ の JSON パーサーでは特殊文字の扱いが苦手であったため、特殊文字をエスケープすることで回避したのでした。 開発環境 Java 7 Spring 4 Maven 3 jackson 2.4 数年前の実装のため Java 7 です。 新しいプロジェクトでは最新のバージョンをご利用ください。 エスケープ挙動 この記事で JSON にコンバートするオブジェクトの構造です。 1@Dat
ちょっと Maven さわってみたので、備忘録として残し置きます。 やったのは、以下のドキュメントに書いてる「プロジェクト作成からビルドまで」ってところです。 Maven – Maven in 5 Minutes 最近ライブラリとかも Maven でやってくれ的なことになってて、今までは「jar で提供してダウンロードさせてくれよ」とか思ってましたが、今回触ってみて案外便利で、どっちかといえば Maven のほうがいいかもと今更ながらに思いました。( 遅い・・・ ) 以下、やったことの手順です。 1. プロジェクトの作成 ドキュメントに記載の通り、以下のコマンド実行してプロジェクトを作成する。 mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-
はい、というわけで、前記事のworkerパターンをcontextつかったらどーなるか、についてです。 前の記事や、その元記事のソースを読んでいる前提ですので、未読の方はそちらの確認からお願いします。 さて、ざっくりとした変更の方針ですけど、以下の2点です。 contextを使うことで、workerの実装側でキャンセルできるようにする workerに渡す値はcontext経由にする。 というのをヤッツケでやってつくってみました。 以下変更点の解説です。 まず、元実装ではworkerで実行される処理がベタ書きだったのを汎用化するため、dispatcherのqueueに入れるjobをとqueueの定義を変更します。 type ( job struct { proc func(context.Context) ctx context.Context } Dispatcher struct { qu
Go その2 Advent Calendar 2015の記事です。 golangで複数のセンサーからのデータをMQTTで受けてfluentdを使ってロギング、elastic/kibana, splunkで可視化します。これは実際にET展のマクニカさんのMpressionによるIoTのPoC(Proof of Concept)にて展示してきた内容の詳細です。実際の展示中の内容はこちらです。会場と世界各国のマクニカさんのオフィスにセンサーを置いて頂き、色んなところからモニタリングしています。 – 構成 以下の図のような構成です。色んなセンサーを使っています。MQTTを使えるセンサーがあるので、MQTTサーバとしてはmosquittoを使っています。 – 送信データフォーマット センサーからのデータは基本的には、温度、湿度、照度を扱っています。他にも色々取れるのですが(加速度、地磁気、音声, I
前編 ではAmazon Auroraの紹介をいたしました。 後編となる今回は前編でも紹介したように、本当にMySQLと比べて5倍速いのか?について検証していきたいと思います。 検証環境 MySQL 5.6.27 db.r3.large Amazon Aurora(MySQL 5.6.10a互換)db.r3.large 設定は初期値のままです。 上記のRDSインスタンスにEC2インスタンスからアクセスして、sysbenchを使ってベンチマークを行います。 ベンチマーク準備 EC2インスタンスへsysbenchのインストール SysbenchはEPELでrpmが用意されていますが、EC2のAmazon Linuxでは使えないのでtarballからインストールします。 # cd /usr/local/src # wget http://downloads.mysql.com/source/sys
AWSのなかでも、ちょっと知名度が低い(?)「AWS Config(コンフィグ)」にスポットをあててみたいと思います。 AWS Configとは? AWS Conifgは、AWSが提供するざまざまなサービスで管理されているリソースの構成変更などの操作履歴を管理・可視化するAWSサービスです。 AWS Configは完全マネージド型のサービスで、セキュリティとガバナンスのため、AWSリソースインベントリ、設定履歴、および設定変更通知といった機能が用意されています。Config Rulesを使用して、AWS Configによって記録された AWSリソース設定を自動的にチェックするルールを作成できます。 引用元:https://aws.amazon.com/jp/config/ AWSには操作履歴を追跡する「AWS CloudTrail」という同じようなサービスがありますが、こちらはユーザーの操
こんにちは、せーのです。今日はCognitoのUser Poolsを使ったWebのログイン画面を作ってみます。 サインアップがあるならサインインも作ってみよう User PoolsはAWSの認証サービスであるCognitoの機能の中でもAWSはもちろん、FacebookやGoogle、Twitter等外部の認証基盤を使わずに独自の認証プロバイダがサクッと作れる、というとても賢い機能です。細かい話はこちらの記事を参照下さい。 [新機能] Amazon Cognito に待望のユーザー認証基盤「User Pools」が追加されました! | Developers.IO こちらはiOSからの各機能の書き方を紹介しています。一方WebでこのUser Poolsを使う記事もこちらに書かれています。 AWS SDK for JavaScriptを使ってブラウザーからCognito User Poolsへ
機会をいただいて、技術評論社 WEB+DB PRESS vol.94 の特集1「実践スケーラブルAWS」を同僚の id:tkuchiki と執筆しました。本日8/24発売です。 WEB+DB PRESS Vol.94 作者: 藤原俊一郎,朽木拓,八木俊広,吉田太一郎,うらがみ,のざきひろふみ,うさみけんた,水嶋淳貴,佐々木健一,柴崎優季,前島真一,伊藤直也,遠藤雅伸,ひげぽん,海野弘成,はまちや2,竹原,WEB+DB PRESS編集部出版社/メーカー: 技術評論社発売日: 2016/08/24メディア: 大型本この商品を含むブログを見る どなたかが編集のかたに自分を推薦していただいたようで、インフラの特集で、というお話をいただいて、ここ数年はほぼAWSをメインで使っているのでAWS前提の内容でよければ…ということで寄稿することになりました。 [鍵は監視にあり!]実践スケーラブルAWS 第1
本稿は Docker Hub Hits 5 Billion Pulls(2016/8/11) の和訳記事です。 先週、Docker Hub Repository Service からのイメージ取得数の合計が50億回に達しました。2月からという短い期間で150%もの増加を成し遂げたのです。3年目のプロジェクトとしては非常に素晴らしい成果です。Docker Hubがデペロッパーの日常の一部となったのには次のような理由があるからなのです。 ・Docker Hubはレポジトリをホストし、高品質のイメージにアクセスすることができる安全で信頼のおける主流のサービスです。 ・レポジトリサービスはDocker Cloud repoを提供しています。実は、すでにお使いのコンテンツやサブスクリプションにも提供しています。 これは、65万以上の登録ユーザーが1分間に1万3000回以上もイメージを取得しているとい
複数の環境を持ってたり、それを複数人で管理してたりすると 作成したstateのバージョンだったり作業環境の Terraform のバージョンだったりを同じじゃないことってありますよね。 例えばAでは0.6.xしか実行してなかったけど、Bでは0.7.xで運用を開始したり それをMacで運用してるとAを更新する際に、0.7.xで実行することになっちゃって、フォーマットエラー….かなしい なので、ローカルインストールしたバージョンに依存する事なく、A,Bのように環境が違っても、実行者が違っても同じバージョンで運用出来るようになるととても幸せ ※でも、早めにバージョンはあげようよ!! そんな時に便利なのが、実行環境を Docker コンテナ!! Docker Hubには、terraform公式のイメージ( hashicorp/terraform )が存在しています。 これを使うことで、0.6.xで
(macosx10.9, boot2docker1.6.0) インストール boot2docker http://boot2docker.io/ boot2docker 実行 $ boot2docker init $ boot2docker start $ $(boot2docker shellinit) ファイル Dockerfile hello.go Dockerfile FROM golang:1.4.2 RUN mkdir -p /go/src/app COPY . /go/src/app WORKDIR /go/src/app ENV GOPATH /go RUN go get github.com/zenazn/goji EXPOSE 8000 CMD ["go", "run", "/go/src/app/hello.go"] COPY と ADD の使い分けって? hello
Docker recommends that you authenticate using the Sign in option in the top-right corner of the Docker Dashboard. In large enterprises where admin access is restricted, administrators can enforce sign-in. Tip Explore Docker's core subscriptions to see what else Docker can offer you. Benefits of signing inYou can access your Docker Hub repositories directly from Docker Desktop. Authenticated users
はじめまして。コラビットの川原と申します。私は「HowMa」というサービスで、Apache Spark(以下、Spark)を利用した住宅価格の推定エンジンの開発を担当しています。本連載では、Sparkの概要や、ローカル環境でのSparkのクラスタの構築、Sparkの基本的な概念やプログラミングの方法を説明していきます。そして、簡単なアプリケーションを作成して、Amazon EMR(Elastic MapReduce)のクラスタ上で実行できるまで解説します。 これからSparkの導入を考えている方、または、業務で使う予定はないが少し興味がある方を対象に、サービス運用の中で得た知識を提供できればと思います。 Apache Sparkとは Apache Sparkは巨大なデータに対して高速に分散処理を行うオープンソースのフレームワークです。JavaやScala、Pythonなどいろいろなプログラ
I recently needed to completely automate deploying a full ELK/EFK stack and clients and didn’t find anything that suited my needs so I wrote the playbooks for this in Ansible. This was my first real foray into automation with Ansible, hope it’s useful to others. What is ELK? ELK is an acronym for an extremely useful stack of log aggregation and datastore utilities for centralized log management a
Copyright © 2016 SRA OSS, Inc. Japan All rights reserved. 1 Fluentd + Zabbix + Grafana で グラフィカルなログ監視・分析システムを 構築してみよう! SRA OSS, Inc. 日本支社 マーケティング部 OSS技術グループ 2016年7月29日 アジェンダ • Fluentdについて • Zabbixについて • Grafanaとは • Fluentd + Zabbix + Grafana 構成の利点 • デモ 2 Copyright © 2016 SRA OSS, Inc. Japan All rights reserved. • Fluentd ログを取得して転送してくれるミドルウェア ログの加工や構造化ができる いろんなデータベースにデータを保存できる • URL http://flu
#curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh #sudo /etc/init.d/td-agent start #sudo /etc/init.d/td-agent status 基本的な要素は3つ source, match, include 今回使うのは sourceとmatchだけ。 設定ファイル まずは、送信元「EC2(A)」の設定を行う。 1)apacheログの操作権限付与 2)td-agent.confの設定 [root@FluentdAgent ~]# chmod o+x /var/log/httpd [root@FluentdAgent ~]# vi /etc/td-agent/td-agent.conf <source> type tail path /var/
はじめに 前回ディープラーニング(CNN)を使って、文書分類を行う方法を示した。 今回は、前回示した方法を使って、Livedoor Newsコーパスをカテゴリー分類する分類器をTensorflowで実装していく。 全体像おさらい 今回作成するモデルの全体像は以下の図の通り。 詳細は前回の記事参照。 インプットデータの作成 Livedoor Newsコーパスの各文書を以下の図のような行列にする。 行=各文書の単語。行数を合わせる為に、500単語で区切っている。 列=各単語をWord2Vecで変換した100次元のベクトル。 models = { # ファイル名で当該文書の行列が取得できるようにする 'it-life-hack-6292880.txt':[ [-2.27736831e-01, -6.95074769e-03,...], # 旧式 [1.1219008 , -2.06810808,
Pythonにはいろいろと便利なモジュールが揃っているし平易で読みやすいので、バッチ処理のスクリプトや簡単なCLIアプリケーションを書くのにかなり適しています。僕もふだんからちょっとした処理を検証したりするのに使うのですが、その際に便利な機能とかをまとめてテンプレートにしているので紹介します。あわせて読みたい:特徴的な機能をいかに示します: tracebackとloggingでエラー内容を表示 argparseでloggingのデバッグレベルを変更可能 logging.FileHandlerを追加すればファイルにログ書き出しも可 with time_logger(&... Loggingモジュールのイメージ Loggerオブジェクト loggerオブジェクトを各モジュールに明示する( logging.getLogger(“hogehoge”) )ことで、ログを収集する。 loggerは名前
私が書籍"実践 機械学習システム"を読み勉強した時に参考にしたサイトと第1章のメモです。 機械学習参考サイトURL MPS Yokohama Deep Learning vol.01 数学的基礎から学ぶ Deep Learning TwoToReal FAQ Github:wrichert/BuildingMachineLearningSystemsWithPython 1章 Pythonで始める機械学習 Python: SciPy で特徴量の相関を調べる Python: Scipy のカーブフィッティングを試す プログラマーじゃない人が始める人工知能: ScipyとMatplotlibを使ってデータの近似モデルを構築する matplotlib入門 - グラフの体裁を整える matplotlib入門 NumPy で回帰分析 "実践 機械学習システム"メモ # Numpyとは? # 大規模な
Seaborn is a Python visualization library based on matplotlib. It provides a high-level interface for drawing attractive statistical graphics. 意訳すると、matplotlibのwrapperとしてより高レベルな(抽象化された)インタフェースを提供してくれるそうです。 urllibに対するrequestsパッケージみたいな位置づけかな。 インタフェースも大事ですが、こんなheatmapを10行程程度のコードで描画できてしまうなら、学習意欲が湧いてきますよね。 とは言え、いきなりheatmap描くような大そうなデータは持ち合わせていないので、我が家の家電製品の消費電力データを使って基本的なグラフを描画してみようと思います。 $ cat 冷蔵庫.csv
リンクバルの川畑です。AWSのEC2インスタンス上にある開発環境など、営業時間外は誰も使用しないので停止して少しでも費用を抑えたいところです。この課題を解決するために、AWS Lambdaのスケジュール機能を利用してEC2インスタンスの起動・停止する検証をしました。 AWS Lambdaのスケジュール機能の良いところ 個人的にAWS Lambdaを使いたいから。。。というのもあるのですが、実際にAWS Lambdaのスケジュール機能を利用するメリットとしては次のポイントが挙げられます。 Linux上のcrontabを設定する場合、1台サーバを常時起動しなければならないがAWS Lambdaではサーバ不要(Server Less) 常時起動しているサーバが単一障害点になるが、AWS LambdaではマルチAZで構成されか可用性が高い(High Availability) スケジュールがAWS
小ネタです。 Amazon EC2上でPythonを使う際、状況に拠ってはPython3系を用意したいという場合があるかと思いますが、現行新規に作成したEC2(Amazon Linux AMI)の場合は環境がPython3系ではありません。 この環境に手を加えてPython3系の環境を準備する手段は幾つかあるかと思いますが、AWSプレミアムサポートのナレッジベースのページに、virtualenvを使った非常にシンプルな環境準備の方法が展開されていましたのでサクッとご紹介してみたいと思います。 Create an isolated Python 3.4 environment with Boto 3 on EC2 using virtualenv まずはじめにEC2環境を用意します。起動時点でのAmazon Linux AMIを選択し、インスタンスを起動。 サーバにログインし各種更新作業を行
Sparkで距離計算をしてみる。 データは (key, [v1, v2,..., vn]) というタプルのリストであるとする #直積で全ペアの作成(AはRDDで上のようなリスト) B = A.cartesian(A) # ((a, a), (a, b), (a, c)...) が生成され、aが上の(key, [val]) #キーと値をそれぞれタプルに分離 C=B.map(lambda x: ((x[0][0], x[1][0]), (x[0][1], x[1][1]))) #自分との距離は無視 D=C.filter(lambda x: x[0][0] != x[0][1]) #numpy でベクトルの引き算、内積、sqrt E=D.map(lambda x: (x[0], np.array(x[1][0])-np.array(x[1][1]))) F=E.map(lambda x: (x[
オールアバウトのsankameです。 突然ですが、Webブラウザのテストってやりずらいですよね… ブラウザ毎に挙動が違ったり、結局、担当者頼みになって、その人が代わったらまた障害が起きて…と。 エンジニアならこういう問題はさっさと自動化してスマートに解決したいものです。 ※このアプリのソースコードはページ末尾のリンクからご利用下さい。 …とは言え、「なる早でリリースを」という場面ではテストは後回しにされがちで、さらに第2フェーズが始まると尚更テストに時間を割くのが難しくなります。(※1) オールアバウトではユニットテストがまだ全アプリに入っていない状況ですが、とにかくハードルを下げつつ半年ほど前からE2Eテスト(※2)を実施しています。(※3) (※1) オールアバウトには専任のQAチーム (Quality Assurance)がないため、開発エンジニアがそれを担当しています。 (※2
本日 8/24 発売の WEB+DB PRESS Vol.94 で、 特集1「[鍵は監視にあり!]実践スケーラブルAWS 規模に適した設計,負荷に応じた増減,障害への自動対応」 の第3章から5章を執筆しました。 gihyo.jp 謝辞 株式会社技術評論社 WEB+DB PRESS編集部様からご恵贈いただきました。ありがとうございます。 また、この度は執筆の機会をいただきましたこと重ねて御礼申し上げます。 もともと、fujiwara さん宛てに執筆依頼があったのですが、 無理を言って共著で書かせていただくことになりました。機会をいただきありがとうございました。 特集「実践スケーラブル AWS」について この特集では、AWS で1〜100台規模のサーバを運用する際、どのようなことを考えて設計するとスケールしやすくなるのか解説しています。 今まで WEB+DB PRESS またはその他の雑誌で、
最近 Fluentd の通信プロトコルまわりをアップデートするためにあれこれいじっている*1んだけど、これはおおむね fluent-plugin-secure-forward がサポートしていた内容を Fluentd 組込みの forward plugin でもサポートしますよ、というものになる。 んで問題なのが secure-forward は SSL/TLS での接続のみしかサポートしてなかったんだけど forward では生の TCP で通信する*2ので、本当に secure-forward と forward それぞれの実装間で互換性が保たれているのか、直接的には確認する手段がない、ということになってしまう。 TCP server の SSL/TLS 化 一方世の中には SSL/TLS ターミネータという機能があって、たとえばロードバランサなんかがこの機能を持っている。何をやるかと
Webでのプッシュ技術 HTTPはクライアント(ブラウザ)からリクエストしてサーバからレスポンスが返る一問一答型のプロトコルなので、基本的にはサーバ側からブラウザに新着情報をリアルタイムで通知(プッシュ)できるようにはできていません。 しかしそれでもプッシュをしたいという場合にどうするかという話が出てきます。やり方には以下のようなものがあります。 ポーリング クライアントからサーバに定期的に新着を問い合わせるようにします。 最も原始的かつ確実なやり方。欠点は、最大でポーリング間隔の分だけ通知が遅延しうることです。 ロングポーリング(“COMET”) ポーリングなのですが、問い合わせを受けたサーバは新着情報がなければレスポンスを返すのをしばらく保留します。 そのあいだに新着情報が発生すれば即座にレスポンスを返しますし、一定時間経過したら何もなかったとレスポンスを返しましょう。 飛び交う通信内
JSON Processing Java API for JSON Processing (JSR 353) の RI 実装を見ていたらこんなコードがありました。 abstract class JsonNumberImpl implements JsonNumber { // ・・・略 // Optimized JsonNumber impl for int numbers. private static final class JsonIntNumber extends JsonNumberImpl { private final int num; private BigDecimal bigDecimal; // assigning it lazily on demand // ・・・略 @Override public BigDecimal bigDecimalValue() { /
ここでは少しの間、自律走行車のことは忘れてください。物事は深刻になってきています。この記事では、独自のコードを書くマシンを作ることに的を絞って話を進めていきたいと思います。 GlaDoS Skynet Spynetを使用します。 具体的に言うと、Pythonのソースコードを入力することで、自分でコードを書くように、文字レベルでのLong Short Term Memoryニューラルネットワークを訓練していきます。この学習は、TheanoとLasagneを使って、EC2のGPUインスタンス上で起動させます。説明が曖昧かもしれませんが、分かりやすく説明できるように頑張ってみます。 この試みは、 こちらの素晴らしいブログ記事 に触発され行うに至りました。皆さんもぜひ読んでみてください。 私はディープラーニングのエキスパートではありませんし、TheanoやGPUコンピューティングを扱うのも初めてで
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く