在py3里同步/异步混合使用 httpx 调用
比如开发需求是请求一个 http API,得到数据,解析一下返回,那么一般的做法是封装一个方法,比如 import httpx def get_sth(p1, default=MY_VAL): # network r = httpx.get(API_URL, params={'t1': p1}) # parsing res = r.json().get('my_key') or MY_VAL 但是如果想在 async/await 里用这段代码,就得改成 import httpx async def get_sth(p1, default=MY_VAL): # network with http.AsyncClient() as client: ..
更多再一次理解 C++ 中的 extern "C"
本文是“攻玉计划”的一部分,翻译自 https://stackoverflow.com/questions/1041866/what-is-the-effect-of-extern-c-in-c 中 Ciro Santilli 的回答通过反汇编了解 extern “C” 的作用main.cpp12345678910void f() {}void g();extern "C" { void ef() {} void eg();}/* Prevent g and eg from being optimized away. */void h() { g(); eg(); }将上述代码编译为 ELF 格式的二进制,然后反汇编:12g++ -c -std=c++11 -Wall -Wextra -ped..
更多MikroTik ROS Winbox Ping工具DNS问题
介绍RouterOS是一个基于Linux内核的独立操作系统。它为MikroTik专用硬件设备提供支持,但也可用于虚拟机(CHR版本)。 本文介绍了一下,我在实际生产环境中遇到的一个问题,在国内使用WinBox远程国际上的ROS路由,去Ping谷歌,但返回的都是被污染的IP地址。 问题当使用WinBox方式远程连接ROS的时候,使用GUI的 Ping工具,其DNS解析是由本机的WinBox去调用本机系统网络去解析,所以可能导致DNS解析有问题。 比如在中国大陆被污染问题、可能获取的IP不是ROS离着最近的IP等。 解决方法使用Terminal 终端命令行下ping即可。 官方文档说明:https://help.mikrotik.com/docs/display/ROS/Ping ..
更多航模舵机控制及其 PWM 调制的进一步理解
起因是这样的,前段时间,我同时开始玩履带车和固定翼航模。履带车的动力是直流电机加驱动板,PWM 调制,0-100% 占空比控制电机从静止到全速转动。航模的话,虽说十年前我就开始接触了,但一直都是浮于表面的玩,能动就行。玩航模必须要有遥控器和接收机,接收机也是输出 PWM 信号的,连接舵机就能控制其在指定角度范围内运动,连接电调就能控制电机转速。于是,我想当然的,航模接收机 应该也是输出 0-100% 占空比的 PWM 信号,0 就是舵机一个极限角度,50% 就是中位,100% 就是另一个极限角度。然而事实并不是,我把履带车的驱动板接上航模的接收机,不管我怎么推拉摇杆,履带车始终以一个非常低的速度运动。这就引起了我的好奇。先简单看下航模接收机的 PWM 信号图形手头没有示波器,就拿一个简单的逻辑分析仪应付一..
更多git切换马甲
如果你有多个 github、bitbucket、gitlab 账号需要来回切换,那么这个方法或许对你有用。 使用git你需要配置一个 ~/.ssh/id_rsa,如果你有多个身份就麻烦了。传统网上搜到的办法是编辑 ~/.ssh/config 然后加入个类似这样的配置: Host estgit HostName github.com Port 22 User git IdentityFile ~/.ssh/est_github IdentitiesOnly yes 这样做也不是不行,就是你输入命令的时候得把主机名改了。比如 git clone git@github.com:est/aether-pelican.git 你需要改成 git@estgit:est/aether-pel..
更多IP地址 子网掩码 默认网关 随笔
介绍本文简单介绍了Windows下的IP地址、子网掩码、网关的作用 IP地址与子网掩码如下所示,我在Windows上配置了一个IP(192.168.0.100) 和子网掩码(/24) 1234567891011C:\Users\admin>ipconfigWindows IP ConfigurationEthernet adapter Ethernet0: Connection-specific DNS Suffix . : IPv4 Address. . . . . . . . . . . : 192.168.0.100 Subnet Mask . . . . . . . . . . . : 255.255.255.0 查看路由表增加了那些条目 1234567891011121..
更多Windows TCP/IP 配置作用随笔
介绍本文简单介绍了Windows下的IP地址、子网掩码、网关的作用 IP地址与子网掩码如下所示,我在Windows上配置了一个IP(192.168.0.100) 和子网掩码(/24) 1234567891011C:\Users\admin>ipconfigWindows IP ConfigurationEthernet adapter Ethernet0: Connection-specific DNS Suffix . : IPv4 Address. . . . . . . . . . . : 192.168.0.100 Subnet Mask . . . . . . . . . . . : 255.255.255.0 查看路由表增加了那些条目 1234567891011121..
更多ShardingSphere-JDBC介绍
ShardingSphere-JDBC是一款可以将JDBC操作进行封装,然后实现数据分片、分布式事务、读写分离、高可用、数据加密和数据脱敏等功能的模块。它的原理是实现JDBC的接口,随后将收到的JDBC操作进行改写和处理,再将操作命中到真正的数据库之上。因为它实现了JDBC接口,因此现有的Java项目都可以100%兼容使用,只需要依赖ShardingSphere-JDBC并提供相关的配置即可。JDBC数据分片的简单使用我们看一个简单的JDBC数据分片的例子,首先我们需要添加相关的maven依赖12345678910 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId..
更多PostgreSQL
排序 order by用于对表进行排序SELECT select_list FROM table_expression ORDER BY sort_expression1 [ASC | DESC] [NULLS { FIRST | LAST }] [, sort_expression2 [ASC | DESC] [NULLS { FIRST | LAST }] ...] 当指定了多个表达式时,后面的值用于根据前面的值对相等的行进行排序。每个表达式后面都可以跟一个可选的ASC或DESC关键字,以将排序方向设置为升序或降序。可选参数NULLS FIRST可NULLS LAST用于确定空值是出现在排序顺序中的非空值之前还是之后。默认(NULLS FIRST)其中sort..
更多Maven详细介绍
maven是一个声明式的Java程序构建工具,最开始人们使用make命令搭配makefile脚本实现构建过程,tomcat的作者认为make命令不跨平台且脚本编写复杂,因此发明了Ant(Another Neat Tool)。Ant解决了make命令不跨平台且脚本编写困难的问题,不过Ant依然是过程式的,每一个使用Ant的用户仍然需要编写自己所需要的一系列脚本。maven通过定义了一系列的标准,让用户基本不再需要自己编写脚本,只需要按照maven暴露出的简单标准接口实现构建操作。这样既可以降低用户使用的复杂度,也能够定义一套统一的标准,当用户接手一个全新的项目时,可以根据已知的标准快速上手。安装maven的安装很简单,只需要下载压缩包解压到磁盘上,并将MAVEN根目录/bin添加到PATH中方便使用mvn命..
更多