user error: The table 'cache' is full
query: INSERT INTO cache (cid, data, created, expire, headers) VALUES('archive:calendar:11-3-2010', '
<!-- calendar -->
<div class=\"calendar\"><table summary=\"A calendar to browse the archives.\">
 <tr><td colspan=\"7\" class=\"header-month\"><a href=\"archive/view/2010/02/11\">&laquo;</a> March 2010 &nbsp;</td></tr>
 <tr class=\"header-week\"><td>Su</td><td>Mo</td><td>Tu</td><td>We</td><td>Th</td><td>Fr</td><td>Sa</td></tr>
 <tr class=\"row-week\"><td class=\"day-blank\" colspan=\"1\">&nbsp;</td>
  <td class=\"day-normal\"><div>1</div></td>
  <td class=\"day-normal\"><div>2</div></td>
  <td class=\"day-normal\"><div>3</div& in /usr/local/apache/vhosts/cmsstaging.developers.net/htdocs/cms/includes/database.mysql.inc on line 105.
| developers.net

Page Not Found

| developers.net

Page Not Found

| developers.net

Page Not Found

Use Cron to Automate Computing Tasks

Sun, 11/30/2008 - 11:21

As a necessity, computing tasks need to be run at all hours of the day. It would be tedious and impractical to have to manually run these regular tasks by hand across your company's fleet of computers. That's where “cron” comes in. Cron is a ubiquitous daemon (perennial) process that is used to execute scripts on whatever schedule you configure. You can configure cron to run your programs every minute, every hour, every 2 hours, once a day, etc. This makes for a convenient and powerful way to manage the computing tasks for your company. This cron tutorial will teach you about cron configuration and maintenance as well as provide examples of its use.

Click here for the tutorial.

Eclipse Code Template Tutorial

Fri, 11/28/2008 - 23:32

This free IBM tutorial steps through how to use Eclipse code templates. The tutorial looks at the templates in a broad way to highlight the overarching skills and concepts that apply no matter what plug-in you are dealing with. We will walk through the benefits of templates, how they are created and edited, and how they can be used within the Eclipse integrated development environment (IDE) for enhanced productivity. Start the Eclipse code template tutorial now.

Click here for the tutorial.

Rational Application Developer for WebSphere

Mon, 04/04/2005 - 13:08

Download a free trial version of Rational Application Developer for WebSphere Software(formally known as WebSphere Studio Application Developer Integration Edition). Rational Application Developer is a build-to-integrate solution for accelerated development and integration of complex applications. In addition to all of the features of Rational Application Developer, it features J2EE™-based visual workflow tools, service-oriented architecture support, and support for the IBM WebSphere Business Integration Server Foundation.

Rational Application Developer (formerly known as WebSphere Studio Application Developer Integration Edition) is a build-to-integrate solution for accelerated development and integration of complex applications. In addition to all of the features of Rational Application Developer, it features J2EE™-based visual workflow tools, service-oriented architecture support, and support for the IBM WebSphere Business Integration Server Foundation.


Download here.


Download: Rational Tester for SOA Quality V8

Thu, 08/30/2007 - 09:17

SOA Software Performance Testing Tools: IBM Rational Tester for SOA Quality is a functional and regression testing tool Web services. IBM Rational Performance Tester Extension for SOA Quality is a load generation, performance testing and problem analysis tool for testing SOA applications. Perform automated functional testing of Web services, functional verification testing of Web services, interoperability testing of Web services, and load testing of Web services.

IBM Rational Service Tester for SOA Quality is a functional and regression testing tool that enables the creation, comprehension, modification and execution of testing GUI-less Web services. IBM Rational Service Tester Extension for SOA Quality is a load and performance testing and problem analysis tool that extends performance and scalability testing to SOA applications. These new tools allow you to perform: Script-less automated functional testing of Web services, Functional verification testing of Web services, Interoperability testing of Web services, Load testing of Web services System Resources and SOA monitoring.

Download trial here.


Hello World: Learn how to discover and analyze performance issues using Rational Performance Tester

Mon, 05/14/2007 - 08:09

IBM Rational Performance Tester Tutorial Testing Fundamentals: Learn performance testing fundamentals in this IBM Rational Performance Tester tutorial, which incorporates demos and hello world examples. Practical exercises show you how to record and playback automated performance tests, use data driven techniques for randomization, and analyze realtime performance reports.

Get an overview of IBM Rational Performance Tester in this basic tutorial, which includes both demos and hello world exercises. Practical, hands-on exercises teach you how to record automated performance tests, use data-driven techniques to ensure randomization, play-back tests, and evaluate real-time performance reports.

Read Tutorial here.


IBM Product Trial Downloads

Tue, 08/21/2007 - 15:46

Download Free Trial Version IBM Rational DB2 WebSphere: Download free trial versions of these featured IBM products.

Rational (software development)
Information Management Software

Lotus (collaboration and human productivity)

Tivoli (application management)
WebSphere (integration and application infrastruction)

To view more IBM product trials, click here.

DB2 Enterprise 9.5 Download

Sun, 04/03/2005 - 18:17

Download a free trial version of IBM DB2 Universal Database™ Enterprise Server Edition. DB2 UDB is designed to meet the relational database server needs of mid- to large-size businesses. It can be deployed on Linux™, UNIX®, or Windows® servers of any size, from one CPU to hundreds of CPUs.

IBM DB2 Universal Database™ Enterprise Server Edition is the lowest-priced full-function relational database available. Designed to meet the needs of small and medium businesses, DB2 UDB Express Edition features self-tuning and self-configuring capabilities for ease of manageability, use of Linux™ or Windows® operating systems, application development flexibility, and support for transparent installation with business partner applications.

Download DB2 Enterprise 9.5 Here (trial)

Download DB2 Express C-9.5 Here (free)




Download: Rational Test RealTime

Mon, 04/04/2005 - 06:19

Rational Test RealTime Real Time System Software Testing Tools: IBM Rational Test RealTime is a cross-platform test system software for runtime analysis and component testing. Test RealTime provides software application testing for embedded systems. Test RealTime software testing tools simplify cross platform, real time, and embedded systems testing.

Download a free trial version of IBM Rational Test RealTime. IBM Rational® Test RealTime™ is a cross-platform solution for component testing and runtime analysis. It's designed for those who write code for embedded, real-time, and other types of cross-platform software products.


Download here.


WebSphere Application Server Express V7.0

Mon, 04/04/2005 - 06:52

IBM e business Websphere Application Server Express for Linux and Windows: WebSphere Application Server - Express Version 6 is a tightly integrated development tool and application server that provides an easily affordable entry point to e-business for companies creating dynamic Web sites using J2EE. Try the free Websphere Application Server Express download now.

WebSphere® Application Server - Express Version 7 is a tightly integrated development tool and application server that provides an easily affordable entry point to e-business for companies creating dynamic Web sites.

Download a free trial version of WebSphere® Application Server -- Express Version 7.0. WebSphere Application Server -- Express is a tightly integrated development tool and application server that provides an easily affordable entry point to e-business for companies creating dynamic Web sites.

Download here.


Download: WebSphere Application Server V7.0

Mon, 04/04/2005 - 06:46

IBM Websphere Application Server Download for J2EE: WebSphere Application Server is an application server platform based on Java 2 Enterprise Edition (J2EE) and Web services. WebSphere delivers high performance and transaction scalability for e-business applications. Try the free Websphere download now.

WebSphere® Application Server is an application server platform based on Java™ 2 Enterprise Edition (J2EE™) and Web services technology. IBM WebSphere delivers high performance with an exceptionally scalable transaction engine built for e-business applications.

Download a trial version of WebSphere® Application Server for free. WebSphere Application Server is an application platform based on Java™ 2 Enterprise Edition (J2EE™) and Web services that delivers performance and scalability for dynamic e-business applications.

Download here.


Extend open source tools for effective software delivery

Thu, 09/18/2008 - 18:56

Improve your software delivery by extending your use of open source tools. Developers can mix-and-match the best open source and closed source software for their project. Rational software from IBM can provide the best of both of these worlds with a large range of open source plugins and tools utilizing the overarching framework for managing the entire software development lifecycle.

Click here for the free tutorial.

Debug iPhone Web applications using Eclipse

Thu, 09/18/2008 - 18:35

This tutorial will teach you how to debug Ajax (Asynchronous JavaScript + XML) Web applications with Firebug, Aptana iPhone Development plugin, Eclipse, and the Aptana Firefox JavaScript debugger. Get started today on debugging your iPhone Web applications with this free IBM tutorial.

Access the tutorial here.

Install and configure a Tomcat Web server in UNIX

Thu, 09/18/2008 - 18:28

This free tutorial provides step-by-step, detailed instructions for the installation and configuration of a test or development Apache Tomcat Web server. You will also find helpful tips for building and administering your application or Web server within the UNIX environment.

Access the IBM tutorial here.

Ext, Aptana, and AIR for desktop application development

Thu, 09/18/2008 - 16:44

First Web 2.0 and Rich Internet Applications, and now the new wave of emergent Web technology is focused on bringing Web applications to the desktop. AIR (Adobe Integrated Runtime) is leading the way by letting Web developers leverage their understanding of CSS, HTML, Flash, Javascript, and Flex for building powerful desktop programs. This free tutorial will show you how to use open source tools: Adobe AIR plug-in, Aptana Studio IDE, and the Ext JavaScript framework to start your Web-desktop programming now.

Check out the tutorial here.

Create productivity package with Zend Framework and Google Apps, Part 3

Mon, 09/15/2008 - 16:55

This is the third part of the free IBM tutorial: "Create a productivity package with the Zend Framework V1.5 and Google Apps". The focus of the tutorial is to show you how to build an basic Web site utilizing the Zend framework and connecting to various Google productivity applications such as the Google calendar, spreadsheet, documents, YouTube and Picasa packages.

Access this tutorial here.

JAX-RPC Web service and client customization with advanced tools

Mon, 09/15/2008 - 16:32

This free IBM tutorial takes you past JAX-RPC basics and teaches you how to do full JAX-RPC Web service and client customization using Apache Axis. For client side programming, JAX-RPC Web service connection code can be mostly auto-generated so you can focus on more custom interaction programming instead of routine service calls. For server side customization, you can restrict the methods you want exposed, limit the parameters you will allow, and add additional options using the Apache Axis tools.

To access this tutorial, click here.

DB2 Express-C 9 Free Download

Sun, 08/19/2007 - 17:40

DB2 Express-C Free Database Software Download: DB2 Express-C 9 from IBM is a free database software version of DB2 Express 9 data server. DB2 Express-C has identical data server options as the DB2 Express Edition and provides a strong foundation on which to develop and deploy database applications written in C/C++, Java, .NET, or PHP. Five years of development transformed DB2 9 technology into a hybrid data server with the ease of use and high performance of DB2 combined with the flexibility of XML.

DB2 Express-C 9 from IBM is a free version of DB2 Express 9 data server. DB2 Express-C provides the same basic data server options as the DB2 Express Edition and offers a strong foundation to design and deploy applications created with C/C++, .NET, PHP, and other languages.

The result of a 5 year project, DB2 9 transformed static database technology into a hybrid data server offers the simplicity of use and high performance of DB2 with the extensible benefits of XML

Download DB2 Express C-9 Here (free software)

Download DB2 Enterprise 9 Here (trial software)




Build Forge Express Demo: Enabling Software Delivery Excellence for Small and Midsized Businesses

Tue, 12/11/2007 - 17:15

See this demo to understand how IBM Build Forge Express can help improve the small to midsize business (SMB) software delivery process.

This demonstration gives you an overview of IBM Rational Build Forge Express Edition.

IBM Rational Build Forge Express Edition, a global product that provides a framework to automate and execute software processes, gives you a software assembly line that can support all of your technologies, tools and platforms so you can achieve a reliable, traceable and repeatable build and release process.


For Demo click here

DB2 9.5 For Linux, Unix and Windows -- Free Trial Download

Tue, 12/11/2007 - 16:41

Download the free database trial version of IBM DB2 for Linux, DB2 for Unix, or DB2 for Windows.

Download a no-charge trial version of IBM DB2 9.5 for Linux, UNIX, and Windows.


DB2 9, five years in development, transforms traditional database technology (static) into an interactive data server that merges the self-describing benefits of XML with the easy-to-use, high performance of DB2.

For Download click here

DB2 Express-C 9.5 Free Trial Download

Tue, 12/11/2007 - 16:07

Download the free trial version of IBM DB2 Express-C database.

Visit IBM developerWorks to download IBM DB2 Express-C 9.5, a free trial version of DB2 Express 9 database server.


DB2 Express-C 9.5 offers the same core data server base features as other DB2 Express editions and supplies a solid base to deploy and build applications developed using Java, C/C++, PHP, .NET and other programming languages.

For Download click here

New IBM Lotus competitive briefing series - "Innovations in People Productivity"

Mon, 05/14/2007 - 09:42

IBM will be conducting a series of customer briefings entitled: "Innovations in People Productivity - The IBM Lotus Advantage." These full-day customer events will highlight the very best of IBM's collaboration solutions. Unlike "Lotusphere Comes to You," we focus on the competition -- Microsoft. Through the use of presentations and live product demonstrations of IBM Lotus Notes and Domino 8, Sametime 7.5, Lotus Quickr, Lotus Connections and WebSphere Portal, we compare and contrast our solutions to those of Exchange 2007, SharePoint, Communications Server 2007 and MS Office System 2007. These briefings are designed to support your sales efforts.

Read more.


Change and Release Management

Mon, 05/14/2007 - 09:05

Discover how to improve software delivery and lifecycle traceability, from requirements definition through deployment. Whether you are a project manager, developer, build/release engineer or QA engineer, this eKit contains helpful resources - including demos, webcasts and white papers - that show how you can improve productivity, increase team efficiency, strengthen software quality, improve project visibility and control, and meet project schedules.

Get eKit here.


Create productivity package with Zend Framework V1.5 and Google Apps, Part 2

Mon, 09/15/2008 - 17:54

This is the second part of a three part tutorial series: "Create a productivity package with the Zend Framework V1.5 and Google Apps". The series explains how to utilize the Zend framework to make connections to various Google applications such as calendar, spreadsheet, docs, YouTube, and Picasa packages. This part of the tutorial focuses on using Zend_Gdata and Zend_Form in the framework to help with user registration and authentication, jQuery Javascript library with AJAX, and application integration with Google Base.

Access part 2 of the tutorial here.

Embedded Linux distro build from scratch

Mon, 09/15/2008 - 16:50

This tutorial will teach you how to create a custom Linux distro (distribution) for use in an embedded system. The example environment will be for driving a Technologic Systems TS-7800 single board computing system. This tutorial will go over file systems, the boot loader, disk images, cross-compiling, the root file system, and the boot process, and will discuss the decisions you need to make while creating your custom Linux distribution.

Access the tutorial here.

Software development using open source stack

Mon, 09/15/2008 - 16:43

Web programmers are experiencing a renaissance. After nearly a decade having to write very server-centric code, developers are now able to leverage a myriad of readily available tools for a virtually computing platform in the browser. The latest generation of application frameworks and tools simplify and automate much of the creation, deployment and maintenance of a Web site. And, since there are more of these tools than ever before including many innovative open source packages, Web programming has never been better. Check out this free tutorial to see an expansive list of the free Web application development software available today.

Read the tutorial here.

Download Free Evals of Intel® Software Development Products

Tue, 12/06/2005 - 05:34

Intel Downloads PDA Software Development Free C Compiler: Put our products to the test. Download as many evaluation versions as you'd like. All come with the option of receiving free Intel support during the 30-day evaluation period.

Put our products to the test. Download as many evaluation versions as you'd like. All come with the option of receiving free Intel support during the 30-day evaluation period.

Choose from:
  • Compilers
    • Intel® C++ Compiler for Windows* (system requirements)
    • Intel® Visual Fortran Compiler for Windows (system requirements)
    • Intel C++ Compiler for Linux* (system requirements)
    • Intel® Fortran Compiler for Linux (system requirements)
    • Intel C++ Compiler Standard Edition for Mac OS* (system requirements)
    • Intel C++ Compiler Professional Edition for Mac OS
    • Intel Fortran Compiler Standard Edition for Mac OS
    • Intel Fortran Compiler Professional Edition for Mac OS
    • Intel C++ Compiler for Windows CE, Standard
    • Intel C++ Compiler for Windows CE, Professional
    • Intel® C++ Software Development Tool Suite for Intel XScale® Microarchitecture, Professional
    • Intel® C++ Compiler for QNX Neutrino* RTOS
  • VTune™ Analyzers
    • Intel® VTune™ Analyzer for Windows*
    • Intel VTune Analyzer for Linux*
  • Performance Libraries
    • Intel® Integrated Performance Primitives (Intel® IPP) for Windows*
    • Intel Integrated Performance Primitives (Intel IPP) for Linux*
    • Intel Integrated Performance Primitives (Intel IPP) for Mac OS*
    • Intel® Math Kernel Library (Intel® MKL) for Windows
    • Intel Math Kernel Library (Intel MKL) for Linux
    • Intel Math Kernel Library (Intel MKL) for Mac OS
    • Intel Math Kernel Library, Cluster Edition for Windows
    • Intel Math Kernel Library, Cluster Edition for Linux
    • Intel® Mobile Platform Software Development Kit
    • Intel® MPI Library
  • Threading Analysis Tools
    • Intel® Thread Checker 3.0 for Windows*
    • Intel® Thread Profiler 3.0 for Windows
    • Intel Thread Checker 3.0 for Linux*
  • Cluster Tools
    • Intel® Cluster Toolkit: IA-32 systems
    • Intel Cluster Toolkit: Itanium®-based systems
    • Intel® Trace Analyzer and Collector: IA-32 systems
    • Intel Trace Analyzer and Collector: Itanium-based systems
    • Intel Math Kernel Library, Cluster Edition for Windows
    • Intel Math Kernel Library, Cluster Edition for Linux
    • Intel MPI Library
  • Free Non-Commercial Downloads
    • Free Non-Commercial Software Development Products for Linux*

Enterprise computing capacities of the Linux 2.4 kernal

Sat, 01/28/2006 - 13:44

Software Structure of Linux Kernel: Linux kernel 2.4 is more dependent on the ELF (Executable and Linking Format) than Linux 2.2. ELF is an advanced binary format that includes support for multiple code and data sections and increases the support for shared libraries. Fully exploiting the ELF binary format allows Linux kernel developers to increase code modularity and to simplify maintenance.

by Thomas Wolfgang Burger, owner, Thomas Wolfgang Burger Consulting.

Does the 2.4 kernel have what it takes to make corporate America embrace Linux as an enterprise solution?

There are a large number of changes and additions to the Linux 2.4 kernel release that will result in more speed and reliability and a much larger base of supported hardware.

These modifications have three major goals in addition to bug fixes and general improvements:

  • Greater speed, especially on large-scale servers. There should no longer be any configuration and load combination in which Linux is slow.
  • Greater market penetration, because of broader (and easier) hardware support.
  • Fewer kernel variants, in order to eliminate the plethora of custom versions; one kernel will now work, as is, on an embedded device, a laptop, a desktop, or a network server.
Linux ELF and POSIX Foundation strengthened
Linux kernel 2.4 is more dependent on the ELF (Executable and Linking Format) than Linux 2.2. ELF is an advanced binary format that includes support for multiple code and data sections and increases the support for shared libraries. Fully exploiting the ELF binary format allows Linux kernel developers to increase code modularity and to simplify maintenance. ELF allows drivers to be initialized based on how they are linked, rather than by having an explicit initialization line in the core code.

With the adoption of support for POSIX clocks and timers, Linux 2.4 becomes more POSIX-compliant, allowing for non-RTC (Real Time Clock) devices to be used as clocks internally.

Enterprise support: threading scheduling and capacity
Three core changes in Linux 2.4 add greater capacity in enterprise-level environments, without degrading performance in standard environments:

  • First, Linux 2.4 can handle many more simultaneous processes or threads, because it is more scalable on multiprocessor systems and provides a configurable process limit. The threading model used in Linux 2.4 is now a scalable or soft version. Previously the thread limit was 1024, which led to poor performance with large numbers of users. The limit is now set at run time, so the only real limit is the amount of memory available.
  • Second, the scheduler has been revised to be more efficient on systems with more concurrent processes.

Achieve maximum application performance migrating from Unix to Linux

Thu, 09/29/2005 - 06:39

Unless you built your application using GNU C/C++ on Unix, migrating from Unix to Linux often involves switching compilers. When used with Rogue Wave SourcePro C++, the Intel C++ Compiler eases porting of applications from Unix to Linux.

by An Le, technical consulting engineer, and Max Domeika, technical consulting engineer, Intel Corp.

Unless you built your application using GNU C/C++ on UNIX, migrating from UNIX to Linux will most likely also involve switching compilers. This introduces a host of challenges such as changing compiler flags, makefiles, and the build process, while ensuring continued optimal performance. SourcePro C++ allows the developer to automatically generate new makefiles for the low-level infrastructure code when you change platforms. Achieving the maximum potential of SourcePro C++ requires a compiler capable of producing highly optimized code. The Intel® C++ Compiler simplifies migration from UNIX to Linux by offering a very high level of conformance to the ANSI/ISO C++ standard, and advanced compiler optimizations that are used on UNIX systems.

Optimization procedures include inter-procedural optimizations, profile guided optimization, as well as processor specific optimizations that can ensure better performance. Because the Intel C++ Compiler is binary compatible with GNU C/C++ on Linux, this allows developers to build performance-critical libraries used by their applications with the Intel C++ Compiler to gain additional flexibility when porting applications from UNIX to Linux. Learn more about the best techniques to ensure ease in compiler transition, while gaining the best possible performance on your Intel® processor-based Linux platform.

Rogue Wave SourcePro C++
Rogue Wave SourcePro C++ is an integrated set of cross-platform, object-oriented C++ components based on the International Organization of Standards (ISO) and the American National Standards Institute (ANSI) standards. Rogue Wave SourcePro C++ products are provided with full source code and pre-built versions of the libraries. SourcePro C++ includes four primary components:

  • SourcePro Core—Fundamental C++ components
  • SourcePro DB—Components to provide relational database access in C++
  • SourcePro Net—Components for network and Internet communication
  • SourcePro Analysis—Components for business and scientific analysis
Consistent across multiple platforms, SourcePro C++ components share common, compatible interfaces. And because the components are highly integrated, SourcePro C++ enables developers to quickly migrate software to other platforms, in many situations, without having to rewrite code. Using the pre-built software components helps development teams increase productivity, but in order to achieve the maximum performance potential, the SourcePro C++ components require a compiler capable of producing highly optimized code.

Intel C++ Compiler
The Intel C++ Compiler for Linux offers excellent compatibility with GNU C/C++ and most Linux software utilities and contains advanced optimization features to easily maximize application performance. The advanced optimization features of the Intel C++ Compiler for Linux include high floating-point performance, inter-procedural optimization, profile-guided optimization, and vectorization support for processor specific instruction sets on Intel® architecture. Since the Intel C++ Compiler for Linux is compatible with the GNU C/C++ compiler, and both the Intel C++ Compiler and the Rogue Wave SourcePro C++ components are ISO- and ANSI-standard compliant, developers can minimize compatibility and migration issues. By compiling SourcePro C++ components with the Intel C++ Compiler, the libraries created can be custom built to specifically target the architecture and to maximize performance of desired applications on Intel architecture.

ISO conformance
Two widely used languages for software development are C and C++. Each of these languages has been standardized by various organizations. For example, ISO C conformance is the degree to which a compiler adheres to the ISO C standard. Currently, two ISO C standards are commonplace in the market: C89i and C99ii. C89 is currently the de facto standard for C applications; however use of C99 is increasing. The ISO C++iii standard was approved in 1998. The C++ language is derived from C89 and is largely compatible with it; differences between the languages are summarized in Appendix C of the ISO C++ standard. Very few C++ compilers offer full 100% conformance to the C++ standard due to a number of somewhat esoteric features such as exception specifications and export template. The Intel C++ Compiler offers a high degree of conformance.

The Intel compiler has a unique challenge in maintaining compatibility with other available compilers and functioning with these other compiler’s header files and libraries while also maintaining compatibility with the language standard. In order to accommodate these needs, the compiler in its default mode is compatible with these other compilers. On Linux, the Intel C++ Compiler is interoperable with the GNU g++ compiler. The Intel compiler also provides options to conform more closely to the ISO standard. These options are summarized as follows:


Compilation ModeDescription
DefaultCompatibility with GNU C++ compiler
-ansiCompatibility with GNU C++ compiler's definition of ISO conformance
-strict_ansiIntel C++ Compiler definition of ISO conformance
-[no-]c99C99 conformance and feature support
-std=c89C89 conformance and feature support

Software convention models using ELF visibility attributes

Tue, 04/05/2005 - 16:11

C Programming in Linux Tutorial: Many applications developed for Linux suffer performance degradation from symbol preemption, which is used by some developers of shared objects. We have described the problem, characterized the sort of applications most affected by it, and proposed the use of compiler options for the Intel compiler and GCC that reduce these performance problems by exploiting ELF symbol visibility features.

by Knud J. Kirkegaard, principal engineer, Paul Winalski, senior software engineer, and David C. Sehr, compiler architect, Intel Corp.

Many applications developed for Linux suffer performance degradation from a little-known and even less frequently used feature. That feature is symbol preemption, which is used by some developers of shared objects. Linux implements the Executable and Linking Format (ELF) object file format, which provides options to control the impact of symbol preemption. This paper describes the use of compiler options for the Intel® compiler and GCC that enable full use of the ELF symbol visibility features. This common set of compiler directives and command-line options was developed in collaboration with the GCC team at Red Hat and will be implemented in GCC from version 3.5. Our experience with several large applications running on the Intel Itanium® Processor Family has shown that very significant performance gains can be had with relatively little change to the customer application and build environment. What follows consists of four sections. The first discusses the class of applications that might encounter the overhead from preemption. The second describes the user model and options used to control preemption on a symbol-by-symbol basis. The third section presents an example and describes how performance is improved. The final section presents some conclusions.

Definitions
At run time, an application consists of one or more files that are mapped into a process address space by the runtime loader. Each distinct file is called a component of the application. There are two types of components. There is always one file that is the first one loaded for an application. This file is the main program component and there is always exactly one of them. Usually there are other components that are loaded with the application called shareable objects. As the name implies, a shareable object may be a component of more than one program. An example is libc.so, which is the shareable object version of the C run-time library.

A symbol is a name that represents a numeric value defined in an object file or a component file. Symbols typically represent the addresses of data items or routines. The linker (ld) is the program that builds components from object files produced by a compiler or by the assembler. One of the linker's main jobs is to resolve symbolic references between the object files that comprise a component. References to symbols in other components are resolved at execution time by the runtime loader (ld.so).

One key feature of symbol resolution on Linux is symbol preemption. By default, all global symbols in a component are visible to all other components. When the runtime loader loads a component, if the new component defines a symbol that already exists in a previously-loaded component, the definition in the new component is overridden (preempted) by the existing definition. The runtime loader re-binds references to the symbol in the new component to refer to the existing definition. Thus, if the runtime loader is loading component x.so that defines a routine foo(), and a previously-loaded component of the application has already defined foo(), calls to foo() in x.so are modified to call the existing definition in foo(), not the one in x.so. Note that symbols defined in the main program of an application cannot be preempted, since the main program is always loaded first.

Because of symbol preemption, the final value of a global symbol might not be known until run time. This inhibits many useful code optimizations. Fortunately, as we shall see, there are several techniques available to avoid the performance penalties that symbol preemption imposes.

The global offset table (GOT) is a data structure that contains a list of addresses of symbols in a component. All references to symbols that are preemptable must be made indirectly, by first loading the symbol's address from the GOT. This allows the runtime loader to preempt all of the component's references to a symbol simply by changing the value in the symbol's GOT entry.

Analysis to Identify Performance Opportunities
In general, applications that frequently call non-preemptable global functions or reference non-preemptable global static data are the most heavily impacted by preemption overheads. To diagnose whether your application is incurring overheads due to preemption, one should begin by examining the hottest functions in the application, as determined by gprof or a similar execution time profiler. The hottest functions typically contain the largest opportunities for improvement. Once the hottest functions have been identified, one should inspect them to determine whether they perform large numbers of calls to functions that should have been marked as non-preemptable, or they perform a large number of direct references to global data items that should have been marked non-preemptable. A direct reference is a reference without any 's in C or C++, and a global data item is a data item declared outside any function without using the "static" keyword.

A direct reference to a preemptable global data item requires 2 levels of indirection to access the data value. First the offset into the global offset table must be determined, then the pointer to the global object can be loaded from the global offset table and finally the object value itself is loaded. In addition to the code size, the 2 levels of indirection also increase the pressure on the data caches. By creating assembly listings for hot functions, using gcc or the Intel compiler with the S option, one can get an idea on the number of references through the global offset table by looking for the ltoff relocations. Through the use of the software models described in the following section it may be possible to reduce both code size and data cache behavior.

Position independent code is a requirement for a symbol to be preemptable, however once it has been determined that a symbol will not be preempted it may also be possible to use position dependent code to reference the symbol if it will be linked into the main executable. It is of course not possible to use position dependent code for any symbol in an object that will be used in a shared object. To analyze the effect of marking symbols as non-preemptable and possibly referenced by position dependent one should notice the static number of ltoff references decrease in assembly and disassembly listings and the number of gprel and movl increase.

The overhead of calling a function that is preemptable is to save and restore the global domain pointer across the call and the linker must resolve the relocation such that preemption can occur. By marking a global function as non-preemptable we know it will be bound within the same global domain and therefore it is no longer necessary to save and restore the global domain pointer across the call site to the function. The linker will also benefit from knowledge of a global function that is not preemptable, as the linker may bind the symbol at link time instead of generating an import stub for the call site that has to be resolved at load time. On the other hand if it is known that a call to a global function will be to another shared object the software model options described makes it possible to mark the symbol as it will always be resolved from another component and the import stub can be inlined for better code locality.


Embedded development - QNX or Linux?

Sun, 10/24/2004 - 14:38

Embedded Real Time Operating System Design: Linux and QNX gained notoriety because of the obvious potential for both as the operating systems and development platforms for Web appliances. Linux had mostly been used as a server OS and QNX mainly as an industrial embedded real time operating system (RTOS). Linux and QNX can be used for developing smaller, more capable portable devices. This paper will brief you the embedded development capabilities of Linux and QNX for real time operating system design.

by Thomas W. Burger. Intel Corp.

In the late 1990s, the Web appliance was touted as the next "big thing," a new device for an emerging market that would create a next generation of consumer IT giants. At the Consumer Electronics Show in Las Vegas, Nevada and the QNX 2000 International Technology Conference in Vancouver, British Columbia many vendors, large and small, showed off multiple visions of the future.

Intel built a Web appliance based on Linux. Microsoft partners made Web Companions based on a scaled down version of the Windows CE operating system. Many others, like 3Com's prototype and the Netpliance iOpener, were based on QNX. At that time Web appliances seemed the likely next step in consumer electronics. Simpler than PCs, they also offered far less functionality. At best they could be considered, as Ken Kalinoski, VP of development at Netpliance called it, a "Rich Client" device that required a dedicated and proprietary server to connect to. The subsequent lack of Web appliances on the shelves of Best Buy and Walmart showed that consumers did not want an appliance that could browse the Web and perform simple email tasks but could not do even simple word processing or store data. Web devices were being sold at less than cost in anticipation of service revenues that never came. Consumers also did not like the idea of being tied to a specific service provider.

Linux and QNX gained notoriety because of the obvious potential for both as the operating systems and development platforms for Web appliances. Linux had mostly been used as a server OS and QNX mainly as an industrial embedded Real Time Operating System (RTOS). To exploit this new market, many developers discovered the capabilities of Linux and QNX in developing smaller, more capable portable devices.

In hindsight, the Web appliance was an idea ahead of technology. There was the software and engineering talent available to produce these devices, but not the hardware and infrastructure to allow the functionality, versatility, and portability required to make the Web appliance the new must-have tech-toy. Advances in cell phone and PDA technology, improvements to digital cameras, lower power requirements, and greater memory capacities, far greater embedded/mobile CPU speeds, and, possibly the most important factor, 802.11b and 802.11g WiFi wireless networking has the Web appliance resurrected as a multifunction device. This combines a computer, organizer, office software suite, cell phone, camera (still and movie), pager, music player, and, of course, email system and Web browser into a single wireless unit that fits in a pocket.

Four years later, an eternity in technology terms, we are on the verge of a new "Next Big Thing." Advances in hardware and in-place wireless and service infrastructure for the already enormous PDA and Internet capable cellphone market has created a great demand for devices that can do more, are more compact and have longer battery life. This has renewed interest in embedded development platforms that can provide the requirements necessary to compete in a market that is worth billions of dollars.

This is where the design similarities end. Linus Torvalds designed Linux to run on a standard PC hardware as a generalized OS using a monolithic kernel architecture. The kernel contains almost all of the functionality of the entire OS. In contrast QNX was designed to be extremely modular and scalable. QNX is a realtime operating system based on a microkernel—small enough to be embedded on a chip but capable of running a workstation or a large networked server system.

Linux for embedded development
Designers of embedded systems have long used the Linux operating system, because of its robustness, relative compactness, versatility, low cost, and open source licensing model. Linux lets the designer leverage a large pool of developers, a rich legacy of source code, and industry-standard Portable Operating System Interface (POSIX) APIs.

The standard Linux kernel does not have realtime capabilities (predictable response times and microsecond latencies, often referred to as deterministic behavior) that many embedded systems demand such as fly-by-wire controls, ABS braking systems, continuous media, and medical devices. But Linux can be used as is in consumer devices that are not subject to deterministic issues. In order to provide for the requirements of embedded devices now being developed, where more predictable speed and timing behaviors are required, several Linux products have emerged.


Getting started with a Linux software-development toolchain

Wed, 07/28/2004 - 12:24

C Programming in Linux, Programming Tools : The choice of a code editor or integrated development environment may be hardest to make. There are so many choices, so many visual styles, and so few metrics one can use to determine which works best for a specific developer, development team, or project. Rather than attempting to present a comprehensive list of Linux development tools—which can be easily gathered with a Web search—here are just a few tools for native C/C++ projects in Linux, that come highly recommended.

by Alan Zeichick, principal analyst, Camden Associates. Intel Corp.

For many Windows developers, Linux presents a learning challenge. Not only does Linux have a different programming model, but it also requires its own toolchain, as programmers must leave behind the Visual Studio or Visual Studio .NET suites and third-party plug-in ecosystem. This article helps Windows developers understand the options available as they seek to replicate, on Linux, the rich and efficient toolchain experience they've long enjoyed on Windows.

Making the move to Linux can be an exciting and challenging opportunity for Windows developers. The power of the open-source operating system, including its support for a wide variety of hardware platforms, is appealing. So, too, is its now-legendary stability, performance and scalability. But programmers seeking to write software for Linux will need the appropriate native software development tools—and finding the right toolchain can be a challenge in its own right.

The toolchain challenge
Why is there a toolchain challenge? The short answer is, because the Linux world has grown organically, with separate teams and open-source projects building different parts to suit their own needs and schedules. There's no unifying vision between the operating system and development tools. The open-source project led by Linus Torvalds that just introduced kernel 2.6, for example, is unrelated to the contributors who evolve the GNU Compiler Collection, Borland Kylix, the Intel VTune Performance Analyzer, or the open-source Eclipse project founded by IBM.

By contrast, Microsoft designs and builds its tools (now consolidated under the Visual Studio suite) in close lockstep with each evolution of the operating system, with an eye not only to adding those features that developers want most, but also guiding programmers into a specific software-development model.

Plus, Microsoft, through VS and VS.NET, as well as its Visual Studio Integration Partner program and MSDN subscription service, intends its tools to be the "official " software development resources for Windows. There's no such default "official " choice with Linux. Even though most Linux distributions come with a wide variety of command-line tools, and even some GUI offerings, there's no particular reason to use those tools instead of other open-source or commercial-license products.

Linux development tools, part 1

Wed, 07/28/2004 - 07:31

Linux Development Tools: The GNU Free Software Foundation created and maintains the GNU Compiler Collection. GCC can compile programs written in C, C++, Objective-C, Fortran, and Java.

by Carla Schroder. Intel Corp.

The GNU Free Software Foundation created and maintains the GNU Compiler Collection. GCC can compile programs written in C, C++, Objective-C, Fortran, and Java. One compiler, many uses. Front-ends for other languages exist, but have not been integrated into GCC. But it is endlessly adaptable, so you can write your own if you need something in particular. GCC is designed for the widest range of cross-platform development—Intel®, Alpha, Sun, Apple, and so forth—from 64-bit to embedded devices.

The GNU Compiler Collection
GCC gives the programmer extensive control over the compilation process: stop at any stage and inspect compiler output. The GNU (pronounced guh-NEW) debugger, gdb, gives fine-grained control over the level and type of debugging information for every language supported by GCC, including the assembly language for every microprocessor that GCC supports. It even supports remote debugging. The make command controls most aspects of the development process: compilating, installating, and even documenting.

Every version of Linux includes GCC. There is no graphical interface for GCC. Fear not, for true power lies in the command line, and abundant documentation exists for it. Anytime you want to know more about anything in this article, call up its corresponding info or man page (example: info gcc, or man gcc). The GNU foundation keeps its most current documentation on info pages, and no longer updates its man pages. If you are not familiar with info pages, take five minutes to go through the built-in tutorial. Once you become familiar with it, navigating large complex documents is fast and easy. Simply type info at the prompt, then the letter h to get into the help system.

The current release is 3.1. Generally it is best to have the current version since significant improvements are made with each release. 3.1 generates significantly faster code than previous versions. gcc's traditional strengths are flexibility and cross-platform capabilities. In most benchmarks it lagged behind other, more specialized compilers, such as Intel's Linux C++ compiler—until version 3.1. (The gcc developers use the SPEC2000 and SPEC95 benchmark suites for testing.) The x86 back end has a number of significant improvements:

Using Intel C++ Compiler 8.0 with the Eclipse Integrated Development Environment on Linux systems

Tue, 05/11/2004 - 13:28

Free C / C++ Compiler: The Eclipse Project is an open-source software-development initiative whose aim is to provide a robust, full-featured, commercial-quality industry platform for the development of highly integrated software tools. Its core framework and set of services support a variety of plug-ins—including CDT, which provides integrated development tools that support C/C++ development.

Intel Corp.

The Eclipse Project is an open-source software-development initiative whose aim is to provide a robust, full-featured, commercial-quality industry platform for the development of highly integrated software tools. Its core framework and set of services support a variety of plug-ins—including CDT, which provides integrated development tools that support C/C++ development.

To download, click link below.

Extending Xen* with Intel® Virtualization Technology

Wed, 04/04/2007 - 18:36

Linux Xen Virtual Server: Xen is an open source virtual machine monitor (VMM) developed at the University of Cambridge to support operating systems (OSs) that have been modified to run on top of the monitor. Intel has extended the Xen VMM to use Intel Virtualization Technology (VT) to support unmodified guest OSs also. This was done for IA-32 Intel Architecture processors as well as Itanium architecture processors.

ABSTRACT

Xen* is an open source virtual machine monitor (VMM) developed at the University of Cambridge to support operating systems (OSs) that have been modified to run on top of the monitor. Intel has extended the Xen VMM to use Intel® Virtualization Technology? (VT) to support unmodified guest OSs also. This was done for IA-32 Intel® Architecture processors as well as Itanium® architecture processors.

In this paper we describe the changes that have been made to Xen to enable this support. We also highlight the optimizations that have been made to date to deliver good virtualized performance.

INTRODUCTION

Xen is an open source virtual machine monitor (VMM) that allows the hardware resources of a machine to be virtualized and dynamically shared between OSs running on top of it [1]. Each virtual machine (VM) is called a Domain, in Xen terminology. Xen provides isolated execution for each domain, preventing failures or malicious activities in one domain from impacting another domain. The Xen hypervisor and Domain0 (Dom0) are a required part of any Xen-based server. Multiple user domains, called DomainU in Xen terminology, can be created to run guest OSs.

Unlike the full virtualization solutions offered by the IBM VM/370*, or VMware’s ESX* and Microsoft’s Virtual PC product*, Xen began life as a VMM for guest OSs that have been modified to run on the Xen hypervisor. User applications within these OSs run as is, i.e., unmodified. This technique is called “paravirtualization,” and it delivers near native performance for the guest OS, only if the guest OSs source code can be modified.


To read more, click link below to subscribe to Intel® Software Dispatch and begin receiving Intel® Software Insight, a quarterly e-zine focused on the topics software-industry leaders care about. Once you fill out the brief subscription form, you will be able to download the pdf and continue reading Extending Xen* with Intel® Virtualization Technology.

To read complete article, click download below.

Download: Rational Software Modeler

Wed, 06/21/2006 - 16:47

Rational Software Modeler Free Download Software Design Patterns UML Editor: Download IBM Rational Software Modeler free trial. Rational Software Modeler is a UML visual modeler and design tool. Clearly communicate and document your system designs. Rational Software Modeler supports team development collaboration by integrating with other tools in your development environment.

Download a free trial version of IBM Rational® Software Modeler. Rational Software Modeler is a customizable, UML-based visual modeling and design tool that enables users to clearly document and communicate these system views. Rational Software Modeler also integrates with other tools in your environment to support team development.


Download free trial here.

Develop Spring applications for WebSphere Application Server Community Edition, Part 1: Spring MVC

Mon, 05/14/2007 - 08:22

Learn to develop Spring applications that you can use with IBM® WebSphere® Application Server Community Edition, a free, lightweight Java 2 Platform, Enterprise Edition (J2EE) application server. With this tutorial, you'll get familiar with database connection management options available to you while developing Spring applications, and learn how to use an open source connection pool implementation.

Read Tutorial here.


Porting applications to Linux Standard Base made easy

Fri, 11/18/2005 - 15:36

Use the Linux Standard Base Development Kit to reduce overall LSB conformance testing time and cost.

by Rajesh Banginwar, systems architect, and Nilesh Jain, Channel Sotware Operation, Intel Corp.

The Linux Standard Base (LSB) specifies the binary interface between an application and a runtime environment. This paper discusses the LSB Development Kit (LDK) consisting of a build environment and associated tools to assist software developers in building/porting their applications to the LSB interface. The developers will be able to use the build environment on their development machines, catching the LSB porting issues early in the development cycle and reducing overall LSB conformance testing time and cost. The associated tools include the application and package checkers to test for LSB conformance of application binaries and RPM packages.

The paper starts with the discussion of advantages the build environment provides by showing how it simplifies application development/porting for LSB conformance. With the availability of this additional build environment from LSB working group, the application developers will find the task of porting applications to LSB much easier. We use the standard Linux/UNIX chroot utility to create a controlled environment to keep check on the API usage by the application during the build to ensure LSB conformance.

After discussing the build environment implementation details, the paper briefly talks about the associated tools for validating binaries and RPM packages for LSB conformance. We conclude with couple of case studies that demonstrate usage of the build environment as well as the associated tools described in the paper.

Linux Standard Base overview
The Linux Standard Base (LSB) [1] specifies the binary interface between an application and a runtime environment. The LSB Specification consists of a generic portion gLSB, and an architecture-specific portion, archLSB. As names suggest, gLSBs contain everything that is common across all architectures, and archLSBs contain the things that are specific to each processor architecture, such as the machine instruction set and C library symbol versions.

As much as possible, the LSB builds on existing standards, including the Single UNIX Specification (SUS), which has evolved from POSIX, the System V Interface Definition (SVID), Itanium® C++ ABI, and the System V Application Binary Interface (ABI). LSB adds the formal listing of what interfaces are available in which library as well as the data structures and constants associated with them.


components of LSB 3.0

Figure 1: LSB Components—Components of Linux Standard Base (LSB) 3.0 (click image to enlarge)

Figure 1 shows the components of LSB 3.0 including the set of libraries covered in the specification. For applications to be LSB compliant, they are allowed to import only the specified symbols from these libraries. If application needs additional libraries, they either need to be statically linked or bundled as part of the application.

Threading Basics for Games

Tue, 11/21/2006 - 18:52

Upgrade Computer Processor Speed Video Game Programming Software: We define threading as running different sections of code simultaneously on different processors. The diagram below shows the difference between single- and dual-threaded processes. The single-threaded code executes serially throughout its run. Notice that the dual-threaded code has two sections that execute concurrently during its run.

Threading Synopsis

We define "threading" as running different sections of code simultaneously on different processors. The diagram below shows the difference between single- and dual-threaded processes. The single-threaded code executes serially throughout its run. Notice that the dual-threaded code has two sections that execute concurrently during its run. By running these two parallelizable sections of code at the same time, the entire run now takes less time to execute (notice the dashed area).


Writing portable, adaptable code using CompLib

Mon, 09/05/2005 - 16:34

There may be no such thing as completely portable code, but with the release of a new Linux version of a component library to developers, writing portable, adaptable code just got easier. More on CompLib, operating system independent programming and OSI

by Ravi Murty, senior network software engineer, Corporate Technology Group, and Ashok Raj, senior staff software engineer, Intel Corp.

Writing code just got easier
There may be no such thing as completely portable code, but with the release of a new Linux version of a component library to developers, writing portable, adaptable code just got easier. A noncommercial product, the Intel® operating system independent (OSI) library implementation called CompLib has been used by Intel developers to port their applications from one platform to another. Now this rigorously tested and effective tool is available to any software engineer wanting access to a critical resource for creating more flexible, robust applications.

With today's large and complex applications, there are strong incentives to reuse and port code to new platforms. A lack of readily available OSI libraries has hindered efforts to generate applications that can easily port from one system to another. But by using CompLib, a developer can do more than write code that is just adapted to new operating systems.

What is CompLib?
CompLib is an operating system independent (OSI) library of functions that abstracts the OS services and performs some porting tasks for you. It includes abstractions for common OS primitives, such as memory allocation, deallocation, spinlocks, semaphores, timers, events, and so on. In addition, CompLib also abstracts compiler directives to hide differences between different compilers and tools. One example of this is the directive that lets the writer pack a structure.

For example, Figure 1 below shows a segment of code that allocates memory and checks the value of the returned pointer. In Figure 1, the code is implemented using #ifdef’s to make it portable across several different OSes. Figure 2 shows the same code written using CompLib. Notice that cl_malloc() is implemented for each OS. It is evident from looking at the code that the code is not only portable and extendible to a new OS—by implementing a flavor of CompLib for that new OS—but it will also be easy to read and maintain.


... 
/* Allocate memory in an OS dependent manner */ 
#if defined(LINUX) 
pMemory = kmalloc(...); 
#endif /* LINUX */ 
#if defined(EFI) 
BS->AllocatePool(..., &pMemory) 
#endif /* EFI */ 
#if defined(VXWORKS) 
... 
#endif /* VXWORKS */ 
if (pMemory == NULL) 
 
... 
 

Figure 1. Code that tries to allocate a block of memory.



... 
pMemory = cl_malloc(...); 
if (pMemory == NULL) 
 
... 

Figure 2. Code written with an OSI library.

With an OSI library such as CompLib, developers can now write most or all of their drivers and applications independent of the operating system. Once they implement CompLib functions in the base code, they can move between platforms fairly quickly.

The Intel OSI reference implementation, CompLib, currently supports four OSes: Windows, Linux, EFI (Extensible Firmware Interface), and VxWorks. The Linux version of CompLib is now available (free) online for developers to use.

Advantages to porting code
Although portable code is not appropriate for all projects, it does have its advantages, including:

    Intel software development products

    Wed, 11/10/2004 - 06:17

    Intel's Software Development Products are a full suite of tools - compilers, analyzers, performance libraries, threading tools, cluster tools, and more - that help developers get the most from Intel architecture.

    from Intel Corp.

    The Intel® Software Development Products are a full suite of tools that can help developers easily create the fastest software possible on Intel architecture. Our tools are compatible with the leading development environments available today, and are easy to use with the tools developers are already utilizing to tune their software.

    Get the whole story on Intel Trace Collector, VTune Performance Analyzer, threading tools, MPI Library, and more by clicking link below.

    © 2004 Intel Corp.


    Discussion Forum: Visual Fortran Compiler for Windows

    Sat, 05/21/2005 - 11:52

    Intel Visual Fortran Multicore Compiler for Windows OpenMP Multithreaded Applications: To take advantage of multicore, you want to make your application multithreaded, so that independent tasks can run in parallel. The compilers support OpenMP, which is an industry-standard approach to specifying parallel behavior in Fortran (and C) applications, and they also support automatic parallelization, though that won't get all the benefits of user-directed parallelism.

    This forum is the place to ask questions of and share information with other users of Intel Visual Fortran. Compaq* Visual Fortran users are also welcomed.

    To go to forum, please click link below.

    Intel Cluster Tools for the System Administrator and Software User – A Case Study

    Thu, 04/05/2007 - 06:08

    Dedicated Server Hosting Cluster StarCD Computational Fluid Dynamics HPC Software: The power of the modern HPC Cluster is brought to the end user more often than not through software like StarCD or Fluent, two typical applications in the area of computational fluid dynamics (CFD). As long as everything works correctly – or at least as expected – neither the engineer setting up the computations nor the administrator ensuring the smooth work of the cluster actually knows what goes on inside the binary package doing all the calculations.

    by Michael Hebenstreit

    The power of the modern HPC Cluster is brought to the end user more often than not through software like StarCD* or Fluent*, two typical applications in the area of computational fluid dynamics (CFD). As long as everything works correctly – or at least as expected – neither the engineer setting up the computations nor the administrator ensuring the smooth work of the cluster actually knows what goes on inside the binary package doing all the calculations.

    Unfortunately things tend to go wrong. At this point, the question "What is going on?" is fundamental to answering "How can I fix this problem?". If you are not able to answer the former question, everything you do is akin to feeling around in the dark. Even if you are able to solve the issue, you might still be wondering exactly why your fix worked, and if it is going to be an only temporary solution. Here we will speak about the Intel Cluster Tools, specifically the Intel Trace Collector, Intel Trace Analyzer and Intel MPI Benchmarks, which should be able to shed some light into this binary darkness.

    At a customer visit, the author was faced with an Hewlett-Packard (HP)*/Intel Itanium 2 1.5GHz cluster running StarCD* over a Gigabit Ethernet switch. The customer was very dissatisfied with the performance of the system, pointing out that they were neither able to run a simple 32-thread job with high efficiency nor could they reproduce the benchmark results originating from the time of purchase. The author quickly verified during the visit that the main problem was the CPU utilization of each node – showing only around 60% instead of the usual mark of 95-100%


    Measuring Performance on HT-Enabled Multi-Core: Advantages of a Thread-Oriented Approach

    Thu, 04/05/2007 - 07:34

    Improve Server Performance Monitoring Software Multi-core Programming: From a hardware point of view, multi-core processors are simply single-die physical packages that provide capabilities similar to traditional symmetric multiprocessing (SMP) machines, and inevitably inherit most of the performance monitoring problems a programmer typically faces while working with SMP.

    Introduction
    By: Sergey N. Zheltov and Stanislav V. Bratanov, Senior Software Engineers, Intel Corporation

    From a hardware point of view, multi-core processors are simply single-die physical packages that provide capabilities similar to traditional symmetric multiprocessing (SMP) machines, and inevitably inherit most of the performance monitoring problems a programmer typically faces while working with SMP.

    We will address such performance estimation problems and advocate a thread-oriented approach to performance monitoring as an efficient way of dealing with multi-threaded code. At the same time, we will also address this as a basis for solving the particular task of monitoring Hyper-Threading Technology (HT Technology)-enabled multi-core systems.

    This article discusses several methods and provides solutions to the problems which cannot be solved without the notion of the actual thread layout over time, thread activity, and interaction.

    The problem of monitoring the utilization of resources shared between multiple cores or CPUs is discussed in an example of measuring bus utilization. A solution based on per-thread monitoring is suggested, and compared with sampling-based approaches.

    Preparing Applications for Intel® Core™ Microarchitecture

    Thu, 04/05/2007 - 08:55

    Intel Dual Core Computer Processor Microarchitecture: Currently, optimizing applications for a desktop platform is not the same as doing it for the mobile platform due to differences in the usage models for each platform. Intel Core microarchitecture combines the best of the desktop Intel NetBurst microarchitecture and mobile Pentium architecture.

    Introduction
    By Khang Nguyen

    Contributors: Bob Valentine, Erik Niemeyer, Paul Lindberg

    Currently, optimizing applications for a desktop platform is not the same as doing it for the mobile platform due to differences in the usage models for each platform. Intel® Core™ microarchitecture combines the best of the desktop Intel NetBurst® microarchitecture and mobile Pentium® architecture. As Intel will be using a single architecture for both the desktop and mobile platforms, the challenge is how to prepare your applications so that they can run well on Intel Core microarchitecture. What can we do with existing and new desktop and mobile applications to make them ready when the new Intel processors hit the market? This paper is not intended to show users everything they can do to improve the performance of existing applications on the Intel Core microarchitecture. It only suggests some techniques to either improve or maintain the performance of an existing application when running on systems with these new Intel® processors.

    Techniques
    Cache

    Data in cache is accessed much faster than that in the main memory. Therefore, always try to load data in cache as much as possible. One of the features of Intel® Core™ microarchitecture is that level 2 cache is shared among cores. The primary benefit of a shared L2 is L2 data-sharing between threads running on different cores on the same die. This necessitates reevaluation of the mapping of hot data sections to threads in an application to ensure maximum hits in the L2. The other advantage of shared L2 cache is that if one core is disabled, the remaining core can make use of the full L2 cache. In order to get the number of threads that share the level cache, you need to execute instruction cpuid with eax = 4 and ecx = 0, 1, 2... (0, 1, 2 corresponding to the cache level 1, 2, and 3 if it exists, respectively.) The number of threads will be obtained by adding 1 to the return value in eax[25:14].

    Note that in some systems, there is an option in the bios to toggle the “maximum input value”—you need to disable it. This option is used to limit the maximum value returned by executing cpuid with eax=0 to 3. This option is needed to boot Windows* NT 4.0. Without setting the limit of this value, Windows NT will hang up with a blue screen (screen of death). With this setting, executing cpuid with eax=4 will result in an error. Make sure that the "maximum input value" is the same in all processors.

    Intel C++ Compiler 8.1 for Linux free downloads

    Mon, 11/08/2004 - 19:00

    from Intel Corp.

    Intel® C++ Compiler for Linux accelerates your software development, shortens your configuration time and improves your software performance while preserving your development investment. The compiler also provides these benefits:

    • Compatibility with Linux utilities—including widely-used utilities such as make, Emacs, and gdb—saves you time and effort
    • Interprocedure optimization (IPO) creates faster code through inlining, replacing multiple function calls with actual function codes, and performing absolute rather than relative addressing wherever possible
    • Highly-optimized, floating-point emulation allows development of performance-sensitive applications that use floating-point operations.
    • Intrinsic functions accessed from the C++ level make it easy to use Single Instruction Multiple Data (SIMD) technology from the C++ application level.
    • Multithreaded application support for OpenMP* and auto-parallelization is available.
    • Intel Debugger saves you effort.
    • Supports the new Intel Extended Memory 64 Technology (Intel EM64T).
    What's new
    Intel C++ Compiler 8.1 for Linux improves on existing functionality and continues to provide outstanding application performance for software running on Intel processors.

    Here are some of the new features:

    • Includes tools for Linux* software developers to create applications that run at top speeds on Intel processors using Intel Extended Memory 64 Technology (Intel EM64T). An add-on package includes all the features required to develop high performance applications with Intel EM64T.

    • Note: The Intel C++ Compiler 8.1, Extended Memory 64 Technology Edition for Linux is a separate executable that is included with Intel C++ Compiler 8.1 for Linux. Please check your Intel Premier Support account for specific download information>
    • Integrates with the Eclipse open source integrated development environment (IDE) to facilitate use of this increasingly popular development alternative.
    • Intel C++ Compiler 8.1 for Linux ships with a copy Eclipse to expedite your integration efforts. For more information on Intel software products that are compatible with Eclipse, click here. Please Note: Intel does not provide technical support for the Eclipse IDE.
    • Further helps you to develop high performance applications by:
      • Adding compiler options, such as /QipoN.
      • Simplifying compiler options, for example the -fast option combines the four existing compiler options /03, /Qipo, /static and /QxP into a single compiler option.
    • Continues to provide compilers for the latest Intel Xeon™ processors.
    • Allows developers to profile applications given specific workloads using the Compiler Code-Coverage Tool.
    • Saves developers testing and debug time with the Compiler Test-Prioritization Tool.
    • Supports both automatic and manual precompiled header processing, dramatically improving compilation time.

    GMA X3000 Development Guide

    Wed, 04/04/2007 - 19:02

    Intel Integrated Graphics Controller Embedded Graphics Chip GPU Review: The GMA X3000 is the fourth generation of Intel Integrated Graphics. As with previous generations, the GMA X3000 chipset continues to add features that enable consumers to have a wealth of features at much lower cost than discrete graphics solutions.

    Introduction

    by Rahul Sathe and Oliver Heim

    The GMA X3000 is the fourth generation of Intel Integrated Graphics. As with previous generations, the GMA X3000 chipset continues to add features that enable consumers to have a wealth of features at much lower cost than discrete graphics solutions. As these integrated solutions become more commonplace in the market, it becomes ever more important for 3D developers to support and target the feature set of Intel’s Integrated Solution. Intel Graphics is designed to meet the display needs for the majority of the business and consumer users. The graphics core is built into the chipset. It shares system memory with the CPU to keep the system architecture balanced at a compelling cost for the customer. Intel’s GMA capabilities match or exceed many more expensive graphics card solutions. PC buyers have appreciated this balanced approach to system design, and Intel Graphics is currently the number one graphics solution chosen by new PC purchasers. This can be seen in the second quarter 2006 data from Mercury Research which shows Intel Integrated Graphics to have a 34% of the market in 2006.

    This document describes the Intel® Graphics Media Accelerator (Intel® GMA X3000) and provides development hints and tips to ensure that your customers will have a great time playing your games and running other interactive 3D graphics applications. We welcome feedback from ISV community and our customers.

    Optimal Performance on Multithreaded Software with Intel® Tools

    Thu, 04/05/2007 - 08:32

    What is Hyperthreading Future Silicon Chips Computer Technology Linux Development Tools Performance Analysis Software : Recent advances in silicon technology have changed the trade-offs in micro-processor architecture. Larger transistor counts have facilitated the design of Hyper-Threading Technology (HT Technology) and multi-core processors. A processor with HT Technology can provide two logical processors in one physical core.

    Introduction
    by Gail Lyons

    Recent advances in silicon technology have changed the trade-offs in micro-processor architecture. Larger transistor counts have facilitated the design of Hyper-Threading Technology (HT Technology) and multi-core processors. A processor with HT Technology can provide two logical processors in one physical core. The physical resources of the core are shared between the two logical processors, and the state information that is needed to support each logical processor is duplicated. Applications rarely consume all of the physical resources of a core, so HT Technology enabled cores can improve the performance of many applications.

    Multi-core technology places more than one core in a physical package. Multi-core processors may have a shared cache between its cores, or have a dedicated cache topology for each core. The performance characteristics of HT Technology and multi-core processors depend on processor topology and its cache topology on the platform. Optimal performance of multithreaded software requires effective management of shared and dedicated resources available to each logical processor.

    Although the processor and cache topology in a modern platform are more complex than those of a traditional symmetric multi-processor design, this paper will demonstrate a detailed algorithm of enumerating processor topology. It will also show how to bind a thread to a specific processor under a Linux environment.

    Combining Linux Message Passing and Threading in High-Performance Computing

    Mon, 12/05/2005 - 18:50

    Linux Server Appliance EDI Linux Software: Message passing is an important tool for sites relying on HPC on Linux-based systems. It enables large data sets to be tackled with ease and often represents an important adjunct to threading-based solution design.

    by Andrew Binstock, principal analyst, Pacific Data Works LLC. Intel Corp.

    Message passing is an important tool for sites relying on high-performance computing (HPC) on Linux systems. It enables large data sets to be tackled with ease and often represents an important adjunct or alternative to thread-based solution design. Integrating message passing and threading has its challenges, however.

    High-performance computing is characterized by running multiple tasks in parallel. These tasks tend to be similar in nature and can be run on different systems (as in a cluster or a grid), different processors (on a single system) or even different execution pipelines (as on processors with Hyper-Threading Technology). HPC systems add computing power by the addition of discrete computing engines (be they blades, nodes, or processors) rather than by upgrading existing processors. This aspect underscores one of the salient aspects of HPC: the number of executing processes can vary, and so software must be architected to scale dynamically across the number of available execution units.

    One way to write software that dynamically takes advantage of a variable number of execution resources is to use OpenMP, a set of threading interfaces and tools that greatly simplifies threaded programming. Using OpenMP pragmas (in C/C++, or directives in Fortran), you can generate an executable that determines at run time the appropriate number of threads to create and then distribute a workload over these threads dynamically. OpenMP's other advantages, such as portability across a wide set of platforms, are detailed in a series of articles on this Web site. These articles also explain how to get started with OpenMP. For additional information, go to the OpenMP home page at www.openmp.org.

    To read more, click link below.

    Building from scratch: open standards and mobility

    Thu, 04/21/2005 - 16:00

    Open Standards and Mobility: Scaling, whether on a single university server or a massively distributed e-commerce application, is a challenge that just about every coder will encounter at some point in a career. And mobility only compounds the scaling issue, as new mobile phone and PDA-powered users begin banging on web applications designed for desktop and laptop browsers. A rugged mobile solution can be built in mobile operating systems like Palm OS, Symbian OS, Windows CE, etc. Learn about mobile open standards, competing technologies with WML, and more.

    by Geoff Koch, editor. Intel Corp.

    The URL coursework.stanford.edu had humble enough beginnings in the late 1990s.

    "It started as a research project and I was the only developer working on it," said Scott Stocker, a former Master's student who today is director of Web communications at Stanford.

    The online course management tool is used by around 600 professors each quarter to post assignments, foster online discussion and administer quizzes. Stocker, who has long since moved on and up the Stanford IT hierarchy, left behind a full-time staff of four to manage the application he built from scratch.

    Scaling, whether on a single university server or a massively distributed e-commerce application, is a challenge that just about every coder will encounter at some point in a career. And mobility only compounds the scaling issue, as new phone and PDA-powered users begin banging on Web applications designed for desktop and laptop browsers.

    From academia to industry, hands-on programmers are using a handful of best practices to address the explosion of scaling issues. Many are still employing an eat-your-vegetables kind of coding common sense. But a rising tide of tools, applications, and documentation may soon make it easier to mobilize Web applications for new and different kinds of users.

    Coding and mobile users
    Stocker's users were professors who, despite having impressive resum's and jobs at tech-steeped Stanford, had varying degrees of Web competency. The application had to be flexible (to be useful both to the Web pros and knaves on the faculty), robust (if it crashed or was buggy, no one would use it) and inexpensive (Stocker was a staff of one funded by a small grant from the Andrew W. Mellon foundation, to develop new learning management tools).

    The approach, as is fairly common in academia, was to get the ball rolling with open standards and open source.

    The application's lower level guts were all open source, as Stocker built on top of the Linux operating system and mySQL database. Though it was a pre-J2EE world, Stocker still choose Java, and relied heavily on servlets and JSPs.

    Unlike Common Gateway Interface (CGI) programs, Java servlets are persistent, standing by in memory to fulfill multiple requests once they're started. Beyond the benefits of separating a Web page's logic from its static elements, JSPs aren't restricted to any specific platform or server.

    As coursework.stanford.edu moved from this-might-actually-work to mission critical, Stanford's main IT shop eventually stepped in to support Stocker's creation. Stanford IT is a Sun/Solaris/Oracle database environment, but the open source Java APIs plugged in easily enough to this backend.

    "It's just the nature of Java Web applications that make them easy to scale," said Stocker. "The [Java] platform is TCP/IP based. It doesn't matter if the database is on a separate computer; the JDBC protocol allows for easy communication with the database over TCP/IP."

    Intel® C++ Compiler for Linux

    Sun, 04/03/2005 - 17:37

    C Compiler Free Download GCC Code Coverage Linux Performance Tool: Gain optimal performance from your Linux applications running on the latest Intel processors. The Compiler is source and object compatible with GNU C++ Compiler.

    Gain optimal performance from your Linux* applications running on the latest Intel processors. The Compiler is source and object compatible with GNU C++ Compiler.
    To sign up for a free 30-day evaluation license, click link below

    Intel Fortran Compiler 8.1 for Linux

    Tue, 11/09/2004 - 16:31

    Intel Corp

    Reduce time-to-market, optimize your code for Intel® architecture and leverage existing investments with the latest Intel Fortran Compiler 8.1 for Linux updates:

    • Includes support for Intel® Extended Memory 64 Technology (Intel® EM64T) with features required to develop high performance applications using Intel EM64T.

    • Note: The Intel Fortran Compiler 8.1, Extended Memory 64 Technology Edition for Linux is a separate executable that is included with Intel Fortran Compiler 8.1 for Linux. Please check your Intel Premier Support account for specific download information.
    • Simplifies compiler options, for example the -fast option combines the four existing compiler options /03, /Qipo, /static and /QxP into a single compiler option.
    • Provides optimization support for the latest Intel Xeon® processors.
    • Allows developers to profile applications given specific workloads with the Compiler Code-Coverage Tool.
    • Automates selection and prioritization of application tests to save testing time using the Compiler Test-Prioritization Tool.

    p> © 2004 Intel Corp.


    Performance Scaling in the Multi-Core Era

    Thu, 04/05/2007 - 08:47

    History Personal Computer Industry Trends Analysis Information Technology Culture Changes: Those gains have powered the growth of today’s trillion-dollar electronics industry, put personal computers into businesses and homes throughout the world, and given rise to computing as a fundamental business enabler.

    Introduction
    New strategies are needed to maintain historic rates of performance and price/performance improvement. We take a closer look at the Intel® Itanium® 2 processor.

    By Robert Shiveley

    "In 1978, a commercial flight between New York and Paris cost around $900 and took seven hours. If the principles of Moore’s Law had been applied to the airline industry the way they have to the semiconductor industry since 1978, that flight would now cost about a penny and take less than one second." (Source: Intel PDF 863KB)

    In a 1965 paper, Gordon Moore predicted that the number of transistors that could be integrated into a single silicon chip would approximately double every 18 to 24 months. That prediction became widely known as Moore’s Law, and engineers at Intel have been transforming that law into reality for more than 40 years (Figure 1). During that time, increases in transistor density have driven roughly proportional increases in processor performance and price/performance. Those gains have powered the growth of today’s trillion-dollar electronics industry, put personal computers into businesses and homes throughout the world, and given rise to computing as a fundamental business enabler.


    Porting Code to Intel® EM64T-Based Platforms

    Wed, 09/20/2006 - 07:51

    Applications that Support 64 bit: Intel Extended Memory 64 Technology extends Intel IA-32 from a 32-bit architecture to a 64-bit architecture. EM64T introduces a new mode (referred to as “long mode?) which supports running 32-bit or 64-bit applications. For the purposes of this paper, we will concentrate on the three modes in which most software will run.

    Introduction

    Porting code from IA-32 architecture to EM64T to take advantage of 64-bit involves tradeoffs in performance considerations.

    By Robert Y. Geva, Principal Engineer, Intel Software and Solutions Group

    Intel® Extended Memory 64 Technology (Intel® EM64T) is a 64-bit extension to Intel's IA-32 architecture. Data can be accessed in 64-bit chunks, and large memory is addressable without special OS calls. This white paper introduces the architecture extensions and discusses performance tradeoffs when porting software from 32-bit to 64-bit. While being able to perform operations on 64-bit instead of 32-bit is an advantage for software that requires them, not all software can, in practice, take advantage of the additional computation bandwidth. Conversely, all data access addresses becoming 64-bits leads to increased pressure on HW resources, for example, the data cache. When porting SW from 32-bit in Intel IA-32 architecture to Intel EM64T architecture, there are performance implications resulting from differences in the architecture, implications of the microarchitecture and differences in software conventions. This white paper does not attempt to provide a characterization of applications that can benefit from porting to 64-bit—it merely discusses the tradeoffs.

    We also note that several compilers are available that generate native code for EM64T: the Intel® Compiler and the Microsoft Visual Studio* 2005. Make strong efforts to optimize code for performance on Intel EM64T-based platforms.

    Intel® EM64T Architecture

    Intel® Extended Memory 64 Technology extends Intel IA-32 from a 32-bit architecture to a 64-bit architecture. EM64T introduces a new mode (referred to as "long mode") which supports running 32-bit or 64-bit applications. For the purposes of this paper, we will concentrate on the three modes in which most software will run:

    1. Legacy mode: In this mode the architecture executes 32-bit SW without 64-bit capabilities. A 32-bit operating system is executing.

    2. Compatibility mode: In this mode, a 64-bit operating system executes a 32-bit application. This is a subset of long mode.

    3. 64-bit mode: A 64-bit operating system executes code that was compiled for 64-bit and takes advantage of the new architecture. This is also a subset of long mode.

    Matrix Vector Multiplication and Multi-threading Benefits

    Thu, 04/05/2007 - 07:13

    Intel Core 2 Extreme Quad Core Computer Processor Multithreaded Matrix Multiplication Performance: Dual-core and Quad-core processors are fast becoming the staple in desktop and mobile computing. In this article, performance data comparing single-threaded and multi-threaded matrix-vector multiplication are presented. In addition to multi-threading the routine, it was also optimized using Single Instruction Multiple Data (SIMD) instructions. The different implementations were tested on an Intel Core 2 Extreme quad-core processor, QX6700.

    by Kiefer Kuah

    Dual-core and Quad-core processors are fast becoming the staple in desktop and mobile computing. In this article, performance data comparing single-threaded and multi-threaded matrix-vector multiplication are presented. In addition to multi-threading the routine, it was also optimized using Single Instruction Multiple Data (SIMD) instructions. The different implementations were tested on an Intel® Core™ 2 Extreme quad-core processor, QX6700. Measurable speedups were observed; the highest speedup was 20.8x. Next, the impact of increasing the data set to sizes beyond the last level cache was also characterized.

    Introduction

    The multiplication of a matrix and a vector is a common operation in applications such as in the skinning and physics code of 3D graphics games. We investigated a few ways to write the code for this operation and assess the performance of each version on a 2.66GHz Intel® Core™ 2 Extreme quad-core processors.

    Six different versions of the code were written. The first version was written using C++ code. It involved two nested loops, iterating through each element of the data sets. This version would be used as the reference by which the performance of other versions would be measured. This version was then multithreaded using Windows* threading functions.

    The SIMD versions were written in assembly and they operated on 4 floating point data in each loop. One version assumed that the data was in the array of structure (AOS) format while the other assumed the data was in the structure of array (SOA) format. Figure 2 shows an example of the structure of array construct. Two other versions were subsequently derived from these SIMD versions by converting them to multi-threaded code.


    Intel® Fortran Compiler 9 for Linux

    Sun, 04/03/2005 - 17:35

    Main Phrase: Deliver outstanding performance on single and multiprocessor computers with advanced optimization techniques to keep your legacy code in shape, including support for multi-core processors, OpenMP support and auto-parallelization.

    Deliver outstanding performance on single and multiprocessor computers with advanced optimization techniques to keep your legacy code in shape, including support for multi-core processors, OpenMP support and auto-parallelization.

    The Intel® Fortran Compiler for Linux* delivers rapid development and winning performance for the full range of Intel® processor-based platforms.

    This compiler product automatically optimizes and parallelizes software to take best advantage of multi-core Intel processors. This compiler is also available as a separate product that incorporates Cluster OpenMP*. The Intel Fortran Compiler for Linux with Cluster OpenMP provides all the functionality of the Intel Fortran Compiler for Linux, plus a simple means of extending OpenMP parallelism to 64-bit Intel® architecture-based clusters.

    To sign up for a free 30-day evaluation license, click link below

    The New Era of Tera-scale Computing

    Wed, 09/20/2006 - 08:21

    Multicore Programming : Microprocessor performance has scaled over the last three decades from devices that could perform tens of thousands of instructions per second to tens of billions of instructions per second in today’s products. Our processors have evolved from super-scalar architecture to instruction-level parallelism, where each evolution makes more efficient use of fast single instruction pipeline. Our goal is to continue that scaling, to reach a capability of 10 tera-instructions per second by the year 2015. The obvious question is: How do we get there?

    Introduction

    The demand for increased performance does not diminish, so more efficient ways to deliver that performance must be found.

    By Shu-ling Garver and Bob Crepps, Intel Corp.

    Microprocessor performance has scaled over the last three decades from devices that could perform tens of thousands of instructions per second to tens of billions of instructions per second in today’s products. Our processors have evolved from super-scalar architecture to instruction-level parallelism, where each evolution makes more efficient use of fast single instruction pipeline. Our goal is to continue that scaling, to reach a capability of 10 tera-instructions per second by the year 2015. The obvious question is: How do we get there?

    The answer to that lies in Moore's Law. In parallel with our architecture scaling, our process technology has advanced or scaled at a rate predicted by Moore's Law. If we look ahead to the next decade, we will have the ability to integrate tens of billions of transistors on a single die. The dual-core Intel® Itanium® processor, code-named "Montecito," already uses 1.7 billion transistors.

    As mentioned, our architecture has evolved to get the maximum performance from a single pipeline. However, we can make better use of the increasing number of transistors by moving to architectures that use multiple pipelines, or threads, or cores. We call this shift to multiple threads and cores the Era of Tera-scale Computing.

    Intel® Threading Tools and OpenMP*

    Wed, 09/20/2006 - 08:41

    C Thread win32 library : Explicit threading methods, such as Windows threads or POSIX threads, use library calls to create, manage, and synchronize threads. Use of explicit threads requires an almost complete restructuring of affected code. On the other hand, OpenMP* is a set of pragmas, API functions, and environment variables that enable you to incorporate threads into your applications at a relatively high level. The OpenMP pragmas are used to denote regions in the code that can be run concurrently.

    Introduction

    Find where parallelism can be implemented effectively within a serial application.

    By Clay P. Breshears, Intel Corp.

    Explicit threading methods, such as Windows* threads or POSIX* threads, use library calls to create, manage, and synchronize threads. Use of explicit threads requires an almost complete restructuring of affected code. On the other hand, OpenMP* is a set of pragmas, API functions, and environment variables that enable you to incorporate threads into your applications at a relatively high level. The OpenMP pragmas are used to denote regions in the code that can be run concurrently. An OpenMP-compliant compiler transforms the code and inserts the proper function calls to execute these regions in parallel. In most cases, the serial logic of the original code can be preserved and is easily recovered by ignoring the OpenMP pragmas at compilation time.

    OpenMP programs are threaded programs and can suffer from the same errors and performance problems as explicitly threaded applications. We assume you are familiar with OpenMP since this article examines the use of the Intel® Threading Tools, Intel® Thread Checker and Intel® Thread Profiler to analyze OpenMP programs. For Intel Thread Checker, we eschew the standard use of identifying storage conflicts in threaded code; rather, we use the diagnostic output to identify and categorize the scope of variables within parallel regions. After that, two of the more common performance problems encountered in OpenMP codes are discussed. We illustrate how to use Thread Profiler to identify these problems and give some possible solutions. For more details and information on using the Intel Threading Tools, see "Getting Started with the Intel® Thread Checker" and "Getting Started with the Intel® Thread Profiler" included in the threading tools documentation.


    Is this bugging you, yet?

    Wed, 11/15/2006 - 15:22

    Read and comment on the latest trends in open source in this blog.

    Performance Scaling in the Multi-Core Era

    Wed, 09/20/2006 - 08:50

    Compare Processor Performance: New strategies are needed to maintain historic rates of performance and price/performance improvement. We take a closer look at the Intel® Itanium® 2 processor. Read more

    Introduction

    New strategies are needed to maintain historic rates of performance and price/performance improvement. We take a closer look at the Intel® Itanium® 2 processor.

    By Robert Shiveley, Intel Corp.

    "In 1978, a commercial flight between New York and Paris cost around $900 and took seven hours. If the principles of Moore's Law had been applied to the airline industry the way they have to the semiconductor industry since 1978, that flight would now cost about a penny and take less than one second." (Source: Intel PDF 863KB)

    In a 1965 paper, Gordon Moore predicted that the number of transistors that could be integrated into a single silicon chip would approximately double every 18 to 24 months. That prediction became widely known as Moore’s Law, and engineers at Intel have been transforming that law into reality for more than 40 years (Figure 1). During that time, increases in transistor density have driven roughly proportional increases in processor performance and price/performance. Those gains have powered the growth of today's trillion-dollar electronics industry, put personal computers into businesses and homes throughout the world, and given rise to computing as a fundamental business enabler.

    IBM Middleware on Linux

    Mon, 05/14/2007 - 08:53

    Learn about IBM plans and products for open standards technology middleware on Linux. Linux is ready to deliver the power and flecibility of open standards technology to your software development project.

    Linux is ready. It is now time to take advantage of the many benefits it offers. Open standards give you choice, security, and flexibility when developing your software. Learn about plans, perspectives, and products IBM has for deploying open technologies.

    Register Now.


    Open community tools: an open stack development platform

    Mon, 05/14/2007 - 08:45

    Join us for a discussion of "Open Community" development tools from IBM that are based on the same open standards as open source tools and yet provide greater flexibility and choice for application developers. IBM's open source strategy will be discussed.



    Join us for a discussion of "Open Community" development tools from IBM that are based on the same open standards as open source tools and yet provide greater flexibility and choice for application developers. IBM's open source strategy will be discussed.

    Register Now.


    Intel® TBB for Open Source

    Thu, 07/26/2007 - 13:38

    Open Source Projects in Computer Science: Start using Intel's Threading Building Blocks (TBB) for your open source computer science projects in distributed and parallel computing. TBB makes C++ threading a breeze whether you are a student or an expert programmer.

    Threading Building Blocks (TBB) is an award-winning C++ runtime library that abstracts the low-level threading details necessary for optimal multi-core performance. It uses common C++ templates and coding style to eliminate tedious threading implementation work.

    TBB requires fewer lines of code to achieve parallelism than other threading models. The applications you write are portable across platforms. Since the library is also inherently scalable, no code maintenance is required as more processor cores become available.

    Features

    Ready to use parallel algorithms:
    Select from a library of highly-efficient parallel algorithm templates, and rapidly obtain the advantages of multi-core Intel processors.
    • Quickly employ commonly needed algorithms designed for parallel performance and scalability.
    • Generic templates let you easily tailor these algorithms to your needs.
    • Supports easy plug-in deployment into applications to deliver scalable software speed-up, optimizing for both available cores and cache locality.
    • Reduce the work required to produce threaded software in many cases, by means of pre-built parallel constructs.

    Intel® Threading Tools Boost Performance for CPU Cycle-Hungry Digital Artists

    Wed, 09/20/2006 - 10:19

    Memory Management in C: Intel Threading Tools help Autodesk optimize its Maya digital software. Find out more in this case study.

    Introduction

    Intel ® Threading Tools help Autodesk optimize its Maya* digital software. Find out more in this case study.

    by Geoff Koch, Intel Corp.

    Times are good for Toronto-based Autodesk. Maya* software, the company’s flagship product, dominates the digital content creation (DCC) market for 3D modeling, animation, effects and rendering. Maya-wielding artists create stunning images across industries, from digital publishing and design visualization to broadcasting and game development.

    And don't forget feature films. Despite its understated Canadian roots, Autodesk tools have helped build visual effects in some of the most ostentatious Hollywood blockbusters in recent memory, including the "Lord of the Rings" trilogy and the "Star Wars*" prequels.

    But for Autodesk and other DCC companies, the digital media bar only gets higher. Photorealistic images and the suspension of disbelief are becoming hard and fast expectations for filmgoers and gamers. Building and rendering these ever more detailed images remains one of the ultimate cycle-suckers in all of computing.

    " Leading studios rely on Maya software to deliver state-of-the-art results every day, and productivity is a huge factor for them," said Autodesk engineer, Martin Watt. "Whether it's something that improves the interactive drawing rate or something that reduces the time taken to render thousands of frames, anything we can possibly provide is key."


    Server-Side Mashups

    Wed, 09/12/2007 - 08:08

    What is a mashup? How do server side mashups work? Learn about mashups in this mashup tutorial. See axample mashups like delexa.org.

    What's a Mashup?

    An example is a web site that displays a list of restaurants in a given city and displays a map that highlights the location of the restaurants. The two types of information often come from different sites. This integration of services and content from multiple web sites is called a mashup.

    Most sites add value beyond a simple integration of services and content. They benefit users in a manner that is different and better than the individual services. For example, Delexa.org brings together data from the social bookmarking site del.icio.us and the web site traffic tracker Alexa. Delexa.org uses the topic tags it gets from del.icio.us to allow users to search for top traffic sites by topic. A user can view the most frequently visited gardening or karate sites, for example.

    Continue reading Mashup Styles, Part 1: Server-Side Mashups here.

    Sun Outsourcing Case Study

    Sun, 07/15/2007 - 04:59

    See the lessons learned in this case study of Sun's outsourcing initiatives. Gain valuable insight from Sun's many years of outsourcing experience.

    Matthew Ricks, a Sun veteran of 19 years, discusses outsourcing at Sun. As senior director of Sun vendor management, he is responsible for Sun's four largest outsourcing contracts. These include datacenter support, network management, internal helpdesk, and application development and maintenance.

    Find out if Sun is seeing tangible savings and productivity gains from it's outsourcing efforts.


    Continue reading Lessons Learned from Sun's Outsourcing Initiatives here.

    Logical Domains (LDoms)

    Sun, 07/15/2007 - 04:49

    Learn how to use Solaris Logical Domains (LDoms) to provide server virtualization. Save money while increasing server utilization.

    Increase server utilization, efficiency, and ROI while reducing server footprint. For free! Logical Domains (LDoms) is the most open virtualization technology available, and it is free. LDoms can provide big savings over proprietary virtualization technologies.

    Key applications include:

    • Web servers, proxy/cache, and firewalls
    • OLTP databases
    • Java environments
    • Mail and messaging applications
    • Network infrastructure including directory, portal, identity, file servers, back-up servers
    • Any application environment requiring its own isolated Operating System image


    Continue reading Using Logical Domains here.

    Sun CEO Comments on MySQL Acquisition

    Fri, 02/22/2008 - 15:22

    Learn about the likely effects of the Sun acuisition of MySQL. Sun CEO Jonathan Schwartz discusses how it happened and what it means to the industry.

    Sun CEO Jonathan Schwartz discusses the $1 billion acquisition of MySQL. He covers how it will affect Sun, MySQL, and the database industry as a whole. Find out what happens to PostgreSQL and Oracle. See how the acquisition compares to the acquisition of StorageTek.

    Continue reading here.

    Three Advantages of Open Source

    Thu, 02/21/2008 - 14:34

    Learn about the business value of open platforms, open standards, and open source from Sun EVP of Global Sales and Services Don Grantham.

    How is open source changing the industry in the most important way since the 1980s? Sun Executive VP of Global Sales and Services Don Grantham explains. Learn about the business value of open source. Find out what the three major advantages of open source are and how they can affect your business.

    Continue reading here.

    OpenSolaris Community

    Fri, 06/02/2006 - 07:50

    Future development of open source Hear the latest on OpenSolaris and open source, and why participation, community, and sharing are the future of software. Check out this Sun Net Talk on Demand as Sun experts survey the fast-changing open source landscape.

    OpenSolaris and Open Source

    Learn about OpenSolaris and open source. The future of software is in participation and community. Listen to this Sun Net Talk on Demand to hear Sun experts review the open source world.

    To view the Sun Net Talk video: Open Community, Click Here.

    Open Up OpenSolaris

    Wed, 09/26/2007 - 17:21

    As Chief Technology Evangelist at Sun Microsystems, Simon Phipps is charged with explaining the big picture of connected computing solutions. Today, the biggest picture in his gallery is the OpenSolaris project. He is bringing his 20-plus years of industry experience to the efforts of open source communities worldwide.

    Phipps recently sat down with Inner Circle to discuss Sun's open source strategy, how it affects the way Sun does business, and why OpenSolaris benefits Sun, Sun's partners, developers, and customers.

    Inner Circle (IC): What is the difference between Solaris and OpenSolaris?

    Continue reading Open Up OpenSolaris here.

    Sun Blade Systems

    Sun, 07/15/2007 - 04:42

    Sun Blade 6000 Systems Datacenter Costs - Learn how Sun Blade 6000 servers can improve flexibility while decreasing datacenter costs.

    Cut datacenter costs and increase flexibility with Sun Blade 6000 server modules

    Sun has released the Sun Blade 6000 family, a new generation of blade servers with rackmount computing capabilities. The line includes three server modules running SPARC, AMD Opteron, and Intel Xeon processors.

    Ali Alasti, vice president of engineering of the Sun Systems Group discusses how this new hardware offering provides new levels of computing firepower while lowering datacenter costs.

    INNER CIRCLE (IC): Why should an enterprise consider Sun Blade 6000 systems over rackmounted servers?


    Continue reading New Sun Blade Systems Get a Sharper Edge here.

    Thinking Beyond Today's Definition of Virtualization

    Thu, 07/27/2006 - 18:28

    Enterprise Software Data Center Best Practices: Learn about a stack of technologies that can help enterprises reduce data center costs, improve hardware utilization, and increase application availability and performance.

    In its most basic terms, virtualization is about abstracting computing resources from underlying hardware. As such, virtual machine technologies have emerged as a recent phenomenon that has become almost synonymous with virtualization, itself. But virtual machines are by no means the "be all and end all" of virtualization. Operating system virtualization schemes like Solaris Containers have a big role to play. From a broader perspective, grids offer the potential for widespread virtualized and shared architectures that can dramatically transform the way applications are developed and delivered.

    Continue reading Thinking Beyond Today's Definition of Virtualization here.


    Sun Sim Datacenter

    Tue, 09/18/2007 - 19:09

    Simulate your datacenter to see how Sun's new CoolThreads and x64 servers can save you power, cooling, and space. Inspired by the "The Sims" games, this interactive tool will challenge you to build a high-performing datacenter.

    Continue reading Sun Sim Datacenter here.

    Download: Rational Software Architect

    Mon, 04/04/2005 - 05:21

    Free Rational Software Architect Download: Check out the free IBM download of Rational Software Architect, a MDD (model driven development) tool that utilizes UML (Unified Modeling Language). If you want to take your programming to the next level, try RSA now.

    The free trial download of IBM's Rational Software Architect is available now. Rational Software Architect is a tool for designing and developing well-architected services and applications that leverage MDD (model-driven development) using the Unified Modeling Language (UML). RSD will help you understand, design, manage, and modify your enterprise-level software applications and services.
    Download this useful and powerful tool to start unifying your software design and development right now.

    Download here.


    Download: Rational PurifyPlus

    Thu, 09/02/2004 - 15:29

    Rational Purify Download PurifyPlus Quality Management Software: Write more reliable and faster code with Rational PurifyPlus. This runtime analysis tool includes memory leak and corruption detection, code coverage analysis, and performance profiling.

    IBM Rational PurifyPlus trial version free download. Write faster and more reliable code with IBM Rational PurifyPlus. This runtime analysis tool includes memory corruption and memory leak detection, code coverage and performance profiling.

    Download here.


    IBM Rational Rose — Linux/Unix

    Sat, 09/04/2004 - 15:04

    Rational Rose Linux Download: Rational Rose for Linux/Unix from IBM (now called Rational Systems Developer) is a tool for visual modeling and developing that uses the Unified Modeling Language (UML) for software application development, data modeling, Web-services design, business modeling, legacy application extension, component based modeling, and more. Download this free IBM Rational Rose Linux/Unix trial software now.

    IBM Rational Rose for UNIX and Linux has been replaced by IBM Rational Systems Developer.

    Download the next generation of Rational Rose: A free trial version of IBM Rational Systems Developer. This is a advanced modeling tool for developing and designing, empowering software architects and developers to create optimally-architected CORBA, C/C++, and Java/J2SE model-driven applications that fully leverage the Unified Modeling Language (UML 2).

    Download here.


    WAS CE 2.0: Pre-Register Now for your Free Copy of WebSphere Application Server Community Edition V2.0

    Sun, 08/19/2007 - 17:59

    Free Java J2EE Open Source WebSphere Application Server Download: WebSphere Application Server Community Edition V2.0 (WAS CE 2.0) built on the Java EE 5.0 Apache Geronimo 2.0-MT-rc1 is a powerful and free open source application server. WebSphere CE incorporates advanced web service technology and simplified component and persistence models.

    WebSphere Application Server Community Edition V2.0 (WAS CE 2.0) is based on the Java EE 5.0 Apache Geronimo 2.0-MT-rc1. This powerful and free open source application server includes enhanced web service and simplified component and persistence models.

    Register for your free copy of WAS CE 2.0 here



    Eclipse and Design Patterns

    Thu, 07/26/2007 - 19:16

    Learn how to install and use the PatternBox plugin for Eclipse to work with design patterns. See an example using the Facade pattern.

    Eclipse and Design Patterns

    Learn how to install the PatternBox design pattern plugin for Eclipse. Then see how to create a Facade pattern with the new PatternBox plugin.

    View Demo here.


    Aperi Storage Management Project introduction, Part 1

    Thu, 07/26/2007 - 19:05

    Learn to use the Aperi Storage Management topology viewer to zoom in and zoom out on elements of your storage gabric and monitor the health status of your storage environment.

    Aperi Storage Management Project introduction, Part 1

    Learn about the Aperi’s user interface and some of the primary features of the topology viewer. See how you can explore the storage environment with the topology viewer. You can monitor the health of the elements in your storage environment. Zoom in and out of one of the storage fabrics to see the status of switches, ports, and attached elements.

    View Demo here.


    Get started on SOA with WebSphere's proven, flexible entry points

    Mon, 05/14/2007 - 08:30

    Get your SOA project started right with IBM WebSphere entry points. Learn more in this practical SOA introduction using SOA examples to teach you important SOA concepts.

    Learn to use SOA entry points to develop an SOA lifecycle that encourages innovation. Practical examples with product feature demonstrations teach you SOA concepts and help jumpstart your projects. Register for this event at a location near you.

    Register Now.


    SOA reuse and connectivity IBM ESB without limits

    Mon, 05/14/2007 - 08:26

    Learn about IBM ESB and SOA reuse and connectivity in this briefing.

    Scalable and secure connectivity within your business and beyond.

    Get a practical and technical overview of SOA reuse and connectivity offerings, including the advantages of an ESB in building a flexible IT infrastructure. Register today for this technical briefing.

    Register Now.


    Beginners Guide to LDoms: Understanding and Deploying Logical Domains

    Sun, 07/15/2007 - 05:32

    Beginners Guide to Sun Logical Domains (Ldoms): Introduction. This guide is intended to assist you in gaining an understanding of how to easily and effectively deploy Sun Logical Domains (Ldom) technology. It will help you determine how and where to use logical domains to the greatest effect using best practices.

    What Are Logical Domains?
    Sun Microsystems’ Logical Domains, or LDoms, technology is part of a suite of methodologies for consolidation and resource management that includes Sun Fire Dynamic System Domains and Solaris OS Containers, of which resource control and operating system virtualization are a subset. This technology allows you, the user, to allocate a system’s various resources, such as memory, CPUs, and devices, into logical groupings and create multiple, discrete systems, each with their own operating system, resources, and identity within a single computer system. By careful architecture, a logical domains environment can help you achieve greater resource usage, better scaling, and increased security and isolation.

    Continue reading Beginners Guide to LDooms: Understanding and Deploying Logical Domains here.

    Online Trial: Rational ClearCase

    Sun, 08/19/2007 - 16:11

    Change Management Models Tools ClearCase Tutorials: Try Rational ClearCase V7.0 online without the need to install it on your computer! Rational ClearCase is a complete solution providing integration with development tools and test tools for software asset control throughout the software development lifecycle. Rational ClearCase integrates with IBM Rational ClearQuest to provide a complete change management and configuration management system. Go to developerWorks to learn more and register to try it online.

    You can now evaluate Rational ClearCase V7.0 without installing or configuring it on your own system! Rational ClearCase is a comprehensive solution that provides integration with design, development, build, test, and deployment tools for controlled access to software assets across the full lifecycle. Rational ClearCase is seamlessly integrated with IBM Rational ClearQuest for a complete change and configuration management solution. Visit developerWorks to learn more about this product and register to explore its capabilities online.

    Try Rational ClearCase now




    Download: Rational ClearQuest

    Tue, 10/31/2006 - 09:51

    Rational ClearQuest Free Download Change Configuration Management Plan: Try Rational ClearQuest V7.0 online with no installaiton on your system or download the free trial. Rational ClearQuest provides control, predictability, and insight into the software development lifecycle through development process automation and enforcement. ClearQuest works with design, development, build, test and deployment tools for improved development team collaboration. See developerWorks for more information on Rational ClearQuest and software lifecycle management resources.

    You can now evaluate Rational ClearQuest V7.0 as a trial download or online without installing on your own system. Rational ClearQuest automates and enforces development processes for better insight, predictability, and control of the software lifecycle. ClearQuest integrates with design, development, build, test and deployment tools and facilitates communication across the organization. Visit developerWorks to learn more and get valuable technical resources to help you manage the software lifecycle more effectively.

    Online Trial: Rational Performance Tester

    Sun, 08/19/2007 - 14:44

    Online Trial of Rational Performance Tester: Evaluate Rational Performance Tester online with no installation on your system or configuration. Rational Performance Tester helps teams with test creation, load generation and data collection. Gain confidence in the scalability of your application to accommodate user loads.

    Now you can try out Rational Performance Tester online without having to install it in your system or configure it. Rational Performance Tester helps teams create test, generate load and collect data simply. The end result, your team can be more confident in the ability of your application to accommodate user loads.

    Try Rational Performance Tester Now




    Now Open! Sun Solution Center for SAS Competency

    Mon, 09/24/2007 - 19:54

    Business Intelligence Companies Framework Software Solutions: Sun Solution Center for SAS Competency is now open. Learn how Sun and SAS Institute can help you to leverage your business intelligence investments.

    Innovation. Collaboration. Sharing. It All Happens Here.

    In 2005 45% of new SAS business on UNIX was done on SUN Solaris servers. Sun offers a great platform for SAS deployments:

    • Enterprise strength hardware, with massive scalability, mainframe like RAS and flexible resource management.
    • Solaris 10 includes more than 600 features that make it the most efficient, secure, and reliable operating system ever built.
    • 64 bit prove architecture and mature multi tasking and multi threading implementation for excellent performance and throughput.

    To further its investment with SAS, Sun has recently announced the opening of The Sun Solution Center for SAS Competency in its Menlo Park Campus. This is a collaborative effort between Sun and SAS Institute on delivering technology. It brings "high-value" ISV consulting expertise for our customers and partners by delivering proven Performance & Sizing characterization and Architecture & Design of the total customer landscape. "To address the significant market growth of Business Intelligence and Data Warehousing technologies, the Sun Solution Center is making joint investments with SAS Institute on delivering high-value ISV consulting expertise for our customers and partners." Graham Steven, Sr. Director Sun Solution Center

    Available only to Executive Members of Sun's Partner Advantage Program, the Sun Solution Center offers many benefits to its preeminent Partners like SAS. The Sun Solution Center for SAS Competency offers dedicated, high level, strategic account planning; pre-sales services; and solution development expertise designed to mitigate not only SAS's risk, but also their customer's risk and time-frames associated with implementing a new solution.

    Continue reading Now Open! Sun Solution Center for SAS Competency here.

    Using the IBM Tivoli Storage Manager Backup-Archive client in cluster environments on UNIX and Linux

    Tue, 09/18/2007 - 09:19

    Software products that provide a high availability of resources are becoming commonplace in today's computing environments. As the complexity of managing logical disks and their data increases in cluster environments, understanding and deploying an effective backup strategy for complete data protection is a top priority.

    Read Tutorial here.


    Developing applications with Project Zero: Get started with Project Zero and PHP

    Tue, 09/18/2007 - 09:02

    Project Zero provides an environment for the rapid development of interactive Web applications based on popular Web technologies such as PHP. This tutorial demonstrates how easy it is to get started with Project Zero, from installing the development tools to constructing an Ajax Web 2.0 sample using PHP as the back-end scripting language. Exporting an application is covered on the way, together with examples of debugging and extending a Web 2.0 application.

    Read Tutorial here.


    Sample database migration tutorial using IBM DB2 Migration Toolkit

    Tue, 09/18/2007 - 08:57

    The free-of-charge IBM DB2 Migration Toolkit can simplify and improve your migration to DB2 for Linux, UNIX, and Windows. This tutorial demonstrates the use of the toolkit to convert a database model from a Microsoft SQL Server DDL script to a DB2 database. The converted objects will include a stored procedure.

    Read Tutorial here.


    Develop with Java and PHP technology on AIX Version 5.3, Part 4: Building the Java business application

    Tue, 09/18/2007 - 05:25

    Part 4 of this six-part series shows you how to deploy a Java(TM) business application and database as a Java Web service running on a pSeries(R) system with the IBM AIX(R) 5.3 operating system.

    Read Tutorial here.


    Effective software testing: tools and strategies for project success

    Mon, 05/14/2007 - 08:39

    Join IBM developerWorks Live! for this complimentary briefing to hear how to shorten time to market of new software systems without compromising quality. Learn how best practices and tools can keep your testing teams aligned with business priorities.

    Register Now.


    Hello World: Create a Java Web application without knowing Java using Rational Business Developer Extension

    Mon, 05/14/2007 - 08:15

    Free Java Tutorial Download: Learn how to create real-world Java web applications without knowing Java or J2EE with Rational Business Developer Extension and Enterprise Generation Language (EGL). This tutorial of Java program examples will step you through the process of creating a Hello World Java web application that queries a database and lets you update database records. Whether you are looking to create a simple Java program or complex business applications, learning Java programming has never been easier! Get free Java tutorial download now.

    Enterprise Generation Language (EGL) and Rational Business Developer Extension can be used to build dynamic Java web sites. This tutorial will step you through a simple Hello World Java application where you will create two web pages. One page will show database records, and the other page will facilitate the update of database fields. You do not need any previous knowledge of Java programming or J2EE (Java 2 Enterprise Edition). Rational Business Developer Extension provides the framework and GUI tools you need to create Java web applications and other complex business applications easily. Try the tutorial now to see just how simple it is.

    Read Tutorial here.


    IBM TXSeries for Multiplatforms

    Thu, 08/30/2007 - 09:11

    Download a free trial version of IBM TXSeries for Multiplatforms, a distributed transaction processing monitor for CICS applications written in COBOL, C, C++ and PL/I. As a distributed transaction processing server, as well as a rapid deployment transactional integration platform, TXSeries for Multiplatforms delivers robust and extensible services in a modern, reusable, critical application environment.

    Download trial here.


    Agile Development Solutions

    Mon, 05/14/2007 - 09:00

    Succeeding with Agility at Scale. Agile Development is one of the hottest trends in software development, promising improved team efficiency, shorter development cycles, better quality and software that is ultimately better suited to the customer's needs. IBM Rational provides technology, best practices, and industry expertise to help companies succeed in an Agile environment - regardless of their size and complexities.

    Download eKit here.


    Creating a composite application using IBM Lotus Component Designer

    Mon, 05/14/2007 - 08:13

    Learn how IBM Lotus Component Designer and IBM WebSphere Portal are the ideal tools for creating and delivering composite applications. Follow along with a real-life scenario in which you download a sample component created with Lotus Component Designer, deploy it to WebSphere Portal, and turn it into a fully working composite application.

    Read Tutorial here.


    Eclipse and UML

    Thu, 07/26/2007 - 19:25

    Tools to Create UML Diagram: This demo guides you through installation of Omondo's free UML plugin for Eclipse. You will also learn how to create a simple UML class diagram using the new plugin

    Eclipse and UML

    This demo guides you through installation of Omondo's free UML plugin for Eclipse. You will also learn how to create a simple UML class diagram using the new plugin.

    View Demo here.


    High performance Linux clustering, part 2: build a working cluster - writing parallel programs and configuring your system

    Thu, 12/01/2005 - 18:25

    One of the most interesting things about clustering is that you can build Linux-based clusters with minimal effort if you have basic Linux installation and troubleshooting skills.

    by Aditya Narayan, founder, QCD Microsystems. First published by IBM at IBM developerWorks Linux. All rights retained by IBM and the author.
    High-performance computing (HPC) has become easier, and two reasons are the adoption of open source software concepts and the introduction and refinement of clustering technology. This second of two articles discusses parallel programming using MPI and gives an overview of cluster management and benchmarking. It also shows you how to set up a Linux cluster using Oscar, an open source project for setting up robust clusters.

    Part 1 of this series, Clustering fundamentals, discusses the types of clusters, uses of clusters, HPC fundamentals, and reasons for the growth of clustering technology in high-performance computing.

    This article covers parallel algorithms, and shows you how to write parallel programs, set up clusters, and benchmark clusters. We look at parallel programming using MPI and the basics of setting up a Linux cluster. In this article, meet Oscar, an open source project that helps you set up robust clusters. Also, get an overview of cluster management and benchmarking concepts, complete with detailed steps to run the standard LINPACK tests on a cluster.

    If you have installed Linux, you will be able to install and troubleshoot a Linux cluster after you read this article. And the helpful links in Resources below will help you get learn more about clustering.

    Clusters and parallel programming platforms
    As you saw in Part 1, HPC is mostly about parallel programming. Parallel programming is a fairly well-established field, and several programming platforms and standards have evolved around it over the past two decades.

    The two common hardware platforms used in HPC are shared memory systems and distributed memory systems. For details, refer to Part 1.

    On shared memory systems, High Performance Fortran is a language suited for parallel programming. It makes effective use of data parallelism and can act on entire arrays at once by executing instructions on different indexes of an array in different processors. Consequently this provides automatic parallelization with minimal effort on your part. (The Jamaica project is an example where a standard Java program is re-factored using a special compiler to generate multithreaded code. The resulting code then automatically takes advantage of SMP architecture and executes in parallel.)

    On distributed memory systems, the situation is radically different because the memory is distributed; you must write code that is aware of the underlying distributed nature of the hardware and use explicit message passing to exchange messages between different nodes. Parallel Virtual Machines (PVM) were once a popular parallel programming platform for this, but lately MPI has become the de facto standard for writing parallel programs for clusters.

    High-quality implementations for MPI are freely available for Fortran, C, and C++ for Linux. Two popular MPI implementations are

    • MPICH
    • LAM/MPI
    Later in this article, we'll set up an MPICH-based Linux cluster and see an example of an MPI-based program.

    Creating a simple Linux cluster
    One of the most interesting things about clustering is that you can build Linux-based clusters with minimal effort if you have basic Linux installation and troubleshooting skills. Let's see how this is done.

    For our cluster we'll use MPICH and a set of regular Linux workstations. For simplicity, and to emphasize fundamentals, we'll build just the bare minimum system that you can use to run a parallel program in a clustered environment.

    The seven steps in this section show how to build our bare-bones system. Building robust clusters and managing them involve more effort and will be covered later in this article.

    Step 1:
    You need at least two Linux machines if you want a real cluster. Two VMware images will also do just fine. (With VMware, obviously you do not expect any performance benefits. In fact, there will definitely be a performance hit because the CPU will be shared.) Make sure these machines can ping each other by name. If not, add appropriate entries in /etc/hosts.

    Step 2:
    Install the GNU C compiler and GNU FORTRAN compiler.

    Step 3a:
    Configure SSH for all your nodes to allow it to execute commands without being asked for a password. The aim is to get something like ssh -n host whoami to work without being asked for a password. SSH will be used as the way to communicate between different machines. (You can use rsh also for this purpose.)


    Getting practical about wireless security, part 1: building a wireless sniffer with Perl

    Tue, 04/12/2005 - 15:00

    The convenience of wireless access means a lot of people use a wireless network, which means that a lot of data is being broadcast in the clear. A lightweight wireless sniffer running on open source software can collect info that offers insights on key wireless security issues.

    by Peter Seebach, freelance writer. First published by IBM at IBM developerWorks Wireless Technology. All rights retained by IBM and the author.
    This article, the first in a two-part report, reviews common issues of wireless security, and shows how to use open source software to suss out wireless networks, get information about them, and start recognizing common security problems.

    One of the best ways to make sure information is kept secure is to broadcast it using a published standard, and to try to make sure the signal goes as far as possible. Right? Well, maybe that isn't the best strategy after all. Unfortunately for us, the convenience of wireless access to a network means that a lot of people use a wireless network, and that means that a lot of data is being broadcast in the clear.

    In this article, I'll build a lightweight wireless sniffer that runs on open source software. You'll see how simple it is to interact with wireless networks. The information the sniffer collects offers some insights on key wireless security issues.

    It's easy to underestimate the availability of wireless networks. During testing for this article, I had a recurring problem: my equipment kept accidentally picking up networks other than the ones I wanted to test. In fact, my laptop has found wireless networks to associate with while I'm traveling on the freeway! So, one obvious thing for a wireless network scanner to do is to identify the names and signal strengths of local wireless networks.

    Rough consensus and running code
    The code used for this article is not particularly elegant. The focus is on building a simple front end to the standard utilities, producing data that is accessible as plain text for use from a serial console or remote login.

    The target platform for the sample code is NetBSD running on a fairly small box, using a standard wireless card. The primary test platforms were a laptop using an Intersil Prism chipset, and a Soekris Systems Net4801 using an Atheros chipset. The bulk of the actual code is written in Perl, using the Curses module from CPAN to make a friendly interface.

    If you plan to build a more serious or fully featured program, you would probably be better off using this code as a prototype rather than actually using any of the code directly. However, it does show how some of these tools go together. My use of threading was an experiment, and I leave it up to you to decide whether that experiment was a success.

    This series describes the development of the sniffer from a fairly simple (and yet buggy) program into a more complete program with fewer bugs; the last version of the program is available for download from Resources, on the last page.

    Setting up the system
    Flash prices continue to drop, and the test system was set up by installing NetBSD on a compact flash card. The only package installed from pkgsrc is perl58, and the only module added to it is the Curses module from CPAN. Because the application uses threading, Perl was built with the variable PERL5_USE_THREADS=yes set in /etc/mk.conf.

    The goal of this application is to allow a user to connect, either over a serial console or over the network, to the system running the wireless code, and get updates on the current network status. Curses is a good way to get some of the flashiness of a graphical application without the overhead of using the X Window System or a Web server.

    The program I'll develop in this article is a small Perl script that uses system commands as a back end to access the wireless network. This program will run from the command line, and will read its configuration from a file. For now, the configuration file is just read from the current directory when the program starts. (Looking ahead, this might be useful on a machine with multiple network interfaces, with each interface watching a different wireless network.)

    Scanning for networks
    On the first pass, I'll simply build a program that scans for and lists wireless networks. This only shows networks that are broadcasting their identity to the world. The command for this, in NetBSD, is wiconfig interface -D. Because the interface might change from system to system, the application reads that information from a configuration file. The user is presented with a list of the names of found wireless networks, and selects one from the list; then the details of that network are displayed.

    To do this, the program runs wiconfig, using the -D option, and parses the output. The results are stored in an array of references to hashes. Each member of the array holds the scan results for a single access point; each hash contains a list of name/value pairs, where the name is the heading. The output from wiconfig looks like Listing 1:

    Listing 1. Network scan results

    
    ap[0]:
            ScanReason:                     [ Inquiry request from host ]
            netname (SSID):                 [ testnet ]
            BSSID:                          [ 00:02:dd:01:5a:44 ]
            Channel:                        [ 3 ]
            Quality/Signal/Noise [signal]:  [ 57 / 59 / 2 ]
                                    [dBm]:  [ 57 / -90 / -147 ]
            BSS Beacon Interval [msec]:     [ 100 ]
            Capinfo:                        [ ESS ]
            DataRate [Mbps]:                [ 1 ]
    

    The code to parse this is fairly simple. Listing 2 illustrates the main components of the function; there's a little setup work beforehand, but this is the interesting part.

    Listing 2. Parsing network scan results

    
    while (<WICONFIG>) 
    	chomp;
    	s/^[    ]*//;
    	goto found_ap if /^ap/;
    	($name, $value) = split(/:[     ]+/, $_, 2);
    	$value =~ s/^\[ *//;
    	$value =~ s/ *\]$//;
    	$x$name = $value;
    	print STDERR "$n: $name -> '$value'\n" if $debug > 1;
    
    $nets[$n] = \%x;
    

    In the resulting hash, the name netname (SSID) is associated with the value testnet. The long names are difficult to work with, but renaming them would just add another layer of confusion. (It would be worth doing, perhaps, given that the value named [dbm] makes no sense if you don't recognize it as a subheading of Quality/Signal/Noise.)

    Scans take a while, and monopolize the network interface, so it's not reasonable to run them constantly. One solution to this problem is to run a network scan only when trying to pick a network, then look at the statistics for that individual network.


    Eclipse and C/C++

    Thu, 07/26/2007 - 19:12

    Free C Compiler: See how to install a C/C++ compiler (MinGW), and configure the Eclipse Developer Environment to use the C/C++ Developer Toolkit (CDT). This demo assumes you are working with Eclipse 3.0.

    Eclipse and C/C++

    See how to install a C/C++ compiler (MinGW), and configure the Eclipse Developer Environment to use the C/C++ Developer Toolkit (CDT). This demo assumes you are working with Eclipse 3.0.

    View Demo here.


    Enable a Flexible, Efficient IT Infrastructure Virtualization with Logical Domains and Sun Coolthreads Servers

    Sun, 07/15/2007 - 05:39

    How Enterprise Management Infrastructure Virtualization Works With Logical Domains and CoolThreads Servers: Driving Datacenter Optimization through Virtualization. IT organizations constantly seek technology that can lower the cost and complexity of managing ever-expanding compute environments. Toward this end, enterprises need strategies and tools that help maximize the use of every compute asset and improve operational flexibility.

    Driving Datacenter Optimization through Virtualization

    IT organizations constantly seek technology that can lower the cost and complexity of managing ever-expanding compute environments. Toward this end, enterprises need strategies and tools that help maximize the use of every compute asset and improve operational flexibility.

    Datacenter Server Proliferation

    In order to remain competitive, organizations continually adjust existing business plans and work to create new income opportunities. Technology often holds the key to revenue improvement, creating requirements for IT organizations to deploy increasing numbers of compute services. With enterprise success at stake, many organizations avoid possible system security, availability, and performance conflicts by deploying only one application per server. Corresponding servers are then installed to support development, test, and disaster recovery requirements.

    These common datacenter management practices soon create a sprawling compute infrastructure that is difficult to manage and leaves systems largely under utilized. In addition, IT managers are startled to find datacenters quickly reach physical and budgetary constraints in the areas of power, cooling, and real estate. The resulting inefficient IT infrastructure carries cost burdens that can actually limit business growth, leading organizations to seek more effective hosting strategies.

    Continue reading Enable a Flexible, Efficient IT Infrastructure Virtualization with Logical Domains and Sun Coolthreads Servers here.

    Move a Solaris Containers How To Guides

    Sun, 07/15/2007 - 05:06

    How To Move a Solaris Container

    This How To Guide instructs users, system administrators, and developers who have experience with Solaris 10 on proper use of new features which allow a Solaris 10 Container to be moved from one computer to another. The guide starts with a brief discussion of the need for such functionality and follows with three examples of the use of this functionality.

    Note: Technology described in this guide is currently available in Solaris Express, and will be available soon in a Solaris 10 update.

    Users are guided step-by-step through the process of moving a Container, with code examples and illustrations. After using this guide, a user should be able to move a Solaris Container by:

    • Creating a Container
    • Detaching the Container
    • Moving the Container to a new computer
    • Attaching the Container to the new computer

    Continue reading Move a Solaris Containers How To Guides here.

    Overhauling the Legacy BIOS: The Framework Breaks New Ground

    Wed, 07/19/2006 - 23:47

    The Basic I/O System hasn’t undergone a serious upgrade since the early days of personal computing, but the Framework—a solution fostered by Intel—provides a groundbreaking approach to this technology.

    Despite monumental advances in every area of computing, that new computer at your local retailer very likely contains a component that is a prime candidate for improvement: the BIOS. The Basic I/O System hasn’t undergone a serious upgrade since the early days of personal computing, and there are a number of areas where architecture enhancements can make a big difference for both consumers and developers. A groundbreaking program, the Intel® Platform Innovation Framework for Extensible Firmware Interface (sometimes referred to by the codename Tiano), offers an effective, widely supported means to advance the technology. Nicknamed the Framework, this implementation creates a new model for the interface between operating systems and platform

    Within this interface, the platform data, bootstrap information, and runtime service calls form a standardized framework for loading the operating system and running applications during the pre-boot phase. The EFI version 1.10 specification was published by Intel and then contributed to the Unified EFI Forum, which will maintain and advance the specification in upcoming years. Garnering wide industry support—including the major BIOS manufacturers—the UEFI Forum members include AMD, American Megatrends, Dell, Hewlett Packard, IBM, Insyde, Intel, Lenovo, Microsoft, and Phoenix Technologies. Mike Richmond of the Intel Software and Solutions Group Core Software Division has been shepherding this project along for several years and the efforts are beginning to bear fruit as UEFI-compliant systems are now available and major companies are jumping on the bandwagon.

    Typically, companies that want to innovate at a system level have avoided interfacing to the BIOS, since there have been many implementations, each a little different, risking compatibility problems. " Within the computer industry," Richmond commented, " applications grow when there are horizontal standards; when there aren’t, people just mostly ignore the situation. They spend their time and money elsewhere."

    To read more, click link below to subscribe to Intel® Software Dispatch and begin receiving Intel® Software Insight, a quarterly e-zine focused on the topics software-industry leaders care about. Once you subscribe, you will be able to download the July 2006 issue and continue reading Overhauling the Legacy BIOS: The Framework Breaks New Ground
    .

    To read complete article, click download below.


    German Bank Calls on Sun to Improve Storage Infrastructure

    Fri, 05/11/2007 - 19:59

    Storage Tek RAID Corporate Data Recovery Security Management Software: To manage its corporate data, apoBank relies upon a Sun StorageTek information lifecycle management (ILM) infrastructure. The result — improved data security and traceability of stored data.

    Deutsche Apotheker und Ärztebank, better known as apoBank, is Germany’s largest cooperative bank with more than 300,000 customers, 50 branch offices and assets of 31 billion EUR (41 billion USD). apoBank provides comprehensive business management and financial services to individuals and organizations involved in social welfare occupations, including pharmacists, physicians, dentists and veterinary surgeons.

    Business Issues
    • Enhance the security and traceability of stored data
    • Eliminate technical bottlenecks and shorten backup times
    • Simplify storage administration
    • Reduce archiving costs
    Continue reading German Bank Calls on Sun to Improve Storage Infrastructure here.

    Massive Compute Power, at $1/CPU-hr

    Fri, 05/11/2007 - 18:41

    Software as a Service Organizations HPC Forum Grid Computing in Business Financial Services: Network.com: $1/CPU-hr. Sun’s new Network.com delivers a massively powerful compute grid infrastructure and access to more than 20 high-performance computing (HPC) applications. With pay-per-use pricing at $1/CPU-hour, this unique service can change how research is conducted.

    Sun's new Network.com delivers on-demand apps for HPC

    On March 13, Sun announced Network.com and the Network.com Application Catalog. Sun Inner Circle asked Kris Thorleifsson, Sun's group marketing manager for Network.com, to explain the new services and what they mean for users, ISVs, and developers.

    Inner Circle (IC): What is Network.com?

    Thorleifsson: Network.com enables communities of scientists and academics in life sciences, education, manufacturing, and other fields to easily accelerate innovation, and get research done faster and cheaper. It's an HPC supercomputing resource that delivers immediate online access to popular ISV and open source applications used by researchers in their daily work and provides access to a powerful compute grid. The portal gives users everything they need to conduct complex computational tasks and analysis to help speed scientific discovery. Just select the application, bring your data, and get results fast!

    IC: Can you give us a few examples of some applications that are available in the catalog today?

    Thorleifsson: The Network.com Application Catalog is loaded with more than 20 HPC applications for life sciences, academic, and manufacturing users to try at minimal cost, such as SimBioSys' eHiTS, Mathspec's Rational Numbers, BLAST, FASTA, Glimmer, T-Coffee, GROMACS, fastDNAml, ElmerSolver, Impact, OFELI, Blender, CalculiX, to name a few. Sun is working with its ISV partners and has engaged with numerous open source communities to grow the list of available applications.

    Continue reading Massive Compute Power, at $1/CPU-hr here.

    Power Shift - Less is More

    Fri, 05/11/2007 - 18:03

    Data Center Facilities Maintenance Operations Support: Organizations are turning to new ways to improve datacenter performance while lowering power consumption, space, and cost. With surveys showing that datacenter energy efficiency is increasingly an IT priority, organizations are looking for new ways to improve datacenter performance while reducing power consumption, space, and costs.

    Organizations are turning to new ways to improve datacenter performance while lowering power consumption, space, and cost

    Business as usual has taken an unusual turn. As customer demand for faster, better, and cheaper computing grows, so too does the need for energy to fuel this growth. And the numbers are alarming. According to a recent industry survey1, datacenter power requirements are increasing an average of 8 percent per year — and power requirements of the top 10 percent of datacenters are growing at an even greater pace at more than 20 percent.

    A recent poll conducted by Harris Interactive found that IT executives are increasingly aware of the rising energy costs associated with powering their datacenters, with three quarters of the nearly 200 executives queried saying energy efficiency has become a buying priority.

    Two years ago, a Gartner poll revealed that more than 69 percent of datacenters are power-, cooling-, and space-constrained. Since then, servers have only continued to consume more power and generate more heat, and energy prices have soared (by Sun's estimation at 30 percent per year), making this an ideal time to develop a high-performing, energy-efficient datacenter.

    The Energy Information Administration2 acknowledges that the most rapid increase in demand is going to come from IT equipment. In short, the cost of powering IT infrastructure comes right off the bottom line, which is why IT professionals are now being asked to find more efficient ways to increase computing capacity.


    Continue reading Power Shift - Less is More here.

    Building Energy-Efficient Datacenters

    Fri, 05/11/2007 - 17:58

    Building Energy Efficient Data Centers: Reducing expenses by turning down the heat and cultivating green datacenters. Rising energy costs have put datacenter power consumption on IT's front burner. Take a look at how you can transition to eco-responsible computing — and reduce your energy costs.

    Reducing expenses by turning down the heat and cultivating green datacenters

    Hello Sun Inner Circle readers. It’s Bob Worrall back with another installment in a series of letters that I publish in this venue to share my insights into the IT industry and latest developments here at Sun. Last month, I shared some of the larger lessons I learned during my first 100 days on the job as Sun CIO. This month, I’m going to discuss an issue that’s increasingly a hot topic (literally!) in today’s datacenters — energy efficiency and eco-responsibility.

    If my readers will forgive me, more often than not, CIOs don’t have a clue about datacenter energy expenses. Typically, power bills are sent directly to the real estate team or the CFO. However, with the rising costs of energy worldwide, many CEOs are beginning to hold the CIO responsible for datacenter energy costs. That simple accounting change represents a monumental shift within today’s organizations — and one that I increasingly get questioned about by executives curious how Sun is managing higher energy costs.

    To answer some of the queries, I invited Mark Monroe to join me for a Q&A. Mark has been at Sun for more than 13 years, during which time he has spent some time running Sun datacenters. Most recently, Mark went to work for Dave Douglas, Sun vice president of Eco-Responsibility, and now, as director of Sustainable Computing, Mark spends his time encouraging datacenter energy efficiency and determining what portion of Sun’s energy portfolio comes from green power. He understands how Sun is turning down the heat in its datacenters in reduce energy expenses and encourage eco-responsibility.

    Worrall: Mark, you’ve been part of the eco-responsibility movement for a while. Why has the issue become such a hot topic for datacenter operators?

    Monroe: It boils down to simple economics. Researchers at Lawrence Berkeley Labs have done extensive studies on datacenter efficiency and energy consumption. LBL estimated that 3 percent of the entire energy consumption of the United States — including automobiles, buildings, houses, and everything else that consumes power — derives from datacenters. Furthermore, power consumption rates are following Moore’s Law: As processors become more powerful, energy consumption grows at the same rate as processing power increases. Based on that, LBL concluded that the power consumption rates double every two to four years. Plus, the study that cited the 3 percent figure was done in 2004, and today in 2007, it’s conceivable that datacenters are guzzling upwards of 5 percent to 6 percent of energy in the U.S.


    Continue reading Building Energy-Efficient Datacenters here.

    Upgrading from Linux to Solaris

    Fri, 05/11/2007 - 17:52

    Best Operating Systems Comparisons Reviews Smart Upgrade Linux Suse Open Source Solaris 10 Indemnify: When "good enough" is no longer good enough. The open source Solaris 10 OS has emerged as a compelling alternative for IT organizations skeptical over the long-term benefits and cost-effectiveness of Linux. Sun EVP for Software Rich Green takes a look at advanced Solaris OS features that have fueled more than seven million licenses — and ways you can smoothly move up from Linux.

    When "good enough" is no longer good enough

    Like many IT veterans, Sun Executive Vice President for Software Rich Green witnessed numerous enterprises adopting Linux in the 1990s to meet the demanding requirements of Web applications and services. Now Green is witnessing a new trend: Issues surrounding the long-term benefits and cost-effectiveness of Linux are causing IT managers to reassess the places where the operating system makes sense.

    In this issue of Sun Inner Circle, Green explains why many enterprises today are opting to upgrade from Linux to the Solaris OS and how that's helping enterprises scale IT infrastructures to meet pressing business challenges.

    Green is responsible for defining the vision and roadmap for Sun’s software strategy, including the Solaris OS, Java Enterprise System suites, N1 management software, and Sun Studio and Java Studio developer tools. Green’s perspective is based on more than 20 years of industry experience, 16 of which have been spent at Sun, and close involvement with industry-standards efforts and open source communities have contributed to his insights into the evolution of developer platforms and enterprise software.

    INNER CIRCLE (IC): Let’s start out by asking a basic question: What was behind the initial appeal of Linux to support the Web tier of applications and services?

    GREEN: People picked Linux in the past for a number of very good reasons. First, starting in the mid-'90s, the adoption of Linux was largely fueled by fast processors. Intel, for example, was producing processors for the desktop at a price-performance level so attractive that it made a lot of sense to start using commodity-based or volume-based application infrastructures. With the rapid growth of the Web tier, a free UNIX-like operating system coupled with inexpensive servers proved pretty attractive.

    Second, the same period witnessed the increasing popularity of the open source development model.


    Continue reading Upgrading from Linux to Solaris here.

    Demystifying Embedded Code Storage

    Tue, 05/08/2007 - 19:43

    Optimizing for Lower Cost and Higher Performance through Balanced XIP

    1.0 Introduction

    Embedded system1 designers have a variety of code execution methods to choose from: eXecute-In-Place2 (XIP), Fully Shadowed3 and Demand Paging4. Using the best method is the key for a cost-effective solution. Each method has different implications in terms of RAM and Flash usage which directly affect the cost of the system. By choosing the best solution, the designer can realize optimal speed and chip size while reducing the Bill of Materials (BOM). This paper will explore a new type of code execution called Balanced XIP. Balanced XIP combines XIP and Demand Paging to achieve a flexible solution that can be optimized for the greatest overall performance and Flash/RAM usage to accommodate continuously changing requirements.

    2.0 Techniques and Approaches

    Many factors are involved with determining the code execution method for a system; BOM cost, processor features, OS capability, etc. A system may not support paging if the processor lacks a Memory Management Unit5. Most RTOS6 do not have the dynamic memory management system needed for Demand Paging. Therefore many RTOS designs are limited to either Fully Shadowed or Execute-In-Place. If the hardware supports it, a full-featured operating system may be used to allow for a Demand Paging or a Balanced XIP approach.

    To read more, click link below to subscribe to Intel® Software Dispatch and begin receiving Intel® Software Insight, a quarterly e-zine focused on the topics software-industry leaders care about. Once you fill out the brief subscription form, you will be able to download the pdf and continue reading Demystifying Embedded Code Storage .

    To read complete article, click download below.

    Case Study: Bank of Communications

    Thu, 04/26/2007 - 18:22

    Banking On Intel and SUSE Linux* Operating System (OS)

    Bank of Communications (BOCOM) powers up transactional processing on Intel® Platforms running SUSE Linux* OS
    Technology is vital in the daily business operations of any modern bank, and like many banks in China, the Bank of Communications (BOCOM) relies on front-end servers to manage numerous terminals in its branches. BOCOM wanted to take advantage of new information systems available on the market because its mounting volume of business transactions was making it increasingly difficult for the bank's current computer systems to maintain its stability. In 2006, BOCOM revamped the information systems at its branches, upgrading to Intel® processors running the SUSE Linux* operating system.

    Challenge

    • Improve performance of servers and terminals. In order to deploy new bank information system applications that will provide better services to customers, BOCOM required higher performance from the existing frontend servers and terminals.
    • Reduce server downtime. BOCOM wanted to enhance error-tolerance of its front-end servers in order to reduce downtime at the terminals.
    • Improve return on investment (ROI). BOCOM wanted to upgrade its systems at a lower cost and realize a high return on investment.

    Solutions

    • Upgrade terminals. Replace terminals with PCs based on the Intel® Pentium® 4 processor.
    • Upgrade front-end servers. Deploy front-end servers based on the Intel® Xeon® processor and the Intel® Itanium® 2 processor.
    • Go with SUSE Linux* OS. Utilize SUSE Linux operating system and develop SUSE Linux* OS-based applications.
    To read more, click link below to subscribe to Intel® Software Dispatch and begin receiving Intel® Software Insight, a quarterly e-zine focused on the topics software-industry leaders care about. Once you fill out the brief subscription form, you will be able to download the pdf and continue reading Case Study: Bank of Communications.

    To read complete article, click download below.

    Product Brief: Intel Core 2 Duo Desktop Processor

    Thu, 04/05/2007 - 09:22

    Ecommerce Internet Solutions Free Digital Video Editing Computer Software: PC users are running multiple, intense software applications simultaneously, increasing demand on hardware resources. In the office, PC usage has changed from data entry and word processing to e-Commerce, online collaboration and an ever-increasing need for continual security and virus protection. In the home, interests have shifted from low-bandwidth photos and Internet surfing to downloading and viewing high definition videos, as well as advanced photo and video editing.

    Product Description
    PC users are running multiple, intense software applications simultaneously, increasing demand on hardware resources. In the office, PC usage has changed from data entry and word processing to e-Commerce, online collaboration and an ever-increasing need for continual security and virus protection. In the home, interests have shifted from low-bandwidth photos and Internet surfing to downloading and viewing high definition videos, as well as advanced photo and video editing. The Intel® Core™2 Duo processor was developed to meet all these demands.

    Built on the innovative Intel® Core™ microarchitecture, the Intel Core 2 Duo desktop processor delivers revolutionary dual-core performance and breakthrough processor energy efficiency. With Intel® Wide Dynamic Execution, Intel® Smart Memory Access, Intel® Advanced Smart Cache and Intel® Digital Media Boost, this new processor is designed to do more in less time. Additional features to support enhanced security, virtualization and 64-bit computing makes the Intel Core 2 Duo the most impressive new processor developed for an increasingly multimedia-centered, high-definition world.

    Energy Efficiency
    Design changes in the Intel Core 2 Duo processors that improve performance also increase processor energy efficiency by operating at lower frequencies that require less power to run. A new feature, Intel® Intelligent Power Capability, optimizes energy usage of the processor cores by turning on computing functions only when needed. These more energy-efficient processors support smaller, more capable, and quieter desktop PCs to conserve critical power resources.


    To read more, click link below to subscribe to Intel® Software Dispatch and begin receiving Intel® Software Insight, a quarterly e-zine focused on the topics software-industry leaders care about. Once you fill out the brief subscription form, you will be able to download the pdf and continue reading Product Brief: Intel Core 2 Duo Desktop Processor.

    To read complete article, click download below.

    Intel® Compilers for Linux*: Compatibility with GNU Compilers

    Thu, 04/05/2007 - 06:31

    Free C++ Compiler GCC Profile Code Linux Software Development Tools: This paper describes the compatibility between Intel Compilers for Linux and GNU compilers in terms of source, binary, and command-line compatibility. The Intel C++ and Fortran Compilers help make your software run at top speeds on Intel platforms, including IA-32, processors with Intel EM64T, and Intel Itanium processor-based systems. The compilers also provide compatibility with commonly-used Linux software development tools.

    Introduction

    This paper describes the compatibility between Intel® Compilers for Linux* and GNU compilers in terms of source, binary, and command-line compatibility. The Intel® C++ and Fortran Compilers help make your software run at top speeds on Intel platforms, including IA-32, processors with Intel® EM64T, and Intel® Itanium® processor-based systems. The compilers also provide compatibility with commonly-used Linux softwaredevelopment tools.

    Overview

    Intel C++ Compiler 9.0 for Linux provides excellent source and binary compatibility with the GNU GCC compiler. Compared to previous versions, Intel C++ Compiler 9.0 has improved compiler-option compatibility with GCC and general improvements related to the GCC build environment.

    The motivation for improved compatibility comes from customer requests in several areas:

    • Mixing and matching binary files created by g++, including third-party libraries
    • Generating C++ code compatible with g++ 3.2, 3.3 or 3.4
    • Building the Linux kernel with the Intel Compiler with fewer workarounds
    • Improved support for command-line options offered in the GNU compilers

    To read more, click link below to subscribe to Intel® Software Dispatch and begin receiving Intel® Software Insight, a quarterly e-zine focused on the topics software-industry leaders care about. Once you fill out the brief subscription form, you will be able to download the pdf and continue reading Intel® Compilers for Linux*: Compatibility with GNU Compilers.

    To read complete article, click download below.

    IDC Analysis of ISVs, Intel,and Linux

    Thu, 04/05/2007 - 05:33

    IDC Market Research Survey Red Hat Linux Dedicated Server Software Vendor List: In IDC’s opinion, Red Hat and Intel perform well across the three major factors that can influence an independent software vendor’s (ISV) decision to partner with a software vendor.

    Why Linux Is Good for ISVs

    Sponsored by: Red Hat and Intel

    IDC OPI NION

    In IDC’s opinion, Red Hat and Intel perform well across the three major factors that can influence an independent software vendor’s (ISV) decision to partner with a software vendor:

    • The degree of customer demand pull
    • The resources and benefits provided to partners
    • The ease of doing business with the vendor

    IN THIS WHITE PAPER

    This IDC White Paper examines the market opportunity for enterprise Linux products and services and the position of Red Hat and Intel’s collaborative solution set in that market. It discusses the key resources Red Hat provides to ISVs to help them port and build applications to run on Red Hat Enterprise Linux and presents IDC’s opinion on Red Hat and Intel’s value proposition for ISV partners.

    THE LINUX OPPORTUNITY

    The growth of Linux operating environments and products is continuing along the path from upstart invention to enterprise competitor. IDC forecasts the market for application and infrastructure software on Linux to grow to $14.2 billion by 2008, representing a compound annual growth rate (CAGR) of 44.3% from 2003 (see Table 1). Factors that make enterprise-oriented Linux products attractive to customers consist of longer and more predictable support life cycles, including security patch life cycles, combined with extensive certifications on industry-standard hardware platforms, such as Intel® EM64T, Intel® Xeon., and Intel® Itanium® 2 processor.based servers.


    To read more, click link below to subscribe to Intel® Software Dispatch and begin receiving Intel® Software Insight, a quarterly e-zine focused on the topics software-industry leaders care about. Once you fill out the brief subscription form, you will be able to download the pdf and continue reading IDC Analysis of ISVs, Intel,and Linux.

    To read complete article, click download below.

    BusinessObjects XI: An End-to-End Overview

    Wed, 04/04/2007 - 22:52

    Crystal Enterprise XI Security Features : BusinessObjects XI delivers extreme insight through specialized end-user tools on a single, trusted business intelligence platform. BusinessObjects XI includes the industry’s best performance management, reporting, and query and analysis products.

    BusinessObjects XI delivers extreme insight through specialized end-user tools on a single, trusted business intelligence platform. BusinessObjects XI includes the industry’s best performance management, reporting, and query and analysis products. These integrated end-user interfaces are supported by the most reliable, scalable, flexible, and manageable BI platform, and complemented by unified data integration.

    End users have better business visibility with BusinessObjects XI. They can feel confident that they are achieving their goals on time, and they can easily align individual and group actions and decisions to the broader organizational strategy. Thanks to a unified view of enterprise performance, end users can measure what matters most and monitor individual and operational goals and metrics through intuitive, interactive, and visual displays of information.

    BusinessObjects XI allows the IT department to integrate BI into any infrastructure and embed secure components into virtually any application. With its adaptive, services-oriented architecture, broad data access, end-to-end metadata, and centralized, web-based administration—BusinessObjects XI is the best platform to standardize on for all your BI needs and to embed into your existing applications.


    To read complete article, click download below.

    Building Clusters the Easy Way with OSCAR*

    Thu, 03/29/2007 - 07:33

    Dual Xeon Processors Dedicated Server Hosting Oscar Clusters: Clusters offer a scalable means of linking computers together to provide an expansive environment for hosting enterprise applications. The Intel Xeon; processor and Itanium processor are cost-effective platforms that are well-suited to implementing clusters, providing advanced features such as parallel architecture, large addressable memory spaces, and three-level cache for fast access to critical data.

    Introduction
    by John Sharp, Content Master Ltd

    Clusters offer a scalable means of linking computers together to provide an expansive environment for hosting enterprise applications. The Intel® Xeon® processor and Itanium® processor are cost-effective platforms that are well-suited to implementing clusters, providing advanced features such as parallel architecture, large addressable memory spaces, and three-level cache for fast access to critical data.

    OSCAR* (Open Source Cluster Application Resources), is an open-source project comprising software for building high-performance clusters. Currently, OSCAR is available for Linux*. OSCAR is managed by the Open Cluster Group, an informal group of professionals from a variety of establishments and organizations. The goal behind the OSCAR project is to make clustering a freely available and easily configurable option for systems based on Linux, helping to bring Linux into the mainstream of enterprise computing.

    OSCAR contains a number of facilities, including cluster-management tools, a message passing interface based on the MPI standard, a job queuing system, and a batch scheduler. System images can be built on an OSCAR server and downloaded to OSCAR clients for execution using the OSCAR Installation Wizard. The environment is straightforward to install and configure, providing good scalability at minimal cost.

    This paper provides an overview of OSCAR, describing how to use it to deploy an application cluster that can be used as a platform for high-performance computing.

    Convergence Rules: Consumer Electronics Show 2007

    Wed, 03/21/2007 - 07:51

    By Meghan Desai, Rotation Engineer
    Intel® Software Group

    This year's Consumer Electronics Show showcased a dizzying array of consumer electronics devices with exhibits distributed across the Las Vegas Convention Center, the Las Vegas Hilton Convention Center, and the Sands Convention Center. With 2,700 booths spanning nearly 2 million square feet, the experience of walking through this maze and attempting to capture it all can be summed up by only one word: overwhelming. Many top industry players showed up-Intel, Microsoft, Hewlett-Packard, Panasonic, and others-as well as many smaller companies.

    Amidst the chaos, one trend was striking: the convergence of functions in compact electronic devices. For example, the new Nokia n93i* combines cell-phone functionality with an MP3 player and a 3.2-megapixel camera. It can also convert to a camcorder or wireless mini laptop. Meanwhile, this trend of convergence was also evident from the other side, that is, computers packing their functionality in smaller and smaller form factors and incorporating other features. Samsung showcased its Ultra Mobile PC (UMPC) as the world's first, running Microsoft Windows Vista* on an Intel® Celeron® M processor.

    Of course, Intel's booth also had an array of UMPCs and Ultra Mobile Devices (UMDs). Incorporating 3G, Wi-Fi*, and built-in webcams, UMDs are where cell phones meet the PC. At the east end of the booth, seated in real Formula 1* race cars, drivers tested their skills playing RFactor* on Intel® Core™2 Extreme processorbased systems. Experienced with car-racing games, your humble author can attest to the unbelievable realism.


    To read more, click link below to subscribe to Intel® Software Dispatch and begin receiving Intel® Software Insight, a quarterly e-zine focused on the topics software-industry leaders care about. Once you fill out the brief subscription form, you will be able to download the pdf and continue reading Convergence Rules: Consumer Electronics Show 2007.

    To read complete article, click download below.

    Innovative Outreach Builds Momentum for Multi-Core Development Globally

    Wed, 03/21/2007 - 07:25

    To keep pace with the industry-wide shift toward multi-core processing, technology companies are reshaping their product roadmaps to capitalize on the rich opportunities and educating their development staff on the benefits of parallelism. The development community is getting more active as well, recognizing the possibilities offered by multi-threaded applications and seeking to learn the techniques that will influence their careers in the future.

    To help unlock the unrealized potential of multi-core processing, Intel is actively involved on several fronts. Using a variety of communication techniques and producing resources to equip the software community with multi-threading expertise, Intel is expanding their outreach into new areas to reach a new generation of software professionals.

    Intel’s innovative outreach is advancing in these areas:

    • In the classroom. Cooperative educational venues with major universities and expertdriven training sessions are helping communicate the essential multi-threading development skills all programmers will need to advance their careers.
    • On the Web. Through a variety of community-building activities—including blogs, forums, chalk-talk videos, FAQs, and expert question-and-answer sessions the Intel Multi-Core Developer Community-Intel® Software Network Web site offers a focal point for learning the coding skills for next-generation programming on multi-core platforms.
    • In worldwide competitions. The Intel Multi-Threading Competition Series brought creativity to a new peak as developers worldwide vied for top honors.

    To read more, click link below to subscribe to Intel® Software Dispatch and begin receiving Intel® Software Insight, a quarterly e-zine focused on the topics software-industry leaders care about. Once you fill out the brief subscription form, you will be able to download the pdf and continue reading Innovative Outreach Builds Momentum for Multi-Core Development Globally.

    To read complete article, click download below.

    Optimize Game Code for Better Real-Time Physics

    Wed, 03/21/2007 - 07:08

    Gamers are constantly looking for the next hot playing experience. Game developers feed this hunger by perfecting game realism, animation, and interactivity. This frequently includes optimizing their newest games for the latest game-playing platforms. To keep raising the bar, many top game developers and publishers use products from Havok, one of the gaming industry's leading independent providers of physics and character animation middleware. Its leading physics engine is one of the most widely used technologies for developing state-of-the-art games such as F.E.A.R*, Half Life 2*, Age of Empires III*, Company of Heroes*, Max Payne 2*, Destroy All Humans 2*, Over the Hedge*, Auto Assault*, and Oblivion*. Havok’s dedication to continuously innovating, enhancing, and optimizing its technology for new platforms has made it a first-choice for renowned publishers like Sony, Microsoft, EA, Ubisoft, and Activision.

    BREAKING DOWN THE BARRIERS TO IMMERSIVE GAMEPLAY

    To be competitive, today’s game worlds require realistic animations, authentic behaviors, and highly believable characters. Accomplishing such realism requires superior gameplay physics simulations. Gameplay physics affects how a game is played from moment-to-moment, and is generally computed on a computer’s processor. Physical changes that you cause in the game or that happen to you or around you—like knocking over a box, and then climbing up on it—change what you may want to do in each instant of gameplay. To maintain the realism, all these changes have to occur smoothly with no detectible latency. For this to happen, the close proximity between physics, game logic, and memory generally demands that these systems execute together on a computer’s processor.

    A limiting factor in the past was hardware power. This is rapidly changing with the advent of multi-core processors. Combined with graphics processing unit (GPU) graphics, multi-core processor architectures have the potential to enable fully simulated game characters and their moment-to-moment actions in completely interactive and destructible 3-D worlds. Havok has introduced HydraCore* technology in its physics system and other products to take advantage of these architectures now and in the future.


    To read more, click link below to subscribe to Intel® Software Dispatch and begin receiving Intel® Software Insight, a quarterly e-zine focused on the topics software-industry leaders care about. Once you fill out the brief subscription form, you will be able to download the pdf and continue reading Optimize Game Code for Better Real-Time Physics.

    To read complete article, click download below.

    Linux Security Administrator's Guide, Part 2

    Sat, 08/21/2004 - 12:17

    Linux system administration includes a number of system security issues, from broad host security and network security to usage policies and firewalls. Linux security administrators need to be aware of all possible vulnerabilities. More on linux vulnerabilities and ux security tools in this linux system administration tutorial

    by David Wreski, president and CEO, Guardian Digital Inc.

    Continuing where we left off in Part 1, we can now discuss some of the fields. Particularly, field one and fields three and four are the most exciting.

    File permissions and ownership
    Linux separates access control on files and directories according to three characteristics: owner, group, and other. There is always exactly one owner, any number of members of the group, and everyone else.

    The files within each of these categories have specific permissions with which they are accessed. File permissions, including regular files, special files (such as FIFOs, sockets, etc), or symbolic links (which dereference the permissions to the file they point to) can have any one, or any, of the following:

    SymbolPermission Description
    rReadCan be opened to read the contents
    wWriteCan be modified, including appending and deleting
    xExecuteCan execute the file if it is a program or shell script
    sSpecial Permsetuid or setgid permission
    -Access DeniedCannot be read, written, or executed, depending on the position of the `-'

    The read, write, and execute permissions should be pretty clear as to their meaning. However, the "s" symbol may need to explanation. The next two sections address this symbol.

    Set user-identification attribute
    When the set user ID access mode is set in the owner permissions, and the file is executable, processes which run it are granted access to system resources based on the owner of the file.

    Be extremely careful when setting these permissions. Any user who runs that file assumes the permissions of the owner of the executable file, instead of the user who created the process. This is the cause of many "buffer overflow" exploits, typically resulting in superuser privileges.

    The setuid permission is shown as an s in the file permissions. For example, the setuid permission on the /usr/bin/passwd command enables normal users to read and write an otherwise inaccessible /etc/passwd file:

    user@myhost$ ls -l/etc/shadow/etc/passwd /usr/bin/passwd
    -r--------1 rootroot659 Jul 25 19:40 /etc/shadow
    -rw-r--r--1 rootroot711 Jul 25 19:40 /etc/passwd
    -r-sr-xr-x1 rootbin15613 Apr 27 12:29 /usr/bin/passwd

    You will notice that the s takes the place of the execute bit in the example above. This special permission mode really has no meaning unless the file also has execute permission as well.

    In the example we see the /etc/shadow file is only readable by root, yet the /usr/bin/passwd file enables us to write our password changes there. When either a normal user, a member of the bin group, or even anyone else executes /usr/bin/passwd, it is really run as root, due to the "s" bit set in the owner's permissions field.

    Keep in mind that setuid has a different meaning when applied to directories. See the explanation for directories that follows.


    Linux + mainframe +integration: a formula for success?

    Sat, 05/08/2004 - 20:09

    by Mark Lillycrop, CEO, Arcati Ltd.

    If the lack of integration and support has been holding up Linux deployments in the data center, IBM's Integrated Platform announcement is likely to kick-start the market.

    By any standards, IBM's progress in driving Linux up into the data-center environment has been impressive. Although the open-source operating system has been struggling to gain credibility as a base for real business-critical applications, a steady stream of enterprise-class customers has been implementing new systems under Linux, moving the focus away from simple Web server and file/print server deployment and toward core business systems.

    Download this whitepaper and find out more.

    © 2003 Arcati Ltd.


    The Convergence of Virtualization, Grid, and SOA

    Sun, 02/11/2007 - 01:05

    By Richard Wirt, Senior Intel Fellow, Vice President and General Manager of the Intel Software Solutions Group

    A three-step technology convergence is unfolding that will better align business and IT, making enterprises more agile, operationally efficient, and able to deliver new and better value to end customers. This convergence will also better position IT as a strategic element in the global business value equation.

    The convergence of technologies such as virtualization, Grid, and serviceoriented architecture (SOA) is creating a critical inflection point for the enterprise IT architecture. The resulting converged state of these technologies holds the promise of addressing some of the most significant problems facing enterprises today.

    Forces creating an opportunity for IT innovation

    Four forces are driving enterprises to move toward standards-based solutions built using virtualization, Grid, and SOA technologies. That move is creating an opportunity for IT organizations to better serve the business and ultimately the customers of the business.

    The evolution of business processes
    Most enterprises have learned from the past couple of decades that new technologies can be critical for transforming a business to better serve customers since this transformation often requires automating processes and changing the fundamental way a business runs and operates. For example, build-to-order PC vendors have transformed how companies deliver customized products to individual customers, creating competitive advantages. Pharmaceutical companies are applying a similar model to their business as they work to deliver personalized medications to meet individual needs.


    To read more, click link below to subscribe to Intel® Software Dispatch and begin receiving Intel® Software Insight, a quarterly e-zine focused on the topics software-industry leaders care about. Once you fill out the brief subscription form, you will be able to download the pdf and continue reading The Convergence of Virtualization, Grid, and SOA.

    To read complete article, click download below.

    Free Trade Magazine Subscriptions and Technical Document Downloads

    Thu, 01/04/2007 - 00:03

    FREE Trade Magazine Subscriptions & Technical Document Downloads.

    Browse through our extensive list of trade publications and technical documents by industry and geographic eligibility to find the titles that best match your skills and interests. Simply complete the application form and submit it. Publications are absolutely free to professionals who qualify.

    Publications include:

    • Oracle Magazine
    • Queue
    • CRM Magazine
    • eWeek
    • Business Solutions
    • InformationWeek
    • and many more

    Click here to see more.


    The Democratizing Power of the Web

    Sun, 12/03/2006 - 05:31

    Computer Future Technology Trends in Instructional Technology: One of the most interesting trends to watch in 2007 is the continued democratizing power of the Web. You can see it everywhere. One of America's finest institutions of learning, Yale University, is posting its curriculum online for anyone to freely access. Education, broadly distributed, for free. It's great for our collective global intelligence. And Yale is not the only one - Stanford University, the University of California, the University of Wisconsin, and others are participating in the Google Library Project to provide the entirety of their library's contents to everyone, everywhere via the Web.

    By Jonathan Schwartz
    One of the most interesting trends to watch in 2007 is the continued democratizing power of the Web. You can see it everywhere. One of America's finest institutions of learning, Yale University, is posting its curriculum online for anyone to freely access. Education, broadly distributed, for free. It's great for our collective global intelligence.

    And Yale is not the only one - Stanford University, the University of California, the University of Wisconsin, and others are participating in the Google Library Project to provide the entirety of their library's contents to everyone, everywhere via the Web.

    Whether or not you are interested in online education, what's really happening here is that these universities are reaching new "audiences" - students and academics in this case. Who's going to take these courses? Those who couldn't afford to attend, or are located in far regions of the globe, or maybe just didn't have the grades. Either way, what's important is that the universities aren't cannibalizing their existing student population, but expanding it (and their reputations) - to billions of people through the Internet.



    Continue reading The Democratizing Power of the Web here.

    SUSE® Linux Enterprise Server from Novell®: Benefits for Manufacturing

    Wed, 08/23/2006 - 21:31

    Setting Up a SUSE Linux 9 File Server: By including technologies like the XEN hypervisor for virtualization, Oracle Cluster File System 2, Heartbeat 2.0.3 and Multipath I/O for storage, high availability and failover, SUSE Linux Enterprise Server allows you to reach new levels of server consolidation and utilization, storage management, automation and savings in the data centers you have deployed across the globe.

    In order to fuel innovation and get products to market faster, you need to be the most efficient. With regards to a manufacturer’s infrastructure, that means reducing operational costs and automating management—even at remote sites—while increasing security and not compromising on agility. You need to make smart choices in base infrastructure technology.

    SUSE® Linux Enterprise Server from Novell® enables you to deliver mission-critical IT services—with enhanced security and reduced costs—while improving reliability and performance.

    Now is the Time for Linux in Manufacturing

    SUSE Linux Enterprise 10 is the platform for the open enterprise. Through the most rigorous software building and testing best practices in the industry, Novell designs SUSE Linux Enterprise to be the best engineered, lowest cost and most inter-operable platform for enterprise computing. The SUSE Linux Enterprise 10 platform offers several solutions for the manufacturing industry, including SUSE Linux Enterprise Server and SUSE Linux Enterprise Real Time. Numerous manufacturers are using SUSE Linux Enterprise Server in their corporate and technical data centers, trusting Novell excellence in serving global enterprises to satisfy the specialized needs of business and engineering—significantly reducing costs while improving system performance.

    SUSE Linux Enterprise Server 10 allows you reap substantial performance and cost benefits in the following areas:

    • Infrastructure services and edge computing
    • Databases
    • Mission-critical applications
    • High-performance computing

    By including technologies like the XEN hypervisor* for virtualization, Oracle Cluster File System 2*, Heartbeat* 2.0.3 and Multipath* I/O for storage, high availability and failover, SUSE Linux Enterprise Server allows you to reach new levels of server consolidation and utilization, storage management, automation and savings in the data centers you have deployed across the globe.

    SUSE® Linux Enterprise Server 10: Virtualization with Xen and Use Cases

    Wed, 08/23/2006 - 21:22

    Xen SUSE Linux Virtual Server Tutorial : Novell is committed to the propagation of Xen* virtualization technologies. These technologies are included in the release of SUSE Linux Enterprise Server 10, the latest open source server operating system from Novell. This unique opportunity for Novell to take a leading role in the shift to virtualization-based IT is due to the convergence of commodity hardware and open source software—that is, Linux running on x86 and x86-64 computers.

    Resource utilization. Efficiency. Scalability. Availability. Manageability. Security. These are the issues that keep data center managers awake late into the night. Virtualization technologies can address these concerns and benefit the entire enterprise, but they haven’t been widely adopted—that is, until recently.

    What’s changed? Well, for starters, the data center. The number of physical servers has grown to unmanageable proportions. Enterprises need virtualization technologies to compensate for the inefficiencies of increasing server sprawl. Linux* has taken a more prominent role in enterprises1—handling everything from edge services (Web, firewall, DNS and DHCP) to middle-tier application and middleware; from backend database, e-mail and file serving to commercial high-performance cluster computing and enterprise grid deployments. More and more enterprises are also turning to Linux to help address their multi-tier server consolidation issues. In addition, Intel and AMD have designed virtualization functionality into the latest x86 and x86-64 processors—adding hardware support for server consolidation by enabling strict fault and performance isolation. They’ve also added functionality that enables unmodified operating systems to run concurrently on the same physical machine.

    In this rapidly changing landscape, Linux vendors such as Novell have recognized the possibilities for data center transformation. These organizations are now releasing a new generation of products designed to integrate virtual machines—increasing efficiency and managing resources in ways that were unforeseen just a few years ago.

    Novell is committed to the propagation of Xen* virtualization technologies. These technologies are included in the release of SUSE® Linux Enterprise Server 10, the latest open source server operating system from Novell®. This unique opportunity for Novell to take a leading role in the shift to virtualization-based IT is due to the convergence of commodity hardware and open source software—that is, Linux running on x86 and x86-64 computers. It’s a combination that is transforming racks of compute and storage servers into the preeminent enterprise IT platform. Virtualization is also differentiating applications as they evolve into self-contained modular services. Xen virtual machines take that evolution one giant step further.

    COCC success story

    Wed, 08/23/2006 - 19:24

    Install SUSE 10.0 Linux: When trying to find a high performance Linux server software vender, COCC was determined to find a vendor that shared a strong commitment to customer support. The company evaluated Linux solutions, including Red Hat, but found a more comprehensive and secure solution in SUSE LINUX Enterprise Server. COCC was able to install SUSE 10.0 LINUX Enterprise Server in about an hour and quickly began performing Microsoft Windows and Unix to Linux migration for their business applications. SUSE programs provide Linux network installation options and online tools to monitor Linux network performance and more. Download this free case study to learn more about how SUSE 10.0 Linux can exceed your Linux infrastructure requirements.

    OVERVIEW

    COCC is a mutually owned service bureau proving information technology services to community banks and credit unions in the Northeastern U.S. The company has more than 130 customers and nearly 300 employees.

    CHALLENGE

    Technology requirements often exceed the capabilities of many community banks and credit unions. COCC provides the technology expertise to help these organizations run their businesses and compete with national banks. The company services 7,000 workstations, 500 ATMs and processes more than 7 million check images each month. COCC needs to support a broad variety of platforms and applications, as well as have the flexibility to create custom applications to meet specific needs of its customers.

    Security is also a critical requirement for operating in a tightly regulated industry. COCC had been using a proprietary UNIX* system, but wanted to move its business to an open platform to improve its development opportunities and reduce costs. The company also hoped to improve performance and security.

    SOLUTION

    For a company focused on customer service, COCC was determined to find a software vendor that shared a similar commitment to support. The company evaluated Linux* solutions, including Red Hat*, but found a more comprehensive and secure solution in SUSE LINUX Enterprise Server. COCC was able to install SUSE LINUX Enterprise Server in about an hour and quickly began performing application migrations from UNIX or Microsoft Windows.

    Deutsche Bahn

    Wed, 08/23/2006 - 19:14

    ISP Supports Linux: Deutsche Bahn, Germany's national railway company, has selected Linux* as its strategic server platform. Currently DB Systems, the IT service provider of Deutsche Bahn, is running more than 300 Intel-based servers with critical business applications on Novell's SUSE LINUX Enterprise Server. Applications like Lotus Notes* have now been migrated to the IBM mainframe platform also using SUSE Linux Enterprise Server. DB Systems expects significant cost savings, more vendor independence and integration advantages throughout the roll-out period and beyond.

    WALTHAM, Mass. - March 30, 2005 - Deutsche Bahn, Germany's national railway company, has selected Linux* as its strategic server platform. Currently DB Systems, the IT service provider of Deutsche Bahn, is running more than 300 Intel-based servers with critical business applications on Novell's SUSE® LINUX Enterprise Server. Applications like Lotus Notes* have now been migrated to the IBM* mainframe platform also using SUSE Linux Enterprise Server. DB Systems expects significant cost savings, more vendor independence and integration advantages throughout the roll-out period and beyond.

    "We had to choose a system that would offer us the flexibility, security and reliability required to maintain a high level of services to our customers. We are confident that a Linux based system can offer us this more cost effectively than any proprietary solutions," said Detlef Exner, director of IT Production for DB Systems.

    Following that strategy, DB Systems evaluated several options and selected SUSE Linux Enterprise Server due to its scalable, high-performance foundation for secure enterprise computing. Exner adds, "Novell's ability to offer extensive support for SUSE Linux and its co-operation with many hardware and software vendors has given us additional confidence to use this also for our mission-critical tasks."

    Intel® Software Insight, July 2006: Perspectives on Open Source and the Freedom of Choice

    Wed, 07/19/2006 - 23:12

    Open Source Solutions for Small Business: The July 2006 issue focuses on: Innovation Thrives on Choice: Intel Sparks Creativity in the Open Source Community, Overhauling the Legacy BIOS: The Framework Breaks New Ground, Parallelism Drives Performance: A Perspective on the Future of Processing.

    Intel® Software Insight series: A quarterly publication that focuses on issues, topics, and technologies that leaders in the software industry care about. Explore the impact of Intel® Virtualization Technology and Intel® Active Management Technology. The July 2006 issue focuses on the Open Source, including the following articles:
    • Innovation Thrives on Choice: Intel Sparks Creativity in the Open Source Community
    • Overhauling the Legacy BIOS: The Framework Breaks New Ground
    • Parallelism Drives Performance: A Perspective on the Future of Processing


    To download the July issue, click the link below to subscribe to Intel® Software Dispatch. You will be able to download the July issue and you will start receiving Intel® Software Insight, on a quarterly basis.

    To access July issue, click download below.

    Globus Success Story

    Wed, 08/23/2006 - 18:49

    Linux OS Reviews: GLOBUS evaluated several Linux solutions before selecting SUSE LINUX Enterprise Server. The company needed a comprehensive solution that was also modular and flexible. GLOBUS began implementing SUSE LINUX Enterprise Server in 20 of its smaller locations and in a short time saw good results. The company is now rolling out SUSE LINUX individually to all its 35 locations. An IT team of two can install, transfer data and test SUSE LINUX Enterprise Server for a store location in less than a week.

    OVERVIEW

    Established 175 years ago, GLOBUS is a leading retailer in Germany with more than 20,000 employees and nearly 90 locations, including 10 in the Czech Republic. GLOBUS competes in a more than 35 markets, including food, electronics and home improvement, selling more than 100,000 products in each of its stores.

    CHALLENGE

    GLOBUS had been using a proprietary UNIX* system to run its custom-developed ERP applications. Each store location had an expensive server to run its ERP applications, as well as file and print services. With slim profit margins in the food market, the company needed to significantly reduce its IT expenditures, without sacrificing performance or reliability. By moving from a proprietary system to Linux*, GLOBUS sought to reduce both its software and hardware costs.

    SOLUTION

    GLOBUS evaluated several Linux solutions before selecting SUSE LINUX Enterprise Server. The company needed a comprehensive solution that was also modular and flexible.

    GLOBUS began implementing SUSE LINUX Enterprise Server in 20 of its smaller locations and in a short time saw good results. The company is now rolling out SUSE LINUX individually to all its 35 locations. An IT team of two can install, transfer data and test SUSE LINUX Enterprise Server for a store location in less than a week.

    SUSE® Linux Enterprise 10

    Thu, 08/03/2006 - 00:49

    SUSE Linux Enterprise 10 is an open, flexible and secure platform that is ready to host the applications and databases critical to your business—from the desktop to the data center, across a wide variety of workloads. The SUSE Linux Enterprise platform is tightly integrated with Novell solutions for systems management, identity management and workgroup services, and it also utilizes open standards, which simplifies integration with your existing IT environment.

    With SUSE Linux Enterprise, your organization can better address the challenges of increasing competition, spiraling costs, growing security threats and demanding customers. When performance, reliability and world-class support really matter, organizations choose SUSE Linux Enterprise from Novell®.

    SUSE Linux Enterprise 10 includes the following components:

    • SUSE Linux Enterprise Server. The most reliable, secure and scalable enterprise Linux server, designed to run mission-critical applications in the data center.
    • SUSE Linux Enterprise Desktop. The only enterprise-quality Linux desktop on the market, designed for the general purpose business user.
    • Novell Customer Center. One location to obtain support, updates and renewals for all your SUSE Linux Enterprise product subscriptions.

    Novell ZENworks® Linux Management is not part of the platform but is frequently discussed as a significant value-added patch-and-update tool that integrates into Novell Customer Center.

    In the future, Novell will release additional products built on top of the SUSE Linux Enterprise 10 platform, including SUSE Linux Point of Service 10 and Novell Open Enterprise Server 2.

    SUSE LINUX ENTERPRISE SERVER 10

    With more than 1500 enhancements, new features and updates, SUSE Linux Enterprise Server 10 is the latest version of the world’s best-engineered Linux* server.

    SUSE Linux Enterprise Server is an enterprise-quality server designed to handle mission-critical workloads in the data center. Developed and backed by Novell, only SUSE Linux Enterprise Server offers an open, scalable, high-performance data center solution that comes with application security, virtualization and integrated systems management across a full range of hardware architectures. SUSE Linux Enterprise Server is deployable as a general-purpose server or can be tailored to run a variety of specialized workloads, and it offers seamless interoperability with your existing data center infrastructure.

    Supported and certified by the world's leading hardware and software vendors, SUSE Linux Enterprise Server is backed by award-winning Novell technical support and a global ecosystem of partners and services. With SUSE Linux Enterprise Server, businesses can dramatically reduce costs while deploying the most secure and reliable data center server on the market.

    Talking Security with Mr. Cryptography

    Tue, 10/31/2006 - 17:46

    History of Encryption and Computer Disk Encryption Security Software: Sun's Whitfield Diffie on ECC and Solaris 10 OS security Whitfield Diffie was the first to show how public key cryptography could be used by people who had no prior knowledge of each other to communicate securely. Diffie is now Chief Security Officer at Sun. Sun Inner Circle met with Diffie to learn about Sun's vision of the future of information security.

    Sun's Whitfield Diffie on ECC and Solaris 10 OS security

    In a groundbreaking 1976 paper on public-key cryptography, Whitfield Diffie famously illustrated how people with no prior knowledge of each other could use a shared public key and private secret key to enable a secure communications. Now as chief security officer at Sun Microsystems, Diffie is responsible for ensuring that Sun remains on the forefront of security innovation. Sun Inner Circle recently caught up with Diffie to discuss how Sun sees the future of information security and encryption.

    Inner Circle (IC): It's been nearly 30 years since the 1976 Diffie-Hellman paper ushered in the age of public-key cryptography. What's the impact of the paper today?

    DIFFIE: It's like having 15 minutes of fame: I did one good hour of work in 1976 and I've been making a living off of it ever since. The impact of the paper has been very gratifying. With SSL in every browser, public-key encryption is the most widely deployed cryptographic technology of all time.

    It's also gratifying to have achieved some goals that are broader than the technology. I was one of the founders of the Association for Cryptologic Research, which now has more than 1,000 members and plays a role in putting on more than a dozen conferences a year. I just came back from Crypto 2006 in Santa Barbara, which had 500 attendees. The first Crypto conference was in the same location in 1981. It was the first public research conference on cryptography that I can recall and it had about 50 attendees.

    One of my goals was unification of the techniques used to protect government information with those used to protect commercial information. It always seemed silly to think that a secret document required more protection than a billion dollar funds transfer. Well, it's finally begun to happen. Last year, the National Security Agency announced a new suite of cryptographic algorithms authorized to protect all levels of classified information. All of them are public and most of them are public standards. They call it Suite B. (Suite A is a collection of secret algorithms with colorful names like "Juniper" and "Mayfly.")

    The centerpiece of Suite B is the Advanced Encryption Standard, a cryptographic algorithm designed in Belgium and selected by the U.S., in an international contest, to be its national standard. The key management part of Suite B is second-generation public-key cryptography. It's called elliptic curve cryptography, or ECC

    Continue reading Talking Security with Mr. Cryptography here.


    The Challenge of Open Source Software

    Sat, 09/16/2006 - 04:48

    Challenges with Open Source Project Management and Project Governance: Opening Up with Simon Phipps, Sun's Chief Open Source Officer. With 20 years of experience in software development, Simon Phipps has helped guide Sun's open source strategy, including the OpenSolaris project. Now, as chief open source officer at Sun, Phipps has been given the weighty task of deciding how to open source all of Sun's software. Inner Circle recently sat down with Phipps to discuss open source licenses, working with communities of developers, and how governance of open source projects is critical to success.

    Opening Up with Simon Phipps, Sun's Chief Open Source Officer.

    With 20 years of experience in software development, Simon Phipps has helped guide Sun's open source strategy, including the OpenSolaris project. Now, as chief open source officer at Sun, Phipps has been given the weighty task of deciding how to open source all of Sun's software.

    Inner Circle recently sat down with Phipps to discuss open source licenses, working with communities of developers, and how governance of open source projects is critical to success.

    Inner Circle: You've now been in the chief open source officer position for almost a year. Tell us about your role and its responsibilities.

    PHIPPS: It's an exciting role, and one that leverages what I've done as chief technology evangelist at Sun in the past. In this role, my responsibilities have expanded as a result of the formation of the Open Source Group at Sun. This particular group has quite a broad and diverse set of responsibilities — as might be expected from an organization that exists to create a consistent approach across all of Sun's open source projects.

    » What are some of the challenges that the Open Source Group must confront?

    PHIPPS: Licensing policy is obviously a very important matter for us, but the Open Source Group at Sun has other equally important tasks. It also seeks to determine how Sun is going to identify its open source projects, as well as what approaches should be taken with regards to the governance of open source projects. Within the team there are people with a technical interest in the open sourcing of Java, Solaris, and Sun development tools. Plus, the group also helps the customer-facing staff understand and communicate Sun's open source commitment.

    » Can you tell us which open source business model Sun supports?

    PHIPPS: I think it's funny that people still talk about an open source business model. As far as I can tell, there is no single business model for open source projects. The term "open source" really describes what happens when a community of developers gathers around a shared body of source code, and uses that knowledge to create software products or programs that meet specific needs. But, those needs are not always the same thing. Some developers are working on open source projects to make money, others for social ends, and some are in it for the fun of it.

    So, just as there are many different motivations for involvement, there are many different business models that can be used by an open source community. At Sun, our current thinking tends to promote a model that makes the software available completely without charge. Then we provide services that are useful in putting that open source-based software into production.

    » Broadening the discussion a bit, what are the biggest challenges that open source communities, in general, face today?

    Continue reading The Challenge of Open Source Software here.


    7 Practical Ways to Web 2.0

    Sat, 09/16/2006 - 05:15

    Web 2.0 Consulting and Dynamic Web 2.0 Tutorial: One opportunity that's before us is Web 2.0. In case you missed it, the World Wide Web commemorated its 15th anniversary last month, on August 6. On that date in 1991, Tim Berners-Lee, a researcher at the CERN nuclear physics laboratory in Switzerland, posted the world's first public Web page, and helped to trigger the technological juggernaut that would change the world. Now it's all about Web 2.0, and a second generation of rich, dynamic Web services built on secure open standards that enable sharing, participation, and collaboration while delivering the extreme performance and massive throughput demanded by global proliferation of the Internet.

    I'm Larry Singer, Sun senior VP and strategic insight officer. I can hear you now... you’re either intrigued or amused by my title, and wondering what a strategic insight officer does for a living.

    My job at Sun is to help a company that was built by engineers for engineers do a better job of "intercepting" customer demands and responding with our powerful R&D resources to engineer industry-leading technology that meets real-world needs.

    Becoming the sponsor of Sun Inner Circle gives me a unique opportunity to do that, and I look forward to exchanging with you thoughts, ideas, and insights on the IT opportunities that are always before us. I would like to thank Bill Vass for his sponsorship of Sun Inner Circle and wish him continued success in his new role as COO of Sun Federal.

    One opportunity that's before us is Web 2.0. In case you missed it, the World Wide Web commemorated its 15th anniversary last month, on August 6. On that date in 1991, Tim Berners-Lee, a researcher at the CERN nuclear physics laboratory in Switzerland, posted the world's first public Web page, and helped to trigger the technological juggernaut that would change the world.

    Now it's all about Web 2.0, and a second generation of rich, dynamic Web services built on secure open standards that enable sharing, participation, and collaboration while delivering the extreme performance and massive throughput demanded by global proliferation of the Internet.

    Continue reading 7 Practical Ways to Web 2.0 here.


    The ROI of Moving from UNIX to Linux

    Wed, 09/06/2006 - 10:19

    Linux vs Unix, Requirement for Linux and Unix: Unix, whatever the flavor, has long since given up its role as the savior of IT. And, in fact, while Unix is widely embedded at many organizations, there are those who see its days as numbered, primarily because alternatives like Linux can get the job done less expensively—thanks to an open-systems approach that gets rid of proprietary software and proprietary hardware. And, best of all, migration from Unix to Linux is largely pain-free.

    Unix, whatever the flavor, has long since given up its role as the savior of IT. And, in fact, while Unix is widely embedded at many organizations, there are those who see its days as numbered, primarily because alternatives like Linux can get the job done less expensively—thanks to an open-systems approach that gets rid of proprietary software and proprietary hardware. And, best of all, migration from Unix to Linux is largely pain-free.

    The keys to ensuring migration success, so you can leverage the advantages of Linux, are having partners and a plan. Intel and Novell®, offering the combination of Intel server technology and SUSE® Linux Enterprise Server, are able partners, ready to help you develop an action plan. And with a plan, you can begin to transition from Unix to Linux, yielding:

    • Lower costs
    • Higher levels of performance and responsiveness
    • More flexibility
    • Better security
    • Manageability

    Here’s how!

    Linux – Open For Business

    For starters, it is important to understand that Linux, which began as the inspiration of just one man, Linus Torvalds, has become the joint endeavor of a well-governed, cooperative, business-oriented global movement. Linux is no longer bleeding-edge or experimental. It’s the smart open choice for business today, offering a strong ROI opportunity. That opportunity is based on its open architecture and low cost as well as the ability Linux provides to simplify and consolidate your infrastructure around fewer servers and away from proprietary products. Moreover, a migration often translates into an overall savings in terms of software, hardware, personnel, and support and maintenance costs.

    RSUSE® Linux Enterprise 10 for EDA

    Wed, 08/23/2006 - 21:27

    Linux Enterprise Servers : With scalability to 1,024 CPUs, more than 10 TB of physical memory on the server, accelerated graphics and interoperability on the desktop, an automated installation system, remote administration and world-class, enterprise-level support, SUSE Linux Enterprise 10 is the platform of choice for server and desktop computing in Electronic Design Automation (EDA) .

    SUSE® Linux Enterprise 10 helps you fuel innovation by delivering UNIX*-like performance and reliability on both commodity and high-end hardware.

    With scalability to 1,024 CPUs, more than 10 TB of physical memory on the server, accelerated graphics and interoperability on the desktop, an automated installation system, remote administration and world-class, enterprise-level support, SUSE Linux Enterprise 10 is the platform of choice for server and desktop computing in Electronic Design Automation (EDA).

    Today’s consumer electronics demand increasingly complex designs. As a manufacturer of semiconductors or electronics, you are facing challenging decisions:

    • What levels of the design and/or manufacturing processes to outsource;
    • How to marry the increasing costs of next generation R&D and fab construction with the need to innovate;
    • How to switch towards a model of large design jobs generated by the push towards smaller chips;
    • How to maximize hardware utilization given the constraints posed by EDA tools that are not yet multi-processor aware.

    Novell® understands the challenges of the electronics industries and offers many unique features that impact EDA with SUSE Linux Enterprise 10 such as:

    • Virtualization technology
    • High Availability Storage Foundation
    • Hyper-threading technology and System Resource Affinity Table (SRAT) improvements
    • NUMA development tools
    • Integrated application security and system monitoring
    • Integrated management tools
    • Support for Microsoft* Active Directory, Open LDAP and Novell eDirectory™
    • Flexible subscriptions
    • Software development kit with the latest developer toolchain
    • Novell Customer Center

    Xen Source: Enterprise Grade Open Source Virtualization

    Thu, 08/03/2006 - 00:46

    Inside Xen 3.0: A XenSource White Paper

    Virtualization has become a key requirement for the enterprise. This results from an urgent need to focus on reduced total cost of ownership (TCO) for enterprise computing infrastructure. In spite of – or indeed because of – the widespread adoption of relatively cheap, industry standard x86-based servers, enterprises have seen costs and complexity escalate rapidly. In addition to the capital expenditures to purchase them, each server in the data center costs an enterprise about an additional $10,000 per year to run, with costs including provisioning, maintenance, administration, power, real-estate, and hardware and software licenses.

    At the same time, most servers today run at less than 15% utilization, meaning that most server capacity is wasted. Operating system (OS) virtualization, a concept pioneered by IBM in 1972 on the System 360, has become a key requirement to alleviate this problem because it enables increased utilization, allowing multiple operating system and application images to share each server, cutting both per-server capital cost and the overall lifetime operational costs. If every physical server can host multiple virtual servers, the overall required number of servers is reduced, and with that reduction come increased utilization, reduced complexity, and lower total cost of ownership.

    Virtualization also offers many additional benefits – including development, staging and testing, dynamic provisioning, reduced patching, no-downtime maintenance, high availability and load balancing. Further, virtualization opens the door for enterprises to realize the promise of utility computing. But today’s virtualization offerings are crippled by poor performance, lack of security and scalability, and an inability to offer the fine-grained resource guarantees that are required to provide true application level SLAs and support high availability. To get high performance virtualization on today’s modern hardware takes a new kind of software: a low level, minimal, secure and high performance virtualization software layer called a hypervisor. The Xen open source hypervisor, created by the XenSource founders and now developed collaboratively by over 20 major enterprises working in the Xen project, is leading the industry in high performance enterprise virtualization. Moreover Xen is the industry’s first virtualization software to fully support Intel’s VT-x hardware virtualization support.

    Virtualization in the Data Center

    Thu, 08/03/2006 - 00:47

    Virtualization: The New Data Center Paradigm, Again

    Virtualization is almost as old as enterprise computing itself. First introduced in the 1960s to allow partitioning of mainframe hardware, it has been a mainstay of high-end proprietary server environments ever since. Today, virtualization is once again a hot topic of conversation in the data center because emerging technologies have the potential to remedy issues relating to resource utilization, efficiency, scalability and manageability. Armed with virtual machines on commodity hardware, data center administrators hope to create new levels of flexibility and agility in their environments at a lower total cost of ownership.

    Virtualization can drive up resource utilization on individual servers, thus increasing the total return on those investments. Moreover, it can integrate distributed systems, transforming disparate racks of compute and storage servers into a bona fide enterprise IT platform.

    Two new major developments will have a dramatic effect on virtualization technology adoption. On the hardware side, x86 architecture-based microprocessor manufacturers have released a new generation of chips that support virtualization natively. On the software side, the emergence of the open-source Xen* hypervisor virtual machine technology has eliminated much of the performance impact associated with the mediation layer that accompanies full virtualization and software emulation. The introduction of Xen also drives down the overall cost of virtualization.

    These developments could completely decouple software from the underlying physical implementation. The result would be impressive new levels of resource utilization and improvements in availability, manageability, scalability, performance, application security and much more.

    But virtualization is not a panacea. Without the right infrastructure and management tools, virtualization may do very little to stem the tide of complexity and inefficiency that has overwhelmed even administrators’ best plans. Thus, when selecting a vendor to help you virtualize your data center, you should choose one with the management tools and experience to help make your implementation a successful one.

    Novell® sees virtualization as a tremendous opportunity for its data center customers. Novell envisions virtualization-enabled data centers in which there is highly sophisticated integration of components that are largely isolated today. It’s an environment in which Novell expertise and technologies will play prominent roles. SUSE® Linux Enterprise 10, the flagship Linux* platform from Novell, continues to lead the way in data center virtualization, with support for both x86based processors and mainframes.

    Optimizing the Value of Today’s Server Hardware Transitions

    Thu, 08/03/2006 - 00:51

    How to Achieve Sustainable, Cost-Effective Growth for Your IT Infrastructure—and Your Business. Opportunity and Risk in a Time of Change. The ability to understand and manage change has long been a core competence of successful companies. In today’s global and technology-dependent business world, it is more important than ever.

    How to Achieve Sustainable, Cost-Effective Growth for Your IT Infrastructure—and Your Business

    Opportunity and Risk in a Time of Change

    The ability to understand and manage change has long been a core competence of successful companies. In today’s global and technology-dependent business world, it is more important than ever. Technology is opening markets, enabling global outsourcing, and helping companies cope with complex regulatory requirements across multiple jurisdictions. Technology is also moving us toward a real-time business environment in which transactions are instantaneous, processes are transparent, and the ability to turn oceans of data into actionable information is a critical competitive advantage.

    A convergence of technologies fuels these changes. A short list would include Web services, radio frequency identification (RFID) tags, mobile clients and wireless networks, Voice over IP, and improved tools for business intelligence and process analysis. It is critical that companies work to understand and integrate these emerging capabilities. As they do so, they also must pay close attention to the basic health, scalability, manageability, and agility of their IT infrastructure, because fundamental server technologies are also advancing rapidly. Companies that manage these transitions effectively will be better positioned to successfully extend their technology-based business solutions. Those that don’t may be left behind in a rapidly changing competitive environment.

    Today’s Critical Server Hardware Transitions

    Three transitions stand out as particularly fundamental for addressing next-generation performance, capacity, and TCO challenges: multi-core processors, virtualization, and 64-bit computing (Figure 1).

    Innovation Thrives on Choice: Intel Sparks Creativity in the Open Source Community

    Wed, 07/19/2006 - 23:40

    Several Intel staff members active in open-source projects offer their perspectives on the value and direction of the open-source movement.

    One of the most promising aspects of open-source software development is the global spirit of innovation that arises when some of the top programmers in the world pool their talents to tackle software challenges. Intel is industriously working to drive development efforts, build standardized frameworks to improve interoperability, and enable the Linux* operating system to run exceptionally well on advanced Intel® processor-based platforms. In this article, several Intel staff members offer perspectives on the value and direction of the open-source movement, Intel contributions to development and standardization projects, and advances that are opening new possibilities within the industry.

    The Art of Open-Source Collaboration
    Many achievements in the open-source development realm owe their success to the commitment and expertise of programmers collaborating internationally, building on the foundations of earlier generations of coders, and advancing and improving a shared body of work. This characteristic is one that Dirk Hohndel, Chief Technologist in the Open Source Technology Center, believes typifies the creative nature of open-source development. Well respected in the industry, Hohndel has been engaged in a number of projects to strengthen and grow the Linux operating system ecosystem, including deep involvement with the Free Standards Group in advancing the Linux Standard Base specification.

    "If you look at the market segment and consider the opportunities to create new, innovative products, " Hohndel said, "open source has a unique and wonderful concept. Regardless of how many smart people there are in your company working on projects, there are always more smart people outside. If you have an interesting idea and you want to build on that idea, why not expand the creative resources more widely? Using an open-source approach, you tap into the ideas and creativity and talent of a much larger pool. "

    "A very nice example, " Hohndel continued, "is the X Windows* system. The X Windows system was developed in closed fashion by the X Consortium and controlled by a handful of UNIX* vendors.


    To read more, click link below to subscribe to Intel® Software Dispatch and begin receiving Intel® Software Insight, a quarterly e-zine focused on the topics software-industry leaders care about. Once you subscribe, you will be able to download the July 2006 issue and continue reading Innovation Thrives on Choice: Intel Sparks Creativity in the Open Source Community.

    To read complete article, click download below.


    Parallelism Drives Performance: A Perspective on the Future of Processing

    Wed, 07/19/2006 - 23:57

    b>Digital Onsite Data Recovery Service: Online Demonstration These segments will demonstrate how to set up ZFS file systems, administer simple tasks, create snapshots and how ZFS handles corrupted data. Segment 1: ZFS zpool creation Illustrates how to quickly and easily setup a ZFS file system and administer other simple tasks Segment 2: ZFS Snapshots Demonstrates how to create snapshots with ZFS and how to roll back to an earlier created snapshot Segment 3: ZFS checksum recovery Demonstrates how ZFS handles and survives (in this case deliberate) data corruption

    In this interview, noted Intel Fellow David Kuck, who has been working
    for many years on parallel computing projects, describes the promise and
    the challenges presented to the computer industry.

    Look at the latest series of Intel technology roadmaps and the direction becomes clear: multi-core processing is taking the industry on a fast-moving and exciting ride into profoundly new territory. The defining paradigm in computing performance has shifted inexorably from raw clock speed to parallel operations and energy efficiency. Industry participants are moving swiftly to adapt to the change. Noted Intel Fellow, David Kuck, who has been working for several decades in this area, describes the promise of multi-core processing and massively parallel computing as well as the challenges presented to the computer industry.

    What experience do you have in parallel computing?

    I have actually been working on parallel computing for 40 years. I first started in this area as a professor—we built parallel machines at universities, including the University of Illinois at Urbana-Champaign, and I also did a lot of consulting in the ‘70s and ‘80s. Then, we started producing software through my little company—KAI—in 1979.
    The concepts have been around for a very long time. There has been a trickle down from supercomputers to mini-supercomputers and servers that has now reached Intel chips the multi-core processors.

    At the same time, the applications have gone from the very highest end of technical computing to more about throughput and desktop applications. Until recently, there hasn’t been an economic incentive to push parallel computing. Now, we are at the crossroads and the economic incentives are enormous. A long list of research ideas and advanced development ideas and products are now coming to the fore.



    To read more, click link below to subscribe to Intel® Software Dispatch and begin receiving Intel® Software Insight, a quarterly e-zine focused on the topics software-industry leaders care about. Once you subscribe, you will be able to download the July 2006 issue and continue reading Parallelism Drives Performance: A Perspective on the Future of Processing.

    To read complete article, click download below.


    Bluetooth®: The Programmer’s Perspective part II

    Thu, 06/22/2006 - 13:42

    The second installment of this series illustrates a hands-on approach to get your Bluetooth system up and running in linux and then moves on to learn some basic Bluetooth communications from the shell .

    by Amit K Saha

    In the first part of this series on Bluetooth we have had a rather long overview of Bluetooth- What is it? How does it operate? The Bluetooth protocol stack etc.

    The second installment of this series illustrates a hands-on approach to get your Bluetooth system up and running in linux and then moves on to learn some basic Bluetooth communications from the shell .

    Setting up Bluetooth on Linux

    Compiling a kernel with Bluetooth support

    The first thing you have to do is enable Bluetooth support in your kernel. If you don’t have Bluetooth support in your kernel you may get a precompiled on that has Bluetooth on it, or compile it yourself from the sources (recommended). You may also want to build only required modules for your running kernel, but this howto doesn’t explain that.

    I have set up my bluettoth on kernel 2.6.15. It has the bluez kernel installed. If you are using the 2.6 series, the next thing you need to do is install the bluez utils package and the bluez library packages. For earlier kernel versions (2.4 series) you will also need to install the bulez kernel before installing the other packages.

    All of the above bluez packages are available here.

    Starting Bluetooth

    Your Bluetooth system is almost ready. Now you have to start the Bluetooth service. Use :

    [root@haxbox kdebluetooth]# service Bluetooth start

    If everything goes well you should see:

    Starting Bluetooth subsystem: hcid sdpd hidd hid2hci rfcomm.

    Bluetooth service has been started. Next you need to plug in your Bluetooth dongle (I used an ISBT Bluetooth USB dongle). Then load the necessary module by doing a modprobe.

    [root@haxbox kdebluetooth]modprobe hci_usb

    To read more, click link below.

    Virtual Components in Open Middleware

    Thu, 06/22/2006 - 08:33

    By Amir Bahmanyari.

    To achieve the objectives of their Integration Strategies, IT infrastructure groups have been moving towards implementations based on "Open Standards". This article is focused on envisioning a traditional Middleware "component" from a Service Oriented Architecture point of view.

    A Middleware component, such as a database adapter is re-architected to comply with the Open Standards. The Adapter’s large grained logic is decomposed into smaller "Services", each performing a simple task. A current physical adapter in this case is considered a "Virtual Adapter", because it is logically comprised of distributed, independent, interoperable, but loosely coupled "Service" objects.

    Each "Service" is started as a WebService. A "Service" is interoperable with other services via its exposed Web Services Description Language (WSDL). The services "find" each other by performing a "lookup/discovery" process in a Universal Description, Discovery and Integration (UDDI) implementation. A "Coordinator" service, known as Resource Manager Service (RMS) receives a Single Object Access Protocol (SOAP) request message from a Middleware routing service, usually a business message broker. Depending on the request message details, the RMS identifies and initiates the service resources, which are "needed" to collaborate in order to process this request. After this process is completed, the RMS sends back a SOAP reply message to the Middleware message broker.

    What are the Issues?

    Traditional IT integration strategies are based on coarse-grained, point-to-point and often proprietary components. The core functionality of such proprietary components constitutes a small portion of the overall functionality of the business; the rest of these components provide functionality that is mostly shared with other components. In addition to the component’s core functionality, the JVM in which the component functions includes common modules such as a Configuration Manager, a Logging Manager, a Transport Management, Monitoring and Routing managers, to name a few.

    In a Middleware system where several of such components get deployed on the same server, performance, maintenance, error detection and fault tolerance are important issues to consider in the overall system’s behavior. When it comes to reusability, Middleware systems architected based on such large grained components are bound to the redundant deployments of jar files pertaining to these common modules. The front-end users of such "closed" middle tiers are often blind to what the current operational state of these components is. This affects the clients who could make better logistics decisions if they had a priori knowledge about the state of the middle tier. Middleware systems with such characteristics are closed to their clients, unable to adapt to changes derived by new business requirements and ultimately, they are unable to keep up with the evolving technology standards. Throughout their deployment phase, they cause redundant efforts which in most cases are simply considered obsolete.

    What is a Virtual Component?

    Proprietary components implementing an organization’s business functions make up the core details of that organization’s IT infrastructure. They have functionalities that we cannot live without, but they must not become overheads.

    To avoid the issues that were mentioned above, a coarse-grained component is decomposed into several fine-grained, independent collaborating services with open interfaces. Each component is now comprised of a number of Reusable Services plus one service that implements the targeted business function. The collaborating services responsible for maintaining a component’s overall functionality are loosely coupled and are interoperable through Open Standards recommended guidelines. Therefore, a physical large grained component’s functionality is "virtually available" at runtime as a result of the distribution of its function amongst a group of reusable services. The "collaboration pattern" of these services is business requirements driven. It evolves polymorphically and performs "on demand". The on demand integration of such collaborating services with open interfaces results in a middle tier "Virtual Component".

    Benefits

    • No single complicated component.
    • Development process is not tightly coupled with non business oriented modules.
    • Lightweight distributed logic makes implementation, maintenance and error detections local to the integrated services.
    • Open Standards provide the middle tier with an open interface to proprietary third party products.
    • Open Standards facilitates the clients to access middle tier at runtime and obtain information that enables them to make optimal decisions on utilizing middleware services.
    • A Service Oriented Middleware has a low infrastructure overhead due to total decoupling of business services from common reusable services.
    • Virtual Components: A Database Adapter Example

      A Middleware database adapter’s functionality is logically distributed over a network of independent fine-grained Web Service objects. The resulting collaboration of these interoperable services constitutes a "Virtual" coarse grain database adapter component. Any service may be the runtime client of one or more peer services. A service’s details are exposed to its clients via one single WSDL document. A service looks up the service(s) it needs to leverage by obtaining its reference(s) from an implementation of an Open Standards UDDI. A service publishes its own reference to the UDDI implementation once it gets started either by an administrator or by an orchestrating service. When a service obtains a reference to another service, it uses it to send a SOAP message to that service via a transport mechanism whose details are out of the scope of this article. Such transport must be supported by the ESB on top of which the Virtual Component is deployed. A "Coordinator" service, known as Resource Manager Service, starts to handle a specific category of business services. RMS manages the synergy amongst the collaborating services implementing the target component. It receives a SOAP message per each request from the Middleware’s service router, i.e. a message broker. Upon completion of a request process, the RMS sends a reply message back to the Middleware’s message broker. Consequently, the client will receive the reply message.

      While a service’s function is encapsulated, it adapts to its new requirements changes by mutating its member objects, locally and independently. The vehicle for maintaining such adaptability, interoperability and integration capabilities is the Open Standards. A middle tier adapter which is implemented as a result of the runtime integration of such WebService objects is Service Oriented and, hence a "Virtual Adapter".

      A Service Oriented Adapter Model

      Implemented based on Open Standards Web Service, a service is the paradigm for establishing a concrete integration strategy of a Virtual Adapter.

      As mentioned before, the RMS receives a SOAP request message from the middleware’s message broker. To initiate the participant services, the RMS uses the service initiation information residing in the WS-Addressing header blocks of the SOAP message.

      A minimal set of participant services integrated at runtime to function as a Virtual Database Adapter is described below.

      1. Middleware Service Router (MSR)

        The middleware’s routing mechanism sends a SOAP message to a particular RMS (as described below). In this case, the broker’s message flow receives a SOAP message from a client, performs necessary transformations and passes it on to a corresponding RMS. Depending on the request’s details in the SOAP message, the message flow selects the RMS it should send the request to. To reach the provider’s endpoint, the flow uses a URL from the RMSs WSDL and sets its "WebService URL" property to it dynamically. When the broker receives the reply back from that RMS, it sends it back to the calling client using the endpoint information it retrieves from the client’s WSDL.

      2. Resource Manager Service (RMS)

        RMS is implemented as the "Coordinator" pattern service to manage the collaboration of the participant services.

        An instance of RMS, listening to receive HTTP/SOAP requests from the middleware’s service broker is started for a category of business services. For instance, an RMS instance is started to listen for requests, which are database bound. Upon startup, the RMS looks up the UDDI implementation and obtains references of a set of minimal participant services such as a Configuration Manager Service, a Logging Manager Service, a DataSource Manager Service and a Business Function Service. These WebServices expose their references and public methods invocation details via a WSDL document. The collaborating WebServices access each other at runtime. Once the request processing is completed, the RMS merges the results into a reply message and sends it back to the middleware’s message broker. .

      3. Configuration Manager Service (CMS)

        This is a WebService, which maintains and manages all configurations related entities for a virtual component. Basically, the RMS passes a fully qualified configuration path to the CMS only once at the RMS’s start-up time. The CMS registers the new RMS’s reference as its client and then caches all the configuration parameters available in the files on the configuration path and stores them in a serializable Collection object. A copy of the configuration key/values is submitted to the RMS.

        Throughout a virtual component’s life cycle, if there are any changes in configuration files, the CMS detects this change automatically and updates its own cache. It then notifies the corresponding RMS by passing a refreshed copy of the configuration values to it.

      4. Logging Manager Service (LMS)

        All the loggings pertaining to a particular RMS service and its participant services are delegated to a particular instance of LMS. Once the RMS is provided with all the configuration data by CMS, it passes the required logging information to the LMS. The LMS registers the RMS’s reference as its client and uses this reference to notify the RMS of any file system related errors. The LMS’s reference is passed by the RMS to all participant services for on demand loging.

      5. Datasource Manager Service (DMS)

        This is a WebService, which makes all the database calls on behalf of any collaborative service requiring database access. In particular, a Business Function Service (as described below) delegates its database invocations requirements to this service. This service leverages the Open Standards infrastructure to obtain connections, perform query executions and manages any transactional operation against the backend database system.

      6. Business Function Service (BFS)

        This is the WebService, which has the adapter’s business logic at its core. It receives the input request message from the RMS, identifies the required database related fields, creates SQL statements and delegates the database calls to the DMS. In addition, the BFS uses LMS for logging and CMS (when necessary) throughout processing of the request message. It produces a reply message using the results it obtains from the database and sends it to the calling RMS.

      7. Conclusion

        The evolution of the Open Standards provides an opportunity to further decompose large applications into a runtime integrated set of collaborating smaller, efficiently managed objects known as "services". Service Oriented Architecture based infrastructure technologies such as Enterprise Service Bus (ESB) simplifies this logical decomposition process by providing an environment where these services can be well defined by open interfaces. Interoperability becomes a "given" when these services are implemented as WebServices. A WebService is a reusable object, which can participate in satisfying multiple business functions. As a result, a particular combination of available smaller reusable WebServices create an equivalent larger business function. This article perceives such an integration phenomenon a Virtual Component. The Virtual Component is a polymorphic runtime entity versus the traditional middle tier physical components packaged offline. A Virtual Component is adaptable to business requirements changes easily because its core business functions are implemented in one isolated service, hence a BFS. The Virtual Component is reusable because the participating services such as CMS and/or LMS can provide facilities to multiple Virtual Components simultaneously with little to no coupling. An "Open Middleware" is, therefore is comprised of a set of middle tier Virtual Components leveraging Open Standards guidlines.

    Linux Administration: A Beginner's Guide, Fourth Edition: Chapter 9, Compiling the Linux Kernal

    Thu, 03/02/2006 - 16:07

    Chapter 9 of Linux Administration: A Beginner's Guide walks you through the process of acquiring a kernel source tree, configuring it, compiling it, and finally, installing the end result.

    by Steve Shah & Adewale Soyinka. McGraw-Hill

    Compiling the Linux Kernel
    One of Linux’s greatest strengths is that its source code is available to anyone who wants it. The GNU GPL (General Public License) under which Linux is distributed even allows you to tinker with the source code and distribute your changes! Real changes to the source code (at least, those to be taken seriously) go through the process of joining the official kernel tree. This requires extensive testing and proof that the changes will benefit Linux as a whole. At the very end of the approval process, the code gets a final yes or no from a core group of the Linux project’s original developers. It is this extensive review process that keeps the quality of Linux's code so noteworthy.

    For system administrators who have used other proprietary operating systems, this approach to code control is a significant departure from the philosophy of waiting for the company to release a patch, a service pack, or some sort of "hot fix." Instead of having to wade through public relations, sales engineers, and other front-end units, you have the option of contacting the author of the subsystem directly and explaining your problem. A patch can be created and sent to you before the next official release of the kernel, and get you up and running.

    Of course, the flip side of this working arrangement is that you need to be able to compile a kernel yourself rather than rely on someone else to supply precompiled code. And, of course, you won’t have to do this often, because production environments, once stable, rarely need a kernel compile. But if need be, you should know what to do. Luckily, it’s not difficult.

    In this chapter, we’ll walk through the process of acquiring a kernel source tree, configuring it, compiling it, and finally, installing the end result.

    CAUTION: The kernel is the first thing that loads when a Linux system is booted (after the boot loader of course!). If the kernel doesn’t work right, it’s unlikely that the rest of the system will boot. Be sure to have an emergency or rescue boot medium handy in case you need to revert to an old configuration. (See the section on GRUB in Chapter 6).

    What exactly is a kernal?
    Before we jump into the process of compiling, let’s back up a step and make sure you’re clear on the concept of what a kernel is and the role it plays in the system. Most often, when people say “Linux? they are usually referring to a “Linux distribution.? As discussed in Chapter 1, a distribution comprises everything necessary to get Linux to exist as a functional operating system. (For example, SuSE Linux is a type of Linux distribution.)

    Distributions make use of code from various open source projects that are independent of Linux; in fact, many of the software packages maintained by these projects are used extensively on other UNIX-like platforms as well. The GNU C Compiler, for example, which comes with most Linux distributions, also exists on many other operating systems (probably more systems than most people realize exist).

    So, then, what does make up the pure definition of Linux? The kernel. The kernel of any operating system is the core of all the system’s software. The only thing more fundamental than the kernel is the hardware itself.

    The kernel has many jobs. The essence of its work is to abstract the underlying hardware from the software and provide a running environment for application software, through system calls. Specifically, the environment must handle issues such as networking, disk access, virtual memory, and multitasking—a complete list of these tasks would take up an entire chapter in itself! Today’s Linux kernel (version 2.6.*) contains almost six million lines of code (including device drivers). By comparison, the sixth edition of UNIX from Bell Labs in 1976 had roughly 9000 lines. Figure 9-1 illustrates the kernel’s position in a complete system.

    Although the kernel is a small part of a complete Linux system, it is by far the most critical element. If the kernel fails or crashes, the rest of the system goes with it. Happily, Linux can boast its kernel stability. Uptimes (the length of time in between reboots) for Linux systems are often expressed in years. Indeed, UNIX systems in general regularly claim significantly long uptimes.

    Get a pdf version of Chapter 9 from Linux Administration: A Beginner's Guide: click download, below.

    © 2006 McGraw-Hill


    Rich Client Platform tutorial, part 1

    Tue, 12/13/2005 - 14:42

    Some of the APIs of the Rich Client Platform allow you to develop customized native-looking client-side Java programs.

    by Ed Burnette, SAS. Eclipse.org

    The Rich Client Platform (RCP) is an exciting new way to build Java applications that can compete with native applications on any platform. This tutorial is designed to get you started building RCP applications quickly. It has been updated for Eclipse 3.1.

    Introduction
    Try this experiment: Show Eclipse to some friends or co-workers who haven't seen it before and ask them to guess what language it is written in. Chances are, they'll guess VB, C++, or C#, because those languages are used most often for high quality client side applications. Then watch the look on their faces when you tell them it was created in Java, especially if they are Java programmers.

    Because of its unique open source license, you can use the technologies that went into Eclipse to create your own commercial quality programs. Before version 3.0, this was possible but difficult, especially when you wanted to heavily customize the menus, layouts, and other user interface elements. That was because the "IDE-ness" of Eclipse was hard-wired into it. Version 3.0 introduced the Rich Client Platform (RCP), which is basically a refactoring of the fundamental parts of Eclipse's UI, allowing it to be used for non-IDE applications. Version 3.1 updated RCP with new capabilities, and, most important, new tooling support to make it easier to create than before.

    If you want to cut to the chase and look at the code for this part you can find it in the accompanying zip file. Otherwise, let's take a look at how to construct an RCP application.

    Getting started
    RCP applications are based on the familiar Eclipse plug-in architecture, (if it's not familiar to you, see the references section). Therefore, you'll need to create a plug-in to be your main program. Eclipse's Plug-in Development Environment (PDE) provides a number of wizards and editors that take some of the drudgery out of the process. Select File > New > Project > Plug-in Development > Plug-in Project to bring up the Plug-in Project wizard. On the subsequent pages, enter a Project name such as org.eclipse.ui.tutorials.rcp.part1, indicate you want a Java project, select the version of Eclipse you're targetting, and enable the option to Create an OSGi bundle manifest. Then click Next.

    Beginning in Eclipse 3.1 you will get best results by using the OSGi bundle manifest. In contrast to previous versions, this is now the default.

    In the next page of the Wizard you can change the Plug-in ID and other parameters. Of particular importance is the question, "Would you like to create a rich client application?". Select Yes. The generated plug-in class is optional but for this example just leave all the other options at their default values. Click Next to continue.

    Starting with Eclipse 3.1, several templates have been provided to make creating an RCP application a breeze. We'll use the simplest one available and build up from there. Make sure the option to Create a plug-in using one of the templates is enabled, then select the Hello RCP template. This is RCP's equivalent of "Hello, world". Click Finish to accept all the defaults and generate the project. Eclipse will open the Plug-in Manifest Editor. The Plug-in Manifest editor puts a friendly face on the various configuration files that control your RCP application.

    If you get a dialog asking if Eclipse can switch to the Plug-in Development Perspective click Remember my decision and select Yes (this is optional).

    Taking it for a spin
    Trying out RCP applications used to be somewhat tedious. You had to create a custom launch configuration, enter the right application name, and tweak the plug-ins that were included. Thankfully the PDE keeps track of all this now. All you have to do is click on the Launch an Eclipse Application button in the Plug-in Manifest editor's Overview page. You should see a bare-bones Workbench start up (see Figure 1).


    world's simplest RCP application

    Figure 1. World's simplest RCP application.


    Apache Protect for Macintosh OS X

    Sun, 12/18/2005 - 19:32

    Apache Protect is a GUI utility for configuring and setting up the built-in basic authentication and access control capabilites of your local Apache Web server.

    by Onar Vikingstad

    Apache Protect is a GUI utility for configuring and setting up the built-in basic authentication and access control capabilites of your local Apache Web server, pre-installed with Mac OS X.

    Manually setting up user and group files, protect directories with a username, and password and set access control requires adjustments in the terminal and use of Unix commands. With this tool and its Aqua interface, the whole process is a lot easier.

    Download Apache Protect (316 K) for Apple Macintosh OS 10.3 and later.

    Developers.net provides links to these applications as a courtesy, and makes no representations regarding the applications or any information related thereto. Any questions, complaints or claims regarding the applications must be directed to the appropriate software vendor.


    Rapid application development with Python and Glade

    Tue, 08/23/2005 - 14:10

    Create and modify your Python application's GUI using the easy design tool Glade - then, automate the process of setting up event handlers. More on Python programming and software in this tutorial.

    by David Reed, Ph.D., Capital University.

    Create and modify your Python application's GUI using the easy design tool Glade; then, automate the process of setting up event handlers.

    Writing GUI programs involves two basic steps. First, you need to write the code to create the interface, with elements, such as menus, and widgets, such as buttons, labels and entry fields. You then need to write the code that executes when events occur, such as when a button is pressed or a menu item is selected. When the program runs, it enters an event loop that repeatedly waits for an event and then calls the event handler, also known as a callback function, that was defined for that event. For example, you write a function to be called when a button is pressed. Writing code to display the widgets, defining the functions to be called when events occur and connecting each event to the specific function is a tedious process to do by hand.

    For many widget sets, programs exist to lay out the GUI visually. Damon Chaplin wrote the Glade program to allow users to create an interface visually using the GTK/GNOME widgets and also to specify which functions to call when events occur. Glade stores the layout of the widgets and the callbacks as an XML file. Glade also generates a C or C++ program that contains all the calls to create the widgets in the specified layout, connect the callbacks and define empty functions for each callback. However, Glade does not create Python code. The GladeGen program I wrote generates Python code based on the Glade XML file.

    Read the rest of this article here.

    © 2004 Linux Journal


    Eclipse Platform: technical overview

    Sun, 10/30/2005 - 18:32

    Though the Eclipse Platform has a lot of innate functionality, it is built on a mechanism for discovering, integrating, and running modules called plug-ins.

    from Eclipse.org

    Abstract: The Eclipse Platform is designed for building integrated development environments (IDEs) that can be used to create applications as diverse as web sites, embedded Java programs, C++ programs, and Enterprise JavaBeans. This paper is a general technical introduction to the Eclipse Platform. Part I presents a technical overview of its architecture. Part II is a case study of how the Eclipse Platform was used to build a full-featured Java development environment.

    Introduction
    The Eclipse Platform is an IDE for anything, and for nothing in particular.

    Although the Eclipse Platform has a lot of built-in functionality, most of that functionality is very generic. It takes additional tools to extend the Platform to work with new content types, to do new things with existing content types, and to focus the generic functionality on something specific.

    The Eclipse Platform is built on a mechanism for discovering, integrating, and running modules called plug-ins. A tool provider writes a tool as a separate plug-in that operates on files in the workspace and surfaces its tool-specific UI in the workbench. When the Platform is launched, the user is presented with an integrated development environment (IDE) composed of the set of available plug-ins.

    The quality of the user experience depends significantly on how well the tools integrate with the Platform and how well the various tools work with each other.

    Part I:
    The Eclipse Platform (or simply "the Platform" when there is no risk of confusion) is designed and built to meet the following requirements:
    If you build it, they will come. —W.P. Kinsella, Field of Dreams (1989)

    • Support the construction of a variety of tools for application development.
    • Support an unrestricted set of tool providers, including independent software vendors (ISVs).
    • Support tools to manipulate arbitrary content types (e.g., HTML, Java, C, JSP, EJB, XML, and GIF).
    • Facilitate seamless integration of tools within and across different content types and tool providers.
    • Support both GUI and non-GUI-based application development environments.
    • Run on a wide range of operating systems, including Windows and Linux.
    • Capitalize on the popularity of the Java programming language for writing tools.
    The Eclipse Platform's principal role is to provide tool providers with mechanisms to use, and rules to follow, that lead to seamlessly integrated tools. These mechanisms are exposed via well-defined API interfaces, classes, and methods. The Platform also provides useful building blocks and frameworks that facilitate developing new tools.

    Platform runtime and plug-in architecture
    A plug-in is the smallest unit of Eclipse Platform function that can be developed and delivered separately. Usually a small tool is written as a single plug-in, whereas a complex tool has its functionality split across several plug-ins. Except for a small kernel known as the Platform Runtime, all of the Eclipse Platform's functionality is located in plug-ins.

    Plug-ins are coded in Java. A typical plug-in consists of Java code in a JAR library, some read-only files, and other resources such as images, web templates, message catalogs, native code libraries, etc. Some plug-ins do not contain code at all. One such example is a plug-in that contributes online help in the form of HTML pages. A single plug-in's code libraries and read-only content are located together in a directory in the file system, or at a base URL on a server. There is also a mechanism that permits a plug-in to be synthesized from several separate fragments, each in their own directory or URL. This is the mechanism used to deliver separate language packs for an internationalized plug-in.

    Each plug-in has a manifest file declaring its interconnections to other plug-ins. The interconnection model is simple: a plug-in declares any number of named extension points, and any number of extensions to one or more extension points in other plug-ins.

    A plug-in's extension points can be extended by other plug-ins. For example, the workbench plug-in declares an extension point for user preferences. Any plug-in can contribute its own user preferences by defining extensions to this extension point.

    An extension point may have a corresponding API interface. Other plug-ins contribute implementations of this interface via extensions to this extension point. Any plug-in is free to define new extension points and to provide new API for other plug-ins to use.

    On start-up, the Platform Runtime discovers the set of available plug-ins, reads their manifest files, and builds an in-memory plug-in registry. The Platform matches extension declarations by name with their corresponding extension point declarations. Any problems, such as extensions to missing extension points, are detected and logged. The resulting plug-in registry is available via the Platform API. Plug-ins cannot be added after start-up.

    Plug-in manifest files contain XML. An extension point may declare additional specialized XML element types for use in the extensions. This allows the plug-in supplying the extension to communicate arbitrary information to the plug-in declaring the corresponding extension point. Moreover, manifest information is available from the plug-in registry without activating the contributing plug-in or loading of any of its code. This property is key to supporting a large base of installed plug-ins only some of which are needed in any given user session. Until a plug-in's code is loaded, it has a negligible memory footprint and impact on start-up time. Using an XML-based plug-in manifest also makes it easier to write tools that support plug-in creation. The Plug-In Development Environment (PDE), which is included in the Eclipse SDK, is such a tool.

    A plug-in is activated when its code actually needs to be run. Once activated, a plug-in uses the plug-in registry to discover and access the extensions contributed to its extension points. For example, the plug-in declaring the user preference extension point can discover all contributed user preferences and access their display names to construct a preference dialog. This can be done using only the information from the registry, without having to activate any of the contributing plug-ins.

    Read the rest of this whitepaper: click download, below.

    © 2003 Object Technology International Inc.


    Alias FBX authoring and interchange format

    Sun, 12/18/2005 - 20:34

    Alias FBX is a free platform-independent 3D authoring and interchange format that provides access to 3D content from most 3D vendors and platforms.

    from Alias Systems Corp.

    Alias FBX is a free platform-independent 3D authoring and interchange format that provides access to 3D content from most 3D vendors and platforms. The FBX file format supports all major 3D data elements, as well as 2D, audio, and video media elements.

    The FBX SDK allows software and hardware vendors to easily add support for the FBX format. The SDK is an easy-to-use C++ software development toolkit that provides conversion utilities allowing application and content vendors to transfer their existing commercial and demonstration content into the FBX format with a minimum of effort.

    Download Alias FBX SDK for Macintosh, Windows 2000/XP, Iris, or Linux.

    Developers.net provides links to these applications as a courtesy, and makes no representations regarding the applications or any information related thereto. Any questions, complaints or claims regarding the applications must be directed to the appropriate software vendor.


    Red Hat Enterprise Linux & Fedora Core 4: The Complete Reference, Chapter 13: Mail and News Clients

    Thu, 12/08/2005 - 17:11

    Your Linux system supports a wide range of both electronic mail and news clients. This chapter reviews mail and news clients installed with Red Hat Enterprise Linux and Fedora Core.

    by Richard Petersen. McGraw-Hill/Osborne Books

    The new edition of this reference covers all aspects of the Red Hat Fedora and Enterprise Linux distribution. Full details on everything from installation and configuration to system administration and server management of Enterprise Linux—with specifics on the Linux Kernel 2.6—are included. The new IPv6 Protocol, including the network security features of IPSEC and Virtual Private Networks, are also covered. The DVD contains the entire Red Hat Fedora Core distribution—usually available on multiple CD-ROMs.


    Red Hat Linux and Fedora Core 4: The Complete Reference,

    Red Hat Enterprise Linux and Fedora Core 4: The Complete Reference provides a comprehensive examination of all aspects of Fedora Core 4 Linux, including recent critical changes in administration such as device management, kernel configuration, and IPv6 support. In terms of coverage, The Complete Reference is currently the only true Fedora Core 4 book, providing coverage of key Fedora Core 4 and even Fedora Core 3 developments.

    Other books in this class either take a different more introductory approach, or simply fail to cover key Fedora Core 4 developments. Only in this book will you find in depth discussion of key administration changes such as automatic device generation with udev, the Hardware Abstraction Layer (HAL), and kernel header management. It still remains the only text in its class that covers IPv6 topics ranging from network address auto-configuration to DNS records. In addition, there is special focus on security tools, providing dedicated chapters on SELinux, IPsec, and GPG encryption. The book remains the only text in its class to discuss Kerberos, as well as provide detailed examination of RAID and LVM file systems.

    The Complete Reference also covers the latest inclusions like the Global File System, detailing the various packages you need to implement the system, as well as upcoming solutions like using the latest securitylevel development version to enable Windows share browsing on Gnome. Though comprehensive in its handling of administration topics, The Complete Reference deals just as thoroughly with user topics, with beginning chapters providing introductory material, along with in depth chapters on Gnome, KDE, and shell usage and configuration. Office, Database, Multimedia, and Internet applications like Firefox, including Windows access and video support, are also covered. Dedicated chapters examine Internet services like Web servers, proxies, DNS, and FTP.

    Chapter 13, "Mail and News Clients," reviews management of mail and news clients installed with Red Hat Enterprise Linux and Fedora Core.

    Get a pdf version of Chapter 13, "Mail and News Clients," from Red Hat Enterprise Linux & Fedora Core 4: The Complete Reference: click download, below.

    © 2005 McGraw-Hill/Osborne Books


    Mac OS X and Darwin

    Tue, 08/02/2005 - 10:35

    OS X Darwin | Mac Darwin | Mac OS X: Darwin is often used to refer to the underpinnings of Mac OS X. In fact, in some circles Mac OS X itself is rarely mentioned. It is important to understand the distinction between the two—how they are related and how they differ.

    from Apple Computer Inc.

    The word Darwin is often used to refer to the underpinnings of Mac OS X. In fact, in some circles Mac OS X itself is rarely mentioned at all. It is important to understand the distinction between the two—how they are related and how they differ.

    Darwin is the core of the Mac OS X operating system. Although Darwin can stand alone as an independent operating system, it includes only a subset of the features available in Mac OS X. Figure 1-1 shows how Darwin is related to Mac OS X as a whole.


    Darwin’s relation to Mac OS X

    Figure 1-1 Darwin’s relation to Mac OS X

    Darwin is an open source project. With it, you as a developer gain access to the foundation of Mac OS X. Its openness also allows you to submit changes that you think should be reflected in Mac OS X as a whole. Darwin has been released as a separate project that runs on PowerPC-based Macintosh computers as well as x86-compatible computers. Although it could be considered a standalone operating system in its own right, many of the fundamental design decisions of Darwin are governed by its being embedded within Mac OS X. In bringing your applications to the platform, you should target Mac OS X version 10.1.4 (Darwin 5.4) or later.

    Mac OS X itself is not an Open Source project. As you can see from Figure 1-1, there are many parts of Mac OS X that are not included in the Open Source Darwin components. Part of your job while porting is deciding where your application will fit in Mac OS X.

    If you are a developer whose tool is a command-line tool (or has a useful subset that is a command-line tool), you can, of course, simply port your application as a command-line tool or service, which is usually not that complicated. By doing this you gain a small benefit, in that it is now available to Mac OS X users who are familiar with the UNIX command-line environment. You will not be able to market it to Mac OS X users as a whole though, since many users do not even know how to access the command line on their computers.

    Read the rest of this tutorial here.

    © 2005 Apple Computer Inc.


    XMLSpy Home Edition 2005

    Sun, 10/02/2005 - 09:23

    XMLSpy 2005 Home Edition is a free entry-level XML development tool for designing and editing applications involving XML, DTD, XML Schema, XSLT 1.0/2.0, XPath 1.0/2.0, WSDL, SOAP, XQuery, and more. It supports seamless integration with Eclipse.

    from Altova

    Altova XMLSpy 2005 Home Edition is a free entry level XML development tool for designing and editing applications involving XML technologies (XML, DTD, XML Schema, XSLT 1.0/2.0, XPath 1.0/2.0, WSDL, SOAP, XQuery, and others). XMLSpy automatically generates runtime code in multiple programming languages for creating advanced XML applications, using the views and options that best suit user requirements and preferences.

    XMLSpy Home Edition is suited for hobbyists, entry level developers, and students. It also supports seamless integration with Eclipse, allowing you to access the rich XML editing capabilities of XMLSpy 2005 directly within the Eclipse development environment.

    Download a free copy of XMLSpy Home Edition 2005.


    Deskzilla Desktop Bugzilla Client Beta

    Tue, 08/23/2005 - 06:02

    Deskzilla, an alternative desktop client app for the Bugzilla bug-tracking system, downloads bug information from Bugzilla, stores it in a local database, allows you to view and edit bugs, and uploads changes to Bugzilla.

    from The Mozilla Organization

    Deskzilla 1.0 is an alternative, desktop client application for the Bugzilla bug-tracking system, created by an independent software vendor. It is free for open-source projects.

    Though Deskzilla has several new features and helps to do routine bug tracking, it isn't a full replacement for the vast Bugzilla web interface. The goal of the Deskzilla project is to explore possibilities for unique bug-tracking features that are open for a desktop application.

    Deskzilla downloads bug information from Bugzilla, stores it in a local database, allows you to view and edit bugs, and uploads changes to Bugzilla.

    Data exchange with Bugzilla is carried out via standard HTTP/HTML/XML interfaces. In other words, Deskzilla does the same things you do when you use web browser to work with Bugzilla, only faster.

    Read more about how Deskzilla works here.

    Download a copy of Deskzilla 1.0 Beta 2 here.

    © 2005 The Mozilla Organization


    Linux security administrator's guide, part 1

    Thu, 07/15/2004 - 07:47

    Linux system administration includes a number of system security issues, from broad host security and network security to usage policies and firewalls. Linux security administrators need to be aware of all possible vulnerabilities.

    by David Wreski, president and CEO, Guardian Digital Inc.

    This document is a general overview of security issues that face the administrator of Linux systems. It covers general security philosophy and a number of specific examples of how to better secure your Linux system from intruders. Also included are pointers to security-related materials and programs.

    This document covers the major security issues that affect Linux security. General philosophy and net-born resources are also discussed.

    A number of other HOWTO documents overlap with security issues, and those have been pointed to wherever appropriate.

    This document is not meant to be an up-to-date exploits document. Large numbers of new exploits happen all the time. This document will point you where to look for such up to date information, and some general methods to prevent such exploits from taking place.

    Additionally, while there are several resources available in various places on the Internet regarding general security, we are trying to consolidate much of this general information, and provide information a general system administrator can use as a practical guide. This should in no means substitute for reading books on the appropriate subject, and practical experience which works for you.

    The U.S. Government has several organizations devoted to computer security, and generally the information they have online is quite extensive and very useful. A general introduction to computer security is available at csrc.ncsl.nist.gov/nistpubs/800-12/, which will be very useful.

    See the References section for pointers to security references. It is also a tremendous advantage if you understand how TCP/IP works, and some of the common system administration functions. You might find this guide helpful in a beginner introduction www.sunworld.com/sunworldonline/swol-11-1995/swol-11 sysadmin.html. Though it is Solaris-centric, you'll find much of this information general enough to still be applicable.

    You may also find this link helpful: www.cis.ohio state.edu/~dolske/gradwork/cis694q/ for another introduction to TCP, including how sequence numbers work, which is the foundation of man-in-the-middle attacks, a description of the SYN/ACK handshake used to initiate a TCP connection, a description of a few of the problems in TCP/IP, a few other types of attacks, and how they work, as well as some solutions to these problems.

    Overview
    This document will discuss procedures and commonly used software to increase the trust level of your system. It is important to discuss the basic concepts first, and create a security foundation before we get started.

    Organization of this document
    This document has been divided into a number of sections. They cover several broad kinds of security issues. So far these sections include:

    • Physical security: covers how you need to protect your physical machine from tampering
    • Files and file-system security: shows you how to set up your file-systems and permissions on your files
    • Data encryption, cryptography, and authentication: discusses how to use encryption to better secure your machine and network
    • Kernel security: discusses what you can do at the kernel level to protect yourself as well as to improve security
    • Network security: describes how to better secure your Linux system from network attacks
    • Incident control: discusses the six stages in dealing with an incident, including the preparation before one actually occurs.
    • Host security: discusses what can be done to further secure individual hosts, and what to watch out for.
    • Exploits: attempts to familiarize the reader with some of the most common types of exploits, so you know when and how to recognize one when it does happen.
    • Security sources: Here is a list of the resources that are most usable to a Linux Security Administrator.
    • Firewalls and border patrol: discusses the various types of firewalls available for Linux as well as pointers to general firewall information.
    • Glossary: Here is a list of the most frequently used acronyms and definitions that a security administrator should recognize.
    • Frequently asked questions: These FAQs should help to reduce some of the more frequently encountered problems.
    The two main points to realize when reading this document are:
    • Be aware of your system. Check system logs such as /var/log/messages and keep an eye on your system.
    • Keep your system up to date by making sure you have installed the current versions of software and have upgraded per security alerts, or otherwise improved the security of any suspect programs. Just doing this will help make your system markedly more secure.

    Host security
    Perhaps the area of most concentration on security is done with host-based security. This typically involves making sure your own system is secure, and hoping everyone else on your network does the same.

    Choosing good passwords, securing your services your hosts offer, keeping good accounting records, and upgrading programs that have known security exploits are among the things the local security administrator is responsible for doing.

    Although this is absolutely necessary, it can become a daunting task once your network of machines becomes larger. It can be said that host-based security does not scale. A host-based security exploit must be repaired on each machine on your network, which requires accessing each machine individually and applying the fix.


    Handling Carbon windows and controls: basic control manipulation

    Mon, 08/01/2005 - 14:43

    Basic Control Manipulation: Windows and controls are two of the primary means by which users interact with Macintosh computers. Most of the information that the user sees is presented in a window, and the controls within a window let the user interact with the application. Read more about the Mac OS X control manager, window manager and Basic Control Manipulation

    from Apple Computer Inc.

    Windows and controls are two of the primary means by which users interact with Macintosh computers. Most of the information that the user sees is presented in a window, and the controls within a window let the user interact with the application.

    The Window Manager and the Control Manager are the primary programming interfaces for creating and manipulating windows and controls in your application. This document describes the basic types of windows and controls, their suggested usage, and how they interact with the Carbon event model. This document also contains programming examples for creating windows and controls using Interface Builder (or by calling specific functions), sample implementations of controls, and information about how to create your own custom windows or controls.

    The concepts and examples in this document assume you are building applications for Mac OS X. However, because the Window Manager and Control Manager are Carbon-compliant, many of the functions described also work with Mac OS 9. This document calls out instances where functionality is available only in Mac OS X.

    'Basic Control Manipulation' describes various control manipulation functions that you may want to use in your application.

    Read this chapter (pdf).

    © 2005 Apple Computer Inc.


    Nucleus Net - a formidable challenger to other embedded TCP/IP stacks

    Wed, 08/10/2005 - 09:25

    Networking is a major part of the embedded market, with embedded software products that feature integration with Internet protocols via embedded TCP/IP stacks. A highly versatile stack is key.

    from Mentor Graphics Inc.

    We always knew that networking would become an integral part of our future products. Not just an add-on component, but also a highly optimized addition to the core, Nucleus PLUS, itself. So, we started early in our history (when starting anything hurt!) developing what we think now, is one of the world’s best TCP/IP stacks. This white paper will walk you through the history of Nucleus NET and why, in particular, it is so much a part of our future. We will also detail some of the features that we believe make Nucleus NET a formidable challenge to other embedded TCP/IP stacks.

    Introduction
    In early 1992, we realized the impact that networking was beginning to have on the embedded market. Companies like Wind River Systems and Integrated Systems were making great strides in providing embedded software primarily due to their integration with Internet protocols. We examined the offerings from these two companies and found that they were in general too cumbersome for the embedded market.

    This is due to the fact that they are re-worked versions of BSD (a free version of the TCP/IP networking stack developed by the University of California at Berkeley). We then launched a search into possible foundational technology that we could modify to meet the needs of a growing market that simply needed to be connected to a capable network. We chose NCSA telnet for our foundational technology.

    The NCSA code worked and was fairly simple to understand; unfortunately, it was originally developed as a single tasking, non-real-time environment. We then began replacing much of the internal structure of the stack to tightly integrate it with our real-time kernel. The purpose of this integration was twofold. First, we wanted it to be efficient. Secondly, we wanted its priority to be easily manipulated so that it would fit into the real-time scheme of an embedded system. To date, the greatest advantage of Nucleus NET over all other networking packages is its unique fit into the Nucleus PLUS real-time environment. Networking functionality in embedded systems that employ Nucleus PLUS and Nucleus NET can be relegated to whatever priority makes sense for your application.

    How Nucleus NET works
    In the process of developing Nucleus NET, we paid very close attention to well-structured code that is easy to read and understand. Nucleus NET's basic TCP, UDP, IP, ICMP, etc. is a highly versatile protocol stack that is small in size and quick in execution. It behaves seamlessly within a multi-tasking environment and takes advantage of some of Nucleus PLUS's unique features (like suspending on a queue for a timeout) to enhance the timing characteristics of the stack. This further enhances the real-time environment supported by Nucleus NET. Extreme caution has been taken to avoid excessive operating system overhead. Tasks, therefore, spend very little time in the stack itself. It is efficient in handling time consuming processes such as check summing and data copies. This is especially necessary when slower processors are expected to maintain extremely high data rates.

    Read the rest of this whitepaper here (pdf).

    © 2004 Mentor Graphics Inc.


    RS/6000 and PowerPC options - using the GNU Compiler Collection (GCC)

    Mon, 08/01/2005 - 14:25

    RS/6000 and PowerPC options - using the GNU Compiler Collection GCC supports two related instruction set architectures for the RS/6000 and PowerPC. The POWER instruction set are those instructions supported by the rios chip set used in the original RS/6000 systems and the PowerPC instruction set is the architecture of the Motorola MPC5xx, MPC6xx, MPC8xx microprocessors, and the IBM 4xx microprocessors. Read more about GCC and the GCC compiler

    from Apple Computer Inc.

    These -m options are defined for the IBM RS/6000 and PowerPC:


    
    -mpower
    -mno-power
    -mpower2
    -mno-power2
    -mpowerpc
    -mno-powerpc
    -mpowerpc-gpopt
    -mno-powerpc-gpopt
    -mpowerpc-gfxopt
    -mno-powerpc-gfxopt
    -mpowerpc64
    -mno-powerpc64
    

    GCC supports two related instruction set architectures for the RS/6000 and PowerPC. The POWER instruction set are those instructions supported by the rios chip set used in the original RS/6000 systems and the PowerPC instruction set is the architecture of the Motorola MPC5xx, MPC6xx, MPC8xx microprocessors, and the IBM 4xx microprocessors.

    Neither architecture is a subset of the other. However there is a large common subset of instructions supported by both. An MQ register is included in processors supporting the POWER architecture.

    You use these options to specify which instructions are available on the processor you are using. The default value of these options is determined when configuring GCC. Specifying the -mcpu=cpu_type overrides the specification of these options. We recommend you use the -mcpu=cpu_type option rather than the options listed above.

    The -mpower option allows GCC to generate instructions that are found only in the POWER architecture and to use the MQ register. Specifying -mpower2 implies -power and also allows GCC to generate instructions that are present in the POWER2 architecture but not the original POWER architecture.

    The -mpowerpc option allows GCC to generate instructions that are found only in the 32-bit subset of the PowerPC architecture. Specifying -mpowerpc-gpopt implies -mpowerpc and also allows GCC to use the optional PowerPC architecture instructions in the General Purpose group, including floating-point square root. Specifying -mpowerpc-gfxopt implies -mpowerpc and also allows GCC to use the optional PowerPC architecture instructions in the Graphics group, including floating-point select.

    The -mpowerpc64 option allows GCC to generate the additional 64-bit instructions that are found in the full PowerPC64 architecture and to treat GPRs as 64-bit, doubleword quantities. GCC defaults to -mno-powerpc64.

    If you specify both -mno-power and -mno-powerpc, GCC will use only the instructions in the common subset of both architectures plus some special AIX common-mode calls, and will not use the MQ register. Specifying both -mpower and -mpowerpc permits GCC to use any instruction from either architecture and to allow use of the MQ register; specify this for the Motorola MPC601.

    Read the rest of this chapter (pdf).

    © 2005 Apple Computer Inc.


    High Performance Linux Clusters with OSCAR, Rocks, OpenMosix, and MPI

    Sun, 04/17/2005 - 13:12

    To plan, build, and deploy a high-performance Linux cluster means planning, hardware choices, bulk installation of Linux on multiple systems, a comprehensive approach to management. Read Chapter 10 of this new O'Reilly book here.

    by Joseph D. Sloan. O'Reilly Media Inc.

    To the outside world, a "supercomputer" appears to be a single system. In fact, it's a cluster of computers that share a local area network and have the ability to work together on a single problem as a team. Many businesses used to consider supercomputing beyond the reach of their budgets, but new Linux applications have made high-performance clusters more affordable than ever. These days, the promise of low-cost supercomputing is one of the main reasons many businesses choose Linux over other operating systems.

    This new guide covers everything a newcomer to clustering will need to plan, build, and deploy a high-performance Linux cluster. The book focuses on clustering for high-performance computation, although much of its information also applies to clustering for high-availability (failover and disaster recovery). The book discusses the key tools you'll need to get started, including good practices to use while exploring the tools and growing a system. You'll learn about planning, hardware choices, bulk installation of Linux on multiple systems, and other basic considerations. Then, you'll learn about software options that can save you hours—or even weeks—of deployment time.

    cover: High Performance Linux Clusters with OSCAR, Rocks, OpenMosix, and MPI

    Since a wide variety of options exist in each area of clustering software, the author discusses the pros and cons of the major free software projects and chooses those that are most likely to be helpful to new cluster administrators and programmers. A few of the projects introduced in the book include:

    • MPI, the most popular programming library for clusters. This book offers simple but realistic introductory examples along with some pointers for advanced use.
    • OSCAR and Rocks, two comprehensive installation and administrative systems
    • openMosix (a convenient tool for distributing jobs), Linux kernel extensions that migrate processes transparently for load balancing
    • PVFS, one of the parallel filesystems that make clustering I/O easier
    • C3, a set of commands for administering multiple systems
    Ganglia, OpenPBS, and cloning tools (Kickstart, SIS and G4U) are also covered. The book looks at cluster installation packages (OSCAR & Rocks) and then considers the core packages individually for greater depth or for folks wishing to do a custom installation. Guidelines for debugging, profiling, performance tuning, and managing jobs from multiple users round out this immensely useful book.

    Download Chapter 10, Management Software, from High Performance Linux Clusters with OSCAR, Rocks, OpenMosix, and MPI: click download, below.

    © 2005 O'Reilly Media, Inc.


    Kernel programming

    Sat, 09/18/2004 - 11:45

    Kernel programming is a black art that should be avoided if at all possible. Fortunately, it usually is unnecessary.

    from Apple Inc.

    Many developers are justifiably cautious about programming in the kernel. A decision to program in the kernel is not to be taken lightly. Kernel programmers have a responsibility to users that greatly surpasses that of programmers who write user programs.

    You should avoid programming in the kernel
    Kernel code must be nearly perfect. A bug in the kernel could cause random crashes, data corruption, or even render the operating system inoperable. It is even possible for certain errant operations to cause permanent and irreparable damage to hardware—for example, by disabling the cooling fan and running the CPU full tilt.

    Kernel programming is a black art that should be avoided if at all possible. Fortunately, it usually is unnecessary. You can write most software entirely in user space. Even most device drivers (FireWire and USB, for example) can be written as applications, rather than as kernel code. A few low-level drivers must be resident in the kernel's address space, however, and this document might be marginally useful if you are writing drivers that fall into this category.

    Though parts of this document are useful in driver writing, this is not a document about writing drivers. In Mac OS X, you write device drivers using the I/O Kit. Though this document covers the I/O Kit at a conceptual level, the details of I/O Kit programming are beyond the scope of this document. Driver writers are encouraged to read Inside Mac OS X: I/O Kit Fundamentals for detailed information about the I/O Kit.

    This document covers most aspects of kernel programming with the exception of device drivers. Covered topics include scheduling, virtual memory pagers and policies, Mach IPC, file systems, networking protocol stacks, process and thread management, kernel security, synchronization, and a number of more esoteric topics.

    © 2004 Apple Inc.


    Eclipse and Mac OS X

    Fri, 07/16/2004 - 14:05

    Eclipse HTML Editor/Plugin for Mac OS X

    Apple Computer Inc.

    Eclipse was originally designed for building integrated development environments that were versatile enough to create applications for a range of programming languages. The intention was to provide tools makers with an IDE that would include mechanisms and rules that would consistently result in seamless tools integration. Since then, Eclipse has evolved to include an IDE that provides benefits for a wide range of development projects.

    Because it is Java-based, Eclipse includes the Java Development Kit; and yet its architecture supports all major programming languages from C/C++ to Cobol.

    Eclipse is a free download, and is available on a number of platforms. Since IBM launched Eclipse in November 2001, more than 18 million download requests have been logged from over 125 countries.

    A growing consortium of high-profile companies and organizations are actively supporting and extending Eclipse's ongoing development and giving the platform momentum. These organizations contribute support and technology, and they determine the direction and scope of Eclipse's growth.

    Highly extensible
    Because it is a highly extensible, open framework, Eclipse allows you to use—and create your own—plug-in tools to extend the basic Eclipse IDE for developing your applications.

    This means that if you are developing an application using Eclipse for Mac OS X, and you need a special tool to facilitate development on your project, you can choose from literally hundreds of available plug-in tools that work seamlessly with Eclipse and with any of the plug-in tools you are using.

    These plug-ins, which have been developed by a wide variety of companies and individuals, run the gamut from traditional coding tools such as source code analyzers, graphical layout tools, and compilers to productivity enhancers like bug trackers, source code managers, and even games. When you download and unzip the plug-in tools, they are automatically integrated into the Eclipse framework enabling you to create high-quality applications in less time.

    Eclipse's architecture has fostered a worldwide community of plug-in developers. As more plug-ins are created that address the entire development cycle, Eclipse becomes increasingly useful, and popular.

    The range of plug-ins is amazing. One biotech consultant uses the Jmechanic plug-in, saying, "our clients could quickly identify many performance problems, and could then decide whether it was something they wanted to fix, outsource, or live with." Using the Eclipse plug-in saved licensing costs, and gave each developer on their team the freedom to run a time profile before checking in their code.

    Another developer uses Eclipse as his primary IDE, and says, "the Sysdeo Tomcat launcher plug-in is essential for my daily work, because it allows me to do runtime debugging of my web application from within Eclipse."

    Figure 1 shows the Eclipse user interface on Mac OS X, with an open example of a sample plug-in project.


    Eclipse HTML Editor/Plugin

    Figure 1: Eclipse User Interface on Mac OS X

    Speeds development
    You will quickly discover that one of the reasons Eclipse is popular with developers is that it is intuitive to learn and use. The Eclipse framework includes the workbench component that provides Eclipse with its user interface, a collection of views and editors. When you select a perspective, you are specifying the set of tools you need to use for the task at hand. This elegant workbench metaphor makes the Eclipse environment highly intelligent.

    Eclipse's features are well implemented and very effective, and are designed to increase the speed of the development cycle by automating tedious tasks that distract you from coding.

    Other strengths include built-in CVS integration that makes it convenient to synchronize code with the CVS server. One Eclipse user says, "the Synchronize view makes it easy to merge changes and view changes before I decide to update. The Annotation view allows me to determine when each line of a file was added and who added it. This feature is great for tracking down bugs."


    Introduction to Eiffel.NET, part three: design by contract

    Fri, 08/27/2004 - 13:40

    A piece of software is correct if, and only if, it does exactly what it is supposed to. It's a matter of details. This is where the object-oriented programming language Eiffel and design by contract come in.

    by Daniele Pagano

    In Part One I introduced Eiffel and talked about is basic language constructs. In Part Two we explored some more advanced language features. It's now time for the big bucks: Design by Contract (DbC).

    Intended audience. In order to make the most of these tutorials, you should not only know how to code in some Object Oriented programming language (like C#), but also understand the basic theory of OO design (inheritance, polymorphism, and so on). Make sure you brush up on that before you begin. Reading the tutorials in order also helps :)

    In this tutorial I will talk about software correctness and how it can be more easily achieved in Eiffel using assertions and contracts.

    References. Like the other times, I've used the documentation in Eiffel ENViSioN! to get examples and ideas. There's more detail there if you wish to continue you Eiffel development days.

    Software Correctness

    Ok, so no one likes bugs. The problem with writing correct software is that a piece of software is correct if, and only if, it does exactly what it is supposed to. The problem is one of details. If you are 100 percent exact, you almost end up writing the software, and if you handwave, you'll miss important cases. How then to make correctness feasible?

    Many formal ways of specifying correctness (or, equivalently, functionality) have been devised, but the problem is that once you write your code, they are in their nice binder and if you didn't respect them no one may notice any soon. Pre- and post- conditions inserted in comments cannot be enforced, so if you want to make sure they hold you have to check them at BOTH and the client and the supplier. This makes your code inefficient and prone to even more errors.

    The solution is adding these details in the code itself, so the compiler will enforce them for you. And not as normal code, but recognized as such, which also makes them easy to disable once you trust that your software works. You want to do this module-by-module because you want each module to be correct within itself (respect its postcondition) AND being able to trust its clients (because they are respecting their pre-conditions). For more details on the motivation and theory behind this, as well as for becoming an expert in everything object-oriented, I highly recommend Bertrand Meyer's classic booksr Object-Oriented Software Construction.

    So DbC is this: a formal way to tell the Eiffel compiler what are your expectations and guarantees regarding a module (always a class in Eiffel), and having the compiler enforce them. The model is still based around preconditions and postconditions, but now you have a way to express these in mathematical (so also logical) notation.

    In case you're rusty about this, a precondition is a statement (about something like a parameter) that has to be true when a routine is entered (like that x is positive before calling sqrt(x)). The postcondition is a statement about what the return value (or side-effect, but that's hard to pin down) should be (like sqrt(x)*sqrt(x) = x). Also of notice, the class invariant is a statement always true about the class (doesn't apply to routines, you need data for it to make sense); this is of course the "stable state" of the class, so it must be true at the end of your methods (or when your class is available to be used) not while you're playing around within them (for example if you have an array with an iterator, the iterator position is always >0). If you studied Abstract Data Structures, you may know that specifying these properties is enough to define the behavior of a class, for example you can write, say, a stack in Prolog just by coding these logic rules. So Eiffel turns out as a great language for BOTH designing and programming.

    Let's see how to do this in practice.

    Assertions

    Each routine in Eiffel can contain an assertion for a precondition and one for a postcondition. Assertions are Boolean statements (i.e. they are either true or false), and are composed by Boolean clauses that are ANDed togheter (in logic jargon, they are in conjunctive normal form, or CNF).

    Assertions give you the power of both a if-then statement (which you would need to verify them) and a try-catch block (which you will need to handle errors). We saw last time how the "rescue" keyword can be used to recover from a false assertion.

    In Eiffel preconditions are introduced by the require keyword, and postcondition by the ensure keyword. As most the keywords in Eiffel, these do a lot to improve readability. Each line after the keyword is a clause, and each clause has two parts separated by a colon: an identifier with a name for the clause (again at least for readability, but also to reference to it), and the Boolean expression iself. For example:
    
    
    ensure  
        item_count_increased: item_count = old item_count + 1
    

    Introduction to Eiffel.NET, part two: advanced language features

    Fri, 08/27/2004 - 12:58

    Eiffel supports multiple implementation inheritance in a very robust and friendly manner. But what about the bugaboo of name dplication?

    by Daniele Pagano

    In Part One I introduced Eiffel and talked about is basic language constructs. As promised, I'm back for more.

    Intended audience. In order to make the most of these tutorials, you should not only know how to code in some Object Oriented programming language (like C#), but also understand the basic theory of OO design (inheritance, polymorphism, and so on). Make sure you brush up on that before you begin. Reading the tutorials in order also helps :)

    In this tutorial I will explain how inheritance in Eiffel works and you'll see how it's a very robust implementation (more so than C++ or Java/C#). I'll also talk a about genericity and exception handling in Eiffel.

    Note: In the first tutorial I said I would cover Design by Contract here, but as I was working on this, I noticed the tutorial is already very long without it, so I couldn't cover it very well. Since Design by Contract is the strongest feature of Eiffel, I decided to add some more language functionalities to this part and talk about Design by Contract in its fully glory and complexity in the whole Part Three. I'm not trying to post more tutorials; as you can see this tutorial is still very long and rich.

    References. Like last time, I've used the documentation in Eiffel ENViSioN! to get examples and ideas. There's more detail there if you wish to continue you Eiffel development days.

    Inheritance

    Inheritance and client/supplier (also called composition) are the two relationships that can exist between classes. We saw composition at work last time, when we could define class attributes. I'll assume you know what inheritance is all about (as I mentioned in the "Intended audience" note), and let's see how it works in Eiffel.

    First things first: Eiffel supports multiple implementation inheritance, so it has no need for Interfaces as special cases. Most people don't seem to like multiple inheritance, but you'll see that Eiffel implements in a very amicable manner, and it will be your friend.

    As I mentioned last time, in Eiffel abstract (i.e., non-instantiable) classes are called deferred. Interfaces are classes in which every feature is deferred (or pure abstract in C++ terminology). So if you have a deferred class called Comparable, you can inherit from it like you would implement an interface, and just implement the features. Type conformance tells us that this is identical to using interfaces.

    But since we can, Comparable does not have to be completely deferred. Look at this example ("Current" is like "this" in C++):

    
    
    deferred class 
        COMPARABLE 
    
    feature -- Comparison  
    
        infix "<" (other: like Current): BOOLEAN is  
                -- Is current object less than `other'?  
            deferred  
            end  
    
        infix "<=" (other: like Current): BOOLEAN is  
                -- Is current object less than or equal to `other'?  
            do  
                Result := not (other < Current)  
            end  
    
        infix ">" (other: like Current): BOOLEAN is  
                -- Is current object greater than `other'?  
            do  
                Result := other < Current  
            end  
    
        infix ">=" (other: like Current): BOOLEAN is  
                -- Is current object greater than or equal to `other'?  
            do  
                Result := not (Current < other)  
            end  
    
        is_equal (other: like Current): BOOLEAN is  
                -- Is `other' attached to an object of the same type  
                -- as current object and identical to it?  
            do  
                Result := (not (Current < other) and not (other < Current))  
            end
    
    


    Since Eiffel also supports operator overloading (you pretty much so how above), we can defer only one operator "<", and have our base class take care of all the other cases. Using interfaces you would either define all those every time (many bugs waiting there) or just use one operator (quite tedious and also error-prone).

    I shall now quench your thirst about how Eiffel handles the big problem of multiple inheritance: name duplication. A technique called "feature adaptation" come to the rescue.

    Let's look at the classic all-covering example. Supposed you need a linked queue, and you already have linked list and a queue. In languages without multiple inheritance, you'll have to pick on and re-invent the rest of the wheel. Let's look at how to do it in Eiffel (this is quite large, but don't be afraid, I'll go over it). Like last time, I'll the --n notation to define anchors for notes.

    
    class 
        LINKED_QUEUE [G] 
    inherit  
         QUEUE [G]   
            undefine   
                is_empty,   
                copy,   
                is_equal   
            redefine   
                linear_representation,   
                prune_all,   
                extend   
            select   
                item,   
                put   
            end  
        LINKED_LIST [G]  
    --1
            rename  
               item as ll_item,  
                remove as ll_remove,  
                make as ll_make,  
                remove_left as remove,  
                put as ll_put  
    --2
            export  
                NONE  
                    all  
                ANY  
                    writable,  
                    extendible,  
                    wipe_out,  
                    readable  
    --3
            undefine  
                fill,  
                append,  
                prune,  
                readable,  
                writable,  
                prune_all,  
                extend,  
                force,  
                is_inserted  
    --4
            redefine  
                duplicate,  
                linear_representation  
    --5
            select  
                remove  
            end
    


    Java 1.4.1 for Mac OS X

    Mon, 08/02/2004 - 10:39

    from Apple Computer Inc.

    Java 2 Platform, Standard Editions 1.4.1 for Mac OS X represents the evolution of many years of work by Apple to integrate Java with the OS X operating system. Java 1.4.1 for Mac OS X addresses both integration with J2SE and integration into the native operating system—and is much more integrated into the operating system than any previous release of Java.

    J2SE is a platform in and of itself. Many design decisions made there do not fit completely with the design decisions in Mac OS X. The result is that there are some differences between Java in Mac OS X and Java on other platforms. This document attempts to highlight those differences, so you can spend your time writing applications, not trying to figure out why something doesn't work the way you think it should.

    Want to know more? Click download, below.

    © 2003 Apple Computer Inc.


    Linux Unwired

    Sun, 05/09/2004 - 06:32

    by Roger Weeks, Edd Dumbill and Brian Jepson, O'Reilly

    This O'Reilly book is an introduction to the wireless technologies supported by Linux and how to install and configure them for different scenarios. You'll also learn how to get Wi-Fi running on a laptop, how to use Linux to create your own access point, and how to deal with cellular networks, Bluetooth, and Infrared, and more. Read Chapter 3 here.

    Click on download, below.


    Anti-spam howto

    Tue, 07/13/2004 - 09:22

    by Chris Hardie, principal, Summersault LLC

    This document discusses anti-spam philosophies from a variety of perspectives and provides information about available options for dealing with spam if you're sick of spam and want it to go away now.

    Who should be reading this document
    This document could be useful for:

    • UNIX system administrators
    • qmail administrators
    • System use/abuse policy makers
    • Casual users of e-mail concerned about spam
    General issues
    Spam is defined here as unsolicited commercial e-mail, usually sent in bulk. In other words, spam is simply electronic junk mail. Dealing with spam is, at best, a very difficult task. This is mostly true because spammers have a wide array of tools and circumstances available to them that make it easy for them to send you mail but difficult for you to communicate back with them or any authority over them. Spam is also difficult to deal with because it almost always comes in under the guise of being a normal e-mail message. No amount of technology can automatically decide what content is undesirable to you, but there are many ways to use technology to reduce the amount of unwanted e-mail you or your users receive.

    For a more thorough explanation of the issues here, I recommend reading the IETF Anti Spam Recommendations. David E. Sorkin has produced an excellent document called Technical and Legal Approaches to Unsolicited Electronic Mail.

    Specific issues of policy
    Anyone dealing with spam prevention will have to make definite and impacting decisions about the following issues:

    • Is the prevention of spam worth the time and resources required to reach a given level of spam reduction?
    • Is the prevention of spam the responsibility of a system administrator or the responsibility of the end user, or some combination of those?
    • Should e-mail identified as potential spam be flatly rejected, or just tagged as spam and routed accordingly?
    • Should system administrators (yours or anyone else's) who have misconfigured their systems be held responsible for any problems that result?
    • Should you reject e-mail messages that are legitimate in content but that do not conform to known and accepted standards?
    • Should you accept for delivery mail that does not have valid reply information (either in the envelope or From address)?
    • What criteria should be met before an individual or ISP is justifiably classified as "spam-friendly"?
    Basic things you can do to prevent/reduce spam
    • Avoid publishing your private e-mail address. Putting your e-mail address on a Web page is often the fastest way to generate spam in your mailbox. If you have to publish your address, try to "spamproof it" (e.g. "chris at summersault dot com") or set up a throw-away account that you can use for short periods of time and stop using later.

    • Don't give your e-mail address to organizations you don't trust. Read the privacy policy and terms-of-use statements of a Web site or organization before you hand them your e-mail address. Inquire about how your address will be used, who it might be sold to, and what your options are for getting out of a database/mailing list.

    • Don't respond to spam. No matter how tempted you might be to respond to a spammer and tell them off/ask to be removed from their list, don't do it. This only serves to A) validate that your e-mail address is active and thus a good target for further messages, B) contribute to their response rate, C) further waste your time and resources.

    • Don't use a dot-qmail-default file in a lazy way. The dot-qmail-default file (e.g. , qmail-default) makes any mailbox name on your system valid, whether or not it actually exists. While it can be useful as a catch-all for setups where there is a possibility that the sender would misspell the address, it often leads to an increased volume of spam from spammers who use made up aliases. Typical examples of this are sales@domain.com, webmaster@domain.com, and so on. Note that the dot-qmail-default file can actually be useful in fighting spam, if you set it up to process mail sent to invalid addresses and then reject the mail with useful error messages.

    • Report any spam that you do get. Services like SpamCop make this straightforward and efficient. See the Resources section for links.

    • Educate. Educate your users, friends, and family about spam, why it is (or is not) worth fighting, and what they can do. Spammers are often successful in getting mail through because the typical end user doesn't understand the technical issues enough to make decisions about how to respond and fight back.

    • Make sure your system is properly configured and secured. Much spam is propagated because of improperly configured mail servers (or even desktop computers). All of the hosts on your system should have proper hostnames and corresponding IP addresses. Your mailing software should be standards compliant and issue standard error and warning messages when appropriate, and you should be aware of its configuration regarding rejection of messages. Use anti-virus and firewall products where appropriate.


    Apache-SSL

    Mon, 07/12/2004 - 08:38

    by Ben Laurie, Apache core team and board member and OpenSSL core team member. OpenSSL.

    Apache-SSL is a secure Web server, based on Apache and SSLeay OpenSSL. It is licensed under a BSD-style license, which means, in short, that you are free to use it for commercial or noncommercial purposes, so long as you retain the copyright notices. This is the same license as used by Apache from version 0.8.15.

    Main features

    • Free for both commercial and non-commercial use
    • 128 bit encryption worldwide
    • Client authentication
    • Full source code
    • Modular extension API
    Download
    Current release: apache_1.3.29+ssl_1.53
    Release date: February 6, 2004

    You will also need openssl-0.9.6g or better, which you can find here.

    Apache-SSL source patches can be found on the following UK master distribution sites:

    and additional FTP mirrors at:

    or HTTP mirrors at: OS-specific versions: What do I get?
    What you get is a set of patches for Apache (available for versions 1.2.0+ and 1.3.0+), some extra source files, a few READMEs, and example configuration files.

    The patches must be applied to the Apache source, and the result compiled and linked with SSLeay or OpenSSL. The modified source will still compile a standard Apache as well as Apache-SSL.

    Keeping up to date
    The best way to become aware of upgrades is to join the announce Mailing List, where new versions are announced.


    Carbon: Open Scripting Architecture reference

    Tue, 05/11/2004 - 09:00

    Apple Inc.

    The Open Scripting Architecture is an API that provides a standard mechanism for creating scriptable applications and for writing scripting components to implement scripting languages.

    Porting Unix/Linux applications to Mac OS X

    Tue, 05/11/2004 - 09:06

    Apple Inc.

    This guide helps developers bring applications written for UNIX-based operating systems to Mac OS X. It discusses some of the design decisions as well as some of the concerns. It also points out some of the advanced features of Mac OS X not available in traditional UNIX applications that you can add to your ported apps.