杰拉斯的博客

归档:2012年10月月

[小技巧]如何得到C语言中int最大值

杰拉斯 杰拉斯 | 时间:2012-10-29, Mon | 16,447 views
编程算法 

只需一小句代码,如下:

printf("%d\n", ~(unsigned int)0 / 2);

分析:

当无符号0以二进制储存在内存中的时候,每一位都为0,以32位int为例,(unsigned int)0的二进制为:

00000000000000000000000000000000

按位取反(~)后,变成:

11111111111111111111111111111111

此时的十进制为:

4294967295

除以2(因为int类型中有一半表示负数且比正数多一个)之后为:

2147483647

即为32位int类型最大值。

10个步骤让你成为高效的Web开发者

杰拉斯 杰拉斯 | 时间:2012-10-26, Fri | 20,668 views
心路历程, 前端开发, 后台技术 

要成为高产、高效的 Web 开发者,这需要我们做很多工作,来提高我们的工作方式,以及改善我们的劳动成果。

下面是 10 个提高效率的步骤,虽然不能保证解决你在开发中的所有问题,但至少是非常实用的,可以简化你的 Web 开发流程,使开发的每一个环节快速、流畅。还可以帮助你节省大量的时间,以便开发更多、更好的项目。

1. 使用 Web 开发框架

一个良好的 Web 开发框架,可以帮助你:

  • 解决常见的 Web 开发问题,如标准的 Web 页面布局、Web 表单处理、浏览器兼容性解决等)。
  • 测试 Web 开发的 bug、安全和性能
  • 使代码重用更容易,因为有一个统一的 API。
  • 社区开发的插件和工具,可以进一步增强开发(jQuery 有很多非常棒的插件,比如用户界面、图像和网页排版等)。
  • 遵循编码的最佳实践和伟大的编程设计模式,你甚至不用去思考
  • 有开发社区和用户的支持,你可以获取帮助以及进行协作。
  • 初学者使用起来非常容易。

所有这些好处都可以节省你的时间以及提高项目的质量。

(阅读全文…)

nginx下实现pathinfo及WordPress、Typecho永久链接(伪静态)

杰拉斯 杰拉斯 | 时间:2012-10-18, Thu | 21,814 views
后台技术 

今晚配置了下LNMP环境下的阿里云服务器,将网站(使用的是自己写的BasePHP Beta框架)部署完毕后发现伪静态功能未能启用,才发现原来nginx并不像apache那样可以直接支持pathinfo,因此百度了一下,找到了启用pathinfo的解决方案。

打开nginx.conf配置文件,找到类似如下代码的地方(不同版本的nginx可能稍有不同,但相差不远):

location ~ \.php$
	{
		#原有代码
	}	

将其改成:

#去掉$是为了不匹配行末,即可以匹配.php/,以实现pathinfo
location ~ \.php
	{
		#原有代码
		
 		#定义变量 $path_info
		set $path_info "";
 		#定义变量 $real_script_name,用于存放真实地址
		set $real_script_name $fastcgi_script_name;
		#如果地址与引号内的正则表达式匹配
		if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
			#将文件地址赋值给变量 $real_script_name
			set $real_script_name $1;
			#将文件地址后的参数赋值给变量 $path_info
			set $path_info $2;
		}
		#配置fastcgi的一些参数
		fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
		fastcgi_param SCRIPT_NAME $real_script_name;
		fastcgi_param PATH_INFO $path_info;
	}

这样,nginx服务器就可以支持pathinfo了。

2013年11月10日补充

nginx 0.7及以上已支持pathinfo,不需要模拟实现,但注意

location ~ .*\.php$

应该改成:

location ~ .*\.php(\/.*)*$

才能够匹配到含有pathinfo信息的路径。

(阅读全文…)

HTML文档与盒子模型

杰拉斯 杰拉斯 | 时间:2012-10-15, Mon | 13,702 views
前端开发 

关于HTML

百度百科里是这么说的:超文本标记语言,即HTML(Hypertext Markup Language),是用于描述网页文档的一种标记语言。

为什么叫用于“描述”网页文档的“标记”语言呢?

简单地说,它不像JavaC++等程式语言,而是通过

标记

(也称标签)来表示一个网页的结构与内容,它的语法非常简单,只是由各种不同的标记组合而成,因此这类语言的学习方式主要靠积累,而非程式语言般靠理解来学习。

(阅读全文…)

Win7 按钮设计规范

杰拉斯 杰拉斯 | 时间:2012-10-14, Sun | 7,528 views
前端开发 

命令按钮(Command Button)用于开始一个即时操作。

win7 按钮设计规范。

典型的命令按钮。 当用户按下 Enter 键时会执行“默认命令按钮”。它是由开发人员指定的,但对于任何一个按钮,只要用户将焦点切换到其上,它都会变成默认按钮。
它用在这里合适么?

考虑下列问题以进行判断:

该命令按钮是用来开始一个即时操作的吗?如果不是,则改用其他控件。

链接会不会更合适?如果符合下列情况,则应当使用链接:

该操作是导航至另外的页面、窗口或帮助主题。

例外:向导中使用“后退”与“下一步”按钮进行导航。

按钮被嵌入在文本中间。

该命令实际上是次要的。也就是说,它与该窗口的主要目的没有关系。在这种情况下,轻量级的命令按钮或链接则更为合适。

该命令属于相关链接菜单或组。

标签太长,包含五个或五个以上的单词,这会导致命令按钮看上去显得笨拙。

使用选项按钮与常规命令按钮的组合是不是更合适?当下列条件符合时,往往会用选项按钮与常规命令按钮(确定、取消)的组合来代替一组独立的命令按钮:

存在五个或更多可能的操作。

用户需要在决定前查看附加信息。

用户需要在决定前与选项进行交互(也许是要查看附加信息)。

用户将其视为选项,而非不同的命令。

(阅读全文…)