使用LaTex制作中文简历

修改后的效果图 👉项目地址:sirius2alpha/resume 🍴Fork from: hijiangtao/resume LaTex简介 LaTeX是一种基于TeX的排版系统,广泛用于生成科学和数学文档的高质量排版。在LaTeX中,你可以使用各种命令和环境来结构化文档并控制其外观。以下是LaTeX项目的基本结构和语法: LaTeX项目结构 文档类声明(Document Class Declaration) 在文档的最开始,你需要声明文档类,例如\documentclass{article}。这行代码定义了文档的类型和基本布局。 宏包(Packages) 使用\usepackage{}命令来引入宏包。宏包提供了额外的功能,如增强的数学公式支持(amsmath)、图像插入(graphicx)等。 文档设置(Document Settings) 在\begin{document}之前,可以定义一些全局设置,如页面布局、自定义命令等。 正文内容(Document Content) \begin{document}和\end{document}之间的内容是文档的主体。这里包含了所有的文本内容、图表、公式等。 环境(Environments) 在文档中,可以使用各种环境来区分文本的不同部分,例如列表(itemize)、表格(tabular)、数学模式(equation)等。 LaTeX语法 命令(Commands) LaTeX命令以反斜杠\开头,如\textbf{}用于加粗文本。 命令可能需要参数,参数放在花括号{}中;也可能有可选参数,放在方括号[]中。 环境(Environments) 环境用于改变一段文本的行为或布局,格式为\begin{environment} ... \end{environment}。 例如,itemize环境用于创建无序列表。 注释(Comments) 使用百分号%开始注释,注释内容不会出现在最终文档中。 特殊字符(Special Characters) 一些字符在LaTeX中有特殊意义,如%、$、&等,如果需要在文档中直接显示这些字符,通常需要在前面加上反斜杠\。 数学模式(Math Mode) 用$...$来标记行内数学内容,用\[...\]或$$...$$来标记独立的数学块。 通过组合这些结构和语法元素,你可以创建出结构化且格式严谨的文档。LaTeX的学习曲线可能相对陡峭,但它能够为复杂的文档排版提供强大且灵活的功能。 一些修改:修改heading,添加照片布局 在resume.cls文件中新增了一些命令: - \tableInfo:姓名、主页左对齐;电话、邮箱右对齐 - \rightInfo:姓名、主页、电话、邮箱右对齐 - \leftInfo:姓名、主页、电话、邮箱左对齐

March 18, 2024 · 1 min · 48 words · sirius1y

使用Selenium库爬取网易云音乐和携程旅行评论

网络爬虫记录 前置知识 网站的加载形式有两种:静态加载和动态加载 静态加载 在静态加载中,当你访问一个网页时,服务器会发送一个完整的HTML页面。 所有的内容,包括文本、图片和链接,都嵌入在这个HTML文档中。 CSS和JavaScript通常作为外部文件加载,但它们主要用于增强页面的外观和感觉,而不是改变内容。 对爬虫的影响: 易于爬取:静态页面可以直接通过HTTP请求获取,然后使用HTML解析器(如BeautifulSoup)提取所需信息。 无需执行JavaScript:不需要处理JavaScript生成的内容。 动态加载 动态加载的网页通常使用Ajax(Asynchronous JavaScript and XML)或其他JavaScript框架来异步加载数据。 当你访问这样的网页时,初始的HTML文档可能不包含所有内容。随后,JavaScript会被执行来加载更多数据。 这些数据可能来自服务器的额外HTTP请求,通常返回JSON或XML格式的数据。 对爬虫的影响: 更复杂的爬取过程:由于内容是动态加载的,传统的HTTP请求和HTML解析可能无法获取所有数据。 需要模拟浏览器或分析JavaScript:可能需要使用如Selenium之类的工具来模拟浏览器行为,或分析JavaScript代码和网络请求来直接获取数据。 可能涉及到更多的反爬机制:动态加载的网站可能有更复杂的反爬虫策略。 Selenium库 在刷新网易云音乐的一首歌曲下面的评论的时候,发现浏览器的URL都没有发生变化,应该是采用Ajax刷新了网页的部分内容。 对于这样网站的爬虫有两个思路: 在浏览器的控制台上刷新时候查看“网络”部分,分析发送的请求,在相应的进行模拟 使用selenium工具进行模拟 本次任务采用selenium进行模拟进行爬取评论。 然后会得到一堆.txt文件,用python或者shell脚本把他们合在一起,接下来进行数据分析 代码附录 代码1 网易云音乐评论网络爬虫 from selenium import webdriver from selenium.webdriver.common.by import By from time import sleep # 创建ChromeOptions对象并启用无头模式 chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--headless') driver = webdriver.Chrome(options=chrome_options) # 打开网站 driver.get('https://music.163.com/#/song?id=1392155391') # 设定起始页号 page_number = 1 # 定位元素框架 comment_frame = driver.switch_to.frame('g_iframe') while page_number<260: # 滚动到页面底部,确保所有的评论都被加载 driver.execute_script("window.scrollTo(0, document....

