go to post Fabian Haupt · Jun 16, 2022 Would be nice to have the support corner again to talk with the WRC folks.
go to post Fabian Haupt · Mar 3, 2022 while you can (clumsily) script terminal sessions, it might be easier to connect to your db via odbc and use isql, or maybe even use the newer python capabilities to get your data out via a python script
go to post Fabian Haupt · Jan 14, 2022 Have a look at the Store and StoreFiles methods: https://docs.intersystems.com/irislatest/csp/documatic/%25CSP.Documatic....
go to post Fabian Haupt · Dec 25, 2021 especially when there are cases where the first few people per problem took hours for the split time and then there's a lot of people with sub 1 minute times. I won't go through the effort of looking through their code to see if they actually only had to do a one line change to solve the second part. i would call that suspicious.
go to post Fabian Haupt · Dec 25, 2021 a really good analysis is also to look at the split times of everybody (=how long between submitting part 1 and part 2). the api gives us the data.
go to post Fabian Haupt · Dec 2, 2021 Please note that 12 characters is very much not a secure password, regardless of the characterset. https://www.explainxkcd.com/wiki/index.php/936:_Password_Strength
go to post Fabian Haupt · Mar 18, 2021 How are you protected in this setup against two instances coming up and writing into the same db? I.e. due to flaky network?
go to post Fabian Haupt · Aug 30, 2020 The link doesn't work. Also note my other response, there is actually an API for that already.
go to post Fabian Haupt · Aug 30, 2020 For next time, this might be helpfull: https://docs.intersystems.com/irislatest/csp/documatic/%25CSP.Documatic.... In windows it just triggers the service restart (which you can also do from the service.msc terminal), in linux it restarts the daemon. Neither of which will be helpful if apache is properly frozen, in that case you'll have to kill it manually first.
go to post Fabian Haupt · Aug 18, 2020 I think this " OAuth authorization is much more robust and recommended for production use. " should be emphasized a bit more :) This might lead to people getting the idea that rolling their own encryption related code is an acceptable idea :/
go to post Fabian Haupt · May 9, 2020 You will benefit much more directly by letting your instance have that extra memory directly and not via that added extra step of creating that virtual drive. Give your instance more global buffers. Also from the sounds of it you might want to look at your queries and associated query plans in a bit more detail. You should get in touch with the WRC for that, they're great at sorting out why queries run slow ( you might want to reach out to car-part first, maybe they've fixed some of the queries)
go to post Fabian Haupt · Mar 29, 2020 It's a proprietary compiler compiling into a proprietary bytecode. So no llvm support, and certainly no in depth documentation of it ;)
go to post Fabian Haupt · Jan 10, 2020 Even just doing a read access is significantly slower with the %DynamicArray types. I ran into that during the Advent of Code puzzles and had to fall back to $LB lists and arrays. consider a simple loop to go through 100k items: Class fkh2019.Bench Extends %RegisteredObject { ClassMethod listtest() { #; let's build a long list s mylist="" for i=1:1:100000{ s mylist=mylist_$LB(i) } s start=$P($ZTS,",",2) Set P=0 While $LISTNEXT(mylist,P,value) { s disgard=value } s end=$P($ZTS,",",2) return end-start } ClassMethod dyntest() { #; let's build a long list s mylist=[] for i=1:1:100000{ d mylist.%Push(i) } s start=$P($ZTS,",",2) Set it=mylist.%GetIterator() While it.%GetNext(.key,.value) { s disgard=value } s end=$P($ZTS,",",2) return end-start } ClassMethod runtests() { s t1=..listtest() s t2=..dyntest() w "list access took ",t1, " seconds",! w "dyn array access took ",t2, " seconds",! } } The %DynamicArray takes about 15x longer: IRISAPP>d ##class(fkh2019.Bench).runtests() list access took .005273 seconds dyn array access took .082946 seconds
go to post Fabian Haupt · Jan 1, 2020 Thanks, it was a lot of fun! Good coding everybody and a happy new year to you all!
go to post Fabian Haupt · Dec 28, 2019 Anything using process memory usually falls over really quick as soon as you try and start using it for real use cases. Even increasing bbsiz is only a temporary band-aid in most cases.
go to post Fabian Haupt · Dec 27, 2019 It's a graph library that allows me to create a generic graph. the shortestPath method uses A* (https://en.wikipedia.org/wiki/A*_search_algorithm) to find the shortest path connecting two nodes in the graph. This is reusable in all of the 'find a path through a maze' kind of puzzles. The lack of generalized libraries/tools is the biggest drawback in COS. For example Day20, part1: https://github.com/kazamatzuri/AoC/blob/1387289dbcacfa2d7dd62906e873c074... k ^grid,^ports,^portals d ..parseInitial() d ..buildGraph() d ..findPortals() d ..linkPortals() s entry=$LG(^portals("AA"),1) s exit=$LG(^portals("ZZ"),1) zw entry w " -> ",! zw exit s path=..graph.shortestPath(entry,exit) s length=$LL(..graph.shortestPath(entry,exit))-1 return length