V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  codehz  ›  全部回复第 70 页 / 共 136 页
回复总数  2704
1 ... 66  67  68  69  70  71  72  73  74  75 ... 136  
2021-04-12 08:08:57 +08:00
回复了 jwenjian 创建的主题 GitHub 警惕仿冒 github 域名的钓鱼网站
@jwenjian 这个不是钓鱼,打开就一句话 You spelled it wrong.
2021-04-12 07:50:56 +08:00
回复了 jwenjian 创建的主题 GitHub 警惕仿冒 github 域名的钓鱼网站
之前打错进 guthib.com 这个(
既然都静态页了,那就别自己托管,丢 cdn 上,然后只要管好各种管理密码就好了。。。
linux 用户组管理整个都是用户态处理的,内核只认识数字,也不会去读取文件什么的,所以按照程序显示去学 linux 机制,是要遇坑的。。。
linux 内核的视角来看,就只能看到如下这些信息(暂时不考虑 euid 等复杂的机制)这些信息都是归属于进程的
uid gid groups
对应的就是用户 id,主组 id,补充组 id
为什么要区分主组和补充组呢,除了历史原因之外,就是为了在使用文件操作的时候有一个唯一的 gid 可用,毕竟文件只能有一个 gid
但是 id 程序,为了用户方便,就把主组也加入补充组的范畴内了,这样就能一眼看出用户加入了哪些组了
@AllenHua 这不就是我说的不遵循约定的后果吗,你的主要组已经是是 dkgroup 了,然后再加入 group 里,id 程序就会显示两个了。。。
id 程序的逻辑你可以理解成这样
主组(/etc/passwd 拿到的)的加入 groups 显示
补充组(/etc/group 拿到的)也加入 groups 显示,然后这里没有做去重处理,就显示出两个了。
你直接 su 登录那个账户,再用 id 命令,此时应该会走另一个逻辑,直接从当前进程获取 gid 和 groups,这样应该不至于显示出两个重复的 dkgroup 了(根据 https://man.archlinux.org/man/getgroups.2 文档,getgroups 可能或不能列出主组,所以应用程序要自己整理,id 程序应该会自己去除重复项目)
(补充组才需要在 /etc/group 里记录,这是约定)
你可以反过来思考下为什么要这样约定
假设不遵循约定会发生什么。。。
简单说就是数据库设计里避免冗余的方法,如果已经在 passwd 里决定了主组,如果还在 group 里重复记录,那么在出现不一致的时候就会产生歧义,到底按哪个记录为准,现在这样设计就很明确了,登录的时候程序只需要读取 passwd 改变程序的 UID gid,读取 group 扫描有对应用户的 group,通过 setgroups 系统调用设置补充组即可
2021-04-10 21:45:41 +08:00
回复了 yanyanlongxia 创建的主题 Google 反代 Google Analytics?
Sukka 试过了,但是也被干掉了,目前还在猫捉老鼠阶段(
2021-04-10 09:38:50 +08:00
回复了 0x47 创建的主题 程序员 小白问题: git 咋还原提交和提交者?
不是有那个 git blame someone else 的脚本吗,应该可以很方便的改写吧)
2021-04-09 20:44:11 +08:00
回复了 samohyes 创建的主题 问与答 几万条数据中找所有带某个字符串的记录怎么找比较快?
(如果只是匹配字符串的话,可以先分词,然后做词向量的方法处理。。。
但是考虑到这里似乎和地理位置相关,这个方法可能不太够用
2021-04-09 08:59:40 +08:00
回复了 tctc4869 创建的主题 C 一个函数方法里如何调用两个 c 文件里的相同标识符的函数?
原则上就会冲突的,如果不能改源码,那就 objcopy 的时候改掉。。。
所以你现在知道为什么 c++要做名字粉碎了吗
文件夹右键菜单不是有在集成终端中打开的选项吗
@dreamapplehappy 但是这并不是我的原意,再加一个风就是为了避免歧义(因为这本来是编译原理的一种优化方法的内部表示,而并非由用户直接使用的语法格式)
我那句话的重点是 livescript 的转换效果
b,c <- a 1 2
console.log b c
编译成
a(1, 2, function(b, c){
return console.log(b(c));
});
而你例子里的写法在 livescript 可以写成
b, c <-! a 1 "hello"
d!
do
防吞空格<~ d
d 1 "hello"
do
防吞空格<- d 1 "hello"
e, f <-! d 1 "hello"
g!
(所以玩 livescript 最后死掉了)
这不是 cps 风吗,以前某 livescript 都这样玩(
2021-04-06 23:07:42 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 用 go 实现 socket ,帮忙看看问题处在哪里
所以你发送的内容有没有包含制表符呢
2021-04-06 22:55:28 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 用 go 实现 socket ,帮忙看看问题处在哪里
time 的 add 默认单位是纳秒(
啊,原来除了设置界面会 crash,后台跑的 service worker 也会在操作的时候触发崩溃啊,devtools 直接断开连接(
2021-04-06 00:09:42 +08:00
回复了 haruhi 创建的主题 分享发现 令人绝望的 Android 后退、主页、多任务 Navbar 设计
android 多任务最大的问题是隐藏在背后的逻辑问题,这个永远不是交互设计所能解决的。。。
什么逻辑呢,就是 android 自带了一个返回堆栈,不同的 activity 正常切换时,应该可以维护这个栈,返回键能返回到上一个界面,回到启动器点开新 app,或者点击通知,应该会启动一个新的栈(暂且不提那些设计不良的,滥用 clear top,single top 的)
但是呢,一旦你使用任务切换功能,以上功能就会被完全破坏了,返回键很有可能是直接回到启动器,再也找不回原来的栈了。。。
更别说应用内部的导航也可以轻易破坏这个栈,使得返回键存在的意义被无限缩小,用户需要小心谨慎的使用手机,才可以在按下返回键的时候有充足的自信预测下一帧看到的画面是桌面还是前一个应用。。。(关键也没个提示告诉你返回键是回到桌面还是上个应用)
一个理想的多任务切换,应该把这个结构拓展成有向无环图,A 界面导航到 B 界面,然后返回 A 界面导航到 C 界面,再切换到 B 界面按下返回键时应该能回到 A 界面,再次切换 C 界面时,也应该能够回到 A 界面。
2021-04-04 20:37:47 +08:00
回复了 liuser666 创建的主题 分享发现 win10 成功进化为桌面环境
@BeautifulSoap wayland 的输入法架构比 x11 靠谱多了,直接用 text input 协议就能做远程输入的基础支持,合成器可以直接发送文本给应用,而不需要再开一个输入法程序,因此要做输入法穿透,应该是理论上可行的

https://gitlab.freedesktop.org/wayland/wayland-protocols/-/blob/master/unstable/text-input/text-input-unstable-v3.xml
2021-04-04 19:55:00 +08:00
回复了 liuser666 创建的主题 分享发现 win10 成功进化为桌面环境
@BeautifulSoap 官方的 Wayland 已经秘密上线,我之前发过
Bug 很多,比如 dpi 不是 100 就是一堆锯齿
窗口对话框会被窗口本身盖住使得操作无响应
GL 加速的程序帧率只有 40
1 ... 66  67  68  69  70  71  72  73  74  75 ... 136  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5787 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 77ms · UTC 06:34 · PVG 14:34 · LAX 22:34 · JFK 01:34
Developed with CodeLauncher
♥ Do have faith in what you're doing.