灵魂机器

终有一天机器也有灵魂


  • 首页

  • 分类

  • 归档

  • 标签

使用Scala IDE 阅读spark源码 -- 将sbt项目转化为eclipse项目

发表于 2013-06-11   |   分类于 Spark   |  

阅读Spark源代码,最简单的方式是下载源码包,解压后用纯文本方式来阅读源码。这样效率不高,可以用sbteclipse这个插件,将sbt项目文件转化为eclipse项目文件,然后导入到Scala IDE,用eclipse来阅读源码,效率大大提高。

环境:Windows 7, JDK 1.6

  1. 安装 scala。去官网 http://www.scala-lang.org/ ,下载MSI,安装,按默认设置即可。
  2. 安装 sbt。去官网 http://www.scala-sbt.org/ , 下载MSI,安装,按默认设置即可。
    Linux下可以省略以上两步,spark源码自带了一个sbt,且启动sbt时它会自动下载对应的scala编译器。

  3. 安装 Scala IDE。 去官网 http://scala-ide.org/,点击”Get the SDK”绿色按钮,下载。这个IDE的好处是,自带了scala编译器,解压即可使用。

  4. 下载spark源码。 去官网 http://spark-project.org/ 下载源码,当前版本是 0.7.2, source package 大约4M左右。解压源码,例如 解压到 d:spark-0.7.0\

  5. 添加 sbteclipse 插件依赖。spark已经添加了依赖,这一步什么也不需要做。

    这个插件的作用,就是能够读取sbt的配置文件,生成一个eclipse的工程文件。有了eclipse工程文件,就可以导入到eclipse了。

    spark已经添加了依赖,见 d:\spark-0.7.2\project\plugins.sbt,有一行

    addSbtPlugin(“com.typesafe.sbteclipse” % “sbteclipse-plugin” % “2.1.1”)

  1. 启动cmd,启动sbt。

    cd d:\spark-0.7.0
    sbt

    Linux下则是

    cd d:\spark-0.7.0
    sbt/sbt

    开始下载各种依赖包,需要等待很长时间。

  2. 翻@_@墙。见本文最后一段。

    阅读全文 »

LaTeX的各种发行版和编辑器的比较

发表于 2013-04-12   |   分类于 Tools   |  

##发行版(distribution)
TeX类似于Linux,有很多不同的发行版(distribution)。

先看看各个发行版的流行程度。

|———-+——————————-+——–+———–+——————+———–+———–|
| 名字 | 官网 | PR | Alexa | 最后更新 | weibo | quora |
|:——–:|:—————————–:|:——:|:———:|:—————-:|:———:|:——–:|
| TeX Live | http://www.tug.org/texlive/ | 7 | N/A | 2012-07-01 | 43 | N/A |
| MiKTeX | http://miktex.org/ | 7 | 188,485 | 1.3.2 2012-09-24 | 54 | N/A |
| CTeX | http://www.ctex.org/ | 6 | 252,657 | 2.9.2 2012-03-30 | 344 | N/A |
| proTeXt | http://www.tug.org/protext/ | 7 | N/A | 3.1.1 2012-07-23 | 10 | N/A |
|———-+——————————-+——–+———–+——————+———–+———–|

其中CTeX和proTeXt都是基于MiKTeX的,再次进行了打包。国内估计用CTeX比较多。

##编辑器(editor)
编辑器大概分为两种,一种为WYSIWYG,所见即所得,实时预览,类似于Word,另一种是纯文本编辑器,有语法高亮,没有预览功能,需要另外安装一个发行版,编译成PDF后才能预览。

先看看各个编辑器的流行程度。

|————–+————————————-+——–+———–+————–+————————–+———–+———–|
| 名字 | 官网 | PR | Alexa | 预览类型 | 最后更新 | weibo | quora |
|:————:|:———————————–:|:——:|:———:|:————:|:————————:|:———:|:———:|
| TeXmaker | http://www.xm1math.net/texmaker/ | 6 | 289,311 | 无预览 | 4.0.1 2013-03-16 | 60 | N/A |
| TeXworks | http://www.tug.org/texworks/ | 5 | 90,230 | 无预览 | 0.4.4 2012-04 | 23 | N/A |
| TeXstudio | http://texstudio.sourceforge.net/ | 6 | N/A | 无预览 | 2.5.2 2013-01-08 | 15 | N/A |
| TeXnicCenter | http://www.texniccenter.org/ | 7 | 884,570 | 无预览 | v2.0 beta1 2012-11-03 | 10 | N/A |
| Lyx | http://www.lyx.org/ | 6 | 261,649 | 实时预览 | 2.0.5.1 2013-01-08 | 56 | 42 |
| Bakoma | http://www.bakoma-tex.com/ | 5 | 1,327,901 | 实时预览 | 10.10 2013-01-13 | 3 | N/A |
| TeXmacs | http://www.texmacs.org | 6 | 1,525,373 | 实时预览 | 1.0.7.19 2013-03-27 | 27 | N/A |
| LEd | http://www.latexeditor.org/ | 6 | 624,564 | 实时预览 | 0.53 2009-10-09 | 0 | N/A |
|————–+————————————-+——–+———–+————–+————————–+———–+———–|

阅读全文 »

我的Octopress配置

发表于 2013-04-02   |   分类于 Tools   |  

实时预览

使用如下命令可以实现实时预览:

1
rake preview

rake preview 会自动监视文件的变化,重新生成静态页面。因此修改markdown文件后,只需要在浏览器里刷新一下页面,就立刻可以看到效果。不过如果修改了_config.yml的话,则需要Ctrl+C终止,用rake generate重新生成,才能看到效果。

嵌入代码块

见官方文档Sharing Code Snippets。

Octopress是一款为hacker量身定制的博客系统,当然内置了代码高亮的功能!它的代码高亮功能是通过Pygments实现的,配色方案用的是Solarized,堪称完美。

Octopress支持多种方式嵌入代码,可以直接嵌入代码,也可以引用github上的gist 。

我喜欢用三个反引号直接嵌入代码,比 codeblock要简洁。

###启用MathJax
在source/_includes/custom/footer.html的第一行加入如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!-- mathjax config similar to math.stackexchange -->
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
jax: ["input/TeX", "output/HTML-CSS"],
tex2jax: {
inlineMath: [ ['$', '$'] ],
displayMath: [ ['$$', '$$']],
processEscapes: true,
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
},
messageStyle: "none",
"HTML-CSS": { preferredFont: "TeX", availableFonts: ["STIX","TeX"] }
});
</script>
<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML" type="text/javascript"></script>

这样就引入了MathJax的JS包,可以直接在markdown文件里直接写公式了,例如 $\dfrac {\pi}{2}$。

上面的代码也可以在source/_includes/custom/header.html里添加,不过这样会使得页面的加载速度变慢。还可以在source/_layouts/default.html里添加。

阅读全文 »

使用github + Octopress 搭建免费博客

发表于 2013-04-01   |   分类于 Tools   |  

前提条件

注册一个github账号。

任何资料,都不如Octopress 和Github Pages的官方文档,建议首先阅读官方文档。

GitHub Pages快速体验

在GitHub网站上,点击右上角的+号图标,创建一个新的Repo,Repository 的名字必须为 username.github.com。然后点击Settings进入该Repo的设置页面。看到”Automatic Page Generator”,说明这个Repo已经启用了GitHub Page。点击按钮进入设置。

在”Create a GitHub User Page”填写一些基本信息,点击右下角的”Continue to Layout”。布局就用默认的,点击绿色的”Publish”按钮。

大功告成,输入”username.github.com”,看到一个页面没?这就是你刚刚创建的一个页面。

阅读全文 »

机器学习的一些通俗易懂的tutorial

发表于 2013-03-27   |   分类于 Machine-Learning   |  

以下记录了我的学习历程,按我的阅读顺序排序。

##Prior, Likelihood, Posterior
MLAPP第3.2节,讲的很好,用了一个叫 number game 的小游戏做例子,通俗易懂

##距离和相似度度量
距离和相似度度量 » webdataanalysis.net

欧氏距离和余弦相似度的区别是什么? – 知乎

##KNN(K Nearest Neighbor)
K Nearest Neighbor 算法 _ 酷壳 – CoolShell

K-nearest neighbors algorithm – Wikipedia

##K-Means
K-Means 算法 _ 酷壳 – CoolShell

k-means clustering – Wikipedia

K-Means++ _ 愈宅屋

算法杂货铺——k均值聚类(K-means) – T2噬菌体 – 博客园

漫谈 Clustering (1)_ k-means « Free Mind

Text Documents Clustering using K-Means Algorithm – CodeProject

阅读全文 »

一些主流的编程竞赛网站

发表于 2013-03-22   |   分类于 Algorithm   |  

今天把各个主流的编程网站仔细对比了一下,下面从各个角度对比一下这些编程竞赛网站。

##分类和排名


























































































































网站地址



类别



PR



ATR



QF



主办方



备注



TopCoder



综合



6



33,586



4167



TopCoder公司


 

CodeChef



综合



6



41,217



5758



Directi公司


 

CodeForces



综合



5



73,012



599



CodeForces公司


 

SPOJ



ACM



3



75,653



1520



Sphere Research Labs


 

POJ



ACM



7



364,925



N/A



北京大学


 

ZOJ



ACM



6



N/A



N/A



浙江大学


 

UVA OJ



ACM



6



166,991



N/A



University of Virginia


 

SGU OJ



ACM



5



194,881



N/A



Saratov State University


 

HackerRank



综合



5



126,192



56



InterviewStreet公司


 

Project Euler



数学



6



53,854



428



Project Euler公司


 

CareerUp



面试



4



51,089



654



CareerUp公司


 

LeetCode



面试



4



188,196



