Friday, January 30, 2015

Linux Bash Scripting - Install Script

Though many of you may scrutinize me for the poor structure of the content of my following source code but it's not like I'm gonna lose anything besides my pride as a programmer lol jk. Enough of the non professional text shorthand, let's get to some serious coding here. 

Linux is such a beautiful OS (Operating System for those of you who don't know). Not only does it give you the full reigns of the OS but also the greatest asset of any Linux based distro, The Package Manager! Once I discovered the package manager and it's abilities within its use on the terminal blew my mind when I was first delving into Linux my sophomore year of high school.

Let's begin with the basic structure of the Linux Bash Script.
#! /bash/bin

This is a basic beginning of writing a Linux Bash Script we are almost on our way to writing the finished product. For those of you who are new to this world of Linux and Bash Scripting let me break a few things down for you to make your learning experience that much better. Alright enough suger talk, the #! /bash/bin simply is a system call to the Linux Kernel referencing the commands within the bash/bin library. Over the progress of my programming and this blog we will have special sections specifically explaining the more finer details of the Linux Operating System and navigating it's terminal.

The next part of the script will be to simply add the commands that we need to run the install of the particular software we want to install. Here is some sample code below:

1
2
3
4
#!/bash/bin

echo "Installing software...."
apt-get install vlc ubuntu-restricted-extras //-y if you wanna skip the confirmation


We could simply add -y to the end of the apt-get install vlc ubuntu-restricted-extras and that will continue the installation without having us confirm the installation of the packages but I will leave that up to you guys whether or not you want to implement. Also as another side note I believe that using the sudo option at the beginning of the apt-get command if your not running the script in sudo.

So as your final product you should have this as the final result of this little brief tutorial on creating a Linux Bash Install Script:

1
2
3
4
#!/bash/bin

echo "Installing software...."
apt-get install vlc ubuntu-restricted-extras //-y if you wanna skip the confirmation

It Got Quiet All Of A Sudden

Sorry for the brief hiatus on my posting recently. Been real busy on the side, learning new things everyday as I progress to a goal of creating a lasting residual income for myself to live off of and to be finally liberated from all my debt. 

Had a huge revelation over this time period creating new and innovative ways of integrating technology into the common places we see everyday. Take for example using a simple LAMP + Xen stack to make the information in museums not only digital but interactive as well. There are many schools who still lack a proper IT guidance to promote a better learning experience using technology in the classroom. I believe the problem with technology as a industry is that we haven't made it accessible and easy to comprehend for the younger generations to use and integrate not only in their daily live but integrate it within the learning environment. 

Well that's my little rant for the day, I will start getting back to work on creating my development environment as well as a step by step guide to each step within setting up an environment for development. 

I have downloaded quite a few new apps that help me balance my workload on the iPad device and made the decision to simply use Linux specifically the Ubuntu 14.04.1 with the Cinnamon desktop environment as my OS of choice for my development needs for the time being. I believe I will use the Windows 8.1 when Windows 10 is released as Microsoft announced at CES 2015 this year that those with Windows 8.1 get a free upgrade. After that the next time will probably when I delve into C# Programming for Windows App development, but we'll see how the future turns out for the Linux Operating System in the next couple years. After all Linux has been making some great strides not only in the Web, Enterprise, Gaming, and Cloud development all for the price of free-99. 

In my next post I believe I will be going over some basic set up of a simple Linux Bash Install Script as we will be using it to install the software we want in our development environment.

Wednesday, January 28, 2015

iPad Mobile Environment

In this post I will be discussing the what and how's of using the iPad as both a blogging tool and a development tool as well. I believe this is what was intended when Steve Jobs created this device. Using this electronic device with the first letter being a lower cased "i", as a tool. This device for all intends and purposes should be used as a tool with numerous purposes. For me this devices purposes as a tool are as follows (Note: My "tool" is limited by a Generation 1 iPad):

Tool Purposes

1) Blogging Tool

Posts:
As I am limited to iOS 5.1.1 my options for apps that could meet this requirement were quite limited at the time of writing this. As noted for all the software I use on this device. I had to pick an app that would meet this need. The app I ended up picking as my blogging assistant is Posts. 

2) Text Editor / Code Editor

With not only the mobile OS holding my progress back, the means of finding a good text editor to write and edit code in is near damn impossible. With only two options that are free as my option. 

