Sunday, October 14, 2018

Tech Topic


    As defined in our course text, “Hardware is the term for the physical parts of a computer”. As the bare bones of everything within Information Technology everything in all categories and facets of IT comes back to these bare bones and the computer hardware that supports them all.

So how does this all relate to the concepts of computer science and the history of computers? All the roots of computer science and of course all major developments within computing technology directly relates to the hardware and components that drive them. Without leaps in hardware technology each and every aspect within IT would be stagnate.

Programming languages have evolved since the inception of computer hardware and the hardware can drive the developments within computer programming and software as more powerful and accessible hardware can open into even more possibilities that could not have been possible on older less powerful hardware. As well as hardware being able to be bought by so many different geographical locations and incomes that were not possible in earlier days of hardware. Today small computers call Raspberry Pi can be purchased for less than $50 and have capabilities to do very many different tasks including being able to run a Python development environment.

But also without efficient programming and understanding of hardware capabilities the power and capabilities would be lost, meaning that although hardware can help drive increased development of software the opposite can also be true, for example according to computerscience.org “Most device drivers are still developed using C Language”, so being able to program efficiently within certain languages you are also able to get all the capabilities from the hardware that in turn supports the other programs being written to use that hardware.

Even within the Database world hardware plays a huge role as storage capabilities have evolved over time there are very specialized hardware components that can be used specifically just for database functions and storage. These can include storage arrays in the form of SAN, NAS, hybrid arrays and all can have very specific functions on a network. Some use slower spinning HDD’s and allow for long-term reliable storage for organizations that might require 7+ years’ worth of storage but do not need to be accessed very often. Others require large amounts of storage that need to be accessed every couple of seconds and require a high level of redundancy so will use very high-speed spinning HDD’s some can run as fast or faster than 15000 rpm and using RAID arrays allowing multiple drive failures at a time. I had the great opportunity to be a storage engineer / technician for a couple of years for Dell, so I was able to see a wide variety of these installed across many different businesses and government locations during my time and it is truly fascinating technology and even more so now.

As with everything else up to this point network architecture, management and security are no exception and are directly driven by the hardware behind them and again as hardware evolves so does all networking components and the need for networking hardware advances is only becoming more needed than ever as all businesses have either already aligned with IT systems or are doing so now all information being used for everything is or will be floating in the open air and needs to be protected. Not only in the public but also at the consumer level. Even more so now in a time where everything is being developed within virtual ‘cloud’ environments network security should be at the forefront of it all.



Vahid, F., & Lysecky S. (2017). Computing technology for all. Retrieved from

https://learn.zybooks.com/zybook/ASHFORDINT100AcademicYear2018/chapter/2/section/1



Retrieved from https://www.computerscience.org/resources/computer-programming-languages/

Most device drivers are still developed using C Language.

Thursday, October 11, 2018

Network Security


    During the week 3 Assignment where we picked different websites and pinged them using the URL as the destination this command also reveals the IP address / addresses linked to the servers behind the DNS which in turn allows network attacks which are called Denial of Service attacks or DoS and DDoS attacks on those websites. So why are DDoS attacks so effective, "DDoS attacks achieve effectiveness by utilizing multiple compromised computer systems as sources of attack traffic. Exploited machines can include computers and other networked resources such as IoT devices." What is a DDoS Attack?  Retrieved from https://www.cloudflare.com/learning/ddos/what-is-a-ddos-attack/





Phishing and Social Engineering



    I have chosen to speak more about both Phishing and Social Engineering as in both my current and past positions I have been in a place that requires yearly training on both of these subjects in order to educate its employees of the harms and safe guards against them. Phishing as described in the book "is an Internet scam that baits a user to share sensitive information like a password or credit card number." Social Engineering is when someone or a group of people can target individuals from within a company or organization in which they might want to gain outside access to or cause malicious harm to. This could include trying to gain physical access to a location where equipment might being housed. This could also be just getting enough information from someone in order to get more information about them or someone else within that company or organization. 



Examples and Potential Damage



For example getting to know someone who might work at a local bank and pretending to be interested in them or a product and getting their e-mail address they use for business, after gaining this information they might send an e-mail that looks like it is legitimate but actually is a phishing e-mail in order to gain the actual information they were wanting to get in the first place all without the person who was targeted even really understanding what was going on. This could include gaining access to user accounts which would have most likely all the personal information on those affected including SSN, bank account records, Addresses, phone numbers etc. 



Ways to Defend



In the time I have worked for both Government agencies and Financial institutions I have seen personal information within Databases which in some cases was fully available upon gaining access to the DB, going a step further and not only encrypting personal information that is being transmitted outside but also the information as it sits in the DB is a very good practice. Also educating employees on how you might be caught being social engineered without your knowing unless you understand the signs to look for and how to avoid being targeted in some cases the most simple things can stop those from happening, for example if you work somewhere that requires a badge and has restricted access, do not keep your badge in plain sight ever and remove it from your person as soon as you leave work, if you vehicle has a parking pass remove it when leaving the location, don’t post anywhere online where you actually work and be vague perhaps just mentioning the type of work you do. Having educated staff is extremely important as most times a data breach can be tied back to a human error of some kind.






Computers in the Workplace

Computers in the Financial Industry

    Since I have been working in the banking industry for the past 10 years and specifically in an IT capacity for that time this is the industry I have chosen. Pretty much everything that is done within the financial industry touches a computer somewhere and has been that way probably since before I was ever even born as there are a lot of applications and functions to do with transactions that were originally done on a mainframe before the PC was even an idea and some of those functions still run on mainframes today. From the second you swipe a credit card there are hundreds if not thousands of processes that are being ran in order to get the approvals for the transaction and many different people involved, issuing bank, processor, the POS system etc. It is pretty crazy to think about and I don't even have a full complex understanding of the entire process from end to end as there are a lot of things that I am not even involved in and areas that governed by outside agencies and third parties. In the financial industry it is especially important for all employees to be very computer literate as all the work being done is contained there and also to have that understanding to protect themselves as well as others from possible data leaks and breaches as the majority of the data being handled and processed is confidential. 

What's next?

    As far as evolution in computer hardware and technology I feel that most of what will shape the future over say the next 10 years or so is here now and just starting to be adopted by large companies now in the form of cloud computing and machine learning and artificial intelligence. Although it is funny to think that a lot of these technologies are not necessarily new but just being used in new ways. For example cloud computing, things like AWS, MS Azure and other 'cloud computing' offerings are not new technologies just new ways of using those technologies. Virtual Machines have been used for many many years however mostly within a closed environment and not offered by a company to be used as development and production environments for other companies which in a nutshell is basically what AWS and others offer. You can build your application and have it running live without ever having to boot up a server physically or deal with web hosting servers, patching OS's... etc. 

Traveling Through a Network

How ping and tracert work

    Using the ping and trace route commands the packets are sent from the requesting network source to the host network source through all the connected network equipment and lines including the local area network out to the wide area network and all the communication lines connecting all the routers in between the host website and the requester. I used the Nintendo of Japan website and a website in Russia that appeared to be similar to Yahoo or MSN for the ping and trace route activity, I found it interesting that even though the distance geographically was not completely different that the results were, the Nintendo of Japan website took 32ms and was over the span of 9 different hops where the Russian website was 148ms and over the span of 14 hops with 2 of them timing out. I do wonder if the Nintendo of Japan was perhaps faster and less hops because it may have been connected via satellite where the Russian website might have been connected through all mainland lines, really make me wonder.


Are they useful?


Ping can be helpful in not only quickly being able to see if whatever host you might be trying to connect to is even available but the amount of time it can take and possibly any sort of lag you may encounter depending on what you are trying to accomplish. It does however only really provide that limited information and diving deeper and using the trace route command you are able to see for example where the connection is having issues such as timing out and what the IP address is where it can connect to and how far the connection is able to get and or how many hops before encountering any of those issues. This could be useful as you might be able to get in touch with some support team and give them the information so they can troubleshoot from their end. A ping and or trace route might time out or return with an error if the host name / DNS is not resolving or if any of the routers or other networking equipment is having issues or is down. 

My Ping / Trace route Results

**********************************
**********************************
https://www.nintendo.co.jp/
ping www.nintendo.co.jp
tracert www.nintendo.co.jp
C:\Users\Adam>ping www.nintendo.co.jp
Pinging e5192.g.akamaiedge.net [184.25.181.244] with 32 bytes of data:
Reply from 184.25.181.244: bytes=32 time=29ms TTL=56
Reply from 184.25.181.244: bytes=32 time=29ms TTL=56
Reply from 184.25.181.244: bytes=32 time=28ms TTL=56
Reply from 184.25.181.244: bytes=32 time=28ms TTL=56
Ping statistics for 184.25.181.244:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 28ms, Maximum = 29ms, Average = 28ms
C:\Users\Adam>tracert www.nintendo.co.jp
Tracing route to e5192.g.akamaiedge.net [184.25.181.244]
over a maximum of 30 hops:
  1     2 ms     2 ms     4 ms  192.168.1.1
  2    11 ms    18 ms    13 ms  xxx.xxx.xxx.xxx
  3    26 ms    31 ms    32 ms  agg63.mtvroh2702h.midwest.rr.com [65.25.145.85]
  4    19 ms    23 ms    15 ms  agg43.clmcohib01r.midwest.rr.com [24.33.161.128]
  5    21 ms    21 ms    23 ms  be27.clevohek01r.midwest.rr.com [65.29.1.38]
  6    31 ms    31 ms    27 ms  bu-ether17.vinnva0510w-bcr00.tbone.rr.com [66.109.6.70]
  7    34 ms    32 ms    30 ms  bu-ether11.asbnva1611w-bcr00.tbone.rr.com [66.109.6.30]
  8    29 ms    29 ms    31 ms  0.ae2.pr1.dca10.tbone.rr.com [107.14.17.204]
  9    30 ms    30 ms    32 ms  a184-25-181-244.deploy.static.akamaitechnologies.com [184.25.181.244]
Trace complete.
**********************************
**********************************
https://www.yandex.ru/
ping www.yandex.ru
Pinging www.yandex.ru [77.88.55.88] with 32 bytes of data:
Reply from 77.88.55.88: bytes=32 time=145ms TTL=52
Reply from 77.88.55.88: bytes=32 time=139ms TTL=52
Reply from 77.88.55.88: bytes=32 time=142ms TTL=52
Reply from 77.88.55.88: bytes=32 time=143ms TTL=52
Ping statistics for 77.88.55.88:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 139ms, Maximum = 145ms, Average = 142ms
tracert www.yandex.ru
Tracing route to www.yandex.ru [77.88.55.88]
over a maximum of 30 hops:
  1     2 ms     1 ms     3 ms  192.168.1.1
  2    13 ms    11 ms    13 ms  xxx.xxx.xxx.xxx
  3    28 ms    33 ms    31 ms  agg63.mtvroh2702h.midwest.rr.com [65.25.145.85]
  4    19 ms    15 ms    15 ms  agg43.clmcohib01r.midwest.rr.com [24.33.161.128]
  5    23 ms    24 ms    21 ms  be27.clevohek01r.midwest.rr.com [65.29.1.38]
  6    30 ms    29 ms    32 ms  bu-ether17.vinnva0510w-bcr00.tbone.rr.com [66.109.6.70]
  7    26 ms    27 ms    28 ms  0.ae0.pr0.dca20.tbone.rr.com [107.14.19.65]
  8     *      570 ms   601 ms  ge-7-1-6.pr0.chi10.tbone.rr.com [66.109.9.74]
  9     *        *        *     Request timed out.
 10    29 ms    33 ms    30 ms  YANDEX-EURO.bear1.Washington111.Level3.net [4.14.97.242]
 11   144 ms   140 ms   142 ms  ams1-b1-xe-1-3-0.yndx.net [213.180.213.193]
 12   140 ms   138 ms   142 ms  jansson-et-4-1-0.yndx.net [213.180.213.95]
 13     *        *        *     Request timed out.
 14   144 ms   144 ms   148 ms  yandex.ru [77.88.55.88]
Trace complete.
**********************************
**********************************
ping www.google.com
Pinging www.google.com [172.217.4.68] with 32 bytes of data:
Reply from 172.217.4.68: bytes=32 time=33ms TTL=53
Reply from 172.217.4.68: bytes=32 time=35ms TTL=53
Reply from 172.217.4.68: bytes=32 time=34ms TTL=53
Reply from 172.217.4.68: bytes=32 time=35ms TTL=53
Ping statistics for 172.217.4.68:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 33ms, Maximum = 35ms, Average = 34ms
tracert www.google.com
Tracing route to www.google.com [172.217.6.4]
over a maximum of 30 hops:
  1     3 ms     2 ms     3 ms  192.168.1.1
  2    13 ms    12 ms    13 ms  xxx.xxx.xxx.xxx
  3    30 ms    29 ms    31 ms  agg63.mtvroh2702h.midwest.rr.com [65.25.145.85]
  4    20 ms    23 ms    21 ms  agg43.clmcohib01r.midwest.rr.com [24.33.161.128]
  5    27 ms    32 ms    29 ms  be27.clevohek01r.midwest.rr.com [65.29.1.38]
  6    30 ms    31 ms    39 ms  bu-ether17.vinnva0510w-bcr00.tbone.rr.com [66.109.6.70]
  7    28 ms    32 ms    29 ms  bu-ether11.asbnva1611w-bcr00.tbone.rr.com [66.109.6.30]
  8    27 ms    28 ms    33 ms  0.ae4.pr1.dca10.tbone.rr.com [66.109.1.113]
  9    28 ms    29 ms    32 ms  ix-ae-17-0.tcore2.aeq-ashburn.as6453.net [216.6.87.149]
 10    29 ms    29 ms    28 ms  72.14.198.28
 11    29 ms    28 ms    30 ms  108.170.246.49
 12    31 ms    32 ms    30 ms  216.239.50.97
 13    33 ms    33 ms    35 ms  209.85.253.248
 14    35 ms    35 ms    35 ms  216.239.40.188
 15    37 ms    37 ms    40 ms  108.170.243.174
 16    34 ms    37 ms    36 ms  108.170.238.137
 17    34 ms    35 ms    33 ms  ord38s01-in-f4.1e100.net [172.217.6.4]
Trace complete.

**********************************
**********************************

Documenting a Day


September 19th 2018, I documented the entire day and all tasks I accomplished throughout the day with all the different digital tools available; Word Processor, Spreadsheet, Presentation and Database. (MS Word, MS Excel, MS PowerPoint and MS Access). The following is my experience with each of those tools. Each of the different applications used for this have very specific sort of functions tasks that they are better utilized for or built for.

Word Processor
A word processor is key in documenting items such as essays, letters, memos, journal entries etc.

Spreadsheet
A spreadsheet is very useful in documenting information that can be used to display data visually such as numbers and statistics gathered together to show a specific picture in the form of graphs and other visual tools to display the data that is in a people friendly format rather than just a bunch of raw data.

Presentation
A presentation takes the people friendly items from a spreadsheet to another level adding not only just number data but also text like from a word processor and putting them into a visual presentation in the form of slides that can include sounds, narration via audio, animations and very pleasing backgrounds and fonts and other items to really engage the targeted audience.

Database
Database applications are meant really to just store data that will later be used in other front-end applications to display those data sets, they are extremely powerful and useful in keeping data organized and stored safely for later use and can also perform very advanced data manipulation and formatting within the DB that may be more difficult or not even possible in other applications.


Conclusion
    I feel that out of all the applications that I used to document my day that a spreadsheet is the most appropriate for this task as you are able to label each column and row and provide not only all the relevant information for each task but also calculate the amount of time spent and can see all this information within one screen rather than multiple pages or slides. I feel that for word processor a digital journal would be most useful, if you are presenting smaller amounts of data or text and want to be able to show this more though pictures or bullet point items than presentation is best and for storing raw data and being able to pull that data at anytime and display it in other front-end methods that Database is best.

Web/Mobile App Critique



    An app that I use on a daily basis in both Web form on the PC and also on my mobile device is the IGN app / IGN.com website. IGN is mostly a gaming news platform but also reviews other things such as movies and TV, computer hardware, gaming and movie memorabilia among other things however they began as a gaming review site and that is their main attraction if you will still to this day.

