Titanium module for Android's SwipeRefreshLayout.
自分で作ったり提供したりするものは、まず自分自身で使ってみろろということです。自分じゃ使わないものなら人はいくらでも無責任にも無思考にもなれる。そういう投げやりな「サービス」やら「プロダクツ」なんて、だれだってイヤだ。自分が作り手と同時に利用者の立場になれば、ちゃんと使えるレベルのものを提供しようとします。
2014年11月5日水曜日
2014年10月30日木曜日
Node.jsファイル書き込み例
Node.jsファイル書き込み例です。
var fs = require('fs');
(function () {
var data = "write 日本語!";
fs.writeFile('日本語.txt', data, function (err) {
if (err)
console.log(err);
});
})();
2014年10月29日水曜日
nginx最大パフォーマンスを出すための基本設定
nginx最大限にスピードを出すために、設定パラメーターをチュニングしました。
nginx設定例
user www-data;
pid /var/run/nginx.pid;
worker_processes auto;
worker_rlimit_nofile 100000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
events {
worker_connections 2048;
multi_accept on;
use epoll;
}
http {
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
access_log off;
error_log /var/log/nginx/error.log crit;
keepalive_timeout 10;
client_header_timeout 10;
client_body_timeout 10;
reset_timedout_connection on;
send_timeout 10;
limit_conn_zone $binary_remote_addr zone=addr:5m;
limit_conn addr 100;
include /etc/nginx/mime.types;
default_type text/html;
charset UTF-8;
gzip on;
gzip_http_version 1.0;
gzip_disable "msie6";
gzip_proxied any;
gzip_min_length 1024;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/json;
open_file_cache max=100000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
2014年10月15日水曜日
Node.jsエラー処理例(domainモジュール)
Node.jsエラー処理例(domainモジュール)
// Node.jsエラー処理例(domainモジュール)
var fs = require('fs');
var util = require('util');
(function () {
var d = require('domain').create();
d.on('error', function (err) {
//console.log('domain error:', toJson(err));
console.log(err.stack);
});
d.run(function () {
f1();
});
})();
function f1() {
fs.readFile('package.json', function (err, data) {
if (err) throw err;
console.log(a.aa.aaa, data.toString());
});
}
function toJson(obj) {
return util.inspect(obj, {
showHidden: true,
depth: null
});
}
2014年4月3日木曜日
Node.js勉強サイト
最近Node.jsの勉強にはまっています、やはり従来の同期型のプログラミングモデルよりはNode.jsのような非同期プログラミングモデルの方が面白いです。
http://nodejs.osser.jp
http://nodejs.osser.jp
2014年3月1日土曜日
UbuntuでRedisパッケージインストール
自分でRedisソースをダウンロードして、コンパイルするのは結構面倒くさいなので、Ubunut PPAを利用して自動的にインストールできるようになります。
手順:
$ sudo apt-get install -y python-software-properties
$ sudo add-apt-repository -y ppa:rwky/redis
$ sudo apt-get update
$ sudo apt-get install -y redis-server
Redisオフィシャルサイト
http://redis.io/
Redis勉強本も紹介します
node.jsでredisにアクセスライブラリも紹介します
https://github.com/mranney/node_redis


手順:
$ sudo apt-get install -y python-software-properties
$ sudo add-apt-repository -y ppa:rwky/redis
$ sudo apt-get update
$ sudo apt-get install -y redis-server
Redisオフィシャルサイト
http://redis.io/
Redis勉強本も紹介します
node.jsでredisにアクセスライブラリも紹介します
https://github.com/mranney/node_redis
2014年1月6日月曜日
KrakenJS入門
Amazon.co.jpの「カスペルスキー 2014」をまとめて買うと最大2000円OFFキャンペーン
nodejsのウェブ開発MVCフレームワークKrakenJSを紹介します。
generator-krakenジェネレーターをインストールする
#このコマンドでyo, grunt, bowerも一緒にインストールされる
$sudo npm install -g generator-kraken
#krakenテンプレートを使ってウェブサイトプロジェクトを作成します
#サイトサーバーを起動させます
nodejsのウェブ開発MVCフレームワークKrakenJSを紹介します。
generator-krakenジェネレーターをインストールする
#このコマンドでyo, grunt, bowerも一緒にインストールされる
$sudo npm install -g generator-kraken
#krakenテンプレートを使ってウェブサイトプロジェクトを作成します
$ yo kraken
,'""`.
/ _ _ \
|(@)(@)| Release the Kraken!
) __ (
/,'))((`.\
(( (( )) ))
`\ `)(' /'
[?] Application name: HelloWorld
[?] Description: A test kraken application
[?] Author: YourName GoesHere
#サイトサーバーを起動させます
$ cd HelloWorld
$ npm start
> helloworld@0.0.1 start ~/HelloWorld
> node index.js
Listening on 8000
2014年1月4日土曜日
grunt入門
ビルドツールgruntの最初の入門サンプルを紹介します。
http://gruntjs.com/
まず、インストールを
sudo npm install -g generator-kraken
このコマンドはyo, grunt, bower, kerkenjsを一括にインストールできます。
gruntだけインストールしたい場合、このコマンドです。
npm install -g grunt-cli
インストールしたら、フォルダを作って、下記の二つのファイルを用意します。
package.json
Gruntfile.js
http://gruntjs.com/
まず、インストールを
sudo npm install -g generator-kraken
このコマンドはyo, grunt, bower, kerkenjsを一括にインストールできます。
gruntだけインストールしたい場合、このコマンドです。
npm install -g grunt-cli
インストールしたら、フォルダを作って、下記の二つのファイルを用意します。
package.json
Gruntfile.js
kraken.js - Node.js MVCフレームワーク
今までExpressを使って開発してるんですが、いろいろ不便がありますので、PayPalのMVCフレームワークkraken.jsを勉強し始めました。
http://krakenjs.com/
必須知識:
yeoman(yo, grunt, bower)
http://yeoman.io/
dustjs(linkedin)
http://linkedin.github.io/dustjs/
まず、gruntの勉強を…
http://gruntjs.com/
http://krakenjs.com/
必須知識:
yeoman(yo, grunt, bower)
http://yeoman.io/
dustjs(linkedin)
http://linkedin.github.io/dustjs/
まず、gruntの勉強を…
http://gruntjs.com/
Gitインストール(Ubuntu)
Ubuntu ServerにGitをインストールします。
Git(ギット)は、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。もとはLinuxカーネルのソースコード管理に用いるためにリーナス・トーバルズによって開発され、それ以降ほかの多くのプロジェクトで採用されている。Linuxカーネルのような巨大プロジェクトにも対応できるように、動作速度に重点が置かれている。
Gitでは、各ユーザのワーキングディレクトリに、全履歴を含んだリポジトリの完全な複製が作られる。そのため、ネットワークアクセスがなく中心リポジトリにアクセスできない環境でも、履歴の調査や変更の記録といったほとんどの作業を行うことができる。これが「分散型」と呼ばれる理由である。
http://git-scm.com/
#Gitインストール
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git
#文字化けを防ぐ
git config --global core.quotepath false
#Tagをチェックアウトして、新しいブランチを作成
git checkout -b v0.1.0 refs/tags/v0.1.0
#バージョン確認
git version
Git(ギット)は、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。もとはLinuxカーネルのソースコード管理に用いるためにリーナス・トーバルズによって開発され、それ以降ほかの多くのプロジェクトで採用されている。Linuxカーネルのような巨大プロジェクトにも対応できるように、動作速度に重点が置かれている。
Gitでは、各ユーザのワーキングディレクトリに、全履歴を含んだリポジトリの完全な複製が作られる。そのため、ネットワークアクセスがなく中心リポジトリにアクセスできない環境でも、履歴の調査や変更の記録といったほとんどの作業を行うことができる。これが「分散型」と呼ばれる理由である。
http://git-scm.com/
#Gitインストール
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git
#文字化けを防ぐ
git config --global core.quotepath false
#Tagをチェックアウトして、新しいブランチを作成
git checkout -b v0.1.0 refs/tags/v0.1.0
#バージョン確認
git version
2013年11月7日木曜日
mongodb認証
MongoDBはデフォルトでユーザー認証機能をオフになっています、このトピックでユーザー認証機能をONにします。
ユーザー追加
$mongo
use test
db.addUser('uid1', 'pwd1');
db.addUser('uid2', 'pwd2', true); //readonly
exit
$sudo nano /etc/mongodb.conf
...
#アンコメント
auth = true
...
$sudo service mongodb restart
Done!
PS:
mongoose接続例
'mongodb://uid1:pwd1@192.168.1.1/test'
ユーザー追加
$mongo
use test
db.addUser('uid1', 'pwd1');
db.addUser('uid2', 'pwd2', true); //readonly
exit
$sudo nano /etc/mongodb.conf
...
#アンコメント
auth = true
...
$sudo service mongodb restart
Done!
PS:
mongoose接続例
'mongodb://uid1:pwd1@192.168.1.1/test'
2013年10月27日日曜日
node.jsで jsonファイルを解析
node.jsでjsonファイルを解析して、中身を表示させるサンプルです。
コード
実行結果
コード
var fs = require('fs');
var path = require('path');
var pkg = JSON.parse(fs.readFileSync(path.join(__dirname, 'package.json')));
console.log(pkg.name);
console.log(pkg.version);
console.log(pkg.private);
console.log(pkg.scripts);
console.log(pkg.scripts.start);
console.log(pkg.dependencies);
実行結果
site01
0.0.1
true
{ start: 'nodemon app.js' }
nodemon app.js
{ express: '*',
jade: '*',
stylus: '*',
mongoose: '*',
nodemon: '*' }
2013年10月26日土曜日
リバースサーバーNginxは Ubuntuにインストール
リバースサーバーNginxインストール手順を紹介します。
参照URL
http://nginx.org/en/linux_packages.html
インストール手順
参照URL
http://nginx.org/en/linux_packages.html
インストール手順
$wget http://nginx.org/keys/nginx_signing.key $sudo apt-key add nginx_signing.key $sudo nano /etc/apt/sources.list ... #codename #Version Codename #10.04 lucid #11.10 oneiric #12.04 precise #12.10 quantal #13.04 raring deb http://nginx.org/packages/ubuntu/ [codename] nginx deb-src http://nginx.org/packages/ubuntu/ [codename] nginx ... $apt-get update $apt-get install nginx $nginx -v nginx version: nginx/1.4.3
2013年10月23日水曜日
node.jsモジュール一覧
node.js開発にはモジュールが必要不可欠です、下記のURLから利用可能なモジュールをご確認できます。
https://github.com/joyent/node/wiki/Modules
I like Node.js!
https://github.com/joyent/node/wiki/Modules
I like Node.js!
node.jsでmarkdown利用
node.jsのmarkedモジュールを使って、markdown文章を作成できます。
markedインストール
https://github.com/chjj/marked
サンプルコード
実行結果
※markdownも紹介
https://github.com/evilstreak/markdown-js
サンプルコード
実行結果
markedインストール
https://github.com/chjj/marked
npm install marked
サンプルコード
var marked = require('marked');
console.log(marked('I am using __markdown__.'));
console.log(marked('> scross site scripting!'));
実行結果
$node marked.js <p>I am using <strong>markdown</strong>.</p> <blockquote> <p>scross site scripting!</p> </blockquote>
※markdownも紹介
https://github.com/evilstreak/markdown-js
npm install markdown
サンプルコード
console.log('=====markdown出力=====');
var markdown = require( "markdown" ).markdown;
console.log( markdown.toHTML( "Hello *World*!" ) );
console.log( markdown.toHTML( 'I am using __markdown__.' ) );
console.log( markdown.toHTML( '> scross site scripting!' ) );
console.log('=====markedと比較=====');
var marked = require('marked');
console.log(marked('Hello *World*!'));
console.log(marked('I am using __markdown__.'));
console.log(marked('> scross site scripting!'));
実行結果
$node markdown.js =====markdown出力===== <p>Hello <em>World</em>!</p> <p>I am using <strong>markdown</strong>.</p> <blockquote><p>scross site scripting!</p></blockquote> =====markedと比較===== <p>Hello <em>World</em>!</p> <p>I am using <strong>markdown</strong>.</p> <blockquote> <p>scross site scripting!</p> </blockquote>
node.jsでメール送信処理
node.jsのnodemailerモジュールを使って、メール送信処理を紹介します。
nodemailerインストール
送信コード
nodemailerインストール
npm install nodemailer
送信コード
var nodemailer = require('nodemailer');
var transport = nodemailer.createTransport('SMTP', {
host: 'stmp-server-ip',
secureConnection: true,
port: 465,
auth: {
user: 'smtpuser',
pass: 'smtppass'
}
});
var msg = {
from: 'aaaa@fortest.com',
to: 'bbbb@fortest.com',
subject: 'this is a test mail.',
text: '日本語テスト'
};
transport.sendMail(msg, function(error){
if (error) {
console.log('送信失敗');
}
else {
console.log('送信終了');
}
msg.transport.close();
});
2013年10月22日火曜日
node.jsでhttpリクエストサンプル
Node.jsを使って、httpでウェブサイト内容をダウンロードする
var http = require('http');
var req = http.get('http://komanew.blogspot.jp', function(res){
console.log(res.statusCode);
console.log(res.headers.location);
res.setEncoding('utf8');
res.on('data', function(str) {
console.log(str);
});
});
req.on('timeout', function() {
console.log('request timed out');
req.abort()
});
req.on('error', function(err) {
console.log("Error: " + err.code + ", " + err.message);
});
2013年10月20日日曜日
mongoose-virtualプロパティ
mongooseはバーチャルプロパティ(virtual property)をサポートしています、このトピックで紹介します。
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test01');
var PersonSchema = new mongoose.Schema({
name:{
first:String,
last:String
}
});
PersonSchema.virtual('name.full').get(function(){
return this.name.first + ' ' + this.name.last;
});
PersonSchema.virtual('name.full').set(function(name){
var split = name.split(' ');
this.name.first = split[0];
this.name.last = split[1];
});
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
var PersonModel = mongoose.model('Person',PersonSchema);
var person1 = new PersonModel({
name:{first:'koma',last:'endia'}
});
console.log("person1=" + person1.name.first + " " + person1.name.last);
console.log("person1=" + person1.name.full);
var person2 = new PersonModel({});
person2.name.full = "koma endia";
console.log("person2=" + person2.name.first + " " + person2.name.last);
console.log("person2=" + person2.name.full);
});
javascriptコールバック例
Node.jsはコールバック関数をよく使われますので、コールバック簡単なサンプルをメモします。
$node callback.js
3
5
function aaa(a, b, cb) {
return cb(a, b);
}
function add(x, y) {
return x+y;
}
console.log(add(1, 2));
console.log(aaa(2, 3, add));
$node callback.js
3
5
登録:
投稿 (Atom)
