支付宝面试总结(2009.10.12)

2009年10月12日 3 条评论

10号晚上的宣讲+笔试,笔试笔得一般,程序题做错了,没想到用递归,还有记得做错的是一道网络题,问会话层(Session)是OSI里的第几层,我忘了展示层(Presentation),于是选了第六层光荣的错了。 11号一早通知9点面试,我起床洗漱吃早饭,然后又接到一个电话说是12号早上9点,于是只好上床继续睡觉。 面试前打印了几份简历,进去咖啡馆之后填了表格就开始面了。中间省略过程数百字。。。直接开始总结几个答的不好的问题,因为一面就挂了。 Spring的事务有几种方式? 题目到现在也不是很明白,我觉得大概的解答应该是声明式事务处理的几种方式(1.0时代的parentTemplate、2.0时代的AOP代理和@Transational),另外加上编程式事务处理,直接上TransactionTemplate和PlatformTransactionManager。 Spring Bean加载有几种方式? 我回答了启动时加载,现在看来有点答非所问。加载bean默认为即时加载,另外也可以设置延迟加载。加载可以为单例、每次一个实例、request、session、global-session。 Spring Bean有几个设置属性? 我只想起来scope,应该想起来auto-wire, init-method, destroy-method一时都忘了。另外还有lazy-init,  factory-bean, factory-method。 Collections.sort()对参数的要求? 这个是最不应该答错的题目。我只想起来sort的集合必须实现List接口,却忘了最重要的sort的对象必须实现Comparable接口。 描述一个LRU的HashMap。 这题一开始楞没听明白,老想着HashMap不是链式连接冲突的entry的么,怎么会size不够。磨叽了半天,搞了一个堆出来计数,面试官也不满意。 后来想想其实用个链表把Entry链接起来就可以了,正好在网上搜到了使用LinkedHashMap实现LRU Cache的做法,在这里描述一下内部实现: 扩展HashMap.Entry,使Entry间使用双链表连起来; get的时候,把该Entry移到链表的尾部; put的时候,把Entry放到链表的头部; 如果规模超标,则把链表头部的Entry抛弃; 项目里使用的设计模式。 我拿了资源安排里,封装两种安排算法到两个实现同一个接口的类的例子,说这是策略模式,面试官有些不认同。后来回头想想,项目里还有其他的模式: Singleton,Facade自不必说; Strategy有一个更好的例子,使用PROBE的A、B、C、D四种方法进行时间和规模的估算。另外还有两个Factory来负责生成相应的计算方法实例。 Decorator模式,封装了MultiTenantSessionFactory,持有一个SessionFactory对象,也实现了SessionFactory接口。 大概就想起来这些问题。一开始的自我介绍忘记介绍做过的项目了,这可能是悲剧的来源吧。


Read more about "支付宝面试总结(2009.10.12)" ...
分类: 技术, 求职 标签:

悲剧啊,被HDChina删号了

2009年10月7日 没有评论

唉,暑假期间没有BT下载的条件,也就没访问HDChina,没想到还有这一条:“超过6周未访问本站删号”。积分没多少,不心疼,心疼的是这个号。。。这么好的资源,唉。。


Read more about "悲剧啊,被HDChina删号了" ...
分类: 未分类 标签:

使用正则表达式过滤不包含某子字符串的单词

2009年9月30日 1 条评论

昨天在学院版上看到有人发帖问,标题里的内容就是帖子里问题的核心。举个例子来说,就是给一堆单词,匹配所有不包含某字符串的单词。比如要求剔除aa,那么对于单词aab, abc, abca, abaac,就匹配abc, abca。 问题似乎很简单,但我从来没用过逆向匹配。有限状态自动机很容易就可以画出来,但怎么转化成正则表达式倒是忘得一干二净。最后google了半天,发现一个博客给出了正确答案(目前能想到的都验证通过):\b((?!aa)\w)+\b 这个表达式挺不好理解的。(?! pattern)是负向预查(negative look ahead),放在\w前面显然不是和\w进行组合。需要把表达式拆开来看,比如\b(?!aa)\w(?!aa)\w(?!aa)\w\b,这么来看就比较好理解了。首先不可以以aa开头,然后每个单个字符后都不能跟aa,直到结尾。这么就基本把aa给堵死了。 另外,如果支持negative look behind的话(Javascript不支持),应该也可以写作\b(\w(?<!aa))+\b。


Read more about "使用正则表达式过滤不包含某子字符串的单词" ...
分类: 技术 标签:

远程opensusue无法使用home, end

2009年9月23日 没有评论

用了opensusue当服务器两个月,碰到一个小麻烦的问题就是使用putty SSH登录上后,BASH里无法使用HOME和END进行行首和行尾的定位。原本以为是putty的问题(以前用的都是Secure Shell),今天正好想到这个问题google了一把,发现是opensusue的问题,参见这里。 我用的是opensusue10,配置文件都是/etc/inputrc,但行数有些不同,我的是90-91行,把下面的代码注掉就OK了: #”\e[1~”:       history-search-backward #”\e[4~”:       set-mark


Read more about "远程opensusue无法使用home, end" ...
分类: 技术 标签:

Tomcat启动地址解析错误

2009年9月16日 没有评论

