Saturday, May 23, 2015

Setting up a Windows 7 C/C++ development Environment

Setting up a Windows 7 C/C++ Development Environment is key when learning the basics of programming for the Windows platform. Understanding the fundamentals of C/C++ primarily C++ will help you the most when it comes to developing software for the modern Windows Operating Systems.

First we should install what is called an IDE (Integrated Development Environment) named Code:Blocks which is great IDE for practicing the fundamentals and basics of C++ and C. The cool part about this IDE is that it is cross-platform and free. Which is why we will be installing it for this setup.

Download Code:Blocks at the following link: http://sourceforge.net/projects/codeblocks/files/Binaries/13.12/Windows/codeblocks-13.12mingw-setup.exe/download

Note: We will be installing the codeblocks-13.12mingw-setup.exe for this setup.

Once finished installing now you have both the compiler mingw and a IDE to compile your C/C++ Source Code.

All that’s left is for you to write code and test it out using Code: Blocks.

Sunday, April 5, 2015

Day 12

Day 12 of development has been quite interesting. So far all that I have pretty much have been glued to the screen looking back and forth between old source code from other projects to piece together the materials that I need to complete these contract work that I have been picking up as of late. One of these said projects is a simple sCRUD (Search Create Replace Update Delete) application written in the Java programming langauge using MySQL as the database platform. At first I was trying to complete this application by using simply the terminal to become better familiarized with the terminal and coding within it. Though I believe that this requires quite a few intense study sessions of building simple applications within VIM as well as some accompanying exercises to get the hands adjusted to using VIM. Naturally my hands have been adjusted to using nano as my primary text editor when using the Linux Command Line. 


Though every programming professional I come across who do their source code usually use just the terminal when it comes to simple applications. The text editor of choice being emacs or vim when using the terminal. Though it really depends on the task at hand in my opinion. I haven't been able to meet deadlines because I have been doing it the "hard" route so instead I switched my workload from the terminal to the Eclipse IDE (Integrated Development Environment). This decision I made after simply being annoyed by not having the convenience of my code constantly being compiled like it is in Eclipse. 

Another thing that I have been working on also refamiliarizing myself with the Java API. Which is quite interesting as I travel through the materials on the Internet the difference in the different methods required for each version of Java to open up files and other methods like that is quite interesting to come across. This is always a constant reminder for me that sometimes the newer methods can be less efficient compared to their older counterparts. I feel as if by saying that I am obliged to find some evidence for what I am speaking but I believe that would be the purpose of creating a seperate post dedicated to just memory management in general when it comes to the Java programming language. I simply need to do more research on the topic before I advance any further. 

Time cost is a thing that has been on my mind everytime that I am create a program. Writing my code and variables in a fashion that I can reach a solution of O (log n). This has forced me to create my programs using pen and paper method to analyze the mathematics behind my code itself. I plan on doing some more research in finding out if there are built in methods in Java or a program that analyzes your programming code and sees if it runs the solution of O (log n) as a final run time for each sub program and method that one creates. 

Till The Next Time

Aaron Jones

Wednesday, April 1, 2015

Day 8

I do apologize to those who do keep up with this blog and actually read my content. I have been getting accustomed to a new sleep schedule in the wake of school starting next Monday for me so that I may actually get my workload done in an appropriate manner.

Today started out as a normal development day, spent all day looking for solutions for a new job that I came across. This entitles using Java to create a login system for customers at a local business here in the town that reside in. The hardest part about developing this system would come in the form of adding, implementing, and creating methods for fingerprint scanners and the webcam. Though I am quite new at integrating hardware into my software this project has shown me some things that I never really realized as a young and upcoming developer. Importing libraries that other people have created and using a Linux backend to run the said software makes this job a lot easier. I was unaware of how far reaching the open source community has become. It makes me feel happy that I choose this line of work considering most people have to work their ass off to re-invent the wheel I can simply just use someone else's code to make my code run a lot easier.

Sometimes though I do believe it does some good to write code from scratch which I tend to usually do anyways but when the time comes why not use someone's code for the betterment of your own source code. I believe this process is called reverse engineering when you take something someone else created and reinvent and make it your own. This principal was always at the back of my mind but thanks to this new opportunity I have been able to learn more topics about not only the language I'm using but in the field of Computer Science itself. Such a fascinating field, I'm glad I haven't faltered from this path over the course of trying to attain my education.

One focus of mine has been to create a personal git server for my private work. I believe in the Open Source community and believe all my source code should be provided but there are some that I simply don't believe should be presented to the general public if I am taking on contracts of this caliber. Later down the line this could will either come and bite me in the ass or a pat on the back either way I hate having this sense of uncertainty when it comes to developing a simple solution for a bigger problem.

