指数基金估值查询-djeva

工具地址: https://djeva.bbing.com.cn

项目地址: https://github.com/caibingcheng/djeva

前段时间读了几本关于理财投资的书籍,其中提到了指数基金定投策略,按照价值投资的理念,在低估时买入指数基金,在正常估值时停止或者降低买入,高估时卖出。估值方式多种多样,我现在可能参考PE、PB、ROE、股息率等估值数据,参考来源是蛋卷基金或者银行螺丝钉的公众号,但是遇到的问题是,我期望能记录我每一笔交易当日的估值,但有时候在当日会忘记记录,而后不太方便查找那日的估值(单项基金的历史数据会缺少一些项目),因此需要一个工具可以用来查找过去某日的全部估值数据。


图床转换工具-picvt

本站最开始使用的是路过图床, 后来因为速度不太稳定, 切换到了github, 使用jsdelivr代替, 但是最近jsdelivr也挂了, 似乎是国内不再提供服务, 折腾太多, 所以索性以后不使用图床, 直接本地储存吧~

在这过程中, 我使用的是picvt用来切换图床, 该项目还在开发中, 因为我没有使用过很多图床, 所以目前仅支持上述三种。


关闭了评论,让一切简单起来

关闭评论

最初添加评论的目的是期望可以和读者互动,更期望的是可以有人一起讨论技术问题,或争辩或指出问题,无论如何,总归都是好的,都可以帮助拓宽思考的广度。但是一年下来,实际上没有多少读者,读者一般也不愿意和我互动。讨论问题的评论数量为零,更多的是互换友链,但是交换友链的朋友们或许从来没有读过我的文章。

可能文章质量差、或者漏洞百出?不过不重要了,现在要做的就是关闭评论,不再去关心有多少人可能会评论你的文章,反正我也没有做自媒体之类的打算。

在我关闭评论之后,在RSSBlog上浏览到了这篇文章《如何克服精神内耗?》,这就是我最近一年多或者两年多的状态,精神内耗严重。


cmake链接ndk交叉编译

需求: 用CMake构建和编译生成的算法库, 作为动态共享库link到Android项目.

配置

在Android项目的Android.mk中添加:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
include $(CLEAR_VARS)
LOCAL_PATH          := $(XXXX_PATH)
LOCAL_MODULE        := libxxx
LOCAL_MULTILIB      := 64
LOCAL_SRC_FILES_64  := ./algo/libxxx.so
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_TAGS   := optional
LOCAL_MODULE_CLASS  := SHARED_LIBRARIES
LOCAL_PROPRIETARY_MODULE := true
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)

NULL和nullptr实际问题分析

在C++中推荐使用nullptr代表空指针,虽然我一直坚持这个原则,但是实际开发中没有遇到非nullptr不可的情况,直到写了以下代码(已脱敏):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
template <typename F, typename... Args>
using func_t = typename std::result_of<F(Args...)>::type;

template <typename F, typename... Args,
          typename Rp = func_t<F, Args...>,
          bool is_void_v = std::is_void<Rp>::value>
inline Rp call(F &&func, Args &&...args)
{
    //...
}

C++类的内存分布(二)

《C++类的内存分布》中, 我们使用gdb大概了解了C++类的内存结构, 并得到了以下结论:

  • 类成员函数只有一份,所有实例共享
  • 类的成员变量有多份,不同实例维护不同的成员变量
  • 即使是继承关系,派生类的成员变量也只是基类的复制体,而不是指向同一块内存
  • 派生类会把从基类继承过来的成员变量当做自己的普通成员变量一样看待
  • 类的虚表只有一份,所有实例共享
  • 编译器在编译的时候, 通过给类添加__vptr指针指向虚表而得到虚表地址.

本文主要目的是扩展vptr和vtable部分, 深入了解C++多态的实现原理.