LaTeX 排版技巧续集:从数据结构作业到数据库作业

文章目录 这篇文章算是上一篇 整理和分享一些数据结构作业用到的 LaTeX 排版技巧 的一个补充,主要的区别在于数据库课程是用中文上的,加上要交的题目类型还是有些区别的,所以作业的内容排版上就不同了,因为数据结构作业排版的那篇文章已经把大部分的内容讲掉了所以这里就只说那里面没提过或者相对它有较大修改的部分。 基础内容 封面 封面的结构和数据结构作业用的基本是一样的,不过因为内容里有中文,需要使用中文的 TeX 环境,并且设置文档编码为 UTF-8 以避免构建出来的文档乱码,这些改变只需要把原来的 \documentclass[titlepage]{article} 改成 \documentclass[ »

浅析 MySQL InnoDB 存储引擎中的事务、并发与锁

文章目录 一点背景 之前数据库课程的最后一次实验中有一项是验证数据库并发操作带来的问题以及事务的各个隔离级别对这些问题解决的程度,在测试过程中发现有些情况和课本的描述并不一样,一开始以为是隔离级别设置的步骤之类的出了问题,后来了解到其实各个数据库的实际实现都多少有自己对系统并发性能等方面的考虑,没有完全依照标准来完成。再之后在图书馆发现了一本讲 MySQL InnoDB 存储引擎的书,就仔细去了解了一下关于这个存储引擎的事务、并发和锁等方面的知识,同时看了一些 MySQL 的文档以及几篇博客,于是就自己对当时实验的用例进行修改设计了一些新的测试和验证代码,并把了解到的相关内容整理成了这篇文章。 准备工作 创建数据库和测试数据 DROP DATABASE IF EXISTS trans_test_ »

从《编程之美》中的一道面试题开始谈谈位操作

文章目录 在计算机的内部,数据都是使用二进制表示的,而对于计算机来说,进行基于二进制的位操作,效率要比进行除法、取余等操作高很多。最常见的对代码的优化就包含将乘除 2 的幂操作改为左右移位操作,很多时候编译器也会对代码自动执行这个优化。 我第一次在算法题的代码里见到位操作应该是在高二的时候,某个晚自习不想学习然后跑到机房去乱翻别人的博客发现这个,顿时就感觉如沐春风出神入化,所以一直印象挺深刻的。这个学期开学后不久在图书馆发现了《编程之美》这本书,虽然里面的好多内容都看不懂,其中有一道题感觉还蛮有趣的,就想从这道题出发,简单整理一下自己了解过的一些位操作相关的知识。 题目是这样的: 2.1 求二进制数中 »

关于同源策略与跨域问题

同源策略是现代浏览器安全里一个非常重要的机制,它通过限制客户端脚本读写不同源网站资源的权限来保护用户的信息安全。但是随着应用的复杂程度越来越高以及开发者的需求逐渐增多,很多时候又需要通过数据的跨域传输实现一些功能。 常用的跨域实现方式有 JSONP、CORS 或者服务器代理等。JSONP 依靠的是一些特殊 HTML 标签如 <img>、<script>、<link> 等可以加载非同源资源的特性,毕竟很多时候外码需要依靠单独的 CDN 服务器来减少对这些静态资源的请求时间,而 »

班门弄斧之谈谈 Web 密码安全

文章目录 起因 去年暑假在整理一个辣鸡项目的代码的时候,思考到用户密码存储相关的问题,然后也去找了点资料。我当时最开始用的是 SHA256 算法生成哈希值,然后更新的时候就强化了一下关于密码储存和验证的模块。后来其实也一直想写这篇文章出来,因为我发现很多不管是用户还是开发者都不太注重密码安全这个问题,甚至还有在数据库里明文存密码的。刚好在写完了挖坑不到一半停下的 百步梯技术部 2017 级 Web 后端进阶 之后,也把这篇文章的坑填上。 传输安全 我们先来看看用户密码从在输入框输入到写入数据库以及后续的验证操作会经过哪些阶段。 注册时的流程当然是前端把数据传送给服务端,然后服务端接收后进行一些处理写入数据库。验证时取出这个处理后的值,然后处理刚刚的验证请求发来的密码, »