V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  GeruzoniAnsasu  ›  全部回复第 75 页 / 共 148 页
回复总数  2952
1 ... 71  72  73  74  75  76  77  78  79  80 ... 148  
2021-09-18 05:33:21 +08:00
回复了 ling516 创建的主题 Windows win10 文件夹文件名批量修改工具哪个最好
…… wsl.
2021-09-15 12:04:04 +08:00
回复了 aizya 创建的主题 JavaScript js 怎么判断用户关闭了浏览器
大胆一点,快进到产品包一个有后门的浏览器
2021-09-14 13:20:19 +08:00
回复了 mmdsun 创建的主题 程序员 有什么小众的语言或框架,是值得学习 ?
如果要想学一些新语言,那必须要多接触一些不一样的范式。C 系语言无论生了几个孙子,跟它们的爷爷长得都差不多。

但是

Haskell

当真是开了一扇新世界大门,强烈推荐系统地学习一遍。或者 racket/Lisp 也可以。这些函数式语言一下拓宽了我对编程这件事一倍的视野,可以说又重新学了一遍编程,与那些脚本语言根本不可同日而语
2021-09-13 10:23:20 +08:00
回复了 passer9527 创建的主题 全球工单系统 被高德地图整的暴躁了
@frankkly 杭州是阿里大本营,市政金融都有阿里分一腿。如果路上红灯堵得你不耐烦,很可能甚至都是阿里干的
2021-09-13 03:55:54 +08:00
回复了 proxychains 创建的主题 问与答 诸位看电影,纪录片,长视频的时候会用 1.5 速播放吗?
啊……? 我似乎知道有些番剧和电影评论区的上帝视角是怎么来的了

快进看完也叫看完……?那我何必看这要浪费我时间的东西呢


@NanJi
> 比图推荐好用的工具 25 个什么的那种

哈哈哈这种东西我一般直奔评论区,没有省流助手就直接不看了
如果你是消费者,开发商说他们的产品「轻量级」,意味着功能不全。

如果你是开发商,消费者说他想寻找「轻量级」产品,意味着他不想让你盈利

如果你是开发商,告诉消费者你做的产品「轻量级」,意味着你暂时服务不了其它人,得想办法让已有的用户掏钱

如果你是开发者,另一个开发者说他做的框架「轻量级」,意味着他造了个新轮子,木头的,不能装在汽车上

如果你是开发者,想做一个「轻量级」框架 —— 醒醒,你一个人本来也做不出重量级框架,这是安慰别人用的废话
2021-09-09 21:26:55 +08:00
回复了 yezheyu 创建的主题 程序员 关于计算机网络中相关协议的一点疑问
@yezheyu 就是因为如果不限制分片 /分包的大小重传代价会很大所以才会限制最大单元。在最大范围内随便什么大小,超过范围强制拆分。

实现上需要对「频繁拆分导致包头冗余造成性能浪费」 vs 「 MTU 过大导致丢包重传压力过大使性能下降」之间进行权衡
2021-09-09 21:19:14 +08:00
回复了 yezheyu 创建的主题 程序员 关于计算机网络中相关协议的一点疑问
@yezheyu 套用的协议层越多,「至少需要的」数据包大小就会越大。

但当一个 2 层套 3 层套 4 层“数据包” 超过「最大盒子大小」( MTU/MSS ),就会在各协议层重组,分成更小的 fragment/frame,并给每个上层内容重新套一个本层的包头

比如 MTU 是 1K,你尝试发一个 1K 的网页,首先 HTTP 会套上 HTTP 头,写上 content-length: 1k,这样整个报文就超过 1k 了
轮到 TCP 层,它感觉一个分片发不完,分成了两个片,一片内容 1k,套上 TCP 头交给链路层,另一片内容比如 100b,套上另一个 TCP 头交给链路层。如果这两个片发出去顺序不对或者丢了一部分,TCP 负责重排重发保证接收完整
链路层,发现第一个片原本 1k 套上 TCP 头又超了 1k,于是划分帧的时候也劈两半,各自套上帧头,然后交给网卡

