V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  guochao  ›  全部回复第 2 页 / 共 4 页
回复总数  65
1  2  3  4  
2021-04-04 13:55:51 +08:00
回复了 EscYezi 创建的主题 程序员 git 仓库同步到坚果云上后损坏了
git 会快速操作大量文件,并且涉及到 filemode 一类的文件属性的操作,同步盘本质是把文件内容修改排队上传,定期 squash,有意外情况的时候(比如说在很短时间内增减同一个路径上的文件)很容易破坏 git 树,而且无法保留 filemode 也会丢失非常多信息。类似的是 vim,也会快速的增删文件

直接提交到 git{hub,lab,ee}吧,gitlab 在国内也建了团队,gitee 和 gitlab 在国内的可用性应该都会相对越来越好
说实话,价格和任何其他的特点是冲突的。便宜的就要牺牲太多东西。

之前在坚果云工作了几年,网盘存储要钱,同步盘流量烧钱,计算靠人力优化架构和堆服务器,都是成本。要做 p2p 类的东西还可能涉及到政策限制。是做企业的不是做慈善的,很难有又便宜的服务。

建议就是根据需要把资源分到不同的地方,百度云或者自建存储存媒体,坚果云或者 icloud 或者 dropbox 存文档,git 托管代码。
赞。氛围很不错的
2021-02-04 10:48:44 +08:00
回复了 RandomAccess 创建的主题 Python 关于 Python event loop
简单说 python 的 event loop 是一个单进程单线程单个 loop 执行 coroutine 的过程。asyncio.run 就是一个创建 loop 并且 run until complete 的过程,new event loop 又建了一个,没有必要。

解决办法就是让整个程序的入口是一个 async 函数,在 async 函数中配置程序,新建各种实例,启动应用。在__main__里面 asyncio.run(entrypoint())就行。然后在任何其他地方都不要 new_event_loop 或者 asyncio.run

如果要执行一个 coroutine 但是不等待结束,可以 asyncio.ensure_future 或者 3.7 以上的新 API asyncio.create_task,这两个函数都是在 get_event_loop()返回的 loop 上执行对应的函数,会返回一个 Task
如果要在一个 coroutine 中执行一个 coroutine 并且等待结束,那就直接 await 。
如果要执行一个同步过程,可以用 run_in_executor,返回一个 Future
另外也可以考虑写命令行下的 UI,比如说 ncurses,c 和 python 都有,也挺好使的。
C 可以做 UI,但是 C 没有类型导致有些东西做起来没有那么方便,比如说继承啊什么的,就很难搞。

然后 UI 分两类吧,你要是想用其他人写好的绘制的控件,目前我看到的勉勉强强能跨平台的,就是 gtk 。像楼上说的用 api 撸,比如说 win32 api 或者 x server 的,可以是可以,没必要。其他的库,不跨平台的,我也没看到有啥更好的选择。

如果是打算搞自绘 UI,那可以用 SDL2 或者类似的 SDK 。比如说就用 SDL2,或者用 glfw+opengl 。这也是一条路。但是就是看起来不是那么 native 。

如果你打算写写 c++,或者写写 c 风格的 c++,那选择就多了,无论是 MFC 还是 Qt 还是 wx 还是什么其他的,做界面都好说。
2021-01-21 13:37:08 +08:00
回复了 EdisonChen666 创建的主题 Linux Linux 发送邮件到 qq 邮箱的问题
#7 +1

补充一下。现在各个厂商之间有 IP 白名单和各种机制,白名单内发信和白名单外发信拦截的规则有非常大的不同,自建邮件服务有很大可能性会被别人当成垃圾邮件拦下来或者干脆无法到达。但是手工发信很多时候的确是满足不了需求,所以有了 sendgrid sendmail mailgun 这类服务。这些服务提供接口发信(一般是 smtp+http api ),同时也会审查你的行为,如果有不合理的发信行为可能会 ban 帐号,以此维护自己和其他服务的白名单关系、提高发信到达率。

QQ 邮箱这种给最终用户的,可以加个客户端密码**用 smtp 登录上去**,从自己的帐号给自己或者别人发,有频率和数量限制,少量的一般没有问题。如果要大量发信,建议找个这种发信服务,会好很多
2021-01-18 11:40:55 +08:00
回复了 missz 创建的主题 Node.js puppeteer 运行一段时间后无法启动
@WishMeLz 可能性有几个,一个是这玩意儿依赖 X,是不是什么库没有装。另一个是 chromium 带了几种沙箱实现,是不是这几种沙箱都不能正常工作,不能正常工作的话会失败。

@missz 想起来忘了说的一个问题。你加了'--no-sandbox',建议还是不要这个。在代码里面修一下 sandbox 的权限,sandbox 文件的 owner 需要是 root ( puppeteer 解压以后是当前用户,需要 chown ),并且需要 chmod u+s 来让当前用户下执行的程序自动切换到 root (用来配置沙箱环境限制子进程)。而且,对,推荐用 @Areym #2 提到的开标签页做事儿。
2021-01-18 10:39:39 +08:00
回复了 missz 创建的主题 Node.js puppeteer 运行一段时间后无法启动
我原来遇到过 chrome 标签无法自己关闭的情况,所以后来是用了 cgroup 啊、timeout 啊之类的工具,来清理 chrome 进程。

