Coding Poet, Coding Science

Keep Stupid, Keep Hungry


  • Archives

  • Categories

  • Tags

  • Resources

  • About

  • Search
  • 简体中文
  • English (US)
close
Coding Poet, Coding Science

博客文章功能指南

Posted on 2016-12-15 | Post modified 2017-05-17 | In 写作 , Pandoc |

描述文章内容的格式与需求

适应各种展示场合的标记语言

建立主页可以使用基于静态主页的方案或者基于动态主页的方案。动态主页虽然提供的内容类型较为丰富,但是托管方式比较复杂,创作代价比较高,受运行时环境的影响较大,难以同时适应网页、打印等不同场景的需求。我们需要一种

  1. 内容与格式相分离的描述,以允许我们写作时仅需要关注标记内容。这种描述语言要具有强大的表现力,以适应丰富的表现需求(高亮、文本块、编号、代码高亮、表格、抄录、引用、参考文献等);同时又要足够简洁,尽可能自动地计算出渲染需求。
  2. 这种格式能够向HTML网页、LaTeX、PDF、Word以及维基等多种格式转换。在转换的时候需要人工处理的内容要尽量少。因为我们希望复用博客里面的文章到不同场合(不同网站、不同目的、不同输出)的时候尽可能不需要改动。

然而,这诸多需求之间存在显著的矛盾。在这些矛盾的折衷中,我们看到基于Pandoc的Markdown标记相对而言最接近于我们理想的情况。这是因为:

  1. 现在已有许多Markdown渲染器作为渲染内容的后端程序。许多人员在根据需求不断地改进Markdown;
  2. 虽然Markdown方言很多。但是Pandoc博采众家之长,兼容多种Markdown格式,同时还可以在自家的Markdown和其它Markdown格式之间互转;
  3. 采用Pandoc标准的Markdown格式,可以向HTML、PDF、演示文稿、Word地格式转换。在转换过程中,基本元素(标题、文字加粗倾斜、列表、图片等)均可以展示出来;在表格、插图、参考文献当中也有部分的支持;
  4. 可以使用过滤器手动改进Pandoc元素的渲染方式。

具有最好展示效果的标记语言

LaTeX目前是已知的一种在表现内容方面质量最高的文本标记形式。除了LaTeX本身在设计理念上的优势,丰富的宏包支持以及庞大用户群的持续贡献也是选择LaTeX的重要的因素。然而,LaTeX语法比较复杂,要生成PDF之外的其它格式,同时保持排版效果是比较困难的。在LaTeX世界当中可以找到处理浮动体、编号、文本块高亮以及图表处理的许多有价值的方案。比如

  1. 通过LaTeX的subfig、wrapfigure、caption等宏包提供的环境与命令可以方便地调整图表的组合、编号以及出现位置。
  2. 通过LaTeX的longtable、tabularx、tabu等宏包提供的环境可以指定表格的宽度、对齐、高亮样式等。Markdown对表格的支持没有LaTeX那样方便。
  3. LaTeX可以通过amssymb和eulervm等宏包使用更多的数学符号,还可以自定义数学符号与排版还境,比如范畴论中用到的交换图。这些命令可以在LaTeX文档的导言区中进行配置。
  4. LaTeX有算法宏包algorithmicx、语法高亮宏包listings与minted、化学公式宏包chemfig、UML类图宏包umlcd、乐谱排版宏包abc、lilypond、musixtex等,可以支持领域特定元素的展示。
  5. 总而言之,LaTeX在做到格式与内容分离的同时,还保持了强大的定制格式的能力。
Read more »
Coding Poet, Coding Science

Solr搜索介绍(继续)

Posted on 2016-06-03 | Post modified 2016-12-14 | In 计算机 |

Solr继续

Solr 5.0之后就不再以.war包的格式发布了。而是以一个单独的linux进程发布(daemon)。在其目录下面可以找到init.d目录中的solr,通过该脚本可以启动/opt/solr目录下面的solr工具。但是之后的Solr可能还能够部署到容器当中,但是不是官方所支持的了。

是这样配置的,首先将Solr的tgz后下载之后解压到一个文件夹当中。然后将bin/init.d中的solr文件复制到/etc/init.d目录之下,并需要修改里面的脚本文件。特别是其中的SOLR_INSTALL_DIR变量。然后将solr.in.sh脚本复制到/etc/default目录之下。注意设置RUNAS="root"变量的值,以及SOLR_ENV的值。设置好之后应该就可以通过service solr start启动服务了。这个时候可以通过netstat命令看到7983端口与8983端口已经被监听了。然后打开localhost:8983也可以进入Solr的管理界面。

快速开始教程参考http://lucene.apache.org/solr/quickstart.html。Lucene/Solr的架构见http://www.solr.cc/blog/?p=167。

要使用快速开始,就不能够使用linux daemon的方式直接启动Solr,必须能够加载example里面的collection名称(core名称)。启动的时候,命令改成bin/solr start -e cloud -noprompt,其中的-e选项后面跟例子名称,比如cloud。在这种方式之下启动,我们可以看到管理台界面的各个collection了。然后就可以使用post工具提交待索引的文档(XML、JSON等格式了)。http://blog.csdn.net/near1024/article/details/44105935上面列出了PDF、CSV、XML、JSON、PPT等格式。

