Goodbye Google Reader

Google Reader

原本我是打算发微博的,发现微博140个字不够用。

Google在宣布2013年7月1号停止Google Reader的事情,我很伤感,因为我是Google Reader的重度用户。

然后我试用了很多类似Google Reader的产品,如feedly,鲜果,等等…等等…但是直到7月1号我还是在使用Google Reader,直到7月2号Google Reader已经不能访问了。

这个时候我只能使用Digg Reader,开始的时候Digg Reader不能显示未读数,让我非常的不习惯,直到今天这个功能有了,我很满足,觉得不错了~

而且在Digg Reader的FAQ上,有用户提到了几个重要功能,只要这几个功能有了,我觉得Digg Reader就完全满足我了。https://digg.zendesk.com/categories/20071200-Your-Ideas

没有什么互联网产品是不可替代的,Google你好自为之吧。

回车符 \r\n 在各个浏览器中无耻的表现

先认识下回车符:

在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。

于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。

这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。

后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。

Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回车>”,即“\r\n”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
【来自f2e.aliued】

就是因为有这样分歧,回车在各个浏览器中的表现也不一致,这个很无耻。


<!DOCTYPE html>




test





首先,在IE6,7,8中,还是比较坚持的,所有的回车都是\r\n。用encodeURIComponent出来都是%0D%0A
在IE9中,就完全改了,但还是比较坚持的,所有回车都是\n。用encodeURIComponent出来都是%0A
但是在FF或者Chrome中,对input type=”hidden” 的处理是不一样的,其如果value=’\r\n’,用encodeURIComponent出来是%0D%0A.其他全部都是%0A

这些问题在一些带回车的内容会处理处理起来比较头疼,特别是涉及到字符限制的。回车会计算成一个字符或者两个字符,处理起来需注意。

1988:我想和这个世界谈谈

1988:我想和这个世界谈谈

其实这本书早就看完了,当时摘录了一些文字,不敢独藏,唯有共享。

孟孟瞪大眼睛,看着我,说,你知道么,如果当时这段视频能发出去,也许我早就红了。
我看着她笑了。

“虚惊一场”这四个字是人世间最好的成语。

她以前还和外校生谈过一次恋爱,但后来人家甩了她,所以她就有防备,说不能让我太容易的得到她。这句话大致说明了她上一段恋爱的情况。

我说,也不知道。反正我还挺小心翼翼的,我是特别喜欢她,一点保留也没。掏心掏肺的。
娜娜说,哦,那小弟弟有没有掏出来?
我说,没有到那个地步。

终于轮到我冷笑,我说,做自己,多土的词,想生存下去,谁不都得察言观色,然后表演一番。

娜娜把照片还给我,说,我认得她,她就是孟欣童。
我问娜娜,谁?(我特地翻回去看了前面章节)

只要我的孩子不干这个,就行了,我愿为她不干这个而被干死。

说道,你看现在,大早上的,你太勤奋了。
她说,我知道了,先生,你要包夜么?
我迟疑了一下,一看从窗帘外面透露出来的阳光,心想着还算什么包夜,这都是包日了。我礼貌地问道,包夜都能干什么啊。
姗姗回答到,包日。

关于布局中基线对齐的说法

这个起源于帮忙解决一个运营页面,这个悲剧啊,页面的布局就是下面这样的。

yeahxj

















简单吧,简单不过了,甚至在我们页面中都鄙视这样的布局,但是不从这个角度出发,我们发现这挺怪异。
Firefox,Chrome下挺好,而IE却会在两张图片中间出来一条白色的间隙。
我明明设置了cellpadding=”0” cellspacing=”0” border=”0”,奇怪了…
网上查完,解决方法有二:

  1. td img {display: block;}
  2. td img {vertical-align: bottom;}

可是这是为什么呢?为什么这样设置就了可以了,这两个方法不就是把元素从inline变成了block,改变了垂直对其方式。
后来慢慢baidu,baidu不行Google…发现vertical-align默认值是baseline。以此引出一个概念:
基线对齐
所谓基线对齐,就是各种inline元素都保持其基线与其父元素的基线是对齐的。例如如果有图片的话,则图片的底端也会贴着父元素的基线。
基线这个东西还要从文字设计开始讲起,MD,这博客要写到神马时候啊。还是看代码吧。

yeahxj










aAg

Aga




仔细看仔细看,看到没看到没,其实图片是和a这个字母的下沿对齐的,小时候学字母的时候就会有这条线,不过也有些小写的字母如gg是会超出基线的。所有大写字母都是底部基线对其的。
这大部分已经说到了上面的问题,既然有基线对齐这回事情,那vertical-align必然和这个相关,一看vertical-align的值:baseline sub supper top text-top bottom text-bottom middle以及各种长度值(%,em,ex等等)MD,这博客要写到神马时候啊。还是自己看代码吧。

