<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mtaxot的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mtaxot</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mtaxot]]></copyright><item><title><![CDATA[实时流计算框架-storm-关于grouping的理解]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/108871964</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/108871964</guid><author>mtaxot</author><pubDate>Tue, 29 Sep 2020 17:44:06 +0800</pubDate><description><![CDATA[setBolt() setNumTasks() 方法有一个参数, 可以设置运行这个bolt的Task数量---线程数量. 那么grouping就是处理spout数据源分发给这些Task的策略.

这里例举3个比较常用的.

fieldGrouping, spout会把tuple发送给Bolt对应的Task,但是,要按照tuple的某个field来标识Task. 这样这个Task以后就只能收到field值为A的这个tuple, 这个理解起来略困难.举个例子.

需求: 按学号统计学生这个学期每次月考的各科..]]></description><category></category></item><item><title><![CDATA[itextpdf中文乱码问题研究]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/101692302</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/101692302</guid><author>mtaxot</author><pubDate>Sun, 29 Sep 2019 15:08:35 +0800</pubDate><description><![CDATA[最近打算用java代码生成一个pdf，结果找到了itextpdf， 感觉还是很强大的，只是网传不支持中文。引用了itextAsia 搞了好半天中文居然乱码。

网上的各种方法他能生成中文，但是我还是乱码，无奈之下研究了一下字符集，一切从Charset.defaultCharset()这个方法开始。

System.out.println(Charset.defaultCharset());输出结果...]]></description><category></category></item><item><title><![CDATA[mac搭建wxWidgets开发环境,使用xcode]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/94293451</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/94293451</guid><author>mtaxot</author><pubDate>Sun, 30 Jun 2019 12:22:41 +0800</pubDate><description><![CDATA[最近一直在选择究竟使用哪种GUI开发库比较合适, 目前我正在使用JavaFX, 原因是做原型开发,JavaFX开发速度特别的快,当然我是精通Java的. 但是出于性能的考虑,我打算放弃JavaFX转向C++的跨平台GUI开发框架, 在QT和wxWidgets之间我最终选择了wxWidgets, QT虽然有开源免费版本,但是要想获得更好的服务还是要收费的,鉴于自己开发的软件将来要批量...]]></description><category></category></item><item><title><![CDATA[MVP设计模式的优化与实践]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/80909098</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/80909098</guid><author>mtaxot</author><pubDate>Wed, 04 Jul 2018 12:45:47 +0800</pubDate><description><![CDATA[    APP开发最让人头疼的就是业务逻辑和UI代码混合起来，造成后期APP很难维护，新需求越来越难加入，因为依赖太多了，而且纷繁复杂。后来有人提出MVP模式，既然业务逻辑要依赖UI，那么为什么不把他们之间用一个接口隔离开呢，让业务逻辑依赖UI更新的接口而不管具体的UI是如何更新的，更新UI的具体代码则交给Activity来做。当我们进行实践的时候，问题来了，我们需要定义大量接口，而且看似架构很严...]]></description><category></category></item><item><title><![CDATA[Linux C 整理-1]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/72854524</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/72854524</guid><author>mtaxot</author><pubDate>Sun, 04 Jun 2017 00:25:18 +0800</pubDate><description><![CDATA[gcc的一些扩展：
预定义的一些宏?

__FILE__  

__LINE__
__DATE__
__TIME__
__FUNCTION__
#pragma pack(n) 字节对齐，默认4字节对齐，64位系统8字节对齐性能更高一些
gcc特有__attribute__ ((属性))  修饰函数或者变量
如何在main函数之前执行一个函数？
void functionA(]]></description><category></category></item><item><title><![CDATA[Android使用ffmpeg解码h265裸流vs使用MediaCodec解码h265裸流]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/68924583</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/68924583</guid><author>mtaxot</author><pubDate>Fri, 31 Mar 2017 14:42:11 +0800</pubDate><description><![CDATA[突然发现自己曾经做过的东西要记录下来，这样以后就不至于找不到了，早这样该多好。今天整理了一下之前做的demo，希望对你们也有用。如果哪里移植不好。加我qq：106601549
这只是个个简单的demo，要想处理好jni层的一些全局变量还需要一些功夫的，抛砖引玉，网上资料太少，自己try out

Android使用ffmpeg解码h265第一步就是进行ffmpeg的移植，这一点有很多资料可以]]></description><category></category></item><item><title><![CDATA[Android使用MediaCodec解码视频并用OpenGL ES进行渲染的思路]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/68924512</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/68924512</guid><author>mtaxot</author><pubDate>Fri, 31 Mar 2017 14:07:23 +0800</pubDate><description><![CDATA[in Android 4.1 (API 16) and above, MediaCodec is introduced by Android. By using MediaCodec, we can easily decode video without using Android NDK, like creating video playback application, etc.
In ga]]></description><category></category></item><item><title><![CDATA[C语言的集合库C语言STL]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/53884862</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/53884862</guid><author>mtaxot</author><pubDate>Mon, 26 Dec 2016 12:48:14 +0800</pubDate><description><![CDATA[C语言STL模板的，好吧，我承认，用集合来描述比较合适。下面是项目地址：
    https://github.com/mtaxot/c-collection 





     java用的是集合框架，当然我这个目前还谈不上一个功能全面的C语言集合库，实现这个集合功能的想法来自Linux内核代码的list.h，当然我的实现和内核的实现还是很不一样的，我]]></description><category></category></item><item><title><![CDATA[mp4文件格式简明教程-mp4文件格式通俗解释]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/53762444</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/53762444</guid><author>mtaxot</author><pubDate>Tue, 20 Dec 2016 16:59:13 +0800</pubDate><description><![CDATA[一直想写一篇文章来描述一下mp4文件格式的组织情况，一开始笔者也是通过在百度搜“mp4文件格式解析” 或“mp4文件格式详解” 或者说的牛X一点就是"mp4文件格式剖析",最后一大堆box把我看晕了，对于box内容的理解确实对于mp4文件格式的了解有很大帮助，但是很不幸，这些文章都是堆叠abox：abox的描述，实在是让人捉摸不透。诚然，box是为了实现某些功能，或者达到目的而产生的。今天我就来写]]></description><category></category></item><item><title><![CDATA[https协议握手总结]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/53760784</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/53760784</guid><author>mtaxot</author><pubDate>Tue, 20 Dec 2016 11:41:40 +0800</pubDate><description><![CDATA[https利用了对称加密能加密大量数据，非对称加密能加密短小数据的长处，属于混合加密，不知道这样的称呼是否合适。核心在于，使用了非对称加密如RSA算法对对称加密的算法秘钥进行加密，以达到增强非对称加密算法的目的。为了便于描述我们定义几个函数：
    y=sha1(x)   对数据x取摘要，hash算法是sha1
    y=des(key，x)   对数据x进行加密，加密秘钥是key
  ]]></description><category></category></item><item><title><![CDATA[GM11 C语言实现]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/52276653</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/52276653</guid><author>mtaxot</author><pubDate>Mon, 22 Aug 2016 14:43:47 +0800</pubDate><description><![CDATA[前些日子看到了有人在论坛上求GM(1,1)的C实现版本，因为目前大多数的都是matlab版本的，原因不多说，矩阵转置求逆极其方便，而用C来做这个就得一块砖一块砖的垒起来。 好了进入正题，笔者先把代码的github地址贴出来，自己测试过，不过我没有写模型评价算法，确切的说后来写了，但是没有提交上去，很简单的运算，自己可以弄上去。




github 项目地址：https://github]]></description><category></category></item><item><title><![CDATA[量价线性模型假设-基于Adaboost和线性回归弱分类器]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/52150152</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/52150152</guid><author>mtaxot</author><pubDate>Mon, 08 Aug 2016 11:43:34 +0800</pubDate><description><![CDATA[前两篇的文章中我演示了如何进行预测，但是预测的准确率一直停留在50%上下，好一点的有60%，IR就不用说了，有多有少，可操作性比较差。今天从另一个角度解释一下为什么这么难预测。先从一个有趣的题目来入手：任意打开一张图表，将价格走势图删掉一部分，但是不要删成交量的走势图，问题是，你能够根据下面的量猜出股价的走势吗？如果可以，你能以多大的概率猜准。 带着这个问题，我们进行如下的实验。为了方便叙述，价格]]></description><category></category></item><item><title><![CDATA[算法-基于成交量的Adaboost股价涨跌预测模型]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/52033121</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/52033121</guid><author>mtaxot</author><pubDate>Tue, 26 Jul 2016 10:52:20 +0800</pubDate><description><![CDATA[基于上篇文章提到的思路，个人觉得你不能用A来预测A，所以我打算换一种数据。 上篇文章 《算法-基于MACD的Adaboost股价涨跌预测模型》 虽然给出了adaboost算法，但是并没有完全正确的表达，尤其是在权重如何处理上，也就是如何对待那些被误分的样本。
 所以打算更严谨的来对待这个算法，本着不要用错误的方法得出正确的结论的原则，我修正了我的adaboost算法，由于需要用大量的数据进行测试]]></description><category></category></item><item><title><![CDATA[算法-基于MACD的Adaboost股价涨跌预测模型]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/51924353</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/51924353</guid><author>mtaxot</author><pubDate>Sat, 16 Jul 2016 15:10:00 +0800</pubDate><description><![CDATA[MACD是一个指标，具体用法是MACD>0看涨，反之看跌，果真是这样的吗？由于所有的技术指标都基于对历史数据的统计，指标的滞后性也就难免，有时候MACD明明大于0，股价仍然跌，有时候macd小于0，股价仍然涨。 本文基于Adaboost算法提出了一种基于macd的线性阀值分类器作为若分类器，通过在限定的解空间内寻找使得错误率最小的阀值和偏置，这样做避免了训练若分类器的复杂性，经验证，这种方法有效。]]></description><category></category></item><item><title><![CDATA[JNI官方文档翻译7-Java线程和Native线程]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/51513228</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/51513228</guid><author>mtaxot</author><pubDate>Fri, 27 May 2016 10:25:18 +0800</pubDate><description><![CDATA[在写这篇文章之前，我还是先简单概括一下第七章的内容：对于java程序而言，native是我们需要访问的库。但是对于一个单纯的c程序而言，我们可以使用一个特殊的c库来创建虚拟机。刚好相反。在C程序里创建一个java虚拟机，然后加载类，找到类里的main方法，然后执行，这样一个虚拟机就跑起来了。事实上，我们在命令行里输入java 命令，其实就是执行类似这样的程序。而java命令是个C程序，负责创建虚拟]]></description><category></category></item><item><title><![CDATA[Android MVP设计模式的理解]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/51455959</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/51455959</guid><author>mtaxot</author><pubDate>Thu, 19 May 2016 18:06:09 +0800</pubDate><description><![CDATA[做Android开发久了会有一种感觉，那就是业务逻辑总是伴随大量UI更新操作，最后我们的代码中UI更新伴随业务逻辑，业务逻辑发生伴随UI更新。如此纠缠，当一个类的代码越来越多的时候，过些日子再回头看，很乱很乱。作为一个长期运营的项目，这种做法是不可取的，当项目交到下一个人的手里，我只想说God will be with you. 所以从今以后，我们必须采取新的开发模式，尽管看起来繁琐一些，但是理解]]></description><category></category></item><item><title><![CDATA[HorizontalListView源码解读之自己动手写ListView]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/51446083</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/51446083</guid><author>mtaxot</author><pubDate>Wed, 18 May 2016 18:02:33 +0800</pubDate><description><![CDATA[这篇文章的标题可能并不像你想的一样，但是当你看完这篇文章后，你一定能够找到如何实现一个ListView的思路，下面的代码我做了注释，是来自于一个开源项目的。这个项目很简单，你可以到GitHub上搜HorizontalListView就能找到它，在这里就不贴链接了。 我推荐大家从头到尾看完源码，我已经在必要的地方做了中文注释。源码中命名也被我改了，目的是更好的理解源码，见名知意。当然，自定义View]]></description><category></category></item><item><title><![CDATA[JNI官方文档翻译6-异常]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/51433417</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/51433417</guid><author>mtaxot</author><pubDate>Tue, 17 May 2016 09:09:30 +0800</pubDate><description><![CDATA[我们之前遇到了很多调用JNI函数抛异常的情形，我们通过检查返回值NULL的情况。这一节我们介绍怎么发现异常并且从这些错误情况中恢复。我们主要关注于JNI调用产生的异常，如果JNI系统调用发生了异常，我们可以检查返回值，但是，如果我们调用java层回调函数callback，那么接下来的内容你就需要注意了，我们需要遵循以下几个步骤。
      我们通过几个例子，介绍JNI处理异常的函数。

]]></description><category></category></item><item><title><![CDATA[JNI官方文档翻译5-局部和全局引用]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/51426734</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/51426734</guid><author>mtaxot</author><pubDate>Mon, 16 May 2016 17:30:55 +0800</pubDate><description><![CDATA[时间过得好快，一转眼写到了第五章，JNI对于许多java程序员来说一般是很陌生的，因为，要想使用JNI必须使用C，然而很多Java程序员都不会C，其实实际上不是这样的。项目中应该是分工协作才是，JNI作为一种粘合剂，将Java代码和C代码粘合在一起。作为一个java程序员，你至少应该会一点点C。


      JNI暴露给程序员的并不是真正的引用，而是不透明引用，文档当中称之为opaque]]></description><category></category></item><item><title><![CDATA[JNI官方文档翻译4-属性和方法的访问]]></title><link>https://blog.youkuaiyun.com/mtaxot/article/details/51425209</link><guid>https://blog.youkuaiyun.com/mtaxot/article/details/51425209</guid><author>mtaxot</author><pubDate>Mon, 16 May 2016 15:00:07 +0800</pubDate><description><![CDATA[本篇文章介绍如何访问任意对象的属性和方法，当然是在native层访问，方法的访问一般作为java层的回调来访问。我们先从 属性的访问和回调函数的访问开始，接下来再讨论一下使用一种高效简单的缓存技术来提高效率。最后我们讨论native访问java层属性和方法的性能特点。


属性的访问：
Java语言支持两种属性，每个实例都有自己独立的属性，所有实例共享同一份静态属性。JNI提供get se]]></description><category></category></item></channel></rss>