in the mythosil

Rhythm & Biology.

CentOS7でPacemaker×Corosyncを動かす

公式資料(ClusterLabs)を参考に構築していく。 ClusterLabs - RHEL 7 Quickstart Clusters from Scratch RedHat社の資料も役に立つ。 第1章 Pacemaker を使用した Red Hat High Availability クラスターの作成 High Availability Add-On の概要 仮想マシンの…

gulp-sass-variablesで環境ごとの変数の値を変える

環境によってCSSの中身を切り替えたいということがある。 たとえば、background画像のURLを、開発環境ではローカル、本番環境ではCDNのものにするといった場合である。 gulp-sassを使っている場合は、gulp-sass-variablesを利用するとこれが実現できる。 www…

DNAストレージの容量

digital universe(地球上で生成されるデータ全体)は、2017年に16ゼタバイトと予測されている。 一方で、保存可能なキャパシティはすでに生成されるデータに間に合わなくなっている。 http://www.idc.com/downloads/where_is_storage_infographic_243338.pd…

loader.ioを試す

loader.ioはWebサイトの負荷テストをしてくれるサービス。 制限つきだが、無料で使えるので試してみる。 https://loader.io/pricing ユーザ登録してログインすると、まずこのような画面になっている。 New Hostで先に進むと次はこのような画面。ここにテスト…

macにLaTeXiT環境を整える

新しいmacbook proに買い換えてからLaTeXiT環境を整えていなかったので整備。 LaTeXiTがあれば資料に貼る用の綺麗な数式を簡単に作れる。 まず、brew(cask)にLaTeXiTがあるか調べたらあったのでそれを入れてみた。 $ brew search latexit caskroom/cask/late…

odeintでMAPK cascadeのシミュレーション

odeintを試す題材としてMAPK cascadeのモデルを利用してみる。 成果物はここ → GitHub - mythosil/odeint-mapk モデルの入手 モデルはBioModelsから取得。 BIOMD0000000010 - Kholodenko2000 - Ultrasensitivity and negative feedback bring oscillations i…

Weld: Java SE環境でCDI利用

Java EEのアプリケーションコンテナを利用せず、Java SE環境でCDIを利用する方法。 CDIコンテナにはWeldを利用。 ソースコード pom.xml

WildFly: JBoss Forgeによるアプリケーション開発

