如何在短时间内快速入门the social networkk Analysis

来自子话题:
1. 门槛低&br&&br&一方面,JavaScript语言的使用门槛低,另一方面,JavaScript框架的编写成本很低,很可能一屏幕代码都不到的东西,也说自己是个框架。&br&&br&2. 基数大&br&&br&因为使用的门槛低,所以造成了使用者基数非常大。不管什么东西,人多了想法就会多,在同等状况下就欣欣向荣一些。&br&&br&3. 场景广&br&&br&它的使用场景很广,除了广为人知的在浏览器中使用,还有ASP、node、fib之类的服务端使用场景,Photoshop等软件或者某些自动化工具中作为嵌入脚本,早期Flash中用作编程语言,dlr之类的跑在clr上面的脚本语言,基于node的一些工程构建方案(当作命令行工具使用),node-webkit之类的跨终端解决方案,react-native之类的多端解决方案,甚至还有一些嵌入式开发场景,都离不开它的身影。&br&&br&4. 坑多&br&&br&以使用场景而言,它是够资格跟一些很主流的编程语言并列的,比如C++,Java,C#等,它们也能够做很多东西,但是我们注意到,这些东西在很多场景下都有很强大的官方解决方案,导致非官方的很难流行,比如典型的微软的那一些,本身做得太好了,你已经不需要做什么,即使非要做,也很难比官方的好。&br&&br&比如.net framework,比如jdk,比如stl和qt,要么是在语言层面提供了强大的配套,要么在某些场景下给出解决方案,要么兼而有之,我们的js什么都没有。&br&&br&但是js在比如浏览器这样的场景下,是唯一候选人,所以要用它做符合自己需要的事情,基本上都需要作一些补充和约束,这也就有了各种框架的基本诉求和愿景。&br&&br&遗憾的是,直到近期,js语言本身在工程化方面的一些坑才逐渐有了官方的升级,比如模块机制之类,我们的框架或者库作者们在今后的一段时间内,恐怕会更加前赴后继地推出自己的轮子,这就迎来了终极问题:&br&&br&该如何选择?&br&&br&我经常看到很多JavaScript框架/库的使用者或者作者坚持某一条路,把其他路贬低得一文不值,但就目前情况来说,这些东西之间的关系存在几种:&br&&br&1. 竞争与淘汰&br&&br&比如某些东西已经实际出局,某些东西由于标准演进导致场景失效而衰落,某些东西由于跟同类东西相比明显落于下风等等。&br&&br&2. 升级&br&&br&新版本希望彻底取代老版本,进行彻底的重构,比如Angular。&br&&br&3. 互补&br&&br&很多人没有意识到,我们吃菜并不是只吃一种的,每种菜都有它的价值,哪种框架/库比较好,要考虑到:&br&&br&它定位于什么领域,解决哪些问题,适合什么样的人等等,所以这些东西很大程度上是并存,共荣,互相学习,共同演进的。&br&&br&最后黑一下,js框架基数大还有个原因,因为前端相对来说性格都比较活泼一点,人也有朝气好相处,比如同样水平的一个东西,前端这里有勇气拿出来显摆,大家都说哇你好厉害,谢谢大神,1024之类,但可能在Java那边,他都不好意思拿出来说,一放出来,大家都说,弱爆,负分滚粗,再学20年吧。
1. 门槛低一方面,JavaScript语言的使用门槛低,另一方面,JavaScript框架的编写成本很低,很可能一屏幕代码都不到的东西,也说自己是个框架。2. 基数大因为使用的门槛低,所以造成了使用者基数非常大。不管什么东西,人多了想法就会多,在同等状况下就欣欣…
来自子话题:
就我的理解而言,前端的重要性并不在于 @haochuan 所提到的各种知识栈,因为细枝末节地说起来,每个技术岗位总有各种难点,不足为证。况且难和重要之间,我总觉得还是有些差距的。&br&&br&在我看来,“前端”——不精确地可以定义为&b&所有直接和用户打交道的关节&/b&,是&b&用户感知到这个网站对自己诚意的直观反映&/b&。&br&&br&就像一个人长得漂亮,你或许就愿意多看两眼。慢慢聊着觉得原来这人太肤浅,是个银样蜡枪头。但反过来,如果这人长得很丑,即使拥有一颗美丽的心,恐怕愿意去了解的人也实在是需要一些慧眼的。&br&所以,前端工程师做的事,就是&b&用有诚意的第一印象,尽可能多地给用户了解网站更多内涵的机会&/b&。&br&要严格追究起来,当然每个职业都重要,否则也不存在这个职业了,这么讨论就没意思了。我这里说前端重要,是说它的确值得被关注被重视。&br&&br&&br&网页刚刚诞生的年代,用户只关心内容。后来,网页样式作为辅助有效阅读的工具被采纳,用户觉得“哦,加粗的地方是站长想强调的”,但他们并不在意网页有多“好看”。再后来,平面设计师把他们的经验借鉴进来,用户惊讶地发现原来网页也可以有品味的差别。网页设计风格亦如巴黎当季服装设计风格那样潮起潮落,人们开始把“现在流行 material design 啊”这样的话挂在嘴边。不仅如此,随着 T 台上一次次奇装异服的发布会,观众开始意识到衣服可以有声音,可以有味道,我们的网页也终于变得几乎无所不能。&br&这是一个从原始人吃生食,到发现了火,吃上熟食,再慢慢学会用佐料进行烹饪的过程。在吃不饱饭的年代,当然没人在意豆腐脑是甜的还是咸的好吃。然而人类这种永远不会满足的生物,吃饱了撑的自然要对饮食提出更高要求,进行更多探索。&br&&b&近年来“前端工程师”越来越受到重视,难道不正是这种“仓廪实而知礼节,衣食足而知荣辱”的进阶追求吗?&/b&&br&&br&至于说优秀的前端工程师难找,我想说(来找我啊~)不是因为低头写代码的人太多,抬头望星空的人太少;而是这两件事都做的人太少。&br&&br&&br&或许每个行业的人都会把自己做的事说得很重要是一个不争的事实,更何况程序员又格外偏好“改变世界”那一套(虽然作为道家思想拥护者的我是很反对的)。&br&前端很重要,它决定了用户看不看;网站内容本身更重要,它决定了用户看多久。把前端说成是网站的“包装”或许有些自降身价,但我觉得倒也不失为一个很好的比喻:&br&&b&只有当你的产品本身是高大上的,恰到好处的包装才会让其锦上添花;反之,如果产品本身是个空壳子,却妄图通过包装令其脱胎换骨,那么,&br&&br&或许前端是没什么用吧?&/b&
就我的理解而言,前端的重要性并不在于 @haochuan 所提到的各种知识栈,因为细枝末节地说起来,每个技术岗位总有各种难点,不足为证。况且难和重要之间,我总觉得还是有些差距的。在我看来,“前端”——不精确地可以定义为所有直接和用户打交道的关节,是…
来自子话题:
关于编码和乱码的问题,我简单讲一下。&br&&br&通常问这类问题的人是混淆了若干个不同的概念,并且他们自己也没有意识到自己混淆了这些概念的。&br&&br&&ol&&li&终端显示字符的编码(windows下终端是cmd,linux下是各种terminal,远程登录是putty或者xshell)&/li&&li&shell环境的编码。比如中文版windows用的是gbk(向下兼容gb2312),大多数linux发行版使用的是utf-8(LANG=zh_CN.UTF-8)。&/li&&li&文本文件的编码。这个通常取决于你的编辑器,而且有的编辑器支持多种编码的话,你可以在文本开头位置指定编辑器使用特定编码。比如# -*- coding: utf8 -*-,vim看到这行会默认将这个脚本认定为utf-8兼容编码格式。&/li&&li&应用程序的内部编码。一个字符串,作为数据只是一个字节数组,但是作为字符的数组,就有一个解析方式。java和python的内部字符编码是utf-16,python和java都支持用不同的编码来对字节数组进行decode来得到字符数组。&/li&&/ol&&br&拿题主的问题来解释一下。&br&&br&我在ubuntu kylin中文环境下默认terminal中做了同样的实验,但是结果和题主恰好相反:&br&&img src=&/bad5f967fd86bf_b.jpg& data-rawwidth=&897& data-rawheight=&150& class=&origin_image zh-lightbox-thumb& width=&897& data-original=&/bad5f967fd86bf_r.jpg&&&br&&img src=&/95da068c1c475bff4377f4dcac11ec21_b.jpg& data-rawwidth=&327& data-rawheight=&48& class=&content_image& width=&327&&&br&&br&看见没有?&br&&br&题主和我都没有说谎,这是为什么呢?&br&因为&br&&div class=&highlight&&&pre&&code class=&language-text&&unicode(&汉字&,&gb2312&)
&/code&&/pre&&/div&这坨代码的含义实际上是:将这里显示的这坨看上去像“&b&汉字&/b&”的东西,用gb2312解码,转换为unicode字符串。unicode(&汉字&,&utf-8&)类似,只不过是用utf-8解码,转成unicode字符串。&br&&i&(注:这里涉及到两个概念——unicode字符集和utf-8编码——很多时候会用混淆,一个字符集表示一堆符号,而一种编码是用二进制表示这个字符集的一种编码方式。同样是unicode字符集,可以有utf-8、utf-16、utf-32等等编码方式。)&/i&&br&&br&那这里显示的看上去像“&b&汉字&/b&”的,tmd的到底是个什么东西?&br&&br&&ol&&li&如果是在我的环境下,也就是linux utf-8环境下一个utf-8显示终端,能显示成“汉字”的这坨东西,它实际上是以utf-8编码的“汉”字和“字”字两个unicode字符。它们的真实&b&字符值&/b&就是u'\u6c49\u5b57'(内码),可以用&汉字&.encode(&hex&)来查看当前终端下(utf-8编码值)的十六进制码。&br&&img src=&/1be8f4d342f_b.jpg& data-rawwidth=&265& data-rawheight=&50& class=&content_image& width=&265&&。所以我的命令是,&b&将'e6b189e5ad97'这坨字节数组,转换为unicode的字符数组&/b&。——结果毫无难度,没有错误,因为它本来就是utf-8编码,所以能够正常作为unicode字符解码。&br&但是unicode(&汉字&, &gb2312&)就不一样了,这个命令等同于“将'e6b189e5ad97'这坨东西,用gb2312编码方式来解码成字符”,但是实际上由于编码空间并不兼容,使用gb2312编码方式无法解码这么一坨奇葩的数据,所以葛屁了。&/li&&li&在题主的环境下,因为系统终端和默认文件编码都是GBK,所以这个数实际上是&br&&img src=&/aa2db33dfc126b19fec0176_b.jpg& data-rawwidth=&202& data-rawheight=&34& class=&content_image& width=&202&&这个实际上是gbk(兼容gb2312)的字符“汉字”的真实字节数组。&br&所以对这坨数据做unicode(&汉字&,&utf8&)会失败——因为不管你怎么想,虽然看上去是一样,但是实际上不是同一坨东西啊!&/li&&li&题主现在弄了一个文件,在开始加上了&br&# -*- coding: utf8 -*-&br&这下编辑器看到了,知道这文件是utf-8的了。所以编辑器对读入的一坨坨字节用utf-8来解码,对于输出到磁盘的汉字也用utf-8来编码。所以你在文件里面看到的看上去像“汉字”的东西,就和第一种情况下想同了,当然代码就跑得通。&br&&b&顺便说一下,如果编辑器无视行首这行编码声明,或者编辑器无法支持utf-8格式,那么你弄好的文件在那个编辑器下就会显示乱码,多么简单的道理啊。&/b&&/li&&/ol&&br&所以,要能够正常的显示中文(或者其他什么乱七八糟奇葩的多字节文字),以下条件缺一不可:&br&&ol&&li&终端和环境的编码一致(本机通常是一致的,不一致常常出现在远程登录);如果不一致就需要有编辑器或者文本阅读器做一个兼容两者的转换。&/li&&li&编辑器能够认识文本编码&/li&&li&系统拥有能显示这种&b&字符&/b&的字体。&/li&&/ol&&br&&b&这也就是我为什么一直反对在程序文本中使用除ascii之外的所有编码字符的原因。环境太复杂了,绕开问题远比解决问题轻松。&/b&&br&&br&&br&这下你明白了?
关于编码和乱码的问题,我简单讲一下。通常问这类问题的人是混淆了若干个不同的概念,并且他们自己也没有意识到自己混淆了这些概念的。终端显示字符的编码(windows下终端是cmd,linux下是各种terminal,远程登录是putty或者xshell)shell环境的编码。比如…
来自子话题:
1. Web performance APIs ,可以得到各种时间比如dns解析时间、连接时间、跳转时间、加载时间等指标,具体请自行查资料,不赘述。&br&2. 浏览器的私有API,比如 chrome.loadTimes()&br&3. DOM ready/load 事件&br&4. 白屏时间(first paint time)&br&5. 首屏时间(Above-the-fold time)&br&&br&4和5尚无公认的确定方法和对应api。特别是5,怎么定义首屏没有统一的标准。因此需要自行确定,并用一些相对hack的方式获取。前一段时间百度和腾讯都有人分享过他们的做法,可以参考,具体链接等回头找到了再补。&br&&br&如果只是要大致了解网站的性能,最简单的办法是使用Google Analytics,它包含了性能统计。如果要非常细致的数据(比如web performance api上的数据),可以自己写,也可用我写的这个库:&a href=&///?target=http%3A///hax/WebPerf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/hax/WebPerf&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& (有基本的兼容处理,但优化不够,所以我们自己只取样5%~10%的用户加载这个脚本。下个月我还会抽时间改进)。
1. Web performance APIs ,可以得到各种时间比如dns解析时间、连接时间、跳转时间、加载时间等指标,具体请自行查资料,不赘述。2. 浏览器的私有API,比如 chrome.loadTimes()3. DOM ready/load 事件4. 白屏时间(first paint time)5. 首屏时间(Above-th…
来自子话题:
这对他来说的确是最省事最简洁最有效率的做法,看不出你的胜算在哪,,,&br&&br&&a class=&member_mention& href=&///people/ecc0ec035f& data-tip=&p$b$ecc0ec035f& data-hash=&ecc0ec035f&&@vczh&/a& 的方法是无效的,因为首先产品狗根本管不着服务器端传什么数据,需求变更只会传达到前端,所以这个程序员的做法是以不变应万变,他把数据库直接暴露给你了,所以除非需求要修改数据库,他都完全不用修改任何代码,而如果需要修改数据库,他的修改也非常简单。&br&&br&&br&这种情况,正确的反驳方式是用海量的请求对服务器端发起DoS攻击,令其不得不缩减传输数据大小和增加缓存来改善性能。&br&&br&如果你的DoS也不能让对方失去响应,或者你们根本没有这么大的流量,那么说明他的设计就是合理的。那这个问题就只是两个程序员工作量分配的问题了,这事儿应该找你的上级去反映。&br&&br&&br&&br&任何设计原则其背后一定有其原因,抛开场景谈原则的架构师都是十足的骗子——Ivony。
这对他来说的确是最省事最简洁最有效率的做法,看不出你的胜算在哪,,, 的方法是无效的,因为首先产品狗根本管不着服务器端传什么数据,需求变更只会传达到前端,所以这个程序员的做法是以不变应万变,他把数据库直接暴露给你了,所以除非需求要修改…
来自子话题:
Python 3 作出的不兼容改动,我觉得对这门语言是有很大益处的。修正的地方其实是以前的设计失误, 下面举两个最明显的例子。&br&首先是print由 statement 转变为函数。看看这个语法:&br&&div class=&highlight&&&pre&&code class=&language-text&&print && outfile, arg1, arg2
&/code&&/pre&&/div&和新的语法&br&&div class=&highlight&&&pre&&code class=&language-text&&print(arg1, arg2, file=outfile)
&/code&&/pre&&/div&在 Python 2, 当你想输出不换行的时候, 要这样, 在后面加一个逗号:&br&&div class=&highlight&&&pre&&code class=&language-text&&print arg1, arg2,
&/code&&/pre&&/div&但这样不可避免地会出现一个空格。&br&Python 3 里面,解决了这个问题&br&&div class=&highlight&&&pre&&code class=&language-text&&print(arg1, arg2, end='')
&/code&&/pre&&/div&而且好处还有更多, 因为 Python 函数参数传递的表达能力很强,对print引入特殊语法反而约束了表达能力, 例如不能用 * 号展开参数。&br&&br&第二个例子,当然是字符串的问题了, 相信用过 Python 2 的人都被decode, encode什么的坑过。Python 2 里面:&br&&div class=&highlight&&&pre&&code class=&language-text&&bytes is str
# True !!!
&/code&&/pre&&/div&这坑爹呢!&br&&br&在 Python 3 里面, 通过把 str 分成 str 和 bytes 两个概念,很好的解决了这个问题。str.encode, bytes.decode, 学习了 Python 3 甚至可以帮助你理解 Python 2 这个地方为什么这么坑, 这完全是个设计失误,迟早要改的。
Python 3 作出的不兼容改动,我觉得对这门语言是有很大益处的。修正的地方其实是以前的设计失误, 下面举两个最明显的例子。首先是print由 statement 转变为函数。看看这个语法:print && outfile, arg1, arg2
和新的语法print(arg1, arg2, file=outfile)
来自子话题:
谢邀。这里面有两个问题:1. 在opinion extraction/IR中如何使用句法分析;2. 句法分析在多大程度上对这两个任务有帮助(原题)。&br&&br&由于我自己主要还是做句法分析本身,暂时很少做上层应用,所以简单谈谈我对应用的理解,抛砖引玉。&br&&br&&b&1. 在opinion extraction/IR中如何使用句法分析。&/b&&br&举几个例子吧。&br&比如在opinion extraction中我们常常要抽取评价对象(aspect):&br&&i&&u&&b&例:&/b&“知乎的内容质量很好”&/u&&/i&&br&这里 “很好” 形容的是 “内容质量”。通过依存句法分析,就可以抽取出对应的搭配。如下图:&br&&img src=&/671d68ce4b442c9880baadfee835b25b_b.png& data-rawwidth=&385& data-rawheight=&138& class=&content_image& width=&385&&(顺手插个广告,分析结果来自我们实验室的语言云:&a href=&///?target=http%3A//www./demo/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&在线演示 |
语言云(语言技术平台云 LTP-Cloud)&i class=&icon-external&&&/i&&/a&)&br&&br&再说说IR,以百度框计算为例。对于以下两个query:&br&&u&&i&&b&Query 1: &/b&谢霆锋的儿子是谁?&/i&&/u&&br&&u&&i&&b&Query 2:&/b& 谢霆锋是谁的儿子?&/i&&/u&&br&这两个Query的bag-of-words完全一致,如果不考虑其语法结构,很难直接给用户返回正确的结果。类似的例子还有很多。在这种情况下,通过句法分析,我们就能够知道用户询问的真正对象是什么。&br&&img src=&/ebf2cc1f85b1b191d578fd_b.png& data-rawwidth=&384& data-rawheight=&174& class=&content_image& width=&384&&&br&&img src=&/fed165a9dc853fe48c099d_b.png& data-rawwidth=&383& data-rawheight=&172& class=&content_image& width=&383&&&br&&br&推而广之,对Query进行更general的需求分析大都离不开描述对象的提取,很多时候句法结构非常关键,更是下一步语义分析的前提。&br&&br&&b&2. 句法分析在多大程度上对这两个任务有帮助(原题)。&/b&&br&&br&原问题很好,可以扩展出很多思考。在炼丹纪到来之前,也许我们可以给一个非常乐观的回答,比如60%。但是现如今,我们需要思虑再三。主要原因在于,RNN/LSTM等强大的时序模型(sequential modeling)能够在一定程度上刻画句子的隐含语法结构。尽管我们暂时无法提供一个清晰的解释,但是它在很多任务上的确表现出非常promising的性能。&br&推荐一下车万翔老师前段时间写的一个简单的survey:&a href=&///?target=http%3A//mp./s%3F__biz%3DMzIxMjAzNDY5Mg%3D%3D%26mid%3Didx%3D1%26sn%3D4d2ae05effaa0ded9332%26scene%3D2%26srcid%3D1015LyJAMxAtArMzdyKyIRHh%26from%3Dtimeline%26isappinstalled%3D0%23rd& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&哈工大车万翔:自然语言处理中的深度学习模型是否依赖于树结构?&i class=&icon-external&&&/i&&/a&&br&&br&文中的一个性能对比能够说明问题:Tree-LSTM是基于句法结构之上的LSTM,Bi-LSTM则是简单的双向(left&-&right)LSTM。在很多任务上,Bi-LSTM都表现得比Tree-LSTM更好。&br&&img src=&/157d8ff935310faa35b5ffe0fc3a3bf7_b.png& data-rawwidth=&482& data-rawheight=&190& class=&origin_image zh-lightbox-thumb& width=&482& data-original=&/157d8ff935310faa35b5ffe0fc3a3bf7_r.png&&&br&但是,这并不说明句法结构是没有用的,详细分析请参考上面提到的survey。&br&&br&需要提及的是,句法分析目前的性能是防碍其实际应用的一个关键因素,尤其是在open-domain上。目前在英文WSJ上的parsing性能最高能够做到94%,但是一旦跨领域,性能甚至跌到80%以下,是达不到实际应用标准的。而中文上parsing性能则更低。
谢邀。这里面有两个问题:1. 在opinion extraction/IR中如何使用句法分析;2. 句法分析在多大程度上对这两个任务有帮助(原题)。由于我自己主要还是做句法分析本身,暂时很少做上层应用,所以简单谈谈我对应用的理解,抛砖引玉。1. 在opinion extraction/I…
来自子话题:
&b&这个是xss,不是跨域。url参数直接原文在html里面展示了,导致页面代码可以被传入参数修改。&/b&&br&虽然是做后台开发,但是我几年前刚入职时也写过一段时间页面。我很羞愧地告诉大家,xss、csrf之类的漏洞,我写出过不下20回。大部分漏洞都被安全平台扫出来了,极少部分发到外网,被发现,留下了心理阴影。就算今天来写,我也胆战心惊,怕一不小心就会写出漏洞。&br&为什么?因为腾讯的生产工具太落后了。&br&腾讯的网站,基本都是cgi裸写出来的。腾讯网站上的每个页面,其实都是用printf,cout,或out.print输出来的,模板引擎之类有性能开销的东西,腾讯基本是不考虑使用的。那么多页面,都是手工拼出来,还要记得每个参数都转义一下,难免有一两个参数漏掉了,于是xss漏洞就出来了。&br&一些人认为腾讯作为大厂,技术还不至于这么烂吧?其实腾讯崇尚的技术,都是高性能、高并发、大数据、分布式之类的。你要是写了个模板引擎,说可以提升开发效率,避免xss漏洞,去面试T3估计是难以通过的。&br&&b&由于分工明确,搞安全的专门搞安全,写代码的专门写代码,导致很多普通程序员其实是没有什么安全知识的。而写页面这种低端工作,就是专门交给应届生等新手来写的。新手没有被xss搞过,觉得写页面毫无难度,于是漏洞自然就更多了。&/b&&br&由于新手写出的xss漏洞实在太多,老手写出的xss也很多,于是安全平台部搞了个安全扫描网站。但是扫描它也得知道页面有哪些参数,于是安全平台部搞了一个客户端安装在各开发同学电脑上,收集访问过的url,用于安全扫描。但是这种泄漏个人隐私的事情,显然是得不到程序员的支持的。于是没有推广成功。安全平台部又想从开发网路由器上去捞日志,但是这个路由器是属于另一个部门的,而且不管是领导还是员工,大家都有访问敏感网站的需求,于是注定了这条路也不能成功。安全平台部又想从各idc机器上去捞访问日志,但是各机器也是属于不同部门的,注定也很难成功。后来安全平台部发现,漏洞反正都是你们自己的事,于是他也不管了,让你自己主动去扫描。&br&我当年的部门还是比较注意安全的,在发布时主动提交url到安全平台进行扫描。安全平台从这个url出发,使用爬虫技术,把所有的url获取出来,都扫一下。然而也难免漏网之鱼,那些爬不到的,或是爬到的参数不足的,漏洞是不一定能扫出来的。&br&&b&所以腾讯的网站,漏洞也会有很多的,而且你反馈漏洞给腾讯安全,他们还不一定能立即找到对应的负责人,所以修复漏洞也是要很久的。&/b&&br&===================================================================&br&个人观点,不代表任何公司立场。
这个是xss,不是跨域。url参数直接原文在html里面展示了,导致页面代码可以被传入参数修改。虽然是做后台开发,但是我几年前刚入职时也写过一段时间页面。我很羞愧地告诉大家,xss、csrf之类的漏洞,我写出过不下20回。大部分漏洞都被安全平台扫出来了,极…
来自子话题:
前面有不少回答了,其中有部分靠谱的内容,感觉要补充也挺麻烦的,俺就放个俺推荐的书单吧:&br&&a href=&///?target=http%3A///doulist/2529397/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[Garbage Collection][垃圾回收][自动无用内存单元回收]相关读物&i class=&icon-external&&&/i&&/a&&br&《The Garbage Collection Handbook》非常开眼界,能完美回答题主的问题。&br&&br&不想买书的话从这个网站开始学习也行:&a href=&///?target=http%3A//www.memorymanagement.org/mmref/index.html%23mmref-intro& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Introduction to memory management&i class=&icon-external&&&/i&&/a&&br&&br&也欢迎关注这个HLLVM群组的论坛,&a href=&///?target=http%3A//hllvm./& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&高级语言虚拟机&i class=&icon-external&&&/i&&/a&&br&我以前发过一些帖,例如说介绍copying GC的基础实现:&a href=&///?target=http%3A//hllvm./group/topic/39376%23post-257329& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&HotSpot VM Serial GC的一个问题&i class=&icon-external&&&/i&&/a&&br&以及G1 GC的实现:&a href=&///?target=http%3A//hllvm./group/topic/44381%23post-272188& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[HotSpot VM] 请教G1算法的原理&i class=&icon-external&&&/i&&/a&&br&以及几种GC的比较:&a href=&///?target=http%3A//hllvm./group/topic/38223%23post-248757& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&并发垃圾收集器(CMS)为什么没有采用标记&i class=&icon-external&&&/i&&/a&&br&&br&引用计数与tracing GC的讨论俺也就放个传送门好了:&a href=&/question//answer/& class=&internal&&垃圾回收机制中,引用计数法是如何维护所有对象引用的? - RednaxelaFX 的回答&/a&&br&&br&=======================================================&br&&br&另外对问题描述吐个槽:&br&&blockquote&无意中看到JavaScript V8和Python中也是使用引用计数和标记清除作为垃圾回收的基础方法,想问问 是否还有其他的垃圾回收算法?&br&&/blockquote&(C)Python是用引用计数为主、mark-sweep为备份没错。&br&&br&但是V8的GC并不是单纯基于mark-sweep的。&br&&br&最初发布的时候,V8还比较简单,采用分两代的GC,其中new space用copying GC,然后global GC根据碎片化状况选择性使用mark-sweep或mark-compact。&br&其抽象思路可以看这个入口函数:&a href=&///?target=https%3A///v8/v8/blob/0.1/src/mark-compact.cc%23L78& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&v8/mark-compact.cc at 0.1 · v8/v8 · GitHub&i class=&icon-external&&&/i&&/a&&br&&div class=&highlight&&&pre&&code class=&language-cpp&&&span class=&kt&&void&/span& &span class=&n&&MarkCompactCollector&/span&&span class=&o&&::&/span&&span class=&n&&CollectGarbage&/span&&span class=&p&&()&/span& &span class=&p&&{&/span&
&span class=&n&&Prepare&/span&&span class=&p&&();&/span&
&span class=&n&&MarkLiveObjects&/span&&span class=&p&&();&/span&
&span class=&n&&SweepLargeObjectSpace&/span&&span class=&p&&();&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&compacting_collection_&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&n&&EncodeForwardingAddresses&/span&&span class=&p&&();&/span&
&span class=&n&&UpdatePointers&/span&&span class=&p&&();&/span&
&span class=&n&&RelocateObjects&/span&&span class=&p&&();&/span&
&span class=&n&&RebuildRSets&/span&&span class=&p&&();&/span&
&span class=&p&&}&/span& &span class=&k&&else&/span& &span class=&p&&{&/span&
&span class=&n&&SweepSpaces&/span&&span class=&p&&();&/span&
&span class=&p&&}&/span&
&span class=&n&&Finish&/span&&span class=&p&&();&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&后来V8逐渐进化,GC的实现越来越复杂。目前的默认实现是new space还是用copying GC,而global GC则默认用incremental marking + lazy sweeping为主,mark-compact为备份。
前面有不少回答了,其中有部分靠谱的内容,感觉要补充也挺麻烦的,俺就放个俺推荐的书单吧:《The Garbage Collection Handbook》非常开眼界,能完美回答题主的问题。不想买书的话从这个网站…
来自子话题:
关于微软的几种JavaScript引擎(准确说是JScript引擎)我整理过一些资料链接:&br&JScript:&a href=&///?target=http%3A//hllvm./group/topic/37596%3Fpage%3D2%23post-243749& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&hllvm./g&/span&&span class=&invisible&&roup/topic/37596?page=2#post-243749&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&Managed JScript:&a href=&///?target=http%3A//hllvm./group/topic/37596%3Fpage%3D2%23post-243750& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&hllvm./g&/span&&span class=&invisible&&roup/topic/37596?page=2#post-243750&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&Chakra:&a href=&///?target=http%3A//hllvm./group/topic/37596%23post-243739& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&hllvm./g&/span&&span class=&invisible&&roup/topic/37596#post-243739&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&br&楼主所问的,真正的大战应该在年左右就打完了。&br&2007年在CLR之上新研发的DLR正在如火如荼的开发着,上面原计划要支持首批4种语言实现:IronPython、IronRuby、Managed JScript与VBx。结果只有IronPython完整的活了下来,IronRuby完成1.1后来就没人维护了,Managed JScript惨遭取消,VBx还稍好后来融合进了&a href=&///?target=http%3A//VB.NET& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&VB.NET&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& 10。&br&&br&为啥上述4种语言实现就Managed JScript没完成就被彻底取消了呢?&br&很明显浏览器是微软的平台策略的重要组成部分。而在2008年Google推出Chrome之后整个业界都受到了重大冲击,各家都不得不重新开始大力投入资源制作优秀的浏览器实现,其中就包括高效的JavaScript引擎。&br&基于CLR/DLR可以很轻易的实现出性能优于老JScript的JavaScript引擎(2007年的Managed JScript在早期阶段就已经比IE8/JScript 5.8快了),但受到CLR基础设计的限制,想要达到“超越V8”的目标非常非常困难。微软当然不会接受只比自家的老JScript快却远不及V8的性能水平,所以选择了把资源投给JScript组去制作全新的、native的JScript,也就是后来的Chakra。这么一来Managed JScript就没资源继续下去,只好取消掉。&br&&br&Chakra是在Windows 8之前随着IE9面世的。楼主问为啥Win8的WinJS app不跑在CLR而跑在Chakra上,其实Chakra已经不是“重新弄了一个虚拟机”,而是原本就在那里现成的选择。反之,至今微软自家并没有合适的能运行现代JavaScript的基于CLR/DLR的引擎,所以Chakra是用JavaScript写Win8 app的唯一合理选择。&br&&br&顺带一提,DLR并不是CLR的一个模块,而是完全在CLR之上的一个用C#实现的普通的库。以前写过篇老文章介绍DLR的,欢迎参考:&a href=&///?target=http%3A///blog/241430& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/b&/span&&span class=&invisible&&log/241430&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&
关于微软的几种JavaScript引擎(准确说是JScript引擎)我整理过一些资料链接:JScript:Managed JScript:Chakra:楼主所问的,真正的大战应该在年左右就打完了。2007年在CLR之上新…
来自子话题:
首先这两个表达方式并不完全等同,举个简答你例子true&&0||2的值为2;而true?0:2的值为0。&br&&br&单单就效率问题,后者更高。&br&他们的计算过程:&br&
前者:&blockquote&The production LogicalANDExpression : LogicalANDExpression && BitwiseORExpression is
evaluated as follows:&br&1. Let lref be the result of evaluating LogicalANDExpression.&br&2. Let lval be GetValue(lref).&br&3. If ToBoolean(lval) is false, return lval.&br&4. Let rref be the result of evaluating BitwiseORExpression.&br&5. Return GetValue(rref).&br&&br&&br&The production LogicalORExpression : LogicalORExpression || LogicalANDExpression is evaluated as follows:&br&1. Let lref be the result of evaluating LogicalORExpression.&br&2. Let lval be GetValue(lref).&br&3. If ToBoolean(lval) is true, return lval.&br&4. Let rref be the result of evaluating LogicalANDExpression.&br&5. Return GetValue(rref).&br&&br&&br&后者:&/blockquote&&blockquote& The production ConditionalExpression : LogicalORExpression ? AssignmentExpression : AssignmentExpression is evaluated as follows:&br&1. Let lref be the result of evaluating LogicalORExpression.&br&2. If ToBoolean(GetValue(lref)) is true, then&br&
a. Let trueRef be the result of evaluating the first AssignmentExpression.&br&
b. Return GetValue(trueRef).&br&3. Else&br&
a. Let falseRef be the result of evaluating the second AssignmentExpression.&br&
b. Return GetValue(falseRef).&/blockquote&
另外,三元运算符的效率比if else高。因为if else往往会产生地址跳转,使得缓存中预加载进来的内容失效,cache不命中,重新从内存取。而三元运算符避免了这种问题。
首先这两个表达方式并不完全等同,举个简答你例子true&&0||2的值为2;而true?0:2的值为0。单单就效率问题,后者更高。他们的计算过程: 前者:The production LogicalANDExpression : LogicalANDExpression && BitwiseORExpression is evaluated as follows…
来自子话题:
&p&以下的内容无图,有gif配图的请看,在线图文地址:&a href=&///?target=http%3A///jikey/p/3607133.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&4. web前端开发分享-css,js工具篇&i class=&icon-external&&&/i&&/a&&/p&&br&&p&web前端开发乃及其它的相关开发,推荐&a href=&///?target=https%3A///jikeytang/sublime-text& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&sublime text&i class=&icon-external&&&/i&&/a&, webstorm(jetbrains公司系列产品)这两个的原因在于,有个技术叫emmet, &a href=&///?target=http%3A//docs.emmet.io& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Emmet Documentation&i class=&icon-external&&&/i&&/a&,而这两个对他的支持是:&/p&&p&sublime text 是所有编辑器里边支持emmet比较好的的唯一一款。&/p&&p&webstorm是所有编辑器里边唯一内置emmet的一款,并且将emmet的精神往前推动的一款。&/p&&br& phpstorm,idea包括所有webstorm的功能。只是phpstorm是针对phper的,idea是针对javaer,webstorm针对前端er。 &br&&p&他们的详细对比: &a href=&///?target=http%3A///5884& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/5884&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&一. css工具:&/p&&p&1. emmet &a href=&///?target=http%3A//docs.emmet.io/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Emmet Documentation&i class=&icon-external&&&/i&&/a&&/p&&p&a. 可以以插件的形式安装在dreamweaver,notepad++,editplus,&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&sublime&i class=&icon-external&&&/i&&/a&各个编辑器上。&/p&&p&&a href=&///?target=http%3A//www.qianduan.net/zen-coding-a-new-way-to-write-html-code.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Zen Coding: 一种快速编写HTML/CSS代码的方法前端观察&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A//www.qianduan.net/the-zen-coding-renamed-as-emmet.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&zen coding更名为emmet,新加更多特性前端观察&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A//www.qianduan.net/zen-coding-update-to-0-7.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&zen coding更新到 0.7前端观察&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A//www.qianduan.net/zen-coding-resources-to-update.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&zen coding资源更新前端观察&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A//www.qianduan.net/zen-coding-for-dreamweaver-plug-in-tutorial.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&zen coding的dreamweaver插件安装教程前端观察&i class=&icon-external&&&/i&&/a&&/p&&p&emmet在sublime上的效果:&/p&&p&1). css :他与其它编辑器的区别在于细节上,比如ctrl,alt+方向键可以修和里边的数值&/p&&p&2). html 效果:&/p&&p&3). sublime的emmet规则修改:&/p&&p&packages-&Emmet-&emmet-&snippets.json&/p&&p&b. 只有一个例外jetbrain公司的产品线:webstorm,phpstorm,intellij idea都是内置的,不需要安装。&/p&&p&1).&/p&&p&写js的效果:&/p&&p&2). webstorm的emmet规则修改:Files -& settings -& Live Templates&/p&&p&2. css压缩办法:&/p&&p&a. 通过正则五步替换法,适用于任何编辑器:&/p&&p&&a href=&///?target=http%3A///sky000/archive//1913719.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&五步整理你的css文件&i class=&icon-external&&&/i&&/a&&/p&&p&b. 模块化工具&/p&&p&二. js工具:&/p&&p&1. 压缩等:&/p&&p&&a href=&///?target=http%3A///%3Fpost%3D5& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Javascript代码压缩与加密解密美化器等各种小工具 -& JS百宝箱&i class=&icon-external&&&/i&&/a&&/p&&p&在线压缩&/p&&p&&a href=&///?target=http%3A//tools./& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&JS压缩, CSS压缩, javascript compress, js在线压缩,javascript在线压缩,css在线压缩,YUI Compressor压缩,Google Closure Compiler压缩,js压缩,uglifyjs压缩,javascript压缩,js美化,javascript美化,js加密,js解密,js混淆,javascript加密,javascript解密,js格式化,javascript格式化&i class=&icon-external&&&/i&&/a&&/p&&p&在线压缩&/p&&p&&a href=&///?target=http%3A//tool.oschina.net/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&在线工具 —&i class=&icon-external&&&/i&&/a&&/p&&p&工具集&/p&&p&2. 以emmet的方式开发js,php,jsp,java and so on。&/p&&p&&a href=&///?target=http%3A///jikey/archive//2420704.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Js,jQuery版Zencoding之webstorm & phpstorm&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///jikey/archive//2549347.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&php版Zencoding之 phpstorm&i class=&icon-external&&&/i&&/a&&/p&&p&3. firebug,chrome调试工具的使用: &/p&&blockquote&&p&&a href=&///?target=http%3A//ued.taobao.org/blog/%3Fp%3D5534& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&chrome developer tool 调试技巧&i class=&icon-external&&&/i&&/a&&/p&&p&chrome调试&/p&&p&&a href=&///?target=http%3A///QLeelulu/archive//2156402.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&作为Web开发人员,我为什么喜欢Google Chrome浏览器&i class=&icon-external&&&/i&&/a&&/p&&p&chrome的调试&/p&&p&&a href=&///?target=https%3A///chrome-developer-tools/docs/commandline-api& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/c&/span&&span class=&invisible&&hrome-developer-tools/docs/commandline-api&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&chrome console 命令详解&/p&&p&&a href=&///?target=http%3A///blog/2008/06/firebug_tutorial.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Firebug入门指南&i class=&icon-external&&&/i&&/a&&/p&&p&Firebug入门指南&/p&&p&&a href=&///?target=http%3A///blog/2011/03/firebug_console_tutorial.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Firebug控制台详解&i class=&icon-external&&&/i&&/a&&/p&&p&Firebug控制台详解&/p&&p&&a href=&///?target=https%3A///chrome-developer-tools/docs/mobile-emulation& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/c&/span&&span class=&invisible&&hrome-developer-tools/docs/mobile-emulation&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&chrome移动版调试&/p&&p&&a href=&///?target=http%3A///archives/296& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android上的远程调试&i class=&icon-external&&&/i&&/a&&/p&&p&【译】Android上的远程调试&/p&&p&&a href=&///?target=http%3A///31178/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&用Chrome开发者工具做JavaScript性能分析&i class=&icon-external&&&/i&&/a&&/p&&p&用Chrome开发者工具做JavaScript性能分析&/p&&p&&a href=&///?target=http%3A///code-snippets/mobile-web-code-snippets/1384.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&用谷歌(Chrome)浏览器来当手机模拟器&i class=&icon-external&&&/i&&/a&&/p&&p&用谷歌(Chrome)浏览器来当手机模拟器&/p&&p&&a href=&///?target=http%3A///xiaoyao2011/p/3447421.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&查看html元素绑定的事件与方法的利器&i class=&icon-external&&&/i&&/a&&/p&&p&查看事件绑定&/p&&p&chrome.exe --user-agent=&Mozilla/5.0 (L U; Android 2.2; en- Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1&&/p&&p&&a href=&///?target=http%3A//jinlong.github.io/blog//devtoolsecrets/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&jinlong.github.io/blog/&/span&&span class=&invisible&&/devtoolsecrets/&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&综合浏览器开发工具&/p&&p&&a href=&///?target=http%3A//ccforward.net/2013/02/firebug_console.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&关于FireBug和Chrome的控制台&i class=&icon-external&&&/i&&/a&&/p&&p&关于FireBug和Chrome的控制台&/p&&p&&a href=&///?target=http%3A//www.oschina.net/translate/performance-optimisation-with-timeline-profiles& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&使用Chrome DevTools的Timeline和Profiles提高Web应用程序的性能&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///article-25-1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&提示信息 -
HTML5开发者社区&i class=&icon-external&&&/i&&/a&&/p&&p&chrome profiles&/p&&p&&a href=&///?target=http%3A///deercoder/archive//158886.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Chrome神器Vimium快捷键学习记录&i class=&icon-external&&&/i&&/a&&/p&&p&Chrome神器Vimium快捷键学习记录 &/p&&p&&a href=&///?target=http%3A//www.iinterest.net//chrome-dev-tool-workspace/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Chrome 开发工具 Workspace 使用&i class=&icon-external&&&/i&&/a&&/p&Chrome 开发工具 Workspace 使用 &/blockquote&&p&4. js参考手册:&/p&&p&&a href=&///?target=http%3A//download.csdn.net/detail/jikeytang/3249206& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&w3c手册&i class=&icon-external&&&/i&&/a&&/p&&p&5. 其它开发工具:&/p&&p&新手推荐:editplus,vim&/p&&p&团队开发:&/p&&p&webstorm, phpstorm(phper), pycharm(pythoner), intellij idea(javaer).&/p&&p&&a href=&///?target=http%3A///share/%3Fid%3D2d7ff03aeca64808fdc0f394ffb520bf%26type%3Dnotebook& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&有道云笔记&i class=&icon-external&&&/i&&/a&&/p&&p&6. 模块化开发grunt&/p&&p&&a href=&///?target=http%3A//www.gruntjs.org/article/getting_started.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&新手上路 - Grunt 中文社区&i class=&icon-external&&&/i&&/a&&/p&&p&入门&/p&&p&&a href=&///?target=http%3A///questions//how-to-setup-grunt-in-webstorm-on-windows& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&command line&i class=&icon-external&&&/i&&/a&&/p&&p&扩展工具grunt&/p&&p&&a href=&///?target=http%3A//www.gruntjs.org/article/home.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Grunt 中文社区&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///tugenhua0707/p/3497488.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&前端项目构建工具---Grunt&i class=&icon-external&&&/i&&/a&&/p&&p&前端项目构建工具---Grunt&/p&&p&&a href=&///?target=http%3A///tool/grunt.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Grunt:任务自动管理工具 -- JavaScript 标准参考教程(alpha)&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A//q.com/cn/articles/GruntJs& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&基于Node.js的自动化构建工具Grunt.js&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///frankfang/2612& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&享受 Grunt - SegmentFault&i class=&icon-external&&&/i&&/a&&/p&&p&享受 Grunt&/p&&p&&a href=&///?target=http%3A///yexiaochai/p/3603389.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&【grunt整合版】30分钟学会使用grunt打包前端代码&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///yexiaochai/p/3594561.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&【grunt第一弹】30分钟学会使用grunt打包前端代码&i class=&icon-external&&&/i&&/a&&/p&&p&叶小钗 第一弹&/p&&p&7. gulpjs&/p&&p&&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&gulp.js - the streaming build system&i class=&icon-external&&&/i&&/a&&/p&&p&官网&/p&&p&&a href=&///?target=http%3A///articles/n2Uj2y& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Gulp.js:比 Grunt 更简单的自动化的项目构建利器&i class=&icon-external&&&/i&&/a&&/p&&p&教程&/p&&p&&a href=&///?target=http%3A//gratimax.github.io/search-gulp-plugins& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&gulp plugins&i class=&icon-external&&&/i&&/a&&/p&&p&gulp plugins&/p&&p&&a href=&///?target=https%3A///gulpjs/gulp& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&gulpjs/gulp · GitHub&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///laopopo/2547%3Fpage%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&前端构建工具gulp入门教程&i class=&icon-external&&&/i&&/a&&/p&&p&前端构建工具gulp入门教程&/p&&p&&a href=&/TLA42/& class=&internal&&Gulp —— 另一种自动化流水线 - 折腾喵的喵星杂记 - 知乎专栏&/a&&/p&&p&Gulp 另一种自动化流水线&/p&&p&三:jq工具&/p&&p&1. oschina&a href=&///?target=http%3A//tool.oschina.net/apidocs& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&参考手册&i class=&icon-external&&&/i&&/a&大全。&/p&&p&2. w3c_all.chm,w3cschool离线版,包含了javascript,jquery,php,sql,html,css2.x,3.x的手册。&/p&&p&前端开发qq群: !&br&&/p&&p&在线图文地址:&a href=&///?target=http%3A///jikey/p/3607133.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&4. web前端开发分享-css,js工具篇&i class=&icon-external&&&/i&&/a&&/p&
以下的内容无图,有gif配图的请看,在线图文地址:web前端开发乃及其它的相关开发,推荐, webstorm(jetbrains公司系列产品)这两个的原因在于,有个技术叫emmet, ,而这两个对他的支持是:su…
来自子话题:
首先社会网络分析有两种路线,一种偏文科的,偏社会学,就是讲究在一定量化基础上定性分析,解释一些社会现象,另外一种是偏理科的,往往需要大量数据点,然后从数学上对拓扑结构进行定量分析和判断,或者会利用到网络上的社交网络(Online Social Networks)进行大规模的计算。如果是软件党,一般就是第一种了,把网络扔进软件算算指标什么的。软件推荐Gephi,这个可视化很方便,效果非常漂亮,做出来就跟Facebook搞数据科学的那帮人效果一样。如果是处理较大型的计算,则可以用Python的iGraph,这个也是一款神器,但不像Gephi那么直观有界面了,需要看个教程学习一下语法。&br&&br&入门课程的话,在Coursera上面有一个密歇根大学的女老师讲的八周入门课程,那个深入浅出,还有很多交互示例,非常好,这位教授也是在社会网络分析界的知名人士。如果看书的话,如果英语能力好可以看&a href=&///?target=http%3A///subject/1889768/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Social Network Analysis (豆瓣)&i class=&icon-external&&&/i&&/a&,这本书在国外也挺流行,如果英语不好,那国内我也不知道有什么教材啦~&br&&br&总之社会网络分析是一个研究方法中的大神器,因为网络结构是无处不在的,学习它的好处多多。
首先社会网络分析有两种路线,一种偏文科的,偏社会学,就是讲究在一定量化基础上定性分析,解释一些社会现象,另外一种是偏理科的,往往需要大量数据点,然后从数学上对拓扑结构进行定量分析和判断,或者会利用到网络上的社交网络(Online Social Networks…
来自子话题:
可怜的孩子,如果你上手的是 Vue 就不会这么惨了&br&&br&---&br&&br&为了避免偏题,我还是针对题主的感受多说一点。你用 Angular 遇到的这些挫折,根本原因不是因为你追求新技术,而是因为你在进入一个你比较陌生的领域的时候,却还选择了一个 learning curve 很糟糕的框架。&br&&br&Angular 1 本身的 API 设计很繁琐,这些东西其实是 java 程序员把他们习惯的那一套『仪式感』带入了前端框架导致的,简言之就是『抽象概念太多』。然而这些东西在前端的语境下大部分都是除了增加系统复杂度之外毫无意义的糟粕。更糟的是对于新手来说,这些东西极大的增加了学习成本和挫折感。(讽刺的是另一方面也让很多投入了大量精力学习 Angular 的人产生了一种斯德哥尔摩情结 - 好不容易搞懂了,怎么能承认这些东西毫无意义?)&br&&br&Angular 2 为什么要付出兼容性断层的代价彻底重写?就是因为 Angular 1 的 API 友好度太糟糕了。Angular 2 也转向了『一切都是组件』这样清晰易懂的模式,而不是上来就跟你提什么 dependency injection, controller, scope, service, factory, provider...&br&&br&到目前为止,可以说你只是因为随大流所以选择了一个不理想的上手方向。但到你去追着用 Angular 2 的 router 的时候,就有些操之过急了。对于这种尚未发布的试作品,Google 自己都没用到生产环境里呢,如果你不是已经对 Angular 本身和前端架构有了深入的了解,基本上是 hold 不住的。&br&&br&最后,追求新技术笼统来说肯定是有意义的,学无止境嘛。但是在解决实际问题的时候,选择一个自己 hold 得住的方案才是靠谱的。什么时候是在解决问题,什么时候是在学习,这个就得你自己拿捏了。
可怜的孩子,如果你上手的是 Vue 就不会这么惨了---为了避免偏题,我还是针对题主的感受多说一点。你用 Angular 遇到的这些挫折,根本原因不是因为你追求新技术,而是因为你在进入一个你比较陌生的领域的时候,却还选择了一个 learning curve 很糟糕的框架…
来自子话题:
PHPStorm&br&&br&我不喜欢一些人上来就提Sublime Text,Vim什么的,这些东西是编程有不少经验的人才玩得开心的,很多新手连代码文档,代码格式化,SVN,Debugger等工具都还没接触,甚至运行环境都不会搭。你说写代码一个编辑器就够了,他们就不知道编辑之后的那些步骤,怎么提交,怎么调试,怎么排查。我见过的,就会用文本编辑器,其他步骤一无所知,看到新函数连返回值都不知道怎么查看,报个错或者程序输出不对就来回折腾,浪费时间跟热情。&br&&br&就好像一些人爱对新人教训的,不要用框架,会让你变得懒惰。毛啊,不用框架新手根本不知道一个Web程序应该具有哪些基本概念,怎么分离代码,怎么缓存,怎么过滤用户输入,怎么生成页面。这种言论不是坑人是什么。
PHPStorm我不喜欢一些人上来就提Sublime Text,Vim什么的,这些东西是编程有不少经验的人才玩得开心的,很多新手连代码文档,代码格式化,SVN,Debugger等工具都还没接触,甚至运行环境都不会搭。你说写代码一个编辑器就够了,他们就不知道编辑之后的那些步…
来自子话题:
推荐几个个人必看的:&br&&br&1. &a href=&///?target=http%3A///& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&br&2. &a href=&///?target=http%3A//davidwalsh.name/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&davidwalsh.name/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&br&3. &a href=&///?target=http%3A//ejohn.org/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&ejohn.org/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&br&4. &a href=&///?target=http%3A//www.nczonline.net/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&nczonline.net/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&br&&br&他们分别是 prototype, mootools, jquery, yui 的团队核心成员,文章质量都很高,并且比较活跃。
推荐几个个人必看的:1. 2. 3. 4. 他们分别是 prototype, mootools, jquery, yui 的团队核心成员,文章质量都很高,并且比较活跃。
来自子话题:
这两个语言我都用过,MITBBS上很多回帖都很水,个人觉得:&br&&ul&&li&在用小众技术之前,最好确保你的团队有长期维持技术栈的能力,包括能持续招到真懂它们的人。别以为网上文章满天飞,就可以随便找个人来干活;事实上真干活了,你会发现网上的资料多是hello world级别,一点都解决不了问题。你团队里没有专家级别以上的人员,就等着吃瘪吧。&/li&&li&技术必须和自身需求匹配。比如node,它目前比较适合实现高并发IO系统,而不适合高CPU/内存消耗的计算。这个世界上真正的通用型语言少之又少,大部分语言都在特定领域各持擅长。用错技术,长期看会带来很大的麻烦。&/li&&li&大热的技术小心阳光下的阴影,最好能全面评估后再决定,尤其不要被各种言论影响。Ruby在RoR很火的时候,其实核心API很多问题。我老东家在我边上的一个团队,就是被忽悠,没有仔细评估就选择了JRuby,结果后悔了。&/li&&/ul&
这两个语言我都用过,MITBBS上很多回帖都很水,个人觉得:在用小众技术之前,最好确保你的团队有长期维持技术栈的能力,包括能持续招到真懂它们的人。别以为网上文章满天飞,就可以随便找个人来干活;事实上真干活了,你会发现网上的资料多是hello world级…
来自子话题:
是的,学前端的基本都会遇到你这样的问题,要学的东西很多很多,一下子会迷茫其中,不知道该学什么技术,或者说优先去学什么技术。&br&&br&题主看招聘进行结果导向地学习我是非常认同的,当初我也是看着网易前端的 JD 一条一条去 pass 掉的。至于你提到的 Angular、Backbone、PHP 以及 SCSS,我认为 PHP 是最迫切去学的,因为作为一个靠谱的前端,不能对后端完全不懂,否则难以在实际的工作中与后端进行协作,或者说就算自己想写一个小项目,没有后端技术的支持也是有点简陋的。&br&&br&然后是 SCSS 或者类似的 Less 这样的技术,其实并不需要专门去学习,只需要在写 CSS 的时候对照着文档去做,或者将自己写过的项目中的 CSS 用 SCSS/Less 对照着文档去改写一下,实际上就差不多可以掌握了。&br&&br&至于 Angular 或 Backbone 框架,我觉得这些可以先不用急着学,倒是建议在完成 PHP 入门级的学习以及 SCSS/Less 的尝试后,可以去接触 Node.js。因为 Node.js 无论是其 npm 包管理工具的生态环境,还是 Javacript 异步编程思想,都对你的前端技术有极大的帮助。尤其是越来越多的公司提出前后端分离的思想,更是让 Node.js 的地位不断地提高。&br&&br&同时,建议你可以学习一下 Gulp ,这是一个自动化的工具,非常多公司都会用,而且比 Grunt 更易入手,代码简洁优雅。这个大概花个十来分钟就可以上手了,非常酷。&br&&br&至于你提到的关于实习的问题,按照你问题描述中描述的水平,其实已经可以去实习了,可能一开始主要是做页面,但你可以从实际的工程开发中吸取经验,同时利用下班或周末假期的时间,去继续不断学习,不断提高自己的技术水平,从而让自己的待遇越来越高。3000 块钱一个月的工资在北京互联网中是比较低的,基本你随便去一家比较靠谱的公司都不会开这么低的价钱。&br&&br&附我们的招聘信息:&a href=&///?target=http%3A///hr.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&加入我们 - 矩道优达&i class=&icon-external&&&/i&&/a&
是的,学前端的基本都会遇到你这样的问题,要学的东西很多很多,一下子会迷茫其中,不知道该学什么技术,或者说优先去学什么技术。题主看招聘进行结果导向地学习我是非常认同的,当初我也是看着网易前端的 JD 一条一条去 pass 掉的。至于你提到的 Angular、…
来自子话题:
人类发明了金钱,是为了方便价值的交换。&br&有些人不了解金钱的含义,不想付出自己的血汗去窃取他人的血汗。&br&于是有些人鄙视有钱人。但鄙视付出了大量血汗的有钱人是错误的。&br&&br&人类发明了PHP和JS,是为了方便程序的开发。&br&有些人不了解PHP和JS的含义,不学好基础理论胡乱造了很多烂程序。&br&于是有些人鄙视只会PHP和JS的人。但鄙视认真学习过的PHP和JS程序员是错误的。
人类发明了金钱,是为了方便价值的交换。有些人不了解金钱的含义,不想付出自己的血汗去窃取他人的血汗。于是有些人鄙视有钱人。但鄙视付出了大量血汗的有钱人是错误的。人类发明了PHP和JS,是为了方便程序的开发。有些人不了解PHP和JS的含义,不学好基础理…
来自子话题:
開箱即用。
開箱即用。
已有帐号?
社交帐号登录
无法登录?
社交帐号登录}

我要回帖

更多关于 social network 电影 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信