V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  vituralfuture  ›  全部回复第 9 页 / 共 10 页
回复总数  189
1  2  3  4  5  6  7  8  9  10  
340 天前
回复了 ateist 创建的主题 Linux 只有我一个人觉得 Arch 的 AUR 不好用吗?
听说 deb 包比较老,而且编译也有编译的好处,ABI 兼容更好

感觉用 archlinux 最大的优点就是软件包非常新,当需要比较新的软件时,Ubuntu 就只能源码编译了,而且最大的问题是,无法管理依赖,软件更新后也很麻烦,你是重新拉源码然后编译呢,还是不更新呢?

AUR 加上 AUR 助手就完美解决了这些问题,aur 助手能自动构建,追踪软件更新,管理依赖

至于编译很慢,这确实是问题,不过你要考虑到,AUR 的软件是社区自发维护的,如果一个软件编译需要很长时间,aur 可能提供 bin 包,(如果没有,你也可以上传)

不过我觉得 AUR 其实最大的问题是,里面的软件包都是打包者把官方提供的包修改成适合 archlinux 的包,也就是说,首先打包者完全不为软件负责,他们会说,请到上游反馈问题,然后反馈给上游,上游也是可以不负责的,因为 archlinux 不是 offical suported
340 天前
回复了 whlweb 创建的主题 Windows Win11 22H2 游戏性能真的下降了吗
几个月前主力还是 Win11 的时候,我发现 win11 explore 打开的速度比虚拟机里的 win10 还慢得多,虚拟机里的真的秒开

如果有人批评 Windows 的软件包管理,shell 环境( ps 听说还挺好用的?),gbk 编码(英文版本的应该不会有这个问题),还有 Windows 软件一些恶心行为(根目录拉💩,默认上传日志,日志不删除,卸载故意残留,很多都是 Windows 软件开发不规范)我大概率是支持的,但是至于性能,这个就非常悬了

说这话的人是如何得出这些结论的?也许只是主观臆断或者极小的样本

因为 Windows 用的人实在太多了,Google 搜索 Windows ,常常能看到很多不太靠谱的东西,比如说,Windows 哪里出了问题,一般人上网去搜解决方案,然后不找原因,只是把常见的几种方式尝试一遍,都不能解决的话就来句 Windows 真垃圾。

以前总是能看到很多人喷 win11 不好,结果很多人喷来喷去无外乎几点,归结起来就是,UI 变了,让他不能快速找到他想要的功能,然而一个新的操作系统带来了很多新 feature 和改进,硬件驱动,内存管理,文件系统这些都是在进步的,而那些人啥也不懂,以为操作系统就是一个 UI

举这个例子就是想说,其实网上很多人根本都不懂 Windows 却能随随便便批评他,而真正的微软工程师真的在付出努力让这个系统更好用
@vituralfuture 测试写错了,修改如下
```
BOOST_AUTO_TEST_CASE(addTest1) {
const int times = 10000;
int a, b;
for (int i = 0; i < times; i++) {
a = (int) random();
b = (int) random();
BOOST_TEST(a + b == add(a, b));
}
}
```
结果
https://i.imgur.com/RBGeMBK.png
转补码,用逻辑运算实现一个全加器,然后级联做成 32 位全加器,这样就有了做加减法的能力,乘除法同理,计算出的结果可以转回原码再求出真值

不过如何实现真值到原码到补码?很简单,利用按位逻辑运算,比如 C++中,一条语句`x=1;`,那么 x 就对应内存中一个存储位置,可以用按位逻辑运算取出每一位,然而非常巧的是,内存中的数值是以补码形式存储的,所以就能够取出补码每一位,也就是说不需要求补码,补码已经躺在内存里了

我写了一个程序来简单说明,只有循环用到了加法`i++`,但是所有循环的次数都是确定的,也就是说**循环可以展开,替换成循环体重复 32 次,相当于没有使用加法**
```
#include <iostream>

using namespace std;


void getComplementCode(bool arr[32], int num) {
int mask = 1;
for (int i = 0; i < 32; i++) {
arr[i] = num & mask;
num = num >> 1;
}
}

int getTrueValue(const bool arr[32]){
int s = 0;
for (int i = 0; i < 32; i++) {
s = s | (arr[i] << i);
}
return s;
}



void add1(bool a, bool b, bool &s, bool c0, bool &c1) {
s = a ^ b ^ c0;
c1 = (a && b) || ((a ^ b) && c0);
}

void add32(bool a[32], bool b[32], bool s[32], bool c = false) {
bool carray[32];
add1(a[0], b[0], s[0], c, carray[0]);
for (int i = 1; i < 32; i++) {
add1(a[i], b[i], s[i], carray[i-1], carray[i]);
}
}

void getTwoComplement(bool arr[32]){
for(int i=0;i<32;i++){
arr[i] = ! arr[i];
}
bool temp[32];
bool one[32];
one[0] = true;
for(int i=1;i<32;i++){
one[i] = false;
}
add32(arr, one, temp);
for(int i=0;i<32;i++){
arr[i] = temp[i];
}
}

int add(int a, int b){
bool A[32], B[32], S[32];
getComplementCode(A, a);
getComplementCode(B, b);
add32(A, B, S);
return getTrueValue(S);
}

int sub(int a, int b){
bool A[32], B[32], S[32];
getComplementCode(A, a);
getComplementCode(B, b);
getTwoComplement(B);
add32(A, B, S);
return getTrueValue(S);
}


int main() {
cout << add(10, 5) << endl;
return 0;
}
```

乘法的话,32 位加 32 位结果是 64 位的,按照这个方式也能够实现

我写的了一个测试用例如下
```
BOOST_AUTO_TEST_CASE(addTest1){
const int times = 10000;
int a = (int)random();
int b = (int)random();
BOOST_TEST(a + b == add(a, b));
}
```
测试通过
https://i.imgur.com/LCdHZww.png

除法和浮点数运算,计组课上没讲,不知道具体怎么做,不过道理都是相同的,模拟机器运算,把 C++写成 verilog
342 天前
回复了 vanvan00097 创建的主题 问与答 windows 最强的清理卸载软件是什么?
@vanvan00097 https://geekuninstaller.com/download
geek uninstaller 是免费的,geek uninstaller pro 是付费的,免费版本也有卸载软件的功能
343 天前
回复了 vanvan00097 创建的主题 问与答 windows 最强的清理卸载软件是什么?
geek uninstall 可以卸载掉大多数残留的文件还有注册表

但是~/Document 目录下的文件不会删,这个地方默认是存放用户数据的,为了方便用户重新安装软件的时候能够恢复之前产生的数据,大多数软件的删除程序不会删除这个位置的文件,需要手动删一下

可以用 sanboxie ,监控软件读写文件系统,用完了可以随时恢复到原状
我觉得这个时间不是很好,马上考六级了
manjaro 安装的时候就是从 u 盘里启动一个完整的 manjaro 系统,然后这里面安装了一大堆东西,让你体验 manjaro ,体验够了可以安装到硬盘上
2023-05-14 22:25:06 +08:00
回复了 yagamil 创建的主题 程序员 最近 github 是不是总是出现 kex_exchange_identification 的报错 ?
@menglddd 正确的,我也遇到过,似乎是代理 22 端口的问题
可以在代理的配置文件里添加一个规则,让 22 端口直连
也可以让 git 走 443 端口
2023-05-14 22:22:49 +08:00
回复了 byteroam 创建的主题 互联网 clash 这几天是不是被 gfw 攻破了
倒不如说协议被攻破了,代理客户端怎么攻破?
2023-05-11 15:26:26 +08:00
回复了 sillydaddy 创建的主题 程序员 Google 的验证码要把人逼疯
应该是 ip 问题
2023-05-09 19:42:32 +08:00
回复了 vituralfuture 创建的主题 Python [吐槽] conda 真是太难用了! 如何优雅地管理 Python 环境?
@Ricardoo 谢谢谢谢
第一个问题,这确实是,还是应该去用官方的,aur 用习惯了 ,里面有些包不太好用确实比较正常,毕竟不保证可用

