npm run xxx で設定ファイルを切り替える

誰得な内容なのかわかりませんが、とりあえず僕には必要だったので、まとめます。 nodeの設定ファイル内でのタスク定義は、読みづらさはあるけど、意外となんでもできる、そんな印象です。 やりたいこと nodejs + npmな環境。 gulpなどのタスクランナーは使…

登山で使っているクッカーのメスティンをコーティングしたので使ってみました

前回のブログの続き。 sugilog.hatenablog.com 最初に載せた写真は、山と食欲と私で最初にメスティンが出てきたときに作っていた「オイルサーディン丼」。 山と食欲と私 1 (BUNCH COMICS)作者: 信濃川日出雄出版社/メーカー: 新潮社発売日: 2016/04/09メディ…

登山で使っているクッカーのメスティンをコーティング加工してもらいました

たまには登山のお話。といいつつ山の話ではなく道具のお話です。 最近『山と食欲と私』という漫画を読んでいます。 www.kurage-bunch.com 山と食欲と私 1 (BUNCH COMICS)作者: 信濃川日出雄出版社/メーカー: 新潮社発売日: 2016/04/09メディア: コミックこの…

新春座談会 このコンピュータ書がすごい 2017年版 の個人的なメモ

今回で9回目らしいです。 本については気になったものをピックアップ。本の説明についての引用は高橋さんや出版社さんが説明された内容(を大雑把にメモしたもの)。 今回も高橋さんは大量の本を紹介されていました。どうやってあれほど紹介できるようになる…

cronでメール以外の方法で結果を通知する

cronって便利なんだけど、結果を確認するのがめんどくさい。 メールを全部見るのも今っぽくない。 でもRundeckとか他のジョブスケジューラを使い始めると、実行時に依存するものが増えるのでそれはそれで微妙。 じゃあ、メールで送っている内容と同じような…

RubyのMixinを簡単にだけ整理したメモ

たまにはRubyを。 元ネタというかメインで参照したのはこちら www.sitepoint.com prependって結局どうなんだっけ?prependをクラスメソッドにするにはどうするんだっけ?というところを整理したかったので。 実行環境は、ruby2.3.1p112 ruby --version ruby …

Goで同時実行数を制限しながらループを並列処理する。

Web+DB Press Vol95 のGoの記事を読んで理解するために自分でも書いてみた。 WEB+DB PRESS Vol.95作者: 小出淳子,黒澤剛志,牧大輔,横江亮佑,山口貴也,尾藤正人,佐藤琢哉,中橋研太郎,田中慎司,小西裕介,伊藤直也,稲富駿,前島真一,長野雅広,山際康貴,のざきひ…

Certificate Managerを試す、、、ためのメール受信の設定

