作者归档:wenbin

开放搜索草案简介

晚上小逛了下淘宝,犯了点职业病,按了 option + command + i
看了下代码,看到有条新的没见过的代码:


查了下资料,发现是一种微格式。
通过添加这段代码,可以让支持这种微格式的高级浏览器将网站的自定义的搜索方式加入到浏览器的搜索引擎列表中,如火狐浏览器是右上角的搜索框,
谷歌浏览器是添加进地址栏。
再来看看provider.xml里有什么:



    GB2312
    淘宝购物
    淘宝购物搜索 - 只有你想不到,没有你淘不到
    http://pics.taobao.com/favicon.ico
    

第一行为文旦类型和编码格式。这个不用说大家都懂的。
第二行包含了一个OpenSerarchDescription的开放搜索描述的标签,和一个命名空间
在有些网站里还看到有添加另外的 xmlns:moz="http://www.mozilla.org/2006/browser/search/" 命名空间,还没考证过这几个命名空间的具体用法
下面还定义了搜索字段的编码格式
短名称(别名?缩略名?)
描述及favicon和最重要的一条
搜索方式对应的Url
这里简单说下这个Url的用处,举个栗子吧:
你在自己的网站中添加好开放搜索的微格式,其中 url 部分如下:

http://www.google.com/search?q={searchTerms}+site%3example.com&hl=en"

那么如果有人用了你的网站给浏览器添加的搜索引擎搜索关键词,那么搜索界面页面将会是谷歌页面,搜索词为
关键词 site:example.com
也就是用谷歌搜索你站内对应的关键词。
基础的就这样,具体内容,有兴趣的同学可以自己看文档啦。
reference:
http://en.wikipedia.org/wiki/OpenSearch
http://www.opensearch.org/Home
http://www.opensearch.org/Specifications/OpenSearch/1.1/Draft_5
http://opensearchdescription-xml.mime-application.com/
http://www.xml.com/lpt/a/1708
http://stackoverflow.com/questions/10302629/suggest-add-the-search-engine-to-firefox-when-user-is-in-site
http://aaronparecki.com/articles/2011/07/11/1/how-to-let-google-power-opensearch-on-your-website

让国内那些主流的双核浏览器以急速模式请求你的网站

今天收到封网站页面在360浏览器下轻微变形的bug邮件。
嘿,网站在 webkit 下一点问题都没有,双核下出了问题,肯定是以 IE 的渲染模式运行了啊。
赶紧查了下,看看是不是有方法可以让自己的网站默认能以急速的方式运行。
看了下还是有很多人有同样地疑问的,从浏览器厂商的论坛上了解到,浏览器选择以哪种模式渲染网页基本是靠查询一个含有域名库的文件来实现的。
域名库由厂商人员手动维护。
这不坑爹啊,继续查。终于还是找到了个方法。
是360提供的:
在网页的head标签中添加下面这行一行代码:

    

content的取值为webkit, ie-comp, ie-stand之一,区分大小写,分别代表用webkit内核,IE兼容内核,IE标准内核。
如果页面需默认用极速核,增加标签:
如果页面需默认用ie兼容内核,增加标签:
如果页面需默认用ie标准内核,增加标签:
360 还希望这个 meta 标签能成为国内双核浏览器渲染模式选择的行内标准。
不管怎样,页面的问题解决啦。
等待设计师重新设计界面后再把出问题的地方重构一下。
reference:
http://se.360.cn/v6/help/meta.html

MySql server startup error ‘The server quit without updating PID file ‘

有些天没有开 mysql, 期间升级了 OSX 10.9 系统。
今天打开 mysql 爆了个 MySql server startup error ‘The server quit without updating PID file ‘ 错。
通过以下命令修复了:

sudo chown -R _mysql /usr/local/var/mysql

reference:
http://stackoverflow.com/questions/4963171/mysql-server-startup-error-the-server-quit-without-updating-pid-file

Homebrew安装老版本程序

Homebrew是OSX下最好的包管理工具了吧。可以很方便地查找和安装软件。
软件默认安装的基本都是最新版的软件,怎么安装老版本的软件呢。
很简单,以安装老版本svn为例:
1执行下面命令得到 svn 各版本对应的 git 命令

brew versions svn
1.8.3    git checkout 89853fa /usr/local/Library/Formula/subversion.rb
1.8.0    git checkout f56b641 /usr/local/Library/Formula/subversion.rb
1.8.1    git checkout 55577bb /usr/local/Library/Formula/subversion.rb
1.7.10   git checkout 0060dc3 /usr/local/Library/Formula/subversion.rb
1.7.9    git checkout b0e6223 /usr/local/Library/Formula/subversion.rb
1.7.8    git checkout f7a42d2 /usr/local/Library/Formula/subversion.rb
1.7.7    git checkout a6dcc41 /usr/local/Library/Formula/subversion.rb
1.7.6    git checkout 6b8d25f /usr/local/Library/Formula/subversion.rb
1.7.5    git checkout 5d5cd70 /usr/local/Library/Formula/subversion.rb
1.7.4    git checkout dc4245c /usr/local/Library/Formula/subversion.rb
1.7.3    git checkout eb97154 /usr/local/Library/Formula/subversion.rb
1.7.2    git checkout d89bf83 /usr/local/Library/Formula/subversion.rb
1.6.17   git checkout 6e2d550 /usr/local/Library/Formula/subversion.rb
1.6.16   git checkout 83ed494 /usr/local/Library/Formula/subversion.rb
1.6.15   git checkout 809a18a /usr/local/Library/Formula/subversion.rb
1.6.13   git checkout 7871a99 /usr/local/Library/Formula/subversion.rb
1.6.12   git checkout c99b3ac /usr/local/Library/Formula/subversion.rb
1.6.6    git checkout 8774131 /usr/local/Library/Formula/subversion.rb

