8月5号电话HR面

2010年8月5日 倪华杰 没有评论

SAP的HR真的很犀利。

问题的分析,反应都是我所不能及的。我很喜欢回头想自己受挫的经历,虽然helen说我这个习惯非常的不好,会打击到自己的信心。

1.你对我们的这个职位有什么了解么?

我知道balabala。。。可能对detail的东西就可能不是太了解。。。。后面是她的发挥时间,我只要仔细地听就好了

2.你至今才工作一年为什么又想到要出来尝试新的机会呢?(我当时就应该能够警觉的,用尝试新的机会这样的辞令的HR肯定不是好对付的)。

我列了2条,第一条是Edwin的离职,第二条是关于我们这边要从已有系统转到InfoSecs的ATG平台上去。

然后我说起,我11月份可能有机会去美国出差的机会,但是现在组内不稳定的情况下,连部门都开始不稳定的,实在无法让我淡定地去签下这一年的合同。

HR姐姐就说,那你有没有想过你在想这些未来的risk的时候,你有没有想过说你换工作的risk,可能我们这家团队在3个月以后就马上倒闭了,然后你需要去换组?你为什么在拥有这么好的出差机会的情况下还是要选择离开现在这家公司呢,这么好的机会你为什么不好好的珍惜呢?

之后我balabala的说了无数的废话,包括工作中的一些不顺利的情况,其实全部都是废话,都是站不住脚跟的借口。反而让HR姐姐找到了很多应用的场景来测试我的工作态度,反而让我本来就不怎么好的印象更加的坏。

其实我应该从公司能否在这种特殊情况下对于我的career path有足够的保证的角度去讲这个问题,然后从现有公司的担忧到对SAP的褒扬这条路子上来走,这样不仅不会产生特别大的误区也能够讨好对方(我知道会有人说我怎么能干这种事情,但是我没觉得有什么不对的)。

恩,恩,每一件事情,我们都希望通过失败来得到新的经验,以防止说在日后遇到同样的情况下,依旧是失败。

我也发现自己的应变能力确实很有问题,总是做这样的事后诸葛。希望能够在这方面锻炼自己,改善自己为死宅的特性。

分类: 工作体验 标签:

7月27号电面

2010年7月27日 倪华杰 没有评论

今天电面,很惨淡。让我觉得自己是不是真的已经锈掉了。

final、finally、finalize的区别。恩,finalize是不记得了,根本没用过啦,但是应该记得是跟GC有关系就好了。

final呢,大家都知道了,变量级别的,方法级别的跟class级别的。finally的问题倒是把我难住了,她问我说finally一般你都怎么用,我说释放资源的时候用,比如文件啊,数据库的connection啊。。。然后她说,file.close也会报错啊,你要怎么办。。。当时我就蒙了,啊,没想过。。。其实很简单,抛给上一级就可以了。。。

其次是问了我synchronized的用法,我实话说吧,很久没用了,也很久没看了,真的记不大住了。

简单的说就是synchronized方法,就是征对每个实例一个锁,synchronized变量就是对这个变量实例都是一个锁。这里特别要指出的是,synchronized变量的时候不要用一些静态的或者常量,这样会出现各种各样的诡异情况。之前我在CSDN上也见过这样的情况。

额外的还问了我sleep跟wait的区别,我就说sleep么就是睡过去了,线程还在握着CPU,但是wait就放出去。

听她的语气好像我说的不对,我就专门把source里的注释给拿了出来,大家都帮忙看下

这段是sleep下面的

* Causes the currently executing thread to sleep (cease execution)
* for the specified number of milliseconds plus the specified number
* of nanoseconds, subject to the precision and accuracy of system
* timers and schedulers. The thread does not lose ownership of any
* monitors.

这段是wait下面的

