ColorSpy 屏幕取色 绿色软件

软件的功能就不多说了,做 Web 开发经常会用到的,保存在服务器上,随时可以下,省得到处找了。

下载链接:ColorSpy

设置 innerHTML 属性 导致 未知的运行时错误 IE bug

在用 Javascript 更改 HTML 代码的时候,经常会用到某个对象的 innerHTML。在读写标签内的代码或字符串时非常方便。

但 IE 对这个属性的支持不太好,经常容易报出 “未知的运行时错误”,而同样的操作,在 FireFox 和 Opera 下面就都没问题。

到百度和 Google 查了下,发现是 IE 浏览器下,对 <table>、<tbody> 和 <tr> 等标签的 innerHTML 属性进行写操作时会报错。

应该是 IE 处理不当造成的。

目前没有很好的解决办法,只能采取改变 HTML 结构的方式,也就是说,不要对 <table> 等标签应用这个属性,改为对 <div>、<span> 和 <p> 等标签,就没问题了。

比如,运行下面的代码会报错:

<table border="0" cellspacing="0" cellpadding="0" id="Container">
<tr>
<td>Hello Leakon!</td>
</tr>
</table>
<script type="text/javascript">
document.getElementById('Container').innerHTML = '
<tr><td>Good morning!</td></tr>';
</script>

改变一下实现方式,就没问题了:

<div id="Container">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Hello Leakon!</td>
</tr>
</table>
</div>
<script type="text/javascript">
document.getElementById('Container').innerHTML = '
<table border="0" cellspacing="0" cellpadding="0"><tr><td>Good morning!</td></tr></table>';
</script>

Cygwin 完整安装 本地安装 Windows 模拟 Unix Linux FreeBSD 命令行的超级工具

你会使用 grep 吗?这个强大的文件内容查找工具,是 Unix 平台下非常好用的工具,可以用正则表达式在制定的目录下递归地搜索每一个文件中出现的匹配字符串,尤其是写程序时,想查看一下某个函数都在哪些文件中调用过,用 Windows 自带的工具是无法做到的。

再举令一个例子,程序开发人员,都会使用版本控制工具,例如 SVN 或 CVS,当我们把程序源码从版本库中 checkout 出来到本地目录后,会在每个目录下面生成一些结构复杂的隐藏目录,里面包含了版本控制的一些信息。当我们想从这个复杂的代码目录中找出干净的代码树,也就是不带版本控制信息的干净的代码目录,用 Windows 提供的工具根本无法做到,除非你有耐心,一个一个地删除数千个文件和文件夹。但是,在 Unix 下面,可以使用如下命令一次性删除这些目录和文件,以 SVN 为例:

$ du | grep 'svn' | awk '{print $2}' | xargs rm -rf

过程就是列出所有的目录,把所有带 svn 字样的目录提取出来,去掉属性信息,用 rm 命令递归删除,多么简单!!!

同样的,有些顽固的病毒或者恶意程序,会在我们的硬盘中生成很多例如 ‘_desktop.ini’ 文件,每个目录下都有,手工删除太麻烦了,用批处理命令也很麻烦,不如用上面的例子说的简单。

现在,首要的问题是,这些命令只在 Unix 环境下有效,Windows 本身不带这些命令啊!

感谢伟大的技术天才们为我们开发出的超级命令行模拟器:Cygwin!!!

安装他以后,每次运行,就会生成一个跟 Unix 命令行一样的窗口,看上去很像 Windows 的 CMD,但仔细看,里面是我们熟悉的 bash 提示符!!

到哪里找这个软件呢?不用到处跑了,这里给你提供了打包的下载!

Cygwin.zip

下载完后,打开压缩包,setup.exe 是安装程序,Packages 目录是安装程序需要的所有其他程序的压缩包。

安装的时候不用再从网上下载了,直接选择本地安装就可以,非常快!

有任何疑问,欢迎给我留言回复,我会帮助大家解决问题的!

希望这个工具可以给你节省大量时间,把你的所有时间和精力都投入到无限的创新中去吧!

MySQL 数据导出 数据导入 备份 还原 编码 字符集

数据导出

完整数据库备份

mysqldump -uroot -p123456 --opt --default-character-set=gbk database_name > database_dump.sql

注意:

1 加上 “--opt” 参数,就相当于同时加上了如下参数:

--add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset

2 必须指定字符集

--default-character-set=gbk

通常选择 gbk、utf8 或 latin1

数据导入

mysql -uroot -p123456 database_name < database_dump.sql

注意:

1 导入导出的字符集应该一样(讨论A)

关于备份文件(讨论A)

用文本编辑器打开 database_dump.sql 文件,在头部会有如下一行内容:

/*!40101 SET NAMES gbk */;

其中的 gbk 就是导出时指定的字符集,在导入到新数据库的时候,这条语句会告诉 MySQL 服务器当前的连接环境使用这个指定的字符集。

简单总结:

为了整体环境一致,也为了维护工作更简单,我建议如下几点:

1 在设计数据库、表、字段的时候,要全部保持一致的字符集,例如,我们全部都用 utf8;
2 在 PHP 和 MySQL 建立连接的时候,用 "SET NAMES utf8" 语句设置连接环境;
3 在 Web 页面的 HTML 代码中加入如下代码:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

4 保存程序和模板文件的时候也用统一的 utf8 字符集保存

保证了上述 4 点,我们在开发 Web 应用中,就不会遇到任何编码的问题了。

不以为荣 反以为耻

曾经,我很自豪地告诉我的朋友,我在QH工作。
如今,QH的种种做法,让我觉得,这2年多的经历,带给我的是后悔与羞愧。

UI 异常处理 错误处理 处理流程

本文标题中的 UI,是指侧重于与用户有交互动作的 Web 界面。

