摘要:
新博客地址:http://lixinzhang.github.io/欢迎访问~ 阅读全文
摘要:
这里格式太乱,请到http://lixinzhang.github.io/wo-de-2015nian-xiao-zhao-zong-jie.html写在前面目前研三,明年毕业。 2015年的校招即将结束,本来早就想写一篇总结的,但是一直没时间。而最近公司开始各种催三方了,貌似也该做个决定了,可是从... 阅读全文
摘要:
标准库的安装路径在import模块的时候,python是通过系统路径找到这些模块的,我们可以将这些路径打印出来:>>> pprint.pprint(sys.path)['', '/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg', '/Library/Python/2.7/site-packages/python_recsys-0.2-py... 阅读全文
摘要:
因为要搞hadoop,最终还是逃不过写java的命运。。。 eclipse里想查具体函数源代码时,如果报错说找不到源: 试试ls -l which java,在这个目录周围看看能不能找到src.zip。
实在找不到就放弃吧,别折腾疯了,去下个吧;1.7src.zip 。 阅读全文
摘要:
Create remote repo pwd:/Users/zhanglx/workspace/gittest/
git init --bare Clone repo from remote repo git clone /Users/zhanglx/workspace/gittest/ Init a local git repo and add a remote This is... 阅读全文
摘要:
MiniCrawler
Github Path :
https://github.com/LixinZhang/miniCrowler Introduction: MiniCrawler is a simple web crawler implemented by Python. Threadpool tech is used to speed up fetching pages. On... 阅读全文
摘要:
本来搜一道面试题,找到叫九度题库的地方,发现里面的题目都比较基础,很适合当面试题来练习。于是,闲得蛋疼,把所有题目给爬下来了,并整理成markdown格式,然后export成pdf,方便大家离线阅读。写下抓下来的方法:1、把列表页先wget下,然后抽取链接(用grep处理就好了,如cat problemset* | grep 'problem.php?pid=' | egrep -v 'obj'> urls.txt)2、然后...(毫无技术可言,纯属娱乐)# -*- coding:utf-8 -*-import sysimport osdown_cnt = 阅读全文
摘要:
1、下载,https://code.google.com/p/googletest/。解压,进入该目录,按REAME说明安装:1.5之前 make install可以安装,1.6之后不可以。。。安装可按README里的提示进行安装:a、g++ -I./include -I./ -c ./src/gtest-all.cc (注意,-I后没有空格,直接加./)b、ar -rv libgtest.a gtest-all.o这步之后会生成两个文件,libgtest.a和gtest-all.o4、g++ -I./include mytest.cpp libgtest.a -o mytest -lpthr 阅读全文
摘要:
Computational advertising - the central challenge :Find the "best match" between a given user in a given context and a suitable advertisement.计算广告包含多个学科的知识,算是交叉学科:1、信息检索2、大规模的搜索与文本分析3、统计建模4、机器学习5、微观经济学6、博弈论等7、分类问题 Classification8、优化问题9、推荐系统。。。。。。教程:Stanford的:http://www.stanford.edu/class/m 阅读全文
摘要:
pylab 提供了比较强大的画图功能,但是函数和参数都比较多,很容易搞混。我们平常使用最多的应该是画线了。下面,简单的对一些常用的划线函数进行了封装,方便使用。 1 # -*- coding: utf-8 -*- 2 import pylab 3 import random 4 5 class MiniPlotTool : 6 ''' 7 A mini tool to draw lines using pylab 8 ''' 9 basecolors = ['red','green','yellow' 阅读全文
摘要:
理论上的东西,就不写了,也写不出什么有价值的东西,资料太多了。后文很多关于原理的讲述都给出了其他文章的引用。分享一个比较简单易懂的贝叶斯决策理论与统计判别方法。数据集:Dataset1.txt328 个同学的身高、体重、性别数据(78 个女生、250 个男生)Dataset2.txt124 个同学的数据(40 女、84 男)Dataset3.txt90 个同学的数据(16 女,74 男)问题描述: 以dataset1为训练数据库,假设身高与体重满足高斯分布,进行高斯分布的参数估计,并进行基于最小错误率的贝叶斯分类,分别考虑男女的先验概率,0.5-0.5;0.6-0.4;0.7-0.3,0.8- 阅读全文
摘要:
聚类是机器学习、数据挖掘相关的一类很常见的问题。关于聚类算法的介绍这里就不多写了,因为无论是教科书还是网络上都有太多的资料了。这里,用一个《Programming Collective Intelligence》中的聚类例子,写几个经典聚类算法的实现,分别是hierachiclaCluster、kmeans、kmedoids。 另外,最近一直在看数据挖掘、自然语言处理相关的东西,通过看资料发现有些东西很好理解,但是长时间不用的话,过一段时间就忘记得差不多了。其实换个角度想,也是自己对这些东西理解得不深刻。我觉得踏踏实实的实现这些算法是必要的,因为在实现过程中,我们可以发现哪些地方是算法的核心. 阅读全文
摘要:
CrackCode Interview 书籍链接地址/* * Chapter 1 * Question: Implement an algorithm to determine if a string has all unique characters. * What if you can not use addtional data structures? * 实现一个算法用于判断一个字符串所包含的所有字符是各不相同的。 * 尽量不使用额外空间 */#include<iostream>using namespace std;/* * 假设为ASCII编码,字符数值范围为0~255 阅读全文
摘要:
主要分为 3 个部分,memoryPool 是管理内存池类,block 表示内存块,chunk 表示每个存储小块。它们之间的关系为,memoryPool 中有一个指针指向某一起始 block,block 之前通过 next 指针构成链表结构的连接,每个 block 包含指定数量的 chunk。每次分配内存的时候,分配 chunk 中的数据地址。主要数据结构设计:Block:struct block { block * next;//指向下一个block指针 unsigned int numofChunks; unsigned int numofFreeChunks;//剩余... 阅读全文
摘要:
最早接触快速排序,应该可以追逐到高二那会儿。那时候,由四个同学在一起做noip竞赛,那时候不懂什么叫算法、什么叫优化、什么叫空间效率,只知道快速排序要比其他简单的排序快。于是,为了应对考场时可能会遇到需要排序的问题,自己“学会”了快排。还记得,刚开始怎么也理解不了快速排序的思想,后来果断背下来了,好在代码不长。 当时背算法挺可笑的,但是现在想想我平常理解的算法是不是也是在背算法呢? 快排,我至少写过50遍,因为不知道什么时候,一直把它当作调试编译环境的测试代码。但是,就在昨天的百度面试中,又被问及了快排,而我在纸上写得却一塌糊涂。面试的题目是,对链表结构的数据进行快速排序。当时有点蒙,因... 阅读全文
摘要:
1、关闭防火墙,尽量断网条件下进行 2、KMS client数量不足,虚拟出多个client。使用下面这个工具 增加KMS Client数量 首先启动KMS服务器,然后启动工具中的.bat的批处理文件,等其执行完毕之后,便可以使用正常方法进行office2013的激活。 我的error是0xC004F038,通过以上两步解决了,希望能帮到其他遇到同样问题的人。 阅读全文
摘要:
平常Coding过程中,经常使用到的with场景是(打开文件进行文件处理,然后隐式地执行了文件句柄的关闭,同样适合socket之类的,这些类都提供了对with的支持): with file('test.py','r') as f : print f.readline() with的作用,类似try...finally...,提供一种上下文机制,要应用with语句的类,其内部必... 阅读全文
摘要:
静态方法装饰器: 在python中一般关于“静态”有静态变量和静态函数两个东西。静态变量具有全局属性,也就是说它是属于某个类的,而不是这个类所产生的实例。举个例子,下面的示例程序,表示的是统计Test类所创建出的实例个数,其中instancesCount为静态变量。在外部,用函数的方式对静态变量的访问一般有两种情况,一种是通过具体实例访问,另一种是通过类方法直接访问。那么,我们就需要静态方法来实现类的直接访问,即(类名.函数名)的方式。python提供两种方法,一种是通过staticmethod函数将函数转化为静态方法,另一种是通过装饰器的方式,将一个函数装饰成静态方法。class Test. 阅读全文
摘要:
PS:这是网络安全的作业题目,要是也有选这课同学看到这篇文章,希望不要直接copy,要不然老师发现会比较不爽哈~题目请设计和实现一个算法,把一个文件M由A传输到B,并保证:– 文件M的完整性– B能够认证M的发送方– 文件M的完整性、机密性算法设计思路信息完整性和抗否认性是信息安全保证的两个基本要素,数字签名技术通过对消息摘要技术和公开密钥技术的有机结合,实现了对在不可靠网络中传输的信息的完整性和抗否认性的有效保证。使用数字签名的方式,实现对文件M完整性和认证的保证。数字签名的大致过程如下:消息发送方首先利用Hash函数对待发消息进行摘要处理,生成一个固定长度的消息摘要H(M),然后用自己的私 阅读全文
摘要:
Synergy ,这个工具大家应该都比较熟悉,就是通过网络手段,用一台机器的鼠标和键盘管理多台电脑,相当好用。但是最近,我的这个软件作为Server端时却出现了问题,一直显示“ synergys.exe: no configuration available ”,无论怎么重装都不行。 于是找了好久,终于找到了解决办法,所以在这里记录下。 synergy -f --config syne... 阅读全文
摘要:
Question1用动态规划方法手工求解下面的问题:某工厂调查了解市场情况,估计在今后四个月内,市场对其产品的需求量如下表所示。时期(月)需要量(产品单位)12342324已知:对每个月来讲,生产一批产品的固定成本费为 3 (千元),若不生产,则为零。每生产单位产品的成本费为 1 (千元)。同时,在任何一个月内,生产能力所允许的最大生产批量为不超过6个单位。又知每单位产品的库存费用为每月 0.5 (千元),同时要求在第一个月开始之初, 及在第四个月末,均无产品库存。 问:在满足上述条件下,该厂应如何安排各个时期的生产与库存,使所花的总成本费用最低?要求:写出各种变量、状态转移方程、递推关系式、 阅读全文
摘要:
机器学习初学者,超级小白,不对的地方尽请批评指正。欢迎一起探讨。 K-nearest Neighbors 学习方法是基于实例的,可用于逼近实值或离散目标函数,概念简明。对于基于实例的算法,学习过程只是简单地存储已知的训练数据,当遇到新的查询实例时,一系列相似的实例被从存储器中取出,并用来分类新的查询实例。因此,基于实例的算法的最大不足也就在于分类新实例的开销特别大。 ... 阅读全文
摘要:
自从读研以来,给我印象最深的是数学的重要性。本科阶段,一直很疑惑我们学习那些高数、概率统计、线性代数有什么用。有些人甚至认为那些课程都是在浪费时间,说是工作之后根本用不上。的确,在我去企业实习的过程中也很少能够接触到大学学习的数学知识。然而,进入研究生阶段后,陆陆续续读了一些paper,上了一些诸如机器学习、信息检索等课程,这些课程里面涉及大量的数学内容,经过一段时间的学习之后,我... 阅读全文
摘要:
基于脚本的服务器集群管理工具背景: 随着云计算服务的普及,基于云计算的PaaS、IaaS受到越来越多的关注,使用这些服务的用户也越来越多。对于一些大型的应用而言,可能包含多种服务,而这些服务需要部署在多台服务器上。例如:某个应用可能部署了10台数据库服务器,10台Web Http服务器以及5台静态文件存储服务器等。那么作为应用程序管理员来说,一台一台地登录去管理这些机器显得非常繁琐,而且对于同一种服务(比如数据库服务)的机器需要执行的管理任务又都大致相同,那么对每台机器进行重复的工作也会增加集群管理员的负担。 应对上述需求场景,我开发了这样一个基于脚本的服务器集群管理工具,它主要具有如下功能和 阅读全文
摘要:
其实这是个小技巧,记录下。最近,我一直在windows环境下,用虚拟机进行linux,PuTTY ssh连接虚拟机进行程序开发的。后来,发现两个系统间传递文件实在有点麻烦,本来想搭个ftp或是写个HTTPserver,后来发现SimpleHttpServer十分好用。直接python -mSimpleHttpServer 8000 ,就可以在当前目录下直接创建一个http server。在其他机器上,用浏览器就可是访问这个文件夹了,共享文件轻松多了。 阅读全文
摘要:
开始读研了,总结一句话,很不爽! 有的时候,真的很怀疑自己当初的选择到底对不对。大四一年流窜了三家公司,体验了爱立信这样传统大企业的企业文化,也体会了淘宝网的自由、开放,也感受了创新工场的小型创业团队的快乐的工作氛围。也经历了很多的笔试、面试,发现自己早已脱离了学校时的学生气。突然回到校园,感觉很不适应,而且男女比例不是一般的失调,女生质量也太。。。 很怀念在公司的感觉,自由、活泼、快乐,可以做自己喜欢的事情,也总有一些谈得来的朋友。 我是家里亲戚们孩子中,唯一一个研究生。父母因此很骄傲,我不想让父母失望、难过,所以选择的坚持读研,这也可能是我唯一坚持的理由了。 选择一条苦逼路,跪着也得走完. 阅读全文
摘要:
关于iptables参考:Iptables 指南 1.1.19iptables提供的NAT的分析与应用 为什么要进行NAT?一个很好的例子:假设我们只有一台服务器具有外网IP,其他服务器都只具有内网IP,那么这些内网服务器外网无法访问到。那么我们可以将具有外网IP的那台服务器作为一个路由中转,将请求转发到内网的机器上来。如何转发呢?大家都知道IP报文中有两个重要的地址属性:源地址与目的地址。IP报文传递过程中需要经过哪台机器,是由这两个地址所决定的。 首先有个问题要明确。首先,客户端对某台服务器访问时,可能会需要多个路由的转发才能到达,但是这样的转发并没有改变IP报文的源地址和目的地址,路由器 阅读全文
摘要:
分布式网络爬虫的研究与实现摘 要 随着互联网的高速发展,在互联网搜索服务中,搜索引擎扮演着越来越重要的角色。网络爬虫是搜索引擎系统中十分重要的组成部分,它负责从互联网中搜集网页,这些页面用于建立索引从而为搜索引擎提供支持。面对当前极具膨胀的网络信息,集中式的单机爬虫早已无法适应目前的互联网信息规模,因此高性能的分布式网络爬虫系统成为目前信息采集领域研究的重点。 本文对网络爬虫原理、分布式架构设计以及网络爬虫中的关键模块、瓶颈问题及解决办法进行了相关研究。论文工作主要表现为:1、引入一致性哈希算法,用于解决URL任务分发策略、爬虫主机间负载均衡、单机热点问题,确保分布式爬虫系统具有良好的可扩展性 阅读全文
摘要:
URL队列被爬行进程赋予一个URL(或者来自于其他爬行进程的主机分离器)。它维护了一个包含大量URL的队列,并且每当有爬虫线程寻找URL的时候,它都会按照某种顺序重新排序。以何种顺序返回队列中的URL,需要有两个方面的考虑。 第一个要考虑的是具有很高更新频率的高质量页面,即页面的优先级。一个页面的优先级权值应该是由它的改变频率和它本身网页质量(使用一些恰当的质量评估方法)共同决定的。这是很必要的,因为在每次抓取的时候,很多更新频率很高的页面都是质量很差的垃圾页面。 第二个要考虑的就是礼貌策略:我们必须避免在很短的时间间隔内重复抓取同一个主机。因此,如果URL队列被设计成简单的优先级队列的话,. 阅读全文
摘要:
什么是robots.txt文件? robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不能被搜索引擎的漫游器获取的,哪些是可以被(漫游器)获取的。 因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据。Robots.txt协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私... 阅读全文
摘要:
前言: 网络爬虫抓取下来的页面,都是大文本,应该如何存储呢? 我觉得,如果存储在mysql 或是 sqlserver这种关系型数据库当中,应该不是很恰当的。首先,页面相对独立,基本没什么关系型可言,只有url或是描文本->页面这种简单的关系,而关系型数据库系统为了支持关系以及高效查询会增加很多额外的开销,这样得不偿失。不仅如此,爬虫在抓取页面工程中,效率应该很高,如果用关系型数据库存页面的华,短时间内会有大量的数据插入I/O,插入肯定会是一个瓶颈问题,这对数据库维护网络以及物理磁盘来说,压力也是比较大的。因此,我觉得直接存储为数据文本比较合适,开源的larbin爬虫,也采用的是文本方式的 阅读全文
摘要:
最近,一直在做网络爬虫相关的东西。 看了一下开源C++写的larbin爬虫,仔细阅读了里面的设计思想和一些关键技术的实现。1、larbin的URL去重用的很高效的bloom filter算法; 2、DNS处理,使用的adns异步的开源组件; 3、对于url队列的处理,则是用部分缓存到内存,部分写入文件的策略。 4、larbin对文件的相关操作做了很多工作 5、在larbin里有连接池,通过创建套接字,向目标站点发送HTTP协议中GET方法,获取内容,再解析header之类的东西 6、大量描述字,通过poll方法进行I/O复用,很高效 7、larbin可配置性很强 8、作者所使用的大量数据结构. 阅读全文
摘要:
什么是线程池?诸如web服务器、数据库服务器、文件服务器和邮件服务器等许多服务器应用都面向处理来自某些远程来源的大量短小的任务。构建服务器应用程序的一个过于简单的模型是:每当一个请求到达就创建一个新的服务对象,然后在新的服务对象中为请求服务。但当有大量请求并发访问时,服务器不断的创建和销毁对象的开销很大。所以提高服务器效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁,这样就引入了“池”的概念,“池”的概念使得人们可以定制一定量的资源,然后对这些资源进行复用,而不是频繁的创建和销毁。线程池是预先创建线程的一种技术。线程池在还没有任务到来之前,创建一定数量的线程 阅读全文
摘要:
poll函数 在上文unix下网络编程之I/O复用(二)中已经介绍了select函数的相关使用,本文将介绍另一个常用的I/O复用函数poll。poll提供的功能与select类似,不过在处理流设备时,它能够提供额外的信息。 poll函数原型: #include<poll.h> int poll (struct pollfd * fdarray , unsigned long nf... 阅读全文
摘要:
select函数该函数允许进程指示内核等待多个事件中的任何一个发生,并仅在有一个或是多个事件发生或经历一段指定的时间后才唤醒它。我们调用select告知内核对哪些描述字(就读、写或异常条件)感兴趣以及等待多长时间。我们感兴趣的描述字不局限于套接口,任何描述字都可以使用select来测试。select函数原型:#include<sys/select.h>#include<sys/time.h>int select (int maxfd , fd_set *readset ,fd_set *writeset, fd_set *exceptionset , const str 阅读全文
摘要:
什么是I/O复用? What we need is the capability to tell the kernel that we want to be notified if one or more I/O conditions are ready (i.e., input is ready to be read, or the descriptor is capable of takin... 阅读全文
摘要:
题外话: 很久没写博客了,因为前一段时间过年在家放假,又因为自己保研了,所以一直比较闲。整个假期,基本都在准备毕业设计的相关内容。我毕业设计的方向是关于搜索引擎的,因此,期间阅读了大量相关论文。阅读了很多论文和技术书籍之后,我有几点感触。首先,发现国内很多论文或是书籍只是大量引述其他人的研究结果,自己的独特的见解非常少,一篇文章,70%的内容都是在以介绍为主,感觉发这样的论文是没有什么意义的。相反,国外尤其是像MIT,斯坦福,google之类的领域专家发表很多极其优秀的论文,阅读后给人一种震撼。我之前在网上搜索技术文章或是论文的时候经常绕过英文的,现在发现国外的确有非常多优秀的外文文章,所以无 阅读全文
摘要:
任何应用都离不开数据,所以在学习python的时候,当然也要学习一个如何用python操作数据库了。MySQLdb就是python对mysql数据库操作的模块。官方Introduction :MySQLdb is an thread-compatible interface to the popular MySQLdatabase server that provides the Python database API. 它其实相当于翻译了对应C的接口。 使用这种数据库接口大多是就是执行连接数据库->执行query->提取数据->关闭连接 这几个步骤。MySQLdb提供比较关 阅读全文
摘要:
安装步骤:1、sudo apt-get install python-setuptools2、sudo apt-get install libmysqld-dev3、sudo apt-get install libmysqlclient-dev4、sudo apt-get install python-dev5、sudo easy_install mysql-python测试下:在python交互式窗口,import MySQLdb 试试,不报错的话,就证明安装好了。eclipse 检测出错:如果平常是在eclipse pydev 下进行python开发的话,那么直接在eclipse环境下使用 阅读全文
摘要:
python中的xml.dom模块使用的就是传统的dom解析api和方法。所以也就不写什么了,主要就是练习敲敲代码,继续熟悉python。本文通过xml.dom.minidom创建一个xml文档,然后再解析出来,用以熟悉相关接口方法的使用。创建一个xml文档:'''Created on 2012-1-10Create a xml document@author: xiaojay'''from xml.dom import minidomdoc = minidom.Document()doc.appendChild(doc.createCommen 阅读全文