<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>飞扬轻狂&#039;s blog</title>
	<atom:link href="http://blog.fallseir.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.fallseir.com</link>
	<description>我心飞扬 我意轻狂</description>
	<lastBuildDate>Tue, 31 Aug 2010 06:59:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/><cloud domain='blog.fallseir.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>安装zeromq</title>
		<link>http://blog.fallseir.com/2010/05/learn_zeromq/</link>
		<comments>http://blog.fallseir.com/2010/05/learn_zeromq/#comments</comments>
		<pubDate>Thu, 06 May 2010 07:13:26 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[闲言片语]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/?p=251</guid>
		<description><![CDATA[安装zeromq]]></description>
			<content:encoded><![CDATA[<p>- 安装zeromq</p>
<pre class="brush:bash">
$ wget http://www.zeromq.org/local--files/area:download/zeromq-2.0.6.tar.gz
$ tar -xzf zeromq-2.0.6.tar.gz
$ cd zeromq-2.0.6
$ ./configure --prefix=/home/app/zeromq
$ make
$ sudo make install
// 重建so文件链接
$ sudo ln -s /home/app/zeromq/lib/libzmq.so.0.0.0  /usr/lib/libzmq.so.0
$ sudo ln -s /home/app/zeromq/lib/libzmq.so.0.0.0  /usr/lib/libzmq.so
</pre>
<p>- 测试zeromq</p>
<pre class="brush:c">
// client.c
#include <assert.h>
#include <stdio.h>
#include <string.h>
#include "/home/app/zeromq/include/zmq.h"

int main ()
{
    int rc;
    void *ctx, *s;
    zmq_msg_t query, resultset;
    const char *query_string, *resultset_string = "OK";

    /* Initialise 0MQ context, requesting a single application thread
       and a single I/O thread */
    ctx = zmq_init (1, 1, 0);
    assert (ctx);
    /* Create a ZMQ_REP socket to receive requests and send replies */
    s = zmq_socket (ctx, ZMQ_REP);
    assert (s);
    /* Bind to the TCP transport and port 5555 on the 'lo' interface */
    rc = zmq_bind (s, "tcp://lo:5555");
    assert (rc == 0);

    while (1) {
        /* Allocate an empty message to receive a query into */
        rc = zmq_msg_init (&#038;query);
        assert (rc == 0);

        /* Receive a message, blocks until one is available */
        rc = zmq_recv (s, &#038;query, 0);
        assert (rc == 0);

        /* Process the query */
        query_string = (const char *)zmq_msg_data (&#038;query);
        printf ("Received query: '%s'\n", query_string);
        zmq_msg_close (&#038;query);

        /* Allocate a response message and fill in an example response */
        rc = zmq_msg_init_size (&#038;resultset, strlen (resultset_string) + 1);
        assert (rc == 0);
        memcpy (zmq_msg_data (&#038;resultset),
            resultset_string, strlen (resultset_string) + 1);

        /* Send back our canned response */
        rc = zmq_send (s, &#038;resultset, 0);
        assert (rc == 0);
        zmq_msg_close (&#038;resultset);
    }
}
</pre>
<pre class="brush:cpp">
// server.cpp
#include <stdio.h>
#include "/home/app/zeromq/include/zmq.hpp"

int main ()
{
    try {
        // Initialise 0MQ context with one application and one I/O thread
        zmq::context_t ctx (1, 1);
        // Create a ZMQ_REQ socket to send requests and receive replies
        zmq::socket_t s (ctx, ZMQ_REQ);
        // Connect it to port 5555 on localhost using the TCP transport
        s.connect ("tcp://localhost:5555");

        // Construct an example zmq::message_t with our query
        const char *query_string = "SELECT * FROM mytable";
        zmq::message_t query (strlen (query_string) + 1);
        memcpy (query.data (), query_string, strlen (query_string) + 1);
        // Send the query
        s.send (query);

        // Receive and display the result
        zmq::message_t resultset;
        s.recv (&#038;resultset);
        const char *resultset_string = (const char *)resultset.data ();
        printf ("Received response: '%s'\n", resultset_string);
    }
    catch (std::exception &#038;e) {
        // 0MQ throws standard exceptions just like any other C++ API
        printf ("An error occurred: %s\n", e.what());
        return 1;
    }

    return 0;
}
</pre>
<pre class="brush:bash">
// 编译
$ gcc `pkg-config --libs --cflags /home/app/zeromq/lib/pkgconfig/libzmq.pc` -o server server.c
$ g++ `pkg-config --libs --cflags /home/app/zeromq/lib/pkgconfig/libzmq.pc` -o client client.cpp
</pre>
<p>注意：将so链接到usr/lib下 测试程序才运行成功！</p>
<p>- 安装java扩展不成功</p>
<pre class="brush:bash">
configure.in:3: error: Autoconf version 2.61 or higher is required

$ autoreconf --version
autoreconf (GNU Autoconf) 2.59
</pre>
<p>没有时间细弄了 下次有时间再试吧 准备看下 activemq去</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2010/05/learn_zeromq/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP AES-CBC 密钥插件使用实例</title>
		<link>http://blog.fallseir.com/2010/05/php-aes-cbc-example/</link>
		<comments>http://blog.fallseir.com/2010/05/php-aes-cbc-example/#comments</comments>
		<pubDate>Wed, 05 May 2010 11:20:45 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[闲言片语]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/?p=247</guid>
		<description><![CDATA[libmcrypt
php-5.2.13/ext/mcrypt/]]></description>
			<content:encoded><![CDATA[<pre class="brush:bash">
// 安装 MCrypt 包
$ wget http://downloads.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz?use_mirror=cdnetworks-kr-2
$ tar -xzf libmcrypt-2.5.8.tar.gz
$ cd libmcrypt-2.5.8
$ ./configure --prefix=/home/app/libmcrypt-2.5.8
$ make
$ sudo make install
// 编译 php
$ wget http://cn.php.net/get/php-5.2.13.tar.gz/from/this/mirror
$ tar -xzf php-5.2.13.tar.gz
$ cd php-5.2.13/ext/mcrypt/
$ /home/php-5.2.0/bin/phpize
$ ./configure --with-php-config=/home/php-5.2.0/bin/php-config --with-mcrypt=/home/app/libmcrypt-2.5.8/
$ sudo mkdir -p /home/php5/lib/php/extensions/no-debug-non-zts-20060613
$ sudo cp -p modules/mcrypt.so /home/php5/lib/php/extensions/no-debug-non-zts-20060613/
</pre>
<p>测试：</p>
<pre class="brush:php">
dl("mcrypt.so");
$string = "test@abc.com";
$stuff="String to enc/enc/dec/dec =,=,";
$key="XiTo74dOO09N48YeUmuvbL0E";
$iv = mcrypt_create_iv (mcrypt_get_block_size (MCRYPT_TripleDES, MCRYPT_MODE_CBC), MCRYPT_DEV_RANDOM);

$iv64=base64_encode($iv);
echo "iv:".base64_encode($iv);
echo "<br/>\n";

$key=base64_decode("U42/zc3r6zC2Ok11BqO+lA==");
$iv=base64_decode("xTXaC2FQEGWOVBqPIipt1A==");
//$enc=mcrypt_cbc (MCRYPT_TripleDES, $key, $string, MCRYPT_ENCRYPT, $iv);
//MCRYPT_RIJNDAEL_128
$enc=mcrypt_cbc (MCRYPT_RIJNDAEL_128, $key, $string, MCRYPT_ENCRYPT, $iv);
$ret=base64_encode($enc);

echo "encrypt:".$ret;
echo "<br/>\n";
$string=$ret;
$string = trim(base64_decode($string));
//$dec = mcrypt_cbc (MCRYPT_TripleDES, $key, $string, MCRYPT_DECRYPT, $iv);
$dec = mcrypt_cbc (MCRYPT_RIJNDAEL_128, $key, $string, MCRYPT_DECRYPT, $iv);

echo "decrypt:".$dec;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2010/05/php-aes-cbc-example/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1、声明不定长的方法 &#8211; 需要知道的9个PHP实用方法</title>
		<link>http://blog.fallseir.com/2010/05/php_9_funs_1_arguments/</link>
		<comments>http://blog.fallseir.com/2010/05/php_9_funs_1_arguments/#comments</comments>
		<pubDate>Wed, 05 May 2010 06:46:27 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[闲言片语]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/?p=242</guid>
		<description><![CDATA[使用 func_get_args 获取当前方法的实际传入得参数个数]]></description>
			<content:encoded><![CDATA[<p>偶尔翻看 美味书签 发现这篇了这篇文章 就迫不急待的把她保留在自己的空间了<br />
虽然这篇文章中提到的方法只有个别的几个不知道，但这些东西确实很少被使用和初学者知道<br />
摘自: <a href="http://net.tutsplus.com/tutorials/php/9-useful-php-functions-and-features-you-need-to-know/">9 Useful PHP Functions and Features You Need to Know</a></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212; 英文不好，咱只过代码 ~ O(∩_∩)O ~ &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
1. 声明不定长参数个数的方法<br />
这个功能在函数库里经常会用到如printf中参数的个数就是不固定的<br />
样例<br />
<code language="PHP"><br />
// 声明空参数的方法， PHP是动态语言，所以在调用时可以不遵守约定输入任意参数~~<br />
// 如果在java里 需要这样声明 foo(Object ... args)<br />
function foo() {<br />
	// 得到所有的传递进来的实际参数值（实参）<br />
	$args = func_get_args();<br />
        // 将所得到的实参输出<br />
	foreach ($args as $k => $v) {<br />
		echo "arg".($k+1).": $v\n";<br />
	}<br />
}</p>
<p>foo();<br />
/* 什么都不打印 */</p>
<p>foo('hello');<br />
/* 打印<br />
arg1: hello<br />
*/</p>
<p>foo('hello', 'world', 'again');<br />
/* 打印<br />
arg1: hello<br />
arg2: world<br />
arg3: again<br />
*/<br />
</code><br />
这个功能很实用，书写起来也很直观<br />
类似的PHP为我们提供的<a href="http://cn.php.net/manual/en/ref.funchand.php">方法处理函数</a>还有：<br />
&#8211; 获取当前方法本次调用时的参数信息<br />
func_get_arg 获取当次方法调用的指定位置的参数<br />
func_get_args 获取当次方法调用的参数列表<br />
func_num_args 获取当次方法调用的参数个数<br />
&#8211; 扩展： 通过字面量调用已定义的方法 ， 允许通过变量传递方法名，将调用方和实现方解耦<br />
function_exists 验证方法是否存在<br />
call_user_func 通过方法名调用方法<br />
method_exists 验证成员方法是否存在<br />
forward_static_call 在成员方法中调用外部静态方法</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2010/05/php_9_funs_1_arguments/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HelloWorld Java 2: Arguments &amp; Signal</title>
		<link>http://blog.fallseir.com/2010/03/helloworld-java-1-arguments-signal/</link>
		<comments>http://blog.fallseir.com/2010/03/helloworld-java-1-arguments-signal/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 08:03:39 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[闲言片语]]></category>
		<category><![CDATA[helloworld]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/?p=234</guid>
		<description><![CDATA[使用apache的commons.cli解析命令行参数 Java Code: package test.helloworld.cmd; // fallseir 2010-03-26 import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.GnuParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Option; import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.Options;<a href="http://blog.fallseir.com/2010/03/helloworld-java-1-arguments-signal/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>使用apache的commons.cli解析命令行参数<br />
Java Code:</p>
<pre class="brush:java">
package test.helloworld.cmd;
// fallseir 2010-03-26
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.GnuParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;

public class Cli {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		GnuParser parser=new GnuParser();
		Options opts=getCmdOptions();
		CommandLine line=null;
		try {
			line=parser.parse(opts,args);
		} catch (ParseException e) {
			//e.printStackTrace();
			System.err.println(e.getMessage());
			HelpFormatter helper=new HelpFormatter();
			helper.printHelp("cmdLineSyntax", opts);
		}
		if(line==null) return ;
		if(line.hasOption("h")){
			HelpFormatter helper=new HelpFormatter();
			//helper.printHelp("cmdLineSyntax", opts);
			helper.printHelp(80, "tester", "header", opts, "footer");
			return;
		}
		boolean debug=false;
		if(line.hasOption("debug")){
			debug=true;
			System.out.println("debug is set");
		}
		if(line.hasOption("arg")){
			String arg=line.getOptionValue("arg");
			System.out.println("arg "+arg);
		}
	}

	private static Options getCmdOptions() {
		Options options=new Options();
		Option opt=OptionBuilder.create("debug");
		options.addOption(opt);
		opt=OptionBuilder.isRequired()
					.hasArg()
					.withArgName("arg")
					.withDescription("arg description")
					.withLongOpt("argument")
					.withValueSeparator()
					.create("arg");
		options.addOption(opt);
		options.addOption(new Option("h","help",false,"print help"));
		return options;
	}

}
</pre>
<p>Signal Shell下基于信号的应用通信<br />
使用 sun.misc.Signal ，但 sun 已经提示Signal将在其后版本剥离<br />
建议使用 socket 进行通信吧 </p>
<pre class="brush:java">
package test.helloworld.cmd;
// fallseir 2010-03-26
import sun.misc.Signal;
import sun.misc.SignalHandler;

public class SignalHandle {
	public static void main(String args[]){
		System.out.println("start");
		SignalHandle cmd=new SignalHandle();
		if(cmd.isLinux()){
			cmd.installSignalHandler("QUIT");
			cmd.installSignalHandler("HUP");
			cmd.installSignalHandler("USR1");
			cmd.installSignalHandler("USR2");
			cmd.installSignalHandler("PIPE");
		}
		cmd.installSignalHandler("TERM");
		cmd.installSignalHandler("ABRT");
		cmd.installSignalHandler("INT");
		try{
			Thread.sleep(1000*10*10);
		}catch(InterruptedException e){
			e.printStackTrace();
		}
	}
	private void handleSignal(String signal){
		System.out.println("handleSignal "+signal);
	}
	private boolean isLinux() {
		return System.getProperty("os.name").indexOf("Linux")>=0;
	}
	private void installSignalHandler(String signal){
		System.out.println("installCheckSignal "+signal);
		SimpleSignalHandler shandler=new SimpleSignalHandler();
		try{
			SignalHandler old = Signal.handle( new Signal( signal ), shandler);
			shandler.setOld(old);
		}catch(Exception e){
			System.err.println("installShutdownSignal "+signal+" "+e);
		}
	}
	class SimpleSignalHandler implements SignalHandler{
		SignalHandler old=null;
		public SimpleSignalHandler() {
		}
		public void handle( Signal sig ) {
			try{
				System.out.println("Handle Signal "+sig.getName() );
				handSignal(sig);
				if( old != null &#038;&#038; old != SIG_DFL &#038;&#038; old != SIG_IGN ) {  //chain back to previous handler if one exists
					old.handle( sig );
				}
			}
			catch( Throwable t ) {
				System.out.println(String.format("ShutdownSignalHandler.handle %s : %s",sig.getName(),t.getMessage())+t);
			}
		}
		protected void handSignal(Signal sig) {
			handleSignal(sig.getName());
		}
		public void setOld(SignalHandler old){
			this.old=old;
		}
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2010/03/helloworld-java-1-arguments-signal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HelloWorld Java 1: ShutdownHook &amp; start/stop Script</title>
		<link>http://blog.fallseir.com/2010/03/helloworld-java-1-shutdownhook-startstop-script/</link>
		<comments>http://blog.fallseir.com/2010/03/helloworld-java-1-shutdownhook-startstop-script/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 07:59:16 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[闲言片语]]></category>
		<category><![CDATA[helloworld]]></category>
		<category><![CDATA[X shell]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/?p=232</guid>
		<description><![CDATA[Java 代码： package test.helloworld.cmd; // by fallseir 2010-03-26 public class ShutdownHook { public static void main(String args[]){ System.out.println("start"); ShutdownHook cmd=new<a href="http://blog.fallseir.com/2010/03/helloworld-java-1-shutdownhook-startstop-script/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>Java 代码：</p>
<pre>
package test.helloworld.cmd;
// by fallseir 2010-03-26
public class ShutdownHook {
	public static void main(String args[]){
		System.out.println("start");
		ShutdownHook cmd=new ShutdownHook();
		cmd.installShutdownHook();
		try{
			Thread.sleep(1000*10*10);
		}catch(InterruptedException e){
			e.printStackTrace();
		}
	}
	private void shutdown(){
		System.out.println("shutdown");
	}
	private void installShutdownHook(){
		Runtime.getRuntime().addShutdownHook(new Thread(){
			public void run(){
				shutdown();
			}
		});
	}
}
</pre>
<p>sh 代码：</p>
<pre>
#!/bin/sh
# -----------------------------------------------------------------------------
# fallseir 2010-03-26
# Start/Stop Script for the test.helloworld.cmd.ShutdownHook system
# run.sh start|stop|check
#
base="."
lib="$base/lib"
log="$base/log"

app="run"
mainCls="test.helloworld.cmd.ShutdownHook"
pid="$app"".pid"

cp=""
#cp="$cp:$lib/log4j-1.2.13.jar"

cmd="java -cp $cp $mainCls $args"

ARG=$1
if [ "x$ARG" = "x" ] ; then
  ARG="start"
else
  shift
fi

if [ ! -d "$log" ] ; then
  mkdir "$log"
fi

if [ "$ARG" = "start" ] ; then
  AppErr="$log/$app.err"
  AppOut="$log/$app.out"
  # 备份历史日志
  if [ -f "$AppErr" ] ; then
    mv "$AppErr" "$AppErr".`date +%Y%m%d`"."$$
  fi
  if [ -f "$AppOut" ] ; then
    mv "$AppOut" "$AppOut".`date +%Y%m%d`"."$$
  fi
  # 在后台启动应用
  echo "$cmd $@ > $AppOut 2> $AppErr"
  $cmd "$@" > "$AppOut" 2> "$AppOut" &#038;
  # 记录进程ID
  if [ ! -z "$pid" ] ; then
    echo $! > $pid
  fi
# 使用USR2 进行简单通信
#elif [ "$ARG" = "check" ] ; then
#  if [ ! -z "$pid" ]; then
#    echo "check: `cat $pid`"
#    kill -USR2 `cat $pid`
#  else
#    echo "Kill failed: \$pid not set"
#  fi
elif [ "$ARG" = "stop" ] ; then
  # kill 应用进程
  if [ ! -z "$pid" ]; then
    echo "Killing: `cat $pid`"
    kill -15 `cat $pid`
    rm $pid
  else
    echo "Kill failed: \$pid not set"
  fi
fi
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2010/03/helloworld-java-1-shutdownhook-startstop-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AIR Helloworld 2 ,使用 Ant 脚本打包AIR程序</title>
		<link>http://blog.fallseir.com/2010/03/air-helloworld-2-use-ant/</link>
		<comments>http://blog.fallseir.com/2010/03/air-helloworld-2-use-ant/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 10:04:44 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[笔记]]></category>
		<category><![CDATA[helloworld]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/?p=205</guid>
		<description><![CDATA[尝试多样化安装 == 安装并了解 Ant == Ant Helloworld - http://blog.fallseir.com/2010/03/ant-helloworld/ == 配置 Air Ant 样例 == 1、移动文件到项目指定的位置 2、配置build.xml # 设置SDK_HOME 为安装的Air的路径<a href="http://blog.fallseir.com/2010/03/air-helloworld-2-use-ant/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>尝试多样化安装<br />
== 安装并了解 Ant ==<br />
<a href="http://blog.fallseir.com/2010/03/ant-helloworld/">Ant Helloworld </a><br />
- http://blog.fallseir.com/2010/03/ant-helloworld/<br />
== 配置 Air Ant 样例 ==<br />
1、移动文件到项目指定的位置<br />
2、配置build.xml<br />
# 设置SDK_HOME 为安装的Air的路径<br />
3、测试helloworld<br />
> ant test<br />
4、生成数字签名<br />
> ant keystore<br />
# 密码设置为 samplePassword<br />
5、打包项目<br />
> ant package<br />
# 在控制台输入数字签名密码 samplePassword<br />
# air安装包 在release目录中<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
build.xml 文件内容</p>
<pre>&lt;project&gt;
    &lt;!-- SDK properties --&gt;
    &lt;property name="SDK_HOME" value="D:\Program Files\Adobe\AdobeAIRSDK"/&gt;
    &lt;property name="ADL" value="${SDK_HOME}/bin/adl.exe"/&gt;
    &lt;property name="ADT.JAR" value="${SDK_HOME}/lib/adt.jar"/&gt; 

    &lt;!-- Project properties --&gt;
    &lt;property name="PROJ_ROOT_DIR" value="."/&gt;
    &lt;property name="APP_NAME" value="helloworld"/&gt;
    &lt;property name="APP_ROOT_DIR" value="${PROJ_ROOT_DIR}/src/html"/&gt;
    &lt;property name="APP_ROOT_FILE" value="${APP_NAME}.html"/&gt;
    &lt;property name="APP_DESCRIPTOR" value="${PROJ_ROOT_DIR}/${APP_NAME}-app.xml"/&gt;
    &lt;property name="AIR_NAME" value="${APP_NAME}.air"/&gt;
    &lt;property name="release"  location="${PROJ_ROOT_DIR}/release"/&gt;
    &lt;property name="assets"  location="${PROJ_ROOT_DIR}/src/assets"/&gt;
    &lt;property name="STORETYPE" value="pkcs12"/&gt;
    &lt;property name="KEYSTORE" value="sampleCert.p12"/&gt; 

    &lt;target name="init" depends="clean"&gt;
        &lt;mkdir dir="${release}"/&gt;
    &lt;/target&gt; 

    &lt;target name="test"&gt;
        &lt;exec executable="${ADL}"&gt;
            &lt;arg value="${APP_DESCRIPTOR}"/&gt;
            &lt;arg value="${APP_ROOT_DIR}"/&gt;
        &lt;/exec&gt;
    &lt;/target&gt; 

    &lt;target name="keystore" depends="init"&gt;
        &lt;java jar="${ADT.JAR}" fork="true" failonerror="true"&gt;
            &lt;arg value="-certificate"/&gt;
            &lt;arg value="-cn"/&gt;
            &lt;arg value="SelfSigned"/&gt;
            &lt;arg value="1024-RSA"/&gt;
            &lt;arg value="sampleCert.p12"/&gt;
            &lt;arg value="samplePassword"/&gt;
        &lt;/java&gt;
    &lt;/target&gt; 

    &lt;target name="package" depends="init"&gt;
        &lt;java jar="${ADT.JAR}" fork="true" failonerror="true"&gt;
            &lt;arg value="-package"/&gt;
            &lt;arg value="-storetype"/&gt;
            &lt;arg value="${STORETYPE}"/&gt;
            &lt;arg value="-keystore"/&gt;
            &lt;arg value="${KEYSTORE}"/&gt;
            &lt;arg value="${release}/${AIR_NAME}"/&gt;
            &lt;arg value="${APP_DESCRIPTOR}"/&gt;
            &lt;arg value="-C"/&gt;
            &lt;arg value="${APP_ROOT_DIR}"/&gt;
            &lt;arg value="${APP_ROOT_FILE}"/&gt;
            &lt;arg value="-C"/&gt;
            &lt;arg value="${assets}"/&gt;
            &lt;arg value="icons"/&gt;
        &lt;/java&gt;
    &lt;/target&gt; 

    &lt;target name="clean" description="clean up"&gt;
        &lt;delete dir="${release}"/&gt;
    &lt;/target&gt; 

&lt;/project&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2010/03/air-helloworld-2-use-ant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ant Helloworld</title>
		<link>http://blog.fallseir.com/2010/03/ant-helloworld/</link>
		<comments>http://blog.fallseir.com/2010/03/ant-helloworld/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 08:21:10 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[shell]]></category>
		<category><![CDATA[笔记]]></category>
		<category><![CDATA[helloworld]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/?p=216</guid>
		<description><![CDATA[使用Ant快速开始一个Helloworld程序 == 安装ant == 1)、 下载最新版本的ant 2)、 安装ant * 将ant安装包解压到安装目录 本文使用ant版本为 apache-ant-1.8.0 安装位置为 D:\Program Files\apache-ant-1.8.0 * 配置环境变量 添加变量 ANT_HOME =<a href="http://blog.fallseir.com/2010/03/ant-helloworld/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>使用Ant快速开始一个Helloworld程序</p>
<p>== 安装ant ==<br />
1)、 <a href="http://ant.apache.org/bindownload.cgi">下载</a>最新版本的ant<br />
2)、 安装ant<br />
* 将ant安装包解压到安装目录<br />
本文使用ant版本为 apache-ant-1.8.0<br />
安装位置为 D:\Program Files\apache-ant-1.8.0<br />
* 配置环境变量<br />
添加变量 ANT_HOME = D:\Program Files\apache-ant-1.8.0<br />
更新变量 PATH 在原有值后面添加 ;%ANT_HOME%\bin<br />
* 测试<br />
在命令行下输入 ant -v 查看ant版本<br />
== 运行 Helloworld for java ==<br />
* 编写 Helloworld.java<br />
位置 E:\learn\ant\helloworld\src\oata\Helloworld.java</p>
<pre>
package oata;
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}
</pre>
<p>* 编译并运行HelloWorld程序</p>
<pre>
# 创建目标路径
> mkdir \a build\classes
# 编译java源文件
> javac -sourcepath src -d build\classes src\oata\HelloWorld.java
# 执行helloworld程序
> java -cp build\classes oata.HelloWorld
# 构建 jar 文件
## 创建 jar 描述文件
> echo Main-Class: oata.HelloWorld>myManifest
## 打包jar文件
> mkdir build\jar
> jar cvfm build\jar\HelloWorld.jar myManifest -C build\classes .
## 通过jar 文件运行 helloworld 程序
> java -cp build\jar\HelloWorld.jar oata.HelloWorld
</pre>
<p>== 使用 ant 脚本 编译并执行 helloworld 程序 ==<br />
- E:\learn\ant\helloworld\build.xml</p>
<pre class="code">&lt;project&gt;
    &lt;target name="clean"&gt;
        &lt;delete dir="build"/&gt;
    &lt;/target&gt;
    &lt;target name="compile"&gt;
        &lt;mkdir dir="build/classes"/&gt;
        &lt;javac srcdir="src" destdir="build/classes"/&gt;
    &lt;/target&gt;
    &lt;target name="jar"&gt;
        &lt;mkdir dir="build/jar"/&gt;
        &lt;jar destfile="build/jar/HelloWorld.jar" basedir="build/classes"&gt;
            &lt;manifest&gt;
                &lt;attribute name="Main-Class" value="oata.HelloWorld"/&gt;
            &lt;/manifest&gt;
        &lt;/jar&gt;
    &lt;/target&gt;
    &lt;target name="run"&gt;
        &lt;java jar="build/jar/HelloWorld.jar" fork="true"/&gt;
    &lt;/target&gt;
&lt;/project&gt;
</pre>
<p>* 执行Ant脚本</p>
<pre>
# 执行ant脚本，编译打包并运行helloworld程序
> ant compile jar run
# 查看Ant项目中可用的Target
> ant -p
</pre>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
== 优化后的Ant脚本 ==</p>
<pre class="code">&lt;project name="HelloWorld" basedir="." default="main"&gt;
    &lt;property name="src.dir"     value="src"/&gt;
    &lt;property name="build.dir"   value="build"/&gt;
    &lt;property name="classes.dir" value="${build.dir}/classes"/&gt;
    &lt;property name="jar.dir"     value="${build.dir}/jar"/&gt;
    &lt;property name="main-class"  value="oata.HelloWorld"/&gt;
    &lt;target name="clean"&gt;
        &lt;delete dir="${build.dir}"/&gt;
    &lt;/target&gt;
    &lt;target name="compile"&gt;
        &lt;mkdir dir="${classes.dir}"/&gt;
        &lt;javac srcdir="${src.dir}" destdir="${classes.dir}"/&gt;
    &lt;/target&gt;
    &lt;target name="jar" depends="compile"&gt;
        &lt;mkdir dir="${jar.dir}"/&gt;
        &lt;jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}"&gt;
            &lt;manifest&gt;
                &lt;attribute name="Main-Class" value="${main-class}"/&gt;
            &lt;/manifest&gt;
        &lt;/jar&gt;
    &lt;/target&gt;
    &lt;target name="run" depends="jar"&gt;
        &lt;java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/&gt;
    &lt;/target&gt;
    &lt;target name="clean-build" depends="clean,jar"/&gt;
    &lt;target name="main" depends="clean,run"/&gt;
&lt;/project&gt;
</pre>
<p>参考:<a href="http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html">Hello World with Ant</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2010/03/ant-helloworld/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AIR Helloworld</title>
		<link>http://blog.fallseir.com/2010/03/air-helloworld/</link>
		<comments>http://blog.fallseir.com/2010/03/air-helloworld/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 09:42:29 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[笔记]]></category>
		<category><![CDATA[helloworld]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/?p=197</guid>
		<description><![CDATA[使用AIR快速开始一个Helloworld程序 关键步骤： 1、安装AIR环境 2、安装SDK 3、构建Helloworld项目 4、安装并测试Helloworld项目 ========================================== 具体细节： 1、安装AIR环境 * 到Adobe下载AIR环境 * 安装AIR环境 ，本文使用的是 Adobe AIR 1.5.3.9130 版本 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 2、安装SDK<a href="http://blog.fallseir.com/2010/03/air-helloworld/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>使用AIR快速开始一个Helloworld程序</p>
<p>关键步骤：<br />
1、安装AIR环境<br />
2、安装SDK<br />
3、构建Helloworld项目<br />
4、安装并测试Helloworld项目<br />
==========================================<br />
具体细节：<br />
1、安装AIR环境<br />
* 到Adobe<a href="http://get.adobe.com/cn/air/">下载</a>AIR环境<br />
* 安装AIR环境 ，本文使用的是 Adobe AIR 1.5.3.9130 版本<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
2、安装SDK<br />
* 到Adobe<a href="http://www.adobe.com/cn/products/air/tools/sdk/">下载</a>SDK<br />
* 将下载到的SDK包解压并放置到运行目录<br />
本文下载的SDK版本为 adt version &#8220;1.5.3.9120&#8243;<br />
本文SDK安装目录为 D:\Program Files\Adobe\AdobeAIRSDK<br />
* 配置环境变量 将AIR SDK的工作路径添加到 PATH 变量中，（使adt和adl可以在任意目录以短路径方式启动）<br />
PATH = [... 保持原有的PATH值不变];D:\Program Files\Adobe\AdobeAIRSDK\bin<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
3、构建Helloworld项目<br />
* 创佳Helloworld项目<br />
1)、创建Helloworld目录<br />
本文全路径为 e:\learn\AIR\Helloworld<br />
进入 Helloworld ，开始构建 helloworld 应用<br />
除非明确说明 否则之后描述的文件和路径都是相对于此路径开始<br />
2)、创建项目描述文件 HelloWorld-app.xml</p>
<pre>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;application xmlns="http://ns.adobe.com/air/application/1.5"&gt;
    &lt;id&gt;examples.html.HelloWorld&lt;/id&gt;
    &lt;version&gt;0.1&lt;/version&gt;
    &lt;filename&gt;HelloWorld&lt;/filename&gt;
    &lt;initialWindow&gt;
        &lt;content&gt;HelloWorld.html&lt;/content&gt;
        &lt;visible&gt;true&lt;/visible&gt;
        &lt;width&gt;400&lt;/width&gt;
        &lt;height&gt;200&lt;/height&gt;
    &lt;/initialWindow&gt;
&lt;/application&gt;
</pre>
<p>3)、创建应用界面 HelloWorld.html</p>
<pre>
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Hello World&lt;/title&gt;
    &lt;script type="text/javascript" src="AIRAliases.js"&gt;&lt;/script&gt;
    &lt;script type="text/javascript"&gt;
        function appLoad(){
            air.trace("Hello World");
        }
    &lt;/script&gt; 

&lt;/head&gt;
&lt;body onLoad="appLoad()"&gt;
    &lt;h1&gt;Hello World&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>4)、测试应用<br />
* 打开 cmd 并 cd 进入应用目录<br />
* 运行命令 adl HelloWorld-app.xml<br />
* > 系统将调用AIR运行时，启动一个400&#215;200的窗口应用并呈现Helloworld字符<br />
* > 系统在控制台输出 Hello World 字符<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
4、安装并测试Helloworld项目<br />
1)、生成自签名证书和密钥对<br />
* 运行命令 adt –certificate -cn SelfSigned 1024-RSA sampleCert.pfx samplePassword<br />
* 系统将在当前目录生成密钥文件 sampleCert.pfx<br />
2)、创建 AIR 安装文件<br />
* 运行命令 adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air<br />
HelloWorld-app.xml HelloWorld.html AIRAliases.js<br />
* 根据系统提示输入密钥文件的密码 samplePassword<br />
* 系统将根据 helloworld-app.xml 的描述生成AIR应用程序，并将helloworld.html 和 airaliases.js 当作附加资源嵌入AIR应用程序中<br />
3)、安装 Helloworld 应用<br />
* 双击 helloworld.air 或在命令行下执行 hellowrold.air 命令<br />
* 系统调用本地的air运行时环境解释helloworld.air并开始应用安装<br />
* 根据系统提示进行安装<br />
4)、当安装完成后，通过双击helloworld的快捷方式或到安装目录打开helloworld.exe 即可运行helloworld应用<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
参考：<br />
* <a href="http://help.adobe.com/zh_CN/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7ecc.html">使用 AIR SDK 创建第一个基于 HTML 的 AIR 应用程序</a>http://help.adobe.com/zh_CN/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7ecc.html<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
资源：<br />
* <a href="http://help.adobe.com/zh_CN/AIR/1.5/devappshtml/">使用 HTML 和 Ajax 开发 Adobe AIR 1.5 应用程序</a><br />
* <a href="http://help.adobe.com/zh_CN/AIR/1.5/jslr/index.html">针对 HTML 开发人员的 AIR 语言参考</a><br />
*  <a href="http://livedocs.adobe.com/flex/3_cn/langref/index.html">Flex 3.2 语言参考</a><br />
* <a href="http://www.adobe.com/cn/devnet/air/">Adobe AIR 开发人员中心</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2010/03/air-helloworld/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于CRM的认知</title>
		<link>http://blog.fallseir.com/2010/02/about_crm/</link>
		<comments>http://blog.fallseir.com/2010/02/about_crm/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 11:28:44 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[笔记]]></category>
		<category><![CDATA[飞扬的认知]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/?p=176</guid>
		<description><![CDATA[简单来说 CRM 就是通过同客户的交互对客户信息进行收集，并围绕对客户行为分析进行经营的策略。
CRM系统只是用于完成CRM的一个工具，前端的界面只是表象，卖点也许应该更直接的围绕这个工具
能直接或间接的为企业带来多少利润和加强了多少客户体验。]]></description>
			<content:encoded><![CDATA[<p>&#8211; 飞扬的认知,2010-02-21, http://blog.fallseir.com/2010/02/about_crm</p>
<p>一、什么是CRM<br />
     CRM（Customer Relationship Management）客户关系管理<br />
     CRM 是一个围绕客户为中心的，通过IT手段，来增进客户沟通，提升客户关怀，从而影响客<br />
户决策，并最终达到创利目的的企业经营策略。<br />
其中的IT手段，通常指通过CRM系统来收集、分析和反馈客户行为数据，来更便利的实现同客户<br />
的沟通和更有效的进行客户行为分析。</p>
<p>二、CRM 的组成<br />
     通常的CRM系统包含客户交互和行为分析两大部分。<br />
1、客户交互<br />
     用于收集客户信息，记录客户行为日志，及对进行客户关怀和解答客户提问；<br />
     客户交互系统由电话呼叫中心(CTI)、短信(SMS)、邮件(EMAIL)、线上应用(WEB Site)、<br />
及即时通讯(IM)等一切可能的方式整合在一起来实现同用户的交互，并收集用户行为。</p>
<p>2、行为分析<br />
     结合业务逻辑对客户行为日志进行分析，来为客户提供更具针对性的客户关怀；<br />
     通过对客户群体的行为日志进行统计，来评估往期的业务效果和指导未来的产品决策。</p>
<p>三、CRM 系统的成本<br />
1、系统支持的交互平台、方式和规模<br />
    不同的交互平台（CTI、SMS、EMail、WEB Site、IM、&#8230;）及平台上的不同的实现方式（<br />
人工客服、自助服务、主题活动、客户交流、客户关怀、&#8230;） 会有不同的效果的成本。<br />
例如，一个极端的例子是一部电话通过全人工实现的电话客服和通过CTI实现的带有自助服务的<br />
电话呼叫中心都被称作客服电话，用于进行客户服务和客户关怀。<br />
2、系统支持的行为分析策略、数量和数据量级<br />
    分析策略需要根据不同的业务逻辑和客户行为数据进行定制，策略的个数和分析的行为数据量级<br />
会对严重的影响到系统的结构和组织方式。<br />
比如，从100条售后客户行为中找到来自北京的有跨地域维修记录的用户要比从1,000,000条客户<br />
行为中分析更容易（大数据量的查找需要进行预处理才能达到可以接受的速度）。</p>
<p>四、CRM 系统的实施的前提<br />
1、了解当前业务环境，分析业务领域并确认需求方向，规模<br />
2、客观描述当前IT环境，以便系统可以尽可能的整合现有IT资源<br />
3、确认需求和远景，确定必要的需求和可能的需求（圈地和画饼）</p>
<p>简单来说 CRM 就是通过同客户的交互对客户信息进行收集，并围绕对客户行为分析进行经营的策略。<br />
CRM系统只是用于完成CRM的一个工具，前端的界面只是表象，卖点也许应该更直接的围绕这个工具<br />
能直接或间接的为企业带来多少利润和加强了多少客户体验。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2010/02/about_crm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>笔记:安装FreeBSD &amp; 应用</title>
		<link>http://blog.fallseir.com/2009/06/freebsd_install/</link>
		<comments>http://blog.fallseir.com/2009/06/freebsd_install/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 13:13:29 +0000</pubDate>
		<dc:creator>飞扬轻狂</dc:creator>
				<category><![CDATA[shell]]></category>
		<category><![CDATA[笔记]]></category>

		<guid isPermaLink="false">http://blog.fallseir.com/?p=144</guid>
		<description><![CDATA[freebsd 7.2 根据提示进行安装 并选择最小安装 在进行系统配置时 * 关闭ssh外的所有服务 * 配置ip地址 配置时区 * 添加普通用户用来远程连接ssh,设置组为 wheel 这样可以使用su访问root * 设置管理员密码 开启用户的su权限，使用su命令的用户必须存在与wheel组中 # pw groupmod<a href="http://blog.fallseir.com/2009/06/freebsd_install/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>freebsd 7.2<br />
根据提示进行安装 并选择最小安装<br />
在进行系统配置时<br />
* 关闭ssh外的所有服务<br />
* 配置ip地址 配置时区<br />
* 添加普通用户用来远程连接ssh,设置组为 wheel 这样可以使用su访问root<br />
* 设置管理员密码</p>
<p>开启用户的su权限，使用su命令的用户必须存在与wheel组中<br />
# pw groupmod wheel -m username<br />
检查用户是否正确的添加到组中<br />
# pw groupshow wheel</p>
<p>mount cdrom  映射光驱<br />
# ll /dev/acd*<br />
> acd0t01<br />
# cd /cdrom<br />
# touch   CDROM-NOT-mounted-mcd.txt<br />
# mount -t cd9660 /dev/acd0t01 /cdrom</p>
<p>- python<br />
安装python<br />
# cd /cdrom/packages<br />
# pkg_add -p/home/app/python25 /cdrom/packages/python/python25-2.5.4_1.tbz<br />
映射命令<br />
# ln -s /home/app/python25/bin/python /usr/local/bin/python<br />
&#8211; require<br />
bsddb           databases/py-bsddb<br />
gdbm            databases/py-gdbm<br />
sqlite3         databases/py-sqlite3<br />
tkinter         x11-toolkits/py-tkinter</p>
<p># pkg_add -p/home/app/sqlite3 /cdrom/packages/databases/sqlite3-3.6.11.tbz<br />
映射错误的链接库<br />
# ln -s /home/app/sqlite3/lib/libsqlite3.so.8 /usr/local/lib/libsqlite3.so.8<br />
# cd /usr/local/lib/<br />
# ln -s libsqlite3.so.8 libsqlite3.so<br />
映射命令<br />
# ln -s /home/app/sqlite3/bin/sqlite3 /usr/local/bin/sqlite3</p>
<p>- emacs 安装emacs编辑器<br />
# pkg_add -p/home/app/emacs /cdrom/packages/editors/emacs-22.3.tbz<br />
# ln -s /home/app/emacs/bin/emacs /usr/local/bin/emacs</p>
<p>解除绑定的光驱<br />
#umount   /cdrom</p>
<p>注：通过pkg_add 自动获取安装包<br />
# pkg_add -r python<br />
-r 选项将导致pkg程序自动从配置的packages网络镜像获取指定应用最新的安装包</p>
<p>[:p] &#8211;飞扬.轻狂 [fallseir.lee]</p>
<p>http://fallseir.livejournal.com</p>
<p>http://feed.feedsky.com/fallseir</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fallseir.com/2009/06/freebsd_install/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
