Welcome Martina Crippa

Martina started studying physics with the intention of specialising in Astrophysics. However, after her first linear algebra and analysis classes, she discovered that she found most enjoyment in the mathematical and theoretical aspects of physics. Following this discovery, she started a Master’s degree in statistical mechanics and computational physics, ultimately pursuing a PhD in computational materials science with a focus on the physics of complex systems.

While finishing her PhD, Martina decided to leave academia. During her search for a job she came across APL and was intrigued by all the maths-like symbols. She soon discovered that APL allowed her to apply mathematical thinking to coding in a new, clean, and logical way that complemented her attitude to solving problems following a theoretical approach. Following this discovery, she applied for a role with Dyalog Ltd.

Martina has a passion for exercising and the outdoors, and enjoys hiking and climbing. She like to spend her holidays travelling betweens huts on top of mountains or hiking along cliffs near the sea, trying to compensate for the lack of mountains in Denmark (where she is currently living).

When not doing sports, she also enjoys cooking, in particular carbohydrate-based dishes such as freshly made stuffed pasta, pizza and sourdough bread (according to the Italian stereotype, although fellow Italians might not be happy that she genuinely enjoys pineapple pizza!). She also devotes time to taking care of the 48 plants she has in her apartment, engaging in an endless war against all sort of bugs and plant diseases.

Dyalog ’24 Videos: Week 1 – Welcome to the Dyalog ’24 Presentations!

We’ve finished processing the first recordings of the presentations given at Dyalog’24 in Glasgow. The first four are now available to watch, and you can look forward to five or six new recordings each week until the end of November.

As usual, the Dyalog user meeting opened with presentations by the CEO and CTO, who provided statements of direction for our technical and marketing activities. As mentioned in my blog post introducing the videos after last year’s user meeting, we have a new CEO since 1 January – Stine Kromberg is now at the helm, and opened the meeting. I once again followed up the CEO’s introduction with a whirlwind tour of what I consider to be the most important stops on our technical road map – also introducing many of the talks that will follow later.

The two other talks we are releasing this week are from the other end of the meeting, appearing first due to technical issues that have delayed a couple of other recordings. First up is Aarush Bhat, who is making his first presentation at a Dyalog user meeting. Aarush is based in Bangalore and has been working for Dyalog for just over a year now. So far, most of his efforts have been concentrated on building a new framework for very thoroughly testing primitive elements of the Dyalog APL language; in this presentation, he explains what he has been able to do so far.

At the other end of the spectrum, we have lost count of how many presentations our Chief Architect John Daintree has made! In the third of his three presentations this year, he talks about limits in the Dyalog APL interpreter. These limits include things like the maximum rank of an array, the number of different data types we can support, the maximum number of constants and names in an expression, and so on. Many of the structures that impose these limits have remained unchanged since Dyalog version 1.0, but some of the limits are now coming under pressure by migrants from APL systems that have different limits, and some of the new features that we are adding to Dyalog, like array notation – and new primitives.

Any change to such structures has potential impacts on performance. Work will need to be done to continue to allow the sharing of arrays between different versions of Dyalog through workspaces, component files, and TCP sockets. If we do make changes, we’d like to get them all over and done with in one go, and ideally not change them again for another 40 years.

I hope you enjoy watching the first set of recordings from Dyalog ’24!

——————————————

This week’s videos:

Materials for all presentations can be downloaded from the Dyalog ’24 webpage.

Employee Spotlight: Mike

Mike is marking his first year at Dyalog Ltd, so we asked him to reflect on his experiences and the journey so far.

Before joining Dyalog Ltd, Mike spent nearly a decade at Optima Systems in Crawley, West Sussex. Optima’s long-standing relationship with Dyalog Ltd meant that Mike was already familiar with many of the people and had even visited our Bramley office on several occasions. At Optima Systems, Mike’s primary role was in website design, where he developed several iterations of the company website. His responsibilities also extended to handling graphic design needs, SEO, social media, website hosting, email signatures, and print work. This was for both internal needs and clients requirements.

Mike’s introduction to being a member of Team Dyalog was rather intense, as he was thrust straight into Dyalog ’23 (the annual user meeting) in Elsinore, Denmark. He had previously attended Dyalog ’16 as a delegate, but this time he experienced it from the perspective of a Team Dyalog member! For Mike, the chance to spend time in Denmark and meet his new colleagues in person was invaluable, as for him online meetings can’t replicate the real-life connection. With his previous experience working alongside Dyalog Ltd in his former role, the transition was smoother and less scary than it might have been.

