Linhao's profilelinhaoxuPhotosBlogLists Tools Help

linhaoxu

日高日上,日上日妍

Linhao Xu

Occupation
Location
Photo 1 of 6
No list items have been added yet.
September 23

招聘有感

      昨天去国展招聘,累个半死,气个半死。由于是奥运会后第一个大型招聘会,所以聚集了很多的求职者。基本上以应届毕业生为主。由于我们事业部的招聘量最大,所以绝大多数的简历都堆到我这里,前面也排了一队等着初面的人。看到一张张渴望的稚嫩的脸,我也希望充分的给每个人表现的机会,尽量多的去和他们交流。上午还能保持耐心,到了下午实在不能忍受,脾气也变得坏起来。几个简单的例子:

      1.一个”软件测试技术”毕业的人(不知道还有这么一个专业),投我们的测试。我问他:“测试的基本流程是什么?” 答:“黑盒测试和白盒测试。” 继续问:“学习中了解过什么测试工具?” 答:“我忘记了。”  md,学了4年的测试居然回答成这个样子,任何一个有正常反应的人都不会很平静吧。

      2.一大堆学计算机的、软件的以及通信的毕业生,很多还是北航北理的研究生,居然来投我们的计算机管理员和技术支持。这些都是装机器,装系统等基础的活。我问为什么不投研发,几乎所有的回答都是“对研发不感兴趣,感觉自己更适合计算机管理,并且在学校里做过很多这种工作”,我K,学了这么多年才觉得自己不感兴趣?还是上学的时候就装过电脑装过系统?

      3.一个从国外留学回来的研究生,简历写得很漂亮,做过N多很牛的系统。居然投我们的技术支持。我说你做过那么多的东西还投技术支持,完全可以做高级研发工程师了。他说对技术支持感兴趣。接着我问了几个他做过项目中的技术细节问题,基本驴唇不对马嘴。大哥,别浪费我们的时间了,估计又是一个花着父母的钱到国外旅游了N年的LJ。

。。。。

      感觉90%以上的都是这样子的,基本上都不符合我们的需求。现在的大学生都怎么了?一个个衣着光鲜,说话滔滔不绝,自信心超级强,可就是没什么能力。学校难道不应该因为产出了这么多不合格的产品负责吗?一方面是毕业生抱怨找工作难,另一方面是企业抱怨招人难。这个强调个性的时代造就了太多个性十足但不满足基本质量的零件或产品了。

      不过话说回来,这次面试中还是挑中了几个个比较满意的。其中一个是山大的大四学生,还没毕业,对Windows的编程已经很熟悉了,而且做过很多的外包项目。这种人企业当然喜欢,呵呵。还有一个是毕业一年的,踏踏实实的做了几个小项目,人比较质朴,也愿意好好工作的那种。这也是让企业,至少是我自己比较喜欢的类型。

      以后这种招聘的事还是少去,劳心劳力还使自己变得更愤青。

September 17

Silverlight研究之 在Isolated Storage中存储BitmapImage

      这几天继续拾起SL来进行Web监控平台的技术探索。基本上摸索的差不多了,下面将分几篇来将其中的一些技术记录下来,也算跟跟风。

      所谓Isolated Storage就是Silverlight中的安全沙箱。为了保证Sliverlight的安全,同时为了一些应用能够做简单的本地存储,所以也就加了进来,就像Applet。不过其实Isolated Storage其实是将文件转移存储到了LocalSettings中的Application Data中了。其实如果SL不提供这个功能我也会采用类似的技术来化解大量地图数据传输所带来的网络压力。话题扯远点,目前要做的Web Gis系统为了提高传输效率拟采用3个技术:1>压缩传输;2>本地存储;3>Zooming。压缩传输比较简单,准备采用rar方式。下面就专门介绍用SL的IS来进行图片的本地存储了。代码贴如下:

public void OnPageLoaded(object sender, RoutedEventArgs e)
        {

            client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(OnProgressChanged);
            client.OpenReadCompleted += new OpenReadCompletedEventHandler(OpenReadCompleted);
        }

public void OnProgressChanged(object sender, DownloadProgressChangedEventArgs e)
        {
            tb.Text = String.Format("Progress of {0}%", e.ProgressPercentage);
        }

public void OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
       {

           using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
           {

               Int64 spaceToAdd = e.Result.Length;
               Int64 curAvail = isoStore.AvailableFreeSpace;
               if (curAvail < spaceToAdd)
               {
                   if (!isoStore.IncreaseQuotaTo(isoStore.Quota + spaceToAdd))
                   {
                       throw new Exception("Can't store the image.");
                   }
               }
               if(!isoStore.DirectoryExists("img"))
               {
                   isoStore.CreateDirectory("img");
               }

               string filePath = System.IO.Path.Combine("img", string.Format("{0}.jpg", picName));
               using (IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream(filePath, FileMode.Create, isoStore))
               {                  
                   byte[] content = new byte[e.Result.Length];
                   e.Result.Read(content, 0, content.Length);
                   isoStream.Write(content, 0, content.Length);
                   isoStream.Flush();
                }
           }
      }

