积累日常生活的点滴,开发过程的心得。

delphi程序中如何截获第三方库打印到std err的信息

第三方库很多Log输出是fprintf到std err的信息,调试的时候为了显示这些信息,我们需要给delphi gui程序绑定一个控制台窗口,下面的函数

  1. procedure AllocateDebugConsole;
  2. var
  3. StdOutHandle, StdErrHandle, StdInHandle: THandle;
  4. Success: Boolean;
  5. begin
  6. // 尝试分配一个控制台窗口
  7. if AllocConsole then
  8. begin
  9. // AllocConsole 成功后,进程的标准句柄已指向新控制台
  10. // 现在需要让 Delphi 的标准 TextFile 变量使用这些新句柄
  11.  
  12. try
  13. // 重新打开 ErrOutput,使其关联到新的 STD_ERROR_HANDLE
  14. Rewrite(ErrOutput); // <--- 使用 Rewrite
  15. WriteLn(ErrOutput, 'ErrOutput redirected.');
  16.  
  17. // 重新打开 Output,使其关联到新的 STD_OUTPUT_HANDLE
  18. Rewrite(Output); // <--- 使用 Rewrite

新的Delphi64bit IDE

今天试验了一下Delphi 64bit的app调试,速度比之前快了好多,之前因为要通过paserver中转调试,速度巨卡。我写的一个64bit app因为用了AI,加载模型巨大巨慢,都没有办法调试。

不过smartcodeinsight还是一坨,基本没有什么改进。相比较copilot , cursor , windsurf简直是落后一光年。

google gemini 2.0 Flash的编程还是比Claude 3.5 sonnet差很多

比较了一下生成代码的正确性,真的差不少

talib的macd计算有问题

跟Binance的计算结果总是对不上(虽然我计算结果跟网上的测试程序算出来的是一样,可以排除代码写的问题),布林倒是好像是对的。

freqtrade

1.列出所有的binance的永续交易对
docker compose run --rm freqtrade list-pairs --exchange binance --trading-mode futures
2.下载历史数据
docker compose run --rm freqtrade download-data --exchange binance
下载所有的交易对
docker compose run --rm freqtrade download-data --exchange binance --pairs ".*/USDT:USDT" --timeframes 5m 15m --timerange 20220101-

3.回测策略
docker compose run --rm freqtrade backtesting --strategy SampleStrategy --timeframe 5m

4.添加新的策略

将新的策略复制到Docker的user_data/strategies目录下然后执行
docker compose run --rm freqtrade backtesting --strategy Strategy001 --timeframe 5m

使用cmake和vcpkg来编译C++程序

cmake -DCMAKE_TOOLCHAIN_FILE=D:/hubdog/Source/vcpkg/scripts/buildsystems/vcpkg.cmake

vcpkg编译常见的库很方便,不用自己摸索各种变异选项了,再配合上cmake,还是挺方便的

SAM2性能很差

好像sam1就性能也不咋地,tiny模型+cpu,对一张图片做分割,都要5秒了。
我用3050 CUDA+tiny模型+SAM2 ,2.8秒一帧,视频处理都卡成PPT了,换了2080ti也只能达到一秒5帧,据说4090 可以达到每秒10帧。
FB家出的模型都挺耗时的,阿里开源的TTS也是巨卡。

关于VNC协议的一些冷知识

1.这个协议居然有一个RFC的协议文本。
2.这个协议的网络传输效率很差,居然是用jpeg之类的静态压缩算法,没有使用264,265这些比较新的视频压缩算法
3.这玩意可以将rfb传输电文打包成一个rbs文件,实现录制的功能,但是播放器居然是用java写的,巨卡,不过好像有人写了一个工具,可以直接将rbs文件转换成video。
4.做这个协议软件的公司都穷疯了,我下载个免费客户端用用,tightvnc公司3天两头给发邮件,让我买license。

octoid不能正确处理中文路径名

用它的时候需要将sdk 目录整体放到一个英文路径下才行

delphi12.2的ai功能做的跟shit一样

功能真的跟shit一样,感觉工作量满打满算一个礼拜不到。又一次刷新了我预期的下限。

Syndicate content