Lolipop's Studio.

Lolipop's Studio.

how about groping lights through young ages

loading
连接到 Windows 端的 PostgreSQL 数据库

假设,您身边有两台电脑,一台打算用来做 PostgreSQL 数据库服务器,一台用来做客户端。服务器上的 PostgreSQL 14 安装在 C:\Program Files\PostgreSQL\14 目录下,数据库文件保存在 C:\Program Files\PostgreSQL\14\data 目录,欲访问的数据库名为 db_name,访问数据库的用户为 db_user

配置 postgresql.conf

编辑数据库配置文件 C:\Program Files\PostgreSQL\14\data\postgresql.conf,设置监听的远程连接地址。将 listen_addresses 项的值设置为 *,如下所示:

1
2
3
# - Connection Settings -

listen_addresses = '*' # what IP address(es) to listen on

配置 pg_hba.conf

编辑数据库客户端认证配置文件 C:\Program Files\PostgreSQL\14\data\pg_hba.conf,设置允许连接到数据库的客户端 IP 地址。

这位客官,要来一张我珍藏许久的图片吗

笔者自高中到现在,游走于 Pixiv 若干载,不慎收藏了许多名家雅作。

独乐乐不如众乐乐!笔者想做一个 web 页面来随机访问我的收藏,不过在此之前,可以先实现服务端上的内容。再之后做网页时,不过是简单的读取数据库罢了!

最初,笔者以为得将我的库存全部放到服务器上项目中去,然后随机访问其中的图片实现功能,但这样做很难得同步,遂搁置。不过,笔者在最近发现有一个 Pixiv 图片代理网站 可以快速下载到图片,大喜,于是开始了这个小工程。

请求需包含 Referer

实现此功能分为两个阶段:一,为本地的图片生成数据库索引条目。二,开发 Telegram Bot 接口,随机从数据库索引中获取一张图片转发给聊天。

为本地的 Pixiv 图片建立索引

从零开始使用 Telegram Bot

本文基于 Koa 从零开始搭建一个简单的 Telegram Bot 应用服务,支持获取 Github Issues 的评论并转发到 Telegram 频道,帮助笔者更好地将捣玩 Telegram!

时间推移至 2024 年,笔者现在更建议使用 Bun 开发应用服务,开箱即用的高性能服务以及完备的 TypeScript 支持,能大大提升开发体验。下面为撰写于 2022 年初的原文。

本文假设您已对 Node.js 和 Koa 有一定的了解。

初始化 Koa 项目

Koa 是为 Node.js 设计的下一代 Web 框架,其幕后开发者主要来自知名的 Express 团队。

尽管使用 koa-generator 来初始化 Koa 项目是一个不错的选择,但笔者还是喜欢从头开始的感觉。

把自己的简历做成 Web 页面

去年投简历的时候,在 Github 上找了个开源的,星星很多的仓库 best-resume-ever 来制作自己的简历。其中的 Creative 模板我觉得很喜欢,就用它制作了我人生中的第一份找工作用的简历:

my first resume

然后到了现在,到了秋招真正找工作走向社会的季节了,又该制作自己的简历了。一年的时光给自己的人生又增添了几分色彩,原先简历模板已然不够用了。正巧,这个仓库由 Vue 编写,可以用自己已有的知识对简历做一些改造手术。

改造简历

举四个改造的例子好了。

添加 Chip 纸片

使用 jsDelivr 加速 Github 仓库搭建自己的图床服务

使用此类公益服务时应保留敬畏之心,不要滥用服务,消耗他人的善意。

今天突然想去搞个图床,使用 CDN 加速图片资源。因为博客放在小水管服务器上,直接用这个服务器向用户传输图片资源对带宽有很大影响。

遂上网搜索有无免费图床的服务,看到不少将 jsDelivr 用作图床使用的教程,便自己实践一番。

在国内,直接使用 Github 链接来加载图片是很慢的,甚至于加载不出来;但访问 jsDelivr 速度较快。通过 jsDelivr 来加速 Github 上的图片资源,即可以实现我们想要的图床服务。

使用其它的可以加速 Github 资源的 CDN 服务来替换 jsDelivr 也可以;这应该算是目前对于个人开发者来说,最简单且最经济的方式了。

创建图床仓库

使用 EditorConfig 和 Prettier 优雅地配置 VSCode 代码格式化

编写代码时使用 EditorConfig

