Archive for 十二月 2011

ESXi 5.0需要多大的硬盘空间?

最近我的ESXi上的硬盘突然出现不稳定的情况,于是赶快将数据备份出来,扔到自己Ubuntu做的NAS上面。

在VMWare官网上面看到很多人都说ESXi上的虚拟机不应该安装到本地,虽然速度快,但是不容易管理,不容易备份。

所以把ESXi安装到一个U盘里面其实就可以,然后用千兆太,或者万兆太连接NAS或者SATA外置硬盘盒。

那这里就有一个问题了,这个U盘要多大?

我们知道… 通过对将死的硬盘的解剖,里面一共有6个分区,4个FAT,2个VMFS,4个FAT里面是一些系统文件,总共不要1GB

那1GB的U盘是不是够了呢?

通过对文档的阅读,答案是:

5.2GB,包含一个类似Swap分区的东西是4GB

参考文档如下:

http://pubs.vmware.com/vsphere-50/topic/com.vmware.ICbase/PDF/vsphere-esxi-vcenter-server-50-installation-setup-guide.pdf

简单的PHP应用,拼接Picasa和Youtube

现代人还是很幸福的啊… 从3岁小孩到百岁老人都有电脑玩… 我的一个老年人朋友最近就有一个需求,就是给Picasa的Photo Slideshow配乐。其实是很简单的事情,但是如果全盘都让老先生写iframe的代码,是不是有些残酷了呢… 所以我就做了一个小php应用给他。

程序的目标:

通过输入Picasa的slideshow地址,和youtube的地址,来自动生成一个用iframe组合好的,可以自动播放音乐的网页

程序内容文件:

1. index.html

2. save.php

3. show.php

数据库结构

CREATE TABLE IF NOT EXISTS `main` (
  `idx` INT(11) NOT NULL AUTO_INCREMENT,
  `picasa` text NOT NULL,
  `youtube` text NOT NULL,
  PRIMARY KEY (`idx`)
)

index.html文件结构:

<form action="save.php" method="post">
Picasa address :
<input name="picasa" type="text" />
Youtube address:
<input name="youtube" type="text" />
<input type="submit" value="Submit" />
</form>

非常简单的结构,两个输入框,一个提交按钮,使用post,到php

save.php文件结构:

//数据库连接信息
$username="zetadba";
$password="qwe123123";
$database="zeta";
 
//连接数据库服务器
mysql_connect("localhost",$username,$password);
 
//选择数据库
mysql_select_db($database);
 
//写一个SQL查询语句, 保存从index.html POST过来的数据到数据库
$query = "INSERT INTO main (picasa,youtube) VALUES('".$_POST["picasa"]."','".$_POST["youtube"]."')";
 
//执行SQL语句
mysql_query($query);
 
//debug mysql的错误,之前很多错误... sql那些东西都快忘光了...
echo mysql_error();
 
//查询刚刚存进去的条目的主键数值,用来给show.php来用
$query2 = "SELECT * FROM main ORDER BY idx DESC LIMIT 1";
 
//得到数值sql结果
$result2 = mysql_query($query2);
 
//得到我们想要的主键idx的值
$videoidx = mysql_result($result2, 0, "idx");
 
//关闭... sql
mysql_close();
 
将这个页面自动跳给show.php,这样我的老年朋友就可以直接拷贝走这个URL了
header('Refresh: 3; url=show.php?vv='.$videoidx);

show.php文件结构

 
//不解释了...
$username="zetadba";
$password="qwe123123";
$database="zeta";
 
mysql_connect("localhost",$username,$password);
 
mysql_select_db($database);
 
//这里是直接用的URL数值传递,所以我们GET这个vv值
$query = "SELECT * FROM main WHERE idx='".$_GET["vv"]."'";
 
$result = mysql_query($query);
 
//没写html文件头,所以写个这个当title...
echo "Picasa+Youtube";
 
$picasa = mysql_result($result, 0, "picasa");
$youtube = mysql_result($result, 0, "youtube");
 
//我们需要解析得到的youtube后面的url结构,得到video id
//比如http://www.youtube.com/watch?v=puSkP3uym5k&#038;list=FLV8tlMnzjrbiS7YLh8FAtPQ&#038;index=10&#038;feature=plpp_video
//中的puSkP3uym5k
$parsedurl = parse_url($youtube);
 
$videourlquery = $parsedurl['query'];
 
parse_str($videourlquery);
 
//经过以上的各种解析,我们最后得到了其中的v的值
$videoid = $parsedurlquery['v'];
 
//输出html结构
echo "<iframe width='99%' height='99%' border=0 src="".$picasa."" mce_src="&quot;.$picasa.&quot;"-->";
echo '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="10" height="10" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/'.$v.'?version=3&amp;hl=zh_CN&amp;autoplay=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="10" height="10" src="http://www.youtube.com/v/'.$v.'?version=3&amp;hl=zh_CN&amp;autoplay=1" allowfullscreen="true"></embed></object>';
 
echo mysql_error();
 
mysql_close();

以上!大功告成,一个小小的给老人的礼物,让他们做出这个东西,然后送给朋友,当一个小礼物!

NSString的内存管理 v.2011/12

之前写过一个NSString的内存管理

不过好像由于之前的理解不深刻,所以写的时候也没有说明太清楚。

CS193P的笔记上有如下实例:

aString = @"I am a string that 2 years old, man!";

这种情况下,字符串储存和管理由系统做,我们不用操心。

aString = [NSString stringWithFormat:@"I am a string that %d years old, man!",2];

第二种情况下,我们需要去retain和release这个字符串,系统不管。

这是之前写的内容。

为什么第一种我们不管这个产生的NSString的retain值呢?是因为其实由于我们建立了一个常量,无论我们retain还是release,对于这个对象都是没有意义的,大家可以尝试

NSString *foo = @"ssff";
[foo release];
[foo release];

会发现,这样的代码并不会让程序崩溃,而且无论你再release几次都是一样的。

第二种其实就是利用NSString 方法来生成一个NSString对象,这个时候我们要招呼到这个对象的retain值,否则就是内存溢出了。而我当时说的并不是一定要releaes或者retain这个stringWithFormat便捷方法产生的对象… 我语文不好,哈哈。便捷方法产生的都是autorelease的对象,谢谢大家的留言!

低质量的电源可能造成iPhone/iPad在PC上工作不良

之前在一个朋友家里面帮忙弄他的iPhone和iPad,但是常常发现这台电脑上的USB接口很不好使,iPhone和iPad接上去不认或者要很久才能识别。不仅仅是i设备,很多高功耗的设备都有这个问题。但是像手写板,U盘,这种设备却没有任何问题。

过了一段时间,朋友说自己的电脑会自己关机,而且是突然灭掉那种。

我过去检查了一下,说来奇怪,我用的时候,这个电脑还是非常听话的,没有出现任何不良的问题,甚至用Stress Prime 2004也是正常工作,让我一头雾水。但是回头用主板BIOS的PC Health检测,发现电压有严重不足和不稳定的情况。

于是乎立刻拆开了朋友的电脑,发现是一个RaidMax的垃圾电源… 450W的功率,但是却轻的要命…

换上一个ThermalTake的T2系列电源后,一切问题立即消失…