返回首页
24小时热榜
Kedr是一种用于游戏的编程语言,主要源自F#和Rust。它的设计思路是创建一个具有自动引用计数的游戏,然后逐步将影响较大的类型切换为手动内存管理。以下是我的一些发现。
我们习惯于在每个文件的开头进行导入,但将所有导入集中在整个crate的一个地方可能更好。这样,代码可以在文件之间自由移动,同时也鼓励使用较小的文件。打开一个文件并立即看到有用的代码也让人耳目一新。
当大括号始终表示闭包时,这非常有益。这为基于缩进的代码结构提供了有力的支持。
对象树的创建在没有括号和逗号的情况下调用函数,看起来更自然。
顺序代码的强制执行,即元素只能依赖于上面定义的内容,开启了新的可能性。其中之一是将类型构造函数拆分到多个文件中,这些文件可能位于不同的crate中。一个例子是如何利用这一点:一个crate包含UI控件的定义和布局代码,而其他crate则通过数据和计算扩展控件类型,这些是其渲染所必需的,从而导致多个可切换的后端,如Vulkan或Skia。将这些数据维护在外部会使代码变得复杂。
有一种趋势是逐渐远离类型层次结构。我认为更好的做法是降低其复杂性并重新评估。复杂性的一个主要来源是能够重写现有方法的实现,因为代码被添加到一个类型中,而没有保证它会一直存在。这样的保证将使得保留层次结构变得更有价值。
我在调查我们语音系统的一些bug,并询问支持团队在哪里可以找到调试信息和事件日志。他们告诉我在界面中应该去哪里查看这些信息,并向我保证他们检查了日志,这个事件确实存在。结果发现这些功能和信息在界面中根本不存在,无法以任何方式获取。支持团队的消息中提到的虚构功能大多是由人工智能生成的。首席执行官们告诉我们通用人工智能(AGI)即将到来,但实际上这只是一些不可靠的信息,人工智能甚至连自动售货机都无法补货。
随着亚马逊裁员,许多优秀的产品经理、设计师和工程师突然有了空闲时间(除非你持有签证)。与其单独找工作,不如组建小团队一起构建和推出一些项目?
我在过去几个月里一直在忙于一个项目,想和大家分享一下。我创建了 vetr.is,这是一个与众不同的虚拟机托管服务。
### 有什么特别之处?
- **100% 可再生能源** - 所有服务器均使用冰岛的地热和水电能源运行
- **隐私保护** - 支持 Tor 网络,接受匿名支付
- **透明定价** - 按照实际使用量付费,没有隐藏费用
- **服务器位置** - 冰岛(99.9% 的正常运行时间,欧盟/美国之间延迟极小)
- **性能** - 配备 AMD Ryzen 和 Epyc 处理器,使用 NVMe SSD
- **安全性** - 完整的主机磁盘加密,隔离网络,定期审计
### 我提供的内容
我正在寻找 10 位测试者来试用这个服务并给我诚实的反馈。前 10 位注册用户将获得 15 欧元的信用额度,足够运行一个不错的服务器(2 核心,2GB 内存,30GB NVMe)一个完整的月。
### 我为什么要这样做?
因为我想建立一个真正尊重您隐私的服务,而不是让您每一分钱都花得不明不白。我更希望从懂行的人那里获得真实的反馈,而不是花费数千美元进行市场营销。
### 我希望您能做的
- 尝试一下(即使只几天)
- 给我诚实的反馈:哪些地方不好,哪些地方好,缺少什么
- 如果发现错误,请报告
- 告诉我您对定价模型的看法
- 提出您实际会使用的功能建议
### 无聊的内容
适用标准条款、隐私政策和可接受使用政策(禁止加密货币挖矿、非法活动等)。
如果您感兴趣,只需在 vetr.is 注册,并通过私信(或评论,您更喜欢哪种都可以)发送您的账户号码的前 4 个字符(例如:XXX3),我将为您申请信用额度(前 10 位用户)。开始时无需信用卡或其他任何东西。
### 有问题吗?
随时问我!我在这里回答有关技术栈、基础设施、隐私功能或您感兴趣的任何其他问题。
大家觉得怎么样?这是解决您面临的问题的方案吗,还是我偏离了方向?
### 简而言之:
建立了一个尊重隐私的虚拟机托管服务,给予前 10 位测试者 15 欧元的信用额度(一个小型服务器一个月),希望获得社区的真实反馈。
Fortinet的FortiGuard实验室发布了一份关于针对乌克兰组织的网络钓鱼活动的详细分析。攻击者使用了一种不寻常的SVG文件作为初始感染载体,最终导致了信息窃取恶意软件Amatera Stealer和隐秘加密矿工PureMiner的部署。
该SVG文件触发了一个受密码保护的压缩档案,里面包含一个CHM文件,该文件启动了一个名为“CountLoader”的加载程序,支持无文件执行、进程空心化和DLL侧加载。
这种通过基于SVG的链条传递的窃取者与矿工的组合,显示出网络钓鱼活动的日益复杂化,尤其是针对关键行业的攻击。
完整报告请访问:
https://www.fortinet.com/jp/blog/threat-research/svg-phishing-hits-ukraine-with-amatera-stealer-pureminer
'qwe' 是一个纯用 Go 语言编写的文件级版本/修订控制系统。
qwe 一直专注于文件级版本控制系统,精确跟踪单个文件的变化。随着此次新版本的发布,增加了对组跟踪的支持,同时保持了我们的核心设计理念。
qwe 允许您将相关文件打包成一个命名快照,以便于跟踪和回滚。
组创建:创建一个逻辑组(例如,“项目 X 资产”、“配置文件”),其中包含多个单独的文件。
统一跟踪:当您对该组进行快照时,qwe 会捕捉组内所有文件的当前状态。这使得回滚一组相关更改变得非常简单。
您所需的灵活性:单文件与组跟踪:
qwe 的一个关键设计选择是即使在组内也保持文件级跟踪的持久性。这为您提供了无与伦比的灵活性。
例如:假设您在一个名为“功能-A”的组中跟踪文件 A、B 和 C。您仍然可以自由地单独提交文件 A 的独立修订,而不影响 B 和 C 的组快照历史。
这意味着您可以:
- 为组内所有文件维护一个干净、统一的历史记录(组快照)。
- 仍然可以在组的范围之外执行细粒度的单文件回滚或提交。
这种方法确保了 qwe 仍然是一个灵活、非侵入性的文件修订系统,您可以依赖它。
嘿,HN!我是Emotive Engine的创始人。我已经为此工作了超过两年,今天终于开源了它。
核心理念:大多数动画库的工作单位是毫秒,而音乐的单位是节拍。这造成了不匹配——如果为500毫秒硬编码一个弹跳动画(在120 BPM下完美),切换到90 BPM时,一切都会漂移,因为500毫秒现在相当于0.75节拍。
Emotive Engine使用音乐时间作为基本单位。你可以用节拍来指定动画,它们会自动转换为:
- 120 BPM时为500毫秒
- 90 BPM时为667毫秒
- 170 BPM时为353毫秒
改变节奏,所有内容都会自动调整,无需重新计算。
这个引擎是为AI界面(聊天机器人、语音助手)而构建的,但也适用于任何实时角色动画。支持纯Canvas 2D,在移动设备上可达到60 FPS,已有2532个测试通过。
现场演示请访问<a href="https://emotiveengine.com/demo" rel="nofollow">https://emotiveengine.com/demo</a> - GitHub上的英雄横幅是用这个引擎生成的。
欢迎提出任何技术问题!采用MIT许可证。