Wednesday, September 30, 2009

WEBINAR NEW Innovative, Time-Saving Features for the Busy DBA

Discover all the new time-saving features for busy DBAs in DBArtisan 8.7. Enhanced SQL editing, more object filtering options, faster data source management, Unicode, and more!

The new DBArtisan 8.7 offers many time-saving features for DBAs to use throughout the day to help them be more efficient in common tasks, such as SQL editing and data source management. Other features such as our new object filtering capabilities enable DBAs to better control their user interface and work more efficiently.

Register for Webinar!

Please join this free webinar event with DBArtisan Product Manager, Scott Walz, and get a tour of these new DBArtisan features:

  • SQL editor - “on-the-fly” syntax checking of both code and object names, full object look-up throughout the SQL statement, and code complete
  • Object Filtering - three new features: simple, name-based filtering lets you hide objects based on naming, complex, user-defined object name filtering, node filtering is defined at the platform level.
  • Data source management – now pre-populate the entire contents of the explorer tree with one click. Plus, new import and export features quickly capture registered data source information for backup or migration to other machines.
  • Unicode - Full Unicode character support throughout the application, allowing you to work with data in different languages and display the text correctly on screen.
  • And More - New enhancements for DB2 for z/OS, user interface and data editor improvements. 

We’ll also demonstrate some of DBArtisan’s more advanced features such as SQL debugging and profiling, performance analysis, capacity diagnostics, and storage planning.

Don’t miss this event!

October 8, 2009

11:00 AM PDT / 2:00 PM EDT

Download Trial!

Have a question?
Give us a call
1-888-233-2224 or contact sales


There are many ways to connect to the Embarcadero Community!  Stay in touch and keep your profile current at the:

Embarcadero Developer Network Embarcadero Developer Network

Follow us on Twitter!

Watch us on our YouTube Channel

Tuesday, September 29, 2009

Top Five Reasons to Switch from ERwin Data Modeler to Embarcadero ER/Studio

With full availability of ER/Studio® 8.5 only a few weeks away, Embarcadero Technologies is focused on educating data modelers about the benefits of ER/Studio versus ERwin® Data Modeler. Today, Embarcadero issued the top five reasons to make the switch.

  • Superior Productivity Using a Model File System - ER/Studio allows users to create multiple, mutually independent physical models from one common logical model within the same .dm1 file; ERwin requires multiple files to achieve the same effect thus losing the traceability between the logical and physical artifacts. ER/Studio’s separate but integrated approach offers the user a complete, easy to understand solution for synchronizing and updating logical models, physical models and live databases without having to manage and synchronize many loose files.
  • Superior Traceability With Lineage and Metadata Impact Analysis - ER/Studio provides features for maintaining the traceability between the original logical model and multiple physical models.  Coupled with ER/Studio’s ability to maintain multiple models within the same file, impact analysis is far easier and more reliable than with ERwin.  In addition to reports, ER/Studio also provides a “Where Used” feature which includes even more capabilities.
  • Superior Productivity Through Diagram Layout & Navigation Features – ER/Studio is designed to dramatically increase user productivity through superior navigation of large, complex data models. This saves time when searching for deeply buried elements in a model.  ER/Studio provides a number of features to assist with the management of large models.
  • Superior Documentation and Communication – ER/Studio Enterprise includes a web portal that allows for near real-time publication of the information contained in the ER/Studio repository.  The portal allows developers, DBAs and business analysts to browse, search and report on the model metadata via a web browser.  It drastically streamlines the process of communicating the models by offering a “self-service” method for publishing the information.  Data architects no longer need to refresh reports any time a model changes.  The portal has a separate reporting repository that is optimized for searching and reporting that is kept in sync with the ER/Studio repository.
  • Superior Reliability & Advancement – Embarcadero’s focus has always been centered on helping companies design, build, optimize and run their critical software applications and databases. Unlike CA, Embarcadero doesn’t have the vast array of over 1,300 products to support and maintain. We have a clear competitive advantage on deciding which products to support and build out.  With a dedicated support center and committed staff to help, we are able to resolve  issues quickly and efficiently without the hassle of dealing with an outsourced  support solution like ERwin that often can be long and drawn out.

ER/Studio continues to be the fastest growing database design and modeling tool on the market, not only for Embarcadero’s reliable support staff, but also for the reliability of the product performance and frequency of enhancements. Embarcadero has a strong investment in research and development behind ER/Studio, releasing multiple product enhancements each year to meet the demanding modeling requirements and reliability standards of large enterprises now and in the future. Our customers frequently tell us valuable time and resources are lost to basic functionality and bugs found in ERwin. Reliability and advancement are no longer optional in organizations that depend on database design and modeling for speed, competitiveness and uptime.

Get an advanced look at some of the exciting new features in ER/Studio 8.5 at the online Preview Center http://www.embarcadero.com/er-studio-sneak-peek.

Read to complete comparison at http://etnaweb04.embarcadero.com/erwin

About Embarcadero Technologies
Embarcadero Technologies, Inc. is a leading provider of award-winning tools for application developers and database professionals so they can design systems right, build them faster and run them better, regardless of their platform or programming language. Ninety of the Fortune 100 and an active community of more than three million users worldwide rely on Embarcadero products to increase productivity, reduce costs, simplify change management and compliance and accelerate innovation. Founded in 1993, Embarcadero is headquartered in San Francisco, with offices located around the world. Embarcadero is online at www.embarcadero.com.

Embarcadero, the Embarcadero Technologies logos and all other Embarcadero Technologies product or service names are trademarks or registered trademarks of Embarcadero Technologies, Inc. All other trademarks are property of their respective owners.

Friday, September 18, 2009

RAD Studio 2010: Still RAD

Examining Embarcadero's RAD Studio 2010 Architect Edition

By Mike Riley,  Dr. Dobb's Journal
Sep 18, 2009


It wasn't until Delphi 1.0 arrived back in the mid '90s that I became a serious Windows application developer. I had dabbled with Microsoft C++ (which eventually became Visual C++) and Visual Basic, but neither thrilled me -- C++ required deeper Windows API knowledge and dozens of lines of code just to display a 'Hello, world' window on screen, and Visual Basic at that time was too simple and constrained to write any serious, low-level Windows applications.

