ページ

2013年12月31日火曜日

yumでcentosにmongoDBにインストール

インストール方法

1.yumのリポジトリファイルを追加
/etc/yum.repos.d/10gen.repo を新規作成します。
64bitの場合は

[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
enabled=1

32bitの場合はbaseurlの部分を変更します。
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686

2.yumでインストール
$ yum install mongo-10gen mongo-10gen-server


使い方

MongoDBの起動
Mongoのデーモンmongodを起動します。

$ service mongod start
自動起動にしたい場合は
$ chkconfig mongod on
シェルの起動
mongodに対して対話型のシェルを起動するコマンドはmongoです

$ mongo


参考:
http://nextat.co.jp/staff/archives/6

2012年8月28日火曜日

node.jsサーバ+socket.ioでiPhoneアプリを作ったのでその備忘録。

node.jsサーバ+socket.ioでiPhoneアプリを作ったのでその備忘録。

アプリ機能
 同じパスでサーバー接続したiPhone同士のブラウザをリアルタイムに共有させる。

サーバサイドのディレクトリ
 node.jsのディレクトリ/test/app_temp.js

app_temp.js
==============================
var io = require('socket.io').listen(PORT_NUMBER);

// WebSocket接続時
con = io.sockets.on('connection', function (socket) {
console.log('CONNECTION ok');

socket.emit('reset');

socket.on('login',function(data){
console.log('CATCH JOIN EVENT ok',data);
socket.join(data.pass);
socket.set('name',data.name);
socket.set('pass',data.pass);
//con.to(data.pass).emit('joining',data);
socket.emit('loggingin',data);
socket.broadcast.to(data.pass).emit('joining',data);
});

socket.on('scroll', function (data) {
var name,pass;
console.log('CATCH SCROLL EVENT ok', data);
socket.get('pass',function(err,_pass){
pass = _pass;
});
con.to(pass).emit('scrolling',data);
});

socket.on('load', function (data) {
var name,pass;
console.log('CATCH LOAD EVENT ok', data);
socket.get('pass',function(err,_pass){
pass = _pass;
});
con.to(pass).emit('loading',data);
});

socket.on('zoom',function(data){
var name,pass;
console.log('CATCH ZOOM EVENT ok',data);
socket.get('pass',function(err,_pass){
pass = _pass;
});
con.to(pass).emit('zooming',data);
});

socket.on('disconnect',function(){
console.log('DISCONNECT END');
var name,pass;
socket.get('pass',function(err,_pass){
pass = _pass;
});
socket.get('name',function(err,_name){
name = _name;
});
socket.leave(pass);
con.to(pass).emit('disconnect',name);
});
});
====================================

2012年4月17日火曜日

音声認識Julius(とportaudio)のインストールできた。

できました。

マシンはMacbookAirでOSはLionにアップグレード済み。

Homebrewでportaudioをダウンロード

brew install portaudio

Juliusのソースファイルをダウンロードしてコンパイル


cd julius4
./configure --enable-words-int --with-mictype=portaudio --disable-zlib
make
sudo make install


Google先生に聞くと、

CFLAGS='-arch i386'

を入れよとかあったけど、いれずに行けたのは謎。てかむしろ入れたらerrorでうまく行かなかったし。

ディクテーションキットをダウンロードして解凍。


tar xzf dictation-kit-v4.1.tar.gz

cd dictation-kit-v4.1


ここで、


julius -C fast.jconf -charconv EUC-JP UTF-8


で認識に成功。(はじめ、無意識にwin用のdictation-kitをDLしてたみたいで、文字化けしてうまくいかなかったでど、Linux用いれなおして成功。)

参考にしたサイト
http://ascii.jp/elem/000/000/547/547250/index-2.html
http://geisterchor.blogspot.jp/2012/02/macos-x-lion-portaudio.html
http://tanb.me/2009/12/julius-414-on-osx-1062-snow-leopard.html
http://d.hatena.ne.jp/kazekyo/20100821/1282406366

2012年4月14日土曜日

portaudioを入れようとしているが、makeがうまくいかない





Lionにアップグレードしたmacにportaudioを入れようとしているが、makeがうまくいかない。。。

ぐぐると同じような人もいて、

http://geisterchor.blogspot.jp/

http://www.fluxforge.com/blog/building-portaudio-under-os-x-107-lion

を参考にしてみたが、どうもうまく行かない。

make したあとのエラーを見ると、

llvm-gcc-4.2: error trying to exec '/usr/bin/../llvm-gcc-4.2/bin/powerpc-apple-darwin11-llvm-gcc-4.2': execvp: No such file or directory
lipo: can't figure out the architecture type of: /var/folders/gm/62k1k9jx7h1dzwwpsqy36wy80000gn/T//ccEBtqHw.out
make: *** [src/common/pa_allocation.lo] Error 1

コンパイラ?とかppc?の問題のような気もするけど、どうしたらよいのか。。。

http://www.fluxforge.com/blog/building-portaudio-under-os-x-107-lion

の中にDon’t forget to strip PPC code from the generated fat lib (man lipo) if you’re planning to submit to the Mac App Store
という記述があり、lipoでppcをsplitしとけ!的な感じなんだけど、lipoの使い方もいまいち分からないし。

lipo -remove ??とか?


そもそもこの辺りの知識がなさすぎなんだよね。ふぅ。

2012年3月16日金曜日

NSXMLParser途中でやめたときのメモ

NSXMLParser使ってみようと思ったけど、下記じゃあ動かない。



 NSLog(@"hooooooo");が実行されていない。


とりあえずJSON形式に変更したので、XMLは途中でやめたのだが、
また使うときのために備忘録メモしとく。てかyoutubeもJSON形式のようだし。

.hファイル

@interface FirstViewController : UITableViewController<
NSXMLParserDelegate
>{

NSMutableData *resultUnsync;
NSURLConnection *connection;
//---xml parsing---
NSXMLParser *xmlParser;
}



.mファイル

@implementation FirstViewController

// レスポンスが返ってきたときに呼び出されるメソッド
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
resultUnsync =[[NSMutableData alloc]init];
NSLog(@"returned response:%@",resultUnsync);
};