環境 Mac OSX 10.9 Eclipse Luna Red Hat JBoss Developer Studio (Luna) 8.0.0.Beta3 Eclipse Market Placeからインストール プロジェクト作成 Forge Consoleを開きます Show View → Forge Console 緑の▶ボタンを押して起動 Forge 2.7.2.Finalを起動 (1.4.4…

WildFly: Arquillianを利用したテスト

WildFly+Arquillianでテストを実行してみたログ 環境 Mac OSX 10.9 NetBeans 8.0 WildFly 8.1.0.Final プロジェクト新規作成 新規プロジェクト → Maven → Webアプリケーション プロジェクト名: arq-base パッケージ: com.mythosil.arqbase サーバ: WildFly J…

WildFly: ポート番号の変更方法

ポートを変更する方法を何種類か、備忘録 デフォルト HTTPポート: 8080 管理ポート: 9990 起動時にポート番号指定 HTTPポート: 18080 管理ポート: 19990 $ ./standalone.sh \ -Djboss.http.port=18080 \ -Djboss.management.http.port=19990 起動時にオフセ…

WildFly: MySQLをデータソースとして利用 (CLI設定)

CLIツールにこだわって、WildFlyへのMySQLのドライバインストール、データソース追加までやってみます。 WildFlyのバージョンは8.1.0.Finalです。 ドライバのダウンロード WildFlyにはドライバは標準ではついてこない(?)ため、ダウンロードしてきます。 $ cd…

WildFly: デプロイ時のnameとruntime-nameの役割

WildFlyへのCLIツールを利用したデプロイ時に--nameオプションと--runtime-nameオプションがあり、それぞれが何を意味しているのか分からなかったため、実験しつつ調べてみました。 まずはヘルプを読む ざっくり把握した内容 nameはユニークでなければならな…

WildFly 8.1.0.Finalのインストールからアプリケーションのデプロイまで

環境 MacBookAir MacOSX 10.9.3 インストール ダウンロードしてきて展開するだけ $ curl -LO http://download.jboss.org/wildfly/8.1.0.Final/wildfly-8.1.0.Final.tar.gz $ tar xvfz wildfly-8.1.0.Final.tar.gz 起動 standalone.shを実行するだけ $ cd wil…

Dockerでapacheを動かす

Dockerのコンテナでapacheを動かすまでのメモ 環境 Mac OS X 10.8 Ubuntu 12.04 (Vagrant) Ubuntu 12.04 (Docker) ファイル構成 vagrant$ find . . ./Dockerfile ./htdocs ./htdocs/index.html vagrant$ cat htdocs/index.html <html> <body> <h1>Hello Docker!</h1> </body> </html> Dockerfil…

さくらVPS(CentOS6.4)でDockerを使う

Docker 0.7からaufs以外のstorage driverがサポートされてCentOSでもDockerが使えるようになりました。 aufsがサポートされていなければ、起動時にdevicemapperを利用してくれるとのことです。devicemapperもサポートされていなければvfsを利用。CentOSにはe…

選択文字列を検索するChrome Extension

選択文字列をキーバインド一発でYahooなりGoogleなりで検索する方法が無いかなと思って探してみたけれども、意外と見つからなかったので作ってしまいました。Chromeのデフォルトの機能として、選択文字列を右クリックすれば検索するメニューが表示されますが…

oil refine install時に"It is not safe to rely on the system's timezone settings"と出る場合の対処法

FuelPHPのプロジェクト作成時に $ oil refine installとしたら以下のようなエラーが表示されるようになりました。 Fatal error: Uncaught exception 'Fuel\Core\PhpErrorException' with message 'date(): It is not safe to rely on the system's timezone …

GitLabのインストール

さくらVPS(CentOS)にGitLabをインストールした際のメモ。参考:https://github.com/gitlabhq/gitlabhq/blob/stable/doc/installation.md yum 今回はDBにsqlite3を利用するため、あらかじめyumでインストールしておきます。 その他、gitは当たり前として、wge…

FuelPHP入門を読んだ

今月はじめに発売されたばかりのFuelPHP入門を読みました。 といっても、前半の半分を読んで、残りはまだざっと目を通した程度です。 まだ情報も少ない中で、これだけまとまった情報が得られるのは非常に貴重だと思います。 1.1をベースに書かれていますが、…

FuelPHPを動かす

インストール FuelPHPをインストールする方法は2種類あるようで、1つはoilコマンドというものを使う方法。2つ目はzipでダウンロードしてくる、もしくはgit cloneする方法。 oilコマンドを使ってインストールするには、 $ curl get.fuelphp.com/oil | sh $ cd <document_root></document_root>…

jQueryのgetJSONでハマった

JSONPのAPI叩くときにjQueryのgetJSONは非常に便利ですが、 var url = "http://some/where?callback=?"; var param = { q: query, callback: callback, // NG }; $.getJSON(url, param, callback); function callback(json) { console.log(json); } なんて書…

Perlで手軽に非同期TCPサーバ

yokohama.pmに行ってきて、またperl熱が上がってきたので、久しぶりにコード書いてみた。 AnyEvent::TCPServer AnyEvent::Socketを使って非同期サーバ書こうとすると色々面倒くさかったりするので、もっと手軽に書けるモジュールを作ってみました。こんな感…

AES128暗号化 - Java編 -

先日iPhone(というかObjective-C)でのAES128暗号化について触れましたが、今回はJava編です。未確認ですが、おそらくAndroidでも動きます。 /* * $ javac CryptAES.java * $ java CryptAES <secret_key> <iv> <message> */ import java.security.spec.AlgorithmParameterSpec; import </message></iv></secret_key>…

iPhoneでAES128暗号化

ios

iPhoneアプリ開発で暗号化を行う必要が出てきたので、試しに書いてみました。 暗号方式にはAES128を、Padding方式にはPKCS7を使っています。ここで使っているCommonCryptoはiOS SDKについてくるものですが、mac上でも普通に使うことができます(iPhone Simula…

libeventでHTTPサーバを試す

libeventに含まれるevhttpを使って、簡単なhttpサーバを作ってみました。 404を返す まずは404 not foundを返すコードを書いてみます。ただし、GET以外のメソッドの場合はBad Requestを返すようにします。 #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <event.h> #include <evhttp.h></evhttp.h></event.h></errno.h></stdlib.h></stdio.h>…

libeventでタイマー処理をする

libeventでタイマー処理をする方法について書きます。 まずは3秒後に指定の関数を呼ぶコードです。 #include <stdio.h> #include <sys/time.h> #include <event.h> void say_hello(int fd, short event, void *arg) { printf("Hello\n"); } int main(int argc, const char* argv[]) { struc</event.h></sys/time.h></stdio.h>…

libeventでechoサーバをつくってみた

memcachedで使われていることで有名なlibeventを試してみました。 以前libevを試したことがあるのですが、libeventの方が少し書きやすいという印象です。パフォーマンスに関してはlibevのほうが上という噂ですが。libeventやlibevに関して少し説明しておくと…

CALayerのアニメーションを一時的に無効にする方法

ios

CALayerはプロパティを変更した際に、いい感じにアニメーションをつけてくれます。特に手を入れることなくちょっとだけリッチな感じにすることができるのですが、逆にアニメーションさせたくないときもあるはずです。これはCATransactionを使えば簡単に解決…

クリップボードを使ったいたずら

他人のクリップボードをめちゃくちゃにしてやろうといういたずらです。 perl編 # clip_or_treat.pl use Clipboard; while (1) { Clipboard->copy("Trick or Treat!"); sleep 2; } 後輩などのマシンでぶん回していたずら完了です。 applescript編 perl編だとC…

AnyEvent::Redisでpubsubを使ってみた

Redisはオンメモリで高速に動作しつつ、定期的にディスクに書き込んでくれるKVSです。 また、pubsubの機能もサポートされており、今回はこれに焦点をあててみようと思います。もう少し詳しい内容は公式サイトのIntroductionを見てください。 http://redis.io…

CからGraphvizを使う

perlだとGraphvizモジュールがあったり、C++ならBoost::Graphがあって、情報も調べればすぐに出てくるのですが、Cから使う場合に関しては公式ドキュメント以外にあまり見かけない気がします。そこで今回、Cからgraphvizのライブラリを使う方法に関して簡単に…

SenTestingKitでNSLogを監視する

Cocoa開発でテストを行う時にはSenTestingKit.frameworkを使います。使い方も簡単でそれほど不満はないのですが、一つだけ大きな不満があります。NSLogがXcodeのデバッグコンソールに表示されないということです。NSLogだけでなく、CFShow, printf全て表示さ…

CAAnimationでCALayerを動かす

ios

CALayerは単純な位置の移動だけなら、 layer.position = CGPointMake(x, y); というようにすれば、アニメーションとともに移動してくれます。position以外にも、opacityの変更などでもアニメーションが発生します。 しかし、アニメーションの時間を細かく決…

nltk.probability.FreqDistのplotが動くようになるまで

まずnltkの導入。手元の環境はsnow leopard + pythonbrew + python2.7.1です。nltkはpython2.7をサポートしていないようですが、特に問題なくインストールできました。 % easy_install http://nltk.googlecode.com/files/nltk-2.0.1rc1-py2.6.egg 続いてnltk…

rack事始め

rackのインストール % gem install rack まずはHello World # filename: hello.ru require 'rubygems' require 'rack' class Hello def call(env) [200, {"Content-Type" => "text/plain"}, ["Hello World"]] end end run Hello.new 実行 % rackup hello.ru …

gititで数式をpngで出力

まずpluginsフォルダにImgTex.hsをコピーします。 % cp ~/.cabal/share/gitit-0.8/plugins/ImgTex.hs plugins/ そして、設定ファイル(gitit.conf)にImgTex.hsをロードするように設定します。 plugins: plugins/ImgTex.hsこれでgititを起動すると、ImgTexプラ…

Cabalインストール時のiconv問題

gititを導入してみて良さそうだったので、別マシンにもgititを導入しました。その際に、ハマってしまった点を記録しておきます。まず、ghcが入っていないので、Haskell Platform(64bit版)の最新版をダウンロードしてきてインストールします。 そして、ターミ…

gititが便利

gititを下の記事で知ったので、早速導入してみました。 http://blog.madoro.org/mn/91 環境はSnow Leopardで、Haskell Platformを導入済みです。 まずは、cabal-installをアップデートしておきます。というのも、cabal-installが古いとnetworkというモジュー…

Cocoa(Objective-C)で自分のIPアドレスを調べる

NSHostを使うことで簡単にできます。 NSHost* host = [NSHost currentHost]; NSArray* addresses = [host addresses]; for (NSString* addr in addresses) { NSLog("%@", addr); } IPv6などもまとめて表示されます。IPv4は2番目にあるようです。

MessagePack-RPC

仕事先のシステムでmessagepackを使っているということなので、少し勉強してみました。 The MessagePack Project: http://msgpack.org/高速かつ効率的にシリアライズ・デシリアライズするものらしいです。それに加えて、RPCも用意されています。 ググってみ…

dotcloud

dotcloudのinvitationをもらったので早速動かしてみました。まずは準備 % sudo easy_install dotcloud % dotcloud create mythosil % dotcloud deploy -t perl mythosil.www Hello Worldを出すだけの簡単なpsgi # app.psgi use strict; use warnings; use Pl…

macでXAMPP

1週間ほどwindows+xamppで開発してました。 しばらくはまたmacに戻ることになったので、今度はmacにxamppを導入してみました。そこでちょっとハマったものをメモ。 XAMPP for Mac OS X http://www.apachefriends.org/jp/xampp-macosx.html 今回は1.7.3を使い…

Fast Enumeratorの最後の"nil"

CocoaでFast Enumeratorを使っていて、ちょっとハマったところがあったので記録。 Fast Enumeratorとは、たとえばこんな感じです。 NSArray* arr = [NSArray arrayWithObjects:@"1", @"2", @"3", nil]; id i; for (i in arr) { NSLog(@"%@", i); } この後、…

qmail転送設定

たまたまqmailの転送設定をする機会があったので、忘れないうちにメモしておきます。普段はqmail触っていませんし、次にいつ使うかも分かりませんが。ユーザmisosoupへのメールをmisosoup@example.comにも転送したいというときには、 % cd ~misosoup % vi .q…

ビルドフェーズでフレームワークをコピー

久しぶりにcocoaアプリケーションを作ろうとして、フレームワークまわりでつまづいてしまいました。 自作(もしくは他人作)のフレームワークを利用しようとした時、xcodeのFrameworksに入れるだけだと、 dyld: Library not loaded: @executable_path/../Frame…

AppleScriptでアプリケーションが起動中か調べる

applescriptを使えば、例えばitunesラジオで再生中の曲情報を調べたりできます。 tell application "iTunes" current stream title end tell ただ、itunesが起動してなかった場合にも、一度起動してから"missing value"を返してきます。そこで、まずitunesが…

Benchmark

perl使ってて、あまりパフォーマンスを気にしたことがありませんでした。とにかく覚えるのに必死でしたから。 ようやく自分のなかで余裕も出てきて、パフォーマンスあたりも気にしていこうかな、と。そこでまずはベンチマークの取り方の勉強。Benchmarkモジ…

rlwrap

前回のエントリでmaximaが出てきましたが、ターミナル版のmaximaはreadlineが組み込まれていません。なのでemacsキーバインドが使えません。結構イライラします。 そこで便利なのがrlwrap。readlineのwrapperです。実はmaximaをインストールするとrmaximaと…

Maximaでテイラー展開

紙で解こうとすると面倒くさいテイラー展開。Maximaを使えば一瞬で解くことが出来ます。 (%i1) taylor(sin(x), x, 0, 5); 3 5 x x (%o1)/T/ x - -- + --- + . . . 6 120表示は見やすいとは言えませんが、特に問題ありません。 引数は テイラー展開する式: si…

ntpdateで時刻を正しく

先日サーバのNet::Twitterが動かなくなりました。 あまりの突然のことだったうえ、本番環境へ移行はじめようというタイミングだったため、非常に焦ったわけです。 Perlモジュールを片っ端からアップグレードしてみたり、Perl自体のバージョンをあげてみたり…