Monthly Archives: April 2012

Mac下用Eclipse构建Android开发环境

以前都是在Windows下使用Eclipse做Android的开发,很早就开始使用Mac的系统但是一直没有将Android的开发环境迁移过来,今天突然想Eclipse的Mac版本也很好用,要不索性迁移过来算了;于是就动手。

一、安装Eclipse
1、去Eclipse的官方网站(http://www.eclipse.org)下载Eclipse for Mac X的安装包,一般来说Mac X应该是64位的,所以下载Eclipse IDE for Java Developers 的 Mac OS X 64 Bit版本。
2、下载后解压,然后直接可以使用。

二、安装ADT
1、点击菜单中的Help  > Install New Software⋯
2、弹出框中“Work with”右边的输入框中填写:https://dl-ssl.google.com/android/eclipse/ 过一会下面就会出来一个“Developer Tools”,勾选上,然后一路的Next就可以。

三、安装Android SDK
1、去Android开发者网站(http://developer.android.com)下载Mac OS X (intel) 的SDK。
2、解压下载文件,运行tools文件夹下的Android文件,在弹出的Android SDK Manager对话框中选择你需要的Android版本,然后点击右下方的Install Package,如果有升级就Update All下。
3、在菜单栏Eclipse > Preferences,弹出一个Preferences对话框,选Android后在SDK Loaction中填入刚下载的SDK的路径或用Browser选择。

PHP实现排列组合

昨天朋友问有没有可能随机排列若干词根的软件?
我还真没有接触过类似软件,但是想了下应该需求不难,就答应帮他写一个。

开始些的时候才发现什么排列组合都还给老师了,连公式都忘记了,于是想偷懒点去Google搜索一个算法了事;一搜索才发现排列算法确实有说,但是也不是很完善,只能实现A(5,5)这样的需求,不能实现A(5,3)这样的需求,组合更加是没有搜索到;无奈只能自己写了。

先从新了解排列组合算法(百度百科中排列组合的知识http://baike.baidu.com/view/738955.htm);惊奇的发现原来排列已经由P:Permutation改成了A:Arrangement,看来以后教育宝宝会出现沟通问题了,哈哈。

文中有对公式的描述:
A(n,m)=n(n-1)(n-2)……(n-m+1)= n!/(n-m)!
C(n,m)=A(n,m)/m!=n!/((n-m)!*m!)

有这两个公式就能知道结果数量怎么算
排列算法:

<?php
function a($n, $m){
	if($n < $m) return false;
	$num = 1;
	for($i=0; $i<$m; $i++){
		$num = $num * ($n-$i);
	}
	return $num;
}
?>

组合算法:

<?php
function c($n, $m){
	if($n < $m) return false;
	return a($n,$m)/a($m,$m);
}
?>

应用方法:

<?php echo a(5,3) ?>
<?php echo c(5,3) ?>

上面只能得到结果的数量不能枚举所有情况,继续考虑他的逻辑,最后得到枚举算法(似乎说的很简单,不过思考逻辑不好描述,程序中看端倪吧)
排列枚举算法:

<?php
function arrangement($arr, $len=0, $str="") {
	global $res;
	$arr_len = count($arr);
	if($len == 0){
		$res[] = $str;
	}else{
		for($i=0; $i<$arr_len; $i++){
			$tmp = array_shift($arr);
			arrangement($arr, $len-1, $str."\t".$tmp);
			array_push($arr, $tmp);
		}
	}
}
?>

组合枚举算法:

<?php
function combination($arr, $len=0, $str="") {
	global $res;
	$arr_len = count($arr);
	if($len == 0){
		$res[] = $str;
	}else{
		for($i=0; $i<$arr_len-$len+1; $i++){
			$tmp = array_shift($arr);
			combination($arr, $len-1, $str."\t".$tmp);
		}
	}
}
?>

应用方法:

<?php
$arr = array(1,2,3,4,5,6,7);//词根
$num = 2;//所需使用词根的数量
$res = array();结果集
arrangement($arr, $num);//进行排列运算
var_dump($res);//输出排列结果

$res = array();
combination($arr, $num);//进行组合运算
var_dump($res);//输出组合结果
?>

因为PHP的效率问题,不适宜做太大量的运算,程序的效率我个人觉得已经最优,如有不足还望高人指点。

最后给出我做的一个demo的地址 http://www.honglei.net/demo/aandc.php

给朋友后他非常满意,还说这个在Taobao能卖钱,似乎是什么选关键词可以用;如果有需要的朋友就直接用吧,能帮上大家的忙我也很开心。

牛排(iPad3)试玩

iPad3(应该说是newPad)没有发布之时就想着搞一台,虽然3月去马来西亚,但是以往经验来看,apple的产品在亚洲只可能在日本首发,也就没有想太多。不过这次错了,newPad在亚洲三个国家和地区首发,新加坡也在其中,并且有发行我想购买的4G版本,但是没有办理新加坡的护照。所以虽然近在咫尺但是也无法购买。

回到国内立即联系朋友看看有没有货源,结果他自己没有订4G版本,只做了香港wifi版本,因为行情不好也就没有打算做4G,不过在我不停的唠叨下,他还是决定订几台试试。(在此非常感谢“52”同学,同时推荐下他的淘宝店 http://feichang.taobao.com

经过若干天后我的Pad总算到手上,还是没有开封的哦,打开后是非常非常激动啊,我自己的第一台Pad(呵呵,一直觉得没有用,从来没有购买过,其实newPad用处也不大,只是觉得不能脱离时代)。

一眼看去newPad和iPad2没有什么大区别,不过图像确实清晰很多,字显示的很细腻,就想印刷的一样;速度也快了不少,进PvZ不用等待,进度条直接走完;因为购买的是4G版本所有里面有张at&t的Sim卡(一直奇怪开机怎么就显示“中国联通”),为了保护好我的Pad还花“重金”购买了Smart Cover,磨砂后壳,磨砂贴膜(最后发现非常失败,贴了以后效果非常差,如果那个哥们想搞磨砂膜建议还是别想了),发现这个组合不错,非常好用,除了那个磨砂膜(郁闷的)。

下面就是安装软件,也算推荐,可以分享下:
Pages(Apple的文本编辑,$9.99)
Numbers(Apple的电子表格,$9.99)
Keynote(Apple的幻灯软件,$9.99)
iPhoto(比较迷摄影,本以为iPhoto不过,用过发现也一般,$4.99)
iSSH(SSH连接器,做的不错,我是工作需要,$9.99)
AVPlayer(一个不错的播放器,名字看着就很牛,$2.99)
FileExplorer(远程文件访问,支持多平台,比较好用,特别适合有NAS的朋友,$0.99)
Weather HD(网上说很酷的天气软件,就下载了一个,$0.99)
Flipboard(非常好用的订阅工具,免费)
QQ(这个不用说,ipad版本做得挺酷的,免费)
微博HD(sina微博,免费)
鲜果联播(国内的订阅工具,我哥们做的,在此推广下,呵呵,免费)
Google Earth(Google卫星地图,免费)
Translate(Google翻译软件,免费)
Pandora(音乐软件,和Last.fm、Radio.com一样中国用不了,郁闷,免费)
Triposo(旅游指南,还不多,旅游的同学可以下载看看,免费)
Dropbox(云存储,至少我一致用,免费)
Evernote(笔记软件,跨平台,好用,免费)
VEVO HD(看MV的软件,中国能用哦,比较爽,免费)
还有几个经典游戏
PvZ HD(植物大战僵尸,$6.99)
Fruit Ninja HD (切水果,$2.99)
Blitz(宝石迷阵,免费)
还有部分收费软件很好,但是个人感觉用处不大也就没有现在购买,App的价格是有变动的,可以等降价再买。
还有些其他的软件就不说了,个人喜好吧,想装就装。

全部装下来话了大概60刀,看来ipad只是第一步投入,重点在后面的app,Apple真是比较能赚钱,哈哈。

SONY笔记本驱动安装顺序

昨天媳妇的Sony笔记本突然系统崩溃,要重装,以前也重装过,知道Sony的热键安装一向是个折腾的事,刚好把安装方法分享给大家。

安装之所以折腾主要在于顺序,以下是正确的安装顺序

一、安装驱动(先安装主板,然后是显卡,其他的无所谓先后)
二、安装Sony Shared Library(安装完成以后需要重启)
三、安装Sony Utilities DLL
四、安装VAIO Event Service
五、安装剩下的一些Sony自带的一些程序

很多人会觉得Windows自带的驱动就能用,但是自带的某驱动功能上可能会有缺失,大家可以自己看着安装。

不同的Sony电脑可能安装的组建也不太一样,但是基本顺序差不多。我的是Sony TZ-13

最后提供一个Sony TZ系列 Windows 7下使用的摄像头驱动
下载地址:http://www.honglei.net/file/sonytz_camera_for_win7.exe