Claudia.jsでES2015を使う

AWS LambdaのNode.jsコンテナは残念なことに2017年1月現在でv4.3という古いバージョンで、ES2015に対応していないです。 公式の"USING BABEL WITH AWS LAMBDA"に書いてある通りで、babelを使ってES2015でClaudiaやBabelを書く方法をまとめます。 前提 下記の…

Claudia.jsで簡単サーバレスアーキテクチャー

サーバレスアーキテクチャと聞いて、どのようなアーキテクチャを思い浮かべるでしょうか。Martin Fowler.comのサーバレスアーキテクチャの解説記事ではいくつかのサーバレスアーキテクチャの実装例がリストアップされています。 ここでは、最もよく使われる…

Web API用の負荷テストツールで遊んでみる

これはWeb API Advent Calendar 2014の16日目の記事です。 はじめに Web API Advent Calendar 2014 8日目ではkazuchikaさんよりApigee製のAPI負荷ツールapibの紹介がありました。 この記事ではapibに加えてBoomというGolang製の類似ツールを簡単に紹介し、様…

OSXとHomebrew-caskでHaskellの開発環境を構築

この記事ではHomebrewではなくHomebrew-caskを使ってHaskellの環境を構築します。 インストールには、以下のOSX用のHaskellディストリビューションを使います。コンパイル済みのバイナリとcabalが入っていて早くてお手軽です。 Haskell for Mac OS X GHC イ…

OSX 10.10 Yosemiteでhomebrewによるgccインストールのエラーを回避する方法

OSX 10.10 YosemiteのDeveloper Preview版で普通にbrew install gccでgccをインストールしようとするとエラーになると思います。ここではパッチを当ててgcc4.9.1をインストールしてみます。 前提 OSX 10.10 Developer Preview 4 gcc 4.9.1 参考 https://gith…

OSXでssh-copy-idを使ってリモートサーバにパスワードなしでログインする

OSXでssh-copy-idを使う方法です。 何ができる? sshでサーバにログインする際のパスワード入力が不要になる。 そのために必要なssh公開鍵の配布を簡単に行うことができる。 インストール beautifulcode/ssh-copy-id-for-OSX - GitHubを使います。 ダウンロ…

npmに自作のCLIモジュールを公開する

npmのアカウントを作成 https://www.npmjs.orgで登録します。 ユーザ名 パスワード Emailアドレス npmコマンドとnpmアカウントの紐付け 先ほど作成したユーザ情報を対話的に入力します。 npm adduser 公開準備 : package.json生成 npm init でpackage.jsonを…

GitHubのユーザ名を変更する

GitHubのユーザ名を変更する方法です。過去のコミットのユーザ名やメールアドレスも修正します。 GitHubのユーザ名を変更 Account Settings -> Change username ローカルのgitのユーザ名を変更 git config --global user.name "新ユーザ名" git config --glo…

AngularJSでリストやテーブルの各行にボタンを配置する

