In object-oriented programming, there are plenty of accessors and mutators to test. This post demonstrates that this effort can be automated with reflection 🚀. The inspiration came from discussions I had with my students during our software-engineering class: how to increase code coverage without lots of manual effort? 🤔 Roughly speaking, the reflection mechanism allows …
Category archives: coding
Working with Abstract Syntax Trees
Visualizing code as a syntax tree is both funny and useful, as seen from impressive applications such as creating lineage of SQL which helps to understand complex queries in business. Abstract syntax trees are not only widely used in industry but are still a subject of top academic research​1,2​. This post demonstrates how to work …
Customized Jupyter environments on Google Cloud
Kaggle docker images come with a huge list of pre-installed packages for machine-learning, including the support of GPU computing. They run within a container as a Jupyter application accessed by users through its web interface. Running a custom image boils down to these steps Below we can see how it looks like The following test …
Continue reading “Customized Jupyter environments on Google Cloud”
Repairing user-managed notebooks on Google Cloud
In this note, I am sharing a case study on debugging and fixing jupyter-lab access issues. The diagnostic script can be run on a VM instance as shown below: Jupyter service runs from a container, but it somehow stopped in this case 😳 Not a problem! We can restart the container, but carefully choosing the …
Continue reading “Repairing user-managed notebooks on Google Cloud”
ML Prototyping Environment on Cloud
How to prototype with multiple ML libraries in Cloud? Best to build on top of a rich pre-configured environment such as Kaggle image, extending it with a local virtual environment.
Efficient Pre-Commit Hooks with GitHub Actions
How to run pre-commit checks on CI/CD effectively?
Building and Publishing Docker with GitHub Actions
In this post I am sharing my recipe for building and publishing Docker using GitHub Actions. It concisely wraps up a few steps that beginners often find problematic. In particular: The sample code is shown below. See it in action on production here and in this template.
Effective Caching with GitHub Actions
GitHub Actions is great as a CI/CD platform. However, to be efficient, they need to leverage some optimization techniques. In this note, I discuss how to use cache effectively, with respect to multiple paths and sudo-installed APT packages.
Making SSH work by proxy
It is a popular misbelief that hiding encrypted connections (SSH) behind a proxy is a dark domain reserved to crime activities. You may need a Russian or Iranian proxy to get your coding job done, when firewalls of your favourite coffee place or wifi in travel forbid the use of SSH. As this happens to …
Free and robust Tweets extraction
As anticipated by many, Twitter stopped offering its (limited!) API for free ​1​. Now, what options do you have to programmatically access the public content for free?In this context, it is worth mentioning the library snscrape, a tool (well-maintained as of now) for extracting the content from social media services such as Facebook, Instagram or …