Showing posts with label Windows. Show all posts
Showing posts with label Windows. Show all posts

Wednesday, 3 July 2019

100 Days of Python 1.0

Today, I'm officially going to start my '100 days of Python Challenge'. I realise I'm starting this challenge a bit later than i said I was going too. However, some other stuff had to take priority over this challenge.
I'm going to aim to study this for one hour a day for the next 100 days, which is a realistic goal for me.

The main requirement for day zero, is to download and install Python.
To install Python on Windows; head over to https://www.python.org and download the latest version.
Python for Windows will automatically download 'IDLE' as well, which is a text editor for creating Python Script. Once installed this can be found in the start menu.

If you're running Linux, open the Terminal and type 'Python'. If Python is installed on the system, it will run straight from the Terminal. In the event that it isn't already installed, the Terminal will give you the pathway to type in to get it installed.
Once Python is installed on Linux, access it via the Terminal or open the 'Text Editor' application.
When creating Python Programs in Text Editor, be sure to save them as .py
This will then save your program as a Python executable which can executed by closing the text editor and reopening it.
Pretty simple, right?

I'm new to Python, so I am officially starting this challenge as a complete beginner. The first program I wrote was a standard Hello World program.

Hello-World-Program.py

print("Hello World")


Resources I'm going to be using for this Challenge are as follows:

