Tags
-
Recent Posts
Recent Comments
Archives
Categories
Category Archives: web
vim设置TAB为四个空格
1 shiftwidth 这个是用于程序中自动缩进所使用的空白长度指示的。一般来说为了保持程序的美观,和下面的参数最好一致。同时它也是符号移位长度的制定者。 2 tabstop 定义tab所等同的空格长度,一般来说最好设置成8,因为如果是其它值的话,可能引起文件在打印之类的场合中看起来很别扭。除非你设置了 expandtab模式,也就是把tabs转换成空格,这样的话就不会一起混淆,不过毕竟制表符为8是最常用最普遍的设置,所以一般还是不要改。 3 softtabstop 如果我们希望改变程序中的缩进怎么办?shiftwidth和tabstop不一样的话,你会发现程序比较难看的。这时候,softtabstop就起作用了。可以从vim的说明中看到,一旦设置了softtabstop的值时,你按下tab键,插入的是空格和tab制表符的混合,具体如何混合取决于你设定的softtabstop,举个例子,如果设定softtabstop=8, 那么按下tab键,插入的就是正常的一个制表符;如果设定 softtabstop=16,那么插入的就是两个制表符;如果softtabstop=12,那么插入的就是一个制表符加上4个空格;如果 softtabstop=4呢?那么一开始,插入的就是4个空格,此时一旦你再按下一次tab,这次的四个空格就会和上次的四个空格组合起来变成一个制表符。换句话说,softtabstop是“逢8空格进1制表符”,前提是你tabstop=8。 4 关于expandtab 举个例子,在多人一起开发项目时,为了使代码风格尽量保持一致,一般不允许在代码使用TAB符,而以4个空格代之。我们可以编辑一个文件,包含下面的内容: set shiftwidth=4 set expandtab 然后把下面的命令加入到.vimrc中: autocmd FileType c,cpp set shiftwidth=4 | set expandtab
Posted in web
Leave a comment
how to define a variable
一、匈牙利命名法【Hungarian】: 广泛应用于象Microsoft Windows这样的环境中。 Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。 匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。 匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。 匈牙利命名法中常用的小写字母的前缀: 前缀类型 a 数组 (Array) b 布尔值 (Boolean) by 字节 (Byte) c 有符号字符 (Char) cb 无符号字符 (Char Byte,没有多少人用) cr 颜色参考值 (ColorRef) cx,cy 坐标差(长度 ShortInt) dw Double Word fn … Continue reading
Posted in web
Leave a comment
behaviro:#default#userData
DHTML提供了很多默认的behavior对象。 而#default#userData就是用来代替cookie的一个方案 函数解释: load(str)读取记录信息,str是一个记录的集合的名字 save(str)抱存记录信息,str是一个记录的集合的名字 setAttribute(strAttrib,strValue) 设置一个值,strAttrib为名称,strValue为数据值 getAttribute(strAttrib) 取得一个值,strAttrib为名称,返回数据值 常规用法: 一:内定义 二:用sd.load(“AStringYouLike”)来读取一批数据 三:用sd.getAttribute(“DataName”)来取得一个数据值 四:用sd.setAttribute(“DataName”,”Value”)来设置一个数据值 五:用sd.save(“AStringYouLike”)来保存setAttribute的设置 strKey=”AStringYouLike”; strEntry=”taValue”; function load() { sd.load(strKey); ta.value=sd.getAttribute(strEntry); } window.attachEvent(“onload”,load); function save() { sd.setAttribute(strEntry,ta.value); sd.save(strKey); } strKey=”SaveYourLoginTime”; strEntry=”strTime”; function load() { sd.load(strKey); time=sd.getAttribute(strEntry); if(!time)msgTime.innerHTML=”你没有来过这个网站”; else msgTime.innerHTML=”你上次打开这个网站的时间是:”+time; … Continue reading
Posted in web
Leave a comment
PHP的多进程互斥和锁定机制讨论
据说目前PHP并没有完善的线程支持,甚至部署到基于线程模型的httpd服务器都会产生一些问题,但即使是多进程模型下的PHP,也难免出现多进程共同访问同一资源的情况。比如整个程序共享的数据缓存,或者因为资源受限而必须对特定处理过程进行排队,以及针对每个用户生成唯一的某种标识的情形。PHP语言自身没有提供进程互斥和锁定机制,因而使得在这些情况下的编程遇到了困难,目前了解到的可选的办法有以下这些: 利用MySQL的锁定机制来实现互斥。缺点是增大了数据库服务器的连接负担,并且使得程序依赖于数据库服务才能正常工作。 利用文件锁机制。也就是利用flock函数通过文件实现锁定和互斥机制,来模拟通用编程模型下的锁定原语的工作方式。这种方式在以前以纯文本文件为存储引擎的时代成为保护数据完整性的必备元素,现在在使用文本文件作为缓存媒介的场合也相当常见。PmWiki应该也是使用了这个机制来对多人同时编辑一个页面的情形进行提醒。不过文件锁机制多少会调用到宿主操作系统上的文件锁特性,因此在使用时一定要检查服务器操作系统是否为PHP环境提供了完善可靠的文件锁机制。 利用共享内存空间计数。PHP可以利用shmop_open函数开辟一块内存空间,在服务进程之间共享数据,为了保证共享数据的互斥安全访问,可以使用sem_get、sem_acquire和sem_release这组函数实现共享计数锁定机制。这种办法在后台实际是调用了系统的ipc服务来实现。
Posted in php
Leave a comment
php Safe_mode影响参数
函数名 限制 dbmopen() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。 dbase_open() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。 filepro() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。 filepro_rowcount() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。 filepro_retrieve() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。 ifx_* sql_safe_mode 限制, (!= safe mode) ingres_* sql_safe_mode 限制, (!= safe mode) mysql_* sql_safe_mode 限制, (!= safe mode) pg_loimport() 检查被操作的文件或目录是否与正在执行的脚本有相同的 UID(所有者)。 posix_mkfifo() 检查被操作的目录是否与正在执行的脚本有相同的 … Continue reading
Posted in php
Leave a comment
NPAPI简介
Mozilla Firefox的插件是采用的是NPAPI技术。 NPAPI是Netscape Plugin Application Programming Interface的缩写,不难看出这项技术始创于Netscape(也就是Mozilla的前身),但是目前这项技术不仅限于Mozilla而成为了一个通用的标准。 事实上,除了IE使用微软自己的ActiveX技术以外,其他所有浏览器都采用NPAPI作为插件接口,也就是说只要符合NPAPI接口开发的插件,不但可以在Mozilla Firefox上使用,也可以在google Chrome、Apple Safari、Opera等浏览器上使用,我们常用的Flash播放器 、支付宝安全控件都是用NPAPI技术开发的。这些控件让我们可以使用不同的浏览器来播放flash动画和在线支付。
Posted in web
Leave a comment
360安全浏览器应用开发
360浏览器现在主要分为两大部分:安全浏览器(IE)和极速浏览器(CHROME)。 其中安全浏览器的应用开发其实只是使用了浏览器内置的创建POPUP功能,并嵌入设置的网页来完成。 1、首先第一步去360应用开发平台申请WEBAPP的APIKEY 2、之后可以使用360的应用开发本地工具360WEBAPPTOOL,填入申请的KEY,然后选择好相应的设置(这里主要是图片的要求),之后就会生成对应KEY的文件夹,可以将这个文件夹提交了就可以。
Posted in web
Leave a comment
ascii码表
代码 字符 代码 字符 代码 字符 代码 字符 0 32 [空格] 64 @ 96 ` 1 33 ! 65 A 97 a 2 34 “ 66 B 98 b 3 35 # 67 C 99 c … Continue reading
Posted in web
Leave a comment
vc++入门第一篇,如何使用C++生成windows窗口程序
1、首先打开VS2010,新建项目,选择VC++,选择WIN32项目,注意勾选空项目,点击完成即可 2、在源文件文件夹下新建一个CPP文件,拷入一下代码: // GT_HelloWorldWin32.cpp // compile with: /D_UNICODE /DUNICODE /DWIN32 /D_WINDOWS /c #include <windows.h> #include <stdlib.h> #include <string.h> #include <tchar.h> // Global variables // The main window class name. static TCHAR szWindowClass[] = _T(“win32app”); // The string that appears in … Continue reading
Posted in web
Leave a comment
IIS web园概念
IIS 6.0允许将应用程序池配置成一个Web园(Web Garden)。要理解Web园的概念,可以设想这样一种情形:假设有一个IIS 5.0服务器和三个Web网站,每一个Web网站运行着相同的应用程序,如果IIS 5.0能够自动按照圆形循环的模式将请求依次发送给这些功能上等价、实际上分离的Web网站,将负载分离到三个不同的进程,就可以构成一个小型的Web农 场(Web Farm)——这就是Web园。 在IIS 6.0的Web园中,我们不必创建额外的Web网站,只要指定用于某个应用程序池的工作进程的数量就可以了。具体的配置步骤是:打开应用程序池的“属性” 对话框,转到“性能”页,在“Web园”下面的“最大工作进程数”输入框中输入进程数量,如图八。当服务器的负载较小,不需要额外的工作进程时,IIS 6.0在一定的时间后(默认20分钟,可配置)自动缩减实际的工作进程数量;如果负载变大,需要额外的工作进程,IIS 6.0再次增加工作进程数量。这一切操作都自动进行,不需要管理员干预。 Web园:在Web园中你可以配置此应用程序池所使用的最大工作进程数,默认为1,最大可以设置为4000000; 配置使用多个工作进程可以提高该应用程序池处理请求的性能,但是在设置为使用多个工作进程之前,请考虑以下两点: 每一个工作进程都会消耗系统资源和CPU占用率;太多的工作进程会导致系统资源和CPU利用率的急剧消耗; 每一个工作进程都具有自己的状态数据,如果Web应用程序依赖于工作进程保存状态数据,那么可能不支持使用多个工作进程。 问: IIS 6.0 具有一个名为 Web 园的新功能,有了它,可以将应用程序池配置为使用多个工作进程。IIS 何时创建额外的工作进程?在我们实施 Web 园之前,我们应该了解哪些知识? 答: 在您创建应用程序池时,就会通知 IIS 6 创建一个工作进程,以传送指派给该应用程序池的 Web 站点、文件和文件夹的内容。您可以将应用程序池配置为启动多个,而非一个工作进程,这样可以提高可扩展性。这个功能的名为 Web 园,是小型的“Web 农场”。您无需使用多台计算机来传送相同的内容(Web 农场),而是可以使用一台计算机中的多个进程来传送相同的内容。 在将 IIS 6 应用程序配置为 … Continue reading
Posted in web
Leave a comment