!"#$%&'())*'"+,&-,.-!! 1
|
|
- Jeffery Johnston
- 5 years ago
- Views:
Transcription
1 !"#$%&'())*'"+,&-,.-!! 1
2 Thinking about thinking in code George V. Neville-Neil Ottawa, Canada
3 What is this about? 3
4 What is this about? This is not about any particular BSD 3
5 What is this about? This is not about any particular BSD This presentation is about how we think about coding 3
6 What is this about? This is not about any particular BSD This presentation is about how we think about coding The opinions expressed are those of the author and do not reflect the opinions of any BSD project... 3
7 What is this about? This is not about any particular BSD This presentation is about how we think about coding The opinions expressed are those of the author and do not reflect the opinions of any BSD project... - Yes, this is a bit of a rant 3
8 A Challenge 4
9 A Challenge If GM had kept up with technology like the computer industry has, we would all be driving $25 cars that got 1000 MPG. 4
10 A Challenge If GM had kept up with technology like the computer industry has, we would all be driving $25 cars that got 1000 MPG. 4
11 A Challenge If GM had kept up with technology like the computer industry has, we would all be driving $25 cars that got 1000 MPG. Bill Gates 4
12 A Challenge If GM had kept up with technology like the computer industry has, we would all be driving $25 cars that got 1000 MPG. Bill Gates 4
13 A Challenge If GM had kept up with technology like the computer industry has, we would all be driving $25 cars that got 1000 MPG. Bill Gates People who build software are soooo much more innovative than people who build cars. 4
14 A Challenge If GM had kept up with technology like the computer industry has, we would all be driving $25 cars that got 1000 MPG. Bill Gates People who build software are soooo much more innovative than people who build cars. 4
15 A Challenge If GM had kept up with technology like the computer industry has, we would all be driving $25 cars that got 1000 MPG. Bill Gates People who build software are soooo much more innovative than people who build cars. Or are we? 4
16 Just how is GM doing? 5
17 How about Microsoft? 6
18 MSFT vs. GM Who s Better? 7
19 GM s Original Product 8
20 GM s Latest Product 9
21 Sometimes you take a wrong turn 10
22 and you never recover... 11
23 Changing Internals of Autos 12
24 Are we assembly line programmers? Automobiles Assembly Line Modular Design Unified UI Just In Time Delivery Software Waterfall Model Modules Objects Components Re-use Design Patterns 13
25 Parts Used in Construction Automobile Engine Brakes Drive Train Wheels Transmission Door Locks Exhaust System Operating System Kernel Scheduler Memory VM I/O Filesystem Sockets 14
26 MSFT s Early Product 15
27 MSFT s Latest Product 16
28 Early Innovation? 17
29 Still thinking differently? 18
30 One of our early products 19
31 One of our recent products 20
32 Never forget your history! 21
33 Well, perhaps that s just UIs 22
34 Well, perhaps that s just UIs Users force us to provide these types of systems. 22
35 Well, perhaps that s just UIs Users force us to provide these types of systems. Paradigm shift is hard. 22
36 Well, perhaps that s just UIs Users force us to provide these types of systems. Paradigm shift is hard. If we make it too different it won t sell. 22
37 Well, perhaps that s just UIs Users force us to provide these types of systems. Paradigm shift is hard. If we make it too different it won t sell. We re just implementing the marketing spec! 22
38 Well, perhaps that s just UIs Users force us to provide these types of systems. Paradigm shift is hard. If we make it too different it won t sell. We re just implementing the marketing spec! What s under the hood is totally different! 22
39 Changing Internals of OSs 23
40 How Different Are We? BSD Linux Windows Mac OS C C C C/C++ Kernel Kernel Kernel ukernel? VM VM VM VM Processes Processes Processes Processes Threads Threads Threads Threads Events UI Events UI Events UI Events UI 24
41 Why do we fail to provide new models? 25
42 Why do we fail to provide new models? What we were taught? 25
43 Why do we fail to provide new models? What we were taught? What the people want? 25
44 Why do we fail to provide new models? What we were taught? What the people want? What we want? 25
45 Why do we fail to provide new models? What we were taught? What the people want? What we want? These are the best models? 25
46 Why do we fail to provide new models? What we were taught? What the people want? What we want? These are the best models? Our languages and environment dictate our models? 25
47 How do most programmers program? 26
48 How do most programmers program? Text structured in various (non)sensical ways 26
49 How do most programmers program? Text structured in various (non)sensical ways Edit, Compile, Link, Run, Debug cycle 26
50 How do most programmers program? Text structured in various (non)sensical ways Edit, Compile, Link, Run, Debug cycle Edit, run, edit, run, edit, run 26
51 How do most programmers program? Text structured in various (non)sensical ways Edit, Compile, Link, Run, Debug cycle Edit, run, edit, run, edit, run Three basic types of languages 26
52 But what are your options? 27
53 But what are your options? Algol 27
54 But what are your options? Algol - Procedural 27
55 But what are your options? Algol - Procedural Lisp 27
56 But what are your options? Algol - Procedural Lisp - Functional 27
57 But what are your options? Algol - Procedural Lisp - Functional Prolog 27
58 But what are your options? Algol - Procedural Lisp - Functional Prolog - Insanity 27
59 How we think in code matters! 28
60 How we think in code matters! Sloppy languages lead to sloppy code 28
61 How we think in code matters! Sloppy languages lead to sloppy code - Almost always 28
62 How we think in code matters! Sloppy languages lead to sloppy code - Almost always Unsafe languages lead to unsafe code 28
63 How we think in code matters! Sloppy languages lead to sloppy code - Almost always Unsafe languages lead to unsafe code - Almost always 28
64 How we think in code matters! Sloppy languages lead to sloppy code - Almost always Unsafe languages lead to unsafe code - Almost always Confusing languages lead to confusing code 28
65 How we think in code matters! Sloppy languages lead to sloppy code - Almost always Unsafe languages lead to unsafe code - Almost always Confusing languages lead to confusing code - Almost always 28
66 How we think in code matters! Sloppy languages lead to sloppy code - Almost always Unsafe languages lead to unsafe code - Almost always Confusing languages lead to confusing code - Almost always Lowering the barrier to entry has lowered the quality of code 28
67 How many words is a comic worth? 29
68 Programmers learn what they live 30
69 Programmers learn what they live If a programmer reads good code she will write good code 30
70 Programmers learn what they live If a programmer reads good code she will write good code If a programmer sees good abstractions he will write good abstractions 30
71 Programmers learn what they live If a programmer reads good code she will write good code If a programmer sees good abstractions he will write good abstractions If a programmer works with good programmers her code will improve 30
72 Programmers learn what they live If a programmer reads good code she will write good code If a programmer sees good abstractions he will write good abstractions If a programmer works with good programmers her code will improve If a programmer works with poor programmers his code will suffer 30
73 Programmers learn what they live If a programmer reads good code she will write good code If a programmer sees good abstractions he will write good abstractions If a programmer works with good programmers her code will improve If a programmer works with poor programmers his code will suffer Don t read crap code! 30
74 Programmers learn what they live If a programmer reads good code she will write good code If a programmer sees good abstractions he will write good abstractions If a programmer works with good programmers her code will improve If a programmer works with poor programmers his code will suffer Don t read crap code! Don t hang out with crap programmers! 30
75 Everything has been discovered! 31
76 Everything has been discovered! Everything that can be invented has been invented. Charles Duell (?) 31
77 Everything has been discovered! Everything that can be invented has been invented. Charles Duell (?) Turns out not to be true 31
78 Will the real Charles Duell... 32
79 Will the real Charles Duell... "Our future progress and prosperity depend upon our ability to equal, if not surpass, other nations in the enlargement and advance of science, industry and commerce. To invention we must turn as one of the most powerful aids to the accomplishment of such a result." Charles Duell 32
80 Stop Re-inventing the Wheel 33
81 Stop Re-inventing the Wheel There does not need to be another list implementation 33
82 Stop Re-inventing the Wheel There does not need to be another list implementation No one needs another hash table 33
83 Stop Re-inventing the Wheel There does not need to be another list implementation No one needs another hash table Tree 33
84 Stop Re-inventing the Wheel There does not need to be another list implementation No one needs another hash table Tree - Dictionary 33
85 Stop Re-inventing the Wheel There does not need to be another list implementation No one needs another hash table Tree - Dictionary Locking API 33
86 Stop Re-inventing the Wheel There does not need to be another list implementation No one needs another hash table Tree - Dictionary Locking API > Spin Lock 33
87 Stop Re-inventing the Wheel There does not need to be another list implementation No one needs another hash table Tree - Dictionary Locking API > Spin Lock Stop fighting over the scraps 33
88 Stop Re-inventing the Wheel There does not need to be another list implementation No one needs another hash table Tree - Dictionary Locking API > Spin Lock Stop fighting over the scraps Stop re-implementing your school projects 33
89 Invent Some New Wheels 34
90 Invent Some New Wheels UNIX should not be the end of the family tree 34
91 Invent Some New Wheels UNIX should not be the end of the family tree - No matter how much we love BSD 34
92 Invent Some New Wheels UNIX should not be the end of the family tree - No matter how much we love BSD Can you imagine if Vista is what our grandchildren will use? 34
93 Invent Some New Wheels UNIX should not be the end of the family tree - No matter how much we love BSD Can you imagine if Vista is what our grandchildren will use? MacOS X? (XI?) 34
94 Invent Some New Wheels UNIX should not be the end of the family tree - No matter how much we love BSD Can you imagine if Vista is what our grandchildren will use? MacOS X? (XI?) Linux? 34
95 How to Find New Wheels 35
96 How to Find New Wheels Read some papers 35
97 How to Find New Wheels Read some papers - Read the abstracts first 35
98 How to Find New Wheels Read some papers - Read the abstracts first - Ignore most of them, most are pointless 35
99 How to Find New Wheels Read some papers - Read the abstracts first - Ignore most of them, most are pointless Look at code you wouldn t normally touch 35
100 How to Find New Wheels Read some papers - Read the abstracts first - Ignore most of them, most are pointless Look at code you wouldn t normally touch Learn a computer language you don t like 35
101 How to Find New Wheels Read some papers - Read the abstracts first - Ignore most of them, most are pointless Look at code you wouldn t normally touch Learn a computer language you don t like - Scheme 35
102 How to Find New Wheels Read some papers - Read the abstracts first - Ignore most of them, most are pointless Look at code you wouldn t normally touch Learn a computer language you don t like - Scheme - Perl 35
103 How to Find New Wheels Read some papers - Read the abstracts first - Ignore most of them, most are pointless Look at code you wouldn t normally touch Learn a computer language you don t like - Scheme - Perl - Python 35
104 How to Find New Wheels Read some papers - Read the abstracts first - Ignore most of them, most are pointless Look at code you wouldn t normally touch Learn a computer language you don t like - Scheme - Perl - Python - Haskell 35
105 How to Find New Wheels Read some papers - Read the abstracts first - Ignore most of them, most are pointless Look at code you wouldn t normally touch Learn a computer language you don t like - Scheme - Perl - Python - Haskell - C++ 35
106 How to Find New Wheels Read some papers - Read the abstracts first - Ignore most of them, most are pointless Look at code you wouldn t normally touch Learn a computer language you don t like - Scheme - Perl - Python - Haskell - C
107 How to Find New Wheels Read some papers - Read the abstracts first - Ignore most of them, most are pointless Look at code you wouldn t normally touch Learn a computer language you don t like - Scheme - Perl - Python - Haskell - C Don t specialize too much 35
108 How to Find New Wheels Read some papers - Read the abstracts first - Ignore most of them, most are pointless Look at code you wouldn t normally touch Learn a computer language you don t like - Scheme - Perl - Python - Haskell - C Don t specialize too much Lose your religion! 35
109 You must be willing to 36
110 You must be willing to break things 36
111 You must be willing to break things look stupid 36
112 You must be willing to break things look stupid be wrong 36
113 You must be willing to break things look stupid be wrong learn from others 36
114 All Programmers Have 2 Enemies 37
115 All Programmers Have 2 Enemies Hubris 37
116 All Programmers Have 2 Enemies Hubris Not starting projects 37
117 All Programmers Have 2 Enemies Hubris Not starting projects Never finishing a project 37
118 All Programmers Have 2 Enemies Hubris Not starting projects Never finishing a project - OK, all programmers have 3 enemies 37
119 All Programmers Have 2 Enemies Hubris Not starting projects Never finishing a project - OK, all programmers have 3 enemies Off by one errors are a programmer s 3rd enemy 37
120 All Programmers Have 2 Enemies Hubris Not starting projects Never finishing a project - OK, all programmers have 3 enemies Off by one errors are a programmer s 3rd enemy > Counting from 0 37
121 Your time is limited 38
122 Your time is limited You are only going to live to 72 38
123 Your time is limited You are only going to live to 72 - On average 38
124 Your time is limited You are only going to live to 72 - On average You have to work to eat 38
125 Your time is limited You are only going to live to 72 - On average You have to work to eat Most people only ever have 3 original ideas in their life 38
126 Your time is limited You are only going to live to 72 - On average You have to work to eat Most people only ever have 3 original ideas in their life - Not 3 good ideas, just 3 original ideas 38
127 Your time is limited You are only going to live to 72 - On average You have to work to eat Most people only ever have 3 original ideas in their life - Not 3 good ideas, just 3 original ideas You can easily waste your time on the wrong ideas 38
128 Your time is limited You are only going to live to 72 - On average You have to work to eat Most people only ever have 3 original ideas in their life - Not 3 good ideas, just 3 original ideas You can easily waste your time on the wrong ideas Find people who will honestly tell you if your ideas are crap 38
129 Places to start 39
130 Places to start Safe and powerful programming languages 39
131 Places to start Safe and powerful programming languages Anything that measurably reduces complexity 39
132 Places to start Safe and powerful programming languages Anything that measurably reduces complexity Visualization Tools 39
133 Places to start Safe and powerful programming languages Anything that measurably reduces complexity Visualization Tools Real Software Re-use 39
134 Places to start Safe and powerful programming languages Anything that measurably reduces complexity Visualization Tools Real Software Re-use Novel ways of organizing data 39
135 Places to start Safe and powerful programming languages Anything that measurably reduces complexity Visualization Tools Real Software Re-use Novel ways of organizing data Solve the dependency problem 39
136 Thank you for your time 40
137 Get back to work! 41
Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on
Chapter 2: Operating-System Structures Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures 1. Operating System Services 2. User Operating System
More informationChapter 2. Operating-System Structures
Chapter 2 Operating-System Structures 2.1 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System
More informationCS 390 Chapter 2 Homework Solutions
CS 390 Chapter 2 Homework Solutions 2.1 What is the purpose of... System calls are used by user-level programs to request a service from the operating system. 2.5 What is the purpose of... The purpose
More informationCS101 Introduction to Programming Languages and Compilers
CS101 Introduction to Programming Languages and Compilers In this handout we ll examine different types of programming languages and take a brief look at compilers. We ll only hit the major highlights
More informationIf your Mac keeps asking for the login keychain password
If your Mac keeps asking for the login keychain password The password of your macos user account might not match the password of your login keychain. Either create a new login keychain or update it with
More informationWeek - 01 Lecture - 03 Euclid's Algorithm for gcd. Let us continue with our running example of gcd to explore more issues involved with program.
Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 03 Euclid's Algorithm
More informationINTRODUCTION. 2
1 INTRODUCTION It is of no secret that Android is loved by millions of people around the world. Created and developed by Google, it would be most developers dream job. That being said, there are a lot
More informationOpenACC Course. Office Hour #2 Q&A
OpenACC Course Office Hour #2 Q&A Q1: How many threads does each GPU core have? A: GPU cores execute arithmetic instructions. Each core can execute one single precision floating point instruction per cycle
More informationIntroduction to Programming Style
Introduction to Programming Style Thaddeus Aid The IT Learning Programme The University of Oxford, UK 30 July, 2013 Abstract Programming style is the part of the program that the human reads and the compiler
More informationMemory Consistency Models
Memory Consistency Models Contents of Lecture 3 The need for memory consistency models The uniprocessor model Sequential consistency Relaxed memory models Weak ordering Release consistency Jonas Skeppstedt
More informationUnit 9 Tech savvy? Tech support. 1 I have no idea why... Lesson A. A Unscramble the questions. Do you know which battery I should buy?
Unit 9 Tech savvy? Lesson A Tech support 1 I have no idea why... A Unscramble the questions. 1. which battery / Do you know / should / buy / I? Do you know which battery I should buy? 2. they / where /
More informationECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017
ECE 550D Fundamentals of Computer Systems and Engineering Fall 2017 The Operating System (OS) Prof. John Board Duke University Slides are derived from work by Profs. Tyler Bletsch and Andrew Hilton (Duke)
More informationChapter 2 Operating-System Structures
This chapter will discuss the following concepts: 2.1 Operating System Services 2.2 User Operating System Interface 2.3 System Calls 2.4 System Programs 2.5 Operating System Design and Implementation 2.6
More informationChapter 7: Deadlocks 1
1 Reminders: February 24, 2014 I hope you had a good Reading Week! Exercise 3 is due this Wednesday Any questions about anything? Don t forget about Assignment 2, due next week 2 Comments on Exercise 2
More informationSoftware Engineering at VMware Dan Scales May 2008
Software Engineering at VMware Dan Scales May 2008 Eng_BC_Mod 1.Product Overview v091806 The Challenge Suppose that you have a very popular software platform: that includes hardware-level and OS code that
More informationSKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)
SKILL AREA 304: Review Programming Language Concept Computer Programming (YPG) 304.1 Demonstrate an Understanding of Basic of Programming Language 304.1.1 Explain the purpose of computer program 304.1.2
More informationCS354 gdb Tutorial Written by Chris Feilbach
CS354 gdb Tutorial Written by Chris Feilbach Purpose This tutorial aims to show you the basics of using gdb to debug C programs. gdb is the GNU debugger, and is provided on systems that
More informationThink like an Elm developer
Think like an Elm developer Piper Niehaus Denver, CO, USA Backpacker / skier Nonprofit board chair Software Engineer at Pivotal Pivotal Tracker team Elm in Production since 2016 Internal Products and Services
More informationCS 167 Final Exam Solutions
CS 167 Final Exam Solutions Spring 2018 Do all questions. 1. [20%] This question concerns a system employing a single (single-core) processor running a Unix-like operating system, in which interrupts are
More information19 File Structure, Disk Scheduling
88 19 File Structure, Disk Scheduling Readings for this topic: Silberschatz et al., Chapters 10 11. File: a named collection of bytes stored on disk. From the OS standpoint, the file consists of a bunch
More informationFAQ: Advanced Functions
Question 1: What are formulas and functions? Answer 1: Formulas are a type of data that can be entered into a cell in Excel. Formulas begin with an equal sign and use mathematical operators to calculate
More informationEEE 435 Principles of Operating Systems
EEE 435 Principles of Operating Systems Operating System Structure (Modern Operating Systems 1.7) Outline Operating System Structure Monolithic Systems Layered Systems Virtual Machines Exokernels Client-Server
More informationWhat are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and
What are the services provided by an OS? What are system calls? What are some common categories of system calls? What are the principles behind OS design and implementation? What are common ways of structuring
More informationCan t Believe It s Linux. a totally different and hypothetical linux distribution
Can t Believe It s Linux a totally different and hypothetical linux distribution What s the Situation? ubuntu is doing pretty well OS X is doing a lot better crap is actually pretty cool nobody cares about
More informationWhy Operating Systems? Topic 3. Operating Systems. Why Operating Systems? Why Operating Systems?
Topic 3 Why Operating Systems? Operating Systems Abstracting away from the Nuts and Bolts Early computers had no operating system. Programmers were responsible for: telling the computer when to load and
More informationChapter 2: Operating-System Structures
Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System
More informationENCM 339 Fall 2017: Editing and Running Programs in the Lab
page 1 of 8 ENCM 339 Fall 2017: Editing and Running Programs in the Lab Steve Norman Department of Electrical & Computer Engineering University of Calgary September 2017 Introduction This document is a
More informationhttp://xkcd.com/224/ CS252 Programming Language Paradigms Prof. Tom Austin San José State University Fall 2014 What are some programming languages? Why are there so many? Different domains. Mobile devices
More informationPart II Composition of Functions
Part II Composition of Functions The big idea in this part of the book is deceptively simple. It s that we can take the value returned by one function and use it as an argument to another function. By
More informationUKNova s Getting Connectable Guide
UKNova s Getting Connectable Guide Version 1.2 2010/03/22 1. WHAT IS "BEING CONNECTABLE" AND WHY DO I NEED IT? Being connectable means being able to give back to others it is the fundamental principle
More informationRecipes. Marketing For Bloggers. List Building, Traffic, Money & More. A Free Guide by The Social Ms Page! 1 of! 24
16 Recipes Email Marketing For Bloggers List Building, Traffic, Money & More A Free Guide by The Social Ms Page 1 of 24 Brought to you by: Jonathan Gebauer, Susanna Gebauer INTRODUCTION Email Marketing
More informationSpam. Time: five years from now Place: England
Spam Time: five years from now Place: England Oh no! said Joe Turner. When I go on the computer, all I get is spam email that nobody wants. It s all from people who are trying to sell you things. Email
More informationFilter and PivotTables in Excel
Filter and PivotTables in Excel FILTERING With filters in Excel you can quickly collapse your spreadsheet to find records meeting specific criteria. A lot of reporters use filter to cut their data down
More informationCHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.
CHAPTER 2: SYSTEM STRUCTURES By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 2: System Structures Operating System Services User Operating System Interface System Calls Types of System
More informationintroduction week 1 Ritsumeikan University College of Information Science and Engineering Ian Piumarta 1 / 20 imperative programming about the course
week 1 introduction Ritsumeikan University College of Information Science and Engineering Ian Piumarta 1 / 20 class format 30 minutes (give or take a few) presentation 60 minutes (give or take a few) practice
More informationLecture 10: Multi-Object Synchronization
CS 422/522 Design & Implementation of Operating Systems Lecture 10: Multi-Object Synchronization Zhong Shao Dept. of Computer Science Yale University Acknowledgement: some slides are taken from previous
More informationWin32 Multithreaded Programming Epub Gratuit
Win32 Multithreaded Programming Epub Gratuit Many Windows developers still write code as if their application is a single entity that, while it is running, has complete control of all system resources.
More informationChapter 2: System Structures
Chapter 2: Operating System Structures Operating System Services System Calls Chapter 2: System Structures System Programs Operating System Design and Implementation Operating System Structure Virtual
More informationL4/Darwin: Evolving UNIX. Charles Gray Research Engineer, National ICT Australia
L4/Darwin: Evolving UNIX Charles Gray Research Engineer, National ICT Australia charles.gray@nicta.com.au Outline 1. Project Overview 2. BSD on the Mach microkernel 3. Porting Darwin to the L4 microkernel
More informationCSE 4/521 Introduction to Operating Systems
CSE 4/521 Introduction to Operating Systems Lecture 3 Operating Systems Structures (Operating-System Services, User and Operating-System Interface, System Calls, Types of System Calls, System Programs,
More informationOS concepts and structure. q OS components & interconnects q Structuring OSs q Next time: Processes
OS concepts and structure q OS components & interconnects q Structuring OSs q Next time: Processes OS Views Perspectives, OS as the services it provides its components and interactions Services to Users
More informationAlan J. Perlis - Epigrams on Programming
Programming Languages (CS302 2007S) Alan J. Perlis - Epigrams on Programming Comments on: Perlis, Alan J. (1982). Epigrams on Programming. ACM SIGPLAN Notices 17(9), September 1982, pp. 7-13. 1. One man
More informationLecture 1b: Why C++?
Copyright by Bruce A. Draper. 2016, All Rights Reserved. Lecture 1b: Why C++? Announcements: For today, you should have read Weiss, Chapter 0, and taken the on-line quiz. If you haven t taken the quiz
More informationThe name of our class will be Yo. Type that in where it says Class Name. Don t hit the OK button yet.
Mr G s Java Jive #2: Yo! Our First Program With this handout you ll write your first program, which we ll call Yo. Programs, Classes, and Objects, Oh My! People regularly refer to Java as a language that
More informationIntroduction to OpenMP
Introduction to OpenMP p. 1/?? Introduction to OpenMP Synchronisation Nick Maclaren Computing Service nmm1@cam.ac.uk, ext. 34761 June 2011 Introduction to OpenMP p. 2/?? Summary Facilities here are relevant
More informationPatching and Updating your VM SUSE Manager. Donald Vosburg, Sales Engineer, SUSE
Patching and Updating your VM SUSE Manager Donald Vosburg, Sales Engineer, SUSE dvosburg@suse.com Why should I care? I just clone my base VM image, and after that it is not my problem... Understand the
More informationCOMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager
COMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager Points Possible: 100 Submission via Canvas No collaboration among groups. Students in one group should NOT share any project
More informationThe Context of Cryptography. Ramki Thurimella
The Context of Cryptography Ramki Thurimella Role Professional Paranoia or Don t Trust Anything Blindly principle Cryptography by itself is useless, just as a lock by itself is useless Different weaknesses
More informationThis course is designed for anyone who needs to learn how to write programs in Python.
Python Programming COURSE OVERVIEW: This course introduces the student to the Python language. Upon completion of the course, the student will be able to write non-trivial Python programs dealing with
More informationCMSC131. Hardware and Software. Hardware
CMSC131 Hardware and Software Hardware Hardware is what makes up the physical machine. Two of the same type of machines can have different brands of hardware used to build them. eg : Hayes Modem -vs- US
More informationCMSC131. Hardware and Software
CMSC131 Hardware and Software Hardware Hardware is what makes up the physical machine. Two of the same type of machines can have different brands of hardware used to build them. eg : Hayes Modem -vs- US
More informationThe do s and don ts of error handling. Joe Armstrong
The do s and don ts of error handling Joe Armstrong A system is fault tolerant if it continues working even if something is wrong Work like this is never finished it s always in-progress Hardware can fail
More informationBring in several pieces of junk mail that have been opened and spread the mail around the classroom.
LESSON PLAN You ve Won a Prize! GRADES 3-5 UNIT 2 Essential Question What is spam, and what can you do about it? Lesson Overview Students learn what spam is, the forms it takes, and then identify strategies
More informationOperating Systems (2INC0) 2018/19. Introduction (01) Dr. Tanir Ozcelebi. Courtesy of Prof. Dr. Johan Lukkien. System Architecture and Networking Group
Operating Systems (2INC0) 20/19 Introduction (01) Dr. Courtesy of Prof. Dr. Johan Lukkien System Architecture and Networking Group Course Overview Introduction to operating systems Processes, threads and
More informationAmber Weyland: [to cameraman] Just hold it there so we can see Mollie.
Interview Transcript Interviewer: Amber Weyland Interviewee: Mollie Hummer Cameraman: Christopher Smith [friend to both] Date: March 22, 2010 Beginning time of interview: 2:30pm End time of interview:
More informationLanguage Evaluation P L COS 301. Fall School of Computing and Information Science University of Maine. Language Evaluation COS 301.
School of Computing and Information Science University of Maine Fall 2018 Outline 1 2 3 4 5 evaluation criteria Early (pre-1970s): more important for machine to read code easily After: realized SW maintenance
More informationHow projects fail, why they fail and how to prevent failure. All in one easy lecture! DuRant Lewis, Atmel Corporation
Engineering Disasters How projects fail, why they fail and how to prevent failure. All in one easy lecture! DuRant Lewis, Atmel Corporation A Night at the Whitney! Engineering Disasters Engineering Disasters
More informationComponent V Supporting Materials / Learn More Interesting Facts. Interesting Facts
Component V Supporting Materials / Learn More 1.4.1 Interesting Facts No. Interesting Facts 1. All computers operate by following machine language programs. 2. Machine language programs are long sequence
More informationIntro. Scheme Basics. scm> 5 5. scm>
Intro Let s take some time to talk about LISP. It stands for LISt Processing a way of coding using only lists! It sounds pretty radical, and it is. There are lots of cool things to know about LISP; if
More informationFile Systems. OS Overview I/O. Swap. Management. Operations CPU. Hard Drive. Management. Memory. Hard Drive. CSI3131 Topics. Structure.
File Systems I/O Management Hard Drive Management Virtual Memory Swap Memory Management Storage and I/O Introduction CSI3131 Topics Process Management Computing Systems Memory CPU Peripherals Processes
More informationThe great primary-key debate
http://builder.com.com/5100-6388-1045050.html Página 1 de 3 16/11/05 Log in Join now Help SEARCH: Builder.com GO Home : Architect : Database : The great primary-key debate Resources Newsletters Discussion
More informationSystem Administration for Beginners
System Administration for Beginners Week 5 Notes March 16, 2009 1 Introduction In the previous weeks, we have covered much of the basic groundwork needed in a UNIX environment. In the upcoming weeks, we
More informationBasic Concepts & OS History
Basic Concepts & OS History Nima Honarmand Administrivia TA: Babak Amin Azad Office hours: Monday & Wednesday, 5:30-7:00 PM Location: 2217 old CS building VMs ready; SSH Keys will be emailed today Lab1
More informationPROJECT 6: PINTOS FILE SYSTEM. CS124 Operating Systems Winter , Lecture 25
PROJECT 6: PINTOS FILE SYSTEM CS124 Operating Systems Winter 2015-2016, Lecture 25 2 Project 6: Pintos File System Last project is to improve the Pintos file system Note: Please ask before using late tokens
More informationAdobe Fireworks CS Essential Techniques
Adobe Fireworks CS4 HOW-TOs 100 Essential Techniques Jim Babbage 140 64 Creating Graphic Symbols Resizing Symbols When you resize any bitmap to a smaller size, pixel information is discarded. This is normally
More informationMaking Address Spaces Smaller
ICS332 Operating Systems Spring 2018 Smaller Address Spaces Having small address spaces is always a good idea This is good for swapping: don t swap as often (because if address spaces are small, then RAM
More informationChapter 2: Operating-System Structures. Operating System Concepts 9 th Edition
Chapter 2: Operating-System Structures Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System
More informationMASSACHUSETTS INSTITUTE OF TECHNOLOGY Computer Systems Engineering: Spring Quiz I Solutions
Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.033 Computer Systems Engineering: Spring 2011 Quiz I Solutions There are 10 questions and 12 pages in this
More informationFactory Reset Locked Iphone 4 Without Computer
Factory Reset Locked Iphone 4 Without Computer Factory reset iphone should be a hard decision, because all of things on iphone will be lost. of the easiest methods to restore iphone to factory settings
More informationMaximum Contiguous Subsequence Sum. Check out from SVN: MCSSRaces
Q0 Maximum Contiguous Subsequence Sum Check out from SVN: MCSSRaces Good comments: Javadoc comments for public fields and methods. Explanations of anything else that is not obvious. Good variable and method
More informationTHE DEFINITIVE GUIDE
THE DEFINITIVE GUIDE TO OPTIMIZE YOUR EMAIL MARKETING Mailrelay.com KEYS TO OPTIMIZE YOUR E-MAIL MARKETING 01 WHAT TO INCLUDE IN YOUR NEWSLETTERS? 02 HOW TO ACHIEVE A HIGH AVERAGE OF VIEWS? 03 HOW OFTEN
More informationKernel Types Simple OS Examples System Calls. Operating Systems. Autumn CS4023
Operating Systems Autumn 2017-2018 Outline 1 2 3 Types of 2.4, SGG The OS Kernel The kernel is the central component of an OS It has complete control over everything that occurs in the system Kernel overview
More informationUsing GitHub to Share with SparkFun a
Using GitHub to Share with SparkFun a learn.sparkfun.com tutorial Available online at: http://sfe.io/t52 Contents Introduction Gitting Started Forking a Repository Committing, Pushing and Pulling Syncing
More informationSecure Programming I. Steven M. Bellovin September 28,
Secure Programming I Steven M. Bellovin September 28, 2014 1 If our software is buggy, what does that say about its security? Robert H. Morris Steven M. Bellovin September 28, 2014 2 The Heart of the Problem
More informationFSMLabs White Paper The RTLinux embedded enterprise versus the Linux RT patches.
FSMLabs White Paper The RTLinux embedded enterprise versus the Linux RT patches. Abstract: FSMLabs patented decoupled real-time continues to hold a sustained performance, reliability, and programmability
More informationELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition
ELEC / COMP 177 Fall 2014 Some slides from Kurose and Ross, Computer Networking, 5 th Edition Project #1 Starts in one week Is your Linux environment all ready? Bring your laptop Work time after quick
More information6. Concurrency: Deadlock
CSC400 - Operating Systems 6. Concurrency: Deadlock J. Sumey Deadlock one problem that results from multiprogramming def: a process (or thread) is said to be deadlocked if it is waiting for an event that
More informationCMSC 330: Organization of Programming Languages
CMSC 330: Organization of Programming Languages Memory Management and Garbage Collection CMSC 330 - Spring 2013 1 Memory Attributes! Memory to store data in programming languages has the following lifecycle
More informationCryptography Worksheet
Cryptography Worksheet People have always been interested in writing secret messages. In ancient times, people had to write secret messages to keep messengers and interceptors from reading their private
More informationDiscussion Week 4. TA: Kyle Dewey. Monday, October 17, 11
Discussion Week 4 TA: Kyle Dewey Overview Project #1 debriefing System calls Project #2 Task 1 Bugs/Ugliness About that Project... I m not actually grading anything (probably) Clarity is a wonderful thing
More informationStop Scope Creep. Double Your Profit & Remove The Stress of Selling Websites
Stop Scope Creep Double Your Profit & Remove The Stress of Selling Websites Why Do Projects Go Wrong? Imagine this: You ve agreed to do a specific project with a client. You start off well. But as the
More informationThe Art and Science of Memory Allocation
Logical Diagram The Art and Science of Memory Allocation Don Porter CSE 506 Binary Formats RCU Memory Management Memory Allocators CPU Scheduler User System Calls Kernel Today s Lecture File System Networking
More informationIncoherent Rant about Code
Incoherent Rant about Code Aras Pranckevičius Unity Unity Bootcamp II, 2010 Nov-Dec This is pretty much on random code related things with no structure. Expect lots of topic jumps for no reason at all!
More informationCSC Operating Systems Spring Lecture - II OS Structures. Tevfik Ko!ar. Louisiana State University. January 17 th, 2007.
CSC 4103 - Operating Systems Spring 2008 Lecture - II OS Structures Tevfik Ko!ar Louisiana State University January 17 th, 2007 1 Announcements Teaching Assistant: Asim Shrestrah Email: ashres1@lsu.edu
More informationAnnouncements. Operating System Structure. Roadmap. Operating System Structure. Multitasking Example. Tevfik Ko!ar
CSC 4103 - Operating Systems Spring 2008 Lecture - II OS Structures Tevfik Ko!ar Teaching Assistant: Asim Shrestrah Email: ashres1@lsu.edu Announcements All of you should be now in the class mailing list.
More informationChapter 3. Revision Control
Chapter 3 Revision Control We begin our journey into software engineering before we write a single line of code. Revision control systems (RCSes) such as Subversion or CVS are astoundingly useful for single-developer
More informationThe WideRuled Story Generator Tutorial Alex Mitchell Communications and New Media Programme National University of Singapore
The WideRuled Story Generator Tutorial Alex Mitchell Communications and New Media Programme National University of Singapore Table of Contents 1. Introduction... 1 2. Getting Started... 2 3. Creating Characters...
More informationIntroduction to Programming
CHAPTER 1 Introduction to Programming Begin at the beginning, and go on till you come to the end: then stop. This method of telling a story is as good today as it was when the King of Hearts prescribed
More information15-323/ Spring 2019 Project 4. Real-Time Audio Processing Due: April 2 Last updated: 6 March 2019
15-323/15-623 Spring 2019 Project 4. Real-Time Audio Processing Due: April 2 Last updated: 6 March 2019 1 Overview In this project, you will create a program that performs real-time audio generation. There
More informationIntroduction to Parallel Computing. CPS 5401 Fall 2014 Shirley Moore, Instructor October 13, 2014
Introduction to Parallel Computing CPS 5401 Fall 2014 Shirley Moore, Instructor October 13, 2014 1 Definition of Parallel Computing Simultaneous use of multiple compute resources to solve a computational
More informationUsing the Computer for Essays
+ Using the Computer for Essays Why can t I just write it out and turn it in? Common Core Standard: Writing 10.6 - Use technology, including the Internet, to produce and publish writing and to interact
More informationProcesses and Threads
COS 318: Operating Systems Processes and Threads Kai Li and Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall13/cos318 Today s Topics u Concurrency
More informationCS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise
CS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise If you re not already crazy about Scheme (and I m sure you are), then here s something to get
More informationGame keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen
Computer Programming Computers can t do anything without being told what to do. To make the computer do something useful, you must give it instructions. You can give a computer instructions in two ways:
More informationThese are exciting times for Macintosh users. When Apple unleashed Mac
Chapter 1 A Brief Tour of Cocoa Development In This Chapter Programming for Mac OS X Discovering the Cocoa development process Exploring the tools for programming Cocoa applications These are exciting
More informationWebRTC: Possible? Don McGregor Research Associate MOVES Institute.
WebRTC: Possible? Don McGregor Research Associate MOVES Institute mcgredo@nps.edu The World Classic simulation applications: can we do them in the web browser? Pretty much. I think. 2 1990s Start: Classic
More information2SKILL. Variables Lesson 6. Remembering numbers (and other stuff)...
Remembering numbers (and other stuff)... Let s talk about one of the most important things in any programming language. It s called a variable. Don t let the name scare you. What it does is really simple.
More informationPython for Analytics. Python Fundamentals RSI Chapters 1 and 2
Python for Analytics Python Fundamentals RSI Chapters 1 and 2 Learning Objectives Theory: You should be able to explain... General programming terms like source code, interpreter, compiler, object code,
More informationCS197U: A Hands on Introduction to Unix
CS197U: A Hands on Introduction to Unix Lecture 4: My First Linux System Tian Guo University of Massachusetts Amherst CICS 1 Reminders Assignment 2 was due before class Assignment 3 will be posted soon
More informationProgramming with MPI
Programming with MPI p. 1/?? Programming with MPI One-sided Communication Nick Maclaren nmm1@cam.ac.uk October 2010 Programming with MPI p. 2/?? What Is It? This corresponds to what is often called RDMA
More information