必盛互联高性价比香港虚拟主机——使用测评

香港主机由于免备案、高速稳定等的因素,受到不少站长的喜爱。不知各位有没有注意到,近期,有一家叫 必盛互联 的主机商开始活跃在各大博客论坛,邀请用户及博主们对主机进行测评。此次,本人也有幸参与其中,对其进行测评,也给各位做一个参考吧。

先介绍下必盛互联Bisend,一站式建站服务商,提供管理式云主机、香港服务器、SSL证书、域名等一系列的建站工具。下面开始进行本次的测评。 继续阅读

香港主机怎么选?

香港主机一直受到国内站长朋友的欢迎,但是很多朋友在如何选择香港主机这一点上,始终有些疑惑,那么香港主机到底怎么选?到底适不适合自己的站点类型?接下来就对此作出简要分析。

首先我们来简要了解下香港主机有哪些优缺点,以此来帮助站长朋友分析自己的站点。

香港主机优点

  • 无备案限制:这是香港主机最直观的好处,相信大家早就明白。这一点就不做过多解释。
  • 线路优势:由于香港的机房只提供一种线路,不存在国内的电信联通主机的概念,也就没有电信跟网通互联不互通的问题。而且放在香港主机空间上的网站,对于亚洲的访问者来说,在速度上并不必国内的主机差,可以说速度是相当的。
  • 带宽优势:香港带宽一般有本地带宽和国际带宽两种。香港本地带宽在本港各大运营商之间访问速度非常快,通常会在5Ms以内,不过大陆访问则达不到。但是香港的国际带宽由于接入到国际交换网络,因此大陆的访问速度还是相当快的。
  • 使用正版软件:香港政府的相关法律规定的,设在香港的服务器不能使用盗版软件。

继续阅读

如何在一天内应聘1000+互联网公司?

100offer-1

优秀程序员大多拥有着不菲的收入,但一样会遇到职场的苦恼徘徊。有份工作不难,拥有理想的人生太难,今天我给众前端工程师们介绍个有意思的产品:100offer程序员拍卖,希望能帮助不缺工作机会的优质程序员,在一个月内安全匿名的拿到10-15个面试机会,从而拥有一份激动人心的事业。 继续阅读

CSS @supports (CSS3条件判断)

用JavaScript在客户端检测浏览器是否支持某项功能特征,目前虽然这是最可行的方法,但不好的是,对于同一个特征的检测,我们需要反复多次用相同的函数附带各种浏览器前缀。而且因为CSS没有相应的功能,使用JavaScript会导致页面闪现,多余辅助代码等问题。火狐浏览器谷歌浏览器Opera浏览器最近刚刚添加了一项新的功能——在CSS里支持@supports标记、在JavaScript里支持CSS.supports函数,用来检测浏览器是否支持某个期望的样式功能。下面让我们来看看是如何使用的!

CSS @supports

CSS @supports标记在CSS代码里跟@media查询语句的语法相似:

@supports(prop:value) {
	/* 各种样式 */
}

CSS @supports允许程序员用多种不同的方法来探测当前浏览器是否支持某项CSS样式特征。

基本属性检测

你可以执行对基本属性和属性值的检测:

@supports (display: flex) {
	div { display: flex; }
}

这是@supports标记最基本的用法。 继续阅读

javascript DOM操作中的insertAdjacentHTML方法

插入HTML内容与文本内容以前用的是innerHTML与innerText方法,今天微博上看到《JavaScript insertAdjacentHTML and beforeend》这篇文章,重新勾起对insertAdjacentHTML和 insertAdjacentText方法回忆,以前网上有个比较靠谱的兼容方法:

/**
 * @param {HTMLElement} el
 * @param {String} where beforeBegin、afterBegin、beforeEnd、afterEnd
 * @param {String} html
 */
function insertHTML(el, where, html) {
	if (!el) {
		return false;
	}
	
	where = where.toLowerCase();
	
	if (el.insertAdjacentHTML) {//IE
		el.insertAdjacentHTML(where, html);
	} else {
		var range = el.ownerDocument.createRange(),
			frag = null;
		
		switch (where) {
			case "beforebegin":
				range.setStartBefore(el);
				frag = range.createContextualFragment(html);
				el.parentNode.insertBefore(frag, el);
				return el.previousSibling;
			case "afterbegin":
				if (el.firstChild) {
					range.setStartBefore(el.firstChild);
					frag = range.createContextualFragment(html);
					el.insertBefore(frag, el.firstChild);
				} else {
					el.innerHTML = html;
				}
				return el.firstChild;
			case "beforeend":
				if (el.lastChild) {
					range.setStartAfter(el.lastChild);
					frag = range.createContextualFragment(html);
					el.appendChild(frag);
				} else {
					el.innerHTML = html;
				}
				return el.lastChild;
			case "afterend":
				range.setStartAfter(el);
				frag = range.createContextualFragment(html);
				el.parentNode.insertBefore(frag, el.nextSibling);
				return el.nextSibling;
		}
	}
}

在还没开始用jQuery之前,一直用这个方法。当然后来用了jQuery的.append().appendTo().html().prepend().prependTo().text().after().before().insertAfter().insertBefore()也很方便。

insertAdjacentHTML和 insertAdjacentText这两个方法很灵活,可以在指定的地方插入html内容和文本内容,在大部分情况下比element.innerHTML的性能更好,比Document Fragments更好的HTML文档插入方案,因为我们知道Document Fragments在某些IE版本中的表现不好。
insertAdjacentText方法与 insertAdjacentHTML方法类似,只不过只能插入纯文本,参数相同。 继续阅读

不懂技术的人不要对懂技术的人说这很容易实现

“这个网站相当简单,所有你需要做的就是完成X,Y,Z。你看起来应该是技术很好,所以,我相信,你不需要花费太多时间就能把它搭建起来。”

我时不时的就会收到这样的Email。写这些邮件的人几乎都是跟技术不沾边的人,或正在研究他们的第一个产品。起初,当听到人们这样的话,我总是十分的恼怒。他们在跟谁辩论软件开发所需要的时间?但后来我意识到,即使我自己自己的项目预测要花去多少开发时间,我也是一筹莫展。如果连我自己都做不好,我何必对那些人恼怒呢?

真正让我郁闷的不是他们预估的错误。问题在于他们竟然认为自己可以做出正确的估计。作为开发人员,我们经常会发现,在软件开发的问题上,一个外行人会很自然的把复杂的事情估计的很简单。

这并不是为我们的愤怒找借口。但这引起了另外一个有趣的问题:为什么我们天生的预测复杂性的能力在遇到编程问题时会失灵?

为了回答这个问题,让我们来认识一下我们的大脑如何估计事情的。有些事情对于一些没有经验的人也很容易预估正确,但有些事情则不然。

我们来想想观看一个人弹吉他。即使你从来没有弹过吉他,在观看了一场弹奏《玛丽有只小羊羔(Mary had a Little Lamb)》的吉他表演后,你也能大概推测出这很简单,一个人不需要太高的技术就能演奏出来。同样,当观看了有人演奏D大调的《卡农(Pachabel’s Canon)》后,你也很容易推测出,这很复杂,需要很长时间的练习才能演奏的出来。

为什么我们能够很迅速准确的预估这两首曲子的复杂性呢?这是跟我们用来判断一个事情简单和还是复杂的方法有关的。我们的大脑有一些现成的模式来完成这些事情,首先一个就是根据速度。这种情况下,大脑会辨别每秒钟演奏的东西。根据每秒钟演奏了多少东西,我们很容易有一个直观的判断曲子的复杂度。因为用吉他演奏一首歌是一种物理过程,一种感官上的活动,我们的大脑很容易依此来推测速度,继而转换成复杂度。

我们还有另外一个天生的推测依据:体积。想想把一个帐篷和一栋公寓放在一起对比。即使一个人从来没有学过建筑学,他也能告诉你通常设计和建造一个帐篷会比设计和建造一栋公寓要简单。为什么?因为我们天生的会使用物理体积作为事物复杂性的一个指标。

