Skip to content

Weekly Report #7

@muxfe

Description

@muxfe

2016-07-10 周日

  • 完成我的本科毕业论文

    勉勉强强完成了论文,有很多点都没写好,但还是学到很多东西。一直做工程较多,对于研究型内容有些力有不逮,还是源于基础不够扎实,持续学习很重要。

  • 研究方向调整

    由于社交网络用户影响力评价标准不一,难以有效说明,所以暂时搁置了这方面研究,转而研究学术网络下的影响力。

  • Angular - SAP

    从开始接触 Angular 开始,就对数据双向绑定、前端路由等特性着迷,前端发展早已不可同日而语。自己也用 Angular 做了几个项目,结合 bootstrap,weui 来做 UI,Grunt 做编译压缩,目前只有测试还没写过,未来学习 karma 测试框架也是任务之一。还有 React 和 Vue 诱惑着我,前端简直学无止境啊。

  • jqGrid

    在帮实验室同学做一个快速开发项目时,发现了 jqGrid 这个表格框架,基于 jQuery 实现,功能几乎无所不包,尤其适合与后端 CRUD 接口整合,大大减轻了前端开始任务。世上没有完美的东西,这个框架的确点就是文档不全,资料很少,不过貌似是闭源的,也没什么说的了。

小记

很久没有更新这里,总是瞎忙,忙毕业,忙项目,忙聚会。本科生活结束,硕士生活开始;迷茫生活结束,奋斗生活开始……

2016-05-29 周日

  • 写毕业论文

    写了 93%,剩最后关键的实验部分。

  • 修改对比算法

    修改 IC Model, TwitterRank 和 Topic-sensitive 相应的实现。之前存在一些错误。

2016-05-22 周日

  • 写毕业论文

    第一次写论文还没找到套路,在艰难的凑字数。

  • 完善和修改 cnki-crawler

    在慢慢摸索中学会了用 selenium-webdriver 这个库所支持的 promise 来实现异步流程控制,从而解决了大部分问题。在 github 和 stackoverflow 上也查了很多资料,因为 nodejs 版本的资料相对较少,一度想要放弃,但还是坚持解决了所有问题。为自己点赞~^_^

  • 验证各个算法结果

    结果不是很理想,对论文中自己的算法理解不是非常到位。

2016-05-15 周日

  • 做论文相关的实验

    因为盲审的紧逼暴露出之前实验的许多问题,实验算法实现的小问题和验证结果的不理想,都没能充分考虑和解决。深感无奈。

  • cnki-crawler

    刚开始先学习了 selenium-webdriver 这个框架,在其简单的 doc 和 stackoverflow 的基础上总算掌握了基本使用。但是因为异步的原因,有些问题总是解决不掉。如 alert 弹窗处理和窗口切换与关闭出现的问题等等。

2016-05-08 周日

主要工作

  • 测试微博数据

    • Indegree
    • TunkRank

    这两个算法最简单,也顺便测试重构后框架的易用程度。

  • 使用 GibbsLDA++-0.2 处理数据

    将较大的文本分割后进行递增地处理。

  • 整理毕设相关的东西到 github

  • 学习 python 爬虫

    写了简单的爬 api 的代码。尝试针对下载知网数据,使用爬虫进行模拟登录并下载,未果。

小记

随着夏天到来,人也变得躁动,不能静下心来编码和读书,总是时断时续。还有两周就得完成毕设论文了,还有实验室的一些工作要做,感觉自己的效率真的是太低了。开始爱上了健身,希望身体和心灵都在路上。

2016-05-01 周日

主要工作

  • 处理微博数据

    • 数据量大,约 120 GB 原始数据
    • 在 Ubuntu 14.04 LTS 上,MongoDB 3.2.4 表现很差(暂不知道原因)
    • 分词和吉布斯采样及后续算法很耗时,难以并行

    放弃使用 Mongodb,直接文件流处理,使用 JSON 的 Jar 包,逐行解析和筛选。

  • 解决 LDA Gibbs Sampling 在大数据上的问题

    使用 GibbsLDA++-0.2 处理,可以在之前的训练集上推演新的数据集,做到增量 LDA.

2016-04-24 周日

主要工作

  • 写 rosenjx 的文档

    第一次写文档,感受到要把自己熟悉东西介绍给完全不了解这方面的人,是件很难的事情。这才理解了文档能力的重要性。每个人的知识体系和价值观都不完全相同,要让别人了解自己做的东西,需要换位思考和对自己作品充分的研究,才能向别人道出其中原委。

  • 测试 Twitter 数据

    测试简单算法,重构了一下代码结构,使用 DataModel 类来屏蔽掉算法输入数据多样性。

    • InDegree
    • TunkRank

    其他算法需要 LDA Gibbs Sampling ,还不能实验。

  • 看阮一峰老师的 JavaScript 笔记

    http://javascript.ruanyifeng.com/

小记

这周毕设总算推进了,首先做了两个简单的算法实验,从数据处理,算法结果,到验证结果,全部跑通。其中还有一些问题,如验证算法速度慢,和对不同数据源,不同数据结构,不同算法,怎样写代码可以让以后跑实验的改动最小等等。

co-author 数据已经发现可以爬 Aminer.org 的网站 api 接口,因为网络问题,还没有完全得到。得到之后需要按照论文你的采样算法来采样处理,不确定性太多,需要大量时间投入。

2016-04-17 周日

主要工作

  • 理解和修改 LDAGibbsSampling
  • 用 angular 重写实验室网站模板
  • 外包网站基本完成

小记

这周很累,在 angular 开发上可以说又进了一小步,还是很开心。

首先说在项目构建上,我开始变得不太喜欢用 bower ,因为在用 grunt-usemin 的时候,不能细粒度地控制编译 js 库。重写实验室网站的时候就只直接用 npm 管理了前端库,但是 npm 也有问题,依赖太多,前后端库分不开等等,node_modules 目录下是把所有以来展开了,这样做有好处,却令人看起来很杂乱,不如 bower 那么清爽。

然后,在久试不通之后,果断放弃了用 jquery-carouFredSel.js,虽然它很强大,但真的不适合我。换了 bootstrap 来做轮播,代码清爽了很多,不用写 js。

毕设在这周进展寥寥,理解了 LDA Gibbs Sampling 之后,还需要进一步修改,以使用它。

加油。

2016-04-10 周日

主要工作

  • 处理 Twitter 数据,自然语言处理和吉布斯采样

    自然语言处理用了 nltk 完成,吉布斯采样因为内存限制还没有结果。

  • Angular-static-single-page

    • 使用 bower 和 grunt 构建项目
    • 添加了 markdown 支持
    • 修改 IE 下兼容性问题

    由于 Angular 对 DOM 的管理,导致很多意想不到的问题,在解决的时候也倍觉棘手,深感自己在原理、底层上功夫过浅。

小记

这周在 Angular-static-single-page 这个项目上花费了很多精力和时间,主要解决 Angular 封装带来的资源或库的问题,如脚本运行的时机,资源加载时机造成的脚本运行结果顺序不对,ng-repeat 渲染完成的事件问题,$scope 层级问题等等。

抓狂中也学习了不少东西,包括 Grunt 编译压缩整个项目,使用起来像 make 工具,提供了非常丰富的插件来完成各种任务。但是也有一些实际问题,如 grunt-usemin 在 build html comment bower 时,会将 bower 管理的所有依赖都编译进去,像 html5shiv.js 这样应该放在注释里以兼容 IE 的做法就难以实现;还有 grunt-contrib-uglify 在编译 js 文件时,会有是否兼容 IE8 的选项,如果是 true ,那么将会出现如 this.thisa.class 等此类压缩后不兼容 IE8 的代码,因为 thisclass 都是保留字,在 IE8 中会报错。而如果是 false ,上面的代码就会变成 this["this"]a.className

2016-04-03 周日

主要工作

  • 修改 Zeppelin 二进制包中的源码,添加新功能或新可视化图表

    按照这个 #issue 添加地图功能

  • 帮师姐跑实验

    服务组合论文相关实验,主要是配置文件很多,每次都要手动修改,然后运行。尝试自动跑程序失败,推测是工程依赖的 dll 文件的问题。

  • Angular-static-single-page

    一个用 Angular 做静态模板及单页面路由的小项目。完成了初步的模板拆分和路由配置等。

  • 读书

    《JS 高级程设》,《用 AngularJS 开发下一代 Web 应用》

小记

通过修改添加 zeppelin 地图扩展,对 zeppelin 前端结构有了深入一些的认识。因为接触过 Angular 开发,上手也较为容易。

然后在一个外包项目中使用了 zeppelin 前端框架结构,不过改成了 Angular 静态单页面路由的形式,将页面不同模块拆分、复用。上手容易,但是 Angular 做静态模板还是有点不够灵活。比如 ngInclude 的限制,IE 下的兼容性,ngInclude 模板中对 scripthtml 代码安全的限制,ngInclude 模板中如果有 h5 标签,通过引入 Google 的 html5shiv.js 不能解决这个问题等等。

感觉 Angular 还是适合表单等交互性 Web 应用,以充分体现其双向绑定的优点。

ps.拖延症犯了,坚持不是一件容易的事。2016/4/12.

2016-03-27 周日

