九九乘法表

九九乘法表
题目 输出 9*9 乘法口诀表。
1
程序分析 分行与列考虑,共9行9列,i控制行,j控制列
1
for i in range(1,10):
    for j in range(1,i+1):
        print(‘%d*%d=%2ld ‘%(i,j,i*j),end=”)
    print()

求助方案:项目的运行软件的配置文件如何科学管理?

之前的方法是 mv nginx.conf nginx.conf.bak20210803 但是这样的话不易于追溯、回滚,也容易丢失。 现在的想法是,每个 ip 创建一个文件夹,文件夹下的路径跟服务器的路径一致,然后统一收集放到 git 下。 如 gitfolder/10.10.10.100/etc/nginx/nginx.conf gitfolder/10.10.10.100/etc/xxx.conf gitfolder/10.10.10.101/etc/nginx/nginx.conf gitfolder/10.10.10.101/etc/xxx.conf … 更新再通过脚本更新。

你们的服务器是怎么管理的,有没有更好的方案?比如利用某软件现有功能管理( ansible ?)?

gitfolder 文件夹 路径 git9 条回复 • 2021-08-05 16:24:16 +08:00
IgniteWhite 1
IgniteWhite 7 天前
在用一个简单却强大的工具 dotbot https://github.com/anishathalye/dotbot

能使用各种按条件的 hook,实现不同机子的 dotfile 管理。dotbot 作为 submodule,整个 dotfiles 用 git 维护。点进我 github 的 dotfiles 是个例子,虽然是个人配置文件但是也针对不同机子和服务器的。
huangzxx 2
huangzxx 7 天前
我们用 ansible-playbook
asdasdqqq 3
asdasdqqq 7 天前 via iPhone
@IgniteWhite get 新名词 dotfiles?
asdasdqqq 4
asdasdqqq 7 天前 via iPhone
@huangzxx 恩 参考经验 谢谢
sadfQED2 5
sadfQED2 7 天前 via Android
我们是把配置文件以及 dockerfile 都直接放到项目路径下面
huangmingyou 6
huangmingyou 7 天前
ansible playbook , 并且通过 git 进行版本管理。
libook 7
libook 7 天前
可以考虑用“配置中心”,有一些专门的软件和方案可以做这个。

如果跑在 VPS 里,并经常弹性增加和释放服务器的话,很多云厂商都有 VPC 的镜像功能,改配置可以打新镜像,然后用新镜像增加新的服务器,并释放旧的服务器,就完成了配置的更新,当然这个要求配置的修改可以无缝迁移。

如果你用 k8s 的话,可以用 k8s 的 secrets 方案 https://kubernetes.io/docs/concepts/configuration/secret/
asdasdqqq 8
asdasdqqq 6 天前
@huangzxx
@huangmingyou
两位大佬可否发 yml 文件出来学习下
huangmingyou 9
huangmingyou 5 天前

– name: backup config
shell: tar czpf /etc/nginx$(date +%Y%m%d%H%M).tgz /etc/nginx
– name: sync nginx config
synchronize:
src: “./roles/nginx-orig-gallery/files/{{ ansible_ssh_host }}/”
dest: /etc/nginx/
archive: yes
delete: false
recursive: yes
owner: no
group: no

就是简单的做一个目录 rsync 拷贝。目录按 ip 地址或者域名作为目录名,放到 files 目录下。

两次从 Linux 逃离到 os x 又逃回来的感受

逃离到 os x 的主要原因是觉得苹果笔记本的屏幕细腻,次要原因是可以方便使用企业微信。

硬件方面:
mac book pro 的屏幕没的说,但是屏幕过于光滑反光很难受。键盘的按键反馈还是很清晰,就是键程过短,有点难受。再有就是没有实体的 F1-F2,ESC,对于 vim 用户来说,过于难受。后来把大小写切换映射成了 esc,但是又和 tab 键容易弄混。反正就是很别扭。

软件方面:
一些常用命令行工具的版本和 linux 系统不一样,使用上有点不习惯,例如 cp 命令的参数必须紧跟在 cp 命令后面。而不能放到一行的后面。

终端软件用的系统默认的,也用过 terminal2 啥的,大概是这么一个名字。 但是因为要使用 tmux,没有 alt 键做快捷键,也是很麻烦。

说到终端,linux 下,选中内容,然后鼠标中键或者 Ctrl+ins 键就能粘贴的功能,在 os x 上没有,只有终端勉强支持。

窗口管理虽然可以方便的用触控版切换,但是步骤繁琐,没有在 linux 上直接用功能键切换窗口方便,例如按 F1 切换到终端,F2 切换到浏览器。在 os x 上当然也可以定义快捷键,但是正如前面说的。没有实体 F 功能键,只能绑定到奇怪的组合上面。终归还是繁琐了一点。

加上 os x 的窗口切换,即便关闭了动画。窗口直接的切换还是有点迟滞的感觉。

以上就是使用 os x 比较不爽的点,所以还是回到了更低分辨率但是更流畅的 linux.
第 1 条附言 · 1 天前
苹果硬件和系统,还是要看使用场景。
视频编辑,文字编辑,程序开发还是很合适的。
Linux 切换 窗口 esc84 条回复 • 2021-08-11 13:57:36 +08:00
xarthur 2
xarthur 1 天前 via iPhone
1. 没有实体版的 ESC 确实难受,但是*新版已经有了,至于没头 F1-F12,同样作为 Vim 用户没感到什么不变
2. 那个终端模拟器叫做 iTerm2,可以用 alt 键做映射
3. 窗口管理确实很死板,但是也有各种软件可以帮你实现 Tiling Windows Manager
HannibaI 3
HannibaI 1 天前
> 没有实体的 F1-F2,ESC
HannibaI 4
HannibaI 1 天前
可以把 esc 用 ctrl + [替换
F1-F2 没辙,只能用其他快捷键代替了
wccc 5
wccc 1 天前
fuck 企业微型
linux wine 上微盘同步爆炸
huangmingyou 6
huangmingyou 1 天前 ❤️ 1
linux 下目前是用 virtualbox 跑 win7 运行企业微信。 网页版本普通微信。
Kr98 7
Kr98 1 天前 via Android
linux 桌面虽然丑,但用起来舒服。相反苹果家的东西比较中看不中用。
ALVC666 8
ALVC666 1 天前
hhkb !
Puteulanus 9
Puteulanus 1 天前
iTerm2 我记得选中东西按 command + v 可以直接粘贴的

命令行工具需要自己配一下
https://juejin.cn/post/6844903545683050509
ipwx 10
ipwx 1 天前
终端复制粘贴:Cmd+C, Cmd+V

liuxu 11
liuxu 1 天前 ❤️ 31
别这个逃那个逃,搞得好像一个操作系统在迫害你们一样。。
huangmingyou 12
huangmingyou 1 天前
@ALVC666 对,忘记说了,我买了蓝牙键盘来搭配使用,但是,用键盘,不方便用触摸板,那么就的用难用的妙控鼠标。或者用其他鼠标,其他鼠标在 os x 上的使用相比大家都知道。
如果不用鼠标,那还的花 1000 左右买一个蓝牙触摸板。 心累。
snuglove 13
snuglove 1 天前
@liuxu 哈哈哈,说的太对了
feiandxs 14
feiandxs 1 天前 ❤️ 5
讲实话,到目前为止确实没啥完美的操作系统,都一堆坑。

非要综合比一下,除去各自平台*大的亮点后,*中庸*可用的居然是 Windows 。。。
huangmingyou 15
huangmingyou 1 天前
@feiandxs windows 现在主要用来运行 steam. 主要办公用 linux,出门带苹果系统(方便用企业微信)
cskeleton 16
cskeleton 1 天前
歪个题,macOS 已经要到 12 了,离开 X 已经很久了
ruanimal 17
ruanimal 1 天前
一些常用命令行工具的版本和 linux 系统不一样,使用上有点不习惯,例如 cp 命令的参数必须紧跟在 cp 命令后面。而不能放到一行的后面。
——
brew info coreutils 解决问题

终端用 iterm2 解决问题
ruanimal 18
ruanimal 1 天前
@ruanimal

brew install coreutils
geekvcn 19
geekvcn 1 天前 ❤️ 3
Linux *牛逼的地方是打游戏加了 DXVK 转换层*大多数老游戏都能吊打 windows,目前基本所有游戏都能畅玩,不能玩的游戏基本都是腾讯加了 TP 之类的游戏,大多数都是垃圾游戏无所谓。很多现代游戏比如魔兽世界 Linux DXVK 跑起来竟然比 Windows 原生 DX12 快,不过其他游戏大多数还是 Windows 高那么 10 帧左右。

Linux 服务器就不用多说了,这几年桌面端真的是肉眼可见的提升,单纯开发方面*对是首选,其他很多方面也开始逐步超越 BUG10 了,未来可期
20015jjw 20
20015jjw 1 天前 via Android
Dual role cap lock 按一下 esc 按住 control
f 键 spacefn
窗口管理 yabai
terminal 什么上面都说了
看你需要什么了
Linux 没有 sidecar 直接 pass 了
ilaipi 21
ilaipi 1 天前
我用 vim 开发几年了,很少用 F1-F12,偶尔粘贴代码的时候会用 F5
belin520 22
belin520 1 天前 via iPhone
用了 7 年 macos 办公,高度依赖一些软件
后来换工作配的 windows 台式机,岗位问题,不想自带设备,花了一个多月习惯了。(听说配 windows 的台式机公司招不到人?)
libook 23
libook 1 天前
MacOS 下的很多指令是 BSD 的,Linux 下通常是 GNU 的,参数和功能会有差异,可以在 MacOS 下安装 GNU 生态的指令:
brew install coreutils findutils gnu-tar gnu-sed gawk gnutls gnu-indent gnu-getopt grep
你在 brew 里搜 gnu 开头的包,还有很多其他的。
huangmingyou 24
huangmingyou 1 天前
@ilaipi 写的时候混到一起了,vim 我也不用 F1-F2, F1-F2 是切换窗口或者执行快捷命令。 被文明 3 游戏给培养出来的习惯。
UnitTest 25
UnitTest 1 天前
@geekvcn 我之前试了一下, 运行游戏没问题, 有问题的是我的鼠标… 罗技没有 linux 驱动, 鼠标非常难用, 直接放弃游戏了.

七八年前从 linux 转向了 mac, *近尝试重新使用 ubuntu, 结果还是转回了 mac+win.

唯一原因就是微信\钉钉无法日常沟通. 和七八年前的原因一样, 这些年国内互联网公司没啥变化.
matianhe 26
matianhe 1 天前
Linux 的话 建议试试 Arch Linux , Mac 的话建议配个 HHKB.
huangmingyou 27
huangmingyou 1 天前
@matianhe 键盘的问题,配过,但是还要配一个蓝牙触摸板。没舍得花钱。debian 用来差不多 17 年,习惯了 debian 的稳定,arch 的滚动升级对我来说意义不大,我常用的工具是 chrome, 一个终端。
工作用系统我还是喜欢稳定。折腾新版本,一般用 virtualbox 或者 docker 。
pisc 28
pisc 1 天前
> 所以还是回到了更低分辨率但是更流畅的 linux

为什么 Linux 要低分辨率,拿和 macbook 一样预算搞个高分辨率( 2K 以上)的 Linux 笔记本然后开 200%缩放以得到更细腻的显示效果不快乐吗?
sampeng 29
sampeng 1 天前
硬件方面:亲,你接个外接键盘+32 寸显示器再来看看
软件方面:
命令行工具不一样是因为 macos 是 bsd 系统,并不是 linux 系统,不是故意的,妈就不一样。不过可以装 gnu 系的
终端必然用 iterm2+zsh 。开箱即用, 也不用配什么东西。比如你说的选中复制自带。
再说切换。你不装 BetterTouchTool 怪谁呢。。。没有 F 功能键没错。但是你 windows/linux 有 mac 键么。。*后才发现切换*好用的还是 alfred 。没有之一。

当然,当初来到 macos 就是因为 QQ+office 。不可能去用 linux 的。工作太费事了,没必要自己折腾自己。除非是独狼,可以 linux 搞本地开发。为什么要让工作这件事变得那么难呢。
huangmingyou 30
huangmingyou 1 天前
@pisc 公司的电脑,家里是 32 的 4k dell 装的 windows 打游戏。
huangmingyou 31
huangmingyou 1 天前
@sampeng bash 习惯了,另外工作是运维,管理的机器是 bash,所以没有切换到 zsh 的动力。
我感觉*大的困扰还是没有实体的 esc,f1-f12 。 也许新版本的 mac book pro 能用习惯。
agagega 32
agagega 1 天前 via iPhone
Touch Bar 也许*后会被放弃吧
sampeng 33
sampeng 1 天前
@huangmingyou 我工作也是运维啊。。这又不冲突。。。为了一致而一致么。。写 sh 也是 bash 运行昂。
huangmingyou 34
huangmingyou 1 天前
@agagega 新版的有实体 esc,但是 sidebar 对于视频编辑是很友好的。
huangmingyou 35
huangmingyou 1 天前
@sampeng 主要是 bash 没有什么不好的地方。
lancelock 36
lancelock 1 天前
普通鼠标在 macos 上到底有什么问题?
huangmingyou 37
huangmingyou 1 天前
@lancelock 没有妙控鼠标顺滑。
akyle 38
akyle 1 天前
Gnome 40 桌面还可以
akyle 39
akyle 1 天前
需要的话就用 Windows 虚拟机
ysn2233 40
ysn2233 1 天前
linux 办公就是缺一些 im 工具比较烦,所以我还是比较喜欢 windows 台式机+wsl2+图形转发比较舒服
melkor 41
melkor 1 天前 via iPhone
iterm2 可以定制功能区,比如强制显示 F1 到 F12
Rand01ph 42
Rand01ph 1 天前
各有所长,不然就是垄断了。
klarkzh 43
klarkzh 1 天前 via iPhone
@huangmingyou #37 mos
UnitTest 44
UnitTest 1 天前
@huangmingyou 罗技鼠标+Logitech option, 在 mac 上非常丝滑好用, 前提是用 usb 而不是蓝牙, 蓝牙的延迟无法忍受, 蓝牙只能用苹果自己的触摸板.苹果的鼠标实在是太小了.
wangbenjun5 45
wangbenjun5 1 天前 via Android
企业微信可以用 deepin 版本的,我不用 Mac 是觉得 Mac 的很多操作习惯和 Linux,Windows 系反过来的,适应成本很高
yangxin0 46
yangxin0 1 天前 ❤️ 2
何必这么纠结,我都是 Ubuntu 用来写代码,MacOS 用来移动办公,Windows 用来游戏
yangxin0 47
yangxin0 1 天前
专业设备干专业的事儿,我在 Ubuntu 下面写代码有七八年了,很舒服。界面方面你觉得公开发行版的比较丑可以选择第三方的自己定制,我用的 awesomeWM 。
huangmingyou 48
huangmingyou 1 天前
@yangxin0 我现在也是这样,之前是想把主要工作场景切换到苹果试试。
huangmingyou 49
huangmingyou 1 天前
@yangxin0 一直用的 fvwm,之前是 ion2 和 window maker
dingyx99 50
dingyx99 1 天前
@belin520 微软:?
charlie21 51
charlie21 1 天前
@liuxu #11 一些遭到 win 和 linux 迫害的人逃到了 mac 的温暖怀抱的时候,你在哪
IgniteWhite 52
IgniteWhite 1 天前 via iPhone
iterm2 不如 kitty
SIGEV13 53
SIGEV13 23 小时 47 分钟前
楼主说的软件问题确实挺烦人,还得安装一套 GNU 工具链才能无缝迁移脚本。
还有那个风扇,本来性能就不高,噪音还跟直升机一样 ?
jhsea3do 54
jhsea3do 23 小时 24 分钟前
mac 我 power 时代就开始用了,*近 arm 芯我又试了一下。还是喜欢 gnome, 现在 mbp 已经被我扔抽屉 2 个月了。

毛 20 年了, OSX 到现在还是要吐嘈一些问题:

1. command 键很垃圾, 有时要用 ctrl, 有时要用 command, 脑子要转很快
2. 鼠标反向滚动,这个好像可以改设置
3. backspace 删除 和 左箭头移动 巨慢, 这个好像也可以改键速, 但是我改了没多久就被复原了
4. 外置移动盘,只能用 ntfs 兼容, 不能用 xfs
5. 目录下 一堆 隐藏的 垃圾文件

先列这些
yuancoder 55
yuancoder 23 小时 22 分钟前
买个支架,外接键盘鼠标,对你的颈椎也有好处。
触摸板好用,鼠标更好用。
软件问题就要自己适应了,又不是什么非用不可的软件。
agagega 56
agagega 22 小时 33 分钟前
@jhsea3do
command 和 control 区分得很好啊。GUI 相关的用 Command,命令行里面用 Control,然后系统文本框支持 Emacs 风格的快捷键( C-a 到开头,C-e 到结尾等)。每次用 Windows 的时候都想要是 Win 键作用也这么大就好了。
JerningChan 57
JerningChan 22 小时 20 分钟前
@ALVC666 赞,我觉得这个就是 vimer 的*终归宿,哈哈
而且我现在是把 mbp 的键盘,也尽量修改成 hhkb 的模样。。。
ALVC666 58
ALVC666 22 小时 4 分钟前
@JerningChan 已经回不去了
我是 vim+emacs 的 evil 党
ALVC666 59
ALVC666 22 小时 2 分钟前
@agagega 终于有人说到这个了
我也想吐槽这个 windows 的 win 键只能给全局系统用的
不开放给软件使用
所以很多键盘都开始锁 win 或者去掉 win 键
macOS 修饰键就比 win 多一个了
我觉得使用起来还是 macOS 的趁手
Lemeng 60
Lemeng 21 小时 58 分钟前
习惯就好了,人生不能太纠结
rainysia 61
rainysia 21 小时 19 分钟前
主要是喜欢用 Workspace, 这个 os x 实现不了. 快捷键切换多个 Workspace 爽得很. 每个 Workspace 独立互相不打扰.

几个流氓软件 比如 微信, QQ, dingding, 用的 虚拟机跑雨林木风 ghost XP, 丢到一个 Workspace, XP 设置 内存占用 1.5G. 除非有声音, 不然不要打扰我主 Workspace.
zoharSoul 62
zoharSoul 21 小时 7 分钟前
cmd+v 比 ctrl + insert 方便吧?
hbin 63
hbin 20 小时 53 分钟前
窗口管理 试试 Manico 这个软件
infun 64
infun 20 小时 34 分钟前 via Android
没人用 Chromebook 吗?
xuanbg 65
xuanbg 20 小时 24 分钟前
@rainysia 没用过 Workspace,和 Mac 的左右三指扫切换桌面有多大区别?
xiaket 66
xiaket 18 小时 52 分钟前
@jhsea3do :

1. command 键很垃圾, 有时要用 ctrl, 有时要用 command, 脑子要转很快

前面有人提到了, 不赘述.

2. 鼠标反向滚动,这个好像可以改设置

是很容易配置, 习惯了也好

3. backspace 删除 和 左箭头移动 巨慢, 这个好像也可以改键速, 但是我改了没多久就被复原了

defaults write -g InitialKeyRepeat -int 10
defaults write -g KeyRepeat -int 1

4. 外置移动盘,只能用 ntfs 兼容, 不能用 xfs

这个是不是要求太高了? 或者你高兴的话把外置的移动盘挂到虚拟机下面去, 爱读什么系统读什么系统?

5. 目录下 一堆 隐藏的 垃圾文件

嗯, 终于有一个比较好的问题了, 我的 ls 是自己改过的, 在~里面屏蔽掉了那一群烦人的目录: https://github.com/xiaket/etc/blob/master/bin/myls

在我看来, 所有你说的问题在我看来都算比较容易解决的问题.
roundgis 67
roundgis 18 小时 39 分钟前 via Android
逃離這個詞讓我覺得操作系統禁錮了某個人

這個人好不容易逃出來了
huangmingyou 68
huangmingyou 17 小时 30 分钟前
@zoharSoul 主要是不能鼠标中键粘贴
huangmingyou 69
huangmingyou 17 小时 27 分钟前
@roundgis 何必纠结一个用词,我现在 3 个系统都在用。windows 游戏,linux 工作,mac os 带着出门。y1s1, 移动办公的时候,macos 可以直接跑企业微信,连 * 也方便。反而用 gnome+virtualbox 的时候不方便。所以出门就 macos 系统。
JerningChan 70
JerningChan 16 小时 40 分钟前
@ALVC666 哦?其实我觉得吧,即便,win 系统,也是应该用 hhkb 配列更舒服啊。。。
因为 hhkb 配列,主要是优化了 control 、esc 、~、和 delete 这几个按键的位置啊
不过对于你说的 F 键,我用得比较少,除了浏览器开个开发者模式,因为 hhkb 的 F 键区是要 Fn 组合到 0-9 那些数字键。。。
JerningChan 71
JerningChan 16 小时 39 分钟前
@huangmingyou 话说,我觉得目前好用的 ubuntu 系列桌面要数 kde 了吧?
感觉 kde 在使用上和高分屏的适配上,都要比 gnome 好几个档次啊
dawn009 72
dawn009 16 小时 27 分钟前
可以理解为喜欢 macbook 的硬件但不喜欢 macOS 吗?试试在 macbook pro 上安装 Linux 如何?
secondwtq 73
secondwtq 13 小时 31 分钟前
键盘问题属于硬件问题,没这个键就没办法。楼主要是用 Maya 之类的软件得可劲儿折腾一阵儿,有些软件默认键位依赖于 function keys,没记错的话一些 IDE 的调试运行之类的也要,甚至 Blender 把小键盘都给你占了。

我倒是很喜欢组合键,两点原因:不能 assume 自己一直在使用全键盘,实际上我*喜欢并且一直使用 60% 键盘,占空间小,便携,并且笔记本键盘大多都不全,F keys 又经常和 media keys 混在一块,乱七八糟的,只有核心区比较稳定。另外就是常用的操作是无限多的(虽然直观感觉可能不多,但是每种场景有特定的常用操作集,如果使用场景比较杂,则可以近似认为无限多),而键盘键位的扩展是有限的,指望单键 cover 所有常用操作不 scalable,像音乐一样玩组合更合适。

组合键的一大问题是不好记,不过这是使用场景数量变多之后必然的事情。所以我理想的键盘形态就是每个键上面有个小 LCD,不仅可以提供背光,还可以显示这个键在现在这个程序中是做什么的,同时也可以指示其他的状态(相当于 Caps Lock 指示灯“民主化”),比如在 vim 中按 q 之后会亮起来表示正在录制宏,按 “ 之后会显示当前用得哪个 register …
当然这货现在是没有的(我记得国外有人做过一个巨贵的现在好像也没得卖了),联想出了个笔记本用 E Ink 代替键盘,相当于整个键盘都是 Touch Bar,有点意思了。

> 说到终端,linux 下,选中内容,然后鼠标中键或者 Ctrl+ins 键就能粘贴的功能,在 os x 上没有,只有终端勉强支持。

这个则是软件的通病,虽然我是 Linux 用户,但是我一直想把 OS X 的 Cmd+X/C/V 的剪贴板操作快捷键移植到 Linux 来替代原来的 Control (主要是终端的剪贴板快捷键和其他软件不一致),后来发现彻底改掉工作量有点大——不仅要改配置,可能还要改一堆库,可能还要自己编译一份 Chromium … 而增加一种执行操作的方式,无论哪个系统可能就一个插件就能搞定。但是共同的问题是,用户想要和既成惯例对着干是一件很难的事情,哪怕是 Linux 这种比较“开放”的平台,也只是有限的好一点而已。

虽然说 Linux 更”开放“,但是刚才首页看到这个主题: https://v2ex.com/t/794746,我发现虽然我一直觉得专有软件不好 customize (尤其 Apple ),但是专有软件有专有软件自己 customization 的方法,而且 Apple 做得还不错——那主题楼主老兄要的应该就是 Windows 版的 Shortcuts,这东西在其他平台居然就难找竞品。但是 Apple 从 HyperCard,AppleScript 到 Automator 和 Shortcuts 真就在做(嘛,虽然 Shortcuts *开始是第三方的,但是给收了接着做说明人家至少有这想法,而且就 iOS 的情况,官方背书应该还是蛮重要的)。
menghan 74
menghan 13 小时 27 分钟前
支持楼主。我已经使用 Linux 作工作 and 生活桌面四五年了。
从 10 年之前开始用 macbook air,到四五年前换到 Linux,我正是因为类似的原因。

除了玩游戏(玩游戏为什么要找 macbook ),我现在用 Linux 没遇到什么真正的不便。
感谢 web/移动 时代,很多不相关的事情可以交给手机,那么一个生产力工具还是 Linux 来得方便,对于能使用 Linux 的人来说。
huangmingyou 75
huangmingyou 8 小时 12 分钟前
@JerningChan 我看很多人都说 kde 好用,但是用了几次,不太喜欢美术风格。精装过度的感觉。
huangmingyou 76
huangmingyou 8 小时 11 分钟前
@dawn009 想过,但是看了文档,似乎休眠,网络都有问题,另外硬件上的 esc, f1-f2 也是问题。其实 macos 还是用的习惯。只是用起来没 linux 顺手。
lancelock 77
lancelock 6 小时 2 分钟前
@huangmingyou 我想问的是普通鼠标在 macos 上和 linux 上差在哪,你跟妙控鼠标比锤子?
rayw0ng 78
rayw0ng 5 小时 55 分钟前
等 WSLg 出来就换 Windows,两个系统我都要!要是能配上 Mac 的硬件就完美了。
mikeven 79
mikeven 5 小时 55 分钟前
@geekvcn #19 一激动去搜了搜,发现普遍是 DXVK 低 10 帧。。。
huangmingyou 80
huangmingyou 5 小时 52 分钟前
@lancelock 跳帧,移动速度不均匀,也许是我没调整好,或者鼠标太差。
tt67wq 81
tt67wq 5 小时 18 分钟前
在 mac 上打个 top,发现我居然看不懂。。。
dabinDev 82
dabinDev 5 小时 13 分钟前 ❤️ 1
普通人:我重装了个系统。
v2er:我逃离了 xx 系统
cnleon 83
cnleon 1 小时 51 分钟前
windows + wsl1 很完美感觉
LotusChuan 84
LotusChuan 1 小时 39 分钟前
硬件方面的问题现在挺不错了,可以试试*新版的 MacBook,可以预见未来也会更好。
软件方面还是使用问题吧,你说的基本都有 workaround,比如 tmux 我基本用`作 leader key 所以也用不到 meta 键,苹果继承的是 emacs,所以 meta 键主要的使用场景还是 emacs 那套;再比如说选中拷贝粘贴那个,我平时都用 tmux,在~/.tmux.conf 里面配一下 mouse on 以及下一下 tmux-yank 能解决你所说的问题,而且所有 os 都是一样的。
主要就是个人习惯问题,真想转移到 macOS 的话可以在网上找找 workaround 或者问问同事朋友也行,办法还是有的。

微软拟禁用JIT提高Edge浏览器安全性

微软近期宣布,将在其Edge Web浏览器上进行一项实验,有意禁用一项重要的性能和优化功能,以便在Edge Super Duper安全模式下实现更高级的安全升级。

微软Edge漏洞研究负责人Johnathan Norman表示,新的Super Duper安全模式背后的想法是在V8(Edge浏览器的JavaScript引擎)中禁用对JIT(Just-In-Time,即时)的支持。

JIT虽然不为大多数终*用户所熟知,但在当今所有的Web浏览器中,它都扮演着至关重要的角色。JIT的工作原理是运用JavaScript并提前将其编译为机器代码。如果浏览器需要这些代码,它将获得显著的速度提升。否则,代码将被丢弃。

然而,V8中的JIT支持非常复杂。Norman表示,2019年与JIT相关的安全问题占所有V8漏洞的45%。此外,与JIT相关的bug造成了超过一半的“野生”Chrome漏洞。

Edge团队*近进行的测试表明,尽管JIT在20世纪初中期在加速浏览器方面发挥了关键作用,但它已不再是Edge性能的关键功能。

%title插图%num

图片来自微软

被这些发现所鼓舞,Norman称Edge团队现在正在研究Super Duper安全模式,这是一种边缘配置,在这种配置中,他们禁用JIT并启用其他三种安全功能,如ControlflowEnforcement Technology(CET)和Arbitral CodeGuard(ACG)——这两种功能通常会与V8的JIT实现发生冲突。

但是正如Norman所解释的,Super Duper安全模式目前还只是一项实验,还没有正式计划将其发送给用户。

%title插图%num

来自于Norman的推文

虽然Super Duper安全模式还没有一个确切的未来,但该功能已经上线并准备测试。Edge Canary、Dev和Beta的用户可以转到以下地址并在其浏览器中启用它:

edge://flags/#edge-enable-super-duper-secure-mode

%title插图%num图片来自微软

原文链接:

https://therecord.media/microsoft-announces-new-super-duper-secure-mode-for-edge/

斯坦福 AIMI 打造世界更大的开源医学数据集

%title插图%num

目前,斯坦福大学的医学和成像人工智能中心(AIMI)正在大幅扩展已经是世界上*大的人工智能注释医学成像数据集免费存储库。

对于解释医学图像,人工智能已经成为一个越来越普遍的工具,从乳房X光片和脑部扫描中检测肿瘤,到分析人体心脏跳动的超声视频,人工智能几乎无所不能。

现在,许多人工智能驱动设备的精确度可与人类医生媲美。除了简单地发现疑似肿瘤或骨折外,一些系统还能预测患者的病程并提出建议。

但是人工智能工具必须在昂贵的图像数据集上进行训练,这些图像数据集需要经过人类专家的精心注释。因为这些数据集大概需要花费数百万美元来获取或创建,所以大部分研究都是由大公司资助的,而这些大公司不一定愿意与公众共享它们的数据。

“无论是外科医生还是产科医生,我们都必须承认,推动这项技术的是数据,我们想要强调,医疗数据是一种公共产品的理念,并且应该向世界各地的研究人员开放。”AIMI的联合主任、斯坦福大学放射学助理教授Matthew Lungren说。

两年前推出的AIMI已经获得了超过100万张图像的注释数据集,其中许多来自斯坦福大学医学中心。研究人员可以免费下载这些数据集,并使用它们来优化人工智能模型。

现在,AIMI已经与微软的AI for Health计划合作,推出了一个更加自动化、可访问和可视的新平台。它将能够托管和组织来自世界各地机构的大量图像。在这个策划中还预备创建一个开放的全局存储库。该平台还将提供一个共享研究的中心,以便改进不同模型和识别人口群体之间的差异。该平台甚至具备云计算能力,因此研究人员不必担心构建本地资源密集型临床机器学习基础设施。

%title插图%num

建立研究生态系统

这个想法是为人工智能医学研究创造一个完整的生态系统,而不仅仅是为了分析图像。有了正确的数据集,人们还将能够探索像素数据之外的重要临床用例,包括其他相关的多模态数据。

该中心已经有9个数据集,其中包含超过100万张图像,Lungren预测这一数字将在明年翻一番。新平台将发布两个新数据集。

他认为“这个平台将拥有世界上*大的、内容*丰富的人工智能医疗数据集”。

随着时间的推移,该平台还将提供标准化的机器学习工具和预先训练的模型,利用开源数据和通用架构(可以说是盒装AI软件)来推动众包AI研究。

%title插图%num

扩大关注领域

通过免费提供数据,研究人员将能够探索小众领域,例如影响特定社区的医疗问题,而大公司可能会忽视这些领域。

这些不同的数据集也将使研究人员更容易发现数据或算法中隐藏的偏差。研究表明,某些人工智能模型只针对其特定受众群,而对其他人群就没有那么准确了,这主要是因为它们是根据某一地点患者的数据进行训练的。而拥有来自许多不同社区的数据集将使研究人员更容易发现这些问题。

Lungren认为:“我们喜欢公司的这些工作,但事实上,分享信息的机会是不对称的,我们很反感这一点。如果他们收集数据,然后将其锁定,他们将是唯一能够创新的人,这将排除世界各地计算机科学家和临床医生的重要贡献。这不是我们想要的结果。”

GitHub一夜爆火的阿里高并发技术小册究竟有什么魅力?

关于技术人如何成长的问题,一直以来都备受关注,因为程序员职业发展很快,即使是相同起点的人,经过几年的工作或学习,会迅速拉开*大的差距,所以技术人保持学习,提升自己,才能够扛得住不断上赶的后浪,也不至于被“拍死”在沙滩上。

近日,经过一朋友的透露,Alibaba也首发了一份限量的“Java成长手册”,里面记载的知识点非常齐全,看完之后才知道,差距真的不止一点点!

手册主要是将Java程序员按照年限来进行分层,清晰的标注着Java程序员应该按照怎样的路线来提升自己,需要去学习哪些技术点。

%title插图%num

0-1年入门

  • Java基础复盘
    (面向对象+Java的超类+Java的反射机制+异常处理+集合+泛型+基础IO操作+多线程+网络编程+JDK新特性)
  • Web编程初探
    (Servlet+MySQL数据库+商品管理系统实战)
  • SSM从入门到精通
    (Spring+SpringMVC+Mybatis+商品管理系统实战-SSM版)
  • SpringBoot快速上手
    (SpringBoot+基于SpringBoot的商品管理系统实战)
  • 零距离互联网项目实战
    (Linux+Redis+双十一秒杀实战系统)

%title插图%num

%title插图%num

1-3年高工

  • 并发编程进阶
    (并发工具类实战+CAS+显示锁解析+线程池内部机制+性能优化)
  • JVM深度剖析
    (理解运行时数据区+堆外内存解读+JDK+内存泄漏问题排查+Arthas+GC算法和垃圾回收器+类加载机制等)
  • MySQL深度进阶
  • 深入Tomcat底层
    (线程模型+性能调优)

%title插图%num

%title插图%num

3-5年资深

  • 数据库
    (调优+事务+锁+集群+主从+缓存等)
  • Linux
    (命令+生产环境+日志等)
  • 中间件&分布式
    (dubbo+MQ/kafka、ElasticSearch、SpringCloud等组件)

%title插图%num

%title插图%num

5-7年架构

  • 开源框架
    (Spring5源码+SpringMVC源码+Mybatis源码)
  • 分布式架构
    (Zk实战+RabbitMQ+RocketMQ+Kafka)
  • 高效存储
    (Redis+mongoDB+MySQL高可用+Mycat+Sharing-Sphere)
  • 微服务架构
    (RPC+SpringBoot+SpringCloud+Netflix+SpringCloudAlibaba+docker+k8s)

7大编程误区,你避开了吗?

我们很少看到有人公开谈论自己的错误。

人非圣贤,孰能无过?虽然难言出口,但反思过去所犯的错误可以让人不会在未来——至少是短期的未来,犯同样的错误。

Mohamed Barouma是位工作5年的专业程序员,但和任何人一样,他也犯过错误。

他这么说:“通常情况下,我不会马上意识到自己做错了什么;只有在接触到正确的做事方法后,我才知道犯了哪些错。”

结合他的原文,本文总结了他犯下的七大误区。

%title插图%num

没有使用合适的ORM

数据访问层代码总是混乱、乏味和无聊的。不幸的是,往往这点到*后才能发现。

Mohamed和ORM有着一段孽缘。ORM,即Object Relational Mapping,它是对象关系模型的简称。它的作用是在关系型数据库和对象之间作一个映射,使程序能够通过操纵描述对象方式来操纵数据库。

当Mohamed*次做一个简单的内部会计应用程序时,他发现只是为了完成基本的程序,就不得不编写大量的代码。于是他开始埋头于ADO.NET,并手动编写了一个自制的、具有非常特殊的、自定义的表模式的ORM,来满足目的。

在一段时间里,这个ORM工作的相当不错,直到几个月后,公司的业务需求发生了一些变化,这导致了整个表格模式的变化,然后,就是对ORM的反复修改。这个流程的痛苦之*,让Mohamed*终选择了强类型数据集适配器。

虽然这件事因此解决,但如果能找到一个更合适的ORM(比如NHibernate)来完成工作,Mohamed仍会义不容辞,至少当他的用户数量增加时,不必担心更改数据库的供应商。

%title插图%num

没有学会使用泛型

Mohamed Barouma的职业程序员生涯始于Net 1.1。而在当时,Net 1.1的主要问题在于它没有泛型支持,这代表它不能有一个强类型列表,只能满足于乏味的ArrayList。但是使用Arraylist在Java代码中进行类型转换和装箱,会导致读写起来十分痛苦。

因此,Net 1.1的程序员们使用CodeSmith生成一个强类型集合列表。

但随着代码库的增长,那些定制生成的列表本身就变成了一个无法收拾的怪物。只要经常为了创建对象或调用方法去达到目的,随后就会因为修改代码导致混乱和错误。

如果切换到Net 2.0,并在它可用时立即开始使用泛型,而不是创建越来越多的难以维护的自定义集合列表,那么一切问题都将迎刃而解。

%title插图%num

没有放弃“造轮子”

这是个老生常谈的话题,“反复造轮子”(Reinvent The Wheel)。新程序员总是喜欢反复“造轮子”,自认为当前的实现不够好,所以不得不从头重写整个东西。

为什么叫“造轮子”?就像真正的的轮子早在几千年前就被确定是圆形的一样,很多数据库也早就已经成熟易用了,但还是有数不胜数的程序员们锲而不舍的去“造轮子”,有的人飞蛾扑火、蚍蜉撼树,有的人别具一格、推陈出新,这就是“造轮子”魔法一般的吸引力。

这其中也不乏Mohamed,他想重新编写自己的UI控件,因为Windows Forms UI控件实在是太简单了。*后,他造的GUI工具被商业化成体系的.Net UI控件轻松打败,又一辆新生程序员造的“轮子”被击沉到了代码海洋里。

%title插图%num

没有精简过多的文档

很多刚入行的程序员,会在一开始觉得代码文档很好,因为它用简单的英语注释了代码在做什么。但事实上这些文档通常在修改了几次代码之后变成了一摊废纸,变得陈旧、过时亦或是完全错误。

常常有人花了很多时间编写代码文档——比如XML文档,结果发现在更改代码时需要更新文档。因为它的功能可能都已经改变了。更新代码是必须的,但更新XML文档不是必须的:这是一种负担,它消耗时间,而且毫无用处。

*终,反复地更改XML文档使人逐渐失去耐心,转而做其他事情。

%title插图%num

没有使用自动化构建

应用程序的部署和打包比编程相对容易,所以它往往被放在了非常低的优先级上。但很快,粗制滥造的构建就会因为无法工作,受到各式各样的投诉:

“先决条件缺失,该如何修复?”

“dll没有更新,你能给我一个补丁吗?”

“我的图标怎么不见了?”

紧接着,电话像雪崩一样源源不断地打到桌旁。这是Mohamed的真实经历,并让他那天精疲力尽——不是因为编程,而是因为令人麻木的重新部署和重新包装过程。

而这一切,本可以通过编写自动化脚本节省一些时间,否则在事后debug浪费的时间*对比可以节省的时间多上数倍。应该让软件可以一键构建,否则再多都是一种浪费。

%title插图%num

没有停止对视觉检测和debug的依赖

Visual Studio让人们可以很容易地调试代码并进行动态检查,这也使得创建一个表单并显示输出非常简单。但如果太沉迷于调试器,这项好处就要变成坏处了。

为什么呢?想象一下,如果一个方法只在应用程序启动并运行45分钟后才被调用,那难道要打算等45分钟再开始调试吗?

所以,动动手将应用程序分解为可以独立调用的子模块,这样就可以准备产生错误输出的输入值,并从那里开始测试它。

%title插图%num

没有做单元测试

不少程序员可能这么想过:“我的这个应用程序微不足道,它可以很容易地被手工测试覆盖;单元测试是针对大型和复杂的东西,而不是针对我的程序。”

可想而知,这会直接亲手创造一个没有关注点分离,难以重构,完全不可维护的代码库。

“蹑手蹑脚”几乎是许多小白程序员的通病,害怕对代码进行哪怕是*轻微的修改,因为任何更改都可能导致或不会导致破坏性的更改。结果到*后一发不可收拾,出现的问题无法解决。使用这种遗留代码不仅仅是无聊和紧张,而且精神上也有压力。

但是使用单元测试,能让代码的寿命大大提高。Mohamed希望自己能学会单元测试的“艺术”,从入学*天开始练习单元测试,可惜学校并不教这个。

世界上,无数令人为之一振的创新发明都源自无数次的试错,但即便如此,避免基础性的错误依旧是很有必要的。在你的程序人生中,还遇到过哪些令人啼笑皆非的“常见误区”?亦或者是创造了一些百思不得其解的“致命误区”?欢迎下方留言,分享你学习编程时的心得体验。

参考文献:

https://betterprogramming.pub/7-big-mistakes-i-have-made-in-my-career-as-a-software-engineer-f14ef540be10

这种网络结构,在局域网和公网的实际网速能到多少?

出于反劫持和其他的一些目的,我在家里弄了这么一套比较奇怪的网络结构,如下:
一个旧式“百兆”路由器,无线速率标称是 150M。直接插运营商的网线,通过 PPPOE 拨号;
服务器 S,通过网线连接到路由器的 LAN 口 1,默认网关是路由器。
其他设备通过 WIFI 连接路由器,默认网关是服务器 S。

那么现在有一些非常基础,以至于我觉得很丢人的疑问……那就是,“百兆”的含义,到底是针对网卡,还是网口来说的?
是一出一入,加一起,百兆为限?还是说,出=入=百兆?跟 lan 口 /wan 口是否有关系?

产生这个疑问,是由于我发现我从服务器 S 上拷文件到笔记本上,只能达到 3MB,约等于 24Mb 每秒。服务器的 CPU 和磁盘 IO 肯定肯定是足够的了。我不知道是由于网络架构,还是路由器的转发性能,还是 wifi 干扰导致的。

然后引伸出了一个问题,如果我从公网下载东西,是不是就意味着一个流量,要先去路由器,然后绕到服务器,然后再回路由器,然后再到笔记本?

感觉好像是挺基础的问题,但是不太能想明白,求指教。
路由器 服务器 网络结构 公网17 条回复 • 2017-04-28 00:03:10 +08:00
rssf 1
rssf 2017-04-27 16:20:13 +08:00 via iPhone
你的 Wi-Fi 路由器太垃圾,150m 的就那速度,想要快换支持 ac 的路由器或者 ap
jasontse 2
jasontse 2017-04-27 16:23:31 +08:00 via iPad
你的服务器是千兆还是百兆,百兆半双工,或者千兆半双工。
nekoyaki 3
nekoyaki 2017-04-27 16:25:21 +08:00
@rssf
这个我倒是知道,我想知道的是差在哪儿,是在 wifi 信号上? 路由器的网卡效率上?还是什么别的地方
ovear 4
ovear 2017-04-27 16:25:34 +08:00
wifi 速率限制,150 的就那样。。建议 5Ghz
ovear 5
ovear 2017-04-27 16:27:01 +08:00
@nekoyaki 差在环境上,你的环境太糟糕了。干扰太多,不符合实验室环境,一般 2.4Ghz 的现在的干扰都太大。
nekoyaki 6
nekoyaki 2017-04-27 16:39:06 +08:00
@jasontse @ovear
服务器那边倒是可以肯定不是短板。说是服务器,其实就是一个千兆网口的 thinkpad。

我其实是想知道,我那个默认网关绕圈的问题,和 wifi 问题, 哪个影响更大,如果是前者影响更大,也许可以通过更改网络结构解决;如果是后者,那估计就只能换路由器了。

其实单纯换路由器也不过是花点钱而已,主要是我发现以前没想过这问题,感觉自己基础不过关。

如果我从公网下载东西,这时,一个流量,要先去路由器,然后绕到服务器,然后再回路由器,然后再到笔记本。这个过程里,经过路由器的,是四倍的流量,还是二倍的流量?
KCheshireCat 7
KCheshireCat 2017-04-27 16:48:02 +08:00 via iPhone
pc -无线-路由器-网关-路由器-外网

路由器是两倍流量。
jasontse 8
jasontse 2017-04-27 16:48:52 +08:00 via iPad
@nekoyaki 看了下,这么说吧,正常的流量没有损耗,经过代理的流量会变成半双工。下行的正常明文流量根据 ARP 表不会发往服务器,是直接到笔记本上。
ovear 9
ovear 2017-04-27 16:56:33 +08:00 ❤️ 1
@nekoyaki 毫无疑问 无线路由的问题,检验方法 ping 默认网关

至于宽带问题,你理解为单个路由下的互联可以跑满端口速度
跨路由的互联取决于 两个路由之间的互联速度

拿你的例子来说吧,为了方便我,我就直接以 ip 地址标致路由

从你的图来看,所有的流量都会经过.1,单端口速度*对不会高于 100Mbps
如果是多端口的话,要看你的子网大小,这里我假定为你的子网大小是 192.168.1.0/24, 那么在子网内的通讯是忽略网关的,直接由 arp 协议提供网路发现。流量不经过”默认路由”的”处理器”,直接由互联的”硬件网路端口”处理。
在这种情况下,属于同级路由通讯,多端口下可以跑满 100Mbps * 端口数

如果你的子网不是 /24, 那么如果访问非默认路由管辖的子网,就是跨子网通讯,就是上面说的 “跨路由互联” (访问宽带同理),这个速度就取决于 .121 到 .1 的速度。访问公网同理。
trepwq 10
trepwq 2017-04-27 17:09:29 +08:00 via iPhone
有线 100m 全双工就是同时上传 100m 下载 100m,无线有损耗到不了电脑上显示的值,标称就更到不了了