Wednesday - 29/6/2016

This is what I've been cooking. A eurorack style modular synthesizer.

Friday - 24/6/2016

It's been 4 years of silence!! So I better have some thing to say right?. You bet. Acctually this should have posted a year ago, but I'm so lazy. I've been researching almost silently in the area of sorting algorithms. I have come up with a modification to the very popular Quicksort algorithm, which I call "Triple State Quicksort". The new algorithm reduces the number of swaps to about two thirds (2/3) of classical Quicksort. A multitude of other improvements are implemented. Test results against the std::sort() function shows an average of 43% improvement in speed throughout various input array types. It does this by trading space for performance at the price of n/2 temporary extra spaces. The extra space is allocated automatically and efficiently in a way that reduces memory fragmentation and optimizes performance.

Details are in my paper, in Cornell University Library here:
Or you can check also my post a Microsoft forums here
You can also find the full working code of the algorithm here:

Again this a bit old news now. Currently I'm working on something totally different. I'm into DSP, something will come out soon!!

Friday - 9/3/2012

After 5 months of sound design, here is my first sound bank. Read all about it here

Wednesday - 16/11/2011

Ahh, at last some time and motive to blog some thing here. It's been more than a year since my last post. Allot of things happened. One thing, is that I became lately interested in sound design and music. Infact, I'm so interested now that I've built my own home studio at home!!. And No, I did not quit on research, or networking. Just having some fun :). So Here is a clip of what I was playing:

Ok, lets move on to the main reason I'm posting today. Sound design jargon warning here!!. During my work on audio gear and software instruments, I came across an awesome sound synthesizer called Diversion ( I've tried tons of synthesizers but this one is both excellent and easy to use. So I decided that I would create a preset sound set, and the sounds turned out to be good (thanks to the synth's sound quality). You can download the set here. It consists of 111 presets. They are all free if you want to use them. Discussion and comments from Diversion's author Dmitry Sches can also be found in this KVR thread.
Now I'm in the process of creating a much bigger comprehensive sound set for Diversion.

Friday - 18/6/2010

DiskSims 1.2 Beta released. New features include:
- SLOOK algorithm. Described in our paper: "S-LOOK: A Preemptive Disk Scheduling Algorithm for Offline and Online Environments"
- Ability to get the Average, Minimum and Maximum of multiple similation results (when using range parameters) and plot them in one chart.
- Ability to calculate Maximum waiting times.
- Variaus enhancements of Manual Request Entry, Including support for LBA (Logical Block Addressing) and easy to use time delays (t option).
- Saving custom disk types in Disk Propeties.
- Number of hard disc heads is included now with the simulation parameters.
- Many other changes and bug fixes

Wednesday - 23/12/2009

Well this is a little too late, but finally having time to log it. I've been in Ukraine two months ago attending the CSIT2009 (Computer Science and Information Technologies 2009) conference. I Presented my new paper describing "SLOOK" a new disk scheduling algorithm. Working with Dr. Hanady Abdulsalam and Dr. Ayed Salman. I've also implemented SLOOK into Disksims, so I might release a new version soon. The algorithm proved to be effective in minimizing disk head seek time. Full paper here. It's a nice country by the way!!

Friday - 22/8/2008

I've been invited to join the wonderful team. gathers a huge community of networking professionals. Offering expert advice via their forums and valuable networking information in other sections as well. Among several services, offers the "World's First Free Online Cisco Lab" using REAL cisco equipment. The site is recommended by the Cisco Networking Academy and has received several recognitions from other prestigious parties as well. So now I'm part of the team, moderating forums as S0lo !!

Monday - 14/7/2008

Added a Cisco Packet Tracer Section were you can download my labs. Packet Tracer is a Cisco network simulation tool distibuted by the Cisco Academy.

Friday - 4/1/2008

DiskSims Beta v1.1 released. New features include:

- Added Rotational latency support. The simulation is more realistic now accounting for spin time. This feature can be optionally turned ON or OFF by the defining or un-defining the RLATENCY directive in the code.
- Manual request entry supports rotational latency by allowing request block numbers to be entered in addition to cylinder numbers.
- Ability to use multiple simulator versions (builds). For example, you can compile the (schedule) simulator engine with your own modified version of the SSTF algorithm and compare the results with the original SSTF version. DiskSims displays the list of executable simulators that you can use.
- Few other minor fixes


Happy new year.


Wednesday - 12/9/2007

Hegons Beta version 0.4 released.

- Optionally, Converter nodes can now try the same chosen channel from the previous node before doing conversion. In other words, the converter node will first act as a non-converter node, if the channel fails only then it will do conversion. You can use this option simply by #defining TRY_PREV_CHANNEL directive in the code. The purpose of this feature is to try to reduce the blocking probability by trying to maintain the same wavelengths chosen along light paths. Unfortunately, it doesn't always seam to do very well. However, In later versions I might introduce a conversions counter (so you can know how many conversions are being done) and converter limits. In real networks, converter nodes might have a limit on the number of conversions that can be done simultaneously. The new feature can help in reducing the number of simultaneous conversions that are being done.


Wednesday - 18/7/2007

Release of DiskSims 1.0 Beta with source code. Added disk properties dialog box. Hard disk internal geometry can be defined more accurately. The project is now posted in sourceforge here.


I know this release may be a bit of a surprise, since I was working on Hegons and (according to my last post) I should be busy with the SPECTS conference. Unfortunately I couldn't get a vacation/funding for it :( So cancelled my visit. well, At least the paper is published.


Monday - 18/6/2007

 SPECTS 2007

A paper I have written with my friend Fadi and Dr.Sami on wireless sensor networks has been accepted to be released in SPECTS 2007 conference in San Diego. I'm looking forward to going there.  The paper named "Impact of Dynamic Channel Assignment on Blocking Probability in Ad Hoc Wireless Sensor Networks" is my first published paper. Although I don't consider it the best work I've done yet. I'm currently working on a paper on optical networks hopefully to be published soon.


Tuesday - 15/5/2007

Hegons Beta version 0.3 released.

- New node type 4, "Multi-hop Partial Grooming" nodes. As far as I know, This makes Hegons the first simulator that explicitly supports these types of nodes. A Partial Grooming node has 2 cores connected to together, a W-fabric and a G-fabric. A W-fabric is an all optical core just like a non-grooming node. a G-fabric is a wavelength converting full grooming core. Both cores can receive incoming and outgoing calls. Optionally, the W-fabric can be wavelength converting.
- A partial grooming node can have MULTIPLE G-fabrics. This is a new concept that has never been discussed in the literature.
- The RWA method chosen will be applied internally in the nodes between W and G fabrics as well as externally. In other words, the cores are treated as normal nodes when doing RWA. This has been the case also when doing internal RWA for Single-hop grooming nodes. i.e. between the cores and the grooming ports.
- Added -px and -pn options for controlling max/min number of times G-fabric switchings are done per call.
- Few other minor fixes and changes.


Monday - 11/3/2007

Hegons Beta version 0.2 released. Added -ll and -ml options for "Least Loaded Routing (LLR)" and "Most Loaded Routing (MLR)". For the grooming case, The simulator assumes the path with the least (or most) number of time slots used to be the least (or most) loaded path. However, those 2 methods are still not well defined for the grooming case in the literature.


Thursday - 1/3/2007

Just released the Linux version of Hegons. I'm mainly a windows user, so my testing of the simulator on linux is limited. Linux and Unix users are welcome to mail me for any issues.


Wednesday - 21/2/2007

HEGONS Beta version 0.1 released. A HEterogeneous Grooming Optical Network Simulator. Supporting mixed routing & wavelength assignment algorithms and optional wavelength conversions capability on each node. Unlike many other simulators, the goal in developing Hegons is NOT to simulate the OSI model layers as they are. Such simulators mimic the behavior of say TCP/IP or GMPLS in order to provide a virtual platform for developers, learners and testers. Hegons on the other hand, aims at one thing and only one thing: The evaluation of different dynamic Routing and Wavelength Assignment (RWA) algorithms in WDM optical networks in terms of several measures such as: call blocking probability, Fairness (Variance in blocking probability), call setup time, etc. Thus Hegons is not bound to any specific protocol unless it is related to RWA algorithms, which leads to a great deal of source code reduction and optimization being possible. This fact makes Hegons work much faster in producing usable results that can help researchers in the field. The following is a list of the main features:

  • Supports practically unlimited number of nodes in a network. (2 billion)

  • Supports practically unlimited number of wavelengths per link. (2 billion)

  • Typically, can simulate more than 18 million calls per minute on a 2Ghz PC.

  • Currently Supports 3 types of nodes (OXCs):

    1. Non Grooming node
    2. Single-Hop Grooming node
    3. Multi-Hop Full Grooming node

  • Each node can optionally be a wavelength converter node.

  • 4 wavelength assignments (WA) algorithms:
    1. First Fit (FF)
    2. Random (R)
    3. Most Used (MU)
    4. Least Used (LU)

  • Fixed Alternate Routing (FAR) is supported with 4 different ordering algorithms: FF, R, MU, LU

  • Shortest Path Routing (SPR) can be supported by using -mp:1 option.

  • Call arrivals follow the poisson distribution.

  • Can run multiple batches (separate simulation runs) automatically and find the average results of all batches.

  • Three different methods to calculate the blocking probability. Can be controlled by modifying the BP_METHOD compiler directive.

  • Average number of attempts for each call can be limited using the -at option.

  • Maximum and minimum path length can be controlled.

  • Maximum number of paths generated for each source to destination pair can be controlled

  • Network description can be loaded from a file or can be feeded interactively by the user.

  • Results can be saved to CSV (Comma Separated Values) files for easy batch running. CSV files can be then viewed in Excel and charts can be generated instantly.

Multi-hop Partial grooming nodes (OXCs) are planed for future versions. Least Loaded Routing is also coming soon.

Limitations and assumptions:

  • The simulator supports only single fibre links.

  • All wavelengths on all fibres can support the same maximum number of groomable time slots.

So far, the highest priority in the development of Hegons has been performance in terms of speed. I tried to optimized the code to make it run as fast a possible. Since there is always a tradeoff between speed and memory usage, Hegons can indeed consume a considerable amount of RAM. However, Hegons will not be memory hungry unless the network is really large (More than 100 nodes) with allot of links. Memory requirements grow exponentially with large networks as the simulator stores shortest paths from each source to each destination nodes.

Finally, The project is still under development. I'm always willing to hear from interested people. Your feedback is welcome.

Saturday - 11/11/2006

Just got my CCNA (Cisco Certified Network Associate) certification today. After more than 2 months of studying I managed to pass the final ICND exam after doing the INTRO exam a month ago. More info about CCNA can be found here Also, a great forum for CCNA learners is


DiskSims development is currently on pause, until I finish a currently worked on paper on optical networks. Also, I'm working on a new simulator, "Hegons" a Heterogeneous Grooming Optical Network Simulator. Ya ya ya, I know... you have no idea of what I'm talking about. Explanations are coming later on.


Sunday - 18/6/2006

Added a tutorial on how to import tracker modules into FLStudio. About 7 months ago I had some time to write this document. In case you have no idea about what I have just said, then it's not a bad idea to Google for "Trackers Mods" or visit


Sunday - 12/3/2006

Last Wednesday, DiskSims has been presented in an exhibition for graduate students projects held in Kuwait University. A number of different projects from different colleges have been presented too. The picture shows me (at the left) presenting DiskSims and our new algorithms to the minister of information Mr. Anas Al-rishaid (the man holding the paper). Click the picture to enlarge.


I had little time to prepare for the event. I just finished the poster on Tuesday. And at Wednesday morning I came in a rush to my table at the exhibition to find that all other presenters had DATA SHOWS (Projecters) while I didn't. I was never told I should. How careless am I. I called every one I new who could help, but no gain. Then the minister came and he was passing on the tables one by one. Man that was embarrassing. I was nervous. But thank god, a person I new there told me about an unused data show there. I was like pfeww... :). I rushed to connect it to my laptop before the minister approaches me. Since that moment every thing went so fine.


Allot of the people who passed by stopped and took a look. Some were asking questions. Some took our brochure. Overall, it was nice. The event was broadcast on national TV at night. Unfortunately....... errrrr or fortunately, I didn't appear.


Friday - 21/10/2005

Release of DiskSims beta version. A disk-scheduling simulator that I have been developing as my masters degree project. For people (or non researchers) who don't know what disk scheduling is all about, here is a fair brief start. Also here is a further detailed explanation (download lecture 11).


This is a skimmed beta version of the full simulator. Many features are disabled that are part of our two newly proposed scheduling algorithms (SLOOK and BO-PATH). Some other features are also still under implementation. The basic simulation and automated chart printing for common scheduling algorithms are fully working. 

The full version of DiskSims will be released as soon as we (me and Dr.Ayed Salman) publish the new two algorithms on paper. The full version will include the source code and will probably be released under the GNU General Public License. 


Wednesday - 28/9/2005

Added JUIE. A Java User Interface Editor that I have developed many years ago. Draw your user interface with your mouse and JUIE will convert it to java code. Details here.


Wednesday - 7/9/2005

Added the Puz game into the other stuff section.


Saturday - 3/9/2005

So here we go. "Solo Stuff". My stuff actually. Solo is simply my nick. Here I intend to post all my work. Every piece of code/art/music/software that I think worth posting. Still under construction though.



Web master: Ammar Muqaddas