System/76 and Ubuntu
A Linux Development Project
  Table of Contents  v-19.00.00 - sys76p01 
  Introduction
  Project Task List
  Project Task Notes
  Project Review
  Project Review at 30 Days
  Project Review at 60 Days
  System Environment
  Hardware
  USB Attached Storage
  Connecting a 2nd Display
  Operating System & Software
  Office Products
  Spreadsheets & CSV Files
  Presentation Materials
  Desktop User Interface
  Change Desktop Background
  Create a Desktop Shortcut
  Java Developer's Kit (JDK)
  Java Developer's Kit, Install
  Java Developer's Kit, Compile
  Java Developer's Kit, Execute
  Local Server, Apache Tomcat
  COBOL Programming
  COBOL, Installation Verification Program
  Compile COBOL, Sequential File I/O
  Execute COBOL, Sequential File I/O
  Compile Multiple Programs
  Execute COBOL, Multiple Job Steps
  COBOL Anomalies
  GnuCOBOL 2.0, Technical Notes
  Text Editor
  Sort Program
  Documents, SimoTime Technologies
  Web Browser
  Firefox
  Chrome
  File Transfer Protocol (FTP)
  E-Mail
  Network Router, WiFi & Internet
  Network Router
  Network WiFi
  Network Internet Access
  SIMOTIME Utility Programs
  Development Folders
  SIMOLYZE, Source Code Analysis
  Application Environment
  Development
  Quick Tips
  Keyboard Shortcut Keys
  Change Location or Size
  ASCII/Text, Windows to Linux
  Linux Commands
  copy or cp
  list or ls
  mount
  Project Contact & Travel Logistics
  Document Author & Owner
  Hotels and Restaurants
  Chronicle of Events
  2017/05/12 - TAG
  2017/05/11 - Update SIMOLYZE Scripts
  2017/05/10 - Create SIMOLYZE Scripts
  2017/05/09 - Create Group Builds
  2017/05/08 - A Multiple Step Job
  2017/05/05 - Apache Tomcat
  2017/05/04 - Application Testing
  2017/05/03 - Development & Unit Test
  2017/05/02 - Reorganize Sandbox
  2017/05/01 - Boot from External Media
  2017/04/28 - New Desktop Shortcuts
  2017/04/27 - User Backup Process
  2017/04/26 - Connect a 2nd Display
  2017/04/25 - Modify & Promote (cont)
  2017/04/24 - Modify & Promote to Web
  2017/04/21 - Prepare Document Tasks
  2017/04/20 - Bash Research & Learning
  2017/04/19 - Bash Research & Learning
  2017/04/18 - Hex-Dump and GEDIT
  2017/04/17 - Updated User Desktop
  2017/04/14 - COBOL Compile/Execute
  2017/04/13 - Refresh User Members
  2017/04/12 - Self-Study, Shell Scripts
  2017/04/11 - COBOL Compile/Execute
  2017/04/10 - Install GnuCOBOL
  2017/04/07 - Research for COBOL
  2017/04/06 - Research for LibreOffice
  2017/04/05 - Customize the Desktop
  2017/04/04 - Java, Compile & Execute
  2017/04/03 - Transfer User Members
  2017/04/02 - Download Java (JDK)
  2017/03/30 - Download Google Chrome
  2017/03/28 - Unpack & Configure
  2017/03/27 - System Delivery
  2017/03/23 - System Build & Ship
  2017/03/13 - System Order & Confirm
  2017/02/22 - Request a Quote
  Technical Details
  System Environments
  Directory Structure
  The / root Directory
  The /bin/ Directory
  The /opt/ Directory
  The /usr/ Directory
  WIP
  Summary
  Software Agreement and Disclaimer
  Downloads and Links
  Current Server or Internet Access
  Internet Access Required
  Glossary of Terms
  Comments or Feedback
  Company Overview
The SimoTime Home Page 

Table of Contents Previous Section Next Section Introduction

The objective of this document is to quantify the effort and document the tasks required to provide a development environment on a Linux System for a developer that is familiar with Microsoft Windows and IBM Mainframe Systems.

Our goal is to deploy a segment of a business application that is currently running on an IBM Mainframe System onto a Linux System. The business application is a suite of batch jobs running in an EBCDIC-encoded environment. The current batch jobs are scripted and executed using Mainframe JCL (or Job Control Language). The application programs are written in COBOL and compiled using IBM Enterprise COBOL. The user data is stored in EBCDIC-encoded, non-relational data structures. The Linux System will be an ASCII-encoded environment and the batch jobs will be scripted and executed using Bash Shell Scripts. The COBOL programs will be compiled using GnuCOBOL. The user data will be stored in ASCII-encoded, non-relational data structures.

The SIMOTIME Team wanted to acquire or create a Linux System to do the work necessary to meet our business requirements. We wanted to deploy (compile and execute) a suite of 800 COBOL programs and 25 Java programs to a Linux System. This deployment would include over 20 non-relational data structures (flat files and VSAM Data Sets). An additional 40-50 non-relational data structures will be created during the execution of the programs.

Prior to 2016 over ninety-five percent of our customer base used an IBM Mainframe System or a Windows System. We had some customers running on UNIX and IBM I-series systems and Linux was under two percent. During 2016 our request for Linux support passed the ten percent level and we decided to invest in a planned approach for Linux support.

We did not want to spend a lot of time preparing a Linux System and all the drivers or sub-systems required. We wanted to transfer our user components to the new system and be able to maintain and execute our business applications as quickly as possible.

After some research and discussion we decided to go with System/76 and we were faced with our next decision point. We needed to decide on a hardware configuration. We wanted the portability of a laptop with the capability of a desktop or server. We selected the System/76 Serval WS with Ubuntu 14.04.5. For batch Job processing we created Bash Script Files to replace the Mainframe JCL Members.

We wanted a 17 inch screen and flexibility with expansion slots. We wanted the latest Intel processor with a terabyte of SSD Storage split across two 512 GB units. After the first week of using the System/76 Serval WS we were very happy with our choice.

This document will be used as a single area to capture and document items as they are identified and implemented during the early stages of this effort. We plan to update this document throughout the life of this project.

Explore the SIMOTIME Web Site for additional information about the technologies and services that are available.


We have made a significant effort to ensure the documents and software technologies are correct and accurate. We reserve the right to make changes without notice at any time. The function delivered in this version is based upon the enhancement requests from a specific group of users. The intent is to provide changes as the need arises and in a timeframe that is dependent upon the availability of resources.

Copyright © 1987-2019
SimoTime Technologies and Services
All Rights Reserved

Table of Contents Previous Section Next Section Project Task List

The following is a list of items that must be accomplished within the scope of the project.

1. Acquire the Hardware to be used as the Linux Development System
2. Install and configure the Operating System
3. Install and Configure the Office Software
4. Install and Configure Browser Software
5. Install and Configure Java
6. Transfer SimoTime Components
7. Install and Configure Apache Tomcat
8. Create a Desktop Environment
9. Compile and Execute COBOL Programs
10. WIP

Table of Contents Previous Section Next Section Project Task Notes

The following is intended to provide a a few quick comments as each task is performed. Additional detail may be provided in the following sections of this document.

