Jrobin vs rrd4j - rrdtool

I have to use any of java implementation of rrd.
I have been going through rrd4j and jrobin but not sure sure which one to use.
So can anyone let me know the difference between rrd4j and jrobin?
--
Mini

They're both very close and share a common code base. rrd4j forked a few years ago. The main difference is the license : Apache for rrd4j vs LGPL for jrobin.
There is a few performance improvement in rrd4j: a more scalable pool, a more efficient file format for rrd.

Related

c++ source code on linux server and windows client? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
This may be a really dumb question, but I hope to be able to clearly express myself.
My daughter has a multi-player game source code. For years, she's used Visual C++ to compile the game for Windows. There is a server exe file and a client exe file, which works well if using a Windows server.
What I want to know is, is it possible to compile the server file to use on a linux server and keep the client exe files for windows? Or would there be a compatibility issue?
Thank you.
What I want to know is, is it possible to compile the server file to
use on a linux server and keep the client exe files for windows?
Yes, it's possible. In fact this sort of thing is done all the time. I do it for a living. In order to accomplish this, you must do two things:
Write the code in the first place using only Standard-compliant idioms, syntax and functions. This can also be accomplished by using 3rd party libraries that are compatible with both Windows and Linux, such as Boost.
Compile the code on the target hardware.
Step 2 is arguably the easiest. All you need is access to a linux machine with a linux compiler, such as g++, and let 'er rip. You'll need to set up your own makefiles and such in most cases. Usually a tool such as CMake is used to accomplish this.
Step 1 is much harder. Code that is legitimately compilable on multiple platforms (such as Windows & Linux) is called "portable." Writing portable code is easy enough if you are focused on doing this from the outset. Retrofitting portability, on the other hand, can be a gargantuan task. Many projects are abandoned completely because of this hurdle. If your daughter hasn't been writing portable code from the start, there's a very good chance that making it portable is a near-impossibility.
I'm not trying to dissuade you from the attempt. In fact I'd encourage you to take it on. In my experience, making a platform-specific piece of software portable is one of the harder things for a programmer to do correctly, but even if the project is ultimately a failure the effort reaps its own rewards by making them a better programmer. In order to write portable code one needs to have a fairly solid grasp on the language at a brass-tacks level. Programmers who can write portable code are very often (not always) more skilled than their platform-specific counterparts.
As far as compatibility issues are concerned, the only real 'gotcha' that comes to mind is endianness. Especially in a client/server type system, you'll need to tacke this sooner rather than later.
Hard to say, C++ compilers are hardware specific (as opposed to Java), Your best bet is to try and just compile it on a linux distro C++ editor. See what errors you get and troubleshoot from there...
Good Luck
It depends. I doubt you will be able to port that Windows code directly to Linux and just recompile. The IPC (Inter-process communication) between the server and client is likely written using Windows procedures and would have to be changed for Linux. I'm fairly certain they use different calls for different platforms.
Of course, if you have the source you can make these changes yourself but it will likely require some debugging.
Info on Linux sockets: http://www.linuxhowtos.org/C_C++/socket.htm
Info on Windows sockets: http://msdn.microsoft.com/en-us/library/windows/desktop/ms740673(v=vs.85).aspx
There are several approaches you might take. Each has a unique set of tradeoffs and benefits.
Rewrite the code to compile on Linux using native services. Difficulty +++, benefits +++
Rewrite the code to use a platform-independent library which provides needed services. Difficulty ++, benefits +++
Run the .exe code in a Linux-hosted virtual machine running Windows. Not difficult, benefits ++
Run the .exe on Linux using Wine a compatibility layer which translates Windows calls into Linux equivalents. For many properly written Windows programs, this works quite well. Not difficult, benefits ++
Each of these requires some degree of education either for learning a new programming environment or determining proper configuration and changes in operability. There are plenty of free forums for support for all.

Is threadpools okay for production? If not, is there any alternative libraries?

I am porting some Java code to C++ and wanted to find something that worked like Java's ThreadPoolExecutor. I saw a few posts suggesting threadpool but after reading a few other forums I have read about problems(memory leaks, etc..) and browsing the code base I see the last update was over 3 years ago. So my problem is, I'm not quite up to speed to make my own thread-pool library but I don't want to use something that is not actively maintained.
Upon looking around there's a few threadpool projects but they don't seem heavily used(I'm basing it on how family favorites/watches on github/code.google). I was wondering what other people are using for threadpools in production environments? I'm looking for 2 types of thread-pools, one fixed and one that grows dynamically.
Which platform ? If windows and can use ppl using Visual C++ compiler, then take
a look at task_group and make_task methods to create tasks. Intel TBB is
another option.
If you can use boost, then boost concurrent programming APIs
can be useful.

XML parsing in C++ [duplicate]

This question already has answers here:
What XML parser should I use in C++? [closed]
(6 answers)
Closed 3 years ago.
What's the best API I can use to do some simple XML read/writing? I'm using Visual Studios. Is there a standard one that I can use in the STD library? The sofwtare that I need it for maybe sold and can't be open source, so it will have to have a flexible license for commercial use.
EDIT: I am NOT using this for any SOAP, protocol or data-binding stuff, Im just using this to store information, as almost an alternative to a database (because in this instance it would be more efficient).
I love pugixml. It's fast, light weight, incredibly easy to use and embed in projects (I've used it in several at work, it's only ~3 files), and best of all, supports XPath 1.0 (which is awesome).
Edit: No, there isn't one in the standard library.
Edit Edit: About pugixml's license: it is distributed under the MIT license, which is about as permissive as you can get.
As far as I know, there's no standard library to read XML.
I found TinyXML a handy library. There's now a TinyXML 2 which I've not used.
I would recommand GSOAP. I know companies that use this in products they sell so licensing should not be an issue. It has features such as schema validation etc...
Microsoft offers an XML library called XmlLite.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms752838%28v=vs.85%29.aspx

Recommendations for a Boost::ASIO based CORBA library

I'm looking for a CORBA kit. I need the IDL compiler plus libraries (or source) for the ORB. I don't really know a helluva lot more about CORBA, but we need to interface with a server whose functions are exposed via CORBA.
The requirements I've been given, in rough order of priority are:
1 - Low cost or license amenable to commercial (closed source) use.
2 - Performance performance performance - is there a Boost::ASIO based ORB?
3 - Simple to integrate for at least Windows and Linux development.
We measure our software's performance in microseconds, so I need to be sure that the underlying network latency has been kept to an absolute minimum, but also, personally, I don't want to wrestle with a half-finished or half-working project and I don't want integrating this stuff to become the whole project. Essentially I need to get this API built and be calling remote functions with as little fuss as possible. That might just be wishful thinking, but it's worth mentioning.
So, has anyone out there had RECENT experience integrating CORBA into modern desktop application project? What would you recommend to use, and what should I beware of?
I'm currently using omniorb for an embedded software in the telecommunication field.
As for your questions:
It is free even for commercial use. It comes with a LGPL license
I haven't mesured performances, but I've got good results in an embedded real-time project. (About your question on boost::asio: I'm pretty sure that an ORB based on boost::asio doesn't exist)
It's been tested on many platforms, including linux and windows.
Maybe you could give a try to omniorb. Otherwise you could try TAO: it's a real-time ORB, but I never used it.
As far as I know there is no ORB that is bui;d on top of boost::asio. I would recommend you to have a look at TAO or TAOX11 which is a modern CORBA implementation. There is a free CORBA Programmers Guide with some starter information by Remedy IT, or the OCI Developers Guide.

How can I build an application like Thunderbird? Which language should I select? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I don't want to build the Thunderbird functionality. I just want to build a project with plug-in features, cross platform, and easy to install. Is there any document which point to the development of Firefox or Thunderbird?
I know the Thunderbird is build in C++, then how can i get these kind of graphics and all other function.
Please help me.
In the spirit of other answers, I feel obliged to point out that Mozilla provides the platform they used to build their applications, including Firefox and Thunderbird, -- see XULRunner.
With XULRunner you
develop interfaces in XUL (cross-platform UI description language that Firefox and Thunderbird use) or even HTML,
develop program logic in JavaScript or, if you really need to, C++ (or even Python, like Komodo does),
have support for the same extension mechanism as used Firefox/Thunderbird
Here's a partial list of applications built on top of XULRunner: XULRunner Hall of Fame.
To answer your original question, the Mozilla platform provides rich functionality on many platforms by specifying a set of cross-platform APIs (e.g. (oversimplifying) XUL for interface definitions) and implementing each API on each platform.
Implementing such a cross-platform layer from scratch is lots of work, so instead of trying to look at and copy Thunderbird's implementation, you should pick one of the cross-platform solutions mentioned in the answers here (Mozilla, Eclipse, QT, wxWidgets, etc.)
Each has its strengths and weaknesses, without knowing your current expertise and requirements it's not possible to pick one for you.
You can browse the source code of Firefox here:
http://mxr.mozilla.org/firefox/source/.
And Thunderbird:
http://mxr.mozilla.org/seamonkey/source/.
Anyway if you want to build a portable app with plug-ins I suggest you forget about trying to copy Mozilla and learn Qt or wxWidgets instead.
Eclipse RCP can be a good solution to build rich cross-platform client applications with plug-in features.
Eclipse RCP is based on Java and SWT technologies.
Here is a list of applications build with Eclipse RCP. A demo mail client build with RCP is also available here. Another great software build with RCP is RSSOwl, a feed reader.
While selecting a language/platform for development, I think the following points are to be thought of:
Development support for the features looking for.
Maintainability - in terms of the support of the platform/language, how much it is supported for maintenance.
Compatibility with the platforms of intention (cross platform etc.)
Future expandability of the language/platform
C++ is simply a great language. The rest (making use of rich graphics etc.) is to learn...
Lots of options and others have already suggested good ideas. Java will make your life (reasonably) easy but C/C++ give you more power at the expense of needing to abstract APIs.
I should add be careful - it'll likely be difficult to make changes to your app once you have committed to one set of technologies and done some serious development without re-writing. For example, if you chose C and the Apache Portable Runtime, you might have a hard time converting to something else. Likewise if you write a UI in swing, converting to SWT/Eclipse will mean a UI rewrite. I don't want to discourage you, just add a warning that I think x-platform apps require quite careful planning.
A few notes r.e. the Mozilla tree too. Thunderbird/Firefox etc essentially build from the same source tree, just using different components. The Mozilla build system is pretty complicated, in my opinion more so than the Linux Kernel. Thus, Manuel's suggestion about forgetting Mozilla is a good one unless there's something to be gained by their route.
Mozilla's category manager makes it very easy to add plugin support to your application, but like other posters said, you'll have a fair hill to climb before you get there.