Saturday, December 1, 2018

Object-Oriented Programming (OOP) a Quick Note from Steve Jobs

If you're an Apple fan boy/girl, you might be interested in what Steve Jobs had to say about Object-Oriented Programming. This is an excerpt from a 1994 Rolling Stone interview where Steve (not a programmer) explains OOP in simple terms

Jeff Goodell: Would you explain, in simple terms, exactly what object-oriented software is?
Steve Jobs: Objects are like people. They’re living, breathing things that have knowledge inside them about how to do things and have memory inside them so they can remember things. And rather than interacting with them at a very low level, you interact with them at a very high level of abstraction, like we’re doing right here.
Here’s an example: If I’m your laundry object, you can give me your dirty clothes and send me a message that says, “Can you get my clothes laundered, please.” I happen to know where the best laundry place in San Francisco is. And I speak English, and I have dollars in my pockets. So I go out and hail a taxicab and tell the driver to take me to this place in San Francisco. I go get your clothes laundered, I jump back in the cab, I get back here. I give you your clean clothes and say, “Here are your clean clothes.”
You have no idea how I did that. You have no knowledge of the laundry place. Maybe you speak French, and you can’t even hail a taxi. You can’t pay for one, you don’t have dollars in your pocket. Yet, I knew how to do all of that. And you didn’t have to know any of it. All that complexity was hidden inside of me, and we were able to interact at a very high level of abstraction. That’s what objects are. They encapsulate complexity, and the interfaces to that complexity are high level.

Thursday, November 29, 2018

Intrusion Detection System (IDS)

An intrusion detection system (IDS) is a system that monitors network traffic for suspicious activity and issues alerts when such activity is discovered.

Network Topology

A network topology is the arrangement of a network, including its nodes and connecting lines. There are two ways of defining network geometry: the physical topology and the logical (or signal) topology.

The most common nodes are computers and peripheral devices. Network topology is illustrated by showing these nodes and their connections using cables. There are a number of different types of network topologies, including point-to-point, bus, star, ring, mesh, tree and hybrid


 

Authentication

Authentication is the process of determining whether someone or something is who or what it is declared to be. To access most technology services of Indiana University, you must provide such proof of identity. Services such as the Central Authentication Service (CAS), Active Directory, and Duo provide this functionality for most major systems and applications at IU.
In private and public computer networks (including the internet), authentication is commonly done through the use of login passwords or passphrases; knowledge of such is assumed to guarantee that the user is authentic. Thus, when you are asked to "authenticate" to a system, it usually means that you enter your username and/or password for that system.
Additional forms of authentication, commonly referred to as two-factor or multifactor authentication, may be layered on top of login credentials. Typically, these methods use a physical token, such as a card or device, to increase security.

Firewall

A firewall is a system designed to prevent unauthorized access to or from a private network. You can implement a firewall in either hardware or software form, or a combination of both. Firewalls prevent unauthorized internet users from accessing private networks connected to the internet, especially intranets. All messages entering or leaving the intranet (i.e., the local network to which you are connected) must pass through the firewall, which examines each message and blocks those that do not meet the specified security criteria.
Note: In protecting private information, a firewall is considered a first line of defense; it cannot, however, be considered the only such line. Firewalls are generally designed to protect network traffic and connections, and therefore do not attempt to authenticate individual users when determining who can access a particular computer or network.
Several types of firewalls exist:
  • Packet filtering: The system examines each packet entering or leaving the network and accepts or rejects it based on user-defined rules. Packet filtering is fairly effective and transparent to users, but it is difficult to configure. In addition, it is susceptible to IP spoofing.
  • Circuit-level gateway implementation: This process applies security mechanisms when a TCP or UDP connection is established. Once the connection has been made, packets can flow between the hosts without further checking.
  • Acting as a proxy server: A proxyserver is a type of gateway that hides the true network address of the computer(s) connecting through it. A proxy server connects to the internet, makes the requests for pages, connections to servers, etc., and receives the data on behalf of the computer(s) behind it. The firewall capabilities lie in the fact that a proxy can be configured to allow only certain types of traffic to pass (e.g., HTTP files, or web pages). A proxy server has the potential drawback of slowing network performance, since it has to actively analyze and manipulate traffic passing through it.
  • Web application firewall: A web application firewall is a hardware appliance, server plug-in, or some other software filter that applies a set of rules to a HTTP conversation. Such rules are generally customized to the application so that many attacks can be identified and blocked.
