自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fpcc的专栏

于细微处见精神,从宏观里学态度。行之苟有恒,久久自芬芳。

  • 博客(545)
  • 资源 (21)
  • 问答 (1)
  • 收藏
  • 关注

原创 跟我学C++高级篇——名称反射创建对象的一种实现

在后期的文章和实例中,大家会发现,会越来越多的把前面的知识融汇贯通,有可能再加上一些新知识点,就会实现一个比较好的技术点。所有的技术应用,一定是在基础技术上的不断的抽象升华。一种完全全新的,不以前边的技术为基础的技术,几乎很难遇到。或者如此说,即使遇到了,也可以通过老的技术快速的体会到新技术的优缺点。但这有一个前提,思想必须永远是开放包容,与时俱进!

2024-04-21 12:18:06 443 2

原创 一步一步写线程之九线程池任务的窃取

对绝大多数软件人员而言,其实很多技术拼到最后不是拼设计者的聪明才智,拼的是经验。特别是对于工程类的开发更是如此。而软件开发领域,基本以现有的成熟的技术为主,这点就更突出。随着软件的规模越大,经验的要求越高。很多开发者可能终其一生都遇不到所谓的千万并发,那希望他设计一个支持千万并发的服务,就是一个不可能的任务,其它情况亦是如此。所以开发者们勿需气馁,把基础打好,认真学习,找机会就上。不断总结经验得失,技术就会越来越磨炼得精粹。

2024-04-20 10:23:28 579 1

原创 跟我学C++高级篇——获取类型名称的番外小插曲

其实今天分析的这个现象,再次验证了标准是标准,实现是实现这个道理。标准指挥着实现,但实现不一定必须严格按标准来。有些标准未要求到的或者说对实现手段和结果没有要求的,这都是编译器厂商可以自行决定的。包括在实现标准后再在其基础上进行扩展支持的,这都不少见。标准是方向和目标,编译厂商是行动者和实践者,达到目的不一定非得走一条路。

2024-04-19 21:26:28 376 2

原创 跟我学c++高级篇——reflexpr

这一章的实践意义并不大,但实际意义其实是很大的。学习知识最容易的方式不是直接拿过来用,也不是从头一点点的扣出来。学习知识最快捷的方式是把当下的技术搞明白,同时把某些关键技术的来历再理清晰,脉络分明后,学习的效率就会迅速增加。简单是技术普及的前提!

2024-04-14 10:37:21 441 1

原创 一步一步写线程之八线程池的完善之三任务的封装

线程池中任务的封装处理其实是相当重要的一环,毕竟外来的任务需要从此承载到运行的线程上。也只有这一块设计的灵活可扩展,才能使线程池本身的应用更容易扩展。其实任务的封装有的时候儿可以针对具体的实现来实现,不需要抽象到一定层次。但是一个良好的设计,一定是从顶层抽象良好的。这本来就是一个矛盾,平衡点就在于开发者对开发的具体的要求和把控。

2024-04-13 09:12:00 247 2

原创 DPDK系列之四十二DPDK应用网络编程UDP编程

UDP其实在普通的网络应用中,基本用来做一些辅助的工作,如果地址发现、广播简单消息等等。但由于它的占用资源少,在一些场景下就能发挥很大作用。包括在前文提到的QUIC其实都借鉴了UDP的一些特点。所以是不是觉得,很多技术其实并不是完全隔离的,它们会不断的整合、独立再如此循环。所以以后别的公司会不会也会也一个类似于DPDK的框架呢?拭目以待!

2024-04-04 20:16:12 366 2

原创 跟我学c++高级篇——常见的反射框架

在前面基本已经把基础的反射分析了一遍,通过这些学习,已经可以知道C++中反射的特点在哪里。他山之石,可以攻玉,在本篇就结合在网上的一些开源的反射框架来对反射加深一下印象。目前开源的c++反射框架中,各种类型的都有,复杂的简单的,针对具体类型的和通用的。一般来说,大厂和国外的开源写得相对要好一些,但不是说个人写的就不好,个人一般很多都是自己针对自己的具体场景,所以可能通用性差一些。

2024-04-03 19:53:50 294

原创 一步一步写线程之八线程池的完善之二数据结构封装