贴log: SEVERE: Protocol handler pause failed java.net.UnknownHostException: NEOSTA: NEOSTA at java.net.InetAddress.getLocalHost(InetAddress.java:1474) at org.apache.jk.common.ChannelSocket.unLockSocket(ChannelSocket.java:484) at org.apache.jk.common.ChannelSocket.pause(ChannelSocket.java:283) at org.apache.jk.server.JkMain.pause(JkMain.java:681) at org.apache.jk.server.JkCoyoteHandler.pause(JkCoyoteHandler.java:153) at org.apache.catalina.connector.Connector.pause(Connector.java:1073) at org.apache.catalina.core.StandardService.stop(StandardService.java:563) at org.apache.catalina.core.StandardServer.stop(StandardServer.java:744) at org.apache.catalina.startup.Catalina.stop(Catalina.java:628) at org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalina.java:671) 关键词:UnknownHostException, JK 原因在google的第一个,虽然上面说的是AIX,但也适用于普通Linux:RHEL5原装的GCJ太山寨了,记得在启动tomcat前要指定JAVA_HOME。


Read more about "Tomcat启动地址解析错误" ...
分类: 技术 标签: ,

有意思的台湾国语

2009年9月11日 没有评论

上链接:台灣國語的語音特色 摘录一句客家国语,传说中的董月花: 董夜發,閉頁羞發,夜冷夜開發 少了 [u],可参见“狗蛋大兵”里的小学校长的演讲 我=偶、國語=狗以 有意思,很亲切。


Read more about "有意思的台湾国语" ...
分类: 未分类 标签:

一个人人(校内)应用的想法

2009年9月11日 1 条评论

一个星期前坐车时想到的。应用的功能很简单,就是帮助求职人群找到笔友、面友。 添加应用的用户可以创建一个活动,比如参加宣讲会、笔试、面试,并对这个活动添加评论(如笔经、面经)。其他人也可以添加评论形成互动。 搜索是一个比较重要的功能,相对于BBS上发帖寻同路人的行为,更有效率。 开发上,可以使用appspot进行部署,但appspot经常会被墙,或者是自己出了问题。自己Host的话要考虑流量和服务器的负载。 营收上可以在上面放adsense,虽然没几个钱。 只是个想法,暂时没什么时间实现,看这个周末有没有空搭一个架子出来。校内的文档很糟糕,支离破碎的。如果有人看到这个想法并打算尝试的话,自便。我也希望看到这个应用的上线。现在校内上关于求职的应用几乎没有。


Read more about "一个人人(校内)应用的想法" ...
分类: 技术, 求职 标签: ,

pubsubhubbub简介

2009年9月9日 4 条评论

Google最近发布了pubsubhubbub协议,看上去挺简单,倒解决了我多年来关于RSS的疑惑。本来我一直以为RSS订阅是有显示的更新提示机制的,在挖掘了一些文档和实现后,发现只是简单的poll,不由得为其效率担心。好在现在有很多在线订阅器,减少了部分流量,不然很难想象一般的小站怎么能撑得住大量用户的轮询。但这么poll下去也不是个办法,效率还是不行。Google发布的pubsubhubbub协议就是为了解决这个问题而提出的,是个20%工作时间的项目。 下面的简介翻译自项目主页。 (pubsubhubbub)是一个简单的、开放的、服务器对服务器的、基于web做hook(订阅)的发布/订阅协议,作为ATOM和RSS的扩展。 支持pubsubhubbub协议的服务器,在一个它们感兴趣的话题(feed URL)更新时,可以得到近乎实时的通知(通过webhook回调)。 协议大体上是这样: 一个feed URL(话题)在它的ATOM或者RSS的XML文件里,通过<link rel=”hub” … >声明它的hub服务器。服务器可能由发布者运营,也可能是一个所有人都能使用的社区hub(支持ATOM和RSS的feed)。(APPSPOT可能被墙,这里推荐另一个实现superfeedr) 订阅者(对某个话题感兴趣的服务器)一开始像往常那样取得话题的ATOM。如果在ATOM文件里声明了hub信息,订阅者就可以跳过痛苦的、重复的URL轮询,转而在feed的hub上注册并订阅该话题的更新。 订阅者在声明的hub上订阅话题的URL。 当发布者更新话题的URL时,发布者的应用会告诉hub说有一个更新。 hub得到更新的内容并把更新内容向该条目的订阅者进行广播。 协议本身是去中心化且自由的。没有任何公司处于控制的核心地位。任何人都可以运营一个hub、ping(发布)更新或者通过hub订阅更新。 作为起步,我们提供了一个hub的一个开源参考实现(协议中最难的部分),运行在GAE上,所有人都可以用(还要看某墙的脸色)。


Read more about "pubsubhubbub简介" ...
分类: Web, 技术 标签: , ,

IE add cache-control:no-cache to 302 redirect

2009年8月25日 没有评论

Recently I came across a tricky problem about browser caching. We are working on an SaaS web project and users are identified by login names. Homepage can be viewed after login and is cache by cache directives.  So if 2 accounts belong to different tenants log on the same computer without cache clearing, the second [...]


Read more about "IE add cache-control:no-cache to 302 redirect" ...
分类: Web, 技术 标签: ,

Why does dojo grid need a name column in the json data source

2009年8月25日 没有评论

I debug the problem for nearly half of this afternoon.  Here’s the description something who encountered the same problem wrote on stackoverflow: http://stackoverflow.com/questions/811596/why-does-dojo-grid-need-a-name-column-in-the-json-data-source/ In brief, if a json data source without a ‘name’ column is provided to a dojo grid, the grid won’t show the content but a row full with question marks. So I [...]


Read more about "Why does dojo grid need a name column in the json data source" ...
分类: Web, 技术 标签: ,

Warning: fsockopen() has been disabled for security reasons in /home/onlymars/public_html/wp/wp-includes/class-snoopy.php on line 1148