2021.8.24

 • 

周日的时候闲得没事,去 Product Hunt 上传了下 Hourglass 的信息,到周一晚上的时候差不多稳定在当日第八的程度,反响还行。只不过再看 PH,每日的 Product 不再是 App 为主,而更多的是服务,写作这篇博客之前去他们网页上一看就好几个:Newsletter Kit,Domain Finder,Startup Acquisition - 已然更加像是给创业者看的列表,而不再是独立开发者和应用爱好者们讨论好玩点子的地方。再加上穿插在列表中的推荐项目,各路人马私信寻求利益交换(即一赞换一赞),提交不到五分钟即有 SPAM 邮件询问是否需要机器人帮忙 vote - PH 已经不再那么好玩了,甚至我,即使一开始只是抱着玩玩的心态,在提交的时候也又在处心积虑地算计刷新列表的时间,然后在 Twitter 上转推他们 mention 我的推寻求曝光,即,我也成为了这种已经不太好玩的 maker 文化的一部分。
但这么要求一个网站回到过去也不是什么有意义的事情 - 别人要是要求我回到过去继续像本科一样翘课熬夜肝项目,我也只会耸耸肩说有什么好处吗,大家都在 move on 而已。最近还有一次比较明显地感受到了这种错位感,就是和已经毕业工作的一个校友朋友聊,提到学生时代的很多爱好,当然也包括上架独立 app,在他工作后也都无暇顾及,也并不觉得有意义再去做了。
再之前翻看独立开发者群,还有人提到感觉独立开发式微,看热潮变成了 3D / NFT / Metaverse,不知道 The Next Big Thing 是什么。我出于个人原因,当然是对 Metaverse 低看一眼,觉得是一种具有传销潜质,但包装的很科幻的思潮罢了,毕竟 meta 精妙的地方,就在于套娃一样的“不可证伪”和“装作自知”。但不管如何,这种对变化的切身感受我倒是没有什么要反驳的,如今世界一天一个样子,股价可以顷刻腰斩,国家可以一天沦陷,要说明天人类就开始打热核战然后十年内所有人被迫进 matrix 造 metaverse,好像也不是那么天方夜谭,甚至有种求仁得仁的喜剧之感。


最近听了啥:Everybody Wants To Rule The WorldSelf Care。最近看了啥:把 Daniel Craig 主演的几部已经上映的 007 全看完了。

2021.8.21

 • 

最近很多事情都是“在做了在做了”的状态。全职在找了,选课在看了,个人项目在上架了,驾照在办了。还有很多事情想做但连开头都没,比如比如把博客从 Ghost 迁移到 Nuxtjs 上,比如写个人游戏,比如找个时间去金门大桥看看海。在抉择做与不做乃至以此消磨时间的过程中,感觉一个人生活还是要有很强的自我调节能力,不然实在很容易一天就消磨过去了。



Hourglass 上架了,可以从 Mac App Store 下载。我还在想要不要顺手把 Diffuse Mac 给做了,但好像也没太多时间。

2021.8.15

 • 

