Sunday, December 2, 2018
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.
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:
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.
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 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
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.
Thursday, November 1, 2018
Tuesday, October 16, 2018
Thursday, September 27, 2018
Tuesday, September 25, 2018
NIST Cybersecurity Framework
Build a Cybersecurity Program Based on NIST Cybersecurity Framework
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
Saturday, September 22, 2018
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".
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
Free Cybersecurity Related Resources
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
Cool Projects
Build a random quote machine:
https://www.freecodecamp.org/challenges/build-a-random-quote-machine
https://www.freecodecamp.org/challenges/build-a-random-quote-machine
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
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
3. Complete the video tutorials: https://www.youtube.com/githubguides
Here is a series youtube videos to quickly introduce the basic concepts about Git and GitHub:
Web development
Learning CSS and CSS Grid
This is an awesome presentation on how CSS Grid can be used to create a dynamic layout:
CSS Grid Changes EVERYTHING - Amazing Presentation - Morten Rand-Hendriksen | July 2017
CSS Grid Layout - Rachel Andrew | February 2017
More on CSS Grid:
Grid by Example
CSS Grid
WordPress Theme Using CSS Grid Layouts
Building Production-Ready CSS Grid Layout Today
CSS examples:
Falling Cubes
Working Clock
CSS Grid Changes EVERYTHING - Amazing Presentation - Morten Rand-Hendriksen | July 2017
CSS Grid Layout - Rachel Andrew | February 2017
More on CSS Grid:
Grid by Example
CSS Grid
WordPress Theme Using CSS Grid Layouts
Building Production-Ready CSS Grid Layout Today
CSS examples:
Falling Cubes
Working Clock
Learning about security
This is very useful information:
https://en.wikipedia.org/wiki/Computer_security
Monday, September 10, 2018
Sunday, September 2, 2018
Friday, August 24, 2018
Saturday, August 11, 2018
Saturday, July 21, 2018
iOS App Development
Download Xcode 9
Swift Cheatsheet
Xcode Keyboard Shortcuts
Xcode Installation Issues
iPhone Resolution
App Icon Dimension and Requirements
Apple's Human Interface Guidelines
A Brief History of Graphics
Troubleshoot Swift Sdtilib Tool Error
Other Resources:
Hackintosh
Error Handling
Check Error
Global and Local Variables
iOS 12 Resource List
Property List (plist)
UIKit
Foundation
Swift Standard Library
Sunday, May 27, 2018
Saturday, March 24, 2018
Tuesday, March 13, 2018
Saturday, March 10, 2018
Google Mail Merge
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.
Subscribe to:
Posts (Atom)