PM Technical Master

¡Supera tus tareas y exámenes ahora con Quizwiz!

Bandwidth

How much information can be transferred in a particular time.

The SQL DELETE Statement

DELETE FROM table_name WHERE condition;

How does GPS work?

GPS is a system of 30+ navigation satellites circling Earth. We know where they are because they constantly send out signals. A GPS receiver in your phone listens for these signals. Once the receiver calculates its distance from four or more GPS satellites, it can figure out where you are.

Heap

Heapsort is a good choice if you can't tolerate a worst-case time complexity of O(n^2)O(n2) or need low space costs.

Throughput

Rate of successful message delivery over a communication channel.

Good relational database schema design

Reduces redundancy: divide information carefully among tables to eliminate data redundancy. Duplicate data wastes space and can lead to inconsistency. Provides access with information a user needs to join tables together. (Use good primary keys, while creating proper relationships between tables.)

What is a Boolean?

True or False logical operation or condition. Is the light on or off?

Encoding Images

- Documents with words contain individual characters. And each of those characters is encoded into a digital format, and is stored or transmitted using binary numbers. The same happens with images. But instead of characters, it is based on pixels. When you have an image, it is broken up into individual pixels. Each pixel defines the color that needs to be shown on the screen to render that pixel correctly. Images that are based on pixels are called bitmaps. Let's take this image for instance. It is divided into multiple rows and columns of pixels. Each pixel needs to store the value of three colors, red, green and blue, in that order. On a screen, each pixel actually has three emitters, one for each color, red, green and blue. When you store the values of each color, you are telling that unique pixel how bright to make each unique color inside. This is called RGB, and it is how most screens work and display graphics. Each of these pixels needs to store these three color values. One simple way to do that is to store the value of each color, red, green and blue, as a two-digit hexadecimal number. A two-digit hexadecimal number can be stored in a single byte, so for three colors, you would need three bytes per pixel. Each pixel then stores the unique combinations of red, green and blue as a number, which is then encoded to binary. So, for a picture that is HD resolution, which is 1920 by 1080, that is 2,073,600 pixels of data to store. And using the example we talked about before, it would require 6,220,800 bytes, or about 5.9 megabytes to store that image. 4K 4X size of HD = 24 megabytes.

Why Algorithms?

-Gives an ides of runtime -Helps us decide on hardware requirements -What is feasible vs what is not -Improvements are never an ending process

Why Data Structures?

-Ways we store data -Concrete implementation of ADTs that organize and retrieve data stored in memory.

Full sizes and bytes

1

Ethernet

1 GB/s (gigabyte per second) = 128 MB/s

Google AdWords

1) A person performs a search 2) An auction starts; Google search engine goes through all of its advertisers campaign looking for keywords in their ad groups to match with the user's search term. When ads were created each advertiser set bids for their keywords, indicating the amount they're wiling to pay when someone clicks on their ad. 3) The google search engine ranks all the ads. After rankin all the ads, the search engine decides which one to show, based on advertisers bid and relevance to the search results. If the ad isn't deemed relevant, it won't show. 4) A search turns into a sale. Then the user taps on the results and taken to the landing page.

How can you speed up an API call?

1. Make multiple requests at a time - What you need to do is just to create a script that executes API calls in parallel, not one after another. Fortunately, PHP offers a set of curl_multi functions which are designed to do it. 2. Separate API calls from the app main flow - application responsible for handling the requests from the main flow to a standalone script. It means that the API calls will be executed in a separate thread that doesn't interfere with the part of the code responsible for displaying the site. 3. Build a smart cache engine - Another solution to speed up an application that relies heavily on API usage is building a smart caching engine. It may prevent your script from making calls that are unnecessary as the content located on a different server hasn't changed. Proper caching can also reduce the amount of data transferred between the servers in a single API call. 4.) Programatically compress the result of web API - Data size will be reduced response time will increase (increasing the speed of the communication between the Client and Server.)

How could you reduce load times?

