2021.10.2

 • 

之前在推上提到过想要打印一本书的想法:

我:有个想法,把个人博客,Twitter 和其他地方的数据全 dump 下来,然后找发布书的平台做一本书,打印一本自己翻着玩
我朋友:出自传了相当是
我:如果能搞定的话,感觉可以当 24 的 yearly project 了,不过今年事情好多,不知道能不能
我朋友:我 24 的 yearly project:活到 25
我:草
我:有道理

倒也不是 “ego 爆棚” 之类的原因,只是最近我的 Google Play 开发者账号连续被封,让我挺焦虑的。花了那么长时间做的东西说没就没,搜索排名和用户的评价也一同消失,对于以用户认同支撑的独立开发者来说,可以算是毁灭性的了。我固然是没有办法对抗 Google Play,这部分也可以认为无法找回了,但我还有其他在网络上的 presence,希望能在这些地方都关停之前纸质化下来,这个博客尤为重要,因为我总有担忧哪天突然我就没办法续费服务器或者域名了,然后这个博客就在毫无维护的状态下慢慢挂掉。

2021.9.30

 • 

近况

  • 暑假实习的全职 return 有了个口头的正面回复,虽然很多人和我说“只是口头”,但我觉得也够了,看什么时候能走到实际的流程里
  • Google 因为乌龙事件拒了我的 new grad 申请,连个 OA 都没拿到。希望能邮件扯皮下让很迷的 HR 把我的申请再重新过一遍
  • 投递了很多其他家,暂时都还没进展
  • 重新上架 Diffuse 的二十天后,最后一个 Google Play 账号也就是 FinGameWorks 也因为 “prior violation” 封了。打算有空的时候写邮件给开发者关系,即使很大概率拿不回来,但至少要别人听到我对整个 flawed system 的不满
  • 去开了卡丁车,还蛮好玩的,除了有点贵,然后脚因为一直踩踏板有点抽筋
  • 闲的无聊的时候,用 wayback machine 读 Livid 的老博客来着

2021.9.25

 • 

