苟利国家生死以,岂因祸福避趋之

Panda Home

在 Amazon Linux 2 上运行 PostgreSQL

发布于# 聊聊技术
标签: # AWS# PostgreSQL# Amazon Linux 2# 运维
在 Amazon Linux 2 上运行 PostgreSQL
Photo by Daniel Eledut on Unsplash

中国有一句话叫“闷声大发财” 用过 AWS 的人都知道,想用他们家的 PostgreSQL 数据库的话,每个月的起价是十五块钱,但作为小本生意,也没有一个数据,上来就一个月十五块着实有些铺张,扭脸一看,他们的 EC2 服务器最便宜一个月只要三块五,所以个人项目想用 PostgreSQL ,何不自己搭一个呢? 在 Linux 系统上运行 PostgreSQL 的教程很多,找起来不费吹灰之力,所以这篇文章主要记录一个不太好找教程的系统—— Amazon Linux 2 。顾名思义,这是 Amazon 自己基于 CentOS 魔改的一个的 Linux 发行版,但和 CentOS 不同,上来就执行 yum install 是搞不定的。这也是为什么写作本文,简单整理一下安装运行过程的目的。 首先假设我们有了一台最便宜的 EC2 ,运行 Amazon Linux 2 ,也就是下图这个系统 <

人在湾区,没有 Switch 就不能愉快地宅家了吗?

发布于# 聊聊游戏
标签: # 旧金山湾区# 生活# Nintendo Switch# 任天堂
人在湾区,没有 Switch 就不能愉快地宅家了吗?
Photo by Copper and Wild on Unsplash

加州早在一个月前就颁布了宅家隔离令,对于本来就很宅的我来说,其实生活并没有受到很大影响。同时最近在各种社交媒体上被 NS Switch 平台的游戏《动物森友会》各种刷屏,也发现不少网友在痛心疾首没有早入一台 Switch ,作为认(一)真(贫)学(如)习(洗)的典范,我也没有 Switch ,难道这就意味着我只能在朋友圈各种玩耍的时候,自己在屏幕后面默默的羡慕嫉妒恨吗? 当然不是,宅在家活得有滋有味的方式多得很呐。漂洋过海去国万里,身边无亲朋好友,作为曾经是留学生的我对其中辛酸深有体会,写作本文也是想能给大家提供一些微小的人生经验,让我们在这个特殊时期每天都能充满希望。 吃喝 下馆子是不成了,现在饭店都提供外卖服务,不想自己做的话可以用 DoorDash 或者 Grubhub 下单, Uber Eats 也是个不错的选择,这里不再赘述,相信用惯了外卖的大伙儿比我更有发言权。只有一点,强烈建

AWS Lambda + API Gateway 搭建 Restful API 折腾记录

发布于# 聊聊技术
标签: # AWS# Go# Amazon API Gateway# AWS Lambda# 运维
AWS Lambda + API Gateway 搭建 Restful API 折腾记录
Photo by Ed Robertson on Unsplash

最近自己在家搞小玩具,有一个前后端交互的需求,毫无疑问应该用 Restful API 来进行通信。然而根据之前的经验,在 AWS 上最便宜的机器也要一个月三块五毛钱,对于我这种玩具项目来说太过奢侈,所以就想到了 AWS Lambda ,兼具价格低廉和无需维护的优点。每个月前一百万次请求免费,之后每一百万次请求收费两毛,再合适(便宜)不过了。 由于暂时不打算透露这个玩具项目具体是做啥的,但又想尽可能详细地记录下搭建的过程,这里我会用一个简单的 ISBN 10 转换到 ISBN 13 的 API 为例。选择 Go 语言作为编写工具,主要是因为我之前开发过一个 ISBN 格式转换的库,可以拿来即用。 Lambda 函数的配置 首先,创建一个新的 Lambda 函数 名字随便起一个,叫 isbnConverter , Runtime 选择 Go 1.x 。然后需要为 Lambda 函数添加触发器

Base64 编码学习笔记( Java 实现)

发布于# 聊聊技术
标签: # Base64# Java
Base64 编码学习笔记( Java 实现)
Photo by Markus Spiske on Unsplash

但凡从事码工这一行,多多少少会遇到 Base64 编码这个概念,因为我们总要接触互联网,而 Base64 编码诞生的目的就是为了让二进制数据能够在只支持文本的媒介上传输,比如说在网络上传输一张图片或者一段音频。而 Base64 本身是一种无损编码转换规则,同时编码后的内容与原始内容差别非常大,所以很多时候大家在网上留联系方式的时候也喜欢用 Base64 转换一下,既能把信息传达给网友,又避免了充斥在网络上的各种机器人的骚扰,比如这位朋友的自我介绍,甚至还贴心地给出了完整的解码命令行。 理论 那么 Base64 的编码规则是怎样的?因为在计算机的世界中,所有的内容都以字节数组( Byte Array )的形式呈现,所以 Base64 的输入数据自然是字节数组,每一个字节有 8 位 bit , Base64 以每三个字节为一组,然后均分成四份,每一份有 6 个 bit ,而这 6 个 bit

OrderedDict 是如何保证 Key 的插入顺序的

发布于# 聊聊技术
标签: # OrderedDict# Python# 源码阅读
OrderedDict 是如何保证 Key 的插入顺序的
Photo by Diomari Madulara on Unsplash

现象 根据哈希表的定义,以及之前简单实现过的一个字典数据结构,当 Key 被插入哈希表后,哈希表根据散列函数求出的值来安排这个 Key 所在的位置,所以当我们遍历哈希表的时候, Key 的顺序是不确定的,因此码农在使用哈希表这个数据结构的时候,是不应该依赖于 Key 的插入顺序来达到某些目的的。 但有的时候我们可能会对哈希表中 Key 的插入顺序感兴趣,这时有经验的 Python 工程师就会用 collections 中的 OrderedDict 来保持插入 Key 的顺序。 >>> d1 = {} >>> d1['a'] = 1 >>> d1['b'] = 2 >>> d1['c'] = 3 >>> d1['d'] = 4 >>> d1['e'] = 5 >>>