RSSAmplifier

Blog

Synesthesia

Synesthesia

synesthesia.co.ukRSS feed ↗762 posts

Latest posts

Transcribing meeting recordings with OpenAI

The other day I was sent an audio recording of a meeting I had been part of, but no textual transcript was available. With a relatively small amount of hacking it is now very easy to use the OpenAI Whisper model via the transcriptions endpoint to generate high quality text from such a file. This example uses Python, it’s a great language for these sort of ad-hoc tools. Process The process…

Goodbye Z80

Zilog have announced the impending end of supply for Z80 8-bit microprocessor chips, 48 years after they were first introduced. As a teenager in the late 70’s who started an electronic engineering degree in 1979, amongst my nerd contemporaries there was a clear division between the Z80 fans and the 6502-ers, and obviously each camp thought the processor they preferred was better. The course…

Weeknote 2024 W11-12

No note last week - lots of things overrunning due to an unexpected issue, and by Friday afternoon I just needed to get away from my keyboard! So this is a combination of two weeks. Highlights after many months of missing it, dropped into the monthly Zoom call for Harold Jarche’s Perpetual Beta Coffee Club (PBCC) . PBCC means interesting people, and I need to remind myself that the fact it…

Weeknote 2024 W10

Working Main work focus has been kicking off the implementation phase of a project that replaces the system support for a process that manages a professional accreditation we run. The legacy system is a very old website — we are replacing the functionality with a combination of a SharePoint site (running with external guest users) to manage all the portfolio submissions and assessment documents,…

Weeknote 2024 W09

A rare face-to-face meeting with colleagues this week to talk product strategy. Although I’m a big fan of not shuffling back and forth to an office each day (we’ve been fully-distributed since the pandemic), it was noticeable that conversation flowed better, and it was clearly easier for the meeting chair to push people to make decisions. Other highlights: a chunk of fiddling with the nuances of…

WeekNote 2024 W08

