快速上手──在Linux上游玩osu!stable
适合新人、了解一些 Wine 以及 osu!stable 人士的指北,内容简单明了,操作基于 Arch:即本文
适合想详细了解所有步骤的指北,内容详尽繁多,有疑难解答:Blog 或 BiliBili 专栏版 (过时)
如果仅仅想要玩 osu! ,没有刷 PP 的想法 ,为什么不直接使用原生且延迟极低的 osu!Lazer 呢?
前言我相信大多数人已经在用自己心目中最舒适的发行版,但如果你还没有想好用什么发行版,请 马上投入Arch神教的怀抱 查询资料了解下各发行版的特点,选择一个适合自己的发行版。但我仍建议使用基于Arch的发行版,因为所用补丁的是基于Arch进行打包。
本文所有操作均基于Arch发行版进行!
按道理来讲,本指南适用于 Ubuntu、Debian系、openSUSE、Fedora 或 Arch系等,本文会使用Lutris作为Wine的容器管理,因为实在太方便,当然也会提供脚本的方式运行。
视频流程3月刚好换了新电脑,就顺便录了视频。
BiliBili: BV1kY411T7wU
安装 Lutris 和 wine-osu首先务必参阅Lutris官方docs文档,其中包 ...
让Galgame在ArchLinux通过Wine正确运行
仅是一份运行记录,以作备忘。若有帮助,荣幸至极。
由于难以忍受我的电脑在 Windows10 下各种奇葩的性能问题以及强制更新,我在六月初的时候投向了 Arch 的怀抱,并开始作为主力日常使用。而 Windows10,我单独分配了一个约 60G 的空间以作备用:如游玩 3A,带反作弊的游戏,视频渲染等,这些工作在 Windows 下会比 Linux 更加优秀,简单。
但说句不好听的,Windows 的强制更新就像 NTR 了我的电脑。(滑稽)
本文基于 ArchLinux 编写,大致方向可适用于 Arch 衍生的发行版,Ubuntu 等…
前言大部分 galgame 日文原程序在 Linux 下通过 Wine 调试后再运行是没有问题的,因为不会涉及到太多东西,DLL 大多数都封装好在游戏目录中,跑起来和 Windows 下无异。但是经过汉化修改过的 Gal 程序,有些会完全无法运行(对,纯属运气问题),因为每个汉化组的汉化手段不一致,可能在 Windows 下能正常运行的,在 Wine 下运行会无反应或花式报错。
即使汉化无法运行,还可以通过使用虚拟机(如 KVM,VmWare)的方式 ...
原神YAM_BOT绑定ck和stoken帮助
注意事项⚠️阅前请务必知悉:如为不信任的机器人,请勿配置,风险请自行承担。下文将简单概述两种绑定信息可能存在的风险。
cookie信息(简称ck)可以简单理解为当前帐号的登录信息,以用于获取体力详情、深渊通关情况、原神签到等米游社相关敏感操作,同样也拥有着进行米游社发帖、点赞和其他未知的敏感操作。
stoken信息可以理解等同于整个米哈游账户权限,理论上可以通过stoken来实时更新cookie,以登录您的帐号,进行可能的任何敏感操作。请根据自己的情况、是否信任当前使用的机器人,谨慎考虑。本人与本教程不承担任何法律责任,仅负责提供相关方法。
本人自行搭建有YAM_BOT v3.0.0机器人,如于我的机器人下进行ck和stoken配置,则默认信任我的机器人,出现任何帐号相关问题本人概不负责。我也不会闲得他妈没事干用ck信息弄什么违法的事,现在国内任何东西都是实名制为前提,我还不如好好上班多赚点钱。。。
为避免风险起见,你也可自行搭建一个私人的机器人。
由于本人只拥有安卓手机和PC,本教程仅会提供上述两种设备类型的绑定方法(stoken信息绑定验证仅PC端可用),IOS相关则会引用 ...
耦合相关简要解释
耦合耦合是两个或者多个组件之间相互关联,如果两个组件或模块之间的耦合度越高,则会导致维护成本越高。因此,在系统架构的设计过程中,应当减少各模块之间的耦合度,提高模块的可维护性。
紧耦合紧耦合可以看成是C/S模型,如图所示:
优点:架构和设计简单、开发周期短、能够快速投入生产
缺点:
随着规模的增大,系统的稳定性会逐渐变差。
同步操作会导致网络资源消耗大。同步的等待过程中有大段时间是空闲的,这造成对资源的浪费。
安全力度差,由于服务器直接向外暴露到客户机,容易引发网络攻击行为。
程序代码之间关联度高,不利于模块化处理。
松耦合松耦合可以看成是CAS模型,亦就是在CS之间放置一个代理,如图所示:
在新的架构下,客户机角色不变,由代理服务器承担与客户机之间的通信,而服务器位于代理服务器后面,对客户机而言是不可见的。
优点如下:
提升了对多任务并行处理能力,实现负载自适应机制。
保护了对服务器端的安全
异步操作减少网络资源消耗和操作关联
提升了系统的可维护性
松耦合和紧耦合的对比
紧耦合架构
松耦合架构
工作方式
同步
异步
程序关联依赖
强
弱
业务逻 ...
面向对象编程基础
由于很久没有碰过OOP的编程基础,所以记录一下温习的要点。
OOP的三大特征:封装、继承、多态。
对象对象这个东西是个什么?
简单来讲就系它是一个软件构造类,它一般代表着某类事物或者抽象某些东西,例如一个人。
进一步讲,类是对象的定义,对象是实例化的类。
一个对象包含有着正在代表的事物的数据、属性,它还能够为正在代表的事物提供功能或方法。比如一个人,属性可以为年龄、姓名、性别等等,功能可以是走路、吃饭或睡觉等。
命名空间命名空间类似于Java中的包概念,但不完全相同。
C# 10 中可使用文件范围的命名空间声明,和Java很像:
namespace SampleNamespace;
class AnotherSampleClass
{
public void AnotherSampleMethod()
{
System.Console.WriteLine(
"SampleMethod inside SampleNamespace");
}
}
但在C# 10之前的命名格式:
na ...
Git的简单概念阐述和相关命令使用
会用就行了,安装这些就不想说太多废话,安装过程请自己找官方文档。希望不要再忘记了,虽然现在git用的多是在vs或者idea,但是最好还是不要忘记在terminal下该如何使用。
配置用户相关信息git config --global user.name "blacksand"
git config --global user.email "blacksand@gmail.com"
其中:
--local仅指定当前本地git仓库
--global指定所有当前用户的git仓库
--system会指定全系统的git仓库
一些简单的概念git主要分为4个区域:即workspace(工作区)、staging area(暂存区)、local repository(本地仓库)和remote repository(远程仓库)
他们之间的操作关系可以用如下图所表示:
其中工作区就是平时在电脑中看到的目录;
暂存区一般存在于.git下的index文件里面;
而版本库是.git目录,这个文件夹不属于工作区的范畴。
常用命令# 在当前路径初始化仓库
git init ...
dotnetCLI命令入门
这是通用开发技巧中的一部分:学习 dotnet CLI
.NET 命令行接口 (CLI) 工具是用于开发、生成、运行和发布 .NET 应用程序的跨平台工具链。
基础命令new这条命令是用来新建一个文件,它可以是解决方案、一共模板或者是配置文件,语法如下:
dotnet new <TEMPLATE><Options>
dotnet new console -o myApp
bulid这条命令是用于构建一个包含所有依赖项的项目,语法如下:
dotnet bulid [<Porject>]
restore 这条命令是用于恢复项目的依赖项和工具。
dotnet restore 命令使用 NuGet 还原依赖项以及在 project 文件中指定的特定于项目的工具。在大多数情况下,不需要显式地使用 dotnet restore 命令。
dotnet restore [<ROOT>]
publish顾名思义,这条命令将会把应用程序及其依赖项发布到文件夹中以部署到托管系统。语法如下:
dotnet publish [<Project>]
run这 ...
方法重载(Function Overload)_Csharp
很简单的一个概念哈,但是总是拎不清方法重载(Function Overload)具体到底是个什么东西,所以写了本文。
本文就不将运算符重载算在里面了,涉及到一个新的关键词operator,不讲先。
概念?
函数重载(英语:function overloading)或方法重载,是某些编程语言(如 C++、C#、Java、Swift、Kotlin 等)具有的一项特性,该特性允许创建多个具有不同实现的同名函数。对重载函数的调用会运行其适用于调用上下文的具体实现,即允许一个函数调用根据上下文执行不同的任务。
——Wikipedia
注意下重载(overload)和重写(overriding),两个概念是不一样的。
方法重载在C#中,一个类里面可能有两个或者多个同名方法,但是他们的参数数量、类型或顺序不同,这种情况称为方法重载。例下:
class XXX
{
public void Study()
{
//...
}
public void Study(string name)
{
...
LeetCode算法一些解答_Csharp
用两个栈实现队列Link
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
示例 1:
输入:[“CQueue”,”appendTail”,”deleteHead”,”deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]
示例 2:
输入:[“CQueue”,”deleteHead”,”appendTail”,”appendTail”,”deleteHead”,”deleteHead”][[],[],[5],[2],[],[]]输出:[null,-1,null,null,5,2]
提示:
1 <= values <= 10000
最多会对 appendTail、deleteHead 进行 10000 次调用
代码实现
public class CQueue
{
//一个队列为插入数据,一个队列为弹出数据作为删除操作
priva ...
HTTP方法以及状态码
HTTP方法根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
POST:添加资源;一般将POST参数放在请求的body里面,请求应该返回新创建的资源以及可以获取该资源的唯一表示URI。
GET:获取资源;不需要参数,通过类似 api/companies/{compayId} 的URI来表示资源中的一个公司,请求会返回请求路径所对应的资源。
GET也可获取集合资源,带有查询/过滤条件,此时条件参数是资源地址?后面的部分,例如 api/companies?Name=Rick 请求会返回符合条件的资源。
DELETE: 删除动作;不需要参数;通过URI来表示资源中的一个公司,无需返回信息。
PATCH:更新局部信息火修改局部信息动作;参数会在请求的body中,通过URI;无需返回成功信息。
PUT:替换信息;参数会放在请求的body里面,通过URI形式表示资源 ...