Блог ЛЕДАС

Personal Management in Agile Style

Ноя 23, 2020 Ivan Rykov

Some people are just naturally efficient. Others (me being one of them) are in a constant search for methods and tools that would make us more productive. There have been dozens of times when I tried this or that productivity technique or time management system and each time, after days or weeks of enthusiastic usage, I found myself dropping them. (I’m not saying, though, that all of that was in vain: enthusiasm means a lot, because it helps a lot!)

I have, however, been using my current productivity tool for more than a year now, which for me is a long period of time. As a result of my experience, I’d like to share in this article some ideas that could be useful to you in maintaining a personal management ...

Read more

Our Engine-mounted Table

Окт 29, 2020 Polina Vlasova

Due to COVID-19, all of our employees at LEDAS continue to work remotely, but we decided not to waste time by being just at home. We did a minor upgrade to our office interior in anticipation of the day we return to our headquarters.

You probably know that one of the key competencies of LEDAS is a set of tools for computer-aided design, some of which you can see in our CAD Solutions list, and so we used them to decorate our entrance hall with an exclusive, glass-topped table mounted on the cylinder block of an actual Mercedes-Benz engine. You can see the result, made by Alex, in the photo.

Engines, by the way, are produced not only by Mercedes Benz but also by us at LEDAS. You ...

Read more

One hierarchy, many algorithms

Geometrical modeling projects often contain some form of central hierarchy of objects. A geometric kernel, for example, has a hierarchy of geometric entities. Another example is a geometric solver which has a hierarchy of objects and constraints. Simplified inheritance diagrams for these hierarchies are shown in the figures below.

Many routines/algorithms of other modules need to process all the entities in a hierarchy in a similar fashion, although with different implementation details. So, polymorphism naturally is used with these kinds of hierarchies.

Assuming we are talking about C++ (and this is usually the programming language of choice for algorithmic libraries in CAD), using virtual functions is the first consideration for implementing polymorphic behaviour.

However, a variety of routines applied to the entire hierarchy, ...

Read more

LEDAS Life Contest

Авг 31, 2020 Ilya Lichman

Let’s go all the way back to 1970 and to the Game of Life. Also known simply as Life, this program is based on cellular automaton and was devised by British mathematician John Horton Conway.

The rules of Life

The rules of Life are simple: The universe in which Life is played is an infinite, two-dimensional grid of square cells. Each cell has one of two possible states, on or off, filled or empty, live or dead.

Each cell interacts only with its eight neighbours. Neighbour cells are adjacent horizontally, vertically, and diagonally.

Cells stay alive when they have two or three neighbours. Live cells with fewer than two, or more than three, live neighbours die, as if by underpopulation or overpopulation. Dead cells with exactly three live ...

Read more

What Statistics Can Tell Us About SARS-CoV-2 Test Results

Antibody testing at LEDAS shows good results. What does it mean?

Июл 20, 2020 Nikolay Snytnikov

To better estimate the situation with СOVID-19 within our company LEDAS, we decided to make antibody testing available to our employees who work remotely since March. Fifty-three of our 70+ employees were interested, and so we organized out-of-lab testing thanks to Invitro’s laboratory service. Both IgM (early antibodies) and IgG (late antibodies) were examined, and the results were simple: all had zero positives for IgM, and one employee was positive for IgG.

We were able to congratulate ourselves for the zero result in early antibodies, meaning we are quite safe. But now we needed to focus on the late antibodies, as they provide more interesting information. Since we at LEDAS are now involved in more medical software projects, we considered this an opportunity to apply statistics to our ...

Read more

Fast Debug in Visual C++

Июн 22, 2020

This post was written by a LEDAS developer in his own blog, and now we repost it here. Focus on performance is the major goal in our projects, and we are going to publish more posts on this topic.

It is well-known that Debug build in Visual C++ is very slow compared to Release build, with the typical ratio about 10-20 times. Various reasons behind it are often stated, and some people even believe that it is inevitable because it is caused by lack of compiler optimizations.

If some issue happens only on a large dataset or in a real-time application, and it cannot be extracted into a smaller test case, then developer is forced to debug Release build. Which is rather painful ...

Read more

LEDAS customer map

Май 24, 2020 Alexey Ershov

The geography of the locations of our customers has changed considerably during the 20+ years of LEDAS’ history.

From looking at the map of our customers (below), you may think that we began in our home country and then expanded abroad. In fact, the reverse is true, because in its first years LEDAS mostly provided CAD and CAM software development services in Europe, namely to Dassault Systèmes from France.

In the beginning, we concentrated on developing geometric solvers and engines, a rather narrow field, yet very sensitive to quality. Over the following years, overall CAD software market was our primary focus.

In late 2000s, LEDAS Geometric Solver (LGS) was our flagship product, along with our high-quality R&D (research and development) services for CAD and PLM. Many ...

Read more

How to Hack C++ with Templates and Friends

Май 07, 2020 Andrey Karpovskii

Templates are a very powerful feature in C++, because they allow you to write generic programs that accept a data type as an extra parameter. This feature of them means that we don’t need to repeat similar code for different data types.

When templates were first introduced in C++, their capabilities were unforeseen. Since then templates have grown into a separate functional language inside of C++. This language has its own syntax, rules, and huge number of specifics, one of which I will discuss later.

How Templates Work

Each template defines a family of functions. It is, after all, a functional language. But the family does not produce any code on its own. Instead, the compiler generates code only for functions that are actually used in the program. This process ...

Read more

In these work-from-home times, we are seeing a burst of interest in LEDAS Cloud Platform (LCP) as nearly every day our team shows demos to prospective customers.

LCP is a platform on which applications are developed for online 3D modeling, and so I think that the primary reason for the record levels of interest is that companies are beginning to realize that the world and the way in which we organize it might not be the same after the pandemic ends. Businesses are asking their engineers to work from home, and this may well become the way of the future.

With remote work now a must, and because it is likely that full-scale and partial lockdowns will last for many more months, Web and cloud solutions are ...

Read more

On C++ code bloat

Апр 08, 2020
Foreword by Alexey Ershov:
After publishing my post about C++'s new standard, in which slow compilation time is highlighted as the most bothersome C++ feature, one of our developers responded with a link to his post from 2018. This post is more technically involved with the problems that code bloat have on slow compilation times. It focuses primarily on the negative effect of extensive templates, headers, and inlines on compile times, but then also provides the programming practices to overcome these problems. Read it here now.


The C++ language is known for its slow build times. This problem is not present in the world of pure C, which might give a hint that the problem is caused by some ...

Read more