Skip to main content

· 约21分钟
Proca

引言

无论是从搜索引擎的搜索指数,还是社交媒体的日常推送,我们都可以发现:2022年后半年,“AI绘画” 在互联网中的讨论度大幅升高。

google

AI绘画是如何一步步发展到今天的?发展过程中涉及到哪些关键技术?这些关键技术的基本原理又是怎样的?

· 约16分钟
Proca

导语

深入理解:ECMAScript 3中的执行上下文 中,我们曾对 this 的指向进行了简单的介绍:

如果当前函数作为对象方法调用,或使用 bind call apply 等方法调用,则引擎会将对应的调用者信息( this )存入当前执行上下文中。否则,调用者信息将默认地被设置为全局对象( globalThis )。

因此,实践的大多数情况下,我们可以将 this 简单地理解为调用者。然而,观察以下示例:

· 约7分钟
Proca

导语

多数情况下,在开发、运行Python项目时,我们需要使用诸如 pip 的包管理工具,在Python环境中查找、下载、安装、卸载各种Python包。通常,包都会被安装到Python安装目录的 site-packages 文件夹下。这样,在同一Python环境中的不同项目,都会使用 site-packages 下所安装的包。

但不同项目对于同一种包的版本需求可能不同,并且当我们使用 pip install <pkgname> 时,通常不会仅仅安装一种包:

pip install Scrapy
...
Installing collected packages: PyDispatcher, pyasn1, incremental, constantly, zope.interface, w3lib, typing-extensions, six, queuelib, pycparser, pyasn1-modules, lxml, jmespath, itemadapter, hyperlink, filelock, cssselect, attrs, requests-file, protego, parsel, cffi, Automat, Twisted, tldextract, itemloaders, cryptography, service-identity, pyOpenSSL, Scrapy
...

可见,如果我们都只在单一Python环境中运行我们所有的项目,必定会带来包的版本混乱。最简单的方法是把不同的项目放在不同的Python环境中运行。

而命令 python -m venv 正是实现这一步的不二法宝。

· 约19分钟
Proca

导语

执行上下文(Execution Context)是JavaScript引擎解析可执行代码片段时创造的一种环境。在 深入理解:ECMAScript 3中的执行上下文 中,我们介绍到 ECMAScript 3 规范(下文简称 ES3 规范) 下的执行上下文由变量对象或活动对象、作用域链、调用者信息三部分内容组成,但同时我们也提到 ES3 规范 是古老的。在相较更新的 ECMAScript 6 规范 (下文简称 ES6 规范) 中, letconst 关键字的引入、类( class )在语言层面上的被支持,以及其他种种新特性,都让 ES3 规范 下的执行上下文显得无能为力。因此, ES6 规范 在引入新特性的同时,也要对执行上下文的相关机制做出调整。

本文将立足于 ES6 规范,介绍其执行上下文的组成以及其在实践中的运用。

· 约20分钟
Proca

导语

如果你已经接触了一段时间的JavaScript,你或多或少地会接触到一个名为“执行上下文”的术语。跟我们在进行文学鉴赏时涉及的“上下文”不同,执行上下文(Execution Context)指的是JavaScript引擎解析可执行代码片段时创造的一种环境,因此,执行上下文也被称为执行环境。

但是,“由JavaScript引擎创造的一种环境”?好像理解起来还是有些抽象:它是以什么机制创造的?创造了什么样的环境?有这些疑惑很正常,这也正是本文所要解决的问题。

让我们先从古老的 ECMAScript 3 规范 中的执行上下文了解起:

· 约23分钟
Proca

导语

这,是一个字符串

smile 😊

由于你的计算机只能识别 01 这样的数字,为了让它读懂这个字符串,需要建立字符串中的每个字符到特定内容的映射 (Mapping).

于是,ASCII、GBK、BIG-5、UTF-32、UTF-16、UTF-8等编码应运而生。它们基于对应的字符集 (Charset),将其中字符 (Character)码点 (Code Point) 之间的映射关系,进一步实现为字符计算机储存、传输内容(如二进制数、电脉冲)的映射关系,让我们得以在计算机上使用我们的语言.

为了更好地了解现代计算机所使用的编码规则,我们先从 ASCII 开始.

· 约18分钟
Josie Chow

目标:学习 CI/CD 的基本概念,GitLab CI/CD 使用方法。

前提:有 GitLab 的账号和基础知识,了解远程仓库、分支、提交、推送、合并申请等概念。如果不了解,可以学习教程 Hello World in GitLab

内容:学习 CI/CD 的基本概念,创建并部署一个 Flutter 项目到 GitLab,使用GitLab CI/CD 自动化执行项目的测试、打包、分发。

演示平台:macOS

· 约8分钟
Josie Chow

目标:创建一个 Flutter 应用程序(该项目可运行并包含至少一个测试),并且体验运行、测试、打包的流程。

演示平台:macOS

Flutter 是什么

Flutter 是一款移动应用程序SDK,一份代码可以同时生成 iOS 和 Android 两个应用程序。应用程序是用 Dart 语言编写的。

· 约3分钟
Josie Chow

Git 是什么

Git 是一个用于版本控制的软件,用于跟踪本地文件修改,并能与远程仓库同步。