1. Optimize Caches to improve Page Load Time. 2. Trim Down JavaScript Parsing to achieve Ideal Page Load Time. 3. Do Away with Redirects and Improve Website Speed. 4. Minify JavaScript & Style Sheets to Speed Up your Website. 5. Minimize image size 6. Use the Content Delivery Network (CDN) to reduce page load time. Access to a faster server near your user's geographical location ensured faster loading time.

Database

A collection of data organized in a manner that allows access, retrieval, and use of that data. Stores information in tables where each table has its own rows and columns. Usually the point of failure. to scale out database needs, we could use caching, indexing, and replication. If we need persistent reads, we could read from the master (facebook profiles). For writes, we can use database sharding where we spit the master database into multiple master databases. Vertical sharding - where you take each table and put it into a new machine so we may have a user table, a tweet table, comments table, user support table. But if a single table is growing very large we may want to shard the table horizontally where we take the single table and split it accross multiple machines.

Hash Tables

A has table is an implementation of the associative array abstract data structure. When a has table is created internally, its really an array-based data structure where we add additional functionality to get us past the limitations of an array. a hash table is a data structure that is created when you hash value and then store all those hashed values. Essentially, if you have a list of names, you can create a hash table out of all those names. A way we can implement an associative array. Basically mapping a key (Jay) to the value (phone#). -Always added as a set -Keywords vary by language #Put #Add #Insert 2 main components: Key: Jay Value: Phone# Hash (key) ->index (integer value). The index that pops out is used to calculate the array index because it may be a huge number. Take a modular approach (run modular open); we take the hash value, divide it by the size of the has table, or a number of buckets in the table and use the remainder as the index for where we'll store the value for a given key. Hash(jay) -> 3 (no matter how many times you run the key through the has function, it will always produce the same key Hash function: Is going to look at a certain key and going to evaluate that key and spit out some sort of index number and it's going to tell us at what location in the array to store the above location. There is no linear search and no traversing through a series of elements Typical questions that rely on hash tables contain phrases like: -Search for elements within a large data set -Find duplicate elements in a data set -Quickly store and retrieve elements from a large data set

data type

An attribute of date that describes the values it can have and how the date can be used.

Dynamic Programming

An optimization technique using something called caching. At a higher level, dynamic programming is a way to solve problems by breaking it down into a collection of subproblems solving each of those solve problems just once and storing their solutions in case. So remember this memoization is simply a way to remember a solution to a solved problem. So you don't have to calculate it again. We can reduce the time and space complexity of our algorithm by using memorization and we can do this because the solution to each Suppe problem is what we call optimal. One is that you can't think of dynamic programming as combining divide and conquer. What we did with the tree-like structure of Bonacci number where we use recursion and using reuse that is cashing in memoization with recursion to get savings in performance and use dynamic programming.

Linked list

Another common data structure we'll dive into in this chapter is called a linked list. Similar to an array, a linked list is a linear data structure. However, the elements of a linked list are not stored at contiguous locations. Instead, we link the elements using pointers. Now because each link is a pointer, or in other words holds an address to a memory location, this data structure does not have to be stored at contiguous locations in memory. We can link to any location in memory. But since we have the pointers, our data can be anywhere in memory. We just need the memory address, or in other words the next pointer. Now, the third train car has a null next pointer. So that means this is the end of the trail for our linked list. And that's because we must follow each individual train car's next pointer to find the following train car. Node: contains data and a pointer. The first note is the head of the list, we can find any items in the list by following the pointers. Operations: Adding - Easier to insert from the back or front of the list. New pointer point to the first node. When inserting at the back of the list, we take the last node of the list and set its next pointer to our new node. This new node will have its associated pointer pointing to nothing since it's the last item in the list. Accessing - To access an item, we don't have to have an index like we do with an array. This means we have to follow the pointers until we find the item we want to access. So, if we want to access the third item in the list, we would need to grab the first item, follow its pointer to the second item, grab the second item and then follow its pointer to the final item we want to access. Searching - Follows the same method, we have to traverse through the entire list to find a node with a specific value or find out that data doesn't even exist in the list. Deleting - To delete an item, we first have to find the item and then update the next pointer of the node preceding and following that node. Sorting - It depends on the algorithm you use. Merge sort is often preferred for sorting a linked list. Other algorithms, such as quick sort and heapsort are not ideal because linked lists have slow, random access performance. What do I mean by slow, random access? The way we access items in a linked list is sequential, or direct, because we must access the first item to get to the second item, and the second item to get to the third item and so on.

System Design

Ask how much load system will be put under. Never want to scale too early or put in premature optimization because it will make the system a lot more complicated than needed. People value simplicity these days. The simplest we keep the system the better.

What is the difference between latency and bandwidth?

Bandwidth is the maximum amount of data that your internet service provider can transfer from one point to another. The two components of bandwidth are your download speed and upload speed, which are measured in megabits per second, or Mbps. Think of bandwidth as a pipe — the wider it is, the more data that can be transferred at one time. Latency refers to the amount of time it takes for data to travel from one point to another. You may also hear latency referred to as "ping" during a speed test. Your latency, or ping time, is usually measured as milliseconds, or ms. Using our pipe analogy, think of latency as the water pressure, or how quickly data is moving through the pipe. The difference between bandwidth and latency comes down to what they are measuring. Bandwidth looks at the amount of data being transferred while latency looks at the amount of time it takes data to transfer. These two terms come together as throughput, which refers to the amount of data that is being transferred over a set period of time. If you have high bandwidth and low latency, then you have a greater throughput because more data is being transferred faster. Why do bandwidth and latency matter? For more casual internet users, bandwidth and latency may not be as important for everyday tasks. However, when it comes to certain internet activities that require both downloading and uploading data — such as playing video games, streaming movies and music or video chatting — then your throughput is more important.

What is Big O notation?

Big O notation is used in Computer Science to describe the performance or complexity of an algorithm. Big O specifically describes the worst-case scenario and can be used to describe the execution time required or the space used (e.g. in memory or on disk) by an algorithm. Operations: Access, update, insert, search, delete, and sort items. For each, we can come up with the time complexity or how long it takes to run independently of input.

The SQL CREATE DATABASE Statement

CREATE DATABASE testDB;

SQL FOREIGN KEY on CREATE TABLE

CREATE TABLE Orders ( OrderID int NOT NULL, OrderNumber int NOT NULL, PersonID int, PRIMARY KEY (OrderID), FOREIGN KEY (PersonID) REFERENCES Persons(PersonID));

SQL PRIMARY KEY on CREATE TABLE

CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, PRIMARY KEY (ID));

