PHP bitmap重叠时间过滤

场景: 计算所有设备的月故障率, 去除重叠的故障时间, 时间单位是秒。 如果直接用bool数组,按一个月30天算, 2592000秒 1个月消耗内存 150MB左右。 相同情况用bitmap只需18MB左右内存。 并可以判断值,减少计算数量。 目前公司项目,统计1年半, 只需耗时700毫秒。 class BitMap { protected $data; public $size; protect

PHP 2022-06-17 bitmap

Mysql联表查询只取附表(关联表)最新行信息

情景: 主表A与附表B,是一对多关系。现关联两表查询,但只取B表中最新的记录。 默认情况下,联表查询,会对每个关联的关系产生一条记录。如A表中有两行记录,B表中对应A两行记录的分别有5行和6行,那么忽略查询条件的情况下,A关联B,将有11行记录。 代码 SELECT * FROM table_a AS A LEFT JOIN table_b AS B ON A.id = B.pid AND NOT

中控考勤机Python操作批量删除人员指纹

需求背景介绍: 工厂有10台中控考勤机用于员工考勤,10台机器里面的人员信息,大致一样(只是为了上班时更快的打卡,采用多台考勤机)。但由于工厂工人流动性大,人事文员删除10台指纹信息,工作量大, 所以有了需求,程序控制批量删除。(这里的批量是指机器的同步删除, 中控提供的管理程序一时间只能操作一台。) 解决方案 采用中控提供的sdk, 写程序连接考勤机,进行操作。目前学习的几种语言中,只有pyth

【Golang】gin框架中间件的实现代码阅读

中间件的作用 中间件的作用在于,可以对于多个不同的请求,都应用某些同样的代码,做到可以复用代码的用途。例如,登陆、日志等等。 gin的中间件 gin的中间件,在gin里面是一个HandlerFunc,实际上跟路由的处理函数是一样的,一个中间件,即是一个带 *gin.Context 参数的函数。 gin中间件可以处理在路由函数前,也可以处理在路由函数后的事务。主要根据 c.Next() 在中间件中的

Golang 2020-11-09 gin 中间件

python-wordpress-xmlrpc 通过搜索关键字获取文章

wordpress是一套很强大的内容管理系统,并且有用xmlrpc的方式提供一些接口,可以用于站长的其它管理需求。 最近在做一些SEO实验性的网站,主要用wordpress搭建文章,然后有采集微信公众号的内容,再发布到网站上面。 本地采集、发布,均用的是python, python管理wordpress有一个包,叫 python-wordpress-xmlrpc 就用的是xmlrpc的方式调用wo

Python 2020-10-23 wordpress xmlrpc

用PIL(pillow)为图片打半透明水印

利用PIL打水印的过程 1.将水印图片转RGBA模式,并设置透明度。如果是打文字水印,利用ImageDraw写出文字图片,RGBA模式。按需求设置图片长宽。 2.将原图转RGBA模式,获取长宽, 计算打水印的位置。 3.用Image的 alpha_composite 函数,整合两张 RGBA图片。 PIL打半透明水印代码 def water_mark_image(img:Image.Image)

Python 2020-10-22 PIL

Beego接收json request时获取的body是空的解决

最近在学习vue,由于之前做这个博客的后台比较简陋,顺势就把管理后台改用restful + vue的形式,重新改做,记录一下遇到的小问题。 后端用的是beego(golang), 前端网路请求库用的是axios。 beego做restful 路由很简单, 只需要一行route就可以把GET、POST、PUT、DELETE四个方法的路由都做好。 比如添加post的restful,四个请求方法的路由:

使用go-sitemap-generator为网站添加sitemap

go-sitemap-generator是一个golang的生成sitemap的包,利用它可以快速生成sitemap文件,及可以ping是搜索引擎,通知收录。 sitemap的意义 xml文件的sitemap更多的用途是,加快搜索引擎对网站的认识,把想要被收录的url放到sitemap里面,搜索引擎就能按照这些url去检索对应的网页。 通过之前的做站经验,sitemap.xml的存在,是有能够加快

Golang 2020-09-10 beego sitemap

wordpress网站如何添加文章阅读计数(非插件实现)

Wordpress程序做小网站很好用, 尤其是个人博客,拥有大量的主题和插件,就算不懂代码都能做出很漂亮的网站。 纯原生的Wordpress程序已经足够满足个人博客的使用,但有时可能由于某些使用习惯,或者需求,我们想计量每篇文章的阅读量。但这功能,Wordpress里面基础功能并没有包含。实现的途径,目前有很多, 大部分可以通过插件,或主题本身自带来实现。 出于学习的目的,通过以下例子,我们可以自

Laravel用TNTSearch做内容搜索

情景前提 普通的sql where like 搜索的形式,不能满足于内容网站的搜索,需求要有分词功能,以便能更准确的找到需要展示的内容。 TNTSearch是一个php实现的轻量级全文索引引擎,可以满足一般网站的使用。 安装 composer reuquire vanry/laravel-scout-tntsearch 发布scout配置文件 php artisan vendor:publish

mysql用replace批量替换内容

replace方法 replace(字段名, 旧内容, 新内容) 具体用法: 批量替换内容中的 http 成 https update contents set value = replace(content, "http://", "https://");

Coding 2020-05-05 mysql 替换

Golang对中文字符串截取不出现乱码的方法

在使用golang的时候,如果直接对string截取,有可能接触出来的字符串最后是一个不能显示的乱码。 s := "中文字符串" fmt.Println(s[:4]) 这是因为对字符串的截取犹如是对btye(8bit)数组的截取,而中文是不止一个字节的,所以就造成截取一个字的一半。而无法显示 解决方法 转换成[]rune s := "中文字符串" s2 :=

Golang 2020-04-24 rune byte