宫崎骏(みやざきはやお)的代表作

となりのトトロ(龙猫)
紅(くれない)の豚(ぶた)(红猪)
せん と ちひろ(千与千寻)
風(かぜ)の谷(たに)(风之谷)
天空(てんくう)の城(しろ)(天空之城)
魔女(まじょう)のたっきゅう便(びん)(魔女宅急便)
風(かぜ)立ちぬ(起风了)
物の怪(もののけ)姫(ひめ)(幽灵公主)
崖の上(がけのうえ)のポニヨ(悬崖上的金鱼姬)
ハウルのうただく城(しろ)(哈尔的移动城堡)
ゲド戦記(せんき)(地海战记)
借り暮(ぐらし)のアリエッテイ(借东西的小人阿莉埃缇)

日本名字什么的最难记了

整理了下日本一些美女名字对应的平假名,记住这些差不多日本女人的名字都能讲了。
佐佐木希(ささき のぞみ)
堀北真希(ほりきた まき)
北川景子(きたがわ けいこ)
香里奈(かりな)
武井咲(たけい えみ)
桐谷美玲(きりたに みれい)
大政绚(おおまさ あや)
板野友美(いたの ともみ)
观月雏乃(みづきひなの)
篠田麻里子(しのだまりこ)
黑木明纱(くろきめいさ)
加藤罗莎(かとうrose)
新垣结衣(あらがきゆい)
比嘉爱未(ひがまなみ)
米仓凉子(よねくら りょこ)
户田惠梨香(とだえりこ)
吉濑美智子(きちせみちこ)
上户彩(うえとあや)
松岛枫(まつしまかえと)
苍井空(あおいそら)

This entry was posted in 外语.

Javascript 学习资源汇总

最初级的js 学习网站: 交互在线学习网站codeacademy
js应用最广泛的框架JQuery: jQuery空中课堂
正式深入学习javascript: eloquent javascript
循序渐进学习javascript: javascript garden
被说过时但是很基础的字典w3school:w3school
Mozilla开发者网络MDN: MDN
特别有用的开发者社区StackOverflow: stack overflow
node.js项目编程node.js
如果以后还有其他的也会收录当中

懒人JS (原名js for cats)

Javascript是一种编程语言,或者说是一种让电脑执行命令的方式。用编程语言写代码控制电脑行为就如同发出“嘘”或“喵”声,人类就知道要做什么。所有的浏览器都能读懂javascript,所以你可以通过js来让电脑做出各种疯狂的事情。
Js 开始是作为一种让网页有更多交互的编程语言。现在js不仅仅在浏览器上可以执行,还可以在服务器端,手机甚至是机器人上运行。这里我将教你一些让你能起来立即执行的js基础知识。
内容列表
控制台
字符串
变量和值
使用函数
Js内嵌函数
下载js新函数
写新函数
循环
数组
对象
阅读推荐
不要做个胆小鬼
你总是会遇到一些问题,但最后都能解决掉,编程也是这样的。不像在你的电脑上放了一杯水,这个教程里的任何东西都不会损伤你的电脑,即使你误输入一个命令或者按错了按钮。电脑程序员像猫一样一直在犯错,拼写错误,忘记引号和分号,忘记基本函数是怎么工作的。程序员更在意程序能逐渐运行成功而不是第一次就运行成功。犯错是学习最好的方式。
所以不要做个胆小鬼。最糟糕的情况就是如果页面卡了,你必须刷新这个页面,不用担心,这种情况几乎不会发生,概率就像我们和13个脚趾头的猫说话的概率一样低。

一家公司的前端面试经历

