上次捣鼓pelican博客系统还是在2012年, 那时farseerfc学长就提供了无私的帮助, 当时非常兴奋写了这么一篇简单的教程.

这两天捣鼓了好久 终于把博客升级到了pelican3...

新的pelican貌似希望使用者把写作的内容和生成的网页分成两个repo管理, 我嫌麻烦还是把它们都放在了一个repo下面: https://github.com/X-Wei/x-wei.github.com 这个repo包含了生成的网页以及我写作的内容(在pelican_dir目录下面).

换了超赞的新皮肤, 这个是farseerfc学长定制的bootstrap3主题, 非常精美. 学长的版本包含了繁简英日翻译以及导出pdf/png什么的按钮, 功能非常全, 不过直接拿来用不太合适, 比如我就不需要博客的日语版... 我实际是用的silverchard对farseerfc学长主题的修改版. 再稍微修改了一下配色什么的...

如果想要做一个类似的博客, 下面是一些步骤:

1. 安装软件

首先安装pelican3以及其他一些python module (另外个人建议新建一个virtualenv在里面搞):

pip install pelican jinja2 py3babel babel beautifulsoup4 markdown ...

问题: 现在本地ssh连接eth的daint服务器, 连接需要进行两次ssh: 第一次本地连接到ela服务器, 第二次从ela再次ssh到daint. 现在配置本地的ssh代理使之可以一次完成.

第一步: 生成sshkey

ssh-keygen
cat ~/.ssh/id_rsa.pub | ssh your_username@ela.cscs.ch 'cat >> ~/.ssh/authorized_keys'
ssh your_username@ela.cscs.ch

第二步: 修改.ssh/config文件内容

用文本编辑器打开.ssh/config文件, 添加如下内容:

Host daint
    Hostname daint101
    User your_username
    ForwardAgent yes
    ForwardX11 yes
    Port 22
    IdentityFile ~/.ssh/id_rsa ...

之前一直用weka的GUI界面做机器学习的任务, 感觉这个软件虽然界面丑, 不过确实是快速开展机器学期的利器. 关于GUI的weka使用以后有时间再写. 今天这篇记录一下最近使用的java版本的weka.

1. Include jars into project

weka官网的下载链接里选择linux版本的weka压缩包即可, 下载以后找到weka.jar文件, 在工程里将其include一下就可以使用了(btw, 现在开始放弃eclipse, 进入IDEA的怀抱了...).

weka的文档在解压缩的文件里有, 另外在线文档在: http://weka.sourceforge.net/doc.stable-3-8/

about libsvm...

关于libsvm需要有一点特别指出. weka自带的算法里是不包含libsvm的 (有个类似的SMO, 不过还是libsvm久经考验啊...), 需要使用weka的package manager安装. 打开package manager是在weka主界面的菜单里:

在package manager里搜索到libsvm安装即可. 然后(linux下)在主目录可以看到有个wekafiles文件夹, wekafiles/packages/LibSVM/目录下就是libsvm的内容.

需要指出的一点是, 要使用libsvm的话, 需要同时引用两个jar文件, 而且都叫libsvm.jar!!

这两个jar ...

今天介绍一个论文写作的神器: TeXmacs !

0. Why TeXmacs?

一说到"论文写作神器"一般大家首先想到的就是LaTeX, 确实LaTeX写出来的数学公式和文章的排版非常漂亮. 但是作为一个几年来用过LaTeX写过几次报告的小白用户, 说句实话我从来都没有喜欢上过LaTeX. 根本的原因大概是: LaTeX的语法是一种标记语言(markup language), 本质上是给机器看而不是给人看的—就像html源代码是为了给浏览器看而不是直接给人看的.

0.0 LaTeX强迫症自测

矩阵A的转置, 你用tex会怎么写?

⇒ 如果你不能容忍直接写成$A^T$, 而一定要写成类似$\textbf{A}^\intercal$的话... 请直接忽略本文 & 继续用LaTeX, 好走不送......
(另: 强迫症可以去这里看到底怎么打转置: http://tex.stackexchange.com/questions/30619/what-is-the-best-symbol-for-vector-matrix-transpose)

如果你认为这样的细节不重要, 好好描述数学问题本身才最重要的话, 请继续阅读.

0.1 TeXmacs是什么

简言之, TeXmacs是一个所见即所得的编辑器 ...

当年装mint 17.1的时候心想我的电脑有4GB内存怎么可能不够用, 于是果断没有分一个swap分区, 呵呵...

然后就看到chrome这几年来吃内存越来越严重, 导致我开多几个标签页再开eclipse的话电脑就很有可能直接卡死... 郁闷啊 ! 于是决定给系统增加一个swap分区. 之前给thealternative写邮件询问这件事, Sandro Kalbermatter同学热情回复了我告诉我怎么做, 按照他说的果然成功了, 特此一记.

step1. 建立swap分区

首先, 用gparted调整磁盘分区, 缩小一个磁盘的大小, 然后用空出来的空间新建一个swap分区.

关于swap分区应该多大, 根据这个帖子, 大约是内存的2-3倍, 不过我只是分了和内存一样大的4G空间, 感觉这样应该够用了(吧).

我是把存放文件的500G分区缩小, 这个过程会比较慢, 大概二十多分钟以后才结束:

step2. 编辑fstab

建立好了swap分区以后, 打开终端, 输入sudo blkid查看所有的磁盘分区.

$ sudo blkid   
/dev/sda1: LABEL="FILES" UUID="ddefc0a7-30a1-42fb-a71a-0aebb55cb0b3" TYPE="ext2 ...

压缩pdf

convert 只简单指定resize好像不太好使:

convert -resize 50% input.pdf out.pdf

gs(http://blog.sciencenet.cn/blog-467089-773990.html):

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=out.pdf input.pdf

后来发现老是compress以后的结果不好, 看到这篇帖子发现convert有好多选项. 最后实验下来这样convert的效果很好, 既能压缩文件, 又保证了压缩后还足够清楚:

convert -density 200 -compress jpeg input.pdf ...

最近要用SSH连接服务器, Windows下面当然就是用putty了, 遇到的问题总结一下.

保存session

打开putty.exe以后, 输入服务器ip, 之后先别点击登录, 先保存一下session下一次就不用再输入了:

之后点击登录就好了.

本地和服务器之间传输文件

传输的时候貌似不能用linux里的scp命令, 而需要使用另一个putty的工具: psftp

下载的时候那个putty.zip压缩包里有一个psftp.exe, 点击它就打开了. psftp也是一个命令行的工具, 和ssh类似, 用pwd/ls/cd等在服务器的文件系统里进行移动.

而在本地的文件系统里移动的话, 用lpwd/lcd/lls.

移动到了想要传输文件的目录以后(本地和服务器都移动好了以后), 使用put filename上传本地文件到服务器, 使用 get filename 下载服务器文件到本地.

http://www.lellansin.com/putty ...

Eclipse让我很喜欢的最大原因大概就是它的好用的快捷键了, 这里进行一下总结, 掌握这些快捷键可以让编辑代码变得更加高效.

基本快捷键

  • 格式化代码: ctrl+alt+F

非常实用的快捷键, 暂时还不知道别的编辑器还没有发现有同样功能的. 按一下代码就自动缩进得非常整齐了!

  • 注释/反注释: ctrl+alt+C
  • pydev下面的注释/反注释: ctrl+/

另外一些有用的快捷键

  • 显示提示: alt+/

这个可以说是eclipse快捷键里面最有用的一个. 可以显示代码提示的窗口, 这也是我喜欢eclipse的原因之一. 虽然编写代码的时候eclipse的提示框也会在适当的时候出来, 比如按下了.的时候, 但是当它没有出现的时候我们总可以按下alt+/让提示框弹出来. 尤其在使用Java的时候, eclipse的提示相当智能, 也就是说会根据上下文以及函数的定义等东西来提示那些可能出现的项目. 另外, 有时候可能定义了一个超长名字的变量(这样代码可能比较清楚一些), 然后用这个快捷键, 就只需要打一下这个很长名字的前几个字母就可以自动补全了(如果补全的不是想要的, 只需要多按几次这个快捷键就会显示其他可能了)!

  • 打开函数/变量的声明: F3

比方说在程序的某一段看到了调用一个函数, 然后想看看这个函数的内容, 这是不需要拿着鼠标上下滚动着找(有时候定义的函数可能在另一个文件里, 那就更难找了), 只需要按下 ...

Eclipse被称为编程的瑞士军刀, 意思就是只用一个eclipse就可以做很多事情.

最近越来越喜欢eclipse了, 因为作为编辑器而言, eclipse的编辑器让我用起来最舒服的一个(配合一些快捷键以后更是非常爽). 这半年多来发现了一些非常好用的eclipse的插件, 有了这些插件, eclipse可以做更多的事情... 接下来简单介绍一下:

插件安装的方法

先简单说一下eclipse的插件安装方法, 在eclispe界面上, 点击: Help->Install New Software:

之后添加对应的URL就可以了...

ADT

链接

eclipse里添加的URL:

https://dl-ssl.google.com/android/eclipse/

这个不用说了吧, Eclipse已经基本上是android开发的御用IDE了.

PyDev

链接

URL:

http://pydev.org/updates

python的开发更需要有一个提示的东东(好像叫pyLint, 就是可以发现代码里的一些显然的错误), 这个插件装好以后我就很少用geany写python程序了, 尤其是当程序超过100行以后...

但是让人不爽的是, 他需要新建一个project才能运行. 这也是Eclipse的一个让人不爽的方面. 如果是一个小的python程序的话我还是会用geany. 另外, 强烈推荐 ...

Created samedi 31 mai 2014UML就是可以把程序的结构用图的形式表达出来的东西(好像叫类图), 虽然写程序的时候不大会用到这种东西来搞, 但是写报告的时候如果能够加上一张图的话, 就可以少费些口舌来解释代码了, 而且还有一种高大上的赶脚... 所以写完程序写报告的时候可以用一下.

废话不多说, 看看我最后生成的UML图:

这张图表示一个抽象类Operration有三个子类, 然后他们之间的关系... 如果用文字的话要解释半天吧...

这张图是用Green UML做出来的, 这是一个eclipse插件, 安装方法为:

  • 在eclipse里, Help->Install New Software 然后Add这个URL: http://www.cse.buffalo.edu/faculty/alphonce/green
  • 然后一路Next安装就可以了...
  • 如果老师显示pending, 可能是代理的问题(在X非常不爽的一点...哎...), 不过没事, 代理的设置在: window → preference → General → Network Connections ...