Hwang's Blog

#04 | 恣意生长  by Hwang

2022-03-22 · 11 min read

Hi,好久不见。本期间隔时间稍微长了一些呀,因为最近都比较忙,工作也比较忙,自己的小项目也遇到了些困难。不过好在方向都是好的,做自己愿意做的事情,总是快乐的。

这段时间我听了几期感觉还不错的播客,推荐给大家:

  • [中美 SaaS 对比:差距与潜力]
    • 节目聊了国内国外 SaaS 的差异,可以明显感受到各位投资人对国内 SaaS 其实并没有那么大的信心。[最近 Figma 的事件],看起来利好国内 SaaS 但我觉得对于整个 SaaS 服务而言可能还是伤害更多,国内的老板们可能更加不信任 SaaS 了。
  • [ E24|奈飞产品总监:我眼中的“自由与责任” ]
    • 奈飞的企业文化如此开放。相信我们也会有越多的自我实现需求大于经济利益的需求优秀的人,希望接下来国内的90、95后创业者们也能构建起这样的优秀团队。
  • [ 远程办公,是现代企业的终局吗?从携程3+2混合办公展开 ]
    • 我对携程的印象主要还是他们老板是经济学家。3+2 的办公模式可能也是个极大的社会实验吧。小团队实行这样的工作模式,能够获得一致或者更高的办公效率并不奇怪,不过如果是一个较大的组织能够落地这样的政策还是很令人钦佩的。
  • [ #92. 拉丁美洲旅游2——秘鲁、古巴、巴西、巴拿马 ]
    • 好想出去玩...

说起来,大家最早是什么时候开始听播客节目的?我印象中自己听播客的顺序大概是《科学脱口秀》、《友的聊》再到 李如一老师 及 [IPN] 的节目。

产品 —— 聊聊微软 与 Linux

macOS 因为命令行友好,Unix 环境,以及相当不错的 GUI 体验而被广大开发者推崇。反观 Windows,无论是 CMD 还是 PowerShell 对于开发者来说都算不上优秀。不过随着 WSL (Windows Subsystem for Linux )的推出,微软通过子系统的方式,为 Windows 开发者带来了完整的 Linux 的体验。

Windows Subsystem for Linux 是一个非常有趣的产品。对于开发者而言,通过 WSL,可以很方面的调用 Linux 上的各种命令,无需在额外安装 [Cygwin] 之类的为 Windows 提供类 Linux 环境的软件,抑或维护单独的虚拟机环境。只需开启 WSL 功能,再选择自己喜欢的发行版本即可。

在 2001 年,[时任微软 CEO 的鲍尔默称 Linux 是癌症]。那时的微软主要业务是 Windows 和 Office,这些商业软件与免费的开源软件是直接的竞争对手。

在微软现任 CEO 纳德拉上台后,「云为先」的战略指导下,微软逐渐转型为云计算公司,Azure 的 CTO [Mark Russinovich] 曾表示,Azure上运行的虚拟机有四分之一是 Linux 操作系统,在云计算这个领域,开源和 Linux 几乎是唯一选择。时间拨回到2015年,微软将自家的 .NET Core 带进 Linux 家庭,[纳德拉喊了那句 「Microsoft loves Linux.」,并且之后微软真的发布了自己的 Linux 发行版。]

从2001年到2015年,微软将 Linux 称为小偷转变为公开示爱,这中间是移动互联高速发展的十年,也是微软迷失在移动浪潮的十年。 Windows CE 到 Windows Mobile,再到 WIndows Phone,微软在用互联网几乎没有胜战。而这十年, Google 却凭借基于 Linux 的 Android 系统成为了与 iOS 分庭抗礼的操作系统。免费开源,占领市场的行为从 Linux 之于云服务到 Android 之于移动互联网都得到验证,很难说这些事实没有启发到微软。得益于 Windows Subsystem 的支持,最新推出的 Windows 11 也能够支持 Linux 的特别版本 — Android 软件在其中运行。

设计 - 人物: Edward Hopper 爱德华·霍普

(img)
本期设计想聊聊这位艺术家,Hopper 最著名的画作当属于 1942年 创作的《夜游者》,最近上映的[《新蝙蝠侠》]这最后找到谜语人的一幕,在构图上就能明显感觉到致敬这幅名作。
(img)
“最切中要害的辛酸,不停重演的美国孤独感的浪漫形象。”

《夜游者》油画作于1942年,这一年日本偷袭珍珠港,美国向日本宣战。城市中的人们所能感受到的就像画中被夜晚放大的情绪 —— 不安与不确定。繁华的都市生活似乎就在身边,街道与室内的灯光的强烈对比,画中人眼神都自顾自的看着各处,没有喧闹没有嘈杂有的只是能够感同身受的不安。

Hopper 的画作以描绘寂寥的美国当代生活风景闻名,建筑、人与光影是 Hopper 绘画的重要主题。就像中国的写意山水一样,Hopper 的画作强在构建一种「氛围」,这种氛围是能够让人沉浸其中。

一些关于 Hopper 的事实:

  • Hopper 年轻时,受到了严格的[浸信会( Baptist )]的教义熏陶。
  • 曾经 Hopper 希望成为一名造船师,不过在父母鼓励下从事了艺术行业。
  • 在完成早年教育后,他曾经前往欧洲三次,主要研究欧洲新兴的画风,但他舍弃了当时立体主义画派的抽象潮流,走向写实画派中的理想主义(idealism)。
  • Hopper 的画作常常绘制建筑,并且喜欢绘制建筑侧面的阳光。
  • Hopper 稀疏寂寥的绘画风格还影响了希区柯克的电影创作。
  • 纽约佳士得2018年11月拍卖,Hopper 的《中餐厅(杂碎)》以9593.75万美元成交,折合人民币以6.672亿元成交。
  • Hopper 在四十一岁时与妻子结婚,婚后在新英格兰乡下和海边,夫妻俩几乎过着隐士般的生活。

更多关于 Hopper 的信息:

  • [ 'We are all Edward Hopper paintings now': is he the artist of the coronavirus age?]
  • [夜游者 | 爱德华·霍普]
  • [Edward Hopper]

编程 - 用 GitHub Action 做 Flutter 项目都 CI/CD,自动发布到 TestFlight 上

之前团队的 [CI/CD] 都是在 GitLab 上跑的,最近因为种种方面考虑,我们把主要的代码仓库迁移到了 GitHub 上,自然的 CI/CD 也是要做迁移的。前后端部分,因为都是 Typescript 大家都比较熟练,没有遇到什么问题。这里可以展开介绍一下 Flutter 部分的。

CI/CD 就是通过命令行工具,完成项目的构建的自动化流水线。在这里我们会用到的命令行工具主要是:

  • [flutter]: flutter官方的命令行工具
  • [xcodebuild]: Xcode 的命令行工具
  • [altool]:苹果官方的上传工具

如果对上述工具不熟悉,可以参考给出的链接文档。

GitHub Action 提供了 Ubuntu、macOS、Windows 等系统的虚拟机运行环境,最需要在 runs-on 中注明即可,在费用上,GitHub 保持一贯的大度,开源项目是免费构建,私有仓库提供 2000 分钟的免费时长,超出部分将收费。收费标准根据不同类型的虚拟机[收费不同],其中,macOS 是 ubuntu 的 10 倍收费…

在这个流程实现上,主要参考是:

  • [ How to build and sign your Flutter iOS application using GitHub Actions ]

并没有通过 Fastlane、Jenkins 之类的第三方 CI\CD 工具。所有过程都只需要 GitHub Action 即可完成。

  • 具体代码部分可以参考这个项目:👉 [https://github.com/damienaicheh/demo_flutter_github_actions]

  • 当然也可以参考我的项目:👉[https://github.com/hwangdev97/flutter-github-action-build-to-testflight]

其中,相对而言比较复杂的其实是证书相关的知识。其中包括:

  • .P12 证书:从 keychain (钥匙串)中导出的文件
  • provisoning_profile,从 Apple Develop 后台到处的文件
  • 以及 APPSTORE_API_KEY_IDAPPSTORE_API_PRIVATE_KEYAPPSTORE_ISSUER_ID

除了证书文件,这里还有一件事就是自动升级构建版本

同样可以参考:[Manage your mobile application version automatically with GitHub Actions]

使用 extract-version-from-tag-action 这个的Action,既可以在 git tags 中获得MAJOR \ MINOR \ PATCH 等变量,以及 NUMBER_OF_COMMITS ( commits 的次数)NUMBER_OF_COMMITS_SINCE_TAG (上一个 tag 到目前的次数)这几个变量信息,就可以用于设定版本提升了。(该项目代码里我们采用了修改 info.plist 的方案,而非直接读取 flutter 的版本号,这里大家可以自行斟酌)

最后,发送到 TestFlight 之后,还会发送一条通知消息到飞书。

题外话,最近一直在招聘 Flutter 开发,明显感觉原生开发很多都开始往跨平台方向转,并且新人很少,反之前端开发还是挺多的。

最近读了啥

Design

  • [building a modern home - Johnny Rodgers]
  • [Spline 进行了大更新],更有3D版 Figma 那味儿了,并且发布了 React 的组件,不得不说,[从这个 Demo 看]效果还是有些惊艳的。
  • Figma 搞了件大事,[不过 Master GO 和 即时设计 的种种行为看的我稍微有些尴尬。]
  • [ 聊聊 UI 设计中的潜台词]

Develop

  • [一把梭:REST API 全用 POST]
  • [ How to import Swagger APIs into Postman? ]
  • 一套简单的 [uiui.dev] 按钮、handlines 的样式。
  • [🔗 Git Large File Storage (LFS)]:Git 的大文件存储。
  • 如果在学习 React,也许看看这个会有帮助:[UseHooks]。
  • [Show a browser picker for date, time, color, and files]:Chrome 的 showPicker() 事件,调用日期选择。
  • [Flutter 2.10 稳定支持 Windows]
  • [原来 ARM 中国叫 安谋科技]
  • [钉钉 的 URL Scheme]
  • [TypeScript 如何从数组元素的值中定义 Union Type - 海岛心hey]
  • [8 万变 80 万 - V2EX] 二月在 v2ex 上很火的贴子,相信大家都有看到过,对别人的人生指指点点显然不符合我的观点,看还是挺好的。
  • [Figma for Developers]:开发人员都看看这个吧!尤其是 frontend。
  • [Making pixel-art with pure CSS]
  • [React for Vue Developers - Part 1]
  • [How to Use Correctly 'self' Keyword in Swift]

Others

  • [政治性emo了,怎么办?]
  • [巧用分类法解决使用卡片笔记时遇到的困境 - 少数派]
  • [building a modern home],加拿大的朋友让我别做梦了,人家不一样🌚。
  • [The Fall of Roam]
    • 题外话:笔记应用对每一位使用者而言都非常重要,选择一个靠谱团队开发产品非常重要。即便是 Logseq 和 Obsidian 这种纯文本软件,相互之间迁移也非完全没有成本。
    • 另外用纯文本做笔记软件的,还请做好安全的备份…
  • [为什么我讨厌「粉粉嫩嫩」的经期记录应用]
  • [400万社区工作者是如何被“逼”疯的?| 新世界]

通过竹白查看 🔗
通过 revue 查看🔗

Hwang 📝 12月18日 📍 杭州

生而为人,应该能够换尿布、策划入侵、杀猪、开船、造房子、 写十四行诗、算账、建墙、正骨、抚慰临终之人、接受命令、 下达命令、合作、独行、解决方程式、分析新问题、 清理马粪、编程、烹饪美食、高效战斗、英勇牺牲。 专业分工是给昆虫准备的。



Powered by Gridea

...