It’s post mortem time~! Finally I have enough time to describe my longest – for now – project: MPD-helper. You can get source code from repository on my github.
It is – as name suggests – helping tool for Modeling of Discrette Processes (in polish Modelowanie Procesów Dyskretnych). Purpose was to automatise solving simple, offline scheduling problems for two, or three machines. It supports:
Here are some thoughts about last refactoring step for my MPD-Helper (repo’s here, post’s here) – replacing code type with Strategy.
I’ll try to explain pattern (I’ll base on Gang of Four brilliant book), my motivation for this refactoring and (in short) implementation. Read more
An O(n) complex algorithm for solving P | pi=1, in-tree | Cmax problems.
Used to sequence jobs in parallel systems, when all jobs have processing time of 1 unit and precedence defined by in-tree. Read more
Some days ago I mentioned on twitter that I feel trapped inside infinite refactoring loop. I see various places that I’m not satisfied with in my code, and it keeps me from adding new features. Yesterday I finally added one, simple algorithm to check how refactoring simplified code structure… well… it’s not that bad. But I decided to work some more on ploter class. It have some nasty magic numbers and very messy draw function (you can see it here). Read more
Simplest possible sequencing alhorithm that utilizes good ol’ Fist-In-Fist-Out queue is used to solve one mashine problems with Cmaxcriteria for jobs with specific relase time. It’s complexity is O(N log N). Read more
When refactoring really small projects I start with pen & paper and wrote down all classes, variables and methods. Read more
One of the most basics sequencing algorithms that produce optimal sequence for Cmax criteria (maximum completion time) on Flow-shop system 2 and 3 processors without bottle neck and Proc2 dominated by 1st or 3rd. It’s complexity is O(N log N). Read more