Working ANTLRworks2 on Linux - linux

I have downloaded what seems to be antlrworks2 from here http://tunnelvisionlabs.com/products/demo/antlrworks
But I cannot find how to run the resulting material.
The unpacked material consists of these directories
antlrworks2 bin etc ide java platform
and lots of sub directories with lot and lots of .jar files but I have no idea
what I need to run to get it operating.

You should run bin/antlrworks2 to launch the application.
Note that future releases of ANTLRWorks 2 (starting with release 2.2) will be distributed exclusively through the NetBeans Plugin Portal (and Update Center), which will simplify things significantly.

Related

How to ship an openfl desktop (windows) application

I created a haxe project using openfl. I can build and run the project on my own desktop using lime test windows.
Now how do I actually ship this project to other users?
I tried simply zipping the binary output created by running the command above. When I then unpack this zip on a different computer and start the executable file it will complain that I'm missing certain .dll files (more specifically the libstdc++-6.dll file).
Although this is not a direct answer to your question, a solution to this issue would be to compile through another software/tool, such as FlashDevelop.
For a few versions already, FlashDevelop includes an App manager feature that allows you to easily install the latest versions of Haxe, Lime & OpenFl (in an all-in-one package), and compile for all the Haxe/Lime/OpenFl targets seamlessly by just switching a value in a drop-down menu.
This allowed me to compile without any problems native C++ or Neko versions of my projects, thus embedding all the necessary files that could be zipped and sent to other computers.

Eclipse Workspace not recognized after clean install

I just made a clean install, as I do every year, of my linux system (ubuntu) on my notebook.
I just wanted to open-up eclipse from my (old) workspace, where all my code from the past 12 months is - but eclipse doesn't show a single package!
My assumption is that I used an older version of eclipse up until yesterday before the clean install, and that the version I installed today is newer, thereby doesn't recognize my worksapce(s!). Is this assumption correct? if so, Does anyone know how I can figure out which version of Eclipse I was using when working on the old Workspace, so that I can download that exact same version again?
The absolut worst-case scenario would be to c/p all classes and packages manually into the new eclipse, but it's over a 1000 classes - so that might be too time-consumming.
An help would be greatly appreciated, since there actually are 2 projects from work in those workspaces... ^^
Well, after Downloading Eclipse Mars, I found a solution. Although switching workspaces, or even importing the old workspaces didn't work, I found out that if I started eclipse from the old workspace, even though package explorer would stay empty, it would suffice to define a new java project with the exact same name of one of the projects inside the old workspace, for eclipse to instantly load-up the docs contents.
This not as much a solution, then a work-around... but still, fixed the problem!

Building on Windows XP, when development is on VS2012?

We're planning moving from Visual Studio 2005 to Visual Studio 2012 (Visual-C++-11).
(We would very much like to skip 2010 if we can help it, since the newer version is already there and offers a better C++ experience.)
But we've hit a little roadblock:
Our build servers still run Windows 2003r2 (all inside dedicated virtual machines), and due to messy tool support/issues, we're in no position to upgrade the build servers to a newer OS.
Developers mostly have switched to Windows7 by now, so moving the remaining Windows XP developer boxes shouldn't pose a problem.
Since VS2012 only runs on Win7 we are wondering whether we can leverage it's tools (C++ compiler, C#) and still do a full equivalent build on the W2k3 build server - after all, we don't really need a VS GUI there, just build C++ and C# projects from VS2012.
What are our options?
Will the SDK (7.1? 8?) compilers + msbuild command line get me anywhere?
In Project Property Pages, there an option "Platform Toolset" that allow you to choose compatibility of your project. So, you can work in VS2012, but built it with "VS2008 compiler"
Here is what we do:
Use CMake
CMake allows you to create build systems for your operating system. Thus we are able to use the same code within VS2005, VS2010 and Eclipse, XCode etc.
You could do something similar: Install VS2005 on your old machines and let CMake create the projects for you from the sources. On your newer machines you can use CMake to generate VS2012 Solutions (I don't know if they have 2012 support yet, because we don't use 2012 yet too).
A big pro here is: If you plan to migrate to any other IDE or even Linux you just can re-run CMake and get your source code within these environment easily compilable.
A big con: You have to start reading about CMake and create CMakeLists.txt for all your projects (might be a lot of work depending on the amount of projects, amount of source code files within each project, specific compiler options, linker options etc.)
Our build servers still run Windows 2003r2 (all inside dedicated
virtual machines), and due to messy tool support/issues, we're in no
position to upgrade the build servers to a newer OS.
Well. Not much came out of this question. We recently re-evaluated this issue, and I see two options (I haven't tried any yet):
Just do a full VS installation on a supported OS (Win7), zip up the whole VS+WinSDK directories (as well as the neccesary runtme DLLs that live somewhere under %WINDR%), and try if you can get that thing working on an XP based OS. Might work. Not a great idea if you ask me.
Split up the build process to distribute the build across several OS, so that we can work with tools that are only supported on one of them. -- This actually sounds more complicated than it'll be. We already run our build spread over several Jenkins jobs, so I should be able to get that to work. (And all build nodes are already VMs anyway, so adding more VMs isn't that much of an issue.)

Reducing size of JRE in JavaFx bundle