1. Acquire the Hardware to be used as the Linux Development System.
1.1. Our Windows development system of choice is a DELL Latitude E6520 with 8GB RAM and a 128GB SSD and a 300GB HDD.
1.2. We decided to purchase a heavy-duty laptop that could double as a desktop system. We selected System/76 as the vendor. Our Linux development system of choice is a System/76 (Serval WS) with 16GB RAM and two 512GB SSD's.
1.2.1. We invested in the 17" monitor and are very happy with the size and clarity.
1.2.2. We invested in the faster SSD Storage because many of our applications are I/O oriented. This had an immediate and positive affect on performance during our transfer of application members and data files.
1.2.3. The USB 3.1 Expansion slot allowed us to attach an external SSD and transfer application members and data files. With this connection the transfer of 10 GB's took 3 minutes. Previous transfers of 10 GB's on other systems took 10-12 minutes.
1.3. Additional information about the System/76 Hardware and the Ubuntu Operating System is provided at this link for the System/76 Web Site.
2. Install and Configure the Operating System.
2.1. Our Windows Operating System is Windows/7 Ultimate with Microsoft Office 2010. Windows will no longer be our only development choice. Since we have a large number of Windows Users we plan to continue using Windows as one of multiple development choices.
Note: During 2016 we made numerous attempts to switch from Windows/7 to Windows/10. We were unable to get Windows/10 to work consistently and deliver the business functions we were using with Windows/7 and Microsoft Office.
2.2. Our Linux Operating System is Ubuntu 16.04.1 LTS (64-bit). This is what was installed by System/76. The first time we switched the machine to "ON" we were asked a couple of questions about a choice of language and a validation of our time zone. Today, we turn the machine on and expect it to work.
3. Install and Configure the Office Software.
3.1. The System/76 Serval came with LibreOffice installed. Our first item of interest was LibreOffice Calc. Our second item of interest was LibreOffice Impress.
3.2. Our use of spread sheets is fairly simple. All our spread sheet members were copied to the Linux system and they worked as expected. There are some differences in the user interface. After approximately one hour of use we were comfortable with the interface and were focused on the task at hand.
3.3. At SIMOTIME our presentation material has a primary module or slide set with hyper links to documents that may be located on the local system, a server or the Internet.
3.3.1. Impress was able to access the Microsoft PowerPoint member (pptx format). We were able to hyper link from Impress to HTML documents via Firefox.
3.3.2. We were able to easily navigate through the presentation. We were distracted by the jerky motion of the slide transition when an esoteric slide transition mode was used. For example, the "cube" transition was a very jerky and twisting like transition vs. a fluid rotation of a cube. Our solution was to switch to a simpler slide transition.
4. Install and Configure Browser Software.
4.1. The SIMOTIME Library of over 500 documents may be accessed from our web site. We test/view our website from a variety of Windows Systems using Microsoft Edge, Internet Explorer, Chrome and Firefox.
4.2. We use an Apple iPad to test/review our web site using Solaris.
4.3. For the Linux environment we plan to use Chrome and Firefox. The System/76 Serval came with Firefox installed. We downloaded google-chrome.
Note: The standard download did not work. After a little research we discovered this was a known issue on Ubuntu. The suggested work around was to install in "command mode" from a terminal.
5. Install and Configure Java
5.1. We are very familiar with downloading and installing Java on a Windows System. On the System/76 with Ubuntu the process is very similar. It took five (5) minutes to download Java with the elapsed time being determined by the Internet connection speed. It took another ten (10) minutes to install Java. We immediately started to compile and test a couple of Java programs.
5.2. Additional information is provided in the Java Developer's Kit (JDK) section of this document.
6. Transfer SIMOTIME Components.
6.1. We used an existing process (or job) on the Windows System to backup the SIMOTIME directories onto a Samsung SSD, USB attached device. The backup process took approximately 18 minutes. We removed the Samsung SSD from the Windows System.
6.2. We plugged the Samsung SSD into the USB 3.1 port on the System/76 Serval Laptop using the Type C connector. Within a couple of seconds an icon appeared on the Launcher.
6.3. Since we did not have an automated restore procedure in place for the SIMOTIME folders on a Linux System we manually copied the directories to the Linux System using the graphical Interface with "Drag-and-Drop". This process took approximately three (3) minutes.
6.4. Note: The three (3) minute restore of 9.9 GB's of data and program members using removable media or networked storage was an improvement over previous restore efforts on other systems.
7. Install and Configure Apache Tomcat.
7.1. WIP
8. Create a Desktop Environment.
8.1. We changed the desktop background to display the SIMOTIME logo.
8.2. We started adding user-defined shortcuts with user-defined icons to the desktop.
9. Compile and Execute COBOL Programs.
9.1. Test with a simple program
9.2. Test with File I/O
9.3. Configure and Test CALL function
9.4. Configure for Copy File Usage
10. WIP
10.1. WIP

Table of Contents Previous Section Next Section Project Review

During the first 30 days of this project we used the System/76 Serval Laptop with Ubuntu 16.04 as a stand-alone laptop without altering its base configuration. This was part of the original plan. We wanted to accomplish the following.

1. Observe and learn how the laptop would perform on it own merits.
2. How long it would take us to adapt to the new environment.

Once we accomplished these two objectives we wanted to start using the System/76 Laptop for some of our mainstream work. We moved the System/76 Laptop to a new location and attached a second display via the HDMI connection.

Table of Contents Previous Section Next Section Project Review at 30 Days

After we powered up the System/76 Laptop for the first time we were impressed with the clarity of the 17" built in display. The 17" display is a minimum requirement in our environment. We typically work in one window while referencing information in a second window in a side-by-side manner without having to flip-flop between the two windows. Also, we may have 5-10 other windows open and readily accessible with a single click of a mouse button. All of this worked well for us in the new environment.

For this project and for our ongoing business requirements we need to transfer, convert and compare large amounts of data as it moves between systems and/or within a single system. The System/76 came with a USB 3.1, Type C Connection. This connection and the use of internal SSD storage and removable SSD storage exceeded our performance expectations. What takes 8-10 minutes on our other systems is now running in 3 minutes.

For our workshop sessions and other presentations we use a few PowerPoint presentations with hyper links to HTML documents. LibreOffice and Impress are able to access a PowerPoint presentation (xlsx) member. After reviewing a couple of presentations we made a couple of minor adjustments to change the mode of screen transition. After these changes Impress met our business requirements.

Note:  LibreOffice was installed by System/76. It worked by simply clicking on the icon located on the Launcher.

We have a few Java programs that are critical for our data conversion suite of programs. We were able to download and install the Java Developer's Kit (JDK) in less than an hour. We were able to transfer, compile and execute one of our complexed data conversion programs in less than an hour. This met our business requirements and was almost "too easy".

We have a suite of COBOL programs (over 300) that we needed to compile and execute. For this project we decided to use GnuCOBOL. The download took over 25 minutes (our primary Internet connection was down and we were using a slower backup connection). Once the download completed we simply followed the prompts to install. Within an hour we were able to compile and execute six COBOL programs from a Terminal. We created a Bash Script File with a "for" loop to compile all 300 programs. The first execution of the Bash Script ran in less than 30 seconds and 294 of 300 programs compiled successfully. We corrected the COBOL source to use proper and concise syntax and added another directory for the COBOL Copy Files. The second execution of the Bash Script ran in less than 30 seconds and 300 of 300 programs compiled successfully.

The SimoTime Web Site contains over 500 documents that are provided in an HTML format and may be viewed using a Web Browser of choice. The HTML documents are generated by a SimoTime HTML Generator programs (HTMGENER along with a few called programs). HTMGENER will read an ASCII/Text file containing user specifications and create HTML Documents.

Rather than limit ourselves to just the HTMGENER Programs we decided to transfer the entire Library of Utility Programs (over 50 programs) along with the data file components for the HTMGENER program. After the transfer was completed we were able to compile and execute the HTMGENER programs. After generating, changing and regenerating a few documents we concluded we could meet our business requirements.

Once we had the ability to generate, change and regenerate HTML documents we needed to put a process in place to refresh our Web Server with the new HTML documents. We currently use FTP for this process and decided to continue to use FTP in the Linux environment.

From a Terminal we executed an interactive FTP Client session and transferred a few HTML Documents (or Web Pages) from the System/76 Laptop to our Internet Web Server. Next, we created a Bash Script File that simplifies the transfer process and will allow us to automate the process in the very near future.

Since we now have the ability to manage our Web Site Documents from the System/76 Laptop we are planning on moving this function from our Windows System to the new Linux (Ubuntu) System.

At SimoTime we track the usage of our web site. The SimoTime Web Site processes over 1.25 million page requests from 450,000 user requests per year (as of May, 2017). The request come from a variety of Users, Operating Systems and Web Browsers. SimoTime's intent is to maintain a consistency of presentation for this variety of users.

Chrome is in first place at 55%. Mozilla/Firefox is in second place 40%. Safari is in third place at 4%. Microsoft Internet Explorer is in fourth place at just over 1%. The System/76 came with Firefox installed and we continue to use it as the default browser. We downloaded and installed the Chrome browser and use it to monitor the consistency of presentation for the SimoTime Web site.

To summarize the first 30 days we are quite happy with the results. The System/76 Serval Laptop with Ubuntu 16.04 has delivered on every business requirement. We expected the new system to perform better that our currently installed, older systems. We were pleasantly surprised when the results exceeded our expectations. Additional details are provided in the following sections of this document.

