hcoelho.com

work

* web javascript, node, jquery, html5, css, ajax, and so on...

> Conference System in Meteor (Node.js)

A conference system made with Node.js (Meteor) and Bootstrap. Registered users can create new rooms and send instant messages. I wanted to make a simple script to practice Node.js and Meteor, and chat rooms are the perfect exercise for this.

Download: Git Hub

> MySQL-Fill

This little program helps you to maintain the compatibility between MySQL databases by comparing their structure with one specified in a JSON file: if it finds a table, column or constraint (primary key, foreign key, unique and index) that is not described in the JSON file, it gets added to the database.

This program does not perform alterations or deletions - it will only "expand" the databases, in order to avoid conflicts with current versions.

Download: Git Hub

* java

> Interactive Maps

An Applet for interactive maps (similar to Google Maps) which contains custom overlays that can be shown and hidden: recent earthquakes, airports and routes, life Expectancy, and railway network density

The recent earthquakes overlay displays recent earthquakes, as well as important cities worldwide. Clicking on a city will show only earthquakes that may affect it, while clicking on an earthquake will show only cities that may be affected by it

The airports and routes overlay: displays thousands of airports located worldwide. Clicking on an airport will show the most important routes to other airports

The life expectancy overlay shades the countries in the map with their corresponding life expectancy

The rail network density overlay uses 2 different data sources: railroad network size and country area, using this data to calculate the density. It shades the countries in the map by their corresponding density

Some of the base code was provided by: UC San Diego Intermediate Software Development MOOC team, and Adam Setters and the UC San Diego Intermediate Software Development

Download: Git Hub

> Social Circles and Friendship Suggestions

An application that uses real data from Facebook and displays users and their connections. An algorithm recommends new connections based on the social circles the user belongs to.

This program is also capable of detecting Egonets and Strongly Connected Components. It has a graphical user interface and also a command-line mode.

Download: Git Hub

> Sliding Puzzle Solver

An algorithm to solve sliding puzzles (also known as 8 Piece puzzle). It uses A* search with manhattan and hamming distances to calculate the priority of the moves.

Download: Git Hub

> Path Finder

A program that finds the shortest paths through boards/mazes. The walls are easily customizable, so the board can take any shape you want. You can also configure it to use diagonal routes or only vertical and horizontal.

It is also compatible with my Maze Generator (Java) - you MUST download the package if you intend to run the sample: download the package and place it in the same folder you put this package (both packages should be in the same folder).

The old version of this script was made in C++. This time, I rewrote it completely and made it much faster: it now uses the A* algorithm to find the shortes path, using a priority queue to find the most suitable cells to visit, and also uses a binary search tree to store the visited links.

The file MazeToBoard is optional, use it only if you intend to use the Maze Generator with this algorithm. The Main file contains some samples. The other 3 files (Board, Mark, and PathFinder) are required.

Download: Git Hub

> Maze Generator

This is a very simple program to generate mazes written in Java.

I also had the idea to use my pathSolver to find the best way through the maze, a class that converts the Maze object into a Board is available in the PathSolver repository, and one example on how to use it is available.

After downloading the package mazeGenerator, just compile both classes and run: Main contains an example on how to use the class, Maze is the class that generates the maze.

Download: Git Hub

* c++

> Maze Generator

This is a very simple program to generate mazes written in C++. To use, download Maze.cpp, Maze.h and main.cpp. After downloading the files, just compile and run.

Download: Git Hub

> Table Builder

What this program does is very simple: you feed it with arrays of strings and it outputs this data in a table. You can change its borders, the padding and even set it to show a ruler. It is also a very easy way to print text in boxes, like a title: just feed the string in the builder and it outputs the table for you. You don't need to worry about setting the width of each field, the script will adapt it so everything will fit.

Download: Git Hub

* python

> Automated Greenhouse Controller Prototype

This is a prototype for an automated greenhouse system. It uses a Raspberry Pi to control the environment of a greenhouse, aiming for the optimal conditions for plants. It activates the actuators depending on the readings from temperature, humidity, brightness and rain detectors. The actuators can also be remotely monitored and controlled.

Download: Git Hub