自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 一系列Python asyncio tasks调用中的contextvars

在Python中,contextvars某种程度上类似于线程的thread local,但主要用于协程。但是在一系列asyncio tasks调用中,上下文本身是否会保持一致呢?让我们来探究一下。

2024-08-11 20:59:39 359

原创 如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)

但是直接使用pm2-runtime,因为没有pm2的驻留进程,所以pm2-runtime会找错路径,比如在pm2.json/这个路径下面去找build好的文件。所以需要先启动一下pm2的进程,然后再用pm2-runtime执行,这个方法如下。在docker中,我们需要使用pm2-runtime而不是pm2来启动,这是因为pm2启动目标进程后会damonize,这样docker容器就结束了。不过在实际的使用中,面对更大的访问压力,通过多进程的方式来部署next.js呢?看到多个next的进程。

2024-07-21 14:58:54 541

原创 一个用于在虚拟桌面下跑chrome的docker镜像

制作了一个用于跑chrome的docker镜像,主要是为了支持能够通过xvfb或者wayland,给chrome提供一个虚拟的桌面环境。这个容器可以通过如下方式获取(tag即为chrome的版本号)

2024-07-09 07:28:44 590

原创 调用asyncio.to_thread后上下文依然一致吗

使用Python的asyncio时,可以把一个同步的函数放到线程池中执行从而避免这个函数阻塞asyncio自身的事件循环。方法就不会造成asyncio的阻塞,反而下面这样直接调用一个下面这样把requests.get简单包在一个async函数里则会造成的协程的阻塞。来执行的函数,与调用方的context是一致的,可以放心的把一些需要获取contextvars的工作放在里面跑。函数时,我们需要注意一点,即asyncio的上下文,也就是通过contextvars来保存的内容通过。来执行时与调用者否是一致的?

2024-07-04 22:08:45 261

原创 在nginx中设置相对路径跳转的方式

虽然写的是相对路径,但是nginx依然会补齐url的前缀,这样在实际的HTTP请求中会看到Location header中依然是绝对路径的跳转。如果nginx中listen的域名不是最终的域名,这样还可能会造成跳转不成功的问题。在nginx中的location中,设置301或302的跳转的方式一般是这样的。如果需要设置相对路径的跳转,可以考虑以下两种方法。第二种,在跳转的路径前面加一个空格(放在引号里)。以上这两种方法都可以获得相对路径的跳转。指令,这样就直接关掉了的绝对路径跳转。

2024-07-02 17:44:09 445

原创 在Python asyncio中如何识别协程是否被block了

现在asyncio在Python中的使用越来越广泛了,但是很多人对于协程(corotine)的一些使用方式还不太熟悉。在这篇文章中,我将会介绍如何识别协程是否被block了,并以常用的HTTP网络库requests/httpx为例来说明如何避免协程被block的问题。

2024-07-02 17:43:08 472

原创 使用mongorestore时no reachable servers错误的解决

首先卸载掉使用的mongo-tools,然后从mongodb的官网下载最新版本的mongo-database-tools(这个是官方最新的叫法)并安装。官方地址是 https://www.mongodb.com/try/download/database-tools。而此时mongosh,或者mongo命令本身是可以连接到mongodb 的数据库的。,会发现mongorestore不报错但是一直没有反应。

2024-05-31 12:59:05 427

原创 使用docker直接运行不同版本nodejs命令

通过docker管理node版本好处是依赖完整,不会出现上面的依赖没有匹配的错误,比nvm等管理器会更加方便。

2024-05-31 11:59:00 689

原创 在Javascript中对emoji字符操作的方式

对于含有emoji的字符串,Javascript是不能直接完成正确的随机访问的。比如对`s = '😀😃😄😁🙂’来说,我可以看到下面的结果也就是说,对于含有emoji的字符串,直接通过默认的字符串操作机制来访问可能会导致一些问题。为了避免出现这些问题,我们可以考虑采用一些方法先把字符串转换成一个Array,Array的每个元素都是一个unicode。

2024-05-17 17:46:18 337

原创 实现一个带有存储状态的Python函数

方法作为函数的入口,并且可以在这个方法里访问和操作类的属性,从而就通过一个类的来模拟了一个带有状态的函数。

2024-05-16 10:19:16 187

原创 人大金仓(KingbaseES V9)的Python环境的配置和基本使用

为了简化这些操作,我写一个脚本对自动化整个过程,并且把相关的文件都放在人大金仓(KingbaseES V9)提供了Python的驱动,可以通过Python来访问人大金仓数据库,不过这个配置并不算十分友好。

2024-04-25 22:36:59 750

原创 MySQL中like关键字与索引的使用

使用like进行查询的逻辑其实非常符合我们的直接的认知。就像在bash中使用grep来筛选命令行的结果和like其实是同样的逻辑。只是如果数据库中的数据很多时,我们需要通过其他的方法来缩减直接应用like的范围而已。

2024-04-24 22:59:31 672

原创 在WSL中基于命令行打开Windows资源管理器

WSL中最方便的地方就是提供了可以方便的和Windows宿主之间进行交互。本文介绍一下如何在WSL中打开Windows的资源管理器,并且把目录定位在WSL的shell所在的目录。如果需要指定相对目录也可以的,注意需要使用反斜杠。这样既可以比较方便在命令行打开资源管理器了。

2024-04-24 16:05:53 328 1

原创 WSL中重定向到剪切板时中文内容的处理

不过直接重定向到clip.exe有个局限,就是系统默认的code page不是65001(UTF-8)时会出现编码问题。那么需要通过两步的处理,并且解除powershell来解决这个问题。然后是通过powershell来执行clip.exe,可以创建一个脚本。首先是设置powershell的profile(可以通过。来把WSL中的运行结果直接复制到Windows的剪贴板了。之前有说过在WSL中重定向脚本输出到剪切板可以。来编辑这个文件),写入内容。这样以后就可以通过重定向到。

2024-04-20 23:42:13 203

原创 通过Docker安装KingbaseES V9并激活开发License

简单介绍一下在Docker中安装人大金仓(KingbaseES V9)的过程,以及如何更换默认的License为官方提供的365天有效期的开发License。下面的安装过程都是在WSL2中完成的。

2024-04-20 00:55:22 677

原创 使用Python将xlsx转换为html表格的方法

下面介绍几个使用Python将Excel的xlsx文件自动转换为html的表格的集中方法。

2024-03-04 11:23:25 727

原创 只用Mysql搞一个分布式锁

在web开发中,分布式的锁的应用场景甚多,我们可以通过分布式锁来进行一些仅依赖于数据库的事务很难直接保证原子性的操作,比如多种不同数据源的访问,网络通信等等。下面介绍一个仅依赖Mysql来完成分布式锁的方式,如果项目比较小且主要使用的数据库是Mysql,那么就不需要引入额外的架构上的依赖了。

2024-01-20 19:21:42 633

原创 如何在死掉后彻底重启wsl2

wsl2(Windows Subsystem Linux 2) 给在Windows上的开发带了非常多的便利,不过wsl2莫名奇妙死掉的情况还是很多的,比如当Windows从休眠状态恢复之后。上面的方法一些方法在更老的版本可以工作,目前来说,在wsl2死掉之后最为有效的重启方法是在Admin模式的powershell下执行下面的命令。

2024-01-20 15:39:35 2196 3

原创 开发与运维中常用的各种ssh的技巧汇总

ssh是开发、运维以及各种日常任务中最经常用到的工具之一,通过ssh可以完成的事情也非常多,当然使用起来确实有时候也有一些费解。这篇文章是一个文章指针,主要是把介绍ssh各种使用场景的文章汇集起来,在需要的时候随时查阅使用。通过公钥私钥和进行登录通过公钥和私钥登录服务器是一种比密码安全很多的方式,相关的介绍性文章如下:查看本机ssh公钥,生成公钥使用ssh公钥实现免密码登录使用ssh agentssh agent可以避免把自己的私钥拷贝到远程服务器中,也是一种比较好的安全实践。ssh a

2020-05-27 19:21:38 521

原创 一些常用软件的镜像的更换方法汇总

假设镜像的地址为mirror_url,下面列举一些主要平台的镜像地址平台方法备注nvmNVM_NODEJS_ORG_MIRROR=<mirror_url> nvm install <version>npmnpm --registry <mirror_url> install <package> npm config set registry <mirror_url>yarnyarn config s

2020-05-13 20:38:29 417 1

原创 把wsl的命令行输出直接定向到剪贴板

在Windows Subsystem Linux中,可以调用到windows路径中的exe文件,也就可以直接调用clip.exe来把输出复制到剪贴板。比如python program.py | clip.exe就可以吧program.py的输出拷贝到剪贴板,就可以在wsl之外的地方粘贴使用了。...

2020-03-13 19:30:57 962 1

原创 通过rclone结合阿里云OSS或者AWS S3发布和上线代码

在进行项目的开发时,在多数测试和上线操作的场景中,我们总是需要把代码或者打包好的代码部署到一个中间的服务器或者存储上。在不同给的情况下,尤其是在很多人合作的情形下,我们就会或多或少的遇到下面的问题:如果大家都在同一个办公场地,代码部署到一个内部的服务器中会很方便(或者以专用网络的形式的访问公司的数据中心),但是在远程办公的条件下(比如在疫情期间),就会存在很多安全性的问题。而且,在家办公的场景...

2020-03-11 17:10:55 1779 1

原创 在Python中以"foo.bar.baz"的方式访问嵌套dict中的内容

我们首先举一个多级嵌套的dict的例子,后面也会用这个例子来结合代码说明:obj = { "foo": { "bar": { "baz": 5 } }}javascript中,可以通过lodash的get方法来获取上面的object中形如"foo.bar.baz"的路径所对应的值,比如_.get(obj, "foo.bar.baz")。那么在Python...

2020-03-03 08:04:02 281

原创 在Windows下通过Python脚本来阻止屏幕关闭

在Windows下可以在系统中设置自动关闭屏幕的时间,在一些场合下,我么可能会想临时的阻止Windows自动关闭屏幕,但是又不想改变系统设置(比如在疫情里面宅在家里远程办公的时候,检查完孩子作业之后回来)。我们可以通过简单的Python脚本来达到这个目标。在Windows中,可以通过SetThreadExecutionState方法来设置应用运行的状态,来设置应用是否需要关闭屏幕,是否可以阻止进...

2020-02-24 11:27:24 3332 2

原创 京东联盟的开放平台的Python客户端封装

我们可以通过requests来实现一个京东联盟开放平台API Client。因为京东联盟开放平台的API都有一个统一的形式和签名方法,所以可以通过一个比较简单的实现来编写一个通用的client,可以比较简单的根据开放平台的文档中的方法名和业务参数来直接进行实际的调用。相关的代码实现如下(也可以在https://gist.github.com/socrateslee/76e91cb7beef6e0...

2020-02-10 19:16:07 2074

原创 从“四舍五入”到“奇进偶舍”

处理取整时,大概下意识的可以想到的方法,都是“四舍五入”吧?不过我们可以先看两个例子,在Python 3中,round(4.5) == 4,而在mongodb 以上的版本中,{$round: 4.5}的结果也是4。对于习惯了只存在“四舍五入”这一种舍入方法的同学们来说,估计是要去怀疑这是不是代码的bug了。其实,这里舍入的方法并不是“四舍五入”,而是采用了所谓的“奇进偶舍”或者“四舍六入五成双”的...

2020-02-03 11:26:08 3648

原创 为什么在Python代码中使用局部变量会更快

在Python开发中,一个常见的效率优化方法就是在进入循环之前,使用局部变量来替代全局变量。具体的,可以对比下面的两个函数:g = 2def local_var(): global g l = g for i in range(100000000): i % l i + ldef global_var(): global g...

2020-01-19 11:22:55 518

原创 在语雀中输入汉语拼音

在语雀中,无法使用HTML中的<ruby>标签来输入拼音,但是语雀可以支持latex公式块的插入,所以我们可以借助公式中的latex来做汉语拼音的输入,具体来说也就是通过latex中的overset指令来输入上下并排的字符。先举一个简单的例子\overset{bái}{白}\overset{rì}{日}\overset{yī}{依}\overset{shān}{山}\overset...

2020-01-19 11:19:03 992

原创 和Windows Terminal配置相关的一些tips

最近,微软的Windows Terminal的预览版可以在Microsoft Store上直接下载安装了。Windows Terminal的整体体验还是相当不错的,在安装之后,除了cmd,powershell之外,自动创建了系统内已经安装的各种wsl(Windows Subsystem Linux)的入口profile,甚至包括Azure Cloud Shell的入口profile也创建了。Win...

2020-01-17 10:23:12 349

原创 调整css让语雀在更宽的屏幕上展示和编辑

在使用蚂蚁金服的语雀文档的过程中,发现文档展示和编辑时的宽度是不能调整的,所以会在一些特殊情况下遇到一代呢人麻烦。比如在使用markdown时,代码段中的内容如果稍微长一些就看不到后面的代码,稍宽一些的表格也会展示的很挤。所以,我针对语雀的css进行了一些调整,让语雀在编辑和展示时可以使用更宽的空间,这即使是一些字段超多的markdown表格,只要有带鱼屏,也可以展示和编辑的很舒服了。这些css...

2020-01-10 19:01:51 1299 1

原创 在Ubuntu Linux Server上使用奔图P2206NW打印机

由于奔图提供的和Linux有关的文档和帮助实在太少了,本文会针对奔图P2206NW来说明一下如何在Ubuntu Linux Server的命令行中安装这台激光打印机的驱动和以及如何打印文档。首先,需要安装cups:sudo apt install cups-bsd可以通过下面的命令来检查一下系统中已经支持的打印机类型是否包括奔图的相关机型:sudo lpinfo -m |grep Pan...

2020-01-06 12:21:40 5070 3

原创 一个用于让国家统计局数据展示的稍微友好一些的Tampermonkey脚本

国家统计局的数据展示也就是国家数据(http://data.stats.gov.cn),在直接展示数据时,采用的样式太窄了,两边的空白都不能利用,很不方便阅读,比如很多表头都不能展示全。所以我简单写了一个脚本,可以通过Tampermonkey在Chrome加载使用,让数据在现代的比较宽的屏幕上可以稍微舒服一些的展示出来。这个脚本可以直接从https://gist.github.com/soc...

2019-05-06 23:01:45 290

原创 对mongodb导出的.bson文件直接进行查询

如果要查询通过mongodb的mongodump导出的.bson文件(比如历史备份),是一件比较麻烦的事情。简单写了一个工具sonq,可以针对.bson文件直接进行查询。首先可以通过pip进行安装sudo pip install sonq然后就可以通过sonq这个命令行工作对.bson文件进行查询了,下面举几个例子。直接输出source.bson文件中的内容,不做过滤:so...

2018-07-23 23:02:31 4702 2

原创 在Windows平台上运行Cassandra

Cassandra通过Java实现,所以可以运行在各种支持JRE的平台上。下面介绍一下如何在Windwos平台上运行Cassandra。1. 下载Cassandra,并解压到一个子目录中(我采用了d:/home/Codes/cassandra)。2. 设定JAVA_HOME和CASSANDRA_HOME这两个系统环境变量。JAVA_HOME定向到JRE所在的目录,比

2010-04-09 13:59:00 861

原创 在Moto XT800上获得root权限和安装Android市场等软件

 对于定制版本Moto XT800,比如中国联通定制版本,如需要获得root权限,并且安装Android Market/Gtalk/Gmail(Google GMS)等,需要通过安装两个update包来实现。 安装update包的方法如下:1. 把update包更名为update.zip2. 一直按住搜索+相机+开机键开机直到屏幕出现叹号3. 按增大音量+相机键键入recovery模式

2010-03-22 15:04:00 1612

原创 在Vmware下安装Fedora Core 12 Live CD

用Fedora Core 12 Live CD在Vmware下安装系统时,会发现无法启动硬盘安装程序(Install Fedora to HDD,就是liveinst这个程序),安装程序只是闪了一下便关闭了。 在网上搜了一下原因是内存不够,把Vmware的内存调大即可(512M以上)。

2010-03-21 15:17:00 1143

原创 解决安装pytc后的一个ImportError

在安装Tokyo Cabinet的python接口pytc后,在import pytc时,遇到了下面的问题 Traceback (most recent call last):  File "", line 1, in   File "build/bdist.linux-x86_64/egg/pytc.py", line 7, in   File "build/bdist.linux-x8

2010-03-03 14:13:00 881

原创 mysql的slow-query中的一个现象

在mysql的slow query log中,可能存在类似这样的特殊记录: # Time: 100127 23:17:01# User@Host: root[root] @  [127.0.0.1]# Query_time: 18446744073709.351562  Lock_time: 0.000129 Rows_sent: 1  Rows_examined: 11030

2010-01-28 15:49:00 657

原创 通过CouchDB-Python连接带有用户名/密码验证的数据库

在CouchDB-Python中,连接带有basic HTTP验证的数据库(比如cloudant)有点儿麻烦,因为用Server或者Database不能直接打开类似于 http://username:password@servername:5984/dbname/ 这样的URI。 我们需要采取下面的方法才能完成:from couchdb import *#connect to a

2009-12-08 20:36:00 1800

原创 在Python中动态绑定property

 在Python中可以把property动态的绑定的object的继承类中,并且可以定义带有参数的get和set方法。比如,我们定义了全局变量g,然后通过两个方法来存取g的内容def get_g(self):    return gdef set_g(self, _g):    global g    g = _g定义一个object的继承类A:

2009-11-14 22:41:00 840

关键词搜索广告文案数据集(jsonl文件,firefly pretrain格式)

关键词搜索广告文案数据集 格式:jsonl,firefly pretrain格式 数量: 1k 范例: ``` {"text": "光伏安装-安全降低用电成本\n光伏安装安装流程、提前做那些准备,厂房荷载是否满足等为企业提供设计、施工、运维一体化的光伏安装发电解决方案,帮助企业降低用电成本"} {"text": "家庭房间装修-博洛尼一站式全屋整装\n家庭房间装修-博洛尼整体家装专注家装32年从设计,施工到主材一站式全搞定免费精准量房,从业10年以上设计师设计,德系施.."} ```

2024-05-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除