互联网小趋势的生命力

网上看到一篇文章,觉得说得太对了。分享一下

开放平台是胸怀: 06年,我们都谈开放平以。其实这个理念最初考验的是网站拥有者的胸怀。你是否愿意让其它人进来操作你的数据,是否愿意看到别人作出比你理好的应用层系统?甚至是一些服务层的系统?

FB与微博是社会化:07年,我们都讲SNS。SNS无处不在,因为他本质上是一个社会化的思路下的技术系统表示。愿意接受UGC,能否以社会化的方式让系统内的数据产生和管理发生。原意为这些社会化的小数据作系统,才可以最终生成大数据的拥有者。

电商团购是心理:09年,GROUPON火了,大家都团购。团购本身是没有什么技术创新的。有人说O2O是他的模式创新,可是,难道在原来的C2C网上不能实现吗?就像超市里把促销的商品放在货架边上的花车上,和放在货架里有本质区别吗?区别在于心理,用户体验上的区别。有时候这也会是一种竟争力,是一种常态化的经营思路,但不会主流。

移动PC平板是体验:10年,平板热。这种比手机屏大,比笔记本屏小的东西,满足了某些场景的方便性需求,体验创新很有机会。

Pinterest电商导购是基尼:11年,导购网站火了。瀑布流热了,国内的蘑菇街,美丽说火了。从根本上来看,导购是解决 了网站商品与用户流量之间的基尼关系,把基尼指数变得更小一些。否则80%的流量一直放在20%的热门商品和大卖家的店里,市场规模会有影响。作生态圈好一些,有活路的人多了,市场 才稳定。

外贸电商是库存:12年,外贸电商预热了,GOOGLE TRENDS里显示,才作两年的ALIEXPRESS的指数超过了DHGATE这个作了五六年跨境电商B2B网站,也越来越接近ALIBABA。COM这个老牌SOURCING网站。外贸从批发变小单是什么背景?我想本质上他的销售链变了。MIC基本还没变,没有变成快速反应能力的供应商,但出品商变成了拥有小单外贸客服能力的80后;进口商变成了国外的RETAILER,国外的超市变成了最终消费者。

体感外设是物联:13年,各类体感设备越来越丰富。什么手势,什么随身拍,什么位置设备,拍照设备。好玩。按马斯少理论来讲,工作是生存需求,买房子是安全需求,买车和大房子是社交需求,体现在的单位和职位是尊重需求,买体感设备,那是自我实现。

发现 友言的评论插件 含有弹窗广告

最近做了个 网站,为了图方便评论就用了 第三方评论插件。

最近听朋友反应说 网站有弹窗广告,当时还以为朋友的电脑中病毒了,打开网站会弹出广告。结果今天用IE浏览器测试网页的时候才发现,真的有弹窗广告,还担心是网站被挂马了,仔细看了一下,把 友言的js评论代码 删掉后就好了。。。

第三方插件真的太害人了,这广告不能证明是谁加的,也有可能是 友言的被黑了也有可能。

总结经验,下次能用自己的还是尽量用自己的东西,第三方插件始终不靠谱。还记得以前公司的网站首页使用了 百度广告管理系统,但是有一天百度广告好像瘫痪了,这样使得网站首页无法正常浏览。

如果要选择第三方插件 建议还是 好好挑选一下,不要像我遇到的这种情况

树莓派安装mjpg-streamer视频监控

在树莓派上有几种视频监控软件
fswebcam
motion
mjpg-streamer

上面两种都相对简单,唯独mjpg-streamer整了半天。所以记录下安装过程

首先安装所需软件
sudo apt-get install subversion
sudo apt-get install libv4l-dev
sudo apt-get install libjpeg8-dev

svn下载软件到本地
svn co ttps://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer mjpg-streamer
打开mjpg-streamer目录
cd mjpg-streamer/mjpg-streamer
编译安装
make USE_LIBV4L2=true clean all
make DESTDIR=/usr install