I have always had a soft spot for the Pascal language because it was the first structured programming language I truly enjoyed learning (thanks entirely to Doug Cooper's Oh! Pascal! book). This appreciation was further propelled by Borland's release of Turbo Pascal in the late '80s, wonderfully accelerating the DOS application development process with compiled programs that would execute at blazing, nearly assembly language-level speeds. As Windows gained prominence and Microsoft's tools became the dominant way to develop applications for the platform, many erroneously predicted the end of Borland as a Windows programming tools vendor. However, with the release of Object Pascal-based Delphi, Borland was not only back on the map but forcefully redefining the way Windows applications could be written. (For those unfamiliar with Object Pascal, but interested in learning more about it, check out Marco Cantu's helpful free eBook, Essential Pascal).

Delphi's most celebrated personality and main architect, Anders Hejlsberg, was eventually enticed enough to move to Redmond and join Microsoft to create the .NET technology base and the C# language, extracting the best of what Delphi, Java and C++ had to offer at the time. Yet again, this key player departure prompted doomsayers to predict the end of the Borland developer tools. It was around this time that Borland attempted to swim upstream to expensive middleware solutions, changed their name to Inprise yet retain the Borland name for their tools which expanded from Delphi to also include C++ Builder and JBuilder. The Inprise strategy faltered and the company reassumed and re-emphasized its Borland developer tools legacy. However, by this time, Microsoft had captured a majority of Windows-based application and web developer mindshare with its Visual Studio for .NET toolset and Borland eventually recast its prized developer tools assets under CodeGear until the portfolio was acquired earlier this year by database tool vendor Embarcadero Technologies. As such, the RAD Studio 2010 collection is the first Delphi and C++ Builder suite sold under the Embarcadero name.

A Look at Today

So much has changed over the last 15 years, yet Delphi 2010 is still recognizable and as easy to use as Delphi 1 was upon its initial release. While the look of the IDE is certainly busier, new navigation features and smart choices in palette management still make the environment a highly productive, comfortable one to code in. Still, given the wealth of options and the number of views available, I found 1920x1600 the best resolution for my coding projects. Better still, I found adding a second monitor for running and observing the executable to be the optimal RAD Studio 2010 developer experience. And even with all the views activated, the IDE response remained lightning fast throughout my hours of testing it for this review.

Figure 1: The RAD Studio 2010 IDE user interface overflows with project details.

Given its nearly 15-year history, Delphi has kept up with the times of supporting each successive release of Windows. For example, Delphi 2010 fully supports Windows 7-specific UI nuances and new technology enhancements via Visual Component Library (VCL) controls and API headers. These also include the Windows Imaging Component for numerous image format reading and manipulation, and Windows 7's new Direct2D API.

Figure 2: More than 20 different types of C++ project types can be automatically scaffolded via the New Items dialog box.

Code Audits in the Professional, Enterprise and Architect editions provide extremely helpful code and project health monitoring via an easy to use, information-rich reporting interface. The new IDE Insight makes navigating to all the plethora of options packed into the development environment as easy as a filtered Google search. While I found this new navigation window rather helpful, I would have preferred it to have been enhanced with an optional 'What's New' filter to quickly help me identify the new features and shortcuts specifically created for this release.

Figure 3: RAD Studio 2010 brings an unprecedented granularity of code formatting to C++ Builder and Delphi developers.

Figure 4: The IDE Insight palette provides a simple interface to quickly access the plethora of functional aspects available in RAD Studio 2010.

RAD Studio 2010 database drivers have also been updated to support the latest well-known name SQL DBMS's including IBM DB2 8, Microsoft SQL Server 2008, MySQL 5.1 and Oracle 11g. Also added to this release is support for the sexy, high-performance, open-source Firebird 1.5 RDBMS, showing that Embarcadero is hip with the times by not standing idle with just supporting updates for the entrenched players. New DSHTTPService and DSHTTPServiceAuthenticationManager components have been added to the DataSnap collection that delivers user-authenticated data connections over the HTTP stateless protocol. This is pretty cool, considering the number of disparate data sources and client access mechanisms scattered throughout a large enterprise. In addition, the Architect edition includes a developer edition of Embarcadero's powerful ER/Studio 8.0 database modeling, documentation/analysis and reverse engineering tool. ER/Studio deserves its own review, though of all the features packed into the 8.0 release, the one I found most exciting was its Visual Data Lineage that allows developers to observer how data flows throughout a data warehouse without necessarily having access to the codebase driving the system. It's a feature that I'm surprised Embarcadero isn't hyping with screencasts and more screenshots on its website.

Figure 5: RAD Studio 2010's modeling features are some of the best, most intuitive round-trip UML designers available today.

While not new in RAD Studio 2010, the Delphi Prism language opens the .NET Framework to the Delphi developer. Additionally, it provides developers with the option of leveraging an Aspect Oriented Programming approach and also supports .NET 4.0's dynamic typing capabilities, making it a very powerful, flexible web application option. Perhaps the most notable aspect of Prism is its ability to run underMono, the open source cross-platform implementation of .NET. This has a lot of potential for Linux-based VPS's like Linode by loading the Mono libraries to run Delphi Prism-based web applications. This effectively puts Delphi into an effective, economical means of executing web applications in a non-Microsoft hosted VM scenario.

Other helpful additions include search across project files, more granular thread debugging (freeze, thaw, isolate and set thread breakpoints), SOAP 1.2 (and REST and JSON via the DataSnap component) support, upgraded ANSI/ISO Boost-supported C++ compiler, a Class Explorer for C++ Builder (finally!), secure C library functions and, remarkably, the ability to import Delphi 1.0 and higher projects into Delphi 2010. I tried this with a fairly complex Delphi application I wrote in 1997 and sure enough, it just worked. Impressive! Minor improvements also abound in the release, from an updated Action property editor to Date properties displaying a Calendar control -- more than 100 new and enhanced features in all. View this feature matrix for a comprehensive list of capabilities available in each of the four RAD Studio flavors.

Of all the new features in this release, the one that captured most of my attention and fascination was the inclusion of Gesture support. This is especially awesome for those few lucky developers who have the opportunity to work with and develop on the new breed of multi-touch monitors. While the new Windows for Touch and Tablet PC features are a big deal in Windows 7, the gesture components in Delphi support Windows XP and Vista operating systems as well. Anyone developing Tablet or multi-touch display kiosk applications will want to take a serious look at how easy it is to bake in gesture support and even create custom gestures for service, support and even gaming applications.

Figure 6: One of the most exciting new additions to the 2010 release is the ability to easily create multi-touch screen-aware applications.

Figure 7: The multi-touch screen Gesture components support over 30 standard gesture motions out of the box.

Figure 8: The Custom Gesture Designer provides a surprisingly easy design palette to create and assign new gestures not already included in the standard gesture library.

Areas for Improvement

While trying out all these nifty new features, I had to discover most of them on my own due to the lack of sample projects demonstrating how these new capabilities work. Embarcadero needs to better market and support these major new releases with more code samples and screencasts, beyond the amateur marketing videos like this IDE overview and this one on Gestures made by long-time Borland-Inprise-CodeGear-Embarcadero developer evangelist David Intersimone. Even encouraging the Delphi and C++ Builder community to post screencasts on Blip.tv and YouTube would have been a boost in greater visibility and recognition for the product as well as raising awareness of how easy it is to construct such compelling applications on the Windows platform can be.

Also, why is it after all these releases that there still remains no native dbExpress support for PostgreSQL or SQLite data sources? Sure, PostgreSQL data can be accessed via its ODBC driver and both of these database technologies have community-developed VCL's that vary in quality, but they certainly are not anything I would trust running as part of an enterprise application. And while the Firebird DBMS support is welcome, it would have been a really nice surprise to see rising document database star Apache CouchDB on the official support list as well. While I realize CouchDB is not an RDBMS, having a way to access its data outside of the RESTful approach would have been a coup for a commercial IDE. Alas, perhaps some of these databases will receive their own feature bullet points in RAD Studio 2011.

Lastly, the Architect edition is one very expensive product. New Users are expected to pay $4,299.00 US while existing licensees can upgrade for $2,799.00 US. The Professional Edition is a bit more reasonable at $1,399.00 US for new users and $649.00 for the upgrade, but of course that version doesn't include many of the powerful data and modeling features or the E/R Studio developer edition. Nevertheless, such high prices will keep many new developers with constrained budgets from taking a closer look at RAD Studio 2010. That's a shame, given how much productivity potential is packed into this release. While it's a no-brainer that existing RAD Studio customers should upgrade, those Windows developers already wed to Microsoft's Visual Studio environment will be hard-pressed for a compelling reason to make the switch to RAD Studio for new project development. Embarcadero should seriously consider extending offers to long-time Delphi developers, especially those that abandoned Delphi years ago, that entice them to take another look, either via a special two hundred dollar upgrade regardless of version, or a competitive trade-in offer (i.e., show proof of legitimate Visual Studio license ownership and receive a thousand dollars off a new license) could really help to get those both old and new to Delphi reacquainted with a faster, more lightweight way of writing Windows applications.

A Look Toward the Future

While the RAD Studio 2010 release isn't perfect, it does emphasize an ongoing commitment by Embarcadero to stand by its acquired product line and carry forward the tenants of what made Delphi such an outstanding IDE. It also puts to rest the years of concern by tech industry journalists like me questioning the longevity of Delphi and C++ Builder. The financial backing is there. Now its time for Embarcadero to step up the competitive edge by leveraging Delphi across multiple platforms via Prism (Mono runs on Windows, Linux, Mac OS X, and even the iPhone and Android smartphones), compare how much faster Windows applications can be constructed in RAD Studio compared to Visual Studio and show how much smaller and tighter Delphi applications are compared to .NET applications.

That last point emphasizes a major consistency throughout Delphi's long life. With Delphi, even a Windows application neophyte can paint a form, compile it into a true executable without a bulky, separate runtime dependency. This is something that existing Delphi developers have taken for granted since its inception, but its still something to remark upon given the weighty overhead that various Java and .NET VM distributions require. The fact that Delphi can span the XP, Vista and Windows 7 family of operating systems, even supporting technologies like gesture support on operating systems that Microsoft won't formally commit to, is a testament to the enduring capabilities that Delphi has carried through all of its corporate incarnations. Anyone interested in Windows application development -- especially timely with the release of Windows 7-- should visit Embarcadero's RAD Studio 2010 website for more details.

URL:http://www.ddj.com/windows/220001058

Mike Riley is a Dr. Dobb's contributing editor. Follow Mike on Twitter @mriley.

Thursday, September 10, 2009

Performance Tuning Essentials for Java

Manage application speed, scalability and reliability throughout the development process

BY AL MANNARINO

In light of today's compressed development cycles, multi-tiered application architectures and complex technologies, many organizations are challenged to get reliable yet scalable enterprise Java applications out the door in a timely manner. Devoting a small amount of energy throughout the development process to identify, address, and correct performance obstacles can lower the risks and costs associated with poorly performing applications over the life of the code.

Java performance tuning simply means optimizing your code for speed, reliability, scalability and maintainability. Producing truly scalable, lightning-fast Java SE and Java EE applications demands clarity of purpose and well-understood programming priorities. A major benefit of adopting regular performance tuning cycles is instantly seeing exactly which parts of your applications represent critical bottlenecks and which are behaving efficiently.

Performance Tuning: A Development Best Practice
A major strength of Java is its platform-independent byte-code approach and automatic handling of garbage collection. Unlike with C/C++, developers are able to focus on an application's business requirements, and are largely free from platform considerations.

Experienced developers, however, do not focus exclusively on application functionality. The reality is that below this level of abstraction, hard limitations of memory and processing power exist, as do the patterns and constraints of garbage collection, thread scheduling, and a host of other considerations managed by the Java Virtual Machine (JVM) and the underlying operating system.

Successful developers - and productive development processes - incorporate regular use of performance analysis from the earliest stage of code creation throughout the development process, into QA testing, and beyond. Frequent, frontline checking and testing of small modules of code by the principal author is often the best way to assure that the Java applications produced will be fast, reliable, and scalable.

Seeing the Big Picture Means Digging Deep
The latest generation of Java application servers brings increased memory capacity and processing power to the party. However, even with this and the common practice of throwing more hardware at the problem can you ever really overcome truly flawed code? A single buggy line ripples forward and can cause application-wide bottlenecks or can mysteriously trigger disastrous crashes once an application is in production.

The developer's tall challenge is to determine which part of a Java SE or Java EE application is causing a performance bottleneck or memory issue. The strength of Java and its various platforms is the high level of abstraction, re-use of objects, and insulation from layers of processing and system dependencies. But while encapsulation is great for shielding you from vast lower-level complexities, it also leaves few clues about where to focus your performance attention.

Tools are needed that extend your intuition and let you effortlessly see and understand how your Java application behaves when running. With the advent of highly abstracted, object-oriented languages such as Java, Stanford Computer Science Emeritus Professor Donald Knuth raised the concern that programmers are in danger of losing touch with the factors determining whether their code will run and scale well saying, "At first you try to ignore the details of what's happening at the lower levels. But when you're debugging, you can't afford to be too compartmentalized. You can't afford to only see things at the highest level of abstraction."

Performance Tools Allow You to Be Smart and Efficient About Optimizing
Knuth advises that developers need insight about what's going on below the surface if their code is to be scalable, reliable, and fast.

A fundamental question is: "What are the priority performance issues for this module or application?" Tools specifically designed for Java performance tuning offer an ideal way to answer this question - and be assured that your code improvements are informed and efficient. Without tools to help prioritize key Java trouble areas, you are likely to spend a lot of time micro-optimizing unimportant sections at the expense of the crucial optimization issues that actually drive your application's overall performance.

The goal ought to be for each member of the development team to be equipped with the tools to be smart about performance tuning each step of the way. Smart performance tuning will take place in the context of an application's overall business requirements. Some tiny performance issues simply may not warrant improvement efforts. Other important optimizing trade-offs will arise only when components are brought together, at which point an understanding of the overall architecture will guide modifications.

Tuning your code for speed and performance iteratively, as you develop and bring modules of code together, is the best way to minimize frantic troubleshooting sessions at the end of a project - or worse, in production, where even small problems are transformed into costly, complex challenges. The tuned applications delivered to QA and to customers will instead be lightweight, stable, scalable, and screamingly fast.

Conclusion: Performance Tuning Is Crucial for Java
Conceiving, designing, and testing your approach against performance goals as you build means more than just avoiding underperforming applications or even crashes. By being appropriately alert to how your code performs throughout the development process, you avoid expensive, disruptive late-stage fixes. Fast, scalable, high-performance code is a design imperative from the beginning. It is also a serious, regularly exercised element of the development process for each front-line developer (not a specialized skill for an isolated performance team).

© 2008 SYS-CON Media Inc.