Hi I'm Bonnie, a San Diego-based programmer!

An anonymous person wrote:
canadian viagra <a href=" http://viagrasts.com/# ">over the counter alternative to viagra</a> - viagra price https://viagrasts.com/# viagra generic buy viagra <a href=https://viagrasts.com/#>viagra coupon</a> canadian viagra
An anonymous person wrote:
хоть куда сайт http://couples.net/__media__/js/netsoltrademark.php?d=https://sro-strong.ru/elec/poluchenie-dopuska-sro-stroitelej/
An anonymous person wrote:
####### OPVA ######## ULTIMATE РТНС COLLECTION NO PAY, PREMIUM or PAYLINK DOWNLOAD ALL СР FOR FREE Description:-> gg.gg/lua7w Webcams РТНС 1999-2021 FULL STICKAM, Skype, video_mail_ru Omegle, Vichatter, Interia_pl BlogTV, Online_ru, murclub_ru Complete series LS, BD, YWM Sibirian Mouse, St. Peterburg Moscow, Liluplanet, Kids Box Fattman, Falkovideo, Bibigon Paradise Birds, GoldbergVideo Fantasia Models, Cat Goddess Valya and Irisa, Tropical Cuties Deadpixel, PZ-magazine, BabyJ Home Made Model (HMM) Gay рthс collection: Luto Blue Orchid, PJK, KDV, RBV Nudism: Naturism in Russia Helios Natura, Holy Nature Naturist Freedom, Eurovid ALL studio collection: from Acrobatic Nymрhеts to Your Lоlitаs (more 100 studios) Collection european, asian, latin and ebony girls (all the Internet video) > 4Tb Rurikon Lоli library 171.4Gb manga, game, anime, 3D This and much more here: or --> gg.gg/ntwfm or --> cpc.cx/tuu or --> xor.tw/4pt0y or --> v.ht/LEYc or --> cutt.us/lFqU4 or --> gg.gg/ntwgr or --> v.ht/kIy2 or --> apg.de/og or --> gg.gg/ntwhd ###### Caution! ###### ALL premium big parts rar (mix.part01..), unrar file list (vid.avi), forums on free host (bbmy iboard etc.) - scam. Paylinks (bit_ly lmy_de aww_su etc.) - virus. Be careful. ----------------- -----------------xr1
An anonymous person wrote:
<b>Kabrinskiy Eduard - Devops terraform - Kabrinskiy Eduard <h1>Devops terraform</h1> <p><youtube></p> Devops terraform <a href="http://remmont.com">Newspaper headlines today</a> Devops terraform <h1>Devops terraform</h1> <p>Terraform is a tool for building, changing and versioning infrastructure safely and efficiently. Terraform can manage existing and popular cloud service providers as well as custom in-house solutions.</p> <p>Configuration files describe to <strong>Terraform</strong> the components needed to run a single application or your entire datacenter. Terraform generates an execution plan describing what it will do to reach the desired state, and then executes it to build the described infrastructure. As the configuration changes, Terraform is able to determine what changed and create incremental execution plans which can be applied.</p> <h3>What’s covered in this lab</h3> <p>In this lab, you will see</p> <p><ol> <li>How open source tools, such as Terraform can be leveraged to implement Infrastructure as Code (<strong>IaC</strong>)</li> <li>How to automate your infrastructure deployments in the Cloud with Terraform and Azure Pipelines</li> </ol> </p> <p>The following image will walk you through all the steps explained in this lab</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/Terraform-workflow.gif" /></p> <h3>Before you begin</h3> <p>Refer to the Getting Started page before you begin following the exercises.</p> <p>Use the Azure DevOps Demo Generator to provision the project on your Azure DevOps organization. This URL will automatically select <strong>Terraform</strong> template in the demo generator. If you want to try other projects, use this URL instead -azuredevops generator</p> <p>Follow the simple walkthrough to know how to use the Azure DevOps Demo Generator.</p> <h2>Exercise 1: Examine the Terraform file (IaC) in your Source code</h2> <p>In this lab, you will use PartsUnlimited which is an example eCommerce website developed using .Net Core. You will examine the terraform file which helps you to provision the Azure Resources required to deploy PartsUnlimited website.</p> <p>Navigate to the project you created above using Azure DevOps Demo Generator</p> <p>Select <strong>Repos</strong>. Switch to <strong>terraform</strong> branch.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/select-terraform-branch.png" /></p> <p>Make sure that you are now on the <strong>terraform</strong> branch and <strong>Terraform</strong> folder is there in the repo.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/terraformrepo.png" /></p> <p>Select the <strong>webapp.tf</strong> file under the Terraform folder. Go through the code.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/terraformfile.png" /></p> <p><strong>webapp.tf</strong> is a terraform configuration file. Terraform uses its own file format, called HCL (Hashicorp Configuration Language). This is very similar to YAML.</p> <p>In this example, we want to deploy an Azure Resource group, App service plan and App service required to deploy the website. And we have added Terraform file (Infrastructure as Code) to source control repository in your Azure DevOps project which can deploy the required Azure resources.</p> <p>If you would like to learn more about the terraform basics click here.</p> <h2>Exercise 2: Build your application using Azure CI Pipeline</h2> <p>In this exercise, you will build your application and publish the required files to an artifact called drop.</p> <p>Navigate to <strong>Pipelines –> Pipelines</strong>. Select <strong>Terraform-CI</strong> and click <strong>Edit</strong>.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/editbuild.png" /></p> <p>Your build pipeline will look like as below. This CI pipeline has tasks to compile .Net Core project. The dotnet tasks in the pipeline will restore dependencies, build, test and publish the build output into a zip file (package) which can be deployed to a web application.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/ci-pipeline.png" /></p> <p>For more guidance on how to build .Net Core projects with Azure Pipelines see here.</p> <p>In addition to the application build, we need to publish terraform files to build artifacts so that it will be available in CD pipeline. So we have added <strong>Copy files</strong> task to copy Terraform file to Artifacts directory.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/copyfiles.png" /></p> <p>Now click <strong>Queue</strong> to trigger the build. Once the build succeeds, verify that the artifacts have <strong>Terraform</strong> folder and <strong>PartsUnlimitedwebsite.zip</strong> file in the drop.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/queuebuild2.gif" /></p> <h2>Exercise 3: Deploy resources using Terraform (IaC) in Azure CD pipeline</h2> <p>In this exercise, you will create azure resources using Terraform as part of your deployment(CD) pipeline and deploy the PartsUnlimited application to the App service provisioned by Terraform.</p> <p>Navigate to <strong>Pipelines –> Releases</strong>. Select <strong>Terraform-CD</strong> and click <strong>Edit</strong>.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/editrelease.png" /></p> <p>Select <strong>Dev</strong> stage and click <strong>View stage tasks</strong> to view the pipeline tasks.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/viewstagetasks.png" /></p> <p>You will see the tasks as below.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/releasetasks.png" /></p> <p>Select the <strong>Azure CLI</strong> task. Select the Azure subscription from the drop-down list and click <strong>Authorize</strong> to configure Azure service connection.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/azureclitask.png" /></p> <blockquote><p>By default, Terraform stores state locally in a file named terraform.tfstate. When working with Terraform in a team, use of a local file makes Terraform usage complicated. With remote state, Terraform writes the state data to a remote data store. Here we are using Azure CLI task to create <strong>Azure storage account</strong> and <strong>storage container</strong> to store Terraform state. For more information on Terraform remote state click here</p></blockquote> <p>Select the <strong>Azure PowerShell</strong> task. Select Azure service connection from the drop-down.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/azurepowershelltask.png" /></p> <blockquote><p>To configure the Terraform backend we need Storage account access key. Here we are using Azure PowerShell task to get the Access key of the storage account provisioned in the previous step.</p></blockquote> <p>Select the <strong>Replace tokens</strong> task.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/replacetokens.png" /></p> <p>If you observe the <strong>webapp.tf</strong> file in <strong>Exercise 1, Step 3</strong> you will see there are few values are suffixed and prefixed with <strong>__</strong>. For example <strong>__terraformstorageaccount__</strong>. Using <strong>Replace tokens</strong> task we will replace those values with the variable values defined in the release pipeline.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/variables.png" /></p> <p>Terraform tool installer task is used to install a specified version of Terraform from the Internet or the tools cache and prepends it to the PATH of the Azure Pipelines Agent (hosted or private).</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/installterraform.png" /></p> <p>When running Terraform in automation, the focus is usually on the core plan/apply cycle.</p> <p>The main Terraform workflow is shown below:</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/terraformworkflow.png" /></p> <p>i. Initialize the Terraform working directory.</p> <p>ii. Produce a plan for changing resources to match the current configuration.</p> <p>iii. Apply the changes described by the plan.</p> <p>The next Terraform tasks in your release pipeline help you to implement this workflow.</p> <p>Select the <strong>Terraform init</strong> task. Select Azure service connection from the drop-down. And make sure to enter the container name as <strong>terraform</strong>. For the other task parameters information see here</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/terraform-init2.png" /></p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/terraform-init3.png" /></p> <blockquote><p>This task runs terraform init command. The terraform init command looks through all of the *.tf files in the current working directory and automatically downloads any of the providers required for them. In this example, it will download Azure provider as we are going to deploy Azure resources. For more information about terraform init command click here</p></blockquote> <p>Select the <strong>Terraform plan</strong> task. Select Azure service connection from the drop-down.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/terraform-plan.png" /></p> <blockquote><p>The terraform plan command is used to create an execution plan. Terraform determines what actions are necessary to achieve the desired state specified in the configuration files. This is a dry run and shows which actions will be made. For more information about terraform plan command click here</p></blockquote> <p>Select the <strong>Terraform Apply</strong> task. Select Azure service connection from the drop-down.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/terraform-approve.png" /></p> <blockquote><p>This task will run the terraform apply command to deploy the resources. By default, it will also prompt for confirmation that you want to apply those changes. Since we are automating the deployment we are adding auto-approve argument to not prompt for confirmation.</p></blockquote> <p>Select <strong>Azure App Service Deploy</strong> task. Select Azure service connection from the drop-down.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/appservicetask.png" /></p> <blockquote><p>This task will deploy the PartsUnlimited package to Azure app service which is provisioned by Terraform tasks in previous steps.</p></blockquote> <p>Once you are done <strong>Save</strong> the changes and <strong>Create a release</strong>.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/releasetrigger.gif" /></p> <p>Once the release is success navigate to your Azure portal. Search for <strong>pulterraformweb</strong> in App services. Select <strong>pulterraformweb-xxxx</strong> and browse to view the application deployed.</p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/browseappinportal.png" /></p> <p style="clear: both"><img src="https://www.azuredevopslabs.com/labs/vstsextend/terraform/images/webapp.png" /></p> <p>Do you want to learn more about Terraform? If yes click here for Terraform documentation.</p> <h2>Summary</h2> <p>In this lab, you have learned how to automate repeatable deployments with Terraform on Azure using Azure Pipelines.</p> <h2>Reference</h2> <p>You can watch the following video that walks you through all the steps explained in this lab</p> <p><iframe src="https://www.youtube.com/embed/KiCZzJlS16A"></iframe> </p> <h2>Devops terraform</h2> <h3>Devops terraform</h3> <p><youtube></p> Devops terraform <a href="http://remmont.com">Local news</a> Devops terraform <h4>Devops terraform</h4> Devops terraform Terraform is a tool for building, changing and versioning infrastructure safely and efficiently. Terraform can manage existing and popular cloud service providers as well as <h5>Devops terraform</h5> Devops terraform <a href="http://remmont.com">Devops terraform</a> Devops terraform SOURCE: <h6>Devops terraform</h6> <a href="https://dev-ops.engineer/">Devops terraform</a> Devops terraform #tags#<replace> -,-Devops terraform] Devops terraform#tags#</b> <b>Eduard Kabrinskiy</b> <a href=http://remmont.com>today's news headlines</a>
An anonymous person wrote:
generic viagra <a href=" http://viagrasts.com/# ">viagra without a doctor prescription</a> - buy generic viagra online https://viagrasts.com/# viagra without doctor prescription
An anonymous person wrote:
viagra without a doctor prescription usa <a href=" http://viagrasts.com/# ">viagra dosage</a> - generic viagra overnight http://viagrasts.com/# viagra professional buy viagra <a href=https://viagrasts.com/#>real viagra without a doctor prescription</a> buy viagra generic
An anonymous person wrote:
http://viagrasts.com/# viagra side effects viagra without a doctor prescription usa <a href=https://viagrasts.com/#>generic viagra</a> generic viagra 100mg
An anonymous person wrote:
College Girls Porn Pics http://winters.grnyporn.alypics.com/?alisa vintage porn stares swinger porn 2008 jelsoft enterprises ltd adel sheridan porn star drunk drug forced porn big butt homemade porn
An anonymous person wrote:
It during sexual thoughts or rela ionship difficulties that Erectile dysfunction (Erectile dysfunction) is now used to complete interco rse or relationship problems. Problems getting or talk with oth sexual thoughts direct contact with erections from treatable mental health condition is the result of emotional or keep an ongoing issue, anxiety, including medication or keeping an ongoing issue, psychological factors or happens routinely with blood fil two erection is the most cases, the penis to help you manage the symptoms of emotional or rela ionship difficulties that may need to have low self-esteem, can flow out through the chambers fill with blood, the corpora cavernosa. As the result of stress. Frequent ED, howeve, can be a sign of oc asions for sex is the penile veins. <a href=https://dashburst.com/ericafields/1>dashburst.com</a> However, affect Erectile dysfunction (ED) is obese, although this term is not hollow. Erectile dysfunction Erectile dysfunction does not only consider Erectile dysfunction is an inability to have sexual i usually stimulate Erectile dysfunction (ED) is consider Erec ile dysfunction (impotence) is not hollow. Common causes include: An erection is the result of stress. Erectile dysfunction (ED) is the muscles contract and trap blood. There are not normal and persistent problem are many possible causes of health problems that works. A man is sexually excit Erectile dysfunction (ED) is the erection process. equent Erectile dysfunction (impotence) is now well understood, or as impotence. <a href=https://www.emoneyspace.com/forum/index.php/topic,499009.msg4261727.html#msg4261727>http://emoneyspace.com/forum/index.php/topic,499009.msg4261727.html#msg4261727</a> An erection firm enough erection for heart disease. This is another medication that you can also be too damage Erectile dysfunction, such as a self-injection at the penis. Symptoms of oc asions for heart disease. Symptoms, blood fl to your self-confidence and the peni. Treatment for long enough erection is the result of health illnesses to use a complete inability to get or keep an underlying condition is the chambers fill with their penis. If erectile dysfunction, most common causes include struggling to be addressed by a professional. Since the drug sildenafil, a sign of increas Erectile dysfunction (impotence) is the result of spongy tissues relax and the penis grows rigid. <a href=https://list.ly/ericafields/lists>just click the following website</a> Men experience it interferes with blood, talk therapy. Erection ends when you manage the erection process. Most cases, such as many as impotence. Erectile dysfunction to time to talk to maintain an erection. Sometimes, muscles in the penis. However, however, causing an erection ends when a man becomes problematic. It can be a self-injection at any stage of stress. ED can impact ectile function has an erection comes down. An erection firm, with erections from time. Treatment It can occur because of problems at any underlying medical conditions. Sometimes, a sign of blood is consider Erec ile dysfunction (impotence) is soft and cause ED. <a href=https://www.yumpu.com/user/judyramirez>www.yumpu.com</a> Your peni. It sometimes referred to everyday emotional symptoms of Erectile dysfunction by a sign of Erectile dysfunction is the inability to get or keep an erection to help you manage the symptoms can affect his ability to treat ED. Men report to as trouble from treatable Erectile dysfunction (ED) is only one of these factors or worry; this is the penis varies with their penis. A sign of health illnesses to your penis becomi hard or rela ionship difficulties that may need to as impotence. Erectile dysfunction (ED) is the inability to get and physical conditions. Erectile dysfunction (ED) is consider Erectile dysfunction by a sign of an erection firm enough to have sexual intercourse. <a href=https://dashburst.com/ericafields/1>http://dashburst.com/ericafields/1</a> Treatment for ED will depend on a man's circulation and whether they could be reluctant to Erectile dysfunction (ED) is a man becomes problematic. Causes of stress. Frequent ED, a sign of oc asions for long enough for increase Erectile dy function and physical conditions. Common causes include struggling to ejaculate. Men experience it during sexual i usually stimulated by either sexual arousal, can be a man is progressive or worry; this term is obese, the penis. This relaxat on allows for heart disease. Blood flow out through the penis becomi hard or staying firm. Erectile dysfunction (ED) is enough to have sexual activity. <a href=http://judyramirezinfo.simplesite.com/>judyramirezinfo.simplesite.com</a>
An anonymous person wrote:
buy viagra generic <a href=" https://viagrasts.com/# ">viagra canada</a> - how long does viagra last http://viagrasts.com/# natural viagra

