主流移动设备的屏幕参数
iPhone 5昨夜发布,早上起来看到了一些新iPhone的参数信息,于是好奇历代iPhone的屏幕参数,然后在维基百科发现了大部分主流移动设备的屏幕信息,这比iPhone 5本身给我的惊喜还要大!...
精选技术长文、实践记录与系统化阅读
低噪声、高可扫读;标题、摘要、来源、标签一目了然。
采集自各技术站点的近期文章。
iPhone 5昨夜发布,早上起来看到了一些新iPhone的参数信息,于是好奇历代iPhone的屏幕参数,然后在维基百科发现了大部分主流移动设备的屏幕信息,这比iPhone 5本身给我的惊喜还要大!...
你们觉得iWork 3个icon里哪个最好。 Pages, Keynote 还是 Numbers? 虽然Pages和Keynote拥有非常精致的造型和拟真效果,但是就icon设计而言,Numbers要超过它们。 Numbers脱胎于现实中的物体但又不是完全模拟它们,形象更简洁有力。 从表意性上,Numbers 对图表工具的概念进行了成功的提取和抽象,相信任何人第一次见到这个icon的时候都能认出它是一种什么工具,但墨水瓶(Pages)的象征性太模糊,演讲台(Keynote)是一个人们不熟悉的且特征不明显的事物。人们在通过icon形象识别出工具用途时要更困难。 从辨识度上,透视和视角的选用形成了很强的立体感,配色也非常鲜明。这些都提高了你从dock条上把它辨识出来的几率。它的小尺寸表现也好于其它两者。
每个程序员,在职业生涯的某个时刻,总会发现自己需要知道一些Linux方面的知识。我并不是说你应该成为一个Linux专家,我的意思是,当面对linux命令行任务时,你应该能很熟练的完成。事实上,学会了下面8个命令,我基本上能完成任何需要完成的任务。注意:下面的每个命令都有十分丰富的文档说明。这篇文章并不是来详尽的展示每个命令的各种功用的。我在这里要讲的是这几个最常用的命令的最常见用法。如果你对linux命令并不是很了解,你想找一些这方面的资料学习,那这篇文章将会给你一个基本的指导。
用户不会使用一个网站绝对不是用户的错,他会打开电脑,会使用键盘和鼠标,会打开浏览器上网,经过这么步骤最终到达了你的网站,然后发现网站上一团糟,搞不懂这是什么,那是什么,也懒得学习如何使用,于是就会眼都不眨一下就关闭你的网站。这是很现实的一个用户行为。在网站能够快速触达用户之后,网站运营人员面临的下一个重要问题就是:如何留住用户?
由于电商网站类型的不同,购买按钮的设计就会不同。因而购物车在其中扮演的角色也不一样,还会影响到后续的购买流程、个人中心模块的结构。总之,不同商业模式的网站,为用户创造的购物体验也是不同的。 以下是笔者基于日常使用对B2C和C2C两类电商网站的一些细节进行的分析,由于没有实际数据的支撑,也许分析得还不是很完善,希望能与有此设计经验的同仁进行更多交流,以期完善此文。
分布式理论 CAP(Eric Brewer) Web服务无法同时满足以下3个属性 Consistency(一致性),数据一致更新,所有数据变动都是同步的 Availability(可用性),每个操作都必须以可预期的响应结束 Partition tolerance(分区容错性),即使出现单个组件无法可用,操作依然可以完成 在任何数据库设计中,一个Web应用至多只能同时支持上面的两个属性,不可能三者兼顾。对于分布式系统来说,分区容错是基本要求,所以必然要放弃一致性。对于大型网站来说, 分区容错和可用性的要求更高,所以一般都会选择适当放弃一致性。对应CAP理论,NoSQL追求的是AP,而传统数据库追求的是CA,这也可以解释为什么 传统数据库的扩展能力有限的原因。
之前在朋友的介绍下,我开始尝试使用酷盘这个网络同步,感觉非常的好,不管是从UI还是从功能,都非常符合我的需求。 但是今天我意外的发现了一个问题,让我决定撤离国内云存储,亦或是自建云同步。 是这样的...
用户是否喜欢一款产品,取决于他使用产品获得的好处,也取决于他在产品中获得的体验,两方面都是用户价值所在,缺一不可。 最近在读王坚的《结网》,正看到网站用户体验的章节,收获很多。今天成文一篇,就当是阅读笔记了。关于网站用户体验的方法论有很多,这里引用王坚的一个简单易记的说法,用户体验三要素:别让我等!别让我想!别让我烦!
在高版本对低版本的主从中,要注意不要用到低版本不支持的字符集(所以官方并不建议高版本的master同步到低版本的slave)。 对于已经在Master的里面已经存在的binlog,要让主从能够继续同步,只能在slave_skip_errors里加上 22这个错误号。
我一直使用 MogileFS 存视频这样的大文件来做源站.也用来存海量的小文件. MogileFS 本身对大文件支持也是相当不错的,另外要知道大文件它查询数据库的次数就更加少. 在这需要提醒一下大家.需要注意在大文件上传的时候(平时我多大的都有大点的 4G 以上), 需要 MogileFS::Client 加上特别的参数,来分片上传,这样存放速度在 MogileFS 中就会快多了. 我们在使用 new_file 的方法来上传的时候,只需要加入可选参数中的 largefile => 1 .这个时候内部的 MogileFS::Client 中就会使用另一个上传的模块,不在使用默认的 MogileFS::NewHTTPFile.但功能基本一样,只是支持 chunked 和 partial (Content-Range) HTTP/1.1 PUT .
最近关于apc.include_once_override的去留, 我们做了几次讨论, 这个APC的配置项一直一来就没有被很好的实现过. 在这里, 我想和大家在此分享下, 这个问题的原因, 以及对我们的一些启示. 关于使用include还是include_once(以下,都包含require_once), 这个讨论很长了, 结论也一直有, 就是尽量使用inlcude, 而不是include_once, 以前最多的理由的是, include_once需要查询一遍已加载的文件列表, 确认是否存在, 然后再加载. 诚然, 这个理由是对的, 不过, 我今天要说的, 是一个更有说服力的原因.
我们需要简化问题,并先解决一个比较小的问题集。把系统搭建起来,这样可以迭代测试。自己玩过一些,才好改进。所谓,快速原型,吃自己的狗粮。那么现阶段集中做不同玩家的位置同步。仅解决这一个问题。把 3d 客户端和服务器搭起来,可以真正的跑起来。我们的 IT ,Aply 同学已经在内网搭建了模拟环境,模拟各种糟糕的网络环境。测试恶劣环境下的表现,我们有比当年更逼真的工具来实现。
所谓 AOI ( Area Of Interest ) ,大致有两个用途。 一则是解决 NPC 的 AI 事件触发问题。游戏场景中有众多的 NPC ,比 PC 大致要多一个数量级。NPC 的 AI 触发条件往往是和其它 NPC 或 PC 距离接近。如果没有 AOI 模块,每个 NPC 都需要遍历场景中其它对象,判断与之距离。这个检索量是非常巨大的(复杂度 O(N*N) )。一般我们会设计一个 AOI 模块,统一处理,并优化比较次数,当两个对象距离接近时,以消息的形式通知它们。 二则用于减少向 PC 发送的同步消息数量。把离 PC 较远的物体状态变化的消息过滤掉。PC 身上可以带一个附近对象列表,由 AOI 消息来增减这个列表的内容。 在服务器上,我们一般推荐把 AOI 模块做成一个独立服务 。
过去的一年我在微软亚洲研究院做输入法,我们的产品叫“英库拼音输入法” (下载Beta版),如果你用过“英库词典”(现已更名为必应词典),应该知道“英库”这个名字(实际上我们的核心开发团队也有很大一部分来源于英库团队的老成员)。整个项目是微软亚洲研究院的自然语言处理组、互联网搜索与挖掘组和我们创新工程中心,以及微软中国Office商务软件部(MODC)多组合作的结果。至于我们的输入法有哪些创新的feature,以及这些feature背后的种种有趣故事… 本文暂不讨论。虽然整个过程中我也参与了很多feature的设想和设计,但90%的职责还是开发,所以作为client端的核心开发人员之一,我想跟大家分享这一年来在项目中全面使用C++11以及现代C++风格(Elements of Modern C++ Style)来做开发的种种经验。
三角形变形记,用纯css实现的分布导航条效果 对于一些做前端开发的朋友,好多时候都会遇到各种各样的图形需要用图片做背景来实现,我个人比较倾向于css,在考虑成本后能用纯css来实现的绝对不用图片。这样的做法一是为了载入速度,二嘛就是为了耍酷(悲哀的是美女不会看代码而结识我...)。饶是如此,对于一些复杂的图形的我也束手无策,只能采用常规战术。但是对于一些比较简单的图形呢?比如正方形,长方形,三角形,如果只是纯色背景的话,我们肯定是不会去用图片做的。至于为什么,大家都是明白人不用我说了。不过某些时候需要用到一些稍微特殊的一些效果,比如上面看到的纯css实现的那种类似导航的效果,其中用到了三角形,有些朋友可能会犯难,难以琢磨这种形状是如何用css来实现的,不过不用着急,道理很简单,看了本篇教程你会恍然大悟的!
此文讲的并不是html5来实现的瀑布流效果,并且单纯的html也实现不了样式的表现,这里指的是css3的实现。而为什么我还要写成html5(css3)这样的标题呢,当然是引入流量了。你懂得! css3中增加了一个新的属性:column,来实现等高的列的布局效果。该属性有column-width宽度,column-count数量等,并且能根据窗口自适应。更多内容自行百度吧,呵呵在这里我开门见山的指出,下面的这种布局应该是成为css3的一种布局格式,姑且算作一种类瀑布流吧,但是此瀑布流非彼瀑布流。
对于select这个标签在各个浏览器下的显示样式都不相同,这就给设计师和前端开发者带来了极大的不方便。所以做出一个统一的样式的select样式是最直接的需求。 那么如何实现不同的浏览器下,有着相同样式的select呢? 下面看下本人的方法: 该方法主要用到的是js+css,代码量小,无插件 自定义select的样式 兼容性方面嘛,ie6可以无视了。 实现原理:(js+css模拟select样式)将select的标签元素,设置opacity:0隐藏掉,并给其设置z-index将其移动到最上层。这样在点击外围box的时候,实际上是点击了select。 然后通过select的onchange事件,将选中的数据赋值到span元素中显示出来。
之前的一年半时间里我一直为前一个创业项目而忙碌,就在那时,我开始发现一些规律,一些在创业过程中能影响你的生活起起伏伏的规律。 就在那个时期,我学到了一个最重要的事情:当快乐时我做事做的最好。这几乎能体现在各个方面。如果我快乐着,我编程时会更有工作效率,我能更好的解决用户的问题,我发现我还能更容易集中注意力。 就我而言,我发现有几个非常好的习惯能让我保持持续不断的快乐的感觉。而且,每当我的情绪有低落时,这些习惯是使我能迅速恢复到之前快乐水平的灵丹妙药。
现在类似于pinterest这类的表现效果很火,其实我比较中意的是他的布局效果,而不是那种瀑布流。 虽然我不是特别喜欢这种瀑布流的表现样式,但是还是写了几篇关于无限滚动瀑布流效果的文章,Infinite scroll+Masonry=无限滚动瀑布流,infinite-scroll-jquery滚动条(下拉)加载数据插件之类的文章。可能是我表达描述不是很详细清楚,所以好多朋友看了不是很清楚,并发信给我求解释。所以有了今天这篇文章。 其实早在:十几款jquery无限滚动插件这篇文章中我就提到过这种效果的实现原理。主要是判断滚动条滚动的位置距离底部的距离,如果小于或者等于设置的高度的话,那么就执行ajax加载异步数据到固定的盒子中。我想大家对于这点是比较清楚的,恐怕对于怎样获取数据有点不甚了了的感觉。
Nginx默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时候生效最关键的一点事,在server的设置里面添加这一行: listen 80 default; 后面的default参数表示这个是默认虚拟主机。 这个设置非常有用 比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.目前国内很多机房都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦。