This image was borrowed from Udacity Intro to Programming lesson one to illustrate an image displayed using the img tag.
What is the best security camera for home? What is the best affordable home security camera system? More info about home security cameras at: http://www.home-security-camera.com/ <a href=http://www.home-security-camera.com/free-cam-screen-recorder.htm>free cam screen recorder</a>An anonymous person wrote:
What is the best video surveillance system? What is the best video surveilance software? More info about video surveillance at: http://www.surveillance.best <a href=http://housecamera.xyz/best-home-doorbell-camera.htm>http://housecamera.xyz/best-home-doorbell-camera.htm</a>An anonymous person wrote:
You are my heart: http://clickfrm.com/yG5AAn anonymous person wrote:
Dear friends, just came across this website and would love to share some handy software review resource which might be help, thanks! The Best free online <a href=https://youtubetomp3.tools/>YouTubetomp3</a> tools. New <a href=https://flvto.ch/pt/>youtube converter</a> website. The Best and stable <a href=https://keepvid.ch/es5/>video Downloader</a> New <a href=https://ytmp3.ch/en/youtube-to-mp4>youtube to mp3</a> website Powerful and Fast <a href=https://youtubetomp3.digital/>Online YouTube Downloader</a> <a href=https://www.vidusoft.com/youtube-downloader/>Vidus Youtube Downloader</a>.An anonymous person wrote:
cialis price <a href=" http://tadalafilprof.com ">online cialis</a> generic cialis at walmartAn anonymous person wrote:
normal dose cialis <a href=" http://tadalafilprof.com ">coupon for cialis by manufacturer</a> http://tadalafilprof.com 30 day cialis trial offerAn anonymous person wrote:
discount cialis http://tadalafilprof.com cialis 20 mg best priceAn anonymous person wrote:
Howdy! <a href=http://nolvadex.ru.com/>buy generic nolvadex</a> where buy nolvadex <a href=http://nolvadex.ru.com/>buy nolvadex</a>An anonymous person wrote:
Обалденный анализ Сrоwd1 - откуда миллиарды денег в проекте https://youtu.be/rC47THhKXx8 почему побиты рекорды мира роста МЛМ - более 5 млн. партнеров за пол-года, почему ТАК много платит бинар, сколько дают акции (пассивный доход), биткоины и вывод денег на карты и мн. дрAn anonymous person wrote:
cialis erection penis <a href=" http://tadalafilprof.com ">cialis without a doctor prescription</a> http://tadalafilprof.com cialis online generic cialis <a href=http://tadalafilprof.com>is cialis generic available</a> generic cialis black 800mg
A user opens a browser on their computer such as Firefox and requests information from a URL such as Udacity.com. The set of rules used to traverse the world wide web is called HTTP or Hypertext Transfer Protocol and the information sought might be a webpage containing text, videos, images etc. The webpage displayed is written in a language the computer understands called HTML or Hypertext Markup Language HTTP finds the HTML document on the correct server (another type of computer that stores information) and sends it back where the browser interprets and displays the information on the user's screen.
Hypertext Markup Language or HTML for short is code programmers write in so that the computer understands. The sentence: "I'm learning to code!"--for example--requires a special "code" to tell the computer to make the letters in the word "learning" appear in bold type.
Programmers have to be smart because computers are stupid! Programmers must write code in the correct syntax because computers translate the code literally; this can be frustrating but with extreme focus--powerful. Programmers are smarter than computers but they cannot remember all the rules! If you forget a rule--just look it up!
In programming language there are tag, element and attributedefinitions and rules. In HTML, the text is what you see and the markup is what it looks like. A tag was used in the previous sentence to make the letters in the word "text" and "markup" appear bold; it requires an opening tag and a closing tag to create the appearance. The word "text" is called the content and the entire length of this information end to end is called an element.
As mentioned there are attributes within elements. You can look them up on the internet but let me share another example here because coding is fun! Some tags require an "attribute" like the "img" tag requires an opening tag, an attribute: "src", a link to the image, an "alt" attribute containing text to desribe the image; this is for two reasons 1) in case the link is broken and 2) for the blind. What no closing tag? "img" is a void tag; and therefore, does not require a closing tag.
This image was borrowed from Udacity Intro to Programming lesson one to illustrate an image displayed using the img tag.
HTML elements are "inline" or "block." The difference between inline and block is that block elements like "p" for paragraph form an invisible box around the content inside of them.
HTML and CSS Cascading Style Sheets are two of the many languages used to create web pages. HTML develops the classification or structure and CSS provides the style or look and feel of a web page. When programmers talk about DOM Document Object Model, they are talking about the tree-like structure of a web page. Beginner web page developers should start with big boxes, move to small boxes and literally sketch out their web design with a pen or pencil. Programmers define boxes or containers around their content with div tags. The div tag is one of the most important tags used to organize HTML into big and small boxes needed to organize and structure HTML. They use "span" and other tags to help with the styling of their content.
Text editors like Scratchpad, Codepen and Sublime make writing code easier. For example, Scratchpad is good for beginners because what's been coded is immediately displayed in a split screen view. Sublime anticipates the tag you need with a pop-up selection box triggered by one or two key-strokes.
Programmers use CSS to add style to their HTML structure by using the CSS Reference. Programmers learn possible values and properties of attributes they need to convert their mockup to code. Cascading means that rules are applied not only to the elements they directly match, but also to all of those elements' children. However, if a child element has multiple, overlapping rules defined for it, the more specific rule takes effect.
Programmers define boxes around their content with "div" tags but its important to remember to use standards. Using standards while positioning boxes will apply the proper semantics, allow all browsers to read your code and any programmer to edit your code. In addition, avoiding repetition in your code styling will facilitate changes and avoid errors. Standard and consistent use of the class attribute and CSS Reference will make good practice needed to refine your ability.
Perfect practice calls for code, test, and refine behavior: look for natural boxes in your design; look for repeated styles and semantic elements; write your HTML; apply styles from Biggest to smallest (Thanks Jacques!); and finally continue to fix your code. These five behaviors will make for perfect practice on your road to fluency!
The computer by itself does not know what to do; it has limited functionality. Computer programs are what tell the computer what to do. Anything we can imagine a computer can do, with the right programming, we can make the computer into a web browser, server, game-playing machine, computation machine and even the driver of a car.
Programming languages tell the computer what steps to take. It is important to understand why new languages are invented for computers in place of English or French, German, etc. The language of humans is too ambiguous and verbose for a computer to understand. Like the definition of biweekly; is it every two weeks or twice per week? A computer needs specific syntax, clear and concise instructions in order to perform the programmers intended task.
The computer language, Python , which was named from the Monty Python series, uses Backus-Naur form invented to describe languages simply and concisely. Like English, Python has grammar rules similar to sentence structure that can be compared as non-terminals to derive terminals. For example, the English non-terminal Sentence: Noun, Verb, Object becomes the terminal: 'I like Python.' Python grammar turns the non-terminal Expression: Expression, Operator, Expression into the terminal: ((3 * 3) + (2**3)).
Python allows the programmer to use names aka variables to keep track of numbers via the Assignment Statement. Programmers assigning a number or value to a variable is powerful because it makes writing and reading code easier. For example, the speed of light in meters per second is 299792458. Using an assignment statement in Python: Name = Expression or speed_of_light = 299792458 will display the actual value of the speed of light when "print speed_of_light is run. The programmer no longer has to remember the value of the speed of light in meters per second.
In math, 2+3 always equals 5. In Python the = sign means assignment which means that Python is assigning the expression "5" to a name "variable." For example, in my_variable = 5. Python is assigning the "value" 5 to "my_variable." And, because it is a variable, the assignment can be changed. The programmer can make the expression have a different value in the code each time it's evaluated.
Strings are a sequence of characters surrounded by quotes: "I'm a string!" Single or double quotes allowed as long as you open and close with the same type of mark. 'I am a string too!' Strings allow programmers to build search engines and work with any characters they can type on a keyboard. In Python, the difference between 2+2 and "2" + "2" is the quotes make it a string and the + sign is an operator that concatonates the two strings. So, instead of 2+2=4 we have "2"+"2" which is assigned "22" within the program.
A function is something that takes input, does something to that input, and then produces output. For example, a function namedsum4 might take a set of four numbers as input and produce the sum of those four numbers as output.
Functions are made by starting a line of code with the keyworddef which means define and then giving the function a name followed by the function parameter(s) in parentheses followed by a colon. These parameters will eventually be replaced by actual value(s) when the fucntion is used (called).
In the body of the function, programmers write the code that specifies what to do with the input parameter(s). For example, the code illustrated in this box could be the definition of a function named sum4. The return statement triggers the function to produce the programs desired output.
Functions are tools that programmers can create and reuse forever! Once a programmer has defined a function once, they never have to define it again. An example of avoiding repetition is to use output(s) of one function as input(s) to another; this is called Composition of Functions.
The return statement tells Python exactly what the function should produce as output. If a function does not have a return statement, then you will get a special output: None. See the example in this box where a variable has been added to the function but to no avail:
We can use the if statement on a test expression and make a decision based on comparisons. Python has a way to compare numbers and give back a TRUE or FALSE which is known as a Boolean value. With the if statement the test expression executes 0 or 1 times depending on if the test executes to TRUE or FALSE. We can also use if statements with an else clause that will execute when the clause behind if is FALSE. As illustrated in this box:
While is similar to if except the while statement will loop and execute 0 to an infinite number of times as long as the test expression is TRUE. Once the test is FALSE, then it will jump to the next instruction; it could continue indefinitely which is referred to an infinite loop. Illustrated in this box is an example of what happens using countdown(3) instead of print countdown(3).
Debugging is a necessary skill to master if you want to become a good programmer. There are five easy steps:
A list is much more powerful than a string because a list can be a sequence of not just characters but also numbers, strings, and other lists. With lists we use square brackets instead of quotes and separate the elements with commas. Lists support mutations which allow the programmer to alter the content of the original list without creating a new list. Aliasing lists is two ways to refer to the same object. Aliasing variable names for example, p and q, works like this:
We could loop through elements of a list using while but Python provides a simpler way via for loops. For each element in the list assign an element to the name and evaluate the block. The structure of the for loop is to the right with an example. For each element in my_list we assign the element to the name: e as in this example:
Problem solving is always better when you do NOT panic! Staying calm allows one to approach the problem systematically by writing small bits of code, testing them and knowing what they do. Following these steps will ensure success:
Python is called an object-oriented programming language or OOP. This means there is a construct in Python called a class that lets you structure your code in a way that adds consistency and efficiency to your programs so that they can be used on a simple less complex level. The idea is to reuse standard code that enables the programmer to develop innovative solutions with their code without getting mired in the complexity of the code at the lower levels of def __init__; this is called Abstraction which is a technique for managing complexity of computer systems at a lower level.
An Illustration of how Classes and Objects are defined in OOP:
Suppose, you create an analogy for a class as a Drill and a particular type of Drill as an object which will be used as an instance of class Drill.
Data attributes: drill_number, drill_model_number, drill_speeds, drill_torque, FORWARD_REVERSE etc.
(note: these data members might be instance variables (unique to each instance) or class variables (shared across instances)).
Methods: Mixer(), Polisher(), Driver(), Driller() Visualize an illustration of the code in this box and pretend the defined functions are indented under class Drill.
|Class||A class is a mechanism Python gives the programmer the ability to create user-defined types. Every object has a type and the object's type determines the operations the object supports i.e. does it have a length? And, this defines the possible values. A class is a way to take a grouping of functions and data and place them inside a container so the programmer can access them with the . Operator. Functions are still defined by def is inside a class.|
|Instance||An instance of a class for example the code: client = TwilioRestClient(account_sid, auth_token) client is an instance of class TwilioRestClient. When we run the program containing the instances, the program contstructor gets called: __init__. It is there that all the data is initialized for that instance.|
|Object||Object is synonymous with instance for example, the code brad = turtle.Turtle() brad is an object of Turtle. And, quotes = open(file_location) quotes is an object of File.|
|Module||A module is a specialized dictionary that can store Python code to be accessed with the . Operator.|
|Method||A method is a function that belongs to an object. The term method is not unique to class instances. Other object types can have methods as well, such as list objects have methods like append, insert and so on.|
|Python Standard Library||Python Standard Library describes the exact syntax and semantics of the Python language; this library reference manual describes the standard library that is distributed with Python. Good programmers reference this library to understand the modules available to import and their associated functions contained within.|
|Instance Variable||Instance Variables are the data contained within the __init__ function. For example, in the class Movie we have: self.title = movie_title, self.storyline = movie_storyline, self.poster_image_url = poster_image and so on. These instance variables will be used each time we build the entertainment_center.py file.|
|Class Variable||Class Variables create efficient code because they are defined at the class level outside the __init__ function; this means that Instances can share this type of variable. Per the Google Python Style Guide, if the class variable is constant, the programmer is advised to use all caps like this: VALID_RATINGS.|
Inheritance is an advanced idea of OOP. Inheritance allows the programmer to create a parent class with instance variables like last_name and eye_color that can be inherited or used by a child class. This child class aka subclass can also have instance variables of its own like number_of_toys; this reuse of code is a huge advantage of OOP that can help the programmer reuse improve the design of existing code. For example, in the class Movie, instance variables like title and duration and instance methods like def show_trailer() and def get_local_listing() can be extracted and moved into their own class Video file that can be then shared and resued.
Method Overriding is the ability of a subclass to override a method it inherited from its parent class.
Before OOP, programming was normally seen as a series of logical procedures where the work of these procedures was to take the input and provide the desired output. OOP takes the view that what we really care about are the objects we want to manipulate rather than the logic required to manipulate them. Examples of objects range from human beings (described by name, address, and so forth) to buildings and floors (whose properties can be described and managed) down to the buttons and scroll bars on a computer desktop.
OOP is just one more programming model added to the programming world; it provides many advantages:
Because of these three factors: modularity, extensibility, and reusability, object-oriented programming provides improved software-development productivity over traditional procedure-based programming techniques. As a result, these three factors can also drive faster and lower cost of development, higher quality and improved maintainability of the software. Simula was the first object-oriented programming language. Java, Python, C++, Visual Basic .NET, Smalltalk, and Ruby are the most popular OOP languages today.
Companies are still using procedure programming in many small and limited time projects. There are problems that lend themselves well to functional or logic programming styles as well and applying OOP in those situations will not result in efficient programs. The disadvantages are:
A server is a computer or computer program that manages access to a centralized resource or service in a network; its purpose is to handle requests, process them, and deliver responses. A web application is a program that generates content and it: lives on a web server; speak the language of Hypertext Protocol Language (HTTP); and generates content that your brownser requests. The content might be static or dynamic. Static content consists of a pre-written file or an image. Dynamic content is created on the fly and consists of your facebook page, a blog's front page or Google search results.
Your web browser for example, Google Chrome, Mozilla Firefox, Internet Explorer etc. sends a URL (Uniform Resource Locator) to a server and converts HTTP into a request line.
The request line is made up of method, path, and version. The server retrieves the
information and sends a response line back to your web browser.
The response line is made up of version, status code, and response phrase.
This box is an illustration of request and response lines:
The most common methods are GET and POST.
GET is most often used for requesting a document from the server. While POST is the
common method used to send data to the server. When you make an HTTP request a number of Headers formatted as
Name:_value follow the request line. Examples include the HOST: www.example.com. Another is User-Agent: chrome v.17.
This is helpful so that the server knows what type of machine is making the request.
The differences between GET and POST are illustrated in the following table:
|GET (Default Method)||POST|
|Query parameters show up in the URL||q parameters show up in the request body after the HTML data|
|Used for fetching documents||Used for updating data making changes|
|Affected by maximum URL length||No maximum URL length|
|Okay to cache||Not okay to cache due to frequent changes|
|Should not change server||Okay to change server|
It is always important to validate user input in order to minimize security risks and maximize user experience. Programmers might control user input by using dropdown lists and returning error messages; however, the best way to protect the program is by using Escaping. Escaping converts HTML operators like " and &--which, as intentional or unintentional user input, will interfere with the program's behaviour--to escaped HTML formatting. For example, without escaping this input <html> will not behave as the programmer intended. It might not display as output or it might change the way the webpage loads. If you have html code in your .py file it's best to import the cgi module which has been specifically designed to handle any intentional or unintentional HTML operator inputs. If you have separate html and .py files, then use the autoescaping feature included with your templating system.
Templates generally refer to a library referenced to build complicated html strings. One template library built into Google App Engine (GAE) is jinja2. Templates allow programmers to avoid repetition which is important for all programming. Templates facilitate understanding and enhancing code which makes it easier to code. Using variables, templates and separate html and .py documents in a single folder, the programmer's ability to ehnance their code increases. The importance of using these techniques makes for more secure websites, more readable code, and code that is easier to modify.
Following are some techniques that further support Abstraction. String substitution allows the programmer to substitute a variable into a string using percent-sign-s;this can be convenient for a few lines of code needed to build a function but can become daunting and confusing when numerous lines of code are needed.
Template intheritance lets you define a template to which you can later add new HTML; this is useful when you want to have a consistent header and footer across your entire web application. As your web application evolves, that basic header-footer template may evolve as well without having to repeat the same code throughout several files.
The magic number concept, supports the standard of using self-defining variables in our code. Numbers are not intuitive and give us very little context as to what they mean and are supposed to do, but if we were to use variables, it gives us a better way to efficiently read and understand code.
Databases are programs that store and retrieve large amounts of structured data. A database refers to a program that stores and retrieves data; the machine running that program; and, a group of machines working together to store and retrieve data.
Google App Engine (GAE) has an infrastructure that takes care of all the distribution, replication, and load balancing of data behind a simple API (Application Programming Interface). Plus, you get a powerful query engine and transactions as well. GAE's data repository, the High Replication Datastore (HRD), uses Paxos algorithm to replicate data across multiple data centers. Data is written to the Datastore in objects known as entities. Each entity has a key that uniquely identifies it.
The following link: What is the Document Object Model? is where I learned about another important tool used with JS, jQuery. jQuery is a common JS library for reading and making changes to the Document Object Model (DOM). The DOM is a tree that contains information about what is actually visible on the a website. While HTML is a static document, the browser converts HTML to the DOM and the DOM can change. In fact, the power behind JS comes from its ability to manipulate the DOM, which is essentially a JS object. When JS makes something interesting happen on a website, it's likely the action happened because JS changed the DOM. jQuery is fast and easy to use, but anything it can do, a programmer can do with regular JS code.
Google Chrome browser commands to open the JS console: option + command + J will allow the programmer to utilize a really cool debugging feature:console.log() Accessed via developer tools to debug your codeit is fast and easy.
This box provides an illustration of console.log():
Another JS tool to support Front End web development is JSON validator: JSONLint.com. JSON validator is used the same way a programmer would utilize the W3C Validation services for HTML or CSS. Simply copy/paste your JS code object into the validator and submit. JSON validator will display a valid JSON message or if your code is invalid the line number(s) where the mistake occurs. Remember to copy the object starting and ending with the JS syntax: curly braces. You don't need to copy the VAR or FUNCTION. Start copying the object's first curly brace and end with the object's last curly brace--copy/paste into the JSON validator and submit.
Another handy tool is TRUTHY and FALSY. JS has a set of values that may evaluate to True or False but may not equal True or False. Truthy examples: true, non-zero numbers, strings, objects, arrays and functions. Falsy examples: false, zero, empty string, undefined, null and NAN (not a number) like zero divided by zero.
A handy tool to help you remember the differences between TRUTHY and FALSY are illustrated in the following table:
|The number 1||X|
|0 / 0||X|
var myArray = [item1, item2, item3]