0c0ca4a0ac1f249860b29e295dd55260

使用飞书消息卡片变量功能,批量数据快速录入消息卡片

…JavaScript (javascript) 最终我们构建出来,发给飞书服务器的 JSON 其实是这样子的,这段 JSON 就会和我们在卡片搭建工具中构建的 JSON 租和,自动进行拼接,从而实现我们想要的循环效果。 { “type”: “template”, “data”: { “template_id”: “ctp_AAmFBm5vnHfs”, “template_variable”: { “CONTENT”: [ { “source”:”a”, “target”:”https://amazon.cn” }, { “source”:”b”, “target”:”https://baidu.com” } ] }…

macOS 安装 Rust 开发环境

…写代码,所以依然这次继续使用 VSCode 来写 Rust。 在 VSCode 中的拓展管理器中搜索 Rust,可以看到一个名为 Rust(rls) 的拓展,安装这个拓展。 Rust(rls) 此时使用 VSCode 打开刚刚创建的 Hello World 项目,就可以看到如下的效果。 然后,打开终端,执行如下命令,来安装 Rust 拓展所需的一些 Rust 组件 rustup component add rls rust-analysis rust-src 安装 crates.io…

6ee6df690137fd06bc6166adb63caca1

wxa.js 如何使用 replace 插件实现版本号的方便更新

…变更 patch 版本号,比如 1.0.0 变为 1.0.1 npm version minor : 变更 minor 版本号,比如 1.0.0 变为 1.1.0 npm version major : 变更 major 版本号,比如 1.0.0 变为 2.0.0 更多的命令可以访问 https://docs.npmjs.com/cli/v6/commands/npm-version 查看 执行了版本变更命令后,npm…

029a1f00793d00a4a88e458d5cdfebb0

针对 WordPress 开发配置 Sublime Text 4

…JSON with Comments (json) 代码格式化 Sublime 自带 Reindent Sublime Text 4 自带缩进格式化的工具,因此,可以不需要安装第三方插件来实现。 在 Sublime Text 4 的 Line — Reindent 当中可以完成相应的操作。 为了更好的使用这个功能,我自己添加了一些配置来简化这个功能的使用: 安装 Package​Resource​Viewer 用于修改系统配置。 使用 Package Resource Viewer: Open…

d2b5ca33bd970f64a6301fa75ae2eb22 1

《不租房的606天》书摘

…for it.) 火人节结束后,我收到一封邮件,落款是“你的新朋友多诺万”。 早餐已经不再是一顿饭,而是打开话匣子、化解陌生感的方法,同时自带“刚刚好”的界限感。早餐不像晚餐过于隆重,时长恰到好处,房客既容易参与其中,又不会越界。 25年飞龄的机长,三生三世的人生智慧 我问他:“你会用一个什么词来定义自己?”他不假思索地回答:“梦想家。” 对于大部分人来说,年纪越大,会越渴求陪伴。而丰富的人生经历,练就了卡尔一颗坚定的内心,屏蔽了外界的杂音,在精神世界里,从容安宁。 拉斯维加斯不止有赌场,金发女郎也不都是花瓶 如果不是因为工作,我很难找到一个再来这里的理由,但我想起导师的一句话:“若你感到不舒服,意味着你会学到更多。若你感到害怕,那正是机会降临的时刻。” 离开拉斯维加斯时,我不再认为它是一座只充斥着堕落和罪恶的迷醉之城。撕掉游客给它的标签,这座城市向我展露出它质朴和生活化的一面。或许多一点时间了解,每个人都和这座城市一样存在着有趣的另一面,只有抛开成见,才有机会发现他们的特别之处。 工作只是定义人的一个维度,可能限制了我们看待陌生人的角度。克里斯塔也许平凡,却有超出常人的精神追求——人到中年,她挑战一成不变的工作,选择帮助犯过错的人改过自新,她的善良改变了我对罪恶之城的理解。她有经济压力大的烦恼,但也有对生活品质的追求,还十分热情好客。虽然我和克里斯塔的外表和职业都完全不同,但当我们敞开心扉沟通时,就会发现彼此的默契远大于差异。其实,每个人心里都藏着一座花园,等待你去探索。 82岁的“文艺复兴”女画家,每天都是工作日 身为美术系教授的托比,做事十分严谨,她还出过一本书——《画家生存指南》(The Artists’ Survival Manual:A Complete Guide to Marketing Your Work)。如果我忘记在画作上标注日期和名字,她会提醒我:“你又忘记写版权信息了。”几分钟后,她发来一封邮件,附件名为“画家如何管理知识产权”,内容来自书中的一个章节。 跟我去趟火人节吧 到达黑石城的时候,参与者会拿到一本《火人节手册》,上面写着:作为市民,在这座城里,你可以什么都没有,但是你需要遵守10条原则。 绝对包容(Radical Inclusion) 无条件给予(Gifting) 去商品化(Decommodification) 自力更生(Radical Self-reliance)…

d2b5ca33bd970f64a6301fa75ae2eb22

《奔跑吧程序员:从零开始打造产品技术和团队》

…教导客户,就可以和客户建立起传统市场营销策略所无法获得的纽带。通过杂志或网上横幅广告去购买人们的关注力是一方面,如果教育他们,赢得他们的忠诚,建立起完全不同的关系,他们就会更加信任你、更加尊重你。即便他们不用你的产品,仍然会成为你的粉丝。 我之前提过,并不是最出色的产品胜出,而是客户认为最出色的产品胜出。客户如何看待你的公司——如果他们想到的是你的品牌,那么尝试对这种感知进行影响的行为就称为品牌化。 只用了“think different”两个词,就能够让你准确地知道Apple是做什么的,以及你为什么应该关注它。精心制作出这样一条清晰、引人注目的广告词并不容易,但正所谓文案是产品设计最重要的因素(阅读3.1.3节了解更多信息),广告词也是市场推广的核心。产品的宣传口号就是一个很好的例子,它必须能够一下子抓住人们的注意力,让别人知道你的产品有什么不同,而且必须简洁明了。例如,我们看看最初iPod的口号。 Y Combinator的座右铭就是“做人们想要的东西”(make something people want)。这四个简单的单词可以表达出创立成功的创业公司必须了解的几乎一切。 技术栈就是工具,它是实现产品的手段,不是产品的终结,也不是产品本身。不要因为某项技术听起来很酷或者很有趣就选择它,我们选择一种技术是因为它可以为我们所用。为此,应该在把选择技术栈的黄金法则记在心中。 好的技术栈的扩展要快于需要进行的维护。 我们先从需要在很早就做出的一个决定开始:如何为创业公司选择初始的技术栈?我可以只用一句话来回答:熟悉什么就用什么。 当你违背了技术栈的黄金法则——当你发现人数的扩展快于技术的扩展——就是时候重新进行评估了。 暂停所有的发展、在全新的技术栈上重写代码要冒巨大的风险。这种情况被称作“所有软件公司都可能犯的单一的、最糟糕的战略性错误”和“创业自杀”。如果你抛开旧代码,就等于抛开了多年的学习和修复的bug。 一个残忍的事实是:当你的关键业务过程运行在内部情况不清楚(更别提修改)的不透明代码上时,你就失去了对业务的控制。你对供应商的需要超过了供应商对你的需要——因为这一巨大的不平衡,你只能付钱、付钱、再付钱。 任何库复杂到一定的程度之后,都会包含一个临时的、不合规范的、充满程序错误的、运行速度很慢的、只有一半功能的全栈Web框架,这是向格林斯潘的编程第十定律致敬。该定律告诉我们,任何C或Fortran程序复杂到一定程度之后,都会包含一个临时开发的、不合规范的、充满程序错误的、运行速度很慢的、只有一半功能的Common Lisp实现。 如果你正在使用Web框架去实现对业务至关重要的东西——不仅仅只是原型,最好的选择通常就是模块化的全栈框架。那样的话,你可以获得两个方面的好处:一是得到了一个文档完善、有社区支持的开源框架,默认功能就可以出色地处理用户的大部分需求;二是对于小部分特定的情况,也可以通过插入定制库的方法去满足要求。 Web框架很少成为应用程序可扩展性方面的瓶颈(阅读第7章了解更多信息)。所以通常来说,我们最好选择开发效率比较高,而不是处理请求比较快的框架。也就是说,如果你担心性能问题,就需要弄清楚你的应用程序是否有I/O或CPU、内存方面的限制。 安全的实现是非常困难的。它是5.3.4节所列清单中的一项。 我们应该使用内置了安全特性、开源且经过实际检验的框架。因为这不可能是后期再加入的功能,所以框架必须是默认安全的,使我们做不安全的事情也变得困难或不可能。我们要花时间去熟悉常见的Web安全实践方法——开源的Web应用安全项目(Open Web Application Security Project,OWASP)就是一个很好的开始。 我们要花时间去熟悉常见的Web安全实践方法——开源的Web应用安全项目(Open Web Application Security Project,OWASP)就是一个很好的开始。…

black laptop computer

从一封钓鱼邮件聊起:针对普通人的钓鱼邮件设计

收到了一封钓鱼邮件,刚好最近没有什么内容要写,就聊聊这一封钓鱼邮件。 我收到的这一封钓鱼邮件是这样的 接下来看看里面的钓鱼邮件设计的三个巧妙之处: 1. 针对独立域名的钓鱼邮件 我的对外的邮箱目前使用的是 bestony@linux.com 的邮件,而由于 Linux.com 邮箱设计,实际上并不会有一个邮箱给你使用,而是你可以选择一个邮箱地址,系统会将发送到这个地址的邮件自动转发给你,我将邮件转发到了我自己的 Google 邮箱当中。 所以实际上我收到的邮件有两种:以 gmail 地址收到的邮件和以 linux.com 地址收到的邮件。 可以看到,上面的这个邮件当中我的收信地址是 linux.com 的地址,而不是我的 gmail 地址。 这正是这封邮件设计的巧妙之处:为特定人群发送特定内容的钓鱼邮件。试问自己:如果你的 QQ 邮箱收到了上述的邮件,你会把他当成是企业给你发送的安全邮件么?显然不会,因为你知道, QQ 不会给你发送这样的邮件。 但如果你的邮箱刚好是一个自定义域名,且刚好你所在的企业的 IT 并没有拦截到这封邮件,那么这封邮件对于那些安全意识不高的人来说,马上就会中招。…

2024.05 装修记

…床垫:林氏家居 床头柜:林氏家居 而在准备这些的过程中,我觉得有一些很好用的工具,推荐给你 PAX 衣柜设计工具:我们家的衣柜是我使用 PAX 结合我们这些年租房使用衣柜的经验设计的; 衣柜(左边是我的,右边是我太太的) Billy 书柜设计工具:我使用这个工具设计了我们的书柜。 我的书柜和温馨的读书角 宜家的家居不好装… 虽然宜家的家具整体品控在一个水平线上,但自己装也是真的费劲,不过,目前「万师傅」小程序和宜家官方达成了合作,你可以直接在万师傅上找师傅来帮你装宜家的柜子和床。我的床和柜子都是万师傅来帮忙装的。 300 多块钱,师傅装了 5 个小时的衣柜和床。如果让我自己装,估计得装一天,我自己觉得还是很划算的。 硬装的插座位置不够理想… 在设计家电和家居的过程中,我发现了我们目前直接复用硬装的一个问题 —— 插座和开关的设计不甚合理。 目前的这个设计其实是前房主对于生活的想象,所以插座各方面都是结合他当时的需求来推进的。而对于我们来说,很多位置其实并不舒服。 在这个基础上,我不得以需要准备一些好的插座,和一些装置来遮丑(比如:「沙发后置物架」)。如果你租房,那么这些可能也可以帮助你解决。 我买的商品 https://item.taobao.com/item.htm?spm=tbpc.boughtlist.suborder_itemtitle.1.48d22e8dpa8m4e&id=579153367319&mi_id=0000T_-7f9-U6EY1lwGQ_7QsUVGDTAXCMwr_-pWsgOgOcg0 试试宜家的全屋定制… 由于我们这些年其实买了很多东西,再加上看了逯薇的《小家越住越大》,结合我们房子的特色(3米的顶),因此,我们希望在客厅做一个通顶的橱柜,以便于后续存放物资; 所以,联系了宜家的全屋定制,来帮我定制我的客厅的置物柜,请他们帮我设计了一个储物空间拉满的客厅橱柜(兼水吧): 正视图设计图 设计效果图…

silver mercedes benz emblem on blue surface

Gutenberg 编辑器带来的模式变更

…Twenty Two 更是从写作者变为了艺术家 —— 你可以十分简单的建造一个线上的画廊。 开发模式的变更 过去,WordPress 开发整体来说,可以分为两条线:一条是主题开发,你需要与 PHP、HTML、CSS、Javascript 共同战斗;另一条线则是插件开发,你需要与PHP 为伍。 搞插件开发的,你对于前端开发不甚了解也无所谓。WordPress 提供了大量的 helper function 。比如,我在「开发一个短代码插件」中,不使用一行前端代码就实现了 TinyMCE 的功能新增。 而在新的古腾堡编辑器生态下,开发者如果希望对于古腾堡进行拓展,一方面依然可以使用之前的方式,接入各种短代码来实现各种不同的用户体验,另一方面,则可以借助与前端技术栈来实现一个更加丰富的用户体验。 你可以使用 JQuery 和 WordPress 为你绑定的全局对象来修改古腾堡编辑器实现你的目标,更是可以借助前端的开发体系,诸如 Webpack、React 来开发一个强交互,体验佳的用户体验。 WordPress 的开发不再是 PHP 工程师自己的事情,它将更多的人卷入…