commander

使用 Node.js 开发一个客户端小工具

試著忘記壹切 提交于 2021-02-15 00:01:22
最近山月开发了一个从任意 URL 解析内容并生成 markdown 的小客户端工具: markdown-read。用以我个人公众号的内容获取及一些优质内容的整理收藏,欢迎 Star、下载及使用。 $ markdown https://juejin.cn/post/6924258563862822919 | head -10 > 本文作者:Wind、Skyler、ZRJ、ZJ ## 前言 Webpack5 在 2020 年 10 月 10 日正式发布,并且在过去的几个月中快速演进和迭代,截止 1 月 28 日,Webpack5 已经更新了 18 个 minor 版本,带来了许多十分吸引人的新特性。据[官网介绍](https://webpack.js.org/blog/2020-10-10-webpack-5-release/ #general-direction "官网介绍"),Webpack5 整体的方向性变化有以下几点: ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/77ee2267bfa34ef5bf7bb29553a5035c~tplv-k3u1fbpfcp-zoom-1.image) + 通过持久化硬盘缓存能力来提升构建性能 + 通过更好的算法来改进长期缓存(降低产物资源的缓存失效率) 想到用 Node

[node.js]PC端微信小程序包解密

家住魔仙堡 提交于 2020-12-14 11:01:43
原来发布在掘金,搬过来好了。 微信小程序在PC端是加密存储的,如果直接打开是看不到什么有用的信息的,需要经过解密才可以看到包内具体的内容。本文使用nodejs实现解密算法,主要涉及到crypto, commander, chalk三个包的使用。 小程序的源码在哪里 PC端打开过的小程序会被缓存到本地微信文件的默认保存位置,可以通过微信PC端=>更多=>设置查看: 进入默认保存位置下的/WeChat Files/WeChat Files/Applet文件夹,可以看到该目录下有一系列前缀为wx的文件(文件名其实是小程序的appid),这些就是我们打开过的小程序啦: 进入其中某个小程序的文件夹,我们可以看到一个名字为一串数字的文件夹。点进这个文件夹, 就可以看到一个__APP__.wxapkg文件,也就是小程序对应的代码啦: 然而,当我们打开这个文件之后却发现是这样的: WTF 这能看出来个🔨。很明显,这个文件是经过加密的,需要解密才能看到我们想看到的东西。 PC端小程序是怎么被加密的 这里参考了一位大佬用Go语言写的 PC端wxapkg解密代码 。整理一下的话,加密流程是这样的: 首先将明文代码在第1024字节处一分为二,前半部分使用CBC模式的AES加密,后半部分则直接进行异或。最后,将加密后的两节拼接起来,并在最前边写入固定的字符串:"V1MMWX"。 所以,我们打开__APP__

通俗易懂设计模式解析——建造者模式

China☆狼群 提交于 2020-12-12 10:04:14
前言   在本篇文章中,我们重点介绍建造者模式 ( Builder Pattern ), 建造者模式顾名思义,与建造创建相关。事实也是如此建造者模式也是创建型中的一种。在我们平常生活中会有比较复杂的东西的组成过程。比如电脑组成、手机组成、电视组成、等等。就拿电脑组成来说。可以由主板、Cpu、显卡等等组成。但是组成的算法步骤是一样的。只是不同的东西组装起来结果不一样而已。 建造者模式介绍 一、 来由   在软件编程的过程我们是否也会遇到类似电脑组装这类的问题呢?当然是会的。组装一个电脑我们就一次,那岂不是要累死了。类似于这种组装算法固定但是各个部分又不稳定经常变化的情况。并且对象组装较为复杂。为了面对解决这种情况。所以有建造者模式。建造者模式到底是如何解决问题的呢?我们一起看看吧。 二、 意图   将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 三、 案例图 四、 建造者模式代码示例   在建造者模式中一般包含如下成分: 抽象建造者: 抽象建造者为创建复杂产品对象的各个部分指定抽象创建接口 具体建造者: 继承抽象建造者,实现抽象创建接口。指定创建的类型。创建各个具体的部分。 产品角色: 复杂产品对象,将各个部分组成产品的接口 指挥者: 调用各个部分,按固定的算法创建。不涉及到具体产品类的信息。仅负责各个部分完整的创建 就组装电脑来说

为什么领导者需要学习写作技巧( Why Leaders Need to Learn the Skill of Writing)