周六去参加一家公司的前端面试了,一家新创的公司,我心目中挺有潜力的一家新创公司,这里的潜力一词包含两层含义:其一,这家公司将来会做的很好,单从新闻上看,他们的资源整合非常恰当,然后这家公司的员工干劲十足,这肯定是公司经营管理的能力和领导者的魅力;其二,我觉得自己适合在这样的一家公司工作,我会通过工作本身成长不少的程序经验,也会充分发挥我的优势,我相信我的发展会有明显的势头。
一面是个女技术面试官,问的问题虽说基础,但是如果不准备那也是略知一二不能详尽问题的本质,有问到css 的inline-block 和block的区别,以及在什么场景下用到过这两种展示模式,(似乎这到问题我答错了,真是很不应该啊),有问到行内元素和块级元素的区别,也有问到浏览器兼容性的问题,问到doctype的含义,问到js 中的面向对象编程的含义,问到我使用过什么mvc 框架,汗颜,我还没用过什么mvc 框架,记忆最深的莫过于问到事件的触发机制,当问到要阻止事件起泡的时候,我想起来了是用stopPropagation,但是IE下面是如何阻止的,却完全不记得了,不过现在不会忘记,cancelBubble=true;
每一次技术面都能让自己看到别人关注而自己忽视的技术点,所以我会在接下来的时间里学点MVC框架的东西,模板引擎我也会学习一点;

二面是cto 面的,听说在IT届磨破滚打9年,现在成了cto也算是励志故事啊。他问了我如果说一个页面有很多图片,你会采取什么优化策略来改善用户体验? 如果在页面的顶端设置一个固定的导航栏会有什么不当? 怎么实现一个iframe 的自适应? 以及你怎么取实现你的技术成长,关于这个他分享了他的算法: 7+2+1 7分通过工作积累,2分通过自学积累,1分通过分享交流,工作再忙也不忘记自学积累和技术分享交流;他会在我走偏的时候及时打断我,并且让我回归正题;我问他关于女技术的态度,他没有发表自己的立场,但是给了一个凡客诚品副总裁的例子作为我的榜样;在讲到关于不安全感的时候,他说,不安全感是因为底气不足,技术够硬的话是不会担心自己今天在这里明天不知去哪里的,我觉得这句话说得非常有道理,曾经一度我非常自卑,觉得本质原因就是技术底气不足吧。
每一次和比自己牛的人交谈,总能让自己感觉到海阔天空,心旷神怡,冲劲十足的感觉;

三面是今天上午进行,是hr面,首先他介绍了下面试的流程,先问了几道场景题:1,如果之前老大说5天完成的项目现在进度要改成3天,你会怎么做? 2,如果你作为项目leader,为了赶项目进度你的leader 给你分配了一个人,但是这个人又对你的项目进度并没有多大帮助,你会怎么做? 3,新到一个环境你会怎么样融入这个组织;4,如果客户对你项目有抱怨你会怎么处理,这块我应该是回答的不令人满意,所以他提醒我,首先要了解客户的需求和目的,我觉得说的很对,我经常容易忽视别人的目的和需求这一点;然后就有问到了我之前的一些工作经验的事情,问到了我为什么从测试转成了开发,问我没有做技术的那5个月在干嘛,那五个月的经历有什么总结。最后问我是属于活动的发起者,支持者,旁观者还是不关心者,我的回答是1+2;他还问及了迅雷的企业文化,问我为什么选择换工作; 最后谈的是薪资问题,他先问了我在百度的薪资我告诉了他,然后他问我在迅雷的薪资,我的回答是,迅雷的薪资我可以在入职之后再告诉你吗? 我觉得这一点我做的很好,我不想他们拿我先前的标准来作为我新工作的薪资标准,当然也不能暴露公司的薪水,是吧。
三面能感受到,虽说这个公司是新创的,但是至少面试流程是非常科学的,并且对人也是极其尊重的,不会像网上流传的有些公司一样,不尊重面试者,也不重视人才的选拔。

最后说明天下午四点左右给我打电话就薪资进行沟通,如果双方满意的话就进一步沟通入职的时间。

快速记录前端兼容性问题

