博文

搭建个人网站的几种方法【Log.004】

本文只包含一些可能有用的链接 静态网页构建: hexo 、 Docusaurus 、 Next.js 部署到CDN上: GitHub Pages 、 Netlify 动态网页构建: Vue.js 、 Axios 静态页面代理:Nginx等,也可采用各家的CDN服务 请求处理:Node系( Express )、Python系( Django )、Java系( Spring ) 我的个人网站已经使用 Docusaurus 部署到 Netlify上: https://darxs.com.cn ,同学们有兴趣可以访问

德州扑克-web全栈开发【Log.003】

图片
          我在这篇博文中记录了我开发德州扑克Web小游戏的部分过程,包括想法来源、架构和技术栈、一些要点和问题、未来改进、游戏体验以及整活总结。          项目启动时间:2023年3月22日          后端技术栈:Node.js,Express,JavaScript(后期将转写为TypeScript)。          前端技术栈:Vue.js 3,Axios。                    先贴一张图镇楼  ;-) 玩家客户端 各元素的包含关系 想发来源     德州扑克         我的朋友们喜欢在周五周六晚上,在寝室里玩德州扑克来消遣。         有一次一位朋友带着扑克牌和筹码,出去和他的其他好友玩;那天晚上,其他人因为没有扑克牌和筹码而无法开局。         因此产生了这个想法:写一个能玩德州扑克的软件,让大家能在没有其他辅助设施的情况下,也能愉快的玩德州扑克;         之后也可能通过代码的拓展,让大家玩上其他牌类游戏。     洗牌         我们玩牌类游戏的一大问题,就是洗牌洗的不够分散。通过计算机模拟洗牌,能做到既快又让牌的分布更加随机。     结算         对于德州扑克,还有一个特殊的问题:当有玩家牌面大小相同或者all in时,计算并分割筹码会显得比较麻烦。         使用计算机程序解决这个问题,虽然需要下点功夫将问题抽象并用计算机语言解决,但毕竟是个一劳永逸的操作,也算值得一做。 架构和技术栈     B/S架构         考虑

How browsers work(zh-CN)【Tr.001】

图片
浏览器如何运作 现代web浏览器的背后 2011年8月5日 Tali Garsiel Homepage Paul Irish Twitter Homepage 原文来自 序 这份关于WebKit和Gecko内部操作的全面入门材料,是以色列开发人员Tali Garsiel所做的大量研究的结果。在过去的几年里,她审阅了所有关于浏览器内部结构的公开数据,并花了大量时间阅读网络浏览器的源代码。她写道: 在IE占据90%市场的那些年里,我们除了将浏览器视为“黑盒”外,没有什么可做的。但现在,随着开源浏览器占据了 超过一半的市场份额 ,是时候窥探一下引擎的核心,看看web浏览器内部是什么了。好吧,里面有数百万行的C++代码…… Tali在她的网站上发表了她的研究,但我们知道这值得被广泛传播,所以我们把它整理了一下,并在这里重新发表。 作为一名web开发人员, 了解浏览器内部的操作原理可以帮助你做出更好的决策,并了解最佳开发方法背后的理由。 虽然这是一个相当长的文档,但我们建议您花些时间深入研究。我们保证你研究完之后会很满意。 Paul Irish, Chrome Developer Relations 简介 web浏览器是使用最为广泛的软件。在本文中,我将解释它们在幕后是如何工作的。从你在地址栏中输入 google.com 开始,直到浏览器屏幕上显示谷歌页面为止,浏览器到底干了些什么?让我们一起来探究这个过程。 我们将要讨论的浏览器 现在有五种主要的桌面浏览器:Chrome, Internet Explorer, Firefox, Safari和Opera。在移动端,主要的浏览器有Android浏览器、iPhone、Opera Mini和Opera mobile、UC浏览器、Noki

搭建无线Time Machine【Log.002】

图片
  2023年3月22日更新:刚刚 Time Machine帮我挽回了一份没保存的Keynote文件,虽然文件不太重要,但也减少了我重新编写文件的时间。

从零开始写多人足球游戏【Log.001】

图片
第一章   说明    本文是选修 Linux 操作系统后,完成结课大作业时编写的报告。     在完成结课大作业的过程中,我编写了一个游戏服务端程序、一个对应的游戏客户端程序。    在编写服务端程序的过程中,我使用 Linux 系统调用实现了全部游戏 逻辑、交互协议、多用户并发访问和基本的状态/故障指示。     该服务端程序运行于 Linux 操作系统上,部署在位于新加坡的 CentOS 服务器上,可在互联网上直接访问。该服务器配备了 10Gbps 网卡,但由于服务器的地理位置在海外,网络连接会受到主干网出口的影响。    $ vi server.c   $ cc -lm -lpthread server.c # 在x86机器上编译需要"-std=gnu99"    该服务端程序使用 C 语言编写,源代码采用 C99 标准,使用了 math 库和 pthread 库,在编译时需要额外指明连接这两个库;使用 aarch64 架构 Linux 系统接口,具体系统内核版本为 5.14.0-214.el9。 图 1.1: 客户端截图    该客户端程序使用 Java 编写,源代码采用 Java 1.8 SE,使用 JavaSwing 图形化接口. 图1.1展示了 10 个玩家同时游戏时,其中一位白方玩家的客户端状态。 第二章  成果介绍    我编写的是一款多人足球游戏,给它的名字是 football 1922,代表该游戏来自一百年以前,象征这是一款画质和玩法上古的游戏。游戏默认支持最多 10 人同时在线游玩,可以通过调整源代码中的宏定义来修改最多游戏人数。游戏服务端按照玩家的进入顺序,将他们分为两队相互对抗。    由于 COVID-19 肆虐全国,本人也不幸中招,我在完成大作业时,不得不遵循非必要不设计的原则,以在本就不富裕的清醒时间中完成任务。双端从设计到编写完成一共花费了 16hr,仅持续工作了不到两天,论其速度,也算得上是我个人历史上的工程奇迹了。 2.1   玩法介绍    玩家可以在球场上移动、转向、碰撞、抢球、传球和冲刺。    首先需要用鼠标点击聚焦客户端左下角的文本输入框,使 Java Swing能

序【Vol.001】

敬启者:   有幸相遇。   这是我成年之后,第一次正式使用博客。由于不清楚诸位的规矩,我难免会犯下一些错误,还请诸位指出,在下愿洗耳恭听。   写过程序的人,大多喜欢在第一次尝试新事物的时候来一个 "Helloworld!" ,我也不例外。但我并不希望像之前学习工具那样,用一个简易的 demo 草草了事。由于我不知道博客在发布之后,还能否修改其中的文字,我准备在第一篇博文中认真聊聊我对中文互联网的感受,以免让当前本就荒凉博客显得更加草率。如果我能再次编辑博文,也有可能会在其中实时更新些概要,介绍我正在尝试的项目,或者感兴趣的研究。   我准备用「同学」一词来代指诸位浏览者,希望我们能相互讨论,共同学习进步。当然,如果诸位感到不快,也可留言与我讨论。   若诸位不认可我的观点,还望不吝赐教。也希望我的其他博客能对诸位同学起到微薄的帮助。