- 博客(555)
- 资源 (14)
- 收藏
- 关注
转载 Naming Conventions for Traits
(Jin Qing’s Column, Jan., 2024)From: https://github.com/rust-lang/api-guidelines/discussions/28If the trait has a single self-explanatory method (or a set of nearly identical methods), name it after the method: Clone, Hash, Default, Into, Write, ToOwned, A
2024-01-17 08:59:48 58
原创 Rust generic type parameter and `impl Trait` parameter
(Jin Qing’s Column, Jun., 2023)See: https://doc.rust-lang.org/reference/types/impl-trait.htmlGeneric type parameter and parameter are almost equivalent: is just a syntactic sugar for generic type parameter.It is a little simpler by omitting the generic
2023-06-20 20:04:18 1067
原创 How are dtLinks created in NavMesh
(Jin Qing’s Column, Nov., 2022) defines a link between 2 polygons.It is an internal data structure.A is owned by its source polygon.The links are used in , to searchall the neighbor polygons, from the current best polygon. has 2 required fields:If the l
2022-11-18 09:59:42 198
转载 C++ parameter passing rules
From: https://www.modernescpp.com/index.php/c-core-guidelines-how-to-pass-function-parametersParameter passing expression rules:
2022-10-29 10:59:02 122
原创 Implementation of user data in cursive::Cursive
【代码】Implementation of user data in cursive::Cursive。
2022-10-02 16:23:19 124
原创 Rust sometimes needs manual type annotation
Rust sometimes needs manual type annotation(Jin Qing’s Column, Apr., 2022)This code compiles error:trait MyCallback: FnMut(&u32) -> () { }impl<F: FnMut(&u32) -> ()> MyCallback for F { }fn process_data(mut f: impl MyCallback) ->
2022-04-29 10:09:27 170
原创 Fix recastnavigation contour error
Fix recastnavigation contour error(Jin Qing’s Column, Apr., 2022)Using navmesh generated by recastnavigation,we found the agent will collide into the wallwhen it is walking along the navmesh path.After some inspection, we found the reason is that at t
2022-04-28 13:13:30 334
原创 TortoiseGit is OK but GitExtensions fails
TortoiseGit is OK but GitExtensions failsGitExtensions and Git fail:"git" pull --progress "origin"git@github.com: Permission denied (publickey).fatal: Could not read from remote repository.Please make sure you have the correct access rightsand the r
2022-04-24 13:50:21 997
原创 How to work around rustup-init failure
How to work around rustup-init failure(Jin Qing’s Column, Mar., 2022)rustup-init.exe may fail if some anti-virus software is running with realtime protection.The error message is like this after many retries:error: could not rename component file from
2022-03-23 20:05:08 692
原创 Closure as the function parameter
Closure as the function parameter(Jin Qing’s Column, Mar., 2022)It is best to let the function take a closure trait as the parameter instead of function pointer.fn foo(f: fn()) { f()}fn main() { foo(|| println!("hello")); let a = 123;
2022-03-18 15:57:15 556
原创 deadlock detection must not run as tokio task
deadlock detection must not run as tokio taskparking_lot has an experimental feature: deadlock_detection.See: https://amanieu.github.io/parking_lot/parking_lot/deadlock/index.htmluse std::thread;use std::time::Duration;use parking_lot::deadlock;// C
2022-02-12 11:43:33 479
原创 Tracing usage
Tracing usage(Jin Qing’s Column, Jan., 2022)Tracing is Rust log crate: https://github.com/tokio-rs/tracingThis example code output log to stdcout and file, using a log filter file,which can automatically reload on change.https://gitee.com/jinq0123/tra
2022-01-02 12:30:07 648
原创 Try tracing
Try tracing(Jin Qing’s Column, Dec., 2021)https://github.com/tokio-rs/tracingUsage on githubSwitch to tag tracing-0.1.29 first. The master’s examples can not build.Subscriber is renaming to collector on master.tracing::subscriber in 0.1.29 has been r
2022-01-01 20:13:58 487
转载 Box<dyn Trait> doesn‘t implement the trait
Box doesn’t implement the traitFrom: https://bennetthardwick.com/dont-use-boxed-trait-objects-for-struct-internals/By default a Box doesn’t implement the trait of the object it contains. This means that trying to construct PeopleZoo<Box> won’t work
2021-12-21 15:05:16 274
原创 minikube DNS fails after SRV query
minikube DNS fails after SRV query(Jin Qing’s Column, Dec., 2021)My program is using K8s DNS SRV query to discovery service,and when it’s deployed on minikube, I find DNS failure.I can use nslookup to reproduce the failure.Querying a FQDN is OK. But a
2021-12-10 10:42:19 207 2
原创 DeathVoteExpirationTimeout in Orleans
DeathVoteExpirationTimeout in Orleans(Jin Qing’s Column, Dec., 2021)Try to find out why Orleans need a DeathVoteExpirationTimeout config.https://dotnet.github.io/orleans/docs/implementation/cluster_management.html#extension-to-totally-order-membership-v
2021-12-08 09:41:07 135
原创 How to delete local branches of GitExtension
How to delete local branches of GitExtension(Jin Qing’s Column, Dec., 2021)GitExtension is a good tool. After a long time of usage, my branch list finally reaches over a full screen, and it is hard to select the branch I want.GitExtension always remembe
2021-12-07 17:01:30 337 1
原创 建议日志 slog 改换 tracing
建议日志 slog 改换 tracing(金庆的专栏 2021.11)slog 不是立即写盘,最后的几行日志会丢失tracing 不会丢日志slog 不支持运行中动态更改日志等级tracing with_filter_reloading()examples/tower-loadslog 不支持不同包设置不同日志等级tracing 可单独打开某个模块的日志发现一次 slog panic: panicked at 'slog::Fuse Drain: Fatal(Cu
2021-11-24 18:14:14 405
原创 Named parameters in Rust
Named parameters in Rust(Jin Qing’s Column, Nov. 18, 2021)There is no “named function parameters” in Rust,but there is an idiom for this case.If a function needs many parameters, we can define a typewith all these parameters as fields, and implement D
2021-11-18 13:12:42 213
原创 Rust traits act as generic constraints
Rust traits act as generic constraints(Jin Qing’s Column, Nov. 18, 2021)Rust traits are different from interfaces of C++/Java/Go.See: https://stevedonovan.github.io/rustifications/2018/09/08/common-rust-traits.htmlRust traits are mechanism for adding b
2021-11-18 12:47:21 486
原创 GLIBC_2.29 not found
GLIBC_2.29 not found(Jin Qing’s Column, Nov. 4, 2021)My Rust program failed when running in docker:root@a26b49c91efb:/myapp# ldd libmyapp_py.so./libmyapp_py.so: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./libmyapp_py.
2021-11-05 09:26:04 6107
原创 Clustering provider in Orleans
Clustering provider in Orleans(Jin Qing’s Column, Nov. 3, 2021)When deployed to a cluster of nodes,Orleans internally implements a protocol to manage it’s silos,including discovery, failure and reconfigure,which is called cluster membership management
2021-11-03 13:30:18 914
原创 Why Orleans‘ actor is virutal
Why Orleans’ actor is virutal(Jin Qing’s Column, Nov. 2, 2021)Virtual Actor is a concept invented by Microsoft Orleans, which is a framework of distributed actor.Orleans: Distributed Virtual Actors for Programmability and Scalability describes the virtu
2021-11-02 15:21:37 129
原创 What comes after microservice?
What comes after microservice?(Jin Qing’s Column, Oct. 25, 2021)Reading “The Evolution of Distributed Systems on Kubernetes” from Bilgin Ibryam.https://www.infoq.com/articles/distributed-systems-kubernetes/What are the purpose of projects like Dapr, Is
2021-10-29 11:14:00 121
原创 Display Non-UTF-8 output
Display Non-UTF-8 output(Jin Qing’s Column, Oct. 27, 2021)Cargo build output Non-UTF-8. Use python to decode it as gbk and print.C:\Users\jinqing01>python>>> s = b'Non-UTF-8 output: \xd5\xfd\xd4\xda\xb4\xb4\xbd\xa8\xbf\xe2 E:\\gitlab\\myp
2021-10-27 12:16:32 475
转载 Advice for Rust library writers about Error
Advice for library writersFrom: https://blog.burntsushi.net/rust-error-handling/Idioms for Rust libraries are still forming, but if your library needs to report custom errors, then you should probably define your own error type. It’s up to you whether or
2021-09-02 11:23:05 118
原创 How to show the first few errors of rustc
How to show the first few errors of rustc(Jin Qing’s Column, Sep. 1, 2021)When using VS Code to develop Rust, “cargo check” output maybe thousands of lines.Use “cargo check --color=always 2>&1 | head -n100” to limit the output.Change powershell
2021-09-01 10:53:35 104
转载 &‘a mut self is restrictive
&'a mut self is restrictiveFrom https://github.com/pretzelhammer/rust-blog/blob/master/posts/common-rust-lifetime-misconceptions.md#5-if-it-compiles-then-my-lifetime-annotations-are-correct#[derive(Debug)]struct NumRef<'a>(&'a i32);impl&
2021-08-25 13:30:37 129
原创 Rust callback idiom
Rust callback idiomCode is from: https://stackoverflow.com/questions/41081240/idiomatic-callbacks-in-rustandhttps://morestina.net/blog/793/closure-lifetimes-in-ruststruct Processor<'a> { callback: Box<dyn FnMut() + 'a>,}impl<'a>
2021-08-24 10:18:02 237
转载 Rust variable rebinding for closure
Rust variable rebinding for closureFrom: https://rust-unofficial.github.io/patterns/idioms/pass-var-to-closure.htmlRust closure captures variables by reference by default.You can use “move” keyword to change to move variables.In most cases, some variab
2021-08-22 17:28:45 118
转载 Rust Deref coercion example
Rust Deref coercion examplehttps://doc.rust-lang.org/std/ops/trait.Deref.htmluse std::ops::Deref;struct DerefExample<T> { value: T}impl<T> Deref for DerefExample<T> { type Target = T; fn deref(&self) -> &Sel
2021-08-22 12:32:36 122
转载 Rust Error Return Check Policy
Rust Error Return Check PolicyFrom: https://www.ockam.io/learn/how-to-guides/contributing/ockam_rust_code_standardNever use unwrap on Result. If the type is Err, it will panic and crash the program. The only exception is if it has already been checked f
2021-08-09 17:06:42 106
转载 Rust visibility
Rust visibility: pub(in path), pub(crate), pub(super), and pub(self)From: https://doc.rust-lang.org/reference/visibility-and-privacy.htmlIn addition to public and private, Rust allows users to declare an item as visible only within a given scope. The rul
2021-08-09 13:43:02 157
grpc-lua 代码及示例Windows执行程序
2018-04-13
grpc-lua 示例 CentOS 7.4 执行程序打包
2018-04-13
go1.9.2.windows-amd64.msi
2017-10-26
LuaPbIntf VS2015工程带依赖库
2017-05-26
XMPP测试工具Peek
2016-10-25
gloox_1_0_17_API_Documentation
2016-09-13
gloox 1.0.17 released
2016-09-12
跨服与跨区的设计.ppt
2014-12-05
Wmvcopy的源程序
2011-11-24
Boost.Python中文文档
2008-06-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人