<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[leebin_20的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/leebin_20</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; leebin_20]]></copyright><item><title><![CDATA[LLVM中矩阵Matrix的实现分析]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/128394980</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/128394980</guid><author>leebin_20</author><pubDate>Wed, 21 Dec 2022 11:57:12 +0800</pubDate><description><![CDATA[如前所述，VF决定了整合的向量的元素个数，LLVM通过以下代码来实现，C = 4，R = 5，当I + BlockSize > R时，会不断对BlockSize取半，确保了除1以外的其它向量元素个数都是偶数，BlockSize初值为4，第0列第0行时，I + BlockSize = 4 < R，所以取4个元素作为一组向量，第0列第5行时，I + BlockSize = 8 > R，BlockSize在while循环中最终算得1后满足条件。假设矩阵A乘矩阵B等于矩阵C，元素类型都是int，如下所示。]]></description><category></category></item><item><title><![CDATA[基于LLVM的Fortran编译器分析]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/128226068</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/128226068</guid><author>leebin_20</author><pubDate>Wed, 07 Dec 2022 20:24:06 +0800</pubDate><description><![CDATA[目前基于LLVM的Fortran编译器（或者驱动）有3种，分别是flang、f18和flang-new。flang是pgfortran的开源版本，基于PGI/NVIDIA的商业Fortran 编译器，它并不从属于LLVM项目。NVIDIA团队在2018年宣布了Fortran的新前端——f18，f18是使用现代 C++ 从头开始​​编写的，它将与 LLVM 最佳实践紧密结合，并以 LLVM 和 clang 的风格编写，f18已经被纳入为LLVM子项目。flang-new是一]]></description><category></category></item><item><title><![CDATA[基于LLVM的AFL分析]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/128171005</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/128171005</guid><author>leebin_20</author><pubDate>Sun, 04 Dec 2022 12:32:45 +0800</pubDate><description><![CDATA[Fuzzing是指通过构造测试输入，对软件进行大量测试来发现软件中的漏洞的一种模糊测试方法。当前大多数远程代码执行和特权提升等比较严重的漏洞都是使用Fuzzing技术挖掘的，Fuzzing技术被证明是当前鉴别软件安全问题方面最强大测试技术。
然而Fuzzing技术仍然存在着覆盖率低的缺陷，而许多的代码漏洞需要更大的路径覆盖率才能触发，而不是通过纯粹的随机尝试。
AFL (American Fuzzy Lop)是一款采取遗传算法生成用例的Fuzzing工具，可以有效地解决这些问题。AFL有两种Fuzzing方]]></description><category></category></item><item><title><![CDATA[zuul转发请求之重组参数]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/96867867</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/96867867</guid><author>leebin_20</author><pubDate>Mon, 22 Jul 2019 16:11:36 +0800</pubDate><description><![CDATA[使用过Srping Cloud的同学都知道，zuul是用来做API网关的，对于没有用户状态的系统，通常在zuul中做一些参数的验签等；对于有用户状态的系统，通常在zuul中校验用户身份，通过后根据access token查出用户的id，并将id等其它参数注入到request中。
目前API请求用的比较多的Content-Type是application/json，这种类型对于常规的接口请求是完全可...]]></description><category></category></item><item><title><![CDATA[Java实现生成图形验证码功能]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/95213818</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/95213818</guid><author>leebin_20</author><pubDate>Tue, 09 Jul 2019 17:25:12 +0800</pubDate><description><![CDATA[图形验证码是系统中比较常见的一个功能，网上也有不少现成的解决方案，比如https://gitee.com/whvse/EasyCaptcha。
EasyCaptcha其实已经很方便了，但是它会要在某路径下生成一张实体图片，并且没有返回base64串的实现，本文就是为了解决这两个问题，实现过程中借鉴了EasyCaptcha的部分算法。
设计允许指定验证码的宽、高和字体大小：
#验证码图片高
cw.c...]]></description><category></category></item><item><title><![CDATA[WPF图片预览之移动、旋转、缩放]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/78801889</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/78801889</guid><author>leebin_20</author><pubDate>Tue, 19 Mar 2019 12:37:10 +0800</pubDate><description><![CDATA[RT，这个功能比较常见，但凡涉及到图片预览的都跑不了，在说自己的实现方式前，介绍一个好用的控件：Extended.Toolkit中的Zoombox，感兴趣的同学可以去搜一下这个控件，它封装了常用的预览功能。开始撸代码，整理一下思路先： 
首先打算用一个Window来展示图片，但是QQ、微信预览图片的时候，任务栏并没有出现图标，难道用了什么黑科技？不管]]></description><category></category></item><item><title><![CDATA[InstallShield 2018同时打包32位和64位]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/88658999</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/88658999</guid><author>leebin_20</author><pubDate>Tue, 19 Mar 2019 12:00:05 +0800</pubDate><description><![CDATA[InstallShield可谓打包神器，之前用的是2013版的，作为VS的一个项目模板使用，这次尝试了下2018版的，显然，功能更强大了。
由于现在的电脑系统都分64位和32位，这就要求打包的时候可能需要针对两种不同的系统打包，过去，我们不得不通过InstallShield新建两个项目各自打包，现在，我们可以利用InstallShield 2018的Features（其实我也不知道Features...]]></description><category></category></item><item><title><![CDATA[renren开源导航栏点击同一菜单不刷新页面问题]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/83110464</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/83110464</guid><author>leebin_20</author><pubDate>Wed, 17 Oct 2018 15:27:14 +0800</pubDate><description><![CDATA[最近一个项目使用了renren-security这个开源框架，先纵览一下外观，

嗯，确认过眼神，是传统管理后台的样子~
使用过程中发现，当在导航栏中点击同一菜单时，iframe并不会刷新，其实这也不算个问题，奈何产品经理就要这个功能，只好看看人家源码是怎么写的了，很容易在index.js中就找到了控制路由的代码（真正的开源应当如此*▽*）：
function routerList(router,...]]></description><category></category></item><item><title><![CDATA[Spring Boot中通过AOP实现统一日志解决方案]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/82995179</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/82995179</guid><author>leebin_20</author><pubDate>Wed, 10 Oct 2018 12:20:12 +0800</pubDate><description><![CDATA[日志是整个系统中非常重要的一环，JAVA中也有很多日志框架，本文实现了在Spring Boot中利用logback和aop统一处理日志。本文比较简单，已记录为主O(∩_∩)O~
首先在resources目录下新建logback-spring.xml作为logback的配置文件：
&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;configurati...]]></description><category></category></item><item><title><![CDATA[Spring Boot中使用缓存Redis、EhCache]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/82748053</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/82748053</guid><author>leebin_20</author><pubDate>Mon, 17 Sep 2018 20:03:07 +0800</pubDate><description><![CDATA[缓存相信各位同学都或多或少用到过，毕竟不能把所有压力都给数据库。今天来简单总结一下下在Spring Boot中使用Redis和EhCache缓存O(∩_∩)O~
Spring Boot本身是支持多种缓存实现的，其中提供了4个注解来帮助大家使用缓存：

@EnableCaching 开启缓存支持
@Cacheable 先检查缓存是否存在，若存在，则直接返回缓存中结果；若不存在，则执行方法获取结果，并...]]></description><category></category></item><item><title><![CDATA[记一次Linux线上环境搭建]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/80609096</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/80609096</guid><author>leebin_20</author><pubDate>Thu, 07 Jun 2018 14:42:32 +0800</pubDate><description><![CDATA[ε=(´ο｀*)))唉，好久不见，最近项目比较忙，再加上还要写论文，转眼半年过去了……

终于，项目要上线了，这边记录一下服务器上环境的搭建过程，主要是jdk、nginx、redis的安装，好记性不如烂笔头嘛~

准备工作： 
1.到各个官网上去把各种包先下下来。 
2.在服务器上安装lrzsz，可以编译安装或者yum安装，这里自然是推荐yum安装啦~ 
yum install -y lrzsz ...]]></description><category></category></item><item><title><![CDATA[WPF全局窗口错误提示框]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/78844568</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/78844568</guid><author>leebin_20</author><pubDate>Tue, 19 Dec 2017 16:50:04 +0800</pubDate><description><![CDATA[不管是CS还是BS，在需要用户提交数据的页面上，总是要做一些校验，如果校验有错就要给用户提示，WPF里自然也避免不了这个问题。一开始，我是在窗口上预留了一个TextBlock，并且设置其Visibility=Collapsed，当校验有错的时候，再把这个TextBlock显示出来，这样做是可以实现既定需求，但是这样却会影响整个窗口的布局，以下图举个例子： 
 
现在这个TextBlock隐藏在输入框]]></description><category></category></item><item><title><![CDATA[WPF无边框窗口鼠标拖动缩放大小]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/78331604</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/78331604</guid><author>leebin_20</author><pubDate>Tue, 24 Oct 2017 16:56:25 +0800</pubDate><description><![CDATA[通常，我们会 通过AllowsTransparency=”True”、 WindowStyle=”None” 这两个属性将wpf窗口的边框去掉，由于边框没了，我们就不能通过鼠标指针悬停在某一边上拖动改变窗口的大小，此时若要能调整窗口大小，官方倒也提供了个属性：ResizeMode=”CanResizeWithGrip”，这么一设置，我们会发现窗口右下角多出一个三角标记，此时可以将鼠标指正悬停在这个标]]></description><category></category></item><item><title><![CDATA[WPF头像裁剪]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/73648956</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/73648956</guid><author>leebin_20</author><pubDate>Fri, 23 Jun 2017 15:49:57 +0800</pubDate><description><![CDATA[需求很常见，就是用户上传头像前进行固定大小的裁剪。 
百度一番，找到几个差不多的， 
其一 http://download.youkuaiyun.com/detail/tianhaosen/7159901，这个的实现方式是截图框大小固定不变，背景图可以通过鼠标拖动和鼠标滚轮缩放，经过测试，这个对图片的裁剪不是很准确，尤其是大图或者靠近图片边缘裁剪的时候会出现较大误差，然后我尝试调整了下截图位置的算法，但多少还是]]></description><category></category></item><item><title><![CDATA[WPF仿QQ聊天框表情文字混排实现]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/72884892</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/72884892</guid><author>leebin_20</author><pubDate>Tue, 06 Jun 2017 16:42:10 +0800</pubDate><description><![CDATA[图中分别有文件、文本+表情、纯文本的展示，对于同一个list不同的展示形式，很明显，应该用多个DataTemplate，那么也就需要DataTemplateSelector了：class MessageDataTemplateSelector : DataTemplateSelector
    {
        public override System.Windows.D]]></description><category></category></item><item><title><![CDATA[WPF TreeView大数据量多层级搜索定位]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/72677485</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/72677485</guid><author>leebin_20</author><pubDate>Wed, 24 May 2017 16:19:00 +0800</pubDate><description><![CDATA[今天主要说一说公司组织架构这一块，需求是在搜索框输入员工姓名或者首字母，搜索框实时自动匹配到存在的员工，选中某一员工后在组织结构层级树中定位到该员工，就类似于PC版QQ的搜索框。 
综上，我们涉及到的控件主要有两个：1.搜索框 2.TreeView 
了解WPF的同学肯定立马会想到这个搜索框应该用AutoCompleteB]]></description><category></category></item><item><title><![CDATA[使用Blat发邮件]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/69951523</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/69951523</guid><author>leebin_20</author><pubDate>Mon, 10 Apr 2017 17:06:02 +0800</pubDate><description><![CDATA[定时发送邮件相信很多人都遇到过，比如说每天7点整，要把前24小时在网站上产生的数据提交给相应的部门做后期处理。今天我们来介绍一款“短小精悍”的小工具——Blat，来实现这个功能！ 
What is Blat? 
Blat is a Windows (32 & 64 bit) command line utility that sends eMail using SMTP or post to use]]></description><category></category></item><item><title><![CDATA[JS导出Excel]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/68066008</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/68066008</guid><author>leebin_20</author><pubDate>Wed, 29 Mar 2017 16:00:12 +0800</pubDate><description><![CDATA[今天分享一下如何在前端应用中导出excel。如果你是用angular，那么可以使用ng-csv，ng-csv导出的是csv文件，并不是.xls等常规excel格式的文件，但是csv也是可以通过excel打开的，属于曲线救国吧- -地址：http://ngmodules.org/modules/ng-csv使用方法： 
1.将ng-csv.min.js引用到index.html中，并且还要同时引入an]]></description><category></category></item><item><title><![CDATA[MySQL的日常使用]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/61922701</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/61922701</guid><author>leebin_20</author><pubDate>Mon, 13 Mar 2017 17:34:17 +0800</pubDate><description><![CDATA[呐，作为后台程序猿，必不可少的要与数据库打交道，所以今天记录下平时工作中遇到的一些sql问题。 
数据库操作，大家用的最多的应该就是select了，使用select我们要记住一个原则：尽量使每次查询的结果集够小！ 
比如一个嵌套查询A（1000）B（100）C（10），括号中为每个查询结果的行数，如果我们按ABC来执行，那么显然比按CBA执行耗时更长。 
为了执行效率的提高，正常都会给某些关键字段加]]></description><category></category></item><item><title><![CDATA[前后端对请求参数排序]]></title><link>https://blog.youkuaiyun.com/leebin_20/article/details/54666775</link><guid>https://blog.youkuaiyun.com/leebin_20/article/details/54666775</guid><author>leebin_20</author><pubDate>Sun, 22 Jan 2017 10:04:21 +0800</pubDate><description><![CDATA[签名校验相信不少小伙伴都有碰到过，微信jsapi集成、支付宝集成的时候都会需要加上签名。 
这边记录一下当待签名内容是json字符串时的排序方法。后端（java）： 
方法一：利用TreeMap 
TreeMap本身就是有序集合，每一次插入删除都会进行排序。Map<String, String> map = new TreeMap<String, String>();往map中插入请求参数…JSON]]></description><category></category></item></channel></rss>