V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  iwtbauh  ›  全部回复第 8 页 / 共 68 页
回复总数  1341
1 ... 4  5  6  7  8  9  10  11  12  13 ... 68  
2019-08-02 11:33:26 +08:00
回复了 opentrade 创建的主题 Linux centos8 等得好辛苦
@msg7086 #66 emmm,你没看懂我的意思。我说的是这些软件不应该用发行版的版本,应该随项目构建,做好构建系统后基本上就是多写个 Makefile 的事...升级就是改下 Makefile 里的小版本号。和 docker 有什么关系,用不着 docker。也不用关这个软件内部的东西。
2019-08-02 08:48:54 +08:00
回复了 opentrade 创建的主题 Linux centos8 等得好辛苦
@msg7086 #56 还是你们开发水平太太太太菜。既然要依赖其他特别高层的软件,ruby、rails,你肯定要去用他们上游的版本,上游的长期支持版本(如果没有,只能自己内部维护一份或者联系第三方维护),那有拿发行版源里版本用的,发行版保证不了这些特别高层软件的兼容。既然拿发行版版本用了旧做好和发行版完全捆绑的准备吧。

然后源码树里放一个 third_party、package、之类的名字,然后构建系统直接全部构建了。(不是要你编译安装 ruby 这些软件,而是将你的软件使用你自己的 ruby,你自己编译的不安装到系统,统一打包进你的软件)

想升级这些依赖,基本上就是 bump 一个小版本号,然后重新构建就完事了。

RE: “官方 backport 包也就是把新 Release 的包在旧机器上重新编译一遍,本质上都是一套东西。”

这正好印证了我说的这句话:通常来讲,如果软件写的时候就符合规范,切换系统直接在新系统上编译一遍就是。Linux 内核从不来打破 API 和任何已有的标准、假定,发行版也几乎不打破 API 和假定。ABI 变化是可能的,因此只需要编译一遍。
2019-08-02 08:42:03 +08:00
回复了 opentrade 创建的主题 Linux centos8 等得好辛苦
@lolizeppelin #51 恩,bug 变多对普通用户没有影响。系统配置方式改变对普通用户没有影响。所以普通用户是啥用户啊。
2019-08-02 08:39:20 +08:00
回复了 takemeh 创建的主题 问与答 为什么拼夕夕做到这种规模了还不出 web 端
@binux #74

URI 是 Uniform Resource Identifier,是 web 的核心概念之一,起源于对 UNIX 文件系统命名空间的泛化,更多信息请参考: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier

不能用来吃。
2019-08-01 23:59:06 +08:00
回复了 opentrade 创建的主题 Linux centos8 等得好辛苦
@lolizeppelin #35

systemd 痛恨者在此。(但我不会激进到悬赏暗杀这种事情)

