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

前書き coroutineはKotlin 1.1から搭載された新機能ですが、まだexperimentalなこともあってバリバリ使っている人は多くないと思われます。しかしながら、experimentalとはいえproduction readyなことは宣言されており、Kotlin 1.3ではexperimentalが外れる(予定の)ため、そろそろ学んでおいても悪くない時期になってきています。 そこで、この記事ではcoroutineを実践するにあたって抑えておくと役立つ知見を共有します。ご参考になれば幸いです! 注: この記事はKotlin 1.2.21, kotlinx.coroutines 0.22.5に基づいて書かれています。 coroutineとは何であって何でないのか coroutineとは何か coroutineとは何かを一言で表現すると、「中断可能な計算インスタンス」になります。こ
NTT データ数理システムでリサーチャーをしている大槻 (通称、けんちょん) です。 今回はソートについて記します。 0. はじめに データ構造とアルゴリズムを学ぶと一番最初に「線形探索」や「ソート」が出て来ます。これらのテーマは応用情報技術者試験などでも頻出のテーマであり、アルゴリズムの Hello World とも呼ぶべきものです。 特にソートは、 計算量の改善 ($O(n^2)$ から $O(n\log{n})$ へ) 分割統治法 ヒープ、バケットなどのデータ構造 乱択アルゴリズムの思想 といった様々なアルゴリズム技法を学ぶことができるため、大学の授業でも、アルゴリズム関連の入門書籍でも、何種類ものソートアルゴリズムが詳細に解説される傾向にあります。本記事でも、様々なソートアルゴリズムを一通り解説してみました。 しかしながら様々な種類のソートを勉強するのもよいが、「ソートの使い方」や
はじめに Swiftのソースコードが公開されてから1週間以上が経ちましたが、意外にもまだSwiftコンパイラの構造を解説した日本語記事が少ないので、書いてみることにしました。 SwiftコンパイラはC++で書かれていますが、適切なモジュール化とコーディングスタイルの統一により、とても読みやすいものになっています。 ざっくりとしか解説しませんのでコミッターになれるほど詳細な仕様まではつかめませんが、今後Swiftの仕様がわからなくてソースコードを参照するときの参考や、そもそもコンパイラの構造自体に興味を持っている方の助けになれればと思います。 自分自身Swiftのコミッターというわけではなく、単に少しコンパイラについて学んだことがあるSwift好きという程度ですので、間違っている箇所などあればどしどしご指摘ください。 注意事項 この記事で対象としているソースコードのリビジョンは公開時のもの(
ということで11月で835点を取ることができました。 2017/09でいったんスコアが下がったのは結構へこみました。(まあTOEICの点数は運もあるのでプラスマイナス50点くらいの揺れはでると思います。) 学習戦略 英語上達完全マップ 実は英語上達完全マップどおりには勉強しませんでした。英語上達完全マップではボキャビルの勉強は後のほうでいいと書かれていましたが、TOEICのスコアを順調にあげるためにはボキャビルは最初の方にやったほうがいい気がして、4ヶ月後くらいにはTOEICの教材を中心に勉強しました(英語上達完全マップ的にはTOEIC用の勉強するのは邪道なのですが、まあ私はTOEICさんに身を委ねることに決めたので…)。 ただ、英語上達完全マップで掲げられている、瞬間英作文、音読、精読、文法、多読、ボキャビル、リスニングといった体系別トレーニング方法はとても理にかなっていると思いますし、
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 本記事は個人の意見であり、所属する組織の見解とは関係ありません。 AWS re:Invent 2017のKeynoteにおいて、Amazon EKSが発表されました。 Amazon Elastic Container Service for Kubernetes (Amazon EKS) は、Kubernetes クラスターのインストールと運用を自分で行うことなく、Kubernetes を AWS で簡単に実行できるようにするマネージドサービスです。 https://aws.amazon.com/jp/eks/ この記事では、同じくre
Docker イメージを構築します。 $ docker build -t flask-fargate:latest . 作成してイメージがちゃんと動くかローカルで起動してみます。 docker run -d -p 80:5000 flask-fargate http://サーバのIPアドレス:5000 にアクセスして「Flask Dockerized」と表示されれば正常に稼働しています。 なお、Flaskのデフォルトポートは5000です。EC2で検証する場合はTCPの5000番ポートのInboundを開放しておきましょう DockerイメージのECRへの登録 Fargateで動かすために、ECRにイメージを登録します。 Fargateは米国東部 (バージニア北部)リージョンでしか提供されていないので、AWSマネジメントコンソールでバージニア北部リージョンを選択します。 Amazon ECS
$ ecs-cli compose service up --launch-type FARGATE WARN[0000] Skipping unsupported YAML option... option name=networks WARN[0000] Skipping unsupported YAML option for service... option name=networks service name=mysql WARN[0000] Skipping unsupported YAML option for service... option name=networks service name=wordpress ERRO[0001] Error registering task definition error="ClientException: Links are
AWS Fargateが発表されたのでさっそくつかってみます。 今回はFargateの上でfluentdコンテナを実行します。 手順 CloudFromationのテンプレートでECSクラスタやNLBなどのAWSリソースを作ります。 fluentdのDockerfile、docker-compose.yml、ecs-params.ymlを作ります。 fluentdのDockerイメージを作成し、ECRにpushします。 ecs-cliコマンドでFargateにデプロイします。 ecs-cli logsコマンドで接続を受け付けていることを確認します。 CloudFormationテンプレート VPCから一気に作ります。 AWSTemplateFormatVersion: '2010-09-09' Description: "" Parameters: VPCCidr: Description
本記事は個人の意見であり、所属する組織の見解とは関係ありません。 こちらはAWS Fargate Advent Calendar 2017の6日目の記事です。 AWS Fargateが発表されて、一週間ぐらい経ちました。新しいサービス、機能を色々試してみるのは楽しいですよね! 今日は、Fargateを触ってみて、もう少し本格的に取り組んでみたいと感じた方向けにAWS CloudFormationを使ってAWS Fargateの環境を作成する流れについて確認してみたいと思います。 AWS CloudFormationとは Cloudformationでは、AWSリソースの環境構築を設定テンプレートを元に自動化する事ができます。ECSで利用する場合、TaskdefinisionやServiceの設定なども記述する事ができます。Containerのデプロイをより簡単に行える様になり各種自動化を行
本記事は個人の意見であり、所属する組織の見解とは関係ありません。 こちらは AWS Fargate Advent Calendar 2017 の 12/4 分の記事です。 AWS Fargate を利用することで、従来のサーバーレス環境では工夫が必要であった長時間処理(業務処理的なバッチ)を、容易にサーバーレス環境で実現することが可能となりました。今回は、参考例として DB に対して長時間クエリが可能な仕組みを作成してみたいと思います。 ##構成概要 AWS Fargate 上で長時間タスクを実行する仕組みとして、下記の構成を作成してみます。 今回は SQL を実行する仕組みですが、メイン処理次第ではさらに複雑な処理の実行も可能と思っています。 ####Amazon S3 タスクのメイン処理の Python スクリプト、検索結果ファイルを格納します。 ####Amazon Aurora ク
先日こんな記事を見かけて、 Kubernetesの学習のためにMastodonを構築したら勉強になった | ハラミTech Web, Worker, Websocketと要素が揃っているMastodonのスタックをXXで動かしてみる、というのは感触をつかむのによいなと思いました。 で、じゃあAWS Fargateではどうかなと、このようにしてみました。 事前準備 Dockerコンテナ以外で、マネージドサービスで揃えられるものは優先的にそちらを使用します。 AWSで用意 VPS (既存でも新規でも) RDS (Postgresで起動) ACMで証明書 (ALBに適用する) ALB TargetGroup-web (HTTP/3000) TargetGroup-stream (HTTP/4000) S3バケット (PAPERCLIP Wikiのポリシー適用が楽) Redis => Redis
本記事は個人の意見であり、所属する組織の見解とは関係ありません。 こちらはAWS Fargate Advent Calendar 2017の12/3分の記事です。 今日は、Ruby on Railsのアプリケーションをローカル環境で作成し、それをFargateにECSでデプロイするところをやってみます。なお、データベースとしてはAmazon RDSで作成したMySQLを利用します。 事前準備 以下のものをローカルにインストールしておきます。 AWS CLI ECS CLI Docker CLI (Compose含む) ローカル環境の構築 Docker ComposeのRailsチュートリアルが秀逸なので、これを踏襲しながら実施してみます。 docker Quickstart: Compose and Rails 手順は全てMakefileにしてみました。 new: echo "$$_gem
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 本記事は個人の意見であり、所属する組織の見解とは関係ありません。 こちらはAWS Fargate Advent Calendar 2017の12/2分の記事です。 AWS Fargateを使うことで、コンテナを使ったアプリケーションにだけ集中して開発することができます。今日は、Amazon ECSのコンソールのFirst runチュートリアルを通して、簡単にNginxを立ち上げてみて、変更を加えてデプロイしてみましょう。 First runは以下のリンクから始められます。 https://console.aws.amazon.com/e
本記事は個人の意見であり、所属する組織の見解とは関係ありません。 こちらはAWS Fargate Advent Calendar 2017の12/1分の記事です。 AWS re:Invent 2017のKeynoteにて、Andy Jassy CEOからAWS Fargateの発表が行われました。以下がリリースブログからの抜粋になります。 AWS Fargateは、コンテナをデプロイする最も簡単な方法です。端的に言うと、FargateはEC2に似ていますが、仮想マシンを提供する代わりに、コンテナを提供します。これにより、下回りとなるインスタンス群の管理をせずとも、コンテナを基本的な計算単位として利用することができる技術です。やるべきことは、コンテナイメージ構築し、CPUやメモリの要件を指定し、ネットワークやIAMポリシーを定義し、そしてコンテナを起動することです。Fargateでは、アプリ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 現在お手伝いしているアカウンティング・サース・ジャパンにて、ECSを使ったDockerの本番運用を始めたので、その一連の流れについてまとめました。 税理士向け会計システムを扱うアカウンティング・サース・ジャパンでは最近Scalaでの新規プロジェクトが立ち上がってきており、既存のプロジェクトはJavaであったり、Erlangであったりと様々な言語が用いられていますが、インフラ人員が少ないということもあり、なるべくシンプルなインフラ構成を実現する必要がありました。 そういった中、各アプリケーションをDocker化することでインフラ
re:Invent 2016 で Step Functions というサービスがローンチされました! 幾つかのステップに分かれる処理を Lambda で構築するときに、処理のステート管理や処理間のコーディネートを行ってくれるサービスです。 これまでは、このような処理を組もうとすると「本来行いたい処理に関するコード」以外に「状態を管理するコード」を書く必要がありましたが、 Step Functions を用いることで、疎結合なメンテのしやすい Serverless バッチシステムを構築できるようになります。 個人的には今年の re:Invent で一番熱いリリースです!早速触ってみました! (※2017/12 により具体的なサービスに使った記事を書いてみましたので、よろしければこちらもご覧ください。) AWS Lambda と Step Functions で作るサーバレスなアービトラージ検
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? AWS re:Invent 2016 で発表された AWS Batch。 語感から、誤解されるサービス No.1 な気がします。 定時バッチなどとは何がどう違うのかをメモ。 機能概要 以下公式資料とドキュメント、実際さわってみた所感を合わせて。 AWS Batch – 簡単に使えて効率的なバッチコンピューティング機能 – AWS AWS Black Belt Online Seminar「AWS Batch」の資料およびQA公開 結局何なのか 科学技術計算・ハイパフォーマンスコンピューティング用途で真価を発揮する、 大規模なスケール、ジ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く