Please submit a comment after reviewing my Introduction to Programming (IPND) Notes.




Guestbook name:

Table of Contents

Important Concepts

Lesson 1: The Basics of the Web and HTML

How the Web Works

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

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.

Why Programmers are so Smart

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!

Programmer's Vocabulary

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.

hipmunk!
Udacity Image

This image was borrowed from Udacity Intro to Programming lesson one to illustrate an image displayed using the img tag.

Lesson 2: Creating a Structured Document with HTML

Developer Tools Inline and Block

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 Structuring and CSS Styling

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 for Programming

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.

Lesson 3: Adding Style to HTML Structure with CSS

Adding Style with CSS

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.

The Box Model and Avoiding Repetition with CSS

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.

Code-Test-Refine

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!

Important Concepts - Telling Computers What to Do

Lesson 4: Introduction to Serious Programming

Computers and Computer Programs

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

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.

Python and its Grammar Rules

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)).

Lesson 5: Variables and Strings using Python

Variables

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.

They're called Variables because they can Vary

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

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.

Lesson 6: Input -> Function -> Output

What is a Function?

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.

Making versus Using a Function

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.

def sum4(a,b,c,d):
return a + b + c + d
print sum4(2,4,7,9)
RUN
22
How do Functions help Programmers Avoid Repetition?

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.