LSB service ( http://refspecs.linuxfoundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/tocsysinit.html )用着特别舒服,systemd 乱七八糟的服务完全无法接受。
不过呢,systemd 也是支持 LSB service 的,所以这一点上倒不特别痛恨 systemd
痛恨的是 systemd 各种吞吃系统其他服务,各种乱改乱封装内核的直接暴露给用户的接口,简直都要自己做 os 了,干脆叫 systemd os 得了呀。
而且 init 应该不依赖除了内核之外的任何其他软件,但是现实是 systemd 依赖了太多软件,甚至包括 dbus
哦对了,systemd 代码量现在可能快要赶上 Linux 的代码量了,这种代码行数膨胀软件必然是 bug 的温床,就像 ms office 一样。

----------------------------------

@msg7086 #38

“软件又不可能花大成本去升级平台到 16.04 (连 14.04 都不支持,要升级需要重写上万行代码,至少数十万美元开销,不如直接上新版了)”

通常来讲,如果软件写的时候就符合规范,切换系统直接在新系统上编译一遍就是。Linux 内核从不来打破 API 和任何已有的标准、假定,发行版也几乎不打破 API 和假定。ABI 变化是可能的,因此只需要编译一遍。要升级需要重写上万行代码那原先的代码得写的有多烂啊,我真想象不出来,你们该管管你们的开发 /外包了。

但是 Ubuntu 还是不可能 Ubuntu 的,我选择 Debian GNU/Linux

----------------------------------

@ryd994 #42

Debian 有官方 backports 包,可以在旧系统上安装新系统的非核心软件包。因此“ Debian 跨 release 装包”很少见吧。不知道 CentOS 有没有类似机制?
2019-08-01 22:52:20 +08:00
回复了 takemeh 创建的主题 问与答 为什么拼夕夕做到这种规模了还不出 web 端
说到底还是缺乏开放精神,总想着把用户从开放的互联网圈进自己的一个小生态里,然后收割韭菜。
2019-08-01 22:50:49 +08:00
回复了 takemeh 创建的主题 问与答 为什么拼夕夕做到这种规模了还不出 web 端
@GeruzoniAnsasu #57

基础知识堪忧。

web 端怎么分享到家人群让他们拼单:URI

村里过节买东西怎么搞一台电脑看商品:?

10 年前 1024*768 的破电脑怎么装 chrome 浏览 H5 的 web 页:可以选择 Firefox。不说电脑,凭良心说,5 年前的破手机能舒服用他们的 app ?

搞一堆没人能保证安全的 web 接口出来怎么防止羊毛党:??? web 接口不能保证安全,那 app 那边用的接口就能保证安全?更何况 app 那边用的接口也是基于 http 的吧,应该不会搞一套二进制协议出来。

做 web 界面,怎么复用现有的系统?是不是还要多花一倍的带宽资源去支撑 web 端的流量?花得起这个钱吗:???为什么 web 不能和 app 共用接口啊?很简单啊。多一倍带宽是怎么得出来的,如果说有了 web 端,之前一部分 app 用户转为使用 web,怎么就多用一倍带宽资源了,应该增加很少啊?如果说添加 web 端引进了很多新用户导致带宽使用翻倍,莫非这家公司还嫌用户多?
2019-07-31 23:52:05 +08:00
回复了 stevenhawking 创建的主题 分享发现 大家喜欢用 acme.sh 还是喜欢用 acmephp
acme.sh
没读过 acme.sh 代码,但是 shell 解析 json 用 jq 还是比较舒服的。
2019-07-31 23:47:49 +08:00
回复了 Asyncoil 创建的主题 程序员 windows 下如何使指定文件只被指定进程读写
windows ntfs acl 配置只允许某个用户访问
然后这个进程以特定一个用户运行
不过 windows 的 acl 十分复杂,而且多用户和会话管理做的并不好,在一个会话中运行不同用户的进程可能可能会引入一些回归。
2019-07-31 13:26:38 +08:00
回复了 faywong8888 创建的主题 分享发现 终于, Librem 5 快要发货了
价格太高+1
其实我根本不需要他们开发的 OS,能用 Debian 就行。缺的是能用 Debian 的手机硬件。
2019-07-31 12:52:13 +08:00
回复了 lihongjie0209 创建的主题 程序员 大家工作中对位操作的使用是什么态度
@jaskle #64

编译器:
gcc (Debian 8.3.0-6) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.

源码:
#include <stdio.h>

int main()
{
unsigned char a;
unsigned char b;

unsigned short c;
unsigned short d;

unsigned long e;

printf("%p, %p\n", &a, &b);
printf("%p, %p\n", &c, &d);
printf("%p\n", &e);

return 0;
}

构建目标:x86_64-pc-linux-gnu
构建指令:gcc -fno-pie -no-pie -Wall -O3 test.c

运行:
./a.out
0x7ffc780f27d2, 0x7ffc780f27d3
0x7ffc780f27d4, 0x7ffc780f27d6
0x7ffc780f27d8

uchar 没有对齐
ushort 按 2 字节对其
ulong 按 8 字节对其
2019-07-31 08:56:53 +08:00
回复了 lihongjie0209 创建的主题 程序员 大家工作中对位操作的使用是什么态度
@jaskle #49

“所占用空间(编译器强制 4 对齐)和计算时间(≥1 个周期)都没有任何优势。”

看#43:

“对于编译器,除非有必要,编译器尽可能不把 char 扩充。” 除非是没办法了,编译器是有多想不开才会把 char 对齐到 4 字节啊。

“它也不会用两个 CPU 周期。性能没有损失。而且,因为能更高效的利用 CPU 高速缓存,实际上性能会更好” 我反正没有见过哪个现代处理器是违反了这一条的,可能有很罕见的处理器上不一样吧。

不对齐访问异常很正常,比如 sun spark 就是这样的。但是不同的数据类型对齐要求不一样,char 没有对其要求,16 位的 short 要求按照 2 字节对齐,32 位的 int 要求 4 字节对齐,64 位的 long 要求 8 字节对齐。
2019-07-31 00:30:29 +08:00
回复了 lihongjie0209 创建的主题 程序员 大家工作中对位操作的使用是什么态度
@iwtbauh #45 额,不是 2 的倍数,2^n,这叫什么,是幂吗,数学渣渣哭了
2019-07-31 00:28:26 +08:00
回复了 lihongjie0209 创建的主题 程序员 大家工作中对位操作的使用是什么态度
乘 /除 2 的倍数时,我习惯写成移位

如果需要操作某种二进制协议 /文件格式时,我优先使用位域,但有时也会使用位运算

如果只是为了省内存,除非是极端情况(硬件条件极其恶劣或者运算强度需要压榨出机器最后一丝性能)拒绝使用。
2019-07-30 23:59:36 +08:00
回复了 lihongjie0209 创建的主题 程序员 大家工作中对位操作的使用是什么态度
@mason961125 #42

#16 “各种通信协议不用位运算麻烦死你”。

比如向总线发送 5 位的 a,10 位 b,15 位 c,6 自己校验和。这时候用位域的话就不用自己手写位运算填充了呀。
2019-07-30 23:50:51 +08:00
回复了 lihongjie0209 创建的主题 程序员 大家工作中对位操作的使用是什么态度
@jaskle #27

不对。对齐的目的是防止跨越对齐边界读。

比如你使用的指令是 32 位操作指令。你必须使内存地址为 32 位的倍数。否则可能出现 3 种情况:

1. 你的 CPU 支持非对齐访问(如 Intel 家族)。这时性能会降低。
2. 你的 CPU 不支持非对齐房屋,但编译器发现你在这么做,于是编译器将代码展开成两次读取,然后用位运算得出正确结果。性能降低。
3. 你的 CPU 不支持非对齐访问,同时因为你的写法的原因(考虑到使用 void *指针倒了一次编译器已经没法理解了),编译器不会采取额外操作,运行时,你的程序触发总线错误。

而 1 字节的 char 不会使用 32 位的读取指令读取,用的是 8 位操作的指令,没有位运算,它也不会用两个 CPU 周期。性能没有损失。而且,因为能更高效的利用 CPU 高速缓存,实际上性能会更好!对于编译器,除非有必要,编译器尽可能不把 char 扩充。
2019-07-30 23:40:45 +08:00
回复了 lihongjie0209 创建的主题 程序员 大家工作中对位操作的使用是什么态度
@mason961125 #16

为什么不用位域呢
2019-07-30 23:39:11 +08:00
回复了 lihongjie0209 创建的主题 程序员 大家工作中对位操作的使用是什么态度
@jaskle #3

那你可能需要看看<<迷失的 C 结构打包艺术>>: https://github.com/ludx/The-Lost-Art-of-C-Structure-Packing/blob/master/README.md
1 ... 4  5  6  7  8  9  10  11  12  13 ... 68  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   932 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms · UTC 22:55 · PVG 06:55 · LAX 14:55 · JFK 17:55
Developed with CodeLauncher
♥ Do have faith in what you're doing.