duangsues.is_a? SaltedFish
60 subscribers
609 photos
6 videos
91 files
562 links
🌶🐔🐟 duangsuse 的日常
尤其喜欢发些奇奇怪怪的东西
和转载别人的东西
Download Telegram
農管:本來就應該種水稻,誰叫農民種小麥?高速ETC的打點証 我不認

只允許種下去 沒有允許收割 一切要聽黨的指揮
小麥都是惡意發霉發芽,老天爺惡意下雨,這一定是境外勢力
割韭菜卻不割稻米小麥,還有人礦可以採,真不愧是發達國
翠的 扛200斤麥子,十里山路不換肩
原來是 農民們自己 不夠給力
誰叫這些農民沒辦法跟某種粉色物種一樣用手刻芯片只會机種田

大国寡民:你就是见不得中国好
没错,这种中国好,是牺牲国民利益为燃料的。 靠它称霸世界,王朝复兴呢?
翻开历史课文,看到对奴隶社会的解释:
1.奴隶没有土地
2.奴隶的报酬听候奴隶主的分配
3.奴隶没有政治权利,欠薪时莫谈国事
4.奴隶有忠卫奴隶主的光荣义务

官本位下 🧐官员群众老百姓的利益冲突,是不以善人的意志为转移的

以为举着红旗打砸抢,自己家就能连年太平 ,这种封建分裂的思想迟早被改良

- 国人并不具有“独特性”,中国人不因软弱而不容于民主制度,也不存在“劣根性”而不适于民主制度。
- 当权力变成天降商品,腐败就会成为常态。
- 策的反复威胁法律的权威性,地方失去法律的束缚,将产生洪水般的混乱。
[上海 五月天演唱会]彭载舟、白纸式 行为被越来越多人复刻

越南和中国的相似点
博恩 -中国喜剧仍是有未来的
#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 的几何就是 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 螺莉莉的黑板报
等一下!苹果!你 pakt chunk 在 data chunk 后面!这还怎么流媒体啊!
Forwarded from 螺莉莉的黑板报
CAF Container -> OGG Container 的 Mapping 基本摸清楚了,剩下的就是把包拆掉重新组一个咯 ˊ_>ˋ

现在还没搞清楚的是 channel mapping 是怎么个对应关系,明天需要再好好读读文档。

剩下没摸准的是 OGG Page 下面的 Packet 拆出来扔 CAF 里面能不能用,需不需要再做一些 tweak(这块没文档)。

希望不要出太大幺蛾子……
Forwarded from 螺莉莉的黑板报
浏览器内部流式 parse ogg 文件的 code 已经准备好了!
比如像 ogg 一直到 boe 都是媒体数据,元数据在前两个 page 就已经全都写完了
Forwarded from 螺莉莉的黑板报
来来来,开始撕包
Forwarded from 螺莉莉的黑板报
奇怪,ffmpeg 转出来了一个错误的 opus package,这个 package 本身是不符合这条 spec 的:
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 螺莉莉的黑板报
OK,只有这三处是不一样的,胜利在望了 QwQ|||
Forwarded from 螺莉莉的黑板报
今天下午做完的事情是:
1. 清理掉 legacy 的数据加载机制,他那玩意是基于事件的(跟 IDB 一个尿性),这种写法会把数据流的控制搞得很乱,给重构成 Async Generator 了,这部分测试下来都没问题;
2. 清理掉他自己写的 EventTarget,他自己写了个 EventTarget 的 Polyfill,而且还是残的,甚至还复制粘贴了两次,换成了 Web Media 下面标准的 Event Target 了;
3. 重写数据分片加载的机制,之前已经把 MP3 的加载给抽出来了,这次进一步把它整理了一下,没整理完,删东西删的太狠了,编码解码出 bug 了(
Forwarded from 螺莉莉的黑板报
啊,丢了一步,我说怎么不对,消到正常范围内了,还剩一个 bug,明天把它修掉!
Forwarded from 螺莉莉的黑板报
这东西的做法其实真的非常简单,librespot 已经把所有 Code 都写完了,只需要在播放那块加一个函数,把 Key Dump 出来,然后用 deno 写一个小脚本从缓存池里面把加密的 ogg 捞出来用 AES 解开就行了,元信息可以用 spotifly 那个库直接从它的官方数据库提取。碎掉的 Container 用 VLC 修一下,元信息用 tageditor-cli 填进去就好了 ˊ_>ˋ