V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  GeruzoniAnsasu  ›  全部回复第 80 页 / 共 147 页
回复总数  2934
1 ... 76  77  78  79  80  81  82  83  84  85 ... 147  
2021-06-17 01:21:25 +08:00
回复了 piqizhu8 创建的主题 问与答 当前哪个编程语言适合用来开发新编程语言?
我觉得答案可能会出乎你意料

是 java…… https://www.antlr.org/

jvm 跨平台是不是分分钟?




如果不用 antlr,一般能选的只有 yacc/bison 了,同时也意味着可以抛弃虚拟机但要写复杂得多的 IR generation

顺带一提还有 golang 版的 yacc https://pkg.go.dev/modernc.org/goyacc,所以用 golang 来写这门语言的 interpreter 也算是可以跨平台的



----

从问题描述来看感觉 lz 可能并没有开发一门新语言的概念,也不清楚语言要设计的方向,那我的建议是好好研究研究前 yacc/C,后 llvm
2021-06-16 05:21:45 +08:00
回复了 Ritr 创建的主题 生活 今年 29,感觉对一切都不感兴趣,生活挺无聊的
@dqzcwxb #13
@KisekiRemi #42
@qsmd42 #48


/t/581133
/t/490763
/t/570928
/t/495443

----

/t/505270
t/502337
/t/506847

其实一般人也分辨不出来抑郁症,轻度抑郁也完全达不到需要区分清楚的地步

//////

其实如果你身边有朋友做对比,就会有动力至少有想法去做点什么,我这有个周末 3 天假能飞一趟尼泊尔的老哥,每次看他出去玩都非常羡慕(不是这个 3 天价,是前年 51 )
而且生活跟工作如果绑得太紧,会剥夺你尝试追逐羡慕的权利
我到今天还是对很多事物充满好奇,坐地铁,学生们讨论的题我都会顺带想一下,坐火车小朋友们表达自己的观点我都会想听一听,有些就非常有趣,比如一个今天回家搭电梯听到的:

小女孩: 你说是努力学习考高分好,还是玩好
小男孩(不假思索): 考高分


他们应该小学三四年级左右。

我拿这个问题问了几个同龄朋友,他们全都选了玩,你不觉得这就已经很有趣了吗
我写过一点 factorio 的 mod,应该可以一定程度相互借鉴启发:
https://wiki.factorio.com/Tutorial:Modding_tutorial/Gangsir

你要明白 lua 脚本是不直接控制游戏中实体的实例化的,所以一定有什么接口来获取你要的实体,然后拿获得的那个实体再进行你的逻辑

lua 和 js 有点类似,是基于 prototype 的 (伪) OO,但实际上你写的脚本都是 class,并不直接管理实际对象的生命周期,除非真的没有其它办法要自己实现,比如定义一个全局表,然后在事件回调里获取 player 对象去更新全局表,其它 model 的逻辑里去这个全局表里查来替代不存在的 getXxxAttributes,否则都应该先考虑框架提供的 api 能不能实现需求


话说你给的例子逻辑其实有点奇怪的,game.healplayer 看起来并不能关联到哪个 player,感觉是一个给当前玩家操控的角色加血的 api,而不是“给某个 character 增加体力”

