Serverless Framework (1.0.0-beta2) が在ります。 Serverless // Speaker Deck Slideshare 版です: Serverless
AWS の設定を Terraform で行ってゐる。マネージメントコンソールからからやると簡單な設定であっても AWS CLI や Terraform からやらうとすると大變なものに成る場合も在る。コンソールでは一つに纏められてゐるものが個々別のオブジェクトとして其々操作しなければならないものや、裏で自動で作られるものも明示して作らねばならないものが在り、設定が膨れる。大變だ。一回だけなら膨れても何でも問題に成らないのだが、似たオブジェクトを沢山作らねばならぬと成れば、大變だ。否、似たものであれば纏められる筈である。Terraform にはモジュール機能が在る。 以前 API Gateway と Lambda を連携させて Terraform から設定た (API Gateway と Lambda の組み合はせでリリースするバージョンを制御する)。 此所で作ったものは、 Lambda aw
DynamoDB にはトランザクションは無いしロック等無い。RDS 使へ。好い加減にしろ。 然し DynamoDB には魅力が在るし、少々トランザクション出來なからうが此れを使ひたいといふ欲求の在る場面もある。楽観的ロック位いは出來ないだらうか。 楽観的ロックと云へば私にとっては ActiveRecord の lock_version だ。UPDATE items SET name = "New Name", lock_version = 43 WHERE id = 1 AND lock_version = 42 等のやうに、比較と更新をアトミックに行なへれば此れは實裝出來る。 DynamoDB ではテーブルを跨がなければ、比較と更新がアトミックに出來る。從ってテーブルを跨がない楽観的ロックは實裝出來る。詰りテーブルを跨がないトランザクションは實裝出來る。 以下の DynamoDB テーブ
Python アプリケーション毎に環境を分ける (pyenv + virtualenv (or venv) + pip)の續きのやうなもの。 Ruby Python Lint Rubocop flake8 テスト RSpec unittest モック RSpec mock (or unittest.mock) 時間に依存したテスト Timecop (or ActiveSupport::Testing::TimeHelpers) freezegun テストランナー Rspec unittest タスクランナー Rake Invoke ファイル監視 Guard watchdog + Invoke Lint 追記 20161107 flake8-pep257 は flake8-docstrings に置き換へられた。 PEP8 と PEP257 と云ふコーディングスタイル標準が在る。flake8
Ruby では rbenv + Bundler でやる。Haskell では Stack で。Elixir では exenv + Hex で。Node.js では ndenv + npm で。PHP では phpenv + composer で。 API Gateway と Lambda の組み合はせでリリースするバージョンを制御する の樣に Lambda で色々やってゐるので此の邊りを整へた。 Ruby Python 実行環境のバージョンを分ける rbenv pyenv + virtualenv 依存ライブラリをインストールする gem pip 依存ライブラリのバージョンを固定する Bundler pip + virtualenv 依存ライブラリを更新する Bundler pip pip の色んなオプションを駆使する事に成る。 実行環境のバージョンを分ける ではやる。 システムには Py
aws ec2 describe-instances で JSON として取得する。 JSON.mapping で Crystal の class に対応させる。 よしなに。 #!/usr/bin/env crystal run require "json" module Instances class Tag JSON.mapping( value: {type: String, key: "Value"}, key: {type: String, key: "Key"}, ) end class Instance JSON.mapping( private_ip_address: {type: String, key: "PrivateIpAddress", nilable: true}, tags: {type: Array(Tag), key: "Tags", nilable: t
追記 20161018 Serverless Framework をお勧めします。1.0 が出ました。 Serverless Framework (1.0.0-beta2) が在ります - c4se 記:さっちゃんですよ ☆ サーバーレスって奴です。 API Gateway から Lambda を呼ぶ 此の節は前説なので、図だけ見つつ次の節へ読み飛ばすことも出來ます。 version を制御しない所からはじめてみます。 GET http://api1.sample.example/user/{id} POST http://api1.sample.example/user/{id} を実装してゆきます。 事前に以下のものを作成します。 上では「sample.example」と成ってゐるドメインを取得しておいてください。例へば私であれば「c4se.jp」です。其れを Route53 に Ho
画像の圧縮自体はImageOptimと云ふプログラムをコマンドで呼んでゐる丈だ。お終い。 HomebrewではCaskroom/cask/imageoptimに在る。 そこでGitの話に成る。 利用シーンはご想像にお任せするが、gitでpullした後に、其のpullで更新されたPNGファイルをlosslessで最適化する。最適化するコードだけ抜き出すと以下に成る。 #!/usr/bin/env ruby require 'shellwords' targets = ... system "ImageOptim #{Shellwords.shelljoin(targets)}" targetsに指定すべきファイルを一覧するにはだうしたらいいだらうか。pullした時に更新したコミット番号がわかるので、diffをとり、削除された差分ではないファイルを一覧し、PNGを抽出する。簡単なシェルのスクリ
題名で此の記事の内容は終はる。 私はVim (NeoVim) 使ひなので、IDEは殺す。IDEのコードフォーマッターはコマンドラインから呼び出せない限り殺す。Unity附属のMonoDevelopは殺す。 C#にはCodeFormatterと云ふ公式のコードフォーマッターが在る。此れを使ひたかったのだが、OSXでコンパイルできなかった。 仕方が無いので、astyleと云ふコードフォーマッターを探してきた。 #!/bin/bash -eux CodeFormatter="astyle --indent=tab=8 --indent=force-tab=4 --indent-cases --indent-namespaces --min-conditional-indent=0 --pad-oper --pad-header --delete-empty-lines --add-one-lin
小ネタを出してゆく。 C#で數値の定數を得たい。指定した型の數値の定數を得たい。即ち次の樣なインターフェイスを想定する。 using System; public class ConstNumber { public static void Main() { int one = GetOne<int>(); Console.WriteLine(one); } private static N GetOne<N>() { // Something } } 実際は或る場所でのデフォルト値として定數が欲しく、且つ外から型を指定できる抽象的なメソッドが欲しく、且つ此のメソッドの外では型安全でありたかった。 意外と此れはできない。 N GetOne<N>() { return (int) 1; } GetOne<int>(); // => error CS0029: Cannot implicitl
数秒で書き終はる鮮度系。 サービスには沢山の種類のサーバーがそれぞれ沢山たってゐ、sshから繋ぎ易いやうに .ssh/config に書いてあったりする。例へば此んなふうに。 Host momonga-web-01 HostName x.x.x.x Host momonga-web-02 HostName x.x.x.x Host momonga-db-01-01 HostName x.x.x.x …然も此の一覧はスクリプトで自動でメンテされてゐたりする。 此れを前提として、やむごとなき理由でサーバーの台数を大幅に減らす事と成った。削減は人に遣っていただいたので、結果は聞けばよいのだが、聞いて正しい答が返ってくるとは必ずしも限らないので、予防として実地で確かめてみる。全サーバーにICMP pingを送り結果を一覧。時間は掛けられないので。 %ruby -e'File.read("#{ENV
ネタは腐るほど溜まってるが腐ってるので氣力( erl -noshell -eval 'io:format("~s~n", [erlang:system_info(otp_release)]), init:stop().' erlang:system_info/1 を使ふ。 Serverspecだと describe command(%{erl -noshell -eval 'io:format("~s~n", [erlang:system_info(otp_release)]), init:stop().'}) do its(:stdout) { should match(/18/) } end と書いてゐる。
縦書きWebデザインアワードに縱ラテン | c4seを応募した。本日締め切りで、締め切り迄に応募でき、當初の目的は達成した。フォントは橘榛名が作成し、文章はわたしが書いた。以下に秘密でもないだらうから、応募時の文章を載せる。 作品要約 英語アルファベットを含めたラテン文字を縦書きする手法を開発しています。その一環として日本語の縦書きの中で、あるいは独立してアルファベットを縦書きできる文字「縦ラテン Vertical Latin」を開発しました。またそれをDTPやWebサイトで自由に使えるよう、フォントを配布しています。 アピールポイント 今回わたしたちが紹介いたしますものは、文字です。明治以後、科学産業と政治上の必要から日本語は横書きする技法と文化を大いに発達させました。その必要はコンピューター産業の発達からますます大きくなり、縦書き文化の進展は大きく枷を嵌められています。また横書きも歴史
JavaScriptには古くから自然なclass構造が在る。ECMAScript2015では簡単な構文糖が附いた。 多くの他の電算機言語に於けるclassには 1. 委讓delegationの役目 2. 型表示の役目 3. 識別子のscopeを限る役目 が有る。一方JavaScriptのclassには 1. 委讓delegationの役目 と 2. 型表示の役目 だけである。JavaScriptのオブジェクトは単に連想配列に過ぎないので、「メソッド」や「フィールド」の參照を妨げるものは何もない。連想配列はアクセスする爲の構造だ。型表示はinstanceofで確認できる。3. 識別子のscopeを限る役目 を担うのはclassではなく函數scope function () { var v; }による。最近はletによるblock scopeも増えた。letを使ふ機會は少ないが便利だ。 多くの
ポエム Advent Calendar 2015 12/24 何一つ役に立たない情報だったり、食レポだったり、冗長性を極限まで高めたムダに長いエントリだったり、言ってること全部間違っていたりするエントリを集めて百物語を作るプロジェクトです。 諸注意 ポエムですが,初心者が間違って見て鵜呑みにしないようにエントリの先頭または最後に「この記事に書いてあることを鵜呑みにしないでください.全部間違えてます」みたいなことを書いて頂けるとありがたいです. 本日は12/27。 ポエムの定義 わたしたちにはときどき、自信に満ちてものごとをしゃべってみたくなるときがある。馬鹿げたことだが、その場を離れてから急に恥ずかしくなる。いろいろおもった筈のことが、あれもこれも謂ひ損ねて、ひとりで補足しやうとしてみるのだが、もう熱が冷めてしまってうまくいかない。あのときにあったイメージは空虚で、論理的な構成物に成り果て
private-values 秘密情報や個人的なfileを共有リポジトリから隠す爲のツールです。 github.com インストール releasesからバイナリをダウンロードし、PATHを通したディレクトリに置いてください。 private-valuesは、何ではないか? private-valuesは組織的な秘密情報を管理しない。代はりにvalutが使へるかもしれない。 private-valuesは秘密情報を暗号化しない。Bcrypt等[など]の方法で別途暗号化すること。 private-valuesは秘密情報を安全な場所 (安全なcloudサーバー等) に格納しない。privateなGitリポジトリや、AESで暗号化した7-zipアーカイブをcloudストレージに置く方法などが考へられる。 private-valuesは高速なDBバックエンドとしては使へない。 private-va
追記2015-12-25 現在使ってゐる新しい手段。 新字を舊字に (ほぼ) 自動で変換する - c4se記:さっちゃんですよ☆ Unicode舊字をAndroidで表示する為に、Notoフォントの部分フォントを作りWebフォントにする - c4se記:さっちゃんですよ☆ はい、convApp自体に変更は一切ありません。convApp.jsの更新です。裏方ですね。 change log 0.4 - 20100413 es5.jsをconvApp.jsから分離 uu.font.js, detectFont.js追加 convApp.jsに、「指定のフォントにグリフが存在しない文字のみ正字→俗字に変換」する関数を追加:convApp.str_ortho2simplByFont(str, font) download: http://cid-448898d168ddc7e1.skydrive.l
追記2015-12-25 現在使ってゐる新しい手段。 新字を舊字に (ほぼ) 自動で変換する - c4se記:さっちゃんですよ☆ Unicode舊字をAndroidで表示する為に、Notoフォントの部分フォントを作りWebフォントにする - c4se記:さっちゃんですよ☆ http://d.hatena.ne.jp/Kureduki_Maari/20090519/1242715608 の「俗字⇒正字変換機」をちょこっとアップデートしたので。 以下。 http://cid-448898d168ddc7e1.skydrive.live.com/self.aspx/公開/convApp/convApp0.2.zip 内部動作を少し変えただけだが。
ポエム Advent Calendar 2015 12/02 何一つ役に立たない情報だったり、食レポだったり、冗長性を極限まで高めたムダに長いエントリだったり、言ってること全部間違っていたりするエントリを集めて百物語を作るプロジェクトです。 諸注意 ポエムですが,初心者が間違って見て鵜呑みにしないようにエントリの先頭または最後に「この記事に書いてあることを鵜呑みにしないでください.全部間違えてます」みたいなことを書いて頂けるとありがたいです. 前Ⅰ 形式的推論はなぜ正しいのか。それ以外に正しいものはなぜ発見できないのか 考えの正しさはそれを述べるに至ったということを前提にしなければならないのか 「私」が特別なのは、所与の直接性の領域であるという点で、あいかわらず間違いがないようにおもえる 問題はそこではなく、「此の経験」という、という「という」という操作の根拠が、此の経験を先験的なものとし
12/25 www.pinterest.com 12/24 www.pinterest.com by supermomonga jp.pinterest.com github.com vimeo.com 12/23 www.pinterest.com by 蘇摩清良 www.pinterest.com gist.github.com by s_hiiragi www.pinterest.com gist.github.com by 橘榛名 www.pinterest.com 12/22 www.pinterest.com image/svg+xml by Nさん www.pinterest.com by 小夏 jp.pinterest.com by 奈良阪 jp.pinterest.com 12/21 www.pinterest.com by 帽子屋 jp.pinterest.com by
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く