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.


Monday 8 April 2019

If at first you don't succeed...


Hey everybody, today I'm going to talk about some positives and negatives that have happened to me in the last few weeks.
I'm currently studying part time with the Open University, studying towards BSc (Honours) Computing and IT. I'm in what is technically my second year, as I'm studying part-time whilst I work full time and raise children. The module I'm working towards right now is 'Cisco Networking'. So far, I have really enjoyed this module and it has been going well. It has enabled me to study a topic I'm deeply passionate about, whilst studying towards a certification alongside my degree pathway. This last weekend just gone, I participated in the first and only day school for this module. This enabled me to meet some amazing and interesting people, whilst getting my first actual hands on experience using networking equipment outside of Packet Tracer.
Going from just using Packet Tracer to being put in a room with a giant server rack, several computers and an insane number of different colour-coded cables was at first daunting.
While it seemed daunting at first, once I got paired up with people, the day got off to a good start and I soon had a feel for what my role was in the group.
The day school ended with an hour and a half closed-book exam. Now, closed-book exams have never been my strong suit. in essence, I panic a lot and my mind goes blank leaving me no option but to blag my way through the content. Unfortunately I scored a measly 27% on this attempt. However, going by my statistics for the course, I've scored quite highly. 85% for my first assignment, and 100% on my second assignment. Even on the day school assignment itself I got 100%. As disappointed as I am by this score, I've achieved so much and I'm not going to give up now. For example; last month alone, I passed my driving theory test, practical driving test and got my first job as an IT Support Engineer, whilst studying with the Open University and raising children. The people at work are incredible, very patient and supportive.
I have one assignment left for this module, which I'm hoping to complete within the next month. Using the resources available, I'm going to study harder and finish on a strong note, before hopefully sitting the iCND1 this summer.
The resources I have been using for this module, are:

-Introduction to Networks V6 Companion guide
-Routing and Switching Essentials V6 Companion guide
-David Bombal's Udemy Course (Which when i got it was available for about £10/$10) full name of the course (Cisco CCNA Packet Tracer Ultimate labs: CCNA Exam prep labs)
-CCNA Routing and Switching Portable Command Guide (Fourth Edition)
-Youtube
-#labeveryday
-Podcasts on Networking

If you're studying networking and are possibly struggling along with it, contact me, and lets try and work through some problems together. Or, refer to some of the resources I have listed above, to help you on your way. My two favourite resources in the last are the '#labeveryday' and 'David Bombal's Udemy Course'. David's videos are easy to follow and help to quickly increase confidence in Packet Tracer. Also, the best way to learn something, is by doing, which is why '#labeveryday' is also top of my list.

Thank you for all the support. I hope to post more content this weekend, so please stay tuned for that. I hope you all have an excellent and productive week.

Sunday 17 March 2019

Cyber Security

The modern world evolves more rapidly than any age previous, we live in an age where everything is digital, and i mean everything. There are TVs, Thermostats and Lights for your home, are just some examples of devices that can be controlled via an app on your mobile phone. Therefore, Cyber Security awareness is essential in protecting yourself online.

The most common cyber attacks take place through individuals who are not very security conscious, or just don't feel that cyber crime will affect them as they don't have anything worth taking. However, this couldn't be further from the truth. There is nothing on Earth more valuable than an individuals identity.

Some of the most commonly used passwords from 2018 are as follows:

123456
Password
Password1
qwerty

