Java Parallel Programming Part 1: Introduction

The first question you have is probably: What is parallel programming and why? Parallel programming or computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved at the same time. In short, its main aims are to:

  • Increase speed
  • Process huge amount of data
  • Solve problems in real time
  • Solve problems in due time

Why now? Continue reading Java Parallel Programming Part 1: Introduction

Home Compute Cluster Revamp – Part 1

Introduction

High Performance Computing or HPC refers to the practice of aggregating computing power in a way that delivers much higher performance than one could get out of a single machine in order to solve large problems in science, engineering, or business. In the past, it was quite costly to build a HPC cluster. But with the ever diminishing cost of hardware, I built one some months ago for experimentation. It is now due for a revamp. But before I describe the revamp details, here is a recap on the existing HPC cluster which I shall refer to as my home Compute Cluster. Continue reading Home Compute Cluster Revamp – Part 1

Defending Hacking Attacks on My Home Server

After putting my home server online running my blog and other applications accessible from the Internet, I left it unattended for a few days and then I found that I couldn’t access my blog from the Internet any more. It has been attacked by hackers using Denial-of-service attacks. Hackers created a large number of half-open TCP connections to the server and established connections to the Apache Web Server. The latter caused the Apache Web Server’s Prefork Multi-Processing Module (MPM) to spawn the maximum number of Processes allowed. This combination brought the server performance to a stand-still. The DMZ I created appears to be holding up as I did not find any evidence on hackers breaking through my second firewall. Continue reading Defending Hacking Attacks on My Home Server

Building a JBoss BPMS Web Application using jBPM Form API

(This article assumes some basic knowledge of the JBoss BPM Suite including using Business Central.)

JBoss BPMS forms are generated and customised by business analysts when they create business processes. The forms are usually used for kicking off a business process instance and interacting with the user when the process reaches a user task eg, for a manager to manually approve a loan. Few customers use the forms on the BPMS Execution Servers. They prefer to build a web application that interacts with a business process remotely running on a BPMS Execution Server to gain fine-grained access control, consistent look-and-feel and better client interaction. The main issue is how to use the forms generated on the BPMS server from the web application. There was no easy way to do that until the recent release of JBoss BPMS 6.1. Continue reading Building a JBoss BPMS Web Application using jBPM Form API

Using Odroid XU4 CloudShell as My Home Server

For those who are not familiar with Odroid XU4 and CloudShell, Odroid XU4 is an ARM-based Octa core single board computer based on the Samsung Exynos5422 2Ghz Cortex A15 and Cortex A7 cores with 2 Gbytes of memory. CloudShell is a compact case for Odroid XU4 with a 2.2 inch TFT LCD and a USB 3 to SATA bridge for connection to a 2.5 inch SATA hard disk. The assembled CloudShell is shown in the diagram below.

The ARM big.LITTLE technology is ideal for a home server in that when the cpu load is low, it uses the power efficient A7 core(s) and when the load is high, it switches to use the high performance A15 core(s). It may use 1 core, more than 1 core or all cores at the same time depending on the load. This means energy saving in the long run.

This article is not an Odroid XU4 review. For that you can read this in-depth review here. This article describes my experience in using this wonderful little device. Continue reading Using Odroid XU4 CloudShell as My Home Server

Robot Programming using JBoss BRMS

One of my hobbies is building robots. After programming several robots, I say to myself: there’s got to be a better way of doing this. You program the behaviour of a robot using a micro-controller. Every time you want to make a change, you have to re-flash the on-board non-volatile flash memory. If you compare this practice with enterprise applications, it is similar to that of many older enterprise applications which embed business logic in code. The solution is to move the embedded business logic (in our case, the robot behaviours programmed on micro-controller) out to be managed and executed by a business rules engine. This is exactly what I did. And I call my robot CepBot. Continue reading Robot Programming using JBoss BRMS

Building a JBoss BPMS Rules Application without Writing Code

This article assumes some basic knowledge of the JBoss BPM Suite including using Business Central.

JBoss BPM Suite (BPMS) and JBoss Business Rule Management System (BRMS) 6.1 introduced a new component called the Real-time Decision Server (RTDS). Rule projects built using BPMS can be deployed directly onto the Real-time Decision Server via Business Central. Applications can instantiate and execute rules on the RTDS using either a REST or JMS interface.

In this article, I am going to show you how you can build a rule-based application without writing even a single line of Java code. The application aims to rate locations for placement of mobile speed cameras. It is an example application I made up and is not being used by any Police Departments. My simplified speed camera placement rating criteria are based on: Continue reading Building a JBoss BPMS Rules Application without Writing Code

Secure Your Home Network by Creating a DMZ

I recently purchased a useful gadget called CloudShell to house my ARM-based big.LITTLE octa core processor board called Odroid XU4 and a SATA 2.5 inch hard disk. My plan is to use it as a home server to expose services that can be accessed from the Internet. But before I open up the firewall to allow access to this server from the Internet, I want to make sure proper security is in place. The major requirement is that even if this server has been compromised, intruders cannot make use of this server to access my other home computers, tablets, mobile phones and file servers on the home network.

Continue reading Secure Your Home Network by Creating a DMZ

Build a Programmable Hexapod for Around 40 Dollars

Front View of the Hexpod
Front View of the Hexpod

I modified a toy hexapod crawler kit using the Texas Instruments MSP430 LaunchPad as the microcontroller for fun. A SR-04 Ultrasonic distance sensor has been added to the existing whiskers for enhanced navigation. The MSP430 is programmed using the Energia IDE, like the Arduino, based on the Wiring Framework. As a result, one can easily migrate existing Arduino sketches to run on the MSP430 or add new capabilities and behaviours to the robot using the familiar Arduino-like development environment. At present, the hexapod can either wander around using SR-04 and whisker navigation or follow the wall.

Continue reading Build a Programmable Hexapod for Around 40 Dollars