主要工作

  • 阅读 Zeppelin 前端源码

    index.html :

    • 引入项目所依赖的静态文件( css, js, image 等)
    • angular-include 其他模板或components
    • 使用 WebSocket 进行异步通信
    • 每个 component 对应的 controller 来处理诸如交互,展示等任务

    粗看了所有代码,对 WebSocket 部分的通信和事件了解的不是很清楚。准备进一步阅读。

  • github-issue-blog 发布我的博客

    原作者用 Ractive 写的实现,我简单学习了下,很容易上手,静态单页面的路由也是第一次见到,对于一些整体布局改变不大,但是频繁交互的页面来说非常有用,单页面应用对 js 内存泄漏应该也有很好处理机制,最近学的 Zeppelin 也算一个单页面应用吧,用 AngularJS 实现,模块化组织,也很清晰。

  • 整理 Twitter 数据

    由于 Twitter 的转发评论与微博设计不同,所以在整理 Twitter 数据时遇到一些难题,如找出转发某条 tweet 的所有人。

    这周解决了推文中包含的转推关系,包括不同转推格式(如,RT @name/RT@name:)和多次转推展开等,使用正则表达式匹配,捕获分组来获取(转发格式:被转发人:被转发推文)。然后使用 Redis 作为缓存,以(作者+推文)为键,(推文编号)作为值形成一个 Hash table,以便统计转推关系。

小记

看了 github-issue-blog 和 zeppelin 的前端代码,有了对实验室模板代码进行模块化组织和单页面静态路由的想法,准备下周有时间去做。这周还玩了下 Docker ,出现各种问题,很受挫,尤其是查尽资料解决不了问题那种抓狂的感觉,还需要磨练。

之前面对毕设项目中存在的问题有点消极,没有很主动地去解决,对毕设的态度自然决定了毕设的质量,回头看自己的毕设内容,我共享的部分主要是代码实现,对原有算法的改进和思考则鲜有。总是想学习新的有趣的技术,忽略了”正务“,是浮躁和缺乏思考的表现。

换到新的环境已近一个月,各方面都稳定下来,也在融入这个实验室。在学习,生活,技术和个人提升方面还有很多要做的。

2016-03-20 周日

主要工作

  • 熟练搭建 Zeppelin 环境(单机)

    Centos 环境搭建的话,总会出现个 databind 的错误,查了发现是 jackson 包在编译时选择的版本不对,但是由于网络等原因,用 Maven 构建总是失败,只能换到 Ubuntu 14.04 中搭建。

  • 了解 Zeppelin 前后端架构

    Zeppelin 在前端主要使用了 AngularJS ,在交互方面表现很好,可视化使用 nvD3 ,构建工具使用了 npm, grunt 和 bower ,UI 使用 Bootstrap,js 兼容库使用 jQuery。

    后端主要使用 java 开发,用了 Jetty 和 Jersey 两个框架来实现 WebSocket , RESTful API 等功能。

  • 实现一个简单的 Zeppelin Interpreter

    仿照 Markdown Interpreter 的写法,自己编译打包了一个简单的 myInterpreter,将输入加上 %text 后再输出,了解了 Interpreter 的创建方法和工作原理。

  • 在阿里云搭建 实验室主页

    阿里的云翼计划 ¥10/月 可以租用一个配置不错的 ECS,用来搭建实验室的静态主页绰绰有余。

小记

这学期主要有两个项目,一个毕设,一个实验室一起做的大数据平台。

毕设在上学期进行到数据集准备和算法测试阶段,由于算法存在问题,数据集不完善,毕设项目遇到了不小的阻力,后面要在毕设上多下功夫,解决问题。

大数据平台项目我所在的小组主要负责前端部分,即支持交互式的数据查询与分析的 Apache Zeppelin 项目,学习,运用和修改它。通过粗略地阅读项目,对 Zeppelin 有了大致的了解,这个项目由于还在孵化期,使用的构建技术和框架较为前沿,学习的点很多,包括前端的可视化,angular,后端的 Jetty 和 Jersey 框架等。了解它如何运作还需要一定的积累。

业余时间看书时间变少,简单的健身和背单词效果平平,更多的刷社交网络和碎片化的知识并不是一个好的提升自我的手段,需要不断给自己施加压力。

2016-03-13 Sun

Main Work

  • [Big Data Platform] Install and Use Zeppelin

    And previously install Hadoop 2.6.4 and Spark 1.6 envirment on Ubuntu 14.04 LTS (Single-Node)

  • [Social Network] Learn and Use Klout API

  • [Other] Reinstall OS, build some development envirment

  • [Life] Work in Lab

  • [Life] Start Exercise

Note

Record my work and thought weekly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions