易栈网-膘叔

浏览模式: 标准 | 列表 | 图文
关于resolv.conf文件

关于resolv.conf文件

/etc/resolv.conf,这个文件是DNS域名解析的配置文件,它的格式很简单,每行以一个关键字开头,后接配置参数。

resolv.conf的关键字主要有四个,分别是:

nameserver #定义DNS服务器的IP地址
domain #定义本地域名
search #定义域名的搜索列表
sortlist #对返回的域名进行排序

较为简单的/etc/resolv.conf示例:

domain neatstudio.com
search www.neatstudio.com neatstudio.com
nameserver 8.8.8.8
nameserver 4.3.2.1

最主要是nameserver关键字,如果没指定nameserver就找不到DNS服务器,其它关键字是可选的。(一般dhcp的时候都会带有nameserver过来,也可以自己指定一下nameserver)

使用UBUNTU作为常用开发环境

使用UBUNTU作为常用开发环境

最近,使用UBUNTU作为了我在单位的常用开发环境,虽然有时候还是不太习惯,但大多时间里我还是能够顺利的使用了。
比如,我的开发工具选择了Netbeans这个基于JAVA的IDE,他有一个好处就是跨平台,因此,在WIN用使用了它之后,到LINUX下再使用的时候,就很顺利了(而且MAC下面也有该软件,如果哪天我用MAC了,它也能用,HOHO)

浏览器,FIREFOX,这个就不多说了,反正我的插件和WIN下一样(fastdial,firefox sync,search status,firebug,firecookie,readitlater等),也没有什么不习惯的地方了。

没有editplus,但是有gedit。

邮件,没有foxmail,但是有很多类似的,比如thunderbird

FTP,我在win下用filezilla因此,UBUNTU下也可以用这个,很爽。

唯独几个不爽的就是IM了,都不太好用。MSN吧,不太好,GTALK算是比较正常的,QQ吧,问题多。。不得已,经用virtualBox装了一个虚拟机,里面跑起了XP,然后在里面跑QQ。。。(最主要的原因是WEBQQ和LINUXQQ不支持讨论组,而我们部门偷懒,没用架群,直接用讨论组了。。。)

再接下来不爽的就是,明明我smbmount开发机上共享的目录到本地的,但权限总是1002,除了root外无法更改。但是用GUI界面的:ConnectServer工具,就可以直接连接上(问题在于连接上后,找不到在映射在哪个目录下,无法直接用IDE打开了)

最后netbeans直接打开remote功能,本地保存代码的时候,自动提交到remote上去。至此,几乎没有不能完成的工作了。(好象除了网银等不支持外,其他都可以接受,以前的aliedit的xpi不支持了。。伤心,不过刚才试了一下建行的网行,用firefox顺利打开,可惜我建行里没钱,也没有开通更多功能,失败呀)

界面嘛,就是关闭在左边不太舒服,还好几乎所有的软件都支持ctrl+w(关闭),问题也就显得不那么明显了。当然也算是习惯一下,等哪天我用苹果的时候,就可以少习惯几天了。阿Q很开心

64位的win7

64位的win7

这两天为了满足自己笔记本4G内存的兽欲,决定把电脑升级成win7 64位的,说起来这台电脑所装过的系统就多了,XP,2K,2K3,win7 32位,win2008,还有ubuntu 8.10,9.04等,但64位的系统,我是第一次装,于是就开始了我的处女安装。

由于ultraISO强劲的功能,以及我那可爱的电脑能够优盘启动,于是我选择了将ISO刻录到优盘的功能,也避免了那所谓的U盘量产。然后重启后就能安装了(在将ISO刻录到优盘时,我开始是用移动硬盘,但都失败了,灰常郁闷,最后不得不选择优盘)