Along with this short list of passwords, another common password type is close family relations or pets. The reason they aren't good passwords is because, anybody browsing a social media account could easily find out about the life of the person they were 'stalking' online. People often put pictures of their family with a label underneath depicting what is taking place in the photograph. In extension of that, if the people in the photo also have social media, it is possible to tag them, enabling information to be found out more easily.
When creating passwords for online accounts, they should consist of a mixture of uppercase and lowercase lettering, with punctuation as well. for example; 'Pass@word1.' or better still '.1drOw@ssap'.
*note* these are examples and 'password' in any form should never be used as a password for any system, ever.
The password, naturally, will need to be something that you can remember, as passwords should never, ever be written down. There have been known incidents of people writing down their new password and taping it to their monitor, meaning that anybody could just walk past their desk, type in the login credentials and gain unauthorised access with minimal effort. The threat is doubled if that person happens to have administrator privileges and can make substantial changes to the data on the device.
Nobody is impervious to making mistakes regarding cyber security, there were several incidents in the news a few years ago, where government officials had been carrying laptops on a train journey. The machine in question had unencrypted sensitive data and was accidentally left on the train.
Sensitive information could be anything from login details to a social media account all the way up to details regarding online banking accounts.
It only takes a few details to steal your identity, and the more they know, the easier it is to impersonate you.
A common attack used by hackers is a skill known as 'social engineering'. An example of where this attack would be used; Would be a hacker phoning up a company pretending to be an employee that had misplaced or forgotten their details. If the hacker is able to provide details about the system or has access to account details but not the password, the person on the phone could potentially be tricked into creating an account for them as an employee of the organisation. Whereby the hacker would have successfully gained access to a confidential system without raising any red flags. This would then provide them access to confidential company information which they then maybe able to edit or delete, or possibly copy that information and sell it on elsewhere, giving other companies a leading edge with classified insider knowledge.
Another common attack on organisations come from within the organisation itself. Employees have access to information on secure servers with their login credentials, and it wouldn't flag any systems when they access the data, as they are proper clearance to view that information.
Another type of attack is known as a DOS or Denial-of-Service attack. This is where the attacker seeks to make company resources unavailable by disrupting the services of machines connected to the internet.
A DOS attack can come in several forms, one of which includes; overloading memory buffers preventing the system from carrying out its normal function, effectively shutting it down until the attack ceases.
Another attack includes flooding the target with data packets, again rendering their system unusable until the attack subsides. this type of attack is only possible if the target has lower bandwidth than the perpetrator carrying out the attack.

I hope you have enjoyed this brief overview of Cyber Security. As a reminder, it is also important to change your passwords on a regular basis to keep all of your data secure, and NEVER tell your password to another person, no matter how much you trust them.
If you enjoyed this blog and would like to see any of the topics within it, covered in more detail or would like to know about something else related to cyber security, then please message me and I shall endeavour to cover it in my future blog posts.

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!




Sunday 3 March 2019

Wifi 6 and 5G - The future is now!


Hello everybody!

Today I’m going to discuss a major topic today. That is 5G and Wifi 6 technologies, their capabilities, and ponder where those technologies will possibly lead us in the future.
If you like this blog, please follow for regular updates. Also, as always, if there is anything you would like me to cover in this blog. Please contact me and I shall endeavour to cover it.
If you like what is covered here, and you would like to read further into this, please click on the links at the bottom of this blog for further information.

5G and wifi 6 will build upon already successful technologies, and when combined together will provide a successful underpinning for future Internet of Things (IoT) technologies.
Both technologies work on a principle of low latency and high bandwidth.

as implied by the name, '5G' is the fifth generation of mobile wireless technology. its predecessors introduced the ability to send text messages, search the internet, and send/receive video data.
4G improved on the performance of those previous generations by allowing for faster connectivity with the demanding applications at its disposal.

So what is low latency?

Latency refers to delays of data transferring over a network.
Low latency networks are able to transfer massive amounts of data from one computer system to another.
Examples of where low latency is necessary, include; video calls, online gaming and stock market trading.
Long delays in data transmission, for example; in stock market trading, could be the difference between making a lot of money and losing a lot of money. The information is constantly changing, so stockbrokers need the most recent data available.
Whereas online gaming and video calls don't have such lethal consequences when experiencing high latency, it could still incur stuttering unintelligable video playback, especially when attempting to stream high quality content.

What is high bandwidth?

Bandwidth refers to the amount of data that can be transmitted over a network at any one time.
When this is combined with low latency, the transmission of data can appear seamless. low latency is kind of like a refresh rate which is measured in milliseconds. This makes transfers practically unnoticeable.

The applications for 5G and wifi 6 are, in short, mind-blowing. Compared to what we have seen in recent generations, this is a whole new level.
for everyday end-users using these technologies, they can do a number of different things; from downloading full HD movies in a matter of seconds, instead of a matter of minutes (as is the current standard).
Even that will seem infintesimally small in comparison when compared to other real world applications.
The technologies will allow for greater connectivity, not just in the big cities, but in rural areas as well.
Cisco are running a project they call '5G rural first' which aims at providing excellent internet connectivity for the areas that recently didn't have this opportunity. This will in turn provide further benefits and opportunities to a wider array of people.
This technology coupled with smart sensors could help farmers predetermine when to plant crops or when to harvest. It could even help save entire loads of crops by determining when intervention is necessary.
In the big cities, it could mean truly ubiquitous computing environments. smart cars, that are autonomous, always connected and receiving updates on traffic, road-works. The cars data could even link to a smart phone if a fault becomes present and requires attention. Okay so maybe I'm getting too carried away now, but who is to say, that wouldn't be the next logical step in autonomous transport?

However, there are downsides too, naturally. 5G works in a higher band wireless frequency to 4G. This will require more attenas to be built, for the signal to travel further. whilst this may not be an issue in big cities. It will certainly become costly in more rural areas.