private void btnTest_Click(object sender, RoutedEventArgs e)
{
    if(e != null)
    {
        picName = 0;
    }

    string filePath = System.IO.Path.Combine("img", string.Format("{0}.jpg", picName));
    using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
    {
        if (picName == 3)
        {
            return;
        }
        using (IsolatedStorageFileStream isoStream = isoStore.OpenFile(filePath, FileMode.Open))
        {
            BitmapImage bmp = new BitmapImage();
            bmp.SetSource(isoStream);
            Pic.Source = bmp;
         }
    }
    picName++;
    btnTest_Click(this, null);

}
August 26

健身中。。。

      自从年初体检情况堪忧之后,想了各种方式来锻炼,不过不是时间不凑巧就是提不起兴趣。借着奥运的东风和菲尔普斯强大的号召力以及舟山群岛美丽的海滩,还是提起了我对游泳的兴趣。回到北京正好利用好几个月前办的健身卡进行游泳训练。总体算来这个夏天游泳超过了20次,效果很明显:从一开始游20米就得休息很长时间到现在可以不间断的游下去(自由泳结合蛙泳),从一开始只凭借小时候在老家小河及水塘中学会的类狗刨蛙泳到现在熟练掌握了自由泳,正在迈向蝶泳,呵呵看来我在游泳上的潜质还是很不错的。

      上周末也买了一套旱冰鞋,希望好好利用小区里宽阔平坦的马路,溜了几次感觉很累,也负了些小伤,坚持下去总会慢慢学会的。今天利用休假的机会大中午在小区里练习,正好碰见一个打扫卫生的阿姨(河南郑州人),居然说他们那里前几天有一个溜旱冰的摔残了。我K,当着我这新手的面说这些,真是扫兴。不过这点小事也挡不住咱锻炼身体的决心,还是坚持溜了一个小时才结束。

      健身贵在坚持,目的当然是强健体魄使自己有更多的精力和体力投入到事业生活中去,顺便也减减肥。希望有共同爱好的xdjm们多交流心得吧。

July 27

二上普陀山

     这次接着前台开发的机会,周末带大家去了一次普陀山。这已经是第二次上普陀山了,相对与第一次的匆匆,这次准备充分,也看了很多的地方。一路有说有笑,很是惬意。正如陈老大所说出来玩最重要还是要看心境。一路上自然对佛的讨论最多,大家都是坚定的“马克思主义者”,对佛的认识都不太深刻,自然调侃居多。不过还是心存敬畏之心,必经到了人家的地盘上了。这次除了登上最高顶之外最大的乐趣就是到百步沙游泳,这里的海水比三亚的要差很多,往深处游去会感觉到一股股冷的海水窜到身边,深怕会抽筋也就没有多逞能。游过泳之后再爬山还是很累的,基本上走一段就得歇个三五分钟。

S8000393

S8000395

July 22

两年后重聚

      趁着超妹子回德国之前,几个交大的沧州同乡有机会重聚了。整整两年过去了,大家好像还是原来的样子,呵呵。阿哲与波波专门从上海赶来。最意想不到的是石头在北大读了1年了我才知道,不过以后有的时间聚。正好阿哲暑期也在北京实习,看来对于河北人来说北京的吸引力要远大于上海呀。

IMG_5772

July 01

北斗卫星导航系统简介

从事北斗2年的时间了,不写点儿东西都觉得对不住自己了,呵呵。近几年北斗卫星导航系统(北斗一号)的应用得到了很大的发展,无论是军用还是民用,最为大家所熟知的就是前一阶段的抗震救灾中的应用...

1简介:

      北斗卫星导航系统是由中国建立的区域导航定位系统。该系统由三颗(两颗工作卫卫星发射星、一颗备用卫星)北斗定位卫星(北斗一号)、地面控制中心为主的地面部份、北斗用户终端三部分组成。北斗定位系统可向用户提供全天候、二十四小时的即时定位服务,授时精度可达100ns(单向授时)和20ns(双向授时),其定位精度与GPS相当(有点吹牛,也取决与各种外部条件)。北斗一号导航定位卫星由中国空间技术研究院研究制造,目前已经发射了4个卫星,发射时间为:2000年10月31日;2000年12月21日;2003年5月25日,2007年2月2日。

      北斗卫星导航系统采用三球交汇的原理进行定位,服务区域为中国及周边国家和地区(70°~145°(E) ,5°~55°(N)),它可以在服务区域内任何时间、任何地点,为用户确定其所在的位置信息 ,同时提供双向短报文通信和精密授时服务。

