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

使用gsl做最小二乘法的非线性拟合

拟合的函数方程是
y=alpha*exp(-kappa*x);

拟合后能正确算出alpha和kappa的值,用gsl写这个玩意好啰嗦,用python的curve_fit10行代码就能搞定。

  1. type
  2. PFitData=^TFitData;
  3. TFitData=record
  4. t:Pdouble;
  5. y:Pdouble;
  6. n:Integer;
  7. end;
  8.  
  9. function market(alpha,kappa, t:double):double;
  10. begin
  11. result:=alpha*exp(-kappa*t);
  12. end;
  13.  
  14. function func_f(x: Pgsl_vector; params: Pointer; f: Pgsl_vector): Integer;cdecl;
  15. var
  16. data:PFitData;
  17. alpha:double;
  18. kappa:double;
  19. i:Integer;
  20. t,yi,y:double;
  21. begin
  22. data:= PFitData(params);
  23. alpha := gsl_vector_get(x, 0);

Delphi无法引用Windows的DLL中Export的变量

今天要调用gsl的dll中输出的variable结果失败了,一开始我当成函数去引用发现不行。
然后没有找到delphi中引用dll中输出的global变量的方法。
没办法改写了gsl dll中的变量为函数就可以了,真是很奇怪,以前一直没有注意到这个问题。

追记:也许可以直接用GetProcAdress获取变量直接映射为一个指针而不是函数,但是我没有测试,也许是可行的。

或者直接external '变量名',都没有测试,不清楚是否可行

用OWASP ZAP测试https

需要导入zap的动态SSL证书到受信任的根节点的证书区域。

Followme的设置界面特别脑残

简直无语了,我想取消订阅,找了半个小时。

Sketchup 的选取物体进行移动旋转的脚本

  1. def rotate(ent, axis, angle)
  2. rv = ent.transformation.zaxis if axis == "z"
  3. rv = ent.transformation.yaxis if axis == "y"
  4. rv = ent.transformation.xaxis if axis == "x"
  5. rp = ent.transformation.origin
  6. ent.transform!(Geom::Transformation.rotation(rp, rv, angle))
  7. end
  8.  
  9.  
  10. mod = Sketchup.active_model # Open model
  11. ent = mod.entities # All entities in model
  12. sel = mod.selection # Current selection
  13.  
  14. componame="abc"
  15. compo = Sketchup.active_model.definitions[componame]
  16. if compo
  17. puts "#{componame} found: doing something else..."

很恶心的一个C++编译问题

https://developercommunity.visualstudio.com/t/error-c2872-byte-ambiguous-symbol/93889

原因工程设置了C++17,std::byte是C++17中引入,导致了这个编译错误。

改成C++14就没有问题了

AMD系统中安装Mac OSX虚拟机

https://www.youtube.com/watch?v=ogEPiiufrO0
参考上面youtube视频

注意,windows home版中需要禁用hyper-v,需要修改注册表
https://kb.vmware.com/s/article/2146361?lang=zh_CN\

https://bhanuwriter.com/virtualized-amd-v-rvi-is-disabled/

bcdedit /set hypervisorlaunchtype off

qt程序的发布

windeployqt --qmldir C:\Qt\5.15.2\msvc2019_64\qml xxx.exe

同步内容