月度归档:2020年06月

macOS iTerm2无法使用rz并提示waiting-to-receive. **B0100000023be50.

运行 rz 会报类似错

rz waiting to receive.**B0100000023be50

原因

Mac 上的 iTerm2 不支持 rzsz ,需要在 iterm2 配置一下

安装 rz sz

brew install lrzsz

配置 iTerm2,添加 trigger

/usr/local/bin/ 创建两个脚本文件:

  • iterm2-send-zmodem.sh
  • iterm2-recv-zmodem.sh

文件内容可以复制这个仓库(iterm2-zmodem)里面的对应文件。

cd /usr/local/bin
sudo wget https://raw.github.com/Keystion/iterm2-zmodem/master/iterm2-send-zmodem.sh
sudo wget https://raw.github.com/Keystion/iterm2-zmodem/master/iterm2-recv-zmodem.sh
sudo chmod 777 /usr/local/bin/iterm2-*

<!–more–>

iTerm2

打开 iTerm2系统偏好设置,点击preferences → profiles,选择某个profile,如Default,之后继续选择advanced → triggers,添加编辑添加如下triggers

triggers1:

Regular expression: /*/*B0100
Action: Run Silent Coprocess
Parameters:/usr/local/bin/iterm2-send-zmodem.sh

triggers2:

Regular expression: /*/*B00000000000000
Action: Run Silent Coprocess
Parameters:/usr/local/bin/iterm2-recv-zmodem.sh

之后配置完,还遇到一个问题,就是不能上传,总是报sz skiped错误,查了很多也没解决方案。

之后,重启Mac电脑,再次进入,就ok了,也不知道原因是什么。

原因找到了是权限问题,sudo rz 搞定

如果搞不定还可以试试其他配置


原文地址:https://www.cnblogs.com/QuestionsZhang/p/10613884.html

库、插件、组件、控件、扩展?

库、框架、插件、加载项、拓展和控件都是组件。

组件(Component)是一个含义很大的概念,一般是指软件系统的一部分,承担了特定的职责,可以独立于整个系统进行开发和测试,一个良好设计的组件应该可以在不同的软件系统中被使用(可复用)。例如 V8 引擎是 Chrome 浏览器的一部分,负责运行 JavaScript 代码,这里的 V8 引擎就可以视为一个组件。V8 引擎同事也是 Node.js 的 JavaScript 解释器,这提现了组件的可复用性。

<!–more–>

库(Library)是一些列预先定好的数据结构和函数(对面向对象来说,是类)的集合,程序员通过使用这些数据结构和函数实现功能。例如 Moment.js 是 JavaScript 库,提供了处理时间的一些函数。

框架(Framework)也是一系列预先定义好的数据结构和函数,一般用户作为一个软件的骨架,但程序真正的功能还需要由开发者实现。框架和库的最大区别在于“控制反转”,当你使用一个库,你会调用库中的代码,而当你使用一个框架,框架会调用你的代码。框架和库是一个有交叉的概念,很多框架都是以库的形式发布的,例如 Java 的 Spring MVC 框架,其发布的 jar 包本身就是一个库。而一个库如果也能通过依赖反转的方式进行拖拽,那也可以视为一个框架,例如 Python 的 markdown 解释库 Python Markdown,可以添加自定义的解释拓展,那么可以被视为一个 Markdown 解释框架。

下面这张图出自这篇博客 Library vs. Framework?,从调用方式的角度比较了库和框架。

framework vs. library

插件(Plugin)和拓展(Extension)是两个很相似的概念,我没有办法在软件系统的角度给出这二者的区别。插件(或拓展)是对已有应用程序或者库的功能补充,一个软件的插件(或拓展)是实现了该软件预定义接口的组件,用来向已有的软件添加功能。插件在目标软件发布时可以不预先包含,而是在运行时被使用者注册,然后再被目标软件调用。另一个很接近的概念是加载项(Add-on),可以认为加载项是插件(或拓展)的子集,是仅针对应用程序来说的功能补充。一个插件的例子是 Flash 的浏览器插件,为浏览器实现了运行 Flash 程序的功能。

控件(Control)是 gui 编程的一个概念,一般来说一个最终用户可以看到的、可交互的组件、被视为一个控件。例如 .NET 编程中的 System.Windows.Contrals.Button 是一个控件。


原文:怎样精确区分这些名词:库、插件、组件、控件、扩展? – 龚世伟的回答 – 知乎