Saturday, March 23, 2013

Closure IDE - Eclipse toolkit for Google Closure Tools

The DigiArea team is pleased to announce the first release of the Closure IDE - Eclipse toolkit for Google Closure Tools.

The IDE includes powerful tools to edit and compile Soy Templates, work with Closure Compiler and Closure Stylesheets, manage web projects which use Google Closure Tools.

You can read more about the tool here:
http://digi-area.com/ClosureIDE/

Wednesday, March 6, 2013

Maple IDE Testers Wanted

Maple IDE team is launching a Tester Program that will allow us to incorporate more input in the product design and development process.

We are looking for regular testers for Maple IDE. Your testing complements our in-team testing of new software versions. By enlisting a diverse group of beta testers, we can see how the software performs when it's being used for normal, ordinary tasks. This lets us provide a more stable Maple IDE with better user experience. As a member of the program you will receive the latest version of the tool.

If you would like to participate in the Maple IDE testing, please send us an email at info@digi-area.com and we will provide you with the information needed to get started.

Sunday, February 24, 2013

Maple IDE Trials and Updates Now Available

For those of you who have been waiting to try the Maple IDE, today’s your lucky day. Updated Maple IDE became available for purchase through the DigiArea website, and you can now download a 30-day free trial of the tool just to play around with the amazing features for Maple programming.

It’s now available for download at the Maple IDE Licenses page!

Today we released Maple IDE update version for Eclipse, Unix, Mac and Windows users, resolving the following bugs:

  • empty icons in Project Explorer and other Eclipse views
  • lost Maple IDE update site
  • performance optimizations and common user guide fixes

To get the update, from within Maple IDE choose Help > Check for Updates, causing the Update Manager to launch. Select Maple IDE and choose Update.

Wednesday, December 5, 2012

Projects Integration (C/C++, Java, Fortran)

This tutorial shows how to setup a dual-language project such as Maple/Java or Maple/C in Maple IDE. In the end of the article you can find some links for further reading.

Maple Connectivity

The integration of Maple projects with other Eclipse projects is designed for seamless development and building processes of your C, Fortran, or Java code for Maple using External Calling package.

Maple Project can be mixed with Eclipse JDT - Java Project, Eclipse CDT - C/C++ Project and Eclipse PTP - Fortran Project. In the tutorial we use Maple with Java language.

External Calling of Java code

In this tutorial we develop a Java/Maple project consisting of:

  • A Java class, GeometryUtils, with methods circleArea() and rectangleArea(). The class calculates area for the shapes (circle, rectangle). In the tutorial we use super simple Java class to concentrate on the subject.
  • A Maple module, GeometryModule, with public variables circleArea and rectangleArea which call corresponding Java methods directly from the compiled Java class GeometryUtils using define_external Maple command.
  1. Create mapleide.extcall.java Java project and GeometryUtils Java class.


    GeometryUtils is a simple Java class that uses java.lang.Math class.
    package mapleide.extcall.java;
    public class MathUtil {
    public static double circleArea(double radius) {
    return Math.PI * Math.pow(radius, 2);
    }

    public static double rectangleArea(double a, double b) {
    return a * b;
    }
    }
  2. From the project's pop-up menu (right-click), select Maple > Add Maple Nature.

    The project becomes a dual Maple Project (Maple/Java) with the default Libname/Build Path.

  3. Create a new Maple source folder named modules and add GeometryModule Maple file with the following module:
    GeometryModule := module()
    export circleArea, rectangleArea
    description "Maple External Call - Java - Geometry Module"
    circleArea := define_external('circleArea', CLASS = "mapleide.extcall.java.GeometryUtil", CLASSPATH = "D:/workspaces/runtime-EclipseApplication/mapleide.extcall.java/bin", JAVA, radius::float[8], RETURN::float[8]); 

    rectangleArea := define_external('rectangleArea ', CLASS "mapleide.extcall.java.GeometryUtil"CLASSPATH "D:/workspaces/runtime-EclipseApplication/mapleide.extcall.java/bin"JAVAa::float[8], b::float[8], RETURN::float[8]);  
    end module;

    Do not forget to replace CLASSPATH value with the actual output folder path of your Java project where compiled Java classes are located (by default is bin folder of your project).

  4. From a project's pop-up menu (right-click), select Run as > Maple.


  5. Maple runs in the Eclipse console and we can use our Java methods as normal Maple procedures defined in the module.