In practice, many firewalls use two or more of these techniques in concert.
In Windows and Mac OS X, firewalls are built into the operating system.
Third-party firewall packages also exist, such as Zone Alarm, Norton Personal Firewall, Tiny, Black Ice Protection, and McAfee Personal Firewall. Many of these offer free versions or trials of their commercial versions.
In addition, many home and small office broadband routers have rudimentary firewall capabilities built in. These tend to be simply port/protocol filters, although models with much finer control are available.

Proxy Server

A proxy server, also known as a "proxy" or "application-level gateway", is a computer that acts as a gateway between a local network (for example, all the computers at one company or in one building) and a larger-scale network such as the internet. Proxy servers provide increased performance and security. In some cases, they monitor employees' use of outside resources.
A proxy server works by intercepting connections between sender and receiver. All incoming data enters through one port and is forwarded to the rest of the network via another port. By blocking direct access between two networks, proxy servers make it much more difficult for hackers to get internal addresses and details of a private network.
Some proxy servers are a group of applications or servers that block common internet services. For example, an HTTP proxy intercepts web access, and an SMTP proxy intercepts email. A proxy server uses a network addressing scheme to present one organization-wide IP address to the internet. The server funnels all user requests to the internet and returns responses to the appropriate users. In addition to restricting access from outside, this mechanism can prevent inside users from reaching specific internet resources (for example, certain websites). A proxy server can also be one of the components of a firewall.
Proxies may also cache web pages. Each time an internal user requests a URL from outside, a temporary copy is stored locally. The next time an internal user requests the same URL, the proxy can serve the local copy instead of retrieving the original across the network, improving performance.

Friday, November 23, 2018

Glossary - Information Technology

5G Technology

5G will be the key to unlocking the full potential of IoT and a host of other technologies. Businesses can get a jump on their competition if they apply the power of 5G to their products and services first. This glossary lists 25 5G-related terms and explains their meaning and their importance to the enterprise. 

From the glossary: 

Throughout history, each new technological advance has precipitated the next advance, in a continuous loop of faster, better, and more powerful technology. This principle has been the cornerstone for the IT industry since its inception. For mobile telecommunication, the next great technological advance in this cycle has been given the moniker fifth-generation (5G) wireless. 

Predictably, 5G is going to be a much faster form of wireless mobile communication than its predecessors. But 5G also promises to be more than just faster. The 5G standards being developed promise a telecommunications network that also dramatically improves latency, coverage, capacity, and density. 

5G technology will be the key to unlocking the full potential of IoT, real-time mobile streaming, autonomous vehicles, immersive virtual reality, and a slew of other technological advances necessary for a mobile, always connected world—a prime example of technology precipitating more technology. 

Businesses that can apply 5G technology to their products and services early in the advancement cycle could get a huge jump on their competition. However, as is often the case in mobile wireless technology, there are varying standards and use cases for 5G, which greatly complicates matters. This glossary lists 25 5G-related terms and explains their meaning and their importance to the enterprise.

Source: TechRepublic

Wednesday, November 14, 2018

Swift Playground Not Displaying Output