Another thing that has been on my mind lately comes in the form of the topic: Time Complexity. I want to be able to create solutions with code in a very efficient and memory efficient code. To do this I am constantly furthering my studies with C and C++ since they have pointers which makes memory management a manual process for C but not so much for C++ code. Though I am just a beginner I believe most people unless specifically told to usually skip over the details of memory management when it comes to development process. From what I have been experiencing on reddit is that people tend to do that a lot to simply get the job done in a timely fashion. Should I adopt such a principle within my workload sacrificing quality for quantity? I'm not to sure but for the time being I am leaning toward saying Quality breeds quantity. After all look at Apple and now Google as rising titans within the computer world because they live by that motto (more so on the Google end than Apple).

Till The Next Time

Aaron Jones

Monday, March 30, 2015

Day 6

Today was a really slow day for development. I plan on getting a lot of things done under my belt when I wake up tomorrow morning. I plan on practicing the following languages for at least an hour each; Ruby on Rails, C++, C, Java, and I'll most likely throw in some PHP into that. Every reading this blog can follow my development process and progress at my person Github account. I believe that I could use any advice at this point to further my understanding of the various programming paradigms that are out there in the current development world.

I started studying Ruby on Rails with some really nice books to help me along the way. I fell in love with the MVC Framework. It is the most simplest framework that I have been exposed to. It makes things so much simpler on the developer and his process for creating online applications. I continued some progress with learning more about the C++ language. Right now I am currently learning and implementing console programs using the Object-Oriented Paradigm with Classes, Polymorphism, and Inheritance as my tools to reach my solution. I really want to start creating applications using both C and C++ at once, I believe that this process is called stacking. So we shall see where this progress will lead me. I believe a great way to try this out would be to create a Scientific Calculator using C and C++. I believe that I can use C++'s class structures to create classes for the scientific functions on the calculator. I might even bold to create an Open Source project out of this idea. To create a piece of software similar to Mathematica.

This would require me to begin construction on a website for said project including features such as a forum, and a irc channel. This would be a great project to begin my building my skills creating online applications for people to use. I am wondering currently what the status is on .Net becoming Open-Source I would love to see Microsoft Developers create a similar environment that Linux has built it's foundation upon. This idea being of course Collaboration, the single most important thing to a developer in my eyes. Nothing nowadays are created by one person, it's built by a group of individuals that is the one lesson that I have learned over the years that there is only so much a team of one person can do. Making a videogame for example takes an entire staff of people or for the indie developers out there the staff can be limited to just one to x amount of people. That is why I have such great respect for indie developers taking the leaps they needed to take to reach where they are today.

It was not to long ago that Minecraft was just a blooming flower that would revolutionize how people see games as a medium. Games like this is what a game should always strive for. As a developer myself I can see the shortcuts that were made to release the game at launch and it always drives me absolutely insane to see such a buggy product be released. I believe that if a game studio were to come out in the near future and release all of it's source code for it's games for free right of the bat people would be able to reverse engineer the product and create some amazing in a similar fashion to Monty Oum with Halo and Halo 2 creating what is known as Haloid on the internet.

Collaboration is the one thing that I can take from this day and it's importance not only in the computing world but also on the broader scale of work in general. After isn't that what we call Corporations these days?

Till Next Time,

Aaron Jones

Day 5

I noticed that I haven't been posting as daily as I want to on this blog and it's quite the similar story on my other personal blog as well.

Development Day 5:

Today and the past couple of days proceeding this I have been familiarizing myself with the differences in the Object-Oriented Paradigm and the Procedural Paradigm. Comparing the two and figuring out that it is essential for me to understand these two Programming Paradigms to perfection. Why this is? The answer is all to simple, why do people still study Latin. It's a dead language yet people of many different fields choose to study and perfect their understanding of the Latin language. This is due to the common problem solving method called Recursion. By using the problem solving method of recursion one can simplify a problem down to it's roots and simplest form and thus solve it. This is a common approach is all fields yet most people don't understand the concept itself.

After all most people reading this blog understand the efficiency and inefficiencies of using this method of problem solving to solve their problems but the efficiencies certainly outweigh all of the inefficiencies of using Recursion to solve everyday problems. A doctor learns this by identifying the patients Symptoms which lead to the resulting Disease or Problem that plagues the patient. I get this talk all the time going into the dentist about how I shouldn't smoke cigarettes because they will make my teeth fall out and have resulted in a plague build up, which by the way I'm getting cleaned for those of you who are curious. Will I quit smoking cigarettes because the dentist and doctor tell me the health risks of smoking of course not. After all I am an addict to the bloody things anyways and those damn anti-smoking commercials funded by the tobacco industry aren't helping out either.

