Building Production Quality Apps on App Engine. Ken Ashcraft 5/29/2008
|
|
- Lucy Dalton
- 6 years ago
- Views:
Transcription
1
2 Building Production Quality Apps on App Engine Ken Ashcraft 5/29/2008
3 Outline Writing code for production Testing performance Safe deployment after launch 3
4 Writing Code for Production
5 Writing Code for Production Errors happen movie = Movie() movie.title = self.request.get( title, None) movie.director = self.request.get( director, None) movie.put() 5
6 Writing Code for Production Errors happen movie = Movie() movie.title = self.request.get( title, None) movie.director = self.request.get( director, None) movie.put() Out-of-memory 5
7 Writing Code for Production Errors happen movie = Movie() movie.title = self.request.get( title, None) movie.director = self.request.get( director, None) movie.put() Out-of-memory DeadlineExceeded 5
8 Writing Code for Production Errors happen movie = Movie() movie.title = self.request.get( title, None) movie.director = self.request.get( director, None) movie.put() Out-of-memory DeadlineExceeded OverQuotaError 5
9 Writing Code for Production Errors happen movie = Movie() movie.title = self.request.get( title, None) movie.director = self.request.get( director, None) movie.put() Out-of-memory DeadlineExceeded OverQuotaError Server crash 5
10 Writing Code for Production Errors happen movie = Movie() movie.title = self.request.get( title, None) movie.director = self.request.get( director, None) movie.put() Out-of-memory DeadlineExceeded OverQuotaError Server crash Datastore crash 5
11 Writing Code for Production Errors happen movie = Movie() movie.title = self.request.get( title, None) movie.director = self.request.get( director, None) movie.put() Out-of-memory DeadlineExceeded OverQuotaError Server crash Datastore crash Identical entity already exists 5
12 Writing Code for Production Use logging for forensics import logging user = users.get_current_user() if user: q = db.gqlquery("select * FROM UserPrefs WHERE user = :1", user) results = q.fetch(2) if len(results) > 1: logging.error( Multiple UserPrefs for user %s", user) if len(results) == 0: logging.debug( Creating UserPrefs for user %s", user) userprefs = UserPrefs(user=user) userprefs.put() else: userprefs = results[0] else: logging.debug( Creating dummy UserPrefs for anonymous user") 6
13 Writing Code for Production upon exception 7
14 Writing Code for Production upon exception class BaseRequestHandler(webapp.RequestHandler): 7
15 Writing Code for Production upon exception class BaseRequestHandler(webapp.RequestHandler): def handle_exception(self, exception, debug_mode): 7
16 Writing Code for Production upon exception class BaseRequestHandler(webapp.RequestHandler): def handle_exception(self, exception, debug_mode): lines =.join(traceback.format_exception(*sys.exc_info ())) 7
17 Writing Code for Production upon exception class BaseRequestHandler(webapp.RequestHandler): def handle_exception(self, exception, debug_mode): lines =.join(traceback.format_exception(*sys.exc_info ())) logging.error(lines) 7
18 Writing Code for Production upon exception class BaseRequestHandler(webapp.RequestHandler): def handle_exception(self, exception, debug_mode): lines =.join(traceback.format_exception(*sys.exc_info ())) logging.error(lines) mail.send_mail_to_admins(sender= 7
19 Writing Code for Production upon exception class BaseRequestHandler(webapp.RequestHandler): def handle_exception(self, exception, debug_mode): lines =.join(traceback.format_exception(*sys.exc_info ())) logging.error(lines) mail.send_mail_to_admins(sender= subject= Caught Exception, 7
20 Writing Code for Production upon exception class BaseRequestHandler(webapp.RequestHandler): def handle_exception(self, exception, debug_mode): lines =.join(traceback.format_exception(*sys.exc_info ())) logging.error(lines) mail.send_mail_to_admins(sender= subject= Caught Exception, body=lines) 7
21 Writing Code for Production upon exception class BaseRequestHandler(webapp.RequestHandler): def handle_exception(self, exception, debug_mode): lines =.join(traceback.format_exception(*sys.exc_info ())) logging.error(lines) mail.send_mail_to_admins(sender= subject= Caught Exception, body=lines) template_values = {} 7
22 Writing Code for Production upon exception class BaseRequestHandler(webapp.RequestHandler): def handle_exception(self, exception, debug_mode): lines =.join(traceback.format_exception(*sys.exc_info ())) logging.error(lines) mail.send_mail_to_admins(sender= subject= Caught Exception, body=lines) template_values = {} if users.is_current_user_admin(): 7
23 Writing Code for Production upon exception class BaseRequestHandler(webapp.RequestHandler): def handle_exception(self, exception, debug_mode): lines =.join(traceback.format_exception(*sys.exc_info ())) logging.error(lines) mail.send_mail_to_admins(sender= subject= Caught Exception, body=lines) template_values = {} if users.is_current_user_admin(): template_values[ traceback ] = lines 7
24 Writing Code for Production upon exception class BaseRequestHandler(webapp.RequestHandler): def handle_exception(self, exception, debug_mode): lines =.join(traceback.format_exception(*sys.exc_info ())) logging.error(lines) mail.send_mail_to_admins(sender= subject= Caught Exception, body=lines) template_values = {} if users.is_current_user_admin(): template_values[ traceback ] = lines self.response.out.write(template.render( error.html, 7
25 Writing Code for Production upon exception class BaseRequestHandler(webapp.RequestHandler): def handle_exception(self, exception, debug_mode): lines =.join(traceback.format_exception(*sys.exc_info ())) logging.error(lines) mail.send_mail_to_admins(sender= subject= Caught Exception, body=lines) template_values = {} if users.is_current_user_admin(): template_values[ traceback ] = lines self.response.out.write(template.render( error.html, template_values)) 7
26 Writing Code for Production Using the Python profiler 8
27 Writing Code for Production Using the Python profiler def real_main(): 8
28 Writing Code for Production Using the Python profiler def real_main(): application = webapp.wsgiapplication([ 8
29 Writing Code for Production Using the Python profiler def real_main(): application = webapp.wsgiapplication([ ('/(.*)', WikiPage), 8
30 Writing Code for Production Using the Python profiler def real_main(): application = webapp.wsgiapplication([ ('/(.*)', WikiPage), ], debug=_debug) 8
31 Writing Code for Production Using the Python profiler def real_main(): application = webapp.wsgiapplication([ ('/(.*)', WikiPage), ], debug=_debug) wsgiref.handlers.cgihandler().run(application) 8
32 Writing Code for Production Using the Python profiler def real_main(): application = webapp.wsgiapplication([ ('/(.*)', WikiPage), ], debug=_debug) wsgiref.handlers.cgihandler().run(application) def profile_main(): 8
33 Writing Code for Production Using the Python profiler def real_main(): application = webapp.wsgiapplication([ ('/(.*)', WikiPage), ], debug=_debug) wsgiref.handlers.cgihandler().run(application) def profile_main(): # Turn on profiling and run real_main() 8
34 Writing Code for Production Using the Python profiler def real_main(): application = webapp.wsgiapplication([ ('/(.*)', WikiPage), ], debug=_debug) wsgiref.handlers.cgihandler().run(application) def profile_main(): # Turn on profiling and run real_main() 8
35 Writing Code for Production Using the Python profiler def real_main(): application = webapp.wsgiapplication([ ('/(.*)', WikiPage), ], debug=_debug) wsgiref.handlers.cgihandler().run(application) def profile_main(): # Turn on profiling and run real_main() logging.info("profile data:\n%s", profile_data) 8
36 Writing Code for Production Using the Python profiler def real_main(): application = webapp.wsgiapplication([ ('/(.*)', WikiPage), ], debug=_debug) wsgiref.handlers.cgihandler().run(application) def profile_main(): # Turn on profiling and run real_main() logging.info("profile data:\n%s", profile_data) def main(): 8
37 Writing Code for Production Using the Python profiler def real_main(): application = webapp.wsgiapplication([ ('/(.*)', WikiPage), ], debug=_debug) wsgiref.handlers.cgihandler().run(application) def profile_main(): # Turn on profiling and run real_main() logging.info("profile data:\n%s", profile_data) def main(): if random.randint(0, 100) == 4: 8
38 Writing Code for Production Using the Python profiler def real_main(): application = webapp.wsgiapplication([ ('/(.*)', WikiPage), ], debug=_debug) wsgiref.handlers.cgihandler().run(application) def profile_main(): # Turn on profiling and run real_main() logging.info("profile data:\n%s", profile_data) def main(): if random.randint(0, 100) == 4: profile_main() 8
39 Writing Code for Production Using the Python profiler def real_main(): application = webapp.wsgiapplication([ ('/(.*)', WikiPage), ], debug=_debug) wsgiref.handlers.cgihandler().run(application) def profile_main(): # Turn on profiling and run real_main() logging.info("profile data:\n%s", profile_data) def main(): if random.randint(0, 100) == 4: profile_main() else: 8
40 Writing Code for Production Using the Python profiler def real_main(): application = webapp.wsgiapplication([ ('/(.*)', WikiPage), ], debug=_debug) wsgiref.handlers.cgihandler().run(application) def profile_main(): # Turn on profiling and run real_main() logging.info("profile data:\n%s", profile_data) def main(): if random.randint(0, 100) == 4: profile_main() else: real_main() 8
41 Writing Code for Production Errors happen! 9
42 Loadtests
43 Loadtests What not to do The dev_appserver is not designed for performance! 11
44 Loadtests What not to do
45 The Request Path User App Engine Frontend App s Python Interpreter 13
46 The Request Path User App Engine Frontend App s Python Interpreter 13
47 The Request Path User User User App Engine Frontend App s Python Interpreter User User 13
48 The Request Path User User User App Engine Frontend App s Python Interpreter User User 13
49 The Request Path User User App s Python Interpreter User App Engine Frontend App s Python Interpreter User User App s Python Interpreter 13
50 Loadtests Good vs Bad
51 Loadtests Realistic values 15
52 Loadtests Realistic values 50,000 users / day 15
53 Loadtests Realistic values 50,000 users / day 2 pageviews / user 15
54 Loadtests Realistic values 50,000 users / day 2 pageviews / user 100,000 pageviews / day 15
55 Loadtests Realistic values 50,000 users / day 2 pageviews / user 100,000 pageviews / day 5 requests / pageview 15
56 Loadtests Realistic values 50,000 users / day 2 pageviews / user 100,000 pageviews / day 5 requests / pageview 500,000 requests / day 15
57 Loadtests Realistic values 50,000 users / day 2 pageviews / user 100,000 pageviews / day 5 requests / pageview 500,000 requests / day 5.8 requests / second 15
58 Loadtests Good vs Bad
59 Loadtests Good vs Bad 60 Qualities of a good load test:
60 Loadtests Good vs Bad Qualities of a good load test: Use production system (not dev_appserver)
61 Loadtests Good vs Bad Qualities of a good load test: Use production system (not dev_appserver) Gradual ramp up
62 Loadtests Good vs Bad Qualities of a good load test: Use production system (not dev_appserver) Gradual ramp up Sustained load
63 Loadtests Good vs Bad Qualities of a good load test: Use production system (not dev_appserver) Gradual ramp up Sustained load Realistic load
64 Safe Deployment
65 How App Versioning Works User App Engine Frontend Version 1.1 Datastore 18
66 How App Versioning Works User App Engine Frontend Version 1.2 Datastore 19
67 How App Versioning Works Version 1.1 User App Engine Frontend Datastore Version
68 App Versioning Control the version with app.yaml application: wiki-io version: 5482 # Revision number runtime: python api_version: 1 Suggestion: Create a build script to populate version 21
69 How App Versioning Works Version 1.1 User App Engine Frontend Datastore Version
70 How App Versioning Works Version 1.1 User App Engine Frontend Datastore Version
71 Testing the Release Selenium: a test tool for web applications Use the log viewer to look for errors 24
72 Feature Requests 25
73 Feature Requests A/B testing 25
74 Feature Requests A/B testing Integration with SVN 25
75 Feature Requests A/B testing Integration with SVN Edit running code 25
76 Summary 26
77 Summary Write code to handle errors Use logging and catch exceptions 26
78 Summary Write code to handle errors Use logging and catch exceptions Do realistic loadtests 26
79 Summary Write code to handle errors Use logging and catch exceptions Do realistic loadtests Use versions for safe deployment 26
80
Chapter 19: Twitter in Twenty Minutes
Chapter 19: Twitter in Twenty Minutes In the last chapter, we learned how to create and query persistent data with App Engine and Google's Datastore. This chapter continues with that discussion by stepping
More informationApp Engine Web App Framework
App Engine Web App Framework Jim Eng / Charles Severance jimeng@umich.edu / csev@umich.edu www.appenginelearn.com Textbook: Using Google App Engine, Charles Severance (Chapter 5) Unless otherwise noted,
More informationApp Engine Web App Framework
App Engine Web App Framework Jim Eng / Charles Severance jimeng@umich.edu / csev@umich.edu www.appenginelearn.com Textbook: Using Google App Engine, Charles Severance (Chapter 5) Unless otherwise noted,
More informationGoogle & the Cloud. GData, Mashup Editor, AppEngine. Gregor Hohpe Software Engineer Google, Inc. All rights reserved,
Google & the Cloud GData, Mashup Editor, AppEngine Gregor Hohpe Software Engineer www.eaipatterns.com 2008 Google, Inc. All rights reserved, 2008 Google, Inc. All rights reserved, 2 1 Web 2.0 From the
More informationwebapp2 Documentation
webapp2 Documentation Release 3.0.0b1 Rodrigo Moraes Jun 20, 2017 Contents 1 Quick links 3 2 Status 5 3 Tutorials 7 4 Guide 31 5 API Reference - webapp2 57 6 API Reference - webapp2_extras 73 7 API Reference
More informationRapid Development with Django and App Engine. Guido van Rossum May 28, 2008
Rapid Development with Django and App Engine Guido van Rossum May 28, 2008 Talk Overview This is not a plug for Python, Django or Google App Engine Except implicitly :) Best practices for using Django
More informationCS4HS Using Google App Engine. Michael Parker
CS4HS Using Google App Engine Michael Parker (michael.g.parker@gmail.com) So what is it? What's it for? Building and running web applications Why use it? Handles serving web pages, efficiently storing
More information2. What is Google App Engine. Overview Google App Engine (GAE) is a Platform as a Service (PaaS) cloud computing platform for developing and hosting web applications in Google-managed data centers. Google
More informationBuilding Python web app on GAE
Building Python web app on GAE tw3gsucks, a 3G network speed test web app. PyHUG Tsai, Shih-Chang 2011/12/21 It all starts with... 3G network is really SUCKS!!! I'm used to live in a connected world! Bad
More informationHons. B.Sc. Degree in Software Engineering/Development. Web and Cloud Development
Hons. B.Sc. Degree in Software Engineering/Development Web and Cloud Development Summer 2012 Instructions to candidates: Answer any four questions all questions carry equal marks. Start your answer at
More informationCOMP1730/COMP6730 Programming for Scientists. Exceptions and exception handling
COMP1730/COMP6730 Programming for Scientists Exceptions and exception handling Lecture outline * Errors * The exception mechanism in python * Causing exceptions (assert and raise) * Handling exceptions
More informationIntroduction to Problem Solving and Programming in Python.
Introduction to Problem Solving and Programming in Python http://cis-linux1.temple.edu/~tuf80213/courses/temple/cis1051/ Overview Types of errors Testing methods Debugging in Python 2 Errors An error in
More informationInstalling and Running the Google App Engine On a Macintosh System
Installing and Running the Google App Engine On a Macintosh System This document describes the installation of the Google App Engine Software Development Kit (SDK) on a Macintosh and running a simple hello
More informationCSC 148 Lecture 3. Dynamic Typing, Scoping, and Namespaces. Recursion
CSC 148 Lecture 3 Dynamic Typing, Scoping, and Namespaces Recursion Announcements Python Ramp Up Session Monday June 1st, 1 5pm. BA3195 This will be a more detailed introduction to the Python language
More informationFundamentals of Programming (Python) Getting Started with Programming
Fundamentals of Programming (Python) Getting Started with Programming Ali Taheri Sharif University of Technology Some slides have been adapted from Python Programming: An Introduction to Computer Science
More informationArcGIS Enterprise Portal for ArcGIS
Portal for ArcGIS Elzbieta Covington Outline This presentation is an overview of the components of ArcGIS Enterprise, including Installation Architecture Deployment 1 ArcGIS Online Both systems are complementary
More informationBuilding Scalable Web Apps with Python and Google Cloud Platform. Dan Sanderson, April 2015
Building Scalable Web Apps with Python and Google Cloud Platform Dan Sanderson, April 2015 June 2015 pre-order now Agenda Introducing GCP & GAE Starting a project with gcloud and Cloud Console Understanding
More informationCourse Structure of Python Training: UNIT - 1: COMPUTER FUNDAMENTALS. Computer Fundamentals. Installation of Development Tools:
Course Structure of Python Training: UNIT - 1: COMPUTER FUNDAMENTALS Computer Fundamentals o What is a Computer? o Computation vs calculation Microprocessors and Memory Concepts o Discussion on register,
More informationJaesun Han (NexR CEO & Founder)
S1 2008. 10. 23 Jaesun Han (NexR CEO & Founder) jshan0000@gmail.com http://www.nexr.co.kr S2 Big Switch: Power Burden Iron Works Edison Power Plant & Power Grid S3 Big Switch: Computing Corporate Data
More informationBuilding Scalable Web Apps with Google App Engine. Brett Slatkin June 14, 2008
Building Scalable Web Apps with Google App Engine Brett Slatkin June 14, 2008 Agenda Using the Python runtime effectively Numbers everyone should know Tools for storing and scaling large data sets Example:
More information61A Lecture 2. Friday, August 28, 2015
61A Lecture 2 Friday, August 28, 2015 Names, Assignment, and User-Defined Functions (Demo) Types of Expressions Primitive expressions: 2 add 'hello' Number or Numeral Name String Call expressions: max
More informationConditionals & Control Flow
CS 1110: Introduction to Computing Using Python Lecture 8 Conditionals & Control Flow [Andersen, Gries, Lee, Marschner, Van Loan, White] Announcements: Assignment 1 Due tonight at 11:59pm. Suggested early
More informationGetting Started with Python
Fundamentals of Programming (Python) Getting Started with Python Sina Sajadmanesh Sharif University of Technology Some slides have been adapted from Python Programming: An Introduction to Computer Science
More informationViri. Remote execution of Python scripts. Every time you use Viri, God kills a sysadmin. Marc Garcia
Viri Remote execution of Python scripts Every time you use Viri, God kills a sysadmin Marc Garcia Overview What is Viri? What is Viri? What Viri does? What can Viri be useful for How is Viri? Technical
More informationRepetition Algorithms
Repetition Algorithms Repetition Allows a program to execute a set of instructions over and over. The term loop is a synonym for a repetition statement. A Repetition Example Suppose that you have been
More informationCOMP 204: Sets, Commenting & Exceptions
COMP 204: Sets, Commenting & Exceptions Yue Li based on material from Mathieu Blanchette, Carlos Oliver Gonzalez and Christopher Cameron 1/29 Outline Quiz 14 review Set Commenting code Bugs 2/29 Quiz 15
More informationCS2021- Week 10 Models and Views. Model, View, Controller. Web Development Model, Views, Controller Templates Databases
CS2021- Week 10 Models and Views Web Development Model, Views, Controller Templates Databases Model, View, Controller The MVC pa@ern is simple and very useful in web development. MVC pa@ern forces one
More informationOutline. A C++ Linked Structure Class A C++ Linked List C++ Linked Dynamic Memory Errors In-class work. 1 Chapter 11: C++ Linked Structures
Outline 1 Chapter 11: C++ Linked Structures A ListNode Class To support a Linked List container class LList, a ListNode class is used for the individual nodes. A ListNode object has two attributes: item
More informationlearning objectives learn about variables, their types and their values learn about different number representations
programming basics learning objectives algorithms your software system software hardware learn about variables, their types and their values learn about different number representations learn boolean algebra
More informationOptimizing Your App Engine App
Optimizing Your App Engine App Marzia Niccolai Spender of GBucks Greg Darke Byte Herder Troy Trimble Professional Expert Agenda Overview Writing applications efficiently Datastore Tips Caching, Caching,
More informationPROCE55 Mobile: Web API App. Web API. https://www.rijksmuseum.nl/api/...
PROCE55 Mobile: Web API App PROCE55 Mobile with Test Web API App Web API App Example This example shows how to access a typical Web API using your mobile phone via Internet. The returned data is in JSON
More informationGoogle GCP-Solution Architects Exam
Volume: 90 Questions Question: 1 Regarding memcache which of the options is an ideal use case? A. Caching data that isn't accessed often B. Caching data that is written more than it's read C. Caching important
More informationControl Structures 1 / 17
Control Structures 1 / 17 Structured Programming Any algorithm can be expressed by: Sequence - one statement after another Selection - conditional execution (not conditional jumping) Repetition - loops
More informationWhat is an Exception? Exception Handling. What is an Exception? What is an Exception? test = [1,2,3] test[3]
What is an Exception? Exception Handling BBM 101 - Introduction to Programming I Hacettepe University Fall 2016 Fuat Akal, Aykut Erdem, Erkut Erdem An exception is an abnormal condition (and thus rare)
More informationOutline. Introduction Concepts and terminology The case for static typing. Implementing a static type system Basic typing relations Adding context
Types 1 / 15 Outline Introduction Concepts and terminology The case for static typing Implementing a static type system Basic typing relations Adding context 2 / 15 Types and type errors Type: a set of
More informationScope & Symbol Table. l Most modern programming languages have some notion of scope.
Scope & Symbol Table l Most modern programming languages have some notion of scope. l Scope defines the lifetime of a program symbol. l If a symbol is no longer accessible then we say that it is out of
More informationCS 11 python track: lecture 2
CS 11 python track: lecture 2 Today: Odds and ends Introduction to object-oriented programming Exception handling Odds and ends List slice notation Multiline strings Docstrings List slices (1) a = [1,
More informationAuthor Bob Ippolito Conference. PyObjC Hacking. PyCon DC, March 2005
Author Bob Ippolito Conference PyObjC Hacking PyCon DC, March 2005 Intended Audience Python developers using Mac OS X 10.3 or later... that aren't (very) afraid of C Who probably know a little about Objective-C...
More informationMaking the Move to Magento 2: Successful Use of the Data Migration Tool
Making the Move to Magento 2: Successful Use of the Data Migration Tool Cost-Benefit Analysis Cost of an Upgrade Magento: Treat upgrading to Magento 2 as if it were a re-platform Moving to Magento 2 is
More informationJython. An introduction by Thinh Le
Jython An introduction by Thinh Le precursor_python! Google App Engine! Dropbox! PyGTK (Gnome)! Vim (embedded)! BitTorrent/Morpheus! Civilization/Battlefield Jython! Interpretation of Python (1997)! Jim
More informationAbstract Data Types Chapter 1
Abstract Data Types Chapter 1 Part Two Bags A bag is a basic container like a shopping bag that can be used to store collections. There are several variations: simple bag grab bag counting bag 2 Bag ADT
More informationSELENIUM - REMOTE CONTROL
http://www.tutorialspoint.com/selenium/selenium_rc.htm SELENIUM - REMOTE CONTROL Copyright tutorialspoint.com Selenium Remote Control RC was the main Selenium project that sustained for a long time before
More informationNot-So-Mini-Lecture 6. Modules & Scripts
Not-So-Mini-Lecture 6 Modules & Scripts Interactive Shell vs. Modules Launch in command line Type each line separately Python executes as you type Write in a code editor We use Atom Editor But anything
More informationScaling App Engine Applications. Justin Haugh, Guido van Rossum May 10, 2011
Scaling App Engine Applications Justin Haugh, Guido van Rossum May 10, 2011 First things first Justin Haugh Software Engineer Systems Infrastructure jhaugh@google.com Guido Van Rossum Software Engineer
More informationErrors. And How to Handle Them
Errors And How to Handle Them 1 GIGO There is a saying in computer science: Garbage in, garbage out. Is this true, or is it just an excuse for bad programming? Answer: Both. Here s what you want: Can you
More information한재선 KAIST 정보미디어경영대학원겸직교수 & NexR 대표이사
2009. 3. 11 한재선 (jshan0000@gmail.com) KAIST 정보미디어경영대학원겸직교수 & NexR 대표이사 http://www.web2hub.com S1 S2 Big Switch: Power Burden Iron Works Edison Power Plant & Power Grid S3 Big Switch: Computing Corporate
More informationApp Engine: Datastore Introduction
App Engine: Datastore Introduction Part 1 Another very useful course: https://www.udacity.com/course/developing-scalableapps-in-java--ud859 1 Topics cover in this lesson What is Datastore? Datastore and
More informationExceptions Programming 1 C# Programming. Rob Miles
Exceptions 08101 Programming 1 C# Programming Rob Miles Exceptions There are two kinds of programming error Compilation error Compiler complains that our source is not valid C# Run time error Program crashes
More informationExceptions. Exceptions. Exceptional Circumstances 11/25/2013
08101 Programming 1 C# Programming Rob Miles There are two kinds of programming error Compilation error Compiler complains that our source is not valid C# Run time error Program crashes when it runs Most
More informationCall: Hyperion Planning Course Content:35-40hours Course Outline Planning Overview
Hyperion Planning Course Content:35-40hours Course Outline Planning Overview Oracle's Enterprise Performance Management Planning Architecture Planning and Essbase Navigating Workspace Launching Workspace
More informationPlay with Python: An intro to Data Science
Play with Python: An intro to Data Science Ignacio Larrú Instituto de Empresa Who am I? Passionate about Technology From Iphone apps to algorithmic programming I love innovative technology Former Entrepreneur:
More informationCMSC 201 Fall 2016 Lab 09 Advanced Debugging
CMSC 201 Fall 2016 Lab 09 Advanced Debugging Assignment: Lab 09 Advanced Debugging Due Date: During discussion Value: 10 points Part 1: Introduction to Errors Throughout this semester, we have been working
More informationCIS192 Python Programming
CIS192 Python Programming Iterators, Generators, Exceptions & IO Raymond Yin University of Pennsylvania September 28, 2016 Raymond Yin (University of Pennsylvania) CIS 192 September 28, 2016 1 / 26 Outline
More informationCIS192 Python Programming
CIS192 Python Programming Object Oriented Programming Harry Smith University of Pennsylvania February 15, 2016 Harry Smith (University of Pennsylvania) CIS 192 Lecture 5 February 15, 2016 1 / 26 Outline
More information61A Lecture 2. Wednesday, September 4, 2013
61A Lecture 2 Wednesday, September 4, 2013 Names, Assignment, and User-Defined Functions (Demo) Types of Expressions Primitive expressions: 2 add 'hello' Number or Numeral Name String Call expressions:
More informationCIS192 Python Programming
CIS192 Python Programming Generators Exceptions and IO Eric Kutschera University of Pennsylvania February 13, 2015 Eric Kutschera (University of Pennsylvania) CIS 192 February 13, 2015 1 / 24 Outline 1
More informationFunctions, Scope & Arguments. HORT Lecture 12 Instructor: Kranthi Varala
Functions, Scope & Arguments HORT 59000 Lecture 12 Instructor: Kranthi Varala Functions Functions are logical groupings of statements to achieve a task. For example, a function to calculate the average
More informationAny other Projects or assignments the student may be working on this week:
Student CRP Form The purpose of this form is to accommodate a means for students to organize weekly project goals and to provide their results in a clear and measurable way. The CRP form will provide a
More informationClassification Using Genetic Programming. Patrick Kellogg General Assembly Data Science Course (8/23/15-11/12/15)
Classification Using Genetic Programming Patrick Kellogg General Assembly Data Science Course (8/23/15-11/12/15) Iris Data Set Iris Data Set Iris Data Set Iris Data Set Iris Data Set Create a geometrical
More informationExam 2, Form A CSE 231 Spring 2014 (1) DO NOT OPEN YOUR EXAM BOOKLET UNTIL YOU HAVE BEEN TOLD TO BEGIN.
Name: Section: Date: INSTRUCTIONS: (1) DO NOT OPEN YOUR EXAM BOOKLET UNTIL YOU HAVE BEEN TOLD TO BEGIN. (2) This exam booklet contains 30 questions, each of which will be weighted equally at 5 points each.
More informationExam 2, Form B CSE 231 Spring 2014 (1) DO NOT OPEN YOUR EXAM BOOKLET UNTIL YOU HAVE BEEN TOLD TO BEGIN.
Name: Section: Date: INSTRUCTIONS: (1) DO NOT OPEN YOUR EXAM BOOKLET UNTIL YOU HAVE BEEN TOLD TO BEGIN. (2) This exam booklet contains 30 questions, each of which will be weighted equally at 5 points each.
More informationIntroduction to Computer Programming for Non-Majors
Introduction to Computer Programming for Non-Majors CSC 2301, Fall 2015 Chapter 7 Part 1 The Department of Computer Science Objectives 2 To understand the programming pattern simple decision and its implementation
More informationCIS192 Python Programming
CIS192 Python Programming Iterators, Generators, IO, and Exceptions Harry Smith University of Pennsylvania February 15, 2018 Harry Smith (University of Pennsylvania) CIS 192 Lecture 5 February 15, 2018
More informationlearning objectives learn about variables, their types and their values learn about different number representations
programming basics learning objectives algorithms your software system software hardware learn about variables, their types and their values learn about different number representations learn boolean algebra
More informationGIS 4653/5653: Spatial Programming and GIS. More Python: Statements, Types, Functions, Modules, Classes
GIS 4653/5653: Spatial Programming and GIS More Python: Statements, Types, Functions, Modules, Classes Statement Syntax The if-elif-else statement Indentation and and colons are important Parentheses and
More informationIntroduction to Computer Programming for Non-Majors
Introduction to Computer Programming for Non-Majors CSC 2301, Fall 2016 Chapter 7 Part 2 Instructor: Long Ma The Department of Computer Science Quick review one-way or simple decision if :
More informationCS558 Programming Languages
CS558 Programming Languages Winter 2017 Lecture 4a Andrew Tolmach Portland State University 1994-2017 Semantics and Erroneous Programs Important part of language specification is distinguishing valid from
More informationIntroduction to: Computers & Programming: Exception Handling
Introduction to: Computers & Programming: Adam Meyers New York University Summary What kind of error raises an exception? Preventing errors How to raise an exception on purpose How to catch an exception
More informationFlask Web Development Course Catalog
Flask Web Development Course Catalog Enhance Your Contribution to the Business, Earn Industry-recognized Accreditations, and Develop Skills that Help You Advance in Your Career March 2018 www.iotintercon.com
More informationDate Version Revision
Installing Simphony v2.5 on an ipad Introduction This document outlines the process for installing the Simphony v2.5 Client on an ipad device. Included in the document are step by step instructions on
More informationCSE450. Translation of Programming Languages. Lecture 11: Semantic Analysis: Types & Type Checking
CSE450 Translation of Programming Languages Lecture 11: Semantic Analysis: Types & Type Checking Structure Project 1 - of a Project 2 - Compiler Today! Project 3 - Source Language Lexical Analyzer Syntax
More informationCS558 Programming Languages
CS558 Programming Languages Fall 2016 Lecture 3a Andrew Tolmach Portland State University 1994-2016 Formal Semantics Goal: rigorous and unambiguous definition in terms of a wellunderstood formalism (e.g.
More informationContinuous delivery of Java applications. Marek Kratky Principal Sales Consultant Oracle Cloud Platform. May, 2016
Continuous delivery of Java applications using Oracle Cloud Platform Services Marek Kratky Principal Sales Consultant Oracle Cloud Platform May, 2016 Safe Harbor Statement The following is intended to
More informationProtect your apps and your customers against application layer attacks
Protect your apps and your customers against application layer attacks Development 1 IT Operations VULNERABILITY DETECTION Bots, hackers, and other bad actors will find and exploit vulnerabilities in web
More informationPython Essential Reference, Second Edition - Chapter 5: Control Flow Page 1 of 8
Python Essential Reference, Second Edition - Chapter 5: Control Flow Page 1 of 8 Chapter 5: Control Flow This chapter describes related to the control flow of a program. Topics include conditionals, loops,
More informationUnit 6 - Software Design and Development LESSON 4 DATA TYPES
Unit 6 - Software Design and Development LESSON 4 DATA TYPES Previously Paradigms Choice of languages Key features of programming languages sequence; selection eg case, if then else; iteration eg repeat
More informationTest #2 October 8, 2015
CPSC 1040 Name: Test #2 October 8, 2015 Closed notes, closed laptop, calculators OK. Please use a pencil. 100 points, 5 point bonus. Maximum score 105. Weight of each section in parentheses. If you need
More informationIntroduction to Computer Programming for Non-Majors
Introduction to Computer Programming for Non-Majors CSC 2301, Fall 2016 Chapter 7 Part 1 Instructor: Long Ma The Department of Computer Science Objectives---Decision Structures 2 To understand the programming
More informationPython The way of a program. Srinidhi H Asst Professor Dept of CSE, MSRIT
Python The way of a program Srinidhi H Asst Professor Dept of CSE, MSRIT 1 Problem Solving Problem solving means the ability to formulate problems, think creatively about solutions, and express a solution
More informationAlan Nichol Co-founder and CTO, Rasa
BUILDING CHATBOTS IN PYTHON Virtual assistants and accessing data Alan Nichol Co-founder and CTO, Rasa Virtual assistants Common chatbot use cases: Scheduling a meeting Bookling a flight Searching for
More informationCurriculum Catalog
2017-2018 Curriculum Catalog Career and Technical Education Series 2017 Glynlyon, Inc. Table of Contents FUNDAMENTALS OF DIGITAL MEDIA COURSE OVERVIEW...1 UNIT 1: INTRODUCTION TO DIGITAL AND ONLINE MEDIA
More informationGetting the most out of Spring and App Engine!!
Getting the most out of Spring and App Engine!! Chris Ramsdale Product Manager, App Engine Google 2011 SpringOne 2GX 2011. All rights reserved. Do not distribute without permission. Whatʼs on tap today?
More informationLecture 1. basic Python programs, defining functions
Lecture 1 basic Python programs, defining functions Lecture notes modified from CS Washington CS 142 Except where otherwise noted, this work is licensed under: http://creativecommons.org/licenses/by-nc-sa/3.0
More informationCan it connect to database used for NEO reports?
Q&A Oct 2018 Can it connect to database used for NEO reports? Yes it can connect to the same database as NEO. It uses the same code as NEO. As part of the installation process you need to get a compatible
More informationPYTHON DATA SCIENCE TOOLBOX II. List comprehensions
PYTHON DATA SCIENCE TOOLBOX II List comprehensions Populate a list with a for loop In [1]: nums = [12, 8, 21, 3, 16] In [2]: new_nums = [] In [3]: for num in nums:...: new_nums.append(num + 1) In [4]:
More informationIGL S AND MOUNT NS. Taking AKKA to Production
IGL S AND MOUNT NS Taking AKKA to Production THIS TALK Hello! I m Derek Wyatt, Senior Platform Developer at Auvik Networks! and author of Akka Concurrency Scala, Play and Akka form the foundational triad
More informationDeveloping with Google App Engine
Developing with Google App Engine Dan Morrill, Developer Advocate Dan Morrill Google App Engine Slide 1 Developing with Google App Engine Introduction Dan Morrill Google App Engine Slide 2 Google App Engine
More informationLab 2 Third Party API Integration, Cloud Deployment & Benchmarking
Lab 2 Third Party API Integration, Cloud Deployment & Benchmarking In lab 1, you have setup the web framework and the crawler. In this lab, you will complete the deployment flow for launching a web application
More informationIntroduction to PyObjC
Author Bob Ippolito Conference Introduction to PyObjC PyCon DC, March 2005 Intended Audience Python developers using Mac OS X 10.3 or later Spies from the Linux and Win32 camps Hopefully a GNUstep porter/maintainer
More informationDevOps Online Training
DevOps Online Training IQ Online training facility offers Devops online training by trainers who have expert knowledge in the Devops and proven record of training hundreds of students. Our Oracle Devops
More informationAlastair Burt Andreas Eisele Christian Federmann Torsten Marek Ulrich Schäfer. October 6th, Universität des Saarlandes. Introduction to Python
Outline Alastair Burt Andreas Eisele Christian Federmann Torsten Marek Ulrich Schäfer Universität des Saarlandes October 6th, 2009 Outline Outline Today s Topics: 1 More Examples 2 Cool Stuff 3 Text Processing
More informationMicroservices. SWE 432, Fall 2017 Design and Implementation of Software for the Web
Micros SWE 432, Fall 2017 Design and Implementation of Software for the Web Today How is a being a micro different than simply being ful? What are the advantages of a micro backend architecture over a
More informationCS Programming Languages: Python
CS 3101-1 - Programming Languages: Python Lecture 5: Exceptions / Daniel Bauer (bauer@cs.columbia.edu) October 08 2014 Daniel Bauer CS3101-1 Python - 05 - Exceptions / 1/35 Contents Exceptions Daniel Bauer
More informationIntroduction to Computer Programming for Non-Majors
Introduction to Computer Programming for Non-Majors CSC 2301, Fall 2014 Chapter 7 Part 2 The Department of Computer Science Quick review one-way or simple decision if : two-way decision
More information1 Lecture 6: Conditionals and Exceptions
L6 June 16, 2017 1 Lecture 6: Conditionals and Exceptions CSCI 1360E: Foundations for Informatics and Analytics 1.1 Overview and Objectives In this lecture, we ll go over how to make "decisions" over the
More information7401ICT eservice Technology. (Some of) the actual examination questions will be more precise than these.
SAMPLE EXAMINATION QUESTIONS (Some of) the actual examination questions will be more precise than these. Basic terms and concepts Define, compare and discuss the following terms and concepts: a. HTML,
More informationInternal Classes and Exceptions
Internal Classes and Exceptions Object Orientated Programming in Java Benjamin Kenwright Outline Exceptions and Internal Classes Why exception handling makes your code more manageable and reliable Today
More informationServerless and APIs: Rethinking Curriculum in Higher Education. Munir Mandviwalla and Jeremy Shafer Temple University
Serverless and APIs: Rethinking Curriculum in Higher Education Munir Mandviwalla and Jeremy Shafer Temple University Serverless Serverless computing refers to the concept of building and running applications
More informationExtending Jython. with SIM, SPARQL and SQL
Extending Jython with SIM, SPARQL and SQL 1 Outline of topics Interesting features of Python and Jython Relational and semantic data models and query languages, triple stores, RDF Extending the Jython
More informationBEAMJIT, a Maze of Twisty Little Traces
BEAMJIT, a Maze of Twisty Little Traces A walk-through of the prototype just-in-time (JIT) compiler for Erlang. Frej Drejhammar 130613 Who am I? Senior researcher at the Swedish Institute
More information