// データが返ってきたときに呼び出されるメソッド
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
[resultUnsync appendData:data];
NSLog(@"returned data :%@",data);
};

// データ受信が完了したときに呼び出されるメソッド
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
NSString *resultUnsyncString = [[NSString alloc]initWithData:resultUnsync encoding:NSASCIIStringEncoding];
NSLog(@"finished recieved datas :%@",resultUnsyncString);

if (xmlParser)
{
//[xmlParser release];
}
xmlParser = [[NSXMLParser alloc] initWithData: resultUnsync];
[xmlParser setDelegate: self];
[xmlParser setShouldResolveExternalEntities:YES];
NSLog(@"yaaaaaaaa");
[xmlParser parse];
}

//---when the start of an element is found---
-(void) parser:(NSXMLParser *) parser didStartElement:(NSString *) elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *) qName attributes:(NSDictionary *) attributeDict {

NSLog(@"hooooooo");
if( [elementName isEqualToString:@"comment"]){
NSLog(@"haaaaaaa!");
}
}

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
NSString *keyword = [searchBar text];
NSLog(@"検索語: %@",keyword);
[searchBar resignFirstResponder];

NSString *requestFeed = @"http://gdata.youtube.com/feeds/api/videos?q=%@&v=2&format=1,6&alt=jsonc";
NSString *urlStirng = [NSString stringWithFormat:requestFeed,
[keyword stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"url=%@",urlStirng);
NSURL *url = [NSURL URLWithString:urlStirng];

NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];

// 非同期通信
connection = [NSURLConnection connectionWithRequest:urlRequest delegate:self];

}

2012年3月15日木曜日

NSURLとかNSURLConnectionとか

// 非同期通信用メソッド
 // レスポンスが返ってきたときに呼び出されるメソッド
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
 resultUnsync =[[NSMutableData alloc]init];
NSLog(@"init resultUnsync:%@",resultUnsync);
};
 // データが返ってきたときに呼び出されるメソッド
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
[resultUnsync appendData:data];
NSLog(@"append data :%@",data);
};

// データ受信が完了したときに呼び出されるメソッド
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
NSString *resultUn = [[NSString alloc]initWithData:resultUnsync encoding:NSASCIIStringEncoding];
NSLog(@"result :%@",resultUn);
};




- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
NSString *keyword = [searchBar text];
NSLog(@"検索語: %@",keyword);
[searchBar resignFirstResponder];

NSString *requestFeed = @"http://gdata.youtube.com/feeds/api/videos?q=%@&v=2&format=1,6&alt=jsonc";
NSString *urlStirng = [NSString stringWithFormat:requestFeed,
[keyword stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"url=%@",urlStirng);
NSURL *url = [NSURL URLWithString:urlStirng];

NSError *err=nil;

// 簡単なやり方
//id str2 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&err];
//NSLog(@"%@",str2);

NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];

// 同期通信
/*
NSURLResponse *urlResponse = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&urlResponse error:&err];
NSString *result = [[NSString alloc]initWithData:data encoding:NSASCIIStringEncoding];
NSLog(@"result:%@",result);
*/

// 非同期通信
NSURLConnection *connection = [NSURLConnection connectionWithRequest:urlRequest delegate:self];

}