zhangv (22)

BEEF

最近看了一部10集的美剧BEEF,纯粹是因为黄阿丽去看的。等一下,去查查BEEF到底是什么的缩写(随着年龄的增长,似乎好奇心也衰减了,居然看完才会去查一个不认识的缩写),当然不是牛肉的意思了。这里应是“不满,结下梁子”的意思。中文译为“怒呛人生”,很信达雅。 剧中的主要人物一水的亚裔ABC,华裔、韩裔、日裔集齐了。而且老中青都有,还是非常具有代表性的,而且编导团队也好几个亚裔。 看完以后,似乎能够体会到亚裔族群,在美国社会里的一种困境远不是自己之前想象的那样。相对还是封闭的,尤其是还要应对上一代家族那种掌控感。我能想到的最主要的一个词是:自私。 这里的自私,指的是那种 - 以自己的感觉来帮助身边的人做决定的行为,通常还有点暗戳戳。

悲观是一种情绪,乐观是一种思路

在《茑屋经营哲学》即将看完时看到了这句话,源自法国哲学家艾伦(没有找到具体的出处,猜想应该是雷蒙·埃隆,《知识分子的鸦片》作者)。恨不得马上拿出手机记下来,后来索性打开电脑,写点什么。 一直以来都认为悲观是因为「看过去」,而乐观是因为「看未来」,更多的是从看待事情的结果来区分,比如过去的成功/美好,而当下的不成功/不美好,再到寄希望于未来的可能的成功/美好。 情绪和思路,是一个之前没有注意到的视角。但是却让我非常“费解”,尤其是后半句“乐观是一种思路”,对一个我这种语言有些洁癖的人来说,情绪和思路完全是两种东西,则么能在这里相提并论呢?难受。虽然分开来解释很容易理解,但放到一句话里就是特别别扭。考虑去找找原文的出处和原文仔细辨析一下。 情绪是不解决问题的,或者仅仅是对压力的一种释放或抵抗;而思路则是奔着解决问题而去的,或者说是行动。情绪最常见的表达方式或者动作是“说”。如果从这个角度理解,重新组织一下:悲观是只说不做,乐观是马上去做。 那么我们可以认定:一个只说不做的人就是一个悲观的人,或者一个悲观的人只说不做。

Quasar历险记

最近有一个新项目,想尝试一下Quasar,据说是一个很好的hybrid框架,由于之前尝试过用cordova + vuejs 开发hybrid APP,并且体验还不错,恰好Quasar又是基于vuejs,且支持cordova。考虑了一下,就入坑了,没准顺便就升级vuejs3了。开始,还是很和谐的,非常快,Quasar的文档也很赞。 直到第二天,当我发现发布到testflight上的iOS版本打开是白屏,可是在开发模式下(quasar dev -m ios)时是很正常的呀?由于之前遇到过类似的问题: 1. vue-router的用了history模式,而不是hash模式 这个仔细排查,通过(quasar inspect)仔细查看生成的vite配置,非常确定vue-router相关的路径配置是正确的。 2. 发生了js报错 打开safari的开发调试工具,查看iOS中的报错,发现是被CORS掉了。很奇怪,之前用cordova时候没有遇到这个问题呀? 于是看到,在vite构建时会生成js文件并注入到index.html中,其中对js的文件引用采用的方式是" type=module crossorigin ",而这就会触发CORS检查。官方文档是这么解释的。天真的我,试着写了一个vite插件去删除掉这两个属性,但是却会造成无法使用export关键字的问题。 也尝试了将build.target改为各种低于es2019的版本,都无效。 而由于在cordova中是文件系统,这里就会产生一个很无解的情况。 接下来,只能再尝试一下使用webpack而不是vite去构建(因为有之前的成功项目作为背书),但可能会面临一系列版本冲突,webpack生成的js确实和vite不一样,且引用方式也不同。但是还没有功夫研究区别在哪里,只能考虑是否要用webpack再试试。 2023-4-28更新 采用Quasar的webpack模式初始化项目是可以的。 又继续调查了一下,在config.xml中加入: <preference name="scheme" value="app" /> <preference name="hostname" value="localhost" /> 也是可以的。参考

万宁陵水游记

疫情三年终于过去了,寒假也没几天了。刚上初一的儿子也没几天假期余额了,赶紧出去一趟,去万宁冲浪热热身。 我可以算是一个海南黑,反对亲人去海南买房置产就学养老旅游,虽然这次已经是第二次了,实在是有不得已的苦衷。确实不享受,一来国内的旅游目的地同质化太严重,多样化不足,品质参差不齐,而且性价比奇差,二来,貌似没有了。 万宁是奔着冲浪来的,主要就是日月湾,酒店里报了一个冲浪入门课,教练们还是比较认真负责的,基本上能比较有耐心地陪孩子边学边玩两个小时,也算是不打击孩子的兴趣,至于想要进一步进阶,如果没有实力(钱和时间),就不要考虑孩子的天赋什么的了。这也是我的一贯观点 -- 让孩子多尝试,留足可能性,尽可能让孩子自己决定和选择。 至于说作为旅行或度假目的地,去了日月湾、石梅湾、神舟半岛,光顾了若干网红书店、咖啡馆、打卡地,真是没什么意思,不如就是在海边发发呆,让孩子们在海里泡泡、堆堆沙子。至于美食,永远都是烤鱿鱼、臭豆腐、麻辣烫、小海鲜、东北烧烤。。。尤其是后海村,连杯好喝的啤酒都喝不到。 把护照办好,整理行装,还是出国吧。珍惜当下。

关于Material Design中UI的配色问题

最近几年用Vuetify比较多,Vuetify是基于Material Design的一套前端UI脚手架系统,整个MD的配色系统是比较科学的,它定义了五个核心颜色: 此外就是自定义的颜色了,主要是根据功能性来划分,在Vuetify中有:error、info、success、accent、warning,需要设计师根据核心色调整。 针对于易读性问题,要保证强调色(primary/secondary/tertiary)和基底色(neutral/neutral variant)有足够的对比度,可以部分的通过生成来解决。 对一个专注于功能开发的程序员来说,MD的这套配色系统至少提供了一套可复用的配色逻辑: (注:MD是基于孟塞尔颜色系统(Munsell color system),主要是是基于: 1. hue - 色相/色调,颜色在色轮中的位置(一共360个位置) 2. saturation饱和度、也叫色彩强度(intensity)或色度(chroma)-越高越强烈,越低越暗淡 3.value色值,颜色的深浅,混入黑色让颜色变深(shade)、混入白色让颜色发白(tint)、混入灰色使颜色偏灰(tone) 以一个基本图片出发 先获取主色(primary),也就是图片中最多的颜色(获得HCT中的H - hue色相) 然后根据primary生成secondary和tertiary(如饱和度减弱) 然后根据primary生成neutral和neutral variant(增加/减少灰度) 其他自定义色: success - 通常选绿色或者暖色,根据主色增加饱和度 warning - 通常选桔黄色,可暖可冷,如主色的对比色 error - 通常选红色,根据注册调整饱和度和灰度 info - 选个人畜无害的颜色,我一般很少用 accent - error和warning中间的颜色,如果二者接近,可考虑neutral的对比色 总之,MD的配色系统还是考虑到很多的,如果稍微多了解一些颜色配色基础,即便不是设计师也能做出不那么难看(难看如微信)的UI了。 参考: Material Design Color System…