专访魏子钧:喧嚣后的HTML5和JavaScript将长存

allowtransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?url=http%3A%2F%2Fwww.youkuaiyun.com%2Farticle%2F2012-11-06%2F2811553&type=3&count=&appkey=&title=%E8%BF%91%E6%9C%9F%EF%BC%8C%E6%9C%AC%E7%AB%99%E8%AE%B0%E8%80%85%E9%87%87%E8%AE%BF%E4%BA%86优快云%E5%8F%8AITeye%E7%A4%BE%E5%8C%BA%E6%B4%BB%E8%B7%83%E7%94%A8%E6%88%B7%E3%80%81%E5%89%8D%E7%AB%AF%E5%B7%A5%E7%A8%8B%E5%B8%88%E5%A4%A7%E5%9F%8E%E5%B0%8F%E8%83%96%EF%BC%8C%E4%BB%96%E7%9A%84%E7%9C%9F%E5%90%8D%E5%8F%AB%E9%AD%8F%E5%AD%90%E9%92%A7%E3%80%82%E4%BB%8E%E9%87%87%E8%AE%BF%E4%B8%AD%E5%8F%AF%E7%9C%8B%E5%87%BA%EF%BC%8C%E4%BB%96%E5%AF%B9%E5%89%8D%E7%AB%AF%E9%A2%86%E5%9F%9F%E6%9C%89%E7%9D%80%E8%87%AA%E5%B7%B1%E7%8B%AC%E7%89%B9%E7%9A%84%E8%A7%81%E8%A7%A3%EF%BC%8C%E8%80%8C%E4%B8%94%E5%85%B3%E6%B3%A8%E4%BA%92%E8%81%94%E7%BD%91%E9%A2%86%E5%9F%9F%E7%9A%84%E5%8A%A8%E6%80%81%E3%80%82%E8%AE%A9%E6%88%91%E4%BB%AC%E7%9C%8B%E7%9C%8B%E4%BB%96%E7%BC%96%E7%A8%8B%E7%94%9F%E6%B6%AF%E4%B8%AD%E9%82%A3%E4%BA%9B%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%85%E4%BA%8B%EF%BC%8C%E4%BB%A5%E5%8F%8A%E4%BB%96%E5%AD%A6%E4%B9%A0...&pic=&ralateUid=&language=zh_cn&rnd=1409301051211" width="22" height="16"> 摘要:近期,本站记者采访了优快云及ITeye社区活跃用户、前端工程师大城小胖,他的真名叫魏子钧。从采访中可看出,他对前端领域有着自己独特的见解,而且关注互联网领域的动态。让我们看看他编程生涯中那些有趣的故事,以及他学习、工作的经验。

魏子钧简介:专注于Web应用开发,HTML5技术研究,以及基于HTML5的移动游戏引擎开发,关注移动互联网领域的动态。熟练掌握流行Web开发技术,精通JavaScript语言。从事过五年Java相关的开发工作,熟悉Java、J2EE应用开发,有PHP、Python开发经验。05年毕业于大连的辽宁师范大学,毕业后直接进入了大连东软。曾就职于上海普元信息、惠普中国、盛大创新院。现已离职,打算投入到创业大军当中。

计算机初体验

优快云:你何时开始接触计算机,又是如何走上程序员这条道路的?

魏子钧:我第一次接触计算机是在小学四年级的寒假,报名参加了当地一所大学办的面向小学生计算机学习班。现在回想起来,自己蛮幸运的,因为那个学习班里的老师真的很认真很用心,课程安排的也很有价值。当时很多社会上的计算机培训班无非是教打字、教CCED、WPS一类的基础。但是,我参加的这个学习班把编程作为重点,当时在那里学习了GWBASIC、DBASE和FoxBase。初次接触到编程我就爱上了它,虽然当时还没有“长大了一定要做个程序员”这样的想法。但是,我想那时候对编程的这份最初的热爱,是我走上程序员这条路的一个最主要的诱因吧。

优快云:谈谈你是如何不断提高自己编程技术的?

魏子钧:其实我一直不觉得自己编程技术有多高,尤其是随着交际圈子的扩大,接触到越来越多的牛人后,我只能说自己只是在编程的某些方面熟练一点、知道的比某些刚入行的同学多一点,仅此而已。以下是我总结的5点学习经验:

1. 多动手实践,业余时间多写一些小东西。

2. 多学习开源项目的源码

3. 要学习某技术时,一定要去阅读一本相关的权威书籍。“有互联网了,什么都能搜到,不需要去看书了”这种观点千万要不得。

4. 不仅要低头钻研技术,也要主动的多与外界交流,无论是什么领域什么层次的人,总是能教会我们一些有益的知识的。

5. 多把自己写的东西展现给别人看,敢于暴露自己的不足。

优快云:你在学习HTML5、JavaScrpit的过程中,有什么故事可以分享?你最喜欢的编程语言、编辑器和工具有哪些?

魏子钧:我走上前端这条路也算是一种机缘巧合。念大学的时候,用FrontPage、DreamWeaver做过一些网页,同时自学了ASP和php。由于接触计算机比较早,可能在某些方面还是有一些优势,所以后来有幸参与到学校论坛和网站的建设,接触到了很多后端和前端的知识。毕业后进了东软电信事业部,当时正好处在企业软件从C/S架构转型到B/S架构的大潮中,而很多传统软件开发公司前端人才储备并不是很足,所以我用自己在大学里接触到的那些前端知识,为公司做了一些事情,从此慢慢的走上了前端路线。但是那时候做事情,基本上是按模块划分,所以我自己也有幸参与到从数据库,到J2EE服务端,再到前端的所有开发工作,这对我后来的成长起到了很关键的作用。尤其是如今Node.js火爆之后,突然觉得自己以前学到的很多知识又有了用武之地。

前端开发工具原本就不是很多,无非是各种编辑器,每个人都有自己的所爱,我就说一说我常用的编辑器:Mac——Sublime Text 2,Windows——Notepad++ 。对于前端来说,各种浏览器以及浏览器的调试工具自然也是必不可少的。现在还会偶尔写写Java,所以Eclipse还是离不开的。

HTML的未来

优快云:你怎么看HTML5、JavaScript的发展?HTML5会成功替代Flash吗?

魏子钧:我觉得HTML5和JavaScript在度过现阶段的喧嚣和热闹之后,未来会如同C语言一样,变成一种长久存在的经典的技术。即使它本身的版本会不断的演变下去,会不断有新的争议产生,但是只要Web标准不死,HTML和JavaScript一定能成为软件开发中的一种常规武器,被广泛的应用。

关于HTML5和Flash的问题争论很久了,我的观点始终不变。

1. HTML5就是有很多地方不如Flash。

2. 两者在有些领域有竞争,那么这时候选择谁,不取决于两者本身,而取决于研发团队的技术实力和目标用户的需求。

3. 两者在很多场合是不冲突的,可以各自走好自己的路,甚至是协同作战。

4. 最后,谁也无法取代谁,因为他们不是为了取代对方而存在的。即使有一天Flash真的被替代了,那么它也绝对不是被HTML5杀死的。

优快云:越来越多人使用HTML5和JavaScript,你认为Web应用会取代本地应用么?你自己怎么看待本地和Web应用两者之间各自的优势?

魏子钧:Web技术和Native技术不冲突,他们之间合作的意义更大,因为Web和Native之间的差异要比Web技术和Flash之间的差异还要明显,而且很多差异是会长久存在的。本地应用功能强大、性能高,Web应用简约不简单,灵活易上手、跨平台易分发,两者有着诸多方面的互补。

我觉得未来会有越来越多的应用采用混合架构,应用UI,或者基于网络的远程页面等模块用Web技术实现,对设备底层操作或者是高性能的操作用Native实现,充分发挥两者的优点。

优快云:你认为Node.js的流行对Web前端开发会有什么影响?

魏子钧:我觉得Node.js对于Web前端开发的影响主要是,让前端工程师有了一个扩展自己知识体系的快捷的桥梁。大多数前端工程师其实也是渴望了解和熟悉后端的开发,但是一些人没有时间和精力去学习Java、.NET、Python、Ruby等。而Node.js的出现,可以大大缩短学习的成本,让前端工程师可以更快捷的去一窥服务器端的神秘。即使依然做不了专业的服务器端工程师,了解后端的相关的知识对前端工程师意义巨大。

