操作系统一个简单的汇编入门程序如下,代码中注释得已很详细
;程序被加载到的内存地址,即寄存器IP的值 org 07c00h ;以下3句是设置ds、es段寄存器的值 mov ax,cs mov ds,ax mov es,ax ;将字符串的首地址赋给ax mov ax,BootMsg ;将字符串第19个字符改写 mov byte [BootMsg+18],0x07 ;bp是传给中断的参数es:bp指向的是字符串 mov bp,ax ;字符串中字符的个数 mov cx,21 ;表示的是写字符串,并移动光标到结尾处 mov ax,01301h ;字符显示属性红色,0页 mov bx,000ch mov dl,0 int 10h jmp $ BootMsg: db "Loading system ...." db 13,10 ;$表示程序的当前地址,$$表示程序所在节的地址,在这里只有一个节 times 510-($-$$) db 0 ;软盘第一扇区结束标志 dw 0xaa55
程序在Virtual Box下运行的截图如下:
在Virtual PC下运行的截图如下:
特别注解:
1:org 07c00h,用Bochs调试运行后会发现,ip=0x7c00h,cs=0x0000,所以从这里可以得出的是四个段寄存器均是0
2:mov byte [BootMsg+18],0x07,这是为什么会发出滴答声的原因,查看ASCII码可以发现的是这里的0x07对应的实际上就是一个声响的ASCII码。
3:中断int 10h的0x13功能,其中ah用来表示功能号,其参数如下:
功能号:13H
功能:在Teletype模式下显示字符串
入口参数:AH=13H
BH=页码
BL=属性(若AL=00H或01H)
CX=显示字符串长度
(DH、DL)=坐标(行、列)
ES:BP=显示字符串的地址 AL= 显示输出方式
0—字符串中只含显示字符,其显示属性在BL中。显示后,光标位置不变
1—字符串中只含显示字符,其显示属性在BL中。显示后,光标位置改变
2—字符串中含显示字符和显示属性。显示后,光标位置不变
3—字符串中含显示字符和显示属性。显示后,光标位置改变
工具软件(nasm,bochs,博客程序源码)
机器学习经典书籍小结
博客第一篇文章[1]是转载的,也算是开始写博客不经意的表露了自己对机器学习的兴趣吧!那篇文章总结了机器学习的一些经典算法的论文与数学基础理论的一些书籍,对于开始学习机器学习的话恐怕太过深入,正好最近在买书,看了很多经典书籍的总结与评论,我再拾人牙慧,稍稍总结一下吧。
先说一下我看过的和正在看的一些书吧!
《数学之美》;作者吴军大家都很熟悉。这本书主要的作用是引起了我对机器学习和自然语言处理的兴趣。里面以极为通俗的语言讲述了数学在这两个领域的应用。
《Programming Collective Intelligence》(中译本《集体智慧编程》);作者Toby Segaran也是《BeautifulData : The Stories Behind Elegant Data Solutions》(《数据之美:解密优雅数据解决方案背后的故事》)的作者。这本书最大的优势就是里面没有理论推导和复杂的数学公式,是很不错的入门书。目前中文版已经脱销,对于有志于这个领域的人来说,英文的pdf是个不错的选择,因为后面有很多经典书的翻译都较差,只能看英文版,不如从这个入手。还有,这本书适合于快速看完,因为据评论,看完一些经典的带有数学推导的书后会发现这本书什么都没讲,只是举了很多例子而已。
《Algorithms of the Intelligent Web》(中译本《智能web算法》);作者Haralambos Marmanis、Dmitry Babenko。这本书中的公式比《集体智慧编程》要略多一点,里面的例子多是互联网上的应用,看名字就知道。不足的地方在于里面的配套代码是BeanShell而不是python或其他。总起来说,这本书还是适合初学者,与上一本一样需要快速读完,如果读完上一本的话,这一本可以不必细看代码,了解算法主要思想就行了。
《统计学习方法》;作者李航,是国内机器学习领域的几个大家之一,曾在MSRA任高级研究员,现在华为诺亚方舟实验室。书中写了十个算法,每个算法的介绍都很干脆,直接上公式,是彻头彻尾的“干货书”。每章末尾的参考文献也方便了想深入理解算法的童鞋直接查到经典论文;本书可以与上面两本书互为辅助阅读。
《Machine Learning》(《机器学习》);作者TomMitchell[2]是CMU的大师,有机器学习和半监督学习的网络课程视频。这本书是领域内翻译的较好的书籍,讲述的算法也比《统计学习方法》的范围要大很多。据评论这本书主要在于启发,讲述公式为什么成立而不是推导;不足的地方在于出版年限较早,时效性不如PRML。但有些基础的经典还是不会过时的,所以这本书现在几乎是机器学习的必读书目。
《Mining of Massive Datasets》(《大数据》);作者Anand Rajaraman[3]、Jeffrey David Ullman,Anand是Stanford的PhD。这本书介绍了很多算法,也介绍了这些算法在数据规模比较大的时候的变形。但是限于篇幅,每种算法都没有展开讲的感觉,如果想深入了解需要查其他的资料,不过这样的话对算法进行了解也足够了。还有一点不足的地方就是本书原文和翻译都有许多错误,勘误表比较长,读者要用心了。
《Data Mining: Practical Machine Learning Tools and Techniques》(《数据挖掘:实用机器学习技术》);作者Ian H. Witten 、Eibe Frank是weka的作者、新西兰怀卡托大学教授。他们的《ManagingGigabytes》[4]也是信息检索方面的经典书籍。这本书最大的特点是对weka的使用进行了介绍,但是其理论部分太单薄,作为入门书籍还可,但是,经典的入门书籍如《集体智慧编程》、《智能web算法》已经很经典,学习的话不宜读太多的入门书籍,建议只看一些上述两本书没讲到的算法。
《机器学习及其应用2011》,周志华、杨强主编。来源于“机器学习及其应用研讨会”的文集。该研讨会由复旦大学智能信息处理实验室发起,目前已举办了十届,国内的大牛如李航、项亮、王海峰、刘铁岩、余凯等都曾在该会议上做过讲座。这本书讲了很多机器学习前沿的具体的应用,需要有基础的才能看懂。如果想了解机器学习研究趋势的可以浏览一下这本书。关注领域内的学术会议是发现研究趋势的方法嘛。
上面大多都是一些入门级的书籍,想要在这个领域深入下去,还需要深入的阅读一些经典书籍。看了很多推荐大牛推荐的书单,这里总结一下吧。
《Pattern Classification》(《模式分类》第二版);作者Richard O. Duda[5]、Peter E. Hart、David。模式识别的奠基之作,但对最近呈主导地位的较好的方法SVM、Boosting方法没有介绍,被评“挂一漏万之嫌”。
《Pattern Recognition And Machine Learning》;作者Christopher M. Bishop[6];简称PRML,侧重于概率模型,是贝叶斯方法的扛鼎之作,据评“具有强烈的工程气息,可以配合stanford 大学 Andrew Ng 教授的 Machine Learning 视频教程一起来学,效果翻倍。”
《The Elements of Statistical Learning : Data Mining, Inference, andPrediction》,(《统计学习基础:数据挖掘、推理与预测》第二版);作者RobertTibshirani、Trevor Hastie、Jerome Friedman。“这本书的作者是Boosting方法最活跃的几个研究人员,发明的Gradient Boosting提出了理解Boosting方法的新角度,极大扩展了Boosting方法的应用范围。这本书对当前最为流行的方法有比较全面深入的介绍,对工程人员参考价值也许要更大一点。另一方面,它不仅总结了已经成熟了的一些技术,而且对尚在发展中的一些议题也有简明扼要的论述。让读者充分体会到机器学习是一个仍然非常活跃的研究领域,应该会让学术研究人员也有常读常新的感受。”[7]
《Data Mining:Concepts andTechniques》,(《数据挖掘:概念与技术》第三版);作者(美)Jiawei Han[8]、(加)Micheline Kamber、(加)Jian Pei,其中第一作者是华裔。本书毫无疑问是数据挖掘方面的的经典之作,不过翻译版总是被喷,没办法,大部分翻译过来的书籍都被喷,想要不吃别人嚼过的东西,就好好学习英文吧。
一些引申链接:
http://blog.csdn.net/pongba/article/details/2915005
http://blog.csdn.net/caikehe/article/details/8496721
1部署Jenkins
Jenkins部署很简单,只需建立一个新应用,将Jenkins的war包部署进去,再分配好权限就可以了。
建立一个新Nginx应用:jenkins.com
上传jenkins.war到/jenkins.com,解压并赋权限:
jar –xvf jenkins.war
chown -Radmin:admin jenkins.com/
1.3重启服务
启动Tomcat服务:tomcat restart
重启Nginx服务:nginx-s reload
在全局配置中需要制定JDK和Maven的HOME目录:
如果没有安装Maven,可以将Maven上传到apache-maven-2.2.1,并修改文件夹权限:
chown -R admin:admin apache-maven-2.2.1/
在Jenkins首页新建一个Job,类型为Maven构建。之后配置项目的SVN地址和Root pom.xml路径:
输入SVN地址后,可能会提示还没有配置SVN的验证方式:
点击红色部分的enter credential配置SVN的验证方式。选择用户名/密码验证方式,输入用户名和密码。
回到Jenkins首页,在项目右侧点击立即开始构建,测试一下是否有何错误。第一次构建需要下载Maven的Jar包可能会很慢,需要耐心等待。
首先在系统配置->管理插件中,安装需要的插件,如PMD、CheckStyle、FindBugs等。
首先在Root pom.xml中添加配置,并提交到SVN:
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<findbugsXmlOutput>true</findbugsXmlOutput>
<findbugsXmlWithMessages>true</findbugsXmlWithMessages>
<xmlOutput>true</xmlOutput>
</configuration>
</plugin>
</plugins>
</reporting>
之后在项目的Goal中添加findbugs目标:
重新构建一次,查看FindBugs的报告:
PMD、CheckStyle等插件安装和配置方法同上。请参考Root pom.xml配置。
Maven Goal设置为:pmd:pmdcheckstyle:checkstyle
1 FindBugs
https://wiki.jenkins-ci.org/display/JENKINS/FindBugs+Plugin
2 PMD
http://maven.apache.org/plugins/maven-pmd-plugin/