TIBCO Rendezvous Publisher and Subscriber Programs - tibco

I'm looking to write a basic publisher and basic subscriber program using TIBCO Rendezvous for an assignment. However, I'm not familiar with Rendezvous and the documentation i got was mostly a long list of concepts and functions with almost no code.
I was wondering if anyone knows of any tutorials that have code samples or tutorials for writing small programs, so I can see some code and understand how this thing works.
If not I would appreciate any advice on how to actually code either of these problems using rendezvous
Thanks!

If you have installed Rendezvous then there are a number of examples in the installation directory. Look for "src/examples".

Related

I'm using SCADA-LTS and I want test MBus datasource

Is there any emulator available for MBus TCP/IP protocol.
Is somebody using this protocol in SCADA-BR or SCADA-LTS?
Please give me any suggestion how can I test this data source.
As far as I understand your question you are seeking for an alternative to buying hardware M-Bus converter. Unfortunately for what I know there is no free software M-Bus emulator available. If you serious about M-Bus you may consider getting into contact with one of many firms offering services for M-Bus customers. However if you prefer Do-It-Yourself approach and are going to write such emulator yourself take a look at libmbus library (open source C library) using of which may greatly simplify such task.

Understanding ZeroMQ

So as I have asked in a previous post, I want to be able to make programs or functions written in different languages to communicate between them.
I have come across zeromq recently and I'm trying to figure out whether or not this is something that could help me since it provides some sort of sockets. Can zeromq for example exchange data (or pass arguments) between a program written in python with a program or a function written in C++ or is its function for something completely different?
A: Oh Yes, exactly that is the power of ZeroMQ or nanomsg frameworks
Both of these are not sockets but rather BEHAVIOUR created within a context of a Zero-* -- a set of courageous maxims the Scaleable Formal Communication Pattern Framework was designed, developed and finetuned to meet.
That will enable you to assemble your own fast & smart messaging layer(s).
Q: What is the best next step?
In spite of your first impression, simly do forget anything you know about sockets and multithreaded synchronisation tricks.
Yes, rather forget and build your new understanding on "green field".
Take Pieter HINTJENS' book "Code Connected, Volume 1" (accessible in PDF ) and spend a few weeks on understanding both the motivation and the typical errors Pieter has hammered into this must-read bible of ZeroMQ.
Code-snippets are dangerous in case you did not get or completely missed the full-context of the bigger picture.
Believe me. I could not give you better advice. You may check my other posts on ZeroMQ & nanomsg, to see the difference.
You will definitely benefit from this book and ZeroMQ will give you many powers you would never ( and believe me never ) would be ready to program from scratch on your own. The power is so immense ( if well re-used ).
nota bene
For real-world inter-process communications, there is one minor issue to be aware of. Various ZeroMQ versions' inter-operability. Yes, the power of ZeroMQ is immense, nevertheless, it is necessary to keep the version control built in your messaging layer so as to solve situations, where some platforms do not have an update-path to "newer" releases available. Went into this issue with re-integration of a trading system with a component, where as old as zmq.__version__ == 2.1.11 was necessary, while recent are versions well above 14.x.y, so as to be assured to be 100% end-to-end backward-compatible.
Still, the overall potential is so immense, it makes sense to persevere and get the job done. G/L on that.
ZeroMQ is an abstraction of sockets. It is cross platform and have lots of language binding: I personally don't know any language that doesn't have ZeroMQ bindings.
So yes, you can use ZeroMQ to communicate between a program written in Python and program written in C++.
I recommend going through the zguide as it contains a lot of very useful information about ZeroMQ.
PyZMQ can be used as Python binding, and zmqpp for your C++ code. Note that for the C++ code you could also use cppzmq or the zmq C API directly. I would recommend using zmqpp as its higher level and (imho) easier to use.

Ruby serial / parallel port manipulation

I wonder if some of you are working with hardware/circuitry via serial or parallel port in ruby, not with arduino or something similar, just sending receiving pulses thru the ports to a breadboard? or if someone knows a well documented library/gem or a good blog post on the subject.
So far I've found these the blog post about 'raw' port manipulation is very cool but short.
http://blog.stevenocchipinti.com/2011/10/ruby-parallel-port-leds.html
these libraries seem nice, but don't have very good docs:
http://rubygems.org/gems/serialport
https://github.com/hparra/ruby-serialport/
I saw your link to my blog and was happy that it was described as "very cool", lol, thanks.
Not sure if it will help you any more, but I wrote a (slightly) longer post on this topic on the project's blog here:
http://tank.stevenocchipinti.com/2011/11/using-parallel-port.html
Mainly it has links to my github account with the examples that may be useful for you.
I opted for this "raw" approach because the code is actually quite simple (if you have linux) and there is less dependence on third-party gems, but I can totally understand the need for a simple library and am keen to see what you end up using.
Hope that helps, good luck!

