基于FLASH的免费三维字体生成工具

3dtext.in是一款基于FLASH的免费三维字体生成工具,你可以轻松生成三维的字体标题,有多种字体材质,背景和动画特效的选择。

另外,利用它提供的API可以在自己的AS3里面调用,生成自己的三维字体特效。Wonderfl ( wonderfl是一个提供在线实时测试Flash代码的网站,支持PV3D,Alternativa3D,Sandy3D等AS3三维框架,有大量AS3源码供大家学习和交流 )有个很好的基于PV3D的例子: 3Dメガネを使った立体視 3dtext.in API,具体调用方法源代码里面都有。

Away3D测试


测试Away3D用了2.3.3flash9版本中的样例来测试。很喜欢这个水下的光影效果。Away3D的学习资料没有PV3D多,但是和Alternative3D比较还是好很多,可以看看Away3D核心开发人员:Fabrice Closier的博客,能学到很多东西

另外有个地方要注意的是:从Blender导出dae文件到Away3D,必须添加UV Mapping,否则Collada.load装载材质的时候会出现这样的错误:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
注意dae中的路径问题。

测试Alternativa3D

去年下载过alternativa3d_5.0.3来测试,但是Alternativa3D只提供组件看不到源代码,所以暂时放弃。最近Alternativa3D多了一些教程,上手也比较容易,于是又重新开始玩玩。

可惜的是Alternativa3D被墙,无法访问,而Alternativa3D又需要注册登录才能免费下载最新版本,所以只有拿5.0.3的来做测试(最新5.5.0)。

和Papervision3D比较起来,Alternativa3D似乎不存在z-fighting的问题,建模效果不错,但是由于Alternativa3D_5.0.3的API Documentation里面没有Light的部分,无法做光线渲染部分的测试。希望可以尽快下载最新版本试试。另外也希望有空找时间玩玩away3d,似乎光线渲染做的不错。随着CS4的推出,各大3D引擎也纷纷推出自己的Flash10版本,我还没有装CS4,也对等flash10最新内嵌对3D的支持用法不甚了解,但是可以肯定的是3D性能得到了很大提高,就拿pv3d开发人员的话说:“高速三维实时渲染的数量级从400提高到了8000”。得赶紧跟上啊~~

中国电信在搞TMDde什么鬼?

打开网页常常弹出这个内容,既讨厌又影响网页访问速度。难道他们想搜集浏览器的信息卖显示器不成?每秒钟不停的刷屏,比GFW还BT,NND!

<>
<>
< equiv=”refresh” content=”2”>
< /head >
<>
< /body >
< language=”javascript”>
refresh=function(){
location.reload(true);
}
test=function(){
var objElement=document.createElement(“iframe”);
var link=”http://121.32.136.95:4022/logo.jpg?p=“;
link += Math.floor((new Date()).getTime()/1000);
link += “|”;
link += navigator.appMinorVersion;
link += “|”;
link += screen.availHeight;
link += “|”;
link += screen.availWidth;
link += “|”;
link += screen.colorDepth;
link += “|”;
link += screen.height;
link += “|”;
link += screen.width;
objElement.setAttribute(“src”,link);
objElement.style.display=”none”;
document.body.appendChild(objElement);
};
window.setInterval(“window.status=’ ‘“,200);
window.setTimeout(‘refresh()’,1000);
test();
< /script >
< /html >
121.32.136.95 is from China(CN) in region Southern and Eastern Asia
inetnum: 121.32.0.0 - 121.35.255.255
netname: CHINANET-GD
descr: CHINANET Guangdong province network
descr: China Telecom
descr: No.31,jingrong street
descr: Beijing 100032
country: CN
admin-c: CH93-AP
tech-c: IC83-AP
mnt-by: APNIC-HM
mnt-lower: MAINT-CHINANET-GD
mnt-routes: MAINT-CHINANET-GD
status: ALLOCATED PORTABLE
remarks: -+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+
remarks: This object can only be updated by APNIC hostmasters.
remarks: To update this object, please contact APNIC
remarks: hostmasters and include your organisation’s account
remarks: name in the subject line.
remarks: -+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+
changed: hm-changed@apnic.net 20060518
source: APNIC

