Posts

Learn a New Programming Language this Summer


What better goal to set for your summer than learning a new programming language? Forget the “beach books” this summer and set your sights on diving into a new coding language – but which one should you pick?

As reported by IDC there are approximately 11 million professional software developers on Earth, and around 690 notable programming languages (according to Wikipedia). I would wager a bet there is a staggeringly equal number of places online where you can learn one programming language or another. Whether you are already one of those 11 million coding experts or a newbie to programming, there is a plethora of information out there to sort though.

For the purposes for this blog post, we will certainly look at the world’s most-widely-used programming languages in 2016 (see this IEEE article), but also at important languages for data manipulation and querying, so we’ll discuss: C and its derivatives (C++, C#, and Objective-C), Java, Python, R, JavaScript, Ruby, SQL, and XQuery.

Deciding where to start depends entirely on the kind of development scenarios you have in mind, so we’ve broken things down for you to make it easier. It doesn’t matter if you are a seasoned programmer looking to add a new language to your repertoire or a novice who doesn’t know the difference between C, C++, Objective-C, or C# yet. We have assembled a list of explanations to help you choose which language you may want to conquer next.

shutterstock_416174497_700py

Read more…

Tags: , , , ,

The Altova MissionKit 2013 Introduces Seamless Integration of XMLSpy, MapForce, and StyleVision in Java Applications


The Altova MissionKit 2013, empowers developers to integrate XMLSpy, MapForce, or StyleVision functionality seamlessly in custom Java applications for Windows. This frequently-requested capability adds to existing support for integrating these MissionKit tools in Visual Basic or C# applications, giving developers flexibility to add some or all XMLSpy, MapForce, or StyleVision views and functionality to their own custom apps.

Version 2013 of XMLSpy, MapForce, and StyleVision include a new API that allows each to run inside a window within a Java application developed using the Java Abstract Window Toolkit (AWT) or Java Swing. This functionality allows MapForce 2013, for instance, to be embedded in larger applications where data mapping and transformation is only one requirement.

MapForce running in a Java ActiveX window

Altova provides sample applications with XMLSpy, MapForce, and StyleVision illustrating use of the Java API. You can access the sample applications from the command line or from within Eclipse.

Read more…

Tags: , , , , , , ,

Meet the Altova Team at Oracle OpenWorld


clip_image002Some people say early October brings the most enjoyable weather to San Francisco, and Oracle OpenWorld and JavaOne will make things even better this year from Oct. 2 – 6. If you’re traveling to the City by the Bay for either event, plan to visit the Altova team at booth 106 in the Moscone South Oracle OpenWorld exhibit hall. We’ll be demonstrating all the tools in the Altova MissionKit with special emphasis on multi-database support, tools for working with XML in databases, and solutions for compliance with XBRL, NIEM, HL7, EDI, QR codes, and many other industry standards. Here’s your chance for a personal tour of that Altova tool or feature you’ve been curious to see – whether it’s advanced charting in StyleVision, Java code generation from UML in UModel, or refactoring XML Schemas in XMLSpy. We always enjoy meeting users face to face and hearing about the projects you’re working on too! You can also enter our Altova product raffle for a chance to win a license for Altova MapForce 2011 Basic Edition. We hope to see you there! clip_image003

Tags: , , , , , , , , ,

Solution to the Software Testing with State Machines Challenge


Last month in our blog on Software Testing for State Machines with Altova UModel we discovered unexpected behavior in our model of an air conditioning system and challenged readers to improve the design. This post describes one possible solution. When we ran the Tester application for our model, we saw that the Power switch did not turn the system off when it was in the Standby state. In the state machine diagram in our original model, the only route into Standby from Operating mode is via the Standby button, and the only way out of the Standby state is to press the Standby button again, as seen in the detail below. Detail of a state machine diagram in Altova UModel We can create an alternate exit to power off the system from the Standby state simply by drawing a new transition line from Standby to the Off state, and assigning powerButton() as the event that triggers the transition. UModel makes assigning the trigger easy by providing a pop-up window listing events that are already defined in the model. Pop-up list of triggers for transitions in a state machine diagram in Altova UModel Our completed revision to the model with the new transition from Standby to Off looks like this: State machine diagram in Altova UModel After regenerating the Java code and compiling the new version, we can run the Tester application again. The Debug output message window shows that the system entered Standby in Event 3. Event 4, activation of the Power button, now sets the state to Off. State machine test application generated by Altova UModel Find out for yourself how you can enhance the logic of your own state machine diagrams with Altova UModel – download a free 30-day trial today!

Tags: , , , , , ,

Harness the Power of Chained Transformations in MapForce


MapForce 2011 introduced an exciting enhancement we like to call chained transformations. Chained transformations let you create complex mappings where the output of one mapping becomes the input to another. In other words, two or more components can be directly connected to a final target component. MapForce chained transformation example MapForce has long supported intermediate components and generation of intermediate output that is supplied as input further down the line in the mapping. The new enhancement provides a direct route from your original input to your final target output. Pass Through for the Express Route to Data Integration Mapping and debugging a series of intermediate components can prove to be time consuming and cumbersome, especially when you are working with huge data stores. The new Pass Through button lets you efficiently go straight to your final target. The intermediate components of a chained transformation include a Pass Through button and a Preview button, and the final component also includes a Preview button. MapForce Pass-Through and Preview buttons Activating the Pass Through button on the intermediate component disables the Preview button for that component, and the intermediate output is sent directly to the next component for transformation. You don’t have to explicitly specify input and output data file names for the intermediate component in the component’s Properties dialog. Instead, MapForce automatically supplies default file names. The MapForce Output Preview window displays the final target output from the last component in the chain. MapForce chained transformation preview window In case you want to examine the intermediate output as you design and verify your mapping, the arrow buttons at the top left or the drop-down menu at the top right let you preview intermediate data. MapForce chined transformation preview window If our mapping included multiple intermediate components, the Pass Through feature would let us inspect each stage of the transformation in a single output window. Integrating All the Local Components In other data integration projects you may want to save the data from intermediate transformations as well as the output from your final target component. When you deactivate the Pass Through button of the intermediate component, you can select either component for preview. Note that you can specify the name of the output file for the intermediate component in the Properties dialog, or you can let MapForce supply a default name. MapForce Preview button If you select the intermediate component for preview, as shown above, the Output Preview Window displays only the intermediate output. MapForce Output Preview window If the Pass Through button is deactivated and you select the final component for preview, only the final result is displayed in the Output Preview window. MapForce Preview button MapForce Output Preview window Generate Code for Your Mapping If you will need to perform repetitive transformations, MapForce lets you generate royalty-free code for your chained transformation in XSLT 1.0, XSLT 2.0, XQuery, Java, C#, and C++. All this functionality is designed to give today’s developers and data management professionals ultimate flexibility and automation to meet 21st-century data communication requirements. See for yourself how easy it is to build a chained transformation for your own data integration project. Download a free 30-day trial of MapForce!

Tags: , , , , , , , ,

Splitting Large UML Sequence Diagrams


A new feature introduced in UModel 2010 release 2 allows you to split large sequence diagrams when you reverse engineer existing Java, C#, or Visual Basic source code. What are the advantages of splitting a sequence diagram, and how should you decide to split or not? Obviously, a single diagram makes it easy to examine in one view all the interactions that occur during the execution of a class operation. On the other hand, a large, complex diagram can be cumbersome to view, navigate, analyze, and print in a readable format. Fortunately, UModel 2010r2 makes it quick and easy to experiment. After you generate your sequence diagram, if you don’t like the results, just click the Undo button and you can create a new variation by choosing different options in the Sequence Diagram Generation dialog. Or, you can even apply the Generate Sequence Diagram feature more than once to the same class operation, and maintain multiple versions of the sequence diagram in your model. For instance, if you plan to modify the existing code, you might want to keep a permanent record of the “before” and “after” editions to document your changes. We recently adapted our analysis of a bank ATM legacy application to create two new Technical Briefs in the Reference Library section of the Altova Web site, titled Analyze a Legacy Application with Altova UModel and Enhance a Legacy Application with Altova UModel. Enhancement of the code included adding a new method called getFinalOkay directly in the original source code file for the Withdrawal class. When we completed the round trip by synchronizing our UModel project with the application code, the split version of the sequence diagram included a dedicated sub-diagram for the new method. The sub-diagram is automatically labeled with a note and hyperlinked to the main diagram. UML_sequence_diagram If you’re ready to see for yourself how a visual software model can help you work with your own legacy application, click here to download a fully-functional free trial of Altova UModel!

Tags: , , , , , ,

DiffDog Reports for Service


A recent message on Twitter asked whether DiffDog can create a differences report. The short answer is yes! In addition to its renowned directory compare and merge, file compare and merge, database compare and merge, and XML diff merge functionality, Altova DiffDog can create differences reports for directory comparisons and for file comparisons. After you select the directories or files and the compare options you want to apply, you can create a report file by choosing Export differences from the DiffDog File menu. DiffDog Export differences menu option This opens a Save File dialog that lets you choose to create the diff report in text format or as an XML file. Text format reports follow the well-accepted Unix diff style. In the directory comparison example report below, the < character indicates a file that exists only on the left side, > indicates a file exists only on the right, and ! signifies file names that occur in both directories with unequal content. DiffDog directory report text format Report files in XML format are human-readable with descriptive element names and record the the comparison mode and the paths of the directories compared: DiffDog directory report XML format You can also use the DiffDog directory report functionality to create diff report files for comparisons of Zip archives or OOXML documents. Developers and other project stakeholders often want to keep a record of changes to source code files in a software project. DiffDog can create diff reports for all comparisons of text-based files, including source code files. DiffDog can even create detailed XML-aware reports for XML file comparisons. The illustration below shows two versions of a Java source code file: DiffDog file differences example If you read our earlier series on Reverse Engineering an Existing App with Altova UModel, you may recognize this code. Lines 8 and 9 on the left introduce a new class property called fee that is set to an initial value of 2. Here is the file compare report for the differences shown above in text format: DiffDog file differences text report And the XML version of the report for the same portion of the files: DiffDog file differences text report You can even execute DiffDog from a command line to create differences reports automatically. Here is an example of a short batch file that compares the same two directories from our GUI example and writes the output in XML in a file named diff_1.xml: DiffDog batch file The DiffDog Help system includes extensive documentation on all the command line options, including specific instructions on how to integrate DiffDog with 19 popular source control systems. If DiffDog report files get your tail wagging, don’t just Twitter about it! Click here to download a free 30-day trial of Altova DiffDog.

Tags: , , , ,