ウィスキー、シガー、パイプをこよなく愛する大栗です。 先日JAWS-UGアーキテクチャ専門支部で、API GatewayとLambdaでメール受信を行うという内容で発表してきたので、紹介します。サンプル実装もしたので解説します。 どうやってメールを受信するのか? API Gatewayはhttpsのみ体操しているためsmtpは受けられません。AWSにsmtpを受信する機能が無いので外部サービスを活用しています。今回はSendGridを使用しています。 SendGrid Inbound Parse Webhook SendGridは世界最大規模のメール送信プラットフォームですが、Inbound Parse Webhookというメール受信を行う機能があります。これは、SendGridがメールを受信して、メールの内容をWebhookとしてhttpリクエストしてくれます。 全体構成 SendGri
Amazon EC2 は 1 時間単位,Google Compute Engine も 10 分単位でしか借りられず,試行錯誤しながらプログラムを書いている時に計算リソースを使い切ることは困難です.そこで 100 ミリ秒単位で使える AWS Lambda を計算リソースとして使ってみました. AWS Lambda は表向きは Node.js あるいは Java が使えると書かれていますが,実際には最近流行りのコンテナ技術を使っており言語レベルでの制限はかけられておらず,exec 関数を呼び出すことにより(静的リンクされていれば)任意のバイナリを実行することができます.そこで C++ で書かれたプログラムを実行する方法について紹介します. Linux 上で x86-64 向けにコンパイル・静的リンクされたバイナリがあれば,それを AWS Lambda 上で実行することは簡単にできます.コンパ
About the content This content has been published here with the express permission of the author. Testing almost always helps catching bugs and write better code, but it can be a huge pain without a proper framework and setup. At the Bay Area Android Dev Group meeting, Ellen Shapiro explains how to super-charge your Android testing, including UI testing, with JUnit 4 and Espresso 2. She demonstrat
背景 Javascript で Web アプリを作ろうとすると、よくわからないことだらけで超混乱します。 npm と bower の違いは? npm はサーバーサイド用、bower はクライアントサイド用らしいよ えっ、でもなんで bower のインストールに npm が必要なの? サーバーサイドは Rails で書きたいから npm 要らないと思うんだけど・・・ ていうかサーバーサイドJSとか node.js って何? よく見る browserify って何? こういった疑問が沸き上がるのは、各ツールが生まれた文脈がよくわかっていないからです。いろいろ調べてやっとちょっとわかってきたのでメモします。間違いがあったらご指摘ください。 「CommonJS」誕生 - Javascript は汎用プログラミング言語へ その昔、Javascript 大好きおじさんは言いました。 Javascrip
前にこんな記事があったので。 http://postd.cc/fast-scraping-in-python-with-asyncio/ これをPython3.5の新しい構文でやってみる。 あ、もとの記事はhtmlをスクレイピングしてるけど、なんとなく似たような量のレスポンスが返ってくるURLへ同時にアクセスしたかったので、RSSにしてみました。あ全然スクレイピングじゃない。まあ、やってること一緒なので…… import asyncio import aiohttp import feedparser import time async def print_first_title(url): response = await aiohttp.request('GET', url) body = await response.text() d = feedparser.parse(body)
以前Nodeで作っていたものをElectronで作り直していて、同じ問題にまたハマったので書いておく。 所謂、UTF-8-MAC問題である。もう遥か昔にNodeでハマった時の記事がある。 node.jsでUTF-8-MACを扱う - joker1007の日記 Macのファイルシステムはファイル名に対してNFDとかいう正規化を行っていて、ファイルシステムにアクセスする時に勝手に変換しやがる仕組みになっている。 このせいで、濁点が入ると急に死ぬとか、本当辛い問題が起きる。何の嫌がらせなんだと……。この世界は文字が8ビットで済む様な国ばっかじゃねえんだよ! とりあえずMac NFDでググると辛いのは俺だけじゃない気持ちになれる。 で、昔は上で貼ったブログに書いたような方法で解決していたのだが、正直、この解決策は2015年にもなって面倒過ぎるだろと思っていた。 (マジかよーってググって自分の記事が
英国のコーンウォールで開催された第5回‘Agile on the Beach’カンファレンスでは,アジャイルソフトウェアデリバリの著名な実践家たちが,この分野における最先端の新たなトレンドをテーマとしたプレゼンテーションを行った。そこで語られた主なメッセージは,ソフトウェアデリバリのライフサイクル全体を通じた科学的手法と‘仮説駆動設計(hypothesis-driven design)’のより厳密な適用の必要性,製品開発プロセスに対するアジャイルの原則と継続的改善実施の必要性,急激に変化するエコシステムの中でのソフトウェア開発の方法論および原則の選択における,情報に基づく意思決定によるメリット,といったものだ。 カンファレンスの初日は,‘Continuous Delivery’の共著者であるDave Farley氏による,価値あるソフトウェアの継続的デリバリに関して,特に人間観察力と意思決
世界中のFreeBSDユーザはどうやってFreeBSDの情報を得ているのでしょうか。ソースはいろいろありますが、特に有益な情報を得やすいメディアを紹介したいと思います。 FreeBSD Handbook FreeBSDに関する最も良質でまとまったドキュメントはFreeBSD Handbook(FreeBSDハンドブック)だと思います。使用するオペレーティングシステムをLinuxからFreeBSDに変更したユーザやエンジニアからよく聞かれる理由の一つがFreeBSD Handbookの存在だからです。実際、このドキュメントは全方位に渡ってよくまとまっていると思います。ドキュメントチームのクオリティの高さがうかがえます。 図1 FreeBSD Handbook 図2 FreeBSD Handbook邦訳 FreeBSD HandbookにはFreeBSDを使用するための情報が一通りまとまってい
Electron で Live Dwango Reader(旧 Live Door Reader)クライアントを作ってみる、その三JavaScriptNode.jsReactElectron その三です。徐々にアプリっぽくなってきたかな?というった感じですが、どうでしょうか。レポジトリはこちら。 ソートとフィルタを追加した フィード一覧のサイドバーにソートの変更とフィルタ(検索ボックス)を追加しました。React のコンポーネントを作るレベルではないかなと思い、ベタに HTML を書いて、onchange で監視しています。 ソート・フィルタの変更で毎回データを取得するのもアレですし、データ取得と画面描画を分けました。こういうとき React は楽ですね。フィルタリングしてソートした JSON をレンダーに渡すだけで終わっちゃいます。 キーボードショートカット(と LDR API)を増量
この記事のJMeterは ver 2.12。 テストを一件ずつ実行する 1つのJMeterスクリプトファイルにスレッドグループを複数個並べると、JMeterは2,3個のスレッドグループを並行して実行する。このとき、例えば、ログイン/ログアウトの評価やコンテンツの参照/削除が同時に走ってしまうと情報に不整合が生じ、テストが失敗することがある。 そこで、「テスト計画」の「各スレッドグループを別々に実行」にチェックを入れると、スレッドグループを1個ずつ順番に実行してくれるようになる。 エラーを期待するテスト JMeterのステップは標準では4xxや5xxのレスポンスコードをエラー(レッド)として扱う。しかし、正常系評価ではなく異常系の評価をしたい場合、4xxのレスポンスでグリーンになって欲しいにも関わらずレッドとして表示されてしまい評価結果が見づらくなることがある。そこで4xxや5xx系レスポン
2018年4月25日をもちまして、 『CodeIQ』のプログラミング腕試しサービス、年収確約スカウトサービスは、 ITエンジニアのための年収確約スカウトサービス『moffers by CodeIQ』https://moffers.jp/ へ一本化いたしました。 これまで多くのITエンジニアの方に『CodeIQ』をご利用いただきまして、 改めて心より深く御礼申し上げます。 また、エンジニアのためのWebマガジン「CodeIQ MAGAZINE」は、 リクナビNEXTジャーナル( https://next.rikunabi.com/journal/ )に一部の記事の移行を予定しております。 今後は『moffers by CodeIQ』にて、 ITエンジニアの皆様のより良い転職をサポートするために、より一層努めてまいりますので、 引き続きご愛顧のほど何卒よろしくお願い申し上げます。 また、Cod
Syng Twitterの友達と一緒にネットサーフィンを楽しめるアプリを作りました。MeteorとElectronで。 作ったものはここからDLできます https://dl.dropboxusercontent.com/u/89640477/syng/Syng.dmg ここでは、作っていて気づいたことを書いていきます。 自動更新は諦めました Electronには自動更新機能がついており、サクッと実装できるみたいに書いてありましたが、ドキュメントがよくわからなかったので結局自動更新は諦めました。 読んだ感じ、更新があったら204を返して、更新がないなら201みたいな感じらしいです。次作るときは実装します! jsコードは、わりとどっからでも取ってこれる electronのサンプルだと、コードはローカルからが一般的ですが、<webview/>にnodeintegrationオプションをつけたり
この話のゴール Python の list, int のデータ構造を理解する CPython のソースに向き合えるようになる(といいな) CPython とは https://en.wikipedia.org/wiki/CPython より CPython is the default, most widely used implementation of the Python programming language. It is written in C. In addition to CPython, there are other "production-quality" Python implementations: Jython, written in Java for the JVM, PyPy, written in RPython and translated into
私はポストモーテム(事後分析)の記録を読むのが大好きです。ポストモーテムを読むと勉強になりますが、大抵の教材的資料とは違って、興味深いストーリーが含まれているのです。相当な時間をかけてGoogleとMicrosoftのポストモーテムを読みました。大きな障害を招く最大の原因について、私は(まだ)きちんと分析していませんが、何度も繰り返し目にするポストモーテムのパターンがいくつかあります。 エラーハンドリング 適切なエラーハンドリングのコードを書くのは難しいものです。エラーハンドリングのコードに含まれるバグは、 大きな 問題を引き起こす主な原因となっています。つまり、エラーによってバグのあるエラーハンドリングのコードが実行されるということは、単に個々のエラーが重なるだけという事態にはとどまらないのです。障害が重なって重大なシステム停止につながることはよくあります。それはある意味明らかなことで、
はじめに 今日発表の新機能はこちら! AWS OpsWorks Update – Provision & Manage ECS Container Instances; Run RHEL 7 AWS OpsWorksからAmazon EC2 Container Serviceのコンテナインスタンスを管理出来るようになりました。これまでOpsWorks上でDockerコンテナを動かすことは出来ましたが、ECSとは連携していませんでした。今回の新機能により、ECSがOpsWorksのLayerとして管理操作出来るようになります。 ということは、Layerの切り替えを使ったBlue Green DeploymentにECSが使えちゃうわけですね。Blue環境が本番稼動しているときに、 Green環境でECSのタスクを入れ替えて最新のアプリケーションコンテナを実行、テストし、問題なければGreen
背景 AWSのAutoScalingは超絶便利なのですが、AutoScalingの元となるLaunch Configurationが編集不可能であるため、AMIの構成を変更したりして新しいAMIを作ると、Launch Configurationも新たに作る必要があります。(コピー機能ができたので以前よりはかなりマシになりましたが) そういうわけで、Launch Configurationの数はオートスケーリングを運用していると必然的に数が増えていきます。数が増えていくと、Auto Scaling GroupからLaunch Configurationを選ぶときのUIがつらくなるので、定期的に削除する必要があります。 というわけでManagement Consoleから削除するのですが、なんとこのUI、複数選択だと削除することができません。 作ったもの というわけで、溜まっていくとつらくなる
report.md エンジニアのための法律勉強会 #8『盗用と著作権の基礎知識と注意点&エンジニアのための?!結婚と離婚の基本のキ(番外編)』 参加メモ 日時: 2015-09-25 19:15-20:40 講師: 野島 梨恵氏 (東京山王法律事務所) 場所: Co-Edo 資料 http://bit.ly/co-edo-2015-09-25-pdf ハッシュタグ #coedo イベントURL: https://coedo-dev.doorkeeper.jp/events/31461 最初のテーマは盗用について 盗用について、昨今話題になっている オリンピックエンブレム事件 大宮のコワーキングスペース 著作権,商標権が侵害されたら何が起きるのか よく相談を受ける案件 ブログの文章 ロゴ 店の看板、字体 安川さんの Rails チュートリアルパクリ事件 Rails チュートリアルという700
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く