Lapis读取中文Mysql数据的问题
作者:糖果
在阿里云的VPS上,准备用lapis克隆一版blog程序,就是现在这个发文章的Blog。
Mysql移植的过程中发现的了问题,Lapis读取mysql数据库数据出现乱码。
查看结果集合
SHOW VARIABLES LIKE 'character%';
mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;
mysql> SET collation_connection = utf8 ;
mysql> SET collation_database = ...
smbclient,ubuntu访问windows共享文件夹
因为有些需求要让Linux通过samba协议访问windows的共享目录,所以做了一下连接的实验。
一.Samba安装
[code]
sudo apt-get install samba
sudo apt-get install samba-client
sudo apt-get install cifs-utils
[/code]
二.Samba的客户端连接
[code]
smbclient //shilihe/lala -U shilihe
[/code]
三.Mount Windows共享文件夹
[code]
mkdir /mnt/win
sudo mount -t cifs -o username=xxx,password=yyyy //xxx.xxx.xxx.xxx/lala /mnt/win
sudo umount /mnt/win
[/code]
四.安装VSFTP
为了方便其间,直接开一个vsftpd的服务最最省时间的。
[code]
sudo apt-get install vsftpd
vim /etc/vsftpd.conf
sudo service v ...
SAE到VPS的移植
SAE到VPS的移植
主要移植的内容是python的django, tornado程序。
除了代码不能全放到blog上,把环境移植的东西简单的记录一下。
VPS上比较要有的Python部件。
apt-get install pip
pip install django==1.5.5
apt-get install pyhton-mysqldb
pip install sae-python-dev
================
上面的内容是去年写的, 今年SAE有调整, 有必要把SAE上的所有应用,移植到VPS上,比如当前这个www.lua.ren的博客系统,这个博客已经已经成功的移植到了VPS上。
因为SAE上的Python运行python都是WSGI形式的, 在移到VPS上的时候,自然就想到了gunicorn,用gunicorn启动python服务,经过在VPS上的测试,要比SAE速度快,在过去在SAE上的主要框架用的是Python的django和tornado, 通过gunicorn把这两个框架放到VPS,是通过的。而确实对这个环境的安装,也没多少兴趣相写了, 不过特别提的是另 ...
Vanilla工程如何设置静态文件夹static
修改/config/nginx.conf
加入路由设置
[code]
location /static/ {
alias static/;
}
[/code]
完整的配置文件,如下:
[code]
pid tmp/-nginx.pid;
This number should be at maxium the number of CPU on the server
worker_processes 4;
events {
# Number of connections per worker
worker_connections 4096;
}
http {
# use sendfile
sendfile on;
# Va initialization
{{LUA_PACKAGE_PATH}}
{{LUA_PACKAGE_CPATH}}
{{LUA_CODE_CACHE}}
{{LUA_SHARED_DICT}}
{ ...
Lapis的layout模板
作者:糖果
在Lapis框架的源码当中的views文件夹有一个layout.lua文件。
html = require "lapis.html"
class Default extends html.Widget
content: =>
html_5 ->
head -> title @title or "Lapis Page"
body -> @content_for "inner"
moonscript的代码很简单。提起这个事是因为, 如果不注意这段代码, 在用lapis的render渲染模板时,这个模板生成的"Lapis Page"的Hmtl title标签会覆盖你的etlua中的title标签。 {render = “index”}
这段程序会自动生成下面下的代码
<!DOCTYPE HTML><html lang="en"><head><title>Lapis Page</title></head><body>
下面是moonscript翻译后的lua代码
content = ...
来至英国朋友的消息
[Alert] Importance message for British nationals in Beijing
The British Embassy Beijing has received information of possible threats against Westerners in the Sanlitun area of Beijing, on or around Christmas Day. British citizens are urged to exercise heightened vigilance. The UK Embassy has issued the same guidance to British Government Staff.
If you’re a British national in China and you urgently need help, call +86 (10) 5192 4000.
If you’re in the UK and concerned about a British national in ...
2015年国产LUA WEB框架一览
2015年国产LUA WEB框架一览
国内框架
Vanilla
LOR
SingeLUA
国外框架:
Lapis
Gin
概况
现在是2016年的开始, 这次想说说LUA国内外的WEB框架,国内开发者的开发框架。据平时的观察,国内做LUA的WEB框架的目前知道的有3到4个,有3个已经开源,有一个至少在一个月后可能开源。
先说已经开源的3个框架: Vanilla、LOR、SingleLUA。国内框Vanilla、LOR、SingleLUA至少这三框架代码在Github上都要以找到。从框架完成度上来看, 三者完成应最高的是Vanilla,LOR有些是借Vanilla的风格,例如目录结构。
简单说一下,3个框架的渊源。(Gin,Vanilla,LOR)Vanilla是一款向国外的框架致敬的作品, 从代码和设计上借鉴了国外的Gin框架, 而LOR借鉴了Vanilla,作者本身也在Vanilla的社区里。从基因的延续的关系来看,三者之间的关系是:爷爷(Gin)->父亲(Vanilla)->孙子(LOR)的关系。
SingleLUA,没太看出和以上说的三个框架有什么 ...
Lapis框架如何“接受”和“返回”JSON数据
by 糖果
Lapis可以定义Json格式的路由,Lapis本身,提供了JSON的解析机制,可以用json_params动作装饰器,想请求发过来的json数据,传self.parms变量中,代码如下:
local json_params = require("lapis.application").json_params
app:match("/json", json_params(function(self)
return self.params.ip
end))
用Curl模拟请求:
$ curl \
-H "Content-type: application/json" \
-d '{"ip": "127.0.0.1"}' \
'https://localhost:8080/json'
返回的JSON数据解析:
<!DOCTYPE HTML><html lang="en"><head><ti ...
Select 网络API
【问题】select,poll,epoll的区别是什么?
select的并发处理是源于BSD系统的支持,poll是商业公司的unix版本SystemV 提供支持。epoll是在Linux 2.5+开始支持的。就像message queue都有BSD和SystemV版本的API。select是处理网络并发处理,与poll的区别是有文件句柄上线限制。poll不会因为打开文件的增多而降低效率。
【select功能概述】
一切复杂的问题都是简单问题叠加组合,引用一下英文文档原文。
“This module provides access to the select() and poll() functions available in most operating systems, epoll() available on Linux 2.5+ and kqueue() available on most BSD. Note that on Windows, it only works for sockets; on other operating systems, it also works ...


