Happy New Year! At the start of this year, I remembered a challenge that Dyalog had come up with back in 2016 that was focused around the year 2016. So, I decided to see how I would get on trying the same challenge with the year 2021. The challenge The challenge is to write a series of expressions using the … Read More
Advent of Code 2020 Day 1 – Our Solutions
The holiday season is among us, and that can only mean one thing…Advent of Code is here! Optima is hosting a little internal competition this year to see who can get the most stars. This has genius from all corners of the office, and I thought it would be nice to show off the different thought processes from some of … Read More
Quines – A Puzzling Programming Novelty
My introduction to APL consisted of using the language to solve a number of quick puzzles; the phase 1 problems from Dyalog’s annual Student Competition. It was a fantastic way to get to grips with each of the glyphs and the capabilities of the language. While the puzzles were a far cry from real life problems, and the solutions a … Read More
Using Booleans (with some Dyalog APL examples)
Booleans are one of the most prominent data types used throughout computing. In programming, Booleans are mainly used in logic problems and can be used and manipulated in many ways. What is a Boolean? A Boolean is a data type used to identify a value which can only be true or false, sometimes represented as 1 or 0, respectively. The … Read More
Pervasion of Ambivalence in APL Functions
Introduction I was recently tasked with modifying a Dyalog class currently running under Dyalog 16 so that it would run under Dyalog 17.1. The class in question was used to serialize APL data into a JSON format and back again. The problem was that it made use of the two I-beams 7159 and 7160. These are deprecated in 17.1 so … Read More
Using a MIDI Controller With Dyalog APL
As well as being a programmer, I am a hobbyist musician. At school and in my spare time I have studied music production and music theory. I occasionally write pieces of music and I recently received a MIDI controller as a gift. Being a programmer one of my initial thoughts was ‘how can I code an interface to this device?’, … Read More
Could the Coronavirus Lockdown Be an Opportunity for Our Organisation?
The Spring Mini Conference For the past twelve years the British APL Association’s (of which I’m the Editor and Optima Systems MD Paul Grosvenor is the Chairman) London group has been holding a regular symposium on the last Friday of the month only skipping December and the odd date that clashed with a royal wedding to avoid the crowd. This … Read More
Checking for Palindromes in APL, Python and other Programming Languages
Recently we had a special date on the calendar, that some of you may have noticed. The date in question is February 2nd 2020, which when written in any of these formats: DD/MM/YYYY (UK), MM/DD/YYYY (US) or YYYYMMDD (ISO), is in fact a palindrome (excluding ‘/’ or other symbols). This made me think about how I could check for palindromes … Read More
Version Management in Dyalog APL
Version management is a vital component of any software development project. The ability to revert to previous version of a project in the case of disastrous bug or misguided feature is one that any developer is glad to have in their back pocket. A source code manager (SCM) is software that assists in managing and versioning source code. Programmers use … Read More
Left and Right Tack in Dyalog APL
Dyalog APL offers two symbols which do, on the surface, a seemingly pointless task. I’m referring to left tack (⊣) and right tack (⊢). As with most APL functions, they have two uses depending on their number of arguments: monadic, if used only with a right argument; or dyadic if used with a left and a right argument. If used … Read More
Rendering HTML in Dyalog APL
I was inspired by the talks of Brian Becker and Josh David at the Dyalog’19 user meeting to try out some of Dyalog 17.1’s newer methods of GUI implementation. On the Sunday 8th of September – the unofficial first day of the conference- I attended their workshop on rendering HTML in Dyalog APL. Realising the potential for modernisation in our … Read More
Indexing arrays in APL: Squad indexing on multi-dimensional arrays
I had a question for the team in our regular meeting on Wednesday, but it relied on an understanding on squad indexing, and nobody felt comfortable enough with ⌷ to answer my question. I’ve since reach a conclusion and thought I’d share. For a given 3-dimensional object, I can use square bracket indexing to retrieve the indices I want. I … Read More
Order of execution in APL programming
APL began life as a mathematical notation, created by the Canadian computer scientist Kenneth E. Iverson. Over the years it evolved into the APL programming language. There are several versions of APL but they all follow the same order of operations. When I started learning APL, one of the trickiest things was reprogramming my brain! This was because APL does … Read More
Setting Coding Priorities and Quality Bars as Project Groundwork
The APL programming language celebrated its 50th anniversary in 2016. Since its inception the APL language has evolved a growing and rich functionality. An interpreted language with an interactive development environment APL has an immediate fingertip feedback for the developer working with it. Features that combine to provide a fertile and creative environment for its programmers. In the early days … Read More
A trip to the FinnAPL user meeting
The FinnAPL meeting this year is hosted just outside Helsinki in Hämeenkylä Manor. Arriving at the manor the night before I couldn’t appreciate the beautiful setting until I woke up this morning to a snow covered landscape all around from my room’s view. The seminar was formally opened by Veli-Matti Jantunen who welcomed us all before diving straight into the … Read More