Mu Documentation Release 1.1.0.Beta.5

Total Page:16

File Type:pdf, Size:1020Kb

Mu Documentation Release 1.1.0.Beta.5 Mu Documentation Release 1.1.0.beta.5 Nicholas H.Tollervey Sep 23, 2021 CONTENTS 1 Quickstart 3 2 What? 5 3 Why? 7 4 How? 9 5 Who? 11 6 Contents: 13 6.1 Contributing to Mu............................................ 13 6.2 Code of Conduct............................................. 14 6.3 Developer Setup............................................. 15 6.4 Suggested First Steps........................................... 18 6.5 User Experience............................................. 20 6.6 Mu’s Architecture............................................ 26 6.7 Modes in Mu............................................... 27 6.8 Internationalisation of Mu........................................ 34 6.9 Python Runner/Debugger........................................ 39 6.10 Mu’s Test Suite.............................................. 42 6.11 Packaging Mu.............................................. 43 6.12 Developing Mu’s Website........................................ 47 6.13 Mu API Reference............................................ 49 6.14 Design Decisions............................................. 83 6.15 Release Process.............................................. 91 6.16 Roadmap (Mappa MUndi)........................................ 95 6.17 Mu’s Developers............................................. 96 6.18 Release History.............................................. 96 6.19 GNU General Public License...................................... 108 6.20 Copyright Information.......................................... 117 Python Module Index 121 Index 123 i ii Mu Documentation, Release 1.1.0.beta.5 Note: This documentation is NOT for users of Mu. Rather, it is for software developers who want to improve Mu. Read our Developer Setup documentation for the technical details needed to get started. For tutorials, how-to guides and user related discussion, please see the project’s website for users of Mu at: https: //codewith.mu/ If you’re interested in the fun, educational, inspiring and sometimes hilarious ways in which people use Mu, check out: https://madewith.mu/ CONTENTS 1 Mu Documentation, Release 1.1.0.beta.5 2 CONTENTS CHAPTER ONE QUICKSTART Mu works with Python 3.5 to 3.8 (both inclusive). You need to have one of these Python versions installed in order to work on developing Mu (here is a comprehensive guide for how to do this). We also assume you know how to use Python virtual environments. Clone the repository: git clone https://github.com/mu-editor/mu.git Create a virtualenv and activate it. Then, upgrade pip: python-m pip install--upgrade pip Install Mu and its development dependencies: pip install-e".[dev]" Start Mu: mu-editor Run the test suite: make check Read on to learn more about Mu, its aims and how you can contribute. 3 Mu Documentation, Release 1.1.0.beta.5 4 Chapter 1. Quickstart CHAPTER TWO WHAT? Mu is a very simple Python editor for kids, teachers and beginner programmers. It’s written in Python and works on Windows, OSX, Linux and Raspberry Pi. “[Papert] realized, ‘Oh, we could take the real content out here as a version in the child’s world that is still the real thing.’ It’s not a fake version of math. It’s kind of like little league, or even T-ball. In sports they do this all the time. In music, they do it all the time. The idea is, you never let the child do something that isn’t the real thing – but you have to work your ass off to figure out what the real thing is in the contextof the way their minds are working at that developmental level.” – Alan Kay Mu aspires to be “the real thing” as a development environment for beginner programmers taking their first steps with Python. As a rule of thumb, if you’re able to ask “why doesn’t Mu have [feature X]?” then you’re probably too advanced for using Mu as a development environment. In which case, you should graduate to a more advanced editor. 5 Mu Documentation, Release 1.1.0.beta.5 6 Chapter 2. What? CHAPTER THREE WHY? There isn’t a cross platform Python code editor that is: • Easy to use; • Available on all major platforms; • Well documented (even for beginners); • Simply coded; • Currently maintained; and, • Thoroughly tested. Mu addresses these needs. Mu was originally created as a contribution from the Python Software Foundation for the BBC’s micro:bit project. Many people asked if Mu could be turned into a generic beginner’s code editor and, thanks to the wonderful support of the Raspberry Pi Foundation the work needed to make such changes was done over the summer of 2017. The following video of a talk given at PyCon 2018 outlines the story of Mu: 7 Mu Documentation, Release 1.1.0.beta.5 8 Chapter 3. Why? CHAPTER FOUR HOW? Mu’s outlook is: • Less is more (remove all unnecessary distractions); • Keep it simple (so Mu is easy to understand); • Walk the path of least resistance (Mu should be easy to use); • Have fun (learning should be a positive experience). Mu’s own code is simple, clearly organised and well tested. It’s copiously commented and mostly found in a few obviously named Python files. This has been done on purpose: we want teachers and kids to take ownership of this project and organising the code in this way aids the first steps required to get involved. If you’re looking for ways to get involved check out some of the Suggested First Steps for new contributors. Furthermore, we put our users at the centre of our development work. Extensive interviews with teachers, observa- tions of lessons and exceptionally clear and helpful feedback from the education team at the Raspberry Pi Foundation (perhaps the most successful computing in education project in history) have informed the design choices for Mu. 9 Mu Documentation, Release 1.1.0.beta.5 10 Chapter 4. How? CHAPTER FIVE WHO? You! Contributions are welcome without prejudice from anyone irrespective of age, gender, religion, race or sexuality. If you’re thinking, “but they don’t mean me”, then we especially mean YOU. Good quality code and engagement with respect, humour and intelligence wins every time. Read about Contributing to Mu and perhaps try out some Suggested First Steps. We want the Mu community to be a friendly place. Therefore, we expect contributors to follow our Code of Conduct. 11 Mu Documentation, Release 1.1.0.beta.5 12 Chapter 5. Who? CHAPTER SIX CONTENTS: 6.1 Contributing to Mu Hey! Many thanks for wanting to improve Mu. Contributions are welcome without prejudice from anyone irrespective of age, gender, religion, race or sexuality. If you’re thinking, “but they don’t mean me”, then we especially mean YOU. Good quality code and engagement with respect, humour and intelligence wins every time. • If you’re from a background which isn’t well-represented in most geeky groups, get involved - we want to help you make a difference. • If you’re from a background which is well-represented in most geeky groups, get involved - we want your help making a difference. • If you’re worried about not being technical enough, get involved - your fresh perspective will be invaluable. • If you think you’re an imposter, get involved. • If your day job isn’t code, get involved. • This isn’t a group of experts, just people. Get involved! • We are interested in educational, social and technical problems. If you are too, get involved. • This is a new community. No-one knows what they are doing, so, get involved. We expect contributors to follow our code_of_conduct. Check out our developer setup documentation for instructions to configure a working development environment for Mu. Feedback may be given for contributions and, where necessary, changes will be politely requested and discussed with the originating author. Respectful yet robust argument is most welcome. Warning: Contributions are subject to the following caveats: the contribution was created by the contributor who, by submitting the contribution, is confirming that they have the authority to submit the contribution andplace it under the license as defined in the LICENSE file found within this repository (see GNU General Public License). If this is a significant contribution the contributor should add themselves to the AUTHORS file found intheroot of Mu’s repository, otherwise they agree, for the sake of convenience, that copyright passes exclusively to Nicholas H.Tollervey on behalf of the Mu project. 13 Mu Documentation, Release 1.1.0.beta.5 6.1.1 Checklist • If your contribution includes non-obvious technical decision making please make sure you document this in the design decisions section. • Your code should be commented in plain English (British spelling). • If your contribution is for a major block of work and you’ve not done so already, add yourself to the AUTHORS file following the convention found therein. • We have 100% test coverage - include tests to maintain this! • Before submitting code ensure coding standards and test coverage by running: make check • If in doubt, ask a question. The only stupid question is the one that’s never asked. • Most importantly, Have fun! :-) 6.2 Code of Conduct We expect contributors to follow the Python Software Foundation’s Code of Conduct, reproduced below. The Python community is made up of members from around the globe with a diverse set of skills, personalities, and experiences. It is through these differences that our community experiences great successes and continued growth. When you’re working with members of the community, we encourage you to follow these guidelines which help steer our interactions and strive to keep Python a positive, successful, and growing community. A member of the Python community is: 6.2.1 Open Members of the community are open to collaboration, whether it’s on PEPs, patches, problems, or otherwise. We’re receptive to constructive comment and criticism, as the experiences and skill sets of other members contribute to the whole of our efforts. We’re accepting of all who wish to take part in our activities, fostering an environment where anyone can participate and everyone can make a difference.
Recommended publications
  • Micropython for Satlink 3 Documentation Release 1.8.4
    MicroPython for Satlink 3 Documentation Release 1.8.4 Damien P. George, contributors, and Sutron Corporation Jul 28, 2017 CONTENTS 1 Python first time setup & configuration1 1.1 1. Download & Install LinkComm....................................1 1.2 2. Download & Install Python......................................1 1.3 3. Download & Install Pyinstaller....................................3 1.4 4. Download & Install PyCharm.....................................3 1.5 5. Testing out .py to .exe converter....................................5 1.6 6. Python PyQt5 GUI..........................................6 1.7 7. Connect PyCharm into external programs like linkcomm or micropython..............6 1.8 8. Configure PyCharm for program development using LinkComm..................9 1.9 9. Configure PyCharm with SL3 API for auto completion....................... 11 1.10 10. Setting docstring stub in PyCharm.................................. 13 2 MicroPython libraries 15 2.1 Python standard libraries and micro-libraries.............................. 15 2.2 MicroPython-specific libraries...................................... 16 2.3 Libraries specific to the Satlink 3.................................... 19 3 The MicroPython language 39 3.1 Overview of MicroPython Differences from Standard Python..................... 39 3.2 Code examples of how MicroPython differs from Standard Python with work-arounds........ 41 3.3 The MicroPython Interactive Interpreter Mode (aka REPL)....................... 56 3.4 Maximising Python Speed.......................................
    [Show full text]
  • Setting up Your Environment
    APPENDIX A Setting Up Your Environment Choosing the correct tools to work with asyncio is a non-trivial choice, since it can significantly impact the availability and performance of asyncio. In this appendix, we discuss the interpreter and the packaging options that influence your asyncio experience. The Interpreter Depending on the API version of the interpreter, the syntax of declaring coroutines change and the suggestions considering API usage change. (Passing the loop parameter is considered deprecated for APIs newer than 3.6, instantiating your own loop should happen only in rare circumstances in Python 3.7, etc.) Availability Python interpreters adhere to the standard in varying degrees. This is because they are implementations/manifestations of the Python language specification, which is managed by the PSF. At the time of this writing, three relevant interpreters support at least parts of asyncio out of the box: CPython, MicroPython, and PyPy. © Mohamed Mustapha Tahrioui 2019 293 M. M. Tahrioui, asyncio Recipes, https://doi.org/10.1007/978-1-4842-4401-2 APPENDIX A SeTTinG Up YouR EnViROnMenT Since we are ideally interested in a complete or semi-complete implementation of asyncio, our choice is limited to CPython and PyPy. Both of these products have a great community. Since we are ideally using a lot powerful stdlib features, it is inevitable to pose the question of implementation completeness of a given interpreter with respect to the Python specification. The CPython interpreter is the reference implementation of the language specification and hence it adheres to the largest set of features in the language specification. At the point of this writing, CPython was targeting API version 3.7.
    [Show full text]
  • Raspberry Pi: Ubuntu Retro Remix, Raspex Kodi OS for Raspberry Pi and Pi Compute Module 4
    Published on Tux Machines (http://www.tuxmachines.org) Home > content > Raspberry Pi: Ubuntu Retro Remix, RaspEX Kodi OS for Raspberry Pi and Pi Compute Module 4 Raspberry Pi: Ubuntu Retro Remix, RaspEX Kodi OS for Raspberry Pi and Pi Compute Module 4 By Roy Schestowitz Created 27/07/2020 - 2:37am Submitted by Roy Schestowitz on Monday 27th of July 2020 02:37:18 AM Filed under GNU [1] Linux [2] Hardware [3] Meet Ubuntu Retro Remix, an Ubuntu Distro to Turn Your Raspberry Pi into a Retro Gaming Console[4] Meet Ubuntu Retro Remix, a new, upcoming Ubuntu distro designed for retro gamers and Raspberry Pi fans. It?s an unofficial remix of Ubuntu that will turn your Raspberry Pi into a retro gaming machine. After building the Rolling Rhino, a command-line tool that lets you convert your regular Ubuntu installation into a rolling release, Canonical?s Ubuntu Desktop lead Martin Wimpress is now building a new Ubuntu-based distro specifically designed for Raspberry Pi computers and retro gaming, called Ubuntu Retro Remix. Why retro gaming? Because Martin Wimpress is a hardcore retro gamer who built several Raspberry Pi retro games consoles using cases that imitate the classic retro gaming consoles. RaspEX Kodi for Rpi4, Rpi3 and Rpi2 with LXDE Desktop and Kodi 18.7 Media Center ?Leia? with Netflix, YouTube, Plex and Amazon Video addons ? Build 200713 (32-bit) and Build 200726 (64-bit)[5] The system is made especially for the new Raspberry Pi 4 (8GB, 4GB and 2GB). RaspEX Kodi is based on Debian 11 Bullseye respectively Debian 10 Buster, Raspberry Pi OS (previously called Raspbian) and Kodi Media Center.
    [Show full text]
  • Python Crypto Misuses in the Wild
    Python Crypto Misuses in the Wild Anna-Katharina Wickert Lars Baumgärtner [email protected] [email protected] Technische Universität Darmstadt Technische Universität Darmstadt Darmstadt, Germany Darmstadt, Germany Florian Breitfelder Mira Mezini [email protected] [email protected] Technische Universität Darmstadt Technische Universität Darmstadt Darmstadt, Germany Darmstadt, Germany ABSTRACT 1 INTRODUCTION Background: Previous studies have shown that up to 99.59 % of the Cryptography, hereafter crypto, is widely used nowadays to protect Java apps using crypto APIs misuse the API at least once. However, our data and ensure confidentiality. For example, without crypto, these studies have been conducted on Java and C, while empirical we would not be able to securely use online banking or do online studies for other languages are missing. For example, a controlled shopping. Unfortunately, previous research results show that crypto user study with crypto tasks in Python has shown that 68.5 % of the is often used in an insecure way [3, 4, 7, 9, 11]. One such problem is professional developers write a secure solution for a crypto task. the choice of an insecure parameter, like an insecure block mode, for Aims: To understand if this observation holds for real-world code, crypto primitives like encryption. Many static analysis tools exist we conducted a study of crypto misuses in Python. Method: We to identify these misuses such as CryptoREX [13], CryptoLint [4], developed a static analysis tool that covers common misuses of5 CogniCryptSAST [8], and Cryptoguard [12]. different Python crypto APIs. With this analysis, we analyzed 895 While these tools and the respective in-the-wild studies concen- popular Python projects from GitHub and 51 MicroPython projects trate on Java and C, user studies suggest that the existing Python for embedded devices.
    [Show full text]
  • Circuitpython Documentation Release 0.0.0
    CircuitPython Documentation Release 0.0.0 Damien P. George, Paul Sokolovsky, and contributors Jun 26, 2020 API and Usage 1 Adafruit CircuitPython 3 1.1 Status...................................................3 1.2 Supported Boards............................................3 1.2.1 Designed for CircuitPython...................................3 1.2.2 Other..............................................4 1.3 Download.................................................4 1.4 Documentation..............................................4 1.5 Contributing...............................................4 1.6 Differences from MicroPython......................................4 1.6.1 Behavior.............................................5 1.6.2 API...............................................5 1.6.3 Modules.............................................5 1.6.4 atmel-samd21 features.....................................5 1.7 Project Structure.............................................5 1.7.1 Core...............................................6 1.7.2 Ports...............................................6 1.8 Full Table of Contents..........................................7 1.8.1 Core Modules..........................................7 1.8.2 Supported Ports......................................... 47 1.8.3 Troubleshooting......................................... 56 1.8.4 Additional Adafruit Libraries and Drivers on GitHub..................... 57 1.8.5 Design Guide.......................................... 59 1.8.6 Architecture..........................................
    [Show full text]
  • Challenges and Issues of Mining Crash Reports
    Challenges and Issues of Mining Crash Reports Le An, Foutse Khomh SWAT, Polytechnique Montreal,´ Quebec,´ Canada fle.an, [email protected] Abstract—Automatic crash reporting tools built in many soft- In the rest of this paper, we describe the structure of a ware systems allow software practitioners to understand the crash report before presenting some analytic techniques to origin of field crashes and help them prioritise field crashes mine implicit information from crash reports. For each of the or bugs, locate erroneous files, and/or predict bugs and crash occurrences in subsequent versions of the software systems. In techniques, we discuss its challenges and issues. After giving this paper, after illustrating the structure of crash reports in an overview of the related work, we conclude the paper with Mozilla, we discuss some techniques for mining information from suggestions for future studies. crash reports, and highlight the challenges and issues of these techniques. Our aim is to raise the awareness of the research II. STRUCTURE OF CRASH REPORTS community about issues that may bias research results obtained In this section, we take crash reports from Mozilla Socorro from crash reports and provide some guidelines to address certain server (Mozilla’s crash collecting database) [4] as an example challenges related to mining crash reports. Index Terms—Crash report, bug report, mining software to describe the typical crash collecting system. repositories. Mozilla delivers its applications with a built-in automatic crash reporting tool: Mozilla Crash Reporter, which sends a crash report to the Mozilla Socorro server, once end users I. INTRODUCTION encounter an unexpected halt of the application.
    [Show full text]
  • Crash Reporting: Mozilla’S Open Source Solution
    Crash Reporting: Mozilla’s Open Source Solution K Lars Lohn Ted Mielczarek Austin King Friday, July 24, 2009 Howdy, I’m Lars from Mozilla, I’m here today with my colleagues, Ted Mill-char-ek and Austin King to talk about Crash Reporting. What is it? Friday, July 24, 2009 Have you ever seen Firefox crash? Have you ever wondered what happens after you hit the “restart firefox” button? In the next 45 minutes, we’re going to take you down the rabbit hole and show you what we do. We want our processes to be open. When you experience a problem with any Mozilla product, we want _everyone_, not just the developers, to watch the flow of information about a problem for its initial occurrence, through data collection and triage, on to Bugzilla and to an eventual resolution. Crash reporting is the transmission of information to the developers about the state of an application during a catastrophic failure. Friday, July 24, 2009 Crash reporting is the transmission of information about the state of an application during a catastrophic failure to the developers. The goal is to give the developers information that they would not otherwise have had. Google Socorro Socorro UI Breakpad Server (reporter) minidump_stackwalk Friday, July 24, 2009 Our crash reporting system can be divided into three parts. Breakpad - a google project - this code lives mainly within the Firefox application Socorro (in two movements) the backend server and the user interface running at Mozilla. written in three languages <click> <click> <click> Ted, Austin and I are the three developers in charge of the three sections.
    [Show full text]
  • 7-Inch DIY Touch Screen
    7-inch DIY Touch Screen www.sunfounder.com Jul 15, 2021 CONTENTS 1 Components List 3 2 Install the Raspberry Pi OS 5 3 Connect the Screen to the Raspberry Pi 11 4 Settings for Raspberry Pi 15 4.1 Adjust the Resolution.......................................... 15 4.2 Install Virtual Keyboard on Raspberry Pi................................ 18 4.3 Right Click on Raspberry Pi....................................... 23 5 Connect the Screen to the PC 25 6 Parameters 27 6.1 General Information........................................... 28 6.2 Absolute Maximum Ratings....................................... 29 6.3 CTP Characteristics........................................... 30 6.4 Interface Description........................................... 30 6.5 HDMI Interface Description....................................... 31 6.6 Reliability Conditions.......................................... 33 7 FAQ 35 8 Copyright Notice 37 i ii 7-inch DIY Touch Screen 7-inch touch screen supports Raspbian/Win7/Win8/Win10(Plug and play), Android/Linux (need to be configured first). Equipped with Micro USB and HDMI port support, the screen can be connected to the device via HDMI interface and be powered via USB. Achieving touch function powered by USB doesn’t need power cord or drive-free. CONTENTS 1 7-inch DIY Touch Screen 2 CONTENTS 3 7-inch DIY Touch Screen CHAPTER ONE COMPONENTS LIST 4 Chapter 1. Components List CHAPTER TWO INSTALL THE RASPBERRY PI OS In this chapter, we firstly learn to write the Raspberry Pi OS to your Micro SD card. You can check the complete tutorial on the official website of the Raspberry Pi: https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up. Note: If you have already done it, you can skip this chapter. Required Components 1 * Micro SD Card 1 * Personal Computer 1 * Micro SD Card Reader Step 1 Raspberry Pi have developed a graphical SD card writing tool that works on Mac OS, Ubuntu 18.04 and Windows, and is the easiest option for most users as it will download the image and install it automatically to the SD card.
    [Show full text]
  • An Autopsy of a Web Browser's Leaked Crash Reports
    Crashing Privacy: An Autopsy of a Web Browser’s Leaked Crash Reports Kiavash Satvat Nitesh Saxena University of Alabama at Birmingham University of Alabama at Birmingham [email protected] [email protected] ABSTRACT private information that can be found in crash reports which may Harm to the privacy of users through data leakage is not an un- pose a threat to the users’ privacy. known issue, however, it has not been studied in the context of In this paper, to demonstrate possible risks that the current the crash reporting system. Automatic Crash Reporting Systems implementation of ACRS may pose to users’ privacy, we study a (ACRS) are used by applications to report information about the er- dataset of partially anonymized crash reports released by one of 1 rors happening during a software failure. Although crash reports the major browsers . The current state of the art browsers collect are valuable to diagnose errors, they may contain users’ sensitive relatively similar data including browsed URL during the crash and information. In this paper, we study such a privacy leakage vis-a- runtime information, as they can be required for the debugging. vis browsers’ crash reporting systems. As a case study, we mine To the best of our knowledge, this is the first case study which a dataset consisting of crash reports collected over the period of scrutinizes a database of 2.5 million partially anonymized crash re- six years. Our analysis shows the presence of more than 20,000 ports, containing visited URLs, system runtime information and sessions and token IDs, 600 passwords, 9,000 email addresses, an users’ descriptions.
    [Show full text]
  • Why Did This Reviewed Code Crash? an Empirical Study of Mozilla Firefox
    Why Did This Reviewed Code Crash? An Empirical Study of Mozilla Firefox Le An and Foutse Khomh Shane McIntosh Marco Castelluccio Polytechnique Montréal McGill University Mozilla Corporation and Università Federico II {le.an, foutse.khomh}@polymtl.ca [email protected] [email protected] Abstract—Code review, i.e., the practice of having other team mine the crash collection, version control, issue tracking, and members critique changes to a software system, is a pillar of code reviewing systems of the Mozilla Firefox project. More modern software quality assurance approaches. Although this specifically, we address the following two research questions: activity aims at improving software quality, some high-impact defects, such as crash-related defects, can elude the inspection of RQ1: What are the characteristics of reviewed code that is reviewers and escape to the field, affecting user satisfaction and implicated in a crash? increasing maintenance overhead. In this research, we investigate We find that crash-prone reviewed patches often contain the characteristics of crash-prone code, observing that such code complex code, and classes with many other classes de- tends to have high complexity and depend on many other classes. In the code review process, developers often spend a long time on pending on them. Crash-prone patches tend to take a and have long discussions about crash-prone code. We manually longer time and generate longer discussion threads than classify a sample of reviewed crash-prone patches according to non-crash-prone patches. This result suggests that review- their purposes and root causes. We observe that most crash- ers need to focus their effort on the patches with high prone patches aim to improve performance, refactor code, add complexity and on the classes with a complex relationship functionality, or fix previous crashes.
    [Show full text]
  • City Research Online
    City Research Online City, University of London Institutional Repository Citation: Stankovic, V. and Strigini, L. (2009). A survey on online monitoring approaches of computer-based systems. London, UK: Centre for Software Reliability, City University London. This is the unspecified version of the paper. This version of the publication may differ from the final published version. Permanent repository link: https://openaccess.city.ac.uk/id/eprint/531/ Link to published version: Copyright: City Research Online aims to make research outputs of City, University of London available to a wider audience. Copyright and Moral Rights remain with the author(s) and/or copyright holders. URLs from City Research Online may be freely distributed and linked to. Reuse: Copies of full items can be used for personal research or study, educational, or not-for-profit purposes without prior permission or charge. Provided that the authors, title and full bibliographic details are credited, a hyperlink and/or URL is given for the original metadata page and the content is not changed in any way. City Research Online: http://openaccess.city.ac.uk/ [email protected] A survey on online monitoring approaches of computer-based systems Prepared by: Vladimir Stankovic, Lorenzo Strigini Date : June 2009 Version : 2.6 1/29 This report 1 surveys forms of online data collection that are in current use (as well as being the subject of research to adapt them to changing technology and demands), and can be used as inputs to assessment of dependability and resilience, although they are not primarily meant for this use. 1. Introduction Monitoring the components of a system can be used to make decisions about the management of the system and thus control its behaviour.
    [Show full text]
  • How Python Is Winning New Friends
    How Python is Winning New Friends Steve Holden CTO, Global Stress Index Limited [email protected] IntroducFons • Programmer since 1967 • Computaonal scienFst by training • Engineer at heart • Python user since Python 1.4 (c. 1995) • Enjoy helping people to learn I’ve WriSen about Python Any Python users out there? Developments in CompuFng SOME HISTORY 1948 Programming Was Hard • No operang system • No libraries • No compilers • No assemblers • The painful process of abstracFon layering began 1977 Easier to Program • Assemblers/compilers available • UNIX starFng to emerge as a common base – Microprogramming handled hardware complexity • Storage flexibly handled by the OS • Networking heading to ubiquity 1984 2015 2016 2017 2020 ? Whatever it is, it will be complex! And so to Python “BUT IT’S [JUST] A SCRIPTING LANGUAGE …” What’s a “ScripFng Language”? • “First they ignore you; then they abuse you; then they crack down on you and then you win.” – not Mahatma Ghandi What’s a “ScripFng Language”? • “First they ignore you; then they abuse you; then they crack down on you and then you win.” – not Mahatma Ghandi • “Ridicule is like repression. Both give place to respect when they fail to produce the intended effect.” – Mahatma Ghandi Note to Purists • Learners do not have complex needs – Simplicity and consistency are important – ExecuFon speed mostly isn’t • Direct hands-on experience enables • Large resources not required – Wide availability and ease of access are criFcal The Programming Audience • Professional soiware engineers • ScienFsts • Lab
    [Show full text]