当然。上面说的这两种逻辑分析并不是总是100%的有效。但大多数情况下,人们就是这样干,而且很成功。大多数情况中,我们在对物理过程评估时,我们的大脑会对物理事物进行有效的关联,不需要依赖之前的经验。

现在让我们来谈谈软件。当一个不懂技术的人试图对软件开发时间进行评估时,有两个很基本的直观指标在辅助他们:以体积为指标的复杂度和以速度为指标的复杂度。但他们没有意识到,软件跟他们想象的不一样。软件本质上不是有形物质。没有体积和速度。它的极小的组成部分可能会时不时的在电脑屏幕上闪现。正因为如此,当面对开发一个web应用时(或任何类型的软件),我们的基本直观感觉失效了。

这第一点,速度,很显然根本不可能被外行人拿来对软件进行评估。于是很自然的,他们倾向于使用体积指标进行评估。要么是根据描述文档的页数,要么是根据软件的功能用例数或特征数。

有时候,这种评估手段确实有效!当面对一个静态网站,没有特别的设计要求,外行人很容易用这种方法估计出开发时间。但是,通常情况下,对于软件开发,体积并不能真实有效的反映复杂度。

不幸的是,对于软件的复杂度,唯一有效的推测方法是依据经验。而且还不是时时都好用。作为一个程序员,我知道,根据我之前开发过的相似的功能特征,我可以估计出现在的这些功能特征各自要多少开发时间。然后,我把总时间加起来,这就得到了完成整个项目需要的大致时间。然而,事实情况中,每个项目在开发过程中都遇到二、三个瓶颈。这些瓶颈会肆意的消耗程序员的大量时间,你在遇到它们之前根本不会有所预见。它们会拖住整个项目,致使工期延后数周甚至数月。

这些是没有经验的人在评估复杂度时不会理解的。他们不明白在其他事情上都很灵的方法,为什么放到软件开发上就不灵了。所以,下一次当你听到有人说“我想你几天时间就能把它开发出来”时,不管是谁说的,都不要懊恼。深呼吸一下,告诉他这篇文章的地址,自己该干什么还干什么。

[英文原文:I’m Sure It Will Only Take You A Few Days To Code ]
中文网址:http://www.vaikan.com/im-sure-it-will-only-take-you-a-few-days-to-code/

设置Sublime Text 3的光标样式

昨天手贱,升级了Sublime Text 3,结果光标变成了这个样子,非常不习惯:

001

查了一下 http://www.sublimetext.com/3 ,Build 3059中得描述:

Added settings caret_extra_top, caret_extra_bottom and caret_extra_width to control the caret size

意思是增加了caret_extra_top caret_extra_bottom caret_extra_width 这三个设置来控制光标尺寸;

  • caret_extra_top 超出光标上方的额外距离
  • caret_extra_bottom 超出光标下方的额外距离
  • caret_extra_width 超出光标宽度

设置的方法很简单 打开 sublime text–>refrences–>settings-user,在配置中加上这三个键/值对。

我自己测试了,基本算改回来了,嘎嘎

JavaScript

{
     "caret_extra_top" : 1 ,
     "caret_extra_bottom" : 1 ,
     "caret_extra_width" : 1
}

前端工程师?前端攻城湿?前端攻城师?前端攻城狮?!

前端工程师?前端攻城湿?前端攻城师?前端攻城狮?!

我坎坷的前端路

06年年底我刚刚接触前端概念的时候给自己定了一个这么定义:和设计师一样细腻,和程序员一样严谨;游走在设计师和工程师之间,游刃于用户体验和技术实现之间,斡旋在用户利益和商业利益之间。——偶是一枚前端开发工程师!那时候决定直接一定要坚定的走前端开发这条路!到现在也有5年多了,其中发生了很多事情。

