DockerCon 2017で発表されたMoby Projectの紹介 https://www.meetup.com/Docker-Tokyo/events/239175330/Read less
![Moby Project](https://cdn-ak-scissors.b.st-hatena.com/image/square/771ee724528ef30a313dc1d4f9e7690a1f3db871/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fdockertokyo-20170427-suda-170427080726-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
もういい加減いい年なのに、朝まで設定と格闘していたので、今日はまともに活動できる気がしません、しょっさんです。 それと、こないだも書いたとおりお酒飲むとまともに寝られなくなってしまうので、今週は動けなくなった日が数度あって、ほんとしんどいです。池袋のカフェで寝落ちしそうな人がいたら、きっとしょっさんです。 Rancher で気軽に遊んでいたら、ドハマリした件 さて Rancher です。Docker をカンタンに使うための OSと、複数ホストを一元管理して docker-compose させてくれる、とても初心者に優しいツール群です。しばらく忙しくて放置してたんですが、そろそろ古いサーバを一掃したいので、もろもろを Rancher 上の Dockerコンテナに移設したく、Wordpress のサーバを作りながら色々と学んできました、この二日間。発展途上感もありますし、いくらか課題が出てきて
こんにちは、あっという間に社内勉強会の順番がやってきそうでフルえているコシゴエです。気がついたら二年近く会社ブログを書いていませんでした…。 最近、ようやく重い腰を上げて Docker と CircleCI 2.0 を使い始めたので、E2E テストでの活用を試みている話をしたいと思います。 はじめに 突然ですが、弊社プロダクト dfplus.io では、TestCafe を使用して E2E テストを自動化しています。 dfplus.io は、異なるリポジトリで管理しているフロントエンド(JS)とバックエンド(Ruby)から構成され、E2E テストはフロントエンドのリポジトリで管理しています。E2E テストはリポジトリへの push をトリガーに CircleCI で実行し、このときのバックエンドは E2E 用に用意した共用環境(Heroku 環境)を利用しています。 E2E テストをしばら
訳者より この文書はDocker社の許可を得てBest practices for writing Dockerfilesを翻訳したものです.原文に基づき,ライセンスはApache License2.0とします. 稚拙な訳であるとは思いますが,Dockerfileを書く際にお役に立てればと思います.途中,意味不明な文章があり,すみません. 今はまだ稚拙な訳ですし,膨大なドキュメントの1つを翻訳したに過ぎませんが,修正を重ねて翻訳数を増やして行き,将来的にはDocker公式リポジトリに追加できればと思っています. 概要 Dockerは与えられたイメージを構築するために必要なすべてのコマンドから構成されたテキストファイルであるDockerfileから,手順を読み込むことで自動的にイメージを構築することができます.Dockerfileは仕様書に忠実に一通りの手順仕様として使われます.あなたはDo
これは NIFTY Advent Calendar 13日目の記事です。 ニフティ(新卒2年目)の @ntoofu です。 昨日は @umiiiiins さんの botocoreとpythonでニフティクラウドAPIを簡単に使う という記事でした。 私は、自社サービスを利用する話ではなく、業務中に行っていた取り組みに関する話をしたいと思います。 要約 Ansibleのインベントリファイルとして管理している構成情報を流用性のためにグラフDB(Neo4j)に格納し、Dynamic Inventoryとして扱えるようにしました。 経緯 サーバやネットワークの情報が分散・重複して管理されている 情報を統合するために、構成情報をまとめてグラフDBで管理してみようと考えた サーバとサーバが接続するネットワークのように、管理情報間で関係を持つことが多いから 登録する項目が増えたりすることも考え、柔軟性の
菊池です。 先日のブログで紹介しました通り、Database Migration Service(DMS)の移行元データベース(Source)としてMongoDBが設定可能になりました。 AWS Database Migration Service Adds Support for MongoDB and Amazon DynamoDB Using MongoDB as a Source for AWS Database Migration Service Database Migration Service の Source に MongoDB が選択可能になりました! 今回は、DMSでMongoDBからマイグレーションする際の、2つのマイグレーションモードについて調べてみました。 マイグレーションモード MongoDBからのマイグレーションには、以下の2つのモードがあります。 テーブル
菊池です。 先のブログで紹介しました通り、Database Migration Service(DMS)を使ってMongoDBを移行する際には、2つのマイグレーションモードがあります。 [DMS] MongoDB Sourceのマイグレーションモードを比較する 特に、テーブルモードでは、キーの追加が反映されないケースがあるなど、注意が必要です。今回は、DMSのCDCを使って、MongoDBからテーブルモードでS3に色々なデータパターンでの出力を検証してみました。 検証 SourceとしてEC2で動作するMongoDBのレプリカセット、TargetとしてS3を利用します。CDCを有効にしたタスクを実行したまま、MongoDBにデータを投入していきS3に出力されるファイルを確認します。 初期データのマイグレーション まずはデータを1つMongoDBに挿入し、レプリケーションを実行します。 s0
Apache Luceneでちょっと気になっていた機能として、Flexible Query Parserがあります。 org.apache.lucene.queryparser.flexible.core (Lucene 6.5.1 API) Apache LuceneのQueryParserといえば、Classic Query Parserです。 org.apache.lucene.queryparser.classic (Lucene 6.5.1 API) QueryParserとは? Apache LuceneのQueryは、TermQuery、BooleanQuery、FuzzyQuery、PhraseQueryなどいろいろありますが、特定のルールに則った QueryStringを与えるとパースして、その内容からApache LuceneのQueryを生成してくれるパーサーです。
Apache Kafkaを管理するためのツールとしてkafka-managerというものが便利らしいので、kafka-managerを インストールして簡単に確認してみます。 GitHub - yahoo/kafka-manager: A tool for managing Apache Kafka. 今回使用するkafka-managerのバージョンは、1.3.3.6とします。 kafka-managerとは? 文字通り、Apache Kafkaを管理するためのツールですが、次のようなことができるそうです。 複数のクラスタの管理 topic、consumer、offsets、broker、replica distribution、partition distributionを簡単に確認 パーティションの作成と割り当て Topicの作成(設定含む) Topicの削除 Topicの一覧表示
Kafka と ZooKeeper ZooKeeper の詳細 ZooKeeper は、分散アプリケーションのためのオープンソースの分散コーディネーションサービスです。ZooKeeper は Java で動作し、Java と C のためのバインディングが用意されています。 クラスタ (マルチサーバー) セットアップ ZooKeeper は奇数単位でアンサンブルと呼ぶクラスタを組みます。アンサンブルの過半数が動作している必要があるので、奇数台のマシンを使うのがベストです。たとえば 4 台のマシンを使う場合、ZooKeeper が対応できるのはマシン 1 台の障害までです。2 台のマシンに障害が発生すると、残りの 2 台では過半数にならないためです。5 台のマシンを使えば、ZooKeeper はマシン 2 台までの障害に対応できます。 その中の 1 台がリーダー選挙を通して全ての書き込みを調停
Apache Kafka は OSS の分散型メッセージングミドルウェア。 似た性質を持ったソフトウェアとしては ActiveMQ や RabbitMQ などが挙げられる。 ただし、ActiveMQ や RabbitMQ との大きな違いは、独自のバイナリプロトコルを用いてメッセージをやり取りするところ。 ActiveMQ や RabbitMQ は標準化された AMQP や MQTT を扱う場合が多い。 独自プロトコルというと、なんだか未来が無さそうなイメージがあるけど、その逆で Kafka はビッグデータ処理の場面ではほぼデファクトの位置にあるようだ。 今回は、そんな Kafka を手元の Mac でさくっと試してみることにする。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.4 BuildVersion
Table of contents Introduction Manual Dependency Injection Using MacWire for wiring Simple scoping Modularising object graph creation Multiple implementations Testing Interceptors Advanced scoping Factories Accessing the object graph dynamically Multiple instances DI in Akka Comments Introduction ↟ Back to top ↡ Comments Dependency Injection (DI) is a popular pattern which encourages loose couplin
スコープ Web屋さん向け。また、やや実践寄りかも、と思います。 Akka HTTPからAkka Streamへのつなぎ込み GraphDSLを用いて、簡単なフローグラフの構築 とりあえず書いてみた 調査とかトライアンドエラーがけっこう苦労した libraryDependencies ++= { val akkaV = "2.4.3" Seq( "com.typesafe.akka" %% "akka-stream" % akkaV, "com.typesafe.akka" %% "akka-http-experimental" % akkaV ) } package mananan.eval.akka.stream import akka.actor.ActorSystem import akka.http.scaladsl._ import akka.http.scaladsl.mod
Sparkを触る機会が増えてきてるので、知識の棚卸しを兼ねてMLlib使ってレコメンデーションシステムを実装してみました。SparkSamit2014などMLlibのチュートリアル的に色々使われているSparkのMovie Recommendationですが、edXのIntroduction to Big Data with Apache Sparが内容的にも良さそうだったので、題材にしながら実装しました。本講座はSpark 1.3.1での実装ですが少し古すぎるので、1.6.1で使える機能は使う形でコード変えてます。 おおまかな手順 ①データの準備 元データを訓練、評価、テストデータにそれぞれ分割 ②評価数500以上の映画の中から平均評価点が高いものを表示 ③協調フィルタリングの実装 ④訓練データに自分をuserID"0"として加え、好きな映画を評価 ⑤自分の評価をもとに、アルゴリズムに映
はじめに CloudFormation デザイナーは、WebブラウザからCloudFormationテンプレートを作成、編集できるツールです。 グラフィカルな画面でテンプレートを閲覧、作成したり、便利なエディター機能を利用できます。 JSONにのみ対応していましたが、アップデートにより、YAMLにも対応していました! サンプルテンプレートを開いてみた AWS CloudFormation ユーザーガイドには数多くのサンプルテンプレートが公開されています。 東京リージョンの"Elastic IP アドレスを持つ Amazon EC2 インスタンス"テンプレートをデザイナーで表示してみました。 デザイナーで表示 を選択すると、デザイナーが起動します。 画面上部がキャンバスペイン、下部がテキストエディターです。 キャンバスペインから、EC2、EIP、セキュリティグループのあるテンプレートだとわか
はじめまして。16卒で入社したエンジニアの渡部です。 現在は転職会議のプロダクト開発グループに所属していて、最近は会員情報ページのフロントエンド開発を行っています。 今回はReact化にあたって直面した問題、それを解決するために採用・参考にした技術を幾つか紹介したいと思います。 コード例はTypeScriptで書いています。 目次 型を欲する声の高まり(TypeScript) action層の肥大化(redux-observable) formのvalidation(Computing Derived Data(reselect)) viewをシンプルに保つ(High Order Components) 型を欲する声の高まり(TypeScript) react-reduxで実装していると関数から関数へと値を引き回すので、型をつけて安心して実装したいという声がチーム内で高まってきました。 そ
以前、別の記事でAkka製のチャットサーバを作ったのでシンプルなクライアントアプリも作りました。 バージョン情報 パッケージ名 バージョン WebSocketとSubjectの連携イメージ RxJSの部品は、今回 Subject を使います。Subjectは、定義したバックエンドのデータソースを Subscribe することができ、なおかつバックエンドに対して next によりデータを送出する能力をもっています。一方でWebSocketはコネクションが成立した後、 onmessage イベントに対するハンドラを登録してデータ受信時のアクションを定め、 send によってデータを送信します。この時点で Subject と WebSocketは相性が良いのではないかと考えました。実際この考えを実装した先人がいます。 WebSockets with Angular2 and RxJS – Łuk
概要 自分用のメモとして、機械学習に関する情報を浅く ( それなりに ) 広くをモットーに、ざっくり整理してみました。 少しでも、他の方の理解に役立ったら嬉しいです。 機械学習とは コンピュータプログラムが経験によって自動的に出力結果を改善していく仕組み。 機械学習の代表的な手法について記載します。 1.教師あり学習 2.教師なし学習 3.強化学習 に分けて記載しました。 ※概要説明は一例です。 1.教師あり学習 1-1.線形回帰 予測したい値を算出する式を連続する多項式として表し、各係数を最小二乗法や最尤推定法で求めることでモデルとなる式を決定する Pythonライブラリ:scikit-learn(sklearn.linear_model.LinearRegression) 参考:最小二乗法による線形回帰のアルゴリズム (自身のQiitaの過去記事です) 1-2.ロジスティック回帰 2択
はじめに Dockerは個人的には色々便利なんだけど、オンプレな本番環境に適用するメリットあるかな? とたまに思います。 Infrastructure as Codeは別な方法でも実現できますし。 Googleとかもコンテナは分散システムの基盤としてを重要視してるように感じるので、本番環境に適用する決め手はこっちかな、と思っています。 なので、今回は思考の整理に、近代的な分散システムってなんで要るんだっけ? というのをまとめてみました。 分散システムとは? 分散システムと聞くと何を思い浮かべますか? SparkやHadoopですか? それともUnixやダウンサイジングですか? この記事を見る人の多くは前者を思い浮かべると思うのですが、Wikipedia的には後者の意味で記載されています。 分散システム - Wikipedia 前者は分散コンピューティングとして扱われてますね。英語でも同じか
先程の記事に引き続き、AWS LambdaでPython3.6が使えるようになったので、過去にPython2.7で書いたバッチ処理のレガシーコードをLambdaに移行しています。 まずは、下の記事で書いた「ツイッターを検索した結果を自動リツイートする」コードを移行します。今見るとけっこうコード酷いですね。 kiito.hatenablog.com Pythonのコードを書き直す AWS Lambdaの流儀に従ってコードを書いていきます。 ここではlambda_function.pyにlambda_handlerという関数を用意して、実行するように設定することとします。 後述しますが、アクセストークン等は環境変数で渡しています。 import os import time from datetime import datetime import twitter TARGET_TERMS =
この間AWS LambdaでPython 3.6がサポートされたので、レンタルサーバーで動かしているTwitterの自動投稿やクローラーを移行しようと画策しています。 AWS LambdaがPython3.6に対応したので使ってみた | Developers.IO 外部ライブラリ(twitterライブラリやBeautifulSoupなど)を利用使いたいので、zipで固めてデプロイする方法でいきたいのですが、いろいろ面倒そうなのでまずはその辺の煩雑な作業を自動化する手段でやってみました。 いろいろ調べていくうちに、以下の記事に紹介されている、「手元の環境で擬似的にLambdaを実行する」というDockerイメージが良さそうだったので使ってみます。 AWS Lambdaの開発環境を構築~docker-lambdaの紹介~ – クリエイティブ - ブログ - 株式会社テレビ朝日メディアプレックス
同僚と話している中で、unittest.mock.patchを使ったデコレータの差し替えに関する話題が出ました。 そういえばデコレータは差し替えたことがなかったため、試してみたことをメモします。 なお、「テストファイル群に、デコレータを差し替える/差し替えないものが混在している場合」で使った方法は強引な気がします。そのため、もしより良い方法をご存じであればご指摘ください。 目次 環境 用意したデコレータとプロダクションコード 引数なしのデコレータを差し替える 引数ありのデコレータを差し替える ダミー処理をするデコレータに差し替える デコレータの差し替え有無が混在する複数のテストファイルを同時に実行する場合 ソースコード 環境 Python 3.6.1 pytest 3.0.7 テストランナーとして使用 用意したデコレータとプロダクションコード デコレータとは、関数に処理を追加するためのシン
はじめに いくつかのソートアルゴリズムについてまとめてみました。 それぞれのポイントと Python での実装例、それぞれの速度の計測について記述しました。 なるべく組み込み関数を使わないように実装したため、あまり速度は出ませんが、sort() や sorted() より早いものを出来たらなと考えてました。 扱うソートアルゴリズム 扱うソートアルゴリズムは、 バブルソート (bubble sort) 選択ソート (select sort) 挿入ソート (insert sort) マージソート (merge sort) クイックソート (quick sort) カウントソート (count sort) 名称 平均計算時間 最悪計算時間 メモリ使用量 安定性
こんにちは、江口です。 前回に引き続き、pythonネタです。 皆さんは、同僚との会話で「この女優、どう?」と聞かれて困ったことはありませんか? 私はあります。そして、良いとも悪いとも思えず、なんと言いますか、興味が湧かない時が一番返答に困ります。 今回はズバリ「機械学習で好みの女性なのかどうか仕分ける!」です。 ネタではありますが、真剣です。これによりデータに基づいた返答ができるようになります。 ▼概要 1. 自分好みの女優の画像とそうでない画像を収集する。 2. 収集した画像から顔だけを抽出し、100×100にリサイズして保存する。 3. SVM分類器にかけて、機械学習を行い、学習結果をpickleに漬け込む 4. 女優画像が自分の好みかどうか判定する こんな流れになってます。 詳しい流れ、実装は後述するソース解説で紹介します。 ▼使用技術とその用途 ・python 3.6 ・scik
最近 Apache Spark について耳にすることが多い。 Apache Spark は、ビッグデータ処理における並列分散処理基盤を提供する OSS の一つ。 似たような用途としては Apache Hadoop も有名だけど、それよりも最大で 100 倍ほど高速に動作するんだとか。 高速に動作する理由としては、各ノードのメモリに乗り切るサイズのデータならディスクを介さずに扱える点が大きいらしい。 今回は、そんな Apache Spark を Mac OS X で軽く触ってみることにする。 本来であれば、用途的には複数のノードを用意して並列分散処理をさせるところだけど使うのは一つのノードだけ。 また Apache Spark を操作するには Java, Scala, Python のインターフェースがある。 その中でも、今回は Python のインターフェース (PySpark) を使って
AccessKey, SecretKey, AssociateTag を適当なものに変更して実行すると xmls ディレクトリに 145個のファイルが保存されます。1つのファイルには10冊までの情報が含まれ、合計1442冊の情報になります。 Python で実行 parse_amazon_xml.py # -*- coding:utf-8 -*- import time from lxml import objectify class ImageInfo: def __init__(self): self.url = '' self.width = '' self.height = '' class BookInfo: def __init__(self): self.asin = '' self.title = '' self.binding = '' self.author = ''
κeenです。 GoFのデザインパターンは有名ですが、言語機能によっては単純化できたりあるいは不要だったりするのでRust風に書き換えたらどうなるか試してみます。 発端はこのツイート。 デザインパターン、古いJavaの機能の足りなさのワークアラウンド的なテクニックも含まれてるからあまり宜しくないんだよね。enumやクロージャで十分なのもいくつかある。 Rustで写経、デザインパターン23種 - Qiitahttps://t.co/MhpS3Z2OlF — κeen (@blackenedgold) 2017年5月5日 一応誤解のないように説明しておくと、該当のQiitaの記事に不満がある訳ではなくてGoFのデザインパターンついての言及です。 リンク先のコードで十分な時にはここでは流すのでリンク先も同時に参照下さい。 また、比較しやすいようにサンプルコードはリンク先のものに則って書きます。
作った。GWの間、コンビニと近所のカフェ以外に外出してないし、ゲームもしてない。 https://mizchi-sandbox.github.io/rpg-prototype/ で触れる。デザインはしょぼい。Chrome以外で動いてる気がしない。 コードはここ https://github.com/mizchi-sandbox/rpg-prototype 仮素材はウディタに付いてくるサンプル素材をお借りした。 WOLF RPGエディター公式サイト 【RPG作成フリーソフト】 仕様 Spaceでポーズ&リスタート クリックでスキルの使用 一度スキルを使ったらクールダウンがある Player1 だけ操作できる あとはなんか察してほしい。 何故作ったか 前々から、ゲーム、とくにRPGを作りたいと思ってたのだけど、メインループがすんなり綺麗にかけたためしがない。趣味プロジェクトは技術的に辛いとやる
趣味で作ったwebサービスのリポジトリをgithubに公開して2ヶ月くらい フロントエンドのソースが雑だったので、リファクタリング中にした対応を紹介 前記事:Go + react + ansibleでサービスを作ってOSSにしてみた http://qiita.com/wheatandcat/items/66d72445ad0c5df2a8be github 記載している内容は、下記のリポジトリに取り込み済みの内容です。 うまく動かなかったら、こちらから動きを見てもらえたらと思います。 ■dotstamp_client https://github.com/wheatandcat/dotstamp_client flow javascriptでも型が使えるようになるライブラリ。 ファイル単位で実装していけるから、稼働中のプロジェクトでも柔軟に導入していけるのが魅力。 導入的にはファイルの頭に
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く