问题最近心血来潮把mac版本升级了下,然后就发现我写的登录SSH的脚本  无法登录服务器了。一开始以为是dns出问题了,但是单独 ping  域名  ip 却是对的,我就非常郁闷了。但是由于比较忙一直就没有在乎这个问题,今天上网搜索了下发现有人遇到同样的问题,原来是 mac 升级之后的一个Bug、Bug、Bug。解决方法按照新版本的opensshbrew install openssh
  需求分析        现在微信火了,很多线上的APP都希望通过分享的URL或直接的URL进行产品宣传(写这篇博文的时候,听说微信下个版本将要屏蔽微信中的URL链接),这些链接都将通过微信内置的浏览器打开。PM希望在微信内置浏览器中展示的页面进行个性化处理,那么前端这边必然要去区别判断是否是微信内置浏览器。微信内置浏览器的 User Agent检测浏览器的 User Agent 应该是非常简单的事情,微信在 Android 下的 User Agentmozilla/5.0 (linux; u; android 4.1.2; zh-cn; mi-one plus build/jzo54k) applewebkit/534.30 (khtml, like gecko) version/
缘由最近由于工作调整,很多基础工作都要准备。对我们研发来讲,代码写完了还需要部署到生产环境。那就无法避免的要部署生产服务器的环境。由于软件一直会有更新迭代。这里我们就说下MySQL8.0在CentOS7安装的一个全过程配置源由于默认源已经不再有MySQL软件信息了,所以需要自己去官方下载并安装wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm  yum localinstall  mysql80-community-release-el7-3.noarch.rpm yum install mysql-community-client mysql-community-server服务操作service mysqld start #启动 service mysqld r
起因大家都知道我有个 Python Flask构建微信小程序订餐系统  课程。这个课程主要是讲解 小程序在线商城的。但是有很多学生小程序的账号是没有支付权限的,那么如何完成整个闭环课程的学习咧?接下来我来给大家讲解整个过程。实现过程原理其实很简单,就是模拟支付完成跳过支付过程。这里我用两种方案给大家实现。如下图,由于没有支付权限 就会导致 支付回调 没有。那么我们就得做一件事情:模拟支付回调等于就是自己做一个入口 可以调用支付回调的业务逻辑就行了 也就是C方案一:web模拟回调废话不说,直接上代码''' 模拟回调方法 其实所有回调基本都是校验合法性 然后找到订单id,所以我们模拟就是直接传递 订单id 访问url(可以使用浏览器直接访问) : api/order/callback2?id=xxxx xxx 就是你想把某个订单设置为成功的订单id值 ''' @route_a
  1.mysqlbinlog工具使用方法如下:先使用 show binary logs 查看在使用导出命令mysqlbinlog -R -uroot -pxxxx -hxxx.xxx.xxx.xxx -d db_name  --base64-output=decode-rows  --start-datetime='2015-08-13 13:11:21'  --stop-datetime="2015-08-13 13:18:21" mysql-bin.000008 > mysql-bin.ran_trade_08_13.sql2.mysqldump使用方法如下:# 备份单个数据库 mysqldump  --skip-opt  -u
  每次使用sudo su切换为root用户的,时候,发现/etc/profile里面的配置竟然不可用系统是centos 6.4的,然后研究了一下 /etc/profile  /etc/environment(这个文件为空,那就是什么都不执行)  ~/.profile  /etc/bashrc  ~/.bashrc当用普通用户登陆的时候,会执行    /etc/profile   /etc/bashrc 当使用sudo su切花的时候,会执行   /etc/bashrc    ~/.bashrc(会内部调用 /etc/bashrc)所以可以在 ~/.bashrc  最后一行加入  source  /etc/profile/etc/profile:在登录时,操作系 统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,