久未见 提交于 2020-11-02 18:41:09
By Joe Byerly Anyone who has worked directly for a battalion commander or above probably has experience writing “ghost notes.” These are emails a subordinate writes and addresses for their boss to send to other people. Ghost notes can be weekly or monthly sitreps, updates on an ongoing situation or emails asking for additional resources. No matter the type, they are the “easy button” for the commander because all they have to do is hit “send.” Recently, I worked for a senior Army leader who encouraged his subordinate commanders to own their communications—meaning, write their own emails. As I

使用代码片段的正确姿势,打造高效的vscode开发环境

霸气de小男生 提交于 2020-10-29 04:53:25
全文3928字,阅读时间 10分钟,未来节约时间 15分钟/每天 代码片段(code snippet) 相信大家都或多或少有接触过。 在完成一个项目以后,往往都会写出许多有价值的代码,或是 绞尽脑汁解决的难题 ,或是 灵光一现的小技巧 ,又或是需要给组里的人 分享经验,分享代码 。 对于我而言,我有时确实会把足够酷炫或者自豪的项目封装成一个包(例如npm或者是nuget等等),但面对粒度再小一点的一个function甚至是一行代码就不太合适了。 我自己遇到困难的几个场景 electron-builder 打包后,为了修改electron国内镜像下载地址,往往会配置vue.config.js。这个地址很长一段时间都不会变,包括这个配置的结构等主要内容其实都不太会变,每次要写的时候都会忘记,在找了好一会之前写的代码后,终于找到了之前的配置文件, 复制-粘贴 我的vue项目中会使用vuetify,而vuetify的各种配置都会写在一起,说复杂也不复杂,但我没有记,每次都是用到的时候打开官网然后, 复制-粘贴 还有一些其他配置文件,例如 axios,echart,signalr等配置文件,大部分情况下都不需要修改,直接, 复制-粘贴 .... 为了能够减少以上重复工作,提高效率,我也尝试过不少办法 制作 项目模板 ,使用vue init 来初始化项目 使用 github gist

使用代码片段的正确姿势,打造高效的vscode开发环境

跟風遠走 提交于 2020-10-22 15:56:16
全文3928字,阅读时间 10分钟,未来节约时间 15分钟/每天 代码片段(code snippet) 相信大家都或多或少有接触过。 在完成一个项目以后,往往都会写出许多有价值的代码,或是绞尽脑汁解决的难题,或是灵光一现的小技巧,又或是需要给组里的人分享经验,分享代码。 对于我而言,我有时确实会把足够酷炫或者自豪的项目封装成一个包(例如npm或者是nuget等等),但面对粒度再小一点的一个function甚至是一行代码就不太合适了。 我自己遇到困难的几个场景 electron-builder 打包后,为了修改electron国内镜像下载地址,往往会配置vue.config.js。这个地址很长一段时间都不会变,包括这个配置的结构等主要内容其实都不太会变,每次要写的时候都会忘记,在找了好一会之前写的代码后,终于找到了之前的配置文件,复制-粘贴 我的vue项目中会使用vuetify,而vuetify的各种配置都会写在一起,说复杂也不复杂,但我没有记,每次都是用到的时候打开官网然后,复制-粘贴 还有一些其他配置文件,例如 axios,echart,signalr等配置文件,大部分情况下都不需要修改,直接,复制-粘贴 .... 为了能够减少以上重复工作,提高效率,我也尝试过不少办法 制作项目模板,使用vue init 来初始化项目 使用 github gist 在vscode 中使用code

Opensips + FreeSwitch 负载均衡

梦想与她 提交于 2020-10-15 07:19:15
概略 :在做Opensips + FreeSwitch 负载均衡的过程中,遇到的关键问题汇总记录。 基本配置 : 请参考: https://blog.51cto.com/908405/2235934 比我整理的好,请详细阅读。 几个问题 : 1、load_balancer表配置   字段:dst_uri ,值:sip: fs_ip_addr : fs_port   1)fs_ip_addr:fs_port 如果有错误,实际不存在,会报错     opensips报错:        DBG:load_balancer:lb_route: sequential call of LB - skipping destination 1 <sip:172.18.198.123:9060> (filtered=1 , disabled=0)       DBG:load_balancer:lb_route: sequential call of LB - no destination found     UAC报错:All GW Are Down.   2) fs_ip_addr:fs_port 要配置fs的公网ip,否则接听后双方都没声音 2、CODEC NEGOTIATION ERROR问题   fs日志     Audio Codec Compare [PCMA:8:8000:20

ARM 创始人的传奇人生

