What’s New #5

We’re back! 
Best wishes for the new year ! 

The latest version of Deep Algo is up on our showcase site. It comes with numerous improvements since the last What’s New blog post.
New home page

It’s the first thing you can find out about a project using Deep Algo: what are its most important algorithms? For example, the home page for the Poker project shows that there are 4 main algorithms. One of them is called “How to manage main?” and is in fact the entrypoint of the game, which start the whole application.

new_home_page

New algorithm diagrams

We also updated our algorithm diagrams with a new layout. Our goal was to differentiate two flows. First, the sequence of decisions and actions (conditions and activities) goes from top to bottom and reads like an English text, like a cooking recipe for example. Second, the flow of data (inputs and outputs) is shown from left to right using arrows that appear under the mouse cursor.

new_algo_diagram

That being said, we are still experimenting with this new presentation, so we won’t explain it thoroughly in this blog post.

Deep search in diagrams

It has been possible to search in diagrams for some time now, but with this new release we made the search more powerful. That is, you can now find deeply nested matching nodes. Let’s say for example that you are looking for uses of the concept of “aggressiveness” in Poker’s main algorithm. Just do a search: you’ll find that “aggression” is the name of an input that is used to create a BasicBot, and it appears three times because there are three players that are controlled by the computer.

search_for_aggressiveness

Thanks to the new release, this search result has been found in a sub-algorithm, “How to create BasicBot?”. If you scroll down that list of results, you will find other uses of aggression in the algorithm that determines which action the computer. As you can see, this new feature is a powerful tool to explore an algorithm in depth.

Handling of lambda functions

Lambda functions are often used in C# and newer versions of Java to quickly manipulate collections of data or respond to events. In Deep Algo, these anonymous functions now have an understandable English description. The following example comes from a C# project, where a list of names is scanned to find out whether it contains the input “frameworkName”.

lambda
To sum up, our goal with all these improvements is to make our diagrams more understandable and provide tools to quickly extract relevant information.

During this new year, we will keep improving our representation of algorithms, and we will move towards a more collaborative experience!