对于希望借助Node.js来提升自己价值的前端工程师一定要记住一点:Node.js并不能保证让一位优秀的前端工程师变成合格的Server端工程师。Server端也没有什么东西是其他技术难以实现(只能靠Node来实现)的。所以对Node.js不可盲目迷信,结合团队成员技术结构(是否有足够能力驾驭Node)以及项目的实际情况来选择。

优快云:你认为前端技术在移动开发领域有哪些独特之处?

魏子钧:我觉得对于用户而言,没什么独特的,很多Web技术的优良特性是用户不关心也难以感知的。但是对于有些研发团队而言,Web技术相对低廉的跨平台移植成本确实是蛮有吸引力的,当然有吸引力的不止这一点(这个话题牵涉到Web技术的优劣分析)。同时,市场上Web研发人员储备相对充足(和iOS等技术人才相比),这对于某些团队来说也算是一个好消息。

优快云:对于Web开发的未来,你觉得那些技术最值得开发者关注,或者需要开发者掌握?对于希望学习Web开发的初学者,你有什么建议?

魏子钧:在未来很长一段内,所谓Web前端技术本质上肯定还是HTML+CSS+JavaScript。这里面最重要的我觉得还是JS。JS掌握好了, 未来即使再出来HTML 6 7 8 ...,我相信也能快速掌握。因为HTML新的版本无非带来一些新的API、 新的标签、新的CSS属性,这些东西的学习成本相对而言还是很低的。

而且虽然浏览器兼容问题会长久的存在下去,但是事实上浏览器彼此之间在代码兼容性上的问题越来越小了。所以过去耗费前端工程师大量精力的”跨浏览器兼容问题“在未来成本会很低,而“如何运用JS来操控HTML+CSS,以满足日趋复杂的业务需求和高质量的用户体”将成为重中之重。

对于初学者的建议简单来说就是三个字“不轻视”。首先,不要觉得Web技术学起来很简单。单独来看HTML、CSS、JS似乎都不难,学习每一样的成本看起来都不高。但是三者的融合还是需要耗费大量的精力去学习的,而且“灵活、好玩、应用广泛但却有硬伤的JS”本身也没有看起来那么容易驾驭。其次,不要觉得Web技术能做的事情很简单。很多没有从事过Web开发的人,一直觉得前端开发就是做网页、切图,在校学生用DreamWeaver也能做的很好。这种说法是完全错误的,我相信随着整个行业的发展,大家会慢慢意识到前端技术的意义和价值。

优快云和ITeye记录的成长

优快云:你在学习或工作中,是怎么接触到优快云和ITeye的?社区对你的工作和学习有什么影响?

魏子钧:我和很多人一样,在学校时就经常上优快云的论坛,在那里得到过很多朋友的帮助。后来知道JavaEye(现在的ITeye)则是通过搜索引擎。真正成为ITeye重度用户则是从它开办博客开始。说到ITeye对我的帮助,主要有三方面:一是确实学习到了很多知识,解决了很多问题。二是认识了很多朋友。三是在ITeye上,我通过分享自己的一些东西,也收获了一些知名度。虽然所谓知名度只是一种虚名,但是必须承认,这对我的人生起到了很大的积极作用。我确实非常感谢ITeye这个平台。

在常混ITeye的时候,发生过很多好玩的事情,有些甚至是不堪回首。例如,我在ITeye上还发表过挺IE6的幼稚言论,或者是发表过一些那时候自以为不错,但现在看起来很丢人的东西。但不管怎样,那些都记录了我的成长,我不后悔有这些回忆留在那里。

优快云:你对优快云有什么建议?

魏子钧:随着互联网的发展,人们学习、分享、沉淀知识的方式和渠道非常之多,BBS、论坛、门户、博客、WIKI、搜索引擎、SNS网络等。在这种情况下,经营一个技术社区变得异常困难。在这方面我也没什么心得体会,也难以给出什么好的建议,我就简单说说我的期待吧。希望未来优快云能够发挥更强大的整合能力,去与各个垂直领域的优秀社区或团体合作,让优快云成为够广度也有深度的平台。

博客地址:http://fins.iteye.com/

更多精彩内容,请点击:社区之星系列专访