February 14, 2024 · 2 min · 393 words · sirius1y

点击排行榜scoreboard

项目概述 项目地址:https://github.com/sirius2alpha/scoreboard 使用Redis在服务器上对用户的点击数排序,并返回点击次数排行榜。 技术栈 整体设计 用户界面 排行榜展示区: 显示当前排行榜的状态。 点击按钮: 用户点击来增加他们的计分。 昵称输入和提交: 允许新用户输入昵称并参与排行榜。 实时更新监听: 不需要用户交互,自动更新排行榜。 WebSocket客户端逻辑 建立连接: 当用户访问网站时,建立WebSocket连接。 发送点击事件: 当用户点击按钮时,发送消息到服务器。 接收排行榜更新: 监听来自服务器的排行榜更新,并更新界面。 用户注册: 发送新用户的昵称到服务器。 处理断开连接: 如果用户20秒未操作,发送断开消息到服务器。 后端设计(Gin + Redis) WebSocket服务器 处理WebSocket连接: 接受和管理WebSocket连接。 接收消息: 解析从客户端接收到的消息(点击事件,新用户注册)。 Redis交互: 更新用户的分数并重新排序排行榜。 广播排行榜更新: 将更新后的排行榜发送给所有连接的客户端。 处理断开: 移除30秒未操作的用户。 Redis逻辑 用户分数管理: 存储和更新用户分数。 排行榜排序: 实时更新排行榜。 数据持久化: 保证数据在服务重启后仍然可用。 API设计 本项目API设计采用的是websocket实现。 由于考虑到用户在点击比较频繁,如果采用HTTP会造成头部开销较大,而websocket的头部开销会相对小一些。 消息类型 UserClick: { type: “UserClick”, nickname: “用户昵称” } NewUser: { type: “NewUser”, nickname: “用户昵称” } UserInactive: { type: “UserInactive”, nickname: “用户昵称” }...

January 21, 2024 · 2 min · 287 words · sirius1y

在linux上配置clash,通过Dashboard控制

:label:现状 已经安装好了clash for linux,并且在systemd中写好了配置,能够正常运行(在主机上使用浏览器访问外网OK的)。 vpn配置也已经从机场上拉下来了,但是目前无法ping通google.com。 潜在误区:ping命令是走的ICMP协议 :loudspeaker: 诉求 想要在外部网络环境中,调用clash ui进行节点的选择 web端dashboard的控制:https://clash.razord.top/#/proxies 另外一个项目yacd dashboard:https://yacd.haishan.me/ :question: 怀疑 怀疑没有进行节点的选择,需要把9090端口公开用于在服务器上进行访问。 但是这台主机是通过云服务器的内网暴露实现公网访问的,所以说需要对frpc的相关进行修改才行。 备注 clash的配置文件 config.yaml在/etc/clash下面 dashboard在/etc/clash下面 :mag: 问题排查 检查http_proxy, https_proxy echo $http_proxy $https_proxy // output http://127.0.0.1:7890 http://127.0.0.1:7890 SSL错误问题 在主机上开启代理的情况下,使用conda install 会出现SSL的问题; 但是把环境变量http_proxy等取消设置后,他就不报这个错误了。 frp内网暴露服务是否转发成功 因为我要用到clash的主机,是通过一台云服务器进行内网暴露进行使用的,所以需要检查frp相关设置。 检查~/frp/frpc.toml 配置是否正确,配置正确后在systemctl status 的输出中可以看见相应服务名字成功启动。 像这样: 同时在服务端上的日志/var/log/frps.log中可以进行查看。 在这里也检查出来了一些问题,刚开始的时候clash的相关转发没有跑起来,[[proxies]]这个标签是必要的,不是乱写的啊啊啊 在主机上 使用https://clash.razord.top/#/proxies可以正常访问web端的dashboard 访问localhost:9090端口会有一个{“clash”,“hello”}类似的提示,但是没有相关的控制平面 感觉没有暴露和访问正确的端口,9090端口里面什么都没有。 也有可能是yacd的dashboard影响

January 8, 2024 · 1 min · 51 words · sirius1y

在docker中安装redis

常规步骤:安装vim openssh,生成密钥 sudo apt-get update sudo apt-get install vim openssh-server cd .ssh ssh-keygen -t rsa -C "sirius1y@outlook.com" cat id_rsa.pub > authorized_keys ssh localhost exit rm known_hosts 安装docker 设置 Docker 的apt存储库 官网教程:https://docs.docker.com/desktop/install/ubuntu/ # Add Docker's official GPG key: sudo apt-get update # 安装证书、下载工具、证书验证工具 sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 证书对所有人都可读 sudo chmod a+r /etc/apt/keyrings/docker.gpg # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker....

January 4, 2024 · 3 min · 583 words · sirius1y