IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    love 0
    ChenSoul
    发表于
    2023-08-28 09:00:00

    Java设计模式:Bridge

    本文主要介绍 Bridge 桥接模式,在 Java Design Patterns 网站上有对该模式进行介绍。这里主要是做个笔记,并添加一些扩展,以加深对该设计模式的理解。 介绍 桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象与其实现分离,使它们可以独立地变化。桥接模式通过创建两个独立的层次结构,一个是抽象部分,一个是实现部分,来实现这种分离。 在桥接模式中,抽象部分包含 … ...继续阅读 (130)


    love 0
    tiandi
    发表于
    2023-08-28 05:34:07

    讯飞星火大模型,就这?

    上周正好在天目湖旅游,想查一下回来的途中,有没有不是鱼头的餐馆,因为吃图了,当时手机上GPT不方便,正巧又受到讯飞星火的推送,就直接下了讯飞星火APP,尝试了一下。。。就这智障回复?试了下Chatgpt文章评分1次,平均分5.0:★★★★★ ...继续阅读 (193)


    love 0
    OldPanda
    发表于
    2023-08-28 03:12:34

    用 VitePress 重写 Douban Book+ 主页

    新地址: https://douban-book-plus-homepage.pages.dev/ 项目已开源…Read more用 VitePress 重写 Douban Book+ 主页用 VitePress 重写 Douban Book+ 主页最先出现在Panda Home。 ...继续阅读 (103)


    love 0
    boke123百科
    发表于
    2023-08-28 03:02:41

    高考钉子户唐尚珺宣布继续复读进行第16次高考,如果是你的孩子会支持吗?

    今天看到一则新闻说“高考钉子户唐尚珺宣布继续复读”,据了解这位唐尚珺同学出生于1988年,至今已经历经15年高考之路。然而,最近传出了他将要进行第16次高考考试的消息。根据唐尚珺自己的透露,他已经选择继续复读,并将在今年9月中旬前往复读学校报到。如果是你的孩子,你会支持这种做法吗? 唐尚珺同学15次高考的分数及录取情况 第15次高考594分,不服从调剂均被退档,放弃第二次补录 第14次高考597分...查看全文:https://boke123.net/6055.html ...继续阅读 (137)


    love 0
    CFC4N
    发表于
    2023-08-28 02:54:27

    GitHub万星项目进度70%,eCapture旁观者7K Stars达成

    简述是的,一年半时间,笔者的首个7000星的GitHub开源项目来了,它就是eCapture旁观者。未来一年,争取过万星。项目背景eCapture一个无需CA证书,无侵入的HTTPS/TLS明文抓包工具。可以在Linux 4.18以上版本使用,同时也支持Android arm64 5.5以上版本。eCapture的中文名叫「旁观者」,即「当局者迷,旁观者清」,与其本身功能「旁路、观察」契合,且发音与英文有相似之处。此工具切入大家痛点,不需要CA证书,也不需要进程冲洗,就可以在Linux上分析生产环境的https网络包的问题,深受大家欢迎。从2022年3月底创建,至今一年半时间,获得7000星。与知乎上较为出名的xmake-io/xmake开源项目相比,可谓神速。当然,个人的努力固然有,但主要是借助了历史的进程——eBPF技术兴起。依赖技术eBPF技术是Linux内核的子系统,用来做跟踪、抽样、网络优化、安全管控等。借助于eBPF的动态插桩能力,eCapture可以无需应用进程重启,无需CA证书,动态增加观测点,实现对进程的HTTPS/TLS加密通讯抽样诊断。eCapture项目是用来做网络分析的,适合线上环境,不方便重启进程的场景。使用eBPF TC/uprobe HOOK技术,支持Linux/Android 系统,支持x86_64/aarch64两种CPU架构,工具大小不到10M ...继续阅读 (150)


    love 0
    整理专家
    发表于
    2023-08-28 00:57:24

    微博森林驿站答案:以下哪种鸟被称为“老等”?

    微博森林驿站森林小课堂题目:以下哪种鸟被称为“老等”? 苍鹭 白鹭 大白鹭 答案:苍鹭 老等是什么鸟? 苍鹭(学名:Ardea cinerea),别名:灰鹳、青庄、灰鹭,是鸟纲、鹭科、鹭属的一种涉禽,也是鹭属的模式种。大型水边鸟类,栖息于江河、溪流、湖泊、水塘、海岸等水域岸边及其浅水处,性格孤僻,严冬时节在沼泽边常可以看到独立寒风中的苍鹭。 苍鹭主要以小型鱼类、泥鳅、虾、喇蛄、蜻蜓幼虫、蜥蜴、蛙和...查看全文:https://boke123.net/6052.html ...继续阅读 (107)


    love 0
    mggg\'s 博客 on mggg\'s Blog
    发表于
    2023-08-28 00:00:00

    基于LangChain向量数据库,为LLM添加实时的领域知识

    基于langchain向量数据库, 为LLM添加最新的领域知识 在我们使用的chatgpt的时候,往往会遇到一些提示: 截止到2021年9月的训练数据。 因此,我不具备在那个时间点之后发生的事件或获取的信息。 如果你有关于2021年9月之后的问题,我可能就无法提供最新的信息。 因此,为了让LLM模型具备实时的领域知识,将实时的信息添加到模型中变得非常必要。接下来,我们将介绍如何通过LangChain和Chroma向量数据库,为ChatGPT添加最新的领域知识。 步骤如下: 训练文档知识,存到本地向量数据库chroma 根据用户prompt去查询向量数据库, 根据相似度获取相似领域知识 包装领域知识到prompt中 LangChain + Chroma 将文档知识嵌入并存储到本地向量数据库Chroma中。 根据用户的提示查询向量数据库,获取相似领域知识。 代码如下, 我们通过 add_text_embedding来解析文本为向量, 通过query来查询相似度的领域知识 from langchain.embeddings import OpenAIEmbeddings from langchain.text_splitter import CharacterTextSplitter from langchain.vectorstores import Chroma class Embe ...继续阅读 (96)


    love 0
    mggg\'s 博客 on mggg\'s Blog
    发表于
    2023-08-28 00:00:00

    利用LangChain向量数据库加强LLM实时领域知识

    利用LangChain向量数据库提升LLM的即时知识处理能力 当我们使用ChatGPT,它常常提示我们其知识只更新到了2021年9月。因此,为了使LLM模型能够处理最新的信息,将实时的知识集成到模型中变得至关重要。 截止到2021年9月的训练数据。 因此,我不具备在那个时间点之后发生的事件或获取的信息。 如果你有关于2021年9月之后的问题,我可能就无法提供最新的信息。 实现步骤 1. 建立本地向量数据库 我们首先需要在本地创建一个Chroma向量数据库,并将文档信息嵌入其中。 2. 查询与用户提示相关的知识 接着,基于用户的提示,我们查询向量数据库,从中检索出相关领域的知识。 3. 将领域知识集成到用户提示中 最后,我们将这些领域知识整合到用户的提示中,以供LLM模型使用。 LangChain + Chroma的应用 下面是LangChain和Chroma的一个示例应用。我们通过add_text_embedding将文本解析为向量,并通过query查询领域知识。 from langchain.embeddings import OpenAIEmbeddings from langchain.text_splitter import CharacterTextSplitter from langchain.vectorstores import Chroma class Embed ...继续阅读 (96)


    love 0
    10k
    发表于
    2023-08-28 00:00:00

    设计模式之美-课程笔记30-桥接模式

    桥接模式:如何实现支持不同类型和取到的消息推送系统原理Decouple an abstraction from its implementation so that the two can vary independently. 将抽象和实现解耦,让他们可以独立变化。JDBC驱动是桥接模式的经典应用。Class.forName("com.mysql.jdbc.Driver");//加载及注册JDBC驱动程序String url="jdbc:mysql://localhost:3306/sample_db?user=root&password;=your_password";Connection con=DriverManager.getConnection(url);Statement stmt=con.createStatement();String query="select * from test";ResultSet rs=stmt.executeQuery(query);while(rs.next()) {rs.getString(1);rs.getInt(2);}如果想使用Oracle数据库,只需要将第一行代码的driver换成OricalDriver即可。或者更灵活将driver写在配置文件,修改时只改配置文件。看一下如何实现:packagecom.mysql.jdb ...继续阅读 (37)


    love 0
    白宦成
    发表于
    2023-08-27 22:00:55

    插件多次加载导致的 WordPres 后台加载缓慢

    在WordPress Jetpack 的一个陈年 Bug – 在 wp-Options 中生成大量的数据中,我提到,问题的根源并不是数据库,虽然在数据库中产生了大量的数据,但并没有真正意义上拖慢系统的进程, 那到底是什么拖慢了进程?随着对系统的深入排查,我发现一个异常的事情,在进入管理后台时,出现了插件更新插件列表的情况。这个并不多见。因为管理后台的进入不应该涉及到对于插件列表的更新。此外,我发现这个查询的 SQL 巨长,且包含了大量的查询。于是评估,这个可能才是导致系统缓慢的真正原因。熟悉 WordPress 的读者一定知道,WordPress 对于插件的加载,是通过在数据库中存储了一组插件路径,每次启动时通过这组插件路径来加载插件。这样对于 WordPress 来说,可以快速加载插件。但在这次的异常场景中,同一个内容的插件被加载了多次,就算这个插件比较小,可能依然会导致计算时间。此外,WordPress 引入插件后,会加载对应的 Hook 、 Filter 和 Action,则可能导致同一个 Action 被频繁触发,造成额外的计算量。从而使得虽然数据库查询时间不长,但整体耗时却巨长无比。而这个问题的处理倒是也比较简单:对 active_plugins 进行备份,避免修改跪了。对于 active_plugins 进行清空,此时 WordPress 会彻底不加载任何插件。仿照之前 ...继续阅读 (160)


    love 0
    张三的网络日志
    发表于
    2023-08-27 21:10:48

    N1安装小刚炮(Nano Disk Manager)

    垃圾佬捡的N1安装小刚炮充当下载机,没钱买nas,这里记录下安装教程,备个份灯大的教程Nano Disk Manager (NanoDM)N1 PT下载小钢炮固件安装说明本说明最后由 荒野无灯 于 2019-04-24 17:38 编辑公测版由于功能尚未最终稳定。因此,更新会比较频繁。强烈建议使用0411之后的版本, 不要再去下载0909版本了…0909版本的任何问题或bug都不予处理.FAQ缓存问题 (此问题仅存在于0909及之前的老固件):如果你进某个页面总是跳回登录页面,或者直接没有显示任何东西 ,浏览器返回的是该页无法显示。chrome浏览器缓存问题。 ctrl + shift + i , 然后右击浏览器顶部地址栏的刷新按钮,选择第三项:“清空缓存并硬性重新加载”, 即可。更多FAQ见:https://gitee.com/8ox86/phicomm-n1-issue从n1原版android系统刷机操作步骤1.有一个N1,准备个U盘. 不要太大,U盘大于512M即可. usb 2.0的最佳。闪迪(SanDisk)酷豆(CZ33)16GB 或 8GB的测试通过,表现良好。lexar 8GB USB2.0 U盘表现更佳。经测试,上次撸的台电(Teclast)锋芒 U盘 64G USB3.0很大概率上识别会有问题。下载 phicomm-n1-s905-linux-ha ...继续阅读 (108)


    love 0
    accolac99
    发表于
    2023-08-27 20:41:45

    Back to school gift: personalized funny teacher shirts at Teachersgram

    As the warm embrace of summer gradually gives way to the crisp and colorful days of autumn, our wardrobeteacher sweatshritsinevitably undergoes a transformation, welcoming the need for comfort and style in equal measure. One wardrobe essential that seamlessly blends these attributes is the beloved sweatshirt. This autumn, why not infuse a touch of nostalgia and respect into your wardrobe with a teacher printed sweatshirt? Not only does it exude a unique charm, but it also celebrates the spirit of learning and growth.Autumn, with its enchanting tapestry of falling leaves and cooler temperatures ...继续阅读 (144)


    love 0
    xindoo
    发表于
    2023-08-27 20:34:33

    如何在地图上寻找最密集点的位置?

      最近我在工作中遇到了一个小的需求点,大概是需要在地图上展示出一堆点中的点密度最密集的位置。最开始没想到好的方法,就使用了一个非常简单的策略——所有点的坐标求平均值,这个方法大部分的时候好用,因为大部分城市所有点位基本上都是围绕某个中心点向四周发散的。但我们实际在线上使用的时候,遇到了两个特殊的case。  首先就是当点位分布呈现出异形,比如哑铃型数据分布在两头,你们求平均值的方法就会找到中间数据密度最稀疏的地方,就比如我们在成都的数据上遇到的一样,下图中的红色点位就是按平均值求出来的中心点。  另外一种异常case就是数据呈现圆周分布的时候,比如北京的数据,北京的中心是故宫,我们不可能会有点位,如果直接求平均值的话,计算出来的中心点就在故宫附近,这里的数据反而是最稀疏的,如下图所示。  后来查询资料,了解到核密度这一方法可以解决我们所遇到的问题,经过实验后发现效果还不错,所以在这里分享给大家。 核密度的思路也很简单,就是遍历所有的点位,计算其他点到当前点的核密度总值,然后找出平均密度最大的点。举个简单例子,给定一个点,如果其他某个点距这个点距离近,密度值就高,反之就远,这个点到其他所有点的密度和求平均就是这个点最终的密度值,这里我们可以直接选用距离的倒数来当成核函数,不过这个核函数是线性的,最终结果 ...继续阅读 (109)


    love 0
    wireless_com
    发表于
    2023-08-27 20:23:43

    一文读懂互联网的架构本质

    【引子】谈到互联网,很多人脑海中会出现各种各样的术语和服务,但是互联网是如何设计并构建的呢?作为一个网络,互联网的架构本质是什么?石头兄弟和我曾经一起译过一本《计算机网络问题与解决方案》的巨著,但真正仔细阅读并从中有所收获的朋友并不多。最近,石头兄弟推荐了另一篇文章https://cacm.acm.org/magazines/2023/2/268956-extracting-the-essent... ...继续阅读 (179)


    love 0
    linwu
    发表于
    2023-08-27 19:41:21

    面试官:说说类型守卫?

    类型守卫概述在 TypeScript 中,类型守卫可以用于在运行时检查变量的类型,并在代码块内部将变量的类型范围缩小到更具体的类型。这种类型收窄可以让 TypeScript 编译器更好地理解我们代码的意图,从而提供更准确的类型推断和类型检查。类型守卫通常使用类型断言、类型谓词、typeof 操作符、instanceof 操作符或自定义的谓词函数来判断变量的具体类型,并根据判断结果收窄变量的类型范围。typeof 类型守卫typeof 类型守卫允许我们使用 typeof 操作符来在代码中根据变量的类型范围进行条件判断。function printValue(value: string | number) { if (typeof value === 'string') { console.log(value.toUpperCase()); } else { console.log(value.toFixed(2)); } } printValue('hello'); // 输出: HELLO printValue(3.1415); // 输出: 3.14在上面的示例中,我们使用 typeof 操作符在条件语句中检查变量value的类型。如果它的类型是'string',则调用toUpperCase方法;如果是'number',则调用toFixed方法 ...继续阅读 (118)


    love 0
    会灰的飞猫
    发表于
    2023-08-27 16:56:25

    c++ 判断基类指针指向的真实对象类型

    在 c++ 面向对象使用中,我们常常会定义一个基类类型的指针,在运行过程中,这个指针可能指向一个基类类型的对象,也可能指向的是其子类类型的对象,那现在问题来了,我们如何去判断这个指针到底执行了一个什么类型的对象呢?![上传中...]()今天我们就聊一下这个问题,首先我们要区分是否允许RTTI,据此有不同办法。1 允许使用 RTTI在打开 rtti 的场景下,可以使用dynamic_cast和typeid这两个运算符来判断对象的真实类型。1.1 使用 dynamic_castdynamic_cast用于在运行时进行多态类型检查和转换,它可以将指向基类的指针转换为指向派生类的指针或引用。如果转换成功,则说明对象属于目标类或其派生类。如果转换失败,则返回空指针。我们看如下例子,我们想判断指针basePtr是否指向了Child2类型的对象。总共进行了两次测试,第一次让该指针指向了Child1类型的对象,第二次则是指向了Child2类型的对象。#includeclass Basic { public: virtual void say() { std::cout << "我是基类" << std::endl; } }; class Child1 : public Basic { public: void say() { std::co ...继续阅读 (123)


    love 0
    整理专家
    发表于
    2023-08-27 16:25:49

    蚂蚁庄园今日答案:人们通常在信的末尾写上“此致敬礼”,猜猜“此”指的是什么?

    蚂蚁庄园今日答案:人们通常在信的末尾写上“此致敬礼”,猜猜“此”指的是什么? 信的内容 写信的人 答案:信的内容 小知识:人们通常在信的末尾写上“此致敬礼”,“此”指的是信的内容! 书信常用语“此致敬礼”,其中“此致”的意思是到此为止,上面的话讲完了,信的主要内容到此为止了。这里的“此”是对全信的一种概指,“致”的意思是“尽”、“结束”。“此致”,即“要说(写)的已经说(写)完”,作用在于煞尾。“...查看全文:https://boke123.net/6050.html ...继续阅读 (111)


    love 0
    整理专家
    发表于
    2023-08-27 16:21:37

    蚂蚁庄园今日答案:我国哪个戏曲剧种被称为“百戏之师”?

    蚂蚁庄园今日答案:我国哪个戏曲剧种被称为“百戏之师”? 昆曲 京剧 答案:昆曲 小知识:我国昆曲剧种被称为“百戏之师”! 昆曲(Kun Opera),原名“昆山腔”(简称“昆腔”),是中国古老的戏曲声腔、剧种,现又被称为“昆剧”。昆曲是汉族传统戏曲中最古老的剧种之一,也是中国汉族传统文化艺术,特别是戏曲艺术中的珍品,被称为百花园中的一朵“兰花”。 昆曲糅合了唱念做打、舞蹈及武术等,以曲词典雅、行腔...查看全文:https://boke123.net/6049.html ...继续阅读 (100)


    love 0
    王叨叨
    发表于
    2023-08-27 15:49:00

    饿了么表格性能优化

    饿了么表格性能一直是有些问题的,特别是使用了固定列,表格会把固定列克隆出来一份,这样会导致渲染很多冗余DOM,随着数据量的增加,冗余DOM也会变多,如果固定列再使用插槽,里面嵌套复杂的组件,性能会下降更多。最近在做表格的性能优化,发现如果不考虑IE浏览器的情况,可以使用position: sticky来实现固定列。more实现思路:判断左右固定列,给表头表体表尾增加相应的固定列类名;计算每个固定列偏移值,并动态给固定列赋样式;拖拽表头时,重新计算偏移值;相对复杂的就是计算每个固定列的偏移值。目前唯一的缺陷就是在设置固定列的时候,中间不能有间隔,因为没有涉及到克隆。这种通过粘性布局处理固定列,好处就是完全通过CSS实现,性能会好很多,而且对以前的功能完全没有影响。下图对比一下,少了固定列的 DOM。另外之前也看过这篇文章:一顿操作,我把 Table 组件性能提升了十倍,里面的思路也可以借鉴一下。 ...继续阅读 (163)


    love 0
    booop
    发表于
    2023-08-27 15:19:21

    电信光猫 TEWA-708G 获取超级密码教程

    我使用的是电信光猫 TEWA-708G,超级用户的密码已经不再是固定的了,是随机生成的,所以需要一些操作才能够获取到超级密码。这个教程不能保证适用所有型号为TEWA-708G的光猫,因为通过搜索有些同型号的光猫使用的是sessionKey进行查找,有些则是以set1_sessionKey_***进行查找,我的设备使用的是set1_sessionKey_***,所以做一个记录:1. 首先使用普通用户登录用户名和密码在光猫的背面,登录地址:192.168.1.1:8080,用户名一般为 useradmin,并在光猫 USB 接口中插好 U 盘2. 进入“设备管理页面”点击“管理”—“设备管理”或访问:http://192.168.1.1:8080/MD_Device_user.html一定要确认进入设备管理界面,这个界面连 USB 都给屏蔽了“设备管理”页面3. 查找 set1_sessionKey_***按 F12 或在页面点右键→检查,然后在里面搜索set1_sessionKey_,你会找到一个set1_sessionKey_***之类的结果,把***记下来查找 set1_sessionKey_***,如图 *** 为“304”4. 构造命令并执行切换到 Console 窗口,在输入框中输入如下内容:location.assign("/usbbackup.cmd?action=b ...继续阅读 (167)


    love 0
    青南
    发表于
    2023-08-27 13:47:14

    一日一技:在Scrapy中如何拼接URL Query参数?

    我们知道,在使用Requests发起GET请求时,可以通过params参数来传递URL参数,让Requests在背后帮你把URL拼接完整。例如下面这段代码:12345678910111213# 实际需要请求的url参数为:# https://www.kingname.info/article?id=1&doc;=2&xx;=3importrequestsparams = {'id':'1','doc':'2','xx':'3'}requests.get('https://www.kingname.info/article', params=params)那么在Scrapy中,发起GET请求时,应该怎么写才能实现这种效果呢?我知道很多同学是通过字符串的format操作来拼接URL的:12345678url_template ='https://www.kingname.info/article?id={id}&doc;={doc}&xx;={xx}'params = {'id':'1',' ...继续阅读 (176)


    love 0
    booop
    发表于
    2023-08-27 13:21:51

    基于 winston 实现 Nest.js 应用日志服务

    Nest.js Logo实现Nest.js应用日志服务有很多选择,较为出名的有:Log4js、winston、Pino。这次就以 winston 为例,记录一下如何实现 Nest.js 应用日志服务。本文参考了搜索引擎中许多教程与案例,如果觉得有任何问题可以留言与我交流。引入 winston相关依赖:winston、nest-winston、winston-daily-rotate-filepnpm install winston nest-winston winston-daily-rotate-filewinston-daily-rotate-file用于实现日志文件的定期归档。由于应用日志量一般都非常大,因此需要定期自动对日志文件进行轮换、归档与删除。配置 winstonapp.module.tsimport {// ...Module, } from '@nestjs/common'; import { WinstonModule } from 'nest-winston'; import * as winston from 'winston'; import 'winston-daily-rotate-file';// ...@Module({ controllers: [], imports: [// ...WinstonModule.forRo ...继续阅读 (165)


    love 0
    1900
    发表于
    2023-08-27 13:00:26

    你确实需要使用Jamstack吗?

    介绍我们先得知道什么是Jamstack,其实很多博友已经在使用这种方案了,如昱行、木木等,引用Jamstack的介绍如下:Jamstack is an architectural approach that decouples the web experience layer from data and business logic, improving flexibility, scalability, performance, and maintainability.Jamstack removes the need for business logic to dictate the web experience.It enables a composable architecture for the web where custom logic and 3rd party services are consumed through APIs.以我的认知来看其实就是我以前学编程开发时的MVC架构,也就View:展示数据、Control:业务逻辑、Model:数据模型,其实核心思路就是让各个部分只负责自己该做的,前端就单纯负责展示数据,后端则单纯只提供数据,实现一种解耦状态,提高灵活性、性能、拓展性等等。平时博客圈子里的hugo、jekyll、hexo等工具都是一种Jamstac ...继续阅读 (128)


    love 0
    Loong Cheung
    发表于
    2023-08-27 12:49:00

    将 PVE 目录挂载到 LXC

    标准格式:pct set -mp1 /video,mp=/video实际案例:pct set 101 -mp1 /mnt/sdb2=/mnt/sdb2重启容器。more逐个介绍:
pct set: 在pve中运行
101:      自己的容器ID
-mp1:   第一个文件夹,如果挂载到第二、三个,用mp2,mp3依次递增。不记得设置了多少个,在pve对应的ID中,里面有资源选项卡会显示挂载的情况。
/mnt/sdb2: 这是pve上的目录位置
/mnt/sdb2: 这是要挂载到容器中的目录位置除了上述方法,还可以直接在PVE中进行编辑。nano /etc/pve/lxc/101.conf  #101是对应的容器IDmp1: /mnt/sdb2,mp=/mnt/sdb2 ...继续阅读 (122)


    love 0
    转载砖家
    发表于
    2023-08-27 07:31:33

    老薛主机的香港机房线路全新升级,100%直连大陆,采用CN2线路

    为了提升用户网站访问速度,近期,老薛主机对香港机房的线路进行了全新升级,实现100%直连大陆的网络连接,旨在为用户提供更快速、更稳定的访问体验。为回馈客户多年以来持续对我们的支持,升级之后,产品价格不变。 那么,直连是什么意思呢?我们经常听到的CN2线路又是什么?有哪些优势? CN2线路是中国电信推出的一种高质量线路,又叫中国电信下一代承载网,或者叫精品线路,是中国电信目前最高质量的网络带宽。 C...查看全文:https://boke123.net/6044.html ...继续阅读 (107)


    love 0
    四火
    发表于
    2023-08-27 05:28:02

    关于时间管理的一点新的感悟

    从读书,到工作,都离不开时间管理,我相信只要不是属于无比随性的少数人,应该都有自己的体会。因为这件事情太重要了,它贯穿于每日的生活和工作之中。好久以前就写过一点关于时间管理的体会,后来又补充了一些,现在重新开一篇短小的文字,记录一点新的感悟。变化随着年岁的增长,我却越来越感到时间管理这件事情在不断地变得更加重要,因为整体的事务数量和复杂度都提升了。关于其中的原因,我仔细思考过。大致上,在年纪轻一点的时候,兴许每天需要筹划实施五件事,但是现在呢,每天需要筹划实施十件事。相应地,年轻的时候,兴许可能这五件事里面,最终能完成三件;而现在,这十件事里面,也最多能完成五件,看似完成的更多了,却留下了更多的待办事项。那接着的问题就变成了,为什么现在的事情更多?一方面是因为年纪增长,本身就需要承担更多的责任,比如需要处理孩子的事情,家人的事情等等,而这样的事情简直太多了。读书的时候,虽然忙,但是事情的类型相对单纯,而现在的忙,则是掺杂了生活、家庭、工作、学习等等各种各样类型的事情。我记得有一句话说,“成年人的世界里没有童话”,繁忙就是常态。至于另一方面,则是因为科学技术的发展,尤其是信息技术的发展,让一切都变得更可触及和可获得,因此我们的选择更多了,有精力去同时参与更多的事情。比方说,各种社交软件,就会不断打断你的进程,侵蚀你的时间。也许在十五年前,我只需要处理回复短信就可以了,现在我需要处理邮 ...继续阅读 (152)


    love 0
    krimeshu
    发表于
    2023-08-27 05:13:46

    PixiJS 修炼指南 - 05. 场景管理

    [TOC]不知道大家是否还记得,在第二篇《PixiJS 修炼指南 - 02. 项目重构》中,我们创建第一个场景时曾经声明了一个名为IScene的场景接口,今天让我们开始实现场景管理器把它给用起来。场景管理器创建和资源管理模块 (AssetsManager)一样,我们同样以静态类的形式创建一个场景管理器 (SceneManager)出来:12345678910// src/services/scene-manager.tsimport{Container}from'pixi.js';/** 场景管理器 */exportclassSceneManager{privateconstructor() {// 构造函数私有化,避免被外部实例化出新对象thrownewError('请勿调用此构造函数');}}然后,添加app、root和currentScene三个基本成员,控制可访问性使它们对外只读:1234567891011121314151617181920212223242526272829exportclassSceneManager{// .../** 当前应用 */privatestatic$app:Application|null=null;/** 当前应用 (Publi ...继续阅读 (48)


    love 0
    krimeshu
    发表于
    2023-08-27 05:13:46

    PixiJS 修炼指南 - 04. 资源加载(下)

    [TOC]# PixiJS 修炼指南 - 04. 资源加载(下)上一篇中,我们实现的项目资源管理模块AssetsManager功能基本还只是雏形,这次我们来对它进行一些改进和加强,完善诸如对精灵表的支持、总进度回调这样的能力。补充改进其实相比普通的Sprite精灵对象,PixiJS 官方表示更推荐使用Spritesheet“精灵表”。官方文档:https://pixijs.io/guides/basics/sprite-sheets.html它使用起来就像 Web 开发中的 CSS “雪碧图”,将许多的小图合并到一张大图内,再根据需求来控制展示大图的部分区域。(顺带一提,其实“雪碧图”的原文Sprites精灵图,应该就是指早期电视游戏开发中就已有之的精灵图概念。只是 Web 开发的同学可能很多都是先接触到 CSS Sprites,再看到游戏开发的精灵图时反而有前者像后者的感觉。这波可以说“这爸爸长得真像儿子”了属于是。)按照 PixiJS 文档中所说,SpriteSheets至少有以下两个明显优点:首先,可以加快加载速度,在浏览器的下载并发限制下,减少请求数可以减少整个加载过程的等待时间;其次,它可以提升批量渲染,WebGL 的渲染时间打制和绘制调用次数成正比,同一个Spritesheet内的素材更有可能在同义词调用内批量渲染,提高渲染效率。所以我们来改进一下之前的AssetsMa ...继续阅读 (55)


    love 0
    krimeshu
    发表于
    2023-08-27 05:13:46

    PixiJS 修炼指南 - 03. 资源加载(上)

    [TOC]# PixiJS 修炼指南 - 03. 资源加载(上)不知道有没有同学注意到,第一篇中我们创建精灵时使用的是Sprite.from(textureUrl)方法,但是第二篇重构后却改用了Assets.load(textureUrl)加载纹理,然后再设置到this.texture属性内来完成精灵纹理素材加载的。这里的Assets是 PixiJS 提供的资源管理器,由它负责处理下载、缓存、转换等工作,将项目资源变成你需要的形式。和其他 PixiJS 模块一样,虽然它的功能很强大,但使用起来还是有些骨感。对于日常开发还需要将其做一些封装和完善,改造为更方便的开发模式来使用。模块介绍Pixi.Assets模块的前身是 PixiJS 6.x 之前的版本中的Pixi.Loader,经过改进完善后,它提供了更现代化的 Promise 风格 API。Assets模块工作时,在后台自动进行并发加载的控制调度,缩短加载时间,加快启动速度;缓存机制避免重复加载相同的资源,提高效率;可扩展的转换器系统,允许我们轻松扩展和定制更多需要的资源格式。在没有添加第三方转换器的情况下,PixiJS.Assets内部默认提供了以下几类资源的支持:纹理 (Textures):avif, webp, png, jpg, gif精灵表 (Sprite sheets):json位图字体 (Bitmap fonts): ...继续阅读 (57)


    love 0
    krimeshu
    发表于
    2023-08-27 05:13:46

    PixiJS 修炼指南 - 02. 项目重构

    [TOC]# PixiJS 修炼指南 - 02. 项目重构潜在问题在上一篇最后的例子中,我们写了一段代码实现一个简单的静态场景 demo,它跑起来了而且目前看起来也不复杂——从上到下写过来的代码,可以说是相当地“平铺直叙”了。但是设想一下,随着项目开发的正式启动,其中的场景成员越来越多可能达到几十甚至上百以计的规模。而且通常游戏都不会只有一个场景,每个场景、成员之间的控制和回调代码相互交织,结果显然将会变成一团混乱的面条代码,彻底走向失控。所以我们通常推荐在项目跑起来后,通过面向对象的方式将代码进行抽象归类,再通过启动入口、场景管理器等核心部分进行统一调度管理。以合理的代码组织方式进行项目重构,来达到各部分之间的界限清晰、分工明确的效果,确保项目的可维护性。结构梳理1. 启动代码一般而言,我们的项目会有一个固定入口,我们会在其中进行项目启动时的初始化设定,这里的代码相对固定,而且不需要在具体业务逻辑中复用,我们将它们划分为启动代码(Bootstrap)。我们通常会在这里做以下事情:配置插件:引入插件,设置插件参数;补丁与HACK:引入补丁/HACK 处理模块;项目初始化:引入基础样式、初始化公共模块;创建应用:决定启动参数,创建应用的实例;创建核心对象:配置场景管理器等核心对象;全局事件:监听全局事件(如页面尺寸变化),通知应用进行处理;启动应用:串联各部分流程,启动进入 ...继续阅读 (57)

上一页 536/4404 下一页
沪ICP备19023445号-2号
友情链接