Table of Contents Previous Section Next Section Project Review at 60 Days

WIP

Table of Contents Previous Section Next Section System Environment

This section will capture items that are related to "System-oriented" functions. This section will include the hardware and operating system. The discussion will continue with "Utilitarian-programs" such as a Text Editor, Program Languages, Office-oriented products and more.

Table of Contents Previous Section Next Section Hardware

Our Windows development system of choice is a DELL Latitude E6520 with 8GB RAM and a 128GB SSD and a 300GB HDD.

Our Linux development system of choice is a System/76 (Serval WS). The following is an overview of the Linux system.

Operating System - Ubuntu 16.04.2 LTS (64-bit)
Display - 17.3" Matte HiDPI 4K HiDPI Matte IPS LED Backlit Display, Resolution 3840 by 2160
Graphics - 6 GB GTX 1060 with 1280 CUDA Cores
Processor - 4.5 GHz i7-7700K (4.2 up to 4.5 GHz - 8 MB Cache - 4 Cores - 8 Threads)
Memory - 16 GB Dual Channel DDR4 at 2400MHz (2 of 8 GB)
Storage - Primary, 512 GB NVMe PCIe M.2 SSD - Sequential Read: 3500 MM/s, Write 2100 MB/s
Storage - Second, 512 GB NVMe PCIe M.2 SSD - Sequential Read: 3500 MM/s, Write 2100 MB/s
Keyboard - United States Backlit
Networking - WiFi up to 867 Mbps + Bluetooth
Expansion - 3 of USB 3.0 Type-A, 1 of USB 3.1 Type-C, SD Card Reader

Table of Contents Previous Section Next Section USB Attached Storage

To transfer the SIMOTIME Application members we used a Samsung T3 SSD with 500GB's of storage. The Samsung Storage device was attached via the USB 3.1, Type C Connection.

The ability to transfer data files that exceeded 4GB in size was a requirement. In order to transfer data files of this size between Windows and Linux we decided to use the "exFAT" File System to format the external storage devices.

In order to "mount" and access the drives we needed to install the "exFAT" support on the Ubuntu (Linux) System.

1. Open a terminal (Ctrl+Alt+T is a keyboard shortcut in Ubuntu or Right-Mouse-Button in background area of desktop for a pop-up box) and use the following command to enable the universe repository because this repo contains your packages.
1.1. $ sudo add-apt-repository universe
2. Use the following command to update the repository information.
2.1. $ sudo apt update
3. Use the following command to install the required packages.
3.1. $ sudo apt install exfat-fuse exfat-utils

Once you have installed these packages, go to file manager and click on the USB disk to mount it.

Table of Contents Previous Section Next Section Connecting a 2nd Display

We have been using the System/76 Serval Laptop as a stand-alone laptop without altering its base configuration. This was part of the original plan since we wanted to observe and learn how the laptop would perform on it own merits and how long would it take us to adapt to the new environment. Since we met these two objectives we decided to start using the System for some of our mainstream work. We moved it to a new location and attached a second display via the HDMI connection.

