Sunday, December 28, 2025

Quick tip: retrieving raw, unprocessed files stored in Github

 The domain raw.githubusercontent.com serves raw, unprocessed files stored in Github repositories - think of it as GitHub's "direct file download" backend. Tools like curl, wget or Python scripts can fetch files directly using a specific url composed of the user name, repo, branch, folder and filename

curl -O https://raw.githubusercontent.com/[user]/[repo]/[branch]/[folder]/[filename] 

example: curl -O https://raw.githubusercontent.com/jorisp/tradingnotebooks/master/data/DJI.csv


You can also read these raw files form GitHub using pandas.read_csv


Tuesday, December 23, 2025

Interactive Pandas dataframes with ITables 2.0

 ITables is a Python package available on Github (maintained by Marc Wouts) which changes how Pandas and Polars dataframes are rendered in Python notebooks and other Python applications. It works out of the box without any dependencies in Jupyter, Dash, Streamlit and Marimo. 

For more info see:


Enable and disable Data Wranger in VS Code for Pandas DataFrame and Series

To disable default rendering of Pandas DataFrames in VS Code Jupyter Notebook with Data Wrangler (after installing the extension) - follow these steps:

  1. Open Command Palette : Preferences: Open Settings (UI)
  2. Search for: Data Wrangler
  3. Uncheck the Data Wrangler>Output Renderer: Enabled Types for Pandas Dataframe and Series to disable the rendering and check them again when needed


Related links:

Sunday, December 07, 2025

Datawrapper: enrich your stories with charts, maps and tables

 Datawrapper is designed to make professional-quality charts, maps and tables - even for those without coding or design skills. Also check out their blog which has excellent posts such as Fix my chart - turning donuts into bars (Part of the Data Visualization Do's & Don'ts). 

"Statistiek Vlaanderen" (government agency in Flanders) makes extensive use of Datawrapper - it has used it to create more than 2000 Datawrapper charts and maps on more than 300 webpages. (Statistics Flanders: "We want to reach everyone")




Monday, October 13, 2025

Quick tip: Upgrade yfinance as part of OpenBB

I have noticed that the yfinance Python package requires regular updating to keep it working. yfinance is also one of the core libraries inside OpenBB and you can upgrade it independently of the other packages using this command

pip install --upgrade openbb-yfinance

References:




Wednesday, August 06, 2025

Divididend analysis of Telenor ASA using Jupyter Notebook

Cross posted from Divididend analysis of Telenor ASA using Jupyter Notebook

I just published the notebook dividends.ipynb on my GitHub repository jorisp/tradingnotebooks which shows how dividends contribute to the total return. This notebook uses the yfinance API to retrieve the data.  I used Telenor ASA (a Norwegian telecom operator) as an example.

If you are considering to invest in foreign dividend stocks as a Belgian investor, you need to keep in mind the double taxation of dividends. Even with a withholding tax applied abroad, the Belgian government will tax your dividend again at a flat rate of 30%.

Disclaimer: The information on this blog is intended solely for informational and educational purposes. I am not a certified financial advisor, and the content provided here does not constitute professional financial advice. (Full disclaimer)

Tuesday, March 18, 2025

Getting financial data in Python using the OpenBB SDK