* Causes the current thread to wait until another thread invokes the
* {@link java.lang.Object#notify()} method or the
* {@link java.lang.Object#notifyAll()} method for this object.
* In other words, this method behaves exactly as if it simply
* performs the call <tt>wait(0)</tt>.
* <p>
* The current thread must own this object’s monitor. The thread
* releases ownership of this monitor and waits until another thread
* notifies threads waiting on this object’s monitor to wake up
* either through a call to the <code>notify</code> method or the
* <code>notifyAll</code> method. The thread then waits until it can
* re-obtain ownership of the monitor and resumes execution.

这里都提出了monitor的概念,但是我确实不是很清楚monitor是什么意思,在我的操作系统学习中,也确实没有学习到线程会有自己的monitor的概念。

===============================

关于这个职位,在之前,其实还有一个公司,劳务派遣提前问我问题。。问我字符串链接。

字符串嘛,java嘛,静态变量池嘛,大家都知道。所以大家推荐StringBuilder嘛。

我了个去,这家伙一口标准的外地话,跟我说哦,用StringBuffer啊。。。我就没用过这东西,我在1.5以后上来就用StringBuilder的,怎么可能用过StringBuffer。

然后问我说一段代码,多处使用StringBuffer会不会不同步,你在说什么啊,根本没提到线程,一段代码,从头到尾怎么会出现不同步,你胡说什么呢!我就说我不理解你在说什么,再说一遍。。。之后也没有出现任何新的解释,我就说,咱们之间是不是有misunderstanding,我说StringBuilder,你说StringBuffer,而且我也无法理解你的所谓的不同步现象。他就说,哦,你没用过是吧,哦,还有misunderstanding,然后很怪异的嘿嘿笑。

我知道你在嘲笑我,鄙视我,好像我就不知道还要装懂,特别的无知跟傻帽。

后来我就去查了下东西,发现说哦,原来他是想先问StringBuffer,然后说多线程操作时候,StringBuffer跟StringBuilder之间的区别就跟HashMap跟HashTable一样,存在是否能够保持线程同步。。没想到我第一步就说StringBuilder了,于是闹了笑话。

想到这里,我就不介意对方的鄙夷跟嘲笑了,我查漏补缺,发现原来还有一个不完善的实现在前面。而且真正装懂的人也不是我。

我倒是听欢迎这样的面试官的,我能够一次一次的看到自己的空缺,然后填补起来。

当然了,心情是影响的。。是很不开心的,但是这种人不会影响自己的自信心的。

就怕对面什么都问了,结果最后却什么response给你,就很泄气,感觉你全力出击,但是打到了棉花上一样让人觉得憋屈。

希望自己能找到好工作。

bless下自己

============================================

你看一开始写东西,就开始要说个没完了。

我一直觉得催我进步的只有2个东西,一个是受挫,一个是助人。

以前在CSDN上帮人看问题,找解决的方案,之后做性能测试,最终得到方案就让我很享受

之后找工作的时候,很多面试一家一家,从最早的支付宝笔的一塌糊涂,到之后能够应付除了SSH以外的所有java试题。进步之大,是自己没有想到的

也许我要重新把thinking in java,core java 1&2 都翻出来,重新看一遍。

SSH我始终不喜欢,倒是Lucene让我很有感觉,喜欢。准备把search那段开完,不过也要等手头的事情忙完,这个release 8月8号说要code freeze。

干吧。。加油加油加油。。。

又回到了自我否定与自我鼓励的精神状态

分类: 工作体验 标签:

归去来

2010年6月1日 倪华杰 1 条评论

上周末,请了2天假期,和大学室友去了趟安徽石台、牯牛降。

生在江岛之上对于山水总是有种不属于自己的情怀般地执着,看不厌的山水交错,看不厌的碧山压城城欲催,看不厌的山顶旖旎。 总说山有胸怀,说山有壮阔,都不虚,却也不真。

观山如读诗,诗读心,山阅性。

少年读诗,幼稚单纯,读字义,青年读诗时,已全忘诗词,读的都是自己的心境。

观山亦然。

山石如画,画的都不过是自己。山在这天地间,更在心间。人见山水,如见己心。

四日的行程,身体也不是很累,但是心却是十分的悠闲。

入世炼事,出世炼气。

好像不知道自己在说什么了。。哈哈

分类: 未分类, 琐事 标签: , ,

Oracle schedule job&& AQ/MQ

2010年5月18日 倪华杰 3 条评论

Since we use Oracle job queue to work on DB side, So I just do some study on it to figure it clear.

First we will calll dbms_job.submit to submit a job with parameters in this format

PROCEDURE Submit ( job    IN binary_ineger,——this is job id you can use in other Oracle related API

What   IN varchar2, —–procedure name which will actually do the job

next_date IN date, —– the date you expect the job to run.

interval  IN varchar2,

no_parse IN booean:=FALSE).

This will add the load of DB server but it will decrease the time for procedure calling waiting time. But this will make things more complex when you want return data from API calling. This is excellent for the procedures which will take long time to process and return values with low privilege.

But in our System, we use another thing to collect the information:AQ,MQ.

This is quite new for me after work.

we use dbms_aq to enqueue the process information including error messages or successful messages and Oracle Message gateway will connect Oracle AQ and IBM WebSphere MQ, so that our System written in Java can get things in this way.

And information for AQ or Oracle Message gateway

I don’t know much about Oracle, but I see Oracle just have JMS part why we don’t use it directly.I will read more materials to figure it out.

分类: 工作体验 标签: , , ,

Learning Lucene

2010年4月22日 倪华杰 没有评论

饿。。还是工作需要,需要学习Lucene。

通过原型学习,必须明确的一点是我们使用的Lucene版本是2.4.0的http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/document/Field.Index.html#ANALYZED

今天的第一个疑问就很奇怪,为什么一个Field技能是Field.Store.NO 又同时是Field.Index.NOT_ANALYZED的。

这里是我找到的答案:

If Field.Store is No, then it can not be in the search results to extract the data directly from the index field value, make null

也就是说,咱们能搜。。倒是搜出来以后直接结果中是没有该值。(这个有点操蛋啊)

相反的情况就是Field.Store.YES &Field.Index.NO 这个就是,你不能通过该值来搜索,但是通过别的关键字段给搜出该记录以后,这个字段对应的值是在直接结果里面的。。。

话说我对Document下面的这个Field的概念还是不是很清晰,It’s quite confusing.

明天有空继续研究。。。

突然发现现在设计最大的问题就在于多线程下如何避免IndexWriter的锁问题。。同时又有人提出IndexWriter可能存在的文件写效率问题。

之前有人提出希望对一个IndexWriter能够实现多次addDocument,一次optimize 来缓解IO的瓶颈。但是似乎在2.4的文档中间看到IndexWriter的addDocument实现中,会默认将前一个Document 进行optimize掉,以防止内存异常造成的损失。

挺纠结的

———-风骚线————————-

今天用反编译看了下lucene的文件,看到Document那段的时候发现原来是implements Serializable的,然后在每段document之后打个戳子>来表示分割。如果写没有技术含量的话,那search那段就应该有技术含量了吧。

哎,这样的方式,也难怪写效率不高了。

我很难理解他的搜索效率是如何实现的,虽然我不得不承认,我恨OO他们家的代码(自从代码进入了OO时代,就越来越难以用notepad来理解了)

IndexSearch内有IndexReader和subIndexReader,然后呢,数量级的遍历么?好吧,我是用反编译看的,我去官网上看源码去,既然是开源的。

分类: Lucene 标签: , , ,

吐槽在2010

2010年4月22日 倪华杰 没有评论

昨天在床上躺着看一本很扯淡的Oracle书(一本技术书如果能这么扯淡,我觉得肯定是论坛灌水王写的,想想貌似我没出过书,也就不想了),MM突 然拉我过去看一篇校内分享。。。12星座最佳妻子排行。。。

好吧,我承认,在看见标题的一瞬间我就知道里面讲的是什么。。。。另,我也确定 top 1是哪个星座。。。看咱们家那位那一脸的得瑟劲。。。

其次我要承认的是,本身我的数据库知识很白,但是看一本能让我觉得很扯淡的数 据库书,本身就让我很蛋疼,还偏要在这个时候拉我去看校内的这种分享,我实在是蛋疼到临界。。。于是我吐槽了。。

无论是神学也好,先知也 好,各种星座各种算命,关键之处不过是统计学跟语言游戏。用最宽泛的词汇套住最广大的人民群众,于是先知永远是睿智的,星座只需要12个就能够算准60亿 的广大人名群众(虽然我知道天朝的某些报纸也能很神奇地管住60亿人民群众)。你作为一个party人,不以坚定的唯物主义来武装自己,居然相信这种东 西。 是不是大多数人就跟泥菩萨说的一样的,不管什么言论,只要当时该言论是能够为自己服务的,就会被拿来当做为自己的坚强后盾,等到时机一过,就是一个坚定的 唯物主义的化身,马克思主义的第一拥护者。

我大呼什么是信仰!

后来早上的时候,我在twitter上吐了纯纯一把。。。

纯 纯如是说:

据说,女人的第一次通常会给这样三种人:流氓混混;文艺青年和帅哥。不过除了这三 种人,我暂时也想不出第四 种来,每个男人身上或多或少都沾附着这么些特质,不然凭什么把这美好如花如玉的身样和气质任他败坏呢。

我说:

知 道为什么先知智者总是对的么?知道为什么12星座理论统计60亿人众,还是这么多人相信么?原因在统计学 跟语言的艺术。。。流氓混混;文艺青年和帅哥你不觉得这三个名词完全是可以重合的么,他们从完全不同的方面去概括。。。职业、爱好和长相,何况定义都很泛 泛

从另一个角度上来讲,是不是每个人都可以把 自己身上的缺点归结为是在某一个历史时期由于外界的不良分子和自己的一时不能自控而沾染的混混习性;同时谁不是文艺青年,连凤姐都能前300年,后300 年的阅读人文社会类巨作;帅哥。。。好吧,我是一个从来都不说,也从未觉得自己帅气的人,但是我遇到无数在我看来跟我差不多但是自诩帅气非凡、帅冠古今 的。于是你别说女人的第一次都是栽在男人手上,你就是栽在女人手上,这样的言论也是站得住脚的。当然了,如果全都是自行车,那就很难站得住脚了。

其实我们应该这样说 世界上分2种人,一种是带喘气的,一种是不带喘气的。这是亘古不变的真理啊。。。

哎。。。真理教应运而生(貌似在日本当年被当做邪教给灭掉了,教主还是个老瞎眼的主张后宫的胖子)。

满目的废话,敢不敢再文艺一点。。。

分类: 吐槽文 标签:

SQL語句分組

2010年4月21日 倪华杰 没有评论

由於工作原因需要區分DDL與DML,以前沒有學習裹Oracle,所以沒有這個概念。

DDL(數據定義語言):模式對象處理(增刪改),特權,分析,審計,注釋(數據庫中的注釋/信息@_@)

DML:select,insert,update,delete.

分类: 未分类 标签:

script tool for work

2010年4月21日 倪华杰 没有评论

#!/usr/bin/perl
use 5.10.0;
my $file=shift;
my ($basepath,$filename);
if($file=~/(.*\/)(.*)/)
{
$basepath=$1;
$filename=$2;
}
else
{
say “you need to give me a full path\n”;
}
my $randomnum=rand(999999);
my $ran=sprintf(“%06d”,int($randomnum));
my $datestring;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
$datestring = sprintf(“%04d%02d%02d_%02d%02d%02d”,
$year+1900,$mon + 1, $mday,  $hour, $min, $sec);
my $file_name =”XML_”.$datestring.”_”.$ran.”.wff”;
my $cmd=”mv $file $basepath$file_name”;
`$cmd`;

分类: Perl 标签:

Summary for my First Project

2010年4月9日 倪华杰 没有评论

关于第一个项目本身,其实难度不是很大。

但是我可以说经历了整个软件工程中的几个经典问题。。。很遗憾的是,我就像是一个没有学习过软件工程的人一样,踏进了所有应该被避免的陷阱中。

source file中间出现的数据替代问题,本身就是一个潜在的问题。但是在和distributor协商的情况变成了一个隐性的risk。

但是在中期,PM要求加进另外一个distributor的时候,我居然没有重视这个隐性risk,同样也没有能够意识到这个risk已经摆脱了可以被忽略的情境,浮现出来的情况。

最终导致了该变动是在中后期才被裁掉,浪费了很多的时间跟精力,走在错误的纠结点上。而这一切本身都是可以通过一个engineer的分析而被避免的。很明显,我没有胜任作为Engineer的职责。。很是自责

也算是一个经验教训。。。铭记在心。

在之前10.2patch的时候友组一个没有default的代码push出来以后,在10.3patch时居然被无故rollback成早先的错误版本,导致了一些issue,所幸问题不大。同样是对自己的一个警戒。。

分类: 未分类 标签:

64 bit WIN7 VPN Client

2010年3月30日 倪华杰 没有评论

CISCO到现在为止还没有发布64位的VPN Client,以致于在家的时候VPN无法连接。

网上找到的软件是Shrew soft VPN Client的软件作为替代品,而且是免费软件,至于说安全问题什么的,我好像没有太多的研究,也就没有什么可以评论的了。

使用的方法也很简单,将已有的pcf文件使用import的方式导入。可能会发现找不到文件,因为Shrew 默认导入的是vpn文件,你可以改成导入pcf文件。

其实我想吐槽CISCO的网站。。。实在。。。想下个东西敢不敢再难点,一定要注册账号,有些下载明显是可以放开的,为什么不放开。不仅如此,英文版可能还好点,中文版的网站在注册时是有bug的,不管你如何去填你所在的城市都会告诉你是错误的,但是又没有一个示范,这不是强迫我装老外么。。。。

至于说为什么不出WIN7 64位的产品,我只能说,可能是基于大部分企业级用户依然坚持使用XP的原因吧。(你真能帮他们找理由啊)

另,根据我的经验,暂时还无法在WIN 7下正常使用IP PHONE,即便是试用Shrew VPN的情况下,Citrix的使用是稳定的,昨晚已经安全着陆了。

在WIN7下的各种问题让我很困惑,是否需要安装VM来解决。。。似乎内存不够,无力吐槽

分类: 未分类 标签: