ithans

Float on the sea

Five-safari-chrome-shortcuts

键盘流都喜欢用快捷键,浏览器当然也不例外。

以下是chomium系列的快捷键,windows下,把command替换成Ctrl

command+L 前往URL地址栏,填写新的网址或进行搜索

command+T 开启新的浏览器标签页

command+W 关闭当前标签页

command+R 刷新当前标签页

command+. 停止载入当前标签页

iframe-size-not-work-in-IOS

最近遇到一个问题,就是iFrame在iPad上展示的时候,宽度并没有固定,会直接超出,通过嵌套div之后,无法滚动。

HTML

1
2
3
4
5
<div class="frame_holder">
  <iframe class="my_frame">
    // The content
  </iframe>
</div>

CSS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
body {
  position: relative;
  background: #f0f0f0;
}

.frame_holder {
  position: absolute;
  top: 50px;
  bottom: 50px;
  left: 50px;
  right: 50px;
  background: #ffffff;
}

.my_frame {
  width: 100%;
  height: 100%;
  border: 1px solid #e0e0e0;
}

例子:

http://jsfiddle.net/R3PKB/2/

可以在你的iPad上去看看这个页面

http://jsfiddle.net/R3PKB/2/embedded/result

解决方案是:

在外层的div上添加overflow:auto-webkit-overflow-scrolling:touch就可以了。

http://jsfiddle.net/R3PKB/7/

参考链接:

Zsh下rake New_post[“title”] 报错的问题

1
2
rake new_post["title"]
zsh: no matches found: new_post[title]

zsh中使用rake new_post的时候抛出找不到匹配的异常,原因是

zsh官方文档中有这样的说明:

If a word contains an unquoted instance of one of the characters ‘*’, ‘(’, ‘|’, ‘<’, ‘[’, or ‘?’, it is regarded as a pattern for filename generation, unless the GLOB option is unset. If the EXTENDED_GLOB option is set, the ‘^’ and ‘#’ characters also denote a pattern; otherwise they are not treated specially by the shell.

所以,解决方案就是通过加上noglob去取消通配符匹配

1
2
alias rake="noglob rake"
source ~/.zshrc

周末有感

今天晚上跟女朋友去UME看了《速度与激情6》,很精彩。(那边的饮料真是坑,12块钱一瓶)

回来的路上,两人谈论起我喜欢的美国大片和她喜欢的感情戏。结果是,我觉得她说的话还是比较有道理的,她是这么说的:

我看的电视剧改变了我很多,一些人生观价值观的东西,人生并不是为了一个目标而或者,并不是说,你赚到一个亿的时候才是你开心的时候,其他的时间都不开心,就算你真的赚到你一个亿了,你还是失去了之前的快乐。无论我们工作、学习,都是为了更加快乐的生活。

“人生得意须尽欢,莫使金樽空对月”,再回想之前外包转正面试失败这件事情,其实未必也不是件好事,这次面试,认识了很多新的东西,知道自己有很多不足的地方,得到了一些前辈的指点,收获很大。结果,有时候往往是顺路而来的。

今天凌晨看了《精忠岳飞》的63,64集,岳飞征战一身,最后还是因为皇帝的疑心和嫉妒以及秦桧的谗言,白白葬送了十余年的胜利。《满江红·怒发冲冠》中有一句“莫等闲,白了少年头,空悲切”,很喜欢,也很心痛。


伊泽
2013-07-28于杭州

Javascript 折半搜索法(二分法)

周末,写个简单的算法。

JS二分法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Array.prototype.binarySearch = function (v) {

  var l = 0;
  var h = this.length - 1;

  while (l<= h) {
      var m = l + ((h - l) >> 1);
      console.log('l@%s,h@%s,m@%s', l, h, m);
      if (this[m] === v) {
          return m;
      }
      if (this[m] > v) {
          h = m - 1;
      } else {
          l = m + 1;
      }
  }

  return -(l + 1);
}

使用:

1
2
3
4
5
6
7
var arr = [1, 2, 3, 5, 78, 2312, 424];

arr.sort(function (x, y) {
  return x - y;
})
console.log(arr);
console.log(arr.binarySearch(424));

说明:

var m = l + ((h - l) >> 1);,为什么要用位运算?

其实用var m = Math.floor((h+l)/2);也是可以的,但是位运算的速度优于除法,并且还要再进行一次Math.floor。用位运算主要是出于性能考虑。h+l还存在溢出的问题,不过这个在web端应该不会遇到。。。Node.js就有可能了。

还有个复杂度的问题,下回再分析。


伊泽
2013-07-29于杭州