But I digress, onto continueing my main point Object-Oriented Paradigm vs Procedural Paradigm. What I discovered is that for certain applications Procedural Paradigm works the best for those problems. Having a program go through step by step to solve a problem and being able to manage the memory like in languages similar to C leads to some pretty efficient coding. After all the OS that I'm currently using runs off this principal and nothing has broken unless I broke it myself. Like my MySQL server for some reason, that I have yet to figure out. Object-Oriented Paradigm however is suppose to be used as an extension of one's knowledge of the Procedural Paradigm is what I've discovered studying the C++ programming language over the past couple days.

Wrapping my mind around this idea was quite unique to say the least, but after closely studying the fundamentals of C++, I realized that sure one can create applications using just C++ but if one where to implement the C backing that C++ expands upon using both the Procedural and Object-Oriented Paradigms ones program would be quite efficient. This I believe is due in part to memory allocation being the most important thing a programmer can emphasize his code upon. C does a wonderful job and I believe by using both libraries one can create a solution that can follow verbatim, coming up with a solution with the time complexity of O (log n). Though it takes much work I believe by studying the root of C++ which is C can lead to some extraordinary solutions the world has yet to see.

I firmly believe that modern Operating Systems such as Apple's iOS and Microsoft's Windows OS lack these days is a firm grip on fine tuned software that meet the test of time via memory management and allocation. This is why the Linux Kernel is such a vast surpasser to each of it's competitors. Ever wonder why when using iOS it seems as if everything is auto-refreshing all the time? Or why the Blue Screen of Death or the Spinning Ball of Death are so prevalent in older machines? This is due to the lack of concern when it comes to memory allocation and management in their OSs. Most people don't care about those things and just move blindly forward to whatever looks pretty or is new. Well the best part about Linux is that a new release happens every three months compared to that of it's competitors releasing a new OS every year or two. The competitors are now releasing that their whole market depends on Linux because not only is a superior product but a versatile one at that.

I believe that Linus Torvalds is quite the genius when it came to the design of this operating system. I'm glad that I have been able to figure out what I have with the efforts and quality of coding behind the system. While I continue my education further I believe this man has pretty much solved all the problems the world has by creating something that can be edited and contributed to on such a large scale. After all if the Internet in which I writing my messages on, can be done so for free and without cost, why can't the rest of the world?

Till Next Time

Aaron Jones

Thursday, March 26, 2015

Day 2

Today was a pretty slow day for development. I have been working on just basically adjusting my coding skills in a way in which I can teach what I type. As a challenge to myself I will be writing all my quizzes and tests for my soon to be high school Computer Science course, in the language of C++. I want to use the knowledge that I already have about data structures and implement it into actual lesson plans for the students to learn their Java. Sounds like a lot of work but nothing ventured nothing gained. Also learning more about Wordpress and releasing websites using that CMS, as I gain more knowledge it seems like there isn't enough time in the day to create the things I want to create or learn the information I want to learn. All of these things are possible but they take time to adapt, so I'll most likely be looking into better time-management skills to increase my productivity as I gain more experience. Probably be a good idea to look up some tutorials on typing faster, though my standard speed is quite fast and above average of that of your average computer user it still could use some improvement. I have my technique down I think that if I continue to write this blog and increase my motor reflect skills with some daily exercises I could increase my speed from roughly 80 wpm to at least my goal is 150 wpm. I think I have a great way of getting my daily practice in. That is to download Typing of the Dead by SEGA, basically it's house of the dead with a keyboard instead of a gun. I find this approach to be the most enjoyable aspect of working in this field. Maybe one day I'll be able to get to the point in which I can create a similar game based around the same principle but on a much more rudimentary level. Until that day comes I have to keep myself busy with developing new software everyday, my next software project is to create a character creation sheet for the DnD (Dungeons and Dragons) style game called Fate Core. It's recent enough that no one has attempted to try this, but as I become more familiar with collaborating using Github I think once I get a decent enough prototype I will be able to post my project on the subreddit by the same name and see how progress goes from there. I have to start gaining more of a web presence online, I believe this is the only way I could make money in a decent way rather than losing my sanity working in some cubicle for the rest of my life. If I can spend most my time developing and expanding the Linux Software library I could eventually reach new heights as a programmer and software developer. It all begins with one step though. That step being studying new programming techniques in the following languages: 1) C 2) C++ 3) Java 4) RoR 5) HTML5, CSS3, and Javascript 6) PHP 7) Python 8) D Learning these languages and expanding upon the knowledge that I already have with most of them will be an interesting approach to many of the challenges that present themselves towards me. I believe by creating software I can gain the experience and practice I need to expand my career. The only hard part is keeping up with the workload and practice, this is going to require me to create a work schedule for myself which is probably going to be the hardest thing I have ever done, but I have to begin somehow and use the knowledge that I've gained over the years and push them to their limits to create new and better limits. I have always found data manipulation fun and interesting but it can be some of the most challenging things that I have yet to accomplish. One of these days I will look back upon my work and see that it was all for something and not for nothing. Hopefully I can stay true to my convictions and limit the amount of distractions that I have to accomplish my goals in a more timely fashion. One thing I'm most looking forward to will be the implementation of Mathematics into my coding process, I was exposed to the concepts of Time Complexity during my course work at Eastern Washington University the only thing holding me back from expanding my knowledge was not knowing the Math behind the Time Complexity, but now that I have better Math mentors I believe that through the course of time I'll be able to accomplish what needs to be done. There are many great online resources for me to tap into to gain the knowledge I seek the only problem is applying it to a real world problem to create a solution. We shall see where the next day takes me. Till Next Time, Aaron Jones

