How to create a PowerShell alias to connect MogDB

MogDB是云和恩墨发布的基于开源数据库openGauss的企业级发行版。在连接串方面兼容标准的PostgreSQL连接方式,而pgcli是连接PostgreSQL的一个优秀客户端程序。本文描述如何在Windows系统的Powershell中设置alias,来简便地连接到MogDB数据库。 pgcli的安装不再赘述,可以参考pgcli网站中描述的安装方法,比较简单。 使用pgcli连接数据库,并且同时把密码也放在连接串中完成一条命令就直接登录数据库,例子如下: 其中每个部分的含义如下: postgres://是标准的数据库类型提示符,不需要变更; amjith是连接数据库的用户名,passw0rd是用户密码; example.com是数据库所在的服务器hostname,可以直接使用IP地址来替换; 5432是数据库监听的端口; app_db是需要连接的数据库名称。 需要注意的一点是,如果在密码中存在“@”这样的特殊字符,那么需要把@改写成“%40”,比如密码如果是passw0rd@123,则命令行需要写成: 接下来,我们需要设置一个更简单的alias,比如我习惯使用p1,设置完毕以后,在命令行窗口键入p1以后回车,就可以直接连接到目标数据库。 如果是macOS,我们可以直接设置.zshrc文件;如果是Linux,可以设置.bash_profile。那么在Windows操作系统中,如果使用Powershell,该如何设置? 首先,要找到Powershell的配置文件路径,当安装完Powershell之后,进入Powershell命令行。 如果没有该文件,则创建该文件,然后使用任何文本编辑器,在该文件中加入以下行。 Function pgcli_mogdb1 {pgcli –prompt “\u@\d> ” postgres://amjith:passw0rd%40123@example.com:5432/app_db} Set-Alias -Name p1 -Value pgcli_mogdb1 因为Set-Alias命令的限制,一整条pgcli命令算是复杂命令,需要先写入到一个function中,然后再调用该function。 最后的效果如下:

How to Install Native Homebrew on an Apple Silicon M1 Mac

Update@20210702 目前Homebrew已经完全支持M1芯片,无需像本文下面说的这么复杂了,直接用以下命令执行即可。 !!!以下部分无需再阅读!!! 如果用原来的方式在M1芯片的macOS中直接安装,会报错。说Homebrew现在还不支持ARM芯片。 要在Apple Silicon M1芯片的macOS中安装Homebrew有两种方式。 第一种:在Rosetta2下安装x86架构的Homebrew。这一种是我个人不推荐的方式,利用Rosetta2的转码功能,还是直接安装x86架构的Homebrew,后续通过这个Homebrew安装的所有软件,也将是x86架构,虽然通过Rosetta2运行在M1的macOS中也可以正常运行,但是毕竟不如直接编译成M1的ARM架构更放心。 安装方法实际上很简单,执行下面的安装命令即可。 第二种:通过自行安装,运行M1 ARM架构原生的Homebrew。 安装完毕以后,我们可以通过file命令查看一下安装后的可执行文件的架构,确认确实是ARM64的原生架构。

Connect Your Coding (API) Skill with Your Tesla Model 3/S/X – How to Access Your Car in Your Computer

对于一个IT从业人员来说,能够通过自己的电脑来操控自己的车辆,是一件让人兴奋的事情。从此,车打破了100多年来机械产品的古板印象,摇身一变成为了充满活力的电子产品。也许这正是Tesla这类新型电动车最让人着迷的地方 – Software Define Anything,软件定义一切。 虽然特斯拉官方的API接口的说明文档,但是在Github上已经有人通过反向工程,整理并发布了一整套非官方API文档。注意只是文档是非官方的,其中描述的所有API都是特斯拉自己在iOS平台和安卓平台的官方App中使用的接口,因此这一整套API的安全性,稳定性都是可以信任的。实际上目前市面上可以看到的其它非官方用以操控Tesla车辆的应用程序,应该使用的都是这套API。 首先看一下特斯拉官方的App,在这个App里面我们可以做到如下各种操作: 获取车辆各种信息:包括剩余电量在内的各种车辆状态以及当前停车位置 唤醒车辆 启动车辆 打开和关闭车内空调 打开和关闭坐骑加热 打开前后行李厢 打开和关闭车门 打开和关闭车窗 让车辆鸣笛 让车辆闪烁车灯 打开和关闭哨兵模式 这些在官方App里面可以实现的功能,通过API也都可以通过自己写代码来实现,既然支持写代码,那么就进一步更可以做到各种智能场景,比如在iPhone手机里通过“捷径”功能,编写定时程序,让车辆在每天出门上班前的10分钟自动将车内空调打开。有了API就拥有了无穷的想象空间。 那么如何使用API来操控你的Tesla车辆,本文做简单介绍。我的车辆是Tesla Model 3,然而这套API也同样适用于Model S/X/Y,或者是Roadster,甚至是还未发售的Cybertruck。 准备条件 仔细阅读API文档,文档链接在这里。 为了测试API,要从头开始写代码有些麻烦,因此我使用了Setapp订阅里包含的软件Paw,可以直接调用和测试API。同样功能的软件还有Postman。 第一步:生成Token 整套API使用的是OAuth 2.0的鉴权协议,因此在第一步我们需要先生成可以用于之后调用API接口的Token,为了生成这个Token,需要提供在Tesla官网上注册的用户邮箱和密码,每个Tesla车主在购车前一定是需要在官方注册的,因此生成的Token也是每位车主独有的。注意,这个Token不要告诉任何其他人,否则别人就可以远程操控你的车辆了。当然,生成的Token是有失效期的,也可以手动失效。因此也无需担心安全性问题。 我们在Paw中创建一个Request,调用类型选择“POST”,调用的API地址是:https://owner-api.teslamotors.com/oauth/token?grant_type=password 当在Paw的地址栏中输入带?的URL时,Paw会自动将问号后的内容转换成URL Params部分的键值对。 在调用的Headers部分要填入:Content-Type: application/json,其中Content-Type是Header Name,而application/json是Header Value,如果不填入,在调用的时候会报错,而无法获得正确Token。 在调用的Body部分要填入API需要的入参,在文档中都有明确描述,分别是: grant_type,这是一个固定值,就是文本password; client_id,这是API提供者提供的id,也是一个固定值,是81527cff06843c8634fdc09e8ac0abefb46ac849f38fe1e431c2ef2106796384; client_secret,这是API提供者提供的密钥,也是一个固定值,是c7257eb71a564034f9419ee651c7d0e5f7aa6bfbd18bafb5c5c033b093bb2fa3; email是上面说的Tesla官网的帐号邮箱; password是上面说的Tesla官网帐号的密码。 最终整个调用在Paw中的显示如下图: 可以看到这里已经成功执行了,在右侧的结果栏中已经返回了access_token,整个返回结果的JSON格式如下: { “access_token”: “abc123”, “token_type”: “bearer”, “expires_in”: 3888000, “refresh_token”: “cba321”, “created_at”: 1538359034…