07年开始基本上一门心思的学js,调试前期全是一个一个的alert,后来用Visurl Studio断点调试,前端知识和js基本是从零开始,那时候甚至连ajax都要问后端问个半天才搞懂,那时候做音乐试听的项目,做了2个月,基本每天都是凌晨12点后回家,相当的累,但是每天都非常开心充实。这个项目现在回去想想,交互还是相当的负责,每个页面都有可以直接播放音乐,循环播放,打分,歌词随音乐滚动,还有烦人的mediaplayer操作,还有很多很多的交互功能,或许我是幸运的,第一次做前端就碰到了这么个项目,让我深刻的体会了前端的苦与乐。这以后一直不断的学原生的js。

08年年底做过个2个月的客服,嘿嘿,基本上是帮网友解决一些网页上操作和一些电脑故障问题,这时候才真正思考了一个问题:用户到底是怎么使用我们自己开发的网站的。用户很“笨”,“笨”到你想把你自己的电脑砸了。一个网友在某个原创音乐网站上上传了歌曲,到我们网站来听他自己的歌曲,找了半天没找到说你们网站真垃圾,搞了半天终于知道了他在那个网站上上传的歌曲不能在我们网站上听!当然这个是个极端的例子,原因也很简单其实这两个音乐网站前期本来就是同一批人开发的,架构和交互基本一样。给用户造成一些错觉。

09年开始做了半年的美工,设计加切页面,空的时候也自己玩js。那时候自己搞MTJS,写了一个很不成熟的写了一个DOM类库,基本功能都实现了,那时候学了很多,不过由于相对的不成熟所以一直实际应用,当然现在凡是碰到用原生js写的时候,里面的方法还是非常有效,非常好用的。

09年下半年开始就不做设计了,基本上是切页面,写js,今年开始基本每天都扑在js上了,基本没有多少空余的时间,每天听产品今天这样改明天那样改,说实话累了。现在前端方向那么多,真得好好想想自己接下去的路该怎么走。很多苦逼,很多快乐,有时候也很嚣张,有时候也很无助,更多的是无奈。

前端开发正在蓬勃发展,或许大家也该想想自己将来该往哪方面发展。

以下内容来自:http://www.cnblogs.com/radom/archive/2011/11/23/2259674.html

豆瓣前端:
认为前端工程师正慢慢演变为产品工程师。wap app, 响应性UI等以html5技术为基础的开发将成为前端工程师的主要工作内容,解决产品跨平台跨设备的实现问题。Javascript, HTML, CSS这些前端工程师熟悉的,多年使用的语言,作为开放标准将被各种平台所支持。产品形态和数据的分离是形势所趋。移动时代对产品形态多元化的要求虽然可以靠不同技术分别实现,但要付出巨大的成本。这也是html5这个04年就提出来的标准,直到前两年才火爆的原因。

现阶段的价值也很大。web产品交互越来越复杂,用户使用体验和网站前端性能优化,这些都需要专业的前端工程师来解决。另外,在项目中还要弥补设计师在交互设计上的不足,前端工程师在开发过程中起着重要的承上启下的作用。一两个前端工程师就可以让整个开发并行起来,让设计到实现的转换更顺利。明智的公司应该贮备前端工程师资源。

我不认为前端工程师和产品经理有什么关系。好的前端工程师一定会成为好的交互设计师。前端工程师对信息架构的理解应不亚于专业的交互设计师。

新浪前端:
作为前端工程师最核心的价值或者说是责任,就是将大伙的所有心血和努力最终要完美地呈现给用户。在一个技术开发团队中,无疑离用户最近的人就是前端,其次是UI、UE和产品,然后是后端、DBA和系统工程师。

如果说一个技术开发团队就是一支足球队的话,那么前端工程师无疑就是前锋,他接到队友们倾力传到脚下的球,他责无旁贷,要做的就是必须将球准确无误地打入对方的球门….. 他有两点必须是非常清楚:1、他必须清楚在对方球门与自己之间存在着哪些阻碍;2、他必须清楚如何破除这些障碍将球直至门网….. 他也应该要是所有队员中对这两点最为清楚的人。

