Redis Issue 分析:流数据读写导致的“死锁”问题(1)

2023-07-05
阅读 5 分钟
951
Redis 项目中,一个名为 "[BUG] Deadlock with streams on redis 7.2" 的 issue 12290 吸引了我的注意。这个 bug 中,redis 服务器在处理特定的客户端请求时陷入了死循环,这个现象在 redis 这样的高性能、高可靠性的数据库系统中是极为罕见的。
封面图

GPT4 提问技巧二:提供参考文本

2023-07-03
阅读 3 分钟
1.2k
本文是 GPT4 提问技巧系列的第二篇,全部系列文章:GPT4 提问技巧一:写清晰的说明;GPT4 提问技巧二:提供参考文本;GPT4 提问技巧三:复杂任务拆分;GPT4 提问技巧四:给模型思考时间;OpenAI 可以理解和生成人类语言,帮助我们解答问题,写文章,甚至编程。然而,即使是 GPT-4,也有其局限性,其中之一就是上下文长度...
封面图

GPT4 提问技巧一:写清晰的说明

2023-06-11
阅读 4 分钟
1.9k
在人工智能的世界里,我们常常听到一个词——"prompt"。那么,什么是prompt呢?简单来说,prompt就是我们给AI的指令或问题,它是我们与AI进行交流的桥梁。就像我们在与人交谈时,我们的问题或话题就是对话的引子,同样,prompt就是我们与AI对话的引子。

GPT4 解 Leetcode 题目:最大连续湍流子序列和

2023-06-10
阅读 5 分钟
1.5k
在探索算法的世界中,我们经常会遇到一些挑战,其中动态规划无疑是其中的一大难题。然而,你可能会惊讶地发现,OpenAI 的 ChatGPT 对于动态规划的理解和应用,往往能超越许多接受过专业算法训练的人。它不仅能迅速解决中等难度的问题,还能不断优化解决方案,展现出强大的问题解决能力。
封面图

GPT 插件使用 AI 生成精美视频

2023-06-09
阅读 2 分钟
2k
Heygen 是一个强大的 AI 视频生成器,它可以根据你的文字和图片生成视频。无论你是想制作一个产品演示,一个教育视频,还是一个个人故事,Heygen 都能帮你轻松完成。使用 Heygen,你不再需要学习复杂的视频编辑软件,也不需要花费大量的时间和金钱来制作视频。你只需要输入你的文字和图片,Heygen 就会为你做剩下的工作。

Mac 图片自动压缩上传 COS

2023-06-09
阅读 9 分钟
604
把个人博客放在了 netilfy 托管,它给了一个优化建议,可以压缩图片节省带宽。但是每次截图后都要再压缩下图片有点麻烦,于是想着应该可以偷偷懒。目标很明确,截图后图片传到我的 git 仓库 images 目录后,能给我自动压缩,并且上传 COS,这样我就只用在 markdown 文件里面拼链接就好了。
封面图

GPT4 解 Leetcode 题目:判断是否一条直线

2023-06-09
阅读 3 分钟
649
在当今的数字化世界中,人工智能和机器学习正在改变我们学习和解决问题的方式。特别是在算法学习领域,OpenAI 的 GPT-4 模型已经展示了其强大的能力。这个模型可以理解复杂的问题,提供深入的解答,甚至帮助编写代码。这为学习者打开了一扇新的大门,使他们能够更有效地理解和掌握算法。在这篇博客中,我们将探讨 GPT-4 ...

Postman 高级用法指南

2017-11-12
阅读 4 分钟
10.4k
Postman是一款强大的API接口测试工具,有许多不容易发现的好用的功能,下面简单介绍其中一部分功能。详细内容可以参考文档,官方还有视频教程,非常方便入手。后续本博客会持续提供一些Postman使用的细节技巧,方便大家用Postman进行接口调试。

Python2.x 字符编码终极指南

2016-12-28
阅读 9 分钟
2.8k
在人机交互之字符编码 一文中对字符编码进行了详细的讨论,并通过一些简单的小程序验证了我们对于字符编码的认识。但仅了解这篇文章的内容,并不能帮我们在日常编程中躲过一些字符编码相关的坑,Stackoverflow 上就有大量编码相关的问题,比如 1,2,3。

深入理解Python中的ThreadLocal变量(下)

2016-11-03
阅读 5 分钟
3.6k
在上篇我们看到了 ThreadLocal 变量的简单使用,中篇对python中 ThreadLocal 的实现进行了分析,但故事还没有结束。本篇我们一起来看下Werkzeug中ThreadLocal的设计。

从零开始搭建论坛(三):Flask框架简单介绍

2016-10-30
阅读 3 分钟
10.5k
前面两篇文章中我们已经了解 Web(HTTP)服务器,Web应用程序,Web框架,WSGI这些 Python Web 开发中的概念。我们知道,Web框架通过将不同Web应用程序中的共性部分给抽象出来,提供一系列通用的接口,从而避免开发者做重复性工作,让其将精力放在业务相关的实现。

C++ 中的未定义行为

2016-09-18
阅读 4 分钟
4.4k
等下,好好思考两分钟,然后写几个测试例子跑一下程序。那么你找出程序存在的问题了吗?好了,欢迎走进未定义行为 (Undefined Behavior) 的世界。

被忽视的 partition 算法

2016-08-31
阅读 5 分钟
5.5k
如果你学习过算法,那么肯定听说过快速排序的大名,但是对于快速排序中用到的 partition 算法,你了解的够多吗?或许是快速排序太过于光芒四射,使得我们往往会忽视掉同样重要的 partition 算法。

深入理解Python中的ThreadLocal变量(中)

2016-08-26
阅读 6 分钟
4.9k
在 深入理解Python中的ThreadLocal变量(上) 中我们看到 ThreadLocal 的引入,使得可以很方便地在多线程环境中使用局部变量。如此美妙的功能到底是怎样实现的?如果你对它的实现原理没有好奇心或一探究竟的冲动,那么接下来的内容估计会让你后悔自己的浅尝辄止了。

深入理解Python中的ThreadLocal变量(上)

2016-08-22
阅读 3 分钟
4.7k
我们知道多线程环境下,每一个线程均可以使用所属进程的全局变量。如果一个线程对全局变量进行了修改,将会影响到其他所有的线程。为了避免多个线程同时对变量进行修改,引入了线程同步机制,通过互斥锁,条件变量或者读写锁来控制对全局变量的访问。

从零开始搭建论坛(二):Web服务器网关接口

2016-08-07
阅读 8 分钟
7.4k
在 从零开始搭建论坛(一):Web服务器与Web框架 中我们弄清楚了Web 服务器、Web 应用程序、Web框架的概念。对于 Python 来说,越来越多的 Web 框架面世,在给我们更多选择机会的同时,也限制了我们对于 Web Server 的选择。同样是有着很多 Web 框架的Java,因为有着 servlet API 的存在,任何Java Web框架写的应用程序...

从零开始搭建论坛(一):Web服务器与Web框架

2016-07-28
阅读 5 分钟
15.6k
之前用 Django 做过一个小的站点,感觉Django太过笨重,于是就准备换一个比较轻量级的 Web 框架来玩玩。Web.py 作者已经挂掉,项目好久没有更新,所以不准备用它。而 Flask 也是一个成熟的轻量级 Web 框架,在 github 上有众多的 Star 和 Fork,文档和扩展也很丰富,值得学习。

LeetCode 刷题指南(一):为什么要刷题

2016-07-24
阅读 6 分钟
17.2k
虽然刷题一直饱受诟病,不过不可否认刷题确实能锻炼我们的编程能力,相信每个认真刷题的人都会有体会。现在提供在线编程评测的平台有很多,比较有名的有 hihocoder,LintCode,以及这里我们关注的 LeetCode。

为什么离不开 Stackoverflow

2016-06-26
阅读 4 分钟
7k
作为一名程序员,如果没有听过 Stackoverflow,那么你最好去面壁思过一下。程序员最需要阅读的一本编程书籍(其实编程书留下这本就够了!):

Python 性能分析大全

2016-06-13
阅读 5 分钟
5.7k
虽然运行速度慢是 Python 与生俱来的特点,大多数时候我们用 Python 就意味着放弃对性能的追求。但是,就算是用纯 Python 完成同一个任务,老手写出来的代码可能会比菜鸟写的代码块几倍,甚至是几十倍(这里不考虑算法的因素,只考虑语言方面的因素)。很多时候,我们将自己的代码运行缓慢地原因归结于python本来就很慢...

由 sort 中 key 的用法浅谈 python

2016-05-04
阅读 4 分钟
13.7k
用 Python 时间也算不短了,但总感觉自己在用写 C++ 代码的思维写 Python,没有真正用到其作为脚本语言的优势。之前刷 LeetCode 时,自己的 Python 代码总是很长,很像披着 Python 外衣的 C++ 代码(放在这里,不断重构中)。

让我们一起愉快地逃课吧!

2015-11-25
阅读 4 分钟
3.3k
逃课,在大多数人眼中都是“坏学生”的专利,一说起逃课,就会联想起逃课打游戏,逃课出去玩,逃课把妹等。然而,还可以为了学习而逃课,这里我们要说的就是逃课去学习的故事。

从理论到实践,全方位认识DNS(实践篇)

2015-11-14
阅读 5 分钟
6.8k
在理论篇我们基本了解了DNS的整个协议原理,但是可能还会有着下面的疑问: 为什么我想申请的域名都没了? DNS 域名还要备案,这是为什么啊? 如何将刚申请的域名绑定到自己的网站呢? 怎么才能看到那些在背后默默给我解析的域名服务器呢? 他们说用一个什么文件就可以访问好多好多不存在的网站,是真的吗? 可信任的域名...

从理论到实践,全方位认识DNS(理论篇)

2015-11-05
阅读 5 分钟
11.1k
对于 DNS(Domain Name System) 大家肯定不陌生,不就是用来将一个网站的域名转换为对应的IP吗。当我们发现可以上QQ但不能浏览网页时,我们会想到可能是域名服务器挂掉了;当我们用别人提供的hosts文件浏览到一个“不存在”的网页时,我们会了解到域名解析系统的脆弱。

知其所以然之永不遗忘的算法

2015-11-03
阅读 4 分钟
9.5k
相信大部分同学曾经都学习过快速排序、Huffman、KMP、Dijkstra等经典算法,初次学习时我们惊叹于算法的巧妙,同时被设计者的智慧所折服。于是,我们仔细研读算法的每一步,甚至去证明算法的正确性,或者是去尝试优雅地实现这些算法。总之,我们会花费很大的时间精力去理解这些智慧的结晶。

别惊讶,这只是营销!

2015-10-23
阅读 3 分钟
4.5k
说到营销,你可能会想起街头派发的传单,想起地铁里的各种宣传海报,想起优酷视频开始前漫长的无聊的广告,想起史玉柱的脑残广告台词(敢问有谁没听过?!):

轻量级桌面应用开发的捷径——nw.js

2015-10-15
阅读 3 分钟
19.9k
每个程序员都希望用自己喜欢的语言,自己喜欢的平台、工具,写自己喜欢的程序。于是我们会看到有人在Win下用Visual Studio愉快地coding,也会看到有人在OS X下用Xcode来开发,或者是用Sublime Text不受平台限制地玩。

讲的明白,但写的明白吗?

2015-10-13
阅读 2 分钟
2.9k
一本书的页码从自然数1开始编码直到自然数n,按照通常的习惯,每个页码都不包含多余的前导数字0,例如第6页用数字6而不是06或者006表示。现在给定表示书的总页码的十进制整数n(1 =< n <= 10^9),编程计算书的全部页码中分别用到多少次数字0, 1, 2, 3, 4, 5, 6, 7, 8, 9。

你不知道的按位运算

2015-09-24
阅读 3 分钟
11.4k
Divide two integers without using multiplication, division and mod operator.

两篇文章帮你入门Django(下)

2015-01-11
阅读 4 分钟
5.4k
看上去没有什么问题了,不过我们可以让它变得更加完美,比如说为它添加一个简单的后台,用来管理我们的Question数据库,或者是写点测试单元来看看我们的程序有没有什么Bug。