<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[一个不安分的程序员]]></title><description><![CDATA[愿做技术社区的一股清流，让技术帮助更多的人。分享编程感悟，成长我们一直在路上！]]></description><link>https://blog.youkuaiyun.com/tianlangstudio</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tianlangstudio]]></copyright><item><title><![CDATA[解决cannot find attribute `serde` in this scope记录]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/147471758</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/147471758</guid><author>tianlangstudio</author><pubDate>Thu, 24 Apr 2025 10:39:57 +0800</pubDate><description><![CDATA[为当前stract添加#[derive(Deserialize, Serialize)]注解解决。根据报错信息很容易以为是导入缺失。]]></description><category></category></item><item><title><![CDATA[使用异步特征引发的错误error[E0195]: lifetime parameters or bounds on method `before_save`]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/147278946</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/147278946</guid><author>tianlangstudio</author><pubDate>Wed, 16 Apr 2025 16:02:56 +0800</pubDate><description><![CDATA[使用SeaOrm保存实体到数据库时不想每次都设置更新时间，所以想通过实现ActiveModelBehavior在保存实体前统一设置更新时间。因为使用了异步特征，目前还需要借助第三方crate把我们的代码转换成异步特征支持的形式而不用关心脚手架代码。使用#[async_trait]注解。]]></description><category></category></item><item><title><![CDATA[RustRover加载Rust项目报错]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/143358380</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/143358380</guid><author>tianlangstudio</author><pubDate>Wed, 30 Oct 2024 11:12:18 +0800</pubDate><description><![CDATA[以为跟清理了AppData目录有关，就重新安装的RustRover问题依然没有解决。取消git 的全局代理，可能是以前为了加速为Git配置了全局代理。上看应该是跟使用了网络代理有关，可并没有开启代理。确认配置的git全局代理。]]></description><category></category></item><item><title><![CDATA[Error: Could not find the module “AppContext#Provider“ in the React Client Manifest]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/142991218</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/142991218</guid><author>tianlangstudio</author><pubDate>Wed, 16 Oct 2024 20:55:21 +0800</pubDate><description><![CDATA[先前只考虑到React了，忽略了是在NextJS中使用React的。NextJS把我们的页面当成服务端渲染，React的Context API看来还没支持。想用React Context做下用法验证，就使用NextJS创建了一个项目，编写了简单的Context代码用于验证。无论怎么改写代码都不能解决，对比官方React官方文档并无出入，一时不得其解。解决方法很简单：在page.js 最上面添加 'use client']]></description><category></category></item><item><title><![CDATA[cargo lambda invoke Error: x invalid error payload expected value at line 1 column 1]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/134500400</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/134500400</guid><author>tianlangstudio</author><pubDate>Mon, 20 Nov 2023 09:42:25 +0800</pubDate><description><![CDATA[需要先执行cargo lambda watch， 先前误执行成了cargo watch。]]></description><category></category></item><item><title><![CDATA[SpringBoot JPA not-null property references a null or transient value 问题解决]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/133738056</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/133738056</guid><author>tianlangstudio</author><pubDate>Tue, 10 Oct 2023 10:51:02 +0800</pubDate><description><![CDATA[也可以先使用ID获取当前需要更新的实体，然后修改需要更新的字段后再使用save保存，这样每次更新都是全字段，如果字段比较多对数据库性能会有影响。可以在实体类上使用@DynamicUpdate注解，这样hibernate在生成更新SQL时就只包含值有变更并且不为null的字段。使用了@DynamicUpdate注解后，在service中先load再更新 生成的SQL edit:test_hot5。报错的字段恰好时更新时不需要的字段，在字段对应的@Column注解中设置updatable=false解决。]]></description><category></category></item><item><title><![CDATA[云主机测试Flink磁盘满问题解决]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/132076708</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/132076708</guid><author>tianlangstudio</author><pubDate>Thu, 03 Aug 2023 09:49:42 +0800</pubDate><description><![CDATA[使用云主机测试Flink时，根目录满了。经排查发现运行Flink任务后根目录空间一直在减少，最后定位持续增加的目录是/tmp目录。修改Flink配置使用一个相对较大的磁盘目录做为Flink运行时目录。]]></description><category></category></item><item><title><![CDATA[Windows特殊名称文件夹删除]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/131801363</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/131801363</guid><author>tianlangstudio</author><pubDate>Wed, 19 Jul 2023 11:14:31 +0800</pubDate><description><![CDATA[突然想到要是在Linux下开发就好了，应该就不会遇到这么奇葩的问题了， Linux？也许可以试下Git Bash. 在Windows下可以执行bash命令的工具。直接使用Linux下常用的ls命令找到需要删除的文件夹名称，再使用rm -rf删除文件夹，so easy。删除build时可以看到build后面是有个空格的，用dir看着不明显，用ls就明显多了.使用React开发的前端项目，指定build输出路径是创建出了俩个特殊的文件夹。尝试下载删除文件夹的工具也没找到靠谱的下载地方。]]></description><category></category></item><item><title><![CDATA[Unable to make field private final java.lang.String java.io.File.path accessible: module java.base]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/131320269</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/131320269</guid><author>tianlangstudio</author><pubDate>Wed, 21 Jun 2023 08:44:12 +0800</pubDate><description><![CDATA[经过检查发现升级了gradle7，使用的JDK 17. 真是一次大跳跃， 不得不说Java这几年发版本真快。从报错信息可以看出跟Java模块化有关，先前都是用的JDK8 而模块化是JDK9引入的新功能。可以在gradle.properties（项目根目录下可以找到）中设置。既然JDK 17要模块化，那就跟项目指定一个不需要模块化得JDK8.]]></description><category></category></item><item><title><![CDATA[dangerousRemoteUrlIpcAccess]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/130499108</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/130499108</guid><author>tianlangstudio</author><pubDate>Fri, 05 May 2023 19:42:20 +0800</pubDate><description><![CDATA[在使用Tauri窗口加载外部链接时，需要也能继续使用Tauri API与Rust交互。修改Cargo.toml文件，先前使用的tauri 1.2.4 修改版本为1.3.0  删除tauri-api。步骤1. 升级tauri-cli 及 tauri相关依赖，删除不需要的依赖，执行cargo update。问题解决，发布公告中使用的配置项名称于官方文档中使用的名称不一致，按照官方文档中修改解决。步骤2. 编辑tauri.conf.json文件修改。执行cargo update后仍然报错。]]></description><category></category></item><item><title><![CDATA[Flink 1.16 idea intellij中运行web ui]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/129557341</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/129557341</guid><author>tianlangstudio</author><pubDate>Wed, 15 Mar 2023 15:51:21 +0800</pubDate><description><![CDATA[/设置为0 每次启动端口都不一样 也可以设置一个固定的端口 如8081。(conf) 时直接设置下这个参数就行了，需要发布运行时也不用再修改代码。在pom.xml文件中添加flink-runtime-web依赖。Flink 1.16.1亲测可用， 先前的版本可能还需要使用。做的事情也无非就时往配置项里添加了个rest.port.在初始化执行环境时传入的配置中添加rest.port项。在浏览器中访问对应链接就可以看到web ui了。//checkpoint配置。//获取Flink的运行环境。]]></description><category></category></item><item><title><![CDATA[docker升级后启动失败 需要指定storage driver]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/129337460</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/129337460</guid><author>tianlangstudio</author><pubDate>Sat, 04 Mar 2023 18:31:18 +0800</pubDate><description><![CDATA[问题描述：闲来无事就在开发电脑上执行了下sudo apt-get upgrade 升级下软件, 升级后docker启动失败.visit。]]></description><category></category></item><item><title><![CDATA[Rust Atomic总结笔记]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/128441791</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/128441791</guid><author>tianlangstudio</author><pubDate>Mon, 26 Dec 2022 11:45:52 +0800</pubDate><description><![CDATA[在Rust中原子操作通过std::sync::atomic模块下的原子类型提供，比如：AtomicI32.比较后交换（Compare-and-exchange）操作比较灵活通用，也是实现其它类型操作的基础。获取后修改（Fetch-and-modify）操作在多个线程中修改同一个原子变量时比较有用。简单的存取（load和store）适用于比较简单的线程内部通信，比如：停止标志，状态报告。原子（Automic）操作是不可再分的操作，要么全部执行完成，要么全部不执行。并不是所有的原子类型在所有平台上都有提供。]]></description><category></category></item><item><title><![CDATA[Rust并发编程总结]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/128440025</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/128440025</guid><author>tianlangstudio</author><pubDate>Mon, 26 Dec 2022 10:47:00 +0800</pubDate><description><![CDATA[普通的线程有可能跟程序运行一样长的时间，所以需要借用有静态生命周期（'static）的数据或者使用泄露分配（Box::leak）当条件取决于已经被Mutex保护的数据时，使用Condvar会更方便也相对使用thread::park更高效。&T是共享引用，&mut T是排它引用。数据如果是Send的就可以发送到其它线程中，如果数据是Sync的就可以在线程间共享。可以使用有范围的线程限制线程的生命周期，这样就可以借用非静态生命周期的数据了。一个程序中的多个线程可以并行执行，可以使用spawn创建新的线程.]]></description><category></category></item><item><title><![CDATA[nextjs13 webpack5 使用wasm报错]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/128225537</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/128225537</guid><author>tianlangstudio</author><pubDate>Thu, 08 Dec 2022 10:24:33 +0800</pubDate><description><![CDATA[问题描述：
在next 13, webpack 5, react 18的项目中使用Rust编写的wasm报错： 
./node_modules/image-map-path/image_map_path_bg.wasm
Module parse failed: Unexpected character &#39;&#39; (1:0)
The module seem to be a WebAssembly module, but module is not flagged as WebAssembly mo]]></description><category></category></item><item><title><![CDATA[Grails SpringBoot国际化不生效]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/128027390</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/128027390</guid><author>tianlangstudio</author><pubDate>Thu, 24 Nov 2022 21:52:33 +0800</pubDate><description><![CDATA[defaultLocal 的优先级是高于request.getLocale()的也就是配置的默认locale比从访问请求中解析到的locale优先级高, 这就是为什么Accept-Language不起作用的原因。但无论浏览器了配置什么语言甚至配置了Tomcat启动参数 -Duser.language=xxx -Duser.region=xxx页面显示依旧是英文。java.util.Locale有很多常用的静态Locale，直接用就可以了，省得写错了，出现很神奇的错误。]]></description><category></category></item><item><title><![CDATA[React18报consider converting part of this to a Client Component]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/127989643</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/127989643</guid><author>tianlangstudio</author><pubDate>Tue, 22 Nov 2022 21:17:52 +0800</pubDate><description><![CDATA[Next13 app目录下的组件默认都是server side的， 但onChange是需要在Client Side处理的也就是在浏览器上处理，所以需要声明组件是client side的，怎么声明呢？搜索了白天最后找到Next的官方文档就一句话: 在文件的开头写上。]]></description><category></category></item><item><title><![CDATA[webpack react npm start报错解决 ERR_OSSL_EVP_UNSUPPORTED]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/127910768</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/127910768</guid><author>tianlangstudio</author><pubDate>Thu, 17 Nov 2022 20:13:35 +0800</pubDate><description><![CDATA[也可以每次执行npm start时设置 NODE_OPTIONS=--openssl-legacy-provider npm start。使用最新的npx create-react-app my-app创建了个react项目。]]></description><category></category></item><item><title><![CDATA[这个故事改善了我的焦虑 小故事大智慧 如何摆脱烦恼]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/127700733</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/127700733</guid><author>tianlangstudio</author><pubDate>Sat, 05 Nov 2022 11:09:35 +0800</pubDate><description><![CDATA[生活中人们都会遇到问题，但有些人遇到问题后异常沮丧，不知道该怎么办！ 今天的故事就是为这样的人准备的。 如果你也是这样的人，那就一定要看完！ 从前，小镇附近住着一位非常聪明的和尚。 人们经常找他解决问题。 一天，许多人带着他们的问题等着见和尚。 过了一会儿，和尚走进房间，开始一个接一个地倾听他们的问题。 在听取了所有人的问题之后。和尚突然起身离开了房间。 人们对他的行为感到很疑惑。 过了一会，和尚回到了房间...]]></description><category></category></item><item><title><![CDATA[Github创建的个人简历]]></title><link>https://blog.youkuaiyun.com/tianlangstudio/article/details/127686717</link><guid>https://blog.youkuaiyun.com/tianlangstudio/article/details/127686717</guid><author>tianlangstudio</author><pubDate>Fri, 04 Nov 2022 13:17:02 +0800</pubDate><description><![CDATA[上图中浏览器地址的后面部分，头像下面显示的是账号名称和公司名称可别用错了。可所以我要创建的仓库名称就是。在Github上要输入表情可以敲“:”(英文状态的)，后面跟上表情英文名称，就可以搜索选择了。README.md就是个普通的markdown文件了，你可以自由发挥了。注意是跟自己账号ID同名而不是账号名称，如我的Github账号ID是。创建的时候记得选中生成REDAME.md文件。2.然后在线编辑REDAME.md再提交。1.创建一个跟自己账号同名的仓库。先这样吧，以后有时间再完善。]]></description><category></category></item></channel></rss>