Proprietary software on the iDevices are going to continue to cripple its market economy as well as its app ecosystem as well. Hopefully Apple switches things around here soon. Maybe some support for people still wanting to use their old iPads and iPhones ;)

Vim:
Vim as a text editor can be really handy but once I get the hang of using an iPad without a keyboard can be dentramental with my use of this app. Can't use the shortcuts on this without the aid of a wireless keyboard.

Text Edit:
Text Edit seems to be the app of my choice because of its ease of use with this virtual keyboard. Love this app will go over how I use this in my daily as time passes by.

3) Word Processor

Using an iPad and not talking about its Word Processing capabilities would be doing it a great injustice. As I write this I believe that the options are pretty clear when it comes to the choice breakdown. I will be needing a free version for the time being as my options are quite limited. Here are the options that I will be using.

It seems the only option that I'm left with would be Pages. The only Word Processor app that I could find on th App store that supports my iOS version....

Pages: 
So far the only word processor on this version of the iPad that will actually work on my iPad. Generation 1 at least came with the best word processor on the market at least in my market :) 

4) Server Deployment / Unity with Dev Environment 

For this I had to get an app that would allow me to ssh into my Ubuntu server. I believe the best apps for this are as follows:

ServerAuditor: 
This app is great for my purposes. I can't wait until I get enough money raised up to purchase the official apple wireless keyboard for this iPad till then this app will have to do. I have yet to try this app out but once I get my server up and running I will add a special post about how I use this app to manage and maintain my server. 

VNC Viewer: 
This app will enable me to open up a VNC connection to my server. Will show whether or not this app was worth the download or not. We shall see as we progress further.

Those are the purposes for which I use this iPad for right now I'm getting more mileage out of it as a blogging utility if anything. We shall see how this progresses as my career continues to advance.


Setting up Ubuntu 14.04.1 Server Dev Environment

For this post I will be going over the simple install of my Ubuntu Server. I will be installing the following services to enable full freedom when posting websites and applications. I believe the 4 GB of RAM should be enough to run the launching purposes. I will be detailing my install and why I have selected the software that I have.

List of Servers/Services

1) Web Server - Apache2

2) SSH Services - OpenSSH Client + OpenSSH Server

3) Java 8

4) Set up LVM? (For Virtual Machines/Servers)

5) Mail Server? (For website emails)

6) MySQL Server + Client

7) PHP

8) Samba File Share (Local Network)

9) Load Balancer - squid

10) DNS Server 


These ten services will do for the initial set up. I will be posting about each service/server as well as an install and their implementation. 

Starting up again 

Today I start this blog up again. I will be documenting my progress as both a web developer, programmer, server administrator, and Android and iPhone developer. I will be creating a startup company called Jones Software Solutions based off of my own name. My goal is to start earning $400 a month of residual income by March. I also have some start up fees that will need to be assessed but so far I have most of the things I need. Besides a helping dose of tobacco. 

Development Environment

This is my development environment summary, I will be posting a more detailed post describing my development environment such as the programs and operating systems I will be using:

Desktop environment: 

Acre Aspire V3-731
Intel Core i3-3120M @ 2.50 Ghz dual core (Had to replace the processor [Intel B960] that it came with didn't have hardware acceleration making Android Virtual Environments impossible)
8 GB of DDR3 RAM
500 GB Hard Drive 
Ubuntu 14.04 (Cinnamon) 75% of partition
Windows 8.1 25% of partition

Server Environment: 

Dell Inspiron 530
Intel Celeron Dual Core @ 1.8 Ghz
4 GB of DDR2 RAM
750 GB Hard Drive Space (500GB + 250GB)
500GB Ubuntu 14.04
250GB Elementary OS
(Note: Will fresh install Ubuntu Server 14.04.1 will post about it later)
(Note: Got this computer for free no complaints here)

Mobile Environment:

HTC Desire 610
Cortex A7 Quad Core @ 1.7 Ghz
1GB RAM
8GB Hard Drive
Android OS (This little thing can't handle Ubuntu for Android :/ )

iPad Gen 1 (Cellular + Wifi)
Apple A4 @ 1 GHz
64 GB Hard Drive space
256 MB RAM
iOS 5.1.1 (Can't update any further Gen 1, if this Gen 1 can show some promise I might consider upgrading to Gen 2 maybe even 3.)

Time to start blogging and coding things to learn in such a short amount of time. Let's keep this up for a year and see how it goes!