- Py for iPhone
- Code academy (https://www.codecademy.com/learn/learn-python-3)
- Python Programming Third Edition book by Michael Dawson

I'm also considering signing up to one of the courses on Udemy, but I haven't decided on a course that I want to sign up for as of yet.

I will try and update this blog every 10 days or so, I think this will be a good way to document what I have learnt.

Over the next few days, I hope to learn more of the Python Syntax and create several basic programs which will incorporate a variety of different variables.

I realise this blog has been somewhat briefer than I usually aim to write, however, seeing as I've just started the challenge I don't have a lot else to add at the moment.
Please feel free to join in this challenge and let me know how you are progressing!

That's all for now!

Sunday, 30 June 2019

Installing Ubuntu on a Virtual Machine

Installing Ubuntu Linux as a Virtual Machine
The software required for this project is as follows:
- Virtualbox for Windows (Assuming you are running windows)
- A version of Ubuntu

There are several different virtual machines available, which I'll document down later, it may be best if you go and discover which one you like personally, although they all offer similar functionality.
For example, Windows 10 Pro comes with its own virtualisation software already installed, called Hyper-V. However, I don't have a copy of Windows 10 Professional.
For this installation, we are going to be using Virtualbox.

Step 1:
- head too https://www.virtualbox.org/wiki/Downloads

From here, you click on 'Windows Hosts' and follow the straightforward onscreen instructions.
Once the software has installed, there should be an icon present on the desktop. If the icon is not there:
- Go to the Windows Start Menu
- Search for Virtualbox
- When you find it, right-click and 'pin to taskbar'
This is so that it can be easily found later and saves extensive searches every time you wish to access it.

Step 2:

Find the version of Ubuntu you wish to install. For this example, I'm going to use the most recent release, which is 19.04 (Disco Dingo).
Ubuntu can be acquired from: https://ubuntu.com/#download

The downloads page provides two Desktop options. There is 18.04 LTS, this is the long-term support edition. LTS edition stands for 'Long Term Support' and is supported by Canonical for five years. The regular version is support for six months.

Step 3:
When you have downloaded both pieces of Software, it's time to apply them. Open Virtualbox, and at the top of the interface; Click 'new'.
That should open a new window, which I have entered the following options:
Name: Ubuntu 19.04
Machine folder: C:\Users\user\VirtualBox VMs
Type: Linux
Version: Ubuntu (64-bit)

Step 4:
It's time to allocate the Memory Size of the machine, this refers to the amount of RAM allocated to the machine for it to run processes. for this example; I'm going to leave it set at the recommended, which is 1024MB (1GB).

Step 5:
To create the Hard-Disk, select the option 'Create a virtual hard disk now'.
-Click 'Create'
-Select 'VHD (Virtual Hard Disk)'
-Dynamically allocated Storage
-Assign the amount of disk space you'd like to be added to the Virtual machine
-Click create

Step 6:
Now that you have created the virtual machine, it is time to power it up and follow the on-screen instructions to install Ubuntu.
-Select Language and the option for 'Install Ubuntu'
-Select your desired Keyboard options, in this case I've gone for UK keyboard, as that is what I have.
-Setup under Normal install and leave 'install updates after install' checked.
-Installation type 'Erase disk and install Ubuntu', Select this option, and Encrypt disk, if you'd like the home drive encrypted for extra security.
To conclude setup; Create a username, name for your Computer and a Password.

Passwords should always include Capital letters, numbers and special characters. This makes it much more difficult for somebody to access your data.
An example of a secure password: P@ssw0rd1!
Although I'd never recommend using the word 'Password' in any format.

Congratulations! You've now installed a virtual machine and a new Operating System. Have fun trying it out. 


FAQ
How do I disconnect the mouse from the Virtual machine so that I can use it on my actual machine?
Pressing the Ctrl key on the right-hand side of your keyboard will free up the mouse, so that it can be used on your regular machine.

What do the version numbers of Ubuntu mean?
The numbers stand for year: month that the distribution was released, therefore, at the time of writing this, the most current release is 19.04. There are two versions released a year. One in April and one in October.

Are there any benefits to using a virtual machine?
You can create snapshots of the Operating system, so should anything go horribly wrong whilst testing something, you can roll back to an earlier time when everything was working perfectly.
When you have finished using the machine, make sure to save all work and power it down, just like you would with a regular computer.


Wednesday, 6 March 2019

Networking Protocols - TCP/IP and OSI Models

Today I'm going to cover Protocols and Standards within Computer Networking, more specifically, the TCP/IP and OSI conceptual models for communication. We're going to look at how they link together to form the framework for device-to-device communication over local and worldwide networks. 

There are a plethora of different types of Standards and Protocols in Computer Networking developed and worked upon by a variety of agencies. All with the striving goal of creating seamless, instantaneous communication. They are required, to govern systems and to ensure structure and reliability in the products available and the functions across multiple communicable platforms. In short, the conceptual model remains relevant whether a device, is running the latest Apple Operating System, Windows or Linux.

Network communications protocols can be split down into seven different layers using the OSI model. The OSI model was developed in 1984 by the International Organisation for standardisation (ISO) and remains continues to be the structure on which Network Protocols are based. 'OSI' is the abbreviation for 'Open Systems Interconnection Model'.

There are seven layers that make up the OSI model, and they can be remembered in a variety of different mnemonic phrases. for example;

  • All People Seem to Need Data Processing
  • Please Do Not Throw Sausage Pizza Away
Each layer actually provides a strict set of protocols and are represented below in corresponding order:
  • Physical (Layer 1)
  • Data Link (Layer 2)
  • Network Layer (Layer 3)
  • Transport Layer (Layer 4)
  • Session Layer (Layer 5)
  • Presentation Layer (Layer 6)
  • Application Layer (Layer 7)

 The Physical Layer transfers data at the binary level. This means all data is translated into ones and zeroes before it is transferred along a network medium. Layer one also governs network media and signals; this includes network cabling and wireless transmissions of devices connected to the network.
At Layer 2 or the Data Link layer, bits are encoded/decoded and appropriate IP addressing information is added before the data frame can be sent across the network. If this wasn't done, the data wouldn't know its destination and would never arrive.
The Network Layer follows on from the Data Link Layer, and works on four basic principles to complete its job. It addresses and encapsulates the data before it is routed across the network, once it arrives at its destination, the packet is then de-encapsulated.
The Transport Layer opens up temporary communication between applications on a network, allowing the transference of data between the two applications.
The Session Layer opens up and controls the communication between several computers. Whilst it is active, it maintains and controls the temporary connections between multiple devices.
The Presentation Layer formulates the information that has been transferred over the network back into a readable/understandable format for the end-user.
The Application Layer is the system that provides the interface for the end-user to use. Application Layer protocols are used to exchange data between programs running on source and destination systems.

There is an equivalent set of standards to the OSI model and that comes in the form of the TCP/IP model.
TCP stands for Transmission Control Protocol, and it is a standard that defines how to create and maintain network communications. This includes everything from establishing communication with other devices, either on the same network or across vast distances. It also ensures all data is transmitted as quickly and efficiently as possible, with minimal to no errors.
The IP part of TCP/IP naturally stands for Internet Protocol. Internet Protocol can be viewed similar to that of a postal code, wherein without it, you wouldn't be able to send letters or packages. To put that in computing terms, you wouldn't be able to send and receive files or videos.
The TCP/IP model is broken down into four layers as opposed to the OSI model's seven layers.
Again, just like the OSI model, there is a mnemonic which can help you to remember the order of the Layers, and it is as follows. The best way to remember the TCP/IP model is with this sentence: 'TCP/IP comes in A TIN'
  • Application
  • Transport
  • Internet Layer
  • Network Access
The Application Layer represents and controls the functions of the Application, Presentation and Session Layers.
The Transport Layer represents its counterpart in the OSI model.
The Internet Layer represents the Network Layer, and the Network Access layer controls the combined functions of the Data Link and Physical Layers.

Thank you for reading the latest rambling of my blog. As always, if there is anything that you would like me to cover, either new topic or something in more depth, please let me know. Also, if I've made any mistakes in the writing of this topic, please inform me so I can make the necessary amendments.

Until Next Time!