Hi there 👋

Welcome to my blog

Go时间处理库carbon

我们在日常开发中,常常会对时间进行各种处理,今天我来介绍一个 go 处理时间的库 golang-module/carbon。 Carbon 是一个轻量级、语义化、对开发者友好的 golang 时间处理库,支持链式调用。 安装 go版本大于 1.16 1 go get -u github.com/golang-module/carbon/v2 版本小于 1.16 1 go get -u github.com/golang-module/carbon 使用 创建 carbon 实例 1 2 3 4 5 carbon.Now() // 获取当前时间 carbon.Now("Asia/Qatar").ToDateTimeString() // 不同时区当前的时间,卡塔尔当前的时间 carbon.Yesterday() // 昨天 carbon.CreateFromTime(22, 9, 13).ToString() carbon.Tomorrow().ToDateString() // 明天 标准库转换 carbon 还可以和标准库 time 进行相互转换。 1 2 3 // 将 标准库 time 转换为 carbon 实例 carbon.Time2Carbon(time.Now()) // carbon 转换为 time.Time 解析字符串 carbon 可以解析字符串,生成carbon 实例...

December 3, 2022 · 2 min · overstarry

Superset简单使用

本文我来讲讲 Superset 的简单使用,并使用 superset 制作一个简单的图表。 Apache Superset 介绍 Apache Superset 是一款现代化的开源大数据工具,也是企业级商业智能 Web 应用,用于数据探索分析和数据可视化。它提供了简单易用的无代码可视化构建器和声称是最先进的 SQL 编辑器,用户可以使用这些工具快速地构建数据仪表盘。 Superset 提供了源码、pypi、Docker 等多种安装方式,其文档称,Superset 目前在许多公司被大规模使用。例如,Superset 在 Airbnb 基于 Kubernetes 的生产环境中运行,为每天查看超过 10 万张图表的 600 多名活跃用户提供服务。 Apache Superset 将 SQL IDE、数据浏览工具、拖拽式仪表板编辑器和插件组合使用,以构建自定义的可视化效果,支持从许多关系数据库和非关系数据库中创建仪表板,这些数据库包括 SQLite、MySQL,以及 Amazon Redshift、Google BigQuery、Snowflake、Oracle 数据库、IBM DB2 和其他各种兼容的数据源,并且可以连接到 Apache Drill 和 Apache Druid。此外,Superset 还适用于云原生场景和 Docker。 安装 我采用官方提供的 helm chart 安装在 Kubernetes 上,安装过程中遇到了一些问题。这里就不过多讲述了,接下来进入本文的正题,如何使用 superset 制作一个简单的图表呢。 简单使用 连接数据源 我们打开 Superset 主界面,点击右上角 settings ,选择 连接数据库选项,进入数据库配置界面。点击右上角的添加数据库,选择相应的数据源,并填写相应的数据库连接配置,superset 内置几种常见的数据源,如果你想添加的数据源类型不再此列,可能需要安装相应的 python package 来解决。 在数据源连接的配置里还可以进行权限、安全性的配置。 数据源添加完成后,你就可以在界面内看到所添加的数据源了。...

November 26, 2022 · 1 min · overstarry

使用Fly.io部署MinIO对象存储服务

前面的文章讲了Fly.io 的入门使用和如何使用 Fly.io 部署 go 开发的应用程序。今天我们来继续讲解使用 Fly.io 部署 对象存储服务 MinIO. MinIO 是什么我就不过多介绍了, 接下来我们就进入正题,进行 MinIO 服务的部署。 准备 Dockerfile 文件 我们先准备 MinIO docker 部署相关的文件, 我们使用官方的镜像进行部署, Dockerfile 文件内容如下: 1 2 3 FROM minio/minio CMD [ "server", "/data", "--console-address", ":9001"] MinIO 的数据文件将存储在 data 目录下,指定 9001 为 web 控制台的端口,如果不指定将会使用随机端口。 初始化 Fly.io 应用 接下来像以前一样使用 flyctl launch 命令进行应用的初始化。 我们照常不使用数据库,不立即部署,生成的配置如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 # fly....

November 19, 2022 · 2 min · overstarry

Fly.io部署go应用

前面讲解了 Fly.io 的初步入门使用,本文讲解在没有 docker 环境情况下部署 go 开发的应用。 项目 这里为了演示方便, 简单使用 go 编写一个: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 package main import ( "fmt" "log" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w,"hello world") }) log.Println("listening on", 8080) log.Fatal(http.ListenAndServe(":"+"8080", nil)) } 安装 Flyctl 并登录 这个步骤上篇文章已经介绍过来,还不了解如何安装登录的可以参考前面的文章。 配置 Fly 应用程序 进入项目的根目录,执行 flyctl launch,它会根据你输入的配置(主要是应用名,部署区域,是否需要数据库和redis)来生成相应的配置文件,并帮你在远程构建器上打包镜像并部署,如果有 DOCKERFILE 文件就会使用你的进行构建,如果没有就会使用相应的官方文件进行构建镜像. 需要注意的是你的应用需要监听 8080 端口,否则部署时会报错...

November 12, 2022 · 2 min · overstarry

Png压缩工具

最近有一个需求,需要对 png 和 jpg 格式的图片进行压缩,jpg 格式的图片压缩比较简单,难点主要是针对 png 图片,本想继续采用前篇文章的方式将 png 转为 jpg 图片进行压缩的,但我发现部分转换后的图片出现比较大的问题,图片的背景由其它颜色变成了黑色,那看来不能采用原来的方法,得寻找新的方法,通过查阅资料发现了2个压缩 png 图片的工具 pngquant 和 pngcrush,接下来我就来分别介绍这2个工具。 pngquant pngquant是一个命令行实用程序,也是一个用于PNG图像有损压缩的库。这种转换大大减少了文件大小(通常多达70%),并保留了完全的alpha透明度。 下载 可以通过官网提供的 gui 程序或者 命令行程序链接下载 pngquant,也可以通过源代码进行编译,我采用了编译好的命令行程序。 参数 1 2 3 4 5 6 7 8 9 10 11 12 13 options: --force 覆盖原来输出的图片 --skip-if-larger 仅当原来图片小于原图片时才保留 --output file 输出的文件路径 --ext new.png 为输出文件名设置自定义扩展名。默认情况下使用-or8.png或-fs8.png。 --quality min-max 指示使用达到或超过最高质量pngquant所需的最少颜色。如果转换导致质量低于最低质量,则图像将不会被保存(如果输出到标准输出,将输出 24 位原始图像)并将以状态码 99 退出。pngquant min和max是 0(最差)到 100(完美)范围内的数字 --speed N 从 1(暴力)到 10(最快)的速度/质量权衡。默认值为 3。速度 10 的质量降低 5%,但比默认值快 8 倍。 --nofs 禁用 Floyd-Steinberg dithering --posterize N output lower-precision color (e....

November 5, 2022 · 1 min · overstarry