- 九月腾讯,创新工场,淘宝等公司最新面试十三题(更新至10.04)日期: 2011/09/24来源: 结构之法 算法之道九月腾讯,创新工场,淘宝等公司最新面试十三题引言 曾记否,去年的10月份也同此刻一样,是找工作的高峰期,本博客便是最初由整理微软等公司面试题而发展而来的。如今,又即将迈入求职高峰期--10月份,而本人也正在找下一份工作中,所以,也不免关注了网上和我个人建的算法群Algorithms1-12群内朋友发布和讨论的最新面试题。特此整理,以飨诸位。至于答案,望诸位共同讨论与思考。最新面试十三题 好久没有好好享受思考了。ok,任何人有任何意见或问题,欢迎不吝指导:五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆; 第二只猴子起来一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一个。于是,它也吃掉了一个,拿走了一堆;.....其他几只猴子也都是 这样分的。问:这堆桃至少有多少个?(朋友说,这是小学奥数题)。 参考答案:先给这堆桃子加上4个,设此时共有X个桃子,最后剩下a个桃子.这样: 第一只猴子分完后还剩:(1-1/5)X=(4/5)X; 第二只猴子分完后还剩:(1-1/5)2X; 第三只猴子分完后还剩:(1-1/5)3X; 第四只猴子分完后还剩:(1-1/5)4X; 第五只猴子分完后还剩:(1-1/5)5X=(1024/3125)X; 得:a=(1024/3125)X; 要使a为整数,X最小取3125. 减去加上的4个,所以,这堆桃子最少有3121个。已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10。(参考答案:这题主要考的是对概率的理解。程序关键是要算出rand10,1到10,十个数字出现的考虑都为10%.根据排列组合,连续算两次rand7出现的组合数是7*7=49,这49种组合每一种出现考虑是相同的。怎么从49平均概率的转换为1到10呢?方法是:1.rand7执行两次,出来的数为a1.a2.2.如果a1*7+a240,b=(a1*7+a2)/10+1,如果a1*7*a2=40,重复第一步)。参考代码如下所示:int rand7() { return rand()%7+1; } int rand10() { int a71,a72,a10; ...(查看全文)
- 十月百度,阿里巴巴,迅雷搜狗最新面试十一题日期: 2011/10/10来源: 结构之法 算法之道十月百度,阿里巴巴,迅雷搜狗最新面试十一题引言 当即早已进入10月份,十一过后,招聘,笔试,面试,求职渐趋火热。而在这一系列过程背后浮出的各大IT公司的笔试/面试题则蕴含着诸多思想与设计,细细把玩,思考一番亦能有不少收获。 上个月,本博客着重整理九月腾讯,创新工场,淘宝等公司最新面试十三题,此次重点整理百度,阿里巴巴,迅雷和搜索等公司最新的面试题。同上篇一样,答案望诸君共同讨论之,个人亦在慢慢思考解答。多谢。最新面试十一题十月百度:一个数组保存了N个结构,每个结构保存了一个坐标,结构间的坐标都不相同,请问如何找到指定坐标的结构(除了遍历整个数组,是否有更好的办法)?百度最新面试题:现在有1千万个随机数,随机数的范围在1到1亿之间。现在要求写出一种算法,将1到1亿之间没有在随机数中的数求出来。Alibaba笔试题:给定一段产品的英文描述,包含M个英文字母,每个英文单词以空格分隔,无其他标点符号;再给定N个英文单词关键字,请说明思路并编程实现方法 String extractSummary(String description,String[] key words)目标是找出此产品描述中包含N个关键字(每个关键词至少出现一次)的长度最短的子串,作为产品简介输出。(不限编程语言)20分。搜狗:有N个正实数(注意是实数,大小升序排列) x1 , x2 ... xN,另有一个实数M。 需要选出若干个x,使这几个x的和与 M 最接近。 请描述实现算法,并指出算法复杂度。迅雷:给你10台机器,每个机器2个cpu,2g内存,现在已知在10亿条记录的数据库里执行一次查询需要5秒,问用什么方法能让90%的查询能在100毫秒以内返回结果。给定一个函数rand()能产生0到n-1之间的等概率随机数,问如何产生0到m-1之间等概率的随机数?腾讯:五笔的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把五笔的编码按字典序排序,形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, yyyw, yyyx, yyyy其中a的Index为0,aa的Index为1,aaa的Index为2,以此类推。1)编写一个函数,输入是任意一个编码,比如baca,输出这个编码对 ...(查看全文)
- 理解Git工作流日期: 2011/08/05来源: 黑客志如果你不了解Git背后的设计初衷,那么你正处在危险境地,当然有很多参数可以强迫Git按照你的意愿行事,但这并不是Git被设计的工作方式,这就好比你可以把改锥当锤子使用,并且它也可以完成工作,但这对改锥没什么好处。 下面就让我们来看一个最常见的Git工作流是如何变得没法收拾的。 首先从Master创建一个新分支,在这个分支上完成你的工作,然后将它合并回Master分支。 大多数情况下这不会有什么问题,你都会得到你预期的结果,这是因为在你创建新分支之后,Master的代码已经发生了变化。但是有一天,你合并了一个新特性到Master,不过这次Master的代码并没有发生变化,所以同以往不同,这次Git直接将Master指向了你的特性分支上的最后一个Commit,也就是“fast forwards”(见图),而不是创建一个合并commit。 不幸的是,你的新特性分支可能会包含一些checkpoint commits,这些小的commit保证了你的工作不会意外丢失,但是也让你的代码进入了相对不稳定的状态,现在你已经无法从Master的稳定commit中区分这些不稳定的commit了,一旦需要回滚,你很容易就会陷入灾难之中。 当然你可以添加一条规则:“只要是合并新特性时,都必须使用-no-ff来强制生成一个新的commit。”这样问题就解决了,于是你继续往下走。 直到有一天你在Production发现了一个严重的bug,你需要追踪这个bug是何时被引入的,于是你试图通过bisect来找出答案,但却总是找到那些checkpoint commit,于是你放弃了,并开始手动检查。 最终你将Bug定位到了某个单独的文件上,你想通过blame来查看过去48小时这个文件发生的变化,但是你发现这是不可能的,因为blame报告这个文件已经有几个星期没人碰过了,事实证明blame报告的是你最初的commit,而不是合并时的,你的第一个checkpoint commit在几周之前改变了这个文件,但是这个改变直到今天才被合并进来。 -no-ff标识就这样神奇的破坏了bisect和blame,就像你将改锥当做锤子一样。 重新考虑版本控制 版本控制系统的出现是为了解决2个问题 第一个问题就是帮助你更好的编写代码,你需要同你的团队成员同步代码,并且备份你的工作,通过Email发送压缩文件明显不是个靠谱的办 ...(查看全文)
- 软件开发团队主管易犯的十个错误日期: 2011/08/06来源: 36氪本文是Roy Osherove在Skills Matter的一次发言,他介绍了团队领导经常会犯的十个错误,并提出了一些解决方案。 Roy首先提出几个团队领袖可能遇到的一些问题: 我如何说服的我团队做某件事情 我该拿团队里的那个专门搞事的家伙怎么办? 我该如何做一个团队领袖呢? 我们为什么无法远离无谓的争吵呢? 我会不会失去朋友呢? … 他说这些问题其实缠绕他多年,接下来他也逐一做出解答。他正在写一 本叫《开发团队领袖手记》的书,里面也涵盖这些方面的内容。 下面就来说说这十个错误: #1 没有认识到团队的成熟度 这点是首要注意的地方,因为后面谈到的问题都是提及团队的成熟度。Roy说,可以从3个层面来评价一个灵活团队的成熟度。 混乱 学习 自我引导 混乱 一个混乱的团队就是哪都觉得很忙。 可能他们总是在争吵,或一直都被要求在非常有限的时间做太多的事情。但其实结果都一样:混乱。没有人有任何时间变得有条理,没有人有任何时间学习新的知识因为他们一直都在忙这忙那。 如果你问我的话,这个团队明显成熟度不高。因为所有人,要么耗尽精力,要么感到沮丧因为缺乏机会学习,而最终好的人都会离开。但是,Roy说这种混乱其实非常常见,而我也很赞同。如果你是在这么一个混乱的团队里当领袖,秘诀就是要正确的行动起来,你必须自信和强势。 当船快要沉的时候,你需要的是一个发号施令的领袖,而不是开会。 一个混乱的团队里的领袖,必须坚定立场,而且可能必须要和领导层说清楚,整个团队并不能把他们要求的所有的事情都完成的了。这是一个艰难的角色。他必须坚定的做出一些艰难的决定。 管理要做得对,做得好是一件很艰难的工作。 但为什么作为一个团队领袖,你必须自己做出这些艰难的决定,而不是和团队商讨呢? 答案很简单,因为没有足够的时间。 通过你自己做出这些执行上的决定,你让你的团队得到一些喘息的余地,可能也就是这些余地让他们把手上的事做完。当然,可能有些你做的决定是错的。这没关系,人生就是这样。但这是为了更重要的正确的事情,也就是让你的团队有成长到另一个层次的空间,一个不断学习的团队。 学习 这个层面的成熟度是团队自我管理的升华,但是团队成员还是有需要得到指导的。 一个团队领袖必须持续不断的为他的团队成员带来一些挑战,和质疑,甚至可能是功课。 目标就是让团队里的成员每周都有进步,开始学 ...(查看全文)
- Talk Jokes:一款语音笑话分享应用(开发流程以及创始人团队背后的故事分享)日期: 2011/08/16来源: TC中文My Note: 最理想的移动互联网开发团队,一个产品+设计,两个工程师(半个后台,一个半 iOS 端)。速度第一,人多了没用。该应用的创意很简单:每个人都可以说笑话,听笑话,分享和搜集笑话。不过其最主要的特点还是用户自己实时上传自己的笑话。 创意虽然简单,但是背后的构思和开发也不是那么的简单。Talk Jokes的创始人Sheldon Shi(芝加哥大学物理博士)和连续创业者申华章与我们分享了他们开发这款应用背后的故事(流水账的形式): 从点子到 App Store: 三个星期 今天又是周一,五周前的周日,我们有了一个点子。今天,我们已经开始做这个应用的第四版了。也许,我们并不够快,也许,我们的产品还不够好,不过我愿意写写这几周的流水账,和其它兄弟团队分享。 七月三号,星期天,ZG 发了封邮件 – “我觉得我们可以做一个说笑话的应用 ……” 七月四号,周一,我们都觉得点子不错,至少是原创的,那就做吧!不过前面一个项目的一些未完成工作还需要工程师忙活几天,那就先设计产品吧。哦,Talk Jokes 这个名字不错,就它了! 七月五号,周二,SS 做出了第一版设计,只包括界面流程和界面元素,没有具体的 UI 设计。这天有大量的反馈和讨论,所有人都热烈参与其中。 七月六日,周三,根据大家的讨论,对流程设计做了小的改动,流程设计定稿。SS 开始做界面设计。 七月七日,周四,界面设计最终确定,简洁大方。二人工程师团队开始工作,ZG 负责后台,JL 用 Xcode 搭建 App 的架构和流程。 七月八日,周五,流程图,80% 完成。同时,ZG 的后台主体功能也基本实现了。 七月十一,周一,流程图完成,补充了很多细节,加了很多注释。代码中 …… 七月十二,周二,流程图补充了登陆和注册流程,流程图最终完成。JL 也基本完成了App 的架构和流程,没有关联后台逻辑,没有 UI,有点丑,但是流程和页面跳转都实现了。ZG 实现全部后台功能。 七月十三,周三,SS 输出所有图片文件和字体规格,一共 194 个文件。JL 开始把图片加入项目,一共用了一天半的时间。 七月十四,周四,两位工程师一起开始整合后台逻辑。设计师转入下一个产品的设计。 七月十五,周五,主要功能完成,出了一个 build。记得当时是下午 6 点,我很兴奋,后来弟兄们走了我才发现我的 iPhone 版本有点低,整个周末那个期待啊 …… 七月十八,周一,出了一个可测试的版本。此后这周基本就在 debug,到下周一,提交 App Store。 七月 ...(查看全文)
- Chrome网页应用开发教程日期: 2011/07/27来源: 互联网的那点事Chrome网页应用开发教程 作者:史蒂芬 发布时间:2011年2月1日 发布源:How-Tos(OhBoard) 我花了10天时间开发了OhBorad,这个小巧的白板应用。12月12日,我萌生了想法,12月22日我赚到了第一笔钱3.99美金。而这一切,只花了240小时。嘿,你看看这是不是很酷呢? 所以在这里和大家分享一下这个开发指南。如果你打算自己做Chrome网页应用,那么你可幸运了!因为读过这个指南后,你就能像我一样从这个巨大的市场(10%的网民)中获得收益。 第一步:想到一个好点子 谷歌网络在线商店Chrome Web Store 的应用数量还非常小,远远不及苹果应用商店。 在此,我给大家支几招: 一个线下的to-do list 一份文本计算器 一个简单的计时应用 一个zen-mode 文本编辑器 当然了,在此之前,我要先推荐两位谷歌开发者的文章: Thinking in Web Apps. 第二步:开发应用 一共有两种类型的应用:hosted apps 和 packeged apps Hosted apps 是一种常规的网页应用,自带特殊文件manifest.json。所有程序均在开发者主机上运行。好处是,开发者能在谷歌在线商店上获得推荐机会。当用户使用这个应用的时候,他们就能够直接进入应用主站了。 另一方面,用户需要将Packaged apps从应用商店中下载下来,存到个人电脑中使用。开发packaged app使用HTML,CSS或JavaScrip语言。因此,如果你懂得这几种开发语言,很容易就能开发这类应用了。注:OhBoard就是packged app。 chrome支持所有HTML5语言。OhBoard利用本地存储将用户所有涂鸦存储在本地电脑中,随时可以调用。当然你也可以利用HTML5的地理位置定位,桌面提醒功能,等等。 第三步:创建 manifest.json文件 Manifest.json为你的app提供人性化的帮助,它能告诉chrome名字,描述,版本,icon位置等。最重要的是,它告诉chrome用户需要打开哪个页面。同时,你也可以给你的app不一样的指令,包括无限存储,地理位置,桌面提示,历史记录,书签,存储等等。 以下是OhBoard的manifest.json: { “name”:”OhBoard” “description”: “ ...(查看全文)
- 从铁血网看社区电子商务日期: 2011/07/21来源: GeekPark 捕风捉影昨天铁血网主办了首届社区电子商务大会,由这个以军事论坛著称的公司来办,乍一看总感觉不是那么回事,其实不然,社区电子商务,铁血可谓是个绝佳的案例。 铁血网介绍: 作为军事类社区,铁血此前主要依靠广告盈利。铁血2007年开始尝试电子商务,上线军品B2C网站“铁血君品行”,当年营收只有80万人民币,2008年达到600万,2009年涨至2600万,2010年则是突破5000万。 铁血在2010年进军线下,开设了2家直营店,上半年新增3家,下半年计划再开3家。CEO蒋磊在会上表示,上半年军品销售额已经超过5000万,其中线上线下营业额各半。广告收入在营收中占比已小于20%。 铁血军品商城的客户几乎全部来自铁血社区。铁血网用户从社区到电子商务的转化率是千分之五左右,二次购买比例超过30%。 铁血将于8月推出自有品牌,铁血负责设计,代工厂来料加工。上线自有品牌后,铁血君品商城的单件价格将从千元拉低至200~300元。 铁血近期正在接触几家人民币投资基金,洽谈融资事宜。希望2~3年能够登录创业板,现在已经开始进行相关筹备工作。 现场感受:CEO蒋磊,84年生人,脸上全无岁月沧桑感。说话慢条斯理,甚至还比较腼腆,现场讲了铁血的八条经验,都很实在。 比如他说铁血做电商也是迫不得己,因为不卖点东西就活不下去;铁血亲自来做也是没办法,因为找不到合作伙伴;运营社区,千万别想着可以去引导用户;做电商先在淘宝开店试水,铁血初期把重点都放在选货等方面,积累经验,他自己做了两个月的淘宝店客服。 一些理解: 1、社区做电商,收入形式由广告转向电商,这是中国互联网正在发生的一场“静悄悄的革命“。 财新网专栏作家Barrons 5月份发表题为《中国互联网:从广告看泡沫》文章,他以详实的数据及模型推导为基础,认为“如果未来在商业模式上没有创新,还是依赖广告,那么中国互联网企业的市值已经透支了未来多年的增长,泡沫已经形成”。 但他的前提其实被证明是不成立的,中国互联网商业模式正在发生改变,电子商务正逐渐取代广告成为互联网公司的主流盈利模式。我的同事@江涛 还专门写了篇文章《电商当立》反驳他,大家可以参看。 关于这个大转变,马化腾,曹国伟去年以来都不约而同的说过,电子商务将成为未来互联网的最大收入来源。 另外资讯社区做电商,垂直网站要比门户垂直频道靠谱,比如汽车之家VS新浪汽车,比 ...(查看全文)
- Wi-Fi新标准,一个基站覆盖62英里半径?!日期: 2011/08/04来源: 煎蛋My Note: 这么强大?觉得你家无线路由器不给力?抱着电脑上厕所去,结果发现只隔一堵墙信号就木有了?别担心,新的无线标准出台了……而且它简直是太imba了。 IEEE公布了新的Wi-Fi通讯标准——802.22,相比目前广泛使用的802.11 a/b/g/n标准,这0.22理所当然地带来了一些新的变化。其中最显著的,当然就是通信距离上的大跃进。 由于数字电视的大力推广和模拟电视信号的废除,我们已经可以重新启用从前用来广播模拟信号的那一段频率( 54MHz至698MHz),而这一部分信号频段又是非常适合远距离传输的,所以理论上应用了802.22标准的无线基站能够达到62英里的信号覆盖半径。 理论上是62英里,虽然理论上的东西绝大多数是达不到的,但只要能达到一半……不,只要四分之一那就已经很强悍了!以前路由器放客厅里坐在房间都不一定有信号,现在开个路由器全楼都能收到啊! //从另一方面看待这事情的话,如果你在你家无线网络的名字里写上骂人的话,那这攻击范围不就直接从地雷变成了战术核武了?! (Dvice) 加拿大安大略省学校禁止使用Wi-Fi Wi-Fi 过敏的人 科技新知:Wi-Fi Direct 标准公布 ...(查看全文)
- 使用正确的图片来影响人们做出购买决定日期: 2011/08/04来源: 所有文章 - UCD大社区你喜欢在博客文章中使用图片吗?是的,如果不是很麻烦的话,相信大家都不会介意放上几张漂亮的图片来点缀一下内容的,不过你的图片可能会导致下面的两种后果: 图片会帮助你实现你的业务目标,也可能会伤害你的转换率。 听上去很简单,不过除非你能够真正了解图片是如何来影响人们做出购买决定的,图片的一些细微差别就可能给你的转换率带来截然不同的效果。 因此,从今天开始,不要再盲目地添加一些没有必要的装饰图片到你的网站了! 为什么你不该使用图片来做装饰 如果你经常写销售文案或者Landing Page,你可能听过这样的话:“一字值千金,一图抵千字” 这绝对是一个真理……前提是你使用了正确的图片。 错误的图片通常会让人们觉得混乱,然后很容易地被人所忽略。 “是什么让一副图片恰到好处,与内容相得益彰?” 先看下面的测试: 如果你只是从Flickr或者其他流行的图片网站照搬一些图片到你的网站,你很可能就放置了错误的图片。 没错,你或许觉得它能够吸引人们的注意,但是除非图片直接与你所谈论的东西相关,否则访客就很可能会忽略它。 举例来说,T-Mobile 在他们的网站上突出显示他们的代言人凯瑟琳泽塔 – 琼斯,也许她是有史以来拿个电话放在耳边的最美的女人,但对于一个潜在的电话购买客户来说,Who Cares! 从用户界面工程上来讲, “有一个年长的顾客,他有兴趣购买一个按键稍大,更容易按键操作的手机,当他不能在网站上任何图片中辨别手机按键的大小的 时候,他感觉到了些许失意。而当他看到凯瑟琳泽塔 – 琼斯拿着一个他喜欢的电话放在耳边的巨幅广告banner时,他被彻底激怒了。这名顾客告诉我说:“她的确是个很漂亮的女人,不过我只不过是想看看按键有 多大而已,这和她的咪咪大不大一根毛的关系都没有,伤不起,伤不起啊!” 为什么顾客会有这样的感觉? 凯瑟琳泽塔 – 琼斯被用做了手机的装饰。没错,她或许真的很能吸引人们注意,但那能对T-Mobile的电话销售起到什么帮助吗?人们希望看到电话看上去到底怎么样,而不是哪一个明星拿着它。 在使用图片的时候确保你有一个需要这样做的理由 我们有许多理由在我们的网站或者博客上使用图片,当我们使用图片的时候,确保你并不仅仅因为“它看上去还不错”而使用图片。 什么才是使用图片的真正理由? 看看下 ...(查看全文)
- Where Is the World's Data Stored日期: 2011/08/04来源: myNoSQLMy Note: 人的脑子、书本、光盘磁盘、土地。An infographic with the largest data storage centers from Mozy via ReadWriteWeb: It would be interesting to see how international data storage sizes compare in countries with strong and independent internet economies (USA, Brazil, China, Russia, South Korea, India). Original title and link: Where Is the World’s Data Stored (NoSQL database©myNoSQL)
- Reds:一个Redis加Node.js的全文搜索引擎- NoSQLFan - 关注NoSQL相关 ...日期: 2011/08/02Reds是由LearnBoost公司的TJ Holowaychuk开发的一个基于Redis的Node.js全文搜索引擎,其代码加上注释也只有300行。不得不说又是一个Redis的最佳实践,它的主要原理是通过Redis的sets数据结构将分词后的词语碎片进行存储。这里的分词仅仅是对英文按空格 ...
- 好的体验从降低输入成本开始日期: 2011/08/02来源: 最新文章 - UCD大社区小屏幕小空间,输入信息举步维艰,不是误点,就是需要频繁切换,不是提示不明显,就是定制能力不够。如果你的应用为用户提供的服务需要进行大量的输入,那么一定要考虑到用户的输入成本和输入效率对用户体验的影响。否则就是你的功能再有亮点,但是糟糕的输入体验却把用户拒之门外。虽然你可能会抱怨,那不是你的错,是iPhone输入法的错,但是凡事好商量,怎样跟输入法亲密无间的合作,降低用户的输入成本,提高用户的输入体验呢? 一、用选择代替输入 如果你给用户提供的服务是可以罗列出来的,就用列表或拾取器,而不是文本框,因为选择远远比输入来得容易。 图2 选择器可以用来选择时间呀,国家呀,小说章节呀,省份呀等等,但是前两者更适合,是因为前两者会按照一定的规律排列,时间用时间日期拾取器,月份1~12,时1~12,分1~60,国家按首字母;而小说章节和省份这类的,如果不能按照一定规律排列的话,还是用要谨慎选用,因为选择轮以外的内容都是不可见的,如果也是不可预期的,用户根本不知道该怎么滚。 二、给出历史和建议 输入历史和输入建议,如果有必要的话,要及时出现,如果你的建议策略能命中用户的需求的话,能极大的提升用户的输入效率。 图3 掌上百度的搜索功能,当激活搜索框时,立刻给出搜索历史,输入第一个关键词开始,就给出相关搜索建议 三、定义不同的键盘属性 你可以定义不同的键盘属性,来适应用户将要输入的内容类型。 UIKeyboardTypeASCIICapable 图4 标准的键盘配置是为一般的文本输入设计的,默认是字母键盘,用户可以将它切换为数字和标点符号键盘。大多数其它键盘在都提供与默认键盘类似的功能,同时又提供一些适合于特定任务的其它按键。 UIKeyboardTypeURL 图5 URLs键盘用在网址输入框里,可以方便快捷的输入“/”或“.com”等特殊符号,长按.com可以出现.cn、.org等扩展域名。 UIKeyboardTypeNumberPad 图6 数字键盘,用于输入数字密码类的场景 UIKeyboardTypePhonePad 图7 电话号码键盘,用于输入电话号码,由于电话号码可能有“+86”之类的前缀,也可能有“*#06#”类的特殊需求,所以保留一个三合一 ...(查看全文)
- 各大网站注册流程解析日期: 2011/08/02来源: 最新文章 - UCD大社区1、简而精的流程,尽可能让用户一步到位操作完成,如果不能一步完成,则需要分划出清晰的注册导航,引导用户填写 复杂的注册流程,首先应该考虑简化。用户在填写复杂的注册表单时常出现反感心理,对网站的使用抱有不满,给用户下一次的操作带来不利的影响。应该让用户满意而归,对网站的应用产生好感,带来下一次的光临;下面分析下目前几种类型的注册页面的流程设计: 支付宝注册页面: 优点:清晰的标签引导导航,一目了然;让用户清楚了解到用户操作过程,不需要思考后续环节会出现什么页面 缺点:给用户的感觉注册繁琐,需要一一填写完成验证,时刻会在中途离开,操作花费的时间成本多; 精简的注册流程会提高网站转化比,反而繁杂的流程会失去用户;因此我觉得引导导航尽量控制在《3个以内,设计人员应根据网站需求考虑注册流程的设计 淘宝注册页面: 淘宝注册流程是目前互联网注册流程的楷模了,也经过了多次的更改,印象中之前的注册也是标签式的引导导航展示,今年初更改成现在的样式 淘宝的注册流程是标签式引导导航的一种延伸,淘宝将这些步骤以文字直白的形式展示第一步—第二步—第三步;在进入此页面,页面直接提示操作的第一步是什么,但是多心的我们是否会思考到底有多少个步骤呢?是不是因为步骤太多,所以才会改成这样的展示,这让我们思考。对比引导式导航,如下 优点:界面展示大气,简洁,提示引导人性化 缺点:Don’t make me think,让用户产品疑惑 盛大注册页面: 注册页面 注册流程: 盛大注册页面很简单,没有提示任何的步骤,直接展示了需要填写的信息,而且信息量很少,用户进来这个页面第一思路应该是填写这些信息,便可顺利流畅地注册成功;盛大也是按照用户的臆想流程设计的,但在中间加入了一步“验证邮箱”,是过滤掉无效用户,产品赋予了其功能,保留那些有效用户为他们而设计;也有很多互联网产品略过邮箱验证,直接注册成功的案例 淘宝与支付宝有复杂的业务逻辑关系,注册流程会相对复杂也是为产品考虑其需求;因此流程的设计取决于产品的性质 2、简洁干净,不要有任何的视觉噪音去干扰用户使用界面 如果流程不能简化,则应该从用户的视角,建立操作流程的视图,引导用户,让用户理解。 上面的案例中,右边的图标及提示信息干扰了界面的使用,注册页面的目的很 ...(查看全文)
- 用 Python 做科学计算日期: 2011/07/18来源: LinuxTOY由 HYRY Studio 撰写的《用Python做科学计算》一书接近出版阶段。 “本书将介绍如何用Python开发科学计算的应用程序,除了介绍数值计算之外,我们还将着重介绍如何制作交互式的2D、3D图像;如何设计精巧的程序界面;如何和C语言所编写的高速计算程序结合;如何编写声音、图像处理算法。” 请诸位朋友参与到此书的调查问卷活动中,帮助作者将此书更快出版。 参与调查问卷的朋友可以获得该书 PDF 试读版本(但请不要放到网上)。 在线阅读及离线版本下载 分类: Books | 永久链接 | 收藏到 del.icio.us | Email 给好友 | 17 评论 | 捐助本站
- Firebug 1.8日期: 2011/07/29来源: LinuxTOY知名的网页调试开发工具 Firebug 1.8 发布,兼容 Firefox 5.0。 新功能如下: console.timeStamp() 可以用来方便的比较 HTTP 传输和 JavvsScript 执行时间。 可以在网络面板显示 IP 相关信息。 重新带来 HTML 预览功能。 改善脚本位置列表。 支持在重新载入页面是保留命令行内容。 新的 DOM 面板选项:”只显示自身属性“和“只显示可枚举的属性”。 CSS 面板支持颜色鼠标提示预览。 支持快捷键改变 CSS 属性值,Ctrl+Up/Down 增减0.1,Shift+Up/Down 增减10 。 更好的支持外部编辑器。 支持在布局侧面板显示 CSS3 的新 Box Sizing 属性。 截图及详细英文介绍 扩展下载 分类: Development, Firefox Extension | 永久链接 | 收藏到 del.icio.us | Email 给好友 | 9 评论 | 捐助本站
- 精于图片处理的10款jQuery插件日期: 2011/07/25来源: 互联网的那点事...这篇文章将重点介绍用于图片处理的10个超级jQuery插件,可以生成图片的动画和特效,缩放图片大小等等。 1.AJAX-ZOOM 这个插件非常有趣,可以用来缩放图片,旋转对象(3D特效)。查看demo。 2.Transformable 可以用来变换图片:旋转,变换倾斜角度,调整图片大小(通常情况下可以和DIV共用)。查看demo。 3.Animated slide image 制作炫酷独特的图片幻灯片。查看demo。 4.Before/After 这个插件可以用来对比两张图片的前后变化。查看demo。 5.CSS Emoticons 这个插件可以把你的文字情绪转化成笑脸表情(纯粹的CSS,没有图片)。查看demo。 6.JCrop 这个插件可以用于裁剪图片,帮助用户抓图。查看demo。 7.Image Blur 给图片添加模糊效果。查看demo。 8.3D ObjectVR 可用于创建漂亮的交互性3D形状。 9.Smart3D 鼠标移动时可以模拟3D效果。查看demo。 10.Interactive Picture 可灵活使用小提示来生成互动性图片。这对游戏开发很有用。查看demo。 查看完整信息:http://www.script-tutorials.com/10-superb-jquery-plugins-for-working-with-images/ 来源:http://www.ued163.com/?p=1767 © 推荐 for 互联网的那点事, 2011. | Permalink | One comment | Add to del.icio.us Post tags: jQuery插件 你可能也喜欢: 不需PS超简单制作圆角图片的方法!推荐在线制作圆角图片修改工具网站 (@iplaysoft) ...(查看全文)
- Quora使用到的技术日期: 2011/07/04以前向大家介绍过Stack Exchange的系统架构和Facebook的系统架构,今天和大家说说Quora的。本文主要参考了Phil Whelan的这篇文章《Quora’s Technology Examined》。关于Quora是个什么网站我就不多说了,国内对他的C2C网站叫“知乎”。呵呵。我们还是来看看Quora的技术吧。 Search-Box Quora只能搜索问题,主题标签,用户名,和主题标题。没有全文搜索,所以,你无法搜索问题和答案的内容。而搜索中使用前缀搜索方式,比如你输入mi,则Microsoft会马上出来。其搜索还会有一些非常简单的模糊匹配的算法。另外,如果有重复的问题,其中一个问题会自动跳转到另一个问题,但是在搜索中还是会出现。搜索中没有拼写检查。 一开始,他们使用的是一个开源的搜索服务器,叫Sphinx。其支持上述的那些功能。现在他们不用这个技术了,因为受到了一些限制。他们做了一个比较新的解决方案,这个算法由Python实现。 参看:What libraries does Quora use for search? 实时查询 Quora的查询是非常高速的,其查询请求是通过AJAX的GET请求发送的,结果返回用的是JSON数据格式,但他们解析JSON是在服务器端,而不是通过浏览器的javascript。这么做的原因可能是他们想高亮搜索关键词,似乎使用Client端的Javascript非常不好做。 Quora的即时搜索好像比较暴力,如果你输入Microsoft(一共9个字符),你会看到其会像后端发送9次查询——每按一个键一次,无论你敲这个单词的速底有多快,每输入一个字符都会发一个请求给后台。对于这样的看上去没有效率的对后台的请求,后台的服务器端会来控制相关的前台请求,所以,就算是前台这样做,也不会增加服务器端的负载,因为后台会做相关的处理。 Quora的搜索使用HTTP长连接,当你开始敲查询的时候,连接就建立了,这个连接会持续在那里,你下次搜索的时候会继续使用这个连接,除非你60秒没有动作了。 参看:Is Quora going to implement full-text search? Webnode2 和 LiveNode Webnode2 和 LiveNode 是 Quora 内部的系统,其用来管理内容。Webnode2 生成 HTM ...(查看全文)
- wordnik:用MongoDB建立关系图谱日期: 2011/07/06来源: NoSQLFan下面Slide来自wordnik,它是一个在线辞典和语言库,wordnik大量使用了MongoDB进行数据存储,而最近wordnik在MongoFS发表的一个演讲中,更是提出了其利用MongoDB构建单词关系图谱的做法。这不仅是一个构想,而是实际生产中的真实案例。下面就是相关的Slide: Building a Directed Graph with MongoDB View more presentations from Tony Tam 觉得文章还不错?快分享给更多的人吧! 您可能还喜欢: MongoDB云服务价格对比 安全警示,一个简单的MongoDB注入 MongoPress:一个MongoDB加PHP的开源CMS Wordnik 的 MongoDB 使用经历 夜说mongodb ...(查看全文)
- 北京公交吉尼斯,逗死了日期: 2011/06/26来源: What a Fuck!-操蛋网1. 全市路程最长的公交车:919支线延长线快车(德胜门——河北涿鹿),全程160km。 2. 市区路线最长的非环线线路为:983支(王佐——东窑),全程68.1km。 3. 全市路程最短的公交车是:540(龙祥嘉园——城铁北苑路北站),全程2.5km。(没有某些郊区车一站长) 4. 发车间隔最短的公交车是:345快,高峰期一分钟5辆。平均每12秒一辆车。 5. 站数最多的公交车是:996(平西王府——肖村桥西),共84站。 (全程约5小时司机累苦逼了)(亚洲之最) 6. 配车最多的公交车是:345快 (巅峰时达175部,现在换三轴之后也大于140辆,真有钱)。 7. 配车最少的市内公交车是:313(丰台体育中心——大王庙),共一辆。(乘务员一个姓吴一个姓李,姓吴的比姓李的大,换班时候她叫她吴姐坐过此车的几乎都认识她们)基本也没几个人坐过此车。曾有人等此车3小时未有车的记录。 8. 转弯最少的公交车是:322(四惠站——武夷花园),全程直线,没有转弯。 9. 发车间隔最大的市内非定班公交车:530(西红门公交场站——大兴小营),间隔1小时。 10. 站数最少的公交车是:临1(地铁新宫站——地铁大葆台站),仅一站。 11. 距离最近的两个公交站:新闻中心——国家体育馆公交场站,仅28米。(多数时候不停除非有人上车) 12. 全程离市中心最远的市区公交车:58(苹果园南——五一剧场),全程都在五环外。 13. 全程离市中心最远的郊区公交车:314(昌平东关——长陵),全程都在六环外且是最远的。 14. 总站上人最多的线路:345快(德胜门西——朝凤庵村),首站上的人就能把车挤满了。(创下最快满员记录18秒,基本都在1分钟内车内爆满) 15. 线路最危险的公交是:948(地铁苹果园西——大安山矿),陡坡急弯很多。(司机会漂移就爽了) 16. 最堵车的线路是:28(东大桥——弘燕站),全程基本上每隔1.5公里就有一个堵点。(神仙等能给憋疯) 17. 所走路线最窄的公交车是:351(大观园西——丰台路口),丰台桥梁厂路段。(两辆出租车无法同时通过) 18. 非环线线路重复最多:525(崇文门东——石榴园东区)和610(崇文门东——黄村火车站),525路全称仅有石榴园东区这一站和610路不同。 19. ...(查看全文)
- 一个很棒的Redis介绍PPT日期: 2011/07/13来源: NoSQLFan下面slide来自gr8conf 2011大会,内容包括了: Redis的存储方式描述 Redis的功能特点列举 Redis几种数据格式的操作图解及代码示例 Redis实际应用案例及代码演示 Redis and Groovy and Grails – gr8conf 2011 View more presentations from Ted Naleid 技术传播,需要你我共同努力! 您可能还喜欢: Bump的Redis应用经验 Redis命令参考中文版翻译 非同一般的Redis介绍 Redis 测试引擎将升级提速 Redis几个认识误区 无觅 ...(查看全文)
- Bump的Redis应用经验日期: 2011/07/17来源: NoSQLFan这里说的Bump就是那个手机碰一碰就能交换信息的app,本文来自Bump的开发者博客,他们描述了自己使用Redis的几种方法,以及在使用过程中的一些经验,包括与MongoDB同机部署的一些问题,NoSQLFan转译如下,详细描述可移步原文 1.将Redis用作消息队列 采用的当然是Redis的List数据结构,而实际上NoSQLFan之前还讨论过采用sorted sets结构来做带权重的消息队列的方法。 2.将Redis用作日志收集器 实际上还是一个队列,多个端点将日志信息写入Redis,然后一个worker统一将所有日志写到磁盘。 3.存储社交关系 比如将每个人的好友存在一个集合(set)中,这样求两个人的共同好友的操作,可能就只需要用求交集命令即可。 4.用作缓存层 用来做持久化存储的缓存,和Memcached一样,可以在持久化存储获取成功后将数据在Redis中进行缓存,我们知道,Redis的性能优于Memcached。 5.关于持久化 用作持久存储的时候,可以选择定时flush成rdb或开启aof日志的做法,具体选择哪一种,可以根据业务上可接受的数据可靠程度而定。 6.与MongoDB一起使用的问题 一个提醒,在Bump早期,曾将Redis和MongoDB放在同一台机器,而由于Redis的单线程,常由于MongoDB对于CPU或磁盘IO的占用而导致其某个过程(比如malloc或者写aof)执行时间过长,从而进一步导致其所有操作被阻塞并延迟,所以尽量不要将其用于可能被大量占用CPU或磁盘IO,导致Redis工作线程被阻塞的场合。 来源:devblog.bu.mp 技术传播,需要你我共同努力! 您可能还喜欢: Redis命令参考中文版翻译 foursquare 的数据分析 ...(查看全文)
- Pyramid 1.1正式版发布,Python Web开发框架日期: 2011/07/22来源: ITeye资讯频道Python Web开发框架Pyramid 1.1正式版发布了! Pyramid是Pylons Project的核心产品,它具有灵活轻巧、运行速度快的特点。 Pyramid 1.1的新特性如下: 支持request.response属性; New views introspection feature: paster pviews; 支持静态路由; 默认的HTTP异常视图; http_cache视图配置参数允许Pyramid设置HTTP缓存头文件; 新特性使得在Pyramid环境中写脚本更容易,同时该版本还改进了依赖性,并完善了文档。 更多更新内容:http://docs.pylonsproject.org/projects/pyramid/1.1/whatsnew-1.1.html 安装说明:http://docs.pylonsproject.org/projects/pyramid/1.1/narr/install.html 感谢 lihuapi 投递这篇资讯 声明:本文系ITeye网站发布的原创资讯,严禁任何网站转载本文,否则必将追究法律责任! 已有 3 人发表留言,猛击-这里-参与讨论 ITeye推荐 —软件人才免语言低担保 赴美带薪读研!— ...(查看全文)
- 使用 Redis 解决接口被刷问题日期: 2011/07/19来源: 偶有所得,记录在此问题背景Web 上,凡是有价值的接口页面、接口,在利益的驱动下,总有被犯罪分子刷的可能;对方少数几个 IP 还好说,直接封 IP 了事,要是人家有肉鸡,有几千几万的 PC 资源,源源不断,封 IP 即便是自动检测自动封 IP 仍然是显的乏力,被欺负心里很不爽。解决办法其实很简单,在处理每个请求前,先检测下这个 IP 是否是恶意攻击的 IP,如果是直接返回个不知所云的页面给对方就好了。要判断是否是恶意攻击的 IP,我们需要记录每个 IP 每一次请求的时间,如果在 xx 秒内,访问量超过 yy 值,则判定为恶意攻击的 IP。这里要几个问题:由于每个接口请求,都要记录下 IP 和 请求时间,这个记录动作必须非常快,不能卡住,否则会影响整个服务。这些记录的 Log 数据量非常大,但真正对我们有效的也就是最近 xx 秒内的数据,所以要有个机制自动删除无用的记录以节省空间。判断是否是恶意攻击的 IP 这个逻辑要求有比较高的效率。采用 Redis 来解决问题对于每个请求,IP + timestamp 为 Key,在 Redis 里面建立一个计数器;相同 IP 相同时间每访问一次,该计数器加 1给 Key 设置个有效期,如 5 分钟,5 分钟后,Redis 自动删除过期数据释放空间。如我们设定,5秒内超过20次,即判定为恶意 IP。对于每个请求,通过 IP + timestamp 取最近的 5 秒所对应 Key 的计数器的值,然后累加,看是否看过限额即可;如果超过限额,则将以该 IP 为 Key,存入 Redis 中,超时设置为 5 分钟,这样就形成了最近被封的 IP 列表。每次请求,都判断当前 IP 是否在这个列表,如果在这个列表,直接封掉。效率问题,Redis 保证,这个不用担心。 ...(查看全文)
- 被自己拖死的人们日期: 2011/07/22来源: Reborn这是个很常见的现象:创业团队常常被外包公司拖死。可是,外包公司的本意可不是想害死谁——谁会从一开始就想干死自己的衣食父母呢? 陷阱在于:参与协作的双方目标并不一致。 外包公司的目的只有一个:按时定量完成被给予的任务,然后拿钱走人,做下一个项目。 可创业团队的困境在于,他们的“主意”并不确定,方向也好,目标也罢,很可能始终处于调整状态——事实上,任何一个“无中生有”的过程都是这样的:需要一定量的时间与实践才能从一个“主意”演化为“可实现的计划”,最终还要拥有很强的执行力才能将计划变成现实。 外包公司可没有这个耐心,他们想快速完成任何一个项目。他们会不由自主地告诉对方:“这个是不可行的……”,“那个是没必要的……”,“还有这些和那些是可以下一期再说的……”——外包公司在说这些的时候,甚至可能自己都没意识到得出这种结论的根本原因其实只不过是他们没能力完成而已。 这并不罕见,只不过因为最终已经失败了所以知道的人少而已:很多创业团队就这样被外包公司拖垮了。(注意:以上并不是再说“千万不能找外包公司”,这是另外一回事儿。) 很多公司最终步履艰难,其根本原因在于公司内部绝大多数员工都成了“外包公司”。 员工的目标并非“急公司所急,想公司所想”,而是“努力完成上司下达的任务”而已。一旦上司的任务指定不清楚,或者方向有误,那么公司就会出大问题——但责任并非在于那些“外包公司”性质的雇员。 很多人也一样,他们缺乏长期目标,甚至连想都没有想过自己的长期目标是什么。 于是,一不小心就把自己变成了赚自己时间精力和金钱的外包公司。 下场当然很惨:一步一步把自己拖死——可是,死期不是马上来临的,很可能在三年、五年之后。等死期来临之际,又如何想明白自己究竟是怎样一步一步走到这个地步的呢! 于是,很多在缓慢走向灭亡的过程中毫无知觉。生不由己,死因不详。 ...(查看全文)
- JavaScript,只有你想不到日期: 2011/06/25来源: HTML5研究小组很长时间以来,JavaScript在我眼里都是编程语言中的二等公民。早先,它经常是很多安全问题的发源地,就像是胶水一样,它能把HTML应用与样式粘到一块,可没有人拿它来正正规规地写程序;这样的情形太普遍了。而Java、Ruby、Python,这些才是真正能用来写程序的语言。 过去几年间,我对JavaScript的态度有了彻底的改变。JavaScript已经“长大成人”了。我敢保证很多JavaScript开发人员都不会认同我前面的说法,他们会说JavaScript一直都是一个十分强大、成熟、深得人心的语言。或许他们说得没错,事实上只要是一门完整的编程语言,就能拿来写程序,也包括BASIC这种滥东西。而一门语言真正有用,必须一方面自身具备很强的表达能力,另一方面还要有众多的库和开发工具。显然,JavaScript的表达能力早就没有问题了,即便是创建对象的方式有点不好让人接受,其实问题也不大。直到最近,一些极其重要的扭转局面的技术出现了:jQuery、JSON、Node.js和HTML5。或许JavaScript以前就是一门完善的语言了,但却是这些重要的相关技术(以及其他一些没有在这里提及的),让JavaScript成为了每一个开发人员都知道的语言。如果明年你要学一门新语言的话,那一定就是JavaScript。 潜力无限的Node.js 说Node.js潜力无限的意思,就是它有可能引发Web开发的革命。Node.js是一个框架,用于构建高性能Web应用——即使是巨量的请求也能应对如流。虽然Node本身作为一个底层框架,能够用于构建任何应用,但它还是最适合构建Web服务器。它的异步事件驱动模式与传统的请求-响应模式相比,无疑更适合Web应用。 有两方面因素更让人看好Node。首先,Google在提升JavaScript性能方面掀起了一场革命。这句话的意思并不是说你随时随地都可以用上最好的JavaScript引擎(尽管这也是我们一个美好的期望)。但可以肯定的是,Google在其他竞争对手还没有上心的情况下,真的把JavaScript性能当成了一回事儿。如此一来,就把Mozilla、Apple、Microsoft、Opera,还有其他浏览器开发商逼到了性能竞赛的跑道上。结果导致我们现在使用的JavaScript引擎较之几年前快了不知道有多少倍,完全有能力运行复杂的大型Web应用 ...(查看全文)
- 查看更多
苇叶舟
波涛汹涌的江面,逆流而上的小船。
Copyright © 2012 苇叶舟 All rights reserved. Theme by Laptop Geek.