用车记账那些事

关于记账这个事,在开发者眼里似乎是个永恒的话题,大体上如同todo list。

记账难就难在一个不漏的记录,对于早已习惯使用电子支付的我们,绝大多数交易都会经过微信,支付宝,这些大厂就有先天优势,无需手动记账,它们可以通过交易记录自动归类每一笔消费。例如微信官方的:微信记账本。估计也没谁能耐心的去看,就算看了也未必知道是干啥了,收单机构总会让一笔消费变的难以归类,比如你买的衣服,可能支付给了一个科技企业。

大而全,还是小而美,成为用车记账的设计核心,很显然选择了后者。

用车场景的记账,很容易就让人想到油耗,或许每个车主都关注的话题,此类的小程序app也是卷到飞起。

但要说只记录用车开销,而不关心油耗,可能只有真正的爱车人士才会需要,就恨不得每一次加油,每一次洗车,都得拍照记录的那种,最终结果也只会是得到一句:你看,今年玩车花了几个w。

一年多的时间,用了好几个记录app,包括:汽车之家的,懂车帝的,平安好车主的,前两个还是关注油耗,平安的目前最为满意,但入口安排在了一个难以找到的角落里,似乎就没打算给你用。

干脆自己做一个,也花不了多少时间,形态上还是选择了小程序,这也是小程序最适合的场景。

也没啥特点,就是简单,界面简单一看就懂,操作简单纯手动记录,随时可以补,随时看到月统计,年统计,没了。至于还能玩出什么花样,欢迎留言,拭目以待。

扫小程序码体验:

或微信搜索:“用车账本”,那个黑白跑车logo就对了。

截图如下:

API网关那些事

一个典型的Web架构中,网关是一个很容易被忽略的东西,或者透明般存在,而在云原生的微服务架构中,网关被赋予了更多职责,也变得更为重要。

1、反向代理时代
说到反向代理,不得不提Nginx,开源版的Nginx也仅起到反向代理的作用,常用来根据Host,Path来路由到不同的服务,做Stream负载均衡,SSL终结等,流量基本是透传,所以在后端看来几乎透明。且通过配置文件进行管理,一旦服务多了,难以维护。优势也就占用资源少,性能强悍。

2、边缘网关时代
在云原生时代,微服务众多,接入设备复杂多样化,一些重复度高的动作就必须抽取出来,而这些琐碎放到网关在合适不过了,以Apigee Edge为例,支持公有云、混合云、私有云部署,不仅做到API管理,还支持客户端管理,顶级层级为APP(Mobile or Web),可配置访问凭证,第二层级为Products,可配置环境(SIT or PROD),授权给APP访问,第三层级为API Proxies,即下面详解的API管理,绑定到Products,三层按顺序均为一对多关系,可参考OAuth2授权模式之密码模式。

API Proxy主要抽象出几个概念:

1、代理端点(Proxy Endpoints)
2、目标端点(Target Endpoints)
3、策略(Policies)
4、资源(Resources)

代理端点用来定义一个API,并对外暴露,主要与客户端打交道,目标端点则可以是后端微服务,也可以是公网上的另一个API,API支持环境区分部署,版本管理。

策略则是Apigee精华所在,策略是对请求做处理的最小单元,例如定义一个策略对参数进行校验、再定义一个对user&app token校验等,甚至执行js&java lib进行加解密等更为复杂的逻辑。策略通过Flow(处理流)来规定执行条件和执行顺序,一旦命中则跳过后续Flow。多个Flow又可以组成Shared Flows,以便复用。同样Flow也支持环境区分部署,版本管理。

资源则是放置js脚本或者java lib的地方,供策略调用。策略支持分环境来部署,支持版本切换,而这一切都是动态实时的,无需重启reload。

这样一来,到达backend的请求就已经是符合要求的了,可以省去很多的判断。

这里继续介绍一下策略,策略实质上是通过xml来定义,可分以下几种:
1、流量管理,例如Quota、Spike Arrest等,内置了数十种对流量进行管理的策略。
2、安全管理,例如Basic Authentication、OAuth、LDAP、JWT、HMAC等,同样内置了十分丰富,涵盖大部分场景。
3、协调与扩展,例如内置的XML&JSON格式互转。其中用的比较多的主要以下三个,可以非常灵活的将多个backend请求组合成一个API。
3.1、AssignMessage 请求管理
3.2、ServiceCallout 外部服务调用
3.3、ExtractVariables 解析响应

