BCS Install Anaconda on Ubuntu

Anaconda is the preferred approach for Python development on the Linux platform. To install Anaconda visit the web site and download the latest version. Click here for the Linux download.

The resulting shell script is lengthy and upon download completion the script must be marked as an executable file.

Execution of the script is the next process to be considered and it is accomplished by executing the command listed below.

./Anaconda3-5.0.1-Linux-x86_64.sh

Open a terminal and execute the command.

conda -V

If the version is not displayed you probably need to modify the path so the command may be found.

export PATH=/home/archman/anaconda3a/bin:$PATH

The installation process can be completed by issuing the following commands.

conda update conda
conda update python
conda update spyder
conda install django

Successful execution of these commands will ensure the latest versions of Anaconda, Python, Spyder and Django are installed and made ready for subsequent development.

Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.

BCS c++ function

To use c++ functions the header definitions, implementation methods and the mainline must be properly configured.

The header file for our class is first.

/**
 * fxgen2h.h
 *
 *  Created on: Aug 28, 2017
 *  @author    Author: archman
 */
 
#ifndef FXGENH_H_
#define FXGENH_H_
 
#include <boost/algorithm/string/replace.hpp>
#include <iostream>
#include <fstream>
#include <string>
#include <string>
using namespace std;
const int sizeOfStringArray = 1000;
 
/**
 * This is some test Doc Text
 */
 
struct mods {
	string from;
	string to;
};
 
struct mod_rec {
	int numPair;
	mods mp[15];
};
 
class fxcl {
 
/**
 * Private  Declarations Go Here
 */
 
private:
 
/**
 * Public  Declarations Go Here
 */
 
public:
 
	int fin(string, string[]);
	void fot(string otf, string stv[sizeOfStringArray], int cnt);
	void fileCopy(string fin, string fot);
	bool forceDirectories(string path);
	void upd(mod_rec rmrp, string stv[sizeOfStringArray], int cnt);
	string fixPath(string inPath, string fName);
};
 
#endif /* FXGENH_H_ */

The implementation of the class follows.

/*
 * fxgen2h.cpp
 *
 *  Created on: Aug 28, 2017
 *      Author: archman
 */
#include "fxgenh.h"
 
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
#include <boost/algorithm/string.hpp>
using namespace std;
 
/**
 *This program designed
 */
 
void fxcl::fileCopy(string fin, string fot) {
	std::ifstream src(fin, std::ios::binary);
	std::ofstream dst(fot, std::ios::binary);
 
	dst << src.rdbuf();
}
 
int fxcl::fin(string inf, string stv[sizeOfStringArray]) {
	string line;
	int lcnt = 0;
 
	ifstream myfile(inf);
	if (myfile.is_open()) {
		while (getline(myfile, line)) {
			stv[lcnt] = line + "\n";
			lcnt++;
		}
 
		myfile.close();
		return lcnt;
 
	}
 
	else
		cout << "Unable to open file";
	return lcnt;
}
 
bool fxcl::forceDirectories(string path) {
	boost::filesystem::path dir(path);
 
	if (!(boost::filesystem::exists(dir))) {
		std::cout << path << " Doesn't Exists" << std::endl;
 
		if (boost::filesystem::create_directory(dir))
			std::cout << path << " Successfully Created !" << std::endl;
		return true;
	} else {
		return false;
	}
}
 
void fxcl::fot(string otf, string stv[sizeOfStringArray], int cnt) {
	string line;
	int ii = 0;
	ofstream myfile(otf);
	while (ii < cnt) {
		line = stv[ii];
		myfile << line;
		ii++;
	}
	myfile.close();
}
 
void fxcl::upd(mod_rec rmrp, string stv[sizeOfStringArray], int cnt) {
	int ii = rmrp.numPair;
	string rline;
	int j = 0;
	while (j < cnt) {
		int i = 0;
		while (i <= ii) {
			boost::replace_all(stv[j], rmrp.mp[i].from, rmrp.mp[i].to);
			i++;
		}
		rline = stv[j];
		j++;
	}
 
}
 
string fxcl::fixPath(string inPath, string fName){
 
  return inPath + fName;
 
}

Finally we include out main or calling program.

//============================================================================
// Name        : fxgen2p.cpp
// Author      : Mr. Arch Brooks
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
 
/*! \mainpage My Personal Index Page
 *
 * \section intro_sec Introduction
 *
 * This is the introduction.
 *
 * \section install_sec Installation
 *
 * \subsection step1 Step 1: Opening the box
 *
 * etc...
 */
 
#include <iostream>
 
#include "fxgenh.h"
using namespace std;
 
int main(int argc, char* argv[]) {
	cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
	fxcl fx;
	string rp;
	rp = fx.fixPath("/root/", "TestProg");
	cout << rp << endl;
	return 0;
}

The output from the execution is as follows.

!!!Hello World!!!
/root/TestProg

 

Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.