覆盖范围

      北斗一号卫星定位系统的英文简称为BD,在ITU(国际电信联合会)登记的无线电频段为L波段(发射)和S波段(接收)。  北斗二代卫星定位系统的英文为Compass(即指南针),在ITU登记的无线电频段为L波段。
      北斗一号系统的基本功能包括:定位、通信(短消息)和授时。

2定位原理:三球交汇

      北斗一号卫星定位系统采用三球交汇的定位原理,具体如右图所示。系统的工作过程是:首先由中心控制系统向卫星1和卫星2同时发送询问信号,经卫星转发器向服务区内的用户广播。用户响应其中一颗卫星的询问信号,并同时向两颗卫星发送响应信号,经卫星转发回中心控制系统。中心控制系统接收并解调用户发来的信号,然后根据用的申请服务内容进行相应的数据处理。 对定位申请,中心控制系统测出两个时间延迟:即从中心控制系统发出询问信号,经某一颗卫星转发到达用户,用户发出定位响应信号,经同一颗卫星转发回中心控制系统的延迟;和从中心控制发出询问信号,经上述同一卫星到达用户,用户发出响应信号,经另一颗卫星转发回中心控制系统的延迟。由于中心控制系统和两颗卫星的位置均是已知的,因此由上面两个延迟量可以算出用户到第一颗卫星的距离,以及用户到两颗卫星距离之和,从而知道用户处于一个以第一颗卫星为球心的一个球面,和以两颗卫星为焦点的椭球面之间的交线上。另外中心控制系统从存储在计算机内的数字化地形图查寻到用户高程值,又可知道用户出于某一与地球基准椭球面平行的椭球面上。从而中心控制系统可最终计算出用户所在点的三维坐标,这个坐标经加密由出站信号发送给用户。

3五大优势

1>同时具备定位与通讯功能,无需其他通讯系统支持;

2>覆盖中国及周边国家和地区,24小时全天候服务,无通讯盲区;

3>特别适合集团用户大范围监控与管理应用和数据采集用户数据传输应用;

4>融合北斗导航定位系统和卫星增强系统两大资源,提供更丰富的增值服务;

5>自主系统,高强度加密设计,安全、可靠、稳定,适合关键部门应用。

4和GPS的比较

1>覆盖范围:北斗导航系统是覆盖我国本土的区域导航系统。覆盖范围东经约70°一140°,北纬5°一55°。GPS是覆盖全球的全天候导航系统。能够确保地球上任何地点、任何时间能同时观测到6-9颗卫星(实际上最多能观测到11颗)。
2>卫星数量和轨道特性:北斗导航系统是在地球赤道平面上设置2颗地球同步卫星颗卫星的赤道角距约60°。GPS是在6个轨道平面上设置24颗卫星,轨道赤道倾角55°,轨道面赤道角距60°。航卫星为准同步轨道,绕地球一周11小时58分。
3>定位原理:北斗导航系统是主动式双向测距二维导航。地面中心控制系统解算,供用户三维定位数据。GPS是被动式伪码单向测距三维导航。由用户设备独立解算自位解算在那里而不是由用户设备完成的。为了弥补这种系统易损性,GPS正在发展星际横向数据链技术,使万一主控站被毁后GPS卫星可以独立运行。而北斗一号系统从原理上排除了这种可能性,一旦中心控制系统受损,系统就不能继续工作了。
4>实时性:“北斗一号”用户的定位申请要送回中心控制系统,中心控制系统解算出用户的三维位置数据之后再发回用户,其间要经过地球静止卫星走一个来回,再加上卫星转发,中心控制系统的处理,时间延迟就更长了,因此对于高速运动体,就加大了定位的误差。此外,北斗一号卫星导航系统也有一些自身的特点,其具备的短信通讯功能就是GPS所不具备的。

5适用领域
  由上所述特点,北斗一号导航系统特别适用于以下应用(民用):

1>通信量不大,定位频度不高的应用。

2>边远地区、山区等基础通信条件薄弱或可靠性不强的地区(如这次的地震地区)。

3>中、近海船舶定位、导航、通信。

4>安全要求高的应用(不受GPS,伽利略,格洛纳斯限制)。

June 30