Mike has embraced the company culture. He finds the environment at Dyalog Ltd relaxed and collaborative, with a strong drive for success and a commitment to doing things properly that resonates throughout the company. The diversity of the team, with employees from various parts of the world, adds to the richness of the working environment, something Mike finds particularly interesting. The opportunity to travel, both for user meetings and internal meetings, has been a new and welcome experience for him.

Design remains Mike’s true passion, and his role at Dyalog Ltd allows him to indulge in this while also delving deeper into marketing. Although he had touched on marketing aspects at Optima Systems, he now has the chance to truly engage with it and bring his creative ideas to life. Good design remains his primary focus, but branding is another area that captivates him, and he’s eager to contribute to Dyalog Ltd’s success through his expertise.

When not working, Mike enjoys spending time at a local cinema that specialises in screening older films and titles not typically found in larger venues (the last one being the 1974 film The Conversation). Alongside his wife, who is from Canada, he also enjoys exploring cathedral cities, galleries, and museums. At home, Mike is an avid computer gamer and finds joy in playing with their two new cats, Esther and Edie.

During his first year at Dyalog Ltd, Mike has been involved in several key projects. He built the website for the new APL Forge competition and is eager to continue refining and expanding its reach. He also played a significant role in the rebranding and redesign of the website for the APL Challenge. Another major project has been developing a new company website, which is work that he began while still at Optima Systems. He’s also spent considerable time refining Dyalog Ltd’s branding, and is pleased with the results so far. His work in social media has seen him create images for various platforms, and he has ambitious plans to overhaul the company’s YouTube channels, aiming for a fully optimised and visually cohesive presence.

Reflecting on his first year, Mike says, “My experiences at Dyalog Ltd so far have been exciting, challenging, and at times stressful, but never dull. I believe I’ve joined the company at a very interesting point in its history, especially with Stine recently taking over as CEO. I love the travel opportunities and how engaged everyone is in pushing forward. I feel that I add value in ways that perhaps weren’t there before, and I’m eager to lift the company in any way I can. From designing a single icon to rebranding an entire competition, I believe I can make an important and lasting mark.”.

Employee Spotlight: Abs

It has been a year since Abs joined Dyalog Ltd, and we asked him to look back over his first twelve months and his experiences so far.

“A whole year? The time has flown by! It has been an intense journey with a steep yet rewarding learning curve so far, but I can’t wait to see where it takes me.”

Abs joined Dyalog Ltd when the IT workload was at a peak due to the company’s growth. “Andy and Jason have been phenomenal in giving me the support and guidance I needed to make me feel like a part of the team. I have mainly been helping them to deal with day-to-day IT needs, such as setting up machines for new colleagues, dealing with queries and fulfilling colleagues requests, and configuring and general housekeeping of our servers and systems. This keeps me busy for a typical working day, but I have also been helping to implement some long-term plans involving Microsoft 365 that will shape the way we work, and, as Andy puts it, ‘pretty much anything else that needs to be done that no one else is able to do’! I like this description as I like to help wherever I can, even if it’s not in my area of expertise; learning about the subject and providing a solution feels super rewarding and motivating.”

Abs’ first few months were intense, as he found that there was a huge amount of information to absorb, but by committing himself and trying to become familiar with everything that IT uses to keep Dyalog Ltd going technically, Abs has become more confident in tackling issues that come his way. “I have also been making an effort to learn APL through weekly sessions with Adám. I often find myself naturally coming across APL when I work, so it’s important that I can understand the fundamentals. These sessions have been incredibly helpful in grasping the key concepts that make APL different and stand out from other languages, and it’s fun taking a deep dive into the product that we are all so passionate about.”.

When not working, Abs likes to play the guitar, travel, and enjoy the company and conversation of his friends. He stays active by playing badminton, and tries to visit the gym a few times a week.

“Overall, I have really enjoyed my first year with Dyalog Ltd. I really respect and admire my colleagues, and it fills me with pride to help fix their problems and make their lives easier (I hope!). You can tell everyone cares about the work we do and, more importantly, each other. You are treated as a person first and employee second, and that motivates me to do the best job I can.”

Employee Spotlight: Aarush

It’s been a year since Aarush joined us, and we asked him to look back over his first twelve months.

Aarush joined Dyalog Ltd after studying at VIT Vellore in India, where he received a bachelor’s degree in Computer Science and Engineering. Forgoing his college placements in pursuit of working on the nitty-gritty of programming languages, Aarush found APL. The idea that if you can do mathematics with symbols, you can program with symbols as well, was something that Aarush found “legen-wait-for-it-dary”.

Most days, Aarush is involved with testing Dyalog, focusing on testing the primitives of the language with the test suite he created – ullu. The main objectives of ullu are to test the functionality of Dyalog’s primitives and enhance code coverage to ensure that users get the best quality code possible. Currently, ullu covers 10 primitives, and he’s working on extending this to cover more (all the rest of them!). A huge achievement in Aarush’s first year has been increasing code coverage, bringing many of the 10 primitives that he’s worked on so far to almost 100% coverage. He’s very excited to work on the interpreter, and is looking forward to running some experiments to investigate the merits of a proposal that might speed up Dyalog’s memory management system.

Apart from work, Aarush likes to travel. “Flights are cool but I still think the best way to explore a place is by walk or a road trip”. If it is accessible by foot, he’s likely to suggest walking there, often underestimating the amount of time and effort it might take (much to the chagrin of his friends). When not travelling, he enjoys watching F1, making and tasting new types of coffee, and playing his guitar.

As for Dyalog Ltd’s famous duck collection, Aarush’s favorite duck in the office is not one of the ones in the ducks-only bookcase, but rather one that’s in the kitchen – it’s the scrubbing brush! He thinks this is not only adorable but also very functional as a dish scrubber.

“Dyalog is the perfect fit for me as a workplace” he says. “I always imagined myself working at a company that is passionate about what they’re making and part of a team that is very close-knit, like a family. I can’t wait to build more and learn more with all the folks at Dyalog”.

Case Conversion: Mapping and Folding

Dyalog v18.0 introduced ⎕C, which converts the case of characters in an array by mapping to lower case, mapping to upper case, or folding. This superseded an earlier experimental I-beam (819⌶) that could map to lower or upper case but not fold – this I-beam is currently deprecated and will be removed in Dyalog v20.0.

There’s often confusion about the difference between mapping and folding. Mapping is used when you want characters in an array to be in a particular case, whereas folding is used when you want to eliminate case to perform case-insensitive comparisons. The confusion arises because case insensitive comparisons can usually be done well by mapping to lower case rather than folding – indeed, on first inspection, mapping to lower case and folding appear to be the same thing.

The difference is best illustrated through some examples. Used monadically, the I-beam maps to lower case and ⎕C folds:

      819⌶'Hello'
hello
      ⎕C'Hello'
hello

A case-insensitive match function that uses 819⌶ to map both arguments to lower case before checking if they match might look like this:

      cc←≡⍥(819⌶)

In many cases it will appear to work without issues:

      'hello' cc 'HELLO'
1
      'hello' cc 'GOODBYE'
0

However, it doesn’t always work. Greek, for example, has two different lower-case sigma characters (σ and ς) but only one upper case (Σ). ίσως and ΊΣΩΣ are case-insensitively equal, but the function does not work:

      'ίσως' cc 'ΊΣΩΣ'
0

This is because when these two arrays are mapped to lower case they become ίσως and ίσωσ respectively, which do not match. If we use folding instead:

      cc←≡⍥⎕C

the comparisons work as expected:

      'hello' cc 'HELLO'
1
      'hello' cc 'GOODBYE'
0
      'ίσως' cc 'ΊΣΩΣ'
1

This works because folding converts the Greek words to ίσωσ and ίσωσ respectively – every different sigma character, even the lower-case ones, have been changed to σ, and now the two arrays match.

The main use of case conversion is to perform caseless comparisons, so you might wonder why mapping to upper and lower case is supported at all. There are still occasions where you might need that – most notably, when formatting text for display.

If you are still using 819⌶ to perform caseless comparison you should change to using ⎕C to get correct behaviour. And do not forget that 819⌶ will not be supported beyond Dyalog v19.0.

Want to learn more? Adám Brudzewsky explains mapping and folding in this webinar, beginning at 00:06:33.