Coding 的痕迹

一位互联网奔跑者的网上日记

0%

帮同学写一个邻接表转邻接矩阵的程序,程序读入一个邻接表,节点编号从 1 至 1673,要求转成 1673 * 1673 的邻接表。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 邻接矩阵
# 索引范围 0 - 1672
matrix = [[0] * 1673] * 1673

# 读邻接表
with open('data.txt', 'r', encoding='utf-8') as f:
lines = f.readlines()
for line in lines:
# 输入数据中下标从 1 开始,1 - 1673,要减 1 处理
t = line.split()
start = int(t[0]) - 1
end = int(t[1]) - 1
matrix[start][end] = 1

# 打开输出文件
out_file = open('output2.csv', 'w+', encoding='utf-8')

# 写邻接矩阵
for line in matrix:
columns = [str(num) for num in line]
line_to_write = ','.join(columns) + '\n'

out_file.write(line_to_write)

运行后,程序所输出的邻接矩阵元素全为 1,不解。

阅读全文 »

Sonic 是一个基于 rust 的语言的轻量极全文检索系统,类似项目还有 tantivyMelliSearch 。因为学习需要,读了项目作者 Valerian Saliou (法)发布 Sonic 时的文章《Announcing Sonic: A Super-Light Alternative to Elasticsearch》,其中提到了这套系统实现的若干技术,于是结合自己看《信息检索导论》所学知识,在此记录一下。

什么是 Sonic?

用作者的话来说就是:

Sonic 是一个快速、轻量和无模式的搜索后端。它摄取搜索文本和标识符元组,然后可以针对微秒时间查询。

Sonic 可以用作重量级和全功能搜索后端的简单替代方案,如在某些用途中替代 Elasticsearch。

Sonic 使用标识符索引而不是文档索引。当需要查询时,它返回外部数据库中的、用于指向匹配的文档的 ID (而非文档本身)。

Sonic 使用 rust 语言编写,以确保性能和稳定性。您可以在您的服务器上托管它,并通过特定的协议 Sonic Channel 将应用程序通过网络相连。然后,您将能够发出搜索查询并用您的应用添加新的索引数据 - 无论您使用哪种编程语言。

Sonic 设计用于快速轻便地使用资源,期待它在没有毛刺的情况下在非常低的资源上运行。在 Crisp 项目中,我们将 Sonic 部署在每月 5 美元的 DigitalOcean SSD VPS 上,仅 300MB 内存和 15GB 磁盘空间就索引了五千万个对象。

sonic-demo

阅读全文 »

从去年底开始,使用 SSH 协议连接校外的云服务器就出现了卡死的现象,同时使用 SSH 从 Github 上同步代码也受到影响,而一旦切换到移动数据网络一切又变得正常。今天想解决一下这个问题。

阅读全文 »

12月底时,易班工作站计划推出一个新春集五福活动。类似于“支付宝”的“扫福字、集福卡”,我们要完成一个“扫校徽、集福卡”程序的设计和实现。这篇文章不是一份严谨的技术文档,而是对整个项目分析和实施过程的记录。

该项目当前发布在 Github. 前端: kite-fu,后端: kite-badgekite-server

截图

阅读全文 »

在做爬虫的时候,发现登录后的请求始终只带部分 Cookie。如,登录的 Path为 /unifri-flow/login,Response 中携带的 headers 为:

1
2
Set-Cookie: No=序号; Max-Age=691200; Expires=Mon, 24-Jan-2022 04:55:42 GMT
Set-Cookie: SESSION=Yjk3YjI0NGUtMjhiZi00NzExLTg2ZTItOTIyYzM3ZDE1Njk1; Path=/unifri-flow/; HttpOnly; SameSite=Lax

在后续请求 /unifri-flow/WF/Comm/ProcessRequest.do 中,Cookie 字段只能见到 SESSION 而缺失了 No,导致整个响应的返回为空。但是在响应头中,服务器又 Set-Cookie 了一遍。

阅读全文 »

原文源自 ACM SIGARCH,作者是 Payman BehnamMahdi Nazm Bojnordi,发表于 2020年4月21日。

动机

计算机中对于数的表示及算术,是设计有效的软硬件架构的基础。现如今,数的计算构成了一个几乎从手机到服务器——各类计算机系统中的关键部分。 1985 年,IEEE 754 诞生,并成为了现如今占主导地位的计算标准。它通过浮点形式表示实数。尽管优点很多,但也不乏一系列的缺点

Number systems and computer arithmetics are essential for designing efficient hardware and software architecture. In particular, real-valued computation constitutes a crucial component in almost all forms of today’s computing systems from mobile devices to servers. IEEE 754 is a prominent standard established in 1985 for representing real-valued numbers in a floating-point format. Despite all its benefits, this number system suffers from a number of weaknesses.

阅读全文 »

2021 很快地溜走了,紧接着是 2022,到毕业的时候也就是 22 岁了,仿佛不可思议。想年初的时候,有“男儿立志出乡关,学不成名誓不还”的志气,想全面又深入地复习考研,一战成硕,最终证明自己不过是“眼高手低”。就在几天前,我结束了2022研究生入学考试。考完第一天的时候,想起年初那时的场景,就想写点什么,拖到今天写写。

这一年做事情,多半没什么详细规划。想到了,记下来,然后”束之高阁”。就算是记起来的那一部分,也因为各种各样的事情改了,或是坐下来的时候,摸一摸鱼,旁边人来说几句话,学习自然被抛到了脑后。考试的那一周是我最快乐的一周,从早到晚,不看群、甚至不看手机了,每天都很充实。我们学习知识的动力和最终目标,应是对真理的渴求,有了这点,也不再害怕“卷”,也无所谓“累”了。见到有这样的人,很是羡慕,大概就是“以无厚入有间,恢恢乎其于游刃必有余地”吧!

两个月前,我在怀疑,我是真的喜欢计算机行业吗?前天上课时,问到什么是成功。如果能做点曾经没有过的东西,为文明留下点什么,那一定是成功了。大抵我这人从小就懒,不太想做重复性的活。“程序员的双手是魔术师的双手” ,魔术师会创造,当一个魔术师没什么不好的。回忆一生的时候,“他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻”。能这样也不错。

虚度一年,来年会变好的。 一年是一个小路牌,在走到杆儿下时停一停,总结这一年,展望后面的路,倘若未来无愧于自己本心,那这虚度的一年也就有价值了。因此斟酌写下几个词句,碎碎念了。

这是一篇透过马克思主义哲学方法看古诗词的整理,用于考研政治课程的复习。然而,平心而论,这些“看法”常常忽视了作者原来的意图,存在着些许误读,仅供参考。希望这部分内容能帮助备考,但实际中对诗句的理解还需要整体把握。

本篇内容整理自 【常识】常见古语、诗句哲学原理归纳 - 知乎马克思主义哲学常见古语诗句哲学原理归纳 - 百度文库,修正了原文中错别字,并替换了一个古诗词中较少见的版本,重新整理了格式。转载建议注明编者,侵删。

下载地址

阅读全文 »

中午收到同学转发的用户反馈,称小程序查到的近期寝室用电量值过高,想了下最近好像是有这样的情况。当时的情况是学校QQ群中好多同学吐槽电费高,我心里却担心是小程序的问题,于是登上数据库查看:

DB-screenshot

如图,这里限制了查询某一个寝室的情况。查询结果中,每个时间的记录出现了两条,这可能是导致电费统计结果高的直接原因,如果真是这样,那么程序中显示的统计值应该是实际值的两倍。令我不解的是,这多出来的一条数据从何而来?为什么时间也一模一样?

阅读全文 »

五周的课程设计课结束了。后两周我和同学一起基于 UDP 使用 C++ 语言实现了一个文件传输工具。这篇文章记述了项目相关的一些细节, 但不是一篇正式的软件工程文档。项目地址见 Github

项目背景和需求分析

去年暑假时,有次我想把约 800GB 的硬盘备份文件通过网络传输给同学。 我们觉得自己算是“半个专业人士”,便不考虑快递硬盘的方式传送,想了很多办法。因为我所在的地方有公网地址,方案大体上是我在本地建立一个服务器,使用一般的文件传输工具传输。由于是跨省跨运营商,存在以下问题:

  1. 网络速度波动
  2. 每 48 小时动态公网 IP 出现 IP 变化,传输中断
  3. 丢包自动重传
阅读全文 »