Breadth First Search (BFS) in a Graph

Breadth first search is an algorithm which searches or traverses all the vertices in a graph. It starts to traverse the graph based on a start vertex. The algorithm traverses the vertices from closest ones to farthest ones. As graphs can have cycles we should not visit any visited vertex twice. For this purpose the … Continue reading Breadth First Search (BFS) in a Graph

Gale–Shapley algorithm (Stable matching)

The algorithm we are going to explain is called Gale-Shapley algorithm after mathematical economist David Gale and Lloyd Shapley who described and analyzed in 1962. In this algorithm individuals are making choices that are all individually reasonable in order to come out with a globally acceptable solution also called stable matching. Let's clarify what stable … Continue reading Gale–Shapley algorithm (Stable matching)

Dijkstra’s Algorithm

Dijkstra's algorithm is a popular algorithm created by Edsger W. Dijkstra in 1956 to find the shortest path between two vertices in a weighted graph, where edges have weight or distance which shows the distance/weight between two vertices. The algorithm has many applications in real world like in maps finding the shortest route between two locations, … Continue reading Dijkstra’s Algorithm

Workshop: Principles, practices and professionalism in software development (in Bulgarian) This is a workshop organized by "Software University" / aka SoftUni / (Sofia, Bulgaria) which took place on 21-st of Jan, 2021. The content which I covered here is about some good practices for software developers, a time management technique, the root OOP principles, SOLID, Composition over Inheritance, Design Patterns and Software Architecture Patterns … Continue reading Workshop: Principles, practices and professionalism in software development (in Bulgarian)

Add and update values in BehaviorSubject (Angular)

BehaviorSubject example The BehaviorSubject is one of the 4 variants of RxJS Subjects ("a special type of Observable which shares a single execution path among observers"). The BehaviorSubject keeps the last emitted value from the observable object and can be returned to the subscribers. One useful usage of it is to be populated with the … Continue reading Add and update values in BehaviorSubject (Angular)

HTTP 500… with no app logs

Photo by Justin Little on Unsplash Recently I experienced a situation where one of the apps I am working on stopped working.There were no new deployments to the server, nor configuration or database-related changes. The symptoms When requesting the web site immediately receive - 500 internal server error. The problem OK, HTTP error code 500 … Continue reading HTTP 500… with no app logs