基本信息

  • 姓名: 林国强 GUOQIANG LIN
  • 学历: 福建农林大学 12级生物科学
  • PhoneNum: 186.504.868.94
  • EmailAdd: fjkfwz@gmail.com
  • Telegram: https://telegram.me/masukio

项目

Openwrt Remote Manage Toolkits

描述: JSON-RPC 远程系统调用工具集。
包含:

  • rpcshell :系统级的 RPC 服务端守护进程,你可以向服务端发送带 Shell 命令的 JSON 调用系统资源。由 WebShell 修改而来,将请求/回调封装为 JSON 格式。
  • rpcconfig:由 rpcshell 和本地配置解析工具 uci 封装的 RPC 接口,能够方便的对配置文件进行修改。
  • rpcloader:由 rpcshell 和 dynamic Loader 封装的 RPC 接口,实现应用程序动态加载远程 Module 模块。

Openwrt H3C inode Client

描述: 第三方 H3C inode 客户端。
文档: http://masukio.tk/2015/07/07/H3C-inode-Linux/
服务器端:
基于@liuqun/njit8021xclient 项目第一版用 Python 重写

修改:

  • 绕过服务器端版本验证:大量发送数据包直到服务器正确响应
  • 添加新的加密方式:猜测数据加密方式及构造认证信息
  • 添加心跳认证:定期发送心跳包确保连接
  • Module:动态加载不同的加密方式/认证信息以适应不同校区的认证
  • 断线重连:定时发送 ping 数据包,若掉线则 restart
  • 管理页面:用 Lua 编写的 Luci 界面

第二版用 C 重写整合了 Remote Manage Toolkits 编译进 Openwrt 系统镜像

客户端:
Android 管理器:基于 JSON-RPC 开发的 Android 客户端,能够查看 Openwrt 的基本信息,操作/管理应用
微信后台管理器:

  • 绑定:但设备连上网络会向微信后台发送设备状态信息,并返回设备码
  • 后台:数据储存在 MySQL,服务器用 JSON 与设备通讯并封装成微信消息返回给微信服务器

实验项目

Zhihu Bubble