1,FF设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width;
2,在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:
div{margin:30px!important;margin:28px;}注意这两个margin的顺序一定不能写反,!important这个属性IE不能识别,但别的浏览器可以识别。
3,消除ul、ol等列表的缩进时,样式应写成:list-style:none;margin:0px;padding:0px; 其中margin属性对IE有效,padding属性对FireFox有效。
4,实现透明
IE:filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。
FF:opacity:0.6
5,圆角
IE:ie7以下版本不支持圆角。
FF: -moz-border-radius:4px,或者-moz-border-radius-topleft:4px;-moz- border- radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz- border- radius- bottomright:4px;
6,问题说明:firefox不支持hand,但ie支持pointer ,两者都是手形指示。 解决方法:统一使用pointer。
7,IE中p:first-letter和{font-size:300%}加上空格,也就是p:first-letter {font-size:300%}后,显示就正常了。
按道理说,p:first-letter{font-size:300%}的写法是没错的。那么问题出在哪里呢?
答案是伪类中的连字符”-”。IE有个BUG,在处理伪类时,如果伪类的名称中带有连字符”-”,伪类名称后面就得跟一个空格,不然样式的定义就无效。
而在FF中,加不加空格都可以正常处理。

JS 面向对象实现继承

不废话直接开始:
1,prototype
var Parent = function(){
this.name = "papa";
this.type = "human";
}
var Child = function(father){
this.father = father;
}
Child.prototype = new Parent(); //通过prototype 实现继承
var c = new Child();
console.log(c.type);

2, apply

var Parent = function(){
this.name = "papa";
this.type = "human";
}
var Child = function(father){
Parent.apply(this,new Array());
this.father = father;
}
var c = new Child();
console.log(c.type);

3,call

var Parent = function(){
this.name = "papa";
this.type = "human";
}
var Child = function(father){
Parent.call(this);
this.father = father;
}
var c = new Child();
console.log(c.type);

4, extend 抽象方法

var Parent = function(name){
this.name = name;
this.type = "human";
this.toString = function(){
return this.name + this.type;
}
}
var Child = function(father){
var arr = new Array();
arr[0] = "Dick";
this.father = father;
this.toString = function(){
var str = Child.prototype.toString.call(this,arr);
return str + this.father;
}
}
Object.extend = function(to,from){
for(property in from){
to[property] = from[property];
}
return to;
}
Object.extend(Child.prototype,new Parent());
var c = new Child("dad");
console.log(c.toString());

我的2013