不过呢,TCP 协议栈在不同 OS 甚至硬件的实现上是有差异的,按照上面的假设一个 1k 内容的东西被劈成了 3 份显然不太科学。所以比如 linux 的协议栈就不像上面说的每层都自己处理一次,而是 23 层在同一块内存处理,一次性分拆好。4 层应用层一般内核就不会越界去管了,但并没有不准在内核实现 HTTP 协议做一个 234 层一起分片的协议栈。
2021-09-09 12:55:43 +08:00
回复了 yezheyu 创建的主题 程序员 关于计算机网络中相关协议的一点疑问
> 本质就是重新规划 tcp 数据报中有效数据载体部分空间是吗

你概念中的那个「载体空间」,是不固定大小的,并不是往一个固定盒子里填更复杂的数据,而是把复杂的数据拿一个更大的盒子装,并且套上更多层
2021-09-06 17:16:03 +08:00
回复了 shenfu1991 创建的主题 程序员 利用机器学习训练分类好的 k 线图,能否识别股市涨跌?
我寻思,一段时间内识别涨跌横,难道不是起点数据和终点数据一拿就完事了吗?
2021-09-04 21:58:27 +08:00
回复了 terrytw 创建的主题 程序员 诸位猜猜看,我的隐私是如何泄露的
> 手机号 B 日常会用于和公司同事联系。


你们 HR 给猎头的
2021-09-03 15:44:32 +08:00
回复了 James369 创建的主题 程序员 js 的类有没有析构函数,如何进行资源释放??
不提 RAII 的回复其实都可以不用看了

是的大量带 GC 的语言都无法 RAII,他们都必须手动管理资源释放。虽然 golang 之类的语言有 defer,但逻辑跟 RAII 完全不同,是两套思维方式。

他们这些“脚本语言”的做法:



池化(本质上是由分派器管理资源)

依赖注入(本质上是剥离资源申请释放的依赖,放到第三方)

使用 promise/future (本质上是模仿 RAII )

完全抛弃状态,使用函数式



是不是很熟悉,「设计模式」跟语言特性是有很大相关性的
………… CPU 渲染器是什么鬼提案

他们都被 opengl 吸引了,忘记了这是个 XY Problem
而且 2D 游戏怎么还能扯到 PBR 的


其实游戏引擎(尤其是 2D )跟图形 API 关系没那么紧密
2D 引擎不知道你考虑的功能有哪些,切图、变换、物理、对象管理?
如果你想写的真的是 2D 引擎,那么考虑问题的顺序应该是 top-down 的,先计划最终能达到什么效果,然后再把每一层的抽象定好,然后在往抽象出来的框架里塞代码。

比如假设我的目标是,没有引擎 UI,用代码来创建对象,没有 UI 系统,没有预设物理,那么我可能至少需要下面这些东西:

- 事件循环(渲染和计算至少要异步化对吧)
- 输入管理器(「游戏操作」和「物理输入」的映射,比如组合键)
- sprite (对象)管理器(切图、对象关系和变换、shader 或材质、包围盒、碰撞检测……)
- 动画管理器(图片组、动画混合)
- 渲染器

每个组件都有很多工作要做,因此强烈建议参考成熟引擎的代码结构,你能一目了然地从文件名就看出需要做什么:
https://github.com/cocos2d/cocos2d-x/tree/v4/cocos/2d

具体到你提到的 opengl/图形 API 上,如果你是自顶而下考虑的,自然会想在渲染器和图形 API 之间抽多一个虚拟层,让引擎本身诸如创建 texture,应用 shader 这些事与具体 API 隔离开。所以具体到图形 API 这一层要考虑的就是

- 怎么(分别用 opengl/dx/vulkan )画图片
- 怎么(……)正确混合半透明的图片
- 怎么( )画文字
- 怎么变换摄像机
- ……

那方向就清晰了,先搞清楚怎么用 opengl 把图画出来,然后就可以开始撸了。如果怕 opengl 要凉,那就用 dx 呗,反正到这一层无论用什么 api 要干的活都是同样的那些而已
2021-08-31 15:13:21 +08:00
回复了 niub 创建的主题 知乎 如果不考虑现实,你最想学习什么技术?
很多年前有个问题调查:「忽略所有现实因素最想从事的 3 个职业」

