201503-09 Linux 4.0 不再需要重启 Linux4.0 里,你可能再也不需要重启你的操作系统。在大多数的服务器或者数据中心里,喜欢用linux的一个原因是你不需要频繁的进行重启操作。诚然,某些关键性的补丁必须要进行重启,但你也可以等到数月后再做此操作。现在,得益于linux内核的最新更新你也许可以数年间都不用重启。感谢 Ksplice 项目,使得这一特性在2009年就可以实现。此项目在对原始和打过补丁的内核进行比较后,使用一个定制的内核模块将新的代码加入到... 继续阅读 >
201503-08 自编译PHP并整合Ngnix Nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。Nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx一、首先我们先初步认识下FastCGI和Ngnix+FastCGI的运行原理1、apache+PHP和ngnix+php的区别apache一般是把php当做自己的一个模块来启动;而ngnix则是把http请求变量转发给php进程,即php独立进程,与ngnix通... 继续阅读 >
201503-08 PHP算式验证码和汉字验证码的实现方法 在PHP网站开发中,验证码可以有效地保护我们的表单不被恶意提交,但是如果不使用算式验证码或者汉字验证码,仅仅使用简单的字母或者数字验证码,这样的验证码方案真的安全吗?大家知道简单数字或者字母验证码很容易被破解,但是算式验证码或者中文汉字验证码不容易被破解,所以建议大家在使用验证码的时候,尽量用算式验证码或者中文汉字验证码。下面是我写的两种验证码代码,有用到的朋友可以参考下:1.算式验证码:<?phpsess... 继续阅读 >
201503-07 让那些无用代码注释见鬼去 摘要——注释简单代码会干扰对重要注释的理解。程序开发者最好能用最精要的注释来解释重点代码。举个例子,你打开一个电箱,里面有几百根电线,蒙了吧。再一看,每根电线上面都有一个整洁的小标签。真是谢天谢地啊!但是,当你一个个去翻看标签的时候,见鬼的,几乎所有的标签都是空白的!然后,在你花了整整一个小时去浏览每一个小标签之后,终于给你找到12条有用的信息,真心喜大普奔!当然,希望在你头脑一片混乱的时候得出... 继续阅读 >
201503-07 没有代码的编程语言:Folders 之前我们介绍过“Whitespace”编程语言,这是一种很奇葩的编程语言,在“Whitespace”编程语言中,任何非空白的字符都是被忽略的,只有空格符,tab和换行符被认为是有效的语义字符。也就是说,你可以把用“Whitespace”编程语言编写的代码藏在其他的文本、代码中,具有隐形代码的效果。而今天要说的这种语言更是奇葩,它叫做 Folders ,顾名思义,这种语言没有代码,也没有代码文件,这种语言的代码就是... 继续阅读 >
201503-07 一些无关紧要的代码注释 摘要——注释简单代码会干扰对重要注释的理解。程序开发者最好能用最精要的注释来解释重点代码。举个例子,你打开一个电箱,里面有几百根电线,蒙了吧。再一看,每根电线上面都有一个整洁的小标签。真是谢天谢地啊!但是,当你一个个去翻看标签的时候,见鬼的,几乎所有的标签都是空白的!然后,在你花了整整一个小时去浏览每一个小标签之后,终于给你找到12条有用的信息,真心喜大普奔!当然,希望在你头脑一片混乱的时候... 继续阅读 >
201503-07 机器学习实践中应避免的7种常见错误 统计建模和工程开发很相似。在工程开发中,人们有多种方法搭建一套键-值存储系统,每种设计针对使用模式有一套不同的假设。在统计建模中,也有很多算法来构造一个分类器,每种算法对数据也有各自的假设集合。当处理少量数据时,因为实验成本很低,我们尽可能多的尝试各种算法,从而选出效果最优的算法。但提到“大数据”,提前分析数据,然后设计相应“管道”模型(预处理,建模,优化算法,评价,产品化)是事半功倍的。正如... 继续阅读 >
201503-07 在Java中正确使用注释 Java提供了3种类型的注释:单行注释(C++风格)在Java中最简单的注释是单行注释。它以两个正斜杠开始并到行尾结束。例如://thisisasingle-linecommentx=1;//asingle-linecommentaftercode多行注释(C风格)Java同样提供跨越多行的注释类型。这种类型的注释以紧跟着一个星号的正斜杠开始,并以紧跟着一个正斜杠的星号结束。这种类型注释的开始和结束分界符可以在同一行里也可以在不同的行上。例如:/*Thisisa... 继续阅读 >
201503-07 Linux桌面环境终极指南 去年,NetworkWorld网站内的Linux老牌拥护者BryanLunduke曾经给自己定下一项奋斗目标,即深入到各类Linux桌面系统当中、以至少一周的时间利用其完成工作及个人计算任务,而后将他的心得体会记录在LinuxTycoon博客当中。最终他撰写出十篇评测报告,我们将其内容进行了收集与整理,以便大家通过今天的文章将不同桌面环境之间的比较结论一网打尽。当然,也欢迎尚未体验过Linux桌面系统的朋友将本文作为参考资料加以借鉴。elemen... 继续阅读 >
201503-07 2015年10个最佳Web开发JavaScript库 现在的互联网可谓是无所不有,有大量的JavaScript项目开发工具充斥于网络中。我们可以参考网上的指导来获取构建代码项目的各种必要信息。如果你是搞Web开发的,那么大多更喜欢支持前端开发的JavaScript。此脚本语言使用相对比较容易,并能为网站和Web应用创造了有趣的用户界面。下面是10个最佳的可用于Web项目开发的JavaScript库。1.IO.js:IO.js是一个以ChromeV8runtime为引擎的JavaScript平台。项目基于Node.js平台,并且I... 继续阅读 >
201503-06 编程技术缓存写法(三) 上次我们说了多级缓存,本章详细介绍下内存缓存该如何设计。一:分析设计假设有个项目有一定并发量,要用到多级缓存,如下:在实际设计一个内存缓存前,我们需要考虑的问题:1:内存与Redis的数据置换,尽可能在内存中提高数据命中率,减少下一级的压力。2:内存容量的限制,需要控制缓存数量。3:热点数据更新不同,需要可配置单个key过期时间。4:良好的缓存过期删除策略。5:缓存数据结构的复杂度尽可能的低。关于... 继续阅读 >
201503-06 编程技术缓存写法(二) 上次主要讨论缓存读写这块各种代码实现。本篇是就上次的问题接着来,继续看那些年我们各种缓存用法。一:缓存预热上次有同学问过。在第一次加载时,我们的缓存都为空,怎么进行预热。单机Web情况下,一般我们使用RunTimeCache。相对于这种情况下:1:我们可以在启动事件里面刷新voidApplication_Start(objectsender,EventArgse){//刷新}2:单写个刷新缓存页面,上线后手动刷新下、或发布时自动调用刷新、或干脆由... 继续阅读 >
201503-06 编程技术缓存写法(一) 介绍本篇主要说下楼主平常项目中缓存使用经验和遇到过的问题。目录一:基本写法二:缓存雪崩1:全局锁,实例锁2:字符串锁三:缓存穿透四:再谈缓存雪崩五:总结一:基本写法为了方便演示,我们用Runtime.Cache做缓存容器,并定义个简单操作类。如下:publicclassCacheHelper{publicstaticobjectGet(stringcacheKey){returnHttpRuntime.Cache[cacheKey];}publicsta... 继续阅读 >
201503-06 C程序运行时内存结构分析 实验知识静态变量存储在静态存储区,局部变量存储在动态存储区(栈),代码存放在代码区寄存器,EBP指向栈底,ESP指向栈顶,EIP指向正在执行指令的下一条指令,三个寄存器中保存的都是地址,32位系统,地址为4个字节即dword所有写在函数定义里面的语句都编译成指令(驱动CPU)实验代码#include<stdio.h>intfun(inta,intb);intm=10;intmain(){inti=4;intj=5;m=fun(i,j);}intfun(inta... 继续阅读 >
201503-05 爱上Java和JVM的10大理由 Java和JVM已经存在了很长一段时间了,基于这个事实,一些程序员开始将很多事情视为理所当然。今天我们就来说一说“Java之所以能够成为并将继续是软件项目领先平台”的十大理由。1.高性能JVMJava最初的开发目的“一次编写到处运行”,并由虚拟机提供运行平台。没有JVM,Java就必须遵循Ruby和Python的步伐——在痛苦中进一步提高其便携性。随着物联网的出现,一个强大的虚拟机变得越来越重要。2.核心API最让人喜欢的就是Java核... 继续阅读 >
201503-05 PHP魔术方法和魔术常量介绍及使用 有些东西如果不是经常使用,很容易忘记,比如魔术方法和魔术常量。魔术方法(Magicmethods)PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用。魔术方法包括:__construct(),类的构造函数__destruct(),类的析构函数__call(),在对象中调用一个不可访问方法时调用__callStatic(),用静态方式中调用一个不可访问方法时调用__get(),获得一个类的成员变量时调用__set(... 继续阅读 >