时间处理大总结之Python
python中处理时间的模块有三个,datetime, time,calendar,融汇贯通三个模块,才能随心所欲地用python处理时间。本文就是为此而写,文章着重点在于梳理出三个模块的设计脉络,便于大家记忆里面的api。在需要的时候能够去查找相应的方法。但由于calendar模块使用不多,限于篇幅,本文没有涉及。
python中处理时间的模块有三个,datetime, time,calendar,融汇贯通三个模块,才能随心所欲地用python处理时间。本文就是为此而写,文章着重点在于梳理出三个模块的设计脉络,便于大家记忆里面的api。在需要的时候能够去查找相应的方法。但由于calendar模块使用不多,限于篇幅,本文没有涉及。
本文总结了作者在2024年上半年的个人成长和技术进展。作者在GitHub上积极参与开源项目,分享了1100多次代码提交,推动了多个Docker项目的发展。同时,他在知乎和其他技术平台上取得了显著的写作成就,包括获得“大模型优秀答主”称号。此外,作者还参与了多个技术活动和社区交流,推动AI技术的普及和应用。文章还提到他在多平台上的活跃表现和未来的计划。
之前在某电商 App 上浏览商品评论区时,发现一些晒单照片中包含的二维码被马赛克处理了,从马赛克的处理痕迹来看不像是用户手动处理的,更像是机器识别+处理的,对此我更好奇其实现原理了。
借助 ChatGPT,了解到主流的处理方式是通过 OpenCV 识别二维码的位置,并创建一个模糊图层对其覆盖。
作为一名资深Python CRUD boy,在今天用flask和django干这些体力活已经稍显过时,flask这些年来功能并没太大进步,想用什么还是得自己折腾,在工程化方面比较考验开发者的个人素养。而django的虽然功能完善,但它的笨重在需要深度定制时,又显得束手束脚。
最近编写了一个Go程序,向数百万个IP地址发送ICMP ping消息。显然,希望这个过程能尽可能快速高效地完成。因此,这促使我研究各种与网络栈交互和快速发送数据包的各种方法。这是一个有趣的旅程,所以在本文中,我将分享一些学习成果,并记录下来供将来参考:)你将看到,仅使用8个内核就可以达到1880万数据包/秒。这里还有一个GitHub仓库,其中包含了示例代码,可以方便地跟随学习。
RASP是Runtime Application Self-Protection(运行时应用自我保护)的缩写,是一种应用程序安全技术。RASP 技术能够在应用程序运行时检测并阻止应用级别的攻击。随着云计算和大数据的发展,应用程序安全越来越受到重视。RASP 技术作为一种新型的安全防护手段,正在逐渐被业界接受并广泛应用。
RASP是Runtime Application Self-Protection(运行时应用自我保护)的缩写,是一种应用程序安全技术。RASP 技术能够在应用程序运行时检测并阻止应用级别的攻击。随着云计算和大数据的发展,应用程序安全越来越受到重视。RASP 技术作为一种新型的安全防护手段,正在逐渐被业界接受并广泛应用。其中Java RASP 是一种针对 Java 应用程序的 RASP 技术。通过在 Java 虚拟机(JVM)级别进行监控和防护,能够有效防止对 Java 应用程序的攻击。
双缓冲(double buffering)是高效处理I/O操作的一种并发技术,它使用两个buffer,一个goroutine使用其中一个buffer进行写,而另一个goroutine使用另一个buffer进行读,然后进行交换。这样两个goroutine可能并发的执行,减少它们之间的等待和阻塞。
本文还提供了一个类似Java的java.util.concurrent.Exchanger的Go并发原语,它可以用来在两个goroutine之间交换数据,快速实现双缓冲的模式。 这个并发原语可以在github.com/smallnest/exp/sync/Exchanger找到。
那段时间我的站点有时会打不开,起初以为是网络问题,后来越来越严重,进入后台才发现数据库 IO 拉满了。看了看 nginx 的日志才发现站点被疯扫,于是打算做点什么。
然后在 Github 上看了几个防火墙模块,要不然功能不全,要不然使用复杂,于是萌生了自己写模块的想法。
一般情况下,我们通过在应用层读取时间戳,计算两个时间戳的延时($t1 - t0$),就可以得到时延,就足够了。通过观察这个数据,我们可以看到网络的时延情况(latency)和抖动(jitter)。但是有时候,我们想知道物理网络传输网络的时延是多少,比如北京A机房到B机房的时延,如果通过应用层的时间戳来计算,误差就太大了。为什么呢?
在工作中,常常会容易遇到一台电脑用多个 Git 账号的场景,比如账号 company 账号是工作用的,而账号 personal 是自己个人用的。 由于 Git 本身并没有多账号的机制,导致我们在默认设置下无法很好的区分哪个仓库使用哪个账号。 同时,在某些众所周知的场景下,我们无法直接访问到 Github 仓库,需要走一层 proxy 来加速我们的代码拉取与推送速度, 本文将使用 SSH config 相对优雅的解决这些问题。