Try restart playground and type "Hello". Set the Play/Stop button to "Automatically Run" by right click on the icon (lower left corner. Show the debug area.

Tuesday, September 25, 2018

Cybersecurity & Internet of Things (IoT)

Security policy samples, policies and tools

CompTia Security + Certification - Architecture & Design

Security 1:1

NIST Cybersecurity Framework


Build a Cybersecurity Program Based on NIST Cybersecurity Framework

Cyber Threats and Cybersecurity

Threat Models

Social Engineering and Cybercrime

Hacking for Defense (Watch from 1:32:47 to 1:45:06)

Fun activities - create a security avatar

The biggest hacks, leaks and data breaches of 2016

Cybersecurity professionals: Core Attributes and Skills


Take Fortinet Network Security Technology Foundations Online Class and Get a NSE1 Certificate

https://www.fortinet.com/support-and-training/training/courses/network-security-technology-foundations.html

Take a Phishing IQ Test

From Music and Biology Major to Security Hacker

Verizon 2018 Data Breach Investigations Report (DBIR)

Saturday, September 22, 2018

Learning about 3D Printing

Glossary - 3D Printing

3D Printing - 3D printing is any of various processes in which material is joined or solidified under computer control to create a three-dimensional object, with material being added together (such as liquid molecules or powder grains being fused together).

ABS - Acrylonitrile Buadiene Styrene. One type of plastic filament used in the Fused Filament Fabrication 3D Printing process. Lightweight, high heat resistent. Used in applications such as plumbing materials, (plastic) musical instruments, small kitchen appliances and lego toy bricks.

Build Plate - the surface on which the 3D printed model is formed.

Build Platform - The part that supports the build plate.

Build Envelope - The measured limitations of a 3D printer's space, which determines the maximum physical size of a 3D model that can be produced.

Dual Extrusion - The ability to print in two colors at once. The 3D printer with dual extrusion capabilities is equipped with two extruders, each feeding its own spool of plastic filament and depositing on the build plate.

Extruder - The part of 3D printer that melts and deposits the melted plastic.

Filament - The thermoplastic feedstock for fused deposition modeling 3D printers.

Fused Deposition Method (FDM) - See Fused Filament Fabrication)

Fused Filament Fabrication (FFF) - An additive manuafacturing process in which a spool of plastic filament is heated to a melting point and deposited, built from the bottom up one layer at a time until a 3D model is created.

G-Code -  is the common name for the most widely used numerical control (NC) programming language. It is used mainly in computer-aided manufacturing to control automated machine tools.

Infill - plastic, a model is typically printed with a patterned internal "mesh". In the 3D print settings  this is usually represented by a percentage (ex. 10% infill).

Layer Height - The thickness of a particular layer in a 3D printed model. (ex. 0.20 mm)

Makerware - The free software designed for the Makerbot 3D prints that prepares your 3D digital model for printing and sends the file to the printer.

Mesh - the surface area of a 3D model in digital form. In curved shapes this is typically represented by a series of flat triangles. The smaller the triangles the finer the printed results will be.

Nozzle - The part of the extruder that deposits the melted plastic material.

OBJ - Short for Object file. A file format from 3D mdoeling programs commonly used in 3D printing.

Overhang - A part of a 3D model where there is no support below it. Parts that jut out at an angle of over 45 degrees are gneerally considered overhangs.

PLA - Polylactic Acid. Corn-based plastic filament used on the Fused Filament Fabrication 3D printing process. Biodegradable and dosen't give off fumes like ABS plastic does. Used in applications such as medical implants, compostable packing materia and disposable garments.

Raft - To prevent warping during printing and to ensure successful prints of models with minimal area on their base surfaces, a flat layer of support material will print below the model on the build plate. Raft supports are constructed to be moveable, either by dipping in a chemical bath of pulling apart

Resolution - The minimum detail size that can be expected to be reproduced. On the Makerbot Replicator 2x, the highest resolution available is 100 microns (0.0039 in.)

Shell - the outer layer of a 3D printed model. In 3D printing programs thsi is represented by the number of layers of plastic used to create the outer layer (ex. 2 shells).

Slice - Most 3D printer programs automatically generate, or "slice" your 3D digital model into the layers to prepare for printing.

STL - Short for Stereolithographic. A file format 3D modeling programs commonly used in 3D printing.

Supports - Models that have large overhangs or gaps between parts require support material to be printed, with the Makerbot Replicator 2x, the material used for supports is the same as the material used to print the model itself. Support material is constructed to be removable.

X, Y, Z axes - 3-dimensional coordinate system. Z axis represents what would typically be considered "vertical".

Tuesday, September 18, 2018

The Cukoo's Egg - Decompiled Course

Cybersecurity Job Interviews

CIS Controls

NICE Cybersecurity Workforce Framework

Microsoft Virtual Academy

Free Cybersecurity Related Resources

Cybercrime


Cybersecurity Crash Course




Security Related Readings


Black Hat Python: Python Programming for Hackers and Pentesters by Justin Seitz

The Basics of Hacking and Penetration Testing: Ethical Hacking and Penetration Testing Made Easy,  Second Edition

Hackers: Heroes of the Computer Revolution by Steven Levy(Historical view of hacking culture)

Hacking: The Art of Exploitation
by Jon Erickson


Rtfm: Red Team Field Manual

Blue Team Field Manual (BTFM)

Click Here to Kill Everybody: Security and Survival in a Hyper-Connected World, by Bruce Schneier

Cybersecurity Engineering, by Ross Anderson

Cuckoo's Egg 

Data and Goliath: The Hidden Battles to Collect Your Data and Control Your World, by Bruce Schneier

NYT's book review: Cuckoo's Egg

Breaking and Entering: An Extraordinary Story of a Hacker Named Alien

NYT book review: Breaking and Entering

Three Things Every CISO Should Know 

Shadow IT: Mitigating Security Risks

Cybersecurity vs. Cyber Security: When Why and How to Use the Term






How to setup two factor authentication

Cool Projects

Build a random quote machine:
https://www.freecodecamp.org/challenges/build-a-random-quote-machine

Text Editor

Editors for web development:
Atom
Brackets


Online Editor:
Thimble

Git Commands

Git Commands (command line)
git clone https://github.com/username/repository
git pull
git branch feature-branch
git checkout feature-branch
git status
git add index.html
git commit
git push

Start on GitHub

GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.
Below are the steps to get started:

1. Setup a GitHub Account: https://github.com/
2. Complete GitHub Tutorials: https://guides.github.com/activities/hello-world/
3. Complete the video tutorials: https://www.youtube.com/githubguides 

Learn to use fonts

3D Printing

Search Engin Optimization

Web development

Learning CSS and CSS Grid

Hackathon

State of Security

Learning about security

This is very useful information: https://en.wikipedia.org/wiki/Computer_security

CS for Kids 9-14

Saturday, March 10, 2018

Google Mail Merge

https://chrome.google.com/webstore/detail/mail-merge-with-attachmen/nifmcbjailaccmombpjjpijjbfoicppp?hl=en

Mail merge is a function that is very useful when you want to send a email message to a group of people but each with a personalized content in it. For example, you want to address each receipient by their first name, you want to include their address in the email, you want to include a personalized message, etc. want to learn more?  ..click here >>>

Watch a youtube video to learn more:



Here is step by step guidance:
1. Download Mail Merge Add-on: Mail Merge with Attachments: https://goo.gl/AnQhdK
2. Convert Google Sheet to a Mail Merge Sheet by going to: Add-ons > Mail Merge with Attachments > Create Merge Template
3. Add data to the template
4. For contacts information, you can enter them manually or go to Google contacts to select a group of contacts,  or select multiple contacts and create a new Google contact group to add to the template
5. to bring in Google contacts, go to Add-on > Mail Merge with Attachments > Import Google Contacts
6. Add new columns to include personalized content, for example, address, etc.
7. Type in personalize content to the added new columns
8. To add attached files (can be different for each person), go to the document to be attached, right click and select "Get Link", paste the link into the Attached File field. Multiple files can be attached by paste multiple links in the cell, separated by a comma. Alternatively, you can use the menu: Add-ons > Mail Merge with Attachments > Add file attachments - multiple files can be selected and the links will be automatically added
9. Schedule the delivery of the mail: go to "Scheduled Date" column and enter the date and time when the mail will be delivered, using this format: mm/dd/yyyy hh:mm:ss, e.g., 2/16/2018 10:00:00. If this field is left black, the mesage will be delivered instantly.
10. Select "Add-ons > Mail Merge with Attachments > Configure Mail Merge and populate each field accordingly
11. To create an email html template, use double brackets{{variable}} to include the variable, i.e. the colume name, in your message. This will change for each email you send.
12. Use Run Mail Merge to send or schedule the email.
13. When Mail Merge is completed, the Status column will be populated with the mail delivery status.