2025-07-14 11:50:30
和之前这篇一样,本文是近期在微信公众号更新的图文的合集。
写了一个多月微信公众号的图文之后,截止到今日(2025/07/14),《F1电影: 给车迷的礼物 》有3千多阅读,《苹果的MagSafe》有2万阅读,《小米AI眼镜: 别买🙅♂️ 》有7万多,189条留言。但是小米那条变成了有点像吵架留言,我挺不喜欢的。以后也不发这种类型的东西了。
除了这两条以外,我分享的图书,电影和唱片基本上没什么阅读。互联网发展到今天,已经从以前的“点击率”变成了现在的“流量”,这些内容在各个平台能不能有“流量”等同于推荐系统愿不愿意推你。这个“推你”的权力保留在各个平台的手里。
我有一份全职工作,“流量”对我来说并不重要,所以我还是分享些虽然没啥流量,但是我喜欢的东西。
刚收到新买的“Dieter Rams: the complete works”, 这本书由编纂,收集了德国设计大师Dieter Rams的全部经典工业设计作品,其中大部份是博朗(Braun)产品,由PHAIDON出版社出版,品质保证。
Rams出生于1932年,1956年年轻的Rams在博朗公司设计出名震一时的经典作品: SK4 radiogram. (P2)
我是在看Scott Yu-Jan的YouTube Channel时留意到这本书的,他的video是3D打印一个iPhone Dock(P3),设计是就是致敬了DN40闹钟(P4)。
1991年的电影《末路狂花》(Thelma & Louise)我在前几年看过,但忘了,周末又看了一遍。主角都是女的,两位好朋友,相约一起开车去个山里露营休闲一下。结果Thelma路遇歹徒,Louise失手强杀那名男子,从此二人走向逃亡之路。
当时这部电影还曾是女性主义(feminist)电影的先驱,在那个女性抽烟被视为独立、很酷的时代,这部以女性为英雄主角的电影确实很帅。
除了女性主义以外,这部电影对于自由的追求,对于自我的解放才是真正的底层内核。
一开始Thelma是那个更加脆弱的人,而Louise是更加坚强的。直到他们遇到Brad Pitt饰演的小流氓J.D.,睡了Thelma并把救命钱都拿走了之后,两人角色互换。Thelma找到了真实的自己,直到自己内心深处真正想要的东西,而Louise在强撑了那么长时间之后终于崩溃了。最后在Grand Canyon悬崖前,是Thelma说:"Let's not get caught. Let's keep going."
最终两人驾驶汽车,面带笑容一跃飞入山谷。
重看这部电影,仍然为两人的勇敢而动容。
Louise在影片开头说:“You get what you settle for.”
周末在igc看到一家新开的挪威家具店,名字是Stressless。
设计感非常北欧,我一开始想这名字还不错,但是转念一想,这不是时刻在提醒我,现在我可能stressful吗😂
接着我想到,似乎stress这个词被用于心理学隐喻的时间并不算长,这个家具品牌说自己创办于1971年,那么孰先孰后呢?
我原以为这个概念可能会跟弗洛伊德有关系,没想到原来是由Hans Selye在1950年代提出的,他的书《The Stress of Life》(1956)让“stress”首次以科学语言进入普通人生活。
没想到,人类已经stress70年了😂。
这本书是索尼产品录,由纽约Rizzoli出版,品质保证。书本封面是PS 4的侧影,因为出版于2015年,当时还没有PS 5及后续产品,书本内页采用铜版纸,印刷精度很高。
书本前面有一小段文字,其中有一段来自前伦敦设计博物馆馆长Deyan Sudjic的口述索尼设计史,值得一读。全书最大篇幅的部分是大量索尼经典产品的高清摄影,包括早期的磁带录音设备HDV-1000,磁带录音机,Walkman,到后期的CD播放器,话筒,DVD,MD磁碟机,摄影机,游戏机,笔记本等各种经典产品。
熟悉Steve Jobs的朋友都知道,他受索尼的影响很深,许多苹果的设计灵感也都源自索尼。比如1977年乔布斯在Apple II的广告中使用了"Simplicity is the ultimate sophistication"这样的广告语(P10 & P11)。感谢Internet Archive我们现在能看到高清扫描版。
要达到极致的简洁,背后需要付出无与伦比的努力,无论是Apple还是Sony,还是我之前分享过的博朗设计,以及其他致力于让产品变得更加美好的团队,感谢你们的付出,人类世界才能变得更美好一点。
City Pop经典制作,日本女歌手杏里1983年发行的个人第六张录音师专辑《Timely!》,收录了当年的两首大热单曲。其一是《CAT'S EYE》,这首歌也是经典动漫《猫眼三姐妹》的主题曲。其二是角松敏生制作的《悲しみがとまらない》,两首歌都是我非常喜欢的杏里的代表作。
这张唱片的封面和内页都是在夏威夷拍摄的,摄影师是大久保久子(Hisako Okuobo),这位摄影师的风格也非常不错。
广州最近受台风影响,一直在吹空调外机,就该听一听ANRI,看看她晒得发黑的健康的皮肤,坐在办公室里吹着空调想象自己在夏威夷度假的感觉,这才是顶级牛马该有的姿态😂
2025-07-07 21:37:20
科技快乐星球,攒了一个月,量大管饱。最近Justin买了小米AI眼镜,先说结论:现阶段这类型的AI眼镜都没啥必要买。
除了小米,还有Meta和Rayban合作的眼镜,还有Meta和Okaley,还有国内的雷鸟等多家厂商都开发了类似的产品。但是小米的AI眼镜,与其他家一样,共享了所有此类设备都有的缺点,但并未针对这些缺点提出创新的解决方案。
详情我们在节目里详聊。
此外,OpenAI/Google/Claude等各大厂商持续在AI领域发力,眼看今年AI仍然是竞争大热的方向。
P.S. 纠正一处错误:iyo不是Jonny Ive的公司,而是跟他打官司的公司,Jonny Ive的公司是io 。感谢听友提醒🙏
fyfyFM
进群推荐使用苹果Podcast, 小宇宙等播客客户端搜索“枫言枫语”来订阅收听本节目。
2025-07-03 21:57:54
在F1这部电影里,Brad Pitt饰演的赛车手主角Sonny Hayes曾经被问过两次关于钱的问题。
第一次是在电影开头的转折点,在一个Cafe,他的老朋友(现车队老板)来拉拢他回去F1帮他的车队开车。两人聊完之后,一开始Sonny是拒绝的。老朋友走了之后,他问给他上菜的女服务员。
Sonny Hayes: a close friend of yours make you a offer that a hundred percent positive too good to be true. What will you do?
The waitress: Well how much are we talking?
Sonny Hayes: not about the money.
The waitress: So what is it about?
Sonny没有回答。然后他就坐飞机前往英国参加比赛了。
第二次是在电影末尾。Sonny帮助车队拿到分站冠军,使整个团队融为一体,原来小年轻车手也成长起来,他功成身退,前往沙漠参加巴哈1000越野赛。在沙漠里,他跟招聘赛车手的人又一次对话。
Old guy: have you ever driven in Baja?
Sonny Hayes: Nope.
Young guy: We can't pay much.
Sonny Hayes: not about the money.
Sonny没有正面回答到底是关于什么。但是他对赛车的热情,在围场中贴地飞行的追求,已超出他对生命的热爱。
Steve Jobs在1985年被踢出自己创办的Apple公司之后,在一次Newsweek的采访中谈到当时的心情。
Newsweek: How did you react when you heard the [Apple] board’s decision [to sue you]? These were people that you knew and worked with for a long time.
Steve Jobs: …(省略)… I personally, man, I want to build things. I’m thirty. I’m not ready to be an industry pundit. I got three offers to be a professor during this summer, and I told all of the universities that I thought I would be an awful professor. What I’m best at doing is finding a group of talented people and making things with them. I respect the direction that Apple is going in. But for me personally, you know, I want to make things. And if there’s no place for me to make things there, then I’ll do what I did twice before. I’ll make my own place. You know, I did it in the garage when Apple started, and I did it in the metaphorical garage when Mac started.
Steve对"Build Things"的痴迷也是一样的。虽然苹果是一家商业特别成功的公司,虽然F1这项运动无处不要花钱,但是我挺羡慕影片中的角色,以及Steve Jobs,他们对某种热爱的痴迷。
我想正是因为我们的生活中有太多太多的事情,无一不是about the money。所以当Brad Pitt开着他那辆乱糟糟的破破烂烂的Van,潇洒地说出那句:"Not about the moeny."时,才会为之触动。
生活已经有太多的不得已,希望有一天我也能像他一样潇洒地说出来:
Not About the Money.
2025-07-02 14:14:02
小米最新发布的AI眼镜有当前所有AI眼镜的共同问题,且没有提供好的解决方案,甚至不能跟自己的米家生态联动,这个眼镜已经不是鸡肋,是弃之不可惜。
2025-07-01 17:14:37
最近在玩iOS 26 Liquid Glass,其中新的Tabbar改动是很多的。
这个Apple Music底部的Tabbar就跟之前的版本完全不同。如果我们使用SwiftUI和新的API,要想获得这样的表现是很容易的。
var body: some View {
TabView {
Tab("Home", systemImage: "home") {
HomeView()
}
.badge(17)
Tab("New", systemImage: "square.grid.2x2.fill") {
NewView()
}
.hidden(sizeClass != .compact)
}
.tabBarMinimizeBehavior(.onScrollDown)
}
留意到当ScrollView的内容长度超过Tabbar之后,Tabbar会自动加上一层背景的渐变。看起来很Cool。
我在尝试一个东西,就是实现一个类似iMessage底部聊天窗口的界面,这时候遇到了问题。
目前这种置于底部Toolbar之下的渐变模糊,只有使用.toolbar
接口才能自动实现。SwiftUI没有提供额外的接口给我实现这样的渐变。
也就是说,如果我想实现iMessage这样的聊天界面,那么我最好使用.toolbar()
.toolbar {
ToolbarItem(placement: .bottomBar) {
Button(action: {
// 更多功能
}) {
Image(systemName: "plus")
.foregroundColor(.primary)
}
}
}
类似上述代码。这样的好处是我们自动地获得了底部的模糊渐变。但是当我们点了加号按钮,希望在Tabbar的下方弹起一个更多功能的面板时,不好意思,如果他是个Tabbar,那么目前没有办法让这个消息输入框能够放在这块面板的上方。
那么iMessage如何实现的呢?
以Stickers为例,首先它present了一个面板,出现在Tabbar的下方。然后,当你拉动这个面板往上滑,神奇的一幕出现了,它不仅挡住了Tabbar,甚至挡住了顶部的navigationbar!
我怀疑它可能是:
我目前倾向于是 #2,即使是 #1,我要实现和维护这个复杂度也不太合理,另外也不符合我想实现的视觉层级。
于是乎我放弃Tabbar实现。转而使用一个普通的View。那么我就需要解决底部渐变的问题。既然官方不提供,那就只能自己实现了。我尝试过几种不同的方案,也包括Metal Shader,但效果不佳,最后发现Design+Code有这个: Progressive Blur in SwiftUI
这个实现方案有点意思,它使用QuartzCore框架的CAFilter能力。首先创建一个"CAFilter",这个Filter接受几个参数:
这样通过调整inputRadius
我们就能动态调整模糊的程度。
inputMaskImage
则是一个利用CIFilter
生成的,透明度从0到1的一张黑色图。这样当alpha为0时,完全不模糊,alpha为1时,进行最大模糊。
那么这个Filter对谁作用呢?UIVisualEffectView
。
UIVisualEffectView里有一个CABackdropLayer
,这个layer可以实现实时的模糊处理。拿到这个Layer之后,对其应用上面创建的CAFilter即可获得渐进式模糊效果了。
具体的代码来自这个GitHub Repo,核心代码是这个: https://github.com/nikstar/VariableBlur/blob/main/Sources/VariableBlur/VariableBlur.swift
class VariableBlurUIView: UIVisualEffectView {
public init(maxBlurRadius: CGFloat = 20, direction: VariableBlurDirection = .blurredTopClearBottom, startOffset: CGFloat = 0) {
super.init(effect: UIBlurEffect(style: .regular))
// 我们用Objective-C runtime创建一个CAFilter,因为是私有API我们只能动态创建
guard let CAFilter = NSClassFromString("CAFilter")! as? NSObject.Type else {
print("[VariableBlur] Error: Can't find CAFilter class")
return
}
guard let variableBlur = CAFilter.self.perform(NSSelectorFromString("filterWithType:"), with: "variableBlur").takeUnretainedValue() as? NSObject else {
print("[VariableBlur] Error: CAFilter can't create filterWithType: variableBlur")
return
}
// 这里创建一个0-1 alpha的渐变图片
let gradientImage = makeGradientImage(startOffset: startOffset, direction: direction)
variableBlur.setValue(maxBlurRadius, forKey: "inputRadius")
variableBlur.setValue(gradientImage, forKey: "inputMaskImage")
variableBlur.setValue(true, forKey: "inputNormalizeEdges")
// 通过`UIVisualEffectView`拿到`CABackdropLayer`,然后我们针对这个layer应用上述Filter
let backdropLayer = subviews.first?.layer
backdropLayer?.filters = [variableBlur]
// 这里去掉VisualEffectView的其他细节效果
for subview in subviews.dropFirst() {
subview.alpha = 0
}
}
private func makeGradientImage(width: CGFloat = 100, height: CGFloat = 100, startOffset: CGFloat, direction: VariableBlurDirection) -> CGImage { // much lower resolution might be acceptable
// 这里创建一个0-1 alpha的渐变图片
let ciGradientFilter = CIFilter.linearGradient()
// let ciGradientFilter = CIFilter.smoothLinearGradient()
ciGradientFilter.color0 = CIColor.black
ciGradientFilter.color1 = CIColor.clear
ciGradientFilter.point0 = CGPoint(x: 0, y: height)
ciGradientFilter.point1 = CGPoint(x: 0, y: startOffset * height) // small negative value looks better with vertical lines
if case .blurredBottomClearTop = direction {
ciGradientFilter.point0.y = 0
ciGradientFilter.point1.y = height - ciGradientFilter.point1.y
}
return CIContext().createCGImage(ciGradientFilter.outputImage!, from: CGRect(x: 0, y: 0, width: width, height: height))!
}
}
最后,可以实现如下渐变模糊效果,结合ScrollView可以实现实时动态模糊。虽然效果不如系统的Tabbar自带的,但已经稍微可以接近了。
2025-06-29 21:44:27
Justin加州WWDC最后一期,最近美国的浓度有点高,本期应该是最后一期了。
前面两期节目,一期和科技早知道聊WWDC25的内容,另一期主要是和朋友聊CapWords的,其实这趟旅程有十来天,发生了挺多事情。包括在WWWDC现场的一些Developer Activities,Apple Park建筑的感受,优胜美地旅行的体验等等。
录制本期节目的时候苹果的F1还没上映(上图为Justin在Apple Park跟电影里的车子合影),等本期节目播出的时候应该已经热火朝天了。当时WWDC现场有去Steve Jobs Theater看电影的活动,很可惜等我看到的时候已经被抢完了没法去看,只能等国内上映了😢
Anyway,欢迎收听美国之行的最后一期,这趟旅程充饱电了,我们继续更新!
fyfyFM
进群推荐使用苹果Podcast, 小宇宙等播客客户端搜索“枫言枫语”来订阅收听本节目。