我的2013回顾起来似乎过得太快,以至于我对生活产生了恐惧感。
2013年从农历新年之后开始算,4月1日之前我都在为回归IT届,为转成开发人员而准备这,自学php,我将把迅雷作为我华丽转身的起点;
2013年3月,我给东莞的生活划上了一个涂鸦的句号,抱着试试的态度到腾讯去面试,估计是我的简历被刷了,当天的社会招聘没有给我面试的机会,在大学同学的帮助下才联系上了一个面试官,给了我一个面试的机会,其实是两个,但是两个都被面的是测试的职位,其中一个是网页测试,问了我一些网页测试的问题,其中有一个是内存泄漏的问题,当时我没能答上。最后我应该是fail 了,但是最后他还是给我打电话了,让我到他们的外包公司,工资4000,我当时想啊,这个面试官肯定觉得很讽刺吧,从百度来的员工竟然沦落到做我们外包的地步。另外一个是客户端测试,虽然这个面试官很有意让我留下来,但是我已经不怎么想要继续面下去的意愿了,原因很简单,我不想再做测试了,如果我还想继续做测试,那我到百度深圳研发中心去继续面测试也是可以的。
之后我继续了在迅雷的面试,做了笔试题,机试题,最后面试,说实话面试让我真正明白了自己的弱势,一没技术功底,二没有工作经验,我想仅仅是凭借着我的认真和之前的光环,我获得这份工作的offer。最后在谈薪水的时候我觉得我真是太天真了,竟然拿了个最低档,让我这8个月肠子都毁青了。hr 先问我之前的薪资,然后问了我个薪资范围,然后告诉我她的上线,然后问了我个最低能接受多少,我顿时慌了,说了个我能接受的薪资范围的最低数,最后这个就成了我最后的薪资了。以后我不会这么傻了。但是由衷的感谢jack 入取了我,给了我这个在这里蛰伏的机会。
2013.4.1-2013.6.1 这两个月主要是在做迅雷看看的影视专题和一个重庆看看房地产项目,真是实际的项目能让人飞速前进,之前只是练习过smarty模板,但是没有实际做过项目,这个重庆房地产项目让我切实的接触到smarty的前身smarttemplate, 还用原生的js 写了挺多效果,轮播图啊,验证码啊,历史记录啊,地图啊之类的。同时迅雷看看的影视专题也让我不停地在学习js 和jquery, 让我学会怎么使用调试工具进行调试,让我学会在console下面进行js 代码测试,不要嘲笑我,学习就是这么一步步成长的,那个时候我会在家看那本《javascript权威指南》然后问题男友那些个白痴的问题。
2013.6-2013.8 我仍然在做着专题,接入微博的开发接口,一些简单的动态交互,这个时候还带了一个实习生,其实我这半桶水还带实习生,真是委屈了他,对他发了好多次火,教了他简单的html,怎么写js函数,正则表达式,string 的正则函数,ajax。不知道现在已经不写代码的他还能记住多少,不过我每天都会很认真的备课。当然这段时间里也一直在维护着站外渠道的接口,偶尔写一下脚本实现一些接口数据的生成,做些简单的页面嵌入。站外合作的工作大部分是根据对方提供的数据规格实现一份xml 的生成,主要是要处理子集下线的问题比较棘手,当然考虑到实时性和收录失败的可能,增加了缓存进行优化。
2013.8-2013.10 这段日子做了些很无聊的事情,比如看我们推送接口了之后百度何时收录的问题,我们10几个人盯着那些网站,12点蹲着看我们的电视剧更新了之后百度视频上我们的排名如何,到1点半,看着百度视频显示出来更新了,并且位置排在第一位,第二天早上发现迅雷的图标又掉到了末尾,追了一个礼拜各种排名的理由,最后原因还是商务因素,真是笑话啊。还有就是分析我们的统计数据的问题,我们发现我们后台的统计数据中,百度的数据有一般的都是引用页为空的数据,然后我们就分析哪些浏览器会丢失引用页,各种双核浏览器,猜测浏览器的使用率,反正到最后发现百度的那一般的数据是来自移动端,可是最后到底是来自什么应用也没有查出来,更知道什么原因这部分引用页为空的统计数据又没了。这两个月真是过得快的,感觉没什么长进,但是自己却是玩了不少,学校校友会的迎新晚会表演节目,院校友会的自行车骑行活动,村里的歌唱比赛。
2013.10-至今,我想我的志向应该不仅仅是停留在这里做一个维护接口的扫地僧吧。所以我开始买了两本html和css的书,说来惭愧我虽说会写点js 脚本,但是竟然不怎么会用css 做排版,不会截图,不懂定位,于是我开始学啊,不会什么就照着做好了,practise makes perfect不是吗?我开始会利用一点工作的时间来学学人家的各种绚丽的效果是怎么做出来的,开始维护自己的博客,把自己学到的东西写下来,这样不仅能做个巩固,还能进行二次消化。
我的2013损失了爱情一枚,问我积累了什么,我想没什么其他的,只有百度音乐里那些听多少遍都不会厌烦的歌曲吧;
我希望我的2014年能完成我的便利贴网站,能做两个开源的css特效,能够月薪过万,能够写一些有影响力的博客。

js 的事件处理

《javascript权威指南》这本书中对事件及事件处理这章不知道是翻译的原因还是怎么地,觉得它晦涩难懂,翻阅阅读了好几遍都没搞明白,3种事件处理原型是什么东西,适用于什么场景,还有之后的事件传播中的捕捉和起泡是怎么一回事;本文的目的就是为了把这些看似高深,晦涩难懂的东西简单明了化。
首先我们一般会用哪几种方式来编写一个事件触发的程序?
1,将事件字符串作为html 元素的一个属性<-input type="button" value="test" id="mytest" onclick="alert('method 1');">,这是最简单的,但是违反了前端的内容和交互分离的原则;
2,将事件函数作为js 的属性 document.getElementById("mytest").onclick = function(){ alert("method 2");},注意这里的事件句柄必须是小写的,上面第一种方式的事件句柄大小写无所谓,所以为了节省记忆空间,我们都用小写吧;另外,如果当前的文档中又引用了别人写的js代码,别人已经对这个mytest元素定义了一个onclick 的处理函数,如果你重新再写一个那么它会不会生效呢?这个得看顺序了,如果外部定义的加载比你自身写的加载的晚,那么你写的就不生效了;再者,如果我想让click 的时间既调用外部js 的处理逻辑,又加上新增的处理逻辑,那么这种方式就办不到了;
3,document.getElementById("mytest").addEventListener("click",function(){ alert("method 3");},false); 这个函数有三个参数

  1. 事件类型,不带on
  2. 事件处理函数
  3. true表示按照捕捉的方式传播事件,false默认,按照起泡的方式传播事件,这两种方式后面再详解

