Saturday, July 17, 2021

V2EX - 技术

V2EX - 技术


你知道 Flask 的 Logo 是什么吗?

Posted: 17 Jul 2021 04:08 AM PDT

TLDR:

  • 辣椒 NO
  • 火药容器( powder horn ) NO
  • 饮品容器( drinking horn ) YES

详见:

https://greyli.com/flask-logo/

深圳 or 厦门

Posted: 17 Jul 2021 03:45 AM PDT

本人厦门本地人,房子不愁车子不愁,都有,现在在一个小公司做前端开发,因为大专学历,大厂不太好进,经验 1 年左右,一个月 7K,不过只有自己花,父母基本不用我操心,不过上周和朋友去深圳走了一下,感觉还可以,想去见见世面,有啥好的建议吗,还是留在厦门找个闲的开发就行了

使用 Swift Package Manager 建立 Command line tool

Posted: 17 Jul 2021 03:25 AM PDT

作为 iOS 开发,我们的 CI 经常使用 Ruby 的命令行工具,像 fastlane, CocoaPods, Xcodeproj 。
随着 Ruby 逐渐没落,维护成本逐渐上升。
通过 Swift Package Manager,使用 Apple Swift 语言建立 Command line tool,让团队中的 iOS 开发者更易于开发维护。
https://openssl.medium.com/while-developing-ios-applications-we-often-find-ourselves-using-command-line-tools-in-ruby-6ef53046925c

一个有关 Git 的一个分支模式的疑问

Posted: 17 Jul 2021 03:01 AM PDT

最近我一直在看 https://martinfowler.com/articles/branching-patterns.html#long-lived-release-branch 这篇文章

看到 Variation: Long Lived Release Branch 这个部分的时候

图 1

If merged in we must be careful that the head of the release branch exactly matches the head of mainline. One way to do this is to revert all the of fixes that have been applied to mainline before merging.

看到这部分的时候突然有些疑问,它的意思是向 release 分支上合并的时候,先要把应用到 mainline 上的那些 fixes revert 掉。

比如 M7 那里向 release 合并到时候,要先把 F1 和 F2 revert 掉(一开始我理解的是把 mainline 上的那两个小黄点 revert 掉,后来感觉不对,应该是 release 上的 F1 和 F2,因为 mainline 上的 revert 了后修复就没了,bug 就继续在 mainline 上存在了)。

但我感觉这么做是没必要的,为什么要 revert ?直接合并不也一样的吗?后来我就发了一个邮件问了一下 Martin,他回我说"The problem occurs if F1 or F2 don't merge cleanly into mainline. In that case the M4-7 likely won't merge cleanly on top of v.2.2. But if you reset the release branch to the prior release, then you can replay the mainline commits without running into that kind of problem."

他说因为 F1 和 F2 向 mainline 合并的时候可能不会 merge cleanly (我暂且理解为有冲突的合并),所以 M4-7 合回来的时候也有可能不会 merge cleanly 。

但是我又自己测试了一下,在向 mainline 合并的修复有冲突的情况下,冲突进行解决和完成合并,最后再往 release 合并的时候直接快进合并了,并没有遇到不能 merge cleanly 的情况。

所以我的疑问是,大家看看我上面的理解对不对,这个 revert 是不是真的有必要?是否真的如同大佬所说,不进行 revert,向 release 合并的时候可能出现不能 merge cleanly 的情况?

EmacsTalk 第四期:与 stardiviner 聊 Emacs 与他与众不同的人生经历

Posted: 17 Jul 2021 01:43 AM PDT


本期节目又请来了一资深 Emacs 用户 stardiviner,同时也是一名淘宝店主,用来售卖自己的 IT 技能。

从 org-mode 的使用者到贡献者,他是如何做到的?更让人好奇的是他与众不同的人生经历,大学肄业后,他做过房地产销售、必胜客服务员、幼教老师、IT 支持,最后在无意间发现可以通过售卖自己的 IT 技能来赚钱,从此告别职场,走上了 freelancer 的道路。

在一次次的选择中,他逐渐远离"常人"走过的路,这其中或许有一时的鲁莽,但更多的是他勇于突破传统的束缚,逐渐形成了其独特的做事风格。近一个半小时的内容,"湿货"十足,不容错过!

本期人物

时间轴

  • 00:02:09 嘉宾学习 Emacs 经历
  • 00:10:35 org mode 介绍
  • 00:15:15 Elisp 学习经历
  • 00:22:19 维护开源插件的感受
  • 00:29:04 开淘宝店,做技术咨询的经历
  • 00:39:19 国内外对服务、知识付费态度的差异
  • 00:49:22 服务定价
  • 00:57:36 转行
  • 00:58:27 如何走出一条与众不同的道路
  • 01:06:54 未来的路
  • 01:09:31 嘉宾相对听众说的话
  • 01:11:01 推荐

