<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[smartcore]]></title><description><![CDATA[Any Q in CS can be solved with another layer of indirection]]></description><link>https://blog.youkuaiyun.com/smartcore</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; smartcore]]></copyright><item><title><![CDATA[语义化版本 2.0.0]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/140132500</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/140132500</guid><author>smartcore</author><pubDate>Tue, 02 Jul 2024 17:41:00 +0800</pubDate><description><![CDATA[关于版本号的那些约定，再听听大牛的声音。]]></description><category></category></item><item><title><![CDATA[C++对象JSON序列化：像Java一样简单，比nlohmann/json更内聚]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/137517125</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/137517125</guid><author>smartcore</author><pubDate>Mon, 08 Apr 2024 17:42:55 +0800</pubDate><description><![CDATA[C++中的对象JSON序列化：像Java中的库一样使用简单，比nlohmann/json等主流库更内聚]]></description><category></category></item><item><title><![CDATA[银河麒麟V10sp1中实现双击shell脚本的正常运行]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/127278280</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/127278280</guid><author>smartcore</author><pubDate>Wed, 12 Oct 2022 10:50:19 +0800</pubDate><description><![CDATA[银河麒麟V10sp1中实现双击shell脚本的正常运行]]></description><category></category></item><item><title><![CDATA[libuv套接字绑定失败导致的退出异常]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/119777067</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/119777067</guid><author>smartcore</author><pubDate>Wed, 18 Aug 2021 11:53:32 +0800</pubDate><description><![CDATA[1、问题

套按字绑定失败导致的loop退出异常



2、环境

libuv版本：1.42.0及以下

OS版本：win10 x64



3、现象

uv_async_send的回调方法中，使用uv_udp_bind（或者uv_tcp_bind，后文以udp举例），将一个本机不存在的IP，绑定到uv_udp_t（或者uv_tcp_t）代表的handle（new创建），绑定返回失败后，对handle进行释放（delete）；在退出loop的过程中，应用发生异常。

