Programming Mobile Apps with Python

Total Page:16

File Type:pdf, Size:1020Kb

Programming Mobile Apps with Python Programming Mobile Apps with Python Andreas Schreiber <[email protected]> EuroPython 2012, Florence, Italy (July 3, 2012) www.medando.de Medando – Mobile Health Apps EuroPython 2012, Florence, 03.07.2012 Slide 2 www.medando.de My Blood Pressure EuroPython 2012, Florence, 03.07.2012 Slide 3 www.medando.de Overview • Apps and Statistics • Apps, Hardware, Markets • Early Mobile Development with Python • Nokia, Windows Mobile / CE • Current Mobile Development with Python • Android, iOS, Windows Phone • Everything else… • Other systems, summary, conclusions EuroPython 2012, Florence, 03.07.2012 Slide 4 www.medando.de Mobile Apps What is a mobile app? • A software designed to run on smartphones, tablet computers, and other mobile devices • Limited memory, small screens, touch UI, battery efficient • Runs on mobile operating systems • Available through application distribution platforms • Apps are either free or paid • “App” was Word of the Year in 2010 (USA) EuroPython 2012, Florence, 03.07.2012 Slide 5 www.medando.de Smartphones What is a smartphone? • Mobile phone based on a mobile operating platform • Combination of • PDA functions, camera, media player, Web browser, … • Equipped with • Touch screen, high-speed networking (Wi-Fi, mobile broadband), GPS, NFC, acceleration sensors, … EuroPython 2012, Florence, 03.07.2012 Slide 6 www.medando.de Tablet Computers What is a Tablet? • A mobile computer that is larger than a smartphone • Built as touch screen device • Virtual keyboard, sometimes stylus or digital pen • Mostly based on x86 or ARM architectures EuroPython 2012, Florence, 03.07.2012 Slide 7 www.medando.de Mobile Operating Systems Popular mobile operating systems • Android • Apple iOS • Windows Phone / Mobile / CE • RIM BlackBerry • Nokia OS / Symbian • Samsung Bada • … EuroPython 2012, Florence, 03.07.2012 Slide 8 www.medando.de Market Share: Smartphone Sales Source: http://en.wikipedia.org/wiki/Smartphone EuroPython 2012, Florence, 03.07.2012 Slide 9 www.medando.de App Distribution • Application Distribution Platforms • Google Play • Apple App Store • Windows Phone Marketplace (and Windows Marketplace for Mobile) • BlackBerry App World • Nokia Ovi Store • Many more • Cross-platform, manufacturer-specific, carrier-specific, … EuroPython 2012, Florence, 03.07.2012 Slide 10 www.medando.de Apps in the iOS App Store Source: http://en.wikipedia.org/wiki/App_Store_(iOS) EuroPython 2012, Florence, 03.07.2012 Slide 11 www.medando.de Apps in the Android Market / Google Play Google Play Apps 700.000 600.000 500.000 400.000 300.000 200.000 100.000 0 EuroPython 2012, Florence, 03.07.2012 Slide 12 www.medando.de Apps in Google Play Google Play Downloads 25.000.000.000 20.000.000.000 15.000.000.000 10.000.000.000 5.000.000.000 0 EuroPython 2012, Florence, 03.07.2012 Slide 13 www.medando.de Apps in the Windows Phone Marketplace Source: http://www.windowsphoneapplist.com EuroPython 2012, Florence, 03.07.2012 Slide 14 www.medando.de So Many Apps… … but almost none of them are developed in Python! EuroPython 2012, Florence, 03.07.2012 Slide 15 www.medando.de Early Mobile Development with Python • Symbian • Window Mobile / CE EuroPython 2012, Florence, 03.07.2012 Slide 16 www.medando.de Symbian Symbian OS • Operating system for smartphones and PDAs • Micro kernel, 32bit, single user • GUI-centric application framework A schematic diagram of the S60 platform architecture. S60 • User interface for smartphones Programming for Symbian • C++, Java, Web Widgets • (Flash Lite), (Python) EuroPython 2012, Florence, 03.07.2012 Slide 17 www.medando.de Python for S60 (PyS60) • Python port for S60 platform • Developed by Nokia, but development has stopped • Open-Source-License (Apache Version 2) • Stable Release • Last release: 1.4.5 (27.01.2009) • Available on SourceForge http://sourceforge.net/projects/pys60 EuroPython 2012, Florence, 03.07.2012 Slide 18 www.medando.de “Hello World” import appuifw appuifw.app.title = u„Hello World" appuifw.note(u"Hello World!", 'info') EuroPython 2012, Florence, 03.07.2012 Slide 19 www.medando.de Starting a Python Interpreter EuroPython 2012, Florence, 03.07.2012 Slide 20 www.medando.de Running Scripts EuroPython 2012, Florence, 03.07.2012 Slide 21 www.medando.de Interactive Console EuroPython 2012, Florence, 03.07.2012 Slide 22 www.medando.de Source Code Template import appuifw 1. Importing modules import e32 2. Setting screen size appuifw.app.screen = 'normal' 3. Applications menu def item1(): print "item1 was selected.” 4. Set. exit key handler appuifw.app.menu = [(u"item 1", item1)] (Callback function) def quit(): appuifw.app.set_exit() 5. Setting app title app.exit_key_handler=quit 6. Application body appuifw.app.title = u'Simple Application' 7. Active Objects app_lock = e32.Ao_lock() 8. Main Loop # starts scheduler -> event processing app_lock.wait() Complete template: http://www.mobilenin.com/pys60/resources/app_skeleton_with_mainloop.py EuroPython 2012, Florence, 03.07.2012 Slide 23 www.medando.de Example „Location Based Service“ Send SMS to someone if certain cell is near (using GSM Cell ID) import location HOME_CELL_ID = u"98521779" # my home in Cologne, Germany WIFE = u"+49173247****“ # cell phone number of my wife entries = [u"can’t wait to see you!", u"I’m hungry.", u"I’m in a bad mood."] listbox = appuifw.Listbox(entries, shout) home = 0 while home == 0: country, provider, lac, cell = location.gsm_location() if (cell== HOME_CELL_ID): home = 1 message = u"Will be at home in a moment and %s" % mood messaging.sms_send(WIFE, message) EuroPython 2012, Florence, 03.07.2012 Slide 24 www.medando.de Example „OpenGL“ http://tinyurl.com/pys60cube EuroPython 2012, Florence, 03.07.2012 Slide 25 www.medando.de Windows Mobile / CE Windows Mobile • Operating system for smartphones • Based on Windows CE kernel • Implemented in C Programming for Windows Mobile • Visual C++ (native code) • .NET framework • Tcl-Tk (with eTcl) • Python with PythonCE EuroPython 2012, Florence, 03.07.2012 Slide 26 www.medando.de Python CE • Python port for Windows CE • Python CE: http://pythonce.sourceforge.net/ • Outdated since 2007 # Send a quick popup message to the user import win32sys win32sys.MessageBox(0, "My Message", "My Title", 1) win32sys.MessageBeep() # Launch another CE application import win32sh win32sh.ShellExecuteEx(0, 0, "", "\\Windows\\calc.exe", "", "\\Windows", 1) EuroPython 2012, Florence, 03.07.2012 Slide 27 www.medando.de Current Mobile Development with Python • Android • iOS • Windows Phone EuroPython 2012, Florence, 03.07.2012 Slide 28 www.medando.de Android Android • Linux-based operating system for mobile devices • Developed by the Open Handset Alliance, led by Google • Open Source, Apache License • Kernel based on Linux-kernel • Libraries and APIs written in C • Application Framework in Java • Java VM Dalvik with JIT • Hardware platform: ARM EuroPython 2012, Florence, 03.07.2012 Slide 29 www.medando.de Programming Android • Apps are usually developed in Java • Software development tools • Android Software Development Kit • Native Development Kit • App Inventor for Android • Simple project and Basic4android • some others • Python!? EuroPython 2012, Florence, 03.07.2012 Slide 30 www.medando.de Python for Android Several options • Scripting Layer for Android (SL4A) • Python for Android (Py4A) • Kivy • PySide for Android • PyGame EuroPython 2012, Florence, 03.07.2012 Slide 31 www.medando.de Scripting Layer for Android (SL4A) • Executes scripts and interactive interpreters on Android • Access to many APIs • Support for • Python • Perl • Ruby • Lua • BeanShell • JavaScript Source: Practical Android Projects by Lucas Jordan and Pieter Greyling • Tcl • Available on Google Code: http://code.google.com/p/android-scripting EuroPython 2012, Florence, 03.07.2012 Slide 32 www.medando.de Scripting Layer for Android (SL4A) • Support for some UI elements: Dialogs, Toasts, Progressbar, … • Interactive console Source: Practical Android Projects by Lucas Jordan and Pieter Greyling EuroPython 2012, Florence, 03.07.2012 Slide 33 www.medando.de Scripting Layer for Android (SL4A) • Scripts • Sharing via barcodes or APKs • Hello Word: import android droid = android.Android() droid.makeToast('Hello, Android!') EuroPython 2012, Florence, 03.07.2012 Slide 34 www.medando.de Python for Android (Py4A) • Python interpreter for Android • CPython, cross-compiled for Android • Used in SL4A • Access to many Android APIs • Native UI support not complete • Website: http://code.google.com/p/python-for-android/ EuroPython 2012, Florence, 03.07.2012 Slide 35 www.medando.de Building an App • To build a stand-alone app, the Python for Android interpreter must be included in an APK • Project: http://code.google.com/p/android-python27/ • Template files • Build files • Basically requires to change Java code to add your own script public static final String PYTHON_MAIN_SCRIPT_NAME = "hello.py"; public static final String PYTHON_PROJECT_ZIP_NAME = "my_python_project.zip"; File: GlobalConstants.java EuroPython 2012, Florence, 03.07.2012 Slide 36 www.medando.de Kivy • Cross platform framework for innovative user interfaces • Multi-touch • Runs on Android, iOS, Linux, Windows, Mac OSX • Graphics engines uses OpenGL ES2 • Open Source • Website: http://kivy.org EuroPython 2012, Florence, 03.07.2012 Slide 37 www.medando.de Kivy Hello World from kivy.app import App from kivy.uix.button import Button class TestApp(App): def build(self): return Button(text='Hello World') TestApp().run() Source: Kivy Website kivy.org EuroPython 2012, Florence, 03.07.2012
Recommended publications
  • Ironpython in Action
    IronPytho IN ACTION Michael J. Foord Christian Muirhead FOREWORD BY JIM HUGUNIN MANNING IronPython in Action Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> IronPython in Action MICHAEL J. FOORD CHRISTIAN MUIRHEAD MANNING Greenwich (74° w. long.) Download at Boykma.Com Licensed to Deborah Christiansen <[email protected]> For online information and ordering of this and other Manning books, please visit www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact Special Sales Department Manning Publications Co. Sound View Court 3B fax: (609) 877-8256 Greenwich, CT 06830 email: [email protected] ©2009 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15% recycled and processed without the use of elemental chlorine.
    [Show full text]
  • The Essentials of Stackless Python Tuesday, 10 July 2007 10:00 (30 Minutes)
    EuroPython 2007 Contribution ID: 62 Type: not specified The Essentials of Stackless Python Tuesday, 10 July 2007 10:00 (30 minutes) This is a re-worked, actualized and improved version of my talk at PyCon 2007. Repeating the abstract: As a surprise for people who think they know Stackless, we present the new Stackless implementation For PyPy, which has led to a significant amount of new insight about parallel programming and its possible implementations. We will isolate the known Stackless as a special case of a general concept. This is a Stackless, not a PyPy talk. But the insights presented here would not exist without PyPy’s existance. Summary Stackless has been around for a long time now. After several versions with different goals in mind, the basic concepts of channels and tasklets turned out to be useful abstractions, and since many versions, Stackless is only ported from version to version, without fundamental changes to the principles. As some spin-off, Armin Rigo invented Greenlets at a Stackless sprint. They are some kind of coroutines and a bit of special semantics. The major benefit is that Greenlets can runon unmodified CPython. In parallel to that, the PyPy project is in its fourth year now, and one of its goals was Stackless integration as an option. And of course, Stackless has been integrated into PyPy in a very nice and elegant way, much nicer than expected. During the design of the Stackless extension to PyPy, it turned out, that tasklets, greenlets and coroutines are not that different in principle, and it was possible to base all known parallel paradigms on one simple coroutine layout, which is as minimalistic as possible.
    [Show full text]
  • Goless Documentation Release 0.6.0
    goless Documentation Release 0.6.0 Rob Galanakis July 11, 2014 Contents 1 Intro 3 2 Goroutines 5 3 Channels 7 4 The select function 9 5 Exception Handling 11 6 Examples 13 7 Benchmarks 15 8 Backends 17 9 Compatibility Details 19 9.1 PyPy................................................... 19 9.2 Python 2 (CPython)........................................... 19 9.3 Python 3 (CPython)........................................... 19 9.4 Stackless Python............................................. 20 10 goless and the GIL 21 11 References 23 12 Contributing 25 13 Miscellany 27 14 Indices and tables 29 i ii goless Documentation, Release 0.6.0 • Intro • Goroutines • Channels • The select function • Exception Handling • Examples • Benchmarks • Backends • Compatibility Details • goless and the GIL • References • Contributing • Miscellany • Indices and tables Contents 1 goless Documentation, Release 0.6.0 2 Contents CHAPTER 1 Intro The goless library provides Go programming language semantics built on top of gevent, PyPy, or Stackless Python. For an example of what goless can do, here is the Go program at https://gobyexample.com/select reimplemented with goless: c1= goless.chan() c2= goless.chan() def func1(): time.sleep(1) c1.send(’one’) goless.go(func1) def func2(): time.sleep(2) c2.send(’two’) goless.go(func2) for i in range(2): case, val= goless.select([goless.rcase(c1), goless.rcase(c2)]) print(val) It is surely a testament to Go’s style that it isn’t much less Python code than Go code, but I quite like this. Don’t you? 3 goless Documentation, Release 0.6.0 4 Chapter 1. Intro CHAPTER 2 Goroutines The goless.go() function mimics Go’s goroutines by, unsurprisingly, running the routine in a tasklet/greenlet.
    [Show full text]
  • Faster Cpython Documentation Release 0.0
    Faster CPython Documentation Release 0.0 Victor Stinner January 29, 2016 Contents 1 FAT Python 3 2 Everything in Python is mutable9 3 Optimizations 13 4 Python bytecode 19 5 Python C API 21 6 AST Optimizers 23 7 Old AST Optimizer 25 8 Register-based Virtual Machine for Python 33 9 Read-only Python 39 10 History of Python optimizations 43 11 Misc 45 12 Kill the GIL? 51 13 Implementations of Python 53 14 Benchmarks 55 15 PEP 509: Add a private version to dict 57 16 PEP 510: Specialized functions with guards 59 17 PEP 511: API for AST transformers 61 18 Random notes about PyPy 63 19 Talks 65 20 Links 67 i ii Faster CPython Documentation, Release 0.0 Contents: Contents 1 Faster CPython Documentation, Release 0.0 2 Contents CHAPTER 1 FAT Python 1.1 Intro The FAT Python project was started by Victor Stinner in October 2015 to try to solve issues of previous attempts of “static optimizers” for Python. The main feature are efficient guards using versionned dictionaries to check if something was modified. Guards are used to decide if the specialized bytecode of a function can be used or not. Python FAT is expected to be FAT... maybe FAST if we are lucky. FAT because it will use two versions of some functions where one version is specialised to specific argument types, a specific environment, optimized when builtins are not mocked, etc. See the fatoptimizer documentation which is the main part of FAT Python. The FAT Python project is made of multiple parts: 3 Faster CPython Documentation, Release 0.0 • The fatoptimizer project is the static optimizer for Python 3.6 using function specialization with guards.
    [Show full text]
  • Jupyter Tutorial Release 0.8.0
    Jupyter Tutorial Release 0.8.0 Veit Schiele Oct 01, 2021 CONTENTS 1 Introduction 3 1.1 Status...................................................3 1.2 Target group...............................................3 1.3 Structure of the Jupyter tutorial.....................................3 1.4 Why Jupyter?...............................................4 1.5 Jupyter infrastructure...........................................4 2 First steps 5 2.1 Install Jupyter Notebook.........................................5 2.2 Create notebook.............................................7 2.3 Example................................................. 10 2.4 Installation................................................ 13 2.5 Follow us................................................. 15 2.6 Pull-Requests............................................... 15 3 Workspace 17 3.1 IPython.................................................. 17 3.2 Jupyter.................................................. 50 4 Read, persist and provide data 143 4.1 Open data................................................. 143 4.2 Serialisation formats........................................... 144 4.3 Requests................................................. 154 4.4 BeautifulSoup.............................................. 159 4.5 Intake................................................... 160 4.6 PostgreSQL................................................ 174 4.7 NoSQL databases............................................ 199 4.8 Application Programming Interface (API)..............................
    [Show full text]
  • Syllabus MCA and ALL Msc 2017-18
    The School of Computational Sciences exists since inception of the University and offers Masters, M.Phil. and Ph.D. programs. Master Degree Programs, M.Sc.(CS), M.Sc.(CN) and M.Sc.(CA), being officered are two years full time post graduate programs revised with industry expectations. These all programs have four semesters, which are normally completed in two years. The MCA program is a three years full time AICTE approved program which is normally completed in six semesters. Above all programs are offered as per CBCS (Choice Based Credit System) pattern, in which within discipline and cross discipline migration choices of courses are given to the students under open electives and subject electives. The students can choose open electives from the same program or from other programs of the same school or from other programs of other schools. The Evaluation of performance of a student for the course under Choice based Credit System (CBCS) is based on principle of continuous assessment through internal and external evaluation mechanisms. CBCS policy had emphasis given on imparting skills to students. The eligibility criteria and fees structure shall be same as that of Campus Prospectus. Date 02/07/2018 , 12:20 pm Page 2 School of Computational Sciences S. R. T. M. University, Nanded, MS, India Draft Report on CBCS enabled syllabi of M.Sc.(CA/CN/CS) and MCA Programs In compliance with the Hon‟ble Vice Chancellor‟s directions, Pro Vice Chancellor‟s timely guidance, resolution passed by the Hon‟ble Management Council and in the light of circular being communicated by the Deputy Registrar, Academics, a committee comprising of the Director of the School, Head Department and three faculties from the school have strived hard for reframing and revision the syllabi of existing 2 years full time M.Sc.
    [Show full text]
  • Performance Research and Optimization on Cpython's Interpreter
    Proceedings of the Federated Conference on DOI: 10.15439/2015F139 Computer Science and Information Systems pp. 435–441 ACSIS, Vol. 5 Performance Research and Optimization on CPython’s Interpreter Huaxiong Cao, Naijie Gu1, Kaixin Ren, and Yi Li 1) Department of Computer Science and Technology, University of Science and Technology of China 2) Anhui Province Key Laboratory of Computing and Communication Software 3) Institute of Advanced Technology, University of Science and Technology of China Hefei, China, 230027 Email: [email protected], [email protected] Abstract—In this paper, the performance research on monitoring programs’ behavior and using this information to CPython’s latest interpreter is presented, concluding that drive optimization decisions [1]. The dominant concepts that bytecode dispatching takes about 25 percent of total execution have influenced effective optimization technologies in today’s time on average. Based on this observation, a novel bytecode virtual machines include JIT compilers, interpreters, and their dispatching mechanism is proposed to reduce the time spent on this phase to a minimum. With this mechanism, the blocks integrations. associated with each kind of bytecodes are rewritten in JIT (just-in-time) techniques exploit the well-known fact that hand-tuned assembly, their opcodes are renumbered, and their large scale programs usually spend the majority of time on a memory spaces are rescheduled. With these preparations, this small fraction of the code [2]. During the execution of new bytecode dispatching mechanism replaces the interpreters, they record the bytecode blocks which have been time-consuming memory reading operations with rapid executed more than a specified number of times, and cache the operations on registers.
    [Show full text]
  • Pdf for a Detailed Explanation, Along with Various Techniques for Debouncing
    MicroPython Documentation Release 1.11 Damien P. George, Paul Sokolovsky, and contributors May 29, 2019 CONTENTS i ii CHAPTER ONE MICROPYTHON LIBRARIES Warning: Important summary of this section • MicroPython implements a subset of Python functionality for each module. • To ease extensibility, MicroPython versions of standard Python modules usually have u (“micro”) prefix. • Any particular MicroPython variant or port may miss any feature/function described in this general docu- mentation (due to resource constraints or other limitations). This chapter describes modules (function and class libraries) which are built into MicroPython. There are a few categories of such modules: • Modules which implement a subset of standard Python functionality and are not intended to be extended by the user. • Modules which implement a subset of Python functionality, with a provision for extension by the user (via Python code). • Modules which implement MicroPython extensions to the Python standard libraries. • Modules specific to a particular MicroPython port and thus not portable. Note about the availability of the modules and their contents: This documentation in general aspires to describe all modules and functions/classes which are implemented in MicroPython project. However, MicroPython is highly configurable, and each port to a particular board/embedded system makes available only a subset of MicroPython libraries. For officially supported ports, there is an effort to either filter out non-applicable items, or mark individual descriptions with “Availability:” clauses describing which ports provide a given feature. With that in mind, please still be warned that some functions/classes in a module (or even the entire module) described in this documentation may be unavailable in a particular build of MicroPython on a particular system.
    [Show full text]
  • Comparative Studies of Six Programming Languages
    Comparative Studies of Six Programming Languages Zakaria Alomari Oualid El Halimi Kaushik Sivaprasad Chitrang Pandit Concordia University Concordia University Concordia University Concordia University Montreal, Canada Montreal, Canada Montreal, Canada Montreal, Canada [email protected] [email protected] [email protected] [email protected] Abstract Comparison of programming languages is a common topic of discussion among software engineers. Multiple programming languages are designed, specified, and implemented every year in order to keep up with the changing programming paradigms, hardware evolution, etc. In this paper we present a comparative study between six programming languages: C++, PHP, C#, Java, Python, VB ; These languages are compared under the characteristics of reusability, reliability, portability, availability of compilers and tools, readability, efficiency, familiarity and expressiveness. 1. Introduction: Programming languages are fascinating and interesting field of study. Computer scientists tend to create new programming language. Thousand different languages have been created in the last few years. Some languages enjoy wide popularity and others introduce new features. Each language has its advantages and drawbacks. The present work provides a comparison of various properties, paradigms, and features used by a couple of popular programming languages: C++, PHP, C#, Java, Python, VB. With these variety of languages and their widespread use, software designer and programmers should to be aware
    [Show full text]
  • Sistem Control Sortir Makanan Menggunakan Android Sebagai Human Machine Interface (Hmi)
    5hL SISTE0 CONTROL SORTIR 0A)ANAN 0EN55UNA)AN ANDROID SE2A5AI HUMAN MACHINE INTERFACE (30I) 13 23 33 Julianti ,egita Merdi , Natanael Fernando , Pitoyo Yuliatmojo 1233 D III Teknik Elektronika, Fakultas Teknik, Uni ersitas Negeri Jakarta E-mail6 regitamerdi7gmail.com, pitoyo_y7unj.ac.id Abstract The final task was made with the aim of helping working an industrial unit in controlling and monitoring the sorting tools in the form of two types of food packaging food categories REJECT food and the food was O2. REJECT food category is when the packaging does not contain a full and when the food packaging containing metal and food categories O2 is when the food is fully charged and does not contain metal. The design of control performed on prototype hardware horizontal conveyor models, for sorting it using two types of sensors. Led Photodioda and Proximity Sensors Cylindrical C9C DO which serves as the detection of metal or not in packs. For food packaging automatic separation systems using pneumatic system and the drive portion Conveyors selected DC motor, and controller used reley governed by Android technology as a human machine interface /HMI0 and all will be controlled by an Arduino Mega 2A80. With the Bluetooth module as a liaison between Android with Arduino Mega 2A80 can be obtained that the tool will work in accordance with the ob description of pro ect tool that will be controlled using the Android. Keywords 1 Led Photodioda, Cylindrical Proximity C9C DO, Android, Arduino Mega 2A80, Bluetooth, Conveyors, Pneumatic. Abstra- Tugas akhir dibuat dengan tujuan membantu kerja suatu unit industri dalam mengendalikan dan memonitor alat sortir makanan berupa 2 jenis kemasan makanan 8ategori makanan REJEC, dan makanan O2.
    [Show full text]
  • Benchmarking Python Interpreters
    DEGREE PROJECT IN COMPUTER SCIENCE AND ENGINEERING 300 CREDITS, SECOND CYCLE STOCKHOLM, SWEDEN 2016 Benchmarking Python Interpreters MEASURING PERFORMANCE OF CPYTHON, CYTHON, JYTHON AND PYPY ALEXANDER ROGHULT KTH ROYAL INSTITUTE OF TECHNOLOGY SCHOOL OF COMPUTER SCIENCE AND COMMUNICATION Benchmarking Python Interpreters Measuring Performance of CPython, Cython, Jython and PyPy ALEXANDER ROGHULT Master’s Thesis in Computer Science School of Computer Science and Communication(CSC) Royal Institute of Technology, Stockholm Supervisor: Douglas Wikström Examiner: Johan Håstad Abstract For the Python programming language there are several different interpreters and implementations. In this thesis project the performance regarding execution time is evalu- ated for four of these; CPython, Cython, Jython and PyPy. The performance was measured in a test suite, created dur- ing the project, comprised of tests for Python dictionaries, lists, tuples, generators and objects. Each test was run with both integers and objects as test data with varying prob- lem size. Each test was implemented using Python code. For Cython and Jython separate versions of the test were also implemented which contained syntax and data types specific for that interpreter. The results showed that Jython and PyPy were fastest for a majority of the tests when running code with only Python syntax and data types. Cython uses the Python C/API and is therefore dependent on CPython. The per- formance of Cython was therefore often similar to CPython. Cython did perform better on some of the tests when using Cython syntax and data types, as it could therefore de- crease its reliance to CPython. Each interpreter was able to perform fastest on at least one test, showing that there is not an interpreter that is best for all problems.
    [Show full text]
  • Syncstudio User Documentation
    SyncStudio by HandApps Software A Complete Mobile Database Synchronization Solution User Guide Release 3.x, June 2017 Copyright © 2017 HandApps Software – All rights reserved Page 1 of 66 Edition Notes - Release 3.x, June 2017 Trademarks SyncStudio ® is a registered trademark of HandApps Software (HandApps). The SyncStudio ® logo in its entirety and all other trademarks on this manual pertaining to services, products, or marketing statements are owned or licensed by HandApps. Any other product names, logos, brands, company names, and other trademarks featured or referred to within this document are the property of their respective trademark holders. Copyright Notice HandApps Software owns the content of this manual in its entirety, including but not limited to pictures, logos, trademarks, and resources. © Copyright 2017 HandApps Software. All rights reserved. Electronically published by HandApps Software in the United States of America. Manual Usage HandApps authorizes its customers to download and print this manual for professional information purposes only. HandApps expressly prohibits the usage, copy, storage, distribution, modification, or printing of this manual or its content for any other purpose without its written consent. Document Printing For best results, print this document in color, on letter size paper (8.5 x 11 inches), double sided. If using A4 paper (210 x 297 mm), configure your printer to scale the content accordingly. Disclaimer HandApps Software believes that the information contained in this manual is accurate in all respects. However, HandApps assumes no responsibility for any error or omissions in this document. HandApps reserves the right to revise this document and to make changes from time to time in the content hereof without obligation of HandApps to notify any person or company of such revision or changes.
    [Show full text]