ケース AWS Certificate Managerを使用して、SSL/TLS証明書を取得して、HTTPS接続を確立したい。 ドメインは、(お名前.comとかで)適当に取得しておいたものを使う。 問題 AWS Certificate Managerは、証明書の発行のときに、検証Eメールを送信する。自分(…

ELBの資料を読んだメモ

自分が業務で使いそうな範囲でメモに起こす。 aws.typepad.com ELB = L4のロードバランサー(Classic Load Balancer = CLB) + L7ベースのロードバランサー(Application Load Balancer = ALB) ELB ELBは複数AZをまたいで負荷分散が可能。 ヘルスチェックは…

Git(hub)でフォークしたリポジトリに、オリジナルリポジトリの変更を取り込む

いつも忘れて調べなおすことになるので、メモ。 ケース 例えば、こんなリポジトリ。 github.com オリジナルのプラグインでほんのすこしだけカスタマイズしたいから、ちょっとだけ修正して使ってる、みたいな。 で、時間が経って、変更されているものもあるか…

tmux 2.3のキーバインディングでちょっと困った

macでtmuxを使っていてエラーが出て解決してたら次の問題にハマって、ということがあったので一連の話をメモ。 タイトルにしたキーバインディングは結局ググってもよくわからずソースを見て解決した話。 github.com 流れ macOS Sierra にバージョンアップ。…

git logをltsvにする

コミットの情報をもとにファイルチェックとかしてみよう、という感じからgitだとどうしようということでログから情報を取り出す。 subversionで、svn ls -v <URL>してとれるような情報のイメージ。 ついでにプログラムから加工しやすいようにLTSVにする。 git log</url>…

Dockerを使って、AWS Lambda用のPhantomJSとfontconfigをビルドする

dockerを使ってみる。 やりたいことはこれ。 AWS LambdaでPhantomJSを使ってあれこれしたいけど、日本語フォントを扱えるようにしないと、キャプチャがうまくできない。 日本語フォントを扱える夜にするのはリクルートさんの記事のとおりにできるけど、じゃ…

AWS API GatewayのBody Mapping Templateで使えるテンプレート

AWSのAPI Gatewayでは、リクエストをどう受けて、どう返すか、ということが設定できる。中間処理にLambdaを使う場合は、リクエストの情報をJSONオブジェクトに変換しておいて貰わないと、情報が来ない。 ということで、Body Mapping Template(後処理に渡す…

VMware Fusion 8.1のNATポートフォワーディングまわりのエラー対応

事象 VMware Fusion 8.1にNATポートフォワーディングまわりでエラーがある。VMware BLOGSで修正が公開されているが、2016/02/01にパッケージをダウンロードした段階では、配布されているパッケージに修正は反映されていない。 ref: https://blogs.vmware.com…

新春座談会 このコンピュータ書がすごい! 2016年版 の勝手なまとめ

個人的なメモ。去年とは書き方を変えて、時系列で徒然にしないで、勝手に括ったりしてます。 sugilog.hatenablog.com トークイベントのハッシュタグは #compbook 。 高橋さん、お疲れ様でした。(『楽しいRuby』の第5版がでる?ということで、おめでとうござ…

たまにはプログラミングではなく、ロードバイクの話。 といってもライドではなく通販について。 ざっくり言うと、Wiggleで注文しても全然荷物が来ない場合の対処方法。ただしお問い合わせ番号(追跡番号、Tracking Code)がある場合に限る。 Sugilogのケース…

AWSのLambdaでyield(だめでした)

AWSのlambdaでnodejsを使って、並列処理&直列処理をうまく扱えないかと思ってテスト。 Promiseとcoを使いたい。 ... 失敗。。。 正確に言うと、Promiseとcoというか、直列処理のyieldを書くときのfunction *()な構文がエラーしてる。 ということで確認。 va…

fluentd pluginを作ってみて

最近elasticsearchやらfluentdやらのことについて勉強していて、理解が浅いことに気づいたので、とりあえずfluentdのpluginを作ってみた。 fluent-plugin-nested-hash-filter | RubyGems.org | your community gem host 作ってみて気づいたことをメモ的にま…

Vagrantを使って検証環境を作る

VagrantでVirtualBoxだったりEC2だったりをセットアップから起動まで簡単(?)にできるっぽいのでやってみた。 途中ハマりまくったので、徒然にメモを残しておくレベルでご勘弁。 リポジトリ https://github.com/sugilog/vagrant.local 環境 クライアント: …

Heroku via Dropbox; Part 2

前回からの続き Heroku via Dropbox - sugilogのブログ Heroku via Dropbox - sugilogのブログ やること Bootstrapなテンプレートを適用して、HTMLの中身を書き換える。 ちなみにサイトここ→ http://sugilog-profile.herokuapp.com/ 手順 好きなテンプレート…

Heroku via Dropbox

Herokuのデプロイ方法に、Dropbox Syncが追加されていたらしいので、試してみる。 とりあえず、できるだけ簡単に、HTMLを設置して表示することを目指す。 前提 Dropboxアカウントを持っている。 なければ作ってください。 Herokuアカウントを持っている。 な…

Go言語:Channelsのselect

select の話 selectステートメントで、複数のChannelsを条件分岐できる。 受信、送信、どちらも可能。 Channelsの送信があるのに、受け取りを行ってなかったら、selectをしていない場合と同じで例外になるので注意。 複数条件に一致する場合は、ランダムに選…

Go言語:数値型の幅

フィボナッチなサンプルを写経して動かしていた時にやっと理解した。 Go言語の数値型(の整数) intはジェネリックであり、実行環境に依存したサイズ(値の扱える範囲)を持つ。 Goプログラミング言語の情報サイト golang.jp 数値型 範囲を超えた場合は、オ…

Go言語:Channesの制限

Channelsの話 Channelsはバッファにすることができる。 容量を指定することが可能。 make関数の第2引数に指定。 capとlenの実行が可能。 容量cap以上にはバッファ(値の送信)できない。ブロックする。 バッファサイズlen以上には取り出し(値の受信)できな…

Go言語:Goroutines

Goroutinesの話 goroutine (ゴルーチン)は、Goのランタイムに管理される軽量なスレッドです。 go 関数呼び出しで新しいスレッドで処理される。 プログラムは、スレッドの処理の終了を待つわけではない。 新しいスレッドで処理が始まるのに(ノンブロックの状…

Go言語:HTTPサーバーのコーディングをしてみる

↓のslideshareのコードを写経していく。 Go言語によるwebアプリの作り方 from Yasutaka Kawamoto 写経させていただきました。資料ありがとうございます! とりあえずコーディング HTTPサーバーの写経// http://www.slideshare.net/yasi_life/ ... 構成 GOP…

Go言語:HTTPサーバーの基本

HTTPサーバーの話 net/httpをimportしてちょろちょろするくらいで簡単にサーバーを立ち上げられる。 サーバーの処理はinterfaceで定義された関数に実装していく。 Handleでルーティング処理と、ルーティングさせるオブジェクトの設定。 ServeHTTPを実装する…

このコンピュータ書がすごい!2015年版 の勝手なまとめ

このコンピュータ書がすごい!2015年版にいってきたので、勝手なまとめをします。何年かぶりの参加です。 19時30分スタート。(時間経過メモっておくと面白そうなので。。。) (メモは、自分がメモりたかったものだけです。高橋さんや各出版社さんの表現か…

Go言語:iota

interfaceを理解しようと調べていると、なぜかちょいちょいiotaを使った例が出てくるので、まずはiotaについて調べる。 Go言語の日本語サイトの説明によると Go言語での定数の列挙にはiota列挙子を使います。iotaは式の一部となって、かつその式は暗黙的に繰…

Go言語:メソッド定義

メソッドの話 Go言語にはクラスはない。 代わりに、構造体にメソッドを定義することで、同様のことが可能。 構造体以外にも、任意の型に定義することも可能。 他のパッケージの構造体へのメソッド定義は不可。 基本型への直接のメソッド定義は不可。 メソッ…

Go言語:switch

switchの話。 ifステートメントと同じで、条件式にカッコは不要。 ifステートメントと同じで、変数のスコープを持つ。 swtichステートメントの条件式は省略することが可能。 rubyのcase文と同じような書き方が可能。 switch caseには、数値以外に、文字列な…

Go言語:関数(クロージャ)

クロージャな話 Go言語の関数は値として扱える。 Go言語の関数はクロージャとして振る舞う。 変数のスコープもクロージャのそれ。 試してみた クロージャのスコープ スコープは他の言語のそれと同じ。 ** 1 1 1 ** 1 1 1 ** 2 1 2 ** 2 2 4 ** 3 1 3 ** 3 3 …

Go言語:Map

Mapの話 mapの型の指定は、キーと値の型をそれぞれ指定する。 map[キーの型]値の型という形式。 map[string]int みたいな。 作成するには、make関数、もしくは初期化子を使う。 make関数、空の初期化子で作ったmapは、空。 初期化前のmapは、nil nilのmapに…

Go言語:スライス、ループの演習から

演習の内容から(メモ的な) Go言語で面白いと思うこと リモートサーバーのライブラリを簡単にインポートできる。 import "code.google.com/p/go-tour/pic" 関数そのものを引数に渡すことができる。 func main() { pic.Show(Pic) } 渡された側の実装がこちら…

Go言語:for-rangeループ

for-rangeループの話 for-rangeループは、Slice(とかMap)の要素を簡単にループ処理する。 Go1.4から、インデックス/値を変数に代入する文法を省略可能。 Sliceの要素数分だけのループ処理を簡単にかける。 インデックスの値を使わずに値だけを使う場合、…

Go言語:スライス

スライスの話(go-tourは、なぜかArrayをとばしてSliceの話をする) SliceとArrayは異なる。こちらを参照してお勉強。 Go言語のArrayとSliceについて - done is better than perfect あとはこちらのSlideShareを参照する。 Go言語のスライスを理解しよう fro…

Go言語:構造体とポインタ

Go言語:構造体 - sugilogのブログ のエントリーで、ポインタの部分の理解が曖昧だったので、復習。 参照したのは、こちら(M.Hiroi's Home Page / お気楽 Go 言語プログラミング入門)の記事 まずCのポインタのの利点 (1) 「参照呼び (call by reference) …

Go言語:構造体

構造体(Struct)の話 structはフィールドの集まり。 フィールドへは、.(ドット)でアクセスする。 typeステートメントで定義する。 ポインタ演算はないが、ポインタを通した間接的なアクセスは可能。 初期化のための値の指定は、ブレース{}内で指定する。 …

Go言語:ニュートン法を使った演算の練習

練習実装 この問題では、ニュートン法は、 開始点 z を選び、以下の式を繰り返すことによって、 Sqrt(x) を近似します。 最初は、その計算式を10回だけ繰り返し、 x を(1, 2, 3, ...)と様々な値に対する結果がどれだけ正解値に近いかを確認してみてください…

Go言語:条件分岐:if

ifの話 if、else、else ifで条件分岐を書く。 forと同じで、条件式はカッコが不要。 forの条件式の初期化と同じようなことができる。 if ~ else if ~ else内が1つの狭いスコープになっていて、変数はその中でのみ有効。 スコープの外から変数を参照すると、u…

Go言語:繰り返し

Forの話 Go言語の繰り返しは、'for`のみ。 条件の書き方で、rubyでいうところの、whileやloopみたいなことを書ける。 forステートメントの条件式に、カッコは不要 というか、書けない。 繰り返しを抜けるときはbreak パターンA for i := 0; i < 10; i++ { } …

Go言語:定数

定数の話 定数は、constキーワードを使って宣言する。 型の指定は不要だが、:=による代入はできない。 指定できるが、数値定数みたいに扱うために、基本的に行わない? 定数の種類は、character、string、'boolean、numeric` numeric数値定数は、指定がない…

Go言語:変数

変数の話 varステートメントで変数を宣言する。 変数名 型の形で宣言する。 カンマで区切って羅列すると、複数の変数を宣言できる。 varステートメントで初期化することもできる。 初期化子を与えた場合は、型の指定が不要。 変数の型が、初期化子の型になる…

Go言語:関数

関数の話 関数は、 0個以上の引数をとる。 同じ型の引数の場合は、型の指定をまとめられる。 変数の宣言と同じ。 0個以上の返り値を返す。 返り値がある場合には、返り値の型を指定する、とも言える。 Javaなどでいうところのvoidの場合は、返り値の型の指定…

Go言語:エクスポートされる名前

エクスポートされる名前の話 インポートステートメントで指定したパッケージについて エクスポートされる名前(関数名など)は、エクスポートされるパッケージ側で決まる。 名前の最初が大文字で始まる場合、エクスポートされる。 ためしに パッケージ:エク…

Go言語:パッケージのalias

importするパッケージのalias(っぽいやつ)。 import時に別名(alias)を指定することができる。 正確にはaliasではない。 もともとつけられるはずの名前(別名を使わなければ使えたはずの名前)は使えない。 パッケージ:alias ためしに、mypackageでアク…

Go言語:自作パッケージ

自作パッケージの作成と実行 ディレクトリの構造に従う。 環境変数を指定する。 つくってみた 自作パッケージ:main 自作パッケージ:mypackage1 自作パッケージ:mypackage2 自作パッケージのディレクトリ構造 $GOPATH/src以下に自作パッケージを作成する。…

Go言語:パッケージ

パッケージについての話 Goのプログラムはパッケージで構成されている。 プログラムの処理は、mainパッケージ内で始まる。 mainプログラムで最初にcallされるのは、main関数。 他のパッケージの実装は、importで取り込む。 importで指定したパスの最後の要素…

Go言語の学習

しばらく、Go言語を学習していきます。 間違った内容があったら、ごめんなさい とりあえずは、プログラミング言語Goツアー ( Go言語基礎文法最速マスター )で勉強します。 おすすめのGo言語の学習のための書籍があったら、ぜひ教えてください。きっと買いま…