最后:其实非常多有关布局的情况都是和这个有关,写的不够系统,望有高人指点。欢迎参加D2。

更换域名了,从movinghorse.cn到yeahxj.com

终于换域名了,一直有这样的想法,舍不得实施。

今天万网把我的网址停止解析了,像我这样只知道分享技术,积累经验的年轻小伙真的很不错了,积极为中国网络事业蓬勃发展做贡献的,结果还把我域名给停了。

好吧,我离开cn换成com的。从movinghorse.cn到yeahxj.com

yeahxj.com的由来很简单,就是叶行骏。

各位xdjm帮忙改下链接地址,原域名应该一个月之后会废弃,还有feed的地址也做修改。

最新的feed地址:http://www.yeahxj.com/feed/ 或者http://feeds.feedburner.com/yeahxj 推荐后者!

安装subversion-[学习笔记]

subversion(简称svn)是近年来崛起的版本管理软件,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。
subversion的官方网站是 http://subversion.tigris.org/
Linux真TM的,完全不能以学习Windows的方式进行了,做过一遍下次很有可能要忘记了,额的神啊,请让我做些笔记吧,虽然这些对于高手来说非常简单。

安装的方法应该有四种:
1. 下载源码,自己编译,安装。这种方法适合熟悉的用户,这里会遇到很多依赖没有安装的情况,要一个一个搞定,很是麻烦,而且需要很多的时间。当然也还是介绍下方法:
$wget http://subversion.tigris.org/downloads/subversion-deps-1.6.12.tar.gz
$wget http://subversion.tigris.org/downloads/subversion-1.6.12.tar.gz
$$ tar xvzf subversion-1.6.12.tar.gz;tar xvzf subversion-deps-1.6.12.tar.gz;
$ cd ~/subversion-1.6.12/
$./configure
$make clean
$make
$make install
这只是大致步骤,中间出现的任何问题,自己想办法处理。

2. 直接使用yum安装,这个应该是最方便的方法了。直接yum -y install subversion就OK了。
这里我遇到的问题,使用这个方法老是提示我老的版本已经是最新了,没法升级。而我看到的是使用的是http://mirrors.163.com/的。不知道是不是163的svn只有1.4的版本,望高手解答,如何修改不使用163的。

3. 使用rpm包安装,这个相对也方便,但是也要处理依赖。rpm一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。
这里可以下载svn的rpm包:http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/1.6.13/rhel5/i386/
按照我的经验,下载neon,sqlite,subversion,就可以了。然后如rpm subversion-1.6.13-1.i386.rpm等等。遇到要升级什么的,使用参数rpm -ivh sqlite-3.5.9-2.i386.rpm –replacefiles

rpm举几个例子:
安装:# rpm -ivh subversion-1.6.13-1.i386.rpm
卸载:# rpm -e subversion;强力卸载:# rpm -e subversion –nodeps
升级:# rpm -Uvh subversion-1.6.13-1.i386.rpm

或许还可以直接拷贝目录吧,然后配置一下,这不就是Linux嘛,我没有试过。希望有高手可以指点。

期间还遇到一个非常复杂的问题,就是安装的时候subversion-1.6是依赖sqlite-3.4以上的,但是我的linux使用的是sqlite-3.3,所以需要升级sqlite。
但是sqlite却删除不掉,因为很多东西依赖与他。

rpm -e sqlite-3.3.6-2
error: Failed dependencies:
libsqlite3.so.0()(64bit) is needed by (installed) rpm-4.4.2-47.el5.x86_64
libsqlite3.so.0()(64bit) is needed by (installed) rpm-libs-4.4.2-47.el5.x86_64
libsqlite3.so.0()(64bit) is needed by (installed) yum-metadata-parser-1.0-8.fc6.x86_64
libsqlite3.so.0()(64bit) is needed by (installed) python-sqlite-1.1.7-1.2.1.x86_64
libsqlite3.so.0()(64bit) is needed by (installed) apr-util-1.2.7-6.x86_64

结果我一火,将这个文件删掉了
rpm -e sqlite-3.3.6-2 –nodeps

这下完蛋了,出现了以下的错误:
error while loading shared libraries: libsqlite3.so.0: cannot open shared object file: No such file or directory
要安装sqlite,就需要rpm,而rpm又需要sqlite,死循环了。

解决办法是:
在windows中下载了sqlite-3.3.6-2.rpm ,解压出libsqlite3.so.0.8.6放在linux系统中
然后建一个链接:
ln -s /usr/lib/libsqlite3.so.0.8.6 /usr/lib/libsqlite3.so.0

这样再次安装sqlite就可以了。

安装samba-[学习笔记]

