Melchior

バンクーバーあたりで働くエンジニアの備忘録

Ruby on Railsのセットアップ

はじめに Rubyデビューしたので初心に戻ってその勉強記録を記して行きたいと思います。 手順は rbenv (バージョン管理システム) nokogiriのインストール Railsのインストール アプリの起動 です。 rbenvのインストール rbenvは最も有名なバージョン管理ツー…

classの継承についての考察

概要 ES6の継承が遅すぎると話題なので検証・最適化をしました。 どれくらい遅いのか こちらのベンチマークによると、少しずつ改善は見られるものの、2.3-17倍程度遅い様子です。 実際に検証しました。 Node v6.10.1 benchmark.js v2.1.4 継承 // classes fu…

Powerlineの導入

概要 Powerlineとはshell・vimにちょっとした情報をカッコよく表示してくれるツールです。何よりカッコいい。導入手順はこちらです。 Powerline for Shell まずはshellからカッコよくしていきます。はじめにpowerline-shellをクローンします。 $ cd ~ $ git …

AnyenvでGoのバージョン管理

概要 Anyenvとはこれ一つで色々なパッケージ管理ができるスグレモノのようです。今回はGolangまわりだけ整理していたので、Golangのセットアップ手順について書きます。 インストール まずはリポジトリをクローン。 $ git clone https://github.com/riywo/an…

Dockerのお掃除

概要 MBPの容量が圧迫しておりどうやら犯人はDocker for Macのようなのでお掃除していきます。 不要なコンテナの削除 Docker – Clean Up After Yourself! | Yohan Liyanage こちらのブログより。 exited containersは自動削除されないとのことで、こちらを実…

Node.jsで内部変数・関数の取得

概要 テストやちょっとしたツールを作りたいときに内部変数・関数にアクセスしたい時がありますが、 そんなときに便利なのがvmモジュールです。しかしvmではvarの変数は取得できるものの、letやconstの変数は取得できません。 そこで色々試行錯誤して作った…

Objective-CにおけるDate型の扱い

概要 なぜか最近仕事でObjective-Cを書いています。 サーバからmsのtimestampを受け取っているにも関わらず、時系列順に表示されなかったので調べてみました。 Types in Objective-C まずはじめにハマったのが、msはint型には収まりません。JavaScriptの住人…

Google Cloud Platform上にContainer Clusterを作成する

概要 Google Cloud PlatformのContainer Cluster(Kubernetes)のセットアップからデプロイまでの手順です。プロジェクトの作成手順は省略します。 Container Clusterの作成 メニューから [Container Engine] -> [Container Clusters] を開き、[CREATE CLUSTER…

Pokemon Goのちょっと得する情報

カナダで一足先にプレイしています。ポケモン効果はすごいです、家から基本出なかったカナディアンの友達が毎日外出してます。 さて色々損してきたのでさくっと箇条書きでまとめときます。 ピカチュウをゲットする 最初の三匹を選ばずに待っていると現れます…

GAEからCloud Storageに画像をアップロードする

はじめに Google App Engine (GAE)のGolangのAPI仕様がガラッと変わったようなので、古いバージョンを使っている方はここを参考に書き換えてください。 GitHub - golang/appengine: Go App Engine packages Goのversionは1.6.2を使用しています。 画像のアッ…

Image.Decodeでunknown formatになったときの対処法

Go

いまいち条件がわかりませんが、一度Decodeされたデータは再度Decodeしようとするとunknown formatになるようです。 Goのバージョンは1.6.2を使用しています。 依存ファイルは以下のとおりです。 import ( "bytes" "image" "image/gif" "image/jpeg" "image/…

Benchmark: Async vs Neo-Async

What is Neo-Async? Neo-Async is meant to be used as a drop-in replacement for the Async library. It implements the same API, and adds extra functionality. I have been trying to make it faster and safer than Async. https://github.com/suguru…

Golang始めました

Go

始めたきっかけ Node.jsエンジニアとして採用されましたが、Node.js/Go/Javaの3つのサーバが建っていたため、最近ではGoのコードも修正したりしてます。 導入 Node.js出身の僕としては、やはりnvmのようなパッケージ管理モジュールを入れたいものです。gvm…