EditorConfig 能够帮助跨各种 IDE 开发同一项目的不同开发人员保持一致的编码风格。

VSCode 没有内置对 EditorConfig 的支持,需要在插件市场中手动下载插件

EditorConfig 会自动读取工作区中的 .editorconfig 文件,更详细的配置说明可以参考官方介绍。下面是笔者常用的配置:

1
2
3
4
5
6
7
8
9
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
insert_final_newline = true
trim_trailing_whitespace = true

推送仓库前使用 Prettier

更换持续集成工具,从 Travis 到 Github Actions

我真傻,真的,单单受文档的推荐就选择了 Travis 作为部分项目的持续集成工具,没有料到它早已于 2020 年 12 月更换了免费政策,不再为开源项目提供免费的用于持续集成使用的 Credits 了。当赠送的 10000 个点数用完,就需要付费才能进行构建了。

当然,作为经济驱动的公司,近些天来又受 Github Actions 等其它持续集成工具打压了盈利空间,抛弃开源用户选择转型做起了商人事业也并非不可理解。感谢它曾为开发者提供的便利,不过作为一个佛系开发者,终于还是需要转投到别的免费工具上去了——Gihub Actions。

编写新的 workflow.yml

那么首先,我们就需要将为 Travis 编写的命名为 .travis.yml 的配置文件,翻译成 Github Actions 能识别的 workflow.yml 配置文件。

献给中文读者的设计模式教程这个项目为例,原有的 .travis.yml 内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
language: node_js
node_js:
- lts/*
branches:
only:
- main
install:
- cd vuepress
- yarn install
script:
- yarn build
deploy:
provider: pages
skip_cleanup: true
local_dir: vuepress/docs/.vuepress/dist
github_token: $CI_DEPLOY_TOKEN
keep_history: true
on:
branch: main
在浏览器中输入 URL 到显示网页,背后发生了什么

最近学习前端基础知识的时候,看到了这个问题和一个回答,非常生动有趣。遂抱着梳理的想法,将整个过程描述出来。

现在,假设您打开了浏览器,想要访问我的个人博客,您会在地址栏输入 lolipopj.github.io 这个 URL 然后敲下回车键。

从敲下回车键到最终顺利在浏览器显示我博客的主页,这个过程的背后发生了什么呢?

检查 URL 格式

别急,在正式驶入互联网的快车道之前,浏览器会首先检查输入的 URL 的格式是否正确。

例如,假如您输入的是 lolipop j.github.io,或是 lolipopj.gith$ub.io,浏览器将会判断它们为非 URL。在这种情况下,浏览器通常会将我们错误输入的 URL 作为搜索引擎的输入关键字,最终跳转到搜索结果界面。

为 Archer 主题更换字体

看腻了原先的字体,亦或是想满足独树一帜的设计欲望?不妨更换一下博客的字体吧!本文将基于 Hexo 和主题 Hexo-Theme-Archer 展示如何更换博客的中文字体。

引入字体文件

这里提供两种引入的思路,一种是 CDN 引入,一种是本地引入。建议通过 CDN 的方式引入,可以大大提高加载效率。

引入 CDN 字体文件

以更换字体为思源黑体(Google 字体上叫 Noto Sans,Adobe 版本叫 Source Han Sans)为例,考虑到中文站点面向的读者在国内,无法直接下载思源黑体这款 Google 字体,因此考虑通过 CDN 的方式引入它。据笔者测试,目前有这四个 CDN 站点可以提供稳定的服务:

使用基于 Docker 的 Nginx 部署静态网页项目

现在,我已经安装了 Docker,并拉取了 Nginx 的镜像。除此之外,我也购买了域名,完成了备案,并且为域名配置了 SSL。一切准备就绪,那么我该怎么将我的静态网页项目在 Linux 主机上通过 Nginx 部署,最终实现域名访问呢?

本文以部署我的个人博客页面为例,介绍如何使用基于 Docker 的 Nginx 部署静态网页项目。

准备静态网页项目

为了更方便管理网页项目,可以在主机根目录下新建一个目录,例如 www

1
2
3
sudo -i # 切换为管理员用户
cd /
mkdir www

现在,我已经有了一个完整的静态网页项目——我的个人博客。我的个人博客基于 Hexo,其中代码放在 source 分支,生成的静态网页文件放在 master 分支。首先通过 git 命令将静态网页文件克隆下来: