Porting Mongoose Web Server to VxWorks - webserver

I need a web server in my VxWorks application to show a web page supporting RPC (ex. JSON-RPC). I think Mongoose Web Server (https://code.google.com/p/mongoose/) would be the perfect candidate for this, but it is unfortunately incompatible with VxWorks.
If I want to port it to VxWorks, where should I start? Is there anyone out there with experience with this, and if so, please point me in the right direction.
Also; if any one knows a better solution for VxWorks please let me know.
I am using Workbench 3.2, VxWorks 6.5.
Best regards,
EuxOn

Porting work starts from compiling the code and looking at compilation errors if any. VxWorks has GCC toolchain, so this command would do well to start:
gcc -c mongoose.c
Mongoose works on virtually any POSIX system, I don't expect VxWorks being an exception.

Related

SQL Server (WINCC) does not exist

I'm really in trouble having Wincc RT Professional running on my computer. It has consistently come with an error "Compilation not possible. the "WinCC" SQL instance is either not running or not available" anytime I compile it. I searched that it dues to SQL server (WINCC) is not running so I was gonna enable it in Sql server configuration manager but it didn't have such thing like that in the list of SQL Server services. How can I install it manually or make Wincc Pro run successfully? I'm using TIA Portal V14 that worked well with Wincc RT Advanced and the SIMATIC WinCC Runtime Professional has also installed formerly. Hope this description enough and clear for you. Thanks in advance.
This error has been reported a number of times on the Siemens forums. Unfortunately, it seems every time the forum users stop short of saying what they did to fix it (or they didn't fix it)...
As you may have guessed, the backbone of WinCC RT Professional is a Microsoft SQL Server database, although what flavor and version of SQL they embed in their product, I'm not sure.
Your installation has gone bad in some way. Sorry that's not a helpful description, but it's hard to tell why without further information, so here are some fault finding steps I would take.
If you haven't done so already, have a quick scan of forum to see if you can find a quick fix.
If you were never, ever able to compile with this installation, can I suggest the following as general fault-finding:
A. if a working installation on another machine is available, compare the installs as much as possible to find out what's different. You might find the compatibility tool useful for this: compatibility tool
B. If (A) is not possible, perform a fresh installation on a different machine without any other siemens software, and try to compile.
C. if (B) works, you might have a software conflict. It happens. I thought that the installers for the different flavors of WinCC check for this before installing, but I'm not sure.
Check if your SQL service is started, as shown in the picture below

Postgresql Debugger on Windows

I've seen the docs to install the debugger on linux machines. But no docs on how to install the debugger on a windows machine. Does anyone know how to do this? Looks like you have to compile the pldebugger somehow.
Thanks
Yes, you'd have to build the pldebugger extension.
Unfortunately, building PostgreSQL extensions on Windows is non-trivial: apart from the requirement of a C compiler, you have to come up with the correct compiler invocation, since the PostgreSQL extension building infrastructure does not work on Windows.
The PostgreSQL community is aware of that deficiency, but it is not easy to come up with solutions for a platform that is so different from all others.

OracleSolaris 11.2 -- toolchain to use

There is two options - SunStudio or gcc toolchain. What is the common practice to adhere when developing a driver -- make sure it builds with both compilers for 32-bit and 64-bit modes, or pick one compiler and stick to it?
Thanks.
There is no point building a 32 bit driver when you target Solaris 11.2 as this kernel is only released as 64 bit.
Both Solaris Studio and gcc can be used. The former is likely more popular for everything kernel related and you'll probably find more documentation about using it than gcc.
Until you can find someone who has used recent versions of the entire suite of tools available under both GCC with all its add-ons and Oracle's Studio toolset, you're not going to get a good answer. I'll say that I've yet to see an open-source tool that is as good as Oracle's Studio collect/analyzer tools at performance analysis of multithreaded large-scale applications, especially on Solaris. Most people who blindly post "GCC is better!" don't know the Oracle tools even exist.
Regarding device drivers, jlliagre's comment is quite relevant - it's quite possible to run into situations where a "native" compiler will work where a "foreign" one won't.
(Posting as an answer for emphasis)

Any attempts at MongoDB on AIX

I have a project for which it would be desirable to run MongoDB on AIX 6.1 on a Power 6 box. AIX is not a supported platform for MongoDB and I will have a bash at building it from source. Has anyone tried this already?
I plan to use GNU G++ 4.2 PPC and I have the latest SCons running on Python 2.6, so the build tools run.
My initial impression is that there are a lot of platform dependencies in the .h files that I have encountered. It does not look like a no-brainer by any stretch to get AIX/Power running. Any words of wisdom whether it is or is not likely to be successful?
You will have to port several things as there is some very specific x86/x86_64 assembly as part of the MongoDB sources: https://github.com/mongodb/mongo/blob/master/src/mongo/platform/atomic_intrinsics_gcc.h Just like with ARM, this is not going to be a trivial task.
See some references:
https://jira.mongodb.org/browse/SERVER-1811
https://github.com/wtfuzz/mongo-arm

Are there any USB stick runnable, no-install, cross platform software frameworks (with GUI)?

Does anyone know of a good software development framework or similar that has the following properties?
Cross platform: it should be runnable on XP, Vista, OSX and common versions of Linux (such as Ubuntu and Kubuntu).
No installation: Be able to run the software from a USB stick without having to copy anything to the host machine.
Have good GUI support (this is why this question doesn't give a suitable answer, as far as I can tell).
Permissive licensing such as LGPL or BSD or such.
Among the softer requirements are having a set of abstractions for the most common backend functionality, such as sockets, file IO, and so on (There is usually some platform specific adaptations necessary), and supporting a good language such as Python or C++, though it is usually fun to learn a new one (i.e. not perl).
I think possible candidates are Qt 4.5 or above (but IFAIK Qt software will not run on Vista without any installation(?)), some wxWidgets or maybe wxPython solution, perhaps gtkmm. The examples I have found have failed on one or another of the requirements. This does not mean that no such examples exist, it just means that I have not found any. So I was wondering if anyone out there know of any existing solutions to this?
Some clarifications;
By "framework" I mean something like Qt or gtkmm or python with a widget package.
This is about being able to run the finished product on multiple platforms, from a stick, without installation, it is not about having a portable development environment.
It is not a boot stick.
It is ok to have to build the software specifically for the different targets, if necessary.
The use case I am seeing is that you have some software that you rely on (such as project planning, administration of information, analysis tools or similar) that:
does not rely on having an internet connection being available.
is run on different host machines where it is not really ok to install anything.
is moved by a user via a physical medium (such as a USB stick).
is run on different operating systems, such as Windows, Vista, Ubuntu, OSX.
works on the same data on these different hosts (the data can be stored on the host or on the stick).
is not really restricted in how big the bundled framework is (unless it is several gigabytes, which is not really realistic).
It is also ok to have parallel installations on the stick as long as the software behaves the same and can work on the same data when run on the different targets.
A different view on the use case would be that I have five newly installed machines with Vista, XP, OSX, Ubuntu and Kubuntu respectively in front of me. I would like to, without having to install anything new on the machines, be able to run the same software from a single USB stick (meeting the above GUI requirements and so on) on each of these five machines (though, if necessary from different bundles on the stick).
Is this possible?
Edit:
I have experimented a little with a Qt app that uses some widgets and a sqlite database. It was easy to get it to work on an ubuntu dist and on osx. For windows xp and vista I had to copy QtCored4.dll, QtGuid4.dll, QtSqld4.dll and mingwm10.dll to distribution directory (this was debug code) and I copied the qsqlited4.dll to a folder named "sqldrivers" in the distribution directory.
You mention wxWidgets but dismiss it as failing at least one of the requirements.
I don't know what your requirements are and in what way wxWidgets wouldn't work for you, but IMO it does fulfill them:
Cross platform: it should be runnable on XP, Vista, OSX and common versions of Linux.
It does run on those platforms, but "common versions of Linux" isn't good enough, as you can never be sure that the necessary GUI libraries for wxGTK (which should not be linked to statically) will be installed. This is however a problem for other solutions as well, unless you plan to put everything onto the stick.
No installation: Be able to run the software from a USB stick without having to copy anything to the host machine.
See the previous point, you would need to specify which libraries are needed on Linux. Also you could specify at build time not to use some of the system-provided libraries (for example for graphics, compression, regexes) but to use the wxWidgets-internal libraries instead.
Have good GUI support
Check.
Permissive licensing such as LGPL or BSD or such.
Check. You can statically link wxWidgets into your application too.
supporting a good language such as Python or C++
Supports both, and there are bindings to other languages as well.
having a set of abstractions for the most common backend functionality, such as sockets, file IO, and so on
It does have some abstractions like that, but you can link to other cross-platform libraries as well.
We use wxWidgets for FlameRobin, a graphical administration program for the Firebird SQL server. It has active ports to Windows, Linux and Mac OS X, and has been compiled for at least some BSD variant and Solaris as well. It definitely runs from a stick on Windows, I haven't tried with Linux or Mac OS X, but I don't see why it shouldn't there too.
Java.
It has GUI support.
It provides your network/file/etc. abstractions.
It is cross-platform. Most platforms you can think of have a JRE available.
No need to install a JRE. Most users probably already have one, and if not, you can run the appropriate JRE right off the stick.
You can provide several startup scripts for various platforms to run the app under the appropriate JRE.
Something else to consider is HTML+Javascript. :D
You can look at Mono it cross platform, has GUI (GTK+, or Winforms 2.0) and I can execute code without installing.
This might not be crossplatform, but is maybe even better, it dont even use the platform : linux on a stick :-)
The subtitle is
Take your Java workspaces wherever you go on a USB key
Here with java and eclipse, but nothing stops you there of course.
http://knol.google.com/k/inderjeet-singh/installing-a-ubuntu-hardy-heron-java/1j9pj7d01g86i/2#
Well, it depends on what you mean by 'package'. Kylix came close to being such a thing. It was QT based, and it allowed you to write once and compile for Windows + Linux. However, it was not an open source solution.
I asked a similar question in this link
http://www.24hsoftware.com/DevelopersForum/CrossPlatform-C-Library.html
and the best asnswer seems to be QT.
I have started using QT, but it is not as easy as I expected mainly due to deployment problems due to the DLL hell, Winsxs hell and manifest hell.
Tclkit is a single-file, self-contained Tcl/Tk system. The mac version I have is about 3.8 megs. You can get a version for just about any modern OS. I carry around a thumb drive that has mac, windows and linux binaries so I can run my scripts on any platform. No install is required, just copy one file wherever you want.
The most recent versions of tcklit use native, themed widgets (though, on *nix there really isn't a single "native" set of widgets...)