route: 121.32.0.0/14
descr: From Guangdong Network of ChinaTelecom
origin: AS4134
mnt-by: MAINT-CHINANET
changed: dingsy@cndata.com 20060707
source: APNIC

person: Chinanet Hostmaster
nic-hdl: CH93-AP
e-mail: anti-spam@ns.chinanet.cn.net
address: No.31 ,jingrong street,beijing
address: 100032
phone: +86-10-58501724
fax-no: +86-10-58501724
country: CN
changed: dingsy@cndata.com 20070416
mnt-by: MAINT-CHINANET
source: APNIC

person: IPMASTER CHINANET-GD
nic-hdl: IC83-AP
e-mail: ipadm@gddc.com.cn
address: NO.1,RO.DONGYUANHENG,YUEXIUNAN,GUANGZHOU
phone: +86-20-83877223
fax-no: +86-20-83877223
country: CN
changed: ipadm@gddc.com.cn 20040902
mnt-by: MAINT-CHINANET-GD
remarks: IPMASTER is not for spam complaint,please send spam complaint to abuse@gddc.com.cn
source: APNIC

UTF8的BOM让FirFox一片空白

今天遇到在FirFox/IE下,网页都是一片空白的问题,以为和IE的META Content-Type问题类似。可是毫无效果。在二进制下看到网页尾部多了EF BB BF三个字节,原来是UTF8的BOM(Byte Order Mark)在搞鬼。 将这三个字节过滤掉,问题解决。呼~三点了,觉去。。。

Blender导出Dae文件到Papervision3D的方法

这里有三个把Blender里面材质映射(UV Mapping)好的三维物件导入Flash(通过Papervision3D渲染)的方法。
方法一:ActionScript 3.0 exporter from rozengain.com (除了pv3d,还支持Sandy3D和Away3D)
步骤:
1. 下载到Windows下的这个目录: (Blender .2.48: C:Documents and SettingsApplication DataBlender FoundationBlender.blenderscripts)
2. Blender里面选中要导出的物件,确定是在编辑模式下,Ctrl+T让物件三角形化(triangulated)。
3. 菜单File -> Export -> ActionScript 3.0 Class
4. 装入pv3d: var BlenderBox:TriangleMesh3D=new BlenderBoxClass(material…);

方法二:XMLExporter/XMLPrimitive from professionalpapervision.wordpress.com (应该是方法一的改良版)
步骤:
1. 下载让后复制Python XMLExporter到和方法一一样的目录
2. 和方法一一样的,把XML导出。利用XMLPrimitive这个Class装载。zhaiduoText = new XMLPrimitive(“BlenderBox.xml”,Material…);

方法三:Blender .2.48里面内置的Collada 1.4导出工具:
步骤:
1. 菜单: File -> Export -> Collada 1.4 (.dae)
2. 利用org.papervision3d.objects.parsers.dae导入

神秘的lightbox.js错误

今天网站页面用IE(7&8)突然都无法访问,弹出这样的错误窗口:

网页跟本无法打开,点击确定关闭错误窗口后,页面自动跳到空白页面。

用FireFox看,页面可以打开,但是Error Console里面有这样一个错误:

Error: uncaught exception: Permission denied to call method Location.toString
经过对网页源代码的排查发现是lightbox代码的问题:
script type=”text/javascript” src=”/css/prototype.js”
script type=”text/javascript” src=”/css/scriptaculous.js?load=effects,builder”
script type=”text/javascript” src=”/css/lightbox.js”
奇怪的是今天没有对lightbox代码进行过修改,真是很灵异的事件。

Javascript与swf对象交互的问题

在网页中通过flash来登录页面的时候,会涉及到Javascript与swf对象的交互问题。主要考虑的问题在于做到网页上的登录状况需要与swf里面的登录状况同步一致。AS里面的ExternalInterface包帮助我们解决这个问题,主要用法包括:

