The BIM Home Page

Welcome to the BIM open source web site. Here you will
find projects built using Java[TM] technology. I have
developed several useful products with many useful code
snippets. All of the jar files are executable self
extracting files. They will be extracted to whichever
directory the file is executed in(so I recommend placing
them in a new directory).


The Multi User Simulated Tournament Ruled Occupation(MUSTRO) 2 is a construction kit for fantasy swords and sorcery style role playing games. Right now it is in late development stages. What does this mean? The kit is compilable and is being tested. In other words there are bound to be some bugs. Using MUSTRO's creation interface many normally tedious develop and design problems are solved without having to look at or understand programming languages. The "construction" package includes creation support for characters(people), creatures(artifical intelligence), maps(including all options that a space in the virtual world may possess), items(unequippable items, weapons, armor, food), skills, and spells. MUSTRO allows you to tailor all of these things to fit your needs and after developing everything you can start up the world and begin a multiplayer adventure. Also, the "imagescan" package provides applications for creating bim.rpg.strategy.image.StratImage objects that are used for displaying images on the MUSTRO canvas. More information about BIM MUSTRO 2 can be found by clicking the link on the left side of the screen. Target Compile: JRE 1.8

BIM Database Standard Edition

This application is a personal information manager. It sports the qualities of some other very popular information managers except for two especially unique qualites; it is open source, and free of charge. To complement the open source genre of this project I have taken the liberty of marking mostly all methods and variables with guiding pointers to their usage. Some other interesting qualities for this project are its multi threaded event handler and its ability to be used as a back end for small business like scenarios(mimicing the basic sql commands, and these methods could easily be ported to sql). Target Compile: JRE 1.4

BIM Dynamic Development Environment

This project has provides for a Visual Development Environment. It allows many different components that can be added easily to the display. The display may then be converted to Java[TM] source code which is fully independent of the BIM Dynamic Development Environment architecture, or the display can be saved in BIM Dynamic Development Environment(BDDE) file format. In this format it is in scaled form so that it may be loaded at a later time on any size display which has the BIM Dynamic Development Environment. In BDDE file format it may be loaded into another application included in the package and in this package it may then be tested and/or converted into a html document. Above and beyond all that has been mentioned the BDDE file format provides a simple interface which allows for easy extension and creation of new components that may be added to the BDDE file format. These components may or may not have cycles of life(FormStage's) which is an interface that extends Runnable and provides the component with some artifical intelligence. Everything before this point is functional. However this application is not fully complete. This application is also intended to be an internet application front end which will collect information and dynamically change the front end according to the information. Also the front end can transport information to the back end for transaction server functionality(the plan is to incorporate this application with the BIM Database which provides the back end support needed). Target Compile: JRE 1.2

BIM Telnet Client

It is useful for storing aliases, triggers, patterns, and some artifical intelligence in a basic telnet interface. This client can be used for multiplay. Target Compile: JRE 1.2

BIM Telnet Client 3

Unlike its predecessor it is more light weight and isn't for multiplay. It features aliases and triggers based on wildcards instead of indices. It has a built in journal for keeping notes. It also can execute batches of commands called sequences that can be either manually entered or recorded for later execution. Target Compile: JRE 1.8

BIM Inventory Organizer

Create rectangular maps for keeping track of inventory. Maps can contain submaps for organizing inventory by location in relation to their containers. One practical example is using the inventory organizer to keep track of food in a refridgerator where maps can be created for each shelf or drawer in the refridgerator. Also, there is a search mechanism for finding items. Lastly, you can also create recipes which are based on items in your inventory and can automatically determine whether or not you have the correct inventory items to make the item formulated by the recipe. Target Compile: JRE 1.8

BIM Appointment Manager

Schedule appointments and rate entities that you meet with at the appointments. Graphical interface includes a calendar display. Daily interactions manageable by clicking on calendar days. Schedule appointments as far out in advance as desired. Load and save multiple calendars(which could be used for multiple peoples' schedules). Target Compile: JRE 1.8

BIM Calorie Tracker

Track your caloric intake by averages for each day of the week. View your averages for durations of one week, one month, or one year. Compute the amount of time it will take to burn a chosen amount of calories distributed to a number of chosen activities based on percentages of calories for each activity. Target Compile: JRE 1.8

BIM Deadlock Profiler

Profile java packages to determine where execution could result in deadlock in multi-threaded applications. Outputs threats to a txt file for debugging code. Doesn't change any of the java files automatically, all modifications to avoid deadlock must be typed in by the programmer using their text editor of choice. For more details read the enclosed readme.txt file. Target Compile: JRE 1.8

BIM Calculator

It calculates mathematical expressions expressed in terms of multiple variables expressed in terms of x. Follows the order of operations. Implements functions available to java.lang.Math which have parameters and return types of primitive double. Provides a simple graphing interface. Also, allows the user to interact with a magnifier for displaying rectangles in a magnified format in a separate window which may be useful for people with limited eye sight. Target Compile: JRE 1.8

BIM Folder Deployer

It transfers the file and folder contents of a specified folder from one socket connection to another possibly on a remote computer. The deployer is intended to be used in conjunction with BIM MUSTRO 2 for transfering the server folder on a local computer to a remote server. The maximum file size transferable is 2 giga bytes. Target Compile: JRE 1.8

BIM Task Communicator

A multi-chat window task communicator for sending and managing messages between workers in the field and managers at the base. Uses HTML5 WebSockets in the front-end and Jetty8.1.19 for receiving messages on the back-end. Target Compile: JRE 1.8

BIM Obfuscator

It obfuscates source code(java) variables and methods. It protects name integrity across packages. This is my newest project. It has a few code writing rules that must be followed in order to function properly(the rules can be found at the top of the source code file named obfuscator/ One specific that I will mention now is that the option -noverify must be used at the command prompt when executing the obfuscator. I will remove them when time allows it. Target Compile: JRE 1.2 These are some of the major projects I have donated to the open source community. I will continue to produce more code time permitting. I am Matthew Farhat and I hope you enjoy the code. My e-mail address can be found in the frame to the left. If you like the code and have any comments send me an email. If you don't like the code and have any comments send me an email. If you want a conversation on Java[TM] Technology theory, or want help with any open source projects send me an email.