Apigee使用几个月来,初期学习成本比较高,但很多配置都是复用的,后续维护并不算太难。当然有了如此强大的功能,还有配套的trace工具,可视化的看到每一个请求的执行情况、入参和出参、请求头、策略命中与结果等,非常人性化,Apigee简单介绍到此,更详细请查阅官方文档,后续再对比一些开源方案。

文档地址:https://docs.apigee.com/api-platform/get-started/get-started

iPhone 13 Pro 拍摄随测

正在使用的主力机 Xs Max 由于是最低配的 64G 存储,早已不够用,尤其作为一个喜欢摄影的人来说,存储照片视频更显紧迫。直到今年的9月27日终于迎来了新机 iPhone 13 系列发布,第一时间下单了 13 Pro 远峰蓝 256G,足足等了半个月终于到手。

作为苹果的老用户,实际上并没有太大的惊喜,反而由于屏幕从6.5寸降为6.1,稍有失落。可能最大的惊喜还是来自背后三颗“巨大”的镜头,以至于任何一款保护壳都已无法撑平整。6.1这个尺寸怎么形容呢,单手略宽,双手显娘。当然,这再也回不去更小的尺寸了。平整边框个人感觉还是没有圆形来的优雅,握持感也会比较的压迫。

重点来了,拍照确实有大幅提升,三颗镜头的配合使得创作方式有了更多的选择,我喜欢用0.5x 1x 3x 来表述这三个镜头。夜景的拍摄是对随身设备来说是极具考验的,例如手机,运动相机等。我主要考察三点:

1、可见性,是指设备应能记录下可见画面,不应该出现大面积死黑。
2、可用性,是指由于高ISO带来的噪点可被接受,手持拍摄快门慢而不糊。
3、可创作性,记录的宽容度应能满足适当的后期与裁剪。

第一晚用自带的相机来拍摄(即刻相簿第一个链接),第二晚则是用了 Camera+ 2 这个 App 来拍摄(即刻相簿第二个链接)。这个 App 的好处是可以手动切换物理镜头,而不是自带相机的“智能”判断,根据苹果的算法,暗光环境喜欢用主摄 1x digital zoom 来实现 3x。并且 App 可关闭数码变焦,以免误触。可设置的 ProRAW+ 级别的画质(但短暂的体验并未发现和自带的 RAW 肉眼可见的画质提升,倒是体积翻倍了,约 35M 提升至 80M),自带的收藏夹可以方便的临时存放原片,不至于塞满相册。原片长按分享可以快速复制到 Lightroom 进行后期,再输出为 jpg 进行分享,有了工作流的概念。

链接一:https://igigm.com/post/JCt42KjcMSUi7rE6MFTmpV
链接二:https://igigm.com/post/Taff1DNvoAY7fHTiBLYPjD

链接一的糊片确实多,主要有两点,一是 3x 大多数是digital zoom,二是容易触发夜景模式,即长爆光。链接二则干净清晰很多。

以上只是个人初略测试,不做为严谨评测,未上脚架等辅助工具,仅供参考,总结:够用。

索尼KD-65X9100H 入坑记

入坑电视,大概就是意味着人到中年。

新房入住一年多来,一直没有安装宽带和电视,一是没有天天住,二来有不限流量套餐,能省则省,直到今年决定在这边过年,总得有个热闹。

故购买电视放到了首位,躺在购物车的型号是 75x9100H 已经半年之久,犹豫再三还是换成了65寸,原因是价格翻倍,可视面积仅大了 33%,这个预算买两个65,岂不爽呼,电视墙到沙发仅3.5米,65寸勉强足够了。对比Samsung,LG,全面屏之后外观都基本雷同,同档次价格也相差无几。综合硬件能力,操作系统,还是选择了索尼。来自官网的参数标注也是比较清晰。其他厂就是营销话术太多,根本不知道怎么选。

预约了上门安装,其实没有挂墙的情况下也没什么可安装的,就是两个人扶着,将两个底座插进去(无需拧螺丝),抬到电视柜上就完了,简单验了下屏幕,没有坏点,在软件市场下载当贝助手,里面就有检测屏幕的工具。

