Category Archives: Computer Science

All about computer science

What Object Categories / Labels Are In COCO Dataset?

One important element of deep learning and machine learning at large is dataset. A good dataset will contribute to a model with good precision and recall. In the realm of object detection in images or motion pictures, there are some household names commonly used and referenced by researchers and practitioners. The names in the list include Pascal, ImageNet, SUN, and COCO. In this post, we will briefly discuss about COCO dataset, especially on its distinct feature and labeled objects.

tl;dr The COCO dataset labels from the original paper and the released versions in 2014 and 2017 can be viewed and downloaded from this repository. Continue reading

Xpath Basics: Introduction to XPath with an Example Java Project

xpathXPath is a W3C recommendation used to search and find parts of an XML document through a path expression. The elements or attributes that match the path expression will be returned for further processing by the invoking command, module, actor, or component.

In this post, I will explain about the basic concept of XPath via presentation slides. The presentation starts with a revisit to some of the XML key concepts. Subsequently, it shows sufficient elaboration of the basic concept of XPath. It concisely describes the key features of XPath that are worth knowing and practically useful especially when searching inside XML files.

The final part of the presentation consists of a sample project accompanied with some screenshots provided for readers to experiment with. In an upcoming post, I will show how the sample project can be converted into a Maven project for more convenient use and distribution.

You can download the slides from the following URL:

Xpath Basics (917 downloads)

Why Events Are a Bad Idea

With the always increasing needs for more responsive and better performing application, modern applications these mostly adopt concurrent computing model. In this model, a task is divided or split into multiple parts and then passed to a number of processing workers that will work on each part and then coordinate to help build the whole solution to the problem. Another case is when a stack of tasks or problems is forwarded to a number of processing workers having identical processing routine so that stack can be emptied faster. The application which applies the concurrent computing model is called concurrent application.

Two popular approaches have been widely used to address computation in a concurrent application: thread-based approach and event-based approach. Nowadays, event-based approach is a more likely to be found in the implementation of a concurrent application. Nonetheless, this does not mean that thread-based model never gains traction.

This article summarizes the paper with the same title, which offers thought-provoking argumentations on the merit of thread-based approach over event-based approach in developing a highly concurrent application. What’s interesting from the paper is not only does it provide conceptual and theoretical argumentation, it also shows some empirical results in the defense of the provoking statements.

You can download the presentation from the link below:

Why Events Are a Bad Idea (1822 downloads)

The Enterprise Service Bus: Making Service-Oriented Architecture Real

Enterprise solutions are often complex and heterogeneous. It is a perfect analogy of a system of systems. In this article, I provide a presentation delivered about Enterprise Service Bus (ESB). The presentation is based on a paper of the identical title, authored by M. T. Schmidt et al.

The presentation summarizes the key points in the paper. It highlights the definition and concept of the ESB and the common cases where it can be applied to a certain problem domain. Later it discusses several common mediation and usage patterns that can be chosen as the most proper strategy in resolving the system integration problem.

By nature, this presentation is targeted to computer science researchers. However, software or system engineers who want to get a better grasp of the ESB concept may also find the presentation and the original paper useful.

You can download the presentation from the link below:

The Enterprise Service Bus: Making Service-Oriented Architecture Real (4185 downloads)

Survey of Publish Subscribe Event Systems

This presentation contains the summary of the paper of the same title. The paper primarily discusses about existing publish subscribe systems and how each of them differs from the rest.

A computer science researcher in search of a comprehensive summary of publish-subscribe system may find the paper (and this summary) useful. Additionally, the paper can provide some conceptual information and knowledge for software engineers implementing or about to implement a event-based pubsub system.

You can download the presentation from the link below:

Survey of Publish Subsribe Event Systems (1581 downloads)