Marvin's Blog【程式人生】
Ability will never catch up with the demand for it
Home
Tags
Categories
Topics
Notes
04
Mar 2021
Emacs手册阅读
熟悉一个工具最显而易见的办法就是阅读其手册。在Emacs中可以通过C-h r打开手册。 23 Major and Minor Modes 23.1 Major Modes M-x ?-mode启用某个mode。例如M-x lisp-mode进入lisp模式。 有的模式存在快捷键, …
03
Mar 2021
The Racket Guide阅读笔记【五】
The Racket Guide阅读笔记,chapter 7. 7 Contracts 7.1 Contracts and Boundaries 合约(contract)是一个模块为其自身提供的使用声明。 #lang racket (provide (contract-out …
02
Mar 2021
The Racket Guide阅读笔记【四】
The Racket Guide阅读笔记,chapter 5, 6. 5 Programmer-Defined Datatypes 5.1 Simple Structure Types: struct struct可以用来创建自定义的类型。语法如下: (struct …
01
Mar 2021
Racket文档阅读笔记:SQL篇
SQL: A Structured Notation for SQL Statements (require sql)需要安装sql包。 sql模块以s表达式的方式来式SQL的一个子集。它可以生成直接在db模块中可以用的语句。除此之外还提供宏和函数用以创建并操控SQL的AST。 …
28
Feb 2021
Racket文档阅读笔记:DB篇
文档所在DB: Database Connectivity。 以SQLite为例,理解Racket对DB的支持。 连接 racket支持几种不同的数据库,SQLite就是其中之一。有些数据库连接是通过连线的方式,有些数据库是通过FFI操作的。SQLite属于后者,需要通 …
27
Feb 2021
The Scheme Programming Language读书笔记【九】
The Scheme Programming Language 读书笔记,chapter 10. Chapter 10. Libraries and Top-Level Programs R6RS定义了程序库以及顶级程序。库采用的命名方式有点特别,形如:(a), (a b), …
26
Feb 2021
The Racket Guide阅读笔记【三】
The Racket Guide阅读笔记,chapter 4. 4 Expressions and Definitions 4.1 Notation 有点没看懂。 4.2 Identifiers and Binding 跳过。 4.3 Function Calls …
25
Feb 2021
The Scheme Programming Language读书笔记【八】
The Scheme Programming Language 读书笔记,chapter 8, 9. Chapter 8. Syntactic Extension 语法扩展(syntactic extensions)也就是宏(macros)用于扩展程序的语法,消除重复模式。 语法 …
24
Feb 2021
The Scheme Programming Language读书笔记【七】
The Scheme Programming Language 读书笔记,chapter 7. Chapter 7. Input and Output 所有的IO操作都是通过ports来完成的。Port是一个指向数据流的指针。一个Port可以是只为输入服务,或者只为输出服务的,或 …
23
Feb 2021
The Racket Guide阅读笔记【二】
The Racket Guide阅读笔记,chapter 3. 3 Built-In Datatypes 3.1 Booleans 略 3.2 Numbers 略 3.3 Characters Racket字符可以对应到一个Unicode标量。这个标量是一个21位整型。通 …
22
Feb 2021
The Racket Guide阅读笔记【一】
The Racket Guide阅读笔记,chapter 1,chapter2,chapter24. 1 Welcome to Racket Racket是一门编程语言,Lisp的一种方言,以及Scheme的一个后记。 同时Racket也是一整个编程语言家族以及相关的工具合集。 …
21
Feb 2021
The Scheme Programming Language读书笔记【六】
The Scheme Programming Language 读书笔记,chapter 6下半部. Chapter 6. Operations on Objects Section 6.7. Characters 字符是原子性的对象,用来表示字母,数字字符,特殊名号比如$或 …
20
Feb 2021
EMACS自带教程学习笔记
Emasc Tutorial C-x C-c退出Emcas。C-V下滚。M-V回滚(没有M的话可以用ESC替代)。C-l刷屏,并且移动半屏位置。 C-p上一行;C-n下一行;C-b左移;C-f右移。M-f和M-b按单词而不是字符进行左移或者右移。 C-a行首;C-e行尾;M-a句 …
19
Feb 2021
The Scheme Programming Language读书笔记【五】
The Scheme Programming Language 读书笔记,chapter 6上半部. Chapter 6. Operations on Objects 本章介绍对象之上的操作,包括连对,数字,单字符,字符串,矢量,字节矢量,符号,布尔值,哈希表,以及枚举类型。 …
18
Feb 2021
The Scheme Programming Language读书笔记【四】
The Scheme Programming Language 读书笔记,chapter 5. Chapter 5. Control Operations 本章涉及控制结构相关的语法形式。 Section 5.1. Procedure Application 形如(expr0 …
17
Feb 2021
Racket文档阅读笔记:DrRacket环境
DrRacket: The Racket Programming Environmen 1 Interface Essentials 1.1 Buttons Step按键只在Beginning Student到Intermediate Student with Lambda等语言 …
16
Feb 2021
How To Design Programs阅读笔记【一】
How to Design Programs, Second Edition阅读笔记,Preface,Prologue: How to Program以及部分chapter 1。 Preface 传统的编程课程教授的的是“tinker untile it works”的方式,但事 …
15
Feb 2021
The Scheme Programming Language读书笔记【三】
The Scheme Programming Language 读书笔记,chapter 4. Chapter 4. Procedures and Variable Bindings 执行诀和变量绑定是Scheme程序的两大基石。 Section 4.1. Variable …
14
Feb 2021
The Scheme Programming Language读书笔记【二】
The Scheme Programming Language 读书笔记,chapter 3. Chapter 3. Going Further Section 3.1. Syntactic Extension 前面提到,scheme有核心语法和扩展语法。后者可以展开变成前者。核 …
13
Feb 2021
The Scheme Programming Language读书笔记【一】
The Scheme Programming Language 读书笔记,chapter 1,2. Chapter 1 Introduction scheme支持结构化的数据类型,比如strings, lists以及vectors,还有传统的数据类型,比如numbers …
26
Jan 2021
UWP设计文档阅读笔记:Text
Text Text block TextBlock是从FrameworkElement派生出来的,可以用来显示单行或者多行文本,甚至包括内嵌的超链接,以及一些基本的文本格式化,比如加粗,斜体,下划线等等。 TextBlock比RichTextBlock有更好的性能,但是支持的格式 …
24
Jan 2021
UWP中的XAML控件ItemsRepeater
ItemsRepeater的阅读笔记。 ItemsRepeater和ItemsControl有点类似,都提供了用于处理元素集合的逻辑。和ItemsControl相比,ItemsRepeater支持UI布局的虚拟化。但是ItemsRepeater必须使用外部的数据源,无法 …
01
Dec 2020
UWP开发档【XAML性能】阅读笔记
Develop > Debugging, testing, and performance > Performance and XAML UI 文档笔记。 ListView and GridView UI optimization 使用UI虚拟化、元素缩减以及渐进式更新来改 …
29
Nov 2020
UWP Design Input文档笔记
Keyboard > Access keys 键盘访问键可以快速在UI中切换和交互。Windows内建对键盘访问键的支持,并且能够通过Visual Cue也叫做Key Tips提供UI反馈。 Keyboard > Keyboard accelerators 快捷 …
28
Nov 2020
UWP Design Style文档笔记
Design and UI Style 笔记。 Icons for UWP apps App icons and logos Small tile 71x71 Medium tile 150 x 150 Wide tile 310 x 150 Large tile 310x310 …
27
Nov 2020
UWP Design Layout文档笔记
Uwp Design Layout学习笔记。 Page layout 一般来说一个页面包含导航,命令以及内容等元素。 尽管包含很多不同风格的导航,但是看不到对传统菜单的采用。 一些应用示例: …
16
Nov 2020
C++20 模块规范阅读笔记【二】
C++ Modules规范阅读笔记。 10.3 Import declaration 模块导入声明的结构如下: module-import-declaration: import-keyword module-name attribute-specifier-seqopt ; …
15
Nov 2020
C++20 模块规范阅读笔记【一】
C++ Modules规范阅读笔记。 10.1 Module units and purviews 一个俱名模块(named module)是一系列使用同一名字的模块单元的合集。 一个模块单元(module unit)是一个带有模块声明的翻译单元(translation …
13
Nov 2020
UWP的Dialogs和Flyouts
UWP文档阅读笔记。 Dialogs and flyouts Dialog(对话框)和Flyout(飞出框)两者都是用于临时展示内容,对用户正在进行的操作都具有打扰性质。二者通常用于通知、请求以及展示一些额外的信息。 Dialog是模态的,会直接中断用户当前的操作,强迫用户完成和 …
08
Nov 2020
The Little Schemer读书笔记(九)
The Little Schemer总结篇。 读后感 特点,采用对话的形式来引导阅读,希望读者能够自行给出对于所涉及概念的定义。但是书中还是列举了许多Laws和Amendments,也就是条例和修正案,来帮助读者记住相关原理。 迭代和递归在基本概念上有所差异。假设处理对象是一串念 …
06
Nov 2020
The Little Schemer读书笔记(八)
第十章 What Is the Value of All of This? 一个entry是一对list,这对list的第一项是一个set,并且这两个list具有相同的节点数。一个例子: ((appetizer entree beverage) (pate boeuf vin)) …
04
Nov 2020
Webview2的Win32 C++ API
个人觉得,之所以采用Win32的COM方式来提供WebView2的API,主要时考虑到COM方式的API在Win32,.NET,WinRT中皆可方便使用。 ICoreWebView2 WebView2的核心封装是ICoreWebView2接口(从IUnkown派生出来的)。让你可 …
04
Nov 2020
基于Chromium的Edge WebView2
给Win32用的WebView2在10月份GA了。MS提供了WebView2 SDK可以供Win32 C/C++应用使用。相应的Windows Blog文章Announcing Microsoft Edge WebView2 General Availability。 …
25
Oct 2020
再读[ResourceDictionary and XAML resource references]
Windows/Apps/UWP/Design and UI/ Controls ResourceDictionary and XAML resource references XAML的资源一般指的是那些可以被共享的字符串,样式、模板、笔刷、动画等等。资源的主要组织方 …
22
Oct 2020
The Little Schemer读书笔记(七)
第9章 … and Again, and Again, and Again, … 开场先介绍一个looking函数: (define looking (lambda (a lat) (keep-looking a (pick 1 lat) lat))) looking函数的使用举 …
20
Oct 2020
UWP如何兼容C++程序
本文是一下文档的阅读笔记: Microsoft C++ Porting and Upgrade Guide How to: Use existing C++ code in a Universal Windows Platform app 文中的很多内容跟C++/CX相 …
03
Oct 2020
The Little Schemer读书笔记(六)
The Little Schemer第八章 Lambda the Ultimate学习笔记。 首先出现的是rember-f,它是rember的演化版,接受一个额外的test?作为测试条件,来判断是否要移除目标节点。 (define rember-f (lambda (test? …
01
Oct 2020
The Little Schemer读书笔记(五)
The Little Schemer第七章Friends and Relations阅读笔记。 第七章首先出场的是set?,用来判断一个lat(list of atoms)中是否有重复的atom。 (define set? (lambda (lat) (cond ((null? …
26
Sep 2020
The Little Schemer读书笔记(四)
第五章(On My Gawd*: It’s Full of Stars)以及第六章(Shadows) 之前的章节涉及的list一般都是由atom构成,这章开始处理list of list,也就是表中表。原先一个方向的递归,现在要变成两个方向了。如果原先的递归称为右递归的话,现在要 …
24
Sep 2020
The Little Schemer读书笔记(三)
第四章(Numbers Games) 这一章使用递归来表达正整数。首先介绍两个操作:add1和sub1,分别对数进行加一和减一操作。 add1的定义如下: (define add1 (lambda (n) (+ n 1))) sub1的定义如下: (define sub1 …
21
Sep 2020
UWP文档笔记:Cryptographic Keys
Windows/Apps/UWP/Develop/Security/Cryptographic keys Symmetric keys 对称加密是指加密和解密的过程采用同一个密钥。WinRT中的SymmetricKeyAlgorithmProivder可以提供不同算法的对称加密密 …
20
Sep 2020
The Little Schemer读书笔记(二)
《The Little Schemer》读书笔记(第三章)。 第三章(Cons the Magnificent)伊始,书中引入了另一个函数rember(remove member的缩写)。rember从lat(list of atoms)中移除一个atom,所以需要把list拆开 …
19
Sep 2020
The Little Schemer读书笔记(一)
《The Little Schemer》读书笔记(第一章、第二章)。 本书特点,采用对话的形式来引导阅读,希望读者能够自行给出对于所涉及概念的定义。但是书中还是列举了许多Laws和Commandments,也就是条例和戒律,来帮助读者记住相关原理。 在Scheme中,变量的数据类 …
07
Aug 2020
读[Build Your Own Async]有感
Build Your Own Async是David Beazley发布在YouTube上的一个Workshop视频。讲述了一些的Python的Async机制。看完之后有感而发,写了这篇文章。 一个程序按顺序一步接着一步执行,这叫同步执行。但是执行某一步的时候,如果所需要的条件还 …
30
Jul 2020
UWP文档笔记:控制台应用以及多实例
Create a Universal Windows Platform console app 从Win10 1803开始,可以基于C++/WinRT或C++/CX来创建控制台程序。控制台程序可以通过Universal C Runtime来使用printf或者getchar这些函 …
12
Jul 2020
Flask文档阅读笔记(四)
Testing Flask Applications 按照pytest $ pip install pytest 从https://github.com/pallets/flask/tree/1.1.2/examples/tutorial下载示例。然后进入 …
08
Jul 2020
UWP文档笔记:幕后任务【三】
Run in the background indefinitely 不发布在Microsoft Store的App(个人的,或者企业的)可以在后台持续运行。 在Win10 1703中,提供了API可以关闭幕后以及会话延展的资源控制。 简单地说,就是通过一个受控能力来关闭操作系统 …
07
Jul 2020
UWP文档笔记:IPC
Interprocess communication (IPC) App services 通过ValueSet来交互。ValueSet里面存的数据必须是序列化好的How to make a class that can be added to the …
05
Jul 2020
UWP文档笔记:AppService
App Service Create and consume an app service 支持AppService的应用必须先部署才能获取其Package family name。通过designer view打开Package.appxmanifest,可以 …
04
Jul 2020
UWP文档笔记:幕后任务【二】
Create and register an in-process background task 即便App还在前台,同进程的幕后任务也可能被操作系统终结,如果它们运行时间超限的话。 1607新增了两个跟前后台切换相关的事件EnteredBackground …
02
Jul 2020
UWP文档笔记:幕后任务【一】
UWP Guidelines for background tasks Support your app with background tasks 从Win10 1607开始,可以在后台支持媒体播放了,参考Play media in the background 幕后任务可以有 …
25
Jun 2020
SQL Antipatterns学习心得
学习Bill Karwin的SQL Antipatterns Strike Back的心得体会。Slides也可以在SlideShare查看。 体会 SQL是用来查询关系数据库(DBMS)的语言。DBMS的存储单元是数据表。每个表可以有多个栏,每个栏代表不同类型的数据。为了增加效 …
22
Jun 2020
C++/WinRT学习笔记(十一):异常处理
Error handling with C++/WinRT Error handling with C++/WinRT 异常最好只用来处理异常。而不是用来处理可预期错误。用throw/catch的方式处理可预期错误,不仅影响性能,而且影响代码可读性。异常用于将那些不可预期,无法在 …
21
Jun 2020
UWP开发文档【二】:Monetization
Monetization, engagement, and Store services Windows SDK, Microsoft Advertising SDK, Microsoft Store Services SDK以及Microsoft Store提供很多机会,让你能 …
16
Jun 2020
Flask文档阅读笔记(三)
Flask 文档1.1.x走读笔记。 Application Errors 程序出错是一个必然性事件: 用户可能中止请求, …
15
Jun 2020
Flask文档阅读笔记(二)
Flask 文档1.1.x走读笔记。 The Application Context Purpose of the Context¶ 应用级别的数据可以通过current_app以及g这俩全局变量访问。 Flask的app实例有很多属性,可以在view或者cli里面访问。但是 …
14
Jun 2020
Flask文档阅读笔记(一)
Flask 文档1.1.x走读笔记。 Foreword Flask是micro框架,micro不意味着功能确实,而是意味着将核心功能保持在小范围,通过扩展的方式提供更多功能。比如,Flask默认不带数据库抽象层。 Flask有许多配置选项,但都提供了有意义的默认配置。比如模板和静 …
10
Jun 2020
SQLite文档阅读:数据库文件格式
Database File Format阅读笔记。 1. The Database File Sqlite数据库的状态由数据库文件以及日志文件共同构成。日志文件分为两种,一种是活动记录(journal),另一种是WAL格式。 页是SQLite存储的基本单元,页的大小可以从512 …
28
May 2020
WindowsBlog读博笔记【一】:UWP的HttpClient API
Demystifying HttpClient APIs in the Universal Windows Platform 用新的System.Net.Http.HttpClient和Windows.Web.Http.HttpClient,不要用老的(比如WebClient …
23
May 2020
C++/WinRT学习笔记(十):扩展作成类
Extension points for your implementation types winrt::implements提供了一些自定义的行为,让你可以自定义inspectable 对象的行为。 winrt::implements实现的类不能有私有的析构函数,其析构函数必 …
20
May 2020
C++/WinRT学习笔记(九):Agile对象
Agile objects in C++/WinRT 如果一个WinRT类可以被任意线程访问,这个类就是agile的。大部分的WinRT类都是agile的,除了少部分特殊的。C++/WinRT实现的类型默认都是agile的。但是在某些场景下,你希望实现一个非agile的类,让这个 …
16
May 2020
WDK文档阅读笔记(一):软件追踪工具
本文是的Windows Driver Kit的Tools for Software Tracing章节的阅读笔记。 Tools for Software Tracing WDK提供了一系列的应用程序以及命令行工具来进行软件跟踪。这些工具设计上支持ETW(Event Tracing …
08
May 2020
Windows的事件跟踪(ETW)框架文档阅读笔记
Event Tracing 文档阅读笔记。 ETW(Event Tracing for Windows)是Windows的事件跟踪记录框架。可以实时跟踪事件,也可以把跟踪的事件记录下来保存成文件。ETW记录的事件常常被用来做性能分析。 Windows提供的是核心的事件路由系 …
21
Apr 2020
UWP开发文档【二】:网络相关
Develop Apps > Communications > Networking and web services Networking basics App的联网能力是受管控的,有三种能力声明: internetClient, …
18
Apr 2020
OneDrive接口文档笔记(一):登录验证
Authorization and sign-in for OneDrive in Microsoft Graph 要让你的App使用OneDrive API,可以使用Azure AD v2.0或者Azure AD所提供的验证服务。前者比后者新,但是不支持一些企业级别的验证服务。 …
16
Apr 2020
UWP安全文档阅读笔记【一】:第三方验证登录
Security > Authentication and user identity UWP支持若干种用户验证方法,囊括简单的单点登录(SSO),以及安全性更高的两步验证(two factor)。 连接第三方服务,可以使用Web authentication broker。可以 …
10
Apr 2020
读stefanwick笔记【一】:UWP桌面扩展
三人行,必有我师矣!读stefanwick笔记。 [UWP with Desktop Extension – Part 1] 博文中的例 …
05
Apr 2020
读oldnewthing笔记(二):COM Context相关
三人行,必有我师矣!读oldnewthing笔记。 C++ coroutines: Getting started with awaitable objects Give an example of resuming co-routine on background C++ …
04
Apr 2020
UWP设计文档阅读笔记(七):应用设计介绍
Design and UI > Introduction to UWP app design Introduction to UWP app design UWP应用跑在所有的Windows 10 devices。所以UWP需要帮助其应用程序适应不同的设备和尺寸。 在一个UWP应 …
02
Apr 2020
UWP开发文档【一】:扩展启动画面
Develop > Launching, resuming, and background tasks > Splash screens Display a splash screen for more time UWP应用默认自带启动画面。这是为了在程序的首页就绪之前给用户显示 …
31
Mar 2020
UWP设计文档阅读笔记(六):布局相关
Design and UI > Layout Page layout 在UWP应用中,一个Page常常有导航、命令以及内容元素。应用可以有多个Page,通过Frame组织在一起。Frame的直接上级就是跟视窗操作相关的Window。 如何在不同的页面中导航,时页面布局中首先需要考 …
30
Mar 2020
UWP设计文档阅读笔记(五):关于XAML样式
Design UI > Controls > XAML Styles XAML styles XAML的样式可以作为一种资源被不同的XAML模块共享。定义共享样式的方法有两个,一个是在App.xaml中定义这些样式;二是把样式单独保存成资源字典文件。每个XAML页面也可以定义自己 …
22
Mar 2020
UWP设计文档阅读笔记(三):自定义标题栏
Design and UI > Shell > Title bar customization 桌面UWP提供有API,可以用来自定义窗口的标题栏区域。这些API可以让你改变标题栏的颜色,或者将UI内容放置到标题栏上。 ApplicationView.TitleBar …
12
Mar 2020
UWP设计文档阅读笔记(一):XAML theme resources
Design and UI -> Style -> XAML Styles -> XAML theme resources XAML框架支持三种主题设置:Light、Dark、HighContrast。 加载主题资源,需要在XAML中使用{ThemeResource} …
15
Feb 2020
Win32文档学习笔记(一):关于同步
Win32文档学习笔记:Synchronization/About Synchronization Wait Functions Wait函数可以让当前线程挂起,直到所需要的条件满足,或者超时。不同的Wait函数,代办不同的等待条件。 单目标(Single-Object)Wait …
01
Feb 2020
读oldnewthing笔记(一):await_suspend以及DispatcherQueue
三人行,必有我师矣!读oldnewthing笔记。 201912 C++ coroutines: The problem of the DispatcherQueue task that runs too soon, part 4 不使用同步原语,而是改成: bool …
30
Jan 2020
C++/WinRT学习笔记(八):异步处理进阶
More advanced concurrency and asynchrony Offloading work onto the Windows thread pool co_await winrt::resume_background()可以把Coroutine挂起之后在线程 …
30
Jan 2020
UWP笔记:WinRT多线程模型介绍InfoQ
Threading in the Windows Runtime: Part 1 在Build 2013上Marytn Lovell解释了WinRT多线程的关键点Windows Runtime Internals: Understanding the Threading …
09
Jan 2020
UWP文档笔记:应用的生命周期
Windows 10 universal Windows platform (UWP) app lifecycle 传统的Win32程序只有运行和不运行两种状态,UWP应用增加了一种挂起(suspend)状态。挂起意味着应用失去了执行资源,但是其状态还保存再内存中,可以随时被恢 …
31
Dec 2019
UWP文档笔记:文件读写
Files, folders, and libraries阅读笔记。 Enumerate and query files and folders WinRT可以让APP访问目录,文档库,设备,以及网络上的文件。你可以编写查询来搜寻想要的文件。 WinRT的文件访问有一些需要注意的 …
19
Dec 2019
C++/WinRT学习笔记(七):事件的生成和处理、以及对比C#
Author events in C++/WinRT 这篇文档讲述如何创建事件,举的是下面这个例子: // BankAccountWRC.idl namespace BankAccountWRC { runtimeclass BankAccount { …
17
Dec 2019
C++/WinRT学习笔记(六):接口的录用和作成
Consume APIs with C++/WinRT C++/WinRT实现的是对winmd的投射。Windows SDK自带的ABI头文件会被投射成C++/WinRT的头文件。比如,ABI的Windows::Foundation::Uri会被投射 …
08
Oct 2019
Svelte文档走读(二)
svelte api docs走读笔记。 组件指令(Component Directives) 组件可以使用createEventDispatcher来派发事件。组件的事件可以在组件的使用界面上被捕获:
,如果不想捕获事件,也可以转发:
。 组件的props也可以绑定到一个变 …
06
Oct 2019
Svelte文档走读(一)
svelte api docs走读笔记。 svelte的组件是一个以.svelte结尾的文件,其语法是HTML的超集,骨架大致如下: 其中,!-->
25
Mar 2019
ADA笔记:macOS上的异步编程
本文是ADA(Apple Documentation Archive)上的Concurrency Programming Guide相关的阅读笔记。 多任务编程 在编写代码中经常遇到一类需求,就是用异步的方式来处理某个功能。一个常见的例子是:从网上下载一个文件,我们希望把这个任务 …