Caching

Caching is a way to store values so you can use them later on. Caching is just a way for us to speed up programs and hold some piece of data in an easily accessible box and memoization is a specific form of caching that we're going to be talking about because we use it a lot in dynamic programming.

N-Tier/Multi-Tier Architecture

Client Tire (User Interface) -Main function of interface to translate tasks and results to something he user can understand. Business Logic Tier - processes commands makes logical decisions and evaluations, and performs calculations. Moves and processes data between the two surrounding layers. Database - Information is stores and retrieved from a database or file system. The information is then passed back to the logic tier for processing, and then eventually back to the user.

What is an array

Collection of elements where each item is identified by an index or key. Like a row in of seats at a movie theater. If you think of row of seats they are numbered depending on where they are located. Each row is a collection of seats. Each seat has two options. A person sitting in it or its empty. In other words, each seat could have data in it or not at all. But the seat is still numbered. The labeled number that helps identify later. Arrays are great if we plan on inserting once and accessing a bunch, arrays is a good data structure to consider. Not great at inserts or deletions. Associative Array - Collection of key-value pairs. Think of a flash card game. The question on the front of the flash card could be the key and the answer on the back could be the value.flash cards. Key: Value California: Sacremento -Key-value pairs are bound together -Each key must be unique -Order isn't important -Values are accessed with the key -Values do not need to be unique

What are data structures?

Containers. They allow us to combine several pieces of data into a single structure. It helps us connect and group our data. Gives us organization, storage, and access. What exact size of a data structure depends on: 1. Allocated space for the structure 2. Number of pieces of data 3. Size of each data piece

What are cookies and how are they used?