Design and Usability
    The overall design is pretty good on both platforms however I do feel that it is much more pleasing to the eyes on the mobile version over the Web version that you would see on IGN.com either on your phone web browser or the PC. The usability again is fine for both versions however I do feel again that the web version has an easier interface to not only navigate to find what you are looking for but just the general layout in general. The two screenshots attached show the direct comparison to both the web and mobile app and it is pretty clear to see that the Web version really just appears to be a cluttered mess but in comparison the mobile app version fills the screen perfectly and is very easy not only to navigate but find exactly what you are looking for very quickly.

Recommendations for Improvement
    I think my biggest complaint here would be I feel that we are experiencing a reverse in website functionality and mobile in the sense that even in just a short amount of time probably like 5 years or even less it has gone from Website / Web app being the focus to Mobile apps getting all the attention and polish leaving the Desktop / web versions of the same application / website to suffer. I remember when so called smart mobile devices were first becoming a thing and widely adopted and it was just the opposite and viewing material on a small device was very difficult and often just not practical as everything was really catered to larger screens. But now instead of it being that just the mobile market has become level with the large screen / PC market for news and applications we have everything being developed with ONLY the mobile market in mind and leaving the large screen formats to suffer. When I go to IGN on my PC there is a ton of wasted space on both the left and righthand side of the web browser however the same material if perfectly formatted for mobile, I would like to see this addressed and the content presented properly on PC as well. Also the PC / Web version is over bloated with garbage from your browsing history and displayed in a horrible fashion on the Web version and just too distracting and honestly just really in annoying places and makes the website feel like a fake clone of the real material, like I shouldn't be here and I am about to be flooded with viruses. But the mobile version is not as bad, in fact most of the ads which drive their revenue are tied to video content and not shoved down my throat like in the web version. 
    The one thing that really stands out about the web version that drives me crazy and should be a simple but huge fix would be being able to filter out what system / console you are wanting to see reviews for. On the PC / Web version it is pretty easy to filter out which system you want to see reviews on but I can't seem to do it in the mobile version. 

Programming Languages



My Experience with Scratch

Using Scratch for the first time and a block programming language for the first time since around 2011 or so was a bit of a challenge at first. I think the simplicity of the program made it a bit more difficult for me personally as I am use to creating things from scratch in my current work place through SQL and scripting languages.

I followed the built-in tutorial on getting started and I was able to make more sense of how the program worked and was able to overcome my initial struggles however I still need some more practice in order to feel completely comfortable with it. Working through this exercise did however open up my mind a little bit into how some of my favorite programs are made, games. Seeing in simple form how being able to take a 2D sprite and give it input made it make a lot more sense how those things are done with in a game on the back end of it.


Differences in Programming Languages
Machine language is directly interacting at the hardware level with the CPU and is done at a binary level as the CPU can only understand 0 and 1 instructions. Assembly is just a interface between human language and machine language that allows for easier input from humans to the computer by converting the assembly language which is much easier text for humans to use into the binary machine language the CPU can understand. A High-level programming language goes a step further in creating an even more human text friendly way of converting instructions via a compiler to assembly and then machine language.


Scratch vs. Activities within Textbook

It might seem strange or backwards but I actually had an easier time understanding the exercises in the chapter 2 programming sections than my initial work with Scratch. I found the Assembly language exercise to be the easiest to use but I did really enjoy the binary one as well. If you were trying to work directly at a hardware level and get the most performance out of a piece of hardware I think the machine / assembly language would be the most effective as those directly interact with the CPU / hardware. However, if you are trying to create software to improve human tasks / efficiencies than a higher-level language will be most efficient. I feel that higher-level programming languages are definitely most popular as any program that is written to be used by a human is written in a high-level programming language. Games, smartphone apps, OS’s, Websites and 100’s of thousand others are all written in high-level programming languages as they are directly interfacing with human interaction. I do however thing that machine language / assembly is just as important because they are still required to make all programs run but are rarely being directly programmed for in the mainstream. Companies that sell hardware that directly interacts with other hardware / CPU and other programs however would still use this to great extent.