在分析完成数据结构的封装后,基本也就明白了在多线程中如何使用STL中的容器。但是,一般对线程安全的操作控制,都是使用锁。不管锁的粒度是大是小,对性能的影响一般来说都是比较大的。而多线程特别是线程池恰恰又都是在高性能的场景下应用,所以这时就需要开发者认真考虑加锁引起的性能损失。当然,在后面可以考虑在某些情况下使用无锁编程技术,让数据的处理更快捷。但无锁编程也不是万能的,它也是有其相对的应用场景。万流归宗,还是需要开发者对整体技术的把握和实际应用场景进行综合考虑。

2024-03-31 08:45:13 584 2

原创 C++20中的jthread

其实还有几个特点值得说说,但不准备再讲了,虽然已经投票完成确定了c++20的标准,但毕竟还没有正式增加进去,大家有兴趣可以看看源码。整体来看,c++应用还是越来越方便,这对c++来说,肯定是个好事情。现在就希望>VS2019或者>GCC11中,尽快完全支持。

2024-03-29 22:47:00 1092 1

原创 c++20中的jthread再谈

在前面的C++20新功能中,简单的介绍过相关的std::jthread的应用。当时觉得它虽然比std::thread方便一些,但也没有多大的优势。可在后面的不断的学习中,发现std::jthread的使用上确实有优秀之处,相对于传统的线程编程,等于是提前安全的封装了对线程安全管理和控制的相关模块和接口。目前很少听说在实际工程中有应用jthread的,可能大家觉得thread就比较好用,也可能是开发习惯和代码惯性的问题。

2024-03-29 22:31:27 912

原创 跟我学C++中级篇——委托构造和继承构造

学习C++的开发者都知道,在C++的类定义中,传统的会有常见的六个默认和构造相关的函数(不明白的可以去查一下资料)。但在实际情况中,经常会遇到一些具体的开发场景,只用这几个函数可能还是会导致重复代码的出现。开发者在学习编程之初,估计都会有人不断告诉你,只要有重复代码,就有优化的可能性。但是,如果代码的重复到了最基础的阶段,开发者一般就无能为力了,即使使用了一些特殊的技巧,也会导致代码的可读性和可维护性的降低。本篇主要是分析构造函数在重载和继承时遇到的重复代码的问题。

2024-03-29 22:25:24 491

原创 DPDK系列之四十二DPDK应用网络编程之TCP编程

基础建设有一个重要的问题,一旦被统一如果不是出现致命性的问题,很难被推翻重建。因为重建的成本太高了,特别是积久年深的基础设施,即使出现致命性问题,重建的成本都会让人绝望。前些年出现的国际上的一些大银行想重新改写ATM和银行交易的代码的惨痛教训估计人们都看到了。这也从一个侧面体现了,新技术想打败老技术不是说短时间就能打败的,有的甚至是几代人的努力都无法完成。所以学习新技术的时候儿不要总盯着他的优势,能不能被大规模的快速应用,也是一个重要之处。DPDK有不少的优势,但这种优势在哪儿?

2024-03-24 15:24:31 469

原创 一步一步写线程之八线程池的完善之一线程管理

在前面实现了一个很粗陋的线程池,那么它的运行没有动态控制,相关线程池的动态伸缩也没有控制,这一切,在实际的应用中,是应该存在的。本篇文章就将相关的实现方法和源码分析一下。在前面的文章发出去后,有兄弟留言说这个太简陋,对实际应用没啥作用。其实这个系列的文章重点不是一开始就推出一个完善的线程池供大家使用,更多的给初学写线程池的人一个设计编写的实操过程。正如前面反复说的,一个好的线程池一定是适应一种或少数几种场景的而不是普适于所有场景。所以重要是让大家有一个理解网上开源的线程池是如何写出来的过程。

2024-03-23 19:53:08 764

原创 跟我学C++中级篇——STL中的删除

在STL中一般删除的方式有两类,一种是使用全局的std::remove(remove_if类似),一种是使用容器自带的erase,前者其实并没有真正的删除数据,而后者则是在移动时,会有一些细节的处理,否则要么程序崩溃,要么达不到删除的目的。下面就这两个函数进行一下分析说明。在一些容器中也提供了remove(如std::list)方法,它和全局的std::remove还是用法区别不小的,这个大家需要自己看一下。注:C++20提供了std::erase这种更方便的用法。

2024-03-22 21:35:03 391

原创 DPDK系列之四十二DPDK应用网络编程

DPDK的应用还是有些复杂,不过从费效比看还是相当不错的。特别是在某些大型网络通信应用中,使用DPDK的优势还是很明显的。至于普通的网络编程还是老实的使用系统自带的Socket会更简单方便。在后面会对网络通信中使用DPDK进行具体的TCP/UDP应用分别分析说明。要善于利用技术而不是让技术成为一种思想上的拖累。

2024-03-17 16:01:18 284 2

原创 一步一步写线程之七面向应用的线程池

写线程其实是一个很考验经验的活儿,不光要掌握理论,对实际中使用线程遇到的各种问题,往往理论不会解释这么细。但是,如果在解决问题的过程中,就会发现,其实这些与理论是完全相符合的。而设计一个好的线程池需要不断的从理论上指导完善并且在实际场景不断打磨。还是老话,不可能有一个放之四海而皆准的线程池,但肯定有一个在本公司用起来很不错的线程池。庄子在《人间世》中说:“其作始也简,其将毕也必巨!”与诸君共勉!

2024-03-17 09:21:32 1034 2

原创 gprof安装使用(CMake)说明

时隔多年,在CMake工程中再次使用此工具,有些细节已经改变,安装环境也略有不同,所以重新总结安装步骤,以咨为记。

2024-03-10 12:16:50 368 2

原创 C++的萃取技术

在《模板类型的自动推导》中提到了c++是一门静态编译语言,不支持动态类型的获取,也就更不用说提供类似c#,Java等语言的反射机制。但是,没有类型获取的接口不代表没有这种实际的需求,那么怎么解决这种需求就得靠c++的大牛们来想办法啦。微软的MFC通过大量的定义宏来动态的生成各种类和对象。而这种方式恰恰又不是c++大牛们觉得舒适的方法,所以他们想到了模板。在模板中,提供了Traits(萃取)技术,什么是萃取呢?简单来说,就是能够获得目标对象的类型,并依此而实现此类型对应的功能。

2024-03-10 10:58:01 583 2

原创 跟我学c++高级篇——类反射

反射对c++是不是一种鸡肋,这个还真不好说。不过有一句话可以引入进来,“发展是硬道理”,只要是不断的发展,就会有机会。而停滞不前的空谈理论,一定是没有前途的。至于以后反射在c++后续标准里会成为什么样子,大家拭目以待即可。

2024-03-09 16:34:05 492

原创 gperftools的安装使用说明

gperftools是Google推出一个非常强大的性能分析工具集,在以前使用时进行过文档的整理,但时过境迁,这里又有了一些不同,正好实际工程用到它,对其的安装和使用说明进行一次完整的文档化。gperftools主要包含三个功能:1、分析 CPU 性能能够通过统计一定时间内各个功能单元(线程、函数等)的执行时间并给出其占用比例,从而确定CPU瓶颈2、分析内存占用统计单位时间内各单元对内存的占用数量并查找是否有内存泄露3、自动检查内存泄露具体的图就不贴了,基本和原来的差不多。

2024-03-08 22:06:11 807 2

原创 跟我学c++中级篇——手动实现类tuple

到最后的实现仍然是使用了类似std::tuple的实现,通过索引ID来获取不同类型的具体的指针。其实最初是想的通过一个基类形成的静态容器返回然后通过多态来达到对不同类型的控制。可惜的是模板的匹配总是无法通过,只好改成一个动态生成动态获取的过程。后来又想通过在遍历的时候儿拿到对象指针而非固定写到指定的索引上,毕竟这样就无法修改对象生成的顺序了。可又无法解决不同对象回传的问题(通过基类返回直接就崩溃了)。故而目前只能还是先使用这种索引控制来得到具体的对象指针,以后有机会再优化它。

2024-03-03 17:59:32 282 2

原创 零拷贝技术深入分析

其实说得更浅显一些,所谓零拷贝更准确的说不是零次拷贝,是指尽可能的减少拷贝。在DPDK的系列文章中,这种操作被发挥的淋漓尽致。互联网的口号就是“不让中间商赚差价”,这个在现实上可能有一些逻辑上的BUG,但在内存操作上确实是非常用益。当然,万事万物不是说是绝对的,有的时候,抽象一下,加一层,如果能达到更好的效果,又不影响实际的使用的情况下,岂不更妙?千头万绪又回到始终坚持的原则,应用场景决定应用技术,实践是检验真理的标准。

2024-03-01 21:58:12 738 3

原创 DPDK系列之四十一数据收发整体流程源码分析之三接收和发送数据