2如果已经安装有新版svn程序,执行

brew unlink svn

没有的话跳过这步。
3执行1中得到的所需要版本 svn 对应的 git 命令,如要安装1.7.8版的svn

git checkout f7a42d2 /usr/local/Library/Formula/subversion.rb

4安装svn

brew install svn

就这样。

我使用的那些OSX效率软件

好像只要是有写博客和同时使用苹果电脑,另外有点空闲和有助人为乐的心的人都会写一篇介绍自己常用的效率软件的文章。
那么我也不能例外。不过我好像真的不是很闲,所以这里很多都只列一下软件名称,并不做太多的介绍,仅当记录一下吧。有兴趣的同学们可以自己去研究。
效率软件:
Time Sink: 记录软件使用时间
Alfred2: 神器,快速查找文件,打开程序等很多功能。必备程序。
Dash: 离线文档,代码管理等。
Bartender: 隐藏任务栏小图标。
BreakTime: 一定时间打断屏幕,提示休息。
Caffeine: 防止屏幕关闭,系统休眠。
Manico: 快速在运行的程序间切换。
Wunderlist: GTD, todo list.
Evernote: 笔记。
Dropbox: 同步盘。
Go2Shell: 从 finder 中快速打开 shell.
GoAgentX: 你懂的。
其他软件:
AppClearner: 软件卸载。
Google Chrome: 浏览器,习惯了。
diumoo: 豆瓣电台。
EuDic Free: 字典。你要是爱折腾的话,系统自带的字典也不错。
IntelliJ IDEA: IDE.
Vim: 必备程序。
iTerm: 必备程序。
Reeder: rss 订阅。
Sublime Text2: 快速编辑文本。
Sparrow: 邮件。
就这样吧。有好些都是收费软件,尽量支持正版吧。

一个来自一淘的简单面试题

interview etao

一个简单的面试题


很久前的yisi在微博上发的一淘面试题,整理文件的时候挖出来的。

比较简单的一道题目,考察点主要有负边距,position定位,z-index层级,layout等。
看代码:
dom结构:

    

考虑性能的话还要加上类名,通过tags来解析样式速度慢,因为这里不涉及到具体的业务,就不做处理了。
关于类名命名方式之类的,虽然也很重要,但这里也不说,非要说点什么的话,那就是和公司或者社区的尽量保持一致性。

css:

    ul {
      width: 150px;
      list-style-type: none;
    }
    ul li {
      float: left;
    }
    ul a {
      position: relative;
      float: left;
      margin: 0 -5px -5px 0;
      border: 5px solid blue;
      width: 40px;
      height: 40px;
      text-align: center;
      line-height: 40px;
    }
    ul a:hover {
      border-color: red;
      z-index: 99;
    }
    虽然效果写出来了,但是代码中其实还是有两处不清楚的地方,有人知道的话麻烦告知一下:

  • 1.用 list-style-type: none; 好,还是用 list-style: none; 好,都能达到效果,但是 list-style 里还包括了除type外的其他属性。不知道哪个性能好,或者有其他优势。这就像用 background 时一样,有人直接用background加个颜色,而有人用 background-color, 虽然写的时候没什么问题,但是重构的时候可能因为用了 background 而把其他叠加的 background 其他样式覆盖掉。但是这里的属性值是 none, 就不存在覆盖不覆盖的问题了。个人倾向于使用具体一点的list-style-type.
  • 2.list-style-type 或者 list-style 写在 ul 中还是写在 li 中好,在支付宝的前端 ui 框架爱丽丝中知道 ul 的list-style-type 是可以继承的,写在两个地方都能实现相同的效果。不知道哪种好。爱丽丝中是写在 ul,我个人也倾向于写在 ul 中,我喜欢能写在模块外层上的样式尽量写在外层。

这题目中还有很多可以写的地方,就不展开来讲了。
题目效果
update:
吃个饭回来,想到为毛这里用 ul 是语义化,于是改成用div了,dom结构瞬间简单了很多。
例子见:
题目效果2

maven 编译 NoSuchMethodError 错误解决方法

今天update了下项目,maven compile 时报了个错。
错误如下:

           
                org.apache.maven.plugins
                maven-compiler-plugin
                3.1
                
                    
                        org.codehaus.plexus
                        plexus-compiler-javac
                        2.2
                    
                
                
                    1.6
                    1.6
                    utf-8
                    true
                
            

当上面的

                    
                        org.codehaus.plexus
                        plexus-compiler-javac
                        2.2
                    

中的version版本太低,如1.8的时候会报一个错误:
java.lang.NoSuchMethodError: org.codehaus.plexus.compiler.CompilerError: method (Ljava/lang/String;ZIIIILjava/lang/String;)V not found
改成2.2就好了。
reference:
http://chaoslawful.iteye.com/blog/1829357

关闭 Mac OSX 开机声音

Mac 的开机声音还是有些烦人的,虽然不怎么开机。
用什么系统都喜欢把所有系统提示音设成静音,Mac 当然也不例外。
下面介绍几种关闭系统开机声音的方法:
1、软件:StartupSound.prefPane:http://www5e.biglobe.ne.jp/~arcana/StartupSound/index.en.html
2、执行静音:sudo nvram SystemAudioVolume=%80。执行恢复:sudo nvram -d SystemAudioVolume
3、重启或关机前将系统设为静音
4、开机迅速按静音键F10