编程语言 发展史 语言 计算机

【基数排序算法详解】Java/Go/Python/JS/C不同语言实现

说明 基数排序(RadixSort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在列表机(Tabulation ......
基数 算法 语言 Python Java

【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现

【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现 说明 选择排序(Selection Sort)是一种简单直观的排序算法。跟冒泡、插入排序一样,它将数列分为已排序和待排序两个区间。首先在待排序序列中找到最小(或最大)的元素,追加到已排序序列中,然后继续从待排序序列中寻找最小( ......
算法 语言 Python Java Go

【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现

【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现 简介 桥接模式(Bridge Pattern)是一种结构型设计模式,它将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,来实现二者的解耦。参与桥接的接口是稳定的,用户可以扩展和修改桥接中的类,但是不能改变接口。 ......
设计模式 语言 模式 Python Java

【建造者设计模式详解】Java/JS/Go/Python/TS不同语言实现

简介 建造者模式(Builder Pattern),也叫生成器模式,属于创建型模式。它使用多个简单的对象一步一步构建成一个复杂的对象。它允许你使用相同的创建代码生成不同类型和形式的对象。 当你希望使用代码创建不同形式的产品 (例如各种商品和订单) 时, 一些基本部件不会变,而其组合经常变化的时候,就 ......
设计模式 语言 模式 Python Java

我的语言模型应该有多大?

本文发表于 2020 年 6 月 8 日,虽然时间较久远,但现在看起来仍然是非常有价值的一篇文章。 在这个全民 LLM 的狂欢里,想测测你拿到的预算够训一个多大的模型吗?本文会给你一个答案,至少给你一个计算公式。 在自然语言处理领域,有时候我们恍惚觉得大家是为了搏头条而在模型尺寸上不断进行军备竞赛。 ......
模型 语言

云原生时代顶流消息中间件Apache Pulsar部署实操之轻量级计算框架

本篇逐层递进了解Pulsar Functions的基本概念和理论,如工作原理、处理保证模式、窗口函数;进一步搭建Pulsar函数运行环境,一步步操作演示函数也包括窗口函数的示例使用,最后通过Java语言实现原生语言接口和Pulsar函数SDK两种方式的代码示例、打包、部署和结果验证。 ......
轻量 轻量级 中间件 框架 消息

深入了解视觉语言模型

人类学习本质上是多模态 (multi-modal) 的,因为联合利用多种感官有助于我们更好地理解和分析新信息。理所当然地,多模态学习的最新进展即是从这一人类学习过程的有效性中汲取灵感,创建可以利用图像、视频、文本、音频、肢体语言、面部表情和生理信号等各种模态信息来处理和链接信息的模型。 自 2021 ......
模型 视觉 语言

在线文本翻译能力新增14个直译模型,打造以中文为轴心语言的翻译系统

经济全球化的今天,人们在工作和生活中经常会与外语打交道。相较传播性较广的英语而言,其他语种的识别和阅读对大多数人来说是一件难事,此时就需要借助语言翻译软件来帮助理解。 华为 HMS Core 机器学习服务(ML Kit)翻译功能提供了多种翻译模式,不仅可以满足应用出行购物、网络社交等日常场景,还提供 ......
直译 以中 轴心 模型 文本

C# 异步编程async/await

概述 异步这个概念在不同语境下有不同的解释,比如在一个单核CPU里开启两个线程执行两个函数,通常认为这种调用是异步的,但对于CPU来说它是单核不可能同时运行两个函数,不过是由系统调度在不同的时间分片中执行。一般来说,如果两个工作能同时进行,就认为是异步的。在编程中,它通常代表函数的调用可以在不执行完 ......
async await

从宏观上理解计算机网络模型-坐在直升机上看网络

大家好,我是风筝 今天是轻解计算机网络系列第一解,从宏观上了解网络。主要介绍网络分成模型、基本传输过程。 学习任何一种新技术都应该是这样的顺序,先从宏观上了解这门技术的基本原理和作用。这就好像生物学家研究一种生物,不能上来就解刨吧,一定是从整体上观察了这种生物的体貌和形态。这里的宏观就像是一具动物骨 ......
计算机网络 宏观 模型 网络

Leftpad事件 我们是不是早已忘记该如何好好地编程?

Leftpad撤包事件、event-stream投毒事件、Ant Design彩蛋时间,使得我们不得不开始重新思考npm生态真的存在的问题,甚至去问自己:我们是不是早已忘记该如何好好地编程? ......
Leftpad 事件

自己动手从零写桌面操作系统GrapeOS系列教程——10.NASM汇编语言

学习操作系统原理最好的方法是自己写一个简单的操作系统。 汇编语法主要有两种:Intel语法和AT&T语法。 由于大部分介绍x86汇编的书籍和资料用的都是Intel语法,毕竟x86就是Intel发明的,大家学过的x86汇编大概率也是Intel语法,所以GrapeOS的汇编也用Intel语法。 支持In ......
桌面 GrapeOS 语言 教程 系统

自己动手从零写桌面操作系统GrapeOS系列教程——7.计算机组成与运行原理

学习操作系统原理最好的方法是自己写一个简单的操作系统。 在大学计算机课程中会学到一个叫冯·诺依曼结构的东西,很多同学当时学的也不是很清楚,也就是记住冯·诺依曼结构中五个部分的名称,能应付考试。主要原因还是当时大家的计算机知识比较少,的确不好深入理解。 计算机组成与运行原理和冯·诺依曼结构密切相关,今 ......
原理 桌面 GrapeOS 计算机 教程

面向对象编程

在编写软件时,你所做的大部分工作就是创建和连接多个值和方法,让他们一起工作,以便提供应用程序的功能。面向对象编程可以帮助你更容易地,并且是声明式地实现这些功能。 在这篇文章中,你将了解到在JavaScript中开始使用类和面向对象编程方法所需要的一切。 前置知识 在阅读本篇文章之前,你需要掌握Jav ......
对象

并发编程那点儿事

线程理论 线程和进程的区别 进程 进程是操作系统分配资源的最小单位,每个进程都是一个在运行中的程序,在windows中一个运行的xx.exe就是一个进程,他们都拥有自己独立的一块内存空间,一个进程可以有多个线程 线程 线程是操作系统调度的最小单元,负责当前进程中程序的执行,一个进程可以运行多个线程, ......

学习ASP.NET Core Blazor编程系列二十八——JWT登录(2)

JWT只是缩写,全称则是JSON Web Tokens,是目前流行的跨域认证解决方案,是基于开放标准RFC7519,提供一种身份认证与信息交换的解决方案,是一种基于JSON的用于在网络上声明某种主张的令牌(token)。 通俗地说,JWT的本质就是一个字符串,它是将用户信息保存到一个Js... ......
Blazor Core ASP NET JWT

学习ASP.NET Core Blazor编程系列二十九——JWT登录(3)

JWT只是缩写,全称则是JSON Web Tokens,是目前流行的跨域认证解决方案,是基于开放标准RFC7519,提供一种身份认证与信息交换的解决方案,是一种基于JSON的用于在网络上声明某种主张的令牌(token)。今天的文章使用API接口来实现使用JWT登录功能。 ......
Blazor Core ASP NET JWT

为什么 Go 语言 struct 要使用 tags

原文链接:为什么 Go 语言 struct 要使用 tags 在 Go 语言中,struct 是一种常见的数据类型,它可以用来表示复杂的数据结构。在 struct 中,我们可以定义多个字段,每个字段可以有不同的类型和名称。 除了这些基本信息之外,Go 还提供了 struct tags,它可以用来指定 ......
语言 struct tags Go

深入理解计算机系统(CSAPP)bomblab实验进阶之nuclearlab——详细题解

前言 本实验是难度高于bomblab的一个补充实验,该实验部分题目难度已经达到CTF入门水平,且这个实验据说是上一届的某个学长原创,因此互联网上几乎找不到类似的题目。在间断地思考了几周后我最终完成了所有题目,并打算在这篇随笔里详细地给大家分享我的解题过程。 核弹样本(可本地断网运行):https:/ ......
题解 nuclearlab bomblab 计算机 系统

函数式编程:Lambda 表达式

函数式编程:Lambda 表达式 每博一文案 曾经读过的依然令我感动的句子,生活总是不如意,但往往是在无数痛苦中,但往往是在无数痛苦中,在重重矛盾 和艰难中才能成熟起来,坚强起来,爱情啊,它使荒芜变成繁荣,平庸变得伟大,使死去的复活,活着的闪闪发光, 即使爱情是不尽的煎熬折磨,像冰霜般严厉,烈火般烤 ......
表达式 函数 Lambda

协同存储,为边缘计算创造更大价值

01 数据的爆发为存储带来持续挑战 在5G时代下,视频和图片因其强大的信息承载力,已经成为数据内容的主要载体和信息传播的主要方式。而5G的大带宽、低时延、广连接的特性激活了云游戏、物联网、视频监控等场景应用,从消费互联网到产业互联网的延伸,更加促进了终端应用和数据的爆发。 这些终端和数据具有位置分散 ......
边缘 价值

Python Socket 基础多用户编程

简介 写下这篇小记的原因是想记录一下自己学习Python Socket编程的心路历程。之前在中专的时间学过一些基础的Socket编程,知道了一些比较基础的内容比如基础的socket.bind()类似简单方法的使用。编写了较为基础的应用程序,例如DNS的客户端(能够发出正确请求,但是解析数据没有成功) ......
基础 用户 Python Socket

编程的艺术:不嵌套主义

编程的艺术 不嵌套主义 之前不记得是在哪里看到的这个不嵌套主义,貌似是在B站上看到的,算是我看了这么多和编程相关的meme里面对我影响最大的。 是什么? 什么是不嵌套主义?准确的说 不嵌套主义 并不是不让你缩进,而是针对代码的结构而言,要尽量少使用嵌套关系,而尽量去使用断言,或者说将其当成一个单独的 ......
主义 艺术

Node.js 未来发展趋势

Node.js 是一种非常有前途的后端技术,它具有高性能、高可扩展性和轻量级等优点。Node.js 还可以用来开发命令行工具和跨平台桌面应用程序等,具有非常广泛的应用场景。 ......
趋势 Node js

9.4语言是一种实践2

人类符号媒介系统的发展都是尝试性的。开始是为了一些具体有限的目的,人们自觉不自觉地尝试一些媒介工具与方法,方法的有效性会强化与延伸所用的工具与方法,反之则会放弃所用的工具与方法。形成系列的工具与方法,就会固化出一个媒介系统,发展出相应的语言类型。本书对语言机器的构想,把符号媒介系统的发展更多变成了技 ......
语言 9.4

8.3现有计算机应用的一些分析2

分离的计算 学生在小学、中学学习数学时,数学完整的活动都是由纸笔媒介系统支持。数学知识印刷在课本上。解题时,问题陈述在纸上,算式可以列示在纸上,解题计算的过程也在纸上操作进行。在解题者的理解中,知识与算法,内容与过程也都是统一的,不存在需要额外的知识从这一部分过渡到另一部分。在工程技术实践中,所遇到 ......
计算机 8.3

9.3.2另一种计算机器2

本书把所构想的语言机器作为语言媒介系统工具的最新发展,语言机器也可以放在计算机器的历史中来进行分析与比较。 图灵在构想图灵机时,是从观察人用笔在纸上进行计算的过程开始的,所构想的图灵机装置就是用来模拟人类计算过程中的行为。图灵机通过建立符号,内部状态,以及输入与状态如何决定输出的规则来对计算问题建模 ......
机器

C#后缀表达式解析计算字符串公式

当我们拿到一个字符串比如:20+31*(100+1)的时候用口算就能算出结果为3151,因为这是中缀表达式对于人类的思维很简单,但是对于计算机就比较复杂了。相对的后缀表达式适合计算机进行计算。 我们就从简单到复杂,逐步实现对公式的解析(下述的代码没有经过严格验证,可能会存在极端情况的BUG,作为一种 ......
表达式 后缀 字符串 公式 字符

函数式编程:Flutter&Dart中的组合

本文翻译自: Composition in Flutter & Dart 在 Flutter & Dart 中使用组合创建模块化应用程序。 什么是组合? 在dictionary.com 中 composition 的定义为:将部分或者元素组合成一个整体的行为。简单说,组合就像堆乐高积木,我们可以将积 ......
函数 Flutter Dart amp

自动化测试如此容易!多语言自动化测试框架 Selenium 编程(C#篇)

介绍 Selenium 官网:https://www.selenium.dev/ Selenium 是功能强大的自动化测试工具集,是支持 Web 浏览器自动化的一系列工具和库的总括项目,一共包括以下三个项目: Selenium WebDriver Selenium IDE Selenium Grid ......
框架 Selenium