我写的是小提琴家、猎人、纪录片摄影师。

鉴于乐器可以自学,所以我现在最想学的是枪械技能(维修保养、射击)、越野技能(制作绳索工具陷阱、辨识天气、方向、植物、追踪等等)、砍树造房子之类的
2021-08-27 16:53:12 +08:00
回复了 Hconk 创建的主题 C++ 看到一段挺有意思的 C++代码
仅 gcc 支持捕获列表后的 attribute,
void f(...){[](...)[[,,,]]{[[,,,]];}();}
上面这行去掉了捕获列表后的[[]],可以在其它编译器中通过
2021-08-27 14:42:59 +08:00
回复了 Hconk 创建的主题 C++ 看到一段挺有意思的 C++代码
这些[[]]都是 attributes 吗

原来有这么多能放的位置……
2021-08-26 08:35:08 +08:00
回复了 onice 创建的主题 新手求助 C/C++是两种不同的语言吗?
吃早餐看这帖把咖啡喷键盘上了

> 通过谷歌,了解到 C++是制作高级恶意软件的最佳语言。

就你的目的来说根本不需要学到真正的 c++,九阴真经读一半也不是不能出山对吧
2021-08-25 17:25:06 +08:00
回复了 xiaotianhu 创建的主题 程序员 从 PHP 到 C++太痛苦了
@xiaotianhu 哈哈哈哈哈我一直等了一天才懂为什么有这些莫名其妙的头疼点。


clion,请。写 c++不用 IDE 跟写 java 不用 IDE 一样,与其说自虐不如说「我看你完全不懂哦」
#6 已经一眼看穿了


> 用 C++写各种基于 string 的判断业务太蛋疼了,各种规则有几千行
> 我打算集成个 liblua.so 进去用 Lua 来搞规则,性能能有多大影响

前公司项目为了解决规则太复杂的问题,依次尝试了
1. 把规则拆成好几部分,每个部分重新开了一个项目各自处理业务(服务化)
2. 让上游分担一部分规则复杂度,如把历史版本,冲突判断等逻辑从解析者( native lib, c++)挪到下发者( web 后台,混合语言)
3. 创造一门新 DSL,不再用数据描述逻辑,而使用逻辑去描述数据。为此还搞了套新的虚拟机指令集

所以用 lua 倒也不会让人感到奇怪。只不过 lua 有很多意想不到的坑,比如多线程、jit 、(与 host 语言的)数据类型绑定、guest 语言的内存管理……能不加就别加,不然——反正第三步从 0 到稳定敢宣传用了一年半




另外关于开发环境我们的最佳实践是
1. 编译环境打包成 docker,这样 dockerfile 里其实就完整记录了所需的库和来源方法
2. 本地开发环境尽量 linux,可以照搬
3. cmake 尽量给 darwin 留一套可以 build 的组合,比如关掉平台相关模块,使用空数据结构之类的。目的是能让编译器检查语法错误就行,make 交给 docker 环境


> 我接手这个项目,智能指针什么的都没有,异常什么的用的也少,也没见到 malloc 什么的,就靠 栈内存+全局变量 也能搞。就是感觉很 Ugly


说实话这个状态已经很理想了,全局变量也就污染一下 namespace,崩也崩在最开始很容易找,我看到都已经不会再吐槽了……局部变量?那可太优雅了!我来帮你们写 move ctor 和 RAII,你们可千万别哪自己搞两行 new 出来。没有指针的世界就是优美的世界(
2021-08-25 16:27:42 +08:00
回复了 dunhanson 创建的主题 程序员 deepl 为啥没有音标?
歪个题,我感觉 deepl 的翻译跟 google 并没有差多少甚至很多时候都不如 google

不知道是不是它比较擅长长句而我丢过去的都是词组短语之类的原因
1 ... 71  72  73  74  75  76  77  78  79  80 ... 148  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3026 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 45ms · UTC 14:41 · PVG 22:41 · LAX 06:41 · JFK 09:41
Developed with CodeLauncher
♥ Do have faith in what you're doing.