虽然侯教师说“源码面前,了无秘密”。可对于大的框架型软件来说,阅读代码确实相当吃力,特别是国内的编程水平和编程风格和国外的还有很大的不同,特别是一些具体的处理手段,有些高明之处不是一下两下就能看明白的。还有就是可能应用的具体的技术和国内也有不同,这就导致相关的代码阅读对于一些硬上的同学们非常有难度。但还是那个字,干!

2024-02-24 18:59:12 559 2

原创 跟我学C++中级篇——单实例和静态化

到最后,总结各种经验其实可以发现,在实际的应用场景上,使用一些习惯用法或者说设计模式的目的,主要是为了扩展性和防御性编程。如果能够明确的知道不会发生或者某些异常会被阻止的情况下,不进行使用其实也是没问题的(话只能说到这儿,大家自己考虑)。说这些话的目的就是,经验是个好东西,但不要陷入经验主义,书本是个好东西,不要陷入本本主义。实践是检验真理的唯一标准,抓住老鼠的一定是好猫。

2024-02-23 21:37:01 1013 2

原创 跟我学C++中级篇——C++17标准后的std::invoke系列

C++的变化是有目共睹的,虽然在前两年特殊情况下导致一些新技术没有被应用到想象的版本中,但在后续版本的迭代中,仍然在不断的增加和完善。C++学习的成本看似有些降低了,但实际上可能增加的成本更多了。这并不矛盾,新标准下编程可能更简单了,但背后的逻辑却更复杂了;新标准更容易理解了,但新老标准的代码混合在一起更难了。况且,大多数的编程人员仍然使用C++98,C++11的普及都没有想象的多,更别提C++14以后的标准了。不过不要着急,慢慢来,只要坚持学习,就会达到彼岸,毕竟,学习成本比创造成本要低得多。

2024-02-23 21:29:14 1141

原创 DPDK系列之四十一数据收发整体流程源码分析之二流程框架

不同的版本的DPDK可能源码会有些不同,请注意版本即可。重点是把DPDK的相关应用熟悉,在此基础上才能更好的对DPDK的框架有所了解。由应用到内部的实现,可能会更好的理解DPDK的设计理念和相关技术特点。

2024-02-17 21:11:00 424 2

原创 跟我学c++中级篇——静态多态

从比较正式的定义来说,在c++中,一般不会把特定多态或者宏多态称为多态,以方便和C语言区分,一般来说,静态多态指的就是模板的静态多态。其实很多的定义和概念并不是说有多么特别的技术在内,很重要的一点在于通过这些定义或概念来更好的理解实际应用中的应用。可以简单将其当成一种对实际应用的抽象,从某种角度了对知识体系的一种系统的归类总结。这是学习编程的另外一种经验,大家可以借鉴一下。

2024-02-14 23:53:39 384 2

原创 跟我学c++中级篇——std::tuple的复合操作

std::tuple的初级应用,如生成和获取,在前面的几篇文章中已经进行了较详细的说明。但std::tuple仍然有一些复杂的应用,在实际的应用过程中有很大的作用,比如遍历,本文将在这些角度上进行举例分析。不过,还是那句话,只有最合适的,没有最好的。遍历的方法有很多,开源库和网上有不少的相关例程,特别是随着C++更新的标准出台,更多简单易行的方法会跟随出来。std::tuple的遍历,在STL库并未提供,它的实现机理是一个特化的过程,所以不能将其理解为容器,这也是没有提供遍历的可能吧。

2024-02-08 18:59:06 297 2

原创 跟我学C++中级篇——函数模板的匹配

在本文会尝试着把函数的重载以及模板自动推导等方法结合起来,一起分析模板函数的匹配的方式和原则。在普通的函数重载和普通的模板函数中,都比较容易理解调用哪一类,但在一些较为少用或者复杂的情况下,可能会发现一些特别的情况。这篇文章会针对这些情况进行一些具体的分析,并尝试着把一些疑惑解答分析出来。开发的过程其实是一个思维抽象再实践的过程。这个过程只有一条正确的路,就是用最简单(或者说尽可能简单)的方式来实现功能。所有的编程技巧,其终极的目标只有一个,让功能实现变得容易和安全,让代码更容易维护。

2024-02-07 20:44:00 816

原创 跟我学c++中级篇——列表初始化和折叠表达式的灵活运用

边学习边总结,这其实就是理论和实践结合的一种方式,各人有各人的方法,只要目标是一致的,就可以了。C++的细节还有非常多,这就需要不断的在实际的工程中遇到后真正的深入了解其中的运行机制,然后 才可能灵活的运用。

