Dvorak
Dvorak

Dvorak Chen

Default Default Category


更好的 Javascript 运行时 Deno

# 更好的 Javascript 运行时 Deno 本博客介绍了一种更好的 JavaScript 运行时环境——Deno。与目前占据主导地位的Node不同,Deno提供了更好的使用体验。 Deno同样基于V8引擎,但与Node不同的是,Deno默认支持TypeScript,并提供了HTTP服务器等功能,而Node需要通过添加依赖来实现这些功能。 在安装Deno后,可以通过在控制台输入`deno -v`来查看Deno的版本。 Deno可以直接运行TypeScript,只需创建一个ts文件并编写代码,然后使用`deno`命令运行。此外,Deno还可以作为服务器使用,它提供了用于构建HTTP服务器的库。只需创建一个新文件并编写代码,然后使用`deno run --allow-net`命令运行即可。需要注意的是,在Deno中,默认情况下网络权限是关闭的,需要使用`--allow-net`参数开启。 通过使用Deno,无需安装任何依赖即可运行TypeScript和构建HTTP服务器。 想要了解更多关于Deno的信息,请查看[官方文档](https://deno.com/)。--GPT 4

Javascript

dotnet Authentication and Authorization

# .NET身份验证和授权 本篇博客介绍了在.NET中的身份验证和授权。使用了基于Cookie的身份验证,即用户身份信息将存储在Cookie中并响应给客户端。在控制器中,通过创建一个包含用户身份信息的`ClaimsPrincipal`对象,并使用`SignIn(claimsPrincipal, CookieAuthenticationDefaults.AuthenticationScheme)`方法将其发送给客户端: ```csharp var claims = new List<Claim> { new(ClaimTypes.Sid, <Id>,ClaimValueTypes.Sid, ISSUER, ISSUER), new(ClaimTypes.Email, <Email>, ClaimValueTypes.Email, ISSUER, ISSUER) }; var claimsIdentity = new ClaimsIdentity( claims, CookieAuthenticationDefaults.AuthenticationScheme); var claimsPrincipal = new ClaimsPrincipal(claimsIdentity); return SignIn(claimsPrincipal, CookieAuthenticationDefaults.AuthenticationScheme); ``` `SignIn`方法将创建一个包含Cookie的`SignInResult`对象,并将其从控制器返回给客户端,你可以在响应中看到`set-cookie`头部: ![file](/image/img-b9fca940-08db-4696-9537-d76aecf8a553.png) ## 我更喜欢使用Cookie 有多种身份验证方式可供选择,例如:Cookie、JWT等。如果我使用基于浏览器的客户端,我更倾向于使用Cookie,例如Web、Tauri、Electron等。 因为现代浏览器具有更高的安全性,它们会自动处理Cookie,接收Cookie并存储Cookie,并在发送请求时附加Cookie。客户端不需要额外处理Cookie。 相比之下,JWT会更加复杂。 包含用户身份信息的Cookie可...--GPT 4

.NET

How to fix some issues while using "diesel"

If you encounter the 'cannot open input file "sqlite3.lib"' error when operating sqlite file with Diesel, don't worry, it's because Diesel can't find the file sqlite3.lib at the path ~/.rustup/toolchains/..... You can download sqlite3.lib from the link provided in the article. After downloading, unzip it and move sqlite3.lib to the path ~/.rustup/toolchains/stable-x86_64-pc-windows-msvc/lib/rustlib/x86_64-pc-windows-msvc/lib/. Note that the path might be different if you use a different version of Rust. This article provides a simple solution to the error and helps you get back on track with your work.--GPT 4

Rust

Rust 和经典语言在习惯上的差异

本文介绍了 Rust 和 C# 在编程习惯上的差异。首先介绍了 Rust 中的所有权概念,即变量持有它的值的所有权、变量赋值给别的变量会转移所有权、变量不能使用它没有持有所有权的值。这种概念带来的好处是严格限制了值的生命周期,为编译器知道在何处释放它提供了基础。其次,本文介绍了 Rust 中的抽象,即单元结构体的使用方法,它不定义任何的属性,可以用 `impl` 块给他定义方法,调用的时候单元结构体的名字提供了抽象。最后,本文介绍了在 Rust 中经常出现的嵌套泛型的写法,这种写法是为了实现动态分配,而其他的,如 `Mute<T>` 和 `Arc<T>` 是为了在多线程中共享数据。在 Rust 中必须要习惯这种 **wrap** 写法。--GPT 4