Tuesday, March 24, 2015

Day 1

Today was an interesting day for development. I got my server up and running and with that learning that iOS has many flaws in which I will get into greater detail about in another post probably tomorrow morning. Using only the tools that I have now I have challenged myself to learn the C++ programming language more than what I know already. To be completely honest I have a very basic understanding of this object-oriented language but after reading three chapters from an old textbook that I had lying around. 


The textbook I'm using to base my knowledge of the C++ programming language is Larry Nyhoff's, ADT's, Data Structures, and Problem Solving with C++. This book does a great job at explaining the intricacies of the language itself and by the third chapter one is introduced to memory management using pointers. I enjoy having the liberty to control my memory in such a fashion. After all it's predecessor is C and I do love writing code in C. 


The next challenge that I have laid before me is familiarizing myself with using Wordpress to build a gallery website for a client. I have the package already installed on my server so all that's left is to fiddle around with it until I get the job done. I might have to pick up a book or two on the CMS (Control Management System) but it'll be worth it in my honest opinion. Maybe I'll even use it to transfer this blog over to a Wordpress site depending on how many hours I have to put into this but we'll see. 


Started creation of my curriculum for AP Computer Science as I may have the opportunity to become an AP Computer Science teacher depending on if the school accepts my curriculum or not. The hardest part about creating curriculums is that I have to create it in a way that no one will get confused on the concepts but that's hard to do with Computer Science unless the student has some really great math background. This is what I'm hoping for but I'm creating two tests the students must complete on the first day of class to gauge there skills as well as some simple Google Forms to get to know that students better as well as the OS (Operating Systems) they will be using at home to further adapt my curriculum to match. Using Linux for the past couple of years made me come to realization that Open-Source Software should be the only solution for these students that want to learn how to develop. We shall see when the time comes. 


Till Next Time


Aaron Jones

Update

So life has thrown many opportunites and denied me of many in the past few months. It's been a while since I've been actually been able to post something on this blog as a result. My goal is to post my days findings at the end of the day at roughly 7pm Pacific Standard Time. 


So far though I've been offered two teaching positions, a contract for a website, and a contract involving Facebook and a local business. I've decided to use my knowledge to teach the ways of GNU and Linux and show the small community that they can do a better job using Linux as their backend rather than relying on Windows products. This also includes both the schools I'll be attending in the coming years, Eastern Washington University and Spokane Falls Community College. 


Everyday I will be challenging myself mentally, physically and spiritually to increase my skills in the fields of Mathematics which in my opinion is my worst top and in the field of Computer Science. I'll be focusing on my weakest subject Trigonometry and Calculus based mathematics so that I can better expand my knowledge in the field of Computer Science. 


I have landed myself in a weird predicament in which I can code nearly anything given enough time due to the foundation that I have built for myself with the aide of the CS Departments that I have donated my time to listening, understanding and implementing common practices amongst the field. 


My primary focus in the Computer Science field will be on advance data structures and memory management. I'll be studying both Java, C, and C++ more than I've ever done before. I honestly prefer the procedural language structure found in C compared to that of it's so called successors Java and C++ using a object-oriented programming structure. 


Till Next Time 


Aaron Jones 

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!