安装速度很快,20分钟不到就完成了。几乎所有的驱动都认出了,当然最重要的是网卡驱动,有了它,剩下一些不太能认的驱动,也通过自动更新完成了,然后就是一系列软件的安装:netbeans,sogou wubi,youdao dict,wiz explorer,360(安装这个,只是为了更新补丁的时候会比较方便,还有可以方便设置一些自动启动,而不要让我手工改msconfig之类的配置)

其实一切都很方便,除了QQ,我从2010最新版装到2009版,然后又装了tm2009,没有一个能够正常运行。最后只能哭着放弃了。结果刚才晚上回来,我尝试了一下,2010最新版,居然又能成功了,不过,我是安装在D盘,而且不是在x86的目录下,我指定了D:\Program Files\目录,难道是这个原因?

值得开心的是,我现在几乎所有的软件都安装完毕了,只是office不敢装了,我已经装了2遍,不知道我的序列号还能用几次,好郁闷啊。我的正版office...等咨询后再装。

OK,上面就是我的win7 64旅程开始。(最后说一句,最新版的QQ有群分组功能了,感觉不错,因为我加入的和创建的群太多了。。。)

杂谈

传说中,taobao公司的Dba很牛叉,只是一直在关注他们的博客时,发现QA其实也很牛叉。看他们每月的测试中都有一些算法题,而且完成这些题目的语言也是各种各样,也就觉得自己真的很丢人了。。。

看这个吧:Mysql Query Cache学习篇,讲的很详细,不知道淘宝的QA薪水怎么样,他们是怎么面对QA这个职业的,毕竟在很多公司QA都处于一种很尴尬的位置。博客精华文章,是淘宝QA他们的一些精华,确实值得一看。

再转一些javascript的东西,司徒正美博客上的:一些javascript题目,然后我也想着一个很奇怪的事情。好象DZ对firebug作了一点处理?屏蔽了firebug的console的输出(可能是写了同名函数等覆盖了?我没有仔细研究过,只是在测试DZ代码的时候发现没有数据输出)

最后再想着scala和java,前段时间看了一阵,但突然又忘光了。(如果工作中用不到这类语言,想真正学确实比较烦,等工作走上正轨后,就要开始考虑用这类语言做点东西了。)

ThinkInLamp Mysql专场之杨涛涛 的PPT

ThinkInLamp Mysql专场之杨涛涛 的PPT

10月16日 ThinkInLamp Mysql专场中,杨涛涛作了关于MYSQL数据库的优化,最近他在自己的博客上将PPT放了出来,我在这里做一个简单的备份,其实还有SNDA几位DBA的PPT也已经出来了,他们的在thinkinlamp.com 上已经提供下载,我就不再转载了。
我个人相对来说还是比较喜欢mysql的优化,或许对于数据库的设计 我还是停留在程序员的阶层吧。

OK,翠花,上PPT(哦,是PDF版的)
20123c5d0b5ae3ec903ee28aa9f28fdb

嗯。顺便再附上一份mysql优化的PPT
29056b4488acc43cef88c56535f48502

Robots文件的写法

如果你想你的网站能够被更好的访问,恐怕robots文件是相对比较好的解决方案之一,但很多人都忽略了这个玩意。
当你的网站的一些内容不想被蜘蛛访问时,但事实上他却不由自主的被蜘蛛抓取而显示在网站上,于是我们就不得不利用robots来disallow一些目录。
内容就大致如下喽:

User-agent: *
Disallow: /xxx/

如果所有的目录都不想被蜘蛛抓取,那就是

Disallow: /

除了目录外,还可以禁止一些特殊的后缀名的文件被蜘蛛抓取,比如你的网站图片是专业的有版权的,当然不希望被蜘蛛抓取,因此,你可以写成类似这样:

Disallow: .jpg$
Disallow: .jpeg$

上面写的User-agent是针对的所有的蜘蛛,如果你不想某个蜘蛛来抓你的网站,你可以单独指定某些蜘蛛disallow,而其他的为allow

一些User-agent类似如下:

百度蜘蛛名字:baiduspider
谷歌蜘蛛名字:googlebot