samba是Linux下的一个文件共享服务软件,属于必装软件。Linux命令这种东西真的需要记录,不想Windows,装过一遍,有点印象,下次一般都能搞定,真TMD的Linux。这些操作对懂的人来说应该是很简单的,权当学习笔记。
以下是RedHat和CentOS等的系统操作。
1、# yum -y install samba
使用yum命令安装samba,加入-y参数,如遇询问自动选择y,全自动下载并安装samba,此过程需要一点时间。如果是Ubuntu的话用apt-get。

2、# rpm -qa | grep samba
检查samba服务包的安装情况,会显示类似如下两个包:
samba-common-3.0.33-3.7.el5_3.1 //服务器和客户端均需要的文件
samba-3.0.33-3.7.el5_3.1 //服务器端文件

3、# whereis samba
由于是yum安装,可以用此命令查看samba安装位置,得到类似如下内容:
samba: /etc/samba /usr/lib/samba /usr/share/samba /usr/share/man/man7/samba.7.gz

4、# vi /etc/samba/smb.conf
根据步骤3得知smb.conf的位置,配置samba:
(1)[global] 找到全局设置标签,在下面进行配置
workgroup = MYGROUP 找到此行,改为workgroup = WORKGROUP,这里以 Windows XP 默认的“WORKGROUP”为例
(2)配置最简单访问目录几个基本属性:
[share] windows客户端查看时看到的文件夹名
path = /var/samba/share 共享目录位置,要系统中存在的目录,也可以配置完再创建
read only = no
public = yes
我在操作的时候觉得这些都没必要的。

5、给配置的共享目录设置权限:

mkdir /var/samba/share 如刚才配置的共享目录不存在则创建

chown -R nobody. /var/samba/share 设置共享目录归属为 nobody

chmod 777 /var/samba/share 将共享目录属性设置为 777

6、# smbpasswd -a username
将linux系统已存在用户 username(例)加入到 Samba 用户数据库,windows访问samba共享目录时需要输入此用户名和密码。
这步才是关键,加入这个用户之后好像会默认将这个用户的用户路径添加为共享目录。
New SMB password: 在此输入密码
Retype new SMB password: 重复密码

7、# service smb start
由于是yum安装可用此命令启动samba。

8、打开你的Windows,使用\IP就可以访问Linux的文件了。

恭喜!

无奈最近刚刚换了电脑,重装了系统,无图不能发。

博客迁移,组织未变

made-in-china
这可能是很简单的活儿,大师们肯定很不屑,但因为之前一直没干过,我想第一次,无论怎样,总是值得纪念的。

最早是从windows的主机迁移到Linux的,没其他的办法,只有FTP。
现在是从Linux迁移到Linux,那就很方便了。

首先老空间导出Mysql:
mysqldump -u 数据库用户名 -p 数据库名 > db.sql
然后打包所有的文件:
tar -czf backup.tar.gz *
然后新空间wget获取包:
wget -d 域名/backup.tar.gz backup.tar.gz
解包:
tar -xzvf backup.tar.gz
导入mysql数据库:
mysql -u 数据库用户名 -p 数据库名 < db.sql
访问OK之后就可以去切换你的域名A记录了。
据说用scp更加方便。

组织还是http://miao.in/,头目还是http://ooxx.me/,很不错,当然不仅仅是放博客了,年复一年!

innerHTML和cloneNode表现的很不好

有时候需要把表单里的元素复制出来,这里有两个方法,一是先去innerHTML,然后在innerHTML到其他的地方;二是cloneNode(true)出来到其他地方,但是这个两个方法在各个浏览器仅仅是对普通的表单的元素都是支持不完善的,甚至IE自己的系列都有变化。

以下是支持列表,yes表示会把值复制出来,no表示不会。其实还有包括表单元素的自定义属性,事件等也是各有千秋,我实在是懒得列举。


















































innerHTML IE6 IE7 IE8 FF Chrome
input[text] yes yes yes no no
input[checkbox] yes yes no no no
input[radio] yes yes no no no
select yes yes yes no no
textarea yes yes yes no no




















































cloneNode IE6 IE7 IE8 FF Chrome
input[text] yes yes yes yes yes
input[checkbox] no no no yes yes
input[radio] no no no yes yes
select no no no no no
textarea yes yes yes no no

解决上面的最保险的方法是对每一个元素类似这样:


var aClone = dClone.getElementsByTagName(‘SELECT’);
var aSelect = dSelect.getElementsByTagName(‘SELECT’);

if( aClone.length > 0 && aClone.length == aSelect.length ){
for( var i = 0, len = aClone.length; i < len; i++ ){
aClone[i].selectedIndex = aSelect[i].selectedIndex;
};
}
随即,附送美图一张:

点击小图看大图,这次outing最欢畅的就是住五星,很豪华很奢侈!