農管:本來就應該種水稻,誰叫農民種小麥?高速ETC的打點証 我不認
只允許種下去 沒有允許收割 一切要聽黨的指揮
小麥都是惡意發霉發芽,老天爺惡意下雨,這一定是境外勢力
割韭菜卻不割稻米小麥,還有人礦可以採,真不愧是發達國
翠的 扛200斤麥子,十里山路不換肩
原來是 農民們自己 不夠給力
誰叫這些農民沒辦法跟某種粉色物種一樣用手刻芯片只會机種田
大国寡民:你就是见不得中国好
没错,这种中国好,是牺牲国民利益为燃料的。 靠它称霸世界,王朝复兴呢?
只允許種下去 沒有允許收割 一切要聽黨的指揮
小麥都是惡意發霉發芽,老天爺惡意下雨,這一定是境外勢力
割韭菜卻不割稻米小麥,還有人礦可以採,真不愧是發達國
翠的 扛200斤麥子,十里山路不換肩
原來是 農民們自己 不夠給力
誰叫這些農民沒辦法跟某種粉色物種一樣用手刻芯片只會机種田
大国寡民:你就是见不得中国好
没错,这种中国好,是牺牲国民利益为燃料的。 靠它称霸世界,王朝复兴呢?
翻开历史课文,看到对奴隶社会的解释:
1.奴隶没有土地
2.奴隶的报酬听候奴隶主的分配
3.奴隶没有政治权利,欠薪时莫谈国事
4.奴隶有忠卫奴隶主的光荣义务
官本位下 🧐官员群众老百姓的利益冲突,是不以善人的意志为转移的
以为举着红旗打砸抢,自己家就能连年太平 ,这种封建分裂的思想迟早被改良
- 国人并不具有“独特性”,中国人不因软弱而不容于民主制度,也不存在“劣根性”而不适于民主制度。
- 当权力变成天降商品,腐败就会成为常态。
- 策的反复威胁法律的权威性,地方失去法律的束缚,将产生洪水般的混乱。
1.奴隶没有土地
2.奴隶的报酬听候奴隶主的分配
3.奴隶没有政治权利,欠薪时莫谈国事
4.奴隶有忠卫奴隶主的光荣义务
官本位下 🧐官员群众老百姓的利益冲突,是不以善人的意志为转移的
以为举着红旗打砸抢,自己家就能连年太平 ,这种封建分裂的思想迟早被改良
- 国人并不具有“独特性”,中国人不因软弱而不容于民主制度,也不存在“劣根性”而不适于民主制度。
- 当权力变成天降商品,腐败就会成为常态。
- 策的反复威胁法律的权威性,地方失去法律的束缚,将产生洪水般的混乱。
YouTube
方脸说:中国暴力事件四起,暴力事件频发将成为中国的新常态!为什么我说中国必然会走向混乱?聊聊中国现在到底什么政体
八炯 挺中国
为何在当代岁静与10年前不一样
六·四, 反送中 应该吸纳更多阶层并学会妥协
1989/6/4这才是真正的国耻,文革一直不是过去式,而是现在进行时
文史片:各留活路海阔天空是空话,阶级矛盾是敌我的
为何在当代岁静与10年前不一样
六·四, 反送中 应该吸纳更多阶层并学会妥协
1989/6/4这才是真正的国耻,文革一直不是过去式,而是现在进行时
文史片:各留活路海阔天空是空话,阶级矛盾是敌我的
YouTube
台灣人挺中國人!六四有大驚喜!小粉紅玩不了中國手遊,不准與外國主播拍片!抖音不準有8964數字!李佳琦太慘了
攝徒最新官方LINE貼圖:https://line.me/S/sticker/23334855
00:00-00:42 長榮回應舔共台灣人
00:42-01:31 中國不存在64,只有邁向65
01:31-01:52 香港人也被抓
01:52-03:16 中國人被旅遊又開始
03:16-04:28 中國開始拆路牌
04:28-06:52 中國各類遊戲六四規定
06:52-08:00 抖音禁止出現任何8964數字
08:00-08:45 李佳琦太慘了
08:45-09:47 小粉紅快去微博支持黨…
00:00-00:42 長榮回應舔共台灣人
00:42-01:31 中國不存在64,只有邁向65
01:31-01:52 香港人也被抓
01:52-03:16 中國人被旅遊又開始
03:16-04:28 中國開始拆路牌
04:28-06:52 中國各類遊戲六四規定
06:52-08:00 抖音禁止出現任何8964數字
08:00-08:45 李佳琦太慘了
08:45-09:47 小粉紅快去微博支持黨…
#bing #asm 不会的东西: 一直在扯32位色深、字体贴图、边距 这些有的没的, 无法认真完成「大作业」
用x86 和 VESA 绘制, 实现 总人数100= .2, .4, .3 构成 的柱状图
在住顶显示"n%" ,底端显示 A,B,C
要求2空格缩进 ,提升函数复用
—
用C内联x86 和 VESA 绘制, 实现 总人数100= .2, .4, .3 构成 的柱状图
汇编结果在 qemu 执行
在柱顶显示"n%" ,底端显示 "A,B,C"
不需要边距,8bit色深, 白色柱体。例如A 的几何就是
用BIOS中断绘制字体 ,对 go(x,y) text(s); rect(w,h) 以C函数内 asm("") 定义。先写 bars.S 实现柱图业务
要求2空格缩进 ,变量用 const int a=1,b=0x2; 连写; 我有 typedef unsigned int N; 和 gcc -masm intel
—
用C内联x86 和 VESA,在 bars.S 实现白色柱图业务:
bar("A","60%", 6); bar("B","40%", 4)
即,A 的图形是
在 bios.c 里基于 typedef unsigned int N; N x,y; 定义 text(s); rect(w,h)
^bing: 越来越读不懂了
用x86 和 VESA 绘制, 实现 总人数100= .2, .4, .3 构成 的柱状图
在住顶显示"n%" ,底端显示 A,B,C
要求2空格缩进 ,提升函数复用
—
用C内联x86 和 VESA 绘制, 实现 总人数100= .2, .4, .3 构成 的柱状图
汇编结果在 qemu 执行
在柱顶显示"n%" ,底端显示 "A,B,C"
不需要边距,8bit色深, 白色柱体。例如A 的几何就是
go(0,1*ch)rect(3, .2*scrH) ,B紧随其右用BIOS中断绘制字体 ,对 go(x,y) text(s); rect(w,h) 以C函数内 asm("") 定义。先写 bars.S 实现柱图业务
要求2空格缩进 ,变量用 const int a=1,b=0x2; 连写; 我有 typedef unsigned int N; 和 gcc -masm intel
—
用C内联x86 和 VESA,在 bars.S 实现白色柱图业务:
bar("A","60%", 6); bar("B","40%", 4)
即,A 的图形是
x=0,y=1*ch; rect(3, .2*scrH) ,B紧随其右在 bios.c 里基于 typedef unsigned int N; N x,y; 定义 text(s); rect(w,h)
^bing: 越来越读不懂了
#asm #code just clear the (x<50%) part of VBE framebuffer
// Clear the left half of the screen buffer
// BIOS interrupt 10h, function 0h: Set video mode
// AL = video mode (13h = 320x200x256)
__asm__("mov $0x13, %al\n\t"
"int $0x10");
// BIOS interrupt 10h, function 0Fh: Get current video mode
// AL = video mode, AH = number of columns, BH = active page
__asm__("int $0x10");
// Calculate the size of the screen buffer in bytes
// Size = number of columns * number of rows * bytes per pixel
// Bytes per pixel = 1 for 256 colors
unsigned int size;
__asm__("mov %%ax, %%cx\n\t" // CX = AL * AH
"mov $200, %%ax\n\t" // AX = number of rows
"mul %%cx\n\t" // DX:AX = AX * CX
"shr $1, %%dx\n\t" // DX = DX / 2
"rcr $1, %%ax\n\t" // AX = AX / 2 + carry
"mov %%ax, %0" // Store AX to size
: "=m" (size));
// BIOS interrupt 10h, function 0Fh: Get current video mode
// ES:DI = pointer to video memory
unsigned char far *video;
__asm__("mov %%ax, %%es\n\t" // ES = segment of video memory
"xor %%di, %%di\n\t" // DI = offset of video memory
"mov %%es:%%di, %0" // Store ES:DI to video
: "=m" (video));
// Clear the left half of the screen buffer with black color (0)
unsigned char color = 0;
for (unsigned int i = 0; i < size; i++) {
video[i] = color;
}
// Return to text mode
// BIOS interrupt 10h, function 0h: Set video mode
// AL = video mode (03h = 80x25 text)
__asm__("mov $0x03, %al\n\t"
"int $0x10");
Forwarded from 螺莉莉的黑板报
CAF Container -> OGG Container 的 Mapping 基本摸清楚了,剩下的就是把包拆掉重新组一个咯 ˊ_>ˋ
现在还没搞清楚的是 channel mapping 是怎么个对应关系,明天需要再好好读读文档。
剩下没摸准的是 OGG Page 下面的 Packet 拆出来扔 CAF 里面能不能用,需不需要再做一些 tweak(这块没文档)。
希望不要出太大幺蛾子……
现在还没搞清楚的是 channel mapping 是怎么个对应关系,明天需要再好好读读文档。
剩下没摸准的是 OGG Page 下面的 Packet 拆出来扔 CAF 里面能不能用,需不需要再做一些 tweak(这块没文档)。
希望不要出太大幺蛾子……
Forwarded from 螺莉莉的黑板报
奇怪,ffmpeg 转出来了一个错误的 opus package,这个 package 本身是不符合这条 spec 的:
https://datatracker.ietf.org/doc/html/rfc6716#ref-R5
这我得怎么 fallback……
https://datatracker.ietf.org/doc/html/rfc6716#ref-R5
这我得怎么 fallback……
Forwarded from dnaugsuz
#js #code
let
bsCaf=(oggOpus.toCaf(oggOpu.fetch(target)),
caf=toBlobBuf(await allItems(bsCaf))
// [].let{ xz.each{push(it)} }
allItems=xz=>{let a=[], x
for await(x of xz)a.push(x)
return a
}
// new Blob(bs).arrayBuffer()
toBlobBuf=bs=>{let
size=bs.reduce((A,B)=>A+B.byteLength, 0),
buf=new Uint8Array(size), i=0
bs.forEach(b=>{buf.set(b, i); i+= b.byteLength})
return buf
}Forwarded from 螺莉莉的黑板报
今天下午做完的事情是:
1. 清理掉 legacy 的数据加载机制,他那玩意是基于事件的(跟 IDB 一个尿性),这种写法会把数据流的控制搞得很乱,给重构成 Async Generator 了,这部分测试下来都没问题;
2. 清理掉他自己写的 EventTarget,他自己写了个 EventTarget 的 Polyfill,而且还是残的,甚至还复制粘贴了两次,换成了 Web Media 下面标准的 Event Target 了;
3. 重写数据分片加载的机制,之前已经把 MP3 的加载给抽出来了,这次进一步把它整理了一下,没整理完,删东西删的太狠了,编码解码出 bug 了(
1. 清理掉 legacy 的数据加载机制,他那玩意是基于事件的(跟 IDB 一个尿性),这种写法会把数据流的控制搞得很乱,给重构成 Async Generator 了,这部分测试下来都没问题;
2. 清理掉他自己写的 EventTarget,他自己写了个 EventTarget 的 Polyfill,而且还是残的,甚至还复制粘贴了两次,换成了 Web Media 下面标准的 Event Target 了;
3. 重写数据分片加载的机制,之前已经把 MP3 的加载给抽出来了,这次进一步把它整理了一下,没整理完,删东西删的太狠了,编码解码出 bug 了(
Forwarded from 螺莉莉的黑板报
这东西的做法其实真的非常简单,librespot 已经把所有 Code 都写完了,只需要在播放那块加一个函数,把 Key Dump 出来,然后用 deno 写一个小脚本从缓存池里面把加密的 ogg 捞出来用 AES 解开就行了,元信息可以用 spotifly 那个库直接从它的官方数据库提取。碎掉的 Container 用 VLC 修一下,元信息用 tageditor-cli 填进去就好了 ˊ_>ˋ