Thanks for dropping by! Always interested to hear from visitors, whether it is their comments, new projects, interest in consulting services, or pointers to other web sites; please write to webs@bnikolic.co.uk .
Posts
Avoiding Hyperhtreading using numactl
Installing singularity container system without root permission
Continuously clearing the cache of a long-running non-configurable process
The Secret Life of SymPy
Advanced CPU functions support in Python numerical libraries
Is Git a system designed for single source of truth?
Seasonal adjustment in Azure Synapse using sktime
Building the Python interpreter and Python packages from known sources
Isolated Python on Windows using Sandboxes
Using Nix as un-privileged user
Notes on somewhat reducing trust of third-party Python packages
How to use fully isolated Large Language Models in Windows
BPF monitoring with user stack attribution and the frame pointer
SWIG bindings for llama.cpp into Java/JVM, C#/CLR, etc
MicroOS Desktop on Lenovo X1 Gen 10
Java/IJava and Jupyter Notebooks on binder.org
The Hat monotile in FreeCad
Building Google's Jax library from source using Nix
Build Python docker deployment images with pyenv and poetry
Using NIX to build Python docker deployment images
Is Jax multi-threaded when run CPUs?
Dealing with repositories with paths containing Aux on Windows
How much memory does my program need?
What is (did?) big data software architecture aim to solve?
Should you do computationally intensive data analysis in the cloud?
Thoughts on Nextflow
Installing Python on Windows using plain Python installers
If you need a calculator with units support: Maxima
Bayesian robust linear regression in Excel
GitHub CLI
How this site is (re)made (housekeeping)
Testing .Net executables against specific version of the framework
Dynamic extent in Java and Resource Acquisition Is Initialisation (RAII)
Securing Python when using packages
Cancelling async tasks in Python
Installing Python on Windows using the embedded package (no privileges needed)
An update on visualising the computational graph of a jax program
Python Global Interpreter Lock (GIL) and races
Decoding the 'No module named pip._vendor.six' error message
How to check on exceptions in a Python async task
How do I know if I'm running log4j ?
What do I need to know about Python's GIL?
Containers and Packages
Makefile technique to rebuild on changes in build options
Principal Component Analysis in Excel
An instant Jekyll publishing environment in Azure
RAII and Java
Environment Variables
What is PyTorch leaf node?
Using PyTorch to accelerate scipy.optimize optimisation
Linux: is file executable or not?
Dynamically limiting network bandwidth used by applications on Linux
Jax: Visualising the computational graph of a jax program
Jax: Automatic Differentiation of the Black-Scholes model
Copy a file to multiple hosts simultaneously
Python Panel completes the future of REPL in Python?
Conway's Game of Life implemented in JAX
Connecting Emacs ELPY console to a Jupyter kernel
SSH access to a sandboxed container -- e.g. Google Colab
Entering credentials in an Emacs sub-process shell
Using BERT to mine large datasets for purchasing sentiment
NumPy Ravel
Efficient Hessian calculation with JAX and automatic forward- and reverse-mode differentiation
Redoable graphics: xpyplot
Marchenko-Pastur distribution
Using VSCode for remote development with YubiKey SSH authentication
Python forkserver and set_forkserver_preload()
Python 'manylinux' wheels
PyTorch Neural Networks on CPU: 'roofline' for branching-limited models
What Limits Performance of (PyTorch) Neural Networks when running on a CPU?
Counting FLOPS in PyTorch using CPU PMU counters
Counting FLOPS and other CPU counters in Python
PyTorch Architecture
Transitioning to publishing with Jekyll
Who's eaten up all the (inotify) watchers?
Unbound Variable errors in Bash scripts
Fast Non-Linear Optimisation with PyTorch
PyTorch .detach() method
Is Python popular *because* it is slow?
Using PyTorch from Microsoft Excel
Quick-to-scale architecture for task-based processing
How to easily measure Floating Point Operations Per Second (FLOPS)
Mixed static and shared linking of libraries
Using LD_PRELOAD for testing of alternative implementations in large applications
How to monitor the full range of CPU performance events
The LD_DEBUG environment variable
SWIG wrappers in Java and the C++ RAII pattern
Using QuantLib from Clojure
The new `--as-needed` option to the GNU linker
Bumping Interest Rate Curves in QuantLib
Running Python Programs from Emacs
A simple FX-Option Example in QuantLib
Setting environment variables from within Emacs
Example of Pricing an American Option on a Dividend Paying Stock in QuantLib
subscribe via RSS
The old blog index
Introduction to the old index
This blog has been online from about 2008. Its always been a "static" site but it was started probably just a little before the conception of Jekyll, and so it was originally made using a static generator I assembled myself. The new content in the blog has now (finally) moved to Jekyll but so that you can continue to access the old content, it is all still up and available through the old index which is below!
Quantitative Analysis in Finance
C++ programming
- Non-dependent name lookup in C++
- Constrained Levenberg-Marquardt using the InMin library
- Constrained minimisation using the Levenberg-Marquardt algorithm
- C++ implementation of Khachiyan algorithm for the minimum enclosing (or covering) ellipsoid
- Making use of std::map<> ordered property: interpolation
- Lazy Code Generation (LzCG) and C++ Expression Templates
- A Simple, Minimal, Example of C++ Expression Templates
- Boost:
- Overcoming trouble with private implementation using smart pointers
- A potential pitfall when using boost::uniform_01
- Simple input parsing using Boost
- Common compile-time errors when using boost::bind
- More on generating normally distributed random numbers using boost (there is also a short article on this topic below)
- "Pointer Conflict" Errors in the Boost Serialization Library
- From BoostCon 2011 -- Bulk Synchronous Parallelism using Hybrid MPI+OpenMP
- From BoostCon 2011 -- The Geneva Optimisation library
- BoostCon 2011 Report
- Random Review series: randomly reviewing snippets of published codes:
- About the Random Review Series
- Small numerical values in C++
- Basic random number generation
- Basic generation of normally distributed random numbers
- Avoiding Artificial Class Hierarchies
- Avoiding Memory Allocation
- std::vector<> instead of new[]
- Generating random numbers in parallel for large-scale MC
- Derived classes still have a default assignment operator
- Template constructor in a non-template class
- C++ & SWIG: using data pointed to by a pointer
- Feature inheritance in SWIG -- doesn't apply to classes...
- SWIG wrappers in Java and the C++ RAII pattern
- SWIG %insert directive
- Using SWIG-ed libraries from Clojure
High-performance computing
- Finding Out and Visualising Hardware Locality
- How to monitor the full range of CPU performance events
- Using LD_LPRELOAD for testing of alternative implementations in large applications
- How to easily measure Floating Point Operations Per Second (FLOPS)
- Measuring Branch Prediction Accuracy Using Linux Perf Tools
OpenGamma
Python programming
- Running Python.
- Part I: Running Python from the command-line
- Part II: Running Python Programs from Emacs
- Python tips:
- Python/Excel Integration
- cx_Freeze
- Numba
- Using PyTorch from Microsoft Excel
- Is Python popular *because* it is slow?
- PyTorch .detach() method
- Fast Non-Linear Optimisation with PyTorch
Website/Company News and new projects
Web-publishing
- React, Bootstrap and and simple check-boxes
- How this website is made and re-made: link.
- Producing Atom feeds using Kid
- As an example of this, here is how to convert a directory of restructured text files to an Atom feed
- Comments are now enabled on this blog
General
- Another Employment Opportunity
- Employment opportunity
- Coccinelle
- Cross compiling Boost V1.50 from Ubuntu 12.04 to Windows
- Mixed static and shared linking of libraries
- Linux Perf tools
- The new "--as-needed" option to the GNU linker
- The LD_DEBUG environment variable
- Connecting Linux laptop to wireless Vodafone network via an E61
- Debugging a collision with a CPP macro name
- Unbound Variable errors in Bash scripts
- Python Global Interpreter Lock (GIL) + numerical data processing
- Quick-to-scale architecture for task-based processing
- Who's eaten up all the (inotify) watchers?
- Scalability Architecture of Apache Spark