2020第20周
2020-05-11
-
顺丰上线「丰食」平台,正式进入外卖领域
-
用 jsDelivr 免费加速 GitHub Pages 的静态资源
- GitHub 图床的正确用法,通过 jsDelivr CDN 全球加速
- https://mp.weixin.qq.com/s/8_SMul8gMlSBv10h_WdOVA?utm_source=tuicool&utm_medium=referral
- https://www.tuicool.com/articles/BNrMBzJ
-
Golang os.O_APPEND和os.ModeAppend有什么区别?
f, _ := os.OpenFile("access.log", os.O_APPEND|os.O_CREATE, os.ModeAppend|0644)在flag指定的系统调用用来打开文件,而标志perm上的文件设置文件模式。文件模式包括权限和文件类型,例如。符号链接,目录等...
os.O_APPEND 告诉底层操作系统,您在该文件处理程序上执行的所有写调用都应始终附加到文件上,因此您无需设置偏移量即可在文件的正确部分上进行写操作。ModeAppend设置文件模式为追加。这意味着只能通过附加此文件来修改此文件,而不能重写文件内容。具体取决于您使用的操作系统和文件系统。我相信Plan 9是通过忽略对文件的任何写调用的偏移量并始终附加到文件上来实现的,而在linux中,这意味着该文件只能以添加方式打开以进行写入。我认为在大多数Linux发行版上,您需要root用户才能设置要附加的文件模式。
在99.99%的情况下,您只想使用perm来设置文件权限rwx。在您的情况下,如果要打开文件并追加到文件,则应使用:
// os.O_WRONLY tells the computer you are only going to writo to the file, not read // os.O_CREATE tells the computer to create the file if it doesn't exist // os.O_APPEND tells the computer to append to the end of the file instead of overwritting or truncating it f, err := os.OpenFile("access.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)您可能只是忽略了返回错误,os.OpenFile以使示例在线,但是您应该习惯于始终检查错误。您不知道有多少用户在使用go时遇到了麻烦,因为他们忽略了错误。有时像错字一样愚蠢且易于修复,但是如果您忽略该错误,则不知道问题出在哪里。
-
Go 强大而灵活的电子邮件库
-
发送邮件是一个很常见的需求:用户邮箱验证、邮箱召回等。Go 语言标准库自带 net/smtp 库,实现了 smtp 协议,用于发送邮件。然而这个库比较原始,使用不方便,而且官方声明不再增加新功能。于是乎出现了一些强大的第三方邮件库,今天推荐的这个库就是其中之一。
-
简介
email 包的设计易于使用,但又足够灵活以免受到限制。目的是为开发者提供友好的电子邮件接口。该包当前支持以下功能:
From, To, Bcc, 和 Cc;
邮件地址同时支持 “ test@example.com ” 和 “First Last test@example.com ” 两种形式;
正文支持普通文本和 HTML;
附件支持;
已读回馈;
自定义协议头;
。。。
快速使用
先安装:go get github.com/jordan-wright/email使用 Gmail 发送邮件
e := email.NewEmail() e.From = "Jordan Wright <test@gmail.com>" e.To = []string{"test@example.com"} e.Bcc = []string{"test_bcc@example.com"} e.Cc = []string{"test_cc@example.com"} e.Subject = "Awesome Subject" e.Text = []byte("Text Body is, of course, supported!") e.HTML = []byte("<h1>Fancy HTML is supported, too!</h1>") e.Send("smtp.gmail.com:587", smtp.PlainAuth("", "test@gmail.com", "password123", "smtp.gmail.com")) /* 通过 NewEmail 获取一个 Email 的实例; From 设置发件人; To 设置发给谁,支持多人; Cc 设置抄送人,支持多人; Bcc 设置密抄人,支持多人; Subject 指定邮件标题; Text 指定普通文本邮件正文; HTML 指定 HTML 格式邮件正文; 调用 Email 实例的 Send 方法进行邮件发送:第一个参数是 smtp 地址,第二个参数是 smtp.Auth 实例; */ 该库最终还是使用标准库 net/smtp 进行实际的邮件发送
-
substrate
1. https://substrate.dev/en/ -
kcp-go
1. github.com/xtaci/kcp-go -
支持多家云存储的云盘系统
- Cloudreve能助您以最低的成本快速搭建公私兼备的网盘系统
- https://cloudreve.org/
- https://github.com/cloudreve/Cloudreve
- 支持本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、 OneDrive (包括世纪互联版) 作为存储端
📤 上传/下载 支持客户端直传,支持下载限速
💾 可对接 Aria2 离线下载
📚 在线 压缩/解压缩、多文件打包下载
💻 覆盖全部存储策略的 WebDAV 协议支持
⚡ 拖拽上传、目录上传、流式上传处理
🗃️ 文件拖拽管理
👩👧👦 多用户、用户组
🔗 创建文件、目录的分享链接,可设定自动过期
👁️🗨️ 视频、图像、音频、文本、Office 文档在线预览
🎨 自定义配色、黑暗模式、PWA 应用、全站单页应用
🚀 All-In-One 打包,开箱即用
-
并发原子性共享文件写入
f, e := os.OpenFile(logPath, os.O_APPEND|os.O_WRONLY|os.O_CREATE, os.ModeAppend|0666) -
Go静态文件嵌入
github.com/rakyll/statikstatik -src=assets/build/ -include=*.html,*.js,*.json,*.css,*.png,*.svg,*.ico -f -
microk8s
- MicroK8s是面向开发人员,物联网和边缘的小型,快速,单包的Kubernetes
- https://microk8s.io/
- https://github.com/ubuntu/microk8s
2020-05-12
-
perf
- 在Linux下做性能分析
sudo perf top -e sched:sched_switch -s pid sudo perf top -e branch-misses -
Dapr
- Dapr 是一种可移植的,serverless 的,事件驱动的运行时,它使开发人员可以轻松构建弹性,无状态和有状态微服务,这些服务运行在云和边缘上,并包含多种语言和开发框架。
- Dapr 整理了构建微服务应用为开放,独立的构建块的最佳实践,使您能够使用自己选择的语言和框架来构建可移植的应用程序。每个构建块都是独立的,您可以在应用中使用其中的一个或多个。
- https://github.com/dapr/dapr
-
爱回收 以旧换新
https://www.aihuishou.com/
2020-05-13
-
在Golang中获取系统的磁盘空间内存占用
-
获取磁盘占用情况(Linux/Mac下有效)
import ( "syscall" ) type DiskStatus struct { All uint64 `json:"all"` Used uint64 `json:"used"` Free uint64 `json:"free"` } // disk usage of path/disk func DiskUsage(path string) (disk DiskStatus) { fs := syscall.Statfs_t{} err := syscall.Statfs(path, &fs) if err != nil { return } disk.All = fs.Blocks * uint64(fs.Bsize) disk.Free = fs.Bfree * uint64(fs.Bsize) disk.Used = disk.All - disk.Free return } -
获取内存占用
import ( "runtime" ) type MemStatus struct { All uint32 `json:"all"` Used uint32 `json:"used"` Free uint32 `json:"free"` Self uint64 `json:"self"` } func MemStat() MemStatus { //自身占用 memStat := new(runtime.MemStats) runtime.ReadMemStats(memStat) mem := MemStatus{} mem.Self = memStat.Alloc //系统占用,仅linux/mac下有效 //system memory usage sysInfo := new(syscall.Sysinfo_t) err := syscall.Sysinfo(sysInfo) if err == nil { mem.All = sysInfo.Totalram * uint32(syscall.Getpagesize()) mem.Free = sysInfo.Freeram * uint32(syscall.Getpagesize()) mem.Used = mem.All - mem.Free } return mem }
-
-
巨人倒下时,身上还是暖的
- 巨人太过庞大,所以你不能像小公司那样用身子暖不暖来判断巨人的情况。巨人的命运,早在大时代的路口便已决定了。
-
JuiceFS
- https://juicefs.com/
- 做最易用的云端共享文件系统
- POSIX、HDFS、NFS 兼容,全托管服务,支持全球公有云服务商,是企业海量数据管理、分析、归档的理想之选。
- JuiceFS 是一个基于对象存储的 POSIX 文件系统,可以把它当做一块无限容量、多机共享的云硬盘使用。
-
Toxiproxy
- Toxiproxy是模拟网络状况的框架
- 它专门用于测试,CI和开发环境,支持确定性篡改连接,但支持随机混乱和自定义。
- Toxiproxy是您需要通过测试证明您的应用程序没有单点故障的工具。
- 一个TCP代理,用于模拟网络和系统状况,以进行混乱和弹性测试
- http://toxiproxy.io/
- https://github.com/Shopify/toxiproxy
-
nakama
- 社交和实时游戏和应用程序的分布式服务器。
- https://github.com/heroiclabs/nakama
- https://heroiclabs.com/
-
kvrocks
-
kvrocks(kv-rocks)是基于rocksdb的SSD NoSQL,与Redis协议兼容,旨在降低内存成本并提高功能
-
kvrocks是一个开源键值数据库。它基于rocksdb并与Redis协议兼容。与Redis相比,旨在降低内存成本并提高功能。复制和存储的设计灵感来自rocksplicator和blackwidow。
-
kvrocks具有以下主要功能:
Redis协议,用户可以使用Redis客户端访问kvrocks 命名空间,类似于redis db,但每个命名空间使用令牌 复制,使用MySQL等binlog进行异步复制 高可用性,当主服务器或从服务器发生故障时,支持redis前哨进行故障转移 Codis协议,用户可以使用codis代理和仪表板来管理kvrock
2020-05-15
-
图雀写作工具
- https://www.yuque.com/tuture/product-manuals/initialization
- https://github.com/tuture-dev/tuture
- Tuture 是一款基于 Git 版本控制系统、为实战技术教程创作而生的写作工具,具备以下核心优势:
根据提交记录自动生成教程骨架,无需手动整理代码
对着代码“讲故事”,思路更清晰,写作更愉快
专业美观的写作界面,提供全方位的支持,让你专注于内容创作
内容的同步和协作基于 Git 分布式版本控制系统,为社区创作开启无限可能
强大且方便的内容导出和发布,帮助你的文章快速传播,得到更多读者的认可
-
分布式WebSocket代理
- https://github.com/Cretezy/dSock
- 客户端可以进行身份验证和连接,并且您可以将文本/二进制消息作为API发送
- dSock是分布式WebSocket代理(在Go中,使用Redis)
- 每个用户和验证有多个客户端
- dSock可以向某个用户(由用户ID和可选的会话ID标识)或某个连接(由ID标识)的所有客户端广播消息。可以使用声明或JWT对用户进行身份验证(请参见下文
-
写作之难,在于把网状的思考,用树状的语法结构,转换成线性字符串。("The Web, the Tree, and the String")。
-
认知隧道(cognitive tunnel)
- 全部的注意力都聚焦在当下那件紧急的事情上,变得特别狭窄和受限,此时容易忽略全局的信息,看不到整体。
-
slipbox
- 卢曼的卡片盒式
-
roamresearch
- https://roamresearch.com/
- 笔记工具,网络思想
- 就像文档一样易于使用。与图形数据库一样强大。
- 漫游可帮助您长期组织研究。
-
DEVONthink
- 个人知识库
-
将文本转换为手写xD
-
discuz
-
考核内容包括以下内容
1、 工作素质:包括敬业精神,行为规范,工作主动性,协作精神等;
2、 工作能力:包括本职业务熟悉程度,工作计划性,独立完成工作任务的能力等;
3、 工作业绩:包括参与项目情况、项目工作量、完成项目的复杂度,项目完成质量;
4、 工作态度:包括出勤率、纪律性、自觉性等。
2020-05-16
- Go语言实现与标准库
- 数据库客户端 mac sqlpro studio
作者:百里求一
出处:http://www.cnblogs.com/bergus/
我的语雀: https://www.yuque.com/barry.bai
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

浙公网安备 33010602011771号