PHP的输出缓冲

今天碰到一个小问题,本着研究到底的精神。这个问题被我研究了一下,当然到底时不可能的,什么事情到底了就会总结出哲学的那几个问题上,比如人为什么活着等问题。

就是用header函数的时候会出现什么headers already sent这个问题,其实这个问题在ubuntu中是已经没有了的,因为,因为的原因在后面讲。

首先讲一下headers。这里的headers就是http header的意思。当你请求一个页面的时候,服务器会返回两部分,一部分就是header,一部分时主要内容。这个header储存了很多有用的东西,比如你的浏览器的cookie等内容,而内容则是你看到的东西。

为什么会出现headers already sent这个问题大体上很好理解。PHP在输出的时候,会产生header数据,如果没有明显的用函数指定header的值(比如header函数、setcookie函数都会改变header的值),那么会产生默认的值。header的作用时很多有用的东西,http协议的创造者让它必须要在主体内容之前发送到浏览器。如果在这之前你已经用php输出一些东西了,那么当然会引起冲突了。

Continue reading

ubuntu无法sudo

就在上篇文章中,我尝试的时候改了我用户组,结果除了一大堆问题,问题之一就是无法sudo了。

于是我就到了recovery mode下面,想把我的用户组加到admin和root中,结果提示失败。它提示我Cannot lock ‘/etc/passwd’。有点崩溃。

再一次于是我google了一下,就google出了解决方法,如下:

Check that you are root

whoami

Check that the root partition is mounted read-write

cat /proc/mounts

If you see that your partition is mounted as ro (read-only), try remounting it as rw

mount -o remount,rw /

然后就OK了,哈哈。不过不知道为什么默认的recorvery mode没有把根目录挂在为rw模式,难道是为了安全?

linux文件属性的个人约定

完美的感觉又来了,下午叨叨了一会在linux下开发web程序文件的属性问题。

环境是ubuntu+apache(默认apache是以www-data这个用户来运行的),我的用户名是hass。默认的文件夹属性是775,文件是644。文件所属为hass:hass,。web程序在安装的时候如果需要写权限,那么我就将文件所属改为www-data:hass。然后apache自己产生的文件的文件所属明显就是www-data:www-data。

讲一下好处,文件所属为hass:hass的文件都是需要人来编辑的程序,文件所属的www-data:hass为需要写权限的,文件所属为www-data:www-data的则为apache生成的,不需要我们来干预的。

后:刚到新公司,很新奇。

所谓的HTML5十五新特性

下面是我摘抄的一篇文章,觉得有必要记载到这里。我复制的时候大体浏览了一下,发现重复的内容很多,比如新的标签header、footer和hgroup其实是一个系列的,比如audio和video还有那个什么video重载都可以放到多媒体这一块里面的,唉,可恨的人们啊。

HTML5想必大家都很熟悉了,因为太多的媒体在讨论这一技术。然而,你能准确地说出HTML5带来了哪些新特性吗?本文总结了HTML5带来的15项你必须知道的新特性。

1.新的文档类型 (New Doctype)

目前许多网页还在使用XHTML 1.0 并且要在第一行像这样声明文档类型:

< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

在HTML5中,上面那种声明方式将失效。下面是HTML5中的声明方式:

< !DOCTYPE html>

Continue reading

程序员水平分级

随着技术发展,编程悄然融入了我们的生活。我们已然离不开那些程序和编程语言。很多人都在不同程度地谈论着如何编程,也诞生出很多编程语言排行,那么程序员到底应该如何分级呢?

首先要明白什么是程序员。设计自己的Apache Web服务器的家伙?制作一个复杂Excel的家伙?还是能自己开发RPG的家伙?Minecraft的玩家?这些都属于程序员的哪一个级别呢?当我们说:“每个人都需要了解编程”,这句话意味着什么?

所以,我们需要制定一个程序员的等级,以便让程序员们了解自己所处的环境和发展方向。

Level 1,读写——他们了解设置Web服务器的方法,在普通情况下能够通过配置方式获取工作所需要的东西。他们有使用文本编辑器和文件系统的基础知识,还拥有移动和操作文件的能力,如ZIP和FTP。也能在结构中使用抽象符号、解析方式以及系统技能。

Level 2,脚本——能够编写线性脚本告诉电脑要做什么,能够学习和使用自己的符号。如果有足够的时间和书面指导,他们可以使用bash或VB编写一些简单脚本,为自己做些实用的事情。

Level 3,管理员——这些人了解库和API,并有能力学习更多。他们知道不管使用什么脚本语言都需要连接库。如果他们遇到问题,可以通过阅读使用手册或是在网上搜索库来解决。在工作中他能够发现或是开发自己的符号(使用struct编写函数或是声明)。大多数系统程序员都处在这个等级阶段,Excel的初级宏系统用户也同样处在这个阶段。

