Category: 程序设计

怎么样把Chrome插件Manifest版本2更新到3?

Chrome插件版本v2在今年6月份之后就会被淘汰了,早在四年前(2020年12月份版本88),v3就已经被支持,Google给了超过3年的时候让开发者把v2版本迁移到v3。我一直很懒,手头上几个插件都还是v2,挑选了几个用户比较多的改了一下迁移到v3。 手头上有11个Chrome插件,只有一些已经迁移到了v3。 将 Chrome 扩展程序的 v2 Manifest 转换为 V3 所需的更改 大部分需要的改动都在 manifest.json。 manifest.json 是Chrome插件的配置文件: manifest_version 需要改成3 browser_action 需要重命名为:”action” web_accessible_resources 版本2: "web_accessible_resources": , 版本3: "web_accessible_resources": , "extension_ids": }], background/scripts 版本2: …

怎么样通过程序来获得比特币钱包余额? (NodeJs/Python)

我们可以通过两种方式来查询任意一个区块链上BTC比特币钱包的余额。 一种方式是直接查询节点,节点可以自己架,但可能较复杂,自己架服务器节点也不便宜。但是这种方法是可以获得较低的延时 (Latency),因为从节点取的数据本来就是链上的。当然可以撸别人的节点,如果节点可靠又需要获取更实时的数据那这是一种比较好的选择。 另一种方式就是使用第三方的API服务,这样的服务一般有免费还有付费的API调用。使用这些API节点的好处是更容易更简单,但会有一定的数据延时,因为API节点需要实时的去链上取数据,再更新到数据库中,再返还给调用者,有一点的时延。 本文介绍获取比特币帐号余额的两种调用第三方服务的方式:mempool 和 blockcypher。 通过 Mempool API 来查询指定比特币钱包地址的余额 我们可以使用 Mempool.space 的 API(有免费和付费版本的 API 调用)通过以下 NodeJs 函数检查任何 BTC/比特币钱包地址的余额: const axios = require('axios'); async function getBTCAddressBalance(btcAddress) { const …

微软终于弃用VBScript, 一个时代结束了

VBScript是我最喜欢的编程语言之一,因为其简单的语法,性能稳定,而且在Windows上和COM组件结合,可以做很多事情,Windows管理员在Powershell出来之前用VBScript来完成各种管理工作。VBScript也是我早期学会的编程语言之一(还有LOGO海龟作图,FoxBase数据库,Pascal等)。现在我的任务栏还有VBS Editor,因为我很有时候需要验证些数学或者其它事情,我就会用VBScript来写。比较复杂的我就会用Python。 据说比尔盖茨对Basic语言情有独钟,因为他老人家当年就是设计并开发了Basic语言,后来一直在Windows产品中支持Basic,比如Visual Basic,VB for Application,ASP等。 2023年10月份也就是这个月,微软发布声明,说弃用VBScript了。因为现在,Powershell更为强大,可以完全取代VBScript。VBScript的语法简单很多,而且已经十几二十年没有更新了,已经跟不上主流语言的各种语法糖和框架,和COM结合也带来了一些安全问题,比如当年VBScript来写一些恶意脚本还是非常容易的。 可以在微软的这个页面看到: In future releases of Windows, VBScript will be available as a feature on demand before its removal from the operating system. …

可以用ChatGPT来轻松转换编程语言

ChatGPT是今年最火的技术,人工智能AI,但是确实来说,是AGI,也就是通用人工智能 Artificial General Intelligence。ChatGPT可以用来做很多事情,我最近发现它可以拿来转换编程语言。比如我想学习一门新语言了,就可以把现有的程序让ChatGPT转换成新的编程语言。或者在力扣上换个新的编程语言学习一下。 下面这个例子ChatGPT转换后的代码我就可以直接在力扣上跑,就通过了所有的测试用例。 网上还有很多不同语言之间的转换工具,相信实现起来都不简单,但是如今有了ChatGPT这个通用人工智能,完全可以套个UI前端就可以实现不同语言之间的转换工具,而且转换逻辑完全不用自己实现,调用ChatGPT的API即可。 英文:Programming Language Conversion Tool based on ChatGPT AI 本文一共 283 个汉字, 你数一下对不对. 可以用ChatGPT来轻松转换编程语言. (AMP 移动加速版本) 赞赏我的几个理由. ¥ 打赏支持 扫描二维码,分享本文到微信朋友圈

Parquet 文件简介

我在AWS亚麻迅云(S3存储)工作的时候第一次了解到Parquet文件,觉得很神奇。简单来说,就是CSV文件按列来存储。 什么是 Parquet 文件? Parquet是一个为大数据处理框架(如Apache Hadoop、Apache Spark等)优化的列式存储文件格式。它是Twitter和Cloudera之间的合作产物。作为一种列式格式,与传统的基于行的格式(如CSV或JSON)相比,它具有一些明显的优势: 压缩 由于列式存储的特性,每一列的数据更为同质,这使得它比基于行的存储具有更好的压缩比。例如,存储年龄值的列将只有整数,从而实现有效的压缩。 读取效率 对于只需要部分列的分析查询,Parquet只从磁盘读取必要的列。这比读取整行并丢弃不需要的数据更为高效。 模式进化 Parquet支持复杂的嵌套数据结构,且其模式可以随时间发展。这意味着您可以在不需要重写整个数据集的情况下添加、删除或修改列。 性能 有效的压缩和通过只读必要列来减少I/O的组合可以极大地加快大型数据集上的分析查询性能。 兼容性 Parquet得到了广泛的数据处理工具的支持,包括但不限于Hadoop、Spark、Presto、Hive、Impala等。 类型支持 Parquet支持丰富的数据结构,包括标准原始数据(整数、浮点数、字符串)和更复杂的类型(列表、映射、结构体)。 压缩算法 Parquet支持多种压缩算法,允许用户选择压缩比和解压速度之间的最佳权衡。 谓词下推 许多处理引擎可以利用Parquet的列式特性来下推某些谓词(过滤器)并只读取必要的数据块,从而进一步优化查询性能。 一个Parquet格式的最简单的例子 要更好地理解Parquet格式,与CSV这样的传统基于行的格式对比数据的存储方式是很有用的。 假设你有一个小型的数据集,记录了人们的名字和他们的年龄: CSV格式: Name, Age …

ChatGPT 使用 Promise.All 重构/重写代码(并行发送请求)

在我的一个项目中, 我有以下代码(Node/Javascript), 它(顺序)调用了一些 API. 这些 HTTPS 请求其实是可以并行完成的, 因为它们相互独立. 然后结果会被聚合到一个数组中. 我知道可以用Promise.all来把这些请求并行化, 我就问了ChatGPT怎么弄, 看看它是否能理解并给出正确的代码: 我先用英文问 ChatGPT-3.5: Rewrite the following Python code using the Promise.all to parallelize the requests: let result = …

ChatGPT-4 使用 Math Wolfram 插件解决数学脑筋急转弯问题

这篇文章, 我们看一个简单的数学问题(脑筋急转弯), 并用 Python 解决它. 我们看一下LLM(大型语言模型): ChatGPT3.5和ChatGPT4. 通过 ChatGPT-Plus 订阅(目前每月 20 美元 + VAT增值税), 我们可以启用 ChatGPT-4 的插件, 因此, 我们还使用 Wolfram 插件来了解 ChatGPT-4. 数学问题: 大于95555并且有4个相同数字的最小整数 大于 95555 并且有 4 个相同的数字的最小整数是多少? …