Tuesday, April 22, 2014

Priority queue scheduling at Network level

Multi-level priority queue scheduling is one of the best scheduling algorithms found in the theory of Operating Systems design. (Even some real-world operating systems use it.)

Essentially, the job of a scheduling algorithm is to sort set of tasks in some order based on certain criteria. The criteria could be first in first out, Least costly job first out, so on...

Such criteria typically take every task as of equal priority - but what if they are not? What if there is some urgent task that need to be processed on a faster pace irrespective of when it was placed in the queue or how long it is going to take? A good example could be, multimedia processes vs printing jobs.

Thats where techniques like Multi-level priority queues come into picture. They take priority into consideration while scheduling the jobs of different priority (and follow other procedures such as FIFO, Round-robin when the jobs are of equal priority).

Now, this is all well-known in the OS design and scheduling - but what if I told you this particular priority algorithms are used in one user-level library for scheduling your network traffic? Indeed the NanoMsg library is geared towards that.

Check this out: http://250bpm.com/blog:14

Happy coding.

Gopalakrishna (GK)
http://gk.palem.in/

Tuesday, March 4, 2014

CFugue Music Programming Library in C++ by Gopalakrishna

Overview

CFugue, meaning Carnatic Fugue or the C/C++ replacement of JFugue, is a high level Music Programming Library.

CFugue makes it possible to play music notes directly from C/C++ programs, without ever having to deal with the low-level MIDI complexities. This library provides a beautiful abstraction that lets you concetrate on programming the Music rather than worry about the MIDI nuances.

CFugue has numerous features that make it possible to use it directly from many platforms, including but not limited to ASP pages, .Net applications and even non-Windows based systems.

Usage

Using CFugue to play music is as easy as writing plain music notes. Just create a Player object and call the Play method on it, supplying the Music notes to be played. Simple.

    #include "MusicNoteLib.h"
    void main()
    {
        MusicNoteLib::Player player; // Create the Player Object
        player.Play("C D E F G A B"); // Play the Music Notes on the default MIDI output port
    }
Read more at: CFugue

Gopalakrishna: M2M Telematics & Big data Predictive Analytics Consultant

Gopalakrishna, widely referred to as GK, is a Technology Management & Strategy Consultant specialized in Big data, M2M and Predictive Analytics. For more than a decade he is being actively engaged by companies like Microsoft, Oracle and Symphony on various tasks ranging from applying Machine Learning to predict component failure and machine availability, to designing RESTful Single-Sign-On (SSO) architectures for Oracle IDM Fusion Middleware, distributed CRM systems on Windows Azure for high-avaialbility, low-cost Render Farm solutions on Hadoop for high-scalability and so on.

Gopalakrishna has proven track record in various research fields ranging from Computational Automata Theory, Artificial Intelligence, Advanced Analytics, to Systems Control and Simulation & Modeling. His contributions to Open-source community created multiple innovative solutions such as CarMusTy, CFugue, PhTranslator, .Net Obfuscator so on.

Not to mention, Gopalakrishna's business strategy helped many customers build their product portflios strong and setup Center-of-Excellences. Know more...