isseium's blog

田舎に住むWebエンジニアのブログ

redis のデータが消えた!

と、思ったら、間違いでした。

redis に付属の redis.conf のデフォルト設定で、データファイルは ./ (カレントディレクトリ)の dump.rdb に格納されているんですね!




redis.conf (デフォルトのものを加工しているので、行番号は数行ずれてます)

     99 # The filename where to dump the DB
    100 dbfilename dump.rdb
    101 
    102 # The working directory.
    103 #
    104 # The DB will be written inside this directory, with the filename specified
    105 # above using the 'dbfilename' configuration directive.
    106 #
    107 # Also the Append Only File will be created inside this directory.
    108 #
    109 # Note that you must specify a directory here, not a file name.
    110 dir ./

110行目のパスに、100行目のファイルで保存します、ということですね。
違うパスで起動したら、そりゃ空になりますわ。


dir を絶対パスにすればどこで起動しても大丈夫になるんだと思います!

dir /var/redis/

のような感じ?(未確認)



話はもどって、confをデフォルトのまま利用してて、かつ、どこで起動したかわからないときは、find さんに頼りましょう。

sudo find / -name dump.rdb


僕はこれで事なきを得ました。

「Countter」の裏側を変えてみました

イベントまであと何日なのかをつぶやくbotを作れるサービス「Countter(かうんったー)」の次期β版をリリースいたしました。といってもほんのちょっとしか変えてませんが、、、、


http://countter-beta.mizuhataya.com/




なにが変わったのか(機能編)

つぶやく時間帯を複数していすることができるようになりました。

なにが変わったのか(技術編)

PHP(ZendFramework)から ruby on rails にフルスクラッチしました。
また、DBも MySQL から NoSQLである Redis に変更しました。





個人的に、技術の演習をしたかっただけのように見えますが、実は現安定版に致命的な設計ミスをみつけてしまいまして、、、、せっかくなので改修しました。

現安定版は利用ユーザ数が増えるとつぶやかれないアカウントが発生してしまう可能性があります。
理由は単純で、一時間に一回のつぶやきバッチをなぜか、


cron --(SHELL)--> wget --(HTTP)--> batch(httpd上)

という仕組みにしていました。なんでこんな設計にしたのかさっぱりわけがわからないのですが、アカウントが多くなると batch 部分のレスポンス時間がかかってしまって、リクエストタイムアウトしてしまったりするんですねはい。応急処置はしているのでいまは大丈夫かと思いますが、根本的に改善することにしました。


というわけで、なにか要望等あればよろしくおねがいしますー

IPU TOKYO #6 開催いたしました

こんばんは、本日 IPU TOKYO #6 を開催いたしました。

