读书笔记 - PPM(一)
CHAPTER 3
Memory Mapping
Listing 3-1. mmap_example.c
Memory-mapped file on Linux.
…
We first open() the file to get file descriptor. Then, we retrive the file statistics to use the length:
12if (fstat(fd /* file descriptor */, &stbuf) < 0) err(1, "stat %s", argv[1]);
Map the file into the application’s address space to allow our program to access the contents as if in memory. In the second parameter, we pass the length of the file, requesting Linux to initialize memory wi ...
CuBase 小记
Cubase 13 Pro
Installation
下载 Cubase Pro 13 (V.R) 安装包
免安装版本装不了 HALion 音色库,勿选。
按如下步骤操作。
提前关闭 Windows Defender
根据 Instructions 按序安装各软件
自行安装音源。官网获取 HALion Sonic 7 及免费音色库
以上内容关联到账户后,使用 Steinberg Download Assistant 进行下载安装
每次添加新内容后,需再次运行 Activation Manager Unlocker 激活
Test
安装 LoFi Piano 以测试。
Summary
很是脏乱。需要同时安装多个辅助软件,不少内容被直接装到了 C 盘。
总结时感慨,本次艰难安装 Cubase 之根源便是没看教程,直接下载安装。总是应该多些调研。
附录 I | HALion 原厂音色
软件列表
HALion Sonic 7
HALion Sonic SE 3.5
关于音色库
整理如下。
音源推荐 | 1 | 2
雅马哈综合音色库 (~5G)
康泰克原厂音色 (~2 ...
Docker 初探
Docker 常用命令与参数精讲
Mario Bros. Clock 复刻
Mario Bros. Clock 复刻
Project | Repo | Flash Online
Setup
Board: esp-wroom-32
RGB Matrix: Waveshare HUB75E 64×64
IDE: 在线烧写 / Arduino IDE v2.3.4
Drivers: CP210x VCP Drivers
数据线
Records
Mario Bros. Clock
接线时参考项目接线说明及微雪点阵屏线序。连接电脑后点亮 esp,然后安装 CP 210x 驱动以检测到 esp wroom 32. 在线烧写即可。
最终效果,难评。本地编译后重新烧写,问题依旧。
微雪例程
参考微雪官方文档设置 Arduino IDE,但其并不面向 esp wroom 32,因此参考本文进行调整。最后需要根据接线图改一下引脚定义,以及将 64×32 改到 64×64。编译时报错
1Compilation error: unknown type name 'i2s_dev_t'
与工程师沟通后降 Board Manager 版本为 v2.0. ...
Makefile 入门(二)
Makefile 小记
CXXFLAGS
编译 Memtis/silo benchmark 时,一个宏定义一直找不到
123macros.h:32:2: error: #error "no CONFIG_H set" 32 | #error "no CONFIG_H set" | ^~~~~
检查 Makefile,CONFIG_H 有定义且路径正确,并且已经通过 CXXFLAGS += -DCONFIG_H=\"$(CONFIG_H)\" 传递给编译器,十分奇怪。
打印调试输出。
12$(info CXXFLAGS are $(CXXFLAGS))# CXXFLAGS are -Wno-error=deprecated-declarations
这下明白了,我执行的 make 命令为 make CXXFLAGS+="-Wno-error=deprecated-declarations",Makefile 中定义的 CXXFLAGS 被覆盖。把命令行参数去掉后再打印 CXXFLAGS,与 ...
HTML5 + CSS3 入门(一)
CSS
Common
外边距:垂直方向
外边距合并 ( margin collapsing ) 主要适用于块级元素。具体来说,当两个或多个块级元素的垂直外边距相邻时,它们的外边距会合并为其中较大的一个。
合并是连锁的,即
12345678910<style> .ht0 { margin: 10px auto; }</style><body> <div class="ht0"></div> <div class="ht0"></div> ...</body>
最终合成的 margin 仍为 10px.
外边距合并不会发生在行内元素、浮动元素(float)、绝对定位元素(position: absolute 或 position: fixed)、表格元素 (table) 上,etc.
e.g.
1234567891011121314151617<!-- body-margin=8px --><styl ...
HTML5 + CSS3 入门(二)
Notes
垂直距离问题
12345678910<style> * { margin: 0; padding: 0; box-sizing: border-box; } li { list-style: none; }</style>
display
代码片段 1
代码片段 2
<img><div>
<img style="display:block;"><div>
网页 1 中,img 与 div 之间多出一小段垂直距离
由于 <img> 元素默认是内联元素(inline),而 <div> 元素是块级元素(block),内联元素遵循文本流,会受到文字间距等影响,因此在默认情况下,即使 <img> 和 <div> 都各占一行,它们之间可能会存在一些默认间距或对齐方式上的差异,导致看起来有一小段垂直距离
弹性盒子
自动宽度设置
讨论 Flex 布局中, ...
Hexo 二次建设(一)
Hexo 维护记录
前言
自前年兴冲冲地折腾好了 Hexo + Buftterfly 后便陷入长达一年半的虚无期。无他,一者发现搭博客「也就那么回事」,二者,此类框架要写好文章才能渲染,且没有第三方博客平台一键发布的便利。[1] 近来被推荐在简历附上个人博客,于是借此机会重新修整,作文以记之。
框架 | 主题
略有过时的 Hexo + Bufferfly,但初见一图流的惊艳让它始终是我的白月光,框架选型时没犹豫地闭眼冲了。插件系统提供了高度自由的定制空间,只是时间过去已久,没能记下魔改博客的每一步。时至今日,倒也没那么重要了。
Twikoo 评论
当初部署时的一个小坑。Vereel 部署时,如果使用 Gitlab 为仓库,则 Twikoo 必须扔在 Personal Projects 下,否则跟你要会员。
之前发现 Twikoo 挂了,检查后发现 i) 当时绑定的域名没在续费;ii) MongoDB 因为太久不活跃,把数据库关了。
按照站长的教程[2]重新盘了一遍。定期发一些评论吧。
SSL
见 OHTTPS 相关文章。
图床
对象存储使用七牛云。上传接口使用 PicU ...
存算一体 - 综述
存算一体:综述
Related Notes
No.240801 ~ 240802
Introduction
内存瓶颈
冯·诺伊曼架构下,存算分离,访存带宽低,时延长,功耗高。在处理数据密集型算法时,大量能耗和信号延迟损失在频繁的数据搬运和内存访问上,即所谓存储墙瓶颈。同时,计算与访存性能发展严重失衡。(Fig. 1.)
Fig. 1(a). Comparation between von Neumann and CiM Architecture.
Fig. 1(b). The bandwidth is increasing very slowly.
同时,大数据和 AI 技术的兴起,对流式数据传输提出了高要求,其性能受存算分离架构的数据搬移影响最为严重。希望采用忆阻器等新兴介质,实现原位存储和计算,减小能耗和延时,消除传统架构下的内存瓶颈问题。
忆阻器
包括磁效应忆阻器、相变效应忆阻器和阻变效应忆阻器等。
Magnetoresistive RAM (MRAM)
磁效应忆阻器通过调整电子自旋,利用磁道磁阻效应实现电阻状态改变,达到存储信息的目的。其结构包含有 3 层, ...
Installing PMDK
DevEnv
Installing PMDK[1]
PMDK 是一系列包的总称,随着英特尔傲腾业务的终止,这些包逐渐不再被维护。Debian 12 软件仓库中目前只剩 libpmem ( 低级操作 )、libpmemblk 等主要包,或者手动从 Github 自行安装。
12$ apt search pmem$ apt-get install <library>
e.g. libpmem[2]
123Runtime: libpmem1Dev : libpmem-devDebug : libpmem1-debug
不装 dev 会导致编写程序时没有头文件
Installing NDCTL[3]
The ndctl utility is used to manage the libnvdimm (non-volatile memory device) sub-system in the Linux Kernel.
1$ apt install ndctl daxctl
Installing IPMCTL[4]
ipmctl is an open sourc ...