apache服务器本质
apache服务器本质上说是一个TCP socket服务,socket模型如下:下面以worker MPM来说明apache代码中相应处理的位置在哪里:(以apache httpd 2.2.23版本的代码为基础)1) 在第一次启动时验证配置没有异常时,创建了socket。2) open_logs 挂... ...
web移动开发最佳实践之js篇
一、js概述 js即JavaScript,是被设计用来验证表单、检测浏览器、创建cookies、改进设计以及更多应用的网络脚本语言,它非常容易使用。在web应用中,它是主要的编程语言,主要用途是进行各种逻辑控制、行为展现等。对于js的优化,对于整个应用的提升都是非常显著的。二、使用字面量(liter... ...
灵动思绪EF(Entity FrameWork)
很久之前就想写这篇文章了,但是由于种种原因,没有将自己学习的EF知识整理成一片文章。今天我就用CodeFirst和ModelFirst两种方式的简单案例将自己学习的EF知识做个总结。在讲解EF之前,我们先来看下ORMORM全称:(Object-Relation Mapping)即对象-关系映射。OR... ...
空难与软件开发(一)
我并不是嗜好灾难片电影或者纪录片的。但是偶然的机会看了一两集Air Crash Investigation,便被其深深吸引了。因为这些事故,和我们日常进行的软件开发是如此的相似,有一些今天广泛提倡的Best Practice实际上早就提出几十年了。于是突发奇想,干脆总结总结。这是第一篇:美航1420... ...
Entity Framework 并发处理
什么是并发?并发分悲观并发和乐观并发。悲观并发:比如有两个用户A,B,同时登录系统修改一个文档,如果A先进入修改,则系统会把该文档锁住,B就没办法打开了,只有等A修改完,完全退出的时候B才能进入修改。乐观并发:同上面的例子,A,B两个用户同时登录,如果A先进入修改紧跟着B也进入了。A修改文档的同时B... ...
从“在winform里打开网页功能”引发的问题探究
今天有个同事问了一下我,怎么在winform里面打开网页啊?我们都是基于B/S的开发,很少接触winform,所以我当时就懵了,实在不知道怎么回答,所以索性说不知道。但是我又想了想,这个应该是个很简单的功能,趁着今天工作不是很忙,我就研究一下吧。 首先,新建一个winform项目,我在想,如果想要实... ...
SQL Server 简单模式下,误删除堆表记录如何恢复
首先,我需要强调下,这篇主旨是揭示堆表的删除记录找回的原理,我所考虑的方面并不适用于每个人的每种情况,望大家见谅~ 很多朋友认为数据库在简单模式下,堆表误删除一条记录,是无法找回的,因为没有日志记录。其实不然,某种意义上是可以找回的,因为堆表在删除记录时,没有回收空页面的前提下,只更改了行偏移,实际... ...
一个简单的跨库事务问题
最近在做一个项目,其中一个方案涉及到跨库事务一致性问题,是一个简单的场景。这个项目是对老的业务进行性能提升,业务逻辑基本上保持不变。主要是在于新项目采用了分库分表的设计,从而提升了性能。考虑到项目发布之后可能存在风险,采取了新老系统的并行方案。这个系统的业务比较简单:接收来自外部的数据,然后对数据进... ...
协议森林13 9527 (DNS协议)
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。 在周星驰的电影《唐伯虎点秋香》中,周星驰饰演的主角一进入华府,就被强制增加了一个代号9527。从此,华府的人开始称呼主角为9527,而不是他的姓名。 域名(domain name)是IP地址的代号。 ...
浅谈SQL Server中的三种物理连接操作
简介 在SQL Server中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loop Join,Merge Join,Hash Join这三种物理连接中的一种。理解这三种物理连接是理解在表连接时解决性能问题的基... ...
HTTP协议之状态码详解
HTTP状态码,我都是现查现用。 我以前记得几个常用的状态码,比如200,302,304,404, 503。 一般来说我也只需要了解这些常用的状态码就可以了。 如果是做AJAX,REST,网络爬虫,机器人等程序。还是需要了解其他状态码。 本文我花了一个多月的时间把所有的状态码都总结了下,内容太多,看 ...
MVVM(Knockout.js)的新尝试:多个Page,一个ViewModel
对于面向数据的Web应用来说,MVVM模式是一项不错的选择,它借助JS框架提供的“绑定”机制是我们无需过多关注UI(HTML)的细节,只需要操作绑定的数据源。MVVM最早被微软应用于WPF/SL的开发,所以针对Web的MVVM框架来说,Knockout.js(以下简称KO)无疑是“根正苗红”。在进行... ...
协议森林11 涅槃 (TCP重新发送)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!TCP协议是一个可靠的协议。它通过重新发送(retransmission)来实现TCP片段传输的可靠性。简单的说,TCP会不断重复发送TCP片段,直到片段被正确接收。TCP片段丢失TC... ...
选择HttpHandler还是HttpModule?
最近收到几个疑问:HttpHandler和HttpModule之间有什么差别,我到底该选择哪个?之所以有这个疑问,是因为在这二类对象中都可以访问Request, Response对象,都能处理请求。我原以为在博客 用Asp.net写自己的服务框架中做了那么多的演示应该把它们的使用方法说清楚了,然而有... ...
Mac技巧合集第一期
很多微信订阅者要求查看Mac技巧的历史文章,但是由于微信的限制,大家输入history只能收到最近的五条。好吧,放假期间终于有时间把Mac技巧整理为合集第一期,看一下内容还真是不少,所以说写的慢少不可怕,只要你用心坚持写。觉得有用就关注微信公共平台“Mac技巧”,微信号sagacity-mac。Ma... ...
闲谈.Net类型之public的不public,fixed的不能fixed
以前写过《值类型不是值类型》一文。今天,就再来个语言游戏:public 的不public,fixed 的不能 fixed。本文将构造一个古怪类型:public字段无法访问,标了fixed关键字却无法fixed。 ...
2012,写给24岁的自己
2012年6月,在我们以青春的名义,为逝去的大学生活而最后举杯之后,我毕业了。 2012年7月,拖着沉重的行李箱,一路北上,在横跨了四个省市后,我来到了这座北方的城市,开始了自己的第一份工作。 2012年12月,玛雅人的预言似乎并不准确,世界末日也没有如期而至。在重温了一遍《2012》之后,我带着劫... ...
高性能分布式计算与存储系统设计概要——暨2012年工作3年半总结(下)
高性能分布式计算与存储系统设计概要(下篇) (上篇) 在上篇里,我们主要讨论了,这个系统怎样处理大数据的“读”操作,当然还有一些细节没有讲述。下篇,我们将主要讲述,“写”操作是如何被处理的。我们都知道,如果只有“读”,那几乎是不用做任何数据同步的,也不会有并发安全问题,之所以,会产生这样那样的问题, ...
高性能分布式计算与存储系统设计概要——暨2012年工作3年半总结(上)
高性能分布式计算与存储系统设计概要(上篇) 2012年底,末日之后,看到大家都在写年末总结,我也忍不住想一试。工作已经3年半了,头一次写总结。虽然到现在仍是无名小码农一名,但工作这些年,技术着实有不少积累。成长最大的,当然就是这篇文章标题提到的——高性能分布式计算与存储系统的设计和研发过程,这也是我 ...