手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2024年11月的文章

项目思考

那天,看完了王建硕的一篇博客菠萝和筷子的故事,当然我不可能上升到他这样的高度,不过我也可以针对这个说 一下我自己的想法。

或者在上海的用户都会知道有篱笆网,曾经去过该网站的用户或者都知道,它的网站有多么的丑多么的丑,但并不妨碍他们赚钱有赢利。网站只是一个提供信息的平台,王建硕说[至于用户嘛?有了菠萝,他们自然会找到筷子的替代品的。]

所以,经过我慎重的考虑,我决定在我下一个自己的项目中,页面仅支持IE 系列的正常,其他平台的不作考虑了。我不是一个成熟的商业平台,自然不用去考虑那么多东西,否则在上面花费大量的精力实在不是一件好事。

不谈别的,就谈我自己的博客吧,因为我用的是量子统计,因此对于客户端分析的搜索时间跨度只有一个月,我把我最近一个月的数据贴出来(当然我的博客的IP/PV都不算太高,而且很多可能是技术人员。但即使这样):

操作系统:

大小: 19 K
尺寸: 284 x 277
浏览: 1341 次
点击打开新窗口浏览全图

浏览器:

大小: 16.96 K
尺寸: 317 x 266
浏览: 1321 次
点击打开新窗口浏览全图

好奇怪,看我的博客的人居然是Safari浏览器居多,奇了怪了,不过,即使是这样,IE678的份额还是占了50%,既然这样,在一些新项目中,我何必在乎那50%的人呢。说白了,不是开发人员,不是有MAC,有多少人会用safari?firefox?所以嘛。。。。

一家之谈,随便发发牢骚,就象一个同事的转贴:

大小: 16.46 K
尺寸: 332 x 102
浏览: 1609 次
点击打开新窗口浏览全图

杂谈

以后,每逢周末就乱七八槽写点东西吧。精力有限,而无限制的转载其实意义也不是特别大,除了给自己做笔记外,其他的作用也真不是太大

1、来自yhustc的:微软亚洲研究院面经,因为我不知道Qzone非好友是否能够打开,如果不行,留言给我,我全文转载吧。这里转他的最后6点所谓的心得:

XML/HTML代码
  1. 微软的面试虽然累,但是收获还是非常丰富的。结合整个找工作的感受,总结几点:  
  2. 1、有疑问要问面试官,除了一面的情况,三面那个float x的问题,我实在不知道怎么做,问面试官希望考察的重点是什么,人家跟我解释的过程其实答案也告诉你了。总比自己一个人沉默的想要好,一个题目不知道,咱们可以进入下一个嘛。  
  3. 2、学过的跟计算机相关的课程,最好都复习一下,尤其是面微软这样的公司。其他公司因为时间受限,可能主要是面试算法题。但是微软有的是时间,一天时间四面,可以非常多的方面了,如果人家想的话。当然,正如二面的面试官说的,主要还是考察你思考问题的过程,背书式的出结果也没啥意思。最好学算法啥的都学通了,为什么要这么用,什么情况下适合用,不要吃快餐。  
  4. 3、学习算法和编程知识的时候要触类旁通,多思考一些引申性的话题。比如一面那个排序用二叉搜索树来做,如果问你搜索树能不能排序,肯定说能,反过来问排序算法有哪些,估计很多人直接忽略了搜索树。再比如多线程加锁,各种情况下如何加锁更合适呢?现有的一些数据结构是否合适在多线程下操作呢?多思考一下,不管有没有结果,总比到了面试的时候再想要好得多。  
  5. 4、实事求是,不隐瞒,多沟通。别的不说吧,就说现在的面试官以后可能是你的同事,你说要是面试过程中不实事求是,即使侥幸进入了,同事以后相处也是问题。一面最后有一个函数发生器的题目,跟四面最后一题一样,我看过类似的。我觉得没有必要隐瞒自己解题的思路,或者说故意假装想了很久,直接说我们先来思考一个别的题目吧,有点类似。进而讨论那个题目的时候,在面试官帮助下想想,能否借用已有知识解这个题。相信面试官也希望你是一个能触类旁通,容易沟通的人,而不是一个闷着头自己干的人。  
  6. 5、每次面试不管成功与否,都应该总结经验;对于简历上的每项内容,都要准备好扩展内容,而不是简单罗列。总结经验改进不足,相信很多人知道。而扩展简历内容说的是什么呢?很多人列了项目经历,现在给你一个问题,介绍一下XX项目。你准备怎么回答?简历上只有摘要的条目,离面试要求查远了。所以一定要提前准备,项目做了什么,有何意义,应用场景,自己的工作,问题和收获,自己对项目的思考,这些都可以提前准备一下,然后面试的时候按照一个流程娓娓道来。  
  7.   
  8. 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: 招聘, 手册, 重构, 表驱动

走走停停看看的:CSS通用元素选择器的都市流言

在转这篇文章之前,我先说一点项目中遇到的问题,公司的主页最近改版上线,但是上线后出了一点问题,是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代码
  1. html, body, div, span, applet, object, iframe,  
  2. h1, h2, h3, h4, h5, h6, p, blockquote, pre,  
  3. a, abbr, acronym, address, big, cite, code,  
  4. del, dfn, em, font, img, ins, kbd, q, s, samp,  
  5. small, strike, strong, sub, sup, tt, var,  
  6. b, u, i, center,  
  7. dl, dt, dd, ol, ul, li,  
  8. fieldset, form, label, legend,  
  9. table, caption, tbody, tfoot, thead, tr, th, td {  
  10.     margin: 0;  
  11.     padding: 0;  
  12. }  

看看这一大坨东西啊,难道不是跟上面的 * 选择器一个用途么?对每个元素(至少是常用元素),添加样式。其实作用是一样的,并且就算没有这一坨,浏览器内置样式也在对每个元素设置样式。之后 HTML 文件中的每一个元素,可以很容易找到自己应当呈现的样式了。

那么,对于之后添加的,会不会有性能影响呢?也不会,由于CSS规则已经确定并索引了,所以今后增加的元素也不过就是简单比对一下而已,不会多走一步的。

所以,由此得出结论,只要有需要,大胆的使用 * 吧,他不会给你从性能上增加额外的麻烦。

最后补两个前端优化小知识:
1,由于CSS规则和HTML是并行载入的,因此把CSS放在HEAD中是非常有必要的。
2,少使用 :last-child 。因为这个选择器无法索引起来,必须等DOM构件完,才能知道他是不是父元素中最后的那个 元素。这种就非常慢了,慎用。

 

----EOF--

注:文中@charset=utf-8我格式可能写的不对,只是表达一个意思,因为我没有dreamwaver,而所说DW在写CSS的时候,默认会在第一行加上这个玩意。。。

 

Tags: css, charset, eclientscript, yii

Ubuntu下Netbeans中文字体显示很淡解决方法

勿庸置疑,都是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上少走一些弯路
高手跳过

115快盘

有朋友在sinaapp上开了个项目,是快盘提取文件,支持任意后缀名,因为这样就可以方便用户转贴到任意勃客或者论坛之类的了

所以我也就写了一个类似的。。还没有做rewrite。。

可以尝试一下:

http://labs.neatstudio.com/115.php?code=t99f5a9181&type=

这个type可以是tel,cnc,union,udan,对应了电信,网通,联通,优蛋(优蛋只能生成链接并帮你触发点击)

如果网上啥数据也没有,那就只能生成U蛋链接喽。

想法创意来自:http://kill.sinaapp.com/

 

Tags: 115