你上面贴的信息不足以得到为什么启动不了进程的原因。原因有很多,比如说资源不够了( pid,mem,……)。我没读过 chromium 实现,但是有没有可能是用了同一个 profile ?用同样的参数能不能手动启动一个 headless chromium ?

建议先自己再调研一下
建立 net_cls cgroup,对 cgroup 进行 mark,在 route 中使用 mark 建立路由

如果需要的话可以用 systemd-slice 对一组 exec 进行 mark 。或者自己写脚本。

除此之外,还可以用这个方法对单独的进程设置防火墙或者施行 traffic shaping

ref:
这篇博客描述了大概的做法: https://www.evolware.org/?p=369
防止博客崩掉贴上 Archive: https://web.archive.org/web/20201112024042/https://www.evolware.org/?p=369
Arch Wiki - cgroups: https://wiki.archlinux.org/index.php/Cgroups
man pages - cgroups: https://man7.org/linux/man-pages/man7/cgroups.7.html
man pages - ip-route: https://man7.org/linux/man-pages/man8/ip-route.8.html
2021-01-13 19:56:35 +08:00
回复了 hbolive 创建的主题 Go 编程语言 安装 colly 框架失败,难道真要翻墙才行吗?
看看```go env```输出,还有 go 版本。怀疑你是用了老版本
kde 上用到 kwallet 的地方遍地都是。比如说 plasma-nm-applet,是一个 qml app,注册自己为 network manager 的 secret agent 、和用户通过 GUI 交互来提供 credential 、作为 network manager 的 credential store 来 CRUD 。

kde 类的 kwallet,其他的 gnome-keyring 。Windows Credential Manager 。macOS keychain 。都是类似的东西。
2021-01-13 12:09:25 +08:00
回复了 szxczyc 创建的主题 Python 面试还是不写或者少写博客
具体的知识点线程安全这个属于八股了,最好理解一下代码执行都发生了什么。

博客这个,如果是作为摘抄本,是很没有必要的。经常能看到 CSDN 上面一天更新 20 篇博客,一看内容都是抄的那种,意义不大。实际上也非常厌恶这种,包括不作为的平台,因为这种垃圾生产者经常会把有价值的东西埋起来。有的博客写的非常随意,几行文字,没有任何具体的信息,也不大喜欢,因为信息总是有适用的场景的,A 解决的问题同样的方法给 B 不一定可以用。

博客的意义在于两点,对其他人来说是共享知识的重要的途径,对于自己来说是重新审视、重新理解学过的知识的非常好的机会。

我家里面我爹是做土木的,从小给我讲数学物理就是,先讲清楚 prerequisite,提出问题以后逐步引入新的方法或者概念,然后深入,最后留出来一个引子,让我自己朝着更深的方向做尝试。大学以后开始给别人讲东西,多多少少参照了我爹的想法,都是先一点点往回退到对方不会的地方,然后一点点引出来新的东西。再到后来写博客,虽然很多东西没有写出来,但是实际来说一篇博客从想到 idea 到写出来文章,读资料需要三天到一周写只需要一天两天,麻烦的可能从想到问题到写出来东西需要半年。文章的话一般就是问题、prequisite 、解决方法、总结的结构,作为技术博客一般也够了。
2021-01-11 09:55:48 +08:00
回复了 NeverMindMe 创建的主题 Linux JingOS - 全球首个 iPad 风格 Linux
现在 Linux 的瓶颈不在系统上,而是生态和易用性。缺乏很多生态、上手不够简单,决定了用户量稀少。但是还是稍微支持一下
2020-12-06 09:14:24 +08:00
回复了 sjmcefc2 创建的主题 程序员 怎么进行服务器节能?
服务器一般有 ipmi 协议的网口,本质上是主板跑了个应用来控制硬件。有的服务器的 ipmi 口带网页服务,可以在网页上
开关机,或者用网页的 novnc 用键盘鼠标啊什么的直接操作机器可以挂载 iso 镜像,跟虚拟机很像。

也有新一些贵一些的机器支持 redfish 协议,具体的不是特别清楚,大致来说是通过 json rest api 来控制机器。

每个厂的协议或者网页可能有细微的不一样之处,同一款机器不同出场时间都可能不一样。这方面只能去找你当时买服务器的那边寻求支持。

另外我觉得你们不一定需要自己的机器,与其考虑省电不如先上云,有足够收入支撑后迁移到机房
2020-12-01 13:08:01 +08:00
回复了 zealinux 创建的主题 程序员 除了使用 nohup,生产环境如何启动 Java 应用?
你问的这个问题一般由 supervisor 类应用解决。

最出名的就是 systemd 、supervisord 、sysv init 、upstart,不需要写很多脚本,本身就支持比如重启啊、依赖关系啊什么的。推荐直接上手 systemd,除非版本不一样,系统间差异较小且稳定,对于进程服务之外的资源依赖也可以处理到。都是单机的

容器勉勉强强也可以算作一类 supervisor,也支持一部分的资源管理和自动化嘛,比如说 docker 、podman 。而且也有多机方案,最典型的就是 k8s 、docker swarm 这类容器编排工具。
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1022 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 19:09 · PVG 03:09 · LAX 12:09 · JFK 15:09
Developed with CodeLauncher
♥ Do have faith in what you're doing.