### 光流法C++源代码解析与应用 #### 光流法原理 光流法是一种在计算机视觉领域中用于追踪视频序列中运动物体的方法。它基于亮度不变性假设,即场景中的点在时间上保持相同的灰度值,从而通过分析连续帧之间的像素变化来估计运动方向速度。在数学上,光流场可以表示为像素位置时间的一阶导数,即Ex、Ey(空间梯度)Et(时间梯度),它们共同构成光流方程的基础。 #### C++实现细节 在给定的C++源代码片段中,`calculate`函数负责计算光流场。该函数接收一个图像缓冲区`buf`作为输入,并初始化了几个关键变量:`Ex`、`Ey``Et`分别代表沿x轴、y轴时间轴的像素强度变化;`gray1``gray2`用于存储当前帧前一帧的平均灰度值;`u`则表示计算出的光流矢量大小。 #### 图像处理流程 1. **初始化预处理**:`memset`函数被用来清零`opticalflow`数组,它将保存计算出的光流数据。同时,`output`数组被填充为白色,这通常用于可视化结果。 2. **灰度计算**:对每一像素点进行处理,计算其灰度值。这里采用的是RGB通道平均值的计算方法,将每个像素的R、G、B值相加后除以3,得到一个近似灰度值。此步骤确保了计算过程的鲁棒性效率。 3. **光流向量计算**:通过比较当前帧前一帧的灰度值,计算出每个像素点的Ex、EyEt值。这里值得注意的是,光流向量的大小`u`是通过`Et`除以`sqrt(Ex^2 + Ey^2)`得到的,再乘以10进行量化处理,以减少计算复杂度。 4. **结果存储与阈值处理**:计算出的光流值被存储在`opticalflow`数组中。如果`u`的绝对值超过10,则认为该点存在显著运动,因此在`output`数组中将对应位置标记为黑色,形成运动区域的可视化效果。 5. **状态更新**:通过`memcpy`函数将当前帧复制到`prevframe`中,为下一次迭代做准备。 #### 扩展应用:Lukas-Kanade算法 除了上述基础的光流计算外,代码还提到了Lukas-Kanade算法的应用。这是一种更高级的光流计算方法,能够提供更精确的运动估计。在`ImgOpticalFlow`函数中,通过调用`cvCalcOpticalFlowLK`函数实现了这一算法,该函数接受前一帧当前帧的灰度图,以及窗口大小等参数,返回像素级别的光流场信息。 在实际应用中,光流法常用于目标跟踪、运动检测、视频压缩等领域。通过深入理解优化光流算法,可以进一步提升视频分析的准确性实时性能。 光流法及其C++实现是计算机视觉领域的一个重要组成部分,通过对连续帧间像素变化的精细分析,能够有效捕捉理解动态场景中的运动信息
微信小程序作为腾讯推出的一种轻型应用形式,因其便捷性与高效性,已广泛应用于日常生活中。以下为该平台的主要特性及配套资源说明: 特性方面: 操作便捷,即开即用:用户通过微信内搜索或扫描二维码即可直接使用,无需额外下载安装,减少了对手机存储空间的占用,也简化了使用流程。 多端兼容,统一开发:该平台支持在多种操作系统与设备上运行,开发者无需针对不同平台进行重复适配,可在一个统一的环境中完成开发工作。 功能丰富,接口完善:平台提供了多样化的API接口,便于开发者实现如支付功能、用户身份验证及消息通知等多样化需求。 社交整合,传播高效:小程序深度嵌入微信生态,能有效利用社交关系链,促进用户之间的互动与传播。 开发成本低,周期短:相比传统应用程序,小程序的开发投入更少,开发周期更短,有助于企业快速实现产品上线。 资源内容: “微信小程序-项目源码-原生开发框架-含效果截图示例”这一资料包,提供了完整的项目源码,并基于原生开发方式构建,确保了代码的稳定性与可维护性。内容涵盖项目结构、页面设计、功能模块等关键部分,配有详细说明与注释,便于使用者迅速理解并掌握开发方法。此外,还附有多个实际运行效果的截图,帮助用户直观了解功能实现情况,评估其在实际应用中的表现与价值。该资源适用于前端开发人员、技术爱好者及希望拓展业务的机构,具有较高的参考与使用价值。欢迎查阅,助力小程序开发实践。资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值