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

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

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

音樂はSoundCloud等バラバラの場所に公開中です。申し訳ないがlinkをたどるなどして探してください。

考察は現在は主に此のblogで公表中です。

programmingは、ひろくみせるものはGitHubで、個人的なものはBitBucketで開発中です。

c4se

Programming

Elixirの優先度附きキューライブラリPQueue2を作った

pqueue2 | Hexを作った。 github.com Erlangで書かれたpqueueに含まれてるpqueue2モジュールを、Elixirでラップしたもの。 q = PQueue2.new |> PQueue2.put(:a, 2) |> PQueue2.put(:b, 1) |> PQueue2.put(:c, 1) {:b, q} = PQueue2.pop CollectableとEnumera…

遲延評價Streamでgzip/gunzipするElixirのライブラリを作った

Streamでhashを計算する stream_hash | Hex 何故無かった。 github.com "test/fixture/xyzxyz.txt" |> File.stream! |> StreamHash.hash(:sha512) |> Enum.to_list |> hd # <<215, 133, 241, 243, 115, 159, 59, 127, 111, 242, 140, 106, 171, 211, 130, 48…

日本の祝日を扱ふholiday_jpをElixirに移植したholiday_jp-elixirを作った

日本の祝日を扱ふholiday_jpをElixirに移植したholiday_jp-elixirを作った github.com 普段はRubyやElixirやPythonやCrystalを扱ってゐる。祝日と云ふのは本質的に難しい。何時が祝日であるかは国民の祝日に関する法律と云ふ法律に依って決まる。一年のいつ…

JSONを整形してからdiffをとるtool、diff-with-jsonを作った

JSONを整形してからdiffをとるtool、diff-with-jsonを作った。 github.com JSONをjq commandに通して整形し、colordiffが在れば其れを、無ければdiffを使って差分を表示する。 次のa1.jsonとa2.jsonが在ったとしやう。 // a1.json {"m":42,"n":57} // a2.jso…

OCamlでJavaScriptが幸せ

ML Advent Calendar 2016 - Qiita 12/11參加。 JavaScriptと云[い]ふ言語に變換[へんかん]する言語は沢山[たくさん]在った。活溌[かっぱつ]に活動してゐるものは未[ま]だ多いものの、多勢はTypeScriptやElmに流れたやうだ。TypeScriptの型systemは軈[やが]て…

Crystalで殺せ

Crystalで殺せ // Speaker Deck Crystalで作る簡單インタラクティブCUI。Crystalで面倒臭い作業を殺せ Gitの要らないlocal & remoteブランチを撰んで消すツールを作ったで書いたtoolを紹介したものだ。其の後多量のbranchが在ってもscroll出來るUIを作ってゐ…

private-values : Delete private values and private files from your git repos.

private-values // Speaker Deck private-values: 秘密情報や個人的なfileを共有リポジトリから隠す爲のツールで紹介したtoolだ。今あたらしい機能を一つ考へてゐる。複數のteamで使へるやう、site (假り名) と云ふ概念を入れやうと思ってゐる。後方互換性は…

Serverless Frameworkとは何か、何故使ふのか

Serverless Frameworkを本番環境に投入するために // Speaker Deck Tutorialは以下に書いた。本當に簡單なのだ。 Serverless Framework (1.0) でAWS LambdaとAWS API Gatewayを設定する、單純なサンプルを書いた 纏め丈轉記しておかう。 What? サーバーレス…

多量のデータをストリームして省メモリで統計処理するgemを作った

logを撫でまはし乍らごそごそしてゐたら出來てゐたのでgemにした。 github.com N個のデータから成るlarge_dataが在りRubyのEnumerableとして取得出來る時、標準偏差や分散等を計算しやうとしたら、単純にやるとN個のデータをディスクに置かなければならない…

Rustをスクリプト言語としてコンパイルせずに呼び出す

コンパイルはする。 crystal runやgo runやrdmdやrunghcのやうに、事前ビルドのコマンドを走らせる事無くインタープリタのやうに實行する機能がRustには無いらしいので自作した。 #!ruby -rdigest/sha2 o="/tmp/#{Digest::SHA512.file __FILE__}-#{File.base…

Serverless Framework (1.0) でAWS LambdaとAWS API Gatewayを設定する、單純なサンプルを書いた

Serverless Framework (1.0) でAWS LambdaとAWS API Gatewayを設定する、單純なサンプルを書いた。 github.com 説明は全部GitHubの方に書いてある。 サーバーレスアーキテクチャの好い所は、インフラの管理とアプリケーションの處理とを分離出來る事だ。イン…

Gitの要らないlocal & remoteブランチを撰んで消すツールを作った

git cleanup-branch で消せる。 github.com featureブランチ等、Gitのmerge濟みのブランチがlocalにもremoteにも溜まってゆく。注意してゐれば溜まらないのだが、注意を怠ると溜ってゆく。git branch -a --merged で一覧し、消したいブランチを撰び、git bra…

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::Test…

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: {type: Str…

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