サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
mythosil.hatenablog.com
Firebaseでプロダクトを作ってたけど、色々キツくなって、やはりAWSに乗せ替えたいという話をよく聞く。 EC2の上に普通にアプリケーション組んでRDSにデータを移行すれば済む話だが、Firebase Authenticationのデータ移行ができない問題にぶち当たる。 どういうことかと言うと、パスワードがハッシュ化されてるから、移行後に全員にパスワードリセットさせないといけなくなるということだ。 しかし、これはよくある勘違いで正しくない。 Firebase Authenticationのハッシュアルゴリズムやパラメータは知ることができるので、同一アルゴリズム・パラメータでハッシュ計算をしてあげれば、パスワードリセットをさせることなくパスワード認証をすることができる。 パスワード認証を一度通した後に新しいハッシュアルゴリズム・パラメータでハッシュ計算し、以降はそのハッシュ値を認証に用い
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 <!DOCTYPE html> <html> <body> <h1>Hello Docker!</h1> </body> </html> Dockerfile ubuntu:12.04ベース aptでapache2をインストール ホストのhtdocsディレクトリの中身をコンテナの/var/www配下に転送 80番ポートをexpose コンテナ起動時にapacheを起動 FROM ubuntu:12.04 MAINTAIN
環境 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 wildfly-8.1.0.Final/bin $ ./standalone.sh ...(略)... 01:37:43,003 INFO [org.wildfly.extension.undertow] (MSC service thread 1-6) JBAS017519: Undertow HTTP listener default listening on /127.0.0.1:80
applescriptを使えば、例えばitunesラジオで再生中の曲情報を調べたりできます。 tell application "iTunes" current stream title end tell ただ、itunesが起動してなかった場合にも、一度起動してから"missing value"を返してきます。そこで、まずitunesが起動中かどうかを調べるコードも加えてみます。 if application "iTunes" is running tell application "iTunes" current stream title end tell else "iTunes not running" end if これで、勝手にitunesが立ち上がることがなくなりました。
Docker 0.7からaufs以外のstorage driverがサポートされてCentOSでもDockerが使えるようになりました。 aufsがサポートされていなければ、起動時にdevicemapperを利用してくれるとのことです。devicemapperもサポートされていなければvfsを利用。 CentOSにはepel使って簡単にインストールできるようになったので、さくらVPSで使ってみました。 # CentOSのバージョンは6.4 $ cat /etc/redhat-release CentOS release 6.4 (Final) インストール・起動 epelリポジトリが登録されていればyum一発で入ります。 $ sudo yum -y install docker-io $ sudo service docker start centosイメージを取得 $ sudo dock
CALayerは単純な位置の移動だけなら、 layer.position = CGPointMake(x, y); というようにすれば、アニメーションとともに移動してくれます。position以外にも、opacityの変更などでもアニメーションが発生します。 しかし、アニメーションの時間を細かく決めたいといった場合にはCATransactionやCAAnimationを使う必要があります。 CATransactionを使った例。 CAMediaTimingFunction *tf; tf = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; [CATransaction begin]; [CATransaction setAnimationDuration:1.0f]; [CATransactio
iPhoneアプリ開発で暗号化を行う必要が出てきたので、試しに書いてみました。 暗号方式にはAES128を、Padding方式にはPKCS7を使っています。 ここで使っているCommonCryptoはiOS SDKについてくるものですが、mac上でも普通に使うことができます(iPhone Simulator用のライブラリを無理矢理使います)。 使い方としては、下のコードをコンパイルして、 $ ./a.out aaaabbbbccccdddd eeeeffffgggghhhh messageというようにすると"message"が暗号化され、さらに続けて復号化されます。 第一引数は鍵、第二引数はInitial Vectorです。どちらも16バイトである必要があります。 /* * gcc -std=c99 crypto.m -framework Foundation */ #import <Fo
Redisはオンメモリで高速に動作しつつ、定期的にディスクに書き込んでくれるKVSです。 また、pubsubの機能もサポートされており、今回はこれに焦点をあててみようと思います。 もう少し詳しい内容は公式サイトのIntroductionを見てください。 http://redis.io/topics/introduction 今回はAnyEvent::Redisというモジュールを使いましたが、perlからredisを使うためのモジュールは他にもたくさんあります。 Redis Redis::hiredis AnyEvent::Hiredis などなど。それぞれパフォーマンス面などちゃんと調べてみたいところです。 publish "pub_test"というチャネルに"Hello World"というメッセージをpublishするコード。 # ae_redis_pub.pl use strict;
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> #define HTTPD_ADDR "0.0.0.0" #define HTTPD_PORT 8080 void req_handler(struct evhttp_request *r, void *arg) { if (r->type != EVHTTP_REQ_GET) evhttp_send_error(r, HTTP_BADREQUEST, "Ava
memcachedで使われていることで有名なlibeventを試してみました。 以前libevを試したことがあるのですが、libeventの方が少し書きやすいという印象です。パフォーマンスに関してはlibevのほうが上という噂ですが。 libeventやlibevに関して少し説明しておくと、これらは非同期IOを実現するライブラリです。他にもシグナルやタイマー処理といったこともできるらしいです(まだ詳しく調べていません)。 非同期IOのAPIはOSごとに独自のもの(epoll, kqueueなど)があるのですが、libeventなどを利用するとその違いを隠蔽してくれるため、移植性が高まります。freebsdで開発してlinuxで動かすということだって出来ますね。 インストールに関しては、macの場合にはmacportsで簡単に入れられますし、linuxであればyumやapt-getで簡単に導
このページを最初にブックマークしてみませんか?
『Rhythm & Biology』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く