Thursday, February 12, 2015

Closure IDE Beta Update

Closure IDE Beta Update

Closure IDE Beta Update

The beta update is here. Besides a heavy bunch of bug fixes, the update significantly improves features that allows you to find declarations and references of JavaScript members in source code.

What can these features actually give us?
At large, the features help us answer the questions, such as "Who uses this field?" or "Who implements this method?".
Find Declarations/References of JavaScript members
I decided to use the Closure Library itself to quickly review the features. The library brings pretty impressive codebase that grouped into 121 packages of JavaScript source files. The list of packages is so long it cannot fit into my screen. So, a part of it looks in the Package Explorer like the following:
Closure Library project in the Package Explorer of Closure IDE
Let's open the main class of all UI controls in the Closure Library - goog.ui.Component. When a project is really huge, I prefer to navigate through it using types not JS files. So, I use the Icon of the Open Type dialog - Closure IDE Open Type dialog to quickly find and open the class. So, I do not need to search the class in an endless number of packages/folders and remember the file in which it is located.
goog.ui.Component in the Open Type dialog - Closure IDE
Inside this type, the most interesting part for our task is thedecorateInternal method. This method is a classic usage example of the Template Method design pattern. Therefore, we can expect that the method has a lot of different implementations provided by the subclasses. A lot of implementations means a lot of declarations.

Move your cursor to the method's name or select it in the Outline view. Right-click on it to open the context menu. Select Declarations » Project to find the method's declarations available in the project.
Find JavaScript declarations of a method - Closure IDE
The Search view appears. When the search job is completed, all found matches are shown in the view. As simple as that.
Search view with found declaration matches of a method - Closure IDE
Expand the tree in the view and double-click a match. The file opens in the editor at the position of the match.
Is it smart?
Yes, it is as smart as possible. For example, to decide which matches are accurate for a search of method declarations, the IDE uses the method's scope and binding information, available JSDoc, declaring class and its type hierarchy, parameters, return type and control access information (public, private etc.).

Moreover, the IDE searches references inside JSDoc tags such as @see, @link, @param, @return etc.

In special cases when a match is found but cannot be treated as accurate, the IDE marks it as "possible match" to allow you to decide its correctness.
Even more about Search
The described above is a very small bit of the search-related features available in this beta release of the IDE. For further learning, explore the documentation inside the IDE. The help contains new tutorials and references about the search features introduced by the update.

So, update your Closure IDE 2 Beta (or request it here), check out what we have already done and stay tuned.

Monday, February 2, 2015

Meet Closure IDE 2 Beta!

Closure IDE 2 Beta Release

Meet Closure IDE 2 Beta!

Today it's time to announce the beta release of Closure IDE 2.
For those who have not had the opportunity of using the first version of Closure IDE, here is its very brief description:
Closure IDE is an Eclipse-based development environment for large-scale JavaScript projects. It is particularly focused to work with Closure Compiler and Closure Library.

A little bit of history

First of all, I would like to remember how everything was started.
Initially, the IDE was our internal project to develop Maple WWW (play with its amazing live demonstrations here). It consisted of a set of simple plugins for Eclipse to work with Google Closure Tools.

When Maple WWW reached 5 projects (now it includes 16 projects for 2D/3D graphics, formulas, document rendering and integration with MapleNet etc.) and some of the key classes contained more than 5000 lines of code, we understood that Closure IDE 1.x is not enough for large-scale JavaScript development. That's how Closure IDE 2 was started.

What is a large-scale JavaScript Project?

Closure IDE 2 is designed to solve challenges of large-scale JavaScript development. It is intended to handle projects that:
 have complex architecture, large codebase, extensive dependency tree and follow OOP concepts
 require more than 5 months of development, further updates and extensions
 managed by more than 5 developers in a team that can grow at any time

What's inside?

Instead of writing the endless list of all new features introduced in Closure IDE 2, I would be glad to invite you to get access to Closure IDE 2 Beta and see it in action.
To answer the question "Can it be useful for my existing/future JS projects?", please explore the following list. If at least one of the following is true for you, then you should seriously consider adding Closure IDE 2 to your JavaScript development stack.
 Your project uses Closure Library or/and Closure Compiler
 Your project is large-scale (see above)
 Your project uses object-oriented design patterns
 You are a curious developer that want to check out new stuff :)
Looking on the milestone of the Closure IDE 2, I understand that we still have a lot of work to do. Therefore, our team is looking forward for your feedback and comments. To quickly report a bug or if you have any questions, you can join us on Google Groups. To contact us by email, please feel free to use this form.

Monday, May 5, 2014

Maple WWW - Maple World Wide Worksheet

Maple WWW - Maple World Wide Worksheet

Next Generation Documents for Research and Teaching

DigiArea Team is proud to present new modern web technology for Maple Worksheets - Maple WWW.
Maple WWW is a technology that brings Maple Worksheets to the World Wide Web. The technology provides a web application to view and share interactive scientific documents across the web. Maple WWW allows to open Maple worksheets in your browser without any additional plugins or extensions.
- Read more about the technology on the Maple WWW Website.
- Explore demonstrations on the Live Examples page.
- Join the discussion about Maple WWW on MaplePrimes.

Friday, March 7, 2014

Closure IDE Update

Closure IDE Update

Closure IDE Update

The update 1.2.2 is available. The update is mainly dedicated to bug fixes and includes some useful new features.
Please explore Update Notes for more details.

Toggling of comments

You can toggle comments for code in the JavaScript editor. The leading characters // are added to the beginning of each line when commenting one or more lines of code. You can also block comment multiple lines of code using the characters /* */.

Red Underlines for errors in JavaScript editor

Red underlines appear under the code for which the compiler reports errors and warnings.
The lines help you understand the code on the given line that causes problems.

Tuesday, February 25, 2014

Atlas for Maple Update 2.1.0

Atlas 2 for Maple

Atlas for Maple Update 2.1.0

Covariant and Contravariant basis declarations

The update 2.1.0 allows you to use covariant and contravariant basis declarations.
Now if you declare Frame first, the Coframe will be calculated automatically. Or you can declare Coframe first and then have the Frame automatically calculated.

You can use examples for covariant and contravariant basises from the DG Library.
For instance:
Moreover, now you can work with these and other DG Library objects from DG Library Browser which is introduced in this update.

DG Library Browser

Atlas for Maple 2.1.0 brings DG Library Browser to access to the online library of predefined differential geometry objects directly from Maple.
Use categories and search field to search for objects in the DG Library:

Choose objects from the list and click Code Generation button (colorful torus) in the menu and choose a folder to save Maple worksheets:

As a result, you get ready-to-use Maple worksheets which you can open and evaluate in Maple:

Explore all features of Atlas 2 for Maple on DigiArea website.