この記事は新しいサイトに移転しました。 約3秒後に自動的にリダイレクトします。 リダイレクトしない場合はこちらをクリックしてください。
Lobiチームの長田です。 今回はLobiで使用しているデータベースの構成・運用について紹介します。 TL;DR メインのデータベースとしてMySQLを使用 一般的なmaster-slave構成 HAProxyとMHAでDBのfailoverを自動化 HAProxyでslaveへの接続を分散・死活監視 MHAで障害時のfailover・ENIを付け替えてmaster切り替え で、何が起こるの? サービスが提供できなくなります。 ユーザーの認証情報等、サービス提供に必要不可欠なデータを管理しているため、一時的なサービス停止は免れません。 ユーザー体験的にもビジネス的にも、大変厳しい状態です。 この「一時的」な時間を可能な限り短くするために障害復旧の一次対応を自動化しています。 自動化のメリットとして、単純にサービス停止時間が短くなることはもちろん、 復旧処理を行う際の人的なエラーを未然に防ぐ
The document discusses the benefits of exercise for both physical and mental health. It notes that regular exercise can reduce the risk of diseases like heart disease and diabetes, improve mood, and reduce stress and anxiety levels. Exercise is also said to boost brain health and function by improving cognitive abilities and reducing the risk of conditions like Alzheimer's disease and dementia. A
nginxがログに出力する時刻はリクエスト処理が終わった時点の時刻のため、障害対応時など、いつ開始したリクエストから問題が出たのかを調査するために開始時刻もログにだしたいことがあります。 nginx単体ではリクエスト開始時刻にアクセスする方法が見つけられなかったのですが lua-nginx-module を使うと以下のようにできました。 set_by_lua_block $start_time { return os.date("%Y-%m-%dT%T%z", ngx.req.start_time()); } ngx.req.start_time() でリクエスト開始時刻のunix timeが取れるので、それを os.date() でフォーマットして変数に設定し、ログでは $start_time 変数を出力する形です。
はじめに Android Studio に用意されたスターター(テンプレート)を使用して開発を始めると androidTest というディレクトリが用意されています。容易にユニットテストやらUIテストが書ける仕組みが用意されているのかな、と期待するのですが、とくにそのようなものは見当たりません…。 そこで、新たにプロジェクトを始める前提で、テストツールの準備をしてみました。ソースコードはこちらにありますので、あわせてご参照ください。 可能にしたいこと ユニットテストを実行したい クラス単体の機能を実行したい。IDEのなかで簡単に実行できて、デバッグもできるようにしたい。 モックを使いたい ユニットテストをするにあたって、他所に依存している機能(たとえば外部APIへのアクセス)をモックで代用したい。 自動のUIテストをしたい UIへのインプットをエミュレートしたうえでのテストをしたい。 導入
About the content This talk was delivered live in March 2017 at try! Swift Tokyo. The video was recorded, produced, and transcribed by Realm, and is published here with the permission of the conference organizers. Libraries are the future for sharing your code, but they’re also fraught with peril. Platforms, package managers and tests are all crucial for your successful library! In this talk from
人工知能ブームによって機械学習にも注目が集まっています。注目とともに、機械学習に関連したクラウドサービスや事例が様々な業界や分野で発表されています。クラウド形式の機械学習サービスとしても、APIを中心に提供されているものから、プラットフォームとして提供されているものなど様々です。本稿では、機械学習を始める際に検討すべきことについて紹介していきます。最後に、Oracle Cloudで機械学習環境を構築する際のステップについても触れます。 さあ、機械学習を始めましょう! 第3次人工知能ブームによって、人工知能が急激な盛り上がりを見せています。その技術の1つである「機械学習」にも大きな注目が集まっており、機械学習の名を冠したサービスや事例が多数発表されています。特定のテクノロジーが1つの業界で盛り上がることはありますが、機械学習への注目はあらゆる業界を巻き込んでおり、いわば社会現象ともいえるでし
なぜかあまりやっている人を見ない、ディープラーニングを使用した株価の予想をしてみます。 ディープラーニング、Pythonともに初心者です。ライブラリ、実装方法、理論等は殆ど分かっておりません。ツッコミ等お待ちしています。 目標 数日分の株価データを使用して、翌日の日経平均株価が「上がる」か「下がる」か「変わらず」かを予想します。(分類) 概要 「上がった」か「下がった」か「変わらず」だったかの判断には翌日の終値をベースに判断。 入力データは数日前から前日までの「始値」「高値」「安値」「終値」を使用。 隠れ層は4つ。 入力として上記過去数日分の株価をぶっこんでトレーニングするだけです。 環境 TensorFlow 0.7 Ubuntu 14.04 Python 2.7 AWS EC2 micro instance 内容 準備 可能な限りの日経平均のデータを用意します。今回はYahooファイナ
I think I just made go-github 4x faster in 4 lines of code (and 4hrs). Always make sure you are reusing connections! https://t.co/ORCv1a4prv — Filippo Valsorda (@FiloSottile) March 27, 2016 go-github という、Google が開発している GitHub API ライブラリがあるのですが、今回 filosottile さんがたった4行のコードで実行速度を4倍にするという pull-request を書きました。 いったいどういう事かというと、golang の json.Decoder を使って http.Response.Body から JSON を読み取ると最後の改行(EOF)が読み込まれずに残
http://qiita.com/mizchi/items/3bbb3f466a3b5011b509 で紹介したモダンJSスタックの上に、flowtype を導入して型をボトムアップに追加していくアプローチを紹介します。 なぜflowtypeか、そのゴールは 流行っているライブラリのみを組み合わせて使う場合や、バックエンドとの連携において型が十分に提供される環境なら、正直、flowtypeよりtypescriptでいいと思っています。flowtypeが力を発揮する環境は、既存のJSが大量に存在する環境や、railsなどの動的な型のフレームワーク環境で、静的な定義が抽出できない環境だと思います。 よほど品質が低いライブラリを使わないかぎり、バグはほとんど自分が記述したコードによって発生します。なので、まずは「自分が書いたコードのIFを明確にし、その静的なチェックを行なう」、というのを最初の目
レスポンシブ用のMedia Queriesを使う時に「@media (min-width: 400px) {}」のように「px」を単位に使用している人も多いと思います。しかし、px指定には注意が必要です。 Webページでよく使用される条件で検証を行い、Media Queriesでなぜpxを使ってはいけないのか、そして何が適しているのかが分かる検証記事を紹介します。 PX, EM or REM Media Queries? 以下、各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様に許可を得て翻訳しています。 はじめに pxとemとremの検証方法 検証1. html要素でfont-sizeを指定 検証2. ブラウザでズームが可能 検証3. ブラウザでフォント設定が変更可能 検証の結果 はじめに あなたはMedia Queriesで使う単位にpx, em, remのどれが一番
概要 bottlenoseについて インストール方法 ItemLookupで商品情報をxml形式で取得する サンプルコード 実行結果(item要素のみ抜粋) xmlをパースする サンプルコード 実行結果 最後に お薦め書籍 概要 Product Advertising APIについては、Product Advertising APIから。 基本的に上記の通りのルールでプログラムを書けばいいのだが、面倒臭い。 APIのラッパー的なものが既に作られているのであればそちらを使ったほうが早い。 プログラムもPerl,Python,Ruby,PHPなどいろいろあるが、好きなものを選べば良いと思う。 Pythonのライブラリではbottlenoseが使い易そうだったので使ってみた。 ちなみに、AWSAccessKeyId、AWSSecretKey、AssosiateIdなどの取得の方法は、省略する。。
フロントエンド速度改善をしようとして参考にしたもの - $shibayu36->blog; という記事を以前に書いたのだけど、結局何をやったか書いて欲しいと社内で言われたので、今回のフロントエンドの速度改善でやったことについて書いてみる。そこまで大したことはやってないので参考程度にどうぞ。 前提 ページのレンダリングが遅いと思い始めたので改善をすることになったのだが、改善をし始めたところChromeのアップデートがあり爆速になってしまった(FirefoxやSafari等はもともと速かった)ので、では明らかにやったほうが良いことだけやりますかという話になった。そのためあんまりbefore/afterもちゃんと取っていないので、今回はやったことの紹介くらいに留める。 やったこと 計測や調査をしてみたところ、以下のようなことはやってしまったほうが良いということになった。 静的ファイルに適切にEx
クレジットカード登録なしで使えるGAE先生、無料で使うための設定方法が変わっていたのでメモ。 ポイント 1日あたりのインスタンス時間が無料範囲ないを超えないように設定する 設定方法はGoogle Developers Consoleではなく、yamlで行う 超えちゃうと503となってしまう 日本時間の16時にリセットされる模様 golang想定だけど、Python・PHPも同じ気がする フロントエンド インスタンス時間 1日あたりF1で28インスタンス時間が上限(F2だと半分の14時間) インスタンスクラス(instance_class)をF1に設定(デフォルトはF2) 最大インスタンス数(max_idle_instances)を1つに設定 app.yaml instance_class: F1 automatic_scaling: min_idle_instances: automati
城陽人 @minamijoyo 今日のイベント。 #cwmeetup / “Rails Upgrade Casual Talks - CrowdWorks Tech Meetup | Doorkeeper” htn.to/9CFtYdJ 2016-03-28 19:28:38 リンク CrowdWorks Tech Meetup Rails Upgrade Casual Talks 2016-03-28(月)19:00 - 22:00 Rails Upgrade Casual Talks クックパッドとクラウドワークス共催でRailsのアップグレードに関するTech Talkイベントを開催します。 Ruby on Rails ver 5のリリースが間近に控えている中、Railsで作られたサービスを開発しているエンジニアは、サービスを稼働しながらRailsのアップグレードに迫られています。
ソフトウェアエンジニア向けの自動コードレビューサービス「SideCI」を運営するアクトキャットは3月29日、事業の拡大を目的に、ベンチャーユナイテッド、YJキャピタルが運営するファンドから資金調達したと発表した。調達額は数千万円規模。 SideCIは、GitHub上でのコードレビューを自動化するサービス。エンジニアに代わって、ソースコードを解析し問題点を指摘することで、コードのレビューにかかる時間を削減するとともに、ソフトウェアの品質向上を図れる。GitHubの公式連携サービス(GitHub Integrations)に掲載され、海外ユーザー比率が増加するなど、日本発のエンジニア向けサービスとして拡大を進めている。 同社では、現在までにコードレビューの自動化機能をRuby、PHP、JavaScript、Python、Goなどの複数言語に提供するとともに、一部言語にレビューでの指摘内容の自動
ブースティングはアンサンブル学習の一つです。アンサンブル学習では、性能の低い学習器を組み合わせて、高性能な学習器を作ります。教師あり機械学習の問題設定の復習から始めて、バギングやブースティングのアルゴリズムについて解説します。 レトリバセミナーで話したときの動画はこちらです: https://www.youtube.com/watch?v=SJtdG62691g
サイトを運用していると、例えばトップページのサイドバーにバナー画像を出したくなったり、ユーザーへの告知用のメッセージをトップページに出したいなどということがあります。この時、自由にその場所のHTMLを書き換えたいけど、書き換えるたびにコードをデプロイしないといけないと大変です。そこで、今回はGoogle Tag Managerを使ってバナーやメッセージを配信するのを試してみたので紹介します。 どうやってやるのか Google Tag ManagerはAnalyticsの設定を入れたり、任意のHTMLを入れたりなど、Googleの管理ツールを触るだけで簡単にサイトにタグを入れたりできるツールです。そしてGoogle Tag ManagerのカスタムHTMLというのを利用することで、自分の好きなHTMLタグをサイトに差し込むこともできます。 これを利用して、カスタムHTMLにバナーを入れるため
開設ストア数50万を超え、絶好調のオンラインストア開設サービス《STORES.jp》。躍進のウラでリニューアルが行なわれていたのをご存知だろうか。しかも、リニューアルすることで一度離れたのにSTORES.jpに戻ってきたユーザーもいたという。彼らは一体何を仕掛けたのか? STORES.jpリニューアルの3つのポイント 2016年1月26日に行なわれたリニューアルが絶好調だという《STORES.jp》。特に注力したのがストアオーナーが利用する管理画面リニューアルだそうだ。その結果、アクティブ利用率が15%UP、管理画面の直帰率が50%ダウン、さらには一度STORES.jpを離れたストアオーナーが戻ってくるなど結果がすでに表れている。一体、彼らは何をしたのだろうか。3つのポイントに分けてお届けする。 【1】目的の明確化と開発チームを交えたユーザーインタビュー 【2】キーワードはパーソナライズ
LEARN TO HACK Hacker101 is a free class for web security. Whether you’re a programmer with an interest in bug bounties or a seasoned security professional, Hacker101 has something to teach you. Start hacking! Capture the Flag Put your skills into practice with CTF levels inspired by the real world Check out CTF
先日のJAWS-UG アーキテクチャ支部 クラウドネイティブ分科会 CDP議論会 #7で、Lambdaを利用したクローラー/Webスクレイピングについての発表をしてきました。 発表の経緯 そもそも何故アーキテクチャ支部でクローラー/Webスクレイピングの話をしたのかです。クラウドネイティブ分科会では、ここ数回Lambdaの実践的な活用について議論しています。利用パターンとしては、システムの中核となる部分とそれ以外の部分があるよねという前提がでてきました。そして、それ以外の周辺分野から利用していくほうが実践導入は早そうなので、そこで使えるパターンを議論してきました。その中で、出てきたのが下記の5パターンです。 ・監視 ・通知 ・フィルター ・コンテンツ確認(Validation) ・チャットOps ※この辺りについてはアーキテクチャ支部のGitHubのIssueに記載されているので、興味ある
強化学習の一手法であるQ-learning とディープニューラルネットを組み合わせた Deep Q Network、通称DQNを使って倒立振子の振り上げ問題を解決してみます。 問題設定 「倒立振子の振り上げ問題」というのは、今回はこういう問題設定です。 まず空中に静止したモータがあって、モータ軸に棒の一端がつながっています。棒は中心に質量が集中していて剛性$\infty$で太さ0の、よくある棒です。初期状態では棒は重力にしたがって下向きにぶら下がっています。この状態から振り子を振り上げて倒立状態で静止させてください、という問題です。古きよき制御工学では、振り上げ用と静止用に別設計されたコントローラを2つ用意して切り替えるなど、非線形要素を含むコントローラを用いて対処することになります。いや、やったことないですけど、そうらしいです。 今回は、モータは右か左に一定トルクの回転しかできない、とし
Join over 27,880 front-end software engineers for one weekly email. Read handpicked articles with short summaries. Save time on finding worthwhile content. Learn something new every week. What our readers say about the newsletter? A great newsletter as always with well-written useful articles. So much to know and it is constantly evolving. Thank you for keeping us up to date. Really got a lot out
一昔前まではjavascriptを使ったSEOに弱いというのがあったりしましたが、今ではGooglebotが大分賢くなりjavascriptを実行できるようになってきてます。 とはいえ何も考えなくてもいいかというとそうでもないので、javascriptを使った場合にSEO対策として意識しないといけないことをまとめてみました。 いろいろ書きましたが、 Hisory APIを使ってURLをきちんと書き換えよう っていうのが主です。(pjaxと呼ばれている手法です) クリックやスクロールでDOMを生成するコンテンツはインデックスされない ページロード時点ではhtml内に生成されていないが、あるイベントが起きた時にDOM要素を生成するパターン。 Qiitaで言うとTOPページ下部にある「もっと見る」とかがそうですね。 Googlebotはjavascriptを実行することはできるのですが、clic
「翻訳: WebAPI 設計のベストプラクティス」を読んで色々と思うところがあったので書きました。 上記の記事は訳文でありますので、正しくは「Best Practices for Designing a Pragmatic RESTful API」に対する所感と述べた方が良いのかもしれませんが、日本語で通して読めるよう Qiita に投稿された訳文に対する所感として書いています。 以下では「翻訳: WebAPI 設計のベストプラクティス」並びに「Best Practices for Designing a Pragmatic RESTful API」は「当該記事」と表現します。 観点 当該記事では「○○とした方がよい」との意見に対してそうすべき理由が明らかになっていないか、もしくは表現が曖昧な場合が目立っていると感じました。設計は実装のようにプログラム言語仕様が制約を与えられないため、意図
Shibuya.XSS techtalk #7に参加してきたのでメモ 超絶技巧 CSRF - mala スライド: 超絶技巧CSRF / Shibuya.XSS techtalk #7 // Speaker Deck CSRFについて クロスサイトでリクエストを強制する脆弱性 書き込み パスワードの削除 未だによくある XSSは正しく書いていれば防げる CSRFは未だによくある CSRFは事後対処になりやすい 投票とか掲示板とか事後対処になりやすい リスクの高いCSRFの紹介 アカウント乗っ取り 危険なCSRF パスワードの変更 メールアドレスの変更 連携アカウント追加 OAuth2.0 + stateパラメータで防げる いろんなものにCSRFする JSONやXMLを送る form enctype=text/plainを使う CSRFでmemcached protocolとして解釈可能なも
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く