我们技术人一般都会有自己的一个博客,用于记录一些技术笔记,也期望自己的笔记文章可以让更多人知道。如何让更多人知道自己的博客?搜索引擎收录,用户通过关键词搜索可能会进入内容运营,但是一般技术人为了文章做运营的人应该没有几个通过大流量同类型网站导流量我是使用 方法一 和 方法三,方法一就不说了,互联网人都知道了,但是小网站效果不会太好了。方法三就是充当复读机:复制 和 粘贴  到其他技术网站“复制 和 粘贴  到其他技术网站” 收起来容易,这TM就是个体力活呀,谁愿意自己写了一篇文章 再占用半个小时,同步到各个技术网站和论坛。我这次记录的就是如何简单方便的同步管理?MetaWeblog,对就是这个名词,这也是一个协议,我所知道的各大技术网站基本都实现了这个协议,通过这个协议我们就可以向各大技术网站通过接口直接同步博客。作为一个技术人员还是要与时俱进,时刻学习呀,我是偶然有这个想法查阅了一些资料知道了这个协议,但是这个协议于2002年都被提出来了,直到今天才知道,真是羞愧呀
  缘由最近在偶然机会下看了些关于AR VR的资料。查找资料还是挺耗时的一件事情,记录下来一来可以方便大家,二来也可以方便我们自己查阅资源列表前端人脸识别框架Tracking.js与JqueryFaceDetection微信小程序可实现 AR 效果,将带来哪些影响?技术实现有哪些?微信小程序拍照后提取指定框内的图片微信小程序实现拍照画布指定区域生成图片微信小程序可实现 AR 效果,将带来哪些影响?技术实现有哪些?微信小程序运行 TensorFlow 的 Demo如何让onCameraFrame 获取的frame数据与相机控件显示范围一致小程序 使用upng.js 把小程序选择的图片转换为base64小程序canvas转base64方法 使用upng库 亲测没问题微信小程序运行 TensorFlow 的 Demo TensorFlow 实现抠图算法 Deep Image Matting(占坑) trackingjs Web人脸检测实现人脸贴图、Web人脸识别、tracking.js、face-
缘由    Python在AI,AR VR这块使用越来越广泛。同时在Web方面也有很多成熟的框架。而我本身由于使用Flask 比较多,个人认为就是比较简单,容易入手,可定制化强。这里我将我经过多个项目多次迭代的自认为还可以的框架结构整理出来。方便自己可以更容易创建新项目。    大家也知道我录制了两门关于python的课程都是基于这个定制化的分层结构的框架开发系统的目录结构. ├── api  api存放 │   ├── controllers 所有的C层放在这里 │   ├── interceptors 拦截器相关 ├── application.py  封装的Flask的全局变量,包括app,数据库等 ├── common 存放
起因由于我录制过一个小程序的课程,里面有消息模板的讲解。最近有几位同学反馈 官方要 取消消息模板,使用订阅消息。为了方便大家容易学 Python Flask构建微信小程序订餐系统  课程。我把订阅消息结合这个课程讲解下如何实现实现过程其实对于我们来讲,对接第三方无非就是接口地址换了,或者流程上做一些调整。好,废话少说我们直接来通过实战讲解如何对接  订阅消息第一步:阅读订阅消息官方文档对接任何东西必然要先了解这个东西是什么?流程是什么样的?官方文档地址:点击这里传送门。主要步骤就是 申请模板、获取发送权限、后端调用api发送。其中和模板消息最大的区别 就是要获取下发权限,这是最大的区别。也就是这个权限控制在用户手中了。第二步:申请模板第三步:获取授权这一步就需要有个界面明确让用户订阅消息,如果用户拒绝 就不能给用户发送消息了。需要改一下我们课程的小程序。对应API地址:点击这里传送门。那我们来修改我们支付相关的代码。修改记录 总共需要修改三个文件mina/p
  最近使用了acme.sh 生产了 Let's Encrypt 的https 证书,但是在实际服务器上测试遇到如下问题$ curl  "https://www.aaa.com" 如下错误 curl: (60) Peer's Certificate issuer is not recognized. More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificate verification by default, using a "bundle"  of Certificate&
