超级搞笑得土拨鼠视频,比倒霉熊还有趣,哈哈~!
我看”YouTube成功的秘诀”
今天看了王建硕写的YouTube成功的秘诀,我也想从技术的角度说说我的看法:
个人感受Youtube的成功关键在于对FLV这项新技术的应用,FLV是一款比传统视频文件(如AVI)更加小巧快速的视频播放格式,当初 Macromedia推出FLV这个格式的时候,很多Flasher也在跃跃欲试,YouTube对FLV技术的成功应用和推广,决定了它最后的成功。有 趣的是Macromedia眼睁睁的看着自己的蛋被别人孵出个金凤凰,是不是印证了一项新技术的发明者往往不是最成功的那个。^_^
IE下Javascript错误:Unterminated string constant
最近总是出现很多灵异事件,快被逼疯了。一段很简单的Javascript代码
href=”javascript:void(0);” onclick=”window.open(’http://stumbleupon.com/newurl.php?url=’+document.location.href+’&
title=’+escape(document.title));”
在IE下提示出错:Unterminated string constant
Firfox下没问题,查看IE下源文件,复制出来看,很简单,也应该不会有问题啊。有一个细节很搞笑,document.location.href+’&在源文件里看后面是有换行的,可复制出来却没有。问题的根源也当然就是这个换行符罗~!
科幻:Google模式终将取代国家机器
在Google十周年之际,我们可以看到,Google已经不仅仅是一个互联网公司,它带给我们更是一种精神和模式,它对所有人开放,共享一切给每 一个人,反过来每个人都很自愿的贡献自己的力量,共同创建一个崭新的未来。公平、自由、开放、合作已经成为Google吸引大家加入的源头,Google 已经成为一个标志,表现了人们对未来的一种渴望和追求。
由此可见,我相信终有一天,Google的模式不只限于互联网,它将取代国家机器,成为指引人类前进,规范人类社会发展的新势力。
有一天,地球上将不再有国家存在,只有一个”Google”精神规范和指引人类共同创建美好的未来!
session_start(): Cannot send session cache limiter
PHP生成XML文件,莫名其妙的生成如下的错误:
session_start(): Cannot send session cache limiter - headers already sent
检查了一下代码,确认
header(’Content-type: text/xml’);
前面确实没有echo任何东西。
session_start()也看不出什么问题。只是提示出错的位置位于这个PHP文件的第一个字符,
(output started at xml.php:1)
试着重新将全部php代码复制到一个新文件,保存。问题解决。
网页变空白,刷新后又正常的问题
最近我的WP博客打开很奇怪,第一次访问页面是空白的,刷新后又恢复正常显示。通过对http header的分析,可以看到如下区别:
网页刷新后又正常显示的http header回应:
HTTP/1.x 200 OK
…
Server: Apache/2.2.3 (Red Hat)
X-Powered-By: PHP/5.1.6
Connection: close
网页变空白的http header回应:
HTTP/1.x 200 OK
…
Server: Apache/2.2.3 (Red Hat)
X-Powered-By: PHP/5.1.6
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
X-Pingback: http://www.zhaiduo.com/xmlrpc.php
Content-Length: 0
Connection: close
目前还不清楚是什么原因,HTML网页就没这个问题,难道是WP的bug?升级试试。
update:貌似问题解决^_^
as3 FileReference.upload cookie bug in firefox
I use PHP to detect [as3] FileReference.upload by cookie in Firefox2, there are all cookies missing except $_COOKIE[‘PHPSESSIONID’]. But it works in IE8 beta.
References:
1. under Firefox, FileReference loose cookies during upload
2. Firefox, Flex URLRequest, and Sessions Issue
LHC:大型强子碰撞实验
最近全球目光纷纷投向人类有史以来所做的最大一次实验:大型强子碰撞实验(Large Hadron Collider),这项由欧洲原子能研究机构(CERN)负责的历史性的实验,将使人类的知识领域迈上一个新的纪元,我很高兴能见证这个时刻!由于这项碰撞试验的结果数据量特别巨大,相当于一年全世界出版书籍的1000倍,需要动用全球八万多台电脑的配合分析,我们将在2010年以前得到最终的实验结果,而最快的前期数据发现结果将在今年年底公布。真是令人期待~!期待物质的尽头到底是什么?^_^
AS3中利用EventDispatcher定义自己的事件驱动类
flash.events.EventDispatcher已经给我们很好例子如果定义自己的事件驱动,那么我们在什么时候可以用得上呢?这里有一个例子:当我们装载XML的时候,XmlLoaded函数响应Event.COMPLETE事件,
obj.addEventListener(Event.COMPLETE, XmlLoaded);
但这还不够,仅仅是表明XML装载完成,如果要通知其他实例,我们还需要设定一个自定义的事件响应。
我以前的做法是:
设置一个变量isLoad来探测XML装载完成,如果isLoad为true,函数GetXml()返回XML字符串内容
var test:LoadXml=new LoadXml(me,”zhaiduo.xml”);
test.obj.addEventListener(Event.COMPLETE, XmlLoaded2);
function XmlLoaded2(event:Event):void{
trace(test.GetXml());
}
现在可以改为:
先自定义FinishLoadingEvent类,然后在XmlLoaded函数中提交新的FinishLoadingEvent事件,
dispatchEvent(new FinishLoadingEvent(FinishLoadingEvent.FINISH_EVENT, myXML.toXMLString()));
这样,XML装载完后,我们会得到自定义的事件,加上对这个事件的侦测,我们就可以轻易让其他实例获得XML字符串。
test.addEventListener(FinishLoadingEvent.FINISH_EVENT, XmlLoaded3);
function XmlLoaded3(event:FinishLoadingEvent):void{
trace(event.source);
}
mod_rewrite限制图片不良引用
昨天一网站流量突然多了5G,很明显是不良网站在盗链图片。由于服务器是apache2.0,支持mod_rewrite模块,所以用它来阻止不良引用。在图片目录下添加.htaccess文件,输入如下内容:
RewriteEngine On
#条件:访问来源不是yoursite.com
RewriteCond %{HTTP_REFERER} !^http://(www.)?yoursite.com/ [NC]#条件:访问来源不为空
RewriteCond %{HTTP_REFERER} !^$#规则:图片后缀为jpg或png的禁止访问
#RewriteRule .(jpe?g|png)$ - [F]
#规则:图片后缀为jpg或png的跳转到图片/images/no_hotlink.gif
RewriteRule .(jpe?g|png)$ /images/no_hotlink.gif [R,L]
有航班去马尔代夫的航空公司
从国内去马尔代夫的机票倒是好订,如果想从国外飞到马尔代夫呢?这里有一些航空公司的网址,可以方便我们订票。
到达马尔代夫[ 马累国际机场 (MLE)]的**航空公司**
更多航班可以看这里(PDF格式)
从马累回国:
SQ:马累 (MLE) -〉新加坡 (SIN) -〉广州 (CAN)
EK:马累 (MLE) -〉迪拜国际机场 (DXB) -〉广州 (CAN)
UL:马累 (MLE) -〉科伦坡 (CMB) -〉北京 (PEK)
深发信用卡没信用!
我有2张深圳发展银行的信用卡,由于还有其他的卡,决定销掉一张卡。电话登记后,一女客服客客气气的建议我保留卡,并承诺帮我加积分,免年费。我信以为真,于是决定保留。可是昨天我还是收到了深发的年费通知,一张50.1元,一张40元,我这才恍然大悟,女客服的温柔嘴脸原来还是有目的的,就是推迟到我缴年费的时候。中午赶紧去还了这笔“恶帐”,电话登记销掉所有深发的卡,让它们见鬼去吧!
感想只有一个:信用卡不用太多,找个服务好,真正有“信用”的就行了~
千万记住:发信用卡的不一定有信用,没信用的也可以发信用卡!
Stage和null object的关系
最近接触flash CS3比较多,但是由于基础不好,常常被一些简单的问题搞得晕头转向。虽然从flash8和MX2004一直都有接触,但是CS3的不同到这两天才开始有所领悟。以前习惯直接在actions frame里面coding,这给之后直接用as3来coding带来了很多不习惯。
AS3里代码和源文件的分离,一段很简单的代码
package com.zhaiduo{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;public class Example extends Sprite {
public function Example() { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; }
}
}
就会出现如下错误:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at com.zhaiduo::Example$iinit()
at learn_fla::MainTimeline/learn_fla::frame1()
后来发现这和Stage有着密切关系,新建的fla文件如果直接在actions frame里面coding,stage是[object Stage]。但是我们写在as文件里面,如果不和一个实例linkage,stage就是null。所以会出现上面的错误。
Chrome - 来自Google的浏览器
Chrome是Google新推出的一款测试版浏览器,赶紧下载下来尝尝鲜,感觉有如下优点和不足:
优点:
- 运行速度快于IE8测试版,和Firefox2差不多
- 普通网页内存占用较小
- 界面简洁,实用,给访问浏览网页带来更大空间
- 匿名模式(incognito)访问网页,可以有效选择是否让浏览器记录个人的隐私资料。
- 充分结合其它浏览器的优势:如Opera的缩略图功能,各大浏览器实用的Tab功能
- 优化过的网页开发调试辅助工具:如源文件查看,javascript debug,console和task manager
在支持多语言,国际化。从浏览器的http访问头看:agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13chrome应该是跨系统,跨平台的。
不足:插件功能欠缺:看看firefox在中数不清的插件,就会知道差距。
- 缺乏更加专业的针对网页开发人员的功能,如firefox的鼠标选取察看部分网页源代码,
- 访问长页面或者是多图片的页面的时候,CPU占用较高,造成Chrome僵死
通过Google查询网络用户地理位置
Google的Ajax API运用中有一个google.loader.ClientLocation对象,可以方便我们实时高速地查询网络用户的真实地理位置,这给不方便使用数据库的站长带来了极大的方便,同时减少了网站负担,也省去了自己不断更新IP地理位置数据库的麻烦。
ClientLocation对象返回属性包括
ClientLocation.latitude
ClientLocation.longitude
ClientLocation.address.city
ClientLocation.address.country
ClientLocation.address.country_code
ClientLocation.address.region
测试结果如下: (查看例子)
纬度:23.117
经度:113.25
城市:Guangzhou
国家:China
国家代码:CN
地区:Guangdong
体检结果给自己的健康敲响警钟!
周末去体检中心花390元做了一个全身标准体检,今天终于拿到结果。这是给自己健康的警钟!一定要加强运动了!
体检结果
1:体重超重,脂肪过多。要预防肥胖症、心血管病发生。
2:慢性咽炎,慢性鼻炎。建议要多喝水,避免刺激,改善工作环境,保持呼吸畅通。
3:轻度脂肪肝
4:胆固醇偏高。
5:低密度脂蛋白偏高。(这项是指血浓度太浓,容易引起动脉血管堵塞和硬化,建议是去做动脉硬化检查)
6:乙肝两对半全阴。表示你没有乙肝病菌,但没有抗体,要去防疫站注射”0-1-6”乙肝疫苗。
健康建议
1、脂肪肝是由于体内过多的脂肪沉积在肝脏所致,常于代谢障碍性疾病,如糖尿病、高血脂、肥胖等。脂肪肝不一定影响肝功能,轻者无症状,脂肪肝具有可逆性,大多数经采取低脂饮食,适度运动和限制饮酒而减轻。
2、多食含甲硫氨基酸丰富的食物,如小mai、芝麻、油菜、菜花、菠菜、甜菜头、干贝、淡菜等,可促进体内磷脂合成,协助肝细胞内脂肪的转变。
3、忌用动物油,不吃动物内脏、鸡皮、肥肉及鱼子、蟹黄等。忌辛辣和刺激性食物,如洋葱、蒜、姜、辣椒、胡椒、咖喱和酒类等,并定期做B超,必要时可到消化内科诊治。
Objects on PHP5, Javascript and AS3
PHP5, Javascript and AS3都有面向对象(Object)一说,但它们之间也有着不小的差异。作为我比较喜欢的3种编程语言,我很想把它们放在一起,做一个横向的粗浅的比较。
AS3 (Action Script 3.0)
在AS3里每个对象都是类,这个类可以被看作是对象的模板或蓝图。类似于Java,融合了多种语言的特点。不支持嵌套类和私类。感觉太靠近Java,太过严谨的语法让制作Flash的时候失去了一些乐趣,多了一些沉闷。毕竟FLASH不只是AS。
最简单的AS3 Class例子
package mypackage
{
public class MyClass
{
public var textVariable:String = “some default value”;
public var numericVariable:Number = 17;
public var dateVariable:Date;
public function myMethod(param1:String, param2:Number):void
{
// do something with parameters
}
public function MyClass() // constructor
{
textVariable = “Hello there!”;
dateVariable = new Date(2001, 5, 11);
}
}class MySubClass extends MyClass
{
private var numericVariable2:Number = 1;
override public function myMethod(param1:String, param2:Number):Number
{
// do something with parameters
}
}}
Javascript
Javascript是一种基于原型(prototype)的语言,就像一个具有初始值得模板,任何对象都可以作为另一个对象的原型。灵活度较高,比较随意。目前最满意的就是它了。这里有一个我写的浮动层的例子,很喜欢这种编程方式:)。
Object.prototype.inObj = 1;
function A()
{
this.inA = 2;
}
A.prototype.inAProto = 3;
B.prototype = new A; // Hook up A into B’s prototype chain
B.prototype.constructor = B;
function B()
{
this.inB = 4;
}
B.prototype.inBProto = 5;
x = new B;
document.write(x.inObj + ‘, ‘ + x.inA + ‘, ‘ + x.inAProto + ‘, ‘ + x.inB + ‘, ‘ + x.inBProto);
source
PHP5
PHP5借鉴了Java2的对象模型,类型指示弱于AS3。PHP5向OOP靠近是应该的,也是必然的。
class SimpleClass
{
public $var = ‘a default value’;
public $public = ‘Public’;
protected $protected = ‘Protected’;
private $private = ‘Private’;public function displayVar() {
echo $this->var;
}function __construct() {
print “In constructorn”;
$this->name = “MyDestructableClass”;
}function __destruct() {
print “Destroying “ . $this->name . “n”;
}
}
$instance = new SimpleClass();
$assigned = $instance;
$reference =& $instance;
$instance->var = ‘$assigned will have this value’;
$instance = null; // $instance and $reference become null
OTOY开发出服务器端的3D实时渲染技术
OTOY是一家开发3D实时渲染技术的公司,这种可以通过浏览器浏览的新技术着实让人吃惊:)。全部三维渲染的部分将由服务器来完成,客户端只需要通过浏览器,无需任何插件就可以轻松的享受电影院级别的虚拟三维效果。喜欢游戏的朋友也不再需要Xbox和PS这些专门的游戏机,通过浏览器或连接互联网就可以。:)另外一方面OTOY的图像技术可以轻易的和Ajax、Flash、Java以及ActiveX结合,甚至带动手机上的三维软件开发。
下面是他们做的基于电影《变形金刚》的三维实时动画测试。酷呆了!
Yahoo抢钱来了!!
越来越鄙视Yahoo!域名年费从9.95美元涨到今年五月份的 $12.95,现在又狂涨到34.95美元,真是facebook(非死不可)!WTF!!!
Important note: Beginning on July 1, 2008, Yahoo!’s annual domain renewal price increases to $34.95 per year.
GoDaddy.com趁机大量吸收yahoo域名的transfers,收取.com/.net/.org域名6.99美元的转移费,并作了域名续费保证,由此看来Goddady比Yahoo有良心多了,我的博客也是yahoo注册的,看来还是早点搬走好,yahoo让人失望,漫天要价,和强盗无异,严重鄙视!
PHP5: Non-static method should not be called statically
今天发现PHP5调用静态方法的时候出现如下的错误:
Error message: Non-static method My_Class::mystatic() should not be called statically
根据网上搜索的结果:
These messages are generated in compile time, all the functions are
executed AFTER that, so error_reporting(0); does not have any effect and
this is expected behaviour. - 来源
这个错误只是一个E_STRICT错误(Runtime Notice),不会影响其后的程序执行。解决办法可以隐藏E_STRICT的报告。
另外:关于File_PDF找不到File/PDF/fonts/courierb.php的问题。
File_PDF最新源文件里面也没有这个courierb.php文件,先暂时复制courier.php为courierb.php。
手机上网的最佳选择-Opera Mini
这是我第一次用手机(长途客车上)写博客,感谢Opera Mini让我真正体会到用手机(Nokia N72)上网和用电脑没有区别.用手机上网我也有三四年的时间,其间也用过几种浏览器,可是效果一直不太满意!只能简单的发送和浏览文字和图像.Mini则完全不同,和我在电脑上用FireFox没什么区别!更有意思的是在手机上浏览时的缩放功能,动感而有效率!现在不用手提电脑我也可以方便在网上浏览和写博客,真是太让我兴奋!仿佛发现了新大陆!等待我去开拓和探索!Mini!你是最棒的!耶!~
超炫的flash 3D引擎:Alternativa3D
这是一个由Alternativa3D发布的flash 3D引擎的DEMO展示: 不得不惊叹FLASH三维引擎的进步神速,里面的环境几乎和游戏无异,缩小窗口后效果更好。感觉三维模拟的技术已经逐渐成熟,互联网即将迎来三维时代!同时也期待用浏览器玩CS的日子。:)
在中国银行托收支票居然要户口薄
今天在中国银行要求托收一张支票,本以为有身份证就可以了,谁知他们却说由于没有任何证明,证明支票上的地址是发给我本人的(支票上是我的名字拼音),所以不能给我托收。
最可笑的是号称可以代表我身份的身份证居然形同废纸,磨尽嘴皮,中国银行还是要求我至少要提供居民户口薄,可是远在他乡的我一时半会儿,去哪里弄那个该死的居民户口薄哦。
作为一名中华人民共和国的公民,可能最郁闷的就是这个时候了。别人邮递给我支票,既然我可以收到,又有身份证做证明,干嘛还要那该死的居民户口薄!?
session_start(): Failed to initialize storage module
很多空间经常出现session_start的初始化错误,出错信息:
Fatal error: session_start(): Failed to initialize storage module: user (path: /tmp) in /home/*.php on line 1
从错误看来是系统临时目录/tmp无法保存session文件的问题,
原则上我们可以直接修改php.ini中的session.save_handler值从’user’到’files’。但是在虚拟空间里通常都没有修改权限。这是我的解决办法:
if(!is_dir(‘./tmp/‘))mkdir (‘./tmp/‘, 0700);
session_save_path(‘./tmp/‘);
session_start();
直接在session_start前面增加上面的内容。
由facebook走向开源想到的
facebook发言人证实facebook已经开始名为fbOpen的开源(open-source)计划,决定向广大开发人员开放基于PHP的facebook框架平台。他们希望透过开源可以帮助开发人员更好的理解facebook的运作和更轻松地创建应用程序。
作为从事PHP开发的我来说,从Zend Framework到facebook开源,php的主流开发已经进入基于各种成熟框架的二次开发阶段。对未来想从事PHP开发的朋友应该需要了解主要框架和OOP,以及MVC。PHP已经越来越成熟,不知道各位从事PHP开发的同仁们,对PHP开发网站的心态是否也越来越成熟?对于自己是否愿意用开源框架开发网站,我的看法是看自己的定位,对于喜欢在大公司,团队合作的,开源框架绝对是最佳选择。不喜欢用别人造好的轮子,那也可以自己造,不过开源的框架也是很值得参考的。
Windows 7的新界面
微软开发的Windows操作系统虽然有很多不尽人意的地方,但是它的设计理念一直是我很欣赏和喜欢的。随着Windows 7新界面截图的释出,我们可以领略到微软在新操作系统方面对人机界面的看法和前瞻。它不仅带领着人机界面设计的潮流,而且也深深影响着对互联网对网站设计新的要求和开发趋势。
图片来源:Windows 7 screen grabs look better than they sound
根据微软的Windows开发人员透露,Windows 7将于2010年1月份发布,基于Windows Server 2008 的开发内核(Vista也是这个)。包括32位和64位操作系统。
给Google Translate的一点建议
Google Translate一直是我喜欢用的翻译工具。当然大部分是从英文翻译成中文简体,可是每次打开页面都得不厌其烦的选择转换语言的种类,难道就不能记住用户常用的一些选项么?虽然这是一个很小的问题,但是会给我们带来更大方便,这个工具也会吸引更多人用,对吧。:-)
一些小问题的解决办法
返回缓存的前页:
header(‘Cache-control: private, must-revalidate’);
页面中CSS自动限制图片显示大小
max-width:500px;
width: expression(this.width > 500 ? 500: true);
返回整页源代码
document.body.parentNode.innerHTML
cpanel问题:cpanel Invalid License File
root@host [~]# /usr/local/cpanel/cpkeyclt
Updating Internal cPanel Information…..Done
mysql导入.gz格式备份文件
gunzip db.sql.gz
mysql -u root -p database_db < db.sql
IE javascript错误 - ‘not implemented’
IE中进行window.onload调用,出现not implemented的错误:
window.onload=yourfunc(‘yourarg’);
解决办法:
var OnLoad = “yourfunc(‘yourarg’)”;
window.onload = function() {eval(OnLoad);};
Yahoo! Domains涨价!
人民币升值,国际域名也开始涨价。这是来自Yahoo! Domains的通知:
Important note: Beginning on March 11, 2008, Yahoo!’s annual domain renewal price increases from $9.95 to $12.95 per year.
按8的汇率:$9.95 x 8 = 79.6 RMB
按现在7的汇率:$12.95 x 7 = 90.65 RMB
涨价10块人民币左右。真是人为刀俎,我为鱼肉!
setInterval的问题
setInterval作为定时触发某一个函数是很有用的工具,可是当我们要调用的函数带有变量的时候,常常出现如下的错误:
Error: parentnode.removechild is not a function
Error: useless setInterval call (missing quotes around argument?)
根据这里的解释,问题出在setInterval里用引号处理变量名的时候,例如:
codeSnippet = “clockUpdate(“ + fieldId + “)”;
fieldId会被当作是一个字符串变量被函数clockUpdate引用,如果fieldId不是字符串,而是对象,照样会被解析成字符串变量。所以在这里有一个技巧,帮助我们引用非字符串变量:
codeSnippet = “clockUpdate(“”+fieldId+””);”;
虽然mozilla定义的setInterval语法可以帮助我们轻松调用参数:
intervalID = window.setInterval(func, delay[, param1, param2, …]);
但是这个方法用IE7不管用,它会提示未定义参数的错误。
结合上面提到的,我想setInterval最好还是调用用字符串变量作为参数的函数。