Software tasks for this week have focused on a new project tracing AI in mobile applications. This is part of a fellowship project to develop a wider toolkit for app studies to run on High Performance Computers. While I have an existing toolkit, it is designed for laptops or High Throughput processes.
The current project is taking parts of it apart for performance reasons, such as memory or time. Each step is taking a fair amount of time using timeit, memory profiler, and the Python profiling libraries. I know the memory profiler is not maintained any more, but it is still a good tool for looking at the memory use for a script. Combining them and reading the updated code for Androguard has helped to go lower down the code stack.
Usually I can just use the AnalyzeAPK() method and get the APK and dex parts for later processing. This does not really scale for an HPC environment so I have been looking at ways of breaking this down as well as organising my code to utilise the different objects far more efficiently. Given other things this week, it has been quite meditative. I can see some more experiments soon to capture other aspects. It is taking me back to work that I did at Oxford when I noodled around on the Square Kilometre Array telescope as well as improving my knowledge of Python. I can see this already forcing changes to the library and documentation.
One thing that I would like to do is to use the Docs as Code methodology within the Androguard library. This would help improve aspects and allow it to be tested and deployed as part of the move to continuous integration.
Meanwhile, I am continuing with my explorations into sound. I had a paper accepted at the forthcoming King’s College London DH conference about looking at how sound is modelled in early forms of BASIC and BASIC’s democratisation of programming. I have been using the language templates used in the Critical Code Studies working group to map the parts and can see some early results. So next week I’ll be doing more comparison, but I definitely have a paper. I can also see wider questions – some of which are interesting but a diversion at the moment – appearing. I found the template helpful to order thoughts and focus (apart from the end so will need to edit…) that also suggested things that posed questions. In due course, I will post this to the Programming Sound repository with some documentation. Rather than focusing on one code base, this work is comparing versions of a language that raise wider questions. Next up is finishing off the analysis for the paper and getting it ready to post next month. I hope that this will lead to some code for this and certainly methods, but let’s see.
I have also started a new small project called Leviathan’s Ear that is about machine listening. It is working towards a workshop that will be in July now.