This document discusses the challenges of using shell scripting for developing UNIX installations compared to using Java. It outlines issues such as the difficulty of debugging complex shell scripts, lack of user-friendly graphical installations, problems with code reuse and sharing between developers, and reliability issues interfacing with applications. The document promotes using InstallAnywhere and Java for overcoming these challenges and creating robust, multi-platform enterprise installations.
A case study - STAG’s test harness for custom installation of product components on distributed machines and multiple operating systems cuts down the test effort by 50% for a global provider of business intelligence products and solutions.
A case study - STAG’s test harness for custom installation of product components on distributed machines and multiple operating systems cuts down the test effort by 50% for a global provider of business intelligence products and solutions.
In its 3.4 release, Eclipse introduced a new installation / update mechanism called p2. Beyond its Eclipse specific appearance, p2 is a modular provisioning platform for OSGi based systems (currently focused on Equinox) addressing the wide spectrum of provisioning needs from small devices to servers through desktops. In this talk, p2 key concepts and architecture will be introduced, and p2's flexibility will also be demonstrated. As importantly as the actual technology, this talk will also discuss how p2 and the various tools help throughout the software lifecycle from development to serviceability.
Many projects start out with the intention of staying single license FOSS projects. As your project grows, reality hits: some components or files may need to use different licenses than originally anticipated. There are many reasons why this can happen: you may need to interface with projects of another license, you may want to import code from other projects or your developers may not understand the subtleties of the licenses in use. Besides the obvious challenges of managing mixed license FOSS projects, such as license compatibility and tracking what licenses you use, you are running the risk of exposing your project to unintended consequences.
This talk will explore unintended consequences, risks and best practices using some examples from the recent history of the Xen Project. In particular we will cover:
Refactoring can lead to licensing changes: best practices and unintended consequences when importing code from elsewhere.
Making code archeology easy from a licensing perspective and why it is important.
A worked example of a license change of a key component: process, pain points, their causes and how they could have been avoided
The perils of LGPL/GPL vX (or Later): the unintended consequences of not providing pre-defined copyright headers in your source base
We will conclude with a summary of lessons and best practices from both the Xen Project and a quick overview of how usage of SPDX and other tools may help you.
Introduction to DragonBoard 410c Development Board and Starting Development of Your Embedded Linux-based IIoT Device
Watch the recording at: http://bit.ly/2AskXuW
Rational Rhapsody 8.3 with Cygwin and iFixes (www.executablembse.com)Fraser Chadburn
This detailed guide gives full instructions for installing IBM Rational Rhapsody v8.3 with iFixes *as of 14/01/18. It gives instructions for installing all Editions. It chooses Developer Edition and then switches it to Designer (although Architect is also possible). Included are steps for downloading and installing the minimal Cygwin environment and a profile called SysMLHelper which supports a Harmony/SE like workflow for advanced executable MBSE in automotive. Full steps on validating the install are provided including checking that the Rhapsody Gateway add-in launches OK.
SPA 2009 - Acceptance Testing AJAX Web Applications through the GUIandrew.macleod
These are the slides that Andrew MacLeod and Patrick Myles presented at the SPA conference in London, April 2009
http://www.spaconference.org/spa2009/sessions/session219.html
Open Source means a lot of things and revolutionized the way software is built over the last two decades.
Whether developing a product or providing a service, companies are rushing to get their businesses cloud ready, increasingly (big) data driven and flexible enough to take advantage of the inherent business scalability opportunities offered by the cloud.
And as the focus switches to the scale economies of execution, from ever cheaper opaque hosted web storage and connected services to the immutable containers movement, a question arises: what is the role of Open Source software in a world in which not only software (SaaS), but also platform (PaaS) and infrastructure (IaaS) are increasingly delivered (and consumed) as hosted services?
In this session, we'll attempt to answer to this question, by providing examples of Open Source cloud & big data companies and studying the effects of open development ecosystems and how Open Source is engrained in the fabric of the Cloud.
In this quality assurance training, you will learn Selenium introduction. Topics covered in this session are:
• FEATURES OF SELENIUM
• COMPONETS OF SELENIUM
• SELENIUM IDE
• SELENIUM RC
• SELENIUM Web Driver
• SELENIUM GRID
• SELENESE
For more information, visit this link: https://www.mindsmapped.com/courses/quality-assurance/software-testing-training-beginners-and-intermediate-level/
A proposal for an advertising agency to consider how to differentiate itself in the market, set a standard in environmental awareness and conservation.
Do you have a website? Is your website doing its job? I'll be having a free live event web training to discuss this, details at http://LouisaChan.com/hangout-website...
Do you know if it;s time for a website makeover? What are the criteria to determine if your website is effectively functioning as your marketing tool?
I held a live Google Hangout on Air on this and if you are interested to find out more info here's the link
http://www.louisachan.com/effective-websites-that-capture-leads-training
If you have any questions or needs, feel free to connect with Louisa Chan:
Google+ http://LouisaChan.com/gplus
Facebook: https://www.facebook.com/LouisaChanYS
LinkedIn: http://my.linkedin.com/in/louisachan/
Twitter: http://Twitter.com/CoachLouisa
Build vs. Buy: Designing an Effective Software Update Delivery SolutionFlexera
For software producers and high-tech manufacturers, the ability to effectively deliver new software and data updates, patches, and bug fixes to every customer is vital to the success of any product line. Keeping customers on the most current software version optimizes user productivity and satisfaction and significantly reduces the vendor’s customer support costs.
In its 3.4 release, Eclipse introduced a new installation / update mechanism called p2. Beyond its Eclipse specific appearance, p2 is a modular provisioning platform for OSGi based systems (currently focused on Equinox) addressing the wide spectrum of provisioning needs from small devices to servers through desktops. In this talk, p2 key concepts and architecture will be introduced, and p2's flexibility will also be demonstrated. As importantly as the actual technology, this talk will also discuss how p2 and the various tools help throughout the software lifecycle from development to serviceability.
Many projects start out with the intention of staying single license FOSS projects. As your project grows, reality hits: some components or files may need to use different licenses than originally anticipated. There are many reasons why this can happen: you may need to interface with projects of another license, you may want to import code from other projects or your developers may not understand the subtleties of the licenses in use. Besides the obvious challenges of managing mixed license FOSS projects, such as license compatibility and tracking what licenses you use, you are running the risk of exposing your project to unintended consequences.
This talk will explore unintended consequences, risks and best practices using some examples from the recent history of the Xen Project. In particular we will cover:
Refactoring can lead to licensing changes: best practices and unintended consequences when importing code from elsewhere.
Making code archeology easy from a licensing perspective and why it is important.
A worked example of a license change of a key component: process, pain points, their causes and how they could have been avoided
The perils of LGPL/GPL vX (or Later): the unintended consequences of not providing pre-defined copyright headers in your source base
We will conclude with a summary of lessons and best practices from both the Xen Project and a quick overview of how usage of SPDX and other tools may help you.
Introduction to DragonBoard 410c Development Board and Starting Development of Your Embedded Linux-based IIoT Device
Watch the recording at: http://bit.ly/2AskXuW
Rational Rhapsody 8.3 with Cygwin and iFixes (www.executablembse.com)Fraser Chadburn
This detailed guide gives full instructions for installing IBM Rational Rhapsody v8.3 with iFixes *as of 14/01/18. It gives instructions for installing all Editions. It chooses Developer Edition and then switches it to Designer (although Architect is also possible). Included are steps for downloading and installing the minimal Cygwin environment and a profile called SysMLHelper which supports a Harmony/SE like workflow for advanced executable MBSE in automotive. Full steps on validating the install are provided including checking that the Rhapsody Gateway add-in launches OK.
SPA 2009 - Acceptance Testing AJAX Web Applications through the GUIandrew.macleod
These are the slides that Andrew MacLeod and Patrick Myles presented at the SPA conference in London, April 2009
http://www.spaconference.org/spa2009/sessions/session219.html
Open Source means a lot of things and revolutionized the way software is built over the last two decades.
Whether developing a product or providing a service, companies are rushing to get their businesses cloud ready, increasingly (big) data driven and flexible enough to take advantage of the inherent business scalability opportunities offered by the cloud.
And as the focus switches to the scale economies of execution, from ever cheaper opaque hosted web storage and connected services to the immutable containers movement, a question arises: what is the role of Open Source software in a world in which not only software (SaaS), but also platform (PaaS) and infrastructure (IaaS) are increasingly delivered (and consumed) as hosted services?
In this session, we'll attempt to answer to this question, by providing examples of Open Source cloud & big data companies and studying the effects of open development ecosystems and how Open Source is engrained in the fabric of the Cloud.
In this quality assurance training, you will learn Selenium introduction. Topics covered in this session are:
• FEATURES OF SELENIUM
• COMPONETS OF SELENIUM
• SELENIUM IDE
• SELENIUM RC
• SELENIUM Web Driver
• SELENIUM GRID
• SELENESE
For more information, visit this link: https://www.mindsmapped.com/courses/quality-assurance/software-testing-training-beginners-and-intermediate-level/
A proposal for an advertising agency to consider how to differentiate itself in the market, set a standard in environmental awareness and conservation.
Do you have a website? Is your website doing its job? I'll be having a free live event web training to discuss this, details at http://LouisaChan.com/hangout-website...
Do you know if it;s time for a website makeover? What are the criteria to determine if your website is effectively functioning as your marketing tool?
I held a live Google Hangout on Air on this and if you are interested to find out more info here's the link
http://www.louisachan.com/effective-websites-that-capture-leads-training
If you have any questions or needs, feel free to connect with Louisa Chan:
Google+ http://LouisaChan.com/gplus
Facebook: https://www.facebook.com/LouisaChanYS
LinkedIn: http://my.linkedin.com/in/louisachan/
Twitter: http://Twitter.com/CoachLouisa
Build vs. Buy: Designing an Effective Software Update Delivery SolutionFlexera
For software producers and high-tech manufacturers, the ability to effectively deliver new software and data updates, patches, and bug fixes to every customer is vital to the success of any product line. Keeping customers on the most current software version optimizes user productivity and satisfaction and significantly reduces the vendor’s customer support costs.
Designing an Update-Friendly MSI InstallationFlexera
In this white paper, you will learn about designing your original Windows Installer setup project to best prepare it for future upgrades, and how to design upgrade packages to install later versions of your products. It will also provide an introduction to the different types of updates supported by Windows Installer. Finally, at times throughout the white paper it will explain how InstallShield® from Flexera Software can assist with the installation and update authoring process.
Get Devops Training in Chennai with real-time experts at Besant Technologies, OMR. We believe that learning Devops with practical and theoretical will be the easiest way to understand the technology in quick manner. We designed this Devops from basic level to the latest advanced level
http://www.traininginsholinganallur.in/devops-training-in-chennai.html
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...The Linux Foundation
For many years, the Xen community has been delivering a solid virtualization platform for the enterprise. In support of the Xen community innovation effort, Oracle has been translating our enterprise experience with mission-critical workloads and large-scale infrastructure deployments into upstream contributions for the Linux and Xen efforts. In this session, you'll hear from a key Oracle expert, and community member, about Oracle contributions that focus on large-scale Xen deployments, networking, PV drivers, new PVH architecture, performance enhancements, dynamic memory usage with ‘tmem', and much more. This is your chance to get an under the hood view and see why the Xen architecture is the ideal choice for the enterprise.
There are probably a lot of technologies you must learn in order to master the modern development and DevOps ecosystem but Docker (and of course orchestration and the containers’ ecosystem) is one of the important skills to have nowadays.
https://www.gangboard.com/operating-system-training/docker-training
My college ppt on topic Docker. Through this ppt, you will understand the following:- What is a container? What is Docker? Why its important for developers? and many more!
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as CodeRobert van Mölken
As more and more application deployments move to the cloud the scale and complexity becomes harder to manage. Instead of a handful of large instances, you might have many smaller instances, so there are many more things you need to provision. Because of this cloud vendors provide API abstraction of their compute, storage, network and other platform services. In this talk I present a guide to provision these services, such as a Kubernetes cluster, using infrastructure as code and deploy your applications through cloud-native build pipelines. Get to know the concepts behind these DevOps practices and come hear which tools to use like Terraform and Oracle Container Pipelines to automate these laborious tasks on the Oracle Cloud Infrastructure.
Docker - Demo on PHP Application deployment Arun prasath
Docker is an open-source project to easily create lightweight, portable, self-sufficient containers from any application. The same container that a developer builds and tests on a laptop can run at scale, in production, on VMs, bare metal, OpenStack clusters, public clouds and more.
In this demo, I will show how to build a Apache image from a Dockerfile and deploy a PHP application which is present in an external folder using custom configuration files.
Making Clouds: Turning OpenNebula into a ProductNETWAYS
What does it takes to bring innovations like private clouds to small and medium enterprises? In the course of this talk we will present our experience in creating a self-service toolkit for creating a complete virtualization and cloud platform based on OpenNebula, as well as our experience gathered in tens of installations of all sizes. From scalable storage (with benchmarks!) to autonomic optimization, we will present what in our view is needed to bring private clouds to everyone, what components and additions we created to better solve our customers’ problems (from replacing industrial control systems to medium scale virtual desktop infrastructures), and why OpenNebula has been chosen over other competing cloud toolkits.
Similar to Shell vs. Java: Overcoming the Challenges of Shell Scripting for UNIX Installations (20)
Get a Complete View of Your Business Services and IT Estate in ServiceNow wit...Flexera
Context is Critical to IT and an Accurate CMDB is Vital to Context
A near-real time accurate CMDB is an important requirement but a major challenge for modern IT organizations. Bad and missing data can significantly impact the business and result in business impacting service outages, increased business risk and exposure to security threats.
ServiceNow provides the essential management and big picture visibility that is crucial to an effective CMDB. And Flexera | RISC Networks provides detailed discovery data, context and analysis to push into your ServiceNow instance, making the picture of the current state accurate and contextually relevant.
10 Tips to Optimize, Automate, and Govern your Hybrid IT EnvironmentFlexera
Join our webinar for 10 tips to help you manage your hybrid environment, erase waste from your IT spend and reallocate spend to critical initiatives – enhancing your bottom line and accelerating your company.
Using Automated Policies for SaaS Governance and ComplianceFlexera
Learn to use automated SaaS policies to enforce governance and compliance, including unsanctioned spend alerts, detecting suspicious user activity, onboarding and offboarding, and detecting inactive user accounts.
The Practical Approach for End-to-End SaaS ManagementFlexera
Watch this webinar and get the answers to help you learn to effectively manage software-as-a-service. Learn to optimize SaaS spend, manage multiple vendors and their pricing models, and right-size contracts with detailed usage and cost data.
7 Things You Need to Know for Your Cloud-First StrategyFlexera
One of your top priorities is implementing a cloud-first strategy. Learn to make the shift as efficiently and cost-effectively as possible. Watch this webinar and learn the best practices for cloud migration, optimization, governance and automation.
The Role of In-House & External Counsel in Managing Open Source SoftwareFlexera
Amy Chun, Partner at Knobbe Martens and Marty Mellican, VP & Associate General Counsel at Flexera discuss the role of in-house counsel to better manage any potential legal risks that might be inherent with OSS use.
Addressing Open Source Risks During M&A: A Legal ViewFlexera
Amy Chun, Partner at Knobbe Martens and Marty Mellican, VP & Associate General Counsel at Flexera discuss why a carefully planned audit of open source should be part of every due diligence effort.
Having Trouble Managing All Your Cloud Services? We Know!Flexera
Most businesses have at least 3 or more cloud services, and it’s hard enough to control spend for just one. That’s why Flexera acquired RightScale, the leading multi-cloud management provider. With cloud services making up 20% of most IT budgets, the spend optimization stakes are high. This year’s Rightscale State Of The Cloud report shows that up to 35% of cloud services spend may be wasted.
View these slides to see how RightScale Optima helps you find that 35% and act on it.
Webinar: Maximizing the ROI of IT by Simplifying Technology ComplexityFlexera
View this webinar with Forrester analyst Charlie Betz and Forrester consultant Stephen Odell, as they present the detailed findings of their study. After the webinar, you will have a better understanding of the benefits of Flexera Data Platform.
Webinar: What's New In FlexNet Manager Suite 2018 R1Flexera
Learn about the new features in FlexNet Manager Suite for Enterprises 2018, which brings new capabilities to extend Flexera's leadership in Software Asset Management.
Software Distribution, Customer Experience and the IoT: Get Ready for Fast, S...Flexera
There’s no second chance to make a first impression! Are your software upgrades making a good impression on your customers? Are your software delivery processes fast, scalable, and secure?
Join Forrester Principal Analyst David Johnson, Akamai and Flexera as they discuss what modern electronic software delivery processes should look like in this rapidly growing IoT world.
Fast!
No one likes to wait. Learn how a robust software delivery solution gets software and updates out to customers – without the wait.
Scalable!
File sizes and cadence of updates are faster than ever. Intelligent devices defy conventional software distribution models. Hear what you can do to keep up.
Secure!
Security has many aspects – where do you focus? Discover how to deliver your software in a secure way and only to those entitled to receive it.
Windows 10 webinar: What’s new for IT pros Windows 10 v 1709Flexera
Join Microsoft's Iris Fang and Nick Moseley, Technical Solutions Professionals, for an overview of the new business-friendly features coming in the Windows 10 Update 1709. Whether you have already migrated to Windows 10 and are planning for the upgrade, or preparing to migrate from Windows 7 to The Fall Creators update, this webinar will review what enterprises can expect in the new release.
Don’t Let Hackers Breach Your Data: Shutting Your Risk Window on Apache Struts2Flexera
Cyber-criminals target these known vulnerabilities in both commercial and open source software. Many organizations are either unaware of what’s in their software or take too long to patch their systems. These gaps lead to ignorance of known vulnerabilities and/or a lack of efficient processes to apply critical patches quickly.
Watch this webinar on understanding these gaps, closing the risk window and reducing your risk of a breach. Find out how vulnerable code can be easy to discover and patch.
Announcing the availability of the largest and most comprehensive repository of technology asset data on the planet. Current and constantly curated. Available on the software industry’s first open platform for this data. It’s about time.
Webinar: Take Proactive Control of Your SAP Licensing, Indirect Usage and Ven...Flexera
Join UpperEdge and Flexera in this webinar to learn the importance of getting more proactive control of your SAP relationship to drive predictable outcomes and increased value.
Keeping a Lid on Costs for Cloud Infrastructure and SaaS ApplicationsFlexera
Join us for this webinar as we discuss the spend management risks associated with cloud services and some of the strategies organizations can use to keep a lid on these costs using Software Asset Management processes and tools. We’ll use Amazon Web Services and Microsoft Office 365 as specific examples of cloud infrastructure services and SaaS applications, respectively, that can be managed for better cost efficiency.
Do You Manage Software? Understanding Your Role in Cybersecurity DefenseFlexera
Organizations are under constant attack by hackers targeting applications used by the business. The University of Maryland recently quantified the near-constant rate of attacks on computers with Internet access to every 39 seconds. The best defense requires a holistic approach and collaboration of different teams in a concerted effort to reduce the attack surface for hackers. In this webinar we will discuss the roles and the impact that activities, not always associated with security, have in reducing risk. Whether you are an asset manager, a desktop or datacenter manager, or an IT security professional, your role has a significant impact on your organizations ability to reduce the risk of cyber-attack.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
When stars align: studies in data quality, knowledge graphs, and machine lear...
Shell vs. Java: Overcoming the Challenges of Shell Scripting for UNIX Installations
1. Shell vs. Java: Overcoming the
W H I T E PA P E R
Challenges of Shell Scripting for
UNIX Installations
2. Shell vs. Java: Overcoming the Challenges
of Shell Scripting for UNIX Installations
Introduction Web servers, shell-based installations are rarely a viable
A shell is a command-line interpreter that takes and executes delivery option. This delivery mechanism becomes more
commands, and in doing so, implements a programming difficult when you reanalyze how the tar archive is built. The
language commonly referred to as “shell scripting.” Shell configuration management team has to produce a directory
scripting is traditionally used by UNIX system administrators structure that will mimic the final destination.
to automate the execution of system tasks, but developers
also use shell scripts to create enterprise-level software In addition, it is well known that tar-ball installations are
installations, and that is where problems occur. not user-friendly to regular users. This is due to the absence
of visually guided installations, as is the accepted standard
This white paper highlights the major difficulties with for Windows applications. As a result, they often introduce
attempting to develop UNIX installations using shell scripts. barriers to user adoption of applications, and may even
It focuses on shell scripting as a language and how it is cause problems with the installation and maintenance of
used in the context of UNIX installation development. It also the applications.
discusses how Java is being used as a successful alternative
to shell scripting for enterprise installations. UNIX Installations: The Way They Ought to Be
Installations, regardless of the targeted operating system,
Finally, this white paper details how the tools in should be easier to implement. The “tar-ball” file archive
InstallAnywhere®, the multi-platform installation tool from structure should not be decided upon by the build system.
Flexera Software, can help developers overcome the This should be loosely packaged so that the installation can
inherent problems with shell scripting and create high- make the final decision on how the final file structure
quality multi-platform installations ideal for enterprise should look.
environments.
The installation technology used should be based on a more
UNIX Installations: The Tar-Ball Archive robust language with built-in parsing capabilities for XML,
Most UNIX shell-based installations are constructed using Java properties files, and so on. Finally, the installation
a “tar-ball” (tar archive) paradigm. A tar file is delivered should give the user the option of running the installation
whose contents include a shell script and the files to be in a graphical mode.
installed. For the most part the files are stored in a structure
mimicking that of their final destination. This potentially Ultimately, customers and installation developers want
means that a single copy (cp) command is invoked to copy the same thing, a robust installation system. However,
the entire directory to the home directory. All necessary their perspective is different. The customer cares about
configurations are done with the help of commands such the final product, whereas the developer cares about
as “sed”, “awk”, and so on. The user interface provided is the development environment needed to produce UNIX
console only. installations. The following lists are a subset of requirements
as demanded by customers and installation developers.
By and large, the above scenario is acceptable for simple
applications. However, it becomes very hard to follow when For customers:
even the most straightforward enterprise installations are • Ease of use – Most customers want an easy way to
attempted. If the installation you are attempting to construct interact with an installation, preferably one that is
is required to configure application servers, databases, or visually guided, such as those offered by Windows.
2 Flexera Software: InstallAnywhere White Paper Series
3. Shell vs. Java: Overcoming t he Challenges of Shell Script ing for UNIX Installat ions
• Single point of initiation – An end user attempting installation and received the same error. Only this time the
to invoke your installation should not be confronted error occurs at line 4559. Debugging is not available unless
by a plethora of installation options. A single native you type:
launcher should suffice.
• Native look and feel – It is important that users receive % sh -x install.sh
an installation that looks and feels like any other
application targeted for that particular operating The above does not yield results that someone with limited
system. shell-scripting knowledge can understand.
• Get the product installed – The ultimate goal of
the installation is to get the product installed and The problem is worsened when the script contains a
configured. statement similar to myvar=`cat $1`. If $1 is not initialized,
the script will be stuck. Of course, a diligent programmer
For installation developers: doesn’t allow this to happen, but if it does happen,
debugging can be a nightmare.
• Single point of development – A true cross-platform
development platform that would allow the developer Other issues with the script come to light when you consider
to maintain a single code base for numerous platforms. the problems associated with localization and permissions
• The development environment should use a familiar (“To install, you need admin rightsn”), and dealing with a
language, preferably object oriented – To allow nonstandard logging (to install.log) mechanism.
extensibility, the installation development tool should
enable the developer to extend it. The point of this exercise was to show how difficult it can be
• Operating system abstraction – When developing to develop elaborate enterprise installations using shell.
cross-platform installations, the developer should focus
on product installation and configuration tasks and not Interoperability
how each operating system works. Even though shell was never intended for large
development, shell scripting is sometimes used to create
Analyzing the Shell Scripting Environment large installation projects, such as enterprise installations.
The concept of shell scripting was introduced to help These installations need to directly communicate
system administrators automate low-level shell commands. configuration settings to the product being installed. For
For a long time most companies have used shell scripts as shell-based installations, this is done using input files or the
delivery mechanisms (that is, installations), which, for the command line. Error handling, for the most part, is done
most part, worked well. Since shell scripts are delivered using return codes.
in clear, readable ASCII, they can potentially expose
implementations that can pose as security holes. Unfortunately, return codes are not always reliable.
Sometimes a command may return 0 when in fact it should
Unfortunately, that is not the only weakness shell scripting return anything but 0. Extra steps need to be taken to ensure
exposes. The following sections highlight why shell scripting reliability, which can turn into unnecessary complex if-
does not scale when enterprises attempt to use it as an statements that make interoperability all the more difficult.
installation development platform.
Sharing Code
The Development Environment When developing large-scale enterprise installations, you
Shell is littered with hard-to-understand regular expressions can expect more than one developer to work on the same
and lacks a true integrated development environment (IDE). code. Your plan, of course, is to develop reusable libraries
It often takes a truly senior UNIX developers to properly that can be used across the installation system. However,
handle such complex scripting environments. Consider the shell was not designed with that in mind. Shell is for the
following syntax: most part used to automate administration tasks such as
“empty the temp space” or “manage users.” It was designed
CURRENT_USER=`whoami | awk ‘{print $1}’` to deal with low-level tasks, not code sharing.
if [ “$CURRENTUSER” != “root” ] && [ “$CURRENT_USER”
!= “admin” ]; then printf “To install, you need admin Portability
rightsn” | tee -a Not all UNIX environments are created equal. Some
install.log fi commands work in every UNIX environment; some do
not. Sometimes commands such as “pidof” do not exist in
If you take a closer look, you will notice how awkward the environments other than Linux. Furthermore, some utilities
if-statement really is. If you play with the white-spacing in do not share the same command-line arguments across all
the if-statement, you may receive an error similar to this one: UNIX implementations. Besides, would you like to learn all
the command-line options offered by UNIX commands such
./install.sh: line 2: [CURRENT_USER: command not found] as “ls”? To account for portability, a great deal of code must
be written.
Although this may not seem like a big problem, imagine
what would happen if someone in the field ran your
Flexera Software: InstallAnywhere White Paper Series 3
4. Shell vs. Java: Overcoming t he Challenges of Shell Script ing for UNIX Installat ions
Parsing Ability
Shell was written long before SGML technologies such as public String getInstallStatusMessage( ) { return
XML were available. Therefore, its abilities for parsing such “Computing time stamp...”; }
formats are based on regular expressions. For the most part,
regular expressions are hard to write and even harder to public void uninstall(UninstallerProxy up) { /* do nothing
debug. To consider writing regular expressions for parsing on uninstall */ }
XML would put you in the business of building XML parsers public String getUninstallStatusMessage( ) { return “...”; }
from scratch. Modern languages such as Java and C++ }
have XML parsers built-in.
First and foremost, the above code is standard Java code.
Parsing becomes more of a problem when unknown formats In addition to being able to use standard Java functionality,
are met. New regular expressions must be built, or you Java code can use JNI to call in to native code. The
could write a native executable using C/C++ to do the job. interesting thing about JNI is the fact that as far as the
Once again, interoperability becomes questionable. Java developer is concerned, the JNI call is just another
Java call.
The Linux Factor
With the introduction of Linux, a large number of non- Worth noticing is also the exception handling offered by
UNIX users entered the UNIX arena. From a strategic Java. Logging is another powerful Java feature. To facilitate
point of view, it gives a large number of users the chance readability, logging information can be categorized by
to diversify. On the other hand, most of these new users severity and the output can be formatted as XML, which in
come from GUI-driven operating systems, and they want turn can be transformed into HTML so that customers can
everything be done with graphical tools. But shell-based view install logs in a readable format.
installations are made to be console-driven – no
graphical interface. Java has emerged as a very popular technology, and for
good reasons. Most educators have embraced Java as
Mac OS X their teaching language of choice, creating a large pool
Mac OS X is further proof that UNIX is becoming more of Java developers. The attractiveness of Java as a “write
accepted as a graphical operating system. Besides making once, run everywhere” language has certainly been another
Mac OS X the most optimized UNIX environment to run contributing factor to its popularity.
Java, Apple has made Java an integral part of Mac OS X,
which is good news if your strategy is to create Java-based Another strong supporting argument for Java-based
installations. But shell-based installations must once again installations is that numerous companies deploy application
take a back seat. servers such as IBM® WebSphere®, BEA® WebLogic®,
Sun® Java Enterprise System, or JBoss. For scalability and
Java-Based Installations reliability purposes, these are mostly deployed on the UNIX
If not shell scripting, what then is a feasible alternative platform and are Java-based.
technology for developing cross-platform installations?
What about Java? Its “write once, run everywhere” makes Most application servers expose Java configuration APIs.
it an ideal technology for targeting platforms such as UNIX. This allows for a seamless integration strategy that can
Java transforms the installation development into a more ultimately give users an out-of-the-box delivery solution. The
robust environment. interesting point here is that “write once, run everywhere”
becomes an attainable reality.
To appreciate the power of Java to extend an installation,
consider an example. The following is a simple Java class As an alternative to shell scripting, however, Java requires
that computes a time stamp and stores the result in a custom additional help before it can be considered as a logical
InstallAnywhere variable. successor. A reliable, user-friendly Windows-like setup
experience would be a great thing to have for UNIX
import com.zerog.ia.api.pub.*; developers. The ability to target UNIX and Windows
import java.util.*; platforms with a Java-based application install would be
even better, especially given how difficult it is to accomplish
public class GenerateTimeStamp extends this with shell scripting.
CustomCodeAction
{ For the developer with lots of experience with tar-balls and
public void install(InstallerProxy ip) cryptic script commands, any alternative needs to offer
{ clear and compelling benefits. The balance of this paper
// compute time stamp with Java... will offer just such an argument, based on the capabilities
String now = new Date( ).toString( ); of InstallAnywhere from Flexera Software.
// ...and set a custom variable to the value
ip.setVariable(“$NOW$”, now);
}
4 Flexera Software: InstallAnywhere White Paper Series
5. Shell vs. Java: Overcoming t he Challenges of Shell Script ing for UNIX Installat ions
Building Multi-Platform Installations with graphical interface, which allows developers to manage
InstallAnywhere all aspects of their installer project. All the features of
InstallAnywhere from Flexera Software provides an out-of- InstallAnywhere are available in this easy to use integrated
the-box Java-based installation solution. Developing cross- development environment.
platform installations with Java and InstallAnywhere’s multi-
platform installation IDE provides many benefits, including Advanced Designer Tasks
making it easy to: The Advanced Designer is divided into tasks that are
represented by tabs found along the left-hand side of the
• Tightly integrate installation development into the window. Each of the following tabs represents tasks and
development department settings specific to each installation project:
• Conceal code so that proprietary implementations are
kept safe • Project: Settings related to your specific project.
• Create installations that can be extended and These include general settings, file settings, and
developed using Java technologies localization settings.
• Installer UI: Set the look and feel for the installer by
Learn More about InstallAnywhere adding background images, billboards, and other
If you wish to learn more about the capabilities of graphical components.
InstallAnywhere, please visit the Flexera Software Web • Organization: Manages Install Sets, Features,
site at www.flexerasoftware.com/installanywhere. Components, and Merge Modules.
• Pre-Install: An ordered sequence of panels and
actions that occur before file installation.
With InstallAnywhere, developers can build installers for all • Install: Manage File installation tree and install
supported platforms from a single project. InstallAnywhere’s time actions.
capabilities (highlighted below) make it the ideal tool for • Post-Install: An ordered sequence of panels and actions
quickly developing industrial-strength installers. that occur after file installation.
• Pre-Uninstall: An ordered sequence of panels and
Rapid Prototyping with the Project Wizard actions that occur before file uninstallation.
Developers can build their first installer in less than five • Post-Uninstall: An ordered sequence of panels and
minutes with InstallAnywhere’s six-step Project Wizard. This actions that occur after file uninstallation.
intuitive design tool also sets the class path and finds the • Build: Manage build settings, including bundling of a
main class for a Java application automatically. When you Java Virtual Machine.
complete the Project Wizard steps, the result is an installer
project that targets a number of major operating systems. Each Advanced Designer task contains sub-tabs that offer
greater fine-tuning of InstallAnywhere’s features.
This working prototype is inline with management demands
that prototypes be produced early in the development
process. The development process demands that the
installation be integrated early so that testing can be
performed in a more realistic environment.
Action-Based Installers
Actions, which represent the operations the installer
performs, are the fundamental elements of InstallAnywhere
installers. InstallAnywhere supports an extensible action
architecture that provides the ability to perform additional
operations during installation, such as installing files
and folders, creating shortcuts, executing custom code,
or extracting the contents of a compressed file. Some
This, for the most part, means that the installation should frequently used actions include Install File, Create Folder,
have the capability to run in graphical mode and have a Create Alias, Link, Shortcut, Execute Target File, Execute
consistent look and feel regardless of the operating system. Command, and Expand Archive.
InstallAnywhere contains many tools that make rapid
prototyping a reality.
Customizing Projects in the Advanced Designer
The InstallAnywhere Advanced Designer has an intuitive,
Flexera Software: InstallAnywhere White Paper Series 5
6. Shell vs. Java: Overcoming t he Challenges of Shell Script ing for UNIX Installat ions
Components, Features, and Install Sets
Components, features, and install sets are organizational
concepts in the InstallAnywhere IDE. They allow installer
developers to add structure to the files and actions their
installers employ and determine what feature choices end
users have during the install.
Components are an organization unit installer developers Build and Try
can use to group files and actions; however, components InstallAnywhere users can quickly examine the results of
are internal organization units that are never shown to the their project changes by building installers from the project
end user. Conversely, features can group one or more and running the resulting installer with the click of a button.
components, files, and actions into combinations from In addition, InstallAnywhere includes several built in features
which the installer end users can choose. And groups of for previewing and debugging your installers and installer
features can be combined into install sets—a convention panels.
that allows end users to choose options like Minimal,
Typical, or Full Install.
While developers working with relatively simple installers
can rely on InstallAnywhere to generate basic components,
features, and install sets automatically, more advanced
developers take control of components, features, and install
sets to organize their installer resources in the Get User Input Panels
Advanced Designer. InstallAnywhere provides many panels for displaying
information to the user and collecting user information.
Moreover, InstallAnywhere includes the Get User Input -
Simple and Get User Input - Advanced panel actions. These
actions enable you to build custom panels by inserting text-
display and user-input controls into the Get User Input panel.
InstallAnywhere provides the architecture to capture the
user input from these panels to InstallAnywhere variables.
For requirements that exceed the Get User Input panel’s
features, you can code custom panels that share the
dimensions, images, navigation buttons, and other elements
used by built-in panels.
Rules and Variables
InstallAnywhere keeps track of dynamic values using
variables. Almost every dynamic value in InstallAnywhere is
represented by an InstallAnywhere variable. Variables may
be modified or accessed in order to affect the design or
output of an installer; they can also be modified during the
progress of the installer in order to change the
installer’s behavior.
InstallAnywhere uses variable-based Boolean rules to control
most aspects of installer behavior. Rules can be applied
to any action within the InstallAnywhere installer, as well
as to organizational units such as Install Sets, Features, LaunchAnywhere Launchers
and Components. Rules commonly direct the execution Create launchers that look and behave like the operating
of platform-specific actions on the target system, but they system your installation is running on. Your end users are
may check other conditions such as system architecture, file accustomed to a particular behavior. Windows users are
and folder attributes, and user-chosen language. Rules can quite familiar with the ubiquitous installer.exe concept.
also be used to compare the values of two InstallAnywhere InstallAnywhere LaunchAnywhere launchers extend that
variables, match a regular expression, or to execute a philosophy to all of its supported platforms.
custom coded rule. (InstallAnywhere Enterprise edition also
includes rules specific to System i (i5/OS).)
6 Flexera Software: InstallAnywhere White Paper Series
7. Shell vs. Java: Overcoming t he Challenges of Shell Script ing for UNIX Installat ions
A LaunchAnywhere launcher is a unique executable custom panels, custom consoles, and custom rules that
that launches a Java application on Windows, UNIX interact with and extend InstallAnywhere functionality.
(including Solaris, Linux, HP-UX, AIX, BSD, and others),
and Mac OS X platforms. On Windows, LaunchAnywhere Custom Dialog Boxes
technology creates double-clickable icons that invoke a InstallAnywhere provides many built-in dialog boxes for
Java application. For Mac OS X, it generates application displaying information to the user and collecting user
bundles. On UNIX platforms, end users type a simple information. Moreover, InstallAnywhere’s Get User Input
command to launch the application. panels enable you to build up custom dialog boxes by
inserting text-display and user-input components into a
LaunchAnywhere technology sets the classpath, redirects standard dialog box frame. For more sophisticated user-
stdout and stderr, passes in system properties and command- interface requirements, you can create custom panels that
line parameters, and performs other configuration functions. share the dimensions, images, navigation buttons, and
For graphical users a Web-based applet installation is also other elements used by built-in panels.
available. This further simplifies the distribution model of
your product. Shell Revisited
As mentioned earlier, shell scripting was intended for system
administration. To that end, some scripts are worth keeping.
InstallAnywhere facilitates launching existing shell scripts
(even the ones that take command line arguments). Since
most shell scripts are processed through /bin/sh (the first
line in a shell script, the shebang—i.e., #!/bin/sh—tells you
who is going to process the script), shell scripts can also be
launched through Runtime.exec. This command returns a
Process object, which in turn can return the exit value from
the sh process.
Powered by Java
InstallAnywhere is powered by Java. Java is a full-fledged,
object-oriented language. Its cross-platform capabilities
make it the perfect engine for InstallAnywhere.
Customizing and Extending InstallAnywhere
Advanced installer developers or development teams that Besides the common tasks supplied by InstallAnywhere, you
need to build complex installers can take advantage of a might want to add custom tasks that do not fit the ordinary.
host of enterprise-strength features: Since InstallAnywhere is powered by Java, you can extend
its functionality in a number of ways.
• Merge Modules: Essentially installer sub-projects that
can be created independently of one another and • Create your own custom Java plug-ins: InstallAnywhere
later merged together, merge module are reusable enables you to create custom actions written in Java.
collections of installation functionality. A Merge You can refer to your custom code in a single project,
Module is just like an installer, complete with features, or package it as an InstallAnywhere plug-in that can be
components, panels, actions, and files. However, a used in multiple projects.
Merge Module cannot be installed without being part • Use InstallAnywhere services: In addition to being able
of an InstallAnywhere project; instead, use Merge to call Java code from your custom code actions, you
Modules to include the functionality of one installer can call methods from InstallAnywhere services. These
within another installer. services extend Java functionality with underlying
• Support for Deployment to Application Servers and native code. Example services are the System Utility
Database Servers: InstallAnywhere supports installers Service, for working with environment variables
that target application servers (such as Geronimo, and system startup commands; the Security Service,
JBoss, Resin, Sun Application Server, Tomcat, for working with users and groups; and the Win32
WebLogic, and WebSphere) and database servers and Win32 Registry Services, for programmatically
(such as MySQL, Oracle, MS SQL Server, and DB2). manipulating Windows services and the Windows
• Team Development Features: InstallAnywhere supports registry.
team-based installer development with source paths. • Java Native Interface (JNI): Although Java is a powerful
Source paths allow developers to reference file language, some operating system APIs have not been
resources using variable paths instead of absolute mapped into the core language. JNI is intended to
paths. This allows team members to share a project file breach that gap. If necessary, you can implement
even when file resources are located at different paths custom functionality in a native library (a Windows
on their development systems. DLL or UNIX shared library, for example) and call the
• Custom Code: With InstallAnywhere’s API, developers native code from an InstallAnywhere custom code
can write custom Java code that runs in the same action.
Java VM as InstallAnywhere, creating custom actions,
Flexera Software: InstallAnywhere White Paper Series 7
8. Shell vs. Java: Overcoming t he Challenges of Shell Script ing for UNIX Installat ions
Custom code development in Java is enhanced further when
you consider the following:
• XML parsing: Java provides out-of-the-box XML parsing
through standard parsing technologies such as DOM
or SAX.
• Use any Java IDE: When writing InstallAnywhere
custom code, you can use your own Java IDE.
• Unit testing with JUnit: JUnit is a popular regression-
testing framework, and InstallAnywhere provides
classes for integrating with JUnit.
• Coding standards: Create or extend existing common
coding standards to accommodate the development of
InstallAnywhere custom code.
Summary
Though shell scripting is being criticized for its installation
development capabilities, this white paper considers
shell scripting a sound technology for UNIX system
administration. But for software development, shell scripts
lack the robustness needed to create platform independent
installations. Java as a technology has matured to the point
that creating Java-based installations has become the
preferred method. Furthermore, technologies such as JDBC,
CORBA, JNDI, and RMI, make Java-based installations the
better candidate for targeting platforms such as UNIX.
Begin a Free Evaluation of InstallAnywhere
You can download a free trial version of
InstallAnywhere from the Flexera Software Web site
at: www.flexerasoftware.com/installanywhere/eval.
Want to learn more best practices for building quality
installations? Join an InstallAnywhere training class – visit
www.flexerasoftware.com/training for available classes.
8 Flexera Software: InstallAnywhere White Paper Series