Git通讲-第一章:起源
前言这一篇文章其实我筹谋了好久了,从七月暑假开始之时突然对git的源码感兴趣,想要深入了解一下,也确实看了些资料,但最后还是战线拖太长了,注意力转移到其他处了,写博文的事情就一直在todolist呆到现在🫠。之前也略微写了两篇博文,第一篇大致的记录了git的基础知识包含一些vim的基础知识,第二篇则是主要关注git本地和远程仓库之间的操作,感兴趣的可以爬楼去看。本打算一篇博客就讲完的,但是学了一下,发现可讲的东西确实有些丰富,就打算开一个系列,系统地讲讲Git。这篇文章也是系列的开始之作,希望能有头有尾吧orz。也算给我锻炼下文笔,努力给大家讲得明明白白的。
引文要讲Git是什么,我打算还是先让大家了解下git诞生的目的是什么——版本控制🗄️
版本控制简介版本控制系统(Version Control System,简称VCS)是一种软件工具,用于跟踪文件的更改历史,记录代码在不同时间点的状态。它的核心功能是允许开发者保存项目的多个版本,并能够在需要时回溯、对比、合并这些版本。通过版本控制,团队中的每个开发者都可以轻松地协同工作,同时确保代码的版本历史清晰可追溯。
为什么版本控制对软 ...
Obsidian个人知识管理工具体验分享
前言之前都是在用Typora作为我的文字记录工具,但暑期的时候看到RSS突发奇想,想要搞一套完整的信息流,于是就在寻找合适我的笔记软件,最后选择了Obsidian。obsidian自从9月初使用以来了已将近两个月了,当初忘记写初体验了,现在补上一篇充分体验后的产品报告。
竞品比较当初本就抱着all in one的目的,想找一个功能全面的笔记软件,能满足我的“跨平台记录阅读”的需求,当时比较了市面上主流的几款笔记软件——Notion、Obsidian、印象、Flomo。当然还有幕布、、Bear、石墨、Logseq,但这些都因为精力有限,各种原因导致没能在一开始吸引我进行更深入的体验。
印象笔记印象笔记就纯纯炮灰🤦♂️,弹广告我就接受不了一点,各种功能都要付费,更其他俩个一比就是垃圾,特别是国产收购后就开始日渐臃肿发福。还是那句话“我本可以忍受黑暗,如果我不曾见过光明”。
FlomoFlomo的设计的核心理念是“卡牌笔记”,适合碎片化、片段性的文字记录,经过轻度体验不切我本人需求,但是其产品概念还是不错的,很有发展前途,或许将来我会使用。个人感觉flomo和anki联动一下或许能有更好 ...
Tailwind CSS初体验
还是把我想说的话放前面吧,对于独立React小项目的快速开发来说,Tailwind是值得尝试的,我也就仅仅讨论在我目前的状态下(苦逼大学生🤓,个人独立项目(没前端队友,没专业设计)),被拉去打比赛,最后还是“能者多劳”,前端的活最终还是一个人大包大揽🚬🚬🚬。
前言好久没写博文了,最近在努力从安卓转前端,一直都在学(技术力不够不配写博文)。看了如何在 React 中使用 CSS 样式 — How to CSS Style in React (robinwieruch.de)这篇文章,了解了下Tailwind Css,被其的高效惊喜到了。
我个人的感觉Tailwind是在传统的css上抽象了一层,一切优缺点都是有此带来的。不像是Sass,只是作为css的一个拓展超集,爱用就用,不用不用。
缺点团队配合本来奇怪为什么没看到什么主流项目在用,搜索了下主要争议点还是在-目前不适合团队配合,毕竟原子化CSS是学习成本的东西也没流行到成为一种规范,在需要多人配合中大型项目不好合作。目前这东西还得是公司自上而下的推行才有可能在团队项目里使用。这一点是不得不去考虑的,毕竟偏离主流的技术在大型项目 ...
C盘扩容
C盘扩容
核心理念就是将与C盘相邻近的磁盘彻底清空, 然后通过磁盘管理的拓展卷现实C盘扩容.
前言鄙人不才,分盘的时候C盘分的不够大,导致C盘一直处于爆红状态,遂借加装硬盘(当然如果内存够用可以不加)之机给C盘扩容一下。没想到遇到不少问题,于是有了这篇文章。希望能给有相关需要的xdm一定的帮助。
具体操作1.复制文件
打开磁盘管理器:右键任务栏的🪟windows图标
这是我改后的磁盘分区,如果你的C盘右边紧挨的磁盘(之后文章里默认是D盘)里没安装什么流氓软件(360,百度网盘之类的),那你很幸运,很简单就能把目标完成了。
如果很不幸你像我一样安装了百度网盘,360zip,迅雷之类的会在后台偷偷运行的软件,在后面的删除文件环节你就得好好看了🤷♂️
分盘:右键D盘(我这里因为已经改好了,所有是G盘),点击压缩卷,分出足够空间,然后新加卷
转移资源:将D盘的资源全部复制到新加卷中
2.清空D盘
这是本篇文章的初始写作的目的,有些文件是真的逆天,无法正常彻底删除
接下来下内容根据本人的亲身体会,大致麻烦程度逐渐递增,致敬传奇耐删王🖖
I.普通文件直接删就完事了,一股 ...
【计算机科学概论】程序设计层
程序设计层程序设计层讨论的是如何使用计算机系统,引出机器语言
低级程序设计语言
计算机操作
可编程&存储&检索&处理
[[机器语言(Machine Language)]]:由计算机直接使用的二进制编码指令构成的语言
[[硬件依赖性]]: 机器代码因机器的不同而不同,即每种类型的CPU都有它能理解的机器语言
[[解决机器语言不同的方法]]
[[虚拟机(Virtual Machine,VM)]]
[[JVM]]
Pep/8–[[计算机科学概论原书第5版.pdf#page=103|计算机基础科学概论Pep/8]]
体系结构![[Pasted image 20240808175802.png]]
指令格式![[Pasted image 20240808180717.png]]
8位指令说明符(可选的):说明要执行上面操作和如何解释操作数的位置.指令说明符的格式根据表示一个具体操作所用的比特数不同而不同![[Pasted image 20240808180741.png]]
操作码(4bit-8bit):长度在4bit到8bit不等
4 ...
【计算机科学概论】操作系统层
操作系统层操作系统层负责将硬件和软件结合起来,负责计算机资源的分配
操作系统(operating system,OS):管理计算机资源并为系统交互提供界面的系统软件![[Pasted image 20240809203501.png]]
软件分类
应用软件(application software): 帮助我们解决现实世界问题的程序
系统软件(system software): 管理计算机系统并与硬件进行交互的程序
多道程序设计(multiprogramming): 同时在主存中驻留多个程序,由它们竞争CPU的技术
[[操作系统发展史]]
[[批处理]]
[[分时]]
虚拟机(virtual machine)
[[内存管理(memory management)]]–[[计算机科学概论原书第5版.pdf#page=235|计算机科学概论10.2内存管理]]
主存:所有程序在执行时都存储在主存中.这些程序的数据也都存储在主存中,以便程序能够访问它们
逻辑地址(logical address):对一个存储值的引用,是相对于引用它的程序的
物理地址(physical a ...
【计算机科学概论】硬件层
硬件层硬件层从构成计算机的硬件角度研究计算机如何如何使用电信号来表示和操作二进制值
门和电路
电信号
电平
[[门(gate)|门(gate)]]:对电信号执行基本运算的设备,介绍一个或多个输入信号,生产一个输出信号
门的分类
门的构造
[[电路(circuit)]]:相互关联的门组合,用于实现特定的逻辑函数
[[布尔代数(Boolean algebra)]]
计算部件–[[计算机科学概论原书第5版.pdf#page=95|计算机科学概论第5章]]
[[计算机硬件]]
[[计算机科学概论原书第5版.pdf#page=99|计算机科学概论【5.2存储程序的概念】]]
冯诺依曼体系结构![[Pasted image 20240807224846.png]]
存储单元
算数逻辑单元(Arithmetic/Logic Uint , ALU): 执行算数运算(加减乘除)和逻辑运算(俩个值的比较)的计算机部件
[[寄存器(register)]]:CPU中的小块存储区域,用于存储中间值或特殊数据
输入单元
输出单元
✨控制单元(control unit) ...
【计算机科学概论】信息层
信息层信息层介绍计算机科学中如何理解和处理信息,通过数字化的方法将现实的模拟信号转化为数字信号.以二进制的形式记录
数字
数的分类
自然数: 从1开始的正整数(1, 2, 3, …)。有时也包括0(0, 1, 2, 3, …)。
整数: 包括所有自然数、它们的负数以及0(… -3, -2, -1, 0, 1, 2, 3, …)。
有理数: 可以表示为两个整数之比的数(a/b,其中a和b都是整数且b≠0)。所有整数都是有理数,因为它们可以表示为自身与1的比(如5可以表示为5/1)。
实数: 包括所有有理数和无理数。无理数是不能表示为两个整数之比的数(如√2, π)。
复数: 包括实数和虚数。形式为a + bi,其中a和b是实数,i是虚数单位,满足i² = -1。
基数(base)
二进制计数系统
进制转换
数据表示法
数据(data): 基本值或事实
模拟数据(analog data): 用连续形式表示的信息
数字数据(digital data): 用离散形式表示的信息
信息(infomation): 用有效的方式组织或处理过的数据
...
ios原生开发初体验
ios原生开发初体验🍎前言机缘巧合之下参加了“移动应用创新赛”,借此机会被迫主动接触ios应用的开发相关方面的知识与技术,也因此有了这篇文章,来记录下我的感受。从开始学习到这篇文章开始撰写,约一周时间,估摸着每天断断续续敲三四个小时左右,自认为收获颇丰。
MacOS操作系统本打算直接谈Swift的,但不得不先提一嘴Mac,想要搞apple相关应用的开发就离不开要有台Mac(虚拟机除外)。我觉得这一步就难倒许多大学生了,显然目前国内的绝大多数大学生的操作系统是Windows。本人平时也是用习惯了Windows,一时间上手Mac真是哪哪都别扭,在这就折腾了好一会。
Swift语言我一上来就直接跟着apple官网的开发者教程走的,基础语法就嫖了眼菜鸟教程的目录,就按照官网教程直接开始敲代码了
语法糖讲讲我喜欢的几个语法糖(不全),就一些语法看和python很像
换行:直接用换行来分割代码行,省去了敲;的步骤,必须点赞。我认为分号的意义在软件开发中就是为了恶心人,一行代码写完直接回车既能分割代码有能保持可读性,何乐而不为呢,没必要多此一举以;结尾。
类型推断:这让定义变量时又可以少敲一点 ...
HTML学习
HTML基础学习记录前言知识是互通的嘛,个人粗浅的感觉就是Android中xml和markdown的杂交(这么说可能是有点倒反天罡了,但毕竟本人接触前两者更早)入门倒是挺快的,也感觉没啥好系统写的。
学习资料HTML 入门 - 学习 Web 开发 |MDN的 — Getting started with HTML - Learn web development | MDN (mozilla.org)
HTML 教程 | 菜鸟教程 (runoob.com)
denysdovhan/learnyouhtml: Learn you how to create your first web page (github.com)👈英文好的可以试试这个,边学边练
什么是HTMLHTML(HyperText Markup Language,超文本标记语言)是一种用于创建网页的标准标记语言。它被用来描述网页的结构和内容。HTML使用标记标签(tags)来定义不同的元素,如标题、段落、链接、图片等。每个标签都以尖括号(< 和 >)包围,并通常成对出现,一个开始标签和一个结束标签。
...