javascripeandroid小游戏代码的代码问题 有代码看不懂 麻烦哪位好心人帮忙解释一下

哪位大侠帮帮忙,我想做一个flash打地鼠的小游戏,谁能给个教程。我是个菜鸟。网上的那些我都看不懂。_百度知道
哪位大侠帮帮忙,我想做一个flash打地鼠的小游戏,谁能给个教程。我是个菜鸟。网上的那些我都看不懂。
我有更好的答案
其他类似问题
您可能关注的推广
打地鼠的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁来自子话题:
js是一门强大的语言。 对黑客来说,这是绕过WAF的利器,比如当字母和数字都无被WAF屏蔽的时候,你可以这样玩:&br&&br&&p&1 = !+[]
= ++[[]][+[]]&/p&&br&&p&2 = !+[]+!+[] = ++[++[[]][+[]]][+[]] &/p&&br&&p&3 = !+[]+!+[]+!+[] = ++[++[++[[]][+[]]][+[]]][+[]] &br&&/p&&br&&p&而&/p&&p&a 的获取方式
false[1] 或者是 NaN[1]
&/p&&br&&p&false = ([![]]+[])
&/p&&p&// 空的array, NOT一下,加上中括号后再通过+[] 转化成string&/p&&br&&p&1 = ++[[]][+[]] &/p&&p&//前面解释过了,或者用!+[] 也可以。&/p&&br&&p&于是a可以用这个表达:
([![]]+[]) [++[[]][+[]]]&/p&&br&&p&同理l的是false[2], 等于
([![]]+[])[++[++[[]][+ []]][+[]]]&/p&&br&&p&e 是 false[4], r 和 t 通过 true来获得,而true就是false去掉NOT符号的结果&/p&&br&&p&最后alert也就是这个:&/p&&br&&p&(+[][+[]]+[])[++[[]][+[]]]+([![]]+ [])[++[++[[]][+[]]][+[]]]+([!![]]+ [])[++[++[++[[]][+[]]][+[]]][+[]]]+ ([!![]]+[])[++[[]][+[]]]+([!![]]+ [])[+[]]&/p&&br&&br&&p&还有一些比较复杂的字母需要绕一下,比如说 window 对象 的构造:&/p&&p&(1,[].sort)()
= window&/p&&br&&p&sort的 s通过false,
r t 通过 true,
o 通过 [object Object]&/p&&p&于是 window.alert(1)
就是如下代码:&/p&&br&&br&&p&([],[][([![]]+[])[++[++[++[[]][+[]]][+[]]] [+[]]]+([]+{})[++[[]][+[]]]+([!![]]+[])[++ [[]][+[]]]+([!![]]+[])[+[]]])()[ (+[][+[]] +[])[++[[]][+[]]]+([![]]+[])[++[++[[]][+ []]][+[]]] +([!![]]+[])[++[++[++[[]][+[]]] [+[]]][+[]]]+([!![]]+[])[++ [[]][+[]]]+ ([!![]]+[])[+[]]](++[[]][+[]])&/p&
js是一门强大的语言。 对黑客来说,这是绕过WAF的利器,比如当字母和数字都无被WAF屏蔽的时候,你可以这样玩:1 = !+[] = ++[[]][+[]]2 = !+[]+!+[] = ++[++[[]][+[]]][+[]] 3 = !+[]+!+[]+!+[] = ++[++[++[[]][+[]]][+[]]][+[]] 而a 的获取方式 false[1] …
来自子话题:
因为,它给了一大部分程序猿幻觉比如前后端统一,脚本也能性能很屌,做Demo搜搜快什么的,但实际上,这仅仅是幻觉罢了……&br&&br&正是因为这样的幻觉是“看得到”的,又有一个响当当的干爹Google,因此Node的曝光率远高于后端常规语言就不足为奇了。&br&&br&论速度,你一个带JIT的跟常规脚本语言的虚拟机比,没到数量级差异丢不丢脸?内存各种匪夷所思的占用丢不丢脸?web才和CPython+Gevent一个水平比不过pypy丢不丢脸?&br&论稳定性,Python十来年的积累,大公司的经验,你一个以桌面系统为目标的V8拿来做工程逗我玩呢?&br&论代码的管理,Js那种匪夷所思的陷阱还要不要一起玩了?Callback hell?&br&&br&说白了,前端工程师在普通level这级人数太多了,作出来的东西能看得到,吸引力比埋头在服务器上耕耘的系统工程师要高。技术新人往往是被看得见的先吸引到,但不深入怎么知道系统的严谨?node一出前者觉得自己各种碉堡,觉得System Engineer is die 然后四处宣传,比如你看老子一天撸出个实时web,还带个碉堡的前端实现,看看你们系统工程师,呵呵呵。Full Stack哦,一个socket连接消耗多少内存都算不出来你跟我谈Full Stack?&br&&br&所以,这就不是浮躁的宣传这是什么?系统工程是很严谨的,打交道的往往不仅仅是代码,最终产出最看重的也不是什么性能,很多设计很多实现最终服务的都是后端系统的稳定性,扩展性等这些跟钱相关的东西,你跑来跟我谈跑循环?循环能赚个锤子?&br&&br&至于Python的XXX为何不火,Callback早就有Twisted,新生代也有Tornado,Coroutine有Gevent,Actor有Pulsar,VM方面要稳妥CPython,要性能PYPY,要并发Stackless,AIO神马的的选择太多了,你喜欢上啥就有啥,社区要运作要宣传怎么闹,手头的牌太多了有木有。Node没这样的历史包袱,就一个选择,自然全部社区的力量和宣传都可以集中到这上面去,加之低门槛,你看出书都出了多少,不火才不科学。&br&&br&但是,做工程和火不火有毛关系啊?
因为,它给了一大部分程序猿幻觉比如前后端统一,脚本也能性能很屌,做Demo搜搜快什么的,但实际上,这仅仅是幻觉罢了……正是因为这样的幻觉是“看得到”的,又有一个响当当的干爹Google,因此Node的曝光率远高于后端常规语言就不足为奇了。论速度,你一个…
来自子话题:
我也困惑过好一阵。&br&&br&高频量化交易对策略师的程序设计能力要求很高,虽然是计算机系出身,力不从心感还是长伴左右。&br&&br&后来工作里遇到两位大牛,我分别像他们提问学院程序设计和工业程序设计的区别,才发现原来学校里教的都是坑爹的90年代的思维方式。&br&&br&最震撼的区别:算法无大用&br&学校里各种比赛各种考试将算法提到无限高度。实际工作里除了瓶颈处,高级算法毫无用处。而且工作里高级算法通常有专门的模块包提供,没人会当傻子自己动手写。&br&&br&最全面的颠覆:易维护性高过执行效率&br&工业程序设计多是大组协作完成,程序员离职跳槽换组很正常,所以工作中最大的问题是读懂别人的代码和写出别人能懂的代码(不要告诉我你都单独写文档,文档维护成本很高,常常有文档代码不匹配问题反而很混乱)。所以懂得在效率和易维护性的平衡才是走出学院派的标志。&br&&br&最好用的工具:profiler&br&我身边的这位大牛写程序的方式是:花很多时间设计好架构,然后以最快最易读的方式写出实现,然后profiling,深挖瓶颈再做改进。一开始就考虑细节设计是学生常犯的错误。&br&&br&最大的鸿沟:多线程&br&世界上只有两种程序员,一种能左右互搏,另一种不能叫自己程序员。如果不能玩转多线程设计,还是转行做其他有前途的职业好些,比如很多人就回学校当了老师教编程。&br&&br&&br&最大的挑战:大型多模系统的架构设计&br&出色的架构师好似乐队的指挥,他们懂得一个很现实的问题:不同的模块是不同的人写出来的,他们能力参差,相互可能不熟,甚至没有见过,更有甚者相互敌视。架构师必须有威望,不然各个组都会找架构师抱怨自己的模块活儿太多可以让别的模块分摊点儿。架构师必须有领导才能,不然上线后出了问题各个组会相互推脱踢皮球。&br&&br&所以架构并不只是程序和程序怎样沟通,还有不同组的人沟通。好的架构可以让不同模块指责分明,不同组的人分工明确,这不仅有利于初期功能的实现,对之后的系统健康的维护和成长也是至关重要。这一点在学校是学不到的。&br&&br&暂时就想到这些。我已经因为无法左右互搏而退居二线做量化策略去了。所以只能以旁观者给个2cents
我也困惑过好一阵。高频量化交易对策略师的程序设计能力要求很高,虽然是计算机系出身,力不从心感还是长伴左右。后来工作里遇到两位大牛,我分别像他们提问学院程序设计和工业程序设计的区别,才发现原来学校里教的都是坑爹的90年代的思维方式。最震撼的区…
来自子话题:
我用 Node.js 开发了 Am I Hacked,算是有一点用 Node.js 支持大流量的经验。先列一些数字&ul&&li&服务器是 Linode 512,也就是 Linode 上最低端的 VPS ,只有 512MB 的内存。&/li&&li&数据库,Node.js 程序和静态文件都放在同一台服务器上。&/li&&li&大部分查询耗时 20-100ms 。少数查询由于缓存 miss 较多,耗时会高达500ms。&/li&&li&最高日PV超过了一百万,Google Analytic 上显示的同时在线人数最高达2000。&/li&&li&平均每秒能完成20-30次查询,瓶颈在磁盘IO,CPU几乎无压力。&/li&&li&虽然压力如此之大,首页几乎都能在一秒内打开,查询也会在3秒内返回。&/li&&li&Node.js 程序占用内存 90MB-110MB,剩余内存都被磁盘缓存占据。&/li&&/ul&以我的了解,Python 和 Ruby 上的非 Event Driven 的 Framework 根本不可能达到这样的性能。&br&&br&然后说说 Node.js 的其他优点&ul&&li&Node.js 的架构与 Django, Rails 等传统的 Framework 不同,不需要放在 Nginx / Apache 后,利用 WSGI, CGI 之类的接口一板一眼的 [接受Request] -& [运行程序逻辑] -& [生成并返回Response]。这是一个巨大的变化,之前一些无法想象的功能都有可能实现了。比如 &a href=&/Miserlou/DirtyShare& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/Miserlou/Dir&/span&&span class=&invisible&&tyShare&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 可以用浏览器实现 P2P 的文件传输。正因为 Node.js 可以更精细的控制 Request 和 Response 的时间和内容,websocket 似乎天生就是为 Node.js 而生的,而配合 &a href=&http://socket.io& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&socket.io&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& 这个神奇的库之后,在 realtime webapp 这个领域,Node.js 已经没有对手了。&/li&&li&Node.js 的包管理器 npm 设计得比 python 和 ruby 好很多。有很多的 module 开发者。&/li&&/ul&当然也有一些缺点&ul&&li&Debug 很困难。没有 stack trace,出了问题很难查找问题的原因。&/li&&li&如果设计不好,很容易让代码充满 callback 。实在受不了的可以考虑一下 &a href=&/laverdet/node-fibers/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/laverdet/nod&/span&&span class=&invisible&&e-fibers/&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 这个项目。不过 Node.js 的核心团队并不推荐使用。&/li&&/ul&&br&有没有大公司使用?&ul&&li&LinkedIn Mobile 的 服务器端完全是用 Node.js 写的。&/li&&li&Yahoo 有一部分新项目使用了 Node.js。&/li&&li&阿里巴巴内部也有一些新项目用到了 Node.js。 &/li&&/ul&
我用 Node.js 开发了 Am I Hacked,算是有一点用 Node.js 支持大流量的经验。先列一些数字服务器是 Linode 512,也就是 Linode 上最低端的 VPS ,只有 512MB 的内存。数据库,Node.js 程序和静态文件都放在同一台服务器上。大部分查询耗时 20-100ms 。少数…
来自子话题:
&p&这些年我一直提醒自己一件事,千万不要自己感动自己。大多人看似的努力,不过是愚蠢导致的。在学习生涯中,有很多的同学无比努力却成绩不好,在我高中时更是如此多的人都是如此,什么熬夜看书到天亮,连续几天只睡几小时,多久没放假了,如果这些东西也值得夸耀,那么富士康流水线上任何一个人都比你努力多了。&/p&&br&&p&人难免天生有自怜的情绪,唯有时刻保持清醒,保持一个高的眼界,才能看清真正的价值在哪里,傻乎乎的努力只会是劳模而不是优秀。。&/p&&br&&p&引用,来源忘了&/p&
这些年我一直提醒自己一件事,千万不要自己感动自己。大多人看似的努力,不过是愚蠢导致的。在学习生涯中,有很多的同学无比努力却成绩不好,在我高中时更是如此多的人都是如此,什么熬夜看书到天亮,连续几天只睡几小时,多久没放假了,如果这些东西也值得…
来自子话题:
近月研究过 Grisu,就在这里简单说两句。&br&&br&Grisu 是把浮点数转换为字符串的算法。在Chrome里执行这段Javascript实际上就调用了Grisu。&br&&br&&div class=&highlight&&&pre&&code class=&language-js&&&span class=&nb&&document&/span&&span class=&p&&.&/span&&span class=&nx&&write&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&o&&/&/span&&span class=&mi&&3&/span&&span class=&p&&);&/span& &span class=&c1&&// 0.3333&/span&
&/code&&/pre&&/div&&br&这个问题看似简单,实际上是很复杂的事情。&br&&br&在1980年之前,许多C语言标准库中的 printf() 都会产生「不正确」的结果。Coonen在那时候做了相关的博士研究[1],但并没有受到广泛的知悉和应用。1990年Steele等人发表了名为Dragon4的算法[2],通过使用大数运算来确保精确的转换。而这个算法应用在大部分C程序语言库的 printf(),以及其他用 printf() 来实现这功能的语言之中。&br&&br&这样就20年过去,虽然中间有一些小改进[3][4],但基本的思路仍然是这样。到了2010年,Loitsch发表了Grisu算法[5],而V8也实现了这个算法。&br&&br&该篇文章阐述了3个算法,分别是原始的Grisu,及其改进版Grisu2和Grisu3。Grisu算法比Dragon4等算法优越的地方就是一个字──快。以下简单介绍一下它们的特点。&br&&br&首先,什么是「正确」的转换?其定义是,一个浮点数转换成的十进位字符串之后,该字符串可以完美的转换回去原来的浮点数,如果用C语言来描述的话:&br&&br&&div class=&highlight&&&pre&&code class=&language-c&&&span class=&c1&&// 除+/-inf及NaN外的浮点数都应该传回true。&/span&
&span class=&n&&bool&/span& &span class=&nf&&Verify&/span&&span class=&p&&(&/span&&span class=&kt&&double&/span& &span class=&n&&d&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&n&&assert&/span&&span class=&p&&(&/span&&span class=&o&&!&/span&&span class=&n&&isnan&/span&&span class=&p&&(&/span&&span class=&n&&d&/span&&span class=&p&&)&/span& &span class=&o&&&&&/span& &span class=&o&&!&/span&&span class=&n&&isinf&/span&&span class=&p&&(&/span&&span class=&n&&d&/span&&span class=&p&&));&/span&
&span class=&kt&&char&/span& &span class=&n&&buffer&/span&&span class=&p&&[&/span&&span class=&mi&&32&/span&&span class=&p&&];&/span& &span class=&c1&&// 足够大么?&/span&
&span class=&n&&dtoa&/span&&span class=&p&&(&/span&&span class=&n&&buffer&/span&&span class=&p&&,&/span& &span class=&n&&d&/span&&span class=&p&&);&/span& &span class=&c1&&// 双精度浮点数转换至字符串,是double-to-ascii,不是dota&/span&
&span class=&kt&&char&/span&&span class=&o&&*&/span& &span class=&n&&end&/span&&span class=&p&&;&/span&
&span class=&kt&&double&/span& &span class=&n&&d2&/span& &span class=&o&&=&/span& &span class=&n&&strtod&/span&&span class=&p&&(&/span&&span class=&n&&buffer&/span&&span class=&p&&,&/span& &span class=&o&&&&/span&&span class=&n&&end&/span&&span class=&p&&);&/span& &span class=&c1&&// 字符串转换至双精度浮点数&/span&
&span class=&k&&return&/span& &span class=&o&&*&/span&&span class=&n&&end&/span& &span class=&o&&==&/span& &span class=&sc&&'\0'&/span& &span class=&o&&&&&/span& &span class=&n&&d&/span& &span class=&o&&==&/span& &span class=&n&&d2&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&br&如前所述,Dragon4使用大数运算,还涉及动态内存分配(你知道printf()里可能会做malloc()么?)。而Grisu则不需要,只需要用到64位整数运算便可以实现转换!所以那篇文章题目就以&... with integers&作结尾。&br&&br&Grisu 的算法非常简单,但它有一个缺点,就是其结果并不像是给人看的。如文中的例子,Grisu 把 0.3 的打印成 99998e-17。这是「正确的」转换结果,它可以通过 Verify() 验证。&br&&br&虽然该算法非常快,但一般人大概不会接受这样的结果。作者也因此研发出改进版本Grisu2,在使用64位整数实现 double 的转换时,可以利用额外的 64 - 53 = 11 位去缩减转换的结果(53为double的尾数位数)。Grisu2可以把&99.9%的浮点数转换成最短的「正确」字符串,其馀&0.1%的浮点数仍然是「正确」的,但不是最短的答案。&br&&br&也许一般人就见好就收了,不竟已证明算法的正确性,只是有那么&0.1%情况未达至最完美的结果。不过该作者还是继续研究出 Grisu3。Grisu3并不能解决那一小撮麻烦制造者,但它能在计算期间侦查到哪些 double 在这算法中未能得出最优的结果。既然办事快捷的小部门搞不定,就可以把它交给Dragon4或其他较慢的算法。&br&&br&V8 里实现了 Grisu3 以及大整数的算法(我不肯定是Dragon4还是其他),后来Google也把它分离成为一个独立的C++程序库 &a href=&/p/double-conversion/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&/p/double-conversion/&i class=&icon-external&&&/i&&/a& 。&br&&br&为了优化 RapidJSON (&a href=&/miloyip/rapidjson& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&miloyip/rapidjson 路 GitHub&i class=&icon-external&&&/i&&/a&) 的浮点数转换,也由于 RapidJSON 是仅需头文件的JSON库,我就按 Loitsch 的实现编写了一个 Grisu2 的头文件库,可以在 &a href=&/miloyip/dtoa-benchmark& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&miloyip/dtoa-benchmark · GitHub&i class=&icon-external&&&/i&&/a& 取得,那里还比较了多个 dtoa() 实现的性能。因为 Grisu3 需要另一个更庞大的大数实现,而暂时 RapidJSON 不需要最优结果,所以就仅实现了一个性能更好及更简短的 Grisu2。&br&&br&加入了 Grisu2 之后,RapidJSON 的 JSON 字符串化(stringify)性能远超其他 JSON 库。没想到读到最后是广告吧。&br&&br&[1] Coonen, Jerome T. &an Implementation Guide to a Proposed Standard for Floating-Point Arithmetic.& &i&Computer&/i& 13.1 (1980): 68-79.&br&[2] Steele Jr, Guy L., and Jon L. White. &How to print floating-point numbers accurately.& &i&ACM SIGPLAN Notices&/i&. Vol. 25. No. 6. ACM, 1990. &a href=&/files/p372-steele.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/files/&/span&&span class=&invisible&&p372-steele.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[3] Gay, David M. &Correctly rounded binary-decimal and decimal-binary conversions.& &i&Numerical Analysis Manuscript&/i& 90-10 (1990). &a href=&/REFS/rounding.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/REFS/rounding.&/span&&span class=&invisible&&pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[4] Burger, Robert G., and R. Kent Dybvig. &Printing floating-point numbers quickly and accurately.& &i&ACM SIGPLAN Notices&/i&. Vol. 31. No. 5. ACM, 1996. &a href=&http://www.cs.indiana.edu/~dyb/pubs/FP-Printing-PLDI96.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&cs.indiana.edu/~dyb/pub&/span&&span class=&invisible&&s/FP-Printing-PLDI96.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[5] Loitsch, Florian. &Printing floating-point numbers quickly and accurately with integers.& &i&ACM Sigplan Notices&/i& 45.6 (2010): 233-243. &a href=&http://www.cs.tufts.edu/~nr/cs257/archive/florian-loitsch/printf.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&cs.tufts.edu/~nr/cs257/&/span&&span class=&invisible&&archive/florian-loitsch/printf.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&br&-------------------&br&补充答案:其实正确的dtoa()实现只需要char buffer[26](包括'\0')。&br&再补个图:测试不同算法/实现下的性能(VC2013 64-bit),fpconv、grisu2、milo 都是 Grisu2 的实现,doubleconv 是V8 的 Grisu3 实现。milo 对 sprintf 的加速比约是 9x。&br&&img src=&/109b52be2ffb877afb4706_b.jpg& data-rawwidth=&900& data-rawheight=&338& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&/109b52be2ffb877afb4706_r.jpg&&
近月研究过 Grisu,就在这里简单说两句。Grisu 是把浮点数转换为字符串的算法。在Chrome里执行这段Javascript实际上就调用了Grisu。document.write(1/3); // 0.3333
这个问题看似简单,实际上是很复杂的事情。在1980年之前,许多C语言标准库中…
来自子话题:
从machine learning或者web或者爬虫入手Python,会比较有成就感,不枯燥&br&&br&天天print,初学者学个几天就没动力了&br&&br&我推荐,machine learning in action,一点点线性代数基础即可阅读此书&br&&br&web学习flask,遇到不懂的语法查文档&br&&br&爬虫学习scrapy,同上,遇到不懂的语法查文档&br&&br&真的,用Python写个预测足球比赛结果的小程序或个人博客或抓取微博数据,比天天对着书上无聊的print好多了
从machine learning或者web或者爬虫入手Python,会比较有成就感,不枯燥天天print,初学者学个几天就没动力了我推荐,machine learning in action,一点点线性代数基础即可阅读此书web学习flask,遇到不懂的语法查文档爬虫学习scrapy,同上,遇到不懂的语法…
来自子话题:
这种头像被称作 Identicon, Don Park在日首次想出了这个创意。&br&&br&一般来说在这些网站上面如果你没有指定自己的头像,网站会使用 Gravatar 或者使用 Identicon (Gravatar也有相关服务) 作为默认头像。&br&&br&Identicon 是 Hash 值的可视化表示,常见的生成方法是根据 IP 地址或 email 地址生成。 服务器通过 Identicon 可以以头像的形式来分辨用户,这种方法同时能够保护用户的隐私。&br&&br&最初的 Identicon 是由9块构成的图形,后来它的表现形式由第三方扩展至了各种图形形式。&br&&br&相关详细介绍参考下面的Wiki链接,其他参考为各语言开源实现。&br&&br&参考:&br&&ol&&li&Wikipedia: &a href=&http://en.wikipedia.org/wiki/Identicon& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Identicon&i class=&icon-external&&&/i&&/a&&/li&&li&Original Identicon Java and canvas implementations: &a href=&/donpark/identicon& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&donpark/identicon · GitHub&i class=&icon-external&&&/i&&/a&&br&&/li&&li&Java Mavenized version: &a href=&/pauloubuntu/identicon& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&pauloubuntu/identicon · GitHub&i class=&icon-external&&&/i&&/a&&/li&&li&PHP: &a href=&/yzalis/Identicon& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&yzalis/Identicon · GitHub&i class=&icon-external&&&/i&&/a&&/li&&li&Go: &a href=&/cupcake/sigil& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&cupcake/sigil · GitHub&i class=&icon-external&&&/i&&/a&&/li&&li&WordPress: &a href=&/blog/blogger/wp_identicon/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&WP_Identicon
Dammit Jim!&i class=&icon-external&&&/i&&/a&&/li&&li&更多语言请搜索Github:&a href=&/search?utf8=%E2%9C%93&q=identicon& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Search · identicon · GitHub&i class=&icon-external&&&/i&&/a&&/li&&/ol&
这种头像被称作 Identicon, Don Park在日首次想出了这个创意。一般来说在这些网站上面如果你没有指定自己的头像,网站会使用 Gravatar 或者使用 Identicon (Gravatar也有相关服务) 作为默认头像。Identicon 是 Hash 值的可视化表示,常见的生成…
来自子话题:
有两个建议吧。&br&&ol&&li&完成《building machine learning systems with python》书上的所有projects,这本书除了封面其他里面的内容还是挺实用的。中文书名为
《机器学习系统设计》&/li&&li&完成kaggle playground和 101上的所有比赛,具体tutorial可以戳 &/li&&/ol&&ul&&li&Getting Started With Python For Data Science &a href=&/wiki/GettingStartedWithPythonForDataScience& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&/wiki/Getting&/span&&span class=&invisible&&StartedWithPythonForDataScience&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/li&&li&Getting Started With Python II Getting Started with Pandas: Kaggle's Titanic Competition &a href=&/c/titanic-gettingStarted/details/getting-started-with-python-ii& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&/c/titanic-ge&/span&&span class=&invisible&&ttingStarted/details/getting-started-with-python-ii&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/li&&/ul&&ol&&li&另外补充一个用scikitlearn构建文本挖掘系统的教程,个人觉得写的很好,基本上做一遍大概的流程就很清晰了:&a href=&/article-12-1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&scikit-learn文本挖掘系统学习(已完成)&i class=&icon-external&&&/i&&/a&&/li&&/ol&另外可以看这篇blog: &a href=&http://blog.csdn.net/u/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&大数据竞赛平台——Kaggle 入门&i class=&icon-external&&&/i&&/a&&br&---------------------------------&br&分割线补充:&br&我做过的比较好玩的应该是下载了豆瓣某一个爆照组的所有照片,然后结合发布者ID在其主页上找寻相关信息,然后按照地域进行统计算分布,然后在google map上画了出来... 不过这个就没什么含金量了,现在在水推荐系统。&br&&br&&br&ps:我也在入门中,欢迎一起探讨^_^
有两个建议吧。完成《building machine learning systems with python》书上的所有projects,这本书除了封面其他里面的内容还是挺实用的。中文书名为 《机器学习系统设计》完成kaggle playground和 101上的所有比赛,具体tutorial可以戳 Getting Started Wi…
来自子话题:
我还想补充一下,php也是垃圾啊,facebook那么大的网站,用php做的,根本上不去嘛。
我还想补充一下,php也是垃圾啊,facebook那么大的网站,用php做的,根本上不去嘛。
来自子话题:
&b&& 我想知道为什么会出现这样的问题&/b&&br&&br&那你有没有想过,为什么 terminal 那么大,你却只能从一个角落里开始可怜巴巴地一次输入一行命令么……其实两者的答案如果寻根问底的话——假定你来知乎问问题是想寻根问底——是一样的。&br&&br&一九七〇年代廉价的电子图像显示器出现之前,大型机的终端通常使用电传打字机(teleprinter)来跟用户交互;电传打字机的输出印在纸上,用户输入的字符就像打字机一样是删不掉的,而且用户输入什么就会立刻传给服务器;后来有了以电子显示器为输出设备的终端,一开始也只能一个字符一个字符地给服务端发信息,到七十年代末能一次给服务器发送一整行信息的「智能」终端才成为主流。此时键盘上才有了现代电脑用户觉得司空见惯(拿键盘当钢琴使的 HHKB Pro 2 用户请扭过头去)的方向键。而按下方向键给终端发送的是控制光标移动的命令,这些命令最初的表示方法是转义字串(escape sequence),也就是「我先说几个字符,说完这几个字符之后再说的那个字符请不要当作字面意思理解」。这个字符在 ANSI 标准里面排行第 27(0x1B),它是个看不见的字符,一般写「&esc&」来代表。而 ANSI 的终端机标准里面,光标上、下、右、左移动的指令分别规定为 &esc&[A,&esc&[B,&esc&[C,&esc&[D,其中方括号跟字母之间还可以插入一个数字来表示要移动几位。&br&&br&你现在使用的终端模拟器,不管是 Terminal.app 还是 iTerm 2,其实都是在用软件模拟当年用硬件实现的终端,并且还在底层帮你把按下的方向键转化为能够用来移动光标的特定转义字串。编一个 C 程序,main 里只有一行 getchar(); 编译运行(或者先在 iTerm 里按 ctrl + v ),再按上下右左,屏幕上都会显示 ^[[A ^[[B ^[[C ^[[D。其中 ^[ 就代表 esc 字符(因为 ctrl + [ 输入的字符是 0x1B)。&br&&br&而无论 bash、zsh 还是 OS X 系统自备的 Python shell,其实都是在底层将你按下方向键所产生的这三个字符按照 ANSI 标准理解为你要移动光标,并移动光标。这种「把三个字符按照 ANSI 标准理解为你要移动光标」,或者叫做「line editing」,的功能是如此常用,以至于人们写了专门的程序库来做这件事,它叫做 &a href=&http://tiswww.case.edu/php/chet/readline/rltop.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The GNU Readline Library&i class=&icon-external&&&/i&&/a&。&br&&br&但问题在于,readline 采用 GPL v3 授权,这一授权要求所有使用 readline 的程序必须开源。在版权法执行得比我国好的国家里,这是个严重的问题,OS X 里面也就因此没有 readline 库。所以,如果你不去弄一份 GNU Readline,&del&virtualenv&/del&(注:此处我把 pythonz 和 virtualenv 弄混了。virtualenv 并不能编译 Python,只是创建一份隔离开来的 Python 运行环境)你自己编译的 Python shell 就没有 line editing 功能;而如果你在创建虚拟环境的时候指定了这一自行编译的版本作为该环境的 Python,那么当你切换到那个环境的时候就会出现这样的问题。为了在不带 GNU Readline 的系统下给 Python 程序提供 line editing 功能,Python 提供了&a href=&https://pypi.python.org/pypi/readline& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pypi.python.org/pypi/re&/span&&span class=&invisible&&adline&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 模块,以内嵌 GNU readline 库。更多信息可以读它的文档。&br&&br&那么苹果 OS X 自带的 Python shell 是怎样实现 line editing 的呢?是用 BSD 授权的 &a href=&http://www.thrysoee.dk/editline/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Editline Library (libedit)&i class=&icon-external&&&/i&&/a& 。&br&&br&此外,也有可能是 virtualenv 没有正确地处理独立环境里的库——在 &a href=&https://pypi.python.org/pypi/virtualenv& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pypi.python.org/pypi/vi&/span&&span class=&invisible&&rtualenv&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 一页上搜寻「readline」,可以看到不少都和 OS X 有关,所以应该确定自己在使用 virtualenv 的最新版本。&br&&br&而 readline 提供的功能,除去按方向键移动光标,还包括比如 ctrl + a 到行首、ctrl + e 到行尾、alt + f 前进一个单词、alt + b 后退一个单词之类;如果觉得 Emacs 讨厌,还可以转用 vi key-binding。如何才能挖掘出 readline 的全部功能,就留给读者做为习题好了。&br&&br&&b&& 以及如何修复&/b&&br&&div class=&highlight&&&pre&&code class=&language-text&&easy_install readline
&/code&&/pre&&/div&(不,&a href=&/a/73& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&别用pip&i class=&icon-external&&&/i&&/a&)
& 我想知道为什么会出现这样的问题那你有没有想过,为什么 terminal 那么大,你却只能从一个角落里开始可怜巴巴地一次输入一行命令么……其实两者的答案如果寻根问底的话——假定你来知乎问问题是想寻根问底——是一样的。一九七〇年代廉价的电子图像显示器…
&p&反正在专家评审会上当木佛,干脆抄起手机答一题算了。&br&
别的地方不说,知乎上有一种土特产型的类喷子生物。&/p&&p&这帮货上知乎来,唯一的目的就是挑刺儿刷优越感。&br&
刷优越感是一种生理需求,本身没错,错在他们的着眼点都很无聊无趣,自我感觉都很良好:我戳破你了。&br&
生平最见不得自视过高的白痴把自己放在臆想中的舞台中央。&br&
人又不是圆规,也不是刺猬,戳破个毛。&br&&b&
这些人唯一堪比针尖的,不是犀利言辞也不是狠辣眼光,而是眼界。&/b&&br&
自己庸庸碌碌,却不相信有别样生活。但凡比自己精彩的,一概斥为抠脚大汉的装逼意淫。&br&
对付这种人,我以前还会一本正经的驳斥。&br&
现在,我的办法换了。我上知乎是放松的,不是给自己添堵的。&/p&&p&我没经历过的,不敢乱说,我说了的,信就信,不信就当看故事,调侃两句也没所谓。&/p&&p&但来我这刷优越感扣帽子的,一概删评论+拉黑。&/p&&p&小喷子在我这没有任何表演舞台,想博关注,请加强学习答出牛逼答案。&/p&&p&连我这种小角色的经历都要质疑,我再把认识的真正传奇人物说说,是不是得自杀一票?&/p&&p&
我就是政治不正确。&br&
对我好的我会加倍重情义,有评论私信了只要有时间我都会回复。&br&
但是一点儿家教都没有,莫名跑来挑逗的,就算手段有点无耻,我也会让你把一肚子自以为是的谬论憋臭在肚子里无处发泄。&br&&b&
如果两个人之间必须有一个不开心,这个人必须不是我。&/b&&/p&
反正在专家评审会上当木佛,干脆抄起手机答一题算了。
别的地方不说,知乎上有一种土特产型的类喷子生物。这帮货上知乎来,唯一的目的就是挑刺儿刷优越感。
刷优越感是一种生理需求,本身没错,错在他们的着眼点都很无聊无趣,自我感觉都很良好:我戳破你了…
来自子话题:
&b&利益相关&/b&:&br&(相关的还真是好多,-_-!!!)&br&&ol&&li&题主问到的两门课都是网易云课堂的”中国大学MOOC“中的,我就在网易云课堂工作&br&&/li&&li&C语言课的教师&a data-hash=&daaceadeeab6aee251c180ce79159bb8& href=&/people/daaceadeeab6aee251c180ce79159bb8& class=&member_mention& data-editable=&true& data-title=&@翁恺& data-tip=&p$b$daaceadeeab6aee251c180ce79159bb8&&@翁恺&/a&是最早和网易云课堂合作的教师之一,我和他非常熟,有惺惺相惜之感(我的感觉,不知道他是否同感)&/li&&li&Python课的教师车万翔比我小两届,本科时我们就很熟,后来都是相同的轨迹读研、留校、主讲C语言……后来我跑路到网易了,他当上博导了&/li&&/ol&&br&------------------------------------------------------割一下-------------------------------------------------------&br&&b&背景:&/b&&br&(这段背景介绍很像自我吹嘘,但为了后面论述的可信性,我必须说实话啊。不喜欢就跳过吧)&br&&br&我的教学生涯可以在 &a href=&/courses/index.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/courses/index&/span&&span class=&invisible&&.html&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 查到。从2003年给计算机学院本科开讲C语言始,就以摧枯拉朽之势在校园里刮起一阵旋(yao)风(feng),细节可以看我C语言有关的博客:&a href=&/tag/c-language-course/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&C语言课 | Hello World&i class=&icon-external&&&/i&&/a&。有三个标志性事件可以证明我多了解这门课:&br&&ol&&li&全校学生投票,让我&a href=&/a-good-teacher/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&成为学生“心目中的优秀教师”了&i class=&icon-external&&&/i&&/a&,几千教师中只选十人哦&br&&/li&&li&哈工大C语言课被评为国家级精品课程。&a href=&http://cms./elite/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&哈工大精品课程:C语言程序设计&i class=&icon-external&&&/i&&/a&,照片中穿着最geek的就是我&/li&&li&曾给全国高校教师培训怎么讲好C语言,轰动全场:&a href=&/internet-training/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&参加全国高校教师网培有感&i class=&icon-external&&&/i&&/a&&/li&&/ol&&br&Python课我只讲过1次,还是玩票性质的选修课。平时倒是常用Python做些小程(jiao)序(ben)提高自己的工作效率,但非常勉强拿得出手的也只有 &a href=&/sunner/buzz2weibo& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&sunner/buzz2weibo · GitHub&i class=&icon-external&&&/i&&/a&。对Python的了解比较浅(相对C语言而言)。&br&&br&----------------------------------------------------再割一下-------------------------------------------------------&br&此问不是语言之争,而是问哪个语言更适合&b&入门&/b&,所以我只谈入门,不对两个语言优劣做比较,虽然&i&C语言是世界上最好的语言&/i&。&br&&br&&b&我的观点:&/b&&br&&ol&&li&&b&立志做技术行,从C语言入门百利无害&/b&&/li&&li&&b&想不清楚是否做技术行,两个语言皆可,看缘分了&/b&&/li&&li&&b&不做技术,必须Python&/b&&/li&&/ol&&br&C标准委员会写的C语言基本原理(&a href=&http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&open-std.org/jtc1/sc22/&/span&&span class=&invisible&&wg14/www/C99RationaleV5.10.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&)中谈到C的设计精神,有一句话:&br&&blockquote&Make it fast, even if it is not guaranteed to be portable. &br&&/blockquote&这句话奠定了&b&C语言的设计首先要适应机器直觉,其次才是适应人的直觉&/b&。所以才会有指针,这种活生生的内存地址展示;数组下标从0而不是1开始等反人类的设计。因此,想驾驭C,就必须了解机器的秉性。&br&&br&与C正相反,&b&Python的设计理念是无所不用其极地适应人的直觉&/b&,所以获得了“可执行的伪代码”美誉(伪代码的意思就是很接近英语的程序代码)。这样带来一个很大的好处,就是Python学习者的注意力无需过多纠缠于语法等细节,而是可以更多地集中在“程序设计思维”,这是初学编程最重要的东西。&br&&br&以上,按题主的需求,文科背景,只为了和技术沟通方便(就是获得程序设计思维),那么我建议选Python。&br&&br&略跑题一下,解释一下其它情况下的选择。&br&&br&如果坚定要做技术行,不了解机器是做不深、做不强的,所以C语言是绕不过的。那么在入门时,C和Python就分别对应Hard和Easy模式。有天赋的,当然要选Hard;其它就先选Easy,再来Hard吧。&br&&br&如果对未来迷茫,不确定该做什么,那就也不必费心选择,看哪个顺眼就学哪个(话说MOOC时代真好,不会被学校的课程安排限制住,想学什么都能学到),先交往,再看是否适合结婚。我在C语言课里总向学生灌输一个观点,如果C语言学得痛苦,那就赶快想想改行吧,趁还年轻,就是此意。&br&&br&--------------------------------------------------吐槽时间--------------------------------------------------------&br&不要看是个学校就开C语言课,是个专业就要学C语言,就以为人人都应该学C语言。这是典型的愚昧,被害了都不知道。“&a href=&/question//answer/& class=&internal&&统计系大学生学 C 语言有什么实际用处?可否举例说明?&/a&”这个链接指向的回答是 &a data-hash=&a143afc9a0c810eff471c33& href=&/people/a143afc9a0c810eff471c33& class=&member_mention& data-tip=&p$b$a143afc9a0c810eff471c33&&@OAHCUYUIL&/a& 引用我为一本C语言书写的开头,讲了我对“为什么要学C语言”的看法,大概是当前C语言教材和老师中对“全民C语言”现象真话说得最多的了。但最大的实话其实我没敢说,毕竟饭还是要吃,书还是要卖的。想必知友都是三观正,与人为善,不传谣的,所以这里就说句实(yao)话(yan)吧:&br&&blockquote&老师们上学时学的C,工作多年也只会讲C,咋可能让他们讲别的语言?&/blockquote&这已经是个死结了,生生不息……
利益相关:(相关的还真是好多,-_-!!!)题主问到的两门课都是网易云课堂的”中国大学MOOC“中的,我就在网易云课堂工作C语言课的教师是最早和网易云课堂合作的教师之一,我和他非常熟,有惺惺相惜之感(我的感觉,不知道他是否同感)Python课的教师车…
来自子话题:
我认为我是非常有资格回答这个问题的,Python从根本上改变了我的人生。我几个月前写了一篇博客,&a href=&//%E4%BB%8EE-E%E5%88%B0S-E/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&从E.E到S.E | Kingname&i class=&icon-external&&&/i&&/a&,现在把它贴上来:&br&&br&&blockquote&&p&我在本科学的是Electric Engineering,大四找工作却当了软件工程师。这可以说是各种机缘巧合吧。&/p&&br&&p&我接触编程是在初中,那个时候有同学在看《黑客X档案》,当时看到一篇文章说的一个万能密码:&/p&&div class=&highlight&&&pre&&code class=&language-text&&'or''='
&/code&&/pre&&/div&&p&有一天在学校的网站论坛上测试了一下,发现真的登录了,而且是管理员的身份。虽然不知道是什么原理,但是觉得有点意思。&/p&&br&&p&后来开始不间断的买《黑客X档案》,接触到了编程,VB,C语言,Perl还有汇编。我发现VB特别好懂,于是安装了一个Visual Basic 6.0开始写小程序。我写的最大的小程序就是一个网页浏览器了,当然是跟着书上写的。这些经历现在想想也挺丰富的,入侵网站,抓取肉鸡。不过这不是今天的重点,以后单独写一篇文章吧。&/p&&br&&p&开始上大学了,第一学期就是C语言。周围无数的传言说C语言难得跟一坨屎一样,挂科一大半。直到现在,这四年间,每一年都能听到无数这样的话语。然而当年的C语言考试,我提前40分钟做完,不小心拿了一个满分。&/p&&br&&p&那个时候用的是谭浩强的C语言,被人吐槽无数的版本。里面有些东西确实脑残:&/p&&div class=&highlight&&&pre&&code class=&language-text&&b = a+++++a;
&/code&&/pre&&/div&&p&这样的问题确实没有什么意义,考试的题里面,概念题就能让你及格。剩下的改错题和编程题稍稍考一点水平,然而题目大多也是课程设计做过的。这一门课程,我的课程设计所有程序都是我自己凭脑袋想出来的,即便书上有现成代码的算法,我也是自己根据对算法的理解写出来的。而其他人有些照着书写代码,有些直接copy。这应该就是原因吧。&/p&&br&&p&大学前三年,断断续续的搞了一些php, Java,LaTex 但是都坚持不长时间。这也和我三分钟的热情有关。一次偶然的机会,听到了一个语言,Python,网上搜索了一下,看到很多人说用它写爬虫很方便。那个时候我学到了一个词,爬虫。&/p&&br&&p&今年三月份,Coursera上面开了一门课程,是Python入门。课程持续到5月份,每周课程都会有miniProject,一般来说是做小游戏。在完成每一个小项目的过程中,我发现我越来越喜欢Python。&/p&&br&&p&5月份Python课程结束没多久,我收到教务处的通知,周五要提交创新项目的结题报告。我才反应我过来,我去年申请的一个创新训练项目还没有做。&/p&&br&&p&这个项目是做一个选课辅助软件。当时申请表中,我表示准备用MFC与MSSQL制作这个软件和对应的数据库。可是,MSSQL安装好以后,我的电脑开机要5分钟。而MFC,倒腾了半个月,一点进展都没有,遂从此荒废。&/p&&br&&p&时间只有一个星期,现学MFC是来不及了。这个时候我想到我是会Python的人,于是果断决定使用Python + MySQL来开发这个选课辅助软件。&/p&&br&&p&一天半以后,软件连同图形界面全部做好了。那个时候,我觉得Python必定是神派来拯救我的天使。&/p&&br&&p&后来辅导员做微信公众号,我提议我可以做一个爬虫,把教务处的通知扒取下来。那天以后,我正式开始做爬虫。&/p&&br&&p&一开始是用Python的一个库urllib2的一个方法获取一个网页的全部代码,然互写入本地保存。这就是一个最简单的爬虫了。&/p&&br&&p&接下来接触了正则表达式。于是一个真正意义的爬虫诞生了。那个时候我室友过生日,我给他写了一个扒取儿(cheng)童(ren)网站里面卖肉漫画的爬虫。他高兴得不得了。关于这个爬虫,有机会我应该会放出来吧。不过担心被查水表。&/p&&br&&p&然后我觉得我有点了不起了,于是去淘宝开了一个店铺,专业定做Python爬虫。一个月都没有生意,直到有一天来了一个买家。他让我做百度贴吧的爬虫,于是我写了一个原始爬虫的demo给他,然后正式接手这个工作。他让他的一个下属教我Scrapy,这个爬虫框架让我的生产效率提升了一个数量级。接下来扒取各大视频网站,又指导我使用Scrapy配合Redis制作分布式爬虫,然后把数据存入MongoDB中,这样我的生产效率再一次提升了几个数量级。&/p&&br&&p&这样我赚取到了给自己买iPad的钱。这也奠定了我学习软件方面技术的基本方法,项目驱动,现学现用。在后面接到的项目中,无论是爬虫的模拟登陆,打码,多代理,甚至是自然语言处理,多次证实了我这个方法的正确性。&/p&&br&&p&从大学入学开始,我就决定要出国。可是最后TOEFL只差2分让我与资本主义国家失之交臂。一气之下决定考研。&/p&&br&&p&大三下期和整个暑假都在准备考研,但是考研课程老师那种卖狗皮膏药十全大补丸的样子确实让我厌烦,考研数学题做起来也甚是恶心。后来因为一些私事,我放弃了考研,中秋节过后开始准备找工作。&/p&&br&&p&那个时候,BAT和华为的提前批招聘都结束了。而我想都不敢想华为,因为印象中,华为是招硬件的,而且基本上都是研究生。我是学E.E的,但是我的项目经历只有学校的各种实验课做的东西。于是我抱着试一试的心态去应聘华为的软件工程师。&/p&&br&&p&我不得不感谢Python,他让我几乎是毫无阻力的通过了大多数公司的面试,我的所有拿得出手的项目经历,全部都有Python的身影。最后我去了MTK而拒了华为,毕竟华为太累了。在两个月之前,我都不敢想我竟然有机会拒绝华为。&/p&&br&&p&这样我就成了一个程序员。本科学的东西我想我还是有点用的,作为一个终身爱好也不错。毕竟搞硬件的要表白,场面炫目到秒杀码农几条街。&/p&&br&&p&如果没有Python,我想我现在不知道在干嘛。他让我的人生从此不同。&/p&&/blockquote&
我认为我是非常有资格回答这个问题的,Python从根本上改变了我的人生。我几个月前写了一篇博客,,现在把它贴上来:我在本科学的是Electric Engineering,大四找工作却当了软件工程师。这可以说是各种机缘巧合吧。我接触编程是在初中…
来自子话题:
谢邀。看到邀请已经很久了,一直没敢回答,主要是我自己没有读过多少模块的源码,因为我一直认为读源码是一种比较“低效”的学习方法。我用 yolk -al 看了一下安装的模块,发现居然也没有几个算是“读过”的。web.py 的读过一点,它的接口很 pythonic,但这货的实现应该算不上是非常 pythonic 的代码。&br&&br&如果一定要推荐一些 python 的源码去读,我的建议是标准库里关于网络的代码。从 SocketServer 开始,补上 socket 模块的知识,熟悉 TCP/UDP 编程,然后了解 Mixin 机制的最佳示例 SocketServer.{ForkingMixIn|ThreadingMixIn},借这个机会了解 thread/threading 模块,这时会对并发量提出新的要求,就可以读 select 模块,开始对 select/{epoll|kqueue} 有深刻理解,搞懂以后就可以接触一下异步框架 asyncore 和 asynchat。这时开始出现分岔。如果是做 game 等以 TCP/UDP 协议为基础的应用,可以去读 greenlet 和 gevent,如果是做 web,则走下一条路。&br&&br&做 web,读 BaseHTTPServer、SimpleHTTPServer 和 CGIHTTPServer,读 cgi/cgitb,自己随意写框架,读cookielib,读 wsgiref,这时候自己写一个简便的 web framework 就 so easy 了,老板再也不担心你写 web 了,选择 flask/web.py/django/pyramid 都心中有数了。因为走的是 web 的路,所以难免要调用一下别人的 api,搞懂一下 httplib/urllib/urllib/urlparse。&br&&br&最后,上述提到的标准库,我大多读过。
谢邀。看到邀请已经很久了,一直没敢回答,主要是我自己没有读过多少模块的源码,因为我一直认为读源码是一种比较“低效”的学习方法。我用 yolk -al 看了一下安装的模块,发现居然也没有几个算是“读过”的。web.py 的读过一点,它的接口很 pythonic,但这…
来自子话题:
我大概是从 08、09 年从 Firebug 转入 Chrome Developer Tool,一直用到现在,越用越喜欢。我平时调错时常用的功能有:&ul&&li&&b&代码格式化&/b&&br&
可以将被压缩的代码自动展开&/li&&li&&b&实时代码编辑&/b&&br&
可以在运行时动态改变 JS 代码,并且不需要刷新页面就可以看到效果,一般用这个实时的在代码里插 console.log&/li&&li&&b&DOM 事件/XHR 断点&/b&&br&
可以针对 DOM 结构改变/属性改变/键盘鼠标事件 等下断点,直接断到事件的第一个 listener 函数上。还可以对 XHR 请求下断点,断到发起请求的那一行代码上&/li&&li&&b&调用栈分析&/b&&br&
这个非常常用,Scripts 面板下右上角的那一部分&/li&&li&&b&自动异常断点&/b&&br&
当代码执行出错时,可以自动断到出错的代码行上,直接分析出错时的运行时环境&/li&&li&&b&分析 HTTP 请求&/b&&br&
Network 面板下列出了所有的 HTTP 请求,可以很方便的查看请求内容、HTTP 头、请求时间等信息&/li&&/ul&
以线上代码出 Bug 为例。一般上手第一步是使用代码格式化功能将被压缩的线上代码展开,然后&b&开启自动异常断点&/b&,尝试重现 Bug。当 Bug 出现时代码会自动断到出错的那一行。然后通过调用栈分析结合&b&控制台&/b&找到最开始出错的那个函数上。一般的 Bug 到这里就算找出来了,但是如果这个 Bug 是在事件回调函数或者 XHR 回调函数上,就得结合 DOM 事件断点和 XHR 断点 进一步往上找哪个函数出错。另外,如果是发给服务器请求没有得到正确的 response,可以通过 Network 面板查看请求的参数、Cookie、HTTP 头是否有误。&br&
另外,还可以通过 Charles/Nginx/Fiddler 等工具将远程 js 代码映射到自己的电脑上,免去了代码格式化的麻烦,还可以直接编辑。&br&&br&还有些比较小的 Tips:&ul&&li&console.group/console.groupEnd 可以将 log 信息分组展示,看起来更舒服&/li&&li&console.warn/console.error 可以输出 warning 和 error log&/li&&li&element 面板右侧实时编辑的 css 样式,可以在 resource 面板里保存起来&/li&&li&关于样式还有个技巧,Elements 面板右上角的 styles 栏,右侧有三个图标,功能依次是:根据当前元素创建一个 css 样式、模拟 :hover/:active 等伪类、颜色值类型选择。实用&/li&&li&resource 面板可以删除和修改 cookie/localstorage&/li&&li&scripts 面板下的 ctrl+o 可以快速跳转脚本文件,ctrl+shift+o 快速跳转函数&/li&&li&右下角的齿轮图标里有个选项是开发者工具和网页左右分屏(Dock to the right,默认是上下分屏),宽屏必备&/li&&li&接上,还有个选项是禁用 Cookit,必点&/li&&li&接上,在选项面板里还可以手工编辑 user agent 和模拟触摸事件&/li&&/ul&&br&最后说说 IE 6 的调试,我是这么个流程:&ol&&li&首先尝试在 Chrome 下重现该 Bug,如果能重现,就先把 Chrome 里能重现的 Bug 修了。确定 Chrome 里 OK,但是 IE 6 有问题,再继续下一步&/li&&li&到 IE 里首先尝试高版本 IE,比如 IE 9。E 9 的开发者工具还不错,也可以下断点,调用栈分析、控制台样样都有。如果 IE 9 里没问题,那就继续尝试 IE8,一直定位到能重现该问题的最高版本的 IE 上。即使是 IE 7,其开发者工具也还是勉强能用的……如果不幸的碰上一个 IE 6 only 的 Bug,那就只有继续下一步&/li&&li&到这一步的话一般就是最苦逼的时刻。IE 6 实在是没有太好用的 JS 调试工具(据说 Visual Studio 可以调,我没用过,欢迎补充)。这时候一般就是二分+alert的土法定位到出错行,加上耐心和时间,还有一点点运气。这一步的话强烈推荐开 Fiddler。&/li&&/ol&&br&=====&br&补充:淘宝 UED 写了篇非常不错的文章 &a href=&/blog//debug-with-chrome-dev-tool/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/blog/201&/span&&span class=&invisible&&2/06/03/debug-with-chrome-dev-tool/&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&
我大概是从 08、09 年从 Firebug 转入 Chrome Developer Tool,一直用到现在,越用越喜欢。我平时调错时常用的功能有:代码格式化 可以将被压缩的代码自动展开实时代码编辑 可以在运行时动态改变 JS 代码,并且不需要刷新页面就可以看到效果,一般用这个实…
来自子话题:
利益相关,我是一个无名的阿里基层小技术主管,必须匿了。&br&&br&经过ebay等海外风的吹拂,前后端分离成了阿里集团前端组织今年内部推行的几大领域之一。&br&目前在公司内部还只是处在早期探索阶段。诚然经过半年的宣传和鼓吹,在前端工程师的圈子里已有了不小的影响力,但目前还缺乏后端工程师的理解和参与,也没有重量级的架构师(阿里架构师一般是指后端架构师)和技术管理层的充分讨论和鲜明支持,目前还是前端们的自娱自乐居多,各部门独立玩的居多,但已经呈现出比较活跃的发展态势,也是内部技术讨论热点,可谓道路曲折,前景光明。midway只是一个方案,不代表阿里在这方面的全部成果,很早之前就有nodejs/前后端分离的相关技术产品出世了。&br&在此不想评价midway的技术水平,应该说这是一个从实际场景出发、面向工程的技术架构,还在探索。从纯技术意义上来说,其实并没有非用不可的理由,midway宣称的那些好处,没有哪一条完全站得住脚,包括最基础的前后端代码共用和模板共用,仔细研讨起来也是过于理想主义的,忽视了实际工程的困难;至于利于性能优化或者bigpipe更是贻笑大方。&br&&br&&b&如果说前后端分离有什么好处,我觉得有三,需要辩证地看:&/b&&br&1,&b&扩大了前端的势力范围&/b&,&br&对技术影响力、招聘、造轮子、发paper、晋升答辩极为重要。要知道在阿里前端最高的级别是P8,人数则一只手能数的过来。这不能不说是前端这一层过于薄、离业务核心太远导致的,现在从技术上侵入服务端,技能树终于开了新分支,可能性猛然大了无数倍,一下子似乎发现了新大陆。对个人成长的渴望,是大量面临瓶颈的资深前端工程师无法抗拒的诱惑!&br&&br&2,&b&前端开发模式的变革&/b&。&br&自己玩后端,技术上、项目上都不用去看后端项目的排期和配合了,极大提高了开发和测试的便利度、自主性。阿里很早就了nodejs写的开发服务器用于内部测试,现在走到线上,也是厚积薄发,这为提高开发效率,进一步榨取前端劳力提供了可能。&br&&br&3,&b&促进阿里后端web框架的进化&/b&。&br&这一点是没有很多人甚至阿里人没注意到的(前端不懂webx,后端重心后移),webx框架发布已经很久,近期的技术升级非常少,技术形态已经陷入僵化,对现在的移动互联网趋势没有敏锐的发现机会并适应变革,很遗憾地缺席了新时代。nodejs来了,洗牌开始,前端人员天然对多终端、多屏、交互、体验的关注会为后端框架吹过一缕新风,给这停滞的技术领域注入活力。——所以我是赞成后端工程师学习nodejs的。&br&&br&同时问题也很多,这些困难和隐患不能不提:&br&1,&b&不可忽视的后端技术门槛&/b&。&br&不能不提这茬,即便midway很务实的只挑选了视图层作为主攻方向,但不可避免的控制器层还会带进来大量技术问题需要解决,比如配管、部署、日志监控、运维工具、SOA、加解密、事务、缓存策略、消息队列、异步调用、安全问题,总有避不开的暗礁。对阿里目前的后端技术栈来说,这些技术背后是无数的系统和平台,缺一不可,midway目前还是个玩具。更何况nodejs/web framework本身都在飞速演变之中,ES5到ES6,技术特性变化剧烈。即便由前期探路者完成了基础设施建设,后期他人进入的学习成本也非常高。时间长了,前端工程师本身又自然会分化成纯前端和nodejs工程师,如此前后端天然又产生了隔阂,呵呵,分久必合,合久必分。&br&&br&2,&b&前端不务正业&/b&。&br&正是因为困难重重,后端技术比前端复杂,加上新领域容易出成果,客观上造成了前端精英力量会大量倾斜到这个领域,进而使纯前端技术停滞不前,内部人心浮动,如果管理上不能很好理清长期目标和短期计划、前后端如何分离等关系和利益的要害问题,对公司来说是喜忧参半的。&br&&br&&b&3,JS的技术缺陷&/b&&br&因为ES一直在进化中,ES6的yield部分解决了callback hell,module也初步有了,但是楼上推崇的前后端代码共享和模板共享,在我看来恰恰不太可行。对阿里来说,后端代码是需要保护的,大量模板、校验函数等代码如果暴露出去,对网站的安全是一大威胁,这个好处实在鸡肋。譬如最近我们就发现JDK的一个加密类库在js中根本找不到替代方案,自己写的话实在力有不逮。nodejs还太幼小,还有很多技术问题就不展开了。&br&&br&4,&b&好处不够明显,推广困难&/b&。&br&这才是midway真正的死穴。如前文所说,目前的前后端分离运动还是部分前端工程师的孤立行为,绝大多数后端工程师和一线主管对此毫不关心(我除外),因为midway宣称的痛点不是他们的痛点,宣称的优点只有节约后端人力这一条对他们有点意义,而这些人才是决定midway命运的人!随着时间的推移,这可能缓解,也可能尖锐,毕竟这是前端们的西部大开发运动,是扩地之战。&br&&br&总结。&br&目前midway至少还有半年的路要走,前端要克制自己的冲动,有限度使用nodejs,相信在这个领域大有可为,但那时候他们就不是前端了,他们会有一个响亮的名字叫 “NodeJS工程师”。&br&&br&&i&#_BEGIN &/i&&br&&i&
7月5日 12点 ,看到小卒的回答后我觉得有必要&/i&&i&补充一下:&/i&&br&&i&&a href=&/people/xiao-zu-22& class=&internal&&@小卒&/a&,也许你觉得我在抹黑你,但我绝未针对midway,我也不认识这个团队的任何人,我描述的是管理上的大势,考虑引入一种新的后端语言对技术部门的长远影响,不针对具体case和主观动机,只评估客观结果;另外,不想当将军的士兵不是好士兵。君子言利,才是社会进步的不竭动力吧!:) &/i&&br&&i&
至于我自己,一直是nodejs的拥护者,早在2011年就写nodejs了,可能比这里的很多人都要早,人活得长了点,也创过业,不小心成了一个老前端+老后端+半个运维+半个产品经理,不谦虚地说能写半打语言,我肯定打死也不会承认自己有编程语言偏见的,呵呵,但语言的差异和强弱是客观事实,承认一门语言的缺陷并不会妨碍我们对它的使用,是不是?&/i&&br&&i&
后端技术门槛的存在,这一层认知障碍对你来说是很难感受到的,因为你有后端背景,但不要忘了前端同学们的普遍情况,有多少人有后端开发经验呢?我列出那些技术名词,不是强调其技术实现(很多中间件客户端已经被数据平台部实现了)的难度,而是强调前端同学掌握这些技术领域的成本,开发、调试、摸出最佳实践,这绝对是新的东西。现在前后端分离是在淘宝首页这种业务逻辑很少的场景中测试的,重点在view层,controller层可能只是简单的data collector,不知道你们考虑过复杂业务和交互场景下如何使用没有?那时候controller层会非常厚重,它不仅仅是取数和渲染视图,还会写入数据、还有事务、队列和锁等杂七杂八,还有更复杂的业务逻辑需要在这一层进行,把一切复杂性委托给后端接口是不够的,因为再牛的服务化也不可能给你提供所有粒度的封装,到时候node必然需要侵入到业务细节。代码复杂度一上升,callback hell谁也hold不住。&/i&&br&&i&
这一切对前端的挑战还不够大?也许你们可以试试怎么把下单系统给nodejs化。不客气的说,很多前端工程师一直在一维空间里存活,是单线程思维模式,对并发、事务、一致性、分布式等问题的理解基本空白,技术场景后移以后,要学习的东西真的很多很多!所以我的意见是,如果前后端真的分离了,最后必然出现NodeJS工程师,以区分纯前端工程师,不要奢望每个人都是大牛,这不科学。&/i&&br&&i&
前后端分离问题,其实是富客户端化大潮中的一个浪花,本质上还是移动时代对MVC模式中VC前移的内在呼唤。大家都希望后端老老实实只提供M就够了,别管其他,View和Controller要么在app里,要么在H5中,实在不行啊,也得在nodejs里,后端该干嘛干嘛去,呵呵。说到底是在革Java Web Framework们的命,这也是我的担忧,所以后端工程师的理解与支持才那么重要!&/i&&br&&br&&i&最重要的是,我花了很多业余时间观察集团内nodejs的发展,基本每个项目源码我都翻看过,&/i&&i&我还特意和数据平台部的一些同事聊过相关的进展,&/i&&i&其实是在琢磨如何在我的团队里引入的,所以如果让你觉得我对xxx有不屑,恩,这不是真的。我还是很佩服有想法、干实事的人的,加油!&/i&&br&&i&#_END&/i&
利益相关,我是一个无名的阿里基层小技术主管,必须匿了。经过ebay等海外风的吹拂,前后端分离成了阿里集团前端组织今年内部推行的几大领域之一。目前在公司内部还只是处在早期探索阶段。诚然经过半年的宣传和鼓吹,在前端工程师的圈子里已有了不小的影响力…
来自子话题:
我们公司办公环境是window,开发环境是unix(可以近似认为所有人工作在同一台机器上,大部分人的目录权限都是755。。。),为了防止开发代码流出到外网,windows与unix之间没有网络连接,我们只能远程登陆到一个跳转服务器再远程登陆到unix上,如果有unix网内的文件需要传出到windows网中,需要领导严格审批(反方向没问题,有专用ftp服务器)。对于通信专业毕业的我,最不能忍受的场景就是没有建立起双向通信。于是,为了可以将unix网内的数据传出来,我用python将二进制数据转化为图像,每个像素点可以表示3个字节,再将图像外围增加宽度为1的黑色边框,外面再增加宽度为1像素的白色边框,作为图像边界的标识符。这样,我在windows下截图,用python进行逆操作,数据就完好的解出来了!这样一次至少可以传1MB多的文件(屏幕越大传的越多),7z压缩一下,可以传很多文本了。如果需要传更多,还可以搞成动画。。。脚本一共只有几十行,却大大提高了我后来工作的效率。python好爽,我爱python!
我们公司办公环境是window,开发环境是unix(可以近似认为所有人工作在同一台机器上,大部分人的目录权限都是755。。。),为了防止开发代码流出到外网,windows与unix之间没有网络连接,我们只能远程登陆到一个跳转服务器再远程登陆到unix上,如果有unix网内…
来自子话题:
谢邀!&br&&br&事先说一句,Python Rocks, especially for Data scientist! 不是说 R 不好,我个人觉得 R 别别扭扭的,但是现在 R 很多,而且 R 作为数据分析是一门好语言。选择在个人,我只是说 Python Rocks!&br&&br&回答你的问题:&br&&blockquote&不过现在要学数据分析的话,我可以从哪里着手?&/blockquote&首先,依据你的情况,最好是有一个你熟悉背景的项目或者例子,不一定是「数据分析」项目,只要你能弄到数据,然后清楚要分析的对象和目的就好。&br&&br&接下来说方法,现在有很多课程可以帮助你学习这些方法,具体哪个方法好,完全看你的问题是什么,根据目的选方法。具体有哪些方法,请参考:&a href=&/question//answer/& class=&internal&&数据分析、挖掘的好书求推荐?&/a&鉴于你会 Python,推荐&a href=&/subject//& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&机器学习实战 (豆瓣)&i class=&icon-external&&&/i&&/a&&br&&blockquote&从哪里弄到有分析价值的数据?&/blockquote&还是上面那句话,依据问题选方法,有问题了,数据其实也不愁了。其余,请参考:&a href=&/question//answer/& class=&internal&&数据分析和挖掘有哪些公开的数据来源?&/a&&br&&blockquote&在开源社区有没有开源项目适合用来学习数据分析?&/blockquote&Python Rocks! &a href=&http://scikit-learn.org/stable& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&scikit-learn: machine learning in Python&i class=&icon-external&&&/i&&/a& scikit.learn 是非常非常棒的机器学习 package,文档详尽,更新速度快!你看例子,看源码,都能学到不少东西!其余,请参考:&a href=&/question//answer/& class=&internal&&请问学习机器学习有哪些好工具推荐呢?&/a&另外,去 github 上搜搜吧,好多好东西!&br&&blockquote&可以自己动手做个什么项目来实践&/blockquote&Kaggle &a href=&/competitions& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Competitions&i class=&icon-external&&&/i&&/a& 从最下面的101开始,逐级往上!&br&&br&Have fun and good luck!&br&&br&-------------------------------------------------------------------------------------&br&如果你觉得我的答案对你有帮助,可以考虑向我付费:&br&&img src=&/affddd0be397fe7dab92d596_b.jpg& data-rawwidth=&270& data-rawheight=&270& class=&content_image& width=&270&&
谢邀!事先说一句,Python Rocks, especially for Data scientist! 不是说 R 不好,我个人觉得 R 别别扭扭的,但是现在 R 很多,而且 R 作为数据分析是一门好语言。选择在个人,我只是说 Python Rocks!回答你的问题:不过现在要学数据分析的话,我可以从哪…
来自子话题:
教咯,你会什么教什么,题目做不出来就惩♂罚♀她。
教咯,你会什么教什么,题目做不出来就惩♂罚♀她。}

我要回帖

更多关于 android小游戏代码 的文章

更多推荐

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

点击添加站长微信