编译时可能会报 i: init_VideoIn failed 错误
错误原因:市面上大部分摄像头都是支持YUV的,而不是JPEG的。mjpg-stream支持JPEG和YUV两种格式。
1、打开以下文件:
sudo vi mjpg-streamer/plugins/input_uvc/input_uvc.c
2、查找 V4L2_PIX_FMT_MJPEG 大概第三页
将一行中的: int width = 640, height = 480, fps = -1, format = V4L2_PIX_FMT_MJPEG, i;
V4L2_PIX_FMT_MJPEG 改成 V4L2_PIX_FMT_YUYV
需要重新编译才会有效。

运行
mjpg_streamer -i “/usr/lib/input_uvc.so -d /dev/video0  -r 320×240 -f 30” -o “/usr/lib/output_http.so -p 8090 -w ./www”

这里很关键,好像视频大小不能大于 320×240 ,前几次设置了 640*480 ,能运行,但打开web无图像。经过测试 只要设置到 320×240 就可以

python的range函数使用和解释

range(start, stop[, step])
这是一个多功能,含算术级数创建列表。这是最经常使用的for循环中。参数必须是普通整数。如果step参数被省略,默认为1。如果省略start参数,默认为0。

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5)
[0, 5, 10, 15, 20, 25]

已经解释的很清楚了,就这么多了

PHP按字符串长度分割成数组,支持中文

支持中文字符串,值得分享学习


/**
 * 将unicode字符串按传入长度分割成数组
 * @param  string  $str 传入字符串
 * @param  integer $l   字符串长度
 * @return mixed      数组或false
 */
 function str_split_unicode($str, $l = 0) {
    if ($l > 0) {
        $ret = array();
        $len = mb_strlen($str, "UTF-8");
        for ($i = 0; $i < $len; $i += $l) {
            $ret[] = mb_substr($str, $i, $l, "UTF-8");
        }
        return $ret;
    }
    return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
 }

 


<?php
 function str_split_unicode($str, $l = 0) {
     if ($l > 0) {
         $ret = array();
         $len = mb_strlen($str, "UTF-8");
         for ($i = 0; $i < $len; $i += $l) {
             $ret[] = mb_substr($str, $i, $l, "UTF-8");
         }
         return $ret;
     }
     return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
 }
 ?>
 $s = "还未如愿sss见gfg者不rtret不朽"; // Mild milk
 print_r(str_split($s, 5));
 print_r(str_split_unicode($s, 5));

 //输出
 //Array ( [0] => 还�� [1] => �如� [2] => ��sss [3] => 见gf [4] => g者� [5] => ��rtr [6] => et不 [7] => 朽 )
 //Array ( [0] => 还未如愿s [1] => ss见gf [2] => g者不rt [3] => ret不朽 )

div+css样式命名规则,值得收藏

写CSS的时候经常不知道该怎么取名,有了这个就好了,也能看到人家的css代码了。值得收藏呀

头:header
内容:content/container
尾:footer
导航:nav
侧栏:sidebar
栏目:column
页面外围控制整体布局宽度:wrapper
左右中:left right center
登录条:loginbar
标志:logo
广告:banner
页面主体:main
热点:hot
新闻:news
下载:download
子导航:subnav
菜单:menu
子菜单:submenu
搜索:search
友情链接:friendlink
页脚:footer
版权:copyright
滚动:scroll
内容:content
标签页:tab
文章列表:list
提示信息:msg
小技巧:tips
栏目标题:title
加入:joinus
指南:guild
服务:service
注册:regsiter
状态态:status
投票:vote
合作伙伴:partner

注释的写法

/* Footer */
内容区
/* End Footer */ 继续阅读

很详细的curl命令使用大全

可以看作命令行浏览器

1、开启gzip请求
curl -I http://www.sina.com.cn/ -H Accept-Encoding:gzip,defalte

2、监控网页的响应时间
curl -o /dev/null -s -w “time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n” “http://www.kklinux.com”

3. 监控站点可用性
curl -o /dev/null -s -w %{http_code} “http://www.kklinux.com” 继续阅读

debian或ubuntu修改时区

买的VPS默认的时区不是中国,时间有些错误,终于找到一个最简单的办法。。。

