配置VIM的插件补全功能---(在WEB IDE中)
VIM提供了很多的第三方插件,足可以把VIM武装成强大的开发IDE,这次抛砖引玉,介绍一下在coding的WEB IDE环境下,家法配置VIM插件,补全插件。
1.进入VIM管理目录。
cd ~/.vim
2.创建工作目录。
mkdir neo
3.下载插件。
wget https://github.com/Shougo/neocomplcache.vim/archive/master.zip
unzip master.zip
4.解压复制文件。
cd neocomplcache.vim-master
cp -r autoload doc plugin vest ../
5.配置.vimrc文件
vim ~/.vimrc
let g:neocomplcache_enable_at_startup = 1
如果是在coding有default环境下,按如上方法安装,再次打开VIM,就会看到自到补全效果。例如可以输入关键字:“function”。
作者:糖果
PS:转载到其它平台请注明 ...
DokuWiki系统介绍与部署安装
作者:糖果
http://www.lua.ren
DokuWiki
这个Wiki系统之前都没有用过,因为最近一个机会使用了DokuWiki,感觉Wiki系统也大有内容。XML-RPC, Atom协议,Wiki的进化越来越强大。DokuWiki是一个轻量级的 Wiki系统。对说需求不是过于复杂的发布任务来说,足以满足。
Doku是一个开源的PHP项目。
在github上的连接:
因为是PHP项目需要一个PHP的开发环境,这个暂略。
不过因为安装过程中,会涉及到某些目录的权限修改问题,需要提一下Apache2, 我们采用的Web服务器是Apache,因为是Ubuntu系统,方便的使用了apt-get的安装方式。
第一步:安装apahce2
sudo apt-get install apache2
以apt-get安装的时候,创建了一个www-data的用户组。在安装dokuwiki的时候,需要把一些目录所属权限改成www-data。
第二步:下载DokuWiki。
把DokuWiki的源文件下载到/var/www/目录下。
git clone https://githu ...
以“99”结尾,奇数价格定价的来由。
the answer to the origin of this strategy is unclear. [3] There are 3 different theories of its history:
这个答案的最开始渊源并已经不很清楚了。关于这个,有三种不同的历史说法。
1.Marketers (such as RH Macy) of mid 1800s tried to ambush their competitors in highly price sensitive goods.
1800年代中叶市场人员(列如RH Macy公司)试图去伏击竞争对手的高价格紧俏货品,采用的一种手段。
2.Melville Stone of Chicago Daily News priced his paper at 1 cent. However, given that cents were not in common use then, he coaxed local shops into odd pricing so that his customers will have the ...
GoTTY简介:共享字符终端,变网页应用
作者:糖果
一.简介。
GoTTY是一个用Go语言开发的工具,这个工具可以把你的Uinx系列操作系统的命令字符终端,共享成普通的网页应用展示出来。
使用tmux工具进行终端分屏。
二.安装。
安装用两种方式:
a).安装目标机器上有GO开始环境。
$ go get github.com/yudai/gotty
b).下载执行文件。
https://github.com/yudai/gotty/releases
下载对应版本的执行文件,运行就可以了。
三.运行。
运行GoTTY,其实就意味着,在目标机上启动的一个WEB应用服务,这个服务映射监听了指IP和端口数据,并把本地的terminal终端信息,发送给请求者,
在远端通过浏览器返问GoTTY服务的用户,就会在她的浏览器网页上,看到你共享的服务器的终端页面。
gotty 有三个参数:
a 指定地址
p 指定端口
w 允许用户,授权客户端写TTY。
我们在Coing上,通过GoTTY分享一个tmux的Web IDE终端:
./gotty -a 0.0.0.0 ...
Lua的MD5库
作者:糖果
crypto.evp也支持md5,因环境问题,我们采用md5。
第一:安装。
sudo luarocks install md5
第二:测试
test.lua
md5=require"md5"
val = md5.sumhexa("test string")
print(val)
目前来看,这个md5库比较稳定,可以优先选择。
第三:注意的地方
如何在解释器(在命令行中,直接输入lua)
md5=require"md5"
在引用的时候,不要写成 local md5=require"md5"。
因为lua local变量的作用域,生存周期的问题,这样声明,在下一 行 “>print(md)"
得到的结果是nil,显而易见的是,如果nil,后面的调用都没法进行了。
没有local修饰 md5:md5=require"md5"
md5打印出来,才是一个table类型的值,之后的sumhexa才可成功调用。
底层调用的如下:
/usr/local/lib/l ...
使用ZeroBrane远程在线调试Openresty, Nginx的Lua程序
作者:糖果
ZeroBrane是一个开源的Lua编辑器IDE,自带Lua运行程序和基本的库。最主要的一点,就是ZB可以远程在线的调试,nginx或是openresty上运行的lua脚本。
在编辑方面可以和VIM及插件互补,多去一句,如果花点时间,给VIM按装补全插件,目录插件,tmux, tup,在分屏状态下,vim还是不错的,其实也可以把ZB的远程调试功能,也做插件,让VIM可以进行远程在线调试。
毕竟把系统的Log打的很全,如果可以在线调试,给WEB服务上运行的脚本程序下断点,对调试工作,也大有裨益。
下面就开始介绍,ZB如何进行在线调试。
1.下载ZB。
https://github.com/pkulchenko/ZeroBraneStudio
里面有一个.sh文件,就是在linux上运行ZB的启动程序。因为我们的Lua WEB程序在VPS上,运行ZB需要给VPS安装Desktop,用VNC连上去。可以参考另外一篇文章。
图片:1.jpg
这是运行起来的ZB界面,这个已经进入的调试工作状态。
2.创建一个Lapis工程,使用如下的命令:
lapis new
关于lapis更具体 ...
如何在SAE上架设RPC服务与Openresty的Lua服务通信
作者:糖果
有时候我们写的服务可能会部署到很同种不同类型的服务器上,有一些数据,可能不便于存在本地,需要一个数据中心,保存这些数据。
我们要求是这样的:
1.客户端服务要周期性的去服务器上拉取数据。(存在SAE MySQL中)。
2.不使用长连接的方式通信,使用基于HTTP的协议。
3.客户端与数据库交互不依赖服务器端采用什么数据库,抽象出一层数据访问层。
基于以上三点:
服务器端:我们将服务器服务架设到SAE的云端,使用SAE支持的Python语言,WEB框架使用的Django,通过RPC协议,为客户端提供服务。服务端的数据存储在SAE的MySQL数据库中,为使服务器端可以对外开发RPC服务接口,使用开源的RPC服务端解决方案RPC4Django。
客户端:这里的客户端其是架设在另一台服务器的Openresty服务,使用Lua语言进行扩展,加入了定时拉取访问数据的流程演示模块,至于如何接定RPC接口,传输什么数据,看具体的实际业务,这里只是通过程序演示这个机制如何在SAE上完成变互的过程。
客户访问端使用持术是用Openresty做服务器,用Lua Lapis框架写成应用。在客户访问 ...
Lua Lapis安装与项目创建
Lapis是程序员leafo写的一个lua语言的WEB框架,目前已经发布了1.3版本。要求的服务器开发环境是Openresty,而且支持moonscript,这个moonscript语言类似于Javascript的coffescript。起到的作用是,可以用简短moonscript实现你的任务,然后通过翻译程序把moonscript翻译成lua语言。
Lapis还提供了命令行工具,用来管理nginx实例的启动,关闭,重新加载。
1.安装luarocks.
在Lua语言生态工具中,有一个类似于Python的Pip一样的引用管理工具,叫做Luarocks。这个工具可以方便的安装,目前在Lua世界中很多的软件包。而如果正好使用的Linux是Ubuntu系统,使用sudo apt-get install luarocks就可以安装Luarocks了。
2.Lapis的安装:
当在Linux系统上安装完luarocks之后,使用如下命令就可以安装lapis:
luarocks install lapis
因为lapis是在有openresty基础上运行,我们假设现在openresty已经安装好了 ...
普通用户使用SUDO安装程序
1.添加用户
可以用adduser和useradd来添加用户,用userdel来删除用户。
最简单的命令:
sudo adduser test
会自动同名组,创建/home/test/,从etc/skel/复制文件,并设定密码和相关初始身份信息
原始一点的命令:
sudo useradd -mk /home/test2 -s /bin/bash test2
sudo passwd test2
如果将此步骤分解一个一个来做:
sudo mkdir /home/test3
sudo useradd -d /home/test3 -s /bin/bash test3
sudo chown test3:test3 /home/test3
sudo cp /etc/skel/* /home/test3
sudo passwd test3
删除用户:
sudo userdel test
rm -rf /home ...
LUA通过授权方式登录Redis
作者:糖果
require "redis"
local redis = require 'redis'
local client = redis.connect('127.0.0.1', 6379)
local auth_flg = client:auth("这里是你的密码")
if not auth_flg then
print("Auth NG!!!")
end
www.lua.ren