在 factorio 的那个 tutorio 里,如果要给它的示例 fire armor 加上跟你所述的类似功能,首先得找到这个 item 的实例,好然后我翻了一下文档,这个实例应该由 LuaItemStack 来表示,然后参考它获取当前 player 是否穿着 armor 的代码,翻到 [LuaInventory.find_empty_stack]( https://lua-api.factorio.com/latest/LuaInventory.html#LuaInventory.find_empty_stack) 有了 LuaItemStack 的实例,它有一个方法叫 [set_tag]( https://lua-api.factorio.com/latest/LuaItemStack.html#LuaItemStack.set_tag) ,想必通过这个方法就能把值存到玩家身上的物品实例中去了,这个逻辑写在 on_damage 这个全局回调里,全程都不会用自己实现(比如全局 /临时变量)的存储



----

重新看了一遍问题描述,似乎在写的是 lua 的宿主? 那只需要提供好回调和 api 就好了,lua 里需要持久化的值直接写到 kv 数据库里
@marczhao

我这说的可不只是技术,众所周知 360 在病毒查杀技术方面也没多少建树,但它是率先建立联网特征库和用户终端 **实时** 上报 /更新机制的厂商(尤其是国内)之一,就是它这套新(相对于上个时代官方更新特征库的形式)机制使新发现的样本能在全网迅速拦截阻断传播

而且 360 已经把国内消费级终端安全的商业模式全走完了,免费查杀偷数据、系统(负)优化要权限、应(竞)用(品)管理卖广告、内核加固( xp )保客户、专杀 /应急推服务 …… 然后还有一堆有的没的小功能

你说国内哪个新厂商能打得过它?要么就永远别赚钱,要么迟早要走某一条老路,不赚钱的厂商能有实力迭代产品?我反正不太信。

但我可不是在夸赞,吹不等于夸,要搞清楚。360 还有很多不为人知的地下手段(起码是地下手段的技术储备),你让我用,我是不置可否的,除非掏了钱的政企商业版什么的。但想扒拉什么别人有它没有的东西,我觉得找不到



要明白现在的桌面操作系统架构已经复杂到几乎没什么人去研究更底层更内核的东西了,过去 20 年到 10 年终端安全对抗是一个不断向内核深入的过程,谁写的驱动 hook 得更深更全谁就可以活下来干掉对面。现在呢? bootkit 有 secure boot,kernel 有 patchguard,好不容易找到一个洞还要风水半天才能过 dep/aslr 。安全厂商的实验室里专业研究员搞出一个有破坏力的 exp 都得花上一两年,根本不是个人研究者能追得上的了。就算你撞运气挖到了,卖给(*)不好吗?报给微软报给 google 报给 vmware 领个 10w 刀不香吗?很少再有人拿这种东西去写恶意软件的了。所以现在的恶意软件大多是些偷偷摸摸挖矿的小鬼,要么就是恶心人的加密勒索,查杀他们并不需要很深的技术储备,相反需要大量的数据来做匹配


我为啥说都是这两家玩剩下的,360 开发新商业模式,微软封堵往内核深入的路,其它厂商要么跟着学,要么跟着干,没有另辟蹊径的空间。







*补充一下,我所述的观点前提局限在个人消费者的 windows 终端上。国内现存还有大量的安全厂商,但大多数都不会碰个人消费级终端这个垂直领域,这些厂商不在我所说的“玩两家玩剩下的”范畴之内
2021-06-14 05:19:50 +08:00
回复了 zxCoder 创建的主题 C++ c++一个基础问题
hhh 其实我刚才去复习值类别的时候在想右值引用是包含了 xvalue (会消失的临时对象)和 prvalue (纯值,比如数字、字面量)的,regex_search 这个函数不能接受传入临时对象我可以理解,但应该可以接受字符串字面量才对,比如 regex_search("something", ...

编译器是完全能做到让字面量持久化的

然后一想,c++好像并没有办法 trait 出一个 prvalue,然后再一看,第二个重载就是 const char*。 好嘛原来根本不需要 trait 出 prvalue 型,标准库已经考虑全了
2021-06-14 05:10:38 +08:00
回复了 zxCoder 创建的主题 C++ c++一个基础问题
继续摘原文:

7) The overload (3) is prohibited from accepting temporary strings, otherwise this function populates match_results m with string iterators that become invalid immediately.
regex_search will successfully match any subsequence of the given sequence, whereas std::regex_match will only return true if the regular expression matches the entire sequence.

匹配结果是传入参数上的迭代器,所以不禁用右值引用会使迭代器尝试迭代已消失的临时对象从而引发访问违例


并不是 c++ 才有左右值,这本来应该是个 PL 概念,c++需要区分得尤为清楚的原因是它的内存模型和抽象实现方式与大多数其它主流语言不一样,无法依赖 gc 来管理对象的内存,所以需要严格划分哪些是持久对象,哪些是可转移到持久对象上的临时对象,哪些是正在消失的临时对象,哪些是纯值可以省略构造临时对象的对象……

一般写代码分清楚了也没用,到时候还是会收束到查 cppreference 的历史线……
2021-06-13 13:54:19 +08:00
回复了 lonelygod365 创建的主题 问与答 自学 Python 可行性高吗
hhhhh 我猜 lz 不是计算机相关从业人员

python 基本上算最容易入门的编程语言了,但仅仅是语言容易入门而已,普通电脑用户会发现

1. 环境怎么总是配不起来
2. 好像除了能打印几行字其它事都干不了
3. 写界面的这套步骤怎么这么复杂
4. 跟系统(指 windows )完全结合不了啊? 怎么让我的程序 “放在后台运行”??

反之如果目标就是爬虫 web 后台命令行脚本这种本来就很 server 的东西,那就很推荐学,从零到用起来也就一周足够了
来自搞二进制安全的朋友的一手消息:

1. Windows defender 的启发式查杀非常强,但能用证书绕过去,搞一个带可信签名的程序来做 loader windows defender 就直接无视了。属于存量恶意软件进不来,专门搞你的新勒索软件你躲不过,用已有技术写的木马病毒基本上任何逻辑都能被查出来,除非你搞到个证书。
2. 国内最强 360,联网特征库十分阴间。是字面上的十分钟就能把新样本报到全网。假如你搞事情忘了断网,过 10 分钟你同事都会过来宣布恭喜你搞的成果没了。而且 360 不信任系统证书库,所以绕 defender 的办法过不了 360
3. 现在这个时代任何安全软件都玩微软和 360 玩剩下的


如果你只是想禁用网络访问,又不想养蛊,那资源监控+防火墙规则足够了,我选择加一条自定义规则
2021-06-13 02:03:31 +08:00
回复了 Grandmasters 创建的主题 Python 复杂的 Python 目录规范
啥 高中生

哦那没有,django 怎么摆目录的照着往里填就得了



“复杂目录结构” 是上万个工作日才能累积出来的,你现阶段大概完全接触不到

p.s. 上万工作日的算法是 30 人核心小组 20 人外围 /组件开发从零到成熟化约一年左右的量
2021-06-13 01:55:31 +08:00
回复了 Exin 创建的主题 Apple 买了 M1 MBA 顶配 16G1TB,很快就后悔了
49 年入国军买了 10 代 iu32g 表示多出来的 16g 是我仅存的自我麻醉了(
2021-06-08 23:11:14 +08:00
回复了 SergeGao 创建的主题 Linux 如何修复 deepin 启动引导?
#11 可行的

如果不从 livecd 修,windows 下也有办法,试试 easybcd
2021-06-08 22:48:35 +08:00
回复了 ltltfuture 创建的主题 Apple iPad 对代码工作者依旧还是那个玩具
其实我不明白为什么程序员要拿

电子书 /画板 /琴谱显示器 /手持电影屏幕 /逗小孩(逗猫)玩具 /肝手游机来写代码


应该就跟 termux 上的 gcc 一样就是个教学 /玩具用的东西
NAS 多的存储空间对我来说完全没用…………

所以我都是 docker 起个文件管理器就可以用手机浏览器“在线”看了……

https://hub.docker.com/r/filebrowser/filebrowser
https://github.com/filebrowser/filebrowser
2021-06-08 15:08:41 +08:00
回复了 aqtata 创建的主题 程序员 你们用 get/set 吗?
除了 c++这种 snake_case 约定又没有 properties 写 name()来模拟它是个 property 外其它语言我其实想不到不加 get/set 的理由
2021-06-07 16:07:29 +08:00
回复了 raaaaaar 创建的主题 程序员 在公司项目开发中,数据库是怎么管理的?
1. 现实产品开发(尤其 web )一般不写 sql,一定会用 orm,建表让 orm 来做
2. 表一旦建好,跑在线上就极少重新初始化了,但是会因为频繁迭代而不断改变字段或结构。所以项目中往往会有专门的 migration 服务 /层;一般表的第一阶段初始化也会写成 migration,可以把初始版本纳入 migration 依赖中
3. 参考 gormigrate
4. 数据库设计文档没有用,web 开发基本只关心 API 的输入输出,使用 orm 的项目表结构会在 model 代码中有所体现,所以没有文档问题也不是很大

5. 学校的技术部门 /社团跟商业开发完全不是一回事,哪怕是清北的社团也一样不能比


6. 初始化数据库就清数据了,线上不可能这么干的。bug 最严重也就只是让后端崩掉,崩掉就重新拉起来,不是 go 吗,百分比跑在容器里的,server 容器会被容器宿主自动重启,你问的第二个问题其实是另一个维度上的了,跟现实正交
2021-06-06 17:49:18 +08:00
回复了 meetocean 创建的主题 阅读 发了一本新书叫幻景时空,需要网友的建议
吕悬再次闭上眼睛时,距上次电光闪过刚过去一百四十六毫秒。他能听到窗外雷雨交加,气派宏伟的别墅外窗也抵不住狂风骤雨的摧残,发出嘶哑的叫声。说来也怪,在如此嘈杂的背景声中,他却又能听到皮沙发轻微凹陷下去的吱呀,以及薄丝衣物在胸前划过的细微摩擦。

“集中精力别想太多,今天是来做实验的。” 吕悬默默告诫自己,专心致志等待起闪光后欲来未到的惊雷。

“那我来了。” 娇柔婉转的女声在耳边轻诉,吕悬的额头传来柔软湿润的感触。他心神为之一颤,但很快稳了下来,口中振振有词念起一句谁都听不见的咒语。


------

(开头设悬念和爆点引读者入戏,随后切换镜头交代主人公身份)
(比如简单讲一下主人公怎么发现的这个实验,女声是谁,开头我写了 146ms,因为普通人的反应速度大概在 200ms 左右,优秀电竞选手也少有能达到 140+ms 反应速度的人,这是一个伏笔,后面可以用)
(在这个背景插叙中也是介绍你那堆设定怎么来的最好的地方,因为主角是事前已知,所以不可能到后边随着剧情发展再揭示设定,只能让主角有一个前置事件去了解设定)
(你非要写原来开头那些谁都不想看的几点等车几点到家几点吃饭的事倒也没人拦着)

城北三中是 z 市最好的高中,商政精英的后代与天才少年们都在这个狭窄的舞台上共舞。任谁都想夺得 C 位,任谁都想力拔头筹,但也有少数另类,吕悬就是其中之一。

(略,我想让主角找到一本书或者听到启示之类的虽然俗套但剧情都是这么展开的)
(略,男女主角碰面,故事开始)

“原来你是那种会做白日梦相信外星人存在的纯情小男生啊?” 沈久芳听完噗嗤一笑,露出鄙夷而又神秘的表情:“不过我倒是有点兴趣。” “没人求你有兴……” 吕悬皱着不耐烦的眉头抬眼看她,却讶然发现她戏谑玩味的表情倏忽消失了,取而代之的是一副全然认真的神色。“你说什么……?”“我说,我挺有兴趣的。”

吕悬感到空气正在凝结,他的脑垂体开始不受控制地分泌促肾上腺皮质激素,肾上腺收到促激素信号后的 0.3 秒内即做出反应产生大量肾上腺素,三秒后,他的心跳开始升高,与此同时全身血管开始扩张,尤其是他面部的毛细血管末梢似乎对激素更为敏感,使他开始感到脸上发热。

“就这个周末,来我家吧。” 没等吕悬做出反应,沈久芳已先开口:“到时候我去接你。”

(插叙完成,交代完故事起因和背景,切回发展时间线)

------

吕悬没料到炸雷来的这么快这么响。他分明感到环绕着他的手臂轻轻颤动了一下,随后极其耀眼的光线开始由视野中央射入脑中。(特效描写,不写了)

(这里的情节是女主关切男主晕倒,主角开天眼 1 分钟就能缓过来?你不让他先退个场引一下其它人物?)

-----

吕悬做了个梦。(随意,这里是外星人以及两族契约的伏笔,之后这个梦是真的梦还是在其它维度 /时空亲眼所见都行,随时可以展开)




第一章完。

这个第一章里埋下的可展开的伏笔有
- 启示男主发现实验的线索是哪来的
- 女主为什么会感兴趣,她知不知情
- 男主有着过于常人的反应力,他的身世随时可以翻篇
- 梦的真假以及内容的含义
- 最后两幕中间可以出场的那个人物,他是谁有什么作用



你看三体三部曲开头写的是啥,文革、雷达站、研究员,信号发向了宇宙。长篇可供展开的时间有很多,大可先把最终主题隐藏起来先写小主题。三体第一步讲的是时代和派系争斗。这个开头开完也可以先着眼学校内部的争斗,因为已经有了伏笔女主是富家千金男主是天才,他们可以产生的故事有很多,这些都是小故事。等他们就快解决小故事和矛盾的时候,给他来个大矛盾。读者刚要觉得无聊的时候甩个展开上来,这样才会看下去,包括我写的这个第一章终幕也是,前面你都以为我要写千金班花倒贴,哎其实不是,老子写外星人,吓你一跳。
2021-06-04 13:07:29 +08:00
回复了 meetocean 创建的主题 阅读 发了一本新书叫幻景时空,需要网友的建议
而且,看了第一章我笑了一下……

推动情节发展的关键是悬念,哪有人上来第一章就“主角完成实验召唤外星人”的,外星人是铺垫那高潮是什么?


上来第一章两个主要人物就开始发病做莫名其妙的事你让读者怎么看下去……
就算是套路网文主角一开始也必须要有一个戏剧冲突让它摆脱日常舒服踏入修仙之路或者什么玄幻之门都行。哪怕是雷劈撞车各种巧合都行,第一句话写主角心想今天要跳一个大绳然后啪跳成功了外星人出现了


……


这么描述不知道你能明白不
1 ... 76  77  78  79  80  81  82  83  84  85 ... 147  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2570 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 46ms · UTC 13:27 · PVG 21:27 · LAX 06:27 · JFK 09:27
Developed with CodeLauncher
♥ Do have faith in what you're doing.