Cookies are most commonly used to track website activity. When you visit some sites, the server gives you a cookie that acts as your identification card. Upon each return visit to that site, your browser passes that cookie back to the server. ... Servers can use cookies to provide personalized web pages. The web server sends the browser/server a copy of its SSL certificate. The browser/server checks to see whether or not it trusts the SSL certificate. If so, it sends a message to the web server. The web server sends back a digitally signed acknowledgment to start an SSL encrypted session.

How does search work? What is web crawling?

Crawling is the discovery process in which search engines send out a team of robots (known as crawlers or spiders) to find new and updated content. Content can vary — it could be a webpage, an image, a video, a PDF, etc. — but regardless of the format, content is discovered by links. 1) Crawl - Scour the internet for content, looking over the code/content for each URL they find. 2) Search engines process and store information they find in an index, a huge database of all the content they've discovered and deem good enough to serve up to searchers. 3) Provide the pieces of content that will best answer a searcher's query, which means that results are ordered by most relevant to least relevant. When someone performs a search, search engines scour their index for highly relevant content and then orders that content in the hopes of solving the searcher's query. This ordering of search results by relevance is known as ranking. In general, you can assume that the higher a website is ranked, the more relevant the search engine believes that site is to the query.

The SQL DROP DATABASE Statement

DROP DATABASE databasename;

NoSQL

Database management systems that handle non-relational data like documents, increasingly used for maintaining and querying the large amounts of data from the Internet. Queries can be made using "Not only Structured Query Language." NoSQL is a type of database that stores and retrieves data without needing to define its structure first - an alternative to the more rigid relational databases. SQL databases are vertically scalable whereas NoSQL databases are horizontally scalable

load balancing

Distributing a computing or networking workload across multiple systems to avoid congestion and slow performance. It also keeps track of status of all the resources while distributing requests. If a server is not available, it stops sends traffic. User - Web Server Web Server - Internal Server Internal Server - Database

Decimal numbers Whole numbers

Double, Float Short, long int The difference between data types are the precision they store their values. Also the range of numerical values the data type can store. Short = 16 bits (whole numbers) Int = 32 bits Long = 64 bits (more memory)

What is encryption? How does SSL communication work?

Encryption is a process that encodes a message or file so that it can be only be read by certain people. Encryption uses an algorithm to scramble, or encrypt, data and then uses a key for the receiving party to unscramble, or decrypt, the information.

queue

FIFO policy. Like stacks and lists, queues represent a series of ordered objects, but the way we access, add and remove items is slightly different. If you think of a queue at an amusement park or a line of people at a store, a queue has a front and a back, and it works the exact same way in code. It is designed to have elements inserted at the end of the queue and elements removed from the beginning of the queue. When people stand in a line, the first person that gets in the line is the first person out of the line, and the last person that gets in the line is the last person out of the line. We say queues follow a FIFO or first in, first out policy for this reason. Some important terminology to keep in mind is engueue and dequeue. When we add an item to the queue, we say we engueue the item, and when we remove an item from the queue, we say we dequeue the item. Similar to stacks, we can peek or see the first item in the queue, also known as the next item to be dequeued, without removing it from the data structure. Advantages - Queues are similar to stacks in that they only show their advantages when you're using first in, first out or FIFO functionality. Enqueuing to the back and dequeuing from the front is also very quick and takes constant time because the queue has a doubly-linked list implementation. f you find yourself wanting to pull something from the middle of the queue consistently, a priority queue might be a good option to give your items priority and allow certain ones to skip ahead of the others. Cons - However, if you are pulling most items from the middle and not the front of your data structure, then queues are not your solution.

How would you reduce Gmail storage size?

File compression - tradeoffs are usually increased latency and sometimes loss of quality Limit the size of individual emails - this would encourage users to not use gmail to send emails with large attachments such as media files. Users can switch to paid accounts for Google drive for sharing/sending large files. Automatically archivive old emails - emails and attachments that are not accessed often or recently can be archived to cheaper hard drives (cloadline, nearline) Prompt use to delete email after certain # of days. Popup.

How does Chromecast work?