每个球队都有自己的明星,可以是锋线杀手、可以是中场战车、可以是超级后卫、也可以是神奇门将、甚至可以是救火教练。而且相信球场上任何一个位置的优秀球员,都有可能在后场断球长途盘带奔袭射门,球进!但任何一支优秀的球队都必须有两类分工,前场球员想的是赢得比赛,后场球员想的是不能输掉比赛,各司其职才能卓越。

而作为一名称职的前锋,你必须是球队里,进球最多、射门技术最好的那一个,否则你还有什么价值可言呢….

百度前端:
应该来讲有三条路,一个是向前走,一个是向后走,另外一个是一直做前端,深入下去。向前即是克军所说的往用户体验与交互设计甚至产品设计师上走,这是最能体现前端价值的了,即用户体验,大多人会往这方面走;

向后走就是做Web开发,往数据库和后台开发方面走,不再区分前后端,大家深入产品的研发实现,这条路就是与软件工程师融合的路,这是的价值就体现在对于业务功能的实现上;

最后还有的是一直深入做前端开发,比如前端各类库与框架的架构设计,W3C各种标准深入研究,对于JavaScript语言本身的研究,对浏览器的原理分析,对于网络传输协议的原理分析等等,这条路要深入下去很不容易,因为涉及很多原理与根本性的东西,所以走的人也不是很多。

当然了,还有一些彻底离开了前端甚至软件开发,转行专门做产品或者做业务运营。可能会因为有不错的技术背景有一定的优势呢。

[杭州,年薪10-20W]杭州泛城科技有限公司招聘前端开发工程师

杭州泛城科技有限公司(FUNCITY Inc.)创立于2006年8月,是一家面WebGame研发公司。公司曾获得2009年度中国最具投资价值公司,2010中国网络游戏新锐企业,是中国最大的网页游戏公司之一。公司最近的战略方向转移到移动互联网,因此需要多位优秀的前端人才一起开拓这个朝阳领域。优秀的前端开发工程师,是美术设计师和后端开发工程师的桥梁,是优秀用户体验的建筑师,是html5等前沿技术的探路者。 如果你能面对这个挑战,快来申请吧!

我们正在寻找:

  •     jQuery, HTML5和CSS3,越犀利越好
  •     有多个浏览器兼容性的调试经验
  •     和你的同事一起学习进步
  •     能够融入一个生死与共的团队
  •     对编写优美、简洁的、实用的代码有着火一样的激情
  •     对优雅的用户界面,可用性有自己的见解
  •     积极主动,无限激情
  •     在杭州工作

你将在这里:

  •     设计和实现多平台的(包括移动设备)前端界面
  •     直接和设计师紧密交流,确保每个页面元素和用户交互都符合设计初衷
  •     学习和使用最前沿的前端技术
  •     和我们的工程师一起开发新理念的产品
  •     得到优越的职业发展机会和丰厚的经济收益

薪资范围:10w-20w/年

公司网站:http://www.funcity.cc/

游戏平台:http://www.lezi.com/

简历发至:hr@lezi.com,标题注明“应聘前端开发工程师

40年后前端开发工程师们的对话

40年后估计我们都已经不是前端开发工程师,40年后甚至没有前端开发工程师这个岗位了,那么那时候我们的话题又是什么呢?

1、今天是老李的葬礼,老王的在下周一。

2、最近喜欢听周小伦的歌,其中有一首还是他爷爷周杰伦的曲。

3、儿子送了一部iPhone50,可我觉得还是没四代好看。

4、跟老杨逛街,看到网络游戏广告,他说他很怀恋四五十年前的魔兽。

5、电脑屏幕上,好多好友的头像都不会再亮了。。。

6、我40多年前开始学js的时候,第一个程序就是打印:hello world!自从学了js之后,学什么语言第一个程序都是打印:fuck world!

7、唉,你们这帮年轻人啊,兼容个ie40就怎么大呼小叫的,哥当年兼容的是IE6,哥现在做的页面也能兼容IE6-IE41!

8、当年什么不好做,做了前端,现在还是光棍一条!

9、那时候经常跟美女设计说:这个不能实现,那个不能实现!

待续…欢迎留言补充…