nirasan's tech blog

趣味や仕事の覚え書きです。Linux, Perl, PHP, Ruby, Javascript, Android, Cocos2d-x, Unity などに興味があります。

echo + GAE でエラーを表示する

デフォルトではハンドラーで error を返しても表示されない。 echo の HTTPErrorHandler を拡張して appengine/log を挟み込むことで表示させられる Does not display error log on AppEngine · Issue #630 · labstack/echo · GitHub

Google SRE Book と Go

www.amazon.co.jpこれを読んでわかったが Google は人間を信頼性の低いパーツだと思っている。悪い意味ではない。 人間は動作が不安定で簡単には変えが効かずコストが高いので大切に扱いつつ、できるだけ人間の手が必要ない自律したシステムを作ることでうま…

Macbook 初期設定メモ 2017

公式からダウンロードしてインストール Chrome intelliJ IDEA Homebrew mi 設定 Karabiner-Elements “Virtual Keyboard” の “Keyboard Type” を “JIS” に “Caps Lock” を “Esc” に iTerm2 https://qiita.com/luckypool/items/929607f326f9494723f2 brew でイ…

Angular で JSON を POST で送信しようとすると空になる

はじめに Angular で公式ドキュメント の通りに JSON データを POST で送信しようとすると Body が空になるので対策をメモ 環境 Angular 4.3.5 公式ドキュメントのコード このとおりだと Body が空になる const body = {name: 'Brad'}; http .post('/api/dev…

メールアドレスとウェブサイトを Google のサービスのみを使って用意する

はじめに アプリを公開するため問い合わせ用のメールアドレスとウェブサイトを用意することにした メールアドレスの用意のためにメールサーバーは管理したくないので Gmail が使えて独自ドメインが使える G suites を使う ウェブサイトは GAE/Go を最近使っ…

Unity の UnityEditor.BuildPipeline:BuildAssetBundles で出たエラーと対策

前提条件 Unity 5.6.1f UnityEditor.BuildPipeline:BuildAssetBundles で Asset Bundle をビルドしたらエラーが発生した エラー内容 ポップアップで “Build failure Internal error: Target platform mismatch” コンソールに “Menu Edit/Graphics Emulation/…

ユースケース駆動開発実践ガイドまとめと感想

はじめに エリック・エヴァンスのドメイン駆動設計を読んだ流れで DDD について調べていたらどこかの発表スライドでユースケース駆動開発実践ガイドをおすすめしていたので読んでみた。 一度通して読んだので復習しながら簡単なまとめと感想を記録しておく。…

GAE/Go 環境で echo が実行できない問題

問題 GAE/Go 環境で echo を使ったアプリケーションを goapp serve で実行しようとすると以下のエラーが発生して実行できない 2017/01/16 16:08:42 go-app-builder: Failed parsing input: parser: bad import "unsafe" in github.com/valyala/fasttemplate/…

Go 言語のアプリを heroku にデプロイするときは vender を .gitignore にいれるとだめ

ビルドエラーになる godep 使わせている意味なくない? デプロイ用のブランチ作って .gitignore から外すとかするのかな? $ git push heroku master Counting objects: 280, done. Delta compression using up to 4 threads. Compressing objects: 100% (26…

Rubyのリファクタリングでイケてないコードをなんとかするやつをやってみた

はじめに http://tango-ruby.hatenablog.com/entry/2016/07/15/133122 が面白かったので自分でもやってみた。 リファクタリングできそうな点 initialize で start_date, end_date を渡しているのが不自然。 OrdersReport という汎用的なクラス名なので期間以…

Go 言語でソリティアを作った

termbox-go を知ったので、息抜きに Go 言語でソリティアを作りました。 https://github.com/nirasan/go-solitaire仕事中にやりやすいように ls っぽいモードも搭載してあります。mac 用だけサンプルがあります。操作は README で。 https://github.com/nira…

Go 言語の列挙型的な定数と定数でのフラグ管理

列挙型的定数 Go では const と iota を使って列挙型的な定数を定義する iota は const 宣言開始時に 0 になり、定数を定義する毎にインクリメントする 定数定義は値を指定しないと直前の定数と同じ値になるので iota と組み合わせることで連続した値が定義…

termbox-go 使い方まとめ

はじめに https://github.com/kurehajime/pong-command とかみたいな感じでターミナル上で任意の座標に任意の文字を表示できる termbox-go の使い方まとめ。 概要としては termbox の内部でターミナル上の座標に対応した文字のバッファを持っているので、Set…

Go 言語でブログを作ったメモ

Go 言語学習のためにユーザー認証とDB連携のあるブログアプリを作った ソースは https://github.com/nirasan/go-blog Web 周りに Gorilla web toolkit を、ORM に gorp を使用 Go 自体シンプルだし、あえてシンプルなライブラリを選んでみたのでわりとはまら…

Go 言語で gorilla/mux, gorilla/context, gorilla/sessions を使ったユーザーログイン機能のサンプル

はじめに Go 言語練習のため gorilla/mux, gorilla/context, gorilla/sessions を使ったユーザーログイン機能を実装してみました。 ユーザーの管理はメモリ上の map 型変数にユーザー名とパスワードを入れているだけなので、ここをDBに変えるのが次の課題の…

Go 言語で gorilla/mux を使った簡単なウェブアプリのサンプル

はじめに Go 言語で簡単なウェブアプリを作りたいので軽量なウェブツールキット gorilla/mux を使ったサンプル。 context の使い方は gin や goji のミドルウェアの実装を参考に、共通化したい処理を個別のハンドラの上にラップする形にした。おきまりのパタ…

Mac + DockerToolbox 環境の Centos6 で Supervisor を使って複数のサービスを起動する 〜 sshd と named を起動する例

はじめに Docker のコンテナでは複数のサービスを同時に立ち上げられないので、任意のプログラムをデーモン化して起動や停止を管理する Supervisor を利用して、Supervisor 経由で複数サービスを管理する。 Supervisor のパッケージは epel にあるが、バージ…

Mac + DockerToolbox で ssh 可能な CentOS のイメージを作成する

DockerToolbox のインストール http://docs.docker.com/mac/step_one/ の手順に従ってインストール Docker Quickstart Terminal の実行 Dockerfile の作成 Docker 用のディレクトリを作成して Dockerfile の作成 $ mkdir -p /path/to/docker/centos-ssh $ cd…

Rails で作った API サーバーに Unity でリクエストをする

はじめに http://nirasan.hatenablog.com/entry/2015/08/20/172719 で作成した API サーバーに Unity で認証してリクエストを送信するメモ サーバー側の変更点 Doorkeeper でアクセストークンの更新に対応するため config/initializers/doorkeeper.rb に以下…

Rails で API サーバーの認証の仕組みを作る

はじめに Rails でモバイルアプリのバックエンドに使う API サーバーのユーザー作成と認証の仕組みを作ったメモです Doorkeeper + Sorcery を使った認証の構築とテストまで記述します 参考サイト http://bokukoko.hatenablog.com/entry/2014/04/11/%E3%83%A6…

Rails初期化チートシート

プロジェクトの作成 rails new PROJECT_NAME -T -B cd PROJECT_NAME git の設定 git init curl https://www.gitignore.io/api/rails,ruby,osx,linux,vim,sublimetext,rubymine > .gitignore gemのインストール cp /path/to/Gemfile ./ #TODO bundle install …

Unity でネイティブプラグインを使って ActivityIndicator の画像変更と画面中央での表示(iOS編)

はじめに Unity でネイティブプラグインを使って ActivityIndicator の画像変更と画面中央での表示(Android編) - nirasan's tech blog にひき続いて iOS 編 基本的に http://tsubakit1.hateblo.jp/entry/2014/08/19/010141 こちらのとおりです。 iOS 側の…

Unity でネイティブプラグインを使って ActivityIndicator の画像変更と画面中央での表示(Android編)

はじめに Unity で OS ネイティブの読み込み中アニメーションを表示するメソッドとして Handheld.StartActivityIndicator がある。 これは Android では画面左上に表示されてしまうので、画面中央に表示させられるようにネイティブプラグインを作ったメモ。 …

paperclip_database の導入メモ

はじめに ActiveRecord のオブジェクトに画像ファイルを添付する gem の Paperclip で、画像の保存先をデータベースにする gem の paperclip_database の導入メモ。 Paperclip は導入済みで、User モデルの avatar カラムに添付画像情報を入れているものとす…

NGUI の UITweener の Animation Curve に任意の曲線を設定する

はじめに Unity + NGUI で TweenPosition や TweenAlpha などの UITweener を継承したコンポーネントで Animation Curve の曲線をプログラムから設定する方法についてメモ。 バージョン Unity 4.6.1f1 NGUI 3.7.6 設定方法 Animation Curve の曲線は Animati…

NGUI で UILabel の文字量に従って縦幅だけ変動させるスクリプト

using UnityEngine; using System.Collections; /// <summary> /// UILabel の横幅を固定して text に従った縦幅に設定するスクリプト /// </summary> public class UILabelHeightFitter : MonoBehaviour { /// <summary> /// リサイズ対象の UILabel /// </summary> public UILabel label; private…

自分用 RubyMine ショートカットメモ

チートシート https://www.jetbrains.com/ruby/docs/RubyMine_ReferenceCard_Mac.pdf ジャンプ 宣言へジャンプ Command + b 使用箇所のリスト Alt + F7 タブ移動 左へ Command + Shift + @ 右へ Command + Shift + [

NGUI の ScrollView で気持ちのいいスクロールを実装する

気持ちが良いスクロールとは? 今回は「ちょっとスワイプするだけで次の要素にスッと切り替わる」ものを実装する。 バージョン情報 Unity 4.6.1f NGUI 3.7.6 ヒエラルキー UI Root ScrollView Grid ScrollView の作成 メニューの [NGUI] > [Create] > [Scrol…

Rails 4.2 で Heroku にデプロイしたメモ

はじめに Rails 4.2 で開発していたアプリを Heroku にデプロイした時にやったことメモ 環境 mac Rails 4.2 Sqlite3 Heroku にユーザー登録 済 Heroku のコマンドラインツールのインストール https://toolbelt.heroku.com/ Heroku アプリの作成 $ cd /path/t…

Rails 4.2 で destroy のバリデーションをする

任意の条件でバリデーションをする http://qiita.com/tbaba/items/9ea139dc77443e6d7be2 の通り、before_destroy に指定したメソッド内で条件を判定し、destroy 不可であれば return false する 前記記事の通り before_destroy :method_name の記法ではなく…