工欲善其事必先利其器,开发环境 和 开发工具 就是 我们开发人员的剑,所以我们需要一个快并且好用的剑关于本篇博文有视频讲解的:vagrant打造跨平台可移动的开发环境对应章节介绍刚开始做开发的时候的都是把开发环境 配置在 自己的电脑上,随着后面我们接触的东西越来越多,慢慢的电脑上都是各种环境了,php,java,python,nodejs等等,非常麻烦,并且经常由于某种原因就把电脑重装了,ORZ,所以环境都要重来。所以打造一个属于自己并且可以移动的环境是非常重要的。vagrant就是一款构建虚拟开发环境的工具,支持window,linux,mac,总有一款适合你。并且vagrant 可以把配置好的环境打包成一个box,分享给其他人直接使用,非常方便系统要求:(本人mac系统)机器支持虚拟化,有时候需要调整bios开启cpu虚拟化。第一步:安装virtualbox (本人virtualbox版本 4.3.30)           
引言权限系统模块对于互联网产品是一个非常重要的功能,可以控制不同的角色合理的访问不同的资源从而达到安全访问的作用此外本次课程有视频讲解: http://www.imooc.com/learn/799 ,对应演示系统:http://rbac.54php.cn 权限控制模型ACLRBAC 基于角色的访问控制从上图我们可以看出,ACL是用户和权限直接关系的,RBAC则是通过角色间接关联用户和权限的。所以角色是RBAC系统的一个重要属性Why RBAC为什么我们选择RBAC模型,原因如下方便用户分组方便权限分配和回收扩展方便,可以满足大部分业务需求RBAC框架图中有5个角标数字,对应的就是RBAC模型重要的5个属性RBAC关系图序号关键属性描述1用户 张三、李四、王五2角色销售经理、销售、前台3用户角色关系张三 是  销售经理 、李四 王五 是 销售4权限添加客户、编辑客户、删除客户,查看客户5角色权限关系销售 拥有 查看客户的 权限、销售经理可
缘由在前面写过一个文章 人生苦短,我用Python  给大家简单介绍了一下Python 能做什么。然后广告了下当时的新课程 Python Flask构建微信小程序订餐系统 。该课程上线之后有些同学反馈没有详细讲解Flask的基础知识 和 课程改造的框架为什么这么来的。基于该原因,重新录制了一门新课程:Python Flask 从入门到精通 。希望大家可以喜欢演示地址:http://movie.54php.cn 大纲课程简介本次课程相对来说比较基础,但是麻雀虽小,五脏俱全。重点是从头到尾的给大家梳理讲解整个Flask 框架的完整知识,并通过演变的方式给大家讲解如何打造构造层次分明的高可用MVC框架。主要是告诉大家为什么?而不是就这样用,让大家明白原理。课程是在双系统下面给大家讲解的,大家可以根据自己喜欢的操作系统进行学习:Windows 和 Linux CentOS7。而Python 我们选择的是3.7版本学习路径【收费
多变的2019        时间是一个伟大的发明,未来总会成为过去,对时间逝去的感慨,同时也对未来充满了希望。被度量的2019年过的真快,这一年可以分几个词来聊聊:焦虑、抉择、重新出发、感恩焦虑        相信大家今年都在经历的各种变动和被变动:动荡的一年。其实在2018年底通过身边的一些事情和消息,感觉到危机很大。对于一个家庭大部分(70%左右)收入靠定时工资的,需要支撑各种开销来讲。无论是正在进行时、还是未来的 变动和 被变动,对于我们这种普通家庭都是折腾不起的。当对未来的恐惧不知道如何解决的时候就会非常焦虑。抉择        所谓穷则思变,既然看到未来的一些路,总不能坐以待毙等死。所以在2018年底就在各种找各路朋友和长者咨询。从2018
起因今天登陆服务器想查看一个端口的占用情况,发现好多TIME_WAIT的情况,吓我一跳。如下是TCP 建立连接的示意图缘由time_wait的作用TIME_WAIT状态存在的理由: 1)可靠地实现TCP全双工连接的终止    在进行关闭连接四次挥手协议时,最后的ACK是由主动关闭端发出的,如果这个最终的ACK丢失,服务器将重发最终的FIN, 因此客户端必须维护状态信息允许它重发最终的ACK。如果不维持这个状态信息,那么客户端将响应RST分节,服务器将此分节解释成一个错误(在java中会抛出connection reset的SocketException)。 因而,要实现TCP全双工连接的正常终止,必须处理终止序列四个分节中任何一个分节的丢失情况,主动关闭的客户端必须维持状态信息进入TIME_WAIT状态。   2)允许老的重复分节在网络中消逝  TCP分节可能由于路由器异常而“迷途”,在迷途期间,TCP发送端可能因确认超时而重发
缘由最近我们公司的慢SQL特别多,特别是某个固定的表,每天基本都有好几千的慢查询,但是这个表有特别大,不能随意加索引,索引我们就需要一个工具来协助我们进行改DDL的时候,不影响业务,那就是 PT工具效果图如下是慢SQL数量折线图 明显可以看到大幅度下降了使用场景在线数据库的维护中,总会涉及到研发修改表结构的情况,修改一些小表影响很小,而修改大表时,往往影响业务的正常运转,如表数据量超过500W,1000W,甚至过亿时在线修改大表的可能影响在线修改大表的表结构执行时间往往不可预估,一般时间较长由于修改表结构是表级锁,因此在修改表结构时,影响表写入操作如果长时间的修改表结构,中途修改失败,由于修改表结构是一个事务,因此失败后会还原表结构,在这个过程中表都是锁着不可写入修改大表结构容易导致数据库CPU、IO等性能消耗,使MySQL服务器性能降低在线修改大表结构容易导致主从延时,从而影响业务读取pt-online-schema-change介绍pt-online-schema-change是pe
缘由由于我个人有个小博客,然后还录制了一些课程,所有就建立了对应的微信群,但是微信群的二维码是变化的,总不能经常换了。所以就想搞一个微信机器人,自动加 微信,自动拉群。废话不多说,先上图效果展示大家可以试试效果,效果相当棒需求其他人可以通过二维码加我好友 自动通过好友通过之后 主动发送一些邀请入群链接和介绍信回复 邀请 、加群 可以发送邀请入群链接所有聊天数据都要存储起来 并且可以通过Web展示根据用户输入信息 回复相关内容技术选型Python3Flask:轻量级的MVC 框架itchat :实现微信API相关接口MySQL:存储相关微信内容图灵机器人:调用API实现主动场景回复架构本人没有使用flask 默认的MVC方式,使用了我自己实现过后的:结构分层明了的MVC框架 。结构如下每一个文件夹都有自己明确的作用├── application.py ├── common │   ├── libs │  &nb
  有时候我们把Yii2 版本进行升级之后 会报一些莫名其妙的错误,这次就遇到如下错误信息an Error occurred while handling another error: exception  'yii\web\HeadersAlreadySentException' with message 'Headers already sent in /xxxx/xxxx/xxx.php on line 90.' in /xxxx/xxxx/vendor/yiisoft/yii2/web/Response.php:366 Stack trace: #0 /xxxx/xxxx/vendor/yiisoft/yii2/web/Response.ph
