Code Crafting

There are two equivalence classes of idiots: Those who yearn for the past that never was. AND Those who dream of the future that never will be.

0%

学习过计算机网络,我们就知道传输层依靠TCP与UDP协议进行消息传输,socket是封装了TCP与UDP协议的一个面向程序员的接口。我们在网络编程时,会经常用到socket,下面就讲讲如何用python的socket实现服务端与客户端之间的TCP通信

阅读全文 »

今天看到了一个UCI教授的个人主页,发现很有趣,想跟大家分享一下。

这位教授在页面放了三个简单的测试,来让学生判断是否适合找他做博士导师。我觉得这三个测试很有意思,于是翻译了一下,可以看一看。

  • round 1

    image-20230417163900489

阅读全文 »

在许多文档处理工作中,自动生成目录是一个常见的需求,尤其是对于大型PDF文档。手动创建目录可能会很繁琐且耗时,因此寻找自动化的解决方案是很有必要的。在这篇博客中,推荐一个强大的命令行工具 - pdf.tocgen,它可以帮助我们自动生成PDF文档的目录。

网上还有很多其他工具可以自动生成目录,但是基本都需要提前找到完整的目录信息,才可以为pdf生成目录。这个工具不需要完整的目录信息,只需根据一点信息,就可以从pdf自动推导出目录。因为很多时候我们无法找到pdf文件的已有目录信息,所以我推荐这个工具。下面就来介绍一下如何安装并使用该工具。

阅读全文 »

容器

容器是另外一种轻量级的虚拟化,容器是共用主 机内核,利用内核的虚拟化技术隔离出一个独立的运行环境,拥有独立的一个文件系统,网络空间,进程空间视图等

容器与虚拟机的区别

容器跟虚拟机很相似,但是依然有不同,容器与虚拟机本质的区别是:

容器是进程级别的资源隔离。虚拟机是操作系统级别的资源隔离

Docker

Docker是一个开源的容器化平台,在Linux,Windows,Mac上都可以使用。

Docker可以分为三部分:

  • Docker client

    Docker客户端是命令行工具,它与Docker守护进程(deamon)通信,用于创建、管理和操作Docker容器、镜像、网络等资源。Docker客户端可以在本地或远程计算机上运行,以便与Docker守护进程通信。

  • Docker deamon

    Docker守护进程是运行在主机上的后台进程,负责管理Docker容器、镜像、网络等资源。它通过与Docker客户端通信来响应请求,包括创建、启动、停止、删除容器等操作。

阅读全文 »

因为之前有一个Azure的最基础的云服务器,就想着搭一个VPS,一直拖了很久才行动,下面是搭建过程的一些记录。如果作为一个教程看,可以直接跳过不需要的部分,比如升级系统。不过一定要看最后,最后有写我为什么成功后又失败了。

本文所使用的设施

云服务器

  • 服务:Azure Standard B1s

    1G内存 64G磁盘

  • 操作系统:Linux CentOS 7.6

    1
    2
    3
    4
    5
    6
    [CentOS]$ cat /etc/redhat-release
    CentOS Linux release 7.9.2009 (Core)
    [CentOS]$ uname -r
    3.10.0-1160.71.1.el7.x86_64
    [CentOS]$ sysctl net.ipv4.tcp_available_congestion_control
    net.ipv4.tcp_available_congestion_control = cubic reno
  • 位置:East Asia

  • 服务器获取来源:Azure student

阅读全文 »

这篇文章主要概括性地讲一下设计模式和它的一些原则。目的是让读者能对设计模式有一个整体上的了解与感受,为深入学习设计模式打下基础。

从“模式”讲起

​ “模式”一词最早诞生于建筑领域,在Christopher Alexander教授的一书中,他写道“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。后来“模式”这个概念被用于软件开发中,尤其是面向对象编程中。在面向对象设计模式中,核心的思想依然是这样。

阅读全文 »