Author: admin

PHP API中,MYSQL与MYSQLI的持久连接区别

很久很久以前,我也是因为工作上的bug,研究了php mysql client的连接驱动mysqlnd 与libmysql之间的区别php与mysql通讯那点事,这次又遇到一件跟他们有联系的事情,mysqli与mysql持久链接的区别。写出这篇文章,用了好一个多月,其一是我太懒了,其二是工作也比较忙。最近才能腾出时间,来做这些事情。每次做总结,都要认真阅读源码,理解含义,测试验证,来确认这些细节。而每一个步骤都需要花费很长的时间,而且,还不能被打断。一旦被打断了,都需要很长时间去温习上下文。也故意强迫自己写这篇总结,改改自己的惰性。…

如何防止运营商内容劫持(http劫持)

如何防止运营商内容劫持(http劫持)

目前来看,根据我的经验,运营商内容劫持是通过白名单策略进行的,主要是针对高流量的访问地址,如微信API,jiathis分享代码,微博网页等进行.

主要表现为js脚本注入,和 html内容 注入.自己的JS代码.

因此,就预防来说,比如,页面引入了,第三方这类JS代码的,要改为HTTPS方式如

<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

改为

<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

 

二是自己站的页面也可能被注入广告代码,一般是在 <body>标签后面,或</body>标签前面注入,所以,我们可以在页面最开始,和最后,分别放入以下代码

 

<!--!DOCTYPE html>
<html>
<head>	 
</head>
<body>	 
</body>
</html-->

以达到迷惑敌人的目的,这段代码,就是引诱作用, 使运营商注入了也不会显示出来,因为注释掉了.

 

三是使用CSP 全称为 Content Security Policy,即内容安全策略。主要以白名单的形式配置可信任的内容来源,在网页中,能够使白名单中的内容正常执行(包含 JS,CSS,Image 等等),而非白名单的内容无法正常执行,从而减少跨站脚本攻击(XSS),当然,也能够减少运营商劫持的内容注入攻击。

四是全站使用HTTPS啦,这是最好的方法,但是也要注意,引入第三方网站的JS时,不能用HTTP方法,要改为HTTPS方式,如果第3方网站 不支持HTTPS连接,那就可以把第三方网站的JS保存下来,放到自己网站上,进行HTTPS连接.

 

 

 …

流媒体:ffmpeg生成HLS的m3u8与ts片段

流媒体:ffmpeg生成HLS的m3u8与ts片段

 

转换方式一

1.直接把媒体文件转为ts

ffmpeg -i cat.mp4 -c copy -bsf h264_mp4toannexb cat.ts

2.使用segment参数进行切片

ffmpeg -i cat.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 2 cat_output%03d.ts

 

 

转换方式二

1.ffmpeg切片命令,以H264和AAC的形式对视频进行输出

ffmpeg -i

mysql5.7.10开启慢查询

#在/etc/my.cnf中的[mysqld]中加入如下代码:
slow-query-log=On
slow_query_log_file=/data/mysql/log/mysql_slow_query.log
long_query_time=2
log_queries_not_using_indexes = ON

第一句是开启慢查询
第二句是用来定义慢查询日志的路径
第三句是用来定义查过多少秒的查询算是慢查询,我这里定义的是2秒
第四句就是记录下没有使用索引的query…

从学习 Paddle 开始学习深度学习(一)

深度学习的黄金时代已经到来

开场白

首先给Baidu打一波广告。Paddle深度学习平台,你值得学习。

它的优点

  • 灵活性:PaddlePaddle支持广泛的神经网络结构和优化算法,很容易配置复杂的模型,如基于注意力(Attention)机制或复杂的内存(Memory)连接的神经机器翻译模型。(Attention和Memory参考阅读: 深度学习和自然语言处理中的attention和memory机制 、 深度学习:推动NLP领域发展的新引擎 )
  • 高效:在PaddlePaddle的不同层面进行优化,以发挥异构计算资源的效率,包括计算、内存、架构和通信等。例如:
    • 通过SSE/AVX内部函数,BLAS库(例如MKL,ATLAS,CUBLAS)或定制CPU/GPU内核优化的数学运算。
    • 高度优化循环网络,以处理可变长度序列,无需填充(Padding)。
    • 优化高维稀疏数据模型的本地和分布式训练。
  • 可扩展性:PaddlePaddle很容易使用多个CPU/GPU和机器来加快你的训练,通过优化通信实现高吞吐量、高性能。
  • 连接产品:PaddlePaddle易于部署。在百度,PaddlePaddle已经被部署到广大用户使用的产品或服务,包括广告点击率(CTR)的预测,大型图像分类,光学字符识别(OCR),搜索排名,计算机病毒检测,推荐等。

来自网络


初识

先做一个形象的比喻,Paddle就好比一台3D打印机,我们设计的神经网络就好比需要打印的模型,而我们的数据集就相当于原材料,把两者同时提供给这台打印机,经过一段时间就可以得到我们预期的产品–模型(Trained Model).

简言之,paddle 做的工作就是利用我们设计的模型和我们提供的数据 通过高性能的并行技术(CPU/GPU)来完成训练。

所以,我们在使用 Paddle 做深度学习时最基本的工作就是设计一个完美的模型并准备好数据。也就是要有以下几个文件:

  • trainer_config.py : 配置神经网络模型
  • data_provider.py : 数据提供
  • train.sh : 配置paddle训练的参数

安装

paddle提供了三种安装方式:

  • Docker 安装,非常便捷,但必须在Docker环境下部署。
  • deb 安装,

百度开源深度学习框架PaddlePaddle安装配置

一、环境配置

PC机一台+UBUNTU 16.04系统

二、过程

1、使用Docker安装PaddlePaddle

1)在Ubuntu 上安装 Docker: 参考 http://blog.p2hp.com/archives/4809

2)安装完后在命令行键入sudo service docker start和sudo docker run hello-world,验证Docker正确安装;

3)在命令行键入     sudo docker run -it paddlepaddle/paddle:0.10.0rc3-noavx /bin/bash开始下载安装Paddle docker,由于网络环境不同,下载速度会有所差异,等待Paddle docker的下载和安装

4)安装完成后,你会发现命令行发生变化了,变成了root@e1f3456e7992:/#,OK,安装成功

2、运行一个PaddlePaddle的Demo

我们以quick_start为例,

1)首先,从github上将paddle项目拉取到本地,或者从github上直接下载项目的zip压缩包:点我进入PaddlePaddle github项目

2) 进入/home/yangyanbin/下载/Paddle-develop/v1_api_demo/quick_start/data

3)在命令行键入 bash ./get_data.sh 下载实验数据

4)启动paddle的docker镜像

在命令行键入 …

Page 1 of 12612345...102030...Last »