第二个问题,这个还是我孤陋寡闻了,我之前模模糊糊地有这个想法,就是 conda 和 pip 不能混用,后面我看到老师演示安装包的时候直接 pip ,我还很震惊,问了他,他说可以,然后后面有一个项目用到的库 conda 没有,无奈用 pip 安装了,难怪会卡在解析依赖这一步

似乎我使用 conda 遇到的很多问题似乎都是 aur 的包的问题
我使用 conda 的方式还是不对,确实该多读读文档,RTFD
2023-05-09 19:31:59 +08:00
回复了 vituralfuture 创建的主题 Python [吐槽] conda 真是太难用了! 如何优雅地管理 Python 环境?
@Muniesa 对的,我用的是 aur 源里的 anaconda ,是别人打包好的,用 aur 的原因主要是 archlinux 官方源里只有 free and open source software ,要装其他软件得去 aur 里,用 aur 的好处是更新方便。我试试装到用户目录

至于 curl ,这东西我都无法理解为什么 anaconda 安装目录下会有这东西
连 ssl 证书都有
2023-05-09 17:51:49 +08:00
回复了 vituralfuture 创建的主题 Python [吐槽] conda 真是太难用了! 如何优雅地管理 Python 环境?
anaconda 的 ssl 证书文件这个问题,可以复现
步骤:
1. 拉一个 archlinux 的 docker 镜像
2. 安装 aur 里的[anaconda]( https://aur.archlinux.org/packages/anaconda)
3. 进入 conda 主环境`conda activate base`
4. `curl raw.githubusercontent.com `或在 python 中发起 raw.githubusercontent.com 的请求

这种问题,我不确定是 aur 包的问题还是 conda 的问题
2023-05-09 10:11:41 +08:00
回复了 s1mplezzc 创建的主题 问与答 如何清理电脑 C 盘
我以前也有这个问题,越清理越不爽,最后重装系统,彻底干净了,如果不介意重新安装软件的话,可以重装系统试试
正好最近在学 go ,可以学一下
不过我有一个疑问,为什么写入 csv 文件要插入 BOM?
我了解的是,BOM 可能会干扰一些软件处理文本流
另外 BOM 对 UTF-8 是可选的
2023-05-03 13:25:51 +08:00
回复了 iorilu 创建的主题 程序员 看了几天 rust, 总结了一句话关于生命周期
我觉得应该是类似一个有向树,就像软件的依赖一样,一个高级的对象引用了一些中级的对象,中级的对象引用了一些低级的对象,就像包管理器不能卸载一个被其他软件依赖的软件,要卸载软件,或者说要解除引用,应该先从最顶层开始

当然我并没有学过 rust ,只是个人理解
@liberty1900 6 ,写的很好
@ob 以前 Windows 半夜突然亮屏然后机械硬盘开始响,把我吓坏了以为是又有软件来偷我数据了,然后仔细排查啥都没发现,最后解释成 Windows 被唤醒然后 mount 上了机械硬盘所以机械硬盘有响声
想起了以前我带着电脑去上课,放书包里一节课,第二节课拿出来用,巨烫,电量掉了一半,可问题是,合盖这么久不该待机吗?而且 Windows 太复杂了我也不想深入系统去排查原因,现在主力换到 Linux 后,笔记本也安装了 Linux ,带电脑出去再也不担心从书包里拿出来的时候巨烫而且掉电了,而且正常使用的续航也比 Windows 高一些
1  2  3  4  5  6  7  8  9  10  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2293 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 07:22 · PVG 15:22 · LAX 00:22 · JFK 03:22
Developed with CodeLauncher
♥ Do have faith in what you're doing.