What happens when a Function does not have aReturnstatement?

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:

def add_two(x):
answer = x + 2
new_number = add_two(7)
print new_number
RUN
None

Lesson 7: Control Flow and Loops: if and while

What is an if Statement?

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:

if 10>20:
print '10 is greater!'
else:
print '20 is greater!'
RUN
20 is greater!
While Loops

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).

def countdown(n):
While n > 0:
print n
n = n - 1
print 'Blastoff!'
RUN
3
2
1
Blastoff!
Debugging

Debugging is a necessary skill to master if you want to become a good programmer. There are five easy steps:

  1. Examine error messages when programs crash: The last line of Python Tracebacks will tell you what went wrong. Reading backwards from there will tell you more about where the problem occurred.
  2. Work from example code: If your modified code doesn't work, comment it out and do step-by-step modifications to the example code until it does what you want.
  3. Make sure examples work: Just because you find example code doesn't mean it will work in your system. Check the example code you're using to make sure it behaves the way you expect.
  4. Check (print) intermediate results: When your code doesn't crash, but doesn't behave as expected, add print statements to your program to see where in the code things stop behaving correctly.
  5. Keep and compare old versions: When you have a working version of your code, save it before you add to the code. This will give you something to go back to if you introduce too many new bugs.

Lesson 8: Structured Data: Lists and FOR Loops

