D.H.Q的烂笔头

Just code for fun~

Archive for 4, 2013

Lua 学习笔记(1) -- 数据类型

Lua 是一个功能强大、快速、轻量的可嵌入式脚本语言,由标准的 ANSI C 实现,由于拥有一组精简的强大特性,以及容易使用的 C API,这使得它可以很容易嵌入或扩展到其他语言中使用,并且有个非官方认领的中文名 -- “撸啊”。

安装 Lua

Lua 安装很简单,把源码下载下来后,直接 make 就行:

wget http://www.lua.org/ftp/lua-5.2.2.tar.gz
tar -zxvf lua-5.2.2.tar.gz
cd lua-5.2.2
make generic
make install
lua -e 'print("Hello World!")'

如果是 Mac 用户,并且装有 Homebrew 的话,一条指令就行:

brew install lua

Lua 是动态(弱)类型的语言,它有一下几种数据结构:

nil(空)

nil 类型表示一种没有任何有效值,它只有一个值 -- nil,例如打印一个没有赋值的变量,便会输出一个 nil 值:

print(type(a))

对于全局变量和 table,nil 还有一个“删除”作用,给全局变量或者 table 表里的变量赋一个 nil 值,等同于把它们删掉,执行下面代码就知:

tab1 = { key1 = "val1", key2 = "val2", "val3" }
for k, v in pairs(tab1) do
	print(k .. " - " .. v)
end

tab1.key1 = nil
for k, v in pairs(tab1) do
	print(k .. " - " .. v)
end

继续阅读 »

在 Heroku 上部署 Erlang 的 CMS -- Zotonic

对于 Zotonic 部署的环境, Heroku 是最合适不过了,提供免费的 Erlang 环境,还有对 PostgreSQL 数据库的支持,市面上是鲜有这种云服务平台。这得益于 Heroku 的 Cedar 平台架构,让 WEB 应用程序运行在任何语言的运行时栈(runtime stack)成为了可能。 其实之前在 twitter 上也有人提过在 Heroku 上部署 Zotonic 的问题,不过官方给出的回复是觉得 Zotonic 的架构不适合在 Heroku 上部署,还是建议在 VPS 上独立搭建比较好些,也许官方没时间做这种移植吧(前段时间人手不足,在讨论组里发广告招一个开发者进核心开发团队)。

不过有趣的事总会激发人去做,一位来自法国的 Zotonic 开发者 -- Eric,就做了一个 Zotonic 在 Heroku 上的构建包(buildpack),成功地把 Zotonic 移植到 Heroku 上。出于好奇,我也去看了下构建包的使用说明,不过要吐槽下构建包的介绍 README 写得相当简单,很多安装细节都省略了,不折腾还不给你搭起来了。这里先奉上 demo 地址:http://genevent.herokuapp.com/,下面就是这个折腾过程的大概记录: 

安装配置 Heroku 的开发环境

其实之前《在 heroku 上部署 webmachine + mochiweb + erlydtl 组合的Erlang Web应用》也提到过 heroku 开发环境的配置,这里就不赘述了,无非就是:

继续阅读 »

Mac 下 PostgreSQL 的安装与使用

在 mac 下,可以利用 homebrew 直接安装 PostgreSQL:

brew install postgresql -v

稍等片刻,PostgreSQL 就安装完成。接下来就是初始数据库,在终端执行一下命令,初始配置 PostgreSQL:

initdb /usr/local/var/postgres -E utf8

上面指定 "/usr/local/var/postgres" 为 PostgreSQL 的配置数据存放目录,并且设置数据库数据编码是 utf8,更多配置信息可以 "initdb --help" 查看。

继续阅读 »

linux命令学习 -- awk

awk 是一个功能强大的文本处理工具,常用于数据结构分析和数据格式化输出。不过它更多像是一种解析型编程语言,因为它有自己的变量、条件表达式、循环,以及算术运算和字符操作,你可以用它的语法规则来写一些对数据进行复杂操作的 awk 脚本。它的命名来自于它的三位创始人姓氏的首个字母:Alfred AhoPeter WeinbergerBrian Kernighan

awk 的用法格式

awk '/查询表达式/ {操作指令}' 文件
  • 查询表达式是一个正则表达式
  • 操作命令 - 符合 awk 语法规则的表达式
  • 文件 - 被操作的文件(也可以是标准数据输出)
  • 用单引号括着的 awk 操作表达式是为了避免 shell 的一些特殊字符不被解释分析

继续阅读 »
返回顶部