实习结束了,有成就也有缺憾,不过暂时也不太去考虑这些,距离开学还有两周,想先放松下,然后把之前拖延的事情都给做下。
想起来临走之前和大组老板告别,他说等后面可以线下一起喝个酒之类的,说完好像想起来了什么又确认说你达到能喝酒的年龄了对吧,还挺出乎我意料的。都知道我在读研究生了,想来再怎么也不至于这么年轻,更何况来加州后一直懒得去剪头,现在是头发长到像是狮子,日常要靠帽子来压住头发的状态,整个人可能看起来更为年老落魄些 - 至少我妈和我视频电话的时候是这么说的。
然后就是,和朋友聊天的时候还提到,看到还在读本科的实习生对于在苹果实习十分兴奋,这我当然是能理解的,我也一样。只是他们谈及苹果的时候,多了一种发自内心的自豪感,处处以“我们公司”来称呼,让我想起来之前我本科的时候拿个百度的月饼就好开心要发朋友圈,有种崇拜公司,靠称呼来获取更大的组织的认同感的感觉。这也是能理解的,不管是发自内心的开心也好还是有意识地借力公司的存在感,我都没意见,只是觉得大可不必积极把自己融入到公司的 narrative 里。当然,也可能是我过于警惕大型公司这种组织性的设置,也过于注意个人空间了,但于我而言还是这样舒服些,更何况最近公司的一些新闻并不光彩,甚至到了一种反讽的程度 - John Gruber 曾经在博客里对 Facebook 工作的人表达近乎迫害的意图,即 - 你选择在这家公司呆了下去,那你活该简历烂没人要 - 这种观点还有人小丑一般地附和以及辩解,而当苹果一样做了似乎是恶的事情的时候,不知道 John 会不会因此一样一杆子打死所有苹果员工。我这里甚至不是在讨论最近公司的政策是否对与错,而是盲目把人和公司绑定在一起是一种多么危险,甚至在 John 这个语境下可以称之为伪善的举动。

EDIT:想起来似乎是这半年来第一次如此旗帜鲜明地发表看法,但无所谓了,这个博客已经叫 echo chamber 了。what do you expect?

Taking screenshots of SwiftUI views on macOS (Swift 5)

 • 
import SwiftUI

extension View {
    func imageRepresentation(rect: CGRect) -> NSBitmapImageRep? {
        let hosting = NSHostingView(rootView: self.frame(width: rect.width, height: rect.height))
        hosting.setFrameSize(rect.size)
        hosting.setBoundsSize(rect.size)
        hosting.layout()
        hosting.layerContentsRedrawPolicy = .onSetNeedsDisplay
        hosting.setNeedsDisplay(rect)
        if let imageRepresentation = hosting.bitmapImageRepForCachingDisplay(in: rect) {
            hosting.cacheDisplay(in: rect, to: imageRepresentation)
            return imageRepresentation
        }
        return nil
    }
    
    func asImage(rect: CGRect) -> NSImage? {
        if let cgImage = imageRepresentation(rect: rect)?.cgImage {
            return NSImage(cgImage: cgImage, size: rect.size)
        }
        return nil
    }
    
    func asJpegData(rect: CGRect) -> Data? {
        return imageRepresentation(rect: rect)?.representation(using: .jpeg, properties: [:])
    }
}

Usage:

let view = AnyView(<Your View Here>)
let imageData = view.asJpegData(rect: CGRect.init(x: 0, y: 0, width: 128, height: 128))

2021.8.8

 • 


Hourglass 支持读取正在播放的音乐了,后面这套机制可能能用来写 Diffuse Mac,目前四个角可选的内容基本都做完了,日历事件,时间,正在播放,天气,可能要再加一个时区时间,然后还有一些边边角角要修。
算下来搬过来一个半月了,自己一个人住方便是方便,但也容易变得懒散,再加上作息不规律,牙又开始疼了,准备先吃点药看看情况,不行的话就要约牙医了,刚好处于保险前后交接的时间段里,比较尴尬。
总是有很多事情要做,总是没有时间来做。
听了 FKJ 的 Just Piano,Funky DL 的 Jam,J-Fever 的 沙琪玛,此外还听了 On The TableEdamameCrank oFean - SOLO (SKYLAB Recapture)In The Mood (hommage to moods)GO!!!! (ON THE COUNT OF 3)Fortune - All Alone Ft. Alexander Lewis,和 COMPUTER DATA - Healing [CLIPP049]。看了 CODA,虽然中间有事情略过了一部分,但仍然看的很开心,是那种即使知道剧情走向也仍然会想看下去的电影。

2021.8.4

 • 

Day One 给我推荐了七年前的照片,看了一眼还是刚高考完几个人在咖啡厅折腾项目的时候,当时刚拿到了第一台 Mac,还跑着 OS X Mavericks,壁纸是波浪那个。也大致是那个时候开始捣鼓 wordpress 和 quartz composer 之类的,然后看学长 Xcode 用的很神奇,入了学 iOS 的坑。
照片里的人好多都没再联系了,结婚的结婚,换工作的换工作,创业的创业,只有朋友圈偶尔点赞,关系后来处的最好的一两个人最终我也拉黑了,没再知道后来发生了什么。有的时候再看到这些会觉得自己的路怎么越走越窄 - 虽然我也有在交新朋友罢了。
看完照片后就想着要不要把 years of pilgrimage 那个 Unity 项目再拾起来,做成一个短篇故事集一样的 indie game,内容就是用 low poly 重现一些过去个人经历 - 重要的事件,做过的梦,之类,算是一个 3D 版本可以交互的 Day One。

2021.8.1

 • 

给博客升级到了 Ghost 4,顺便更新了下主题支持了暗黑模式。
最近在做一个新项目 Hourglass,其实就是把之前参与 Flutter Clock 竞赛的 ConeClock 拿来做成 Mac 桌面,效果是这样的:

开发进度会在这个 Twitter Thread 更新。此外最近还有些其他的想法,不知道有没有时间写了。

2021.7.28

 • 

今天给 Craig 演示了项目,具体内容受制于 policy 还是没办法写出来,但可以说是整个实习里最有“我在实习”感觉的一天了,也算是变相弥补了两次 WWDC 奖学金都没去成的遗憾。上周朋友开车陪我去了趟公司附近的 visitor center,在那里买了件公司文化衫,今天演示的时候还特意穿了作为加成,然而好像并没有人注意到 hhh

这之后可以考虑些之前因为准备演示而忽视的事情了,比如学校的秋季课程,一些个人的打算,没回的邮件之类,然后周末准备骑电单车出去逛逛,结束实习开学前去学下开车。
听了 Voyage Funktastique Boiler Room Montréal DJ Set,这套太强了,在 Apple Music 和 Soundcloud 上都收藏了一遍。以及听了 bbno$ 的 edamame

2021.7.21

 • 

还算开心的一天,给大组的老板 present 了实习项目,反响貌似还不错,也问了我一些问题,不得不说好像公司里的 manager 都挺技术的,问的问题很尖锐,明显地能感知问的人对整个东西有理解,知道某些组合的取舍,某种技术可以达到的边界,某种问题本质上的定义,可以算是技术的那种 sense,对我来说是个让我觉得很不容易的事情。原本之前一直想用员工优惠买台 iPad 但最近手头好像不是很宽裕就没买,演示之前想着那就如果这个项目能再进一轮的话就考虑买吧。结果 present 完不到两个小时,消息出来了,可以再进一步给更高层的人继续演示项目,也算是给我一个借口冲动消费了,虽然到现在我还是没买,好像也没什么想法能用来做什么。不管怎么说,虽然项目还有很多缺口,有很多我没头绪的问题,但在内部层层演示的进展还算平稳,好像自己应该更加积极和自信地去推进这个项目才对。

2021.7.13

 • 

因为上周在赶这周一 presentation 的缘故,周末好几次都是四点才睡,于是周一演示完后作息彻底乱了,傍晚五点多在打卡软件上点了 punch out 后一下子就睡了三个小时,中间被我妈打电话吵醒了一次,从接通到挂断完全是肌肉记忆一般,意识完全放在想要睡觉上。
后来又被电脑的提示音吵醒了,因为房间里个人和公司加起来有三四台 Mac 一直处于靠 Amphetamine 保持常亮的状态,所以每个提示都会重复好几次。于是生无可恋地爬了起来检查通知,好像也没什么事情,没有工作邮件,项目仍然保持毫无头绪的状态,也没有紧要的个人消息,除了已经九点了,有种活动时间突然少了三个小时的不甘。再看了眼微信 CMU 的群里已经在讨论明年 new grad 招聘的事情,我绝望地重新倒在床上,这才七月啊,哪里轮得到就要开始准备找工作了。