Ourren

关注技术,记录生活.

论文写作环境

| 留言

古时候有“孟母三迁”的故事告诉我们:环境影响人的成长;而当代社会由于科技的快速发展,办公环境和工具的选择会直接影响人们的办公效率和工作的热情。高富帅公司往往以优秀的工作环境「高薪,Mac全套,人工学电脑椅,空气净化器等」来吸引应聘者,屌丝公司则是以人文情怀拉拢一堆基友。论文写作环境也不例外,极客者善于利用各种工具打造一套完整的写作、投稿与修正的工具链。个人虽然接触写作时间不长,但自认为高级的论文写作环境需要满足如下几项:

  • 作者不用担心格式问题「字体大小,间距,编号」;
  • 格式转换起来比较方便「方便投递不同期刊」;
  • 方便作者之间进行修改「对比修改前后差异」;
  • 语法句式检测「国人很常见的问题了」;

鉴于如上的写作环境需求,个人在实践中总结了一套完整的写作工具链,现分享如下:

Python中的常用代码

| 留言

日常Python代码中会经常遇到一些可以用很简短的代码即可实现的功能,不用自己去撸一个单独的函数或者多个循环语句了。其实一般主要靠Google搜索关键字即可在stackoverflow找到,只能说像我等伪程序员离开网络写代码质量会直线下降。贴到这里也是方便自己使用,代码比较基础,仅作笔记使用。

合并列表值

输入的两个数组,输出一个是数组&值相加或者相乘,原文:eg-1

# input
first = [1,2,3,4,5]
second = [6,7,8,9,10]

#output
three = [7,9,11,13,15]

# The zip function is useful here, used with a list comprehension.
# add
[x + y for x, y in zip(first, second)]

# other
[x*y for x, y in zip(first, second)]
[max(x,y) for x, y in zip(first, second)]

其实也可以遍历列表长度,然后操作。

Python代码规范入门

| 留言

虽然接触Python已经有好几年了,同时前前后后也开发过很多小工具或者系统,但是一直觉得代码不是很规范,最近抽空了解了这方面的资料,现归纳如下,也方便pythoner学习,文章首先介绍Python代码规范的程序,然后分享在Pycharm中嵌入Pylint程序来实现快速检测代码质量。

Google开放的各类语言代码规范中就有就有「Python风格规范」, 里面对语言规范和风格规范进行了详细的描述,不失为提升自己代码规范的入门资料。但是让我阅读「编写高质量代码 改善Python程序的91个建议」此书时才发现原来Google这种代码规范属于「PEP8」规范。同样,PEP8也不是唯一的风格检测程序,类似的应用还有Pychecker、Pylint、Pyflakes等。其中,Pychecker是Google Python Style Guide推荐的工具;Pylint因可以非常方便地通过编辑配置文件实现公司或团队的风格检测而受到许多人的青睐;Pyflakes则因为易于集成到vim中,所以使用的人也非常多。这样看我们只需要选择一个适合自己的代码规范即可,而如上所述,Pylint高可配置性,高可定制性,并且可以很容易写小插件来添加功能。因此,我最终选择了Pylint来实现代码规范检测。

Measuring and Detecting Malware Downloads in Live Network Traffic

| 留言

今天分享的是Roberto Perdisci教授在2013年发表在ESORICS上的一篇论文,该文在Google学术中虽然引用不高,单独读完之后感觉在分类前提取特征的方法写得不错,分享给大家。

概述

论文主要观点:

通过在网络出口部署相关设备,可以观察局域网内所有软件下载行为,通过一系列的行为特征和恶意软件的标签即可实现恶意软件的分类,并且可以发现未知恶意软件,同时该分类效果比谷歌浏览器的恶意检测系统在一定程度上误报率要低。

论文主要成果:

  • 提出了一种在网络数据包中检测恶意软件下载行为的模型;
  • 通过实际部署发现效果还不错,可以发现一些未知的恶意样本;
  • 通过对比发现,模型的误报率其实挺低,准确率也挺高的。

Understanding and Monitoring Embedded Web Scripts

| 留言

该篇文章发表于36th IEEE Symposium on Security and Privacy (“Oakland”)「属于安全界的顶级会议」,而作者是Yuchen Zhou,毕业于University of Virginia,目前就职Palo Alto Networks。从作者的个人主页可以看到其主要的研究内容:通过修改浏览器中特殊功能来实现对单点Web安全技术进行研究。PS:发的顶会文章也是够多的。

项目主要开发了一个修改版的Firefox浏览器「ScriptInspector」来帮助网站管理人员查看网站第三方JavaScript对网页内容的相关操作,主要分为三个模块:ScriptInspector,Visualizer和PolicyGenerator。

  • ScriptInspector:基于Firefox的修改版浏览器,主要修改window.eval等函数的hook. 用来记录第三方脚本的函数调用,主要包含:DOM, 本地存储和网络。
  • Visualizer:一个Firefox插件,用来高亮显示页面中被访问的节点,可以快速了解第三方脚本的操作。
  • PolicyGenerator:用于辅助人员生成各种第三方脚本的访问策略,通过这些脚本在不同网站的访问情况可以推断该脚本的安全性。

Detecting Spammers on Twitter

| 留言

文章主要是通过机器学习的思路来自对twitter的用户进行分类「两类:正常用户与垃圾用户」。其中算法采用的是SVM算法,特征选取比较复杂,结合了内容特征与用户行为特征。个人感觉不错的是论文针对特征的选取和特征的精简部分。

整体流程

  1. 首先爬取了大量Twitter用户的数据(通过API接口 + 大量VPS/IP);
  2. 通过特定主题进行跟踪,例如跟踪:「the Michael Jackson’s death」,「Susan Boyle’s emergence,」,「the hashtag “#musicmon- day”」;即把这几个主题的发言和评论抓出来进行分析;这里实验数据处理的时候有一个技巧:正常内容很多,而垃圾内容太少,为了不让比例失调,特别减少了正常用户的比例,基本上「正常用户:垃圾用户(1:2)」;
  3. 手动做标签,作者写分为三个人同时对同一样本做标签,然后标识的时候需要参照三个人的答案;
  4. 提取特征值,鉴于特征值比较多,因此需要针对特征值进行分析,分析单一特征是否可以区分两类用户;
  5. 通过SVM算法对已经标识的样本进行建模,然后测试样本;
  6. 通过分析特征值,降维处理「减少特征值」;
  7. 最后计算准确率并分析。