ubuntu或debian下面如果默认不是中国时区的话,我们就需要手动配置,选择标准北京时间所在的时区,如Asia/Shanghai,Aisa/Chongqing 或 Asia/Hongkong
ubuntu或debian使用下面的命令手动设置服务器时区

在配置窗口中,我们选择Aisa/Chongqing时区。
这只是权宜之计,还需要执行下面的操作 :
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Aisa/Chongqing /etc/localtime
这样的操作,可以避免系统重启后,时间又变了的状况。
以后每次开机,系统就会自动的把时区设为重庆时间。

PHP过滤各种HTML标签

PHP过滤各种HTML标签的表达式,值得收藏


$str=preg_replace("/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i", " ", $str); //过滤img标签

$str=preg_replace("/\s+/", " ", $str); //过滤多余回车

$str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格)

$str=preg_replace("/<\!--.*?-->/si","",$str); //注释

$str=preg_replace("/<(\!.*?)>/si","",$str); //过滤DOCTYPE

$str=preg_replace("/<(\/?html.*?)>/si","",$str); //过滤html标签

$str=preg_replace("/<(\/?head.*?)>/si","",$str); //过滤head标签

$str=preg_replace("/<(\/?meta.*?)>/si","",$str); //过滤meta标签

$str=preg_replace("/<(\/?body.*?)>/si","",$str); //过滤body标签

$str=preg_replace("/<(\/?link.*?)>/si","",$str); //过滤link标签

$str=preg_replace("/<(\/?form.*?)>/si","",$str); //过滤form标签

$str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签

$str=preg_replace("/<(applet.*?)>(.*?)<(\/applet.*?)>/si","",$str); //过滤applet标签

$str=preg_replace("/<(\/?applet.*?)>/si","",$str); //过滤applet标签

$str=preg_replace("/<(style.*?)>(.*?)<(\/style.*?)>/si","",$str); //过滤style标签

$str=preg_replace("/<(\/?style.*?)>/si","",$str); //过滤style标签

$str=preg_replace("/<(title.*?)>(.*?)<(\/title.*?)>/si","",$str); //过滤title标签

$str=preg_replace("/<(\/?title.*?)>/si","",$str); //过滤title标签

$str=preg_replace("/<(object.*?)>(.*?)<(\/object.*?)>/si","",$str); //过滤object标签

$str=preg_replace("/<(\/?objec.*?)>/si","",$str); //过滤object标签

$str=preg_replace("/<(noframes.*?)>(.*?)<(\/noframes.*?)>/si","",$str); //过滤noframes标签

$str=preg_replace("/<(\/?noframes.*?)>/si","",$str); //过滤noframes标签

$str=preg_replace("/<(i?frame.*?)>(.*?)<(\/i?frame.*?)>/si","",$str); //过滤frame标签

$str=preg_replace("/<(\/?i?frame.*?)>/si","",$str); //过滤frame标签

$str=preg_replace("/<(script.*?)>(.*?)<(\/script.*?)>/si","",$str); //过滤script标签

$str=preg_replace("/<(\/?script.*?)>/si","",$str); //过滤script标签

$str=preg_replace("/javascript/si","Javascript",$str); //过滤script标签

$str=preg_replace("/vbscript/si","Vbscript",$str); //过滤script标签

$str=preg_replace("/on([a-z]+)\s*=/si","On\\1=",$str); //过滤script标签

$str=preg_replace("/&#/si","&#",$str); //过滤script标签

如果仅仅是过滤一整篇篇html文档,
比如说head这样的整篇文档中所有的html标签,则可以用 php的 strip_tags()函数来脱掉所有的html或php标签。

需要注意的是:strip_tags()函数是不怎么验证标签的完整性的,也就说如果缺少一个或者其他的标签,则很有可能导致有更多的内容被脱掉。

PHP获取照片exif信息

在这个没图说个屁的年代,照片还是很重要的。如果照片上传后会自动加上 照片相关信息,那用户体验的确会好很多,本着这个想法,今天尝试了下 PHP获取照片exif信息,重要的是 获取图片的GPS信息,如果再加上 google maps API 的话,就可以轻松得到位置信息 继续阅读