‘编程语言’ 分类的存档
最近一次升级Archlinux,PHP升级到了5.3,遇到了两个问题: 1.Arch里面PHP更换了打包的方式,PHP的Aapche模块被独立封装为php-apache模块,所以安装了php包之后还要安装 php-apache包(如果你用Apache作为你的Web server ^^ )。 2.另外就是Cakephp1.2跟PHP5.3的兼容性问题了。安装PHP5.3之后,运行Cakephp应用遇到了错误: 一个是提示strtotime()出错,最终修改php.ini的 date.timezone 解决,改为: date.timezone = Asia/Chongqing 时区的列表可以到这里查看:http://us.php.net/manual/pt_BR/timezones.php 另外就是报类似以下的错误: Deprecated: Assigning the return value of new by reference is deprecated… 这个有两种解决方法,一是将Cakephp升级到最新的Cakephp1.3dev版本,但是现在1.3版本并不是稳定版本,如果想继续使用1.2 版本的话,需要: 1.修改cake运行库下面cake/console/cake.php文件。 将141行的 141 142 143 144 145 function __initConstants() { if (function_exists(’ini_set’)) { ini_set(’display_errors’, ’1′); ini_set(’error_reporting’, E_ALL); … 改为: 141 142 143 144 145 146 147 148 [...]
平台进入了整合阶段,开始看之前做前端的同志们的成果,发现了不少问题,其中最严重的问题莫过于标签的滥用了。比如下面的标签滥用: <h3><label>XXX</label></h3> 而事实上我们完全可以用 <h3>XXX</h3> 就可以达到目的。 看似很简单的一句,两种方法达到的效果是一样的,但是显然第二种根据有可读性,也更符合HTML这种标记性语言的定义,在Wkipedia中,对于 HTML的描述是这样的: 超文本置标语言(英文:HyperText Markup Language,简称为HTML)是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种置标语言。HTML被用来结构化信息——例如标题、段落 和列表等等,也可用来在一定程度上描述文档的外观和语义。 我们编写代码,达到预定的功能是远远不够的,写出既达到预定功能,又遵循该语言的特性,规范,可读性高,优雅的代码才是最终目标。特别是多人合作进 行项目开发的时候,显得尤为重要。 什么才算是可读性高,优雅的代码。命名规范,代码规范,这一些在《代码大全》的第11章“变量名的力量”中有很详细的探讨。林锐博士的《高质量 C++/C编程指南》也是应该好好阅读的。 另外一个我觉得很重要的就是要写出符合语言特性的代码,最简单的例子,把C当成面向对象的语言来对待,去构造一堆结构来满足自己“OO”的欲望,这 是编程的大忌! 根据语言的特性,以及类库是否能够满足我们要完成的功能目标来选择语言,而不是用语言来束缚自己,最终画地为牢,限制了自己的发展而已。譬如要用到 面向对象的方法来设计,那么完全可以选择C++或者Java,完全没有必要抱着C的大腿不放,刻意用C去模拟面向对象方法,或许最终可以到达预想的功能, 但是之间付出的代价却是比选择一门面向对象语言要多得多。
这几天在写一个爬虫,抓取指定网站的某些内容,中文网站的编码大概有两种:GB2312和UTF8。这里顺便就把写Python中要注意的一些内容汇聚一下,作为笔记。 1.文件头声明 对于python文件中包含中文的,应该在该文件头进行声明,加入: 1 # -*- coding: utf-8 -*- 一般的python文件头我都是用这一个模板: 1 2 3 4 5 #!/usr/bin/env python # -*- coding: utf-8 -*- """docstring """ 我使用VIM作为编辑器,希望每次创建python文件时都按照上面的模板创建,于是在~/.vim目录下面建了一个templates目录,用来存放模板文件,把上面那个目标拷贝保存为python.tpl,存放在之前创建好的~/.vim目录下。然后在~/.vimrc中添加: 1 autocmd BufNewFile *.py 0r ~/.vim/templates/python.tpl 这样就能保证每次写的python文件能够保持一致的编码方式。更多用vim写python可以参考之前的《 在vim中编写python 》这篇文章。 2.python中的两种字符串 事实上,python是有两种”字符串”,在python2.6的官方文档中,有Strings 和Unicode Strings 两种Strings。 对于它们之间的相互转换以及GB2312与UTF8的互转,还有encode和decode,在啄木鸟的WIKI上面有详细的解释: http://wiki.woodpecker.org.cn/moin/PyEnCode 简单的说,其实encode1就是将unicode的字符串转换为特定编码,诸如“GB2312,UTF8”之类。 而decode2就是将本地编码转换为unicode编码的字符串。 所以,比如说要将GB2312转换为UTF8,那么就先将GB2312 decode再encode成UTF8即可,反之亦然。 编码 [↩]解码 [↩]
具有重大意义的Python 3.0(也叫Python 3000或Py3k)已正式发布。Python 3.0是首个有意不向后兼容的版本,经历了约3年的开发,相比前版有巨大的变化。 主要新特性包括:部分函数和语句的改变,其中最引人注目的是print声明被print()函数取代;字符串和字节变动,str类表示一个 Unicode 字符串,代替了早期版本的unicode类。更多可见发行注解。
http://blog.csdn.net/DavidHsing/archive/2007/08/26/1759491.aspx 命名规范和C/C++源代码书写 通则: 1、在所有命名中,都应使用标准的英文单词或缩写。不得使用拼音或拼音缩写,除非该名字描述的是中文特有的内容,如半角、全角, 声母、韵母等。 2、所有命名都应遵循达意原则,即名称应含义清晰、明确。 3、所有命名都不易过长,应控制在规定的最大长度以内。 4、所有命名都应尽量使用全称。 5、如果命名使用缩写,则应该使用《通用缩写表》(见附录)中的缩写;原则上不推荐使用《通用缩写表》以外的缩写,如果使用,则必须对其进行注释和说明。 具体规范: 1、工程名: 不强制统一。 2、文件名: ·基于工程名,开头3个字母应表明与哪一个工程相关。 ·后面的字母应能够区别不同的功能。 ·不区分大小写。 ·长度不限于8.3格式,建议不多于30个字符。 ·若文件用于定义和实现类,建议文件名与类名保持一致。 3、函数名: ·参照 Windows API 的命名规范。 ·推荐使用动宾结构。函数名应清晰反映函数的功能、用途。 ·函数名最长不得超过30个字符。 ·函数名第一个字母必须大写。 ·全局函数必须以小写前缀”g”开头。 4、变量名: 原则上,变量名的命名遵从匈牙利记法。即:前缀 + 类型 + 变量名
