- 博客(24)
- 收藏
- 关注
原创 记录docker容器内使用sqlalchemy的connection.execute修改语句后不生效的问题
昨天晚上同事反馈希望把`{factor_table}`这个字段的数据类型从decimal(20,4)修改为decimal(20,8),遂一早过来修改。看起来这是一个缓存问题,因为容器重启过了,所以应该不是sqlalchemy的缓存,而是MySQL自己的,但是CREATE语句也有缓存吗,我不得其解。于是进入容器,使用cat命令查看接口代码,确实已经修改了,又重启容器,重启mysql,都不生效。就是修改一个字段的事,改之,提交git,手动去docker容器里修改,重启容器,一气呵成。然而到底是为什么呢?
2024-07-11 10:03:34 381 1
原创 SRE学习笔记
最近项目快落地了,为了显得项目很有用,需要制定一些指标来描述项目的可靠性稳定性等,之前没接触过sre的内容,所以先学习一波。SRE是指Site Reliability Engineer (网站可靠性工程师)。我的理解是,SRE就是运维的进化形态~负责把控web的稳定,并对各种突发情况做出应对。通过在网上搜的得知,SRE重要理念有:SLA (service level agreement):服务等级协议 指整个服务可靠性协议,包含SLO和SLI以及不同情况的应对措施SLO (service lev
2021-11-05 22:16:42 669 1
原创 虚拟机联网方式原理
之前一直很好奇虚拟机是如何与互联网进行通信的,正好下周计网有分享活动,乘机研究一下。首先,通过学习得知,在VM等虚拟机中常见的有三种连接模式,分别是:Brigde—桥接、NAT—网络地址转换、Host-Only—私有网络共享主机。一一介绍。为了便于理解,画了一些图。一、Brigde——桥接 桥接模式下,会生成一个虚拟网卡,当数据包进行交换时,会从虚拟网卡转发到物理网卡。此时物理网卡类似于交换机,真实系统和虚拟系统需要在同一网段下,它们可以相互访问。如图,主机与虚拟机之间.
2021-10-31 21:30:29 1816
原创 一些SQL语法
下周要开始数据库的实验课了,乘机预习一下操作。一些重要的 SQL 命令SELECT- 从数据库中提取数据 UPDATE- 更新数据库中的数据 DELETE- 从数据库中删除数据 INSERT INTO- 向数据库中插入新数据 CREATE DATABASE- 创建新数据库 ALTER DATABASE- 修改数据库 CREATE TABLE- 创建新表 ALTER TABLE- 变更(改变)数据库表 DROP TABLE- 删除表 CREATE INDEX-...
2021-10-23 20:27:23 80
原创 刷题日记——排序
今天写排序,排序里面比较有效率的有归并排序,快速排序,写起来简单但时间复杂度较高的有冒泡排序,选择排序,插入排序等。排序链表给你链表的头结点head,请将其按 升序 排列并返回 排序后的链表 。输入:head = [4,2,1,3]输出:[1,2,3,4]提示:链表中节点的数目在范围[0, 5 * 104]内 -105<= Node.val <= 105class ListNode: def __init__(self, val=...
2021-10-16 20:10:40 115
原创 动态规划刷题日记
今天写动态规划~爬楼梯假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶由于第n级台阶必须由n-1或n-2级到达,所以实际上n的方法数量就.
2021-10-10 19:05:03 80
原创 刷题日记(二)
这次来点中等的,都是一些和回溯与递归相关的题目。括号生成数字 n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。有效括号组合需满足:左括号必须以正确的顺序闭合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]提示:1 <= n <= 8from typing import Listclass.
2021-10-03 19:42:39 89
原创 一些取巧的算法题
过不了几个月就要开始找实习了,决定最近多搓点题免得菜的到时候找不到实习TAT。先整个简单的找点自信:Nim 游戏你和你的朋友,两个人一起玩Nim 游戏:桌子上有一堆石头。你们轮流进行自己的回合,你作为先手。每一回合,轮到的人拿掉1 - 3 块石头。拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false 。输入:n = 4输出:false 解释:如..
2021-09-25 21:04:17 100
原创 《程序员的自我修养》阅读笔记(四)
上次没写链接,原以为会和其他部分一样只有几页,没想到这本书一大半都是在讲链接背后的原理。那么就慢慢看吧~链接链接(Linking),顾名思义,就是将文件相互连接起来。为什么要链接呢?在写代码时我们经常会引用到外部函数,打个比方,在c语言中要使用rand()函数,则要:#include <stdio.h>#include <stdlib.h>int main(){ int a = rand(); printf("%d\n",a); retu
2021-09-19 11:21:17 99
原创 TypeScript的安装和初步使用
最近想尝试用Cocos做小游戏,跟着教程走发现3.0之后的编辑器取消了对JavaScript和CoffeeScript的支持,仅保留TypeScript编写脚本,之前没接触过,于是搜索一番,虽然我看不懂,但我大受震撼(笑)。 TypeScript算JavaScript的儿子,支持JavaScript的语法,并且引入了接口、继承、强类型等功能,弥补了js在这方面的不足,TypeScript在运行前需要编译成js代码。安装TypeScript如果之前已经装过js了,那么应该也安装了Node.j...
2021-09-11 18:53:17 168
原创 《程序员的自我修养》阅读笔记(三)
距离上次看这本书已经俩月了哈哈,好在本来看的就不多,还记得之前的内容。暑假做完项目再来看,居然发现很多当时要靠搜索的知识这里面都有讲,要是早点看到就好了-_-||这次是语言编译和链接的过程:首先,对于通过gcc编译一段程序在实际上可以分为四个步骤,预处理,编译,汇编,链接。当我们使用命令: $gcc hello.cpp时,其实就是执行了这四个步骤,并且它们是可以使用命令单独进行的。预编译在这个阶段,.cpp和.hpp会被转为.ii文件(对于.c和.h来说是转为.i文件)。$ gc...
2021-09-04 17:51:34 153
原创 抽象语法树的简单原理
抽象语法树(AbstractSyntaxTree,AST),或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。那么在通常情况下如何生成一颗AST呢?那么就需要用到以下两种工具:词法分析器(lexer)的作用是将字符序列转换为标记(token)序列,并将序列作为流输入到语法分析器(parser)中,词法分析器通常不会关心标记之间的关系。语法分析器(parser)获取从词...
2021-08-28 19:56:18 1186
原创 Go使用exec包调用可执行文件
最近用Go语言做项目,发现有些功能使用go非常难实现,但是使用其他语言又比较简单,所以寻思能不能让go调用其他文件,然后执行后获取传递的参数。搜了下发现exec.Command貌似可以实现这个功能...
2021-08-21 21:00:44 3316
原创 Golang的基本语法内容(二)
ps:之前想选一个好用点的ide写go,一开始在网上看到IDEA有go的插件,翻了老半天没找到,还以为是要装企业版,后来看了github的源码才发现早没更新了,无奈用vscode,结果插件装上后相关tools又下不下来(貌似与谷歌服务器有关,报错dial tcp 216.58.200.241:443: connectex: A connection attempt failed),后来添加了国内的镜像,好了。go env -w GOPROXY=https://goproxy.cn注意,首先需要正.
2021-08-14 17:00:04 167
原创 Golang的基本语法内容
由于最近负责项目的语言解析部分,需要接触到各种不同的语言,因此特地来看看Go语言的语法。golang是一种面向过程的语言,它没有类的概念,同时语法比较简单直白。 根据go的官方描述,这种语言的优势在于服务端并行具有更高的开发效率,因此广泛运用在Web服务器中。所以即使平时不用go语言,学会读懂也是很有好处的。go和java比较类似,具有包的概念,源文件的非注释第一行需要指明文件的包使用import关键词声明导入的包funcmain为主函数入口package mainimpo...
2021-08-07 10:29:59 208
原创 ANTLR4学习总结
近期由于学校项目接触到了ANTLR4这一语法解析分析器。通过ANTLR4我们可以把各种语言文件细分拆解到每一句话,每一个组成子项。因此可以使用ANTLR4对程序的内容进行监控和排查。比如,当一个大型项目中堆栈出现bug时,可以通过这样的语法解析工具将出错的程序段追溯的其源头是哪一个文件修改所导致的,并且可以具体到某一函数、类。 使用ANTLR4首先需要安装到环境中,可以参考之前的安装文章https://blog.csdn.net/a12as3d7/article/details/118855872...
2021-07-31 21:39:11 438
原创 docker以及docker-compose的常用命令
最近在学习docker和docker-compose的一些使用,所以记录一下一些常用命令,便于记忆。docker常用命令:docker help 查看帮助sudo docker images 查看镜像sudo docker ps 查看容器docker build -t NAME:XXX . 在当前文件夹创建一个名字为NAME,Tags为XXX的镜像(注意最后有个点代表当前目录)sudo docker exec -it 容器ID /bin/bash 进入指定容器sudo do..
2021-07-24 21:58:44 167 1
原创 ANTLR4的安装和简单使用
在很多情况,我们需要对不同语言进行语法分析,以此更方便快速地了解一段代码具有哪些要素。这里来介绍一下ANTLR4,一种多语言支持的语法分析框架。安装有两种方式,如果仅需要在IDE中使用可以直接在其中添加插件,如果要在系统中使用就需要下载.jar文件并配置环境变量。安装IDE插件以IDEA为例,点左上角:文件->设置->插件,搜索ANTLR4即可找到插件,下载后重启即可。使用示例新建一个项目,在项目中新建文件,并以.g4结尾即可创建语法文件。// Define a g
2021-07-17 14:30:42 2432
原创 Java复习(类与对象和高级特性)
下周一Java期末考试,希望有个好成绩~(๑・ω・)੭学了一学期,感觉Java相比c++有更多的封装好的功能,然后就是更加安全了,因为没有指针的运用,因此较少出现编译通过但是运行出现堆栈溢出之类的bug。按照课本将学的内容排个序,分别是类和对象,高级特性,实用类和接口,异常处理,图形界面,输入输出,多线程,网络编程,JDBC技术类和对象 Java的类和C++的大体类似,C++的函数在java里叫方法。在C++中实例化对象只需要声明就行,但在Java中还必须为对象分配内存...
2021-07-10 20:35:50 113
原创 《程序员的自我修养》阅读笔记(二)
距离上次笔记才过去几天,一会的时间Windows 11就发布了,确实和泄露版是一样的。个人感觉唯一比较新奇的就是内置了安卓模拟器,除此之外就是UI界面的美术风格调整和商城应用的更新,还有对多核性能的小幅度优化(实在是无伤大雅(滑稽))。操作系统都有啥(二) 上次吹到了进程的概念,现在该吹线程了。以前想到过一个比喻,自己感觉还挺形象:一个进程就是打开一局英雄联盟,十个线程就相当于游戏里的十个英雄。通过这个例子应该可以理解,线程是属于进程的,一个进程可以有多个线程。 重点来了,...
2021-06-25 21:33:13 102
原创 《程序员的自我修养》阅读笔记(一)
这本书是2009年出版的,但是其理论知识放在2021年仍然管用,十多年计算机的框架并没有发生大的变化。这本书讲解了一门编程语言是如何诞生的,通过这本书,可以理解一些操作系统和软件的运行机制和原理。简要的计算机发展 我们了解过计算机原理就会知道,早期的计算机基本上围绕着CPU、内存和I/O这三个部分(似乎现在也是)。这些部件通过总线(BUS)连接,CPU和内存的频率一致。而I/O设备的频率则要慢的多,那么,I/O设备与总线频率不一致,这怎么办?所以,为了协调I/O设备与总线的速度,就有相...
2021-06-21 21:03:44 212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人