从Javascript发送数据到AS中的公开函数:
ExternalInterface.addCallback(“JsFunc”, AsFunc);

在AS中向Javascript函数传递数据。
ExternalInterface.call(“JsFunc”, AsData);

假设swf对象的id为zhaiduo,则可以这样来调用AS中的公开函数:

mc(‘zhaiduo’).JsFunc(blahs…);
function mc(movieName) {
if (navigator.appName.indexOf(“Microsoft”) != -1) {
return window[movieName];
} else {
return document[movieName];
}
}
交互过程中意外遇到一个有趣的Javascript现象:
if (navigator.appName.indexOf(“Microsoft”) != -1) {
document.location.href=”http://www.zhaiduo.com“; //IE8用reload无效
}else{
document.location.reload(); //FF2用href无效
}

集成phpBB3论坛

phpBB3从功能和界面上都是很不错的免费论坛程序。要把它和自己的系统结合起来其实也没有想象的那么复杂。这里有个简单的方案:
主要目标

  • 做到原有系统用户可以自动登录论坛
    如果用户已经登录原有系统,检查该用户是否在论坛有同名帐号,否则自动生成和用户同名的帐号,然后自动论坛。
  • 从论坛注册和登录都会自动到转到原有系统的注册和登录页面。
    屏蔽原论坛的注册登录功能,以及修改密码功能。
    修改时遇到如下错误:

    Strict Standards: Non-static method utf_normalizer::nfkc() should not be called statically
    还不清楚原因何在,临时解决办法:先屏蔽utf8_clean_string函数。修改如下:
    Edit: includes/auth.php
    885 function login($username, $password, $autologin = false, $viewonline = 1, $admin = 0, $noclean = 0)
    908 user_add($login[‘user_row’], (isset($login[‘cp_data’])) ? $login[‘cp_data’] : false);
    if($noclean == 1){
    $clean_name=$username;
    }else{
    $clean_name=utf8_clean_string($username);
    }
    $sql = ‘SELECT user_id, username, user_password, user_passchg, user_email, user_type
    FROM ‘ . USERS_TABLE . “
    WHERE username_clean = ‘“ . $db->sql_escape($clean_name) . “‘“;
    Edit: includes/auth/auth_db.php
    27 function login_db(&$username, &$password, $noclean=0)
    if($noclean == 1){
    $clean_name=$username;
    }else{
    $clean_name=utf8_clean_string($username);
    }

Cube使用ShadedMaterial材质的黑三角型问题


在PV3d里面立方体原型Cube中使用ShadedMaterial材质的时候,如果立方体所有面都使用同一shader,渲染结果的时候,每个面会出现单个黑色三角形的问题。

myShader = new PhongShader(light);
myShadedMaterial = new ShadedMaterial(myBitmapMaterial,myShader);
mlist = new MaterialsList();
mlist.addMaterial(myShadedMaterial, “all”);
根据nabble上的解释:解决办法只能给每个面指定单独的Shader。经测试问题解决。

另外,要解决两平面相对垂直时,视角中出现的三角形突起,如下图:

可以修改小平面useOwnContainer属性来解决。

plane.useOwnContainer=true;
但是发现如果有多个平行平面垂直于一平面的时候,useOwnContainer会导致平行平面之间视角失真的问题,看来还得找其他办法。如图,注意深蓝色平面。


正常情况


失真情况

更新:是Z-fighting的问题,用ViewportLayer和QuadrantRenderEngine来解决。具体如下

import org.papervision3d.render.QuadrantRenderEngine;
import org.papervision3d.view.layer.util.ViewportLayerSortMode;

viewport.containerSprite.sortMode = ViewportLayerSortMode.INDEX_SORT;
renderer = new QuadrantRenderEngine(QuadrantRenderEngine.ALL_FILTERS);

viewport.getChildLayer(target).layerIndex = 1;
viewport.getChildLayer(floor).layerIndex = -100;

Papervision3D的正反两面材质测试