Google's Chromecast is a device that, when plugged into the TV, can play media on the television or stream content displayed on the computer. Data connection attributes Bandwidth. Bandwidth is essentially the capacity that the data connection allows. If we're hoping to mirror a Chrome tab, bandwidth might not need to be significantly high. However, if we're hoping to watch 4K video on our computer screen and successfully mirror it to the TV, we'll need a very high bandwidth. Latency. Latency is the delay in data transmission. High latency is often correlated with poor bandwidth connection. High-latency interactions like video chatting or playing video games require several pings back and forth between the client and server. Range. Depending on the range requirements, it might be better to stay away from Bluetooth connectivity, which has a limited range. This may not be a problem for the Chromecast use case. Connection setup. Depending on the type of data connection, the setup user experience could vary in difficulty. A smooth setup process is a huge plus, especially if it is likely that multiple users will want to setup device connections. Security. Poor security in the data connection could allow bad agents to intercept the message. Data Usage. Users will want to minimize costs in the data transfer, and therefore, minimize data usage. This mostly applies to the LTE connection. Power. Different types of data connections cause varying degrees of power consumption on the device. We'll want a small power consumption ideally.

Long-Polling vs WebSockets

HTTP Long Polling: it's similar to shot pooling except the client does not blindly keep checking for new information at a set interval instead in this model the client makes a request the server holds on to the request till new data is available only when the new data is available will the server send the data to the client and the moment the client receives the new data it immediately pulls the server for new data again the server once again holds on to this request till any new data is available and the moment new data is available it sends it to the client right away and the client again automatically holds the server for new data. Websocket: After the initial handshake both the client and the server established a permanent connection through which they can simultaneously send and receive messages to and from each other so in WebSockets protocol the server does not have to wait for a request from the client to send any new data the moment server receives any new data it sends it automatically to the client so this is bi-directional and is different from the request-response model we have seen so far this connection is permanent till either the client or the server. Socket.IO is a JavaScript library to enable real-time web applications it allows clients and servers to have bi-directional communication so how is this any different from web sockets you ask well web sockets is a protocol like HTTP it's a piece of technology while socket IO is a JavaScript library and what socket IO does is that it will upgrade a connection between a client.

Video

Let's say you have a movie that is showing 30 frames per second. That means you are showing 30 individual images each second the video is playing. An HD video that is a minute long would be 1,800 individual images that are shown in that minute. Using our RGB example above, that would require 11 billion bytes, or 10.42 gigabytes. For just one minute. 4K video, you're looking at over 44 billion bytes, or 41 gigabytes and that doesn't even include the audio.

What is machine learning?

Machine learning is an application of artificial intelligence (AI) that provides systems the ability to automatically learn and improve from experience without being explicitly programmed. Machine learning focuses on the development of computer programs that can access data and use it learn for themselves. The process of learning begins with observations or data, such as examples, direct experience, or instruction, in order to look for patterns in data and make better decisions in the future based on the examples that we provide. The primary aim is to allow the computers learn automatically without human intervention or assistance and adjust actions accordingly.

SVG vs BitMap

On the left we store the image data using pixels, so each unique pixel has to have unique color data that needs to be stored. On the right, the image is stored as a vector. So instead of pixels, the points on the boxes are encoded based on a coordinate system. The result is a much smaller file since it only contains point information for the boxes. The other advantage is that if you make the image bigger, it can scale easily and redraw the lines proportionally based on how you've re-sized the image.

How do emails work?

Sending Email Once an email is composed and the send button is clicked, the message is sent to the Mail Transfer Agent (MTA). This communication is done via the Simple Mail Transfer Protocol (SMTP). The SMTP queries the Domain Name System (DNS) to find the address of the recipient. This is done with the help of a Mail eXchanger (MX) record. The MX record is a resource record which specifies the mail server of a domain name. Once located, the SMTP server will send the message to that server. The next step involves transferring the message between mail servers. The SMTP has done its job of routing the message to the destination server. The message is now in the recipient's mail server (MTA). The receiving server will store the message and make it available to the recipient who can access it via web, POP, or IMAP protocols. Receiving Email The mail server located the recipients server, but since the recipient's server won't accept any mails that comes it's way, it asks who sent the email. The sending server gives the recipient server information on who the sender is by querying the envelope. Acknowledging the email is from a legitimate source (not spam, etc), the recipient server says "sure I understand that Namecheap exists, and from that sending address". Satisfied the address is correct, the recipient server asks who the envelope is addressed to and whether the recipient server will accept the details on the envelope. This is how envelope data is treated. The sending server will now forward the contents of the email contained in the envelope. Once the email has been received, the recipient server gives the mail server a receipt.