夙愿已清 提交于 2020-10-06 12:22:14
作者 | 老石 来源 | 老石谈芯 很多世界顶尖的“建筑师”可能是你从未听说过的人,他们设计并创造出了很多你可能从未见过的神奇结构,比如在芯片内部源于沙子的复杂体系。如果你使用手机、电脑,或者通过互联网收发信息,那么你就无时无刻不在受益于这些建筑师们的伟大工作。 赫曼·豪瑟(Hermann Hauser)就是这些“建筑师”里的一员。可以说,现年72岁的赫曼·豪瑟是个标准的“斜杠人士”: - 他出生于奥地利的维也纳,随后来到英国开始了自己的职业生涯。 - 他拥有剑桥大学卡文迪许实验室的物理学博士学位,后来却在计算机领域为世人所熟知。 - 他创办了ARM公司 – 这个英国高科技皇冠上的明珠,也在金融领域有着自己的风险投资基金。 - 他荣誉等身,是英国两院院士,有着英国皇家的荣誉骑士爵位,同时也是身家高达1.5亿英镑的成功商人。 - 他成功的投资了很多英国的高科技企业,推动了英国剑桥“新硅谷”的形成,同时也是一个慷慨的慈善家,向健康和教育领域捐赠了超过1500万英镑。 可以说,赫曼·豪瑟的一生,就是一路开挂,不断走向更高人生巅峰的典型例子。在英国和欧洲,他常常被拿来和同时期的史蒂夫·乔布斯相比。和乔布斯一样,豪瑟也有自己标志性的造型:一头银发、黝黑的皮肤、海军蓝西装、米色羊毛衫,以及圆点围巾。 最近,赫曼·豪瑟再次被推向舆论的风口浪尖。起因就是英伟达对ARM的这场400亿美元的世纪收购

保证软件开发过程遵循ISO 26262功能安全标准的十个主要进阶步骤

巧了我就是萌 提交于 2020-10-05 15:29:06
为保障汽车软件质量,使软件开发符合ISO 26262功能安全标准,需要我们对开发流程做出改进,并与2018年的更新同步。 本视频课程提供了一个详细分步教程,与软件开发V-模式下的各个阶段相对应,教您如何制订符合ISO 26262:2018标准的开发流程。 其中包括,针对ISO 26262 第6-5部分软件级产品开发启动,教您如何定义工具链以及扩展开发流程。针对第6-6部分软件安全需求规范,完善安全需求。针对6-7部分软件架构设计,评估体系结构和进行静态分析。针对6-9&10软件集成和验证和软件单元验证,进行基于需求的测试、背对背测试、稳健性测试,以及确认未指定功能。(见下图) 本视频课程将解读每个步骤的具体目的,帮您评估步骤优先级,并详细列出了每一步所需待办事项,及自动化水平。最后还会推荐每一步可用到的质量工具。 视频免费在线观看地址: https://model-engineers.com/zh-CN/academy/webinars/archive/iso-26262-in-10-steps-zh 视频提供方MES模赛思公司简介: 模赛思软件技术有限公司(Model Engineering Solutions,简称MES)是一家高科技软件公司,专为软件项目的质量保障提供解决方案。MES为客户基于模型的软件开发提供技术支持,使其符合IEC 61508、ISO

前端工程化(6):搭一个集成了三大 UI 库的脚手架工具

社会主义新天地 提交于 2020-08-18 08:12:42
距离上次更文有10个月的时间了,其实平时有总结很多技术点,但在掘金上只想发表关于前端工程化系列方面的文章,而又由于这段时间一直没有可落地的工程化项目(就是懒了🤦!),所以也不好在没有自己切身试验的情况下撰写博文。 OK,写这篇文章的契机呢,是因为我即将要做一个超级超级超级大项目,前期希望把前端基建的一些东西给搭建好,所以想着做一个脚手架工具,将基建的东西集成到模板中去,达到一个规范和提效的目的。其实这篇文章的重点并不是为了教大伙如何编写一个脚手架(掘金上关于这方面的教程太多),而是为了向你们安利我写的脚手架工具—— pandly-cli 😏。 正如标题所说, pandly-cli 最大的特色就是集成了 Element UI 、 View Design 、 Ant design 三大主流 UI 库供用户选择,并且还支持全局和按需的引入方式 。当然, pandly-cli 中不止这一个功能,还集成了很多提效的功能,文章后面会详细介绍。按照惯例,我还是先简单阐述下我写这个脚手架的心路历程。 脚手架 整体思路还是借鉴了 vue-cli2 的搭建模式(为什么不借鉴 vue-cli3 的?太复杂了!),然后自己做了点修改。整体目录结构如下: |-pandly-cli | |-bin # 命令执行文件 | | |-pandly # 主命令 | | |-pandly-create # 创建命令 |