Show Notes

  • 嘉宾介绍
  • 入坑经历
    • 2 年 vim -> org mode
    • 喜欢复古风
    • Emacs 很多厉害的黑客都在使用,跟着大宗师的路走没错
    • 一开始是带着一点宗教意义上的盲目崇拜,仿佛学会了 Emacs 就能用它变得无所不能。男孩子嘛,总是希望手中有一把长剑,学会剑术后,梦想从此仗剑走天涯。而 Emacs 就是我手中的长剑。
  • org mode 贡献经历
    • 零配置复现问题,再去社区求助
    • 自己想要的功能没人乐意实现
  • Elisp 学习经历
    • 文本处理比较删除
    • 不如 common lisp 强大,主要是对异步的支持的比较差
    • kiwix 在 Emacs 中离线搜索 Wikipedia
  • 开淘宝店售卖咨询
    • 19 年开始
    • 顾客五花八门,高中生、大学生、清华、北大、以及海外的学生
    • 为服务付费
    • 如何给服务定价
      • 最贵的:500+ 人民币,100¥/小时
      • 最难的:Proof General 的 Emacs 环境配置
  • 嘉宾的人生经历及感悟
  • 嘉宾的分享
  • 主播的分享

Get in Touch

如何打包一个镜像三个环境都可以使用?

Posted: 17 Jul 2021 01:25 AM PDT

有个 Java 项目,代码里面有个配置文件写死了 nacos 配置中心的地址以及一些其它参数,如何构建镜像才能实现三个不同的环境使用?或者有没有更灵活的办法呢?

比如三个环境的 nacos 地址

Uat 环境 nacos 地址 uat.nacos.com

Stag 环境 nacos 地址 stag.nacos.com

Prod 环境 nacos 地址 prod.nacos.com

群晖 dsm7 的问题

Posted: 16 Jul 2021 10:45 PM PDT

关于部署 ssl 的,原来证书导入群晖后,只需要 reload 一下 nginx,使用 synoservice --reload nginx 就可以生效。

但是群晖在 dsm7 中转用了 systemd,所以按道理是 synosystemctl reload nginx 。但是经过实测,reload 是无效的,必须要 restart

本来这也没啥,但是群晖的 nginx 好像和套件这些全绑定了。如果 restart 一下,几乎所有套件都会重启,过程非常耗时,索引也会重新运行。

有没有哪位兄弟能支个招,怎么不重启 nginx 可以应用证书?

技术周报

Posted: 16 Jul 2021 10:41 PM PDT

打算每周写一篇技术周报, 将本周了解到的技术聚合下 (博客, 项目, 学习资源...)

本周第一篇: 20170717 技术周报

本周主题:graphql, 持久化内存技术-pmem

欢迎 v 友提出宝贵的建议

「//index. PHP ?s=xxx」nginx 和 apache 的重写规则中怎么匹配多余的斜线?

Posted: 16 Jul 2021 08:23 PM PDT

https://www.v2ex.com//index.php?s=xxxx 想以双斜线为特征屏蔽掉这样的访问。

还有之前的一个问题:

帮写一条 .htaccess 规则( 301 ) - V2EX:

https://www.v2ex.com/t/787838#reply0

感觉完全不知道该怎么提炼标题- -

如何做到 4 天上线一个小程序

Posted: 16 Jul 2021 03:31 PM PDT

写了一篇文章,总结做小程序兼容的详细技术方案( PS:小程序太坑了)

黑客说:如何做到 4 天上线一个小程序?

点开 google 网页快照,再点源代码版本,里面却没有搜索词?

Posted: 16 Jul 2021 03:04 PM PDT

"像是游园惊梦的主题曲" 

google 上面的(带上引号),只有一条结果

求推荐无污染的 IPV6 DNS

Posted: 16 Jul 2021 10:24 AM PDT

callback 和 promise 性能差距疑问

Posted: 16 Jul 2021 06:06 AM PDT

callback

import * as fs from 'fs'; import * as path from 'path'; function list_dir(dir: string) {     fs.readdir(dir, 'utf-8', (err, files) => {         files.forEach(file => {             file = path.join(dir, file)             fs.stat(file, (err, stat) => {                 if (stat.isDirectory()) {                     list_dir(file)                 }                 if (stat.isFile()) {                     file                     // console.log("%O", file);                 }             })         });     }) }  list_dir('.') 

promise

import * as util from 'util'; import * as fs from 'fs'; import * as path from 'path'; async function list_dir(dir: string) {     const readdir = util.promisify(fs.readdir);     const stat = util.promisify(fs.stat);     const files = await readdir(dir, 'utf-8')     files.forEach(async file => {         file = path.join(dir, file)         const state = await stat(file)         if (state.isDirectory()) {             await list_dir(file)         }         if (state.isFile()) {             file             // console.log("%O", file);         }     })  }  list_dir('.') 

性能测试结果

node ➜ /workspaces/typescript $ time node promise.js && time node callback.js  real    0m1.140s user    0m1.136s sys     0m1.292s  real    0m0.377s user    0m0.368s sys     0m0.534s node ➜ /workspaces/typescript $ time node promise.js && time node callback.js  real    0m1.062s user    0m1.132s sys     0m1.184s  real    0m0.538s user    0m0.470s sys     0m0.784s node ➜ /workspaces/typescript $ time node promise.js && time node callback.js  real    0m1.194s user    0m1.221s sys     0m1.308s  real    0m0.436s user    0m0.393s sys     0m0.651s node ➜ /workspaces/typescript $ time node promise.js && time node callback.js  real    0m1.024s user    0m1.165s sys     0m1.027s  real    0m0.416s user    0m0.313s sys     0m0.653s node ➜ /workspaces/typescript $ nodejs --version v16.3.0 node ➜ /workspaces/typescript $ tsc --version Version 4.3.5 

有性能差异可以理解,但是这个性能差异过大,请问各位是我的写法有问题,还是其它原因导致的呢?

No comments:

Post a Comment