之后我们登录控制台,在控制台当中找到getting started的collection,在collection里面选择query,查询一个词,比如2006,在右边就可以返回结果了。https://lucene.apache.org/solr/quickstart.html上面的教程我们可以完全参考,以尝试如何进行POST,QUERY等操作。里面还介绍了如何通过HTTP来进行查询与得到查询结果。还可以找到Solr的各种高级搜索的表达式。详细参考Solr Reference Guide。Solr的集群,则应该参考Admin Guide。

Read more »
Coding Poet, Coding Science

Apache Nutch的介绍与基本使用

Posted on 2016-06-01 | Post modified 2016-12-14 |

Nutch本是一个单独的程序,通过程序可以进行全文的挖掘并定制有关的服务。挖掘出来之后还可以使用Solr进行索引。这样就产生了各个页面。但是另外一方面,Java的程序包又都可以通过包的形式调用,因此在Scala当中也可以使用。但是要在Scala当中使用的话,显然是需要读Nutch的API文档及其用法的。

关于Nutch

2015年1月,Apache Nutch v2.3已经发布了,建议所有使用2.X系列的用户和开发人员升级到这个版本。这个版本提供了一个基于Apache Wicket的Web管理界面,解决了143个问题,提供了Maven依赖,升级到Gora v0.5,支持的底层存储为:

  1. Apache Hadoop 1.0.1 & 2.4.0
  2. Apache Cassandra 2.0.2
  3. Apache HBase 0.94.14
  4. Apache Accumulo 1.5.1
  5. MongoDB 2.12.2
  6. Apache Solr 4.8.1
  7. Apache Avro 1.7.6

同时请注意,Gora对SQL的支持已经过时了。

Nutch的创始人是Doug Cutting,他同时也是Lucene、Hadoop和Avro开源项目的创始人。

Read more »
Coding Poet, Coding Science

随机微分方程的一种引入方法

Posted on 2016-03-17 | Post modified 2016-12-14 | In 概率统计 , 随机过程 |

我们该怎样引入随机微分方程呢?大概是这样的,首先考虑常的微分方程ODE为\(x'=V(x)\), \(x\in \Omega\subseteq\mathbb{R}^n\),然后此方程刻划物理现象的时候作为物体运动的轨迹,其解\(x(t), t\geq 0\)是关于\(t\)的光滑的曲线。但是在许多应用中,从实验所观测到的轨迹不如确定性方程所描述的那样光滑。因此有必要改正ODE为SDE。

也就是变成微分 \[d X(t) = V(X(t)) d t + G(X(t))\xi(t)\] 的形式。其中的\(G(X)\)是\(n\times m\)的矩阵。\(\xi\)是\(m\)维的白噪声。但是问题在于,在数学上如何严格定义白噪音。作为一个随机过程,其解又是什么意思?

直观的解释是使用连续随机过程来处理随机微分方程。每个\(X\)表示是一个随机变量,而\(X(t)\)整体表示的是求解一族随机过程本身。因此也就变成了求随机变量分布或者密度与时间的参数的关系。比如线性单自由度体系的运动方程 \[mX''(t) + cX'(t) + kX(t) = Y(t), X(0) = X_0, X'(0) = X'_0\] 中,引入\(X_1(t) = X(t)\),就写成使用状态变量描述动态系统的方法。这种方法是系统工程与现代控制理论的重要的手段。在振动工程中有许多方便的应用。

Read more »
Coding Poet, Coding Science

快速了解Modelica与OpenModelica建模2-ModelicaML与方程

Posted on 2016-03-13 | Post modified 2016-12-14 |

ModelicaML

ModelicaML同样地用于系统建模。不过不是语言的方式,而是首先以UML类似的模型表示出相应关系,然后这种模型被转换成Modelica的代码。转换代码后就可以执行,模拟出结果。ModelicaML是UML Profile的一个具体的扩展。

ModelicaML的一个开发的方法是在Papyrus UML环境下进行。在此环境之下,通过Acceleo工具生成Modelica的代码,经过M2T工具生成Modelica的.mo文件,之后可以通过任何一个符合Modelica语言要求的模拟工具中运行出来结果。安装Modelica Development Tool的Eclipse插件之后,新建Papyrus工程,在模型语言(Diagram Language)提供的UML、SysML、ModelicaML、Profile中选择ModelicaML,这样就进入了ModelicaML的建模的环境了。之后我们就可以使用ModelicaML来完成建模了(UML本身可以用于元建模,这个时候,UML规范本身就是元元建模工具了)。

Modelica使用类UML的图形表示模型。有结构图、需求图、行为图等描述方法。注意到Modelica本身也是一种元模型规范。Modelica中的元素被看成是prototype,所有的类都是继承自该原型。ModelicaML充分利用了Modelica语言的特性,可以在状态图中使用Modelica的谓词语言与条件判断,同时,也增强了UML建模算法的能力(算法流程以及代数方程)。

Read more »
12…11
Istyasna

Istyasna

GO FORTH now and create masterpieces of the publishing art!

55 posts
36 categories
189 tags
RSS
GitHub Aliyun
Creative Commons
Links
  • Homepage
  • Hainan University
  • Qi Qi
© 2016 - 2017 Istyasna
Powered by Hexo
Theme - NexT.Mist