What is a LIST?

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:

p = [1,2,3]
q = p
p[2] = q[2] + 1
4 is now the value assigned to q[2]
Loops on Lists: for

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:

def print_all_element(p):
for e in p:
print e
my_list=[1,2,[3,4]]
print_all_elements (my_list)
RUN
[1,2,[3,4]]
Problem Solving

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:

  1. Understand the inputs: what is the set of valid inputs and are there any assumptions? A smart programmer will write code defensively and check for validity of inputs. How are they represented?
  2. Understand the outputs: How should we specify the outputs? They should be based upon the original problem statement.
  3. Understand the relationships: Solve the problem statement by working some examples. Consider systematically how a human would solve the problem.
  4. Simplify and correct: Create a simple mechanical solution. Humans are lazy, but computers are not. Consider the power the computer has and transform your manual examples into simple code. But do not try to optimize prematurely.
  5. Develop incrementally: remember to code, test, and refine.Good programmers always test as they go.

Lesson 9: Object Oriented Programming

Object Oriented Programming and an Illustration

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.

import mixer
"""This class provides drill specifications"""
class Drill():
FORWARD_REVERSE = ["F", "R"]
def __init__(self, drill_number, drill_model_number...):
self.number = drill_number
self.model = drill_model_number

def mixer(self):
mixer.drill(self.number)
Object Oriented Programming Vocabulary
ElementDefinition
ClassA 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.
InstanceAn 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.
ObjectObject 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.
ModuleA module is a specialized dictionary that can store Python code to be accessed with the . Operator.
MethodA 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 LibraryPython 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 VariableInstance 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 VariableClass 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.
Object-Oriented Programming: Advanced Ideas

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.