リストの各行、テーブルの各列、ナビゲーションバーの要素などにボタンやリンクを配置して、クリックされたら各行の内容に応じて処理を行いたいケースがあると思います。このよう場合、ng-repeatとng-clickを使うとシンプルです。 HTML(jade) ul li(ng-repea…

herokuでnode.jsのexpress4アプリを動かすためのProcfileの書き方

Express4における雛形生成 express4の起動コマンド Express4ではアプリの雛形をexpress-generatorで生成するようになり、標準の起動コマンドが以下に変更になりました。 npm start heroku用のProcfile heroku用のProcfileの書き方はいろいろありますが、以下…

GitHub製エディタAtomのMarkdownリアルタイムプレビューの仕様

GitHub製エディタAtomのソースコードがMIT Licenseで公開されたので久しぶりに使ってみたところ、以前はできなかったMarkdwonファイルのリアルタイムプレビューができるようになっていました。 ここでは、AtomのMarkdownリアルタイムプレビュー機能の現時点…

Xcodeで1つのプロジェクトから無料版と有料版のiOSアプリをビルドする

iOSアプリの無料版と有料版を提供するとき等に、Xcodeの1つのプロジェクトから無料版と有料版の2つのアプリをビルドしたいケースがあります。 Xcodeで2つのプロジェクトに分けてしまうと、バグ修正や新機能追加のたびに両プロジェクトをコーディングする必要…

HerokuでWebSocketを有効にする

HerokuでPublicBeta運用中のWebSocketを使う方法です。 Herokuは2013年の10月にWebSocket通信が行える機能がPublic Betaとしてリリースされました。しかしながら、Public Betaの期間中は初期設定のままでは使えません。 したがって、以下のようにheroku labs…

Herokuで1つのアプリを複数の環境にデプロイする

Herokuで運用中のアプリのローカルリポジトリからHerokuに複数環境を生成する方法です。 具体的には次のような事を行う場合に便利です。 Herokuに本番環境とステージング環境と開発環境を作成 Herokuでモバイルアプリの有料アプリのサーバと無料アプリのサー…

Herokuのアプリをターミナルで削除する

Herokuで運用しているアプリをCLIのターミナル経由で削除する方法です。 ターミナルで削除するとgit remoteの設定を削除する必要がないため、WebのGUI管理画面で削除するよりも楽です。 確認無しで削除する heroku apps:destroy --app アプリ名 --confirm ア…

MagicalRecord に mogenerator を組み合わせてよいか

CoreDataを使う際に、MagicalRecordに加えてmogeneratorを使う事を推奨しているブログ記事が散見されますが、mogeneratorには以下のようにリジェクトのリスクがあるようです。 Don't use mogenerator methods in place of standard Core Data calls #569 App…

MagicalRecordでCoreDataをお手軽に使う

iOSアプリでデータを保存(serialize/deserialize)する方法としてCoreDataがありますが、コード量が多く慣れるまでにも時間がかかります。 ここではより簡単なMagicalRecordによって、CoreDataを使ってみます。 MagicalRecordはActive Recordパターンを採用し…

OSXでDockerを使う

Dockerに特化した軽量Linuxのboot2dockerを使ってOSXでDockerを使ってみます。Dockerはv0.8でアーキテクチャを変更してOSXに対応し、homebrewにも入ったため誰でも簡単に使えるようになりました。 インストール brew cask install virtualbox brew cask inst…

yeomanのangular-fullstackでMEAN (MongoDB + Express + AngularJS + Node.js)アプリをお手軽に開発

クライアントサイドのMV※フレームワークの一つにAngularJSがありますが、2012年にバージョン1.0がリリースされ、2013年になって一気に大流行しました。このAngularJSの流行に乗りながら、サーバサイドも含めてJavaScriptで開発するMEAN (MongoDB + Express +…

Hacker Newsの記事をMongoDBに蓄積するPythonアプリケーションをGIthubとHerokuで公開

Hacker NewsのエントリをMongoDBに蓄積するWebアプリをGitHubとherokuに公開しました。目的はHacker Newsのエントリの分析で今後そうした機能を公開するかもしれません。MIT Licenseなので好きに使ってください。 GitHub sodesign / HackerNewsRecorder Hero…

Heroku add-onのMongoHQでMongoDBを管理する方法

以下の2通りの方法があります。前者は通常のMongoDBと同様なのでこの記事では割愛して、後者のMongoHQのWebコンソールによる管理方法を紹介します。 ターミナルからmongoコマンドで接続して管理 MongoHQから提供されたインスタンスのURLに接続します。通常の…

MongoDBとPythonを使ったWebアプリをHerokuで無料で運用する

はじめに MongoDBとPythonで開発したWebアプリをHerokuで運用してみます。MongoDBの運用にはMongoDBホスティングサービスのMongoHQを使い、PythonのWeb Application Frameworkは軽量なBottleを使います。HerokuのようなPaaSやMongoHQ/MongoLabのようなDBaaS…

OSXにWineをインストールしてWindows無しでWindowsアプリを実行する

Wine - Run Windows applications on Linux, BSD, Solaris and Mac OS X. Wineを使うとParallels DesktopやVMware FusionやOracle VM VirtualBoxといった類いの仮想化ソフト無しにWindowsアプリを実行する事が出来ます。対応ソフトは日々増え続けており、App…

Pythonでインストール済みのモジュールを一括アップグレード

pipでインストール済みのモジュールを一括アップグレードしたい場合は、pip-toolsが便利です。 pip-toolsインストール pip install pip-tools モジュールの更新チェック pip-review モジュールの一括アップグレード pip-review --interactive

AMD

PythonでMFCC(メル周波数ケプストラム係数)を計算

音声処理ではMFCCという特徴量を使うことがあり、MFCCを計算できるツールやライブラリは数多く存在します。ここでは、Pythonの音声処理用モジュールscikits.talkboxでお手軽に計算してみます。 参考 メル周波数ケプストラム係数(MFCC)/ 人工知能に関する断…

OSXにApache Hadoopをインストール

Macboook Airなどのローカル環境でHadoopを気軽に試したいケースもあるかと思います。OSX 1台だけでHadoopを使う場合の環境構築手順をまとめました。 参考 - 公式サイト:Single Node Setup 環境 OSX 10.8.4 Apache Hadoop 1.1.2 Java 1.6 インストール手順 H…

OSXにHomebrewでOpenCVをインストールしてPythonで使う

homebrewの標準リポジトリにはOpenCVは無いのですが、homebrewでOpenCVをインストールしてPython2で使ってみます。 OpenCVインストール Homebrew/homebrew-science · GitHubをリポジトリに追加 brew tap homebrew/science OpenCVをインストール brew install…

C言語のプログラムをWebブラウザやNode.jsで実行する

Emscriptenを使います。Emscriptenとは、C言語のコードからLLVMのバイナリを生成してJavaScriptのコードを出力するプログラムです。C言語のプラグラムのコードがあればJavaScriptのコードに変換して、WebブラウザやNode.jsで動かす事が可能です。 Emscripten…

Homebrewで古いバージョンのソフトを削除する

brew upgradeでソフトをバージョンアップした時に、古いバージョンは削除されません。ディスクの空き容量を増やしたい場合以下を実行します。 特定のソフトの古いバージョンを削除したい brew cleanup [formula名] 全てのソフトの古いバージョンを削除したい…

Haskellの電子書籍

オンラインで無料で読めるHaskellの電子書籍や講義資料。 電子書籍 Learn You a Haskell for Great Good! - A Beginner's Guide, Miran Lipovaca 和書 : すごいHaskellたのしく学ぼう!, Amazon.co.jp Real World Haskell, Bryan O'Sullivan, Don Stewart, J…

oh-my-zshとiTerm2のテーマでターミナルをカラフルに

5-10分くらいの作業でターミナルをこんな見た目に変えられます。 oh-my-zsh robbyrussell/oh-my-zsh · GitHub zsh用の設定管理フレームワークです。プラグイン形式でzshに機能追加したり、テーマを設定することでzshのビジュアルを変更することができます。…

JavaScript製のゲーム開発フレームワーク SmoothStep2D framework を使ってみた

最近リリースされたばかりの、JavaScriptの2DゲームフレームワークSmoothStep2Dが良さそうだったので、試しに簡単なサンプルゲームを作ってみました。 サンプルは、 sodesign/ss2d_samples - GitHub で公開しています。 SmoothStep2Dって? JavaScript製の2D…

node.js & expressアプリケーションのテンプレート

sodesign/boilerplate_nodejs_express · GitHub naoyaのはてなダイアリー - 昨今の自分用Webアプリケーションひな形を読んで、同じように自分用のnode.js & expressアプリケーションの雛形を公開してみました。 使い方はboilerplate_nodejs_expressを参照し…

Python用のvimの設定

vimでPython用の設定を行ったのでまとめておきます。 何ができる? 大まかに言うと次の5つが行えます。 コード補完 pep8チェック Pyflakesチェック McCabe複雑度チェック pep8用インデント 前提 vimプラグインの管理にNeoBundleを使っています。 NeoBundleの…

WebAudio APIによるWebブラウザ上のDJ Mixer

GitHub - browserdj Webブラウザで動作するDJミキサーをGitHubで公開しました。ライセンスはMITライセンスです。ローカルのmp3ファイルをロードして初歩的なDJプレイが行えます。 経緯 WebAudio APIの勉強で参加した第一回Web Audio APIもくもく会, 第二回We…

BowerでWebアプリのJavascriptやCSSライブラリをスマートに管理する

Bower Bower A package manager for the web By Twitter これは何? Twitter社が提供しているフロントエンドのJavaScriptやCSSライブラリをインストール・管理するためのツールです。 コマンドもしくは定義ファイルに基づいて、ライブラリをインストールする…

IPython notebookでブラウザ内にグラフを描画する

概要 PythonにはIPythonというブラウザやターミナルで対話的にPythonを実行できるツールがあります。 また、科学計算ライブラリnumpy, scipyやグラフ描画ライブラリmatplotlibがあります。 こうしたツールを組み合わせて、Pythonを使ってブラウザで対話的に…

Pythonbrewを導入して複数バージョンのPythonを管理する

Rubyのrvm/rbenv, Node.jsのnodebrewのようなバージョン管理ツールのPython版の導入方法です。 一時期PythonbrewからPythonzという同様のツールに乗り換えていたのですが、Pythonbrewに戻したため導入方法をまとめておきます。 戻した理由はここ(pythonbrew …

VimでMarkdownをGitHub風にリアルタイムプレビュー

「VimmerだがMarkdown文書を書く時にはリアルタイムプレビュー機能が欲しいのでしかたなく専用エディタを使っている。」 そんな根無し草的Vimmerの夢を叶えるVim用のMarkdownリアルタイムプレビューツールがあったので紹介します。 使い方 vimでmarkdownテキ…

CocoaPodsでiOSのライブラリを簡単にインストールする

CocoaPods Objective-Cのライブラリを自動的にインストールするためのツールです。node.jsにおけるnpmやRubyにおけるRubyGemsと似たようなパッケージ管理ツールです。 CocoaPodインストール $ gem install cocoapods $ pod setup iOSプロジェクトへのライブ…

Node.js + PhantomJS でウェブサイトのスクリーンショットを作成

PhantomJSとNode.jsを使ってWebサイトのスクリーンショットを取得してみます。 PhantomJSについては、PhantomJS公式サイトに詳しく記載されていますが、代表的な使い方として以下のような例が取り上げられています。 HEADLESS WEBSITE TESTING SCREEN CAPTUR…

Webブラウザで端末のマイクやオーディオ入力の音を扱う:WebRTC

WebRTC / WebAudio API 以前の投稿webブラウザでwebカメラを使ってみようでは、WebRTCのgetUserMedia()関数を使って、端末のWebカメラのデータをブラウザに表示させました。 こんどは、同じくWebRTCのgetUserMedia()関数を使って、端末のマイクやオーディオ…

jGrowlとjQueryUIを混在させる方法

Growl OSX用の有名なデスクトップ通知アプリにGrowlというものがあります。 (現在ではApple製のデスクトップ通知システムが標準搭載されてしまいましたが。) GrowlのデザインはGrowl -> スクリーンショットで見る事ができます。 jGrowl ブラウザ上で「Growl…

ブラウザで端末のWebカメラを使ってみる : WebRTC のStreamAPIについて

Web RTCとは 公式サイトでは、「シンプルなJavascript APIとHTML5を用いて、ブラウザ内でリッチで高品質なリアルタイムコミュニケーション(Real Time Communication)アプリを開発できるようにする」ことを目標としたプロジェクトと書かれています。 Our miss…

TouchDB (CouchDB互換の組込用NoSQL) をiOS開発で使ってみる

TouchDBとは 概要 公式サイトを見ると次のように解説されています。 TouchDB is a lightweight Apache CouchDB-compatible database engine suitable for embedding into mobile or desktop apps. Think of it this way: If CouchDB is MySQL, then TouchDB …

OSXにvert.xをインストール

OSX(Mountain Lion)でvert.xを動かす方法を説明します。 vert.xについては以下のサイトなどを参照してください。 vert.x Info Q vert.x – Node.jsの代替フレームワーク JDK7インストール JDK. Vert.x requires JDK 1.7.0 or later. Vert.x Installation Guid…