其他的我也说不清楚太多,不过你可以通过查看apache日志来进行查看那些蜘蛛的User-agent。

说的不是很多,希望有点帮助吧,其实我也是做点笔记。

NetBeans在Ubuntu下调整界面模糊

NetBeans在Ubuntu下调整界面模糊

Ubuntu10的时候,如果你进行netbeans的安装(PHP版),你会发现,界面十分模糊,仿佛是英文缩小成了很小很小的一部分,但是,如果你create a project,你又发现,很多英文又显示得好好的。
怎么办?菜单英文全部不能显示正常,都是模糊的一团,如果你在win下操作熟练,你可以轻松的找到option菜单,但是即使你设置了标准 的dialog Input作为你的界面字体,菜单等仍然保持模糊状态。
查询了一下google,好象很多采用java的程序都有类似情况发生,所幸,netbeans可以通过netbeans.conf里地配置来进行处理,这时候,你可以打开/usr/local/netbeans xx.xx/conf/netbeans.conf,修改netbeans_default_options,在最后的一个选 项里加上:--laf com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel,再进行重启。OK,菜单全部出现了,而且非常秀丽。

最后诉诉苦,为了安装ubuntu,我遇到了很多问题,比如我为了备份winodws盘里的数据,先用tar把数据简单的tar了一下(没有压缩,而且打包成一个文件,方便COPY),然后。。。先是昨天用网络进行COPY,25G的文件,COPY成了80多G还没有完事。今天上午用移动硬盘先COPY,但先忘了移动硬盘是fat32的,只能最大4G,在COPY到4G的时候出错了。然后格式化成NTFS,再继续拷贝,结果到22G的时候,移动硬盘过热,突然自己就断了,心啊,哇凉哇凉的。最后突然想起linux的操作可以用scp进行COPY,而且局域网里有linux系统,于是我用scp进行COPY,果然。半小时不到就COPY完了。等系统装完再Scp回来,真的很方便。

然后遇到的问题是smbmount,把linux通过samba共享出来的目录,用smbmount到本地,但会突然发现,用户组都变成了1102之类的,而且我在root权限下,无法chown该mount回来的目录。但root用户可以更改该目录下的数据,而默认用户无法修改,打开后保存的时候会造成数据丢失。郁闷。。。

目前用下来,装B很快乐。Over

testdisk

今天下午在重装系统的时候,犯了一个小错误,结果,导致我的系统分区表全坏了。在UBUNTU下只能看到一个分区,里面的内容全部不见了。
所幸,UBUNTU可以光盘启动,这时候,我用它上网查了一些资料,发现原来testdisk这个软件不错,可以修复分区表的信息。

于是apt-get install testdisk,很快就下载回来了。

直接运行,会问你是否记录LOG,如果你没啥大事,就不用记录了啦,然后选择INTEL PC,再选择优化,发现了自己的系统硬盘终于被认了出来,灰常激动啊。

把分区表写入硬盘后,可以在LINUX下面发现已经挂载到/media目录下了,立刻,远程到局域网,把数据全部拷贝到局域网中。

期间,本来是想用smbmount把远程的共享目录映射过来,然后把本地内容拷贝过去,结果发现好象不行。最后没辙,只能远程,把本地磁盘映射到远程系统中,终于可以拷贝内容了。

激动啊。。。不然我就全完了

慎用mysql的enum字段

慎用mysql的enum字段

这两天有趣的事情非常多,比如,所谓的QQ一些内部培训资料流出,网上各大网盘啥的流量一下子就非常高了。我当然也不小心就下载了一份,还没有看,不过好象什么百度的资料上已经有在线看了。因为自己也没有看,所以也不太清楚这玩意是真是假。

OK,上正文,16日的MYSQL专场,对于mysql优化讲的较详细的应该算是杨涛涛,他对MYSQL的一些字段类型进行了些介绍,包括他们所含 的字节长度,来介绍给我们让我们了解如何对数据库进行优化,比如,尽量不要用bigint,因为,这在项目中几乎不可能会被用上而他们占的字节长度却是在int中最长的,在数据量大的时候,既占空间,又影响速度。

