Creating a Graphical User Interface (GUI) in Dyalog APL (Part 1)

Sam GutsellAPLLeave a Comment

One of the most important things about an application is the Graphical User Interface (GUI for short) as this is how users interact with your app. This is why, over a series of posts, I am going to show you how to build a basic GUI in Dyalog APL. Create a blank form In this post I will be using … Read More

Advent of Code 2020 – And the Winner Is…

James HeslipAPLLeave a Comment

Another year comes to a close and brings with it the end of another excellent Advent of Code. Here at Optima, the spirit of competition remained high throughout; Roy kept up a close tail, but nobody was able to catch Jonners on his way to victory. With that said, Jonners took the Optima trophy, along with the overall prize. In … Read More

Programming Challenge: The Year Game

Sam GutsellAPLLeave a Comment

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 5 – Our Solutions

James HeslipAPLLeave a Comment

Airports can be hectic, especially around Christmas. Nobody wants to get stuck and miss their flight, even if it is completely hypothetical. Advent of Code’s day 5 question deals with a chaotic situation of boarding passes and locating your seat on a plane; seems a distant memory now with all that’s going on in the world… Your given input is … Read More

Advent of Code 2020 Day 1 – Our Solutions

James HeslipAPLLeave a Comment

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

Jonners WaltonAPLLeave a Comment

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)

Sam GutsellAPL, Computer ScienceLeave a Comment

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

John 'Jake' JacobAPLLeave a Comment

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

Sam GutsellAPLLeave a Comment

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?

John 'Jake' JacobAPLLeave a Comment

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

Sam GutsellAPLLeave a Comment

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

Sam ThompsonAPLLeave a Comment

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. What is a source code manager? A source code manager (SCM) is software that assists in managing … Read More

Left and Right Tack in Dyalog APL

James HeslipAPLLeave a Comment

Tack (⊣ ⊢) – What is it good for?! 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 … Read More

Rendering HTML in Dyalog APL

James HeslipAPLLeave a Comment

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

James HeslipAPLLeave a Comment

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. Squad indexing vs. Square bracket indexing ⎕←cube←?3 4 5⍴7 4 3 4 1 1 5 5 7 6 … Read More