Rust

Leptos - 撸一只赛博猫猫

本文介绍了使用Leptos和Rust语言,替代Javascript,编写一个可爱的赛博猫猫动画的过程。文章首先介绍了一些有用的crates,如console_log、gloo和js-sys,它们分别提供了打印输出、大量BOM调用的API和时间库功能。然后,作者详细描述了如何使用HTML和Rust编写的逻辑代码,包括事件监听和类似Javascript的Interval时间函数,来创建一个可交互的赛博猫猫动画。此外,文章还详细解释了如何使用Interval时间函数和数组存储的字符画,来实现猫猫摇尾巴的动画效果。最后,作者提到了如何使用on_cleanup函数,在组件清理的时候取消Interval函数,以及如何在组件卸载的时候清理Interval。那么,如何使用Rust和Leptos来创建自己的动画呢?你会尝试使用这些方法和技巧来创建自己的项目吗?--GPT 4

Rust

从实现 Iterator 来窥探 Rust

本文详细介绍了如何在Rust中实现Iterator trait,以支持for in遍历。首先,我们定义了一个简单的struct,然后实现了一个iter()方法,将其转换为另一个实现了Iterator trait的结构。接下来,我们探讨了为何不直接在Nums上实现Iterator,以及Rust特有的生命周期标注的概念。我们还解释了如何在NumsIter结构中使用生命周期标注,以保证在借用Nums的时间内Nums都是存在的。最后,我们实现了Iterator trait,并给出了完整的代码示例。这篇文章提供了一个深入理解Rust中Iterator实现和生命周期标注的好机会。那么,你是否已经理解了如何在Rust中实现Iterator?你是否理解了生命周期标注的作用及其在Rust中的重要性?--GPT 4

Rust

Leptos 初探 - 序言

Leptos是一个用Rust开发的全栈Web框架,其写法类似于React,但实现机制却大相径庭。Leptos采用最小粒度更新的方式,避免了虚拟DOM的处理,性能上优于React。然而,由于Rust语言的学习难度,Leptos的普及可能会受到一定限制。此外,Leptos的更新机制依赖于闭包,而Rust严苛的语法规则可能会给开发者带来一些挑战。例如,Rust的所有权规则需要通过`Rc`进行引用计数来解决。最后,Leptos的代码最终会编译到浏览器的WASM环境中运行,因此不是所有的Rust crate都能够正常运行,需要挑选能够在WASM中使用的crate。这篇文章对Leptos的使用进行了详细的介绍,对于想要了解和使用Leptos的开发者来说,具有一定的参考价值。那么,你是否已经准备好接受Leptos的挑战,使用Rust开发你的Web应用呢?--GPT 4

Rust Leptos

湘伦小雨四手联弹 - 低音部分和弦走向分析

本篇博客主要分析了湘伦小雨四手联弹的低音部分和弦走向。通过详细的音符、和弦图示和讲解,我们可以清晰地了解到这首曲子的和弦结构和旋律走向。博客首先通过调号确定了曲目的主调为E小调,然后逐小节分析了和弦的变化和功能,包括主调的确定、过渡和终止等。分析过程中,博客还详细解释了和弦的级数和构成,以及各级和弦在曲目中的作用和意义。例如,前三个小节的E下行B交替,组成了E小调i级和弦,起到明确主调的作用;第四小节的#C -> #D起过渡作用,过度到第五小节的E。之后的和弦走向为i -> V -> i -> iv -> i,构成了曲目的基本骨架。整个分析过程严谨细致,充满音乐理论知识,对于理解和学习这首曲目有着极大的帮助。你能否从这篇博客中找到音乐理论和实践相结合的魅力?你又能否从中感受到和弦在音乐中的重要作用,以及如何通过和弦分析理解和学习音乐作品?--GPT 4

music

鸣谢

本篇博客主要展示了对Anduin Xue的鸣谢,表达了对其提供的博客的深深感谢。此外,博客中也强调了身体健康的重要性,提醒读者在忙碌的生活中,不能忽略对身体的关爱。这篇博客可能会让你思考:为何我们要对他人的帮助表示感谢?身体健康又有何重要性?希望你能在阅读完整篇博客后,找到你的答案。--GPT 4


  • 1