Wifi 6 will also improve upon its predecessors, in terms of speed but will also improve on its capacity to carry data, and do it more efficiently. The Wifi Alliance has stated that Wifi 6 is designed to work alongside current standards and not replace them entirely.

These technologies are currently in the experimental stages, and whilst they are going to be implemented later this year and in 2020. It is not for a few years yet, that we will greatly be able to see the impact that they are having, and the applications they are going to be applied too which will change our lives in ways we probably cannot even concieve of yet. As of 2020 it is estimated that there are going to be a staggering 30.73 billion connected devices. all receiving updates and providing data to its users. The call for something that can handle this unbelievable number of connected devices is on the verge of being answered.
The question itself though begs, with IoT devices currently numbered in the billions, where do we go from here?




Bibliography

https://www.informatica.com/gb/services-and-training/glossary-of-terms/low-latency-definition.html#fbid=UlQb9osRwpP

"low latency." Definitions.net. STANDS4 LLC, 2019. Web. 3 Mar. 2019. <https://www.definitions.net/definition/low+latency>.


https://www.5gruralfirst.org/




Monday 25 February 2019

Networking 101


Hello all and thank you for joining me today. Today I'm going to start a series on Computer Networking. I'm doing this for two reasons; firstly, to aid my understanding of the subject. Secondly, to help newcomers find their feet, and for veterans of the subject to refresh their knowledge where necessary.
This series will cover basic fundamentals from 'What is a network?' to 'Implementing protocols so that networks can communicate with each other and run effectively'. All this and everything in between and beyond. If there is anything that you would like to see me cover in this series, then please contact me so that I can work it into this blog. As always please follow me, so you'll always be up-to-date with the latest postings.
*Also, if I get anything wrong in this series or I don't cover it in enough depth, please inform me so that I can make amendments*

Without further ado, let me introduce you to the wonderful world of Networking!

The first and most obvious question should be, What is a network?
A network is a series of specialized devices which are connected and are able to communicate with each other over vast distances.

There are two types of devices.
    End Devices
    Intermediary devices.

End devices are standard everyday office items, such as; Computers, Laptops, Tablets and Printers.
Whereas Intermediary devices are; Wired/Wireless Routers, LAN Switch, Multi-layer Switch and Firewall appliances.
I shall explain in further detail later on what each device does and how it can be used/implemented in a network.

In Computer Networking, it is important that you familiarize yourself with acronyms. Below I will write a separate blog post with a list of possible acronyms and abbreviations that are going to be used during this series. However, I've written two below to start us off.

LAN = Local Area Network
WAN = Wide Area Network

A LAN is as the name suggests, 'local' refers to networks in a singular geographical location. These can be found just about anywhere, for example; in homes, shops, other small and large businesses.
A WAN on the other hand, are implemented by large corporate enterprises. For example; Google and Amazon have buildings all over the globe, so they will have LANs which connect to each other worldwide. This is known as a Wide Area Network.

So how does it all work?

You're sitting in your office or in your house, and you are using your Computer, when you decide that you want to send an e-mail to a friend.
So you would start this process by typing up your e-mail and then typing in your friends e-mail address and pressing send. A Network works on fundamentals similar to the e-mail. What I mean by this, is for the e-mail to send and be legible, it requires certain information. Most importantly, the person the e-mail is to be sent too, a greeting, and who the e-mail is from. Most important of all, the e-mail requires a forwarding address, otherwise it will never reach its intended destination.

For a file to be delivered across a network medium, it has to be broken down into something called 'packets'. Packets are snippets of the file which are broken down and labelled with the correct addressing information. These are delivered through a network, often through different routes. They are then reassembled in the correct order, so that the file reads as it should.

Your IP address
The gateway address
The Recipients MAC address

There are three types of network media.

Copper cables - these work by sending data in the form of a series of electrical pulses
Fiber Optic Cabling - these work by sending data in the form of a series of light pulses
Wireless Connectivity - these work by sending data encoded using the electromagnetic spectrum

There are two types of copper cabling - Unshielded Twisted Pair (UTP) and Shielded Twisted Pair
(STP).
Shielded Twisted Pair cables are more expensive. However, these are more often used where there is likely to be Electromagnetic Interference (EMI) or Radio Frequency Interference (RFI).
Copper cables terminate with an RJ45 connector which are known as a standard LAN connector.

That is all for now, I hope this hasn't been too overwhelming and that you've enjoyed your first steps into Computer Networking. Please let me know if you've enjoyed this post and what else you would like to see added to this series in the future.

Next time, I'll try and cover some Protocols and Organizations which govern the protocols surrounding Computer Networking.