2024-02-06 09:30:28 287 2

原创 一步一步写线程之六数据通信并发模型Actor和CSP

数据通信模型和多线程编程本身是密不可分的,原则上来讲,谈及多线程编程一般就是要实现多线程之间的通信,否则多线程技术本身并没有什么可讨论的。一个技术其实如何能真得可以深入掌握进去,其实就是一个生态,围绕着它或近或远或紧密或间疏的有着各种各样的其它技术与之互相配合。挨过来一样,在其它的技术上,可能学习的这个技术又是其生态中的一环。明白了吧,你中有我,我中有你,这才最终形成了更广义上的计算机技术。

2024-02-05 22:46:03 617 2

原创 跟我学C++中级篇——STL中decay的应用

std::decay其实在元编程中应用得还是相当多的,毕竟有的时候宁可错杀一千不可放过一个,安全的控制参数类型才是王道。但仍然需要在实际的场景中仔细的分析应用,不能盲目的不加考虑的使用。有兴趣可以对比的看看std::decay,std::decval和decltype,一定会有收获。

2024-02-03 11:02:06 439 2

原创 跟我学C++中级篇——common_type的应用

它的使用比较有意思:1、如果无模板参数,则无类型。即sizeof…(T) 为零,则无成员 type2、如果一个模板参数,则等同于这个类型(std::common_type::type),否则也是无type3、如果有两个模板参数,要找一个可退化到相同的类型,否则无type;如果有自定义物化,则使用该特化;另外对于一些the conditional operator的操作按照相关的标准定义来操作。同时C++20中的新定义参看相关的新标准。

2024-02-02 21:11:16 349 2

原创 DPDK系列之四十一数据收发整体流程源码分析之一整体流程

代码分析比较枯燥,但这又是必不可少的一关,不过不行。古人不是说过,做学问就像翻山,一山方出一山拦。只要坚持下去,就会闯出层峦叠嶂的知识万山。

2024-01-27 19:19:59 488

原创 一步一步写线程之五线程池的模型之二半同步半异步模型

在目前可预见的技术范围内,完全无锁的可能性几乎是零,而且相对于有锁编程,无锁编程的要件有点多,这也导致无锁编程更多的应用于基础层。而且大多的应用场景其实对于效率的敏感性并没有到不可忍受的地步,所以这也是HA/HS应用非常广泛的原因。大家可以看看这篇文章“An Architectural Pattern for Efficient and Well-structured Concurrent I/O”,会有更好的体会心得。

2024-01-27 11:47:29 942

原创 跟我学C++编程中级篇——std::enable_if的使用