This week started like they usually do after a few days off — definitely a need to catch up with where I had left off, workwise, and definite feeling of grudging acceptance at the 5am alarm clock 😛 Colleagues escalated a fault to me that related to our web site no longer pulling customer access rights through (ultimately from our CRM). A mundane enough expired Client Secret (yes, “nul…

Expanding Digger to work with Hypothes.is

This note is mostly for myself - Digger is built for a userbase of 1 - you are welcome to fork and copy it, but I am not proposing to support it. About eighteen months ago I released a small tool to pull annotations from Diigo into local Markdown notes. With version 0.5.0 (released yesterday) there is now also a basic capability to pull annotations from Hypothes.is. To upgrade: get an API key for…

Blogging review 2023

It’s traditional at this time of year to look back over the last 12 months, so here a few thoughts about what happened with blogging (and other public writing), indeed PKM generally, and what went astray. The year started quite well with a reasonable flow of posts, helped somewhat by retaking Harold Jarche’s Personal Knowledge Mastery course . However from mid-year onwards there was a…

Linear Regression basics - course note

This notebook is based on the exercises in the Anaconda training Getting started with AI and ML . I’m copying my notes here as a more in-depth test of the ability to publish directly from Jupyter notebooks, and also to put my notes somewhere I can access them later! Linear Regression The most commonly used supervised machine learning algorithm. This module covered: Fit a line to data Measure…

Sample Jupyter Notebook

This is a test of importing Jupyter notebooks directly as work notes using the Academic CLI print ( 1 + 1 ) 2

Reply to Ton Zijlstra 'The Enshittification of LinkedIn As DSA Takes Effect'

Same old, same old I never post my updates on there, that’s what this site and my Mastodon feed are for. If I really thought there was any value in it I would post links ‘over there’ to selected posts ‘over here’. When it first started, the idea of tracking your own professional network, and seeing “who knew whom” was something of a winner, but the…

Summer's Lease

So that was Summer 2023! Something of an absence from the online world which is not a bad thing. In six weeks we seem to have packed in: an emotionally charged week before a significant chunk of our family migrated to Canada a week in a fancy (but not as fancy as it thought) hotel in north-east Spain, including a “big night out” with some friends who happened to be staying in the next…

Working with this Hugo site in GitHub Codespaces

I wanted to learn a bit more about using devcontainers and GitHub CodeSpaces, and thought the code/content repo for this site would be a good place to start. Development Containers The Development Containers spec was originally started by Microsoft to provided a simple experience to edit codes in predictable containerised development environments from Visual Studio Code via the Visual Studio Code…

TIL - Adjusting Json.NET settings in Azure Durable Functions

Context This issue surfaced during development of a webhook application intended to receive events from Zoom (e.g. meeting started, recording completed etc.) and trigger consequential actions via Azure Durable Functions orchestrations. The application relies on the Jericho/ZoomNet library for Zoom-specific methods, including the serialisation and deserialisation of webhook events. The high-level…

Exploring Initial Teacher Training data with Datasette

Introduction I wanted an opportunity to try out Datasette for a bit of ad-hoc data analysis, with the ability to easily share the results. To quote the tool home page: Datasette is a tool for exploring and publishing data. It helps people take data of any shape, analyze and explore it, and publish it as an interactive website and accompanying API. The data The Department for Education (DfE)…

TIL - using Channels in dotnet

Context Many of the code tools we build in a small non-software business relate to various forms of data cleanup. A classic example would be to read set of data from one system (or a spreadsheet), compare it with data from another system, make row-by-row decisions, and then create, delete or update rows in a system based on that decision. These are usually console apps run from the…

We're doomed - or are we?

A soup of views There’s a lot of talk around the net at the moment about the perils of uncontrolled AI (which for the context of this post mean Large Language Models ), for example a large group of experts have signed an open letter calling for a pause in development whilst risks and regulation are explored . Another line of warning relates to implicit biases in the content used to train the…

Applying ChatGPT-like tools across your own data

The current speed of iteration across tools based on Large Language Models, both corporate and open-source, is way too fast for a non-specialist to keep up, a classic case of the need to apply Personal Knowledge Mastery techniques and identify a trusted network. This post draws on an author who is new to me, but who I suspect may be worth following, Mick Vleeshouwer , who is currently an AI Cloud…

Adding label column for optionset in fact table

Introduction In the previous post I discussed adding new columns to historical snapshots of a fact table stored in Parquet format. As a reminder, this work is within a datalake that is processing (amongst other sources) sales data from Dynamics 365: Overview of datalake with Dynamics sales data Two of the new columns I added were based on local optionset fields (or in the new nomenclature, choice…

Adding columns to parquet-based fact table

Docs: https://docs.hugoblox.com/content/writing-markdown-latex/#callouts Parameters #0 : optional, positional Add the class “alert-{#0}” to the container of the callout element. Default Hugo Blox Builder available styles are “note” and “warning”. Otherwise you can create your own class (see assets/scss/blox-bootstrap/elements/_callout.scss ). */}} This example…

This is what happens

When you combine a couple of weeks where you are mostly away from the keyboard, followed by a couple of weeks of totally heads-down work delivery, mixed in with some highly significant news away from work, and a bit of minor surgery: no time to read interesting threads no time to keep up with feeds no energy to have non-work ideas that are worth writing about no output at all on the site…

Next steps for Personal Knowledge Mastery

I’ve reached the end of Harold Jarche’s Personal Knowledge Mastery course, it’s time to review, reflect and set myself some next steps. This post is largely structured around the last two exercises in the course. Review questions What was the most useful concept I learned from this workshop? The frameworks for linking Seek-Sense-Share to both organisational forms (Team / CoP /…

How I narrate my work

Context As previously mentioned, I am currently re-experiencing Harold Jarche’s Personal Knowledge Mastery course. The latest challenge from Harold is to explore narrating our work either to ourselves or in a shared form, as this can form a key stimulus in networked learning Narrating one’s work does not get knowledge transferred, but it provides a better medium to gain more understanding - Harold…

A heuristic for choosing people to follow on Mastodon

Context Following my post yesterday about Finding ‘connectors’ in Mastodon , Ton Zijlstra was kind enough to point out his 2008(!) post Conversational Symmetry and Twitter in which he too was looking at followers / following ratios, only back then it was on Twitter of course. The key to his approach is “For me, social media ia all about conversation” , and like my more…

Finding 'connectors' in Mastodon

Introduction This week as part of the Personal Knowledge Mastery course Harold challenged us to identify some ‘Connectors’ on Mastodon and consider their posting habits. Although connectors are defined by their behaviour, in that they join up those who seek knowledge with those who share it, it was suggested that we look at individuals who had a high ratio of follwers to followed as a…

Meetings may be part of the work, but that's not enough

Yesterday I wrote my first impressions triggered by Elizabeth Ayer ’s “Meetings are the work” . On further reflection I think Elizabeth’s hypothesis is necessary but not sufficient in a mission to truly improve organisational learning and the state of knowledge work within companies. To make that point I am going to lean heavily on Harold Jarche’s model of Learning in…

Finding the real work that meetings are good at

Elizabeth Ayer gets deeply frustrated by the whole “meetings aren’t real work” thing and has expanded that thought in Meetings are the work Every day I see people trying hard to avoid meetings … I get it. Meeting culture sucks. It’s too easy for people to thoughtlessly take each others’ time, occupy standing slots, show off with performative teamwork, and generally suck…

A McLuhan Tetrad about GitHub CoPilot

Introduction I am currently re-experiencing (after 9 years!) Harold Jarche’s Personal Knowledge Mastery course. One constant is Harold’s focus on PKM as a discipline, with the application of thinking tools to the process of making sense of the world. One of those tools that Harold advocates is the McLuhan Tetrad as a way of applying McLuhan’s Laws of Media to a given problem.…

Four day's work for five day's pay

Many will have seen the story ‘ Firms stick to four-day week after trial ends ’ on BBC News this morning (21/02/2023). The report relates to a UK-based pilot where companies volunteered to experiment with a 20% reduction in working hours for staff with no loss of pay. Docs: https://docs.hugoblox.com/content/writing-markdown-latex/#callouts Parameters #0 : optional, positional Add the…

Dataverse resilience pause and reflect

Tests so far I have now documented some fairly pragmatic and uncontrolled tests of four different approaches to calling Dataverse from client code: using ServiceClient in a Parallel.ForEach loop, setting maximum parallelisation based on the recommended settings from the Dataverse instance using ServiceClient in a Parallel.ForEachAsync loop, setting maximum parallelisation based on the recommended…

Dataverse resilience experiment 4

Polly Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, Rate-limiting and Fallback in a fluent and thread-safe manner. It has many helper extensions, including a high-level of integration with IHttpClientFactory and Typed Clients. Code changes The code can be seen at 29245c3 . The…

Dataverse resilience experiment 3

Initial code The first version of the code can be seen at 99d01bf . This code uses a class DataverseClient , to contain a typed HttpClient configured for use with Dataverse: using DVConsole.Model.DTO ; using Microsoft.Extensions.Logging ; using Newtonsoft.Json ; using System.Text ; namespace DVConsole.Services ; /// <summary> /// <inheritdoc cref="IDataverseClient"/> /// </summary> public class…

Dataverse resilience experiment 2

The code For this experiment I followed this Microsoft guidance to use Parallel.ForEachAsync . The full code can be seen at 899df9 , but the key method looks like this: private async Task CreateAndDeleteAccounts ( int numberOfAccounts ) { var accountsToCreate = new List < Entity >(); var count = 0 ; while ( count < numberOfAccounts ) { var account = new Entity ( "account" ) { ["name"] = $"Account…

Dataverse resilience experiment 1

The code If you are working with the ServiceClient class from Microsoft.PowerPlatform.Dataverse.Client then there is built-in logic to handle service protection errors from the remote service. Property Comment MaxRetryCount Maximum number of retry attempts after receiving an error from the connection, default 10 RetryPauseTime Time to wait before retry when response is 503 Service unavailable ,…

Dataverse Resilience

Introduction Where I work we make extensive use of both Azure Functions and console apps, to manipulate data in Dataverse, or to integrate to/from Dataverse and other systems. We have found that it&rsquo;s very easy to run into Dataverse API Service Protection limits when working with quite small datasets, so we&rsquo;ve had to learn how to adopt various techniques to keep our applications…

Doctorow on Social Quitting

Cory Doctorow has been writing incisively about social media for a long time now. This week, in Social Quitting , he goes to the heart of how all the big social platforms work, and why the landscape is starting to shift rapidly. The summary of his analysis on how every social platform so far makes money goes something like this: The economics of social media platforms are based on value…

A new year and 100 days to offload

Lots of people go for retrospective posts at this time of year, but I&rsquo;m not sure I blogged frequently enough last year to really bring out the highlights. And yes I could go back through my weeknotes and daily logs, but not feeling that level of keen right now. I missed #100DaysToOffload when it first came out, but it looks like people are still playing the game (some of them for the second…

A Rusty Advent

Background Eric Wastel has been publishing Advent of Code (AoC) since 2015. Each year he publishes 25 programming problems, releasing one a day from the 1st of December. Each day&rsquo;s problem consists of a textual description of a small programming puzzle, split into two parts - you only see the second part when you solve the first one correctly. To make things interesting there isn&rsquo;t a…

Example of adding Antora local author preview

In Antora Local Authoring I described how the author mode configuration could be used to manage your local copy of a documentation site. Where I work we have been running a couple of internal documentation sites for 2 years, the largest of which references nearly 30 source repositories. Although I drove the initial work I am always looking for ways to encourage colleagues to get involved with…

Reply to Chris Aldrich 'FeedReaderFriday: A Suggestion for Changing our Social Media Patterns'

I never really stopped reading stuff in a feed reader (currently for me, Feedly ); it&rsquo;s by far the fastest way to scan new content from sources you find interesting and then click thorugh directly to their own sites. Probably the biggest (and most useful) change I have made to the habit has been to rearrange my feeds by social distance - this immediately means that the people I interact with…

See you never Twitter

It&rsquo;s that time. I&rsquo;ve deleted most of my interaction history using the wonderful Semiphemeral . My account is restricted. After this post I will switch off federation from my blog to Twitter. Find me on my blog , or on Mastodon

Joined the Fediverse

What? The &ldquo;Fediverse&rdquo; is an ensemble of federated (i.e. interconnected) servers that are used for web publishing (i.e. social networking, microblogging, blogging, or websites) and file hosting, but which, while independently hosted, can communicate with each other - Wikipedia:Fediverse It&rsquo;s not new, but there is definitely a popular surge to the Fediverse, especially Mastodon,…

Bursty Backlogs

Why hasn&rsquo;t feature X been done yet? I think everyone who has any managerial responsiblity for developing software will have heard that question. The conversations with colleagues about the fluid nature of backlogs, the impact of changing business priorities, and the basic concept that an idea one has posted into the ideas portal is not a purchase order for a piece of functionality. Even at…

Learning Tools 2022

What tools are people using to support learning? Every year for the last 16 years, Jane Hart has compiled an annual list of &ldquo;Top Tools for Learning&rdquo;. Results for 2022 are here , with supporting analysis . Key takeaways: fewer votes and for far fewer tools compared to 2021 the top 5 tools (Youtube, PowerPoint, Google Search, Microsoft Teams, Zoom) were very significantly more popoular…

Revisiting 'The Power of Context'

Another dive into the archives, this day in 2004 I was writing about the power of associative thinking to generate new insights, purely by juxtaposing existing ideas in a new way. These days it seems we hear of &ldquo;nothing but&rdquo; the power of associative thinking in the context of Zettelkasten or digital gardens, driven by the core principle of breaking ideas down into atomic concepts to…

Digging out Diigo notes

Image credit 1 Context Like many others, a key part of my personal knowledge management process is the creation of highlights and notes on web pages uses online tools, then the extraction of those notes into a local Markdown file to form part of my knowledge library. So for example I might highlight a page using Diigo in the web browser: A web page highlighted in browser . Those highlights are now…

Small Tools

1 A collection of various software tools that I mostly put together for myself, but in the spirit of Small Tech In the words of Aral Balkan , Small Tech, Is built by humans for humans Is not for profit Is built by individuals and organisations without equity capital Is not sponsored by Big Tech/surveillance capitalists Is private by default Is peer-to-peer Is copyleft Favours small over big,…

'Renewal' revisited

On this day 19 years ago, I wrote about selected highlights from Tom Peters&rsquo; &ldquo;Brand You, the Renewal 50&rdquo; . The original site is long gone, but the archive has it . ( Esther Derby&rsquo;s blog where I found it is still there, although I didn&rsquo;t link the exact post). All of these ideas are, at root, about opening yourself up to new ideas and new experiences. It&rsquo;s…

Reply to Ton Zijlstra 'Julian’s Nudge To Explore Hypothes.is API'

Ton expresses his concerns about annotations in any online tool (the example is Hypothes.is) being potentially risky, if nothing else as a consumer of learning time that isn&rsquo;t well integrated with his other notes: The type of interaction and annotation I have/do with a source text I normally do locally. Unless it can be a PESOS (Post Elsewhere Syndicate to Own Site) flow, exchanging that…

Reply to Ton Zijlstra 'Clipping Articles From Feed Reader To Obsidian'

Ton shows the way again Once more, Ton has not only shown that he is thinking about similar personal information tooling challenges, but is ahead of me in implementing another personal tool to support his workflow. Ton has already taken the steps of implementing a feed reader running on his local machine, to which he has added the ability to post commentary on tagged feed items to his public…