还介绍了datetime和timstamp等的区别(更多可以看我以前写的连载,里面也有介绍)

不过,他唯独没有提起ENUM字段,说起这个ENUM,它倒是mysql的一个特色字段,在以前很多人喜欢用它,因为他可以设置字段的区间范围,会让值可以被数据库所控制,不至于出现意料不到的值(比如,字段只想有0和1,结果出现了2,那2就是赃数据了)

但ENUM带来的问题也不少,比如数据迁移的时候,他几乎不可能被其他数据库所支持,如果enum里面是字符串,对于其他数据库来说就更郁闷了,还不能设为tinyint等类型的字段(enum虽然可以存储字符串,但对于内部来说,还是以顺序进行索引,比如'a','b','c',我们也可以用索引值来获取值select * from tbl_name whre enum = 2,这与select * from tbl_name where enum = 'b'等义)如果你看明白了这两句SQL为什么等义,那么你也就可以了解为什么不主张用enum字段了。

因为,如果一个设计不合理的ENUM字段,给程序员带来的就完全是梦魇了,比如一个enum字段的范围是('0','1','2','3','4','5'),我想这时候,你会不会哭呢?要知道enum的枚举值对应的索引是从1开始的,因此,insert into table (enum)values(1),你知道是插的什么值吗?你select from table一下,你就会发现,你插入的并不是1,而是0。

更有甚者,由于enum的区间也是可以变动的,如果你在enum的枚举字段范围中加一个值,并且不是加在最后,那么也就相当于,你把原来的范围都改变了索引值,试想这又是多么一个恐怖的事情?

因此,如果你的系统中真的已经使用了mysql的enum字段类型,请在查询的时候直接查询值(并加上单引号),这样就不会使用enum自身隐藏的索引值来获取结果了。【顺便说一下,enum的默认索引是从NULL开始,如果你允许NULL并default NULL】

之所以提起这个,是在用shopnc系统的时候发现大量这样的字段,让人非常郁闷,几乎没有办法优化(如果是纯数值型,还是建议采用tinyint字段吧,毕竟它也只占一个字节,即使出现赃数据,也可以被接受,不象enum,如果纯数字型范围,更改了索引,你就不知道你查询的值是否正确了)

因此建议,如果字段是字符串,并且长度固定,可以尝试用char,如果是数值型,还是用tinyint吧,比较安全稳定,而且即使迁移,问题也不大。

ThinkInLamp Mysql专场

ThinkInLamp Mysql专场