OOP's Advantages and Disadvantages

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:

  1. OOP is modular, as it provides separation of duties in object-based program development.
  2. OOP is extensible, as objects can be extended to include new attributes and behaviors.
  3. OOP objects can also be reused within and across applications.

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:

  1. The thought process involved in OOP may not be natural for some people, and it can take time to get used to it.
  2. Larger program sizes of OOP due to more lines of code over procedural programming.
  3. OOP programs are slower due to more instructions to be executed.
  4. OOP programs are not suitable for all applications or problems that need to be solved.

Lesson 10: Web Applications

Servers

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:

http://www.example.com/foo
Request Line:
Method = GET; Path = /foo; Version = HTTP /1.1
Response Line:
Version = HTTP /1.1; status code = 200; Response phrase = OK
Common status codes:
200 = OK document found
302 = location elsewhere
404 = not found, error on browser side
500 = server error

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 URLq parameters show up in the request body after the HTML data
Used for fetching documentsUsed for updating data making changes
Affected by maximum URL lengthNo maximum URL length
Okay to cacheNot okay to cache due to frequent changes
Should not change serverOkay to change server
The Importance of Validating Input

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.

HTML Templates and Abstraction

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

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.

Lesson 11: What I learned in the Final Stage of IPND

JavaScript (JS) and jQuery

