文章归档

MySQL 5.7 使用原生JSON类型的例子

首先回顾一下JSON的语法规则: 数据在键值对中, 数据由逗号分隔, 花括号保存对象, 方括号保存数组。 按照最简单的形式,可以用下面的JSON表示: {"NAME": "Brett", "email": "brett@xxx.com"} 如何在MySQL中使用JSON类型: 新建user表,设置lastlogininfo列为JSON类型。 mysql> CREATE TABLE user(id INT PRIMARY KEY, name VARCHAR(20) , lastlogininfo JSON); Query OK, 0 rows affected (0.27 sec) 向user表插入普通数据与json数据。mysql会对插入的数据进行JSON格式检查,确保其符合JSON格式,若插的是不合法的数据,会出现Invalid JSON text错误。 mysql> INSERT INTO user VALUES(1 ,"lucy",'{"time":"2015-01-01

文章分类 新品尝鲜, 经验分享

vimploy–html5 viewport单位兼容包

vimploy viewport unit[vw/vh] polyfill,一个HTML5 VW/VH 单位JS兼容包。该版本暂时只支持vw/vh 两个单位。 Viewport unit 介绍 视窗(Viewport)是你的浏览器实际显示内容的区域——换句话说是你的不包括工具栏和按钮的网页浏览器。 这些单位是vw,vh,vmin和vmax。它们都代表了浏览器(视窗(Viewport))尺寸的比例和窗口大小调整产生的规模改变。 比方说我们有一个1000px(宽)和800px(高)的视窗(Viewport) vw ——代表视窗(Viewport)的宽度为1%,在我们的例子里50vw = 500px。 vh ——窗口高度的百分比 50vh = 400px。 vmin ——vmin的值是当前vw和vh 中较小的值。在我们的例子里因为是横向模式,所以 50vim = 400px。该版本未实现 vmax ——大尺寸的百分比。50vmax = 500px。 该版本未实现 使用条件 页面必须使用 link 方式引入css,所有inline css及@import的css 将不会被处理。 link方式引入的css文件必须要与页面同域,所有外域的css文件将不会被处理。 此 polyfill 不包含media query的兼容处理,所有不支持media query浏览器,需要使用额外的polyfill处理。 使用方法 在源码中已经提供了使用实例放在sample文件夹;dest 文件夹是合并压缩后的单文件包,src 文件夹下源码包。 index.html 文件是单文件的使用方式,直接将文件放到body结束之前即可。 amd.html 文件是使用requireJS的引用方式。使用的时候直接引入 vwpoly 包即可,requirejs.config 方式如下: requirejs.config({

文章分类 作品展示, 其他品种

MM Wistia embed

前言 丫的,我再也受不了在wistia上来回切换上传video到wordpress了。 所以我要弄一个能够在wordpress后台直接选wistia video list然后插入到editor的plugin! 界面 根据惯例还是要+几张界面图的…… 使用 安装好插件之后,先要到设置里面将wistia的API password 及 project id填好, API password 的说明在这里, 一般如果只是读取我们在wistia的数据的话,只需要使用以下密匙即可 (read only) fce4b93e313f9dd14978c807afe4a31146cd65bdfd395c820b66a0a36caffd64 project id就是 在wistia上每个项目页url上的那串hashkey。 配置好之后,editor上就会多了一个wistia embed的按钮,click此按钮,就会将配置了的project下的所有video资料读出来。 只需要选择对应的video,就能自动将video的embed code添加到editor里面。 源码 请checkout SVN http://192.168.33.2/svn/sam/wordpress/plugin/mm-wistia    

文章分类 WordPress Plugins, 作品展示

PGP/GPG 信息加密介绍

前言 由于某些项目需求,我们需要对敏感资料进行加密处理。 PGP 指的是啥?它是个软件,Symantec旗下的商业产品。 PGP(Pretty Good Privacy),是一个基于RSA公钥加密体系的邮件加密软件。可以用它对邮件保密以防止非授权者阅读,它还能对邮件加上数字签名从而使收信人可以确认邮件的发送者,并能确信邮件没有被篡改。它可以提供一种安全的通讯方式,而事先并不需要任何保密的渠道用来传递密匙。它采用了一种RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法,加密前压缩等,还有一个良好的人机工程设计。它的功能强大,有很快的速度。而且它的源代码是免费的。 OpenPGP 是一个加/解密标准 由于加/解密的需求太多了,所以也有一个开源的实现了PGP相同功能的项目叫 GPG(GnuPG),他们都完整实现了 OpenPGP 的标准(RFC 4880)。 我们平时说的PGP可能也指 OpenPGP 这个加/解密标准。 就是这样我们就搞清楚 GPG / PGP / OpenPGP 的关系了,GPG / PGP 都是一个软件集,都是实现了OpenPGP 的标准, GPG是开源项目,而 PGP 就是一个商业软件。 原理及构成 请自行Google……我也懒得搬砖。 主要是通过一组密匙与公匙 处理加/解密;公匙用于加密消息,密匙用于解密消息。 就是说你只需要提供公匙给对方就可以将消息加密,而只有拥有密匙的用户才可以解密消息。 PHP的GPG加密 PHP 有 GnuPG的扩展,可以高效的处理消息的加/解密,不过这个扩展,暂时没有Window下的dll,只能在Linux环境玩。 <?php

文章分类 经验分享

[PHP]一种资源管理权限的方案

前言 整理一下最近研究的一个ACL(访问控制层)的思路。 一般的ACL访问控制层的实现。 我们需要定义一堆的权限规则(rule),然后每个规则,对应1个或数个操作。 具体的规则(rule)还要跟具体的角色(role)绑定。 所以我们被逼需要建立一个存放rule的表,天长日久我们就会有数量可观的rule记录。 这里有两个非常烦人的地方: 规格非常的多,判断都需要加载一堆的rule。 判断非常的耗时,每判断一个规则都需要遍历规则数据。 所以有些人想出了解决方法,经典的例子就是*uix 系统的文件权限系统。 *uix们是怎么干的 他们首先规定了所有的文件有3中操作,读/写/执行, 然后再规定有3种类型的操作情况, 分别是:所有者可操作/所有组可操作/其他人可操作 我们在处理文件上传及创建目录的时候,经常会使用的到的0777 标识其实一个是描述了上面的信息,具体拆成二进制就是: 八进制位 7 7 7 访问类型 所有者 所有组 其他人 二进制位 1 1 1 1 1 1 1 1 1 操作 读 写 执行 读

文章分类 经验分享

Chrome Workspace功能

Chrome Workspace功能是将在Chrome开发者工具(F12)中对文档的修改直接应用于对应文件中。 由于Chrome并不知道当然文档对应用的文件为哪个,所以需要配置Workspace的映射关系来告诉Chrome对哪个文件做修改 使用Workspace条件: Chrome V31+(正式版) 本地服务器开发 1.点击F12工具的设置按钮 2.点击左侧的workspace 3.点击Add folder 4.选择服务器所在的根目录,之后确定会chrome会在上面做出一个提示,点击允许 5.双击下图所示的地方,配置映射关系 6.填写映射关系,视具体情况填写,注意右边的/一定要填写(关键性步骤) 然后点击空白处,完成填写 7.然后回到一个页面中去,试着去更改一个样式数值,验证是否生效 注意      Workspace只对外部引入的CSS样式有效!

文章分类 前端技术, 经验分享

PostgreSQL JSON demo

demo2 server 已经安装上postgreSQL, 帐号: postgres 密码: postgres PHP admin UI略难用,推荐使用客户端。 全平台数据库客户端Navicat 10: P:\_员工文件\sam\software\Navicat 10 3.1的框架已经更新PostgreSQL的DBC驱动。 PgSQL 3.1框架JSON结构实例项目 SVN: http://192.168.33.6/svn/sam/pgsql/3.1 demo: http://demo2.mixmedia.com/pgsql/ 注意: 在本地调试的时候注意激活Pgsql的PHP扩展,去掉php.ini里面的对应的注释: extension=php_pdo_pgsql.dll extension=php_pgsql.dll 使用XAMPP的同学,当启动apache时出现提示找不到 libpq.dll的时候, 在apache的httpd.conf 里面加入这句: LoadFile "C:/Program Files/PostgreSQL/8.4/bin/libpq.dll" 请改成你的libpq.dll 所在的目录路径!一般是在XAMPP/php 文件夹下。

文章分类 新品尝鲜, 经验分享

[翻译]PostgreSQL的JSON类型可以干啥?

这是一篇翻译,原文地址:http://clarkdave.net/2013/06/what-can-you-do-with-postgresql-and-json/ PostgreSQL9.2版本开始引入原生JSON类型的支持,不过官方没有提供更多的支持。 你可以使用以下3种方案使JSON类型的真正能够使用起来: 等待PostgreSQL9.3版本。 使用[plv8]扩展, 通过这个扩展能提供更多的扩展性(你可以自定义自己的函数) 使用[json_enhancements] 扩展,这个扩展是将9.3的JSON函数移植到9.2。 现在我准备开始使用这个新玩意,而我使用的是方案3。我写了另外一篇POST去说明怎样去操作。 adding json_enhancements to PostgreSQL 9.2. 假设你已经在使用9.3或者安装了json_enhancements扩展的9.2版本。 那你现在能干啥呢?答案是:非常多!JSON类型的操作及函数你可以在这里[9.3 documentation]找到。 我准备展示一些有趣的真实场景的例子。 开始: 创建一个数据,执行以语句: createdb json_test psql json_test 填充一些数据: CREATE TABLE books ( id integer, data json ); INSERT INTO books VALUES (1, '{

文章分类 新品尝鲜, 经验分享

Mixmedia Gallery

前言 这个是在制作hyatt 网站的时候,帮忙制作的一个相册 plugin,其实在制作mixmedia.com的时候, 也弄了一个的,不过当时图个方便,使用了一个第三方框架 pklist ,由于这个pklist年久失修,所有还是独立搞一个吧。 也不是什么复杂的东西。 界面 根据惯例还是要+几张界面图的…… 安装好插件之后,在post的编辑页面,出现2个新的metabox, 分别是 Mixmedia Gallery 及 Mixmedia Image, 分别对应多张图片的嵌入,与单张图片的嵌入。 使用 在模板使用上,使用一下3个filter 获取相册及图片的内容: apply_filter('mm_gallery', $post_id); //获取相册图片列表 apply_filter('mm_gallery_detail', $post_id); //获取相册图片附件信息列表 apply_filter('mm_image', $post_id); //获取单张图片的地址 mm_gallery_detail filter 会返回上传的图片在多媒体库中的简介及标题,用于获取一些带描述的图片信息。 具体是啥,你dump出来看就知道了…… 另外这个plugin已经集成了 mm-resize 插件,所以如果安装了这个插件,就不需要再安装 mm-resize 了。 源码 请checkout SVN

文章分类 WordPress Plugins, 作品展示

一种汉堡动画图标的实现

原因 Google Material Design的设计语言出现,使得越来越多的website使用更多的交互效果, 最近风行的汉堡风格网站里面,跟风出现了一些小的交互效果,例如这种汉堡按钮的交互变化。 这里提供一种可供选择的实现方式。 实例 先看看我们实现的效果如何。 http://demo2.mixmedia.com/html/3/ 鼠标点击汉堡按钮的时候,会触发一个交互的小动画,汉堡按钮会变成叉……其实就是这么简单的交互…… OK,效果看到,现在我们需要想想怎样去实现它,可选方案有 SVG / CSS3 Transform, 我们查一下caniuse 看看两种方案的适用平台情况。 这个是 CSS3 Transform : http://caniuse.com/#feat=css-transitions 这个是 SVG http://caniuse.com/#feat=svg-smil 情况好明显……SVG方案之前已经介绍过了,虽然实现的效果及制作的工具都比 CSS3 Transform要好,不过兼容性没有办法保证。 或许等到IE都灭亡了,我们就可以放心的使用SVG方案了。 OK,现在我们使用 CSS3 Transform 去实现这个效果。 前提条件 查 caniuse 我们得知 CSS3 Transform 也不是全兼容的方案。 至少IE8/9 都是不鸟我们的……所以我们需要一个检测 HTML5 功能的工具,为我们区别对待支持 CSS3 Transform的现代浏览器 及不支持 CSS3 Transform的考古浏览器。 有人会问不支持CSS3 Transform的考古浏览器咋办啊?……还用说,用图啊……直接换背景图…… 这个检测HTML5支持情况的工具,应该部分前端的同事知道的了,就是 modernizr 

文章分类 前端技术, 经验分享