Continue reading

这些年

这些年,过得一直不是很好。从开始担心考试到开始攀比工作。愤怒,悔恨,嫉妒,难过,悲伤,所有的消极都在围绕着我,我一直在小心翼翼的压抑着。

想起刚建立这个博客的时候,交了很多的朋友,大家每天都在更新文章,大家每天都互踩,即使留言只是一句飘过,但是仍然能感到一阵的小幸福。那时,几乎所有我感兴趣的东西都往这个地方放。不过马上大家都开始忙了起来,博客由每天一更变成每月一更,更有的几乎变成年博了,联系不到了。再后来,我的友情连接慢慢的由一大长条变成只有几个,虽然大家好像都是月经博。

想起很久之前经常听的一首歌,Why do all good things come to an end。往事如烟,唏嘘感叹。不知道为什么好的东西总是那么的短暂。我想,是不是只有短暂的美好,只要短暂的事物大家才觉得美好,如果这些短暂的事物变得可以很长,那么是不是大家都不以为然,以为是平常的东西了。

Continue reading

webrtc终于来了

在几个月焦急的等待中,在我要回家过年的这一天,webrtc可以在chrome dev分支中使用了。本来想好好的做个东西出来,看来是要延迟了。我讨厌落后别人的感觉,因为估计我不能是世界第一。

我想,这个东西一定是个好东西,一定会很多人使用。比如像我这样的人,我受够了flash那种感觉,那种复杂,那种不爽。说起来flash是我在计算机领域第一次接触的东西,但是也是我现在最不想使用,最不想学习的一门技术,我不是在乔布斯宣布在手持设备上禁用flash才开始讨厌它的,自从我上大学开始系统的接触了flash我就开始讨厌它,莫名其妙的讨厌。

所以,我一直在寻找flash的替代品,明显,html5是我寻找的东西,我看到它可以播放视频,我看到它可以做图玩游戏,可是一直以来,他对于流媒体支持的很不好,可以说基本上一直以来,都是不支持流媒体的。于是,太多的东西html5做不到而flash可以做到,比如视频聊天。比如视频会议。

Continue reading

10种新语言

开发者是否真的还需要一种新的编程语言呢?选择已经有那么多了,现有的语言都让开发者应接不暇,可是各种新的编程语言还是在以惊人的速度产生!答案就是随着多核CPU、云计算、移动及分布式结构的不断发展,简单的语法已经不能适用,我们需要更加强大的语言!而以下10种编程语言,或正在走向成熟,或还在开发,可是它们都以全新的视角演绎着软件开发的艺术,每一种语言,都有可能打开编程世界的新大门!

No.1:Dart

JavaScript在Web的交互性方面运用得很好,但是当Web应用程序的代码行过多时,它的弱点就会显现出来,因此,Google推出了新的结构化Web编程语言Dart用以替代JavaScript。

与JavaScript标准的语法不同的是,Dart是通过类和接口来定义对象,并且允许编程者自由地定义静态变量,这使得Dart既能如JavaScript般流畅,又能更快更容易地存储且不易受干扰。此外,CSDN软件研发频道之前编译的Dart比JavaScript更酷的10个理由会让你了解到更多Dart的便捷性。

Continue reading

RVM多用户BUG

刚才更新了一下rvm的版本,更新到了latest(1.10.0),感觉不错。但是有一个令人崩溃的问题,就是当你用Multi-User模式安装rvm,然后切换默认ruby版本的时候会出现:

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

这令我很崩溃啊,研究了一上午,原因没有发现,倒是找出解决方法来了,那就是用sudo -H -i或者是rvmsudo bash命令切换到root模式下,然后rvm –default use XXX。新年快乐。

年终总结

马上就2012年了,今年我的博客荒废了不少,原因只有懒惰。我从来不为自己找借口。很多事情连我们自己都不敢面对。比如当你生气的时候,你会承认惹你生气的这件事情其实也有你的过错,你会承认吗?

还有半个月就春节了,小孩子们都很高兴,大人们有的高兴有的不爽,反正不管怎么样,大家都从不同的地方赶回自己所谓的家。谈谈家常展望未来。作为个人来说,现在的我是不怎么喜欢春节的。

不过高兴的是,过了春节会有很多的事情发生,比如windows8 beta,比如暗黑3,比如webrtc终于要集成在chrome中,比如android4 rom的发出等等,对我都是很高兴的事情。前一阵子突然的低沉,不知道自己想要什么,不知道应该做什么,搞的自己也快精神病了。后来我终于又一次想通了,又一次用了我一直用的方法来劝慰自己:如果不知道应该做什么,就努力的去赚钱吧,既然大家都在努力的赚钱,那么有了钱就一定有他的好处。

Continue reading