N/A



LeetCode公司


 

说明:PR是Google PageRank的缩写;ATR是Alexa Trafic Rank的缩写,即Alexa排名;QF是Quora Followers的缩写,具体含义是在Quora上关于某Topic的follower数量,例如CodeChef的topic 有5758个followers。

阅读全文 »

数值计算库与科学计算库

发表于 2013-02-26   |   分类于 Machine-Learning   |  

##BLAS 接口
BLAS, LAPACK, ATLAS 这些数值计算库的名字很类似,他们之间有什么关系呢?BLAS是一组线性代数运算接口,目前是事实上的标准,很多数值计算/科学计算都实现了这套接口。

BLAS定义了那些函数呢?可以查看官方文档。

LAPACK是BLAS的第一个实现,是最老牌的数值计算库,用FORTRAN 77语言写的。LAPACK实现了BLAS接口,并扩充了一些功能。很多数值计算库/科学计算库底层调用了LAPACK。

很多硬件厂商都实现BLAS接口,例如Intel MKL(Math Kernel Library), AMCL(AMD Math Core Library)等。很多开源库也支持,例如ATLAS。

还有非常多的库实现了BLAS接口,见Wikipedia BLAS 的Implementations小节。

下面介绍一些各种语言常用的数值计算/科学计算库。

阅读全文 »

KNN与K-Means的区别

发表于 2013-02-25   |   分类于 Machine-Learning   |  

##KNN(K-Nearest Neighbor)介绍
Wikipedia上的KNN词条中有一个比较经典的图如下:

KNN的算法过程是是这样的:

从上图中我们可以看到,图中的数据集是良好的数据,即都打好了label,一类是蓝色的正方形,一类是红色的三角形,那个绿色的圆形是我们待分类的数据。

如果K=3,那么离绿色点最近的有2个红色三角形和1个蓝色的正方形,这3个点投票,于是绿色的这个待分类点属于红色的三角形。

如果K=5,那么离绿色点最近的有2个红色三角形和3个蓝色的正方形,这5个点投票,于是绿色的这个待分类点属于蓝色的正方形。(参考 酷壳的 K Nearest Neighbor 算法)

我们可以看到,KNN本质是基于一种数据统计的方法!其实很多机器学习算法也是基于数据统计的。

阅读全文 »

用VisualVM连接 tomcat 服务器时,如何配置tomcat启动JMX

发表于 2012-08-11   |   分类于 Tools   |  

用VisualVM连接 tomcat 服务器时,需要让tomcat启动JMX,在catalina.sh 中添加一行代码即可:

1
JAVA_OPTS=”$JAVA_OPTS -Djava.rmi.server.hostname=192.168.0.123 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=8086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

注意,用hostname -i 查看是否为127.0.01,这步非常重要,否则会连接失败,如果是,必须要配置-Djava.rmi.server.hostname。

参考:
Using VisualVM to fix live Tomcat and JVM problems
JVM内存监控:visualVM jconsole jstatd jmap

安装和配置CentOS服务器的详细步骤

发表于 2012-04-23   |   分类于 Tools   |  

这是我安装CentOS服务器的过程,记录下来,与大家一起分享。Ubuntu请见安装和配置Ubuntu服务器的详细步骤。

##安装操作系统
CentOS 6.2 ,CentOS-6.2-i386-bin-DVD1.iso(32位) ,CentOS-6.2-x86_64-bin-DVD1.iso(64位)

安装 CentOS时,选择 “Basic Server”
root密码:root123
CentOS 自带了ssh

安装完操作系统后,添加一个用户 manong

1
[root@localhost ~]$ useradd manong

然后密码设为 manong123

1
[root@localhost ~]$ passwd manong

给予 sudo 权限

1
2
3
4
[root@localhost ~]$ chmod u+w /etc/sudoers
[root@localhost ~]$ vim /etc/sudoers
# 在root ALL=(ALL) ALL 下 添加manong ALL=(ALL) ALL
[root@localhost ~]$ chmod u-w /etc/sudoers

##设置上网
安装完操作系统后,还不能上网,配置DHCP方式上网:

1
2
3
4
5
6
7
8
9
10
11
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="00:0C:29:BD:E1:19"
NM_CONTROLLED="yes"
ONBOOT="yes"
BOOTPROTO=dhcp
USECTL=no
TYPE=Ethernet
PEERDNS=yes
#保存退出
sudo service network restart
阅读全文 »
1…456
soulmachine

soulmachine

一些技术笔记

60 日志
14 分类
9 标签
RSS
GitHub Twitter 微博 知乎
Links
  • 连城
  • 笨狗随手留下
  • 阎栋
  • 并行实验室
  • JavaChen
  • 沈峰
  • 李海鹏
  • Eric
  • 梁兄的技术博客
  • 王孝舒的博客
  • ForeverLee
  • CMU张宇
© 2017 soulmachine
由 Hexo 强力驱动
主题 - NexT.Pisces