c4se記:さっちゃんですよ☆

.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

.。oO(此のblogは、主に音樂考察Programming に分類されますよ。ヾ(〃l _ l)ノ゙♬♪♡)

音樂は SoundCloud に公開中です。

考察は現在は主に Scrapbox で公表中です。

Programming は GitHub で開發中です。

Programming

Serverless Framework (1.0.0-beta2) が在ります

Serverless Framework (1.0.0-beta2) が在ります。 Serverless // Speaker Deck Slideshare 版です: Serverless

Terraformのmoduleを書く

AWS の設定を Terraform で行ってゐる。マネージメントコンソールからからやると簡單な設定であっても AWS CLI や Terraform からやらうとすると大變なものに成る場合も在る。コンソールでは一つに纏められてゐるものが個々別のオブジェクトとして其々操作し…

DynamoDBで楽観的lockを行なふ

DynamoDB にはトランザクションは無いしロック等無い。RDS 使へ。好い加減にしろ。 然し DynamoDB には魅力が在るし、少々トランザクション出來なからうが此れを使ひたいといふ欲求の在る場面もある。楽観的ロック位いは出來ないだらうか。 楽観的ロックと云…

Pythonのunittestを書かう。其れを自動実行しやう (rake test + guardを置き換へやう)

Python アプリケーション毎に環境を分ける (pyenv + virtualenv (or venv) + pip)の續きのやうなもの。 Ruby Python Lint Rubocop flake8 テスト RSpec unittest モック RSpec mock (or unittest.mock) 時間に依存したテスト Timecop (or ActiveSupport::Tes…

Pythonアプリケーション毎に環境を分ける (pyenv + virtualenv (or venv) + pip)

Ruby では rbenv + Bundler でやる。Haskell では Stack で。Elixir では exenv + Hex で。Node.js では ndenv + npm で。PHP では phpenv + composer で。 API Gateway と Lambda の組み合はせでリリースするバージョンを制御する の樣に Lambda で色々やっ…

AWS EC2インスタンスの一覧を.ssh/config形式で吐く (Crystalで)

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: {ty…

API GatewayとLambdaの組み合はせでリリースするバージョンを制御する

追記 20161018 Serverless Framework をお勧めします。1.0 が出ました。 Serverless Framework (1.0.0-beta2) が在ります - c4se 記:さっちゃんですよ ☆ サーバーレスって奴です。 API Gateway から Lambda を呼ぶ 此の節は前説なので、図だけ見つつ次の節…

OSXでGitの罠を回避しつつ更新されたPNGを圧縮するスクリプト

画像の圧縮自体はImageOptimと云ふプログラムをコマンドで呼んでゐる丈だ。お終い。 HomebrewではCaskroom/cask/imageoptimに在る。そこでGitの話に成る。 利用シーンはご想像にお任せするが、gitでpullした後に、其のpullで更新されたPNGファイルをlossless…

astyleを使ひdotnet/CodeFormatterがコンパイルできない環境でC#をlintする

題名で此の記事の内容は終はる。 私はVim (NeoVim) 使ひなので、IDEは殺す。IDEのコードフォーマッターはコマンドラインから呼び出せない限り殺す。Unity附属のMonoDevelopは殺す。 C#にはCodeFormatterと云ふ公式のコードフォーマッターが在る。此れを使ひ…

C#で指定した型の定數を返すジェネリック函數を書くのに式木を使ふ

小ネタを出してゆく。C#で數値の定數を得たい。指定した型の數値の定數を得たい。即ち次の樣なインターフェイスを想定する。 using System; public class ConstNumber { public static void Main() { int one = GetOne<int>(); Console.WriteLine(one); } private</int>…

殺したサーバーを一覧する

数秒で書き終はる鮮度系。 サービスには沢山の種類のサーバーがそれぞれ沢山たってゐ、sshから繋ぎ易いやうに .ssh/config に書いてあったりする。例へば此んなふうに。 Host momonga-web-01 HostName x.x.x.x Host momonga-web-02 HostName x.x.x.x Host mo…

Erlang/OTPのリリース番号をerlコマンドで確かめる

ネタは腐るほど溜まってるが腐ってるので氣力( 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", [erla…

JavaScriptのclassでprivateとprotectedを実現する

JavaScriptには古くから自然なclass構造が在る。ECMAScript2015では簡単な構文糖が附いた。 多くの他の電算機言語に於けるclassには 1. 委讓delegationの役目 2. 型表示の役目 3. 識別子のscopeを限る役目 が有る。一方JavaScriptのclassには 1. 委讓delegat…

private-values: 秘密情報や個人的なfileを共有リポジトリから隠す爲のツール

private-values 秘密情報や個人的なfileを共有リポジトリから隠す爲のツールです。 github.com インストール releasesからバイナリをダウンロードし、PATHを通したディレクトリに置いてください。 private-valuesは、何ではないか? private-valuesは組織的な…

Subversionのlogメッセージを検索する svn-grep

gitであれば git log --grep なにか でできる。SVNには何も用意されてゐない。 以下の関数を .bashrc に書く。 function svn-grep() { TMP_ID=$(uuid -v4) cat << RUBY > /tmp/$TMP_ID require 'nokogiri' log = Nokogiri::XML STDIN.read logentries = log.…

JavaScriptで描画するページの初期値をページに埋め込む

SPA (single page application) なりなんなり、データからJavaScriptで描画し画面を更新してゆくときに、初期値をどう受け取るか問題になることがあります。ソフトウェアとして一番単純なのは、ページを受け取ったあとにサーバーとXHRなりで通信して受け取る…

絵文字の異体字セレクタを扱ひたい扱へない

※ 忘備録程度の情報です。 結論 絵文字には U+FE0E/U+FE0F が異体字セレクタとして付くことがあります。Unicode の STANDARDIZED VARIANTS といふ仕様の一部です。気をつけませう。 歴史 Unicode には異体字セレクタ (VARIATION SELECTOR) といふ規格がある…

PHP CLIにて、標準入力からストリームが與へられてゐるかだうか判定する

PHPはわりと便利で、簡単なスクリプトを書くのにも不自由しない。「PHPが動作する」ことを前提にしたシステムでは、PerlやRubyやPythonを導入したり学習させたりせずに、PHPでスクリプトを書いてしまへる。 #!/usr/bin/env php

や行のえ「𛀁」とア行の工「𛀀」をAndroid上で表示させるフォントを作る。

先日に、JIS第三水準以上の漢字をAndroidで表示する方法を提案した。その続きとなる。 先日の方法は、GoogleとAdobeの制作したNotoフォントの一部を抜き出し、Webフォントとして実用できる小さなファイルサイズにするものだった。ところでNotoフォントにはや…

新字を舊字に (ほぼ) 自動で変換する

嘗て俗字⇒正字変換機といふものを書いた。Web UIで、新字を舊字に変換するツールだ。今回は此れをWEB UIではなく、PHPで自動にやるやつをやる。 cf. 俗字⇒正字変換機 http://c4se.hatenablog.com/entry/20090519/1242715608 c4seのコンテンツを書いてゐて、…

Unicode舊字をAndroidで表示する為に、Notoフォントの部分フォントを作りWebフォントにする

c4seを六年ぶりに更新してゐる。さすがにリニューアルした。 http://c4se.jp である。このblogは最近は舊かなで書いてゐる。c4seは漢字も全て舊字にすることにした。参画してゐる橘榛名の意向に依るものだ。 今回は舊字とWeb fontの話である。 さて、コンピ…

PHPのordはASCII文字にしか対応してゐない。Unicode版を書く

PHPのordはASCII文字にしか対応してゐない。この毛唐め。少し期待してUnicode文字にもやってみるが、見事対応してゐない。南蠻人め。 cf. PHP: ord - Manual http://php.net/manual/ja/function.ord.phpしかしASCIIは狭すぎる。西欧にもUnicode文字を使はね…

Elixirで分散じゃんけんをシミュレートする

じゃんけんをシミュレートしてみる。練習問題だ。 人間を五人ほど作り、グー/チョキ/パーのなにを出させるかをそれぞれに決めさせ、勝負する。引き分けを考慮し、勝者が最後の一人になるまで繰り返す。 せっかくElixir (Erlang) でつくるのだから、各人間…

RubyのEnumeratorを条件分岐してみる。Unix pipeを拡張する一案

Unixにはパイプといふものがある。プログラムには「標準入力」と「標準出力」といふものがあり、標準入力からなにかを受け取れば、それに基づいて標準出力になにかを表示することにする。その標準入力は、なにか別のプログラムの標準出力からやってくる。標…

RubyのDIコンテナを20行で書く

PHPでアプリケーションを作ってゆく。大きくなると、classが増えてゆく。classが増えてゆき、constructorの引数が増えてゆく。classをnewする順番が決まってゆき、それに従はねばならない。同じインスタンスがあちこちで必要になる。DI (Dependency Injectio…

ElixirにてListのランダムな要素を取得する

追記:20170702 Enum.random/1を使ふのが好い。 Enum – Elixir v1.4.5Rubyだと xs.sample である。JavaScriptだと xs[Math.floor(Math.random() * xs.length)]; となる。Elixirでもこれに近いことを行ふ。Erlangのrandomモジュールを使ってみると Enum.at(xs,…

Lessで@keyframesにvendor-prefixを付ける

よく知られてゐるやうに、Lessでベンダープレフィックスを付けるには以下の通りにすると簡便だ。 .vendor(@property, @value) { -khtml-@{property} : @value; -moz-@{property} : @value; -ms-@{property} : @value; -o-@{property} : @value; -webkit-@{pr…

ES6を使ふ。今直ぐ

node.jsとio.jsだが、node.js側が譲歩して、io.jsがnode.jsに戻るかもしれない。またnode.jsでもES6が少しは使へるやうになってきてゐる。Promise等[など]だ。ndenv (node-build) もio.jsに対応したが、それでわたしはnode.jsを使ひ続けてゐる。 AltJSでなく…

MacVimをluajitつきで入れる (brewを使ふ)

Macを使はねばならなくなった。Operaを入れた後に、bashのプロンプト (PS1) を真っ先にカスタマイズした。 Vimを入れねばならぬ。MacVimはHomebrewで入る。Xcodeを入れてbrewを入れる。 ターミナルを開き、 brew options macvim から、指定できるオプション…

Vimのホームディレクトリ$HOMEを変更する (Win8でホームが日本語になってゐるので)

Windowsのホームディレクトリはなにかとトラブルが起きる。わたしの主PCは今Windows 8.1で、初回ログイン時の罠でホームディレクトリの名が漢字になってしまった。ゆえにトラブルも一入[ヒトシオ]である。cf. Win7 64bitで #LMMS の設定を保存できない (& …