Java Dequeue

It is a relatively warm day in the Twin Cities of Minneapolis and St. Paul. My son tweeted an hour or so ago that the temperature by his place was 46F. Not a day to wear swim trunks and T-shirts but a very welcomed change.

I was going to clean up the code for this post but I have a Docker webinar to watch soon.

The subject for this post is the Java Dequeue (https://www.hackerrank.com/challenges/java-dequeue/problem) challenge from HackerRank. It is a mix of double ended (doubly linked) queue and hash map. Continue reading “Java Dequeue”

Java Interfaces

Beautiful sunny day in the Twin Cities of Minneapolis and St. Paul, not that matters because I am working indoors in my home office, and it does not have an outside window.

Last week I was talking with a software engineers and the topic of interfaces came up. An interface is a contract stating that we define a list of methods in the interface and any class that uses the interface must define and implement the methods listed in the interface definition at a minimum. Additional methods may be included if necessary. Continue reading “Java Interfaces”

RabbitMQ – Work Queues

In this post we will experiment with a work queue using the RabbitMQ middleware software on a Windows 10 machine. After we cover the basics, we will integrate RabbitMQ with Docker and a group of microservices. It is extremely important to read and experiment until all the concepts are clearly understood.

With that said, let’s talk about work queues. In this example we will create a Work Queue that will be used to distribute time-consuming tasks among multiple workers. I have been experimenting with one, two and three worker threads. Continue reading “RabbitMQ – Work Queues”

RabbitMQ – Hello World

Good morning. In this post we will explore RabbitMQ by Pivotal. RabbitMQ is a message broker. Message brokers are considered middleware. Applications subscribe to a queue to send and receive messages. Another queue broker I have used in products is MSMQ from Microsoft. In this post we will only experiment with RabbitMQ. You may decide to use message queues to communicate between microservices. Continue reading “RabbitMQ – Hello World”

Making Anagrams

I received a practice message from Hacker Rank. I like the idea to be reminded to spend some time practicing to solve a problem that is completely apart from the things I do at work or are in my learning schedule. The topic of the challenge is anagrams. You can find the description here.

After reading the description a couple times, it seems that the task is to remove characters from the two strings until we end up with two anagrams. In the example we end up with “a” as a string. Not much of an anagram. The goal is to return the number of characters removed from both strings. Continue reading “Making Anagrams”

HackerRank in a String

Good morning. It is a cold morning in the Twin Cities of Minneapolis and St. Paul. When I got up around 04:00 AM the temperature was around -1F. I believe it will rise during the day.

My wife left with our neighbor shopping. They should be back around noon. We are planning on making some ravioli from scratch. On workdays my wife cooks, but on weekends we both do. Have some red wine from last week which we did not finish. It should be a nice and cozy lunch. Continue reading “HackerRank in a String”

Distance Between Nodes in a BST

I was looking at several articles on binary trees and thought it would be a good opportunity to write some Java code in order to refresh knowledge of binary trees, in particular with BSTs (Binary Search Trees). You never know what new things are out there.

I am not sure if most system architects and software developers run into the same situation as I do. I have learned and worked with many data structures and programming languages. I do not work with every single data structure often enough that I recall how to implement or use it as far as all the associated methods and functions. I have a reasonable understanding of most data structures and I can get back on the horse rather quickly. Continue reading “Distance Between Nodes in a BST”

Graphs – Shortest Distance Paths

The motivation for this post is the Coursera class “Graph Analytics for Big Data” by the University of California San Diego I am currently taking. One of the algorithms that we briefly touched was shortest path between two nodes by Edsger Dijkstra.

The algorithm comes in different flavors. One can compute the shortest path between two nodes, the shortest paths between all nodes, among others. In this case I just went with the first approach. Continue reading “Graphs – Shortest Distance Paths”