This is one of the "Tiny tips" series.The purpose is to share little pieces of helpful practices and tricks that will make your work better and more pleasant.Take a look at the other tiny tips like Automate your environment, Use cheat sheets. Most of the time when I am merging from another branch I don't want all … Continue reading Tiny tips: Git merge without commit
The Frog, The Broken Window, And The Resistance
The Adaptivity There is a famous phrase from Albert Einstein which says that in this world survive not the strongest individuals, even not the smartest ones but those who are the most adaptive.And that is definitely true for most situations in life. Seriously, look at the cockroaches. They're so adaptive creatures and they can survive … Continue reading The Frog, The Broken Window, And The Resistance
Sheet music creation with JavaScript
I did this as part of my Master's Degree thesis. It is a pretty old and clumsy implementation (I admit it) and I should revise and re-write it with some modern JS framework, following the good practices and principles, etc. Nevertheless, my idea was to create a unified platform for every musician, where he/she can … Continue reading Sheet music creation with JavaScript
Strategy Factory
We have all heard about design patterns like factory pattern and strategy pattern and design principles like SOLID. If we are asked what is open closed principle we would immediately answer that it is a module, class or functionality in our software which is closed for modifications but open for extensions. However we often struggle … Continue reading Strategy Factory
Depth First Search (DFS) in a Graph
Depth 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 in depth. As graphs can have cycles we should not visit any visited vertex twice. For this purpose the algorithm must know if … Continue reading Depth First Search (DFS) in a Graph
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
Recursive SQL queries
Recursion Recursion is the technique in which a function calls itself from within its own body.You can find out more about what is recursion and see some examples in various programming languages, a good resource is this one. Common Table Expression It is possible to achieve a recursion within a SQL query.This is possible with … Continue reading Recursive SQL queries
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)
Heap Sort
We explained heap and priority queue in one of our previous posts which you can check here. We will describe how heap sort algorithm works based on what we have learned about heap data structure. If you remember heap data structure is a complete binary tree which satisfies the heap properties of min or max … Continue reading Heap Sort
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