How do single sign-on work?

Single sign-on (SSO) is an identification system that allows websites to use other, trusted sites to verify users. This frees businesses from the need to hold passwords in their databases, cuts down on login troubleshooting, and decreases the damage a hack can cause.

stack

Stacks are another container type we can use to store our data. A stack is an ordered series of objects just like a list, but its intended use is slightly different. We push objets onto the stack and pop objects off of it. Think of a stack of pancakes. Each pancake is stacked on top of the other. To take a pancake off the stack, we remove from the top because it's difficult to remove from the bottom. To add a pancake to the stack, we place it on top of the stack because it's difficult to add to the bottom. Naturally, if you wanted to add or remove from the bottom of the stack, you would have to lift the entire stack in order to add that item. This is why for stacks we add and remove from the top. Stacks follow a last in, first out, or LIFO policy. We say LIFO because the last item on the stack will be the first item removed from the stack. Think stack of pancakes. This makes stack especially useful for keeping track of state or the order of when things have occurred. Pros: Reversing things, keeping track of state, add.remove from back of a structure. Pushing, peeking and popping takes very little time, in fact, constant time because stacks often have a linked list implementation or dynamic array implementation. Cons - If you find yourself needing to index your data structure and get a specific item in the middle of your use case, stacks are not the solution. It would take O of N time in the worst case because you would need to pop off everything on the stack and essentially destroy the data structure in order to see each individual item. If you need to search for items or sort your items consistently then a stack is also not the solution.

SQL

Structured Query Language

GROUP BY statement

The GROUP BY statement groups rows that have the same values into summary rows, like "find the number of customers in each country". The GROUP BY statement is often used with aggregate functions (COUNT, MAX, MIN, SUM, AVG) to group the result-set by one or more columns. SELECT COUNT(CustomerID), CountryFROM CustomersGROUP BY Country;

The SQL MIN() and MAX() Functions

The MIN() function returns the smallest value of the selected column. The MAX() function returns the largest value of the selected column. SELECT MIN(Price) AS SmallestPriceFROM Products;

The SQL SELECT TOP Clause

The SELECT TOP clause is used to specify the number of records to return. The SELECT TOP clause is useful on large tables with thousands of records. Returning a large number of records can impact performance. SELECT TOP 3 * FROM Customers; SELECT * FROM CustomersLIMIT 3; SELECT TOP 50 PERCENT * FROM Customers;

The SQL UPDATE Statement

The UPDATE statement is used to modify the existing records in a table. UPDATE table_nameSET column1 = value1, column2 = value2, ...WHERE condition;

Recursion

The process of a method calling itself in order to solve a problem.

Why does Gmail search take longer than Google search?

The total contents of the web is actually smaller than the sum of the sizes of the contents of everyone's gmail. [1] This means it could take more servers to hold all the indexes for mail search than for web search. Yes, users are only searching across their own mail, but servers are still needed to store all the indexes so that every user can do this. When you search the web, for the most part, you're getting the same results for your query as anyone else would get for that query. This means caching works well for web search. Most search engines have a small "hot index" with the most popular content that can handle the majority of queries which is replicated out to lots of local datacenters, giving low average response time even if the worst case is slow. Gmail search results are sorted by time and need to be perfect matches, whereas web search results are sorted by relevance and approximations can be made to cut corners. Google isn't actually "searching the web" in front of you. It has data gathering crawlers that scan nearly every page on the web. The results from these crawlers are organized into extremely efficient structures that are actually what your "search" uses when you type in your search. By contrast, mail is a "live" search, where the actual content searching is done in front of you in "realtime". It's possible to precompute searches in mail in ways similar to Google's web search, but few mail systems do this as it's hugely expensive in terms of space and coding overhead, and most people simply don't have all that much mail.