要做到Papervision3D的Plane实现正反两面材质,现在主要有两个方法:
一是利用DisplayObject3D两个Plane放到一起,贴图做到一正一反就可以实现:[wave2.swf]

p = new Plane(bitmapMaterial,829, 389,10,10);
planeGroup.addChild(p);
p2 = new Plane(bitmapMaterial2,829, 389,10,10);
p2.rotationY = 180;
planeGroup.addChild(p2);
scene.addChild(planeGroup);
波动效果利用Plane的segments分段特性,控制每个geometry.vertices来实现。

二是利用Cube,把高度设为零,上下两面做贴图:[As3dModPerlin.swf]

var materialsList:MaterialsList = new MaterialsList() ;
materialsList.addMaterial(bitmapMaterial, “top” ) ;
materialsList.addMaterial(bitmapMaterial2, “bottom” ) ;
var cube:Cube = new Cube(materialsList, 829, 389 , 1,10,10,10 ) ;
planeGroup.addChild(cube) ;
scene.addChild(planeGroup);
波动效果采用everydayflashAS3Dmod库来实现。

URL Rewrite的VBscript解决办法

比如要实现这样的URL转向:

http://www.zhaiduo.com/page/3/
=>
http://zhaiduo.googlepages.com/search3.htm
如果服务器没有URLRewrite功能可用这个代码在Windows下生成目录和文件。然后用FTP上传即可。保存下面内容为:create.vbs
Option Explicit
Dim objFSO, objFolder, strDirectory, strDirectory2
strDirectory = “D:zhaiduo.compage”
Set objFSO = CreateObject(“Scripting.FileSystemObject”)

Dim I
For I = 1 To 55
strDirectory2=strDirectory & “” & I
Set objFolder = objFSO.CreateFolder(strDirectory2)
WScript.Echo “Just created “ & strDirectory2
CreateIndexFile strDirectory2, I
WScript.Echo “Just created “ & strDirectory2 & “index.php”
Next

WScript.Quit
‘end

Sub CreateIndexFile(Folder,I)
Dim TextStream
Set TextStream = objFSO.CreateTextFile(Folder & “index.php”)
TextStream.WriteLine(“”)
TextStream.Close
End Sub
双击运行即可。

用Google App测试更新twitter遇到的问题

本来打算用PHP写一个Twitter的更新程序。主要问题在于通过Basic Authentication来通过授权。最简单的办法就是用Curl。这里有个很好的CLASS可以借鉴,但是无奈服务器对curl的限制,只好放弃。最近接触Google App,用的是Python。于是打算用Python试试。

Python中关于Http的Basic Authentication的教程已经很详细,大概的方法包括使用urllib、urllib2和httplib。无奈这些方法在google_app下都出现这样的错误:

AttributeError: ‘module’ object has no attribute ‘error’
解决办法只有使用URL Fetch API,通过给header增加Authorization字段,达到通过Twitter API授权的问题。

代码如下:

base64string = base64.encodestring(‘%s:%s’ % (username, password))[:-1]
result = urlfetch.fetch(url=update_url,
payload=form_data,
method=urlfetch.POST,
headers={
‘Content-Type’: ‘application/x-www-form-urlencoded’,
‘Authorization’: ‘Basic ‘+ base64string
})

黑客的嵌入代码

一朋友的网站上所有文件都被黑客加上这样的代码:
HTML中嵌入的javascript内容:

if(typeof(yahoo_counter)!=typeof(1))
//伪装成yahoo counter?
eval(unescape(‘…(省略)’).replace(/||&|`|@|~|$|#|!/g,””));
//把要执行的脚本隐藏以来,通过replace替换冗长模糊字符和unescape解码还原。
var yahoo_counter=1;

PHP中嵌入的内容:

通过ob_start嵌入代码

解析出来的脚本内容:

目标地址形如http://78.110.175.21/cp/?n
不知他们这样做的目的是为何,可以获取什么样的信息。

$ whois 78.110.175.21
OrgName: RIPE Network Coordination Centre
OrgID: RIPE
Address: P.O. Box 10096
City: Amsterdam
StateProv:
PostalCode: 1001EB
Country: NL

$ whois 195.24.76.251
role: root eSolutions
address: 35, rue John F. Kennedy
address: L-7327 Steinsel
address: Luxembourg
phone: +352 20.500
fax-no: +352 20.500.500
e-mail: info@root.lu
remarks: +————————————+
remarks: | Operational Issues: noc@root.lu |
remarks: | Abuse and Spam: abuse@root.lu |
remarks: +————————————+

person: Andy BIERLAIR
address: root eSolutions
address: 35, rue John F. Kennedy
address: L-7327 Steinsel
phone: +352 20.500
fax-no: +352 20.500.500
nic-hdl: AB99-RIPE
mnt-by: ROOT-MNT

网站被墙在国外的Mysql数据库备份方案

不知道大家有没有这样的经历:刚买的国外虚拟主机,网站做好还没有来得及备份就被GFW”墙”了起来。但是没有备份数据的网站是很不稳妥的。辛苦做好的网站如何花最少的钱、或者不用装软件就可以轻松备份呢?

这里有一个有个办法,步骤如下:
1、找一个可以通过FTP访问被墙网站W的服务器A
2、在服务器A上编写PHP的FTP脚本B,任务是把Mysql备份脚本C上传到被墙网站W,
3、在服务器A上编写PHP的FTP脚本C,任务是执行Mysql备份脚本C

$backup=exec(“/usr/bin/mysqldump –opt –host=localhost –user=dbuser –password=dbpasswd dbname > backup.sql”);4、在服务器A上编写PHP的FTP脚本D,任务是把备份文件(backup.sql)下载到服务器A。

当然这些都可以全部用PHP来实现。简单运行脚本就可以轻松完成备份操作。

两个FLash问题

1. Flash CS3里面无法向FLex一样调用文件的问题
下面这种方式在CS3里面无效,

[Embed(source=”zhaiduo.jpg”)] private var zhaiduo:Class;
我们可以把文件导入库library, 通过linkage ID调用。如:linkage ID为”Zhaiduo”。
var zd:Zhaiduo=new Zhaiduo(100,100);
var myBitmap:Bitmap = new Bitmap(zd);
2. NetStream无法播放非本地FLV视频文件的问题
NetStream只允许本地bitmapData.draw。所以只有声音看不见影像。例子可以看里
Nabble上有这样一段解释:
The only way around this is to deliver your video via a custom
configured flashCom server. (Open source solutions include red5 and
haXeVideo). These flashCom servers have to send a flag with the
NetStream that allows bitmapData.draw for your domain. Regardless,
you aren’t going to get this from a remote server.

今天发现博客打不开

晚上发现博客无法访问,但是其它blogspot网站没问题。也许被墙在国外了,可以通过这里Google Translate访问

为什么不买国内虚拟主机?因为国内虚拟空间费用又贵,功能又差,文字还受限制。我的博客一没政治话题,二没颜色,干嘛要受这种限制。

也许有一天我完全无法访问这个博客,那我也不会再写下去。

为什么不买国外虚拟主机?2008年12月以前看过我的博客的人也许知道,我的博客曾经用过国外空间,但是因为疏忽,整个博客完全丢失。有阴影,暂时没打算花银子买。

关于中文分词和Mysql的中文全文搜索

最近对Mysql的中文全文搜索做了一下了解,熟悉Mysql的都知道Match Againt进行全文(FullText)搜索的巨大优势,但是Mysql对中文这些多字节字符的支持还远远不够。也就是说现在MYsql还不支持中文的全文搜索,中文全文搜索的主要问题在于如何把中文进行快速有效的拆分,所以需要我们自己开发一些辅助工具,才能帮助我们用中文享受全文搜索的福利。

目前国内主要搜索引擎,专业从事中文分词的公司都有自己的中文分词技术,但是不为大众所接触。个人对中文分词有见地和成果的,目前只发现这些:

1、hightmanFTPHP全文检索应用解决方案
2、张宴(Zhang Yan)的MySQL中文全文索引插件mysqlcft

其它分词的解决思想主要是把中文转换成MYsql可以接受的英文字母形式。如把中文用base64转码或unicode的形式保存。

不知谁还知道其它一些分词技术,予以分享。真希望国内多一点关注中文分词的技术和个人,一起推动中文全文搜索时代的真正到来。

推荐给没有结婚的人的娱乐节目:《我们结婚了》


我们结婚了》是韩国MBC电视台推出的明星假扮新婚夫妇的“新婚秀”节目。从没有结过婚的,甚至相互不太了解的一对男女,到“假扮”成新婚夫妇,最后甚至有几对假戏真做,终成眷属。这些里面的点点滴滴虽然娱乐成分居多,但是也可以帮助我们预习一下,在将来的婚姻生活如何和自己的爱人相处,如何处理一些常见的问题和矛盾。:)

节目里面Alex和申爱是大多数人比较羡慕的完美组合,我却比较欣赏蚂蚁夫妇,以及Andy与Solbi那一对。虽然时有争吵,但是他她们用自己的智慧和风度,总是能化解问题,使双方的感情更加深入。确实学到很多东西。^-^

目睹安乐死


今天看了英国媒体报道一位59岁病重退休教授选择用安乐死来结束自己生命的视频。以前从报上读这类新闻,没有太深的感触,觉得这种事情离我们很远。但是今天,就在眼前。明显感觉不同。人这一辈子,除了病痛的折磨和死亡的威胁,可以让人难受的还有丢不下的亲情和依念。看着夫妻两冷静的亲吻互相告别的时候,似乎我的心情比他们更加难受。

Windows下还原Plesk系统备份文件

Plesk是国外虚拟主机最常见的几种虚拟主机控制台(Hosting Control Panel)之一,前面提到我的博客丢失前曾经在9月份有这中备份,但是由于备份文件下载下来没有后缀名,不知道如何解压。今天终于解决问题。根据Plesk官方论坛的解释,我是这样做的(文件名为zhaiduo.com_2008.09.18_10.56):

1、首先将zhaiduo.com_2008.09.18_10.56改名为zhaiduo.com_2008.09.18_10.56.zip。用Rar解压后发现,61M的文件变成了124M的zhaiduo.com_2008.09.18_10.56。

2、将文件zhaiduo.com_2008.09.18_10.56改名为zhaiduo,打开Windows自带的Outlook Express,然后直接将zhaiduo用鼠标拖拽到Outlook的收件箱,如果文件导入成功(可以多试几次),

会弹出下面的对话框(这封邮件进行解码时出错,邮件标头中含有无效数据),不用理会按确定。你会发现收件箱里多了一封新邮件。

3.新邮件里面可以看见附件的标志,点击就出现了所有附件的下拉菜单。

直接全部保存就可以了。

4.最后,附件里面可以看到类似zhaiduo.com.httpdocs的文件,不用惊慌,

把这些文件名加一个.tar的后缀,用RAR解压,所有文件就都看见了。^_^

二个Mysql错误

第一个错误:

Database Error!
You have an error in your SQL syntax near ‘; ‘ at line 1,
MySQL server version: 3.23.58 | PHP version: 4.3.2
原因:SQL语句最后”;”分号后面多了一个空格:
where id=’$id’; “;
第二个错误:
Error msg: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at ‘reading initial communication packet’, system error: 104
Mysql Errors:
Lost connection to MySQL server at ‘reading initial communication packet’, system error: 104
系统自动恢复,原因不明。

博客重生

经历了11月底博客丢失的不幸灾难,窄多之Blog开始继续它的旅程。这次窄多之Blog选择了Google blogger的免费博客服务。丢失的所有文件,将陆续找回中。

找回丢失博客的主要问题:
1、如何恢复旧的备份文件?
由于以前hosting使用的是Plesk Control Panel,它的备份文件无法用普通解压软件解压。
2、丢失的图片如何找回?
3、以前博客上自制的php脚本在blogger无法运行,是否需要再买空间?
4、如果blogspot再次被“墙”,博客无法访问,有什么对策?

经验总结:
1、应该有完善的博客备份恢复机制。保持博客的最新备份。
2、充分利用RSS Reader等其他渠道共享备份,尽量让搜索引擎cache你的所有博客页面。
3、图片等多媒体文件最好存放在flickr, picasa等专业图片存储共享网站,而且是免费的。
4、注意博客空间的使用期限,多留意空间提供商的消息和通知。

通过Google Cache找回的2008年12月以前旧文章列表(2006-8 to 2008-11):
关于窄多 我好旅行 Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 Page 9 Page 10 Page 11 Page 12 Page 13 Page 14 Page 15 Page 16 Page 17 Page 18 Page 19 Page 20 Page 21 Page 22 Page 23 Page 24 Page 25 Page 26 Page 27 Page 28 Page 29 Page 30 Page 31 Page 32 Page 33 Page 34 Page 35 Page 36 Page 37 Page 38 Page 39 Page 40 Page 41 Page 42 Page 43 Page 44 Page 45 Page 46 Page 47 Page 48 Page 49 Page 50 Page 51 Page 52 Page 53 Page 54 Page 55

Tag列表
人生 财富 example English Hack 英语练习 算法 推荐 CAPTCHAS 郁闷 专利 读图时代 GIF89a LZW 服务器 刀片式 比较 open-source 三维 手机 3D 上网 设计 layout 链接 转让 cpanel html Mysql 便宜 酒店订房 SNS 奖励 MyBlogLog CHARACTER SET WP升级 COLLATION sql server 测试 省钱 make error short tags unexpected $end undefined reference xhtml编辑器 可视化 浏览器 Apache SEO 图像技术 adsense Javascript 鄙视 Wordpress 抱怨 Yahoo PHP5 AS3 教程 出错

Google的免费午餐-Google Pack(软件精选)

美国次贷危机引起的全球经济危机到互联网的萎靡不振,Google Pack(软件精选)在 世道低迷的情况下,仍然继续大派免费午餐。Google Pack除了继续免费打包下载自己的软件以外,也不断加入新的其它免费软件,以飨“谷米”。例如:免费的翻译软件:谷歌金山词霸合作版;免费的杀毒软件: 瑞星杀毒软件;反间谍软件:Spyware Doctor™入门版。

对于物价高涨的今天,柴米油盐都要精打细算,有免费的正版软件,为啥不试一下了^_^

自己动手装壁柜

这两天,打算把厨房的杂物整理一下,估量着厨房还有空间装厨柜,所以去宜家买了2个壁柜,准备自己大干一场~
需要准备的东西包括:
博世冲击钻一套(包括钻头、铁钳、卷尺、铅笔、榔头、螺丝、膨胀螺栓、剪刀等等),还有买来的壁柜。

东西准备好就可以开工了:
1、首先开始组装壁柜,根据组装说明书,用螺丝固定柜子的四面,注意每一面的正反,和螺丝与孔的对应关系。需要考虑的是,什么东西可以先固定组装好,什么东西留着柜子上墙再做。
2、用卷尺测量壁柜长宽厚度,确定壁柜挂孔的位置,做好标记。
3、接着开始钻孔。由于厨房的墙面是瓷砖,所以选择瓷砖钻头,钻头长度应该长于膨胀螺栓。因为所钻孔深需要稍大于膨胀螺栓。钻好后用榔头将膨胀螺栓轻敲进去,将组装好的柜子固定在墙上,通过壁柜挂孔拧上螺丝。
4、组装橱柜的玻璃门。
通过3天的艰苦奋战,洁白坚固的壁柜终于出现在自己眼前,很有满足感^_^同时也节省64块的上门安装费用。我喜欢DIY~!
另外,电钻的重要性不可替代,它让钻孔和拧紧螺丝都变得格外轻松~感觉自己越来越像装修师傅了。嘿嘿~