多忙により、前回 #5 のブログをかけず申し訳ないです。
今回は初はてなブログによる日記です!( twitter id への twitter記法使えなかった...
抜け、間違いなどがあればご連絡ください!

本日のダイジェスト

本日は20名の方に参加いただきました!初参加の方は、6名です!
第一部 LT 大会は、14名参加(初参加 4名、発表者8名)でした。ありがとうございます。
発表者とテーマ、そして個人的な感想を書きたいと思います。

@isseium「これからSQLの話をしよう」

SQLについて語る予定、、、をやめて
UNIONについて語る予定だったのですが、私情により準備がまともにできず、わけわからなくなりました。すびばせんorz
次回はきちんと準備します!!!!!

@ito_konnyaku 「MBA 11" 乞食」(Ust非公開)

MBA 11" をごにょごにょ
(Ust非公開のため詳しくは本人にお尋ねください

@kaz_j2 「オンライン英会話をはじめてみました」

Skypeによる英会話レッスンについてお話いただきました。
フィリピンのネット事情もわかりました。
最後に英語によるプレゼンもしていただきました(無茶ぶりに応えていただきありがとうございますw

@kanejun 「interacmos@ACE2011」

エンタテイメント関連の学会 ACE と、その参加作品について紹介いただきました。
光と鏡をうまくつかって芸術的に表現する仕組みいいですね。
いつも普段の生活とは無縁の世界をLTしていただけるので刺激的です。

@misasagi64 「行きつけの飲み屋を作ろう」

チェーン店ではない魅力がある小さな個人経営の飲み屋の醍醐味を紹介いただきました。
母のような存在となる行きつけの店を僕もみつけたいなと思いました。

@takuya0301 「Dropboxのクローンについて」

とても便利なファイル共有サービスであるDropbox。が、外部のサーバにファイルを置くことになるので、企業によってはセキュリティ違反に!
というわけで、企業内のサーバにファイルを配置するような形式のDropboxクローン「iFolder」について紹介いただきました。
会社で使ってみようかなと思いました!

@yuutelin 「ドラクエ展にいってきた」

六本木ヒルズで12月上旬まで開催している「ドラクエ展」と、近くに常設してある「ルイーダの酒場」について紹介していただきました。
ドラクエ展では、I 〜 X までのドラクエ情報が見られるそうです。
ルイーダの酒場では、ドラクエの魔法にちなんだお酒がおもしろかったです。
(ちょっと秋葉原な感じがしていましたが気のせいでしょう。

@oisa 「同窓会 関東支部交流会告知」

同窓会 関東支部交流会が 12月17日に開催されますので、こちら告知いただきました。
わくわく抽選会では、熊よけの鈴や福田パンがあたるそうです!ほしいですね!
去年同様、告知タイムがあるようなので、IPU TOKYO を紹介してこようかと思っています!

同窓会参加フォーム(12/5まで) http://kanto.ipu-soshin.jp/



以上がおわったあと、第二部会場に向かいました。
もちろん、日頃の運動不足を解消するために一駅ウォーキングです!

新宿三丁目の中華料理屋さんで一次会をしまして、ここで新たに4名の方と合流。

また、二次会では1名と合流しまして、いつものことながら新宿の夜の街に消えていきました。

次回告知

次回は、少し間があいてしまいますが、3月10日(土)に開催予定です。
3月24日(土)に変更しました(12/3)

年度末の忙しい時期ではありますが、ぜひ参加<いただければなと思います!
さっそく ATND をたてましたので、ご都合よろしければ参加登録おねがいいたします!

http://atnd.org/events/22599

学生の方へ

学生は飲み会費も含めて、すべて無料なのでぜひきてください!!!!!!
情報処理学会全国大会が 3月8日まで名古屋で開催されるようなので、中1日あいてしまいますが、東京観光でもしつつの参加がおすすめです。

学位授与式は3月22日ということなので、ぜひ上京してきた新社会人の皆様お待ちしております!!!!新社会人の方も無料の予定です!!
就活もこの時期にあると思います、様々な企業へつとめている方が集まりますので、ぜひ就活生の方もお越しください!!!

積立金

摘要 歳入 歳出 残高
前回繰越 5,600
今回徴収 13,000 18,600
今回会議費 5,250 13,350 (次回繰越)

姫神の「神々の詩」っていい曲だよね!

どうも、はてなブログで初めてまともな投稿です。


姫神というアーティストご存じですか?

http://ja.wikipedia.org/wiki/%E5%A7%AB%E7%A5%9E


数ある名曲のなかで、特に有名かと思われる曲が「神々の詩」です。
一度は聴いたことあるのではないでしょうか。


D



この神秘的な歌詞なんですが、なんと縄文語だそうです。

私は名前がマポです
私に、祖父(祖母)、父、母
兄(姉)と弟(妹)がいます。

の繰り返しとなっているそうですよ。びっくりしたので記事をかいてみました。
しかし、なぜこの文章だったのだろうか。


いやー、いい曲ですね


ではでは

「そこにピンがあるから、」をリリースしました(宣伝編)

@masterka さん企画で、自分がWebAPI, インフラまわりを担当した Android向けウォークラリーアプリ「そこにピンがあるから、」をリリースいたしました。


紹介ページ : http://bulldozer.mizuhataya.com/?locale=ja
ダウンロード: http://market.android.com/details?id=jp.bulldozer

ターゲットとしているユーザ

・休日ひきこもってる。遊びにいきたいけど、どこにいけばよいかわからない人
・旅行や出張で見知らぬ土地にきた。時間があるんだけど、どこにいけばよいかわからない人

簡単な遊び方

紹介


まだまだ荒削りなんですが、今後徐々にバージョンアップ予定です。
ぜひAndroidユーザの方、ぜひ一度プレイしていただいて、要望等をいただければなーと思います。


このアプリの開発を通じていろいろ勉強/経験になりました。

  • @masterka さんと 一度も会って会議をしていない(skype音声会議を 15回くらい
  • はじめての git, rails
  • redmineをつかった チケットドリブン開発
  • (ちょっとだけ勉強した node.js, express, mongoDB
  • エトセトラ


開発については後ほど、別記事でかこーかなと思います。
すぐに書きたいんですが、親が東京にきてるんで、接待してきます。。。

ではでは、、、

「そこにピンがあるから、」で学んだこと

この記事は、「そこにピンがあるから、」 の開発が一区切りついたため、学んだこと等をまとめた記事です。
当初は自分の考えや経験を整理することを目的としていたので読みにくいかもしれないです

プロジェクトについて

プロジェクト発足

このプロジェクトを一緒にした @masterka さんと初めて開発をしたのは 4月にあった、クックパッドさんが主催する 開発コンテスト24でした。

その反省会を5月にした際に、またなんかやりますかーってことになったのがことの発端です。

はじめは益孝さんが、こんなものがしたい、という形で箇条書きしたデータがきまして、そのなかで絞ったのがこの「そこにピンがあるから、」の原案でした。


役割と活動の様子

5月に活動が開始されて、毎週一回 skype で1時間ミーティングをしてました。
役割はこんな感じ


自分

  • API開発
  • ランディングページ作成
  • サーバ管理
  • 開発管理(gitやredmineなどの運用管理)


益孝さん

  • 企画
  • Android 開発
  • リリース担当
  • 文責(QA)
スケジュール
工程 自分が使った主な技術等
5月 企画 Skype MTG
6月 設計 redmine
7月 開発 Node.js, MongoDB, Git
8月 開発 & 中間テスト
9月 開発 Rails, MySQL
10月 1st リリース illustrator, さくらのVPS

今後は、利用者の様子をみつつ改良を加えていくつもりです。

学べたこと

会議はSkype だけでも意外といける!チケットドリブン開発イイネ!

ミーティングは毎週木曜日の夜に1時間行いました。
このとき以外は、原則として Redmine でチケットを飛ばし合いました。

Skype 音声ミーティング以外では、益孝さんと会って開発の話をしたことはないです。
週1回の音声会議と、チケットでの会話以外はコミュニケーションはしませんでした。


Skypeではいきなりチャットをするということもありませんでした。
これはいま思えば結構重要なことで、フロー状態を保てたり、ログではなくて、みやすい形で記録がのこったりと、いいことでした。


議事録の付け方や、チケットの書き方、wikiのフォーマットとかも学べてこれも一種の成果かなと。


というわけで SkypeRedmine だけいけるということがわかりました。

新しい技術に触れられた

開発開始時の僕のスペックは、主に Linux + Apache + MySQL + PHP + Cぐらいを知ってる資格オタクなエンジニア(仕事は SQL + Perl のログ集計系エンジニア)でした。


バージョン管理は、git を使ってみようと思いました。
git の存在はもちろん知っていましたが、二人以上で使ったことがなかったので、とてもいい実践の機会になりました。


また API 側は Node.js と MongoDB を使ってみました。
え、ここで Node.js ? 完全に興味本位です。こういうのにも、寛大にOKだしてくれた益孝さんに感謝。


結果として、僕の小さい頭ではハンドリングできるレベルに達しなかったので、8月中旬あたりに戦略的撤退をして、RailsMySQL に変更しました。この変更のせいで少しリリースが遅れてしまいました。益孝さんすみみません。
Rails はこれまで使ったことがなかったですが、 Ruby on Rails 3 アプリケーションプログラミング を読んだら結構かけるようになりました。
PHPMVCフレームワークの経験がある方が rails を学ぶんであれば、この本はとってもおすすめです。


この期間はこの開発では Rubyを、会社では Perl, Shell, sed, awk をばりばりつかっていたのでいろいろ覚えました。
というわけで、ただの PHPer 資格ヲタエンジニアから、LL + 資格ヲタ エンジニアくらいにはなれたかなと。
すみません、調子のりました。精進いたします。

Rails イイネ!

前述のとおり、Rails はじめて使ったんだけどいいですね
思想がすぐれていて、短くかけるし、DBテーブルを管理するMigration はとってもよい機能ですね。
ORM の ActiveRecord は趣味とかで使うだけならいいとは思うけれど、大規模になってくるとパフォーマンスどうなのかなーと思いました。書き方によっては、プロパティ呼び出すごとにDBクエリなげてるようだったので、、、

さくらのVPS イイネ!

これまで serversman@vps を利用していましたが、思い切って さくらのVPSを契約してみました。
serversman@vps よりもさくさくっすね!!!

OS焼き直しもすぐできてとっても便利!!!!!!!!!!!
serversman は、redmine, git サーバ兼結合テスト環境なんですが、遅すぎるので、近々、さくらをもうひとつ借りて移行したいと思います。

開発環境、結合試験環境、本番環境 の構築と運用フローの経験ができた

開発環境とは、ソースを操作する環境です。原則、ここ以外の環境ではソースを書いたりはしません。
自分は local の MacOS X としました。MySQLRails をインストールして、rails server コマンドだけです。
ここで開発が完了したものは、git push します。


結合試験環境とは、masterka さんが開発する Android のテストを行う環境です。
API と Andriod クライアントアプリがここではじめて結合されて、試験が行われます。
Rails の実行には、Apache + Passenger を利用しました。
開発環境で git push されたものをgit pull して展開します。毎回 pull するのは面倒なのでフックを書いて自動でデプロイするようにしました。


本番環境とは、Android market からダウンロードしたアプリを使う方々向けのAPI環境です。
結合試験環境でのテストをクリアしたときは、本番環境に手動でデプロイします。ここでバグが見えると、JI☆KO(事故)となり、益孝さんに怒られます。
ここは原則、結合試験環境と同じ環境となります。

今回できそうだったけど、やらなかったことを箇条書き

次回はやりたい。

  • テストドリブン開発
  • サーバ監視
  • 環境デプロイを便利に行うシステムがあるようだ
  • git のブランチを活用した開発
  • RDoc

今後の予定

そこにピンがあるから、の開発は今後も続けていきます。まだまだ荒削りですので。。
バグフィクスはもちろん、画像や音といったメディアを含めたり、同じプラットフォームで違うコンセプトでリリースとかもしたいですね。
地域活性化の鍵を握るようなソーシャルウォークラリーサービスにする予定です。


また、違うアプリ開発として、ユーザが増えつつある haretsutter や countter の改良をしたいと思っています。
あと、Androidとか、ユーザが使うようなフロントエンドの開発もしてみたいっすね。
あとあと、自分があたためてるものもぜひつくりたい
あとあとあと、学生と一緒にやってみたりしたいなー


というわけで、やりたいことはたくさんあります!


そういえば、ふたつ以上のことを並行してできないっていうことも今回知ったことでした。
(お誘いをうけて断ったり、一時停止してしまったプロジェクト関係者には大変ご迷惑をおかけしました。)


さいごに、募集、、というかお願いが、、、
農業とか地域活性化に興味のあるエンジニアいらっしゃいましたら、twitter (@isseium) までご連絡ください!
この分野に興味あるんですけど、なかなか身近にいないので、、、、ぜひいろいろお話ししてみたい!


ではでは