How does image compression work? How does text compression work? How are they similar and different?

Unlike GIF though, JPEG has a variable amount of compression you can apply to it that lets you trade-off size for details. JPEG compression is lossy though, meaning that as it compresses to reduce the file size, it can not be uncompressed into the exact original format. It'll be lossy or lose details when it is opened and displayed again. Using the JPEG format you can define the amount of loss in detail when the image is compressed. Ranging from little to no loss of detail or significant amounts. GIF - Encode using a GIF format is to find the 256 most used colors in the image and to build the palette using those. Then convert each pixel to the closest color. The result is much more accurate, but till has lower color variation. With the colors converted, the file is then compressed using a lossless format called LZW. Lossless compression means that it can reduce the file size further without degrading the visual quality of it. So when it is decoded from the compression, it is exactly as it was coded. JPEG compression is lossy though, meaning that as it compresses to reduce the file size, it can not be uncompressed into the exact original format. It'll be lossy or lose details when it is opened and displayed again. Using the JPEG format you can define the amount of loss in detail when the image is compressed. Ranging from little to no loss of detail or significant amounts. PNG - Another format you'll encounter is ping. PNG or portable network graphics. This format is an improved version of the GIF format where pixels can contain 24-bit RGB color values or 32-bit values that also includes transparency, allowing images or content that appears behind it to show through the image. It is lossless data compression. Text Compression - Compression is exactly that. It allows data to occupy a smaller amount of space, but at the same time, preserve the original data through compression protocols that encode and decode the compressed file. So if you look at this text, it has exactly 1,934 characters, including spaces. We can look for common combinations of characters and swap them out with a unique character. Since there are thousands of Unicode characters available, we can swap them with any of these. In this case, I could look for common phrases or combinations of characters, Then replace them with other Unicode characters. What we have built is a dictionary of common words, and we have defined the replacements. Using a computer program, you can search all the characters of the piece of text and find how many times unique combinations are repeated in a document, and then replace the ones with the largest number of instances.

Wen development fundamentals

When developing an application, there are several things that are fundamental-- speed, response time, availability, and cost to run. It doesn't matter how good your application is. If it stutters or takes too long to respond, it'll never succeed.

How would you explain cloud computing to your grandmother?

When you cook at home, you have to do everything yourself. You need to use your own plates, pots, and pans. You have to know how many people are coming over and buy the right amount of ingredients. If more people join for dinner than you expected, you'll run out of food! But if fewer people show up, then you'll have leftovers that go to waste. And on top of it all, you have to do all the cooking, set up, and clean up yourself. Before cloud computing existed, running an Internet business was actually pretty similar: You had to buy your own computers or rent dedicated servers from someone else. You had to predict the number of visitors who would come to your website and make sure your servers could handle that traffic. And you had to do a lot of infrastructure and maintenance work yourself—the computer equivalent of washing the dishes. With cloud computing, on the other hand, it's more like going to a big restaurant or cafeteria. Restaurants can handle groups of all sizes because they (usually) have more than enough food and plates to go around. If more friends want to join, the restaurant can move some tables around and give you more room. You're going to pay more on average than cooking yourself, but you only pay for what you eat. Cloud computing providers like AWS, Google Cloud, or Azure are similar. They have nearly unlimited computing power which allows you to worry about your business instead of buying and maintaining computers. As your business grows, you simply pay for what you need. Like fancy restaurants that offer exotic menu items, cloud platforms also offer new technologies that you can't find at home, like machine learning and more. And best of all—no washing dishes!


Conjuntos de estudio relacionados

Exceptional Learner Chapters 3 & 4

View Set

Chapter 29 prep U EXAM 5 The nurse is working with a group of caregivers of children in a community setting. The topic of hospitalization and the effects of hospitalization on the child are being discussed. Which statement made by the caregivers supports

View Set

Intro to Kinesiology First Half Midterm (1-3)

View Set