网络依然选择的是联通,联通在广东地区出口带宽还算优秀,只可惜老的光猫又得强制换新了。默认路由模式,十分钟不到就安装完了,安装师傅也爽快的给换成了桥接模式。

近些年来推广的这种光猫路由模式,确实给装机带来很大便利性,不用管什么拨号,账号密码,全部局端自动下发,新路由器可以零配置入网,缺点是多了一层NAT,有专业需求的人来说不太友好。

周末两天的使用来看 65X9100H 还是比较满意,使用电视主要有这两个场景:

一、高质量观影

通过 TypeC 转 HDMI 2.1 连接线可以让 Macbook Pro 以最高 4k 60P 输出到电视,播放本地 4K UHD 蓝光原碟,效果极佳,声音方面,由于已有一对惠威M300 HIFI 音响,采用 TOSLINK 光纤线连接,也可以用 3.5mm 莲花线,选光纤的好处是可以和电视自带的音响同时发声,达到互补的作用(电视的高频优秀,且有虚拟环绕声效,惠威箱子低频扎实,浑厚有力)当不看电影的时候也可以不开音箱,省电。

Motionflow 是我觉得体验非常好的一项技术,大部分24帧电影都能插值出类似60帧的流畅度,尤其在远景风光片中效果比较好,但由于是计算出来的,在近景格斗场景下,运动较快的物体会呈现出半透明或马赛克效果,尚能接受。

全阵列式背光技术也还不错,虽然达不到OLED那种完全可控,但也足够优秀,大面积黑色画面深邃感还是能感受到,与之而来的屏幕暗色区域反光也明显了,当然这得后续从客厅布光来解决。

二、日常刷剧

由于索尼和腾讯合作,内置了腾讯系的极光TV,资源还比较丰富,开通SVIP后体验会好很多,但资源质量还是不高,所谓的4K、HDR、杜比视界画质依然停留在低码率下(伪 4K),可能也是考虑大众的网络情况,占用带宽少,拖拽都不带停顿的。另外安装了芒果TV、CCTV.新视听,YouTube for Android TV 基本就满足了。

值得一提是在电视画质设置中专门为极光TV的画面调校,相当于将亮度饱和度等设置都由极光TV来控制,实际体验没什么太大的价值,反而会关闭Motionflow,得不偿失。

Apache Guacamole – All in WEB

1. Ubuntu 20.04 下安装 Docker,添加当前用户到 docker 组
curl -fsSL https://get.docker.com | bash -s docker –mirror Aliyun
sudo usermod -aG docker $USER

2. 拉取镜像
docker pull guacamole/guacamole
docker pull guacamole/guacd
docker pull mysql/mysql-server:5.7

3. 导出 guacamole 中的数据库初始脚本,启动 MySQL 数据库
docker run –rm guacamole/guacamole /opt/guacamole/bin/initdb.sh –mysql > initdb.sql
docker run –name mysql –restart=always -e MYSQL_ROOT_PASSWORD=123456 -d mysql/mysql-server:5.7

4. 复制到容器中,进入容器 MySQL Client
docker cp initdb.sql mysql:/initdb.sql
docker exec -it mysql mysql -uroot -p123456

5. 创建数据库、用户密码,导入初始脚本
CREATE DATABASE guacamole;
CREATE USER ‘guacamole’@’%’ IDENTIFIED BY ‘guacamole’;
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole.* TO ‘guacamole’@’%’;
FLUSH PRIVILEGES;
USE guacamole;
SOURCE initdb.sql;

6. 启动 guacamole
docker run –name guacd –restart=always -d guacamole/guacd
docker run –name guacamole –restart=always –link guacd:guacd –link mysql:mysql -e MYSQL_DATABASE=’guacamole’ -e MYSQL_USER=’guacamole’ -e MYSQL_PASSWORD=’guacamole’ -d -p 8080:8080 guacamole/guacamole

浏览器打开 http://localhost:8080/guacamole 默认用户名密码 guacadmin。配置好SSH,RDP,VNC,主机可以是内网中任何一台能访问的机器,RDP 注意关闭认证和选上网络级别身份验证(NLA)。配合御花园(https://ifport.com)将 8080 端口映射到公网,随时在浏览器中访问(注意安全)。

自此 All in WEB,Docker 大法好。