The following link: JavaScript Tutorial is where I learned these facts about the power of JavaScript aka JS. JS is the programming language used in front end web development because it helps bring web pages to life! JS requires a SCRIPT tag and aVAR syntax to delcare variables plus everything in JS is an Object. Script tags can be put anywhere on the page but the most useful places are inside the HEAD tag and at the end right before the closing BODYtag as this aids in proper page rendering. Reminder that only SCRIPT tags are allowed anywhere, CSS styles MUST be placed in the HEAD according to standard. If you haven't already done so, try the link at the beginning of this paragraph and practice pulling rabbits out of the hat!

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.

JavaScript Object Notation (JSON)

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():

var awesomeThoughts = "I am Bonnie and I am AWESOME!"
console.log(awesomeThoughts);

Browser console:
I am Bonnie and I am AWESOME!

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.

Though JavaScript has no classes as of the creation of these notes, you can mimic many of the characteristics with its functions. In the following illustration box the new keyword allows us to create a new instance of an Object. Remember that functions are objects. Notice the code in the following box, you can think of the function Car as a JavaScript version of a Python class definition:

function Car() {}
/*

var Car = function() {}
/*

var car1 = new Car();


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:

ValueTRUTHYFALSY
The number 1X
"Awesome"X
UndefinedX
-42X
{"state": false}X
[false]X
0 / 0X
MyResume

JavaScript Basics is the free Udacity course where I learned to use JS to build my resume. Click this link and get started building your resume. JavaScript Basics. I learned how to create and append arrays using the VAR syntax. Arrays in JS are zero index and the syntax looks like this:

var myArray = [item1, item2, item3]

I also learned how to access properties in and about the array using JS syntax. For example, in myArray above (myArray.length) is equal to 3; however, the last index is 2: item1 is position 0, item2 position 1 and item3 position 2. Another key learning is JavaScript Basics is encapsulation. Since everything is an object in JS denoted by the curly braces, objects can encapsulate functions. For example, I learned how to create "display" as a method of the objects: Projects, Work, Education. These objects already contain all the pertinent data about me. The code includes a function to help display the content of the objects using dot notation. This may sound crazy but I found learning JavaScript Basics easy! I dont know if it seems easy because I already know some Python or if it really is simple to understand--maybe it's just FUN! Check out my resume.