{"id":144,"date":"2025-07-07T15:07:52","date_gmt":"2025-07-07T15:07:52","guid":{"rendered":"https:\/\/marksmeets.nl\/?p=144"},"modified":"2025-07-07T15:17:50","modified_gmt":"2025-07-07T15:17:50","slug":"a-new-addition-to-my-zoo","status":"publish","type":"post","link":"https:\/\/marksmeets.nl\/?p=144","title":{"rendered":"A new addition to my zoo"},"content":{"rendered":"\n<p>For several years already I have made weekly posts on a forum on things that keep me busy related to trading. It might be a good idea to do those posts here from now on. Anyway, for people on that forum the title of this post will be less cryptic than for others that don&#8217;t know me. Most of my programs are named after animals. I&#8217;ve gathered quite a collection already:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dolphin, my real-time risk management system<\/li>\n\n\n\n<li>Octopus, a trade logger<\/li>\n\n\n\n<li>Woodpecker, a real-time trading engine<\/li>\n\n\n\n<li>Yak, a simulator \/ backtester for asset allocation strategies<\/li>\n\n\n\n<li>Bison, a backtester for intraday strategies<\/li>\n\n\n\n<li>Swordfish, a dartboard for manual trading<\/li>\n\n\n\n<li>Aardvark, a trading strategy<\/li>\n\n\n\n<li>Kangaroo, a trading strategy<\/li>\n\n\n\n<li>Elephant, a data gathering tool<\/li>\n\n\n\n<li>Saint Bernard, a helpful dog that keeps track of running programs<\/li>\n<\/ul>\n\n\n\n<p>There are others, like Donkey, Axolotl, Tarantula but those are largely defunct. Currently I&#8217;m working on Buffalo, which I thought was a fitting name for a new backtester\/explorer for strategies based on cointegration. Most of my programs have the same look and feel (if they are gui programs) and that&#8217;s because I usually start developing a new project by issuing a single command:<\/p>\n\n\n\n<p><code>.\/createProject.sh &lt;project name&gt;<\/code><br><\/p>\n\n\n\n<p>This sets up a complete directory structure for the new project and fills it with relevant class files (I&#8217;m using java), and puts them under version control. Automatically I have a program that has the basics of a gui (that remembers its location and size) or headless application, command line handling, license processing, (remote) logging, configuration settings, splash screens, and help\/about forms.<\/p>\n\n\n\n<p>It&#8217;s pretty cool, because this is always tedious work which is now done with just this single line. The only thing I have to do afterwards is add an image for the splash screen, an icon and a function that returns a description of the projects purpose.<\/p>\n\n\n\n<p>Normally after this my work really starts, but this time I&#8217;m working with an AI agent. So far the results of this collaboration have been mixed: the AI is often surprisingly good at making code, and sometimes it doesn&#8217;t seem to understand some basic programming structures. What I&#8217;ve learned so far is that if the AI doesn&#8217;t get it right in three or four times, don&#8217;t try to push it further. It will only add more bloat. Better to debug and fix the program yourself.<\/p>\n\n\n\n<p>I like programming, it can be challenging but also very rewarding. In a sense it&#8217;s a pity the AI&#8217;s are on the rise because they take over so much of the work that I used to enjoy. So why use them? Because they also take over much more work that is boring. There seems to be no middle ground here: either you use the AI or you don&#8217;t. For this project I&#8217;ve chosen to use one. It feels like I&#8217;ve been promoted from programmer to project manager, because that&#8217;s what the work has been transformed into. I&#8217;ll let you know when or if I have demoted myself.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>For several years already I have made weekly posts on a forum on things that keep me busy related to trading. It might be a good idea to do those posts here from now on. Anyway, for people on that forum the title of this post will be less cryptic than for others that don&#8217;t &hellip; <a href=\"https:\/\/marksmeets.nl\/?p=144\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">A new addition to my zoo<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[11,10,12],"class_list":["post-144","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-cointegration","tag-programming","tag-zoo"],"_links":{"self":[{"href":"https:\/\/marksmeets.nl\/index.php?rest_route=\/wp\/v2\/posts\/144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/marksmeets.nl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/marksmeets.nl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/marksmeets.nl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/marksmeets.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=144"}],"version-history":[{"count":2,"href":"https:\/\/marksmeets.nl\/index.php?rest_route=\/wp\/v2\/posts\/144\/revisions"}],"predecessor-version":[{"id":147,"href":"https:\/\/marksmeets.nl\/index.php?rest_route=\/wp\/v2\/posts\/144\/revisions\/147"}],"wp:attachment":[{"href":"https:\/\/marksmeets.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marksmeets.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marksmeets.nl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}