Future enhancements

For the next update for the Maple IDE, we plan to add three export wizards for Java, C and Fortran projects. The wizards automatically generate a Maple module with external calling commands based on the selected Java class, C or Fortran shared library.

Possible issues

java.lang.UnsupportedClassVersionError: ... : Unsupported major.minor version 51.0

The error means you compiled the Java class with a newer version of Java and are trying to run with an older version, such as compiling with Java 7 but trying to run in Java 5 environment. Currently Maple uses Java 5 environment.

To fix the error, do the following:

  1. From a project's pop-up menu (right-click), select Properties > Java Build Path.
    Select Libraries tab.
  2. Select JRE System Library and click Edit button.
  3. From the execution environment drop-down menu choose J2SE-1.5. Click OK

java.lang.ClassNotFoundException: GeometryUtils

The error means the Java class cannot be found because of an incorrect name or a wrong path in the command.
To fix the error, check CLASS and CLASSPATH options of the define_external command.

  1. CLASS must contain fully qualified name of the Java class, such as mapleide.extcall.java.GeometryUtils, but not GeometryUtils.
  2. CLASSPATH must contain the directory where the classes reside.

Links

Tuesday, November 20, 2012

Maple IDE for all platforms

The Maple IDE project team is pleased to announce the release of the standalone version of the Maple programming toolkit. Now Maple IDE is available for Windows, Unix and Mac OS as standalone tool.

For the information about new versions, please see Maple IDE page.

For the complete installation instructions see the following video:

Monday, November 19, 2012

Productivity tips: Maple IDE Navigation shortcuts

Open Maple element (e.g.: a module, an procedure) without clicking through "infinite" list of source folders with Maple symbols and time-wasting manual search: Ctrl + Shift + F3. If you are looking for Maple elements such as modules, procedures, variables etc. which defined in your workspace, this shortcut will do it for you.

Go to a type declaration: F3. Alternatively, you can hold Ctrl down and click the hyperlinked variable or module.

Go directly to an element (module, variable) of a huge Maple file: Ctrl + O. Use Ctrl + O to get live list of matched elements and press Enter when you have finished.

Go to closing brace: Ctrl + Shift + P. If you have a big module or procedure, use this shortcut which brings you right to the end of the element (closing brace).

Find references: Ctrl + Shift + G. This shortcut helps you find all references of the selected Maple element in the workspace.

Go to a line in the Maple file: Ctrl + L. Enter line number and click Ok to go to the selected line.

Sunday, October 21, 2012

Migrating to Maple IDE

We are proud to announce you about the new feature in the Maple IDE - Importing existing MPL files into a Maple Project.

You can ​update Maple IDE using Update Manager mechanism in the Eclipse.

The following article briefly introduces the migrating process using the new import wizard, and then provides the video for users who are considering to use MPE for theirs existing Maple applications.

What about MPL files?

Maple files with code can be very huge. Some Maple modules have more then 10000 lines of code. For instance, RegularChains module from RegularChains.mla library has more then 450 lines for locals and exports definitions only (without the module body). The standard solution for such a situation is the Maple preprocessor. The preprocessor implements some subset of the C preprocessor's capabilities such as include, define, ifdef and so on. A Maple programmer can split a module code into parts and use include directive to "compile" the pieces together.

It was hard decision for us to not support the preprocessor directives. On the one hand, we understand that Maple programmers has a lot of code with preprocessor directives, but on the other hand, we also understand that to go to the future we need to reject supporting such old technology as preprocessor directives.

We made the decision not to support the preprocessor directives but make an importing tool to import from *.mpl files to *.maple files.

Import MPL file into a Maple project

MPL import wizard provides fast and super easy way to translate your existing MPL files into a Maple Project.

The main concepts of the MPL import wizard are:

  • migrating process and transition curve must to be smooth.
  • you need not more than 3-4 steps before you can resume working with your existing Maple applications in MPE.

Explore the following video to know how to import existing .mpl files:

Conclusion

The wizard was tested on a bunch of huge modules, and I can say that modules with up to 2500 lines of code can be imported and used without any problems. But what if you want to import more lines of code? Do we need to use preprocessor directives in that case? The answer is no! You still can import your code to *.maple files but the resulting files will be too huge to work with the code effectively in the editor.

It is obvious that we need some sort of further refactoring in general case of an importing. The main idea is do not do such a refactoring by hands, but use special wizard for that.