作者归档:Jacob Nie

优酷去广告

随着赢利压力,现在的视频提供商提供的显示的广告时间越来越长,挑战着用户忍耐的极限。以前新闻不放广告,而电影或电视剧也只是最多放15秒广告,尚可忍受。现在的情况突变,每个视频都有广告,连一段不到一分钟的新闻也要放10到15秒广告,最长的更大45秒,不过像优酷这样的互联网公司是没有极限的,如果没有明显的反馈,他还要进一步挑战用户的忍耐极限,不过我已经忍不下去了。

最新可用的屏蔽广告的方法,使用chrome或firefox安装OpenGG.Clean.Player,chrome安装方法如下:

  1. 下载脚本,脚本地址:http://tohours.com/download/120679.user.js 这个脚本是经过我修改过的,把其中的浮动提示栏也去掉了,装上跟你直接使用优酷没有任何区别
  2. 在地址栏输入:chrome://chrome/extensions/ 确保进入扩展程序,选中开发者模式,将下载的js拖动到此页面,点击添加按钮

image

其实此中的原理也比较简单,我们以前使用过很多方法,比如修改hosts,后来优酷学聪明了,凡是修改hosts的都会弹出一个黑屏的提示页面,一样要等待蛮长时间。后来有人就出主意禁用youku的cookie,禁用播放器的cookie,但随着youku的升级,这些方法基本上都失效了。现在的这种方法是将优酷的播放器还原到另外的一个版本,所以你会看到在刚打开优酷播放的时候会有一个替换播放器的操作

VBA处理数据

excel有很强大的数据统计功能,就连我数据库初始化数据都先转成excel形式,然后再ctrl + c, ctrl + v 贴进去,使用起来真是很方便。关于excel的书也非常的多,其中的大砖头也不少

但如果对excel不太熟悉的话,也会面对一些问题时束手无策。今天就遇到这样的一种情况,要合并数据,但合并的条件是以第一列的ID为准,也就是说第二列的数据会比较少。数据量比较大,10W以上,不可能纯手工。开始我想到导致数据库,再用程序处理,但后来一想这样做还要我去帮他处理剩下的数据,也不方便,于是就想用vba试试。其实VB是2004年学的,早就还给老师了

以下是写的代码,比较挫,边查边写

Sub export()
    Sheets("Sheet1").Select
    Dim cell_an, cell_bn, cell_a, cell_b
    cell_an = 1
    cell_bn = 1
    While Worksheets(1).Cells(cell_an, 1).Value <> ""
        cell_a = Worksheets(1).Cells(cell_an, 1).Value
        cell_b = Worksheets(1).Cells(cell_bn, 2).Value
       
        Worksheets(2).Cells(cell_an, 1).Value = cell_a
        If cell_a < cell_b Or cell_a > cell_b Then
            Worksheets(2).Cells(cell_an, 2).Value = 0
            Worksheets(2).Cells(cell_an, 3).Value = 0
            Worksheets(2).Cells(cell_an, 4).FormulaR1C1 = "=ABS(RC[-2]-RC[-1])"
            cell_an = cell_an + 1
        ElseIf cell_a = cell_b Then
            Worksheets(2).Cells(cell_an, 2).Value = Worksheets(1).Cells(cell_bn, 3).Value
            Worksheets(2).Cells(cell_an, 3).Value = Worksheets(1).Cells(cell_bn, 5).Value
            Worksheets(2).Cells(cell_an, 4).FormulaR1C1 = "=ABS(RC[-2]-RC[-1])"
            cell_an = cell_an + 1
            cell_bn = cell_bn + 1
        End If
       
    Wend
End Sub

git 同步整个工程时出错

git向bitbucket进行https同步时,如果工程比较大,会出现如下错误:

git  result=22, HTTP code = 502

出现错误的原因是由于本地http缓存太小的缘故,所以要重新设置一下参数,可执行如下命令。

git config http.postBuffer 5242880000
通过以下命令查询
git config –get http.postBuffer

如果直接使用git config http.postBuffer 则将postBuffer变量就置为空了,现在具体这个值太大了会不会对我们有影响,网上的资料也非常的少,只有一个stackoverflow有一两个这方面的讨论,地址是:http://stackoverflow.com/questions/2702731/git-fails-when-pushing-commit-to-github

Sublime Text 2和Eclipse快捷键总结(windows 7下测试通过)

 

使用快捷键可以节省很多时间,也能使开发显得更高端,以下我就Sublime Text 2常用且实用快捷键总结如下,当然,使用最多的ctrl + p 和ctrl + shift + p就不介绍了。

ctrl + shift + d 复制一行
ctrl + shift + 上下方向 交换上下行
ctrl + shift + k 删除一行
ctrl + x 剪切一行
ctrl + b 压缩js代码 (需要装YUI Compress包)

ctrl + k l 变小写
ctrl + k u变大写
ctrl + 回车 在下方插入一行
ctrl + shift + 回车 在上方插入一行
ctrl + alt + backspace 删除空白行

当然,除了使用Sublime做大部分编码外,由于工作需要,目前还不能放弃elcipse,下面也就其快捷键操作方式总结如下:

ctrl + shift + r 打开想要的文件
ctrl + shift + t 打开声明的变量
ctrl + shift + 回车 上面加一行
ctrl + shift + x 变大写
ctrl + shift + y 变小写
ctrl + alt + 下方向(或上方向) 复制选中的行
ctrl + alt + j 向下合并行
ctrl + 回车 下面加一行
ctrl + t 打开继承

alt + 上方向(或下方向) 交换上下行
alt + . 将sysout补全
alt + / 恢复提示
alt + shift + r 重命名
alt + shift + m 抽取本地方法
alt + shift + j 给函数添加doc注释

ctrl + . 跳转到下一个错误或警告
ctrl + , 跳转到上一个错误或警告
ctrl + 2 L 快速定义局部变量

apache 设置目录访问权限

本次使用的服务器环境是CentOS 6.2

需要明确的问题:

1、我们的apache服务在/etc/init.d/httpd中启动
2、我们的配置文件在/etc/httpd/conf/http.conf中
3、我们的网站目录在/var/www/html

 

一、配置http.conf

使用vim打开http.conf,找到

<Directory "/var/www/html">
        …
        AllowOverride None
        …
</Directory>

将AllowOverride None改为AllowOverride AuthConfig,然后:wq保存退出

二、配置.htaccess

使用vim新建文件.htaccess:vim /var/www/html/.htaccess,输入以下内容,然后保存退出

AuthName "need login"
AuthType Basic
AuthUserFile /var/www/html/.htpasswd
require valid-user

三、创建用户与密码

使用htpasswd命令创建用户名和密码文件

htpasswd -c /var/www/html/.htpasswd user

 

四、重启服务

service httpd restart 或者 /etc/init.d/httpd restart

 

然后访问看到要求输入用户名密码的登录框

image

如何使用正则配对查找html中的标签

找了好久,以下的可以使用:

/<script[^>]*>.*?<\/script>/ig

基于javascript的正则,如果使用其他标签可以将其中的”script”进行替换。

有几点需要说明的

1、*?表示非贪心模式,如果是贪心模式下,则会将div中的内容也会替换进去。

<script type=”text/javascritp”>
//code1 at here…
</script>

<div>some other tag</div>

<script type=”text/javascritp”>
//code2 at here…
</script>

2、”<\/script>”中的”\“不可少,不然也会出现错误,当然在js中,/是正则的分界符,但在notepad++中,这个符号也不可少,不知道,虽然正则书上只对以下字符规定了转义要求:

$()*+.?[\^{|

js 实现首行缩进

在html的样式控制里面,一直没有什么好的方法实现段落的首行缩进,下面是我使用正则实现段落首行缩进的代码:

html = " " + html;
html = html.replace(/<br[^>]*>/ig, "<br /> ");

很简单,只要将文中的br或都p前面增加两个中文全角空白字符就行了。

css的text-indent可以实现p中同样的效果,但在br中却不能实现缩进,而且在IE6下显示也有些问题,如果对于浏览器兼容性不高的话,可以选择这种方式,否则的话,上面增加两个全角空白是比较好的一种方式

总结的方式需要更详尽

我很少把一些东西写的很规律,因为我觉得这样做没有必要,我只需要自己能看懂自己写的东西就好了。这是一个错误的想法,至少写在博客上的东西不能这样的草率。

1、两种类型的写作:草稿型与正式型。草稿型的写作可以写在任何你自己能看到的地方,可以以任何形式来记录你想记录下来的知识与内容,只要你过后能够看的懂就可以了。草稿型没有任何的格式限制,它所要做的就是让你快速记录下来一些灵感,然后在后期总结并扩展你所得到的灵感。正式型,是对草稿型的补充,因为只有草稿型,你的知识内容还是杂乱无章的,也可能到处记录你的创意而不去总结它,如果那样的话,不用多长时间你就会忘记你记录的是什么内容,或许你还要为你记录的符号而迷惑不解,这个时候,我们要定期把我们草稿型的记录总结一下,看应该有那些创意点与知识点,哪些是需要扩展的,然后总结出步骤扩展出来,形成正式型的文档。这个时候就不能是马虎行事了,也不能够写只有自己才能懂的文字,只有自己才能懂的图片,而是需要你在完全忘记它以后也能通过这种记录的形式重新学习与接受。

2、我经常把草稿型的写作方式带入到博客。可以看出,我前期写的一些经验,虽然也都在自己的机器上成功创建,但没有相应的回退步骤,又不愿意再重新试验一下,只好马马虎虎的算过关,截几个自己未必看的懂的图形来充数罢了。这种情况大概只能算是草稿型创作,因为一个新人看到我的博客不能再根据所要求的步骤把我完成的内容重现,而很多地方我又没有更加详细的记录,只是一带而过,或许是我不知道,或许是我太熟悉,但不管怎么样,没有指出这其中的细节都是不对的。

3、正式型创作方式能激发自己的学习热情。我们完成一项新任务的时候,最盼望的是不要出现什么问题,其实要想真正的学到一些东西,出问题是必须经过的一个过程。如,我们在学习jqueryui的时候,看到别人给的示例已经能够达到我们的要求,于是我们直接把代码拷贝到我们自己的上面,对里面方法的参数也不求甚解,只知道这是一种能够实现这种类型样式的特定方法。于是下次我们想换个形式,把里面显示的英文变成中文的时候 ,我们还是需要再重新学习一遍这种控件的作用方法,当然在紧急的时候我们当然要这么干,但过后我们可以好好总结一下,下次使用的时候只需要翻看一下自己的正式型笔记就能很快的完成我们需要做的事情。在学习的过程中,由于我们记录时有很多问题需要写清楚,就逼着你去想这个东西到底是用来做什么的,修改它的参数后会出现什么样的效果,热情进一步的被打开,非常有利于我们的学习

这种东西记录下来以后,不但但能够为自己以后的学习与工作方便,更重要的是方便一些也在同样学习这些知识与内容的人,我已经开始了博客记录的征程,这是一个从无到有的过程,我当然也能把这个过程做的更好,达到一个从有到优的转变

hosts的问题

昨天困扰了我很久,为什么在我的win7上可以下载googlecode数据,而在MacOS上总是卡在git clone上。今天又尝试了在CentOS上做git clone,结果跟MacOS上是一样的效果。

于是我尝试了在这两台虚拟设备上访问googlecode,结果是可以访问的,我就不知道哪里出了问题。开始的时候我还以为是MacOS自带的git不好用,于是我又下载了一个最新的版本安装了一下,但结果依旧。直到今天在CentOS上又出现同样的事情,让我有些警觉

我尝试着去连git的ref head,结果不能打开,于是我大概知道了是什么原因,还是由于我win机器里面的google hosts会自动更新,而两个虚拟机却不能共享我这台机器的hosts造成的。于是把win的hosts文件拷贝两份给两台机器,一切解决。

但今天又出现了一个问题,我已经完成iphone demo的开发,想装在自己的iphone上,但根据网上生成ipa的方法,我始终差一步,就是不能被xcode搜索到我的机器。我不知道是不是由于我的MacOS在虚拟机中的缘故,其实说实话我们做IOS开发被Apple设置了重重障碍,不得不花费更大的精力在这种与开发无关的事情上,劳民伤财啊

安装MacOS X

1、需要的软件:

  • VMPlayer4.0.1
  • 引导工具darwin.iso
  • MacOS系统LeoSnow.iso

一般MacOS只有LeoSnow.dmg格式的安装程序,这样虚拟软件可能会出现认不出来系统光驱,如果是LeoSnow.dmg,那么还需要一款转换软件UltraISO.exe

2、接下来的流程请参照http://blog.csdn.net/zz457887107/article/details/6410411,注意,在建好虚拟机时,一定将guestOS改成darwin,如下图

b_large_D6Ja_1b750008f61a5c15

b_large_heyZ_1b750008f6775c15

3、这样启动时应该没什么问题了,我遇到的最大的难题是darwin已经引导,但就是找不到光驱的问题,一次次的弹出让重新确认,最后得到的原因是不认dmg格式,一定要转成iso格式才成。如果进入darwin菜单,选择h的话,会提示找不到引导文件,这个操作本身就是错的,因为你硬盘里面根本就没东西,这时候一定要按c能引导进去才能安装,其他一切都是白扯。反正我只遇到了格式不正确的问题,不知道还会不会出现其他问题

4、设置分辨率:

  • 打开终端,输入 sudo -s,取得root权限;
  • 输入 vi /Library/Preferences/SystemConfiguration/com.apple.Boot.plist,打开该文件;
    在<key>Timeout</key>
    <string>10</string>
    的下面添加如下两行:
    <key>Graphics Mode</key>
    <string>1680*1050*32@60</string>
    红色为分辨率,黄色为刷新率
  • 然后保存,退出
  • 重起。

5、安装切换输入法,这里有两点说明,一是如何打开终端:应用程序->实用工具->终端,终端有很多用处,很多命令跟lunux很像

image

第二就是如果设置输入法,系统偏好设置->语言与文本->输入源,就可以设置输入法了。切换输入法的方法是用win + backspace,其实这时的win键就跟apple的comman键是一样的功能了

image