最近从事微信小程序开发,期间还是踩了些坑/遇到些问题,这里总结下

微信预览图片

有时需要实现长按图片,弹出菜单,进行分享等,SDK支持这个,即wx.previewImage,但当前不支持自定义菜单。

缓存

为了降低没必要的请求开销,提高速度,需要注意缓存的使用。比如wx.getImageInfo的图片资源之前已经访问了,但是仍然会重新请求,不会使用之前的缓存。

阅读全文 »

最近v2ex上大家在讨论Google搜索频繁遇到小 X 知识网等内容农场式结果的问题,都觉得倍感恶心,毕竟百度垃圾,大家才转投谷歌,如果谷歌也废了,那就完蛋了。

好在技术人也总是办法总比问题多,当前有个办法就是使用uBlacklist插件,将这些站点域名配进去从而在搜索结果中屏蔽该内容。同时有网友开了GitHub repo,大家陆续将恶心人的站点域名都补充进去,然后利用ublacklist订阅该源,最终发现效果还不错。

问题虽然也得到了解决,但是什么原理呢,好奇之下,看了下源码,发现原理简单,即利用JS捕捉结果中命中黑名单的站点结果,变换CSS实现隐藏,也就是插件对搜索返回的结果页的HTML进行了二次处理。

当然这样做有局限性即搜索结果如果是分页,会出现每页结果数量不等,毕竟命中的数量可能不同,但对比看到垃圾站点而言,这点还是可接受的。

百度?

uBlacklist的原理决定了搜索结果一定要包含站点链接,而百度属于比较坑的,百度的搜索结果没有直接携带链接,而是做了代理。因此无法有效实现。

阅读全文 »

借着周末优化下个人博客的构建性能,之前每次构建需要10m+,优化后需要6M。不考虑搜索索引的话,单博客部署到VPS生效,只需要3m+。这里总结下优化项。

优化项

  1. 去除部分插件/功能

    • category
    • baidu sitemap
  2. Algolia

    • 去掉部分索引字段,gallery,photo,excerpt,slug,
  3. CI流程优化

    • hexo db.json/ node_modules缓存化
    • 自动取消之前还在运行的workflow,这里采用cancel-workflow-action
    • 更新Algolia索引放在部署VPS之后,毕竟不影响浏览博客,仅影响搜索命中
  4. 升级hexo到v5,cli到v4

具体配置,可看源码https://github.com/alanhg/alanhg.github.io

延伸

阅读全文 »

很早在玩Ionic时见过相关介绍,并没有去了解下,最近看到相关文章讲到这个,于是了解了下,填补下知识空白。

一些RTL的站点

我们平时看到的网站都是LTR(Left-To-Right)的,但实际上还存在一些网站是RTL(Right-To-Left)的,比如下面这些

感觉别扭,但确实存在。因为中东地区阿拉伯语、希伯来语等,阅读/使用习惯是从右向左。

阅读全文 »

最近做服务端时有db-postgres部署需求,期间踩了点坑,这里mark下。

部署postgres服务直接挂postgres镜像即可,但牵扯到初始化数据库/及磁盘映射,我在实际操作中发现报如下错误

cannot access '/docker-entrypoint-initdb.d/': Operation not permitted

最终的解决方案是docker-compose增加privileged: true

网上有提到挂载Volume时标明RW或者采用自定义镜像时增加chmod,自测都不可行。目前唯一方案即上述。

阅读全文 »

最近尝试搞个Android TV App,涉及到使用Ionic/capacitor,这里将了解/开发遇到的问题梳理下。

好久没做过App开发了,难免对于新技术生疏,因此也确实踩了坑。

理论知识

Ionic vs Cordova

  • Ionic与Cordova解决的问题层面并不相同,Ionic更上层一些
  • Cordova解决了跨平台问题,比如与系统层面通讯,访问系统API,蓝牙,存储等等。Ionic在Cordova之上增加了基本的UI组件,提升了开发效率
阅读全文 »

Surge目前是我必不可少的代理工具,灵活的代理规则及开放的API使得我也很容易二次开发来进一步的提升效率,但工作中一直使用公司OA客户端及Whistle等,借着假期考虑下结合使用的可能

当前的使用情况

  1. 非工作机,Surge作为我的个人网络代理利器,非工作机解决科学上网等代理问题
  2. 工作机,
    1. 使用OA即公司代理客户端解决访问公司内网服务,身份验证及科学上网
    2. 使用Whistle+SwitchyOmega,解决开发中的网页代理调试问题

Chrome代理设置为走Whistle,Whistle没有命中的代理自然继续走系统请求

已作出的改进

阅读全文 »

最近个人图片上传工具上传后的图片,当进行HTTP访问失败,均报403,一开始以为是nginx防盗链设定等,最后确定了直接原因是文件权限不够导致。

这里记录下这个问题

关于403

状态码 403 Forbidden 代表客户端错误,指的是服务器端有能力处理该请求,但是拒绝授权访问。

这个状态类似于 401,但进入该状态后不能再继续进行验证。该访问是长期禁止的,并且与应用逻辑密切相关(例如不正确的密码)。

  • 401,403很像,但还是有所区分,401是没登陆成功,而403是具备登陆身份,只是部分权限不足。
阅读全文 »

Alfred推出Universal Action也有几个月了,我也已经习惯用它来解决部分场景诉求,这里就总结下action在我的效率使用中扮演的角色。

Universal Action的定位

这里谈下个人对于这种交互方式与之前Alfred提供的关键词,热键场景的区别

主要区别

Universal Action与之前的场景根本区别在于触发条件的不同,Universal Action的触发条件是你选中任意一个元素【文件/链接/文本】,基于这样的输入值从而执行某个动作,比如你可以选中一段文本自动发Twitter,发邮件,选择一个URL自动打开浏览器链接等等,而之前的场景是你直接关键词又或者热键。所以区别主要在这里。

阅读全文 »

例行周四的技术会议时,有人抛出了一个线上故障,Web上有个表格表头过滤,当选择所有值请求时会报错ERR_CONNECTION_CLOSED,但当选择较少的时正常返回200。因为不清楚ERR_CONNECTION_CLOSED的含义,因此排查过程也走了点弯路,这里总结下。

ERR_CONNECTION_CLOSED

Chrome下请求报错但没有状态码,因此一开始并不确定是服务端还是浏览器层面报错。

但一般还是从前端排查起。

阅读全文 »
0%