但是上面这种注册事件句柄的方式只适合除ie之外的其他浏览器,用这种方式可以在一个目标元素上同时注册多个方法,比如你还以继续增加代码document.getElementById("mytest").addEventListener("click",function(){ alert("method 3 for more");},false);
4,document.getElementById("mytest").attachEvent("onclick",function(){alert("method for IE");}) 这个方式跟method 3 一样,可以在同一个目标元素上同时注册多个方法,这里的第一个参数又要带上on,感觉有点混乱哦。
所以如果你有对于特定元素使用若干个事件处理函数可以采用如果兼容的方法:
function bindEvent(etype,dom,handleFunc){
if(document.addEventListener){
dom.addEventListener(etype,handleFunc,false);
}else if(document.attachEvent){
dom.attachEvent("on"+etype,handleFunc);
}else{
dom.onclick = handleFunc;
}
}

事件传播 对于method3, method4这种事件模型,当事件发生在文档元素上,目标的事件句柄就被触发,此外,目标的每个祖先元素也会执行那个事件,真是好烦人啊,一直向上汇报直到遇到了始祖document对象;
捕捉,说白了就是从定义了onclick的祖先元素开始调用其对应的事件函数,一直像下走,直到到了目标元素;
起泡,就是和上面相反的过程,先触发目标元素的响应事件,然后一直往上走,直到最高的定义了同样事件的祖先元素;
biggest是最外层的元素,outer是它的子元素,inner又是outer的子元素那么如果定义如下代码

document.getElementById("inner").addEventListener("click",function(ev){
ev = ev || window.event;
alert("1");},true);
document.getElementById("outer").addEventListener("click",function(ev){
ev = ev || window.event;
alert("2");},true);
document.getElementById("biggist").addEventListener("click",function(ev){
ev = ev || window.event;
alert("3");},true);

这就是捕捉,那么当你点击inner元素的时候打印的顺序是,321, 而点击outer的打印顺序是32, 点击biggist 打印3;

document.getElementById("inner").addEventListener("click",function(ev){
ev = ev || window.event;
alert("1");},false);
document.getElementById("outer").addEventListener("click",function(ev){
ev = ev || window.event;
alert("2");},false);
document.getElementById("biggist").addEventListener("click",function(ev){
ev = ev || window.event;
alert("3");},false);

上为起泡,那么当你点击inner元素的时候打印的顺序是,123, 而点击outer的打印顺序是23, 点击biggist 打印3;

如果你不想要这种起泡或者捕捉效果,只想执行第一个响应的事件怎么办呢? stopPropagation,停止传播。

document.getElementById("inner").addEventListener("click",function(ev){
ev = ev || window.event;
//ev.stopPropagation();
alert("1");},true);
document.getElementById("outer").addEventListener("click",function(ev){
ev = ev || window.event;
//ev.stopPropagation();
alert("2");},true);
document.getElementById("biggist").addEventListener("click",function(ev){
ev = ev || window.event;
ev.stopPropagation();
alert("3");},true);

如果在biggist 的处理函数中使用stopPropagation那么当你点击inner的时候只会打印出12,不会打印3; IE下面的阻止传播是这样使用的,
document.getElementById("outer").attachEvent("onclick",function(ev){
ev = ev || window.event;
ev.cancelBubble = true;
alert("1");return false;});

那么,如果给其中某一层元素既增加起泡,又增加捕捉,那么调用的顺序会是怎样的呢?

