Submitted by gouki on 2010, December 6, 9:15 AM
那天,看完了王建硕的一篇博客菠萝和筷子的故事,当然我不可能上升到他这样的高度,不过我也可以针对这个说 一下我自己的想法。
或者在上海的用户都会知道有篱笆网,曾经去过该网站的用户或者都知道,它的网站有多么的丑多么的丑,但并不妨碍他们赚钱有赢利。网站只是一个提供信息的平台,王建硕说[至于用户嘛?有了菠萝,他们自然会找到筷子的替代品的。]
所以,经过我慎重的考虑,我决定在我下一个自己的项目中,页面仅支持IE 系列的正常,其他平台的不作考虑了。我不是一个成熟的商业平台,自然不用去考虑那么多东西,否则在上面花费大量的精力实在不是一件好事。
不谈别的,就谈我自己的博客吧,因为我用的是量子统计,因此对于客户端分析的搜索时间跨度只有一个月,我把我最近一个月的数据贴出来(当然我的博客的IP/PV都不算太高,而且很多可能是技术人员。但即使这样):
操作系统:
浏览器:
好奇怪,看我的博客的人居然是Safari浏览器居多,奇了怪了,不过,即使是这样,IE678的份额还是占了50%,既然这样,在一些新项目中,我何必在乎那50%的人呢。说白了,不是开发人员,不是有MAC,有多少人会用safari?firefox?所以嘛。。。。
一家之谈,随便发发牢骚,就象一个同事的转贴:
Misc | 评论:4
| 阅读:14801
Submitted by gouki on 2010, December 5, 8:19 PM
以后,每逢周末就乱七八槽写点东西吧。精力有限,而无限制的转载其实意义也不是特别大,除了给自己做笔记外,其他的作用也真不是太大
1、来自yhustc的:微软亚洲研究院面经,因为我不知道Qzone非好友是否能够打开,如果不行,留言给我,我全文转载吧。这里转他的最后6点所谓的心得:
XML/HTML代码
- 微软的面试虽然累,但是收获还是非常丰富的。结合整个找工作的感受,总结几点:
- 1、有疑问要问面试官,除了一面的情况,三面那个float x的问题,我实在不知道怎么做,问面试官希望考察的重点是什么,人家跟我解释的过程其实答案也告诉你了。总比自己一个人沉默的想要好,一个题目不知道,咱们可以进入下一个嘛。
- 2、学过的跟计算机相关的课程,最好都复习一下,尤其是面微软这样的公司。其他公司因为时间受限,可能主要是面试算法题。但是微软有的是时间,一天时间四面,可以非常多的方面了,如果人家想的话。当然,正如二面的面试官说的,主要还是考察你思考问题的过程,背书式的出结果也没啥意思。最好学算法啥的都学通了,为什么要这么用,什么情况下适合用,不要吃快餐。
- 3、学习算法和编程知识的时候要触类旁通,多思考一些引申性的话题。比如一面那个排序用二叉搜索树来做,如果问你搜索树能不能排序,肯定说能,反过来问排序算法有哪些,估计很多人直接忽略了搜索树。再比如多线程加锁,各种情况下如何加锁更合适呢?现有的一些数据结构是否合适在多线程下操作呢?多思考一下,不管有没有结果,总比到了面试的时候再想要好得多。
- 4、实事求是,不隐瞒,多沟通。别的不说吧,就说现在的面试官以后可能是你的同事,你说要是面试过程中不实事求是,即使侥幸进入了,同事以后相处也是问题。一面最后有一个函数发生器的题目,跟四面最后一题一样,我看过类似的。我觉得没有必要隐瞒自己解题的思路,或者说故意假装想了很久,直接说我们先来思考一个别的题目吧,有点类似。进而讨论那个题目的时候,在面试官帮助下想想,能否借用已有知识解这个题。相信面试官也希望你是一个能触类旁通,容易沟通的人,而不是一个闷着头自己干的人。
- 5、每次面试不管成功与否,都应该总结经验;对于简历上的每项内容,都要准备好扩展内容,而不是简单罗列。总结经验改进不足,相信很多人知道。而扩展简历内容说的是什么呢?很多人列了项目经历,现在给你一个问题,介绍一下XX项目。你准备怎么回答?简历上只有摘要的条目,离面试要求查远了。所以一定要提前准备,项目做了什么,有何意义,应用场景,自己的工作,问题和收获,自己对项目的思考,这些都可以提前准备一下,然后面试的时候按照一个流程娓娓道来。
-
- 6、最后一个是本次找工作过程中的一个最大感受。相信很多人都会看很多书补充知识,但是书后面的题目,尤其是思考题,不知道有多少人做。编程之美上面每一章几乎都有拓展的思考题。我遇到过三次笔试或面试题目是这个思考题类似的。盛大和百度的笔试里面有,而因为我提前思考过,所以就直接做了。比当场想要好吧?腾讯的终面问了这么一个题目,搜索引擎如何区分伪原创。这个题目的精简版是根据关键字生成网页摘要,编程之美上面有。而页面相关,是这一章的思考题。当天中午我思考了一下,当天下午面试就遇到了比思考题更进一步的扩展。比面试当场想要好吧?并不一定是要压题,而是根据思考题发散思维,自己多想想有哪些解决方案,遇到类似问题不会那么仓促。
2、博客园的棍子上的萝卜推荐几本javascript与jquery的好书。前端用户可以看,话说那本PPK谈javascript我也有,确实感觉很简单。。然后作者在书中介绍了一个网址,有一些JS的参考手册哦:http://stephen830.javaeye.com/category/57459。
然后很奇怪的是发现这个域名居然是javaeye,然后又很奇怪的发现,它居然可以打开了,好奇怪的事情啊。。。关于它不能打开,robbin说的那句程序写的太好也是错啊,网上可以搜到这条信息的。
3、前两天,有人在博客园上批评了金山安全卫士的源码写的糟糕(金山安全卫士代码批评),其中有一段就是过多的if..else,认为用表驱动会效果和效率上都会好很多,当时文中还说了,如果不知道表驱动,那么就到google里搜索一下吧。(很多玩意儿果然只是一个名词,其实一说大家都懂)。于是这里有一篇简单的介绍和学习,可以参考一下:http://www.cnblogs.com/birdshover/archive/2010/12/02/1894703.html。
4、重构,重构,这句话,被大多数人都挂在嘴边,可是有多少人真正去做了?当晚上发现代码有问题,你第二天会去重构一下吗?一般来说,如果时间上很充分,我还是会去做这样的事情的,但你如果在一小公司,每天在不停的赶任务,你会去主动重构吗?或者会乘周末想办法重构?重构的好处是什么大家都懂,还有一本书叫《重构》,还有一个人在写《重构之美》,反正,随便折腾喽。。。
Tags: 招聘, 手册, 重构, 表驱动
Misc | 评论:0
| 阅读:15443
Submitted by gouki on 2010, December 4, 11:48 AM
在转这篇文章之前,我先说一点项目中遇到的问题,公司的主页最近改版上线,但是上线后出了一点问题,是CSS方面的问题。
CSS文件很多,前端把它分的很细,每一个小的widget部位就是一个单独的CSS文件,这样确实方便了有重复内容时的工作量减轻。于是我们在上线后,对CSS文件进行了合并,用的是Yii的插件 EclientScript(@hightman开发的一个插件)。CSS和JS都顺利合并了,但结果却不太正常。经过仔细检查发现是每个文件头的@charset=utf-8导致了这个问题。合并后,所有的文件内容都被引用到一起,所以造成了合并后的文件中“@charset=utf8”有好几个,但是为了保证文件是按utf-8格式被加载于是保留了最上面的@charset=utf8,其余的都删除了。OK,这时候所有的流量器都正常了。
结果第二天,老板过来说,在IPAD下不正常,于是继续排查,最终发现还是这个@charset=utf8的原因。前面说过,我们只保留了第一个文件的UTF8的判断,其他的都清空了,那为什么还会出错呢?经过测试,发现@charset=utf-8只能在第一行才有效,在其他行时,safari不认,而EClientScript在压缩文件后,会在文件第一行加上这个文件对应实际文件的地址,于是就让@charset=utf8到了第二行。所以IPAD上面显示就不太正常了。。
接下来就转载了:CSS通用元素选择器的都市流言,原文来自:http://shawphy.com/2010/11/css-universal-selector.html
本文尚未有测试数据支持,以下结论仅是根据现有情况的一种解释。
关于 * 这个选择器,一直有个疑惑,到底是否影响效率。在先前的观念中,这由于要匹配所有的元素,让每一个元素都带上这个属性,所以会影响页面的效率。但近来的思考,觉得这应该不会影响效率。为此还特地写过一篇博文,里边提到了这点:真的还需要reset.css么?
而这篇文章中我打算着重阐述为何 * 这个选择器不会影响效率。
上周六去参加了 web标准化交流会,席间 winter 从浏览器(webkit)的角度分享了关于页面渲染的过程。其PPT也可以在前面的链接中下载到。
其中一个很重要的过程是,当页面载入过程中,CSS 和 HTML 是并行下载的。并且通常CSS是在HEAD中引入的,并且体积不如HTML大,所以CSS会先下载完。下载的过程中浏览器就已经开始对CSS中的规则进行 索引,也就是已经确定哪一个元素呈现的样式是如何的了。同时,浏览器根据HTML构建出的DOM树,其中的每一个元素会直接去CSS规则索引中去比对,构 建出渲染树。这个过程都是并行的,并且CSS规则是进行了索引的,因此速度非常的快速。
那么我们看看CSS规则的来源主要有2个,一是浏览器内置的元素样式,Firefox 3.x版是放在目录下的res文件夹内,4.0版和Chrome中没找到(这里是我的主观臆断不太可靠,大家自行辨别),另一个就是页面提供的。根据查看 放在 res 文件夹下的 CSS 文件就可以得知,就是是什么样式都不写,已经为每一个HTML元素设定好了基本样式了。
那么看看我们所忌讳的事情,不用*{margin:0;padding:0},而是使用
CSS代码
- html, body, div, span, applet, object, iframe,
- h1, h2, h3, h4, h5, h6, p, blockquote, pre,
- a, abbr, acronym, address, big, cite, code,
- del, dfn, em, font, img, ins, kbd, q, s, samp,
- small, strike, strong, sub, sup, tt, var,
- b, u, i, center,
- dl, dt, dd, ol, ul, li,
- fieldset, form, label, legend,
- table, caption, tbody, tfoot, thead, tr, th, td {
- margin: 0;
- padding: 0;
- }
看看这一大坨东西啊,难道不是跟上面的 * 选择器一个用途么?对每个元素(至少是常用元素),添加样式。其实作用是一样的,并且就算没有这一坨,浏览器内置样式也在对每个元素设置样式。之后 HTML 文件中的每一个元素,可以很容易找到自己应当呈现的样式了。
那么,对于之后添加的,会不会有性能影响呢?也不会,由于CSS规则已经确定并索引了,所以今后增加的元素也不过就是简单比对一下而已,不会多走一步的。
所以,由此得出结论,只要有需要,大胆的使用 * 吧,他不会给你从性能上增加额外的麻烦。
最后补两个前端优化小知识:
1,由于CSS规则和HTML是并行载入的,因此把CSS放在HEAD中是非常有必要的。
2,少使用 :last-child 。因为这个选择器无法索引起来,必须等DOM构件完,才能知道他是不是父元素中最后的那个 元素。这种就非常慢了,慎用。
----EOF--
注:文中@charset=utf-8我格式可能写的不对,只是表达一个意思,因为我没有dreamwaver,而所说DW在写CSS的时候,默认会在第一行加上这个玩意。。。
Tags: css, charset, eclientscript, yii
PHP | 评论:0
| 阅读:17441
Submitted by gouki on 2010, December 3, 4:57 PM
勿庸置疑,都是COPY来的,当然,我自己也有一些小调整,都是在这些基础上进行改动的。
Ubuntu中默认使用的JAVA 为OpenJDK,对需要使用JAVA支持的软件 及网页来说,没有什么大的问题(当然也不是全部,不过就目前桌面使用来说我感觉已经够了)。只是对字体的支持与SUN JAVA(JRE、JDK)确不一样,网上也没有找到相关的资料(我英文不好),但目前来说还没有遇到说中文 字体显示为“口口口”的,只是出现过字体变的很“窄”或者说是“花字体”吧!
UBUNTU 9.10 在/usr/share/fonts/truetype/arphic/下提示了uming.ttc字体,用在JAVA的各种程序 中都感觉不错!但是对于使用TTC还是TTF的扩展名,各处说法不一,在我这使用TTF扩展名起作用。为了安全起见,sudo ln -s uming.ttc uming.ttf。好了,以上是前提!
解决 方法如下:
一、SUN JAVA的中文字体(显示为“口口”)
注:其中的路径及使用的字体可能不一样,根据需要改。如:感觉字体不好看,你可以换成别的。
cd /usr/lib/jvm/java-6-sun/jre/lib/fonts
sudo mkdir fallback
cd fallback
sudo ln -s /usr/share/fonts/truetype/arphic/uming.ttc .
sudo ln -s /usr/share/fonts/truetype/arphic/uming.ttc uming.ttf
二、OpenJDK的中文显示不正常(“窄”字或是“花”字)
1、网上找到的一些可能性:
字体配置文件 地址 :/usr/lib/jvm/java-1.6.0-openjdk/jre/lib/fontconfig.properties
文件中的字体路径可能有误!
2、我的使用的解决方法:
vim ~/.profile
在最后加入一行:
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'
新方法:(在网上新看到的,对Ubuntu 9.10的,没有使用过,这里只是记录一下,下次试试。感觉更简单)
转载下原文地址:http://hi.baidu.com/imto/blog/item /26f8bc88575a90b90f244429.html
今天在ubuntu 9.10下安装 jdk6,安装完成之后打开java应用程序,所有中文全部乱码,经过查阅资料,发现
ubuntu下的java中文字体文件名为uming.ttc,而不是通用的uming.ttf,解决方法就是为uming.ttc建一个软链接。
$cd /usr/share/fonts/truetype/arphic/
$sudo ln -s uming.ttc uming.ttf
mark之....
(注:sudo mkfontdir与sudo mkfontscale)
三、将默认的OpenJDK改为SUN JAVA (SUN JAVA的支持还是好些,如一些网页的JAVA应用及JAVA应用程序)
安装SUN JAVA后,UBUNTU 9.10使用的还是OpenJDK,所以如果要使系统 使用SUN JAVA还要进行相关的设置:
1、update-alternatives --config java,修改系统默认的JAVA,是使用OpenJDK还是SUN JAVA等
2、修改/usr/lib/jvm下default-java,我是把default-java指而了java-6-sun-1.6.0.15,原来的 default-java改名为default-java.openjdk以备以后需要时改再回来
3、设置系统环境变量 ~/.profile中最后加上:
# export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on' 原来OpenJDK使用的这句一定要注释掉
export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.15
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
重启就OK了!
---这篇来源于:http://forum.ubuntu.org.cn/viewtopic.php?t=272133
然后,这篇更详细,只是又偏长了一点
http://forum.ubuntu.org.cn/viewtopic.php?t=39742
今天突然想学学数据结构了,无奈手头只有讲Java数据结构的书,没有C版的,索性就配置个环境吧~
关于Java的基础知识,这里就不说了,大家可以去搜索一下,资料大大滴
首先我们来下载J2SDK 1.6(当然配置1.4和1.5原理都一样,大家根据喜好和需要去下载吧),给出地址:
https://sdlc6a.sun.com/ECom/EComActionS ... 2AF27F032F
(上面这个是JDK6的下载地址,进去点下Accept才可以下载哦~如果需要其他版本,可以去下面这个链接找找看,都可以找到的)
http://java.sun.com/javase/downloads/index.jsp
官方的链接,下载速度很快!
下载完后,我们就开始安装了。(我们假设下载后的文件名为jdk1.6.bin)
在命令行下打开其所在文件夹,打chmod u+x ./jdk1.6.bin
然后./jdk1.6.bin
看到协议,一直敲Down键或者Enter键(协议还挺长的)
最后看到
Do you agree to the above license terms? [yes or no]
寻问是否接受,当然是打y 回车拉~
然后就看到它解压缩
解压缩完后的默认文件名是jdk1.6.0
接着打
cp jdk1.6.0 /usr/
把它复制到usr目录里去
好了,到这里就只差配置环境了
export JAVA_HOME=/usr/jdk1.6.0
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
打vi .bashrc
进入用户环境变量配置界面中,把上面的三行加入到最后,ESC,:wq
保存并退出
这样JDK就算配置好了~
如果只是需要简单的学习,用不到IDE的话,加上VI就可以开工了
下面的也就可以跳过了,赶紧调个HelloWorld试试吧~
我们再来讲下NetBeans的配置
由于装的是JDK1.6,与其配套的是NetBeans5.5
首先需要去下载它
地址:
http://gceclub.sun.com.cn/TT/NetBeans55 ... -zh_CN.bin
这个可以只接在浏览器下载的
下载完毕后,还是先来改一下它的模式
在其目录打
chmod u+x ./netbeans-5_5-linux-zh_CN.bin
然后是./netbeans-5_5-linux-zh_CN.bin
开始准备(我装时候是说有错误提示的,不要理会,等一下就可以进入图形界面安装)
按操作安装就可以了,如果您系统有多个JRE,会有多个JDK版本让您选择(也可能是JRE)
这里就选我们刚才配置的/usr/JDK1.6.0
装好后,就可以到提示的路径去运行了
如果没有出现汉字乱码,到这也就结束了,如果是乱码,继续往下看:
出现乱码是因为JDK内的字体原因,我们去下载simsun.ttf这个字体
一样给出地址:
ftp://219.153.8.210/office2000/Windows/Fonts/SIMSUN.TTC
下载回来的是.ttc,把扩展名改成.ttf就可以了
进入刚才的JDK目录
在jre/lib/fonts新建一个目录fallback然后将simsun.ttf 拷贝到这里,在起动NetBeans就能看到我们熟悉的汉字了~
OK,配置完毕!
注:这篇文章我也发表在HIWEED的博客上
主要是为了使我们初学者在配置J2SE上少走一些弯路
高手跳过
Linux | 评论:0
| 阅读:18097
Submitted by gouki on 2010, December 2, 9:50 AM
有朋友在sinaapp上开了个项目,是快盘提取文件,支持任意后缀名,因为这样就可以方便用户转贴到任意勃客或者论坛之类的了
所以我也就写了一个类似的。。还没有做rewrite。。
可以尝试一下:
http://labs.neatstudio.com/115.php?code=t99f5a9181&type=
这个type可以是tel,cnc,union,udan,对应了电信,网通,联通,优蛋(优蛋只能生成链接并帮你触发点击)
如果网上啥数据也没有,那就只能生成U蛋链接喽。
想法创意来自:http://kill.sinaapp.com/
Tags: 115
PHP | 评论:1
| 阅读:15244