V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  codehz  ›  全部回复第 4 页 / 共 125 页
回复总数  2490
1  2  3  4  5  6  7  8  9  10 ... 125  
护眼主要靠屏幕技术,是硬件定死的,厂商总不能塞两个不同的蓝光发光元件,所谓护眼模式调蓝光你说对睡眠有帮助可以理解,但护眼那就纯扯淡,有这精力不如少看屏幕
设置-下载和存储里不是可以调?
66 天前
回复了 tlerbao 创建的主题 程序员 前端:大家的 API 都是怎么导入导出的?
不是可以 import * as Api from 'XXX' 吗
76 天前
回复了 mawen0726 创建的主题 程序员 windows 环境问个终端软件(windTerm)的事情
不是缓存的问题,windows 设计就是如此,新进程读取当前进程的环境变量,当然 windows 也会发送环境变量改变的信号,但只有 explorer 等少数软件做了
Windows Terminal 可以在新的 tab 里用最新的环境变量
79 天前
回复了 importmeta 创建的主题 Windows 如何保护 Windows 某个目录不被读取?
把这个程序丢到另一个用户里去运行,目录权限只给那个用户开放
(当然前提是你当前用户不能是管理员用户)
然后通过 rdp 的 app 模式连窗口过去(类似于虚拟机的无缝窗口,有一定的桌面集成,可以有托盘图标)
https://fontlibrary.org/en/font/segment7
授权 OFL ,随意使用
qt 在安卓其实也有用,不过都是写工业领域的东西(好像还有人移植了 libreoffice
arc 手机 app 并不是浏览器,名字里也写得很清楚了,是 Companion ,相当于就是给你在手机上查看固定的标签页的功能
最大的区别就是 dispatch 函数始终保持固定的引用,但却能始终保证调用到最新的 reducer 函数,这意味着它作为参数传递给别的组件( memo 过的)不会导致 rerender ,当然 useState 返回的 dispatch 函数也是固定的,但它不能包含自定义逻辑
与其说用 useState 实现 useReducer ,不如说 useReducer 可以实现 useState ,当然为了效率 react 实际上不会这么做
主要是这里的问题是欧美那边的隐私保护法案,就算技术上真的做软删除别人也不能承认,一旦承认就是证明你没按隐私保护的相关法律做
当然原则上 interpreter 可以 ET_EXEC 和 ET_DYN 里二选一即可,不过选 ET_EXEC 的话,会加载到固定地址上,可能会和实际可执行文件的地址冲突,ET_DYN 之后则可以允许在其他地址加载,没有规定 interpreter 在 ET_DYN 模式下是否可以是一个可执行文件,只要求不能递归指定 interpreter ,一般来说约定有 ET_DYN 没有 interpreter 表示它自身就是 interp ,可以参考内核里的注释
/*
* This logic is run once for the first LOAD Program
* Header for ET_DYN binaries to calculate the
* randomization (load_bias) for all the LOAD
* Program Headers.
*
* There are effectively two types of ET_DYN
* binaries: programs (i.e. PIE: ET_DYN with INTERP)
* and loaders (ET_DYN without INTERP, since they
* _are_ the ELF interpreter). The loaders must
* be loaded away from programs since the program
* may otherwise collide with the loader (especially
* for ET_EXEC which does not have a randomized
* position). For example to handle invocations of
* "./ld.so someprog" to test out a new version of
* the loader, the subsequent program that the
* loader loads must avoid the loader itself, so
* they cannot share the same load range. Sufficient
* room for the brk must be allocated with the
* loader as well, since brk must be available with
* the loader.
*
* Therefore, programs are loaded offset from
* ELF_ET_DYN_BASE and loaders are loaded into the
* independently randomized mmap region (0 load_bias
* without MAP_FIXED nor MAP_FIXED_NOREPLACE).
*/
常见 linux 发行版的 ld.so 也是可执行文件
你猜 INTERP 这个词扩展开是啥(
87 天前
回复了 Leon6868 创建的主题 JavaScript XMLHttpRequest 和 Fetch ,该用哪个?
fetch 可以用 abort controller 取消,上传进度比较麻烦,要自己拼接一个 readable stream
其实可以换一个思路,用 bottom sheet 去实现这个
@gorhom/bottom-sheet
这个库的 bottom sheet 支持 tab 和多个 scrollview (需要用它包里的或者用它提供的 hooks ,当然也不是非常完美,但我觉得很大程度上能用了)
然后虽然名字是 bottom sheet 但它可以常开,backdrop 也能放 header (和动画),可以说一次解决了可收缩 header 和 tab 的需求
@mouyase 这个问题连 youtube 都有,( iOS )建议直接无视(
把容易崩溃业务放到另一个域名(重要‼️,不然会一起被杀),然后开一个顶层 iframe 去加载,里面弄点心跳 postMessage 表示存活
warp 也可以,windows 版快出了(划掉)
93 天前
回复了 leehowlslee 创建的主题 程序员 前端 JS 异步问题请教
首先你肯定得重构代码,我这里提供一个较为简单的方案
开一个池子
class MyPromisePool {
#data: Promise<void>[] = [];
add(promise: Promise<void>) { this.#data.push(promise); }
async [Symbol.asyncDispose]() {
await Promise.all(this.#data);
}
}
在顶层函数使用,例如
async function entry() {
await using pool = new MyPromisePool();
//需要的时候就往 pool 里塞 promise
pool.add(asyncfn());
//尾部不用手动写其他代码,ts 会帮你生成合适的代码
//会自动调用 Promise.all 去等待结束
//侵入性更小* (意味着不需要去跟踪函数是怎么结束的,你直接写 return 就好
}
大概率就是用 chrome 原生的 view-transition api 做的过渡呗。。。
那玩意吧单独用其实挺难做对的,但是效果确实炫酷,还不需要写太多 js
不过我觉得运行时检查类型,可能对一些复杂的类型处理不好,比如 ts 那边经常用的一些伪名义类型技巧引入的虚拟元素(实际对象中不存在,仅为了触发 ts 的名义类型模式)
1  2  3  4  5  6  7  8  9  10 ... 125  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5463 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 48ms · UTC 05:48 · PVG 13:48 · LAX 22:48 · JFK 01:48
Developed with CodeLauncher
♥ Do have faith in what you're doing.