语言 基础 笔记 教学

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

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

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

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

算法学习笔记(18): 平衡树(一)

平衡树 建议在清楚二叉搜索树的所有操作之后食用本文。本文将略过部分基础知识 本文主要会讲到4中较常用的平衡树: Treap FHQ-Treap(无旋Treap) Splay WBLT 其实WBLT不怎么常用,但是我个人最喜欢用 我将会在另一篇文章中讲述其他的平衡树,如AVL,红黑树,替罪羊树等。 可 ......
算法 笔记 18

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

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

深入了解视觉语言模型

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

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

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

计网学习笔记三 MAC与LAN

在上一讲中,我们学习了链路层可以提供的服务😶:framing,link access,reliable delivery,error detection&correction。这一讲我们从link access中的broadcast接入方式深入,学习这种接入方式下的协议,以及衍生出的MAC地址,最 ......
笔记 MAC LAN

计网学习笔记二 Link Layer Service

在上一周的计网学习了network和Internet的总论。在这一周开始的未来几讲将集中在链路层link layer,并且会有相应的计网lab完成。在这一讲中,我们主要关注链路层提供的服务。 课程资料地址:https://cs.nju.edu.cn/lwz/networks/CH2-Direct%2 ......
Service 笔记 Layer Link

个人数据保全计划:(2) NAS基础知识

前言 距离去年国庆入手了NAS至今有好几个月时间了,NAS折腾起来有点麻烦,且实际作用因人而异,并没有想象中的好用,所以说好的这个系列一直没有更新~ 还有另一方面的原因,这些NAS的系统基于Linux深度定制,对于我这种习惯用Linux的人来说,用着很别扭不自在,处处受限制… 所以在使用了这台威联通 ......
基础知识 基础 知识 数据 个人

Qt 学习笔记 - 第二章 - 添加图片、布局、界面切换

Qt 学习笔记全系列传送门: Qt 学习笔记 - 第一章 - 快速开始、信号与槽 【本章】Qt 学习笔记 - 第二章 - 添加图片、布局、界面切换 Qt 学习笔记 - 第三章 - Qt的三驾马车之一 - 串口编程 + 程序打包成Windows软件 Qt 学习笔记 - 第四章 - Qt的三驾马车之二 ......
布局 界面 第二章 笔记 图片

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

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

SpringMVC基础源码分析(一)

实现Controller的三种方式分析 每种实现的方式对应的HanderAdapter都不同。 实现Controller接口 该接口对应的HanderAdapter为SimpleControllerHandlerAdapter。 使用案列: public class LeController imp ......
SpringMVC 源码 基础

Blazor项目在VisualStudio调试时配置运行基础目录

最近在使用 Blazor 开发管理后台时遇到了如下的问题,我这里后台整体采用了 AntDesignBlazor 组件库,在上线之后发现ReuseTabs组件在使用过程中,如果默认 / 没有指定为项目的base href,打开标签页后,相互切换会导致url错误。 本地开发的时候项目是直接启动运行的,所 ......
VisualStudio 基础 目录 项目 Blazor

为什么 Go 语言 struct 要使用 tags

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

VMware虚拟机扩容--保姆级教学

由于项目逐步的完善,需要搭建的中间件,软件越来越多,导致以前虚拟机配置20G的内存不够用了,又不想重新创建新的虚拟机,退而求更精,选择扩容。 1.外部先进入虚拟机设置,将磁盘先扩展,具体提示如下图所示: 2.磁盘扩展成功后登进虚拟机,先查看扩容前内存的基本情况。 # 查看分区使用情况 df -h 3 ......
保姆 教学 VMware

Python Socket 基础多用户编程

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

明解STM32—GPIO理论基础知识篇之八种工作模式

一、引言 在之前围绕STM32的GPIO的基本结构进行了介绍,图1为STM32的5V容忍的GPIO口内部基本结构图,图2为GPIO的基本结构中各个模块部分的概述。 阅读GPIO基本结构的内容能够对GPIO的工作模式有更深的了解。正是由于GPIO的结构中包含了多样性的电路和模块,因此进行合理的配置组合 ......
基础知识 理论 模式 基础 知识

MySQL查看数据库性能常用命令和实战教学