The OpenBB SDK (also known as OpenBB Platform) is developed as open-source (the code is available on https://github.com/OpenBB-finance/OpenBB) by the company Open BB. The OpenBB SDK provides programmatic access to a wide range of financial data sources from one place in a standard way.

The OpenBB SDK was developed to drive the OpenBB Workspace (See Introducing the new OpenBB Terminal ) which provides a customizable platform for financial analysts, investors and researchers that rivals traditional financial terminals without the steep costs.

By default, the OpenBB SDKwill attempt to download data from free sources such as Yahoo Finance but OpenBB SDK integrates with multiple other data sources as well such as , Alpha Vantage, FRED,FMP,SEC,etc .... In most OpenBB API platform calls, you can indicate a different data source - some of them free others requiring a separate subscription - allowing you to pull equities, options, crypto, forex and macroeconomic data using a single SDK. 



Since you can access both historical and real-time market data, OpenBB is ideal for backtesting and live trading strategies. The SDK is compatible with Jupyter Notebooks, Python scripts, and automated trading systems. I recently tested the OpenBB SDK as an alternative to Pandas_DataReader in Jupyter Notebooks, and it worked flawlessly.

I shared this Jupyter notebook on my Github repo:

https://github.com/jorisp/tradingnotebooks/blob/master/openbbdemo.ipynb

Please note that many of the code samples found in various articles and posts are no longer functional due to significant changes in the codebase. The shared Jupyter notebook has been tested with OpenBB 4.3.5 and Python 3.12.8.

Quick tip: command prompt shortcut for PAC development tools

Last year, I blogged about how you can use PAC to start the Plugin Registration Tool and Configuration Tool  (see Start CRM development tools from command prompt with Power Platform CLI). 

Remember that you quite easily create a shortcut for this as well by using "C:\Windows\System32\cmd.exe /k pac tool prt" as input for the shortcut.



Quick Tip: installing Azure Service Bus Explorer with Chocolatey

 Recently I had to reinstall Azure Service Bus Explorer on a new laptop and it seems that you now need to use Chocolatey (a package manager for Windows) to install Azure Service Bus Explorer. 

Installing Chocolatey, is quite straightforward, - you need to follow the steps outlined on Install Chocolatey for individual use - I installed Chocolatey using PowerShell prompt (with elevated privileges) and did not encounter any issues. 

Next you can simply install Azure Service Bus Explorer from command prompt using "choco install servicebusexplorer". By default it will install into this folder C:\ProgramData\chocolatey\lib\ServiceBusExplorer\tools\ServiceBusExplorer.exe . No issues encountered with version 6.0.3


Saturday, December 28, 2024

The Rational Reminder podcast - favorite episodes from 2024

I started listening to the Rational Reminder Podcast somewhere around the beginning of this year and I can highly recommend it to anyone interested in passive evidence based investing and financial decision making. 

The Rational Reminder podcast is weekly podcast about personal finance and investing from a couple of Canadians, Benjamin Felix and Cameron Passmore - both work at PWL Capital. The hosts are experienced portfolio managers who share their knowledge about a broad range of financial topics and the show often features interviews with industry experts, offering diverse perspectives and deep dives into specific areas of finance.



Benjamin Felix also creates educational content on YouTube https://www.youtube.com/@BenFelixCSI where he shares insights on investing and financial planning

Both advocate for evidence-based investing, which often includes passive investment strategies such as index funds and they emphasize the benefits of low-cost, diversified, and long-term investment approaches, which align well with passive investing principles.

Episodes which I really liked:

Monday, December 23, 2024

Hidden gem : the business process catalog for Dynamics 365 apps

The business process catalog for Dynamics 365 apps is an Excel workbook that contains more than 700 processes grouped by end-to-end scenarios and business process areas for different products (Dynamics 365 SCM, Business Central, Customer Service etc ...). It can be used as a blueprint for requirement-gathering and implementation templates. 

Microsoft updates the catalog at least four times each year and the latest November 2024 release was recently made available. This latest releases includes:

  • Azure DevOps templates that you can use to track your implementation
  • Configuration deliverable downloads for Finance and Operation apps as well as Customer Engagement apps.
  • AI generated process flow diagrams for level 3 processes to accelerate the discover process.
Download the latest version on https://aka.ms/businessprocesscatalog and explore AI generated flow diagrams at https://aka.ms/businessprocessflow

Sunday, December 22, 2024

Dynamics 365 Contact Center - the new kid on the block

 In July 2024, Microsoft announced general availability of Microsoft Dynamics 365 Contact Center. This Contact Center As A Service (CCAAS) offering allows Microsoft to compete against players such as ...

It most likely is also a way for Microsoft to embed the Nuance offering more directly into the Dynamics 365 platform. It can be quite a daunting task for consultants and customers trying to come up with a cost simulation since licensing is not that easy taking into account the different capabilities in the platform (or as Tricia calls it "licensing a contact center deal can be a special place in hell" - in Licensing the Dynamics 365 Contact Center Part 1


Data flow and components in Dynamics 365 Contact Center architecture:

  1. Customers can connect through preferred channels including Teams for internal helpdesks. Licensing and operational cost vary depending on the required channels to support
  2. Azure Communication Services (ACS) offers PSTN integration for voice 
  3. Works not only with Dynamics 365 CRM (Customer Service) but also with other CRM platform such as Salesforce and ServiceNow
  4. Use Copilot Studio to configure AI agents and IVR setup
  5. Routing based on Unified routing framework
  6. Agents work in the Agent Workspace or Customer Service Workspace if you are using Dynamics 365 
  7. Connectors allow easy integration with Microsoft 365
  8. Typical AI scenario's supported such as case summary, conversation summary, draft e-mails and knowledge article support (mainly existing functionality which already surfaced earlier in Dynamics 365 Customer Service)
  9. Built on top of Power Platform with Dataverse as the core building block
  10. Built in monitoring, management and analytics & reporting functionality
If you want to learn more about this platform - I suggest that you follow Chris Goodwill on LinkedIn and join the Dynamics 365 Contact Center LinkedIn Group

Related posts:

Saturday, December 21, 2024

Thoughts about Artificial Intelligence and business value

The question that a lot of companies have, is  how to realize business value from AI. Obviously companies don't invest millions (billions) of dollars in artificial intelligence just to play around with LLMs. Companies need to quantify the business value they want to realize.

To get an answer to this question, you might want to take a look at the white paper  Research paper - Artificial Intelligence and business value: a literature review (2021, Ida Merete Enholm, Emmanouil P., Patrick Mikalef and John Krogstie) which provides a framework for connecting AI with business value.

The white paper distinguishes between first and second order effects of GenAI. First order effects are the immediate, direct impacts of implementing Generative AI whereas second order effects are indirect, longer-term impacts that result from the first-order effects. 

While first order effects (e.g. enhancing business decisions, increasing process efficiency and transforming business processes) are crucial for justifying the initial investments and demonstrating immediate ROI, second order effects (impact on operational and financial improvements, sustainability etc...) are essential for long term strategic planning and understanding the broader implications of Generative AI.



Friday, December 20, 2024

API Playground in Dataverse Accelerator App

 The API playground is a pre-authenticated software testing tool which is part of the Dataverse Accelerator App. API playground  allows you to quickly interact with the Microsoft Dataverse Web API - check out Explore and test Dataverse in the Web API playground (Preview)





Sunday, September 29, 2024

Book review: beyond diversification - what every investor needs to know about asset allocation

I recently finished reading Beyond diversification from Sebastien Page.  Sebastien Page (Chief Investment Officer at T. Rowe Price) explains in Beyond diversification the different approaches to forecasting returns, risks and correlations across asset classes by combining academic research and practical hands-on examples. 

This book is most likely targeted at the sophisticated investor  and should not be the first book to pick up if you want to understand diversification but it provides great insights on how asset managers think about their portfolios. 

The book also extensively refers to a number of academic papers that Sebastien Page has written on asset allocation, risk measurement and return forecasting. It explores a number of dynamic asset allocation strategies, acknowledging that risk is time-varying and requires adaptive approaches. Sebastien Page also explains why the typical fixed weight asset allocation (60-40 portfolio) does not deliver a constant risk exposure.

The book recommends using a  heuristics to cope with changes in volatility: assume that next month's volatility for each asset class will be the same as last month's. For the longer term the opposite is true, 5 years of calm markets are more likely to be followed by 5 years of turbulence.

The stock-bond mix is the biggest decision that multi-asset investeros make, but this mix does not reliably reduce risk as correlations shift. Stock bond correlations were positive in the 1970s and 1980s when inflation and interest rates drove volality but then the correlation reversed.


PS With volatility being a proxy for risk, you might also check out the white paper "Practical Issues in Forecasting volatility" from Clive Granger and Ser Huang Poon which was published in the Financial Analyst Journal in February 2005.





Saturday, September 28, 2024

Dynamics 365 and Power Platform monthly reading list September 2024

 2024 Release Wave 2

Release plans for 2024 release wave 2 are now publicly available - Release plans for Dynamics 365, Power Platform, and Cloud for Industry - Dynamics 365 | Microsoft Learn - from July 29th, early access will be available for activation - other key dates for 2024 release wave 2 are also available . Also check out the videos like Dynamics 365 Service 2024 Release Wave 2 or Dynamics 365 and Power Platform 2024 Release Wave 2 - these might also contain features/functionality which are not listed in the release plans.

Copilots, AI and machine learning

Technical topics (Configuration, customization and extensibility)
Topics for Dynamics 365 Business Applications Platform consultants, project managers and power users

Thursday, September 26, 2024

Quick tip: Get-AzSubscription and Azure Cloud Shell

The Get-AzSubscription PowerShell cmdlet gets the subscription ID, subscription name and home tenant for subscriptions that the current account can access. You can also pass this values in as a parameter e.g. "Get-AzSubscription -SubscriptionId" to find the name of a subscription. 

The easiest way to execute this cmdlet (without having to install anything on your machine) is by using Azure Cloud Shell.  A handy feature of Azure Cloud Shell is predictive intellisense - use the RightArrow key to accept an inline suggestion.



Book tips: Gently easing into Agile and DevOps with the Phoenix project and the Unicorn project

If you are not familiar with Agile or DevOps, I highly recommend the books below:

If you have worked in consultancy or software development, you will have surely have a number of "aha moments" which will bring a smile to your face ...

Thursday, September 19, 2024

Power Platform Managed Identity support for Dataverse Plugins (preview)

This is a long overdue feature which allows Dataverse plug-ins to connect to Azure resources (e.g. Azure Key Vault) using managed identities, eliminating the need for credential management and enhancing security.   It currently is available in public preview but GA is expected for November 2024

You will need to create a managed identity record in Dataverse and link it ot your specific plugin assembly - for more details take a look at Set up managed identity for Power Platform (Preview) and Power Platform managed identity overview (Preview) for more details.

In your plugin, you will need to the implement the IManagedIdentityService interface which allows your plugins to interact with managed identities. Using this interface, your plugin can request an access token for a specific Azure resource. I asked Copilot to generate the code for this below but did not check it yet ...


In the meanwhile there is also a XrmToolBox plugin available to help with configuring the managed identity - see GitHub - drivardxrm/Driv.XTB.PluginIdentityManager: XrmToolBox Tool to help manage Managed Identity records in Dataverse

References: