独立个人项目开发心得 - 任务切分、挑战性、实用性和半途而废

在写文章前容许我啰嗦一下:对于软件开发,我走了不少弯路,有时觉得自己作为API侠,无所不能,有时又觉得自己很多LeetCode题写不出来,无能为力。我有一个博客,但是写满了自己的絮絮叨叨,真正有本领的东西九牛一毛。 我甚至没有自己的“代表作”,因为我是一个急性子,想马上得到结果(事实上计算机真能马上给出结果,但开发过程不行)。我经常在“造自己的轮子”和“用别人的轮子”之间徘徊,“造自己的轮子”比较有成就感,但是难度其实很大,需要踩很多别人踩过的坑;“用别人的轮子”则没有什么成就感,做出来也不像是自己做的。而平时工作中,每天都在用别人的轮子,自己真正从比较底层开始实现的情况是非常少的,导致我在闲暇时间也不想用别人的轮子。 ...

四月 5, 2022 · JonathanLin

使用Python实现简单UDP Ping

套接字编程作业2:UDP ping 程序 在本实验中,您将学习使用Python进行UDP套接字编程的基础知识。您将学习如何使用UDP套接字发送和接收数据报,以及如何设置适当的套接字超时。在实验中,您将熟悉Ping应用程序及其在计算统计信息(如丢包率)中的作用。 您首先需要研究一个用Python编写的简单的ping服务器程序,并实现对应的客户端程序。这些程序提供的功能类似于现代操作系统中可用的标准ping程序功能。然而,我们的程序使用更简单的UDP协议,而不是标准互联网控制消息协议(ICMP)来进行通信。 ping协议允许客户端机器发送一个数据包到远程机器,并使远程机器将数据包返回到客户(称为回显)的操作。另外,ping协议允许主机计算它到其他机器的往返时间。 以下是Ping服务器程序的完整代码。你的任务是写出Ping客户端程序。 ...

十一月 13, 2021 · JonathanLin

使用Python开发一个简单的web服务器

来自书籍《计算机网络-自顶向下方法-第6版(课本)》第120页,第二章应用层的课后题第一题。 ...

十一月 7, 2021 · JonathanLin

搭建Spark实战环境(3台linux虚拟机集群)(一)样板机的搭建

系统及软件配置 系统配置 内存:16g 2400 cpu:i5 9400F 软件配置 Windows 10 1903版本 VMware workstation 15.10 CentOS centos-release-7-7.1908.0.el7.centos.x86_64 Java jdk-8u241-linux-x64.tar.gz Scala scala-2.11.8.tgz ...

五月 23, 2020 · JonathanLin

Springboot操作MongoDB,包括增改查及复杂操作

单条件查询 使用BasicDBObject配置查询条件 List<AbstractMongoEntity> list = Lists.newArrayList(); // 配置查询条件 BasicDBObject cond1 = new BasicDBObject(); cond1.append("_id", new ObjectId("5de39f20684014f1d8b8fa37")); FindIterable<Document> findIterable = // 执行查询 mongoTemplate.getCollection("crawler_cjwt").find(cond1); // 装配查询结果 MongoCursor<Document> cursor = findIterable.iterator(); Document document = null; CjwtMongoEntity question = null; while (cursor.hasNext()) { document = cursor.next(); // 使用MongoConverter可以将结果对象映射到Java Bean question = mongoConverter.read(CjwtMongoEntity.class, document); list.add(question); } System.out.println(question); cursor.close(); 返回的是一个指针,所以我们需要通过该指针遍历结果,并装进list中返回使用。 对应的mongo脚本: db.crawler_cjwt.find({'_id':new ObjectId("5de39f20684014f1d8b8fa37")}) ...

五月 19, 2020 · JonathanLin