欧洲杯结束

      近期熬夜看了几张欧洲杯的比赛,基本上都是半夜被老婆电话叫醒,然后远程共同看球的。终于明白女性球迷如果稍一开窍其坚持程度之可怕-_-

      西班牙的胜利至少说明了技术足球的王者回归,不可否认西班牙踢得太漂亮了,当然我更看好的一只技术流球队-葡萄牙的表现却不怎么样。以前比较喜欢劳尔,不过当决赛看到托雷斯的表现时我才发现那才是真正的王牌前锋:速度、技术、意识都在一流,而且和德国巨人后卫的对话中丝毫不处下风,一个进球价值连城,并且是两三步超过拉姆打进的,呵呵,确实厉害。

      小法、卡西、席尔瓦、哈维、小白、塞纳、拉莫斯、普约尔等的表现都是可圈可点的,不过更重要的是核心的几个人都才二十出头(除了哈维和普约尔),前途不可限量呀。看来老帅弃用劳尔确实是明智的选择。

      最大的感受还是一物克一物,当看到能灭掉荷兰的俄罗斯时,完全相信会给西班牙造成很大麻烦,不过俄罗斯对西班牙是半点脾气都没有。还有决赛中的德国,真是菜得不能再菜。我都有点怀疑是不是幕后有黑手控制比赛了。

June 22

客户前台的保护策略

      近日项目上的事情比较挠头,竞争对手派出了大批研发人员到客户现场“取经”,导致我们前期和客户交流产生的需求和一些设计上的思想直接被他们继承了。真是很不爽!

      公司所倡导的“客户前台,合作多赢”策略确实不错,能够在和客户的交流过程中使研发人员快速、准确了解需求,并且维持比较和谐的关系。但是问题也出来了:在项目前期阶段(未定标阶段)所做的研发工作以及产生的知识产权属于谁?因为合同还没有签订,所以比较难以确定。按理说属于参与其中的人或者单位共有,不过如果共有的话很容易使后入者坐享别人辛苦开发的成果-因为甲方是希望各家PK并从中选择最优的。先入者往往消耗了大批的资源做开发工作反而将成果共享了,如果拿下项目还好,如果拿不下,那真是为他人做嫁衣裳。

      前两天和老大们反应了这个问题,希望公司能在这方面进行知识产权方面的动作,即使不能在最后起到作用,也要恶心一下那些不劳而获的人!当然也要给客户灌输这方面的知识并确保知识产权为我方所有,这次出差又有得费口舌了-_-

June 12

Web GIS 选型

今天终于将募投项目落实到人,我主要负责Web GIS的工作。总体的要求是“多、快、好、省”的完成任务。时间感觉倒不是很紧,再说前面也做了一些准备工作,故直接进入需求、选型阶段。Web GIS的总体做法无非采用GIS开发平台做二次开发或者自己从头来做,一般来说二次开发平台都是比较贵的,而且没什么技术含量,呵呵-_- 所以打算自己做。自己做也大概可选用3种技术:

1.ActiveX,可以从目前的C/S版上借鉴很多东西,从根本上来说也是C/S的。
2.一般Web技术,采用ASP.Net或者JavaEE,2年之前写过很多这种应用,有点不太想重走过去的路,况且有些性能上的要求要实现必须写很多javascript或者利用Ajax,工作量其实并不小。
3.RIA,用Flex/Flash或者SilverLight,没有仔细研究过Flex,两者应该半斤八两,比SL应该成熟一些。这两天主要看了看SL,也写了几个例子,觉得上手很快,并且开发很便利。尤其是SL2Beta2发布之后有了一些新的改进很优雅的解决了我的本地存储和出图问题,呵呵。要是在SL1或者Beta1的时候还真是不敢用。现在可以考虑放心大胆的先用着了,等Release版快出来吧。

June 11

大规模位置数据存取、查询方案(Hercules)

前一阶段投标涉及到很严苛的性能指标,尤其是在位置数据存储、查询方面。目前做这些应用的厂家基本上都采用了主流的数据库,在相同的硬件环境下基本上速度不会差一个量级。前几天陈老大想自己做一个简易数据库,自己没太大把握,就拉我入伙了。很激动,因为经过几番细致讨论和计算,性能提高2个数量级没有太大问题。不过性能提升的前提是损失通用性,不过仔细分析了针对位置信息的消费类型也无非以下3种:

1.基于时间的位置查询
2.基于空间的位置查询
3.基于对象的位置查询

其他的应用基本上都延伸于这三种,故我们的大规模位置数据存取、查询方案的实施有了基本的前提。后面就是一轮一轮的设计、开发、测试的迭代了。截至今天基本完成,很优雅、很简洁也很快!今天也在监控软件的新增“出入港管理”上应用了该查询方式,效果很是不错。

小赞一下这个方案,也小赞一下和陈老大的敏捷过程实践,很爽!对了,这个方案软件我们将其命名为:Hercules。