Since the built-in display had a resolution of 3840 by 2160 and our 2nd display (32" diagonal screen) had a resolution of 1920 by 1080 the screens were automatically reset to use the lower resolution. The 2nd display was configured as an extended display instead of a mirrored display.

The 2nd display was located to the left of the System/76 Laptop and we were a bit distracted when dragging a window between the built-in laptop display and the 2nd display. This required dragging the window over the vertical Launcher bar that is displayed on the left side of the built-in display. Also, there seemed to be a slight hesitation in the movement as we hit and crossed over the Launcher bar. We decided to move the Launcher bar to the bottom of the built-in display and this solved the problem.

Note:  We are thinking about replacing the 2nd display with a 4K Ultra HD TV that has a 40" (or larger) Screen and 2160p resolution.

Table of Contents Previous Section Next Section Operating System & Software

Our Windows Operating System is Windows/7 Ultimate with Microsoft Office 2010. Windows will no longer be our only development choice. Since we have a large number of Windows Users we plan to continue using Windows as one of multiple development choices.

Note: During 2016 we made numerous attempts to switch from Windows/7 to Windows/10. We were unable to get Windows/10 to work consistently and deliver the business functions we were using under Windows/7.

Ubuntu is a complete desktop Linux operating system, freely available with both community and professional support. This is our Linux operating system of choice. We are currently running Ubuntu 16.04.1 LTS (64-bit). Ubuntu 14.04.5 was originally installed by System/76.

Table of Contents Previous Section Next Section Office Products

The presentation materials for SIMOTIME are heavily dependent on Slide Presentations (PowerPoint for Windows) with hyper-links to HTML documents. This approach works well with Windows/7 and Microsoft Office. We spent a number of hours on the phone with Microsoft support and were unable to get this to work with Windows/10 and Microsoft Office.

The System/76 Serval came with LibreOffice installed. In our initial review we wanted to see how our presentation materials and spreadsheet usage would display and behave with LibreOffice Impress and LibreOffice Calc.

Table of Contents Previous Section Next Section Spreadsheets & CSV Files

At SIMOTIME we use simple spread sheets to manage and analyze financial information. A second use of spread sheets is for list management.

A specialized spread sheet usage is for document creation and management. This type of spread sheet contains two (2) columns. The first column is an action keyword and the second column is a content data string. This type of spread sheet is stored as an ASCII/Text file in a Comma-Separated-Values (CSV) format. The CSV file is then used to generate HTML documents.

All of our spread sheets were copied from the Windows System to the Linux System. We used LibreOffice Calc and produced the expected results without having to modify the source members.

Table of Contents Previous Section Next Section Presentation Materials

At SIMOTIME our presentation material has a primary module or slide set with hyper-links to HTML documents. The presentation software must have the capability to hyper-link to an HTML document that is presented using standard browser software such as Firefox or Chrome. The presentation software must be able to display a slide and concurrently display the HTML document. This capability must be a repeatable process from within a single presentation.

We selected a presentation that was created using Microsoft PowerPoint and contained a number of hyperlinks to HTML documents. We noticed the slide show started in "full screen" mode. Doing a slide show in a window vs. full screen is something we do quite often. Opening a slide show in a window was not readily apparent and our number 1 priority was to test the ability to consistently do hyper-links from within Impress. We decided to proceed in full screen mode.

Impress was able to access the Microsoft PowerPoint member (pptx format). We were able to hyper-link from Impress to HTML documents via Firefox. We were able to hyper-link to an HTML document, review the content and close or exit the document and return to the slide show. Also, we could leave the HTML document in an active or open status and simple focus or return to the slide show.

We were able to easily navigate through the presentation. We could easily display the next slide or the previous slide or select any slide within the presentation. However, we were distracted by the jerky motion of the slide transition when an esoteric slide transition mode was used. For example, the "cube" transition was a very jerky and twisting like transition vs. a fluid rotation of a cube. Our solution was to switch to a simpler slide transition.

Table of Contents Previous Section Next Section Desktop User Interface

The System/76 came with Ubuntu and the Unity desktop environment installed by default. A desktop environment is responsible for the look and feel of the graphical desktop, and typically includes many of the key programs and reference materials that get used on a daily basis.

Opinions about With Graphical User Interfaces (GUI's) or Desktop Environments appear to be at opposites ends of the spectrum. A GUI or Desktop is either well liked or it is very disliked.

We were most interested in the customization capabilities of Unity. We wanted a desktop environment that would have the look-and-feel of a SIMOTIME desktop with a focus on the daily tasks performed by our developers, support personnel and business users.

We explored the options for changing the background and adding shortcuts using SIMOTIME icons. Adapting to the Unity Desktop and Launcher required approximately 2-3 hours of research and experimentation.

At the beginning of this effort we became a little frustrated by our lack of knowledge (and subsequent ability to quickly do things we wanted to do) but this changed as our knowledge increased. We were able to accomplish our goal and are happy with the results. We will move forward with our customized "Unity" desktop environment.

Table of Contents Previous Section Next Section Change Desktop Background

We wanted to replace the current background image with an image of the SIMOTIME logo displayed in the center of the screen. We did this by selecting (or double-clicking) on the "Files" icon located on the Launcher bar at the left side of the screen. This action displayed a window with two, side-by-side windows panes. From the left window pane we selected the "Computer" item. This action caused the content of the right pane to change.

From the right window pane we navigated through the folders to the /usr/share/applications folder. As we navigated through each folder the content of the right window pane would be updated/changed. Once we were in the /usr/share/applications folder we selected the "Appearances" icon and were presented with a screen that would allow us to change the desktop background to what we wanted.

Table of Contents Previous Section Next Section Create a Desktop Shortcut

We wanted to understand the process for adding a user-defined shortcut with a user-defined icon to the desktop. To do this our research indicated we would need to create a shortcutname.desktop file to define the shortcut properties.

1. Open a Terminal
1.1. From a white space area on the desktop use the right-mouse button and select the "Open Terminal" option.
2. Navigate to the /usr/share/applications folder using the "cd" command.
2.1. cd /usr/share/applications
3. Create a file-status.desktop file in the /usr/share/applications folder using the "touch" command.
3.1. Sudo touch stdt_vsmfsk01.desktop
4. Use "gedit" to update the empty file with the records shown below
4.1. sudo gedit stdt_vsmfsk01.desktop

 

The following shows the content of the file-status.desktop file that is located in the /usr/share/applications folder.

[Desktop Entry]
Version=1.0
Name=File Status Codes
Comment=Link to vsmfsk01.htm
Exec=/usr/bin/firefox /home/larry/SIMOSY76/SIMOWEB1/vsmfsk01.htm
Icon=/home/larry/SIMOSY76/DEVOTEK1/CORE/IMGROUP1/sticon64.ico
Terminal=false
Type=Application
Categories=Application;

Before placing the shortcut on the desktop we wanted to see if it was going to work as we expected. We did this by selecting (or double-clicking) the "Files" icon located on the Launcher bar at the left side of the screen. This action displayed a window with two, side-by-side windows panes. From the left window pane we selected the "Computer" item. This action will cause the content of the right pane to change.

From the right window pane we navigated to the /usr/share/applications folder. We were able to scroll through the content of this folder and find the "File-Status" file. By simply double-clicking on the item we were able to execute firefox and display the "vsmfsk01.htm" page with the file status codes.

After validating that everything worked as expected we simply right-click on the "File-Status" file and selected "copy". We moved the cursor to a white area on the desktop and use the right-mouse button to "paste" the item onto the desktop. We double clicked on the newly copied desktop item and it executed firefox and displayed the "vsmfsk01.htm" page with the file status codes.

Table of Contents Previous Section Next Section Java Developer's Kit (JDK)

We wanted to test the java installation using more than a simple "Hello World" type of program. SIMOTIME has a library of Java programs. We selected the following two (2) programs for this test case.

The following programs defines a table that is used to translate between EBCDIC and ASCII character sets.

Link to Internet   Link to Server   Explore How to define and display an array containing hexadecimal values to the standard output device or write a hex-dump array to a file. The array includes the character symbols for ASCII and EBCDIC encoding.

The SIMOTIME T112 Conversion Utility Program will convert the EBCDIC encoded, Master Card or MC T112 file to an ASCII/Text file with the bit-sensitive information expanded to text strings.

Link to Internet   Link to Server   Explore How to Convert the MasterCard T112 File from a downloaded mainframe-formatted file to an ASCII/Text file that may be imported into a spreadsheet.

Table of Contents Previous Section Next Section Java Developer's Kit, Install

We used the following commands to install Oracle JDK.

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default

The following should show the version of Java that is installed.

java -version

Table of Contents Previous Section Next Section Java Developer's Kit, Compile

We used the following commands to compile the Java programs

javac ap10jv01.java
javac ap10jv02.java
javac jvt11201.java

Table of Contents Previous Section Next Section Java Developer's Kit, Execute

We used the following commands to execute the Java programs

java ap10jv01
java jvt11201

Table of Contents Previous Section Next Section Local Server, Apache Tomcat

WIP

Table of Contents Previous Section Next Section COBOL Programming

For our Linux Development we will be using GnuCOBOL. A link to additional information about GnuCOBOL is provided in the Internet Access Required section of this document. For convenience, the link is included here.

Explore the GnuCOBOL Technologies available from SourceForge. SourceForge is an Open Source community resource dedicated to helping open source projects be as successful as possible. GnuCOBOL (formerly OpenCOBOL) is a COBOL compiler with run time support. The compiler (cobc) translates COBOL source to executable using intermediate C, designated C compiler and linker. This link will require an Internet Connection.

Table of Contents Previous Section Next Section COBOL, Installation Verification Program

We used the following to verify the installation of GnuCOBOL was successful. First, we compiled a simple COBOL program.

cobc SIMOSAM1/DEVL/COBOL/CBLIVPC1.cbl

Next, we executed the simple COBOL program.

cobcrun SIMOSAM2/DEVL/COBOL/CBLIVPC1.cbl

Table of Contents Previous Section Next Section Compile COBOL, Sequential File I/O

We used the following command to compile programs that need file mapping.

cobc -std=ibm SIMOSAM2/DEVL/COBOL/DUPE8080.cbl

Table of Contents Previous Section Next Section Execute COBOL, Sequential File I/O

The following is a shell script that is used to map the physical file name to the program name and execute a COBOL program.

#!/bin/bash
   JOBNAME=cyrs8021
#  * *******************************************************************
#  *       Bash Script File - provided by SimoTime Technologies        *
#  *           (C) Copyright 1987-2018 All Rights Reserved             *
#  *             Web Site URL:   http://www.simotime.com               *
#  *                   e-mail:   helpdesk@simotime.com                 *
#  * *******************************************************************
#  *
#  * Text    - Execute program, 80/80 copy file
#  * Author  - SimoTime Technologies
#  * Date    - November 11, 2003
#  * Version - 06.07.16
#  *
#  * Prepare the environment by mapping the file names.
#  * Execute the 80/80 copy file program.
#  *
#  * ********************************************************************
#  * Step 1 of 3, Prepare the System Environment.
#  *
   AOK_Count=0
   NOK_Count=0
   JOBSTATUS=0
   export BASESYS1=/home/larry/SIMOSY76
   export COB_LIBS=$BASESYS1/SIMOSAM1/DEVL/LOADLIB:$BASESYS1/SIMOLIBR
   export COB_LIBRARY_PATH=$BASESYS1/SIMOSAM1/DEVL/LOADLIB:$BASESYS1/SIMOLIBR
   export SIMONOTE=$BASESYS1/SIMOSAM1/DEVL/LOGS/SYSOUT_BASHUSER_$JOBNAME.txt
   simonote.sh "Starting Job Name is $JOBNAME"
#  *
#  * Prepare the environment, map the file names...
   export DUPEGET1=$BASESYS1/SIMOSAM1/DEVL/DATA/APPL/SIMOTIME.DATA.RS80FILE.DAT
   export DUPEPUT1=$BASESYS1/SIMOSAM1/DEVL/DATA/APPL/SIMOTIME.DATA.DUPEPUT1.DAT
   simonote.sh "DATATAKE is $DUPEGET1"
#  *
#  * ********************************************************************
#  * Step 2 of 3, Run the program.
#  *
   cobcrun DUPE8080
   rc=$?
   if [ $rc != 0 ]
   then
      ((NOK_Count++))
      simonote.sh "+ $name - Return Code is $rc"
      JOBSTATUS=$rc
   else
      ((AOK_Count++))
   fi
#  *
#  * ********************************************************************
#  * Step 3 of 3, End of Job Processing.
#  *
     simonote.sh "AOKcount Job_Step Count for AOK is $AOK_Count "
     simonote.sh "NOKcount Job_Step Count for NOK is $NOK_Count "
     if [ "$JOBSTATUS" = "0" ]
     then
        simonote.sh "Finished Job Name $JOBNAME"
     else
        simonote.sh "ABENDING Job Name $JOBNAME"
     fi


Table of Contents Previous Section Next Section Compile Multiple Programs

The following is a shell script that is used to compile many COBOL programs using a user list of COBOL source member names.

#!/bin/bash
#  * *******************************************************************
#  *        BLDL_CBL_TO_SO_FOR_SAM1_BAT.sh - a Bash Script File        *
#  *         This program is provided by SimoTime Technologies         *
#  *           (C) Copyright 1987-2017 All Rights Reserved             *
#  *             Web Site URL:   http://www.simotime.com               *
#  *                   e-mail:   helpdesk@simotime.com                 *
#  * *******************************************************************
#  *
#  * Text    - Compile Multiple Programs based on a User List File
#  * Author  - SimoTime Technologies
#  * Date    - November 11, 2003
#  * Version - 06.07.16
#  *
#  * This set of programs will read a file containing a list of COBOL
#  * Source Member names and compile each of the members.
#  *
#  * ********************************************************************
#  * Step 1 of 3, Prepare the Job Environment...
#  *
   export JOBNAME=BLDL_CBL_TO_SO_FOR_SAM1_BAT
   export BASESYS1=/home/larry/SIMOSY76
   export SLIB=SIMOSAM1/DEVL
   export TLIB=HOLD/SAM1/BAT
   export LLIB=LIST
   export SIMONOTE=$BASESYS1/LOGS/SYSOUT_BASHUSER_$JOBNAME.txt
#  *
   export COBCPY=SIMOLIBR
   simonote.sh "#  **************************************************$JOBNAME"
   simonote.sh "#  Starting Job Name is $JOBNAME, Time is $(date +'%Y/%m/%d') - $(date +'%r')"
   export JOBSTATUS=0000
   AOK_Count=0
   NOK_Count=0
#  *
#  * ********************************************************************
#  * Step 2 of 3, Compile the programs based on user list...
#  *
   for name in $(cat MBR_LIST_OF_CBL_FOR_SAM1_BAT.txt | cut -d'.' -f1);
   do
       nameuc=${name^^}
       namelc=${name,,}
       echo $name
       cobc -fixed -std=ibm $SLIB/COBOL/$nameuc.cbl -o $TLIB/$nameuc.so -I SIMOSAM1/DEVL/COBCPY1 -t $LLIB/$name.prn
       rc=$?
       if [ $rc != 0 ]
       then
          ((NOK_Count++))
          simonote.sh "#  $name - Return Code is $rc"
          JOBSTATUS=$rc
       else
          ((AOK_Count++))
       fi
   done
#  *
#  * ********************************************************************
#  * Step 3 of 3, End of Job Processing...
#  *
   simonote.sh "#  AOKcount Job_Step Count for AOK is $AOK_Count "
   simonote.sh "#  NOKcount Job_Step Count for NOK is $NOK_Count "
   if [ "$JOBSTATUS" = "0000" ]
   then
      simonote.sh "#  Finished Job Name is $JOBNAME, Time is $(date +'%Y/%m/%d') - $(date +'%r')"
   else
      simonote.sh "#  ABENDING Job Name is $JOBNAME, Job Status is $JOBSTATUS"
   fi


Table of Contents Previous Section Next Section Execute COBOL, Multiple Job Steps

Preparing the environment for executing COBOL programs may require more than a simple "cobcrun program-name" statement. The following link will describe a SimoTime Test Case that includes batch jobs that will prepare the environment and execute a suite of test programs.

Link to Internet   Link to Server   Explore How to Center, Left or Right Justify a text string within a field using a COBOL program. This suite of programs includes Job Scripts to create test data and execute the COBOL programs. The Job Scripts include JCL Members for an IBM Mainframe System, CMD Files for a Windows System and Bash Script Files for a Linux or UNIX System.

Table of Contents Previous Section Next Section COBOL Anomalies

We originally installed Open COBOL, Version 1.0. For the first phase of the project we selected a suite of COBOL programs that are currently running on IBM Mainframes and Various Micro Focus environments (primarily Windows with Enterprise Developer and the Mainframe sub-system option). The COBOL programs were over twenty years old and have compiled and executed on various compilers from IBM COBOL/2 through Enterprise COBOL.

Table of Contents Previous Section Next Section GnuCOBOL 2.0, Technical Notes

We installed the Open Cobol 1.0 version on 2017/04/10. We used this version of COBOL through 2017/05/31. On 2017/06/01 we downloaded and installed GnuCOBOL 2.0. The GnuCOBOL configuration files are located in the "/usr/local/share/gnu-cobol/config" folder. The COBOL programs are divided into two categories.

The first category is COBOL Programs is referred to as Application Programs. These programs use traditional COBOL coding syntax and we have attempted to make this category of programs compliant with IBM Enterprise COBOL. For the GnuCOBOL 2.0 environment we use -std=ibm for the compiles.

The second category of COBOL Programs is referred to as Utility Programs. These programs use traditional COBOL coding syntax along with some extensions provided by various vendors. For the GnuCOBOL 2.0 environment we use a combination of -std=ibm and std=mf for the compiles.

1. Some application programs that compiled under Open COBOL 1.0 failed to compile using GnuCOBOL 2.0.
1.1. The "DISPLAY fieldname UPON CONSOLE" failed. We added "reserved: CONSOLE" to the config file.
1.2. The "ACCEPT fieldname FROM COMMAND-LINE" failed. We added "reserved: COMMAND-LINE" to the config file.
1.3. The "END-ACCEPT" and "END-DISPLAY" failed. We added "reserved: END-ACCEPT" and "reserved: END-DISPLAY" to the config file.
2. Some utility programs that compiled under Micro Focus COBOL on Windows failed to compile using GnuCOBOL 2.0. on Ubuntu.
2.1. The ACCEPT ENVIRONMENT function under Micro Focus was liberal in its coding syntax and coding techniques. GnuCOBOL was more precise in the syntax editing.
2.2. We changed the COBOL programs to conform to the more precise editing requirements of GnuCOBOL.
2.3. Some of the utility programs were written using a Micro Focus dialect on a Windows System. This allowed an OCCURS on an 01 level. This is not allowed when using a Mainframe dialect. We changed the COBOL programs to conform to the Mainframe dialect.
3. COBOL Syntax Variances between Compilers.
3.1. The following coding techniques is accepted on the Mainframe and Micro Focus.
       01  FIELD-ONE        PIC X(80).
01 FIELD-TWO PIC X(80)
REDEFINES FIELD-ONE.
The preceding syntax produced an error with GnuCOBOL 2.0. The following is accepted by GnuCOBOL.
       01  FIELD-ONE        PIC X(80).
01 FIELD-TWO REDEFINES FIELD-ONE
PIC X(80).
3.2. After we started using GnuCOBOL 2.0 we attempted to execute a .so member that was compiled under Open COBOL 1.0. This action caused the following error message.
libcob: unknown failure: 0
To correct this error we re-compiled the programs using GnuCOBOL 2.0 and things worked as expected.
4. TAG

Table of Contents Previous Section Next Section Text Editor

The system came with "gedit"" installed and ready to go. We use Notepad on our Windows system and we wanted a simple and easy to use text editor as a starter and for quick changes as we move forward. Switching from Notepad to "gedit" was a very easy transition.

At SIMOTIME we do a large number of data conversions. We are located in the United States and process data from around the world. We use our own technology for the data conversions. As part of our data validation and diagnostic procedures we use our own Hex-Dump programs that write to an ASCII/Text file. Since the Hex-Dump file is ASCII/Text it may be viewed with a text editor of choice.

We encountered a problem when the HEX-DUMP file contained characters characters that were not part of the United States (US) printable character set. For example, the EURO "€" currency symbol would not print correctly. We could open the Hex-Dump file with the Firefox browser and the information would display correctly.

The following solved the problem.

nohup gedit --encoding=WINDOWS-1252 filename >/dev/null &

Note:  With the "--encoding=WINDOWS-1252" option specified gedit displays the correct information.

Table of Contents Previous Section Next Section Sort Program

WIP

Table of Contents Previous Section Next Section Documents, SimoTime Technologies

The documentation for SimoTime Technologies is provided in an HTML format and may be viewed using a Web Browser of choice.

Table of Contents Previous Section Next Section Web Browser

The SimoTime Library of over 500 documents may be accessed from our web site. We test/view our website from a variety of Windows Systems using Microsoft Edge, Internet Explorer, Chrome and Firefox. Also, we use an Apple iPad to test/review our web site using Solaris. For the Linux environment we plan to use Chrome and Firefox.

Table of Contents Previous Section Next Section Firefox

The System/76 Serval came with Firefox installed. The Adobe Flash Player was not installed or enabled for Firefox. We decided not to download and install the lightweight Adobe Flash Player for Firefox.

Table of Contents Previous Section Next Section Chrome

We needed to install the Chrome Browser. A quick Google search using the argument of "google chrome download" took us to the Google Web Site for downloads. We simply followed the prompts to install. This download came with the Adobe Flash Player enabled. For Web Sites that still use Adobe Flash we will use the Chrome browser to view. The need for Adobe seems to be decreasing.

Table of Contents Previous Section Next Section File Transfer Protocol (FTP)

Our current use of FTP is to upload documents from our Desktop/Laptop System to our Internet Server System. We have a Windows/7 System and use FTP sessions in both interactive and batch mode. For the Linux System we acquired a laptop from System/76 and it came with Ubuntu installed and ready to use.

For Linux, we decided to use an interactive FTP session from a terminal window to upload an HTML document. This process was quite similar to what we used on our Windows System. Once we adjusted to the file naming conventions (dropping the drive letter designation and using a forward slash instead of a backward slash) we were able to successfully upload a number of document members.

Next, we decided to create and execute a bash shell script to upload multiple HTML documents.

Link to Internet   Link to Server   Explore the File Transfer Protocol (FTP) commands using an interactive or scripted batch interface. This document describes a typical process for an interactive and automated, batch FTP session running on a Windows System and connecting to another Windows System, a Linux or UNIX System or an IBM Mainframe System.

Table of Contents Previous Section Next Section E-Mail

WIP

Table of Contents Previous Section Next Section Network Router, WiFi & Internet

WIP

Link to Internet   Link to Server   Explore How to set up a network using the Homegroup feature in Windows.

Table of Contents Previous Section Next Section Network Router

WIP

Table of Contents Previous Section Next Section Network WiFi

Making a WiFi Connection was simple and easy. We have three (3) possible WiFi Connections available in our office. To connect or change connections simply select (move the mouse pointer over the icon and double-click) the "System Settings" icon from the Launcher that is displayed down the left side of the screen. This opens a "Network" windows with two (2) window panes. The left pane shows the type of connections. For our environment we selected Wireless. The right pane then shows a list of available wireless connection. We selected the connection we wanted to use and the connection was made.

Table of Contents Previous Section Next Section Network Internet Access

WIP

Table of Contents Previous Section Next Section SIMOTIME Utility Programs

WIP

Table of Contents Previous Section Next Section Development Folders

WIP

Table of Contents Previous Section Next Section SIMOLYZE, Source Code Analysis

The SIMOLYZE Utility scans mainframe source code that has been downloaded to a Linux or Windows System and determines the member type. The primary purpose of SIMOLYZE is to do source member typing (or identification) and provide an overview of the number, size (Lines of Code) and type of members. Additional information such as Lines-of-Codes, Blank Lines and comments are counted along with members that contain EXEC CICS and EXEC SQL syntax. This information is stored in an Application Repository.

The SIMOLYZE suite of programs was created on an IBM Mainframe System in the late 1980?s. The individual members were a combination of Mainframe Assembler and COBOL programs. In the mid-1990's the SIMOLYZE suite of programs was copied to a Windows System. The Assembler members were converted to COBOL. The Mainframe JCL was converted to Windows Command Files. The members were then compiled and executed using Micro Focus COBOL. In May of 2017 the SYMOLYZE Suite of programs were copied to a Linux System (Ubuntu 16.02 LTS). The Command Files were replaced with Bash Scripts Files. The thirty-five (35) COBOL programs were compiled and executed using GnuCOBOL.

The following link will provide additional detail about the SIMOLYZE Utility.

Link to Internet   Link to Server   Explore How to do Source Member Typing by scanning a library of source members. The SimoLYZE software will scan a source member and determine the appropriate file extension that is required (CBL, CPY, JCL, PRC, BMS, MLC, MAC, MFS, PSB, DBD, etc...).

Table of Contents Previous Section Next Section Application Environment

This section will capture items that are related to "Application-oriented" functions.

Table of Contents Previous Section Next Section Development

WIP

Table of Contents Previous Section Next Section Quick Tips

This section will capture items that require a syntax that is difficult to remember or items that are done on a infrequent basis and the details of execution may be forgotten.

Table of Contents Previous Section Next Section Keyboard Shortcut Keys

WIP

The  Ctrl  +  Alt  +  T  keys will open a terminal window.

Table of Contents Previous Section Next Section Change Location or Size

The following command will change the size of the cursor and mouse pointer.

gsettings set org.gnome.desktop.interface cursor-size 48

The following command will move the Launcher to the bottom of the screen.

gsettings set com.canonical.Unity.Launcher launcher-position 'Bottom'

Table of Contents Previous Section Next Section ASCII/Text, Windows to Linux

At SimoTime we have a network of systems that includes Windows and Linux. We discovered if we created a Bash File Script using Notepad on a Windows System and then attempted to execute the script on Linux we would encounter a number of problems depending on what the script was attempting to execute.

We would get a "Permission Denied" message. The following Change Mode (CHMOD) would correct this problem.

chmod 777 scriptname.sh

The message "/bin/bash^M: bad interpreter: No such file or directory" is caused by the Windows formatting of the Bash Script File.

The following command will convert an ASCII/Text file (Windows format) with two Record separator characters to an ASCII/Text file (Linux or UNIX format) with one record separator character.

sed -i -e 's/\r$//' scriptname.sh

sudo sed -i -e 's/\r$//' scriptname.sh

Table of Contents Previous Section Next Section Linux Commands

sudo mount /dev/Samsung_T5 target_location
df -H

sudo mount -t ntfs -o nls=utf8,umask=0222 /dev/hdb1 /media/c

Table of Contents Previous Section Next Section copy or cp

The Linux copy or cp command provides the capability to copy files and directories through the command line or from a terminal window.

cp -r ./SIMOSAM8 /media/larry/Samsung_T3

Table of Contents Previous Section Next Section list or ls

The Linux list or ls command provides the capabilty to create a list of directories or the content of a dorectory.

ls -l *.sh

Table of Contents Previous Section Next Section mount

WIP

sudo mount /dev/Samsung_T5 target_location
df -H

sudo mount -t ntfs -o nls=utf8,umask=0222 /dev/hdb1 /media/c

Table of Contents Previous Section Next Section Project Contact & Travel Logistics

This project (referred to as SYS76P01) team is a group of individuals that are working at various locations and want to create a common development configuration that may be used as a foundation for independent application development and support efforts. The results of these independent efforts may be deployed on a variety of systems of varying architectures.

Table of Contents Previous Section Next Section Document Author & Owner

The following is the contact information for the author/manager of this document.

Last Name Contact Information
SIMMONS Larry Simmons
SimoTime, Senior Consultant
15 Carnoustie Drive
Novato, CA 94949
415.827.7045 - Mobile
415.883.6565 - Office
larry.simmons@simotime.com
  Project Team Leader

Table of Contents Previous Section Next Section Hotels and Restaurants

The following is a list of local hotels and other items of interest.

Facility Location and/or Contact Information
Marriott Courtyard by Marriott Novato Marin/Sonoma
1400 N Hamilton Pkwy
Novato, CA, 94949 USA
415.883.8950 - Local
844.247.9217 - Reservations
  Hotels, Restaurants and other items of interest

Table of Contents Previous Section Next Section Chronicle of Events

This section provides a single data entry point for milestones or events that were critical to the project.

Note: The actual elapsed time could be compressed. This project was done in parallel with other projects that had higher priorities.

Table of Contents Previous Section Next Section 2017/05/12 - TAG

TAG

Table of Contents Previous Section Next Section 2017/05/11 - Update SIMOLYZE Scripts

TAG

Table of Contents Previous Section Next Section 2017/05/10 - Create SIMOLYZE Scripts

TAG

Table of Contents Previous Section Next Section 2017/05/09 - Create Group Builds

TAG

Table of Contents Previous Section Next Section 2017/05/08 - A Multiple Step Job

Create a model for a Bash Script File that will execute a batch job with multiple steps. The script should post job information to the screen and to a file. Each job step will need to be checked for proper completion before proceeding to the next step.

Table of Contents Previous Section Next Section 2017/05/05 - Apache Tomcat

TAG

Table of Contents Previous Section Next Section 2017/05/04 - Application Testing

TAG

Table of Contents Previous Section Next Section 2017/05/03 - Development & Unit Test

TAG

Table of Contents Previous Section Next Section 2017/05/02 - Reorganize Sandbox

We do a lot of experimenting and use folders outside of our normal structure. We needed to take some time to do some housekeeping and cleanup the system.

Table of Contents Previous Section Next Section 2017/05/01 - Boot from External Media

As part of our System Backup and Restore processes we created an Ubuntu System on a USB drive. We tested by successfully booting the USB Drive.

Table of Contents Previous Section Next Section 2017/04/28 - New Desktop Shortcuts

We added additional Shortcuts to the desktop for locally stored presentation materials and reference materials.

Table of Contents Previous Section Next Section 2017/04/27 - User Backup Process

Create a backup process (a Bash Script File) that will copy the user folders to a removable media. Also, the backup process should capture other user files or components that are located in shared or system folders.

Table of Contents Previous Section Next Section 2017/04/26 - Connect a 2nd Display

We have been using the System/76 Serval Laptop as a stand-alone laptop without altering its base configuration. This was part of the original plan since we wanted to observe and learn how the laptop would perform on it own merits and how long would it take us to adapt to the new environment. Today, we decided to start using the System for some of our mainstream work. We moved it to a new location and attached a second display.

Table of Contents Previous Section Next Section 2017/04/25 - Modify & Promote (cont)

Continue with the first attempt to manage and promote document changes the the Web Server via FTP process.

Table of Contents Previous Section Next Section 2017/04/24 - Modify & Promote to Web

Started the process to change a document on the local system and promote it through the process that will update the SIMOTIME Web Server.

Table of Contents Previous Section Next Section 2017/04/21 - Prepare Document Tasks

This required the compilation of a approximately twenty (20) utilitarian programs of moderate complexity. Started on the task of writing the Bash Scripts required to compile and execute the programs.

Table of Contents Previous Section Next Section 2017/04/20 - Bash Research & Learning

Needed to continue to expand knowledge of Bash Scripting to create and run batch jobs.

Table of Contents Previous Section Next Section 2017/04/19 - Bash Research & Learning

Needed to expand knowledge of Bash Scripting to create and run batch jobs.

Table of Contents Previous Section Next Section 2017/04/18 - Hex-Dump and GEDIT

We were attempting to view a Hex-Dump (ASCII/Text format) file that contained non-US characters and we encountered a problem. The characters would not display correctly.

Additional information is provided in the Text Editor section of this document.

Table of Contents Previous Section Next Section 2017/04/17 - Updated User Desktop

Created a few utilitarian shell scripts and added a few items of convenience (shortcuts) to the desktop.

Table of Contents Previous Section Next Section 2017/04/14 - COBOL Compile/Execute

We expanded our testing and started creating jobs (shell scripts) to do batch compiles. Most of the batch COBOL programs already execute on IBM Mainframe Systems using JCL members and Windows Systems using CMD files. We started creating a set of shell scripts (.sh files) to execute the programs.

Table of Contents Previous Section Next Section 2017/04/13 - Refresh User Members

We repeated the process we used to initially copy the application members and data. We used an existing process (or job) on the Windows System to backup the SIMOTIME directories onto a Samsung SSD, USB attached device. We removed the Samsung SSD from the Windows System and connected it to the Linux System. Since we did not have an automated restore procedure we manually copied the directories to the Linux System using the graphical Interface with "Drag-and-Drop".

Table of Contents Previous Section Next Section 2017/04/12 - Self-Study, Shell Scripts

We needed to increase our knowledge of Shell Script coding. The short-term object is to create shell scripts to do batch compiles of COBOL programs.

Table of Contents Previous Section Next Section 2017/04/11 - COBOL Compile/Execute

We tested a couple of programs. The first program simply displayed a message to the screen. The second program did a file copy.

Table of Contents Previous Section Next Section 2017/04/10 - Install GnuCOBOL

Today we did a download and install of GnuCOBOL (formerly OpenCOBOL). We managed to compile and execute a couple of simple COBOL programs.

Table of Contents Previous Section Next Section 2017/04/07 - Research for COBOL

Today we explored a number of options for a COBOL compiler. We are leaning toward the GnuCOBOL.

Table of Contents Previous Section Next Section 2017/04/06 - Research for LibreOffice

Today we used the SIMOTIME spread sheets (Excel members) and presentation materials (PowerPoint members) to review the LibreOffice software. We accomplished what we intended and are happy with today's results. However, some of the answers we discovered led us to more questions.

We will need to do further research and increase our understanding of the technologies used in this environment. At this point we have something that is usable. We just want to find or create a better something.

Table of Contents Previous Section Next Section 2017/04/05 - Customize the Desktop

We wanted to create a Desktop Interface with a focus on SIMOTIME Technologies. We explored the options for changing the background and adding shortcuts using SIMOTIME icons.

Additional information is provided in the Desktop User Interface section of this document.

Table of Contents Previous Section Next Section 2017/04/04 - Java, Compile & Execute

We wanted to test the java installation using more than a simple "Hello World" type of program. SIMOTIME has a library of Java programs.

Additional information is provided in the Java Developer's Kit (JDK) section of this document.

Table of Contents Previous Section Next Section 2017/04/03 - Transfer User Members

We used an existing process (or job) on the Windows System to backup the SIMOTIME directories onto a Samsung SSD, USB attached device. The backup process took approximately 18 minutes. We removed the Samsung SSD from the Windows System and connected it to the Linux System. Since we did not have an automated restore procedure we manually copied the directories to the Linux System using the graphical Interface with "Drag-and-Drop". This process took less that five (5) minutes.

Table of Contents Previous Section Next Section 2017/04/02 - Download Java (JDK)

This task required approximately one hour of research and about 20 minutes to execute.

Table of Contents Previous Section Next Section 2017/03/30 - Download Google Chrome

Our first attempt to download and install google chrome was not successful. We attempted the download and install from the google web site. The download executed as expected. When we tried to install we were prompted for an "authentication code". We were unable to locate an "authentication code". However during our search we found an article that identified this as a problem or "known condition". The work around was to install in command mode.

In summary, this 5-10 minute task turned out to be a one hour effort. Once installed, Chrome worked as expected. We are now able to access and browse the Internet using Firefox or Chrome.

Table of Contents Previous Section Next Section 2017/03/28 - Unpack & Configure

We opened the packing carton and removed the system from its wrapping within the carton. While removing some of the clear protective wrap we accidentally hit the power button. The system started the power-up process from what power was available in the battery and displayed the initial start-up/configuration screen. Since we did not know how much power was left on the battery we quickly unwrapped the power brick and plugged into a 120vac outlet.

After this minor crisis we completed the initial configuration in less than ten (10) minutes. This included connecting to the WiFi. Since the system came with Firefox installed we decided to browse the SIMOTIME web site for a few minutes. This was familiar territory for us and everything looked and worked as expected.

Note: We did eventually notice the "power" icon in the upper right corner of the screen and discovered the battery was at 90% of charge.

Table of Contents Previous Section Next Section 2017/03/27 - System Delivery

The System arrived today at 1:39pm PDT via UPS. The shipping package appeared to be in good shape. A signature was required to complete the delivery.

Table of Contents Previous Section Next Section 2017/03/23 - System Build & Ship

Today we received an e-mail letting us know the system build was complete and was being shipped via UPS with an estimated delivery date of Monday, the 27th of March.

Table of Contents Previous Section Next Section 2017/03/13 - System Order & Confirm

After some addition research and discussion we decided to proceed with ordering a system. We were able to retrieve the previous system configurations from our request for quotes. From this point it was a simple push of a button and the addition of payment information.

Table of Contents Previous Section Next Section 2017/02/22 - Request a Quote

We decided to purchase a heavy-duty laptop that could double as a desktop system. We selected System/76 as the vendor. We signed on to the System/76 web site. Once we selected a laptop model we used the "Design + Buy" capability that allows a potential customer to configure a system, request a quote and order a system. This is what we used to configure a couple of systems and request a couple of quotes.

Table of Contents Previous Section Next Section Technical Details

This section provides additional details about some of the configuration items and technical-oriented tasks that are required to create an application development and unit testing environment.

Table of Contents Previous Section Next Section System Environments

The following describes the hardware and software system configurations used at SIMOTIME..

Our Windows development system of choice is a DELL Latitude E6520 with 8GB RAM and a 128GB SSD and a 300GB HDD. Our Linux development system of choice is a System/76 (Serval WS)

Our Windows Operating System is Windows/7 Ultimate with Microsoft Office 2010. Windows will no longer be our only development choice. Since we have a large number of Windows Users we plan to continue using Windows as one of multiple development choices.

Our Linux Operating System is Ubuntu 16.04 LTS. Ubuntu is a complete desktop Linux operating system, freely available with both community and professional support. This is our Linux operating system of choice. We are currently running Ubuntu 16.04.1 LTS (64-bit). Ubuntu 14.04.5 was originally installed by System/76.

The SIMOTIME users have a wide variety of applications written in a number of different languages and executing on systems of varying architectures.

For COBOL programs we use Micro Focus Enterprise Developer for the Windows Environment. We use GnuCOBOL for the Linux environment.

Table of Contents Previous Section Next Section Directory Structure

The following diagram show the directory structure used by SIMOTIME for the Linux Environment.

               
/
The / root directory for Linux
   
   
 
 
/bin/
Binaries, executables for minimum system function
   
   
   
 
 
/opt/
 
 
and MORE
Optional, contains 3rd party software
   
   
   
 
 
/boot/
Contains files used in booting the operating system
   
   
   
 
 
/root/
Contains configuration files for the root user's account
   
   
   
 
 
/dev/
Contains device files for hardware
   
   
   
 
 
/sbin/
See Note-1
   
   
   
 
 
/etc/
Contains Application's configuration files
   
   
   
 
 
/srv/
   
   
   
 
 
/home/
   
   
   
 
 
SIMOSAM1
 
 
and MORE
See Note-2
   
   
 
 
/tmp/
   
   
   
 
 
/lib/
   
   
   
 
 
/usr/
Universal System Resources
   
   
   
 
 
/bin/
   
   
   
 
 
/include/
   
   
   
 
 
/lib/
   
   
   
 
 
/sbin/
   
   
   
 
 
/media/
   
   
   
 
 
/var/
   
   
   
 
 
/cache/
   
   
   
 
 
/log/
   
   
   
 
 
/spool/
   
   
   
 
 
/tmp/
   
   
   
 
 
/mnt/
 
Note-1: Contains executable programs or administrative tools that should have limited access for root user
Note-2: This is the primary directory for the SimoTime Driver Programs and Test Cases
The Directory Structure used for the SimoTime Linux Environment

Table of Contents Previous Section Next Section The / root Directory

WIP

Table of Contents Previous Section Next Section The /bin/ Directory

WIP

Table of Contents Previous Section Next Section The /opt/ Directory

WIP

Table of Contents Previous Section Next Section The /usr/ Directory

This directory contains members (typically executable members in the /bin/ sub-directory) that are available to multiple users. Programs such as firefox and google-chrome are stored the /bin/ sub-directory of this directory.

Table of Contents Previous Section Next Section WIP

WIP

Table of Contents Previous Section Next Section Summary

The objective of this document is to quantify the effort and document the tasks required to provide a development environment on a Linux System for a developer that is familiar with Microsoft Windows and IBM Mainframe Systems. This document may be used to assist as a tutorial for new programmers or as a quick reference for experienced programmers.

In the world of programming there are many ways to solve a problem. This document and the links to other documents are intended to provide a greater awareness of the Data Management and Application Processing alternatives.

The documentation and software were developed and tested on systems that are configured for a SIMOTIME environment based on the hardware, operating systems, user requirements and security requirements. Therefore, adjustments may be needed to execute the jobs and programs when transferred to a system of a different architecture or configuration.

SIMOTIME Services has experience in moving or sharing data or application processing across a variety of systems. For additional information about SIMOTIME Services or Technologies please contact us using the information in the  Comments or Feedback  section of this document.

Table of Contents Previous Section Next Section Software Agreement and Disclaimer

Permission to use, copy, modify and distribute this software, documentation or training material for any purpose requires a fee to be paid to SimoTime Technologies. Once the fee is received by SimoTime the latest version of the software, documentation or training material will be delivered and a license will be granted for use within an enterprise, provided the SimoTime copyright notice appear on all copies of the software. The SimoTime name or Logo may not be used in any advertising or publicity pertaining to the use of the software without the written permission of SimoTime Technologies.

SimoTime Technologies makes no warranty or representations about the suitability of the software, documentation or learning material for any purpose. It is provided "AS IS" without any expressed or implied warranty, including the implied warranties of merchantability, fitness for a particular purpose and non-infringement. SimoTime Technologies shall not be liable for any direct, indirect, special or consequential damages resulting from the loss of use, data or projects, whether in an action of contract or tort, arising out of or in connection with the use or performance of this software, documentation or training material.

Table of Contents Previous Section Next Section Downloads and Links

This section includes links to documents with additional information that is beyond the scope and purpose of this document. The first sub-section references locally available documents, the second sub-section requires an internet connection.

Note: A SimoTime License is required for the items to be made available on a local server.

Table of Contents Previous Section Next Section Current Server or Internet Access

The following links may be to the current server or to the Internet.

Note: The latest versions of the SimoTime Documents and Program Suites are available on the Internet and may be accessed using the Link to Internet icon. If a user has a SimoTime Enterprise License the Documents and Program Suites may be available on a local server and accessed using the Link to Server icon.

Link to Internet   Link to Server   Explore An Enterprise System Model that describes and demonstrates how Applications that were running on a Mainframe System and non-relational data that was located on the Mainframe System were copied and deployed in a Microsoft Windows environment with Micro Focus Enterprise Server.

Link to Internet   Link to Server   Explore The ASCII and EBCDIC Translation Tables. These tables are provided for individuals that need to better understand the bit structures and differences of the encoding formats.

Link to Internet   Link to Server   Explore The File Status Return Codes to interpret the results of accessing VSAM data sets and/or QSAM files.

Table of Contents Previous Section Next Section Internet Access Required

The following links will require an internet connect.

A good place to start is The SimoTime Home Page for access to white papers, program examples and product information. This link requires an Internet Connection

Explore The Java Development and Run Time products and services available from Oracle. This link requires an Internet Connection.

Explore the GnuCOBOL Technologies available from SourceForge. SourceForge is an Open Source community resource dedicated to helping open source projects be as successful as possible. GnuCOBOL (formerly OpenCOBOL) is a COBOL compiler with run time support. The compiler (cobc) translates COBOL source to executable using intermediate C, designated C compiler and linker. This link will require an Internet Connection.

Explore the System/76 Web Site for more information about the products and services available from System/76. Their web site includes a description of the hardweare (laptops, desktops and servers) and the Linux Operating Systems (Ubuntu and Pop!). This link requires an Internet Connection.

Explore The Micro Focus Web Site for more information about products and services available from Micro Focus. This link requires an Internet Connection.

Table of Contents Previous Section Next Section Glossary of Terms

Link to Internet   Link to Server   Explore the Glossary of Terms for a list of terms and definitions used in this suite of documents and white papers.

Table of Contents Previous Section Next Section Comments or Feedback

This document was created and is maintained by SimoTime Technologies. If you have any questions, suggestions, comments or feedback please use the following contact information.

1. Send an e-mail to our helpdesk.
1.1. helpdesk@simotime.com.
2. Our telephone numbers are as follows.
2.1. 1 415 763-9430 office-helpdesk
2.2. 1 415 827-7045 mobile

We appreciate hearing from you.

Table of Contents Previous Section Next Section Company Overview

SimoTime Technologies was founded in 1987 and is a privately owned company. We specialize in the creation and deployment of business applications using new or existing technologies and services. We have a team of individuals that understand the broad range of technologies being used in today's environments. Our customers include small businesses using Internet technologies to corporations using very large mainframe systems.

Quite often, to reach larger markets or provide a higher level of service to existing customers it requires the newer Internet technologies to work in a complementary manner with existing corporate mainframe systems. We specialize in preparing applications and the associated data that are currently residing on a single platform to be distributed across a variety of platforms.

Preparing the application programs will require the transfer of source members that will be compiled and deployed on the target platform. The data will need to be transferred between the systems and may need to be converted and validated at various stages within the process. SimoTime has the technology, services and experience to assist in the application and data management tasks involved with doing business in a multi-system environment.

Whether you want to use the Internet to expand into new market segments or as a delivery vehicle for existing business functions simply give us a call or check the web site at http://www.simotime.com


Return-to-Top
System/76, a Linux Development Project using Ubuntu and COBOL
Copyright © 1987-2019
SimoTime Technologies and Services
All Rights Reserved
When technology complements business
http://www.simotime.com