Thread Pool

It is possible to receive a request, create a process or thread, service the request, and return to the caller the results of the operation. Many years ago, creating a process was the default approach. The issue was that creating and destroying a process when done are quite expensive operations. Continue reading “Thread Pool”

More than a List of Words

When indexing text based word frequency / relevance which may be applicable for web searches, one of the procedures used is to create a term frequency (tf) array followed by an inverse document frequency (idf) one. You can read more about this here.

In a previous post I experimented with some text in order to build hashmaps with the words of sentences (to keep things in perspective for a blog post). In that post I used a string that I copied from a course I took some years ago. The sting was already preprocessed. The text had already been stripped off punctuation marks. Continue reading “More than a List of Words”

Echo Server and Client

This past winter was quite long but not too cold. A few weeks ago we received a one two punch with two winter storms. After that the temperatures went up and we had a day with temperatures in the mid 80s. In the past week the temperatures were down. Last night we were in the lower 40s. We turned off the central heating system at home for the season. We have already been using the air conditioner for a few days. This morning the inside temperature upstairs was 66 F. My home office is downstairs. The temperature has been at a solid 60 F so far. My wife and I are planning on going for a walk in a couple hours. Continue reading “Echo Server and Client”

Running MySQL on Windows 10

In my previous post I mentioned that I was going to be spending some time experimenting with MongoDB. So why would I be dealing with MySQL at this time? Good question! The reason for it is that I want to store, among different things, Java objects in MongoDB. I am interested in comparing how the same Java object may be stored and retrieved using a SQL and a NoSQL databases. I could have used a different SQL database (e.g., SQL Server), but decided on MySQL. It happens that I have a few databases installed on my Windows 10 computer. With that out of the way; let’s experiment with MySQL. Continue reading “Running MySQL on Windows 10”

Cavity Map

Based on an email message from HackerRank I decided to accept the Cavity Map challenge. The description for the challenge may be found using the following URL:  https://www.hackerrank.com/challenges/cavity-map?utm_campaign=challenge-recommendation&utm_medium=email&utm_source=3-day-campaign

As usual, if interested please read the description and give it a try.

The Need Help link on the page discusses string basics. In this case I did not find the help of use. Continue reading “Cavity Map”

Java Native Interface (JNI)

In today’s world most systems are architected as a set of services implemented in different programming languages deployed on multiple hardware platforms. Often it is required for a piece of software written in a different programming language than the module it needs to interface with. I have been in situations when modules written in C# or Java had the need to interface with code written using the C programming language (typically for performance, separations of concern reasons or to allow the Java program access functionality written in a different language). Continue reading “Java Native Interface (JNI)”

Bag Algorithm

bag_queue_stackHave to admit it, after a few (will not say how many) years studying Computer Science, architecting and developing systems in multiple programming languages and platforms I had missed the Bag algorithm :o( Gladly I am spending time reading and performing several (do not have time to work on all) exercises and examples in the Algorithms fourth edition book by Robert Sedgewick and Kevin Wayne.

The Bag algorithm is used to implement an object that stores in no particular order items added to it. There is an Application Programming Interface (API) to get the size of the bag and to determine if it is empty. If an Iterator is implemented, then a client is able to iterate in no particular order through the items in a bag. Continue reading “Bag Algorithm”

Static versus Dynamic Polymorhism

spring-by-pivotalAs I have mentioned on different blog entries, I always try to read books, watch videos, take courses and experiment with technologies that I will be using in a project. For example, I have been developing software using the C and C++ programming languages for a long time. That said, I have read a couple dozen books on the subjects. It amazes me that every time I learn something new or question a way I view some concept. In this case I am starting a project using the Spring Framework. The first version was written by Rod Johnson, who released the framework with the publication of his book Expert One-on-One J2EE Design and Development in October 2002. A lot has changed in the past 14 years including new enhancements and tools. Continue reading “Static versus Dynamic Polymorhism”