document.getElementById("inner").addEventListener("click",function(ev){
ev = ev || window.event;
alert("1");},false);
document.getElementById("inner").addEventListener("click",function(ev){
ev = ev || window.event;
alert("1");},true);
document.getElementById("outer").addEventListener("click",function(ev){
ev = ev || window.event;
alert("2");},false);
document.getElementById("biggist").addEventListener("click",function(ev){
ev = ev || window.event;
alert("3");},true);

结果打印出3112,这是因为事件的执行流程是
3(true)->2(true)->1(true)->1(false)->2(false)->3(false)找到哪个执行哪个

深圳保利剧院第一次听歌剧

有幸在12月21号晚上应小叶邀请去深圳保利剧院观看《经典歌剧之夜》歌剧表演,记得2011年圣诞我和一学长也去听所谓的高雅艺术“朗朗钢琴音乐会”;歌剧或者钢琴在我们看来都是属于高雅艺术,很难懂,很难理解。不过对我而言,艺术真的很纯粹,他们会让你忘记自己的事情,沉寂在别人的世界里;艺术会让你跟着他们一起高兴,激动,低落,沉醉,悲哀,低鸣,仿佛演出的几个小时里你都活在故事里。虽然我不是真正的懂,音乐,但是听到某些时候竟然也会有灵魂的共鸣。
歌剧不像别的音乐会,它从头到尾都没有主持人,演员也都不说话,最多做做表情和手势,整场演出下来似乎只有一个个故事上演,演员们十分全身心的投入,很过瘾。
《祝酒歌》选自《茶花女》, 没有看过整部歌剧,单在这一个选段中似乎就能感受到“茶花女”玛格丽特在巴黎交际场上左右逢源,春风得意;歌剧欢快高昂,我不敢肯定这选段的男人是否有一个是男猪脚阿芒,但是我能感受到这一小段每个人的欢乐;
《啊,明朗的一天》选自《蝴蝶夫人》,,日本女人蝴蝶夫人的恋人是一个海军 ,歌剧刚开始轻盈,缓慢,偶尔带点小悲伤和期盼转而又变得轻快,带点焦急和期盼,不停的在幻想他和情人见面的那一刻的场景,和情人之间逗趣的场景。丰富的感情世界都通过歌唱演绎出来,我也随着她高兴而高兴起来,感觉像是我的情人要从遥远的地方回来了;
《女人善变》选自《弄臣》 演唱者表演的是剧中的公爵,一个擅长玩弄女性的貌美少年,歌剧节奏轻松活泼,音调花俏,就是这位情场能手的绝妙写照;不知道具体说的是什么,但感觉确实说的很对,很有道理,他似乎比女人还了解女人
《今夜星光灿烂》选自《托斯卡》这一段是托斯卡的情人卡瓦拉多西去刑场之前,在死囚牢房里给托斯卡写诀别信时唱的一段咏叹调,看着窗外灿烂的星光,想起了心爱的恋人,心中思绪万分,演唱中透出一份凄凉和无奈。
《快给忙人让路》选自《塞维利亚的理发师》这位理发师绝对是超级自恋的人,觉得自己决定聪明,大家都很喜欢他,得意洋洋;音乐充满活力,诙谐与激情并存而且极富舞台效果。巴尔托洛的愚蠢滑稽自鸣得意,以喜剧男低音方式将其刻画得十分生动。有一处速度非常快,一直在讲“费加罗,费加罗,费加罗,费加罗。。。”当然我只听懂了这个词啊,意大利语我哪里懂。哈哈
《坚如磐石》选自《女人心》两个女人高傲自信的说自己会如何如何对自己的丈夫忠贞,坚定而决绝,说自己对丈夫的忠诚坚如磐石,至死不渝。歌剧的这一段确实给我的错觉这个女人很伟大,不过遗憾的是我后来看了整个剧的介绍,这个女人还是背叛了自己的丈夫,让我大跌眼镜啊。 只能说这一段她表演的太好了,把我给骗到了。

听表演的两个小时,心情挺愉快的,偶尔尝试自己陌生的领域也会有意想不到的收获哇。再推荐一个《拉克美 花之二重唱》,刘若英和黄立行的歌曲《分开旅行》中就截取了其中的一段作为开头。