我们都知道CSS盒模型分为IE盒模型和W3C标准盒模型,它们的计算方式和一个CSS属性有关box-sizing。box-sizing属性值content-box | border-box 默认值:content-boxcontent-box当我们对元素设置content-box.demo1 {   box-sizing: content-box;   width: 200px;   height: 200px;   padding: 20px;   margin: 10px;   border: 5px solid #333; } 复制代码在浏览器具体表现为border-box当我们设置成border-
缘由个人在后台获取了一个新浪图片,最近新浪图片无法展示了,看了下http请求返回状态是403。说明被限制住了。原理一般这种限制都是 通过判断 referer 或者请求来源IP 是不是信任的。解决方案方案一增加如下代码在head头部,但是就会导致所有的请求不会有referer ,这对于我们正常完整进行溯源不太友好方案二可以使用反向代理解决下,通过代理服务器 中转下就可以了。个人推荐第二种方式。但是这样会占用服务器的流量效果不要眨眼。哈哈。采集了一些图片
  家里有一条电脑作为存储,安装了redis 服务,但是后面发现redis服务经常有问题,想卸载无法卸载sudo apt remove redis-server Use 'sudo apt autoremove' to remove them. The following packages will be REMOVED:   redis-server 0 upgraded, 0 newly installed, 1 to remove and 202 not upgraded. After this operation, 919 kB disk sp
使用模态框,一般都会自动带上一个属性,tabindex="-1",因为这个属性的存在,导致select2的搜索框无法输入,去掉这个属性即可解决 html中的tabIndex属性可以设置键盘中的TAB键在控件中的移动顺序,即焦点的顺序。   把控件的tabIndex属性设成1到32767的一个值,就可以把这个控件加入到TAB键的序列中。
仿知网https://www.cn-ki.net/仿知网是一个完全可以代替知网的精品网站;是一个非常强大的论文搜索网站。首先这个网站的论文检索结果和知网的搜索结果基本一样,而且这个网站每个账号前期免费提供论文下载,当你的下载次数没了,你完全可以用其它邮箱再注册其它账号使用;当然,如果你不想再注册账号,这个网站提供一块钱随意下载论文一天,也是非常值得尝试。总体而已,如果需要下载论文,这个网站是一个非常好的选择。全球电视直播http://bddn.cn/zb.htm全国电视直播是一个功能非常强大的电视直播网站,真的是十分良心;电脑推荐使用 edge 浏览器打开或者使用其它浏览器打开,然后右键复制视频地址,potplayer 打开链接也可以播放;注意:电脑直接用浏览器打开可能播放不了,手机可以正常播放。它支持几百个电视直播的网站,几乎拥有一般电视直播网站拥有的所有频道,它还支持港澳台卫视,国外电视等等。它还有的特点就是电视直播播放速度和加载速度非常之快,画质也是十分高清;最后,网站界面简洁,没
  问题一 :somaxconn redis启动警告问题:WARNING: The TCP backlog setting of 511 cannot be  enforced because /proc/sys/net/core/somaxconn is set  to the lower value of 128. 这句话的翻译大概就是:对一个高负载的环境来说tcp设置128这个值,太小了。  这是我的理解,绝对的还需到官网理解。然后我们可以手动设置,或者设置永久值临时解决方案echo 512 > /proc/sys/net/core/somaxconn长期解决方案sudo vim /etc/sysctl.conf #ne
  问题最近使用flask jsonify 进行序列号的过程发现 如果是decimal类型 就会出错,错误如下typeerror object of type 'decimal' is not json serializable jsonify解决方案根据 https://github.com/pallets/flask/issues/835 的解决方案如下pip install simplejson
  一台nginx服务器开了目录浏览功能。方便下载文件。使用时发现,目录内的文件,创建时间比实际时间少8小时。查看官方文档:http://nginx.org/en/docs/http/ngx_http_autoindex_module.html  ,找到这个:autoindex_localtime,作用:是否用本地时间显示时间。默认:否,使用UTC时间。设置 autoindex_localtime on 问题解决。
客服系统开源啦相信最近大家在浏览 浪子博客的时候 ,发现右下角有个浮层。这就是最近做的客服系统。先上图我们看看效果功能特性截图版本是多商户版本,功能相对较多,并且为了支付高并发引入了Redis。该应用在生产对外提供服务。主要功能如下提供商家和客服后台游客聊天,每天游客编号固定,游客UUID有效期为永久提供来路、浏览器、操作系统、设备、访问量统计留言功能商家后台添加客服、留言查询、对话查询定制化设置商户配置(自动弹出、浮层名称、商户名称)支持PC + 手机端 + 微信小程序 + 微信公众号支持IE8技术选项Yii2 GatewayWorker (基于WorkerMan)Mysql Redis为什么使用GatewayWorker?由于GatewayWorker是基于 WorkerMan,并且使用php实现的。主要是为了方便出问题比较好查询。而Swoole 使用C写的,效率肯定会比较高。但是由于本人C不行,怕出了问题无法解决。Redis用来干什么的?用来异步操作的,例如异步
        最近是不是感觉到QQ群,微信群编程浪子都不怎么活跃了?那是因为翻过大山越过海洋出去浪去了。废话少说,先搞点图片视频我们炫一炫 :)。由于公众号限制图片和视频只能少部分,大家可以在最后阅读原文查看美图和视频                这次我们出去了10来天,去了泰国的三个地方。可能有些同学说泰国也算翻过大山越过海洋呀,哈哈。原谅本人没离开过亚洲 :)                不同的年龄段可能出去看到和观察的事物不太一样,这里本人说一下我这次出去的一些感受和想法。不接受反驳
前言最近有好几位同学直接微信赞助说快点更新文章。这个要和大家说声抱歉,的确很久没有写文章了。我们也不找借口,我会尽力保证多写文章。今天我们的主题来讲解 如何给自己的网站 加上HTTPSHTTPS是什么?相对于http,你会发现https 多了一个 S,没错这个S 表示的就是  Secure 安全的意思。为什么要加入这个? 主要是由于HTTP是明文传输的,如果被不法相关人截取了可以直接看到。并且在如今互联网下面 很多人都非常在乎隐私,所以HTTPS已经是趋势化的要求了。HTTPS证书如何获得?我们所知道的这个东西是要收费的,目前很多云服务商打着第一年免费的噱头和主机一起做活动(第二年就会收费的)。今天我们要来说的是如何免费获取HTTPS证书。 免费的安全?其实https证书基本上都是安全的,因为现在的加密算法基本已经很难破解。这里面主要关注点应该在于 浏览器是否可以显示 绿标(或者安全锁)而这个安全锁的显示 是浏览器内置了很多 信誉比较好的 SSL证书机构,这些机构颁发
  • 微信公众号 微信小程序
  • 微信机器人
  • 群1:1046090432
  • 群2:585567981