在开始今天的话题之前,先感谢一下傲骨,在我向板子申请小海豚未果后,他让出了他的sun海豚。
再,感谢ThinkInLamp 组委会(http://www.thinkinlamp.com),也正是由于他们的努力,我们才有了今天这么一个专场(而且很多参与者也放弃了今天同时举办的其他几个专场,比如在篱笆网的前端专场(?UED??),还有复旦的ubuntu 10.10的专场等,好象还有一个,三马说了,也没有记清)
再,StingChen【http://my1930.com】在我们听讲的时候,努力的在新浪围脖【http://t.sina.com.cn/thinkinlamp】上拼命的在直播(如果他没有PPT,那就是他打字特别快了。。。)
然后就是赞助商和几位嘉宾了(感觉今天就是Action【爱可生】和盛大的专场,有些内容就不多写了,因为StingChen的新浪围脖直播上的内容详细程度堪比PPT啊【点击查看】,可惜不支持倒排。看的会稍微有点累)。
当然我们不能忽略一些幕后工作者,ThinkInLamp的组委会和一些志愿者,他们非常努力的想办好这次专场(据说很多人都是几乎一夜没睡,看到板子【http://blog.thephper.com】的脸都是白的,虽然他们没有经验,但非常努力)
OK,开始讲讲今天的内容吧。对于一些广告我就直接无视了,只记录讲技术的。
先是老谭(谭浚青)给大家介绍了Mysql的myisam与innodb的比较,虽然很多资料大家在应用中都有接触和了解,但他还是对于myisam的key buffer和innodb的bufferpool的调优有了介绍。其中他也介绍了一个小经验,是innodb调优的,说是如果raid卡上有电源模块,那么也就可以利用raid卡上的内存来优化redo log的传输性能。(好象没记错)老谭在介绍这些信息前也介绍了Action公司正在测试的一款新产品,利用服务器上的agent来进行mysql的监控(采用WEB方式进行管理,看他的几个截图倒是真的不错)
接下来就是盛大的赵佳佳介绍了SNS数据库的设计,主要介绍了一些数据库的拆分方案,可能由于小姑娘有点拘谨,虽然内容不错,但讲的一般,大概还是紧张了吧(不过,如果要是换成我,我还会更紧张)。对于数据库的拆分,还是传统的水平拆分和垂直拆分,这两点我就不多说了,网上资料更多。完了结束时,她介绍了Amoeba:分布式数据库Proxy(希望没说错)。
Oracle的杜玉松介绍了Mysql被收购后未来的一些roadmap,也算是让我们对MYSQL的未来有些信心,不至于过份迷惘吧。傲骨倒是对电信级的server非常感兴趣,只是我却对这些没有太大兴趣。当然分区表,也是我们关心的,用lvan的话来说这点在5.5的时候就会有很大的改进,不再象现在还会存在一些BUG,让人不太敢用(感觉好象说是可以智能分区了)
接下来又是盛大的哥们介绍数据库mangoDB【被人批评写错了,应该是mongodb】,对于这个数据库,了解的人真的很多,而且不管数据量的大小,很多人都也在进行尝试(只是我们的条件不如盛大,不太可能是一下子放上几十台服务器进行尝试)。这点就是小公司的DBA不如大公司的地方了,学习环境不够好啊(结束的时候,他略介绍了几个类似的数据库redis,tc等,在介绍memcache的时候说memcache的value最大只能有1M,而mangodbmongodb可以达到4M,但事实上从最近的1.4.2版开始,memcache在启动的时候加上参数,也可以指定value的最大值了)
最后让我有印象的是Action的杨涛涛,他是直接从代码上来介绍了数据库优化的了,讲的非常简洁,真的很简洁,几句话就带过了。不过有些技巧和经验还是让我眼前一亮。。
比如以下几个sql:

Select * from t where name like '%de%'
Select * from t where name like 'de%' 这是可优化的
Select * from t where name >= 'de' and name < 'df' 如果字符串有规律也可以利用这种方式

Select * from where 1
Select * from where 1 limi 10

Left join 不能仅对子表判断,可以对主表加过滤条件,避免全表扫描 。

Select sql_no_cache * from new_ext order by id asc limit 20000,20
Select sql_no_cache * from new_ext where id >= (select id from new_exit order by id ASC limit 20000,1) limit 20
这样的效率比上面略高

可惜杨涛涛对于存储过程、触发器、视图等没有过多的介绍,只是说了一下,视图,玩玩可以,不要在开发机上用就成(存储过程、触发器,我都在几年前看过,也做过一些小应用,只是,全忘光了,前段时间在导数据时,连个查询循环都搞不定了)
最后一位MM的mysql高可用性,我没有记录更多。。因为她介绍的几个方法,其实都已经在正式应用中了,虽然有考虑过換新的系统架构,但換的成本也会太高,不敢尝试。

当然也得提点建议,这次餐券的初衷挺好的,但给KFC造成了很大的压力呀,一下子,并发处理不过来了。
最后,感谢傲骨的小海豚,上两张相片:
9ee24172839f52a1e263765337085e0a
php编码规范.chm
c46d91738111b5245356411d9606f68f