编程速递-庆祝Delphi诞生30周年!
庆祝Delphi 30周年纪念是一个特别的时刻。
回到1995年,也就是30年前,在微软Windows和互联网时代的曙光初现之时,Borland Delphi的创建者们无法想象,当时使用Borland Delphi构建的应用程序至今仍在运行——为全世界数十亿人服务。
30年后的今天,Borland Delphi已显得过于陈旧,难以与2025年的技术环境共存。新的Windows操作系统、数据库、VCL以及即将到来的人工智能特性,都需要更新的编译器和支持这些特性的现代开发环境,同时还需要提供足够的安全措施以抵御网络威胁。升级到最新的Delphi 12,不仅可以保持原有的生产力优势,还可以通过新技术带来的改进进一步提升应用性能和安全性。
30年前
编程考古-Delphi 30年传奇历程—探索Idera, Inc.与Embarcadero Technologies的发展轨迹
编程考古-传奇的开始Delphi(上)
编程考古-传奇的开始Delphi(中)
编程考古-传奇的开始Delphi(下)含所有版本.iso
一张Delphi团队的户外集体照
以下是Delphi在发布当年的开发者杂志上刊登的三则广告:
正在发生
加入 Ian Barker 和一些非常特别的嘉宾,一同参加我们盛大的30周年庆典活动。我们将一起回顾最受喜爱的编程语言那丰富多彩的历史,共同怀念那些难忘的精彩瞬间,惊叹于我们所取得的进步,并尝试预测未来30年编码世界将会是怎样的景象。
了解更多关于 Embarcadero Technologies 的产品,请访问 Embarcadero 官方网站。
Matthias Eißing
Matthias Eißing, Technical Consultant at Embarcadero DACH
https://blogs.embarcadero.com/matthias-eising-technical-consultant-at-embarcadero-dach/
我们怀着深深的悲痛,向长期共事的同事和朋友 Matthias Eißing 道别。Matthias 于2024年2月14日,享年53岁,突然且意外地离开了我们。
自上世纪90年代初以来,作为自由系统顾问,Matthias 开始接触 Borland 的产品,并从1997年起成为正式员工,致力于多个来自 Borland、Inprise、CodeGear 和 Embarcadero 的软件产品。在所有的技术中,Delphi 是他自从第一个版本发布就一直在使用并最为钟爱的产品。
许多人认识的 Matthias 是一位非常专业和技术娴熟的同事,他的离去留下了巨大的空白。作为所有德语区线上线下活动的主要发言人,Matthias 的知识、技能和支持一直深受客户和同事们的赞赏。
Eugene Kryukov
Eugene Kryukov, ‘Father of FireMonkey’, and incredibly talented developer
https://blogs.embarcadero.com/eugene-kryukov-father-of-firemonkey-and-incredibly-talented-developer/
我们怀着沉重的心情宣布,极具天赋的开发者 Eugene Kryukov 近日突然离世。他是 FireMonkey 之父,并在 Delphi 社区内各个层面都广受尊敬。
通常情况下,总结一位开发者在其短暂的编程生涯中的成就可能相对直接——但 Eugene Kryukov 的情况却远非如此。他的工作充满了创新、创造力和技术专长,以至于几乎无法用言语完全公正地评价这样一位全面且非凡的人才。Eugene Kryukov 的工作使你的开发成为可能。
如果你曾使用过 FireMonkey FMX 框架,那么你的代码就已经被 Eugene 的才华所影响。若你曾在 Linux 系统上顺利运行一个 Delphi GUI 应用程序,那都是因为 Eugene 开发的 FMXLinux 组件使之成为可能。而 CrossVCL,这一将仅限于 Windows 平台的 VCL 应用程序也能够愉快地在 Linux 上运行的惊人解决方案,则是 Eugene 的又一杰作。他让不可能成为了现实。
Eugene 不仅仅是一个开发者;他是一个创造者,通过自己的智慧和努力拓宽了技术的可能性边界。他对技术社区的贡献不可估量,其离去无疑是一个巨大的损失。我们将铭记他的才华与贡献,并继续受益于他留下的宝贵遗产。在这个哀悼的时刻,让我们一同缅怀这位改变了无数开发者生活的杰出人物。
聊...聊
Q:Delphi 1.0的画面为什么是一辆车的仪表盘
A(David I):回到Turbo Pascal时代,在广告中,一个女警拦下一辆高速行驶的保时捷,速度恰恰是delphi的特性之一。在Delphi之前Anders在丹麦有一家以Pascal语言为主的公司,后来被Borland内部协议收购,得到一大笔Money,并且购买了一辆涡轮增压的保时捷。
Q:丹麦似乎只产出糟糕的和优秀的程序员,这是因为?
A(David I):可能与地域有关,丹麦、挪威等类似,冬天的天太黑了,没有别的事情可做,和UK一样,天气太糟糕了,人们总是不愿意出门。
Q:为什么会有下图1的说明
A:Windows当年也是运行在Dos上的一个程序,所以才会有下图的说明1
Q:很多程序员停留在不同版本的Delphi IDE中,比如:Delphi 1.0、Delphi 7.0、Delphi 4.0等
A:特定的业务场景和存量系统,加上Delphi良好的兼容性,造就了这种局面
Marco Cantu'展示Delphi 5 安装包,这个有当时团队成员的签名
David I 展示Borland C++,这个可能是把整套Windows API打印打包
Richard Hatherall展示的Kylix
Q(lan):使用C++是一件很困难的事
A:C++中的Pointer使用时需要特别注意,确定使用C++的是要有很具体的原因,比如对精确性、精准性、可控性上的要求。C++是瑞士军刀,它也是开发语言中的外科手术刀。
不仅屏幕上看到的人,也有很多幕后的人和团队的努力,才有更好的Delphi......
争取参加下一个delphi 30s,不要被放到罐子里^_^
相关文章:
编程速递-庆祝Delphi诞生30周年!
庆祝Delphi 30周年纪念是一个特别的时刻。 回到1995年,也就是30年前,在微软Windows和互联网时代的曙光初现之时,Borland Delphi的创建者们无法想象,当时使用Borland Delphi构建的应用程序至今仍在运行——为全世界数十亿人服务。…...
YOLOv11-ultralytics-8.3.67部分代码阅读笔记-tuner.py
tuner.py ultralytics\utils\tuner.py 目录 tuner.py 1.所需的库和模块 2.def run_ray_tune(model, space: dict None, grace_period: int 10, gpu_per_trial: int None, max_samples: int 10, **train_args,): 1.所需的库和模块 # Ultralytics 🚀 AGPL-…...
一文说清楚什么是Token以及项目中使用Token延伸的问题
首先可以参考我的往期文章,我这里说清楚了Cookie,Seesion,Token以及JWT是什么 其实Token你就可以理解成这是一个认证令牌就好了 详细分清Session,Cookie和Token之间的区别,以及JWT是什么东西_还分不清 cookie、sessi…...
VueRouter 实例
分析下列代码 const router new VueRouter({mode:history,routes }) 1.const router new VueRouter({ ... })用来创建一个 Vue Router 实例,用于管理 Vue.js 应用的路由。2.mode: history: 作用:启用 HTML5 History 模式,去除…...
【算法工程】解决linux下Aspose.slides提示No usable version of libssl found以及强化推理模型的短板
1. 背景 构建ubuntu镜像,然后使用Aspose.slides解析PPTX文档,发现一直提示“No usable version of libssl found”。 2. 尝试 使用deepseek R1、kimi1.5、chatgpt o3,并且都带上联网能力,居然还是没有一个能够真正解决…...
解析浏览器中JavaScript与Native交互原理:以WebGPU为例
引言 随着Web应用复杂度的提升,开发者对浏览器访问本地硬件能力的需求日益增长。然而,浏览器必须在开放性与安全性之间找到平衡——既不能放任JavaScript(JS)随意操作系统资源,又要为高性能计算、图形渲染等场景提供支…...
小火车理论
格助词...
深度学习框架探秘|Keras 应用案例解析以及 Keras vs TensorFlow vs PyTorch
引言 上一篇文章《深度学习框架探秘|Keras:深度学习的魔法钥匙》 我们初步学习了 Keras,包括它是什么、具备哪些优势(简洁易用的 API、强大的兼容性、广泛的应用领域),以及基本使用方法。本文,…...
【01 背包】
01 背包解题思路: 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 这是标准的背包问题,每一件物品其实只有两个状…...
算法10-二分查找算法
一、二分查找算法概念 二分查找(Binary Search)是一种高效的查找算法,适用于在有序数组中快速查找目标值。它的核心思想是通过不断缩小查找范围,将时间复杂度从线性查找的 O(n) 优化到 O(log n)。 二、二分查找的流程图 以下是二…...
变相提高大模型上下文长度-RAG文档压缩-3.优化map-reduce(reranker过滤+社区聚类)
我遇到的业务问题实际上是RAG需要处理很多同一对象的日常报告,不像常识类问题,它的相关Document更多而且更分散,日常报告代表数据库里有很多它的内容,而且对象可能只在段落中的几句话提及到。top-k数量受限于大模型长度࿰…...
算法11-分治算法
一、分治算法概念 分治算法(Divide and Conquer)是一种重要的算法设计思想,通过将问题分解为多个子问题,分别解决后再合并结果,从而解决原问题。分治算法的核心思想是“分而治之”,通常包含三个步骤&#…...
Golang internals
To be continued... time.Time golang的时区和神奇的time.Parse context.Context Go Context的踩坑经历 sync.Pool sync.Pool workflow in Go 1.12 new shared pools in Go 1.13 什么是cpu cache理解 Go 1.13 中 sync.Pool 的设计与实现Go: Understand the Design of Sync.Pool…...
Flask中获取请求参数的一些方式总结
在 Flask 中,可以从 request 对象中获取各种类型的参数。以下是全面整理的获取参数的方式及示例代码。 1. 获取 URL 查询参数(Query String Parameters) URL 中的查询参数通过 ?keyvalue&key2value2 的形式传递,使用 reques…...
vscode/cursor 写注释时候出现框框解决办法
一、问题描述 用vscode/cursor写注释出现如图的框框,看着十分难受,用pycharm就没有 二、解决办法 以下两种,哪个好用改那个 (1)Unicode Highlight:Ambiguous Characters Unicode Highlight:Ambiguous Characters &a…...
11-跳跃游戏
给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 贪心算法思路分析 在遍…...
TestHubo基础教程-创建项目
TestHubo是一款国产开源一站式测试工具,涵盖功能测试、接口测试、性能测试,以及 Web 和 App 测试,可以满足不同类型项目的测试需求。本文将介绍如何快速创建第一个项目,以快速入门上手。 1、创建项目 在 TestHubo 中,…...
GHOST重装后DEF盘丢失的全面解析与数据恢复实战指南
GHOST作为一款经典的系统备份与还原工具,因其高效便捷的特性被广泛应用于系统重装和数据恢复场景。然而,许多用户在使用GHOST重装系统后,发现DEF盘(即D盘、E盘、F盘等非系统盘)突然丢失,导致重要数据无法访…...
soular基础教程-使用指南
soular是TikLab DevOps工具链的统一帐号中心,今天来介绍如何使用 soular 配置你的组织、工作台,快速入门上手。  1. 账号管理 可以对账号信息进行多方面管理,包括分配不同的部门、用户组等,从而确保账号权限和职责…...
刷题记录(回顾)HOT100 二叉树-10: 199. 二叉树的右视图
题目:199. 二叉树的右视图 难度:中等 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左 子树 只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左…...
【Java学习】类和对象
目录 一、选择取块解 二、类变量 三、似复刻变量 四、类变量的指向对象 五、变量的解引用访问 1.new 类变量(参) 2.this(参) 3.类变量/似复刻变量. 六、代码块 七、复制变量的赋值顺序 八、访问限定符 1.private 2.default 九、导类 一、选择取块解 解引用都有可以…...
安卓基础(Adapter)
想象一下,你有一堆玩具(数据),这些玩具很特别,每个玩具都是不同的,可能有汽车、飞机、积木等。现在,你想把这些玩具摆放到一个展示柜(显示的界面)里,给大家看…...
mybatis-lombok工具包介绍
Lombok是一个实用的]ava类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,并可以自动化生成日志变量,简化java开发、提高效率。 使用前要加入Lombok依赖...
React - 高阶函数-函数柯里化
在 JavaScript 和 React 中,高阶函数是指能够接收其它函数作为参数,或者返回一个函数的函数。柯里化是一种将函数的多个参数转化为一系列嵌套函数的技术,通常用于简化函数的使用和提高其可组合性。 使用前: import React,{Compo…...
数据守护者:备份文件的重要性及自动化备份实践
在信息化社会,数据已成为企业运营和个人生活的重要组成部分。无论是企业的核心业务数据,还是个人的珍贵照片、重要文档,数据的丢失或损坏都可能带来无法估量的损失。因此,备份文件的重要性愈发凸显,它不仅是数据安全的…...
【kafka系列】消费者重平衡
目录 流程 1. 消费者组重平衡(Rebalance)的流程逻辑分析 阶段一:触发重平衡 阶段二:消费者组协调 阶段三:重平衡完成 关键设计思想 2. Mermaid 流程代码 关键点总结 重平衡的影响 1. 重平衡期间的消费行为 2…...
光谱相机在天文学领域的应用
天体成分分析 恒星成分研究:恒星的光谱包含了其大气中各种元素的吸收和发射线特征。通过光谱相机精确测量这些谱线,天文学家能确定恒星大气中氢、氦、碳、氮、氧等元素的含量。如对太阳的光谱分析发现,太阳大气中氢元素占比约 71%࿰…...
Java 基于 SpringBoot+Vue 的家政服务管理平台设计与实现
博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战*✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
ABC393E/F简要题解
ABC393E 给定数组 A A A,求包含元素 A i A_i Ai的大小为 k k k的子集中最大的最大公约数。 题解: 首先思考对于整个数组所有包含 k k k个元素的子集中最大的GCD是多少,可以怎么求。 我们发现,如果一个数 x x x,数组中如果存在至少 k k …...
什么是Mustache
Mustache 是一种轻量级模板引擎,用于将变量插入到模板中生成最终的文本输出。它的设计简单且易于使用,适用于多种编程语言,包括 JavaScript、Python、Ruby、Java 等。 Mustache 的模板语法使用双大括号 {{}} 包裹变量或表达式,用…...
GGUF格式的DeepSeek-R1-Distill-Qwen-1.5B模型的字段解析
在将GGUF文件转换为PyTorch格式之前,先要读取文件并了解模型中都有什么字段,会遇到了各种参数不匹配的问题。现在,我们先读取GGUF文件的元数据字段,并希望将这些字段中的内存映射(mmap)数据转换为字符串显示…...
Java和SQL测试、性能监控中常用工具
下面我会详细列举一些在Java和SQL测试、调试、性能监控中常用的工具,并结合项目中提到的各个技术点说明如何选择合适的工具和方法。 一、Java项目常用的测试、调试与性能监控工具 单元测试与集成测试: JUnit/TestNG: 用于编写单元测试和集成测…...
CAS单点登录(第7版)13.票务
如有疑问,请看视频:CAS单点登录(第7版) 票务 概述 票务 有两个核心的可配置工单组件: TicketRegistry - 提供持久票证存储。ExpirationPolicy - 提供票证过期语义的策略框架。 工单注册 部署环境和技术专业知识…...
大语言模型入门
大语言模型入门 1 大语言模型步骤1.1 pre-training 预训练1.1.1 从网上爬数据1.1.2 tokenization1.1.2.1 tokenization using byte pair encoding 1.3 预训练1.3.1 context1.3.2 training1.3.3 输出 1.2 post-training1.2.1 token 1.2 SFT监督微调1.3 人类反馈强化学习1.3.1 人…...
从ARM官方获取自己想要的gcc交叉编译工具链接(Arm GNU Toolchain),并在Ubuntu系统中进行配置
前言 本文是博文 https://blog.csdn.net/wenhao_ir/article/details/145547974 的分支博文。 在本博文中我们完成gcc交叉编译工具gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz的下载、配置、测试。 下载自己想要的gcc交叉编译工具的源码 目标文件的名字及说…...
LDR6500:重塑充电与数据传输的新篇章
在当今快速发展的数字时代,电子设备对充电速度、数据传输效率和兼容性提出了更高要求。LDR6500,作为一款专为USB Type-C Bridge设备设计的USB-C DRP(Dual Role Port,双角色端口)接口USB PD(Power Delivery&…...
Matlab 机器人 雅可比矩阵
工业机器人运动学与Matlab正逆解算法学习笔记(用心总结一文全会)(四)——雅可比矩阵_staubli机器人正逆向运动学实例验证matlab-CSDN博客 matlab求雅可比矩阵_六轴机械臂 矢量积法求解雅可比矩阵-CSDN博客 (63 封私信 / 80 条消息…...
网络安全防护:开源WAF雷池SafeLine本地部署与配置全流程
文章目录 前言1.关于SafeLine2.安装Docker3.本地部署SafeLine4.使用SafeLine5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime Kuma公网地址 前言 对于建站新手来说,无论你选择创建的是个人博客、企业官网还是各类应用平台来推广自己的内容或是产品&am…...
vue框架生命周期详细解析
Vue.js 的生命周期钩子函数是理解 Vue 组件行为的关键。每个 Vue 实例在创建、更新和销毁过程中都会经历一系列的生命周期阶段,每个阶段都有对应的钩子函数,开发者可以在这些钩子函数中执行特定的操作。 Vue 生命周期概述 Vue 的生命周期可以分为以下几…...
Ollama 安装使用指南
rootdeepseek-1:/home/zgq/.ollama# lsof -i :11434 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ollama 29005 root 3u IPv4 47359 0t0 TCP localhost:11434 (LISTEN) 从以上提供的 lsof 输出来看,Ollama 服务正在监听 localhost:11434…...
力扣 38. 外观数列 打表 迭代 阅读理解
Problem: 38. 外观数列 🧑🏫 参考题目补充说明 🧑🏫 参考题解 迭代法 class Solution {public String countAndSay(int n) {String str "1";for (int i 2; i < n; i) {StringBuilder sb new StringBuild…...
文心一言4月起全面免费,6月底开源新模型:AI竞争进入新阶段?
名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼 Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、文心一言免费化的背后:AI成本与应用的双重驱动1️⃣成本下降,推动文心一言普及2…...
基于LSTM+前向均值滤波后处理的癫痫发作检测(包含数据集)
引言 癫痫是一种常见的神经系统疾病,患者会经历反复的癫痫发作。早期检测和预警对于改善患者的生活质量至关重要。近年来,深度学习技术,尤其是长短期记忆网络(LSTM),在时间序列数据分析中表现出色…...
Window下Redis的安装和部署详细图文教程(Redis的安装和可视化工具的使用)
文章目录 Redis下载地址:一、zip压缩包方式下载安装 1、下载Redis压缩包2、解压到文件夹3、启动Redis服务4、打开Redis客户端进行连接5、使用一些基础操作来测试 二、msi安装包方式下载安装 1、下载Redis安装包2、进行安装3、进行配置4、启动服务5、测试能否正常工…...
什么是交叉熵
交叉熵 定义公式 针对离散变量x的概率分布 p ( x ) p(x) p(x) , q ( x ) q(x) q(x) x 1 x_1 x1 x 2 x_2 x2 x 3 x_3 x3 x 4 x_4 x4… x n x_n xnp( x 1 x_1 x1)p( x 2 x_2 x2)p( x 3 x_3 x3)p( x 4 x_4 x4)…p( x n x_n xn)q( x 1 x_1 x1)q( x 2 x_2 …...
虚拟机安装k8s集群
环境准备 - 主节点(Master Node): IP地址: 192.168.40.100主机名: k8s-master - 工作节点(Worker Node): IP地址: 192.168.40.101主机名: k8s-node1 步骤 1: 配置虚拟机环境 1.1 设置主机名 在每台虚拟机上设置唯一的主机名…...
【mysql部署】在ubuntu22.04上安装和配置mysql教程
一.安装mysql 1. 更新软件包列表: sudo apt-get update2.安装 MySQL 服务器: sudo apt-get install mysql-server3.设置 MySQL 安全性: sudo mysql_secure_installation按照提示输入相关问题的回答,例如删除匿名用户、禁止 root 远程登录…...
机器学习实战(3):线性回归——预测连续变量
第3集:线性回归——预测连续变量 在机器学习的世界中,线性回归是最基础、最直观的算法之一。它用于解决回归问题,即预测连续变量(如房价、销售额等)。尽管简单,但线性回归却是许多复杂模型的基石。今天我们…...
烧结银在 DeepSeek 中的关键作用与应用前景
烧结银在 DeepSeek 中的关键作用与应用前景 在科技飞速发展的当下,DeepSeek 作为前沿科技领域的重要参与者,正以其独特的技术和创新的应用,在众多行业掀起变革的浪潮。而在 DeepSeek 的核心技术体系中,烧结银这一材料的应用&#…...
C++效率掌握之STL库:string底层剖析
文章目录 1.学习string底层的必要性2.string类对象基本函数实现3.string类对象的遍历4.string类对象的扩容追加5.string类对象的插入、删除6.string类对象的查找、提取、大小调整7.string类对象的流输出、流提取希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力…...