How to create a spell check enabled MySQL query by leveraging SOUNDEX and Levenshtein Distance algorithms

Recently I came across a situation where I needed to perform the MySQL search in such way, that it would account for typos in user search queries. For example, if the database of words in MySQL contained only the word “assistance” and the user typed the misspelled word “asistence”, I had to be able to return the correct word “assistance” as a closest possible suggestion from the database. It seemed like a trivial task at first, but it took me quite a while to figure the SQL query that had a good balance between performance and overal quality of results.  [Read more…]

Java for Beginners 8 – Creating a Multi-User Application

With the recent fast adoption of Internet and cloud environments, the focus of software development shifted from building single user type applications, into a realm of constructing software capable of handling numerous local or remote users. The core benefit of multi-user applications lies in their capacity to tolerate synchronized access from simultaneous users. Other advantages often include the ability to support different types of desktop and mobile devices using a variety of operating systems. [Read more…]

Java for Beginners 7 – Abstract Classes and Interfaces

The Java recognizes the limited nature of abstract classes and interfaces and their inability to become an object or a traditional class. Nevertheless, it is the absence of the qualities above and the ability to use abstract classes in various objects that proves to be incredibly useful to developers. In this article, I briefly outline the possible application of abstract classes and interfaces as well as provide examples to highlight the contrast between them.

[Read more…]