<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[varding的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/varding</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; varding]]></copyright><item><title><![CDATA[opencv-rust安装与使用]]></title><link>https://blog.youkuaiyun.com/varding/article/details/110082586</link><guid>https://blog.youkuaiyun.com/varding/article/details/110082586</guid><author>varding</author><pubDate>Tue, 24 Nov 2020 15:22:06 +0800</pubDate><description><![CDATA[最近在尝试用rust写视频处理代码，用到了opencv-rust这个库，这儿记录下安装过程。另外这个库说明文档比较欠缺，有些opencv接口不容易找到rust对应的调用名称或者方式，这儿将之前整理的接口查找的方法汇总了下。
1.windows下安装
1.1 llvm
这个是动态生成代码需要用到，安装好就行
https://releases.llvm.org/download.html
1.2 opencv
下载opencv安装即可，官网用的choco安装，这个并不是必须的，可以手动安装llvm和opencv]]></description><category></category></item><item><title><![CDATA[设置linux驱动编译的中间目录]]></title><link>https://blog.youkuaiyun.com/varding/article/details/104127529</link><guid>https://blog.youkuaiyun.com/varding/article/details/104127529</guid><author>varding</author><pubDate>Fri, 31 Jan 2020 20:28:14 +0800</pubDate><description><![CDATA[1 无中间输出目录
编译驱动时我们常用下面的Makefile:
obj-m := imx6ul_ads1278.o

#内核源码目录
KDIR := /path/to/linux/source/linux-imx-rel_imx_4.9.x_1.0.0_ga
	
MAKE := make
build: kernel_modules
kernel_modules:
	${MAKE} -C $(KDI...]]></description><category></category></item><item><title><![CDATA[matlab和matplot绘图对比]]></title><link>https://blog.youkuaiyun.com/varding/article/details/102728841</link><guid>https://blog.youkuaiyun.com/varding/article/details/102728841</guid><author>varding</author><pubDate>Thu, 24 Oct 2019 18:10:29 +0800</pubDate><description><![CDATA[matplot的图和matlab的短时傅里叶的图，数据和算法的参数都一样，是算法给的结果有差异还是绘图有差异？matlab看的细节明显多了，是用法不对还是matlab画图真的好这么多？
matlab:
spectrogram(d3,1024,900,1024,25000,'yaxis');

python:
fs=25000
nfft=1024
overlap=900
cmap = plt.get...]]></description><category></category></item><item><title><![CDATA[win10下如何快速安装迷你迅雷]]></title><link>https://blog.youkuaiyun.com/varding/article/details/50639016</link><guid>https://blog.youkuaiyun.com/varding/article/details/50639016</guid><author>varding</author><pubDate>Fri, 05 Feb 2016 20:20:08 +0800</pubDate><description><![CDATA[因迷你迅雷签名早已经过期，现在win10下已经不可以正常的安装迷你迅雷了 
最快速的方法就是启用administrator用户，用这个安装就可以了，不需要任何设置如上图启用administrator就可以，然后注销用administrator登陆安装迷你迅雷，安装完了禁用掉adminstrator即可（这个不是必须的）]]></description><category></category></item><item><title><![CDATA[IAR Error Pe706]]></title><link>https://blog.youkuaiyun.com/varding/article/details/50395023</link><guid>https://blog.youkuaiyun.com/varding/article/details/50395023</guid><author>varding</author><pubDate>Thu, 24 Dec 2015 16:00:08 +0800</pubDate><description><![CDATA[IAR for ARM 7.5 编译时遇到如下错误 
Error[Pe706]: expected a "," or ">" google上一直没找到错误原因，提示的地方就是模板的参数后来排查的时候发现只要在其他foo.cpp文件里包含这个模板头文件(temp.h)就会出错，解决方法也很简单，不要在foo.cpp直接包含temp.h，在这个foo.h里包含temp.h就可以了]]></description><category></category></item><item><title><![CDATA[在宏里访问结构体的成员 - rust]]></title><link>https://blog.youkuaiyun.com/varding/article/details/50237525</link><guid>https://blog.youkuaiyun.com/varding/article/details/50237525</guid><author>varding</author><pubDate>Wed, 09 Dec 2015 16:02:13 +0800</pubDate><description><![CDATA[目前在rust的宏里直接访问结构体的成员是不可行的，但是可以通过变通的方法来做例如下面的代码就是不可行的，$m.id或者$m.code会提示出错macro_rules! msg {
    ($id:expr,$code:expr,$f:ident,$m:ident)=>{
        if $id == $m.id && $code == $m.code {
            ...]]></description><category></category></item><item><title><![CDATA[AsRef模拟Atl里的继承关系]]></title><link>https://blog.youkuaiyun.com/varding/article/details/50233775</link><guid>https://blog.youkuaiyun.com/varding/article/details/50233775</guid><author>varding</author><pubDate>Wed, 09 Dec 2015 11:14:55 +0800</pubDate><description><![CDATA[用AsRef模拟atl的继承方法 