I created a JavaFX application, For it I bundled it As a self-contained standalone application, using a private copy of Java Runtime.
But this became my application's size of 166MB, in which 146 Mb size is for jre.
How can I reduce the size of my application or can say size of bundle Runtime JRE?
I read somewhere that some files are optional in jre, So I tried to run my application after removing those files but unable to run the application.
So how can I remove the unused files/folders/modules from the Runtime JRE for my application ?
It is said that
Only a subset of Java Runtime is included by default. Some optional
and rarely used files are excluded to reduce the package size, such as
all executables. If you need something that is not included by
default, then you need to copy it in as a post-processing step.
So by default it is not adding all the files in jre, in that case my application is not running. Application.jar is working fine as it is using system jar.
So I add all the reamaining files in post-processing step.
Thanks
Project Jigsaw appears to have some hope for helping with this.
OpenJDK: Project Jigsaw
Why project Jigsaw?
But it looks to be coming in Java 9 at the earliest.
So as far as I can understand from your post, you can't run your app with the reduced JRE size that JavaFX provides. Additionally, you tried the steps detailed here and you still can't run your app.
Many apps can run just fine with the limited number of classes available in the JavaFX packaging of the JRE. Perhaps you can examine what Java libraries you are using which cause this issue. Then you could explore alternatives to those libraries. Finally you would need to test whether those alternative libraries are larger or smaller than the space reduction provided by the reduction in the JavaFX packaging.
If you are using JavaFX ant tasks to assemble you bundle, then just define the basedir attribute as an empty string in the platform element, like in this example:
<fx:platform basedir="">
<fx:jvmarg value="-Xmx768m" />
</fx:platform>
This will package your application and its dependencies but not the JRE itself.
Unfortunately, removing unused files is not possible with Java 8.
To reduce the Application Size you can use the native OS installers.
Windows Exe Installer should have size around 50 MB and the
Mac OS X DMG Installer around 60MB.

Best approach to writing a generic installer for a Linux application?

We have a Linux server application that is comprised of a number of open-source tools as well as programs we've written ourselves. Ideally we would like to be able to install this application on any common Linux distribution.
In the past, we've written perl scripts to automate installs of this application. Unfortunately, due to idiosyncrasies of different Linux distros, the logic inside these install scripts gets horribly complex, and can change as new versions of each supported distro are released. Maintaining the installer thus becomes one of the most time-intensive parts of the project!
I'm looking for assistance, be it a framework, documentation, code samples, that can make this process less painful. Here are the types of things our installer needs to do:
Create user/group accounts
Create directory trees with specific ownership and permissions
Install open-source applications, potentially compiling them from source during install
Insert pre-compiled binaries, scripts, config files, and docs into specific directories
Register init-type startup and shutdown scripts
Generate encryption keys
Verify connectivity to a central server
Instead of the installer approach, I think a better way than having a single script that does it at install time is to have a build system which generates .deb or .rpm files suitable for installation on each system you have to support.
A poor man's way of going at that might be to use checkinstall, which creates packages from the files installed via 'make install'. So you'd build your app on each system and have the package magically created in the distro's native format.
I believe that most of the tasks which you describe are fairly standardized between Linux distros. In my experience, the following should work the Debian family (including Ubuntu) and the Red Hat family (including Fedora and CentOS):
Create user / group accounts - adduser command
Create directory trees - mkdir or install, or just expand a tarball
Install open source applications - Unless you have particularly esoteric needs, this should probably be left to the distro's package manager.
Install files - install, or just expand a tarball
Startup and shutdown scripts - install to /etc/init.d then symlink to /etc/rc*.d
VMware Server is freely available for Linux and does most of the tasks which you describe. It uses Perl and maybe shell for its installation and configuration, so you might see the approach that it takes.
However, speaking as a Linux admin, I strongly prefer applications that integrate with my package management system. In other words, create .deb and .rpm files, as Vinko Vrsalovic suggested. Building packages is extremely well documented:
Building RPMs for Fedora (or Red Hat or CentOS): draft documentation, RPM Guide
Building .debs for Debian (or Ubuntu): Debian Maintainer's Guide
I tried Autopackage a few years ago, don't know how universal it is but worked quite well (was the only truly universal way back then). Surely you have to provide some LSB-compatible ways of setting up proper directories on your own, but this piece of software should help you.
Though there's probably still too much diversity among linux distributions to do everything in a completely platform-agnostic way but I may be wrong.
You may want to try BitRock InstallBuilder. It is a cross platform installation tool that allows you to do exactly what you are looking for (adding users, installing services, install pre-compiled binaries, etc). Although some of the other posts mention a number of tools that you could use in your scripts, the problem is that every Linux distribution is a bit different and simple tasks like adding an user or installer a service are suddenly non-trivial when you need to do them across Debian, Ubuntu, Mandriva, RedHat, Gentoo, etc. A good cross platform installer should isolate you from all that. Many commercial open source companies like MySQL, SugarCRM, Zenoss, Jaspersoft, Groundwork etc. have built installers based on our technology exactly because of that (in addition to their regular source code tarballs, etc.) We also provide free licenses for open source projects.
Autopackage now merged with Listaller project. Documentation's not really thorough yet but seems to be working.

Resources