Erlang Universal Binary Format? Anyone using it?

I recently stumbled upon this 2002 conference paper (Getting Erlang to talk to the outside world by Joe Armstrong) and I was wondering whether this is a standard that was ignored or if there was any adoption?
Should I focus on Apache Thrift for inter-platform communication? (whatever solution I choose will involve at least Erlang)
You might find the following information helpful about UBF (i.e. UBF User's Guide).
http://ubf.github.com/ubf/ubf-user-guide.en.html
This might help answer some of your questions about UBF. There is also an Erlang server and client implementation of Thrift using the UBF framework (https://github.com/ubf/ubf-thrift).
Joe N.
p.s. We have been using UBF, EBF, and JSF in a production environment for approximately ~5 years. The UBF contract checker is very helpful for developing, debugging, and deploying a system.
UBF never really caught on. Here's what Armstrong had to say in 2008. As you look into Thrift you might also look into Protocol Buffers. You can find an Erlang implementation here.
Hope this helps.
I don't know if anyone's using Erlang's binary serialization format per se, outside of Erlang programs; but BERT (Binary ERlang Term) is an Erlang-compatible binary data interchange format and RPC protocol specified and open-sourced by the GitHub guys. It's based on and fully binary-compatible with the Erlang external term format.
As you can see on the BERT website, there are implementations in a number of programming languages, including C++, JavaScript, Ruby, Python, Scala, Haskell, Go, Factor, Scheme, Clojure, and Common Lisp. The mailing list currently has 85+ members subscribed to it, so quite a few people are indeed using BERT, and hence indirectly the Erlang binary format.
In my own use, mostly in Ruby and Common Lisp applications, BERT has proved useful as essentially a binary form of S-expressions.
I think the Hibari guys are using it.
https://github.com/ubf/ubf/

BOINC: Is there an easy example how to code a programm for it and how to implement it into their client/server system?

I did a numeric method as my diploma thesis and coded it in java. It needs a lot of computational time when adequately executed. So I looked for an alternative and found BOINC. Unfortunately I didn't have time for doing my method in BOINC, because I'm an Aerospace student and not a programmer and I decided to keep my priority on my java program. Now it's finished an I still would like to port this to BOINC environment.
Unfortunately I'm learning in re-doing examples and I couldn't find any, neither on the official site http://boinc.berkeley.edu nor in the internet.
So do you know a good and easy example or do you have any experience in BOINC and would like to start a new platform for such a boinc project?
I'm realistic about my method, that it wouldn't run 24/7, because there aren't as many work units as for seti or folding projects. So I would like to have a platform for more than just my project so that another platform project can be worked on, when one part of the project does not have any work units at that moment.
But to start this, I would keep it simple and just want to know how to code it and use it in the client and server system. It doesn't matter what the example projects will work on, as long as it is simple enough, that I can understand it and extending it for my method.
Thank you in advance, Andreas! :)
PS: I know that BOINC supports JAVA as a programming language, and my method is coded in JAVA.
As far as I know, JavaApps is just an idea; I don't know if anyone actually tried it in a real BOINC project. And it's Windows-only. And it seems to be a bit of a pain to redistribute the entire JRE as part of the BOINC application (both technically and legally).
Also, I generally dislike using that kind of “wrapper” where the science app (using the BOINC API) starts another process that then does the real computation. It's usually unreliable. There are lots of things that could go wrong with the wrapper, especially related to controlling the child process (eg. if something kills the wrapper, the child process has to quit too).
However, I just found something pretty interesting that may let me do a better Java wrapper for BOINC... Stay tuned! (but don't hold your breath either; it's the holidays!)
Meanwhile, I suggest you start by reading BOINC wiki and setting up a server with a “hello world” application; and if you have any trouble, ask a specific question about your trouble either here or in the boinc_projects mailing list.
(Of course, payin’ me to install the server for you is also an option ;) but I can't guarantee anything; not even my mere availability at this time of the year)

Resources