More than one parent in the RPL protcol - iot

Does Contiki-NG support more than one parent in the RPL implementation? If yes how I can enable it?

No, there is not such support in the mainline Contiki-NG or Contiki.
But it would not be too difficult to add in terms of editing the code, and there have been a few research papers that have experimented with this. Some of them may even have implementations available.

Related

differences between classes in backtype.storm & org.apache.storm & com.twitter.heron packages

I want to write some custom schedulers for apache heron, and i'm diving a little deep into the source code. I noticed that in the heron source code there are couple of packages with similar classes. For example most of classes in backtype.storm & org.apache.storm are similar(exactly similar such that inside codes are identical). There are also some similar classes between these two packages and com.twitter.heron(for example com.twitter.heron.api.tuple.Fields) but some of them have different code inside(such as the Fields class). I know that when writing topologies we can import each package that we want and we can choose between either one of these but i'm curious about the differences between them and why they put all of these packages together. and didn't merge them? And if storm classes are the only choice for writing topologies, what are classes in com.twitter.heron package good for?
I know that heron is designed to be fully backward compatible with storm and this might be because of the backward compatibility issue, but i have to admit that this has confused me a lot, because i need to write my own code inside these classes and i don't know how to choose which one, which one is constantly developing and maintaining by developers and i should choose them as candidates to modify.
Thanks in advance.
Based on the Descriptions of the developer team in here:
Use of heron api classes is not recommended - since we might change them frequently. They are meant for internal usage only.
backtype.storm is if your application wants to use pre-storm 1.0.0. For post 1.0.0 applications, you should use org.apache.storm

Development of a FIX engine

I am new in the FIX and have requirement to develop a small FIX engine to communicate trading system. As I know there are plenty of FIX engine available but here requirement is to develop it.
Could anyone provide me the reference on any open source or any good article to start it?
For C++ use quickfix
Java use QuickfixJ
For .NET use VersaFix
To refer to Fix message constructions.
Both the libraries(Quickfix) have the same nomenclature as mentioned in the FIX protocol standards. But they are little buggy here and there, but you can rectify them in your source code. I have used both of the libraries in a commercial project and say so after seeing the libraries work. But the code is quite simple and they have an online reference manual to work with.
But developing your own library will be a big task for only one developer, if you have a team it can be much easier. Remember other than parsing you have to incorporate network communications, configuration on how to run it and threading structures also.
Developing your own FIX engine is not easy, specially if you will be dealing with FIX session level details yourself. Synchronizing sequences through ResendRequest, GapFill and SequenceReset is not easy and it would be nice if you can just use a FIX engine that is already doing that for you.
Another problem with the FIX protocol is REPEATING GROUPS. It is not easy to parse them quickly as it requires recursion or alternatively a complex iterative implementation.
Moreover, most Java FIX engines produce a lot of garbage when they are parsing the message, which increases variance and latency due to GC overhead.
Lastly, an intuitive API design is crucial to accelerate FIX development. If you want a good example of a clean API, you can check CoralFIX.
Disclaimer: I am one of the developers of CoralFIX.
You certainly want to look at QuickFix.

Is it possible to apply eXtreme Programming for interfaces (protocols, APIs or frameworks)?

If you have to make several programs should depend on an interface (protocol, API or framework), is it possible to make the interface with XP (eXtreme Programming) style?
I have to disagree with Mark Ransom. The methods and workflows you choose will of course affect the design of an application. But it's up to the developers to set up a policy how to handle interface changes, BC breaks, or how to avoid them. Also it's up to you how to apply the many faces of XP, saying you don't need to "refactor mercilessly" if it doesn't fit.
Agile methods live from their users feedback, and feedback vice versa will make a more precise product possible. Done right, your interfaces will mature in a real world. Then the interfaces completeness and stability is only limited by it's bandwidth and quantity of application. Of course you need a good catalyst that keeps you on track. Which is more likely a problem.
Also the test first approach usually results in a precise, convenient and user (programmer) oriented product. Which is in my opinion a big step towards stability.
One of the bedrock principles of XP is frequent iteration. This can be useful in terms of adding features, but it conflicts with the desire for a stable interface. An interface that is constantly changing is an interface that is constantly broken.
Just ask anybody who has had to deal with the interfaces to some popular web sites.
How certain are you about the need for a framework and about what that framework needs to support?
One of the first things an XP process might do is challenge this assumption, saying YAGNI.
If you after all do need a framework, it should emerge from refactoring, and then contain only the parts that you actually need.

Managed DirectX

This is a pretty deep topic I guess, so any url's with insight info is also gladly accepted.
I've been working a lot with native directx, never managed. On the other hand, mostly when developing other type of applications that don't have any need for advanced gpu rendering I usually stick to managed code such as C#. Starting to favor C# more and more, I've been thinking about trying out some managed directx.
So my question is if there are any remarkable cons and pros of using managed directx. Of course I'm mostly interested in potential drawbacks.
If I don't answer I probably had to go. Then I'll make sure to answer first thing tomorrow!
I look forward to hear your replies.
Jonas
Managed DirectX has been deprecated by Microsoft. You can still use it but it's probably not your best choice any more. Alternatives include XNA, SlimDX and the new managed wrappers in the Windows API Code Pack.
Another alternative to the now deprecated "Managed DirectX" is SharpDx. This has been benchmarked against XNA, SlimDX and the windows API code pack with favourable results.

Reverse-engineering of communication protocols

Just curious - what are some automatic or even semi-automatic techniques for reverse-engineering of communication protocols?
I am particularly interested in the case when one's sniffing traffic and trying to understand the protocol.
I could find a number of papers on scholar, but in my experience this is a completely manual process most of the times.
If anyone has experience in the field and feels like sharing it would be much appreciated.
Obtain some measure of control over a communication link and sniff the data. Then exercise the range of operations of the associated application to feel out how the protocol relates so you can gather general observations.
Google for the protocol. Maybe it is published. Maybe someone has already figured it out, or someone has carelessly leaked details about it.
Write a test program which replaces one end of the protocol: try eliciting responses from the other side by trial and error.
Often a protocol is a descendant of—or at least related in many ways to—another one. By seeing the specifics and having familiarity with many protocols, one can often make good educated guesses about its features and abilities.

Resources