代码有点长，这个是模拟atl里某个类可以从TBase继承或者从TBase的子类继承（一般TBase就是CWindow） 
AsRef是一个目前相对比较方便的引用类型转换的方法#[derive(Debug)]
struct CWin{
    d: i32,
}impl New for CWin{
    fn new()->CWin {
        CWin{]]></description><category></category></item><item><title><![CDATA[使用msvc编译的rustc]]></title><link>https://blog.youkuaiyun.com/varding/article/details/49967699</link><guid>https://blog.youkuaiyun.com/varding/article/details/49967699</guid><author>varding</author><pubDate>Sat, 21 Nov 2015 20:52:43 +0800</pubDate><description><![CDATA[目前msvc编译的rustc已经正式放出来了，如果需要链接vc编译的lib还是很方便的，比如.rc（vc的资源文件）可以用vc的RC工具编译成.res(需要改成.lib，不然cargo不认)然后链接到程序里 
msvc只需要用社区版就可以，但至少需要2013以上，不然编译会出错 
注：gun版的rustc可以用windres+ar打包成lib的曲线方式来链接，麻烦不说还不是完全兼容另外rustc支持]]></description><category></category></item><item><title><![CDATA[web应用里的flash message的作用]]></title><link>https://blog.youkuaiyun.com/varding/article/details/49335699</link><guid>https://blog.youkuaiyun.com/varding/article/details/49335699</guid><author>varding</author><pubDate>Thu, 22 Oct 2015 16:51:04 +0800</pubDate><description><![CDATA[flash 提示信息一般显示一段很简单的信息告知登录之类的信息，具体如下图： 
正常情况下的登陆页面应该是下面这个样子的，就是没有任何信息提示： 
登陆成功后的主页显示“登陆成功”的提示 
flash信息显示的时候也许会比较特别，不过这并不是他特有的，显示的效果只不过是html渲染的结果而已。这儿要讲的是这种技术实现的背景以及方法看到上面这两个图片大家也许觉得很好做，登陆出错的时候直接渲染一个登陆页]]></description><category></category></item><item><title><![CDATA[终于看到golang的深入解读了]]></title><link>https://blog.youkuaiyun.com/varding/article/details/49225501</link><guid>https://blog.youkuaiyun.com/varding/article/details/49225501</guid><author>varding</author><pubDate>Sun, 18 Oct 2015 09:02:37 +0800</pubDate><description><![CDATA[golang出来这么多年了，深入讲解的还是第一次看到 
http://blog.jobbole.com/90574/]]></description><category></category></item><item><title><![CDATA[rust里调试panic]]></title><link>https://blog.youkuaiyun.com/varding/article/details/48913947</link><guid>https://blog.youkuaiyun.com/varding/article/details/48913947</guid><author>varding</author><pubDate>Mon, 05 Oct 2015 14:20:55 +0800</pubDate><description><![CDATA[rust在panic以后只会显示一条简单的提示信息：
  thread ‘’ panicked at ‘index out of bounds: the len is 0 but the index is 19’, ../src/libcollections\vec.rs:1044
