• Mar 7 2014 Posted by sheimi At UCSD

    Android开发和iOS开发的不同

    最近太懒了,很长时间没有更新博客了。去年8月底,我发布我的第一个Android的应用,然后一直在抽空维护它。今天1月的时候,花了一点时间捣鼓了一个iOS的版本。这篇文章主要是讲的开发Android和iOS的版本的过程中的不同的感觉和学到的东西。

    UI设计与开发

    Android和iOS开发给我的最大的不同就是UI了。可能是Android的GUI的调整布局的东西太搓了,所以图形化布局仅仅用来看大概的效果的,几乎所有的布局都是手写XML的。而在iOS开发的过程中,根本没有办法通过布局文件来调整(也有可能是我只是初学者,还不知道哪里可以做这样的是),但是XCode的图形化布局工具简直就是神器,太好用了。几乎所有的布局和Controller之间的关联都可以在Storyboard里面搞定,这样极大的提高了小App的开发的效率。

    在界面设计的过程中,由于时间的限制,iOS版本都是用的是最原始的最默认的界面。但是由于iOS7的特点,也不是显得特别的丑。在开发Android版本的过程中,使用了网上的一些资源,对颜色进行了稍微的设计。从NIPPON COLORS中获得了很多不错的颜色,从Android Action Bar Style Gener...

  • Aug 26 2013 Posted by sheimi At Home

    My First Android App

    暑假最后几天,闲着无聊,找了点事儿做,写了一个Android的Git客户端。由于是第一个应用,写篇博客得瑟一下。

    Features

    • clone a remote repo
    • pull from origin
    • delete local repo
    • browse files
    • browse commit messages (short)
    • checkout branches and tags
    • http/https/ssh are supported
    • username/password authentication is supported
    • search from local repositories
    • private keys management
    • manually choose code's language
    • git diff between commits (to be enhanced)*

    To Do List

    • import copi...
  • Jun 17 2013 Posted by sheimi At NJU

    我的实习总结

    今天上午终于去公司办完了离职手续,我在奇多6个月的实习也画上了句号。在大四的一年里,我一共参加了两个公司的实习:eBay和奇多信息科技。这两个公司一个是比较成熟的业界大佬,一个是初创的小公司。这一篇文章主要写的是我在这两家公司的实习的经历以及感受。

    eBay

    eBay就从实习生招聘开始,说实话,eBay的实习生招聘比较坑爹。为什么说坑爹呢,首先,笔试的时候有一小半的题目是英语的阅读理解题。接着,面试的时候尤其是我在的APD部门,内推占了很大的比重。举个例子吧,有个同学技术面的时候面试官的评价是“技术没问题”,英语也没有问题,可是最后被默拒了。不过eBay的员工挺会玩儿的,APD部门还别出心裁然让我们去上海参加了一个Job Fair,目的是通过Job Fair让我们了解APD各个Team的具体工作,然后我们选择两个Team参加面试,再决定最后呆在那个Team里面。

    eBay的工作环境是很不错的,整个办公室是一个大的开放式的环境,整个部门,从部门老大,到Manager,到实习生都在这里工作,只不过由于位子有限,我们实习生只能够窝在一个小角落里。实习生来的时候可以领到一个旧电脑,我一开始幸运的领导了一台新电脑,但是很快被发现了,又被换成了旧电脑。电脑的系统是企业版windows,但是对于一些喜欢Linux/Unix的人,可以自己换成自己喜欢的操作系统,但是喜欢OS X的就哭吧。eBay是不可以用自己的电脑的,我一开始不知道,拿着自己的电脑用了几个星期,最后被部门老大发现了,只能换回公司配的电脑了。其实eBay这样的公司不允许使用自己的电脑是有原因的,eBay里面有着上...

  • Jun 8 2013 Posted by sheimi At NJU

    申请、签证总结

    昨天签证终于签完了,出国申请的是也算是差不多忙完了。看了很多人都写了申请总结,我也来跟个风,记录一下自己申请过程中的一些教训,希望能给别人一些帮助吧。

    首先写一下申请的背景:

    • GPA: 89.6/100, 3/185
    • GRE: 146 + 170 + 3
    • TOFEL: 92
    • Intern: eBay(PD)

    以及申请的结果(都是CS MS):

    • AD: UCSD(Accepted), NEU(这个不知道能不能算,学校说这个Boston校区满了,让我换个校区,或者等到2014春季)
    • Reject: UW-Madison, PSU, UCB, UIUC, Dartmouth, UMich, Rutgers, UT-Austin, UNC

    怎么说呢,虽然只有两个AD,但是结果还是挺满意的,毕竟GT成绩就是个渣渣呀。

    为什么要出国?

    从高中开始,我就想要出国学习。当时是什么原因想要出国,具体也记不清了。不过以前看过一个电影《Dreame...

  • Dec 10 2012 Posted by sheimi At NJU

    大学

    不知不觉,大学就已经快要结束了,所有的课都上完了,就剩下毕业设计了。这篇文章本来准备上个月最后一门考试考完了就写的,没想到得了水痘,就搞忘了。

    在写PS的时候想了很多,发现大学里面,我改变了很多。大学里面,我真正接触到了两样东西,计算机和动漫,他们对我的影响都很大。

    计算机

    现在想起来还真有点庆幸。当初高考考砸了,比南大分数线低了12分,幸好有自主招生的降分处理,也屁颠屁颠地混进了南大。不过,由于分数低,没有被第一志愿化学系选中,进入了第二志愿软件学院。不过,也正是这样,我才有机会真正接触计算机。

    对于没有考上化学系,说实话,当时我很沮丧。高中的时候,化学是我学的最好的一门课,我也花了很多时间在上面。当时我想,如果能够进入南大化学系,我大一、大二就会十分轻松了。现在想来,当时的想法真是天真,居然为了学起来轻松就决定自己未来的职业。

    其实,那时十分沮丧也是有其他原因的。初一一次偶然的机会,我接触到了“编程”,参加了信...

  • Sep 5 2012 Posted by sheimi At NJU

    JNI 使用小结

    虽然没有多少空余的时间,但是还是抽出了几节上课的时间尝试者使用了 Java 使用 JNI 调用 OpenCV。虽然 OpenCV 有一个 Java 的 Wrapper —— “JavaCV”,但是因为不是官方的版本,还是感觉不是那么可靠。

    这篇文章主要是总结了我这次在使用 JNI 的时候遇到的一些问题。一些最基本的 JNI 的使用就不详细介绍了,可以参考前面的一篇文章:第一次使用jni,把jni打包到jar中

    示例程序

    这个 Demo 是要使用 OpenCV 把图片转换成 BMP 格式。虽然 Java 也可以实现,但是这里我仅仅是纯粹想用 JNI 而已。

    Gist Repo

    首先是 Java 的程序:

    // CVJNI.java
    import java.io.*;
    
    public class CVJNI {
      //Load jni library
      static {
        try {
          System.loadLibrary("cvjni");
        } catch (Exception e) {
          e.printStackTrace();
      ...
  • May 17 2012 Posted by sheimi At NJU

    源代码阅读笔记(2) --- nutch (Injector)

    上次说道,nutch 的爬虫在运行中的总体的步骤,他们由:

    • Injector
    • Generator
    • Fetcher
    • ParseSegment
    • SolrIndexer

    组成。其中 Injector 是一开始的初始化,SolerIndexer 是迭代结束的时候再开始的。而中间的三步是放在一个 for 循环里的。

    下面就一个一个来分析。

    Injector

    Injector 是一个 MapReduce 的程序,它的作用是把用户提交的初始的 url 列表注入到 CrawlDb 中. 并且 Nutch 是要定期更新爬取的东西,所以,Injector 中还对新的 url 和老的 url 做了一些合并。

    CrawlDb 是 Nutch 中储存 url 的数据库的数据结构,包含了 url 的一些 metadata,包括时间,爬取状态等信息。

    下面是 Injector Job 的配置,

    if (LOG.isInfoEnabled()) {
      LOG.info("Injector: Converting injected urls to crawl db entries.");
    }
    JobC...
  • May 13 2012 Posted by sheimi At NJU

    源代码阅读笔记(1) --- nutch 的结构

    第三学期的有一门课“软件系统设计与体系结构”,课上的大作业是设计和实现一个搜索引擎,老师说可以并鼓励复用,并且告诉了我们两个可以使用的开源软件 lucenenutch 。于是,在复习GRE之余便稍微看了一下这几个软件。

    历史

    在这几个开源软件中 lucene 应该算是最年长的了,它是一个由 Java 实现的全文搜索引擎的库,有许多著名网站的搜索都是基于这个库实现的,可是它仅仅是一个库,并不是一个搜索引擎。

    然后nutch就出现了,nutch 这个项目虽然比 lucene 年轻,但是在我看来,有着神奇的经历。当时这个项目刚开始的时候,设计者想要完成一个类似于 Google 的网络搜索引擎。实现一个网络搜索引擎和普通的搜索引擎不一样,它首先需要实现一个爬虫,从网络上爬取网页等资源,存在本地。然后需要对这些资源建立索引。当用户查询的时候,对用户的 Query 进行解析,然后查询。

    nutch 在开始设计的时候是基于 lucene 建立索引的,实现了一个网络爬虫,还有一个简单的查询界面。可是在实现的时候,遇到了一些问题。大量的网络页面如何简单地储存在本地计算机集群中,还有如何更好地利用计算机集群更加好,快速地进行索引的建立和页面的爬取。就在这时候,Go...

  • Feb 24 2012 Posted by sheimi At NJU

    对软件测试作业的一些牢骚

    今天又有软件测试作业了,要设计至少50个测试用例,然后在至少5个浏览器中间进行兼容性测试,不同的平台上。这个也太恶心了吧。又想了想前几次的测试作业,还是想要发发牢骚。

    我觉得吧,作业是要对课堂所学只是的一种练习,拓展,而不是一种强制性的,无谓的劳动,关键是我们真正在作业中学到东西。

    我认为测试课的两位老师和助教应该反思一下作业的设置的问题。其实,大家抱怨的不是作业太多。从大一到大三,这么多门课上下来了,有不少课的作业都比测试课多。就拿大三来说吧,我相信,浩然姐姐的作业,渐渐的作业,Web的作业并不比测试课的作j业要少。还有大二的时候的操作系统试验课等。然而,每次测试作业一布置下来,人人网,TSS上都有那么多的人抱怨作业多。

    我觉的大家...

  • Feb 22 2012 Posted by sheimi At NJU

    第一次使用jni,把jni打包到jar中

    好长时间没有碰java了,因为不太喜欢java冗长的语法。但是java依然是工业界的一朵奇葩,我们的一个项目也不得不用到它。由于我们需要用到jni,并且要把jni打包道jar中,于是我今天首次尝试了一下jni的使用。Mark 一下,防止以后忘掉。

    Hello JNI

    一开始写的还算比较简单。

    //Here is HelloJNI.java
    public class HelloJNI {
      static {
        try {
          System.loadLibrary("hellojni");
        } catch (Exception e) {     // I am a little indolent
          e.printStackTrace();
        }
      }
    
      public static native String showMessage(String msg);
    
      public static void main(String [] args) {
        String msg = HelloJNI.showMessage("Hel...
  • Feb 19 2012 Posted by sheimi At NJU

    博客迁移到github上了

    这两天把自己的博客迁到github上了,并且把自己写的大部分的作业什么的放到了github上了。

    在github上放博客

    自从学习了Linux/Unix之后,越来越习惯它的设计的哲学KISS -- Keep It Simple and Stupid。之后就一直想把自己的wordpress换一个极为简洁的主题。寒假里,玮哥分享了一个博客——tom.preston-werner.com,觉得里面的设计十分优雅,简洁,大方,没有一点多余的东西。

    那个博客是架设在github上的,是用模板语言生成的静态页面。放在github上的博客,可以使用git分布式版本控制来管理自己的文章,再也不会像用数据库那样麻烦了。昨天晚上,把在添添VPS上放的wordpress给删了。但是服务器放那里总不能就空着吧,准备以后写一些方便自己上网的小工具放在上面~~。

    在github上面放博客其实十分简单,具体参照 github:pages 上的帮助文档来做就可以了。里面还有许多实例,包括设置个人主页,项目主页,标签的写法,自定义域名等。我自己弄的时候搞错了一个东西,本来CNAME里应该填 b...

  • Jan 8 2012 Posted by sheimi At Home

    今年的小结,明年的愿望

    时间过的真快,一下子大学已经过去一大半了。在大学的期间,经历的很多,也学到了很多。但是也有很多的时候感到迷茫,想着一门门的课程,总是感到力不从心;看着浩如烟海的专业书籍,一种种专业的技术,总是想要去看看,去试试,却总是没有静下心来去看一些书,去研究一些技术。

    我的2011

    Blog:

    2010年就申请了sheimi.me 的域名,用wordpress搭了一个博客,从今年才开始写一些东西。和中学时候一样,我写的东西依然比较差,但是至少现在我心里面不拒绝去写一些东西了。有的时候,觉得写一些东西可以整理以下自己的思维,整理以下自己到底干了一些什么,反思以下自己的“所作所为”。其实这也是我建立自己博客的初衷,我想要记录自己的一些点点滴滴,分享一些自己的想法,分享一些自己学习的收获。什么时候自己要对博客做一些修改,锻炼一下自己的能力。

    创新项目:

    我很庆幸我能加入我现在的小的团队,我能有这么好的指导老师,这么好的同学。在这一年里我从这个团队里学到了很多。今年3月份,在博伟和老师的努力下,我们成功地申请到了创新项目,我们也一直在为这个而努力着。不过,我们存在这很多问题。在这一年里,我们似乎都很忙,无论是课业上的,还是自己的事儿。我们的项目似乎不知道应该朝着哪个方向去努力。做了...

  • Dec 12 2011 Posted by sheimi At NJU

    一些事,一些思考

    最近比较迷茫,看到了很多,也想了很多。虽然事情很多,还是把手头上的事情往后推了一下,想要把脑子里想的东西整理一下。

    学习

    前几天在校车上和玮哥聊了一下学习,收获很大。玮哥说,他现在完全不排斥新的东西,只要有机会,就回会去学。他说,就像“日本经济与文化”这门课,有很多人因为它不水,就不去选,但是上课的时候,老师讲的东西,如果认真听,的确会很有收获。

    我感到很惭愧,对于我来说,我觉得我不感兴趣的课基本上就不听了。就像“马克思主义基本原理概论”,老师讲的很好,可是没有几节课我是认真听的。像“软件需求”这门课我也没有认真听,尽管二玉哥讲的很好,可我总是觉得这东西没用。到最后复习的时候,把教科书翻了两遍,觉得收获是很大。

    另外,学习的诱惑是很大的,尤其是学喜欢的东西。在CS的领域中,或许在别人看来就是搞计算机的,可是一旦打开一个孔,窥视这个领...

  • Archives