也就是说,是 Web2.0 概念中的页面。这类网站的内容不仅要展现给用户,更多的内容是由用户贡献的。

有了用户输入的过程,也就有出现错误的可能,在这里,我称之为异常。

传统的 Web 开发过程,都是由产品人员设计页面主要功能,由 UE 人员设计具体的 HTML 页面,最后由 Web 工程师负责页面与程序逻辑的整合。

这个过程中,最容易遗忘的就是错误处理部分。

我们的产品经理和设计师们都有一个潜意识,那就是用户会按照他们设想的过程参与产品的互动。

然而正是这些自诩为互联网界最有创新力的人们忽略了,或者说严重低估了广大网民的创造性。

我们可爱的互联网用户们总是会输入千奇百怪的文字和符号。

但是,我们必须对任何输入都给出一个友好的提示。

很多网站不太注意这一点,我输入一些内容后,糊里糊涂地跳转到了网站的首页,甚至连一个简单的提示都不给,有的用 alert 给一个提示,虽然很不友好,但至少让我知道网站有反应了。

在这个问题上,Google 就处理得很好!典型的应用就是 Gmail 和 Calendar,你的每一步操作,在屏幕顶部都会有一个橘黄色的背景区域,里面有友好的提示,对某些特殊的操作,还有取消按钮。

配置rewrite和.htaccess

一、配置 apache 的 httpd.conf:
1.3.x 版本:

LoadModule rewrite_module libexec/mod_rewrite.so
AddModule mod_rewrite.c

2.x 版本:

LoadModule rewrite_module modules/mod_rewrite.so

二、虚拟主机配置:

<VirtualHost *:80>
DocumentRoot "/www/abc.com"
ServerName www.abc.com
 
<Directory "/www/abc.com">
Options FollowSymLinks
AllowOverride Options FileInfo
</Directory>
 
</VirtualHost>

通过PEAR包来安装 symfony

1、# pear upgrade PEAR
2、# pear channel-discover pear.symfony-project.com
3、# pear remote-list -c symfony
4、# pear install symfony/symfony

在第 4 步,pear 会去配置好的 url 下载最新的 symfony 安装文件,速度会比较慢,而且如果有问题,还要重新下载。
我在安装成功后,在 /tmp/pear/cache/symfony-1.0.6.tgz 找到安装文件,这个文件从 symfony 的 官方网站 上也可以下载,预先下载后放到上面那个路径下,然后再安装,应该就免除 pear 重新下载了。

注意:先检查 php.ini 中

memory_limit = 8M ; Maximum amount of memory a script may consume (8MB)

的设置。

8M是默认值,安装 symfony 至少需要 32M 的内存空间,所以你要把这个内存限制改大一点,然后重启 Apache。

工程师的七个意识

时间意识
不要拖到最后才开始工作,因为总可能会有意外
每件事情都有完成时间表,给自己一个约束,也给自己一份责任
每件事情有始有终,设立一些里程碑,在里程碑上检查自己和他人的进度

质量意识
既有的流程应严格遵守:这是很多他人经验教训的总结
稳定压倒一切:优先解决线上服务稳定性问题
尚无流程的重复实践应创建流程
容忍失败,但不容忍重复失败

沟通意识
平等沟通:在沟通上没有级别概念
坦诚沟通:主动说明存在的问题/隐患和计划的解决方案
及时沟通:任何计划外的变化要及时通知所有相关人员
全面沟通:发送其他部门的信原则上要抄送本部门对等级别经理或总监
必要沟通:当其他部门员工/经理在正在进行的合作项目和规定流程之外,希望你们提供超过半小时之上的专业/技术帮助时,请他们先去找部门经理协调,避免被不必要的工作请求干扰
清晰沟通:当面沟通,电话沟通,召集会议都是有效的形式,但要留下文字记录发给大家

团队意识
每个人都代表了你所在的团队
集体荣誉感:用你的成绩为你的团队带来光荣
乐于给别人提供帮助,也勇于向别人学习
把周围同事当作你的资源,包括你的经理
尊敬身边每一个人

学习意识
为自己设立进步的目标和实现的计划
经常反思下自己的计划落实情况
最大可能的从周围的同事中学习一切好的东西
从每个项目中获得进步
从每次事故中吸取经验教训

实事求是意识
用数字说话,用事实证明,不要有“想当然”的思想
大胆假设,小心求证,不放过每一个细节和疑点
客观公正:杜绝“可能”,“大概”,“应该”这样模棱两可的用词,而是用准确的数字和事实来论证
每个工作能用量化的指标来进行衡量:性能、容量、准确性、召回率、死链率,etc.
没有量化,就没有绩效
通过这些指标衡量自己的成长和进步
通过这些指标知道工作的方向和重点

用户意识
我们每个人每天的工作都服务于各种各样内部或外部的用户
我们每项工作的质量都影响到各种各样用户的工作、心情和满意度
我们成就感的一大部分是我们的工作帮助了多少用户
列出你曾经有的、正在有的和将来会有的各种用户
他们对你的工作会有怎样的评价?

如愿以偿

今天,我加入百度了。

一颗疲惫的心终于可以安定下来。

我又找到了2年前刚工作时的那种感觉。

周围的一切那么陌生,但又是盼望已久;
有很多新的技术要学,但我的求知欲和努力学习的热情却异常高涨!

既然找到了新的归属,从现在起,一切都从零开始。

我要利用这 2年在技术上和生活上积累的经验,去开创一片新天地。

再次庆祝一番吧,今天,我加入百度了!

Google

Google
LAMP-Linux-redhat LAMP-Apache LAMP-MySQL LAMP-Php Leakon-Wiki Leakon-BBS XueBaoBao Xyoyou