备注：由于主机IP的人为修改等业务性操作]]></description><category></category></item><item><title><![CDATA[QT5 “Multicast Receiver Example”组播接收数据的说明]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/110844941</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/110844941</guid><author>smartcore</author><pubDate>Mon, 07 Dec 2020 21:37:07 +0800</pubDate><description><![CDATA[本文基于的QT版本为5.13.0。在更早支持组播的QT版本中，应该也是适用的。

在QT提供的“Multicast Receiver Example”示例程序中，udpSocket4这个QUdpSocket对象，是使用下面的方式，进行绑定和加入组播的：


    udpSocket4.bind(QHostAddress::AnyIPv4, 45454, QUdpSocket::ShareAddress);
    udpSocket4.joinMulticastGroup(groupAddress4);
]]></description><category></category></item><item><title><![CDATA[linux下UDP组播接收不到数据的说明]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/110813582</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/110813582</guid><author>smartcore</author><pubDate>Mon, 07 Dec 2020 13:04:33 +0800</pubDate><description><![CDATA[背景

在一个跨平台的桌面项目中，由于涉及多线程中对象的创建、销毁等，基于QT的对象绑定机制（QObject子类）来做实现时，需要相当心累的设计，才能避免跨线程的异常。由于QT的这个天然机制，在实现很多业务（非界面）模块时，都避免了基于QObject。网络模块中的UDP等功能，同样的也未基于QUdpSocket及其相关，而是包装了libuv（尽管，对桌面来说libuv也需要再折腾，但libuv作者已经明示了这个点了）



现象

基于libuv的程序示例，在windows下，可以正常工作（接收到组播数据.]]></description><category></category></item><item><title><![CDATA[std::mutex的使用备忘]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/104922947</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/104922947</guid><author>smartcore</author><pubDate>Tue, 17 Mar 2020 15:24:52 +0800</pubDate><description><![CDATA[在实际测试中，与使用自实现的自旋做同步比较（看上也是自旋），std::mutex在效率上没有大的差异。

但是当出现竞争时，std::mutex的lock会完全的等待，此时CPU利用率会很高，当然其等待也是有收益的：效率最高。



但是，在一般的应用里，我们能查看任何管理器时，我们总是蜜汁不希望CPU满载（不想让风扇狂转？）



降低CPU负载的套路是：使用trylock。不光出让时间片，...]]></description><category></category></item><item><title><![CDATA[spinlock同步能力测试]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/104827912</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/104827912</guid><author>smartcore</author><pubDate>Thu, 12 Mar 2020 21:07:34 +0800</pubDate><description><![CDATA[硬件：

 硬件型号：笔记本

 处理器：Intel Core i5-4310U CPU @ 2.00GHz(4 CPUs)

 内存：16G

 硬盘：512固态

测试方案：使用以下的代码进行比对测试（10个线程，每个线程加数10；循环10000次）


#include &lt;thread&gt;

class ThreadPara {
private:
    i...]]></description><category></category></item><item><title><![CDATA[[昨日实践]springboot1.5.x中引用thymeleaf3.0版本的一种简单实现]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/89414543</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/89414543</guid><author>smartcore</author><pubDate>Sat, 20 Apr 2019 11:12:57 +0800</pubDate><description><![CDATA[使用springboot1.5.x建立项目时，选择使用的thymeleaf时，最终对thymeleaf依赖的版本依然是2.x，想使用3.x版本，其中的一种处理方式是：

   在项目的pom.xml中的&lt;properties&gt;段内，重新定义如下的几个属性：


	&lt;thymeleaf.version&gt;3.0.11.RELEASE&lt;/thymele...]]></description><category></category></item><item><title><![CDATA[spring web运行时根据不同profile的配置，选择性的加载组件(bean)]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/82696548</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/82696548</guid><author>smartcore</author><pubDate>Fri, 14 Sep 2018 07:33:40 +0800</pubDate><description><![CDATA[        本文的实践方案其实很久之前就已经实现了（其想法跟实践从主要点来看都非常的简洁），由于我一直想将此方案应用于企业应用中并形成一个比较基础的应用框架，因此关于本方案的文档化拖了很久都没有形成。

        运行时加载组件其实是个老生常谈的话题了。比较早的windows桌面应用（最新的桌面应用实现此功能应该更不是事儿了）中，无论是功能组件还是窗口组件，在项目方案定义完接口后，主框架...]]></description><category></category></item><item><title><![CDATA[扩展fastjson的SimplePropertyPreFilter，以过滤不需要序列化的属性]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/80106538</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/80106538</guid><author>smartcore</author><pubDate>Fri, 27 Apr 2018 13:04:58 +0800</pubDate><description><![CDATA[java应用在进行系统间通信时，经常会使用json格式进行数据传输交换。利用alibaba fastjson（本文使用的是1.2.46），对象与json字符串的相互转换非常的便利。但是，在对对象进行json序列化时，经常会出现以下的场景：对象的类是一个与数据库表相关的业务实体类，如以下实体类：public class DiagramEntity {
    private String name;...]]></description><category></category></item><item><title><![CDATA[基于mina的短连接组件以及与spring、spring boot的集成]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/80084634</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/80084634</guid><author>smartcore</author><pubDate>Wed, 25 Apr 2018 20:00:54 +0800</pubDate><description><![CDATA[尽管各类标准的系统间交互组件已经非常流行，但采用自定义报文、基于原生socket进行系统间数据交互的模式依然存在。原生socket在做一般的测试性开发时，确实能简便的达成目标。但在做企业应用时，若是在报文交互的需求上，再增加关于传输状态、处理策略等实际需求时，则显得吃力。mina作为高性能开源网格框架，其功能相当丰富。尽管本文的短连接需求从实现上来看，使用mina作为核心，显得大材小用，但是，从实...]]></description><category></category></item><item><title><![CDATA[spring集成Thymeleaf，模板页面中调用类的静态成员]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/79994752</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/79994752</guid><author>smartcore</author><pubDate>Wed, 18 Apr 2018 18:26:10 +0800</pubDate><description><![CDATA[在spring框架内使用Thymeleaf时，按照官方文档的说明，在模板内会使用SpEL（spring expressionlanguage）代替OGNL，即可以使用前者约定的一系列表达式。
关于SpEL的说明，已经有很多的说明，官方的可见此页面。本文是对其中“T”操作符（说明见此）实践的示例，由T()表达式的使用，我们使用Thymeleaf模板引擎时，在html页面中能够使用类的静态成员。
]]></description><category></category></item><item><title><![CDATA[[昨日调试]Named query not known: Employee.findByName]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/79975645</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/79975645</guid><author>smartcore</author><pubDate>Tue, 17 Apr 2018 15:33:21 +0800</pubDate><description><![CDATA[又是拿到一个三方的前置应用，在使用前一篇《[昨日调试]在本地运行三方公司开发的maven项目》的方案做好依赖包的非仓库本地化后，idea内使用mvn clean package -DskipTests，开始生成war包，一切顺利。
然后开始进系统（localhost:port/login.on），输入完用户名、密码，点击登录，然后系统跳转到含有本文标题的错误页面：




Named ]]></description><category></category></item><item><title><![CDATA[计算工作日天数-excel函数networkdays在java中的实现[简化版]]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/79477847</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/79477847</guid><author>smartcore</author><pubDate>Wed, 07 Mar 2018 22:15:11 +0800</pubDate><description><![CDATA[由于某个业务需要计算两个日期间的除去工作日、法定假日的工作日天数，然后想起来excel里面有个networkdays函数，真是神器。在java中如何实现呢？

先是搜一搜。奇怪的是，关于networkdays的其他语言实现，竟然没有一搜就一大把的结果，难道这个函数的使用很小众？

stackoverflow上，有同学推荐objectlabkit这个库，并且用此库实现了networkdays。然而下...]]></description><category></category></item><item><title><![CDATA[[昨日调试]在本地运行三方公司开发的maven项目]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/79386964</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/79386964</guid><author>smartcore</author><pubDate>Tue, 27 Feb 2018 13:01:00 +0800</pubDate><description><![CDATA[本文基于的前提是已经取得了项目源码以及打包后的可执行程序包（如war包）。
本文的思路其实非常简单，主要是想说明maven提供的灵活配置方式的一种适用场景。
也许到这里，你就已经猜到我想说什么了……
背景是：因为业务需要，找到了由三方公司开发的前置项目源码，此项目是一个maven类型的spring web项目。在idea内打开后，发现项目的pom.xml文件内定义了段，里面使用的仓库资源地址]]></description><category></category></item><item><title><![CDATA[jeesite.properties属性文件为utf-8格式时的加载修改]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/79352709</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/79352709</guid><author>smartcore</author><pubDate>Fri, 23 Feb 2018 12:55:38 +0800</pubDate><description><![CDATA[在idea内修改jeesite(https://github.com/thinkgem/jeesite)时，首要的一个地方就是修改jeesite.properties。
通常的，我们会在idea内将properties文件的编码设置为UTF-8，因此，你在修改jeesite.properties后，就会出现一些乱码的问题：
比如，jeesite登录页面的网站标题是在jeesite.proper]]></description><category></category></item><item><title><![CDATA[如何在Thymeleaf中实现ajax请求url的可靠构造?[续]]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/79323698</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/79323698</guid><author>smartcore</author><pubDate>Tue, 13 Feb 2018 22:57:17 +0800</pubDate><description><![CDATA[        在之前的“如何在Thymeleaf中实现ajax请求url的可靠构造?”文内，是以绝对url来实现可靠的请求url：通过在html文件内定义一个代表绝对url基本路径的变量basePath，然后在其他的js文件内引用此basePath，由其与请求的相对路径合在一起构造完整的绝对url，以进行ajax请求等操作。        与前文不同的是，本文对url的构造是建立相对根路径的基础...]]></description><category></category></item><item><title><![CDATA[[昨日调试] org.apache.jasper.JasperException: Unable to load class for JSP]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/79318664</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/79318664</guid><author>smartcore</author><pubDate>Mon, 12 Feb 2018 20:25:46 +0800</pubDate><description><![CDATA[本文碰到的错误问题，其产生原因非常的简单，在大概看完背景之后，将先给出。
错误的详细信息在文章末尾附上。
 
背景：
因为需要更新某业务的原因，整理调试了由三方公司开发的一个用于前置对接功能的web应用。
虽然其使用的spring等版本非常的老旧（是的，有些系统竟然还在用spring2时代的东西，真真汗……），但由于提供了某个业务版本的源代码，作为整个业务中间节点的我，想了解整个流程，显]]></description><category></category></item><item><title><![CDATA[sql实现在评分记录集中去掉最高、最低百分之N评分记录]]></title><link>https://blog.youkuaiyun.com/smartcore/article/details/79051420</link><guid>https://blog.youkuaiyun.com/smartcore/article/details/79051420</guid><author>smartcore</author><pubDate>Sat, 13 Jan 2018 15:10:13 +0800</pubDate><description><![CDATA[sql的优势之一是使用单一的命令能够访问到一个记录集，其重要的特点就是非过程化。
        在很多企业流行着360评分体系。比如，有A、B、C三个员工竞选某要职，HR组织吃瓜群众位对其三位进行评分，出于不清楚的原因，HR在拿到群众们的评分结果后，会先对某侯选人的得分结果记录集进行排序，再按比例去掉记录两头（最高、最低）的N%评分记录，最后再进行后续计算。
        本文是直接解决以]]></description><category></category></item></channel></rss>