Coding Poet, Coding Science

Keep Stupid, Keep Hungry


  • Archives

  • Categories

  • Tags

  • Resources

  • About

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

Elixir:建立在Erlang虚拟机上的函数式语言

Posted on 2015-06-06 | Post modified 2016-12-14 | In 编程语言 |

Elixir是建立头Elrang虚拟机上的函数式、并发的、通用的编程语言。Elixir是一个BEAM(Erlang虚拟机的名称)上面的一个比较新的编程语言。Elixir的思想是所有的事物都看成是表达式。现代编程语言通常都具有开些诸如泛型编程、函数式编程、面向对象编程,对并发、并行、异步、非阻塞都有很好的支持,支持多态特性。在函数式编程方面上也支持模式匹配。类型系统当然更为严谨。此外,模式匹配、惰性求值、unicode支持、多态、文档注释甚至文学编程特性、高阶函数也往往都具备。

Elixir的REPL环境是iex命令。Elixir的语言的扩展名是exs。

Erlang的虚拟机的配置是

erl -name node06@10.0.0.151 --cookie a
Read more »
Coding Poet, Coding Science

ElasticSearch搜索软件

Posted on 2015-06-02 | Post modified 2016-12-14 | In 运行维护 |

这里参考了Gitbook上面中文翻译的https://www.gitbook.com/book/fuxiaopang/learnelasticsearch/details。也就是ElasticSearch权威指南。自己觉得现在正面临的问题,也就是在文档中说的:已经被数据淹没,我们创造的系统产生的数据可以瞬间轻而易举地将我们压跨。现在的科技只是致力于如何存储数据,并能将拥有大量信息的数据仓库结构化。而一旦我们想从大量的数据中得出结做做决策的时候,美好的一天就要被毁灭了。不可否认的是,没有数据分析,数据确实要成为一种负担了。所以,我们必须建立能够分析数据的工具,帮助我们从数据中得到知识,得到决策的依据。

ElasticSearch适用于全文搜索、结构化数据的实时统计。Elastic并不只是全文搜索,还具有结构化搜索,统计、查询过滤、地理定位、自动完成等。ElasticSearch也可以应用于生产的环境。所以对我们而言是比较合理的。自己理想中的文献检索,特别是学术文献检索系统,也应该就是这样的。个人感觉,希望ElasticSearch成为自己一生的小伙伴。

Read more »
Coding Poet, Coding Science

Apache的企业搜索工具

Posted on 2015-06-01 | Post modified 2016-12-14 | In 计算机应用 , 网络 |

企业级的应用相对于普通的软件相比,体现了更多的理性,体现了更多的需求的驱动。对普通的程序员来讲,学习企业级的软件提供了一个从底层的程序员上升到资深架构师的问题。不同层次的程序员,思考问题的方式也不一样。到了架构的层面,更多的时候讨论的是架构的缺点与优点。这个时候,根本不是一味地讨论程序有哪些功能。技术不等于产品,产品不等于市场,市场不等于盈利。但是一般程序员做的,只能是基本的技术。掌握架构师的技能,大概是可以做到高级的技术、产品以及市场。

不多说然它的事情。今天的主要的目的是帮助实现一个全文搜索引擎。全文搜索引擎在企业中的应用可以说是信息检索的一个重要的应用。整个的框架的部分为自然语言处理等奠定了基础。没有人工智能的时候,可以是传统的检索的方式。有人工智能与自然语言处理的时候,可以以插件的形式提供新的功能。但是这个架构是稳定的。

通过查找网络上的资料。比较有名的企业级应用的全文搜索引擎有Apache Solr、Sphinx、Elasticsearch等。其中,除了Sphinx,都是基于Lucene的。Java平台上还有所谓的Hibernate Search。一个技术到达企业级别的应用,一般而言是在编程与布署的层面上做一些更大的问题。比如,Lucene作为信息检索基础库,在编程层面上就可以做,许多软件的帮助文档就是使用Lucene作为索引的。但是到了企业级的应用上,Lucene就只是一个基本的IR(Information Retrival)库了。在Solr上面可能有更多的集成。所以,目前我们把Solr和Lucene的分界面看成是编程与架构的分界线。并以Lucene作为案例分析编程与架构是如何关联的。

Read more »
Coding Poet, Coding Science

在Debian/Ubuntu系统下面的Java与Scala包

Posted on 2015-05-24 | Post modified 2016-12-14 | In 编程语言 |

Java包目前在Ubuntu下面的管理

目前的情况是,许多的Java包也安装在系统当中,在系统中的路径是/usr/share/doc、/usr/share/java以及/user/share/maven-repo。三个路径中,/usr/share/java里面用于放置所需要的库,我们可以通过apt-get source libjdom1-java,并在当前目录下解包这个文件,然后就知道jdom1这个jar包是怎样被安装到系统当中去的了。

这里有一个官方的“为Java库构建deb安装包” https://wiki.debian.org/Java/MavenBuilder 的指南。思想是利用Maven构建一个deb安装包。

Read more »
Coding Poet, Coding Science

Julia类型系统与并发

Posted on 2015-05-14 | Post modified 2016-12-14 | In 编程语言 |

一般认为有类型系统的编程语言分成静态类型系统与动态类型系统两大类。静态系统指的是每个程序表达式在程序执行之前都有一个可以计算的类型。而动态类型的类型,只是在运行的期间才被感知。面向对象的编程实践中,经常是在静态类型系统中添加一些灵活的机制。如果代码能够操作不同的类型,便称为是多态。在经典动态类型系统中,多态是显而易见的。

在理解动态系统的时候,需要注意binding与dispatch的区别。具体地说,绑定是把一个名子与一个类型关联起来,而dispatch指的是给出了方法,然后确定由哪个实现来执行这个方法。Julia’s type system is dynamic, but gains some of the advantages of static type systems by making it possible to indicate that certain values are of specific types. This can be of great assistance in generating efficient code, but even more significantly, it allows method dispatch on the types of function arguments to be deeply integrated with the language. Method dispatch is explored in detail in Methods, but is rooted in the type system presented here.

Read more »
1…456…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