from: http://witmax.cn/cache-writing-policies.htmlCache写机制参考[http://en.wikipedia.org/wiki/Cache#Writing_Policies](http://en.wikipedia.org/wiki/Cache#Writing_Policies)上的说明,Cache写机制分为write through和write back两种。Write-through- Write is done synchronously both to the cache and to the backing store.Write-back (or Write-behind) – Writing is done only to the cache. A modified cache block is written back to the store, just before it is replaced.Write-through(直写模式)在数据更新时,同时写入缓存Cache和后端存储。此模式的优点是操作简单;缺点是因为数据修改需要同时写入存储,数据写入速度较慢。 Write-back(回写模式)在数据更新时只写入缓存Cache。只在数据被替换出缓存时,被修改的缓存数据才会被写到后端存储。此模式的优点是数据写入速度快,因为不需要写存储;缺点是一旦更新后的数据未被写入存储时出现系统掉电的情况,数据将无法找回。Write-misses写缺失的处理方式对于写操作,存在写入缓存缺失数据的情况,这时有两种处理方式:Write allocate (aka Fetch on write) – Datum at the missed-write location is loaded to cache, followed by a write-hit operation. In this approach, write misses are similar to read-misses.No-write allocate (aka Write-no-allocate, Write around) – Datum at the missed-write location is not loaded to cache, and is written directly to the backing store. In this approach, actually only system reads are being cached.Write allocate方式将写入位置读入缓存,然后采用write-hit(缓存命中写入)操作。写缺失操作与读缺失操作类似。No-write allocate方式并不将写入位置读入缓存,而是直接将数据写入存储。这种方式下,只有读操作会被缓存。无论是Write-through还是Write-back都可以使用写缺失的两种方式之一。只是通常Write-back采用Write allocate方式,而Write-through采用No-write allocate方式;因为多次写入同一缓存时,Write allocate配合Write-back可以提升性能;而对于Write-through则没有帮助。处理流程图Write-through模式处理流程: [![A Write-Through cache with No-Write Allocation](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Write_through_with_no-write_allocation.png/445px-Write_through_with_no-write_allocation.png "A Write-Through cache with No-Write Allocation")](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Write_through_with_no-write_allocation.png/445px-Write_through_with_no-write_allocation.png "A Write-Through cache with No-Write Allocation")A Write-Through cache with No-Write AllocationWrite-back模式处理流程: [![A Write-Back cache with Write Allocation](http://upload.wikimedia.org/wikipedia/commons/thumb/a/ad/Write_back_with_write_allocation.png/468px-Write_back_with_write_allocation.png "A Write-Back cache with Write Allocation")](http://upload.wikimedia.org/wikipedia/commons/thumb/a/ad/Write_back_with_write_allocation.png/468px-Write_back_with_write_allocation.png "A Write-Back cache with Write Allocation")A Write-Back cache with Write Allocation
from: http://www.plhwin.com/2014/06/13/web-security-sql/Web安全简史在Web1.0时代,人们更多是关注服务器端动态脚本语言的安全问题,比如将一个可执行脚本(俗称Webshell)通过脚本语言的漏洞上传到服务器上,从而获得服务器权限。在Web发展初期,随着动态脚本语言的发展和普及,以及早期工程师对安全问题认知不足导致很多”安全血案”的发生,至今仍然遗留下许多历史问题,比如PHP语言至今仍然无法从语言本身杜绝「文件包含漏洞」(参见这里),只能依靠工程师良好的代码规范和安全意识。伴随着Web2.0、社交网络、微博等一系列新型互联网产品的兴起,基于Web环境的互联网应用越来越广泛,Web攻击的手段也越来越多样,Web安全史上的一个重要里程碑是大约1999年发现的SQL注入攻击,之后的XSS,CSRF等攻击手段愈发强大,Web攻击的思路也从服务端转向了客户端,转向了浏览器和用户。在安全领域,一般用帽子的颜色来比喻黑客的善与恶,白帽子是指那些工作在反黑客领域的技术专家,这个群体是”善”的的象征;而黑帽子则是指那些利用黑客技术造成破坏甚至谋取私利造成犯罪的群体,他们是”恶”的代表。“白帽子”和”黑帽子”是两个完全对立的群体。对于黑帽子而言,他们只要找到系统的一个切入点就可以达到入侵破坏的目的,而白帽子必须将自己系统所有可能被突破的地方都设防,以保证系统的安全运行。这看起来好像是不公平的,但是安全世界里的规则就是这样,可能我们的网站1000处都布防的很好,考虑的很周到,但是只要有一个地方疏忽了,攻击者就会利用这个点进行突破,让我们另外的1000处努力白费。常见攻击方式一般说来,在Web安全领域,常见的攻击方式大概有以下几种:1、SQL注入攻击2、跨站脚本攻击 - XSS3、跨站伪造请求攻击 - CSRF4、文件上传漏洞攻击5、分布式拒绝服务攻击 - DDOS说个题外话,本来这篇文章一开始的标题叫做 「Web安全之常见攻击方法与防范」,我原本想把上面的这5种方法都全部写在一篇文章里,可是刚写完第一个SQL注入攻击的时候,就发现文章篇幅已经不短了,又很难再进行大幅度的精简,所以索性把Web安全分成一个系列,分多篇文章来呈现给大家,下面你看到的就是第一篇「Web安全之SQL注入攻击的技巧与防范」。SQL注入常见攻击技巧SQL注入攻击是Web安全史上的一个重要里程碑,它从1999年首次进入人们的视线,至今已经有十几年的历史了,虽然我们现在已经有了很全面的防范对策,但是它的威力仍然不容小觑,SQL注入攻击至今仍然是Web安全领域中的一个重要组成部分。以PHP+MySQL为例,让我们以一个Web网站中最基本的用户系统来做实例演示,看看SQL注入究竟是怎么发生的。1、创建一个名为demo的数据库:CREATE DATABASE `demo` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;2、创建一个名为user的数据表,并插入1条演示数据:CREATE TABLE `demo`.`user` (`uid` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '用户uid',`username` VARCHAR( 20 ) NOT NULL COMMENT '用户名',`password` VARCHAR( 32 ) NOT NULL COMMENT '用户密码') ENGINE = INNODB;INSERT INTO `demo`.`user` (`uid`, `username`, `password`) VALUES ('1', 'plhwin', MD5('123456'));实例一通过传入username参数,在页面打印出这个会员的详细信息,编写 userinfo.php 程序代码:<?phpheader('Content-type:text/html; charset=UTF-8');$username = isset($_GET['username']) ? $_GET['username'] : '';$userinfo = array();if($username){ //使用mysqli驱动连接demo数据库 $mysqli = new mysqli("localhost", "root", "root", 'demo'); $sql = "SELECT uid,username FROM user WHERE username='{$username}'"; //mysqli multi_query 支持执行多条MySQL语句 $query = $mysqli->multi_query($sql); if($query){ do { $result = $mysqli->store_result(); while($row = $result->fetch_assoc()){ $userinfo[] = $row; } if(!$mysqli->more_results()){ break; } } while ($mysqli->next_result()); }}echo '<pre>',print_r($userinfo, 1),'</pre>';上面这个程序要实现的功能是根据浏览器传入的用户名参数,在页面上打印出这个用户的详细信息,程序写的这么复杂是因为我采用了mysqli的驱动,以便能使用到 `multi_query` 方法来支持同时执行多条SQL语句,这样能更好的说明SQL注入攻击的危害性。假设我们可以通过 http://localhost/test/userinfo.php?username=plhwin 这个URL来访问到具体某个会员的详情,正常情况下,如果浏览器里传入的username是合法的,那么SQL语句会执行:SELECT uid,username FROM user WHERE username='plhwin'但是,如果用户在浏览器里把传入的username参数变为 `plhwin';SHOW TABLES-- hack`,也就是当URL变为 `http://localhost/test/userinfo.php?username=plhwin';SHOW TABLES-- hack` 的时候,此时我们程序实际执行的SQL语句变成了:SELECT uid,username FROM user WHERE username='plhwin';SHOW TABLES-- hack'_注意:在MySQL中,最后连续的两个减号表示忽略此SQL减号后面的语句,我本机的MySQL版本号为5.6.12,目前几乎所有SQL注入实例都是直接采用两个减号结尾,但是实际测试,这个版本号的MySQL要求两个减号后面必须要有空格才能正常注入,而浏览器是会自动删除掉URL尾部空格的,所以我们的注入会在两个减号后面统一添加任意一个字符或单词,本篇文章的SQL注入实例统一以 `-- hack` 结尾。_经过上面的SQL注入后,原本想要执行查询会员详情的SQL语句,此时还额外执行了 SHOW TABLES; 语句,这显然不是开发者的本意,此时可以在浏览器里看到页面的输出:Array( [0] => Array ( [uid] => 1 [username] => plhwin )[1] => Array ( [Tables_in_demo] => user ))你能清晰的看到,除了会员的信息,数据库表的名字`user`也被打印在了页面上,如果作恶的黑客此时将参数换成 `plhwin';DROP TABLE user-- hack`,那将产生灾难性的严重结果,当你在浏览器中执行`http://localhost/test/userinfo.php?username=plhwin';DROP TABLE user-- hack` 这个URL后,你会发现整个 `user` 数据表都消失不见了。通过上面的例子,大家已经认识到SQL注入攻击的危害性,但是仍然会有人心存疑问,MySQL默认驱动的mysql_query方法现在已经不支持多条语句同时执行了,大部分开发者怎么可能像上面的演示程序那样又麻烦又不安全。是的,在PHP程序中,MySQL是不允许在一个mysql_query中使用分号执行多SQL语句的,这使得很多开发者都认为MySQL本身就不允许多语句执行了,但实际上MySQL早在4.1版本就允许多语句执行,通过PHP的源代码,我们发现其实只是PHP语言自身限制了这种用法,具体情况大家可以看看这篇文章「PHP+MySQL多语句执行」。实例二如果系统不允许同时执行多条SQL语句,那么SQL注入攻击是不是就不再这么可怕呢?答案是否定的,我们仍然以上面的user数据表,用Web网站中常用的会员登录系统来做另外一个场景实例,编写程序login.php,代码如下:<?phpif($_POST){…
文件名: cn_visio_professional_2013_x64_1138440.exe语言: Chinese - SimplifiedSHA1:10823adaf26ff3ed07bf6171f9f9e799b409a6fchttp://pan.baidu.com/share/link?shareid=115654&uk=1006662537
终于不用为给css取名而烦恼了,感谢Vivien Chen的整理. about 关于 account 账户 action 操作 ad,advertisment 广告 arrow 箭头图标 article 文章 aside 边栏 audio 音频 avatar 头像 background 背景 banner 条幅,广告 bar 条 branding 品牌化 breadcrumbs 面包屑 button 按钮 caption 标题,说明 category 分类 chart 图表 clearfix 清除浮动 close 关闭 column 列 comment 评论 community 社区 container 容器 content 内容 copyright 版权 current 当前态,选中态 default 默认 description 描述 details 细节 disabled 不可用 entry 文章,博文 error 错误 even 偶数,常用于多行列表或表格中 fail 失败(提示) feature 专题 fewer 收起 field 用于表单的输入区域 figure 图 filter 筛选 first 第一个,常用于列表中 footer 页脚 forum 论坛 gallery 画廊 group 模块,清除浮动 header 页头 help 帮助 hide 隐藏 hightlight 高亮 home 主页 icon 图标 information 信息 last 最后一个,常用于列表中 links 链接 login 登录 logout 退出 logo 标志 main 主体 menu 菜单 meta 作者、更新时间等信息栏,一般位于标题之下 module 模块 more 更多(展开) msg,message 消息 nav,navigation 导航 next 下一页 nub 小块 odd 奇数,常用于多行列表或表格中 off 鼠标离开 on 鼠标移过 output 输出 pagination 分页 popup 弹窗 preview 预览 previous 上一页…
程序猿们都是些机械手,让制造东西很容易,如果需要把东西艺术一下,很太难为程序猿们了!Twitter Bootstrap在很大的程度上面解放了程序猿对页面的制作,前提就是web使用Twitter Bootstrap来制作的。Twitter Bootstrap很推荐每个程序员都来掌握一下,其中难度也没多少,如果说有难度,也就是一点点的E文吧!不过现在这点难度也解决了,已经有朋友将Twitter Bootstrap翻译成中文了,感谢这位朋友啊!Bootstrap 是基于 HTML,CSS,JavaScript 的简洁灵活的流行前端框架及交互组件集,由微博的先驱 Twitter 在2011年8月开源的整套前端解决解决方案。Bootstrap 有非常完备和详尽的使用帮助文档,热心的 @TV来客开发者 翻译成了中文,讨厌英文的朋友有福了。 Bootstrap 的口号是 Designed for everyone, everywhere.(适用于任何场景,适用于每一个人),主要有以下特色:适应各种技术水平 Bootstrap适应不同技术水平的从业者,无论是设计师还是程序员,大牛还是菜鸟。既能用来开发简单的小东西,也能构造复杂的应用。跨设备,跨浏览器 最初设想中的Bootstrap只支持现代浏览器,不过新版本已经能支持所有主流浏览器(甚至包括IE7)。从Bootstrap 2开始,提供对平板和智能手机的支持。12列栅格布局 栅格系统不是万能的,不过在应用的核心层有一个稳定和灵活的栅格系统确实可以让开发变得更简单。可以选用内置的栅格或是自己手写。响应式设计 从Bootstrap 2开始,提供完整的响应式特性。所有的组件都能根据分辨率和设备灵活缩放,从而提供一致性的用户体验。样式化的文档 与其他前端工具箱不同,Bootstrap优先设计了一个样式化的使用指南,不仅用来介绍特性,更用以展示最佳实践,应用以及代码实例。不断完善的库 尽管只有10kb(gzip压缩后),Bootstrap却仍是最完备的前端工具箱之一,提供了几十个全功能的随时可用的组件。定制的jQuery插件 一个出色的组件设计岂能没有易用易扩展的人机界面?Bootstrap为此提供了定制的jQuery内置插件。用LESS构建 当传统的枯燥CSS写法止步不前时,LESS横空出世了。LESS中使用变量,嵌套,操作,混合编码,让CSS编写更快更灵活。 Twitter Bootstrap 中文帮助文档:http://wrongwaycn.github.com/bootstrap/docs/index.html原文网址:http://www.cnblogs.com/lhb25/archive/2012/07/26/bootstrap-documentation.html
在新浪微博上面看到,铁道调度系统现BUG,已拘留两无证程序员,很震惊,再怎么着也不能拿我们码农开脱啊!当时也做了评论,尔后,也有些怀疑,太不可思议了,做了下搜索,图是张假图,猜测是经过某位愤怒的码农的PS。这位同仁有些过分了啊!视频原址:http://tv.sohu.com/20110725/n314420232.shtml截图取自视频00:08秒 发现真相原帖地址:http://taizhou.19lou.com/forum-1629-thread-2022831311584000078-1-1.html
以后的IT路还很长(1)最近有两位兄弟同事离职了,蛮可惜了,在一个战壕一起一、两年了,人各有志嘛!希望他们发展更好些!目前的公司是个创业型的公司,公司从08年的50来个人,扩张到今年11年400多人,今年的目标是500人,扩张速度相当快,公司主要是做中国移动游戏这块的,也在扩展自己的业务和产品,但到底是要走什么样的路,看不清,公司内部也是跑马圈地。在公司里面,最苦的项目组是我们组和另外一个组,每周不停的上线、升级,修改bug,是谁都会奔溃的,我们组已经换了好几拨的人了。技术牛的、不牛的,能拼的、不能拼的,男的、女的,没小孩的、怀孕的、有小孩的,在项目中都出现过,一波接着一波。我入职后,离职的同事算上最近两位,一共4个。第一个离开是个小女孩,小小的一90后,特别能吃苦,我刚入职时,帮了我不少的忙,她的离职,对我有些影响,因为我还有同事,我们属于空降过来的,对老人都有些冲击,还有那段时间,问题的高发期,小女孩的压力不是一般的大啊!我想帮帮,有心力不足啊!最后,那段时间也挺过来了,压力太大了,当时我没有直面问题,我也跟在小女孩旁边,偶尔出出主意,压力我也算是有些体会,有些男娃真比不上她。最后,她就离职到了我们楼上的一家公司,现在偶尔和她聊天,工作也还是挺轻松,不用怎么的加班,也不用关系升级,比在公司时,笑的更多了。接着走的同事,是和我从上一个公司一块过来的,很聪明的一个小伙,当时要走,我很早就知道了,他走的时候,都挺担心的,他经历的事情还有些少,一边希望他能留下来,给他一些时间,整理整理自己的能力,感觉差不多了,再走,另外一方面,他现在走,也是好事,让他能多磨练磨练。他是走了,公司也是国内一家很不错的公司,就是加班多一些。现在,他工作,可没比在公司舒服些,呵呵!男人嘛!现在多一些压力是好事,不是什么坏事。之后,团队稳定大半年了,也就是最近,有两位同事接连离职了。这位同事离职,我得付一些责任,做了一些让人看着不舒服的事情,这个我道歉,另外一块,在他走后,就是我们团队中说的,谁接谁死的模块,现在,是由我来接的。另外一位同事的离职,是刚刚知道的,之前知道他还没有转正,就有些担心,刚过几天,他就离职了,有些吃惊啊!他也是和我从上一个公司过来的,过来是比我们晚了许多。他和我算是搭档,他做需求,我做研发,是想把事情的的确确做起来的。我很感谢这位兄弟的,也很感谢我们的老大的,没他们帮我,我那段艰难困惑的时间,真不知道怎么能过来。团队人员走的走,也在加入新的献血,总得把事情继续坚持下去。
刚刚发现仙剑5发了首曲子,命起涟漪,听曲风就是仙剑的曲风。刚开始玩的是仙剑3,着迷后,就把仙剑的1到4全玩了一次,经典,好玩,有情景。好像仙剑5会在年前放出了,一点要好好玩玩,这次准备买仙剑正版盘来玩的。
折腾了两天,用alltuts修改的,就是个升级的版本,定义名字就是updateA,updateA的版本中间重新改过好几次,对比alltuts,内容变化也有一些。1.去掉对告插件的支持,我不做什么广告,就去掉了2.去掉对评论最多的插件的支持3.去掉twitter、facebook的支持,要适合国内的情况嘛4.增加了固定顶部分类栏目的目录5.增加了置顶文章的幻灯片的切换,取前4篇的置顶文章,最好有图插入,这个效果是从Frontpage Slideshow修改过来的6.在页面上线都增加了页数7.去掉的页面的缩略图,我文章的图不是很多,而且插入也基本是引入外链8.预览的文字做了限制9.文章查看增加了上一篇、下一篇的支持10.当然做了部分SEO的优化,肯定是针对自己本站的了修改基本是按照我自己的需要来修改的,对php、wordpress的函数不熟,修改基本的七拼八凑起来的,那个图片的切换jquery用的1.2.6的版本,其他用的jquery都要1.3以上的版本,为了先满足这个功能,就先用了1.2.6的版本,再找时间修改吧!下次修改的目标,1.RSS订阅2.微薄更新3.首页文章无刷新全文阅读的4.文章收藏分享5.相关文章6.随机文章7.快速到达顶部、下部8.首页的tab页方式的最多评论、最多浏览之类的功能
前提:使用eclipse肯定必须要安装jdk,配置jdk的环境的。我单独下载了eclipse的版本,没有在之前的eclipse装,我搭建了一个php的开发环境也是这样,单独的eclipse用于php的开发,java的开发用的是myeclipse。前提有了之后,接着需要有android-sdk-windows, 在http://developer.android.com/sdk/ 下载还要有 Android Development Tools (ADT) 通过eclipse插件安装的方式安装,地址:https://dl-ssl.google.com/android/eclipse/关键配置几个环境变量变量名:ANDROID_SDK_HOME 必须这么写值:D: oolsandroidandroid-avd avd模拟器的地址变量名:path值:D: oolsandroidandroid-sdk-windows ools 照这样的的写其他的配置可以参加http://news.congci.com/news/windows7-android-eclipse-adt看看。