Submitted by gouki on 2012, February 17, 6:10 PM
看到一段歇斯底里的话:
在该死的程序员生涯中应当遵循的守则:
- 保持该死的主线干净!
- 在该死的独立分支上进行该死的新功能的开发!
- 一旦你公布了代码,并且某些人使用了它,那就 TMD 不要修改 API!
- 如果想要或者必须修改 API,修改 TMD 主版本号 并且 在独立于原代码库的新的代码库上进行该死的开发!
- 如果有必要,非常有必要使用某些特别的标签,做分支或提交作为依赖,你得 TMD 用自己 fork 出来的代码库进行 TMD 所需要的提交!
- 哦,还有保持简单,狗娘养的!
好吧。我看了很恐怖。
当然,顺便说一下taoAPI的SDK,里面有一段居然是:
PHP代码
- public function execute($request, $session = null)
- {
- if($this->checkRequest) {
- try {
- $request->check();
- } catch (Exception $e) {
- $result->code = $e->getCode();
- $result->msg = $e->getMessage();
- return $result;
- }
- }
- }
哥,你能不能先定义一下$result = new StdClass;
搞得我IDE里全是血红一片。。。
PHP | 评论:0
| 阅读:12689
Submitted by gouki on 2012, February 17, 4:12 PM
好不容易理个头吧。人说,正月里不能理发,是因为正月里理发会死舅舅。于是乎我google了一下。
两种解释,不知道孰对孰错:
1.正月里剃头---"思旧"
2.正月里剃头---"思舅"
第一种解释
旧时民俗禁忌甚多,“正月里不许剃头”即为一例。夏历第一个月里,任凭男孩毛发疯长,却丝毫不能侵犯,否则对舅舅不利。“正月里剃头,死舅舅。”多吓人的一份责任,舅舅的安危全系于外甥的头顶之物。直至夏历二月初二,男孩才有了剃头的自由。
外甥的头发因何与舅舅的性命有了瓜葛?实在费思索。社会学家考证人类是从母权社会一步一个跟头斗才到父权社会的。在女人说了算的母系氏族社会,娘家人的重要代表——舅舅,自然不可小觑。
民国二十四年版的《掖县志》卷二《风俗》揭出了习俗的谜底:“闻诸乡老谈前清下剃发之诏于顺治四年正月实行,明朝体制一变,民间以剃发之故思及旧君,故曰‘思旧’。相沿既久,遂误作‘死舅’。”正月不剃头,原是“思旧”。正月为一年之始,有如一日之晨。正月一个月不剃头,以缅怀传统。乡老将“剃发令”的时间记错了,不是顺治四年正月,是顺治二年六月。那时候摄政王多尔衮就下令在北京的前门、地安门、东西四牌楼等主要的路口设立席棚,免费给来往的行人剃头。“剃发令”规定官军民一律剃发,迟疑者按逆贼论,斩!朝廷以死要挟汉人归依满人的发式,使汉人惊恐万状。但这惊恐瞬间化作满腔怒火,他们宁死也不剃发,甚至高呼:“宁为束发鬼,不作剃头人。”但是,脖子毕竟硬不过钢刀,汉人为了项上头颅被迫剃发。然而反抗并没有停止,正月不剃头即是一种反抗形式。1644年至1650年(顺治元年~七年)间,意大利人卫匡国写下《鞑靼战纪》,记录了中国南方军民为保卫头发而战的情况:士兵和老百姓都拿起了武器,为保卫他们的头发拼死斗争,比为皇帝和国家战斗得更英勇,不但把鞑靼人赶出了他们的城市,还把他们打到钱塘江,杀死了很多鞑靼人。实际上,如果他们追赶过去,也许会收复省城和其他城镇,但他们没有继续发展胜利,只满足于保住了自己的头发。为剃头不惜掉头,这是意大利人很难理解的。
汉族男儿自古就蓄发,“身体发肤,受之父母”,不敢损伤、妄动。剃头简直就是剔命。“去发”的髡刑不在五刑之内,但也是一种刑罚。三国曹操割发代首就是明证。此习自隋、唐以后已废止:未成丁的孩童,头发覆颈披肩;成年后,总发为髻。那时候,清朝为了统一全国的服饰,强迫汉人学满人的样子,剃头留辫子。满族人原是狩猎部族,为了实用方便,从额角两端引一直线,直线外的头发全部剃去,仅留颅顶发编成辫子。习俗有极强的传承性,也会因时因地而变。满族入主中原后,大量接纳汉族士大夫参加政权,内阁大学士、六部尚书等高官显位,都是满汉各半。在这“满与汉,共天下”的局面下,满汉民族矛盾逐渐减弱,日久天长,汉人也奉“满清”为正统了,剃发渐成习惯。这样,正月不剃头以“思旧”就失去了赖以存在的文化心理基础,由谐音讹传为“死舅”。为了反抗满族的统治,汉人就编造出正月剃头死舅的说法。正月一个月不剃头,意味着一年没有剃头,以此来缅怀祖宗,缅怀传统。而舅舅在中国人的传统中,是公正的象征,一般家庭分家都是由舅舅主持公道。
江苏淮阴等地民俗说这个传说始于秦始皇赢政,为避讳,民间就把每年的第一个月改称为正月,也形成了不“剃头”的习俗,否则就有血光之灾。而四川建始县人说,正月不剃头,否则叫“正无发(法)”。
居住在东北的满族人正月也不剃头,大都等二月二这天剃头,其名曰“剃龙头”。年年剃龙头,长大成人定会龙腾虎跃、金榜题名有出息,他们“妈妈例儿”(也写作“妈妈论儿”,即日常生活中的迷信禁忌和迷信言论)也认为“正月里剃头妨害舅舅”。可见这是人类古俗的孑遗,不过在民族矛盾加剧时却赋予了新的内容,以旧俗假托故国之思罢了。
第二种解释
“正月里剃头死舅舅的说法想必知道吧?”老板娘问。
在河北石家庄地区,正月不能理发的风俗影响很大,人们普遍是在腊月理一次发,然后等到二月二“龙抬头”才会再进理发店。我回答道:“一种迷信说法罢了。”
“可就是这种说法不仅影响了我们理发行业的经营,也给人们对美的追求添置了障碍”,老板娘接着说,“我做过一个调查,大部分年轻人并不在乎迷信说法,只是怕长辈指责不孝和大不敬罢了。”“你有什么好的办法吗?”我问。
“只要了解这说法的来龙去脉,一切都会迎刃而解”,老板娘接着说,“当初学徒时,就这个问题请教师傅,师傅讲了这样一个故事——相传很久以前,有一个贫穷的理发匠很爱自己的舅舅。然而到了正月,理发匠却为没有钱给舅舅买一件像样的礼品而发愁。串亲的日子到了,理发匠灵机一动,挑着剃头挑子来到舅舅家,精心为舅舅剃头刮脸。等到舅舅出现在酒席前时,亲朋们无不夸赞理发匠手艺高超,说舅舅看上去年轻精神了许多。舅舅很高兴,说这是送给他最好的过年礼物,还约定每年正月给他来理发,看看手艺是否有新的长进。多年后,舅舅去世了。每到正月,理发匠对着剃头挑子泪如雨下,他为不能再向舅舅尽孝而伤心……”
听到这儿,我突然明白了老板娘的意思:“你是说,故事原本讲的是正月剃头思舅舅。”
“没错”,老板娘说,“不知何时以讹传讹,‘思’变成了‘死’,一字之差,害苦了多少人呀!”
----------
事实上,从健康意义上来看,也有“生而勿杀”的说法。《黄帝内经》中的“四气调神大论”中的“春三月”中就有一段话说:“被发缓形,以使志生,生而勿杀,予而勿夺,赏而勿罚,此春气之应,养生之道也;逆之则伤肝,夏为实寒变,奉长者少。” 具体到理发上就是,春天的这三个月,应该让头发自由生长,而不该剪断;应该让头发松散地披在肩上,而不该扎得太紧。违反这个规则,就会伤到肺。但倘若整个春三月都不理发的话,人们实在受不了长发的困扰,于是就有聪明人开始只在正月里不理发……
既然正月里不理发,那就只好在春节前理一次发了。而从实践来看,乡亲们在春节前理一次发还是很有好处的。一来,在新年来临之际,给自己一个新的形象,很有纪念意义;二来呢,过节见的亲戚朋友多,把自己的头发好好折腾一下,也是对大众眼球负责的表现。哈哈!久而久之,成为习俗,实在是先人的一种聪明体现啊!
--------
真TMD纠结,这年头,连理个发都这么迷信,以后还能干嘛 。
所以,我不管三七二十一,还是理发了。。。
一下子帅了不少,年轻了不少。那是相当的靓仔了
Misc | 评论:0
| 阅读:12960
Submitted by gouki on 2012, February 16, 5:58 PM
备份一个JS,不是为了代码很优秀,而是。。。想直接用里面的事件,就当成参考了:
JavaScript代码
- var media_events=new Array();
-
- media_events["loadstart"]=0;
- media_events["progress"]=0;
- media_events["suspend"]=0;
- media_events["abort"]=0;
- media_events["error"]=0;
- media_events["emptied"]=0;
- media_events["stalled"]=0;
- media_events["loadedmetadata"]=0;
- media_events["loadeddata"]=0;
- media_events["canplay"]=0;
- media_events["canplaythrough"]=0;
- media_events["playing"]=0;
- media_events["waiting"]=0;
- media_events["seeking"]=0;
- media_events["seeked"]=0;
- media_events["ended"]=0;
- media_events["durationchange"]=0;
- media_events["timeupdate"]=0;
- media_events["play"]=0;
- media_events["pause"]=0;
- media_events["ratechange"]=0;
- media_events["volumechange"]=0;
- var media_controller_events=new Array();
-
- media_controller_events["emptied"]=0;
- media_controller_events["loadedmetadata"]=0;
- media_controller_events["loadeddata"]=0;
- media_controller_events["canplay"]=0;
- media_controller_events["canplaythrough"]=0;
- media_controller_events["playing"]=0;
- media_controller_events["ended"]=0;
- media_controller_events["waiting"]=0;
- media_controller_events["durationchange"]=0;
- media_controller_events["timeupdate"]=0;
- media_controller_events["play"]=0;
- media_controller_events["pause"]=0;
- media_controller_events["ratechange"]=0;
- media_controller_events["volumechange"]=0;
-
- var media_properties=[ "error","src","currentSrc","crossOrigin","networkState","preload","buffered","readyState","seeking","currentTime","initialTime","duration","startOffsetTime","paused","defaultPlaybackRate","playbackRate","played","seekable","ended","autoplay","loop","mediaGroup","controller","controls","volume","muted","defaultMuted","audioTracks","videoTracks","textTracks","width","height","videoWidth","videoHeight","poster" ];
- var media_properties_elts=null;
- var webm=null;
- function init(){
- document._video=document.getElementById("video");
- webm=document.getElementById("webm");
- init_events();
- init_properties();
- init_mediatypes();
-
- setInterval(update_properties,500);
- }
- document.addEventListener("DOMContentLoaded",init,false);
- function init_events(){
- for(key in media_events){
- document._video.addEventListener(key,capture,false);
- }
- var tbody=document.getElementById("events");
- var i=1;
- var tr=null;
- for(key in media_events){
- if(tr==null) tr=document.createElement("tr");
- var th=document.createElement("th");
- th.textContent=key;
- var td=document.createElement("td");
- td.setAttribute("id","e_"+key);
- td.innerHTML="0";
- td.className="false";
- tr.appendChild(th);
- tr.appendChild(td);
- if((i++%5)==0){
- tbody.appendChild(tr);
- tr=null;
- }
- }
- if(tr!=null) tbody.appendChild(tr);
- }
- function init_properties(){
- var tbody=document.getElementById("properties");
- var i=0;
- var tr=null;
- media_properties_elts=new Array(media_properties.length);
- do{
- if(tr==null) tr=document.createElement("tr");
- var th=document.createElement("th");
- th.textContent=media_properties[i];
- var td=document.createElement("td");
- td.setAttribute("id","p_"+media_properties[i]);
- var r=eval("document._video."+media_properties[i]);
- td.innerHTML=r;
- if(typeof(r)!="undefined"){
- td.className="true";
- }else{
- td.className="false";
- }
- tr.appendChild(th);
- tr.appendChild(td);
- media_properties_elts[i]=td;
- if((++i%3)==0){
- tbody.appendChild(tr);
- tr=null;
- }
- }while(i<media_properties.length);
- if(tr!=null) tbody.appendChild(tr);
- }
- function init_mediatypes(){
- var tbody=document.getElementById("m_video");
- var i=0;
- var tr=document.createElement("tr");
- var videoTypes=[ "video/ogg","video/mp4","video/webm" ];
- i=0;
- tr=document.createElement("tr");
- do{
- var td=document.createElement("th");
- td.innerHTML=videoTypes[i];
- tr.appendChild(td);
- }while(++i<videoTypes.length);
- tbody.appendChild(tr);
- i=0;
- tr=document.createElement("tr");
- if(!!document._video.canPlayType){
- do{
- var td=document.createElement("td");
- var support=document._video.canPlayType(videoTypes[i]);
- td.innerHTML='"'+support+'"';
- if(support==="maybe"){
- td.className="true";
- }else if(support===""){
- td.className="false";
- }
- tr.appendChild(td);
- }while(++i<videoTypes.length);
- tbody.appendChild(tr);
- }
- }
- function capture(event){
- media_events[event.type]=media_events[event.type]+1;
- for(key in media_events){
- var e=document.getElementById("e_"+key);
- if(e){
- e.innerHTML=media_events[key];
- if(media_events[key]>0) e.className="true";
- }
- }
- update_properties();
- }
- function update_properties(){
- var i=0;
- for(key in media_properties){
- var val=eval("document._video."+media_properties[key]);
-
-
-
-
-
- media_properties_elts[i++].innerHTML=val;
- }
- if(!!document._video.audioTracks){
- var td=document.getElementById("m_audiotracks");
- td.innerHTML=document._video.audioTracks.length;
- td.className="true";
- }
- if(!!document._video.videoTracks){
- var td=document.getElementById("m_videotracks");
- td.innerHTML=document._video.videoTracks.length;
- td.className="true";
- }
- if(!!document._video.textTracks){
- var td=document.getElementById("m_texttracks");
- td.innerHTML=document._video.textTracks.length;
- td.className="true";
- }
- }
- var videos=new Array();
- videos[0]=[
- "http://media.w3.org/2010/05/sintel/poster.png","http://media.w3.org/2010/05/sintel/trailer.mp4","http://media.w3.org/2010/05/sintel/trailer.ogv","http://media.w3.org/2010/05/sintel/trailer.webm"
- ];
- videos[1]=[
- "http://media.w3.org/2010/05/bunny/poster.png","http://media.w3.org/2010/05/bunny/trailer.mp4","http://media.w3.org/2010/05/bunny/trailer.ogv"
- ];
- videos[2]=[
- "http://media.w3.org/2010/05/bunny/poster.png","http://media.w3.org/2010/05/bunny/movie.mp4","http://media.w3.org/2010/05/bunny/movie.ogv"
- ];
- videos[3]=[
- "http://media.w3.org/2010/05/video/poster.png","http://media.w3.org/2010/05/video/movie_300.mp4","http://media.w3.org/2010/05/video/movie_300.ogv","http://media.w3.org/2010/05/video/movie_300.webm"
- ];
- function switchVideo(n){
- if(n>=videos.length) n=0;
- var mp4=document.getElementById("mp4");
- var ogv=document.getElementById("ogv");
- var parent=ogv.parentNode;
- document._video.setAttribute("poster",videos[n][0]);
- mp4.setAttribute("src",videos[n][1]);
- ogv.setAttribute("src",videos[n][2]);
- if(videos[n][3]){
- if(webm.parentNode==null){
- parent.insertBefore(webm,ogv);
- }
- webm.setAttribute("src",videos[n][3]);
- }else{
- if(webm.parentNode!=null){
- parent.removeChild(webm);
- }
- }
- document._video.load();
- }
这一段JS是从http://www.w3.org/2010/05/video/mediaevents.html拷贝而来,具体的演示就在这个页面了。我是想知道video标签中的一些事件。controller_event几乎用不到。
中文说明这里有:http://directguo.com/blog/index.php/2010/07/html5-audio-video-tag/
XML/HTML代码
- //错误状态
- Media.error; //null:正常
- Media.error.code; //1.用户终止 2.网络错误 3.解码错误 4.URL无效
-
- //网络状态
- Media.currentSrc; //返回当前资源的URL
- Media.src = value; //返回或设置当前资源的URL
- Media.canPlayType(type); //是否能播放某种格式的资源
- Media.networkState; //0.此元素未初始化 1.正常但没有使用网络 2.正在下载数据 3.没有找到资源
- Media.load(); //重新加载src指定的资源
- Media.buffered; //返回已缓冲区域,TimeRanges
- Media.preload; //none:不预载 metadata:预载资源信息 auto:
-
- //准备状态
- Media.readyState; //1:HAVE_NOTHING 2:HAVE_METADATA 3.HAVE_CURRENT_DATA 4.HAVE_FUTURE_DATA 5.HAVE_ENOUGH_DATA
- Media.seeking; //是否正在seeking
-
- //回放状态
- Media.currentTime = value; //当前播放的位置,赋值可改变位置
- Media.startTime; //一般为0,如果为流媒体或者不从0开始的资源,则不为0
- Media.duration; //当前资源长度 流返回无限
- Media.paused; //是否暂停
- Media.defaultPlaybackRate = value;//默认的回放速度,可以设置
- Media.playbackRate = value;//当前播放速度,设置后马上改变
- Media.played; //返回已经播放的区域,TimeRanges,关于此对象见下文
- Media.seekable; //返回可以seek的区域 TimeRanges
- Media.ended; //是否结束
- Media.autoPlay; //是否自动播放
- Media.loop; //是否循环播放
- Media.play(); //播放
- Media.pause(); //暂停
-
- //控制
- Media.controls;//是否有默认控制条
- Media.volume = value; //音量
- Media.muted = value; //静音
-
- //TimeRanges(区域)对象
- TimeRanges.length; //区域段数
- TimeRanges.start(index) //第index段区域的开始位置
- TimeRanges.end(index) //第index段区域的结束位置
借鉴一下。
Tags: html5, video, audio
Javascript | 评论:0
| 阅读:23641
Submitted by gouki on 2012, February 15, 9:48 AM
不好意思,关闭本站所有显示微博的插件。
其实,这也无可奈何,当然,大家也都明白,等到实名制之后,象我们这些不实名的,几乎也不能够发表微博了,这个时候如果你让关注我,或者看我的微博,您觉得还有意义吗?
与其浪费大家的资源,不如我早日关闭,当然如果您认为自己是一个潜水员,自然可以继续。
我的微博地址是:
http://weibo.com/neatstudio
http://t.qq.com/goukixiao
----------------------------------
3-16开始倒记时,当打假打完后就该打人了。您懂的
Misc | 评论:1
| 阅读:13170
Submitted by gouki on 2012, February 14, 9:35 PM
众所周知的日子,也是传说中杜蕾斯姐姐和杰士帮哥哥伤亡率最高的日子。
微博上各种各样的段子也是非常的有意思,我在这里就不再一一贴了,反正再过几天这些活跃人士也会变成无语人士的。何必呢。HOHO
情人节的由来我也不贴了,这玩意大家都知道,我就不装了。装了也没意思。反正今天就是那样了。
今天的花,死了不少。
从明天起,小姑娘又少了不少。
MD,我这是不是在嫉妒?青春不在啊。。。。。
今天下午,恭喜各个旅馆生意兴隆,各大超市销量超好
Tags: 情人节
Misc | 评论:1
| 阅读:14680