周末了。想了下本周好像没在做啥,一大部分时间都在虚度。
因为学校 Practicum 有个 AR 的需求,研究了下怎么把 SwiftUI 嵌入到 SceneKit 里 Plane 的 material 里,并且怎么做触摸事件的支持。这部分暂时算是达到了,但键盘事件等等细碎的适配还完成,效果 也还行。得,我想着,我又开始做不受官方支持的 hack 了,但只要 Practicum 验收之前这个 hack 还能用,我好像也就无所谓。
上上周+上周的两个面试都无结果后,我就没怎么再投递和面了,看起来好像进展停滞了一样。空下来的一部分时间用来 Practicum 这门课的组队开会上了,另外一部分时间拿去写 Embedded 这门课的汇编程序。看看周末能不能多投递几家,保证十月份继续有面试面。此外也要 reach out 之前的蓝牙组,看到底 return offer 是什么意向了。
工作日的时候和现在在 Stanford 的一个老同学吃饭,提到 Stanford 内部创业氛围十分浓厚,社交局也蛮多。想了下好像 CMU 这边就更多的是找工作,然后日常就是赶作业,还挺不一样的。希望下学期我能闲下来做些课外的事情,这学期的话反正也开始上了,就不退了。
听了 Soulection 500Change ya mindKaytranada (Dj Set) Live @ Boiler Room MontrealSoul - Only One (Joe Kay's Slowed Sade Edit)Esta. - Only One (Love Is King)I Want You,后面这三个全是在 sample Sade 的歌,YouTube Music 还偶然给我推了 Sade 的
Frankie's First Affair,听了才发现小老虎的伤心者原来是在 sample 这个。看了基地的前两集,感觉设定还不错。

2021.9.19

 • 

大半夜的睡不着,拿起 iPad 在 HBO 上点播各种电影片段消磨时间,于是看了一会哈利波特,然后继续在软件内点点点,又看了一小段 1974 年版的了不起的盖茨比。这个版本的倒是挺还原小说,连 Gatsby 和 Daisy 见面的时候 Nick 出门在下雨的室外绕着自家走了一小会这种细节都还原了,Gatsby 在收入来源和个人奋斗上那种遮遮掩掩和自相矛盾也通过台词体现出来,这点好像新的那个版本反而弱化了。除此之外就是到处充满了老电影的感觉,包括运镜转场,比如某个场景要结束的时候,镜头就从人物慢慢移动到草坪上的积水,放大景色,然后渐变到黑色,挺像是 2000 年家庭 DV 的效果,至少我爸以前拍家庭录像老是喜欢这么干。总之就很年代感。
看了一会关了,然后又在软件里点点点找 2000 年的电影。想起来童年时代看过一部脑洞大开的儿童科幻片来着,名字全然忘了,只记得像是在玩游戏一样。反正睡不着,脑子一热就去搜到底名字叫什么,结果叫 Spy Kid 3D。再去看真的是惨不忍睹,但小时候看这个电影的感觉倒还记得,就只觉得很酷炫,现在看就觉得特效好粗糙,儿童演员好尬,到处充满着 2000 年 high tech 的感觉,YouTube 上还有人称之为 "Fever Dream",还挺贴切。
于是转战 YouTube 继续点点点,又看了遍迪斯尼 Fantasia 2000 里面的 Rhapsody in Blue,真的是经典一点也不过时。小时候看狂想曲两千,最喜欢的章节就是这个蓝色狂想曲,当时只觉得音乐好听画风也好玩,只是不懂为什么落魄男子喝咖啡的时候身后的入口一会人来一会人往的还超快不知道在赶什么。现在再看自然明白那个是地铁口,赶路的人超快也不是一定真的要快,而是在表现落魄男子喝一杯咖啡又续杯,在咖啡厅呆了很长很长时间,以至于地铁都开了好几遍了。重新看这些东西,再感受小时候和现在认知的落差,实在是有趣。
想到这里觉得其实好像我童年还挺幸福的,全靠当时家里有出游时录(还是磁带的) DV 和去影像店买 DVD 的习惯,我才能有这些奇奇怪怪的认知和记忆。这里面我爸功不可没,作为一个平日上班空闲时还买打口唱片,捣鼓录像机和功放的人,他可能算是当时那个十八线小城里少有的 geek 了。

2021.9.17

 • 

51 学分的威力逐渐显现出来了,本周忙成狗,或者说好像看起来没怎么忙但实际上很耗费心力,主要就是在不停地 context switching 上,和 sponsor 一起的团队项目要不停开会,经常这边塞一小时那边塞一小时的,然后自己还在忙两人合作的硬件编程作业以及个人的事情(做面试 take home,采购吃的喝的,买换季衣服,做饭刷锅,视频聊天),因此总之在不停地地开关相应的软件,材料,网页以及联系窗口上,脑子里也要不停回想下一个项目之前做到哪里了。fully loaded 的后坐力大虽大,也不打算退课,好像也过了退课的时间了,最多后面把一门课改成 pass / fail。
面试的准备也不太好。至此想去的两个组一个是被备胎,一个恐怕也没下一轮了,继续准备其他的罢。
能察觉到自己的心态会有微妙的变化,和朋友商量想要去做的事情的时候不知道要怎么宣告这种变化,只能随口提一嘴看大家的反应。但即使是我想要去做的事情,不管是出于爱好的,还是出于私心的,眼见着也都没时间去做,只一直在要去做的准备部分那扇门不停地跨进来跨出去,因此 context switching 的成本更大了。

2021.9.14

 • 

IMG_20210912_124227
上一场面试结果出来了,意思是以后可以再聊 - 现在他们想要更强一些的人。反正秋招就是不停地投递然后面试,这个没过也没啥,继续面着,虽然这个组我其实还蛮喜欢的,要能 move forward 我就无脑签了。
从 Cee 那收了台 OSMO Action,没想好能干嘛,可能就拍拍然后试试能不能剪一个视频 - 不过后来发现这个东西可能更适合室内固定的地方用来做 devlog 或者 timelapse 之类的东西,出去的话一个是没有防抖,一个是广角镜头想要 telephoto 的效果只能后期数码 crop in,因此拍出来的素材比较棘手,可能目前我还没有思路怎么利用这些素材。至于又有变焦又有云台防抖的 OSMO Pocket,我另外一个朋友在打算买来着,准备回头看看他的使用心得。
听了好几集 Boiler Room 的 DJ Set,比如 Nic FanciulliKaytranada,和 Ash Lauryn。最近想学 Houdini 来着,但作业太多了,又要准备面试,不知道还有没有时间。

2021.9.9

 • 

面了一场 all-day interview,希望周末或者下周一能出结果。
开始看 Intro to Embedded System 这门课的作业了,发现自己很多不懂,像是缺了什么前置课程没上一样。只能硬着头皮翻各种文档。再加上 Practicum 也开始事情多起来了,感觉这学期会和上学期一样忙。
Diffuse 被我用 FinGameWorks 的开发者账号重新上架了,因为之前的付费记录在封号后无法获取,为了避免重新付费的问题,以及自己也不图什么收入只求软件还在商店上,这次上架的版本是免费全功能的,即 Diffuse 变成了一个免费无内购软件。此外,Interseasonal 和 Contrail 都是因为 FinGameWorks 所谓的“多次违规”而封号的,但 FinGameWorks 至今仍未被封号并且还能提交新软件,可见要么并没有什么“违规”,要么整个风控系统的逻辑十分自相矛盾。
听了 Soul - Only One (Joe Kay's Slowed Sade Edit)

2021.9.5

 • 

PXL_20210831_011014752-3
周一因为 Labor Day 继续放假,所以周日算是在一个三天假期的中间。
才发现黄金年代三人组(蛋堡 Soft Lipa,滿人 Manchuker,荊軻 Jnco)现在有了一个 YouTube 频道叫做有夠難約,于是连看了三集,分别是蛋堡自己,ØZI,9m88,十分有趣。
听了 EverybodyLittle by LittleMiss SummerMarigoldsTenderly峇里岛幻视你,看了 Free Guy 和 Netflix 关于 911 的纪录片。

2021.9.1

 • 

Screen-Shot-2021-09-02-at-00.17.49

开学第一周过半,事情没到忙不过来的程度但也不少,潜意识总觉得应该周五了才对,其实还只是周三的晚上,想起来丁丁历险记的那个 "what a week huh" 的 meme。
这周对我影响最大的就是,我的 Google Play 账号又被封了。要解释为什么被封很困难,因为似乎我的确有 violation 的地方,但整个封号流程又充满逻辑上自相矛盾的地方,更不用提 Google Play 一点也不透明的工单系统和充满疑问的永久封禁举措。


简单来说,我在今年之前一直使用的是 FinGameWorks 这个账户发布我的 Android 软件,这个账号在 15 年我刚注册的时候上架了一些很基本的软件,譬如 Stillness 这个小游戏和用 Processing 写的 METER clone。彼时 Google Play 的上架很简单,需要的 metadata 也极少,因此这几个软件毫无问题地上了架。18 年的时候 Google Play 开始要求更多的 metadata 信息譬如是否适合儿童使用,以及要求 privacy policy,而我当时正因为学校毕业和创业公司的问题处于 AFK 的状态,也就没再管 Google Play 的邮件,之后 Google Play 就因此把我的一些没有足够 metadata 的软件下架了,措辞也十分客气,读起来一点也都没有 violation 的感觉:

Hi developers at Justin Fincher,
Your app, Cyan, com.JustZht.Cyan, has been removed from Google Play because you have not made a child-directed declaration. Google Play developers are required to declare in the Play Console whether their app is primarily directed to children under the age of 13 as defined by the Children’s Online Privacy Protection Act (COPPA).
This app won’t be available to users until you submit a compliant update. If approved, your app will again be available with all installs, ratings, and reviews intact.
Action required: Declare whether your app is primarily child-directed
...
If you’ve reviewed the policy and feel this removal may have been in error, please reach out to our policy support team.
...
Thanks for helping us provide a transparent experience for Google Play users.

下架就下架呗,我的账号也并未因此受到任何限制,19 年至 20 年,我给我的一个软件推了大版本更新(Skyline),甚至在准备留学生申请期间连着发了五个新软件(UniLWP.Droid Tech Demo,Diffuse Free,Diffuse Paid,Metropolis,以及 Diorama),新增了大约 130k 的下载量,FinGameWorks 这个开发账户一直毫无问题。
接着在 20 年底,我的 UniLWP.Droid 框架成型,作为 Unity based LWP 计划的一部分,我注册了一个新的开发者账号准备专门分发相对简单,廉价,制作周期短的三维动态壁纸(相较于开发周期动辄 2-3 个月,全面采用 Material Components 原生界面的已有动态壁纸来说)来证明 UniLWP 的能力。这个新的账号,Interseasonal Software,在开始走第一个软件的上架流程后就突然被封了,原文如下:

尊敬的Interseasonal Software开发者:
您好!我们发送此电子邮件是为了通知您,您的 Google Play 开发者帐号已被终止。
终止原因:此帐号或相关帐号之前多次违反开发者计划政策和开发者分发协议(我们之前已向您在注册 Google Play 开发者帐号时所用的电子邮件地址发送电子邮件,其中做出了相关说明)。
根据我们违规处置流程的规定,如果您屡次或严重违反我们的政策,我们可能会终止您的 Google Play 开发者帐号及相关的 Google Play 开发者帐号。
您可以访问开发者政策中心,更详细地了解我们如何贯彻实施开发者计划政策。如果您已阅读相关政策,并认为此终止决定可能有误,请与我们的政策支持团队联系。
请勿尝试注册新的开发者帐号。我们目前不会恢复您的帐号。

我就很摸不着头脑,申诉后获得的回复也很套话:

After review of your appeal, we're unable to reinstate your developer account.
Your Google Play Developer account has been terminated due to multiple violations of the Developer Program Policies by an associated Google Play developer account. We’ve reviewed and confirmed this association.

行吧,此时我也准备动身去读书了,因此也就只当是 Google Play 算法的一个失误,没再去管。但考虑到学生身份的一系列问题,和我有关联的财务问题最好还是有一事少一事,还是需要一个新的开发者账号,托管在他人名下。于是我就注册了 Contrail Software 并将 FinGameWorks 的大部分软件转移至了这个账户下,并没再动过。这个账号也的确相安无事,在我读书的这半年维持着软件的上架状态。
接着就到了这学期开学前夕,看到 Diffuse 有 8 个月毫无更新的用户开始写信问我是不是放弃了这个项目,我也考虑给 Diffuse 修下 Android 12 上的一些问题,所以在结束苹果实习的那两周抽了点时间升级了下 LibGDX,Sentry,和 Material Componments 推了一个新的 beta 版本,然后就要开学了,索性我就把 beta 推到了 public release channel,开始了占总用户 10% 的渐进分发。
然后 Contrail Software 就被封了。这周二早上收到了一封和 Interseasonal Software 收到的措辞一样的信:

This is a notification that your Google Play Publisher account has been terminated.
REASON FOR TERMINATION: Prior violations of the Developer Program Policies and Developer Distribution Agreement by this or associated accounts as outlined in previous emails sent to the registered email address(es) of the Publisher account(s).
Google Play Publisher suspensions are associated with developers, and may span multiple account registrations and related Google services.
You can visit the Developer Policy Center to better understand how we enforce Developer Program Policies. If you’ve reviewed the policy and feel this termination may have been in error, please reach out to our policy support team.
Do not attempt to register a new developer account. We will not be restoring your account at this time.

都在说一个 “associated Google Play developer account” 的 “multiple violations”,但是不说哪一个账号的什么 violation,完全是让人猜的状态。我于是猜想是不是之前 FinGameWorks 那几个被 Google 下架的软件,于是去把那几个软件缺失的 metadata 全补上了,修改审核通过(也就是变为正常状态)后再选择了我自己下架,觉得这样应该就算是解决可能的 violation。值得注意的是,作为 Contrail Software 仅有的关联账户,FinGameWorks 此时直到今天仍然是活跃的,毫无被封号的迹象,这也是我不理解的一点,按理说如果按照邮件里说关联账号也就是 FinGameWorks 这么劣迹斑斑,不应该早就没了?但 Appeal 后结果还是一样:

After review of your appeal, we're unable to reinstate your developer account.
Your Google Play Developer account has been terminated due to multiple violations of the Developer Program Policies by an associated Google Play developer account. We’ve reviewed and confirmed this association.
Google Play Developer account terminations are associated with developers and may span multiple account registrations and related Google services. Do not attempt to register a new developer account. Any new accounts will be closed and your developer registration fee will not be refunded. We recommend that you use an alternative method for distributing your apps in the future.

仍然是毫无透明度的套话回复,和 Google Play Developer 的 Twitter DM 里也直说这个决定是 final,意味着似乎他们也不打算再多看一眼。


那么这意味着什么呢,首先包括 Skyline,Diffuse,Metropolis 在内的 Android 软件在 Google Play 上全部没了,也没有转移的选项,因为一旦封号,整个开发者后台就只有政策页面,而且一段时间内只能申诉一次,申诉被回复后就没有申诉按钮了。对用户来说比较麻烦,毕竟之前买的软件突然没了,像是跑路了一样。对我来说可能近期找工作也比较麻烦,Diffuse 算是我用 LibGDX 写 Kawase Blur 和 Domain Wrapping 的一个例子,原本还想用这个例子去面一些可能对图形学有要求的团队来着,结果现在用来示范的软件没了。此外简历上我还写着 Skyline 曾经是 Google Play 当日付费总排行第二名的软件来试图说明 Indie Business 上的成就,现在用来证明的软件也没了。

至于我准备怎么做,可能把这些软件改成完全免费甚至开源的版本,改包名后用 FinGameWorks 重新上架,至少保证我的独立开发 Portfolio 还在,找工作也好,保留作为独立开发者最后的骄傲也好,或者只是觉得“有人用我的软件我很开心” - 这倒不是被封之后突然开始求可怜起来,我在给很多用户的邮件里都是这么写的,如果不是这个心态,我也不会在 Reddit 上给用我盗版的人发正版的激活码了。至于 Google Play 的后续软件开发,比如 Diorama 或者几个还在 WIP 的项目,可能就完全不干了,因为我也不确定会不会因此又封我账号。

最后,至于我怎么想,我其实也没啥想法,我现在只是毫无波动地在这里记录整个过程,我也很累,觉得独立开发者这个爱好不太想做了。以前做独立开发者是觉得在创造而不是在消费,觉得自己能想用什么软件就自己做出来,这些都是好的 - 我也仍然相信这些,只是近期独立开发者的体验,很多时间并不是那么开心,受制于各种限制,或者是身份的原因,或者是实习条款的原因,我很长一段时间没办法更新或者发布软件,更多的时间是在和工单系统扯皮,获得类似于在政府机关能获得的套话回复,自己无能为力。当然也不是不可以再去发个 Medium 发个推,买个推广,给科技媒体发邮件求报道,采取一些媒体上的举措引起开发者关系的注意 - 去 Google 一搜,排名前几个的被封的账号都是这么要回来的 - 但我也没有这个时间和金钱去投入了,说到底,我也只是一个在 workload 据说很重的学校里里读研究生同时又在找毕业后的工作的普通学生罢了,与其继续在独立开发这个事情上挣扎浪费时间寻求账号解封,不如重新捡起来 hackathon 打打,又好玩又能 network,说不定还能拿点奖金。

最后,近期的很多事情,都更让我相信村上春树关于“站在鸡蛋一遍”的立场,这个怕是也不例外,不管 Google Play 造福了多少独立开发,里面的自动化系统一旦出了差错,接待我的工单人员也都像是傻子一样连个具体的原因都说不出来,对于他们来说只是上个班 another day another dollar,对我来说是这两年很多熬夜做出来的,我引以为豪的数字工艺品,突然就没了最官方的分发渠道,而没了官方渠道,基本上也就是没了。

2021.8.29

 • 

开学前的最后一周了。去 CMU SV 校区拿了新学期的材料,在 NASA 园区里,进门就有一个航天飞机的模型。参加了秋季学期的 orientation,还被 cue 到要发言讲个人经历。周六公园聚餐见了些同学,逐渐有了些线下上学的感觉。
除此以外没做什么事情,陪新来湾区的朋友采购些东西,顺便在华人超市买了些有的没的,榨菜,粽子,果啤,还有瓶旺仔牛奶。尝试给 UniLWP 修 bug 添加新功能,但发现之前写的代码已经快忘了什么意义,目前还没什么进展。和很久没联系上的笔友又联系上了,邮件里简短地聊了下现状。想要上 Computer Graphics 这门课但 petition 还没进展,return offer 暂时也没信息因此又开了 LinkedIn 会员准备投递秋招以及准备面试。
剩下的时间主要就在打游戏。花了十几个小时把 MGS V 在 PC 上又打了一半,因为之前在 XBOX 上通了一遍所以其实没啥新的,而且 PC 版还不像 XBOX 一样可以常驻后台一直修基地平台,因此进度也不算快,最后也厌倦了删了。
晚上睡不着爬起来又把宫崎骏的红猪看了一遍,提到红猪就又要推荐一遍讲宫崎骏和飞机的这个 YouTube 视频,特别是 Macro 进入飞行员的 limbo 看到飞机组成的白色飘带那部分。然后最近在听 COOL。很老的 Fusion,专辑封面很有趣,以前我爸放这个而我不知道名字的时候,就直接叫这张专辑"两根黄瓜"。