MySQL查看数据库性能常用命令 # 列出MySQL服务器运行各种状态值 show global status; # 查询MySQL服务器配置信息语句 show variables; # 慢查询 show variables like '%slow%'; # MySQL服务器最大连接数 show v ......
实战 命令 性能 常用 数据库

配运基础数据缓存瘦身实践

在基础数据的常规能力当中,数据的存取是最基础也是最重要的能力,为了整体提高数据的读取能力,缓存技术在基础数据的场景中得到了广泛的使用,下面会重点展示一下配运组近期针对数据缓存做的瘦身实践。 ......
缓存 基础 数据

【LeetCode二叉树#17】在二叉搜索树中插入或删除某个值(涉及重构二叉树、链表基础、以及内存泄漏问题)

二叉搜索树中的插入操作 力扣题目链接(opens new window) 给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。 注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索 ......
LeetCode 内存 基础 问题 17

9.4语言是一种实践2

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

组合数学笔记-排列与组合

排列与组合 排列 排列的定义与基本性质 定义 设一个集合 $S$ 中有 $n$ 个元素,从中有序地取出 $m(0\leq m \leq n)$ 个元素排成一列, 称为 $S$ 的一个 $m$ 排列。两个排列相同,当且仅当元素相同且顺序相同。我们记 $\text{P}_n^m$ 、 $\text{A} ......
组合数学 数学 笔记

组合数学笔记-特殊计数数列

特殊计数数列 斐波那契数列 斐波那契数列的定义与基本性质 历史背景 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。 定义 斐波那契数列 $F_n$ 有递推定义 $ ......
组合数学 数列 数学 笔记

VisionPro学习笔记(1)——软件介绍和基本使用

前言 自己使用visionPro已经有段时间了,最近也一直在研究其算子的理论,为了加深印象,计划将自己的学习笔记整理在博客园,当然其官方文档对如何使用及其各种算子都有详细的介绍,所以这里的笔记仅仅为个人加深理解而做,就当是个个人日记,日后也好查找。 !!! 为了方便,大部分图片来自网络,所以如有侵权 ......
VisionPro 笔记 软件

视觉SLAM基础-李群和李代数

李群和李代数 引言 ​ 为什么会有李群和李代数的引出。在通常的 SLAM 中,我们估计的无非就是在极短的时间内物体的一个相对位姿运动,然后进行累加,即可得到物体的当前位置,即 SLAM 中的定位问题,但是往往该运动在较短的时间内其变化量是极小的。 ​ 通常其运动变化我们可以使用旋转加平移进行表示,即 ......
代数 视觉 基础 SLAM

基于图的路径搜索技术基础知识

基于图搜索的路径规划方法基础概念,介绍了配置空间,工作空间等相关概念,引出了深度优先搜索和广度优先搜索并进行了对比。 ......
基础知识 路径 基础 知识 技术

算法基础模板

时空复杂度分析 一般ACM或者笔试题的时间限制是1秒或2秒。在这种情况下,C++代码中的操作次数控制在10^7^~10^8^为最佳。下面给出在不同数据范围下,代码的时间复杂度和算法该如何选择: n ≤ 30,指数级别,dfs+剪枝,状态压缩dp n ≤ 100 => O(n^3^),floyd,dp ......
算法 模板 基础

Git基础操作及协作流程

一整套流程帮你实践整个 Git 操作基础及协作流程。 来源:https://docs.microsoft.com/zh-cn/learn/paths/intro-to-vc-git/ Git 介绍 配置 Git 确认已经安装 git git --version 输出 git version 2.30 ......
流程 基础 Git

Terraform基础入门 (Infrastructure as Code)

像写代码一样管理基础设施。 Terraform 使用较为高级的配置文件语法来描述基础设施,这个特性让你对配置文件进行版本化管理后,就等于对生产环境的基础设施进行类似于代码一样的版本化管理,而且这些基础设施的配置文件可以复用或者分享。 ......
Infrastructure Terraform 基础 Code as

linux 基础(10)进程管理

使用 ps 观察程序 ps -l ps程序可以查询当前在运行的进程信息。ps -l可以列出详细的信息,默认仅列出当前 bash 相关的进程。 sudo -i ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 2133 2 ......
进程 基础 linux