视频推荐APP:“开眼”。
在繁复网络世界中,寻找优质的内容,就像在沙漠中寻找绿洲中的甘泉,在网上,看上去很美的一些东西,其实往往都是海市蜃楼般的内容。
而今天,给小伙伴们,介绍一款新鲜的应用,这款应用还处于内侧阶段 ,名字叫“开眼”。
开眼是一款视频的推荐APP,把精选的视频内容传送给你,可以想刷新闻一样去刷有趣的短视频,另外,像人们说的那样,“开眼“蕴含着让你大开眼界的意思。
特点
“开眼”APP的使用简单明了,开始就会有一个简洁的使用向导。重点介绍了位于,屏幕右上角的“眼睛“图标,负责整个应用的导航,回到其他级别的菜单主要靠她。
从大的功能来看,有以下几大功能:
每日精选
“开眼”每天都会呈上新鲜有趣的视频。
开眼的“每日精选”视频推荐的内容,明显更有品质,给人们挑选的视觉盛宴,是视觉饕餮者的美餐。你可以像刷新闻一样,刷新视频。
往期分类
如果你是对某些类别的视频,情有独钟,可以直接选择“往期分类”。
“往期分类”里,把过去发布的视频,进行了分类安排。你可以快速根据视频类型,定位你的兴趣所在。
3.视频解说
每一个视频都有一段介绍独白。
介绍可以快速帮你判断,是否继续看下去,而且文字 ...
新版网站的PS效果图。
没有对细节渲染的太多,只想用纯的CSS,HTML进行网页布局,不在使用bootstrap的现成部件。
有意思的脚本moonscript
想看看lua到底有什么web框架,为了找到和openresty有点关系的框架,就找到了lapis,lapis是可以在openresty上跑的,更有意思的是,lapis可以使用moonscript,moonscript是一位叫做leafo的人写的。
Lua判断空表的正确姿势
作者:ms2008
编辑:糖果
if t == {} then
这样的结果就是 t == {} 永远返回 false,是一个逻辑错误。因为这里比较的是 table t 和一个匿名 table 的内存地址。
if table.maxn(t) == 0 then
这样做也不保险,除非 table 的 key 都是数字,而没有 hash 部分。
if next(t) == nil then
next 其实就是 pairs 遍历 table 时用来取下一个内容的函数。在项目的 module 中最好封装一下,免得 module 本地也有 next 函数。封装后判断的 lua table 是否为空的函数如下:
function table_is_empty(t)
return _G.next(t) == nil
end
糖果实验室编辑整理
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 ...
二分查找
#include<stdio.h>
int bseek(int key) {
int array[10] = {1,2,3,4,5,6,7,8,9,10};
int low = 0;
int high = (sizeof(array) / 4) - 1;
int mid = 0;
int ret = -1;
while(low <= high) {
mid = (low + high) / 2;
if (key == array[mid]) {
ret = mid;
break;
} else if (key < array[mid]) {
high = mid - ...
Nginx+Lua返回JSON类型数据
作者:糖果
Nginx返回JSON数据,一种是直接在配置文件里设置,一种是通过Lua代码封装完成,讲Nginx中执行Lua返回JSON的关键,一个用API函数ngx.say,同时配合json.encode对JSON格式的字符串进行编码,然后设定响应头信息的类型。
Nginx Conf中返回JSON的方式
location /json/ {
default_type application/json;
add_header Content-Type 'text/html; charset=utf-8';
return 200 '{"about":"糖果的Lua教程,"sites":"lua.ren"}';
}
Nginx Lua返回JSON的方式
三步操作:
1.设置HTTP的响应头信息:
ngx.header['Content-Type'] = 'application/json; charset=utf-8'
2.json.encode(“Lua的Table型变量”):
json = require ...
MoonScript版的Ngx.Timer
作者:糖果
实际如果是直接调用ngx.timer的API,moonscript和lua的ngx.timer的函数写法差别不是很大。
candylab.moon
handler = (fill, params)->
ok, err = ngx.timer.at(1, handler, "params-data")
ngx.log(ngx.DEBUG, "ok:", ok, " err:", err)
ok, err = ngx.timer.at(6, handler, "params-data")
if not ok then
ngx.log(ngx.ERR, "err:", err)
candylab.lua
local http = require("lapis.nginx.http")
local handler
handler = function(fill, params)
local ok, err = ngx.timer.at(1, handler, "params-data")
ret ...