这个太简单了几乎无法定位出错信息，可以通过设置RUST_BACKTRACE=1来显示更多信息，这个让rust在出错的时]]></description><category></category></item><item><title><![CDATA[rust的Iterator]]></title><link>https://blog.youkuaiyun.com/varding/article/details/48807107</link><guid>https://blog.youkuaiyun.com/varding/article/details/48807107</guid><author>varding</author><pubDate>Tue, 29 Sep 2015 15:18:56 +0800</pubDate><description><![CDATA[这个文章讲的还是挺详细的，有空了再翻译下http://hoverbear.org/2015/05/02/a-journey-into-iterators/]]></description><category></category></item><item><title><![CDATA[查找rust平台相关代码的文档]]></title><link>https://blog.youkuaiyun.com/varding/article/details/48806343</link><guid>https://blog.youkuaiyun.com/varding/article/details/48806343</guid><author>varding</author><pubDate>Tue, 29 Sep 2015 14:24:59 +0800</pubDate><description><![CDATA[今天查encode_wide这个函数一直找不到，google才发现是online文档的问题rust的online文档是linux上生成的，所以有些windows上的东西查不到，查找与windows相关的doc使用本机上自带的doc具体在安装路径下： 
share\doc\rust\html\index.html 
比如我的： 
C:\Program Files\Rust nightly 1.5\sh]]></description><category></category></item><item><title><![CDATA[notepad++ 正则替换的占位符超过9的处理方法]]></title><link>https://blog.youkuaiyun.com/varding/article/details/48733305</link><guid>https://blog.youkuaiyun.com/varding/article/details/48733305</guid><author>varding</author><pubDate>Fri, 25 Sep 2015 15:02:56 +0800</pubDate><description><![CDATA[notepad++的正则替换的时候使用()进行分组，然后用\1 \2 …\9代替这些分组匹配到的信息，但是超过9以后  \10,\11这种就不能工作了，这个时候需要用10,10,11这种方法，其实\1 \2 …\9也可以用11 2 … $9来替代sublime text 使用$xx 也可以正常工作]]></description><category></category></item><item><title><![CDATA[含有重复元素的二分查找算法]]></title><link>https://blog.youkuaiyun.com/varding/article/details/48542807</link><guid>https://blog.youkuaiyun.com/varding/article/details/48542807</guid><author>varding</author><pubDate>Fri, 18 Sep 2015 10:19:17 +0800</pubDate><description><![CDATA[rust已经有binary_search了，但不能很好的处理有重复元素的查找。 
下面这个是我按照网上查找到的原理自己实现的，这个处理重复元素比较好，如果key有重复，那么总是查找到最小的那个indexfn main() {
    let s = [0, 0,0,0,0,1,1,1, 1, 1, 1, 2,2,3, 3, 5, 8, 13, 21, 34, 55];    let seek = 1]]></description><category></category></item><item><title><![CDATA[Rc与Box区别]]></title><link>https://blog.youkuaiyun.com/varding/article/details/48492113</link><guid>https://blog.youkuaiyun.com/varding/article/details/48492113</guid><author>varding</author><pubDate>Wed, 16 Sep 2015 12:11:32 +0800</pubDate><description><![CDATA[咋一看觉得这两个概念差的很远，但是有时候他们都可以在不释放资源的情况下把资源从lifetime短的地方传递到lifetime长的地方use std::rc::Rc;#[derive(Debug)]
struct Foo(i32);
fn main(){
    let r:Rc<Foo>;
    let b:Box<Foo>;
    {
        let r1 = Rc::new(Foo(]]></description><category></category></item><item><title><![CDATA[多个closure引用同一个变量，并且可能需要mut borrow]]></title><link>https://blog.youkuaiyun.com/varding/article/details/48490891</link><guid>https://blog.youkuaiyun.com/varding/article/details/48490891</guid><author>varding</author><pubDate>Wed, 16 Sep 2015 10:53:01 +0800</pubDate><description><![CDATA[目前在实现一个事件系统，事件采用保存closure的方式实现，这其中遇到一个比较棘手的问题就是如果其中一个closure用&mut方式捕捉了一个变量，那么其他closure就不可以再用任何方式捕捉这个变量（rust的borrow check系统），并且如果要&mut捕捉还需要把closure的类型写成FnMut，类似这种：  add_event<F>(&mut self,f:F) where F:F]]></description><category></category></item><item><title><![CDATA[Sized和?Sized的作用]]></title><link>https://blog.youkuaiyun.com/varding/article/details/48326341</link><guid>https://blog.youkuaiyun.com/varding/article/details/48326341</guid><author>varding</author><pubDate>Wed, 09 Sep 2015 23:14:39 +0800</pubDate><description><![CDATA[考虑如下代码，这个是用Foo封装了两个Box类型，Bar把Fn(i32)作为类型传递给Foo并且把Foostruct Foo<T>{
    a:Box<T>,
    b:Box<T>,
}struct Bar{
    fs:Foo<Fn(i32)>,
}fn main(){
}这个代码是无法编译通过的，下面是编译器提示：<anon>:7:5: 7:20 error: the trait `co]]></description><category></category></item><item><title><![CDATA[rust compile plugin的使用方法]]></title><link>https://blog.youkuaiyun.com/varding/article/details/48244513</link><guid>https://blog.youkuaiyun.com/varding/article/details/48244513</guid><author>varding</author><pubDate>Sun, 06 Sep 2015 15:10:19 +0800</pubDate><description><![CDATA[具体可以参考这篇文章： 
https://www.gulshansingh.com/posts/how-to-write-a-rust-syntax-extension/]]></description><category></category></item><item><title><![CDATA[调试rust的宏]]></title><link>https://blog.youkuaiyun.com/varding/article/details/48229949</link><guid>https://blog.youkuaiyun.com/varding/article/details/48229949</guid><author>varding</author><pubDate>Sat, 05 Sep 2015 21:26:33 +0800</pubDate><description><![CDATA[nightly版本可以用 trace_macros!，具体看这个： 
http://stackoverflow.com/questions/30200374/how-do-i-debug-macros下面是我写的列子：#![feature(trace_macros)]
trace_macros!(true);macro_rules! foo{
    ($x:ident,$f:ident)=>{]]></description><category></category></item></channel></rss>