Here is an example of an expert system for decision making coded in SWI-Prolog.

It takes a sample portfolio, a current asset price list and a risk tolerance profile it can then make decisions regrading selling financial assets based on specific strategy being applied.

These strategies are based on predefined tactics, and the tactics in turn are an application of lists of sell rules.

This an exercise in declarative logic programming, please DO NOT TAKE ANY OF THIS AS INVESTMENT ADVICE.

Currently only some sell rules, tactics and a strategy are implemented, this framework can however be easily extended to encompass a full spectrum trading decision making.

At some point in time I will also extend this post to further describe and document this code.  For now you can just head over to  paste the code in the online IDE and take it for a spin.

Continue reading

Here is some of the work that we have done in a signal processing class CSC214 I was sitting in on during spring semester 2018, held at MCC, Rochester NY and instructed by D. Venable.

I helped with some of the software development for the creation of the first iteration of this class a long while ago, now years later it has been fully revamped.

The students now take hands on approach with both the hardware and software development. Unlike previews iterations where software was built by me and the instructor who originated the class and hardware was designed and built by the instructor. The old curriculum involved them experimenting and exploring this pre-built system, while in the new curriculum students are active part in all aspects of camera development, including embedded on camera and pc client software, case and mechanics design and building, circuit board layout and population, etc. Continue reading

The Raster bar, also known as Copper bar, is a very popular graphics effect seen on many of the personal computers in the 80’s through 90’s era.

It was widely used in video games and especially graphics demos. Here is a link to the wikipedia article for more detail,

It is accomplished by changing the background color in-between scan lines being drawn on the monitor/screen. This requires  accessing the video controller hardware directly and changing appropriate registers as well as a way to time it precisely with the screen being drawn.

Continue reading

16x2 LCD Manual Drive Switches labeled

HD44780 compatible LCD displays are controlled via a built in MCU, as such driving them to display text is just a matter of sending them the appropriate commands in the control protocol. Doing that from another MCU is quite trivial, however I had seen it done with just dip switches and seemed like a good exercise in some electronics basics, so built the circuit in Tinkercad.

Here is a link: Continue reading