对于SFINAE(不清楚的可以翻一下以前的相关文章)开发者来说,std::enable_if是绕不开的一个小话题。在C++11至C++20间,其在模板的元编程中起到了重要的作用。不过在C++20后Cocepts可以实现更清晰更简单的方式。其实非常好理解,这个模板结构体的第一个参数是bool型,第二个默认是个void,就是说,第一个参数决定了是否启用第二个参数。这下就明白了吧。struct T {T(Floating) : m_type(float_t) {} // 错误:无法被重载。

2024-01-23 18:55:17 571

原创 一步一步写线程之五线程池的模型之一领导者追随者模型

学习理论就是学习别人抽象出来的知识,然后再把学习到的知识理论应用到自己的工作中。如此往复循环,慢慢就会对这些知识有了更深刻的理解,也就可以在此基础上自己抽象自己的理论和知识体系来指导自己的实际工作。武林中不是有一句话:“练拳不练功,到老一场空;练功不练拳,到老也枉然!计算技术亦是如此。

2024-01-20 22:45:27 977 2

原创 assert和static_assert及#error的使用

C/C++一直是外人认为的难学的语言,原因提过,就是太灵活。学得灵活,用得灵活,这让许多初学者很难一下子适应过来。其实最简单路就是最基础的方式,把基础打好。侯捷老师的原话:“勿在浮沙筑高台!”,非常贴切。尤其这几年看标准文档,越看越发现,这句话的重要性。配合着侯老师的另外一句话:“源码之前,了无秘密”。就明白了学好C/C++的最简单的方式了,打好基础(多看理论知识),多看代码(多多上机实践)。总结出自己一套学用C/C++的路来。

2024-01-19 21:14:12 424 2

原创 跟我学c++高级篇——基础类型和POD结构体反射

由简入繁,从基本到深入总是需要一个过程,学习反射也是如此。写代码是为了把学习的知识验证一下,同时可以更加深刻的理解知识。开发者们经常遇到这种场景,几行简单的代码,琢磨半天也确定不了什么意思,但是上机一调试,就恍然大悟。这就是侯捷教师的那句话“源码之前,了无秘密”。反射还是有些难度的,所以这个系列会慢慢增加。

2024-01-14 11:22:03 1011 2

原创 跟我学c++中级篇——面向切片编程

所有的设计思想和编程模式,都是一种抽象。既然是一种抽象,就意味着从思想的高度来看问题,不能纠结于具体的某个实现细节。思想是一种指导行为的原则,而不是指导行为的行动过程。很多人往往忽视了这一点。所以在对待编程思想和设计思想上,会有两种论调,一种是无用论,不管是看得懂还是装看不懂,觉得这种思想没啥实际作用,不如实际写点代码有用;另外一种是空谈论,坐而论道,不顾实际,觉得写代码特别LOW。正如前面反复强调的,计算机知识是一种高度的理论和实践相结合的知识,理论和实践是一种互相促进互相制约的一种状态。

2024-01-13 08:40:00 1172 5

linux设备驱动开发

本书从浅到深介绍了LINUX操作系统上的驱动开发的过程,值得推荐。

2018-11-17

masstree算法论文

目前的底层的分布式数据库如ROCKSDB等都使用的LSM的算法,本文使用了masstree这种算法来优化其处理。

2018-11-17

虹膜开源的算法

本文是国外的一款开源的虹膜识别框架的介绍,它的源码是可以直接使用的,但是需要优化。

2018-11-17

BTN的白皮书

BTN链是提供商业使用的软硬扩展的去中心化商业级应用(DAPP)开发平台。它的主要特点是去中心化计算和去中心化的存储。

2018-10-11

mixin白皮书

mixin是一个闪电交易快速的点点对的数字交道项目,它拥有非常好的技术栈。

2018-10-11

steamr白皮书

steamr是一个用来做数据去中心化的网络和市场相关的区块链项目,主要提供去中心化的云服务。

2018-10-11

阿希链白皮书

阿希链是一个用javascript写的侧链,主要用来完成多链间的通信,有一定的特色,可以借鉴。

2018-10-11

大数阶乘算法的一个例子

小数的阶乘比较好做,但是阶乘的数量变化非常快,很快会溢出,这里采用一种变通的方法,可以实现相当大的数的阶乘,如果在这个基础上进一步扩展,能进行更大的阶乘算法。

2018-10-06

Sql批量操作数据

在SQLSERVER的多条数据操作时,使用SQLBULKCOPY等几种方式的对比,这篇文档就是整理了这些使用的方法。

2018-10-05

电网闪变信号的小波分析

本文利用小波分析来对电网的闪变信号进行处理,有很高的借鉴价值。

2018-10-05

电能质量闪变的测量

电能质量是电力行业一个重要的部分,本论文从实际出发,论证了闪变测量的方法。

2018-10-05

安卓编译JAR包和SO

这个是用ECLIPSE编译JAR包和SO的一个教学录像,非常适合对c++不熟悉的人编译使用。

2018-10-01

JAVA并发编程设计原则与模式

一本比较老的书,讲得多线程和并发技术,是一个入门的比较浅显的书籍。

2018-10-01

代码管理核心技术及实践

代码管理是开发过程一个重要的环节,好的代码管理可以为团队的开发提供安全的保护和合作,本书就是讲述在不同环境中如何使用主流的代码管理软件和方式。

2018-09-30

IOTEX白皮书

物联网和区块链的结合,实现了链中链和跨链的通信,通过特有零知识证明来解决用户隐私问题。

2018-09-30

bancor协议白皮书

bancor协议是目前区块链研究的一个重要方向,跨链不同的TOKEN之间的兑换一直是一个问题,这里给出一个解决的方案。

2018-09-29

以太坊上PBFT的实现

针对以太坊的POW算法的一种改进方式,引入了PBFT的算法,论文主要从原理上阐述了实现的过程。

2018-09-29

DERP白皮书

DREP区块的白皮书,是一个新的区块链的技术,如果大家对这个感兴趣,可以下来看看。

2018-09-29

朗新WEBSERVER接口(南网和天津电网)

适用于朗新目前的所有接口,平台语言C#,主要是对电力系统SG186的跨平台调用。也适于于同样的WEBSERVER工程跨平台使用。使用说明书已打在压缩包里。

2009-03-16

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除