描述:基于非监督学习算法的知乎智能推荐系统
进度:

  • 完成简易版知乎单机爬虫抓取 Followee List,获取少量数据集
  • 测试聚类/NMF 模型,测试协同过滤,缓存 Redis
  • 分析每个 Filter Bubble(https://en.wikipedia.org/wiki/Filter_bubble)特征
  • 计算特征的打分矩阵,选取 Top10特征,爬虫抓取每个特征对应的文章列表
  • 计算文章的打分矩阵,输出 Hotspot 文章列表

Next:

  • 编写 MapReduce 版本爬虫,Monogodb 持久化连接
  • Redis/Bloom Filter 过滤重复连接
  • 制作 Docker 镜像,方便部署
  • 编写 MapReduce 版本算法训练模型/测试 CUDA
  • 用 Flask 搭建一个前端/设计 API 接口

Skill Stack

算法

掌握基本的数据结构及算法(CLRS)及其部分 MapReduce 算法
掌握常见的数据结构及算法(LeetCode),B/B+Tree,LruCache,Bloom Filter 等
了解基本的 Machine Learning,协同,CUDA 算法

语言

JAVA:

  • 熟悉 JDK 8/Kotlin 基本语法,熟悉 JDK 基础库及第三方常用库的使用
  • 熟悉 JAVA 的异常处理机制
  • 熟悉 Reflect 机制,class 的动态加载,class Loader 机制
  • 了解 JAVA 的并发编程模型,公共内存/锁机制

Python:

  • 了解 Python2.7.基本语法,Lambda 函数式,基础库
  • 熟悉第三方常用库及统计学库(Numpy)的使用,图形库 matplotlib
  • 了解 Python 多进程/线程模型,GIL
  • 熟悉 RE 模块,正则表达式匹配
  • 熟悉 Python 的异常处理机制

JVM:

  • 了解 JAVA 编译字节码文件
  • 了解 Sun HotSpot/Dalvik JVM 编译执行流程
  • 了解 GC 回收机制及原理

Pattern: 熟悉 Code Refactoring 的基本准则,了解 OOP Design Pattern
OOP: 熟悉面向对象的编程思想,抽象,封装,闭包,回调
VCS:

RFC 通信协议: 熟悉 XMPP,POP3/IMAP/STMP(数据格式 MIME)通信协议
REST: 熟悉 RESTful API/RPC 架构的设计原则及开发
数据格式: 熟悉 XML/JSON 的数据格式,JAVA/Python 库的文件生成及解析,GSON 的使用
设计模式: 了解 MVC/MVP,MVVM
加密算法:

  • 了解常用的对称/非对称加密算法,消息摘要算法,数字签名算法
  • 配置 Nginx 实现 HTTPS 传输

后端开发

PHP:

  • 了解 PHP 语法,能够快速搭建产品原型,主要用于为 Android 开发搭建后台
  • 框架:ThinkPHP,Smarty 模板

linux:

  • 能够熟练使用*nix 基础命令(busybox),Vim,网络配置
  • 常用网络服务的搭建/配置,iptable/ipset 配置,Qos 技术原理及配置
  • 编译工具链 GNU toolchain,Makefile 文件的编写
  • 熟悉 Nginx 反代,均衡负载
    常用的 linux 系统如下:CentOS,Ubuntu 14.x LTS,Debian,(Openwrt)

数据库:

  • 熟悉 sqlite/MySQL 基础 CURD SQL 操作及常用语句及 JDBC 接口程序,MySql 主从备份
  • 熟悉 Mongodb 常用语句及 JDBC/mongopy 接口程序的使用
  • 了解 Mongodb Shard,Replication 基本配置,事务/锁机制,增量备份,Raft 选举
  • 了解 Hive 常用 HQL 操作,metadata,数据仓库的概念

动态缓存:熟悉 Redis,Memcached set/get 操作
Hapdoop:能够编写经典算法的分布式版本,了解 hadoop 生态
容器技术:

  • 了解服务器端虚拟化技术:KVM,Docker,Hyper
  • Docker 镜像制作

云服务: GCP(APP/Container Engine),Firebase,AWS(EC2,EMR),阿里云 ECS,DaoCloud
安全: 了解常用的加解密算法(CSSIP),VLAN 网段划分,容灾热备

前端开发

基础: 熟悉基本 HTML/CSS/JavaScript 语句,了解基础 DOM 操作,事件传递机制,ECMAScript 规格
框架: 熟悉基础框架:Sass,jQuery,BootStrap 的基础语法,DOM 选择器的使用
Tools: 了解前端自动构建工具集 Yeoman,Bower,Grunt 的使用
Node.js: 了解 Node.js 的基础语法及包的使用

Android

基础:

  • 熟悉 Android 的基本组件,Layout,常用控件
  • 熟悉数据持久化的开发,网络编程,事件传递机制
  • 熟悉自定义 View,了解 Android IPC 机制,Remote View 机制
  • 了解 JNI 编程,动态加载技术
  • 熟悉 Activity,Fragment,Application 生命周期,Activity Stack
  • 了解 Sensor 开发

并发:熟悉 Android 的线程和线程池,AsyncTask
网络框架:熟悉 OkHTTP,Volley,Retrofit 的使用
优化:熟悉 Android View 组件的常用优化,缓存策略,LruCache/DiskLruCache
开发:IDE:Android Studio,熟悉基本的调试工具,ANR 日志分析,MAT 内存泄露分析
源码:阅读过 Android 核心代码

  • 了解系统/进程启动流程
  • Bundle native/JNI 消息传递机制
  • 核心组件的类调用,编译流程

Android5+:熟悉 Android5新增/@Deprecated API,运行时权限管理,Dove,Data Binding
Design:熟悉 Material Design/HIG 设计规范及 design library 组件的使用

嵌入式开发

驱动:能够根据时序图/硬件文档编写简单的驱动
Openwrt 系统:阅读过 openwrtBB 源码,熟悉构建/编译流程,能够进行系统移植
Openwrt 开发:能够在 Openwrt 进行应用程序及 Luci 应用界面的开发
通信协议: 熟悉 RFID,NFC,Zigbee,Bluetooth 协议
开发板: 单片机80C51,Ardunio UNO,Raspberry Pi V1,Easylink M150
项目: 寻路径独轮车,3D Matrix,数码管时钟,四轴飞行器

生物信息

NGS: 熟悉第二代测序技术 illumina Hiseq(X10,2500),lon Torrent,PacBio 测序原理/read/depth/coverage/accuracy
基因芯片: 了解 Affymetrix,Agilent 生物芯片原理
算法: 熟悉 BLAST 序列比对算法,HMM 模型
Tools: 熟悉常用的生物信息分析工具 GATK,bowtie,数据格式转换,Pipleline 搭建

其他

Bitcoin: Bitcoin 爱好者,熟悉 BlockChain 技术
Tools: Markdown,LaTeX/MathJax,XMind,Axure,Sublime Text


Groups:

Microsoft Student Partners(MSP)
Google Developer Group (GDGxXiamen)
视觉与学习青年学者研讨会(VALSE)
全球创客马拉松(Makerthon)