做大的艺术 - 大型网站的架构设计
看了一些关于网站架构方面的文章,基本上是大同小异。也就是说,基本的原则都是一样的,而且软件也都是开源软件。但难点在于整合和运营。整合需要一些自制的工具或者根据业务定制软件;运营需要考虑数据中心建设,业务流程设计等等,不是一个简单的软件问题。从小到大的演化是一个很有意思的故事,和人的成长类似
精选技术长文、实践记录与系统化阅读
低噪声、高可扫读;标题、摘要、来源、标签一目了然。
采集自各技术站点的近期文章。
看了一些关于网站架构方面的文章,基本上是大同小异。也就是说,基本的原则都是一样的,而且软件也都是开源软件。但难点在于整合和运营。整合需要一些自制的工具或者根据业务定制软件;运营需要考虑数据中心建设,业务流程设计等等,不是一个简单的软件问题。从小到大的演化是一个很有意思的故事,和人的成长类似
最近做一个项目,需要javascript动态插入样式,结果以前的方法失效了!查了2个小时的原因竟然是自己手贱,这个最后再说! javascript插入样式在前端开发中应用比较广泛,特别是在修改前端表现和页面换肤的时候。最近做的这个任务是用户在别人的站点上点击一个按钮,就会在别的站点页面下插入一个脚本,执行,这其中包含了样式的插入。 一般情况下javascript动态插入样式有两种,一种页面中引入外部样式,在中使用标签引入一个外部样式文件,另一种是在页面中使用
我们知道,为了应对不断增长的数据,我们对数据进行切分,存储在不同的数据库里,本文提到的数据库在非特定指明的情况下,均指一个逻辑数据库(是一组数据库,比如Master-Slave),而非单一各个物理数据库。 其主要有两种方式: 垂直切分(Vertical Partition/Sharding):就是把不同格式的数据,存储到不同的数据库。
简介 mongoDB是一种 NoSQL 的文档型的数据库管理系统。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似 json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
异常与之对应的错误码(或者状态码), 到底各自有什么优点, 缺点, 我们应该怎么使用呢?
03 – 认证(Authentication) - 认证因子(什么东西可以用来做认证凭证) A. Something you know 。。。。。
最近CSDN等网站被脱库的事情,闹得沸沸扬扬。身为程序员,我觉得软件开发人员自身安全意识的强弱和 安全知识的多寡会直接影响到所开发系统的安全性。从这个角度来分析,系统做的不安全有三种原因: A. 不知道存在安全隐患。。。。。。
百度的搜索URL存在着一定的规律和逻辑,下面的链接是我使用百度搜索“标点符”后得到的链接,下面就来一起分析下百度搜索结果URL的秘密。
跨域修改iframe内的文字。
几个月之前,大概是9月,我有一条旅行产品的创业构思。当初是想从“旅行计划”入手,跟方言君的同伴大致聊了聊想法,他也觉得好。但随着构思不断细化下去,我们在设计方向上有很大的分歧,便警惕起来,会不会又是一颗雷呢?于是,我找了另外一两个信得过的同事,请他们帮忙评估(产品讨论与Mr.Right)。这过程中发生了两件事情:一是市场上不断有旅行计划类的新产品冒出来,均不成功,亲身体验后我认为“计划”并非好的切入点;二是在纸上画线框图,向同事介绍想法时又有了新灵感,打算更换突破口。我自己是一个用工具很笨拙的人,这次赶鸭子上架,既然没有搭档帮我出原型,只好从头学Axure,没想到操作如此简单……11月的一个周末,我刚学会Axure基本操作,手舞足蹈,两天出完网站与APP的线框原型,共计四五十个大大小小的页面。拿着原型再请擅长交互设计的同事提意见,我去修改,反复N轮,直到同事点头说“挺好”为止。这只是个开头
整个春节,吸引国人眼球的莫过于发端于麦田,沸腾于方舟子的“韩寒代笔”事件了。韩寒目前已经启动了司法程序要告方舟子,相关法律问题自有法律人士和专家去评判,我这里想谈谈的是:自媒体的伦理(We-Media Ethics)问题。 先还是要从一个法律案例着手,一本据说卖得极好的书《批评官员的尺度》详细描写了这个案例。简单描述就是:警察官员沙利文,由于《纽约时报》一篇部分失实的报道(严格说来是一则广告)而起诉后者。一开始沙利文获胜。但官司打到联邦高院时,高院判媒体获胜。这个官司被视为“保障新闻自由”的重要案例,被各种论文援引的次数应该是不可胜数。而在这次方韩斗的微博评论中,我又见过了多次。 有论者认为,这个案子仅适用于“官员”,道理就是因为这本书的书名叫《批评官员的尺度》,言下之意就是韩寒并不像沙利文那样,可以被“部分不实言论”来质疑(这个词很多人也不见得同意,他们认为方舟子就是诽谤)。但我对此深表
1. head里的顺序如下,考虑会对请求有何影响: a. 外部js在css前面 b. 外部js在css后面
这是一篇命题作文,源于今天在微薄上的一系列讨(好吧,也可以说是吵架)。其实方案没有太多好坏,就看你信不信这样做能好一些或坏一些。那么,整理成 blog 写出,也就是供大家开拓思路了。 我理解的需求来源于网络服务提供程序的一个普遍场景:一个服务器程序可能会收到多个客户端的网络数据流,在每个数据流上实际上有多个独立的数据包,只有一个数据包接收完整了才能做进一步的处理。如果在一个网络连接上数据包并不完整,就需要暂时缓存住尚未接收完的数据包。 问题是:如何管理这些缓冲区比较简洁明了,且性能高效。 其实这个有许多解决方案,比如为每个网络连接开一个单独的固定长度的 buffer 。或是用 memory pool 等改善内存使用率以及动态内存分配释放,等等。今天在微薄上吵架也正是在于这些方案细节上,到底好与不好,性能到底如何。既然单开一篇 blog 了,我不像再谈任何有争议的细节,仅仅说说,用 R
ISUX团队除了跟用户做访谈,也会关注后台统计的数据,从整体的角度了解用户的想法。 就好像刚过去的2012年元旦,广大网民牵手好友在QQ空间共度跨年之夜,创下5.1亿新年寄语,那么他们到底...
自从上次写了“程序员技术练级攻略” 以来,就觉得似乎还有很多东西没有谈到,但当时没有继续思考了。而春节前有人问我,是做底层技术,还是做业务。这问题让我思考了很多,不由自主地回顾了一 下我这十多年的软件开发经历,并顺着整理分类了一下自己解决过的若干问题,还发散想了很多,经过了一个春节假期的发酵,产生了下面这篇文章。 前言 这篇文章必然是通过我的个人经历来写的。所以,我先说说个人经历吧。我的经历基本分成三个阶段。 第一阶段:我 刚毕业时在家乡的某银行工作,做些银行的业务系统,还搞些网络,电子邮件系统,OA什么的,因为大四的时候在老师的公司里实习,银行里的人际关系太复杂, 而且技术都包给了产商,所以在银行的每一天都觉得不能适应里面的工作环境。两年后离职,单位分的房也不要了,直接去了上海,在上海呆了两年,本来想做互联 网的,但是泡沫来了,最终去了一家做系统集成的国企公司还是继续做银行业务。这四年来
一直想对移动设备阅读体验进行较为完整的研究和学习,但内容太多,涉及到非常多的传统平面设计知识,目前仅初步地完整字体部分。完整的研究框架包括: 1.界面版式设计的方法。常用的栅格分割适合移动设备多分辨率复杂内容的自动排版,内容可控制时是否可以模仿杂志的复杂不规则排版方式,以达到最佳的阅读体验。 2.移动设备上最佳的字体有什么必要的设计要素?如下图,更多的内容包括字体颜色、字间距、行间距和字体渲染等,不同的内容需要不同的字体。随着屏幕分辨率和显示精度的发展,字体也有一个进化过程。 3.屏幕亮度等参数对于阅读体验的影响,比如iPad和kindle。 4.背景色对阅读体验的影响,需要联系环境光等综合因素。 5.阅读进度的展示方式,电子书的查找和标记更为灵活,不局限于死板的线性阅读流程。 6.翻页动画与阅读体验,电子书通常会模仿书籍的真实翻页效果,但写实的动画是否真的有必要? 7.首页的展示方式,如
又是简明教程,嗯,好为人师啊。 其实这应该是基本功,只是有些只注意速成的web设计师没有留心到。 meta的存放位置 meta标签放置在head标签之间。 关键字 关键字须用英文逗号(,)隔开,不要有空白。 网站描述 页面如果没有给出网站描述时,搜寻引擎通常会自动抓网页的前25字做为网页内容摘要,呈现在搜寻结果上。但有时网页的前25字可能未必能表达文章的宗旨。
在薪水上讨价还价的方式有很多种,我要说的这一点也许并不是最好的。然而,如果使用的得当,会收到很好的效果。如果你正在跟一家公司接触(没有经过职业中介),而且事情看来很顺利,进度很快,你要保持这种面试的势头,但如果到了最后快要得到这个职位时,你要把节奏慢下来! 这有个例子: 你在四处求职,一个朋友,或一个同事,或一个以前公司的上司找到你,要给你一个职位。你面试了一次,你吸引住了他们。你进行了复试,你见到了CTO。一切都很顺利,因为你是一个有价值的人,你的资历说明了这些,CTO决定加快进度,决定给你这个职位。因为事情发展的太快,而且很顺利,很多程序员在这个时候都会在薪水上不是那么努力的讨价还价。毕竟,没有人希望打破这种和平的气氛。我遇到很多次有程序员对我说,“我非常喜欢这里的
当一只丰满的圆形出现在我们面前时,我们的大脑会作出一连串复杂而精密的反应,不出意外的话还能得出一个合乎逻辑的结论,不过当我们面对这只圆时,能够被清晰确认的恐怕只有他的形状和颜色。。。如果你得到比这些更多,那要么是你的惯性思维在作祟,要么便是你受到了某种视觉诱导。 视觉诱导是一个令人激动不已的词语,因为它预示着某种逻辑规则的制定,人人都想成为规则的缔造者,设计师也不例外,本文将不会详述历史上无数狂热的诱导控们的英雄事迹,我只想通过一个小实验证明诱导并不是件难事,就像你潜意识里一直认为的一样。 一、分析状态变化的运动规律 当面对一个赤诚坦荡的圆时,如何通过动态来表现他的状态呢?(这里所说的状态我们仅以物质的基本状态,即固态,液态为例。) 通过简单的观察和动画操作,首先可以得到如下的几种状态变化模型: 固态与液态的变化实验: 二、概括规律图形语言 接下来,我们便可以将
本文是对《big data glossary》第三章MapReduce的个人翻译,无版权 在传统的关系数据库世界中,所有的处理都发生在信息被载入存储之后,使用特定的查询语言处理高度结构化和优化的数据结构。而由Google引领,然后被许多其他网络公司所接纳的替代方式是:创建一个读写任意格式文件的流水线,在每个阶段以文件的方式交换中间结果,并且跨机器分布计算。通常基于MapReduce方法进行分布式工作的方法都需要一套全新的工具,我将在下面介绍。 Hadoop 最初是由Yahoo!开发的一套Google MapReduce架构的克隆系统,但随后被开源。Hadoop帮助你的代码在跨机器的集群上运行。它负责对输入的数据分块,并发送到各自对应的机器,在每个分块上运行代码,监测运行的代码,将结果发送到下一步的处理阶段或者最终存储下来,执行发生在map和reduce阶段间的排序工作并将排序后的数据发送到