Download the Book in PDF Form

Total Page:16

File Type:pdf, Size:1020Kb

Download the Book in PDF Form Learn Programming Antti Salonen Aug 11, 2018 Learn Programming, first edition Antti Salonen This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. The code within this book is licensed under the MIT license. Copyright 2018, Antti Salonen. 2 CONTENTS: 1 The beginning 7 1.1 Introduction ......................... 8 1.1.1 Why this book? .................... 8 1.1.2 What is software? .................. 15 1.1.3 How does a computer work? ............ 20 1.1.4 OK, but seriously, how does a computer work? ... 27 1.1.5 The basics of programming ............. 32 1.1.6 Setting up the C toolchain .............. 42 1.1.7 The basics of programming in C .......... 46 1.1.8 Learning to learn .................. 56 1.2 Basics of programming in Python and C .......... 59 1.2.1 Quadratic formula in C ............... 59 1.2.2 Lots of quadratic equations ............. 64 1.2.3 Quadratic formula in Python ............ 69 1.2.4 Generating input data using Python ........ 76 1.3 Unix shell ........................... 77 1.3.1 Basic Unix shell usage ................ 77 1.3.2 Unix shell scripting ................. 88 1.3.3 Regular expressions ................. 95 1.4 Using libraries in Python ................... 99 1.4.1 Creating a simple web page ............. 99 1.4.2 Making our web page work ............. 104 2 Stage 1 109 2.1 Further Unix tools ...................... 110 2.1.1 Version control ................... 110 2.1.2 Working with other git repositories ........ 116 3 Contents: 2.1.3 Some related Unix tools ............... 125 2.1.4 Vim .......................... 127 2.1.5 Programming with vim ............... 130 2.2 Background on programming languages and algorithms . 136 2.2.1 Typing ........................ 136 2.2.2 Big O notation .................... 142 2.2.3 Array, stack, queue .................. 150 2.3 JavaScript ........................... 154 2.3.1 Guessing game in JS ................. 154 2.3.2 JavaScript meets algorithms ............ 160 2.4 Intermediate C ........................ 163 2.4.1 Records ........................ 163 2.4.2 C and the stack .................... 167 2.4.3 Arrays and the stack ................. 172 2.4.4 Dynamic memory allocation ............ 177 2.4.5 C and strings ..................... 181 2.4.6 Writing a toy web server .............. 189 2.4.7 Security ....................... 198 2.5 More programming concepts using Python ......... 199 2.5.1 More data structures ................ 199 2.5.2 Object oriented programming ........... 204 2.5.3 JSON ......................... 207 2.5.4 More useful Python constructs ........... 211 2.5.5 Callbacks and anonymous functions ........ 215 2.5.6 Functional programming .............. 219 3 Stage 1.5 223 3.1 Web development with Python and JavaScript ....... 224 3.1.1 HTML tables ..................... 225 3.1.2 Redis ......................... 227 3.1.3 High level architecture ............... 233 3.1.4 AJAX ......................... 237 3.1.5 Gluing AJAX and Redis together .......... 243 3.1.6 The page for starting a new game .......... 245 3.1.7 Generating the high score table ........... 250 3.1.8 Some more tips and tricks .............. 256 3.2 Working with binary data in C ............... 260 3.2.1 PNG files ....................... 260 3.2.2 Finishing our simple PNG parser .......... 268 4 Contents: 3.3 Strongly, statically typed languages ............. 275 3.3.1 Under the hood ................... 275 3.3.2 Virtual machines ................... 279 3.3.3 The case for statically, strongly typed languages .. 281 3.3.4 Established languages ................ 288 3.3.5 Newer languages .................. 296 3.4 Learning C++ using Sudoku ................. 302 3.4.1 Introduction to Sudoku ............... 302 3.4.2 Containers for Sudoku ............... 307 3.4.3 Sudoku Puzzle class ................. 313 3.4.4 Propagation and search ............... 322 4 Stage 2 331 4.1 Larger software ........................ 332 4.1.1 Introduction to larger software ........... 332 4.1.2 Breaking software down to components ...... 340 4.1.3 Drawing to a screen using SDL2 .......... 348 4.1.4 Drawing the schedule screen using SDL2 ..... 357 4.1.5 Unix way - sched ................... 363 4.1.6 Unix way - parse_gps ................ 369 4.1.7 Unix way - merge .................. 374 4.1.8 Monolithic way - parsing .............. 380 4.1.9 Monolithic way - scheduled arrivals and GPS data . 386 4.1.10 Monolithic way - merging and putting it all together 393 4.2 A fistful of Python exercises ................. 401 4.2.1 Graphs ........................ 401 4.2.2 Parsing ........................ 410 4.3 SQL and its relationship with online shops ......... 420 4.3.1 Introduction to SQL ................. 421 4.3.2 Adding data to an SQL database .......... 433 4.3.3 Querying SQL databases .............. 438 4.3.4 Generating a return form .............. 444 4.3.5 Web UI for our return form ............. 450 4.4 Final bits ........................... 462 4.4.1 Software licenses .................. 462 4.4.2 NP-hard problems .................. 465 4.4.3 Concurrency ..................... 471 4.4.4 Tech behind this book ................ 482 4.4.5 Further reading ................... 488 4.4.6 Chapter dependencies ................ 489 5 CHAPTER ONE THE BEGINNING 7 1 The beginning 1.1 Introduction 1.1.1 Why this book? This book is aimed at readers who are interested in software development but have very little to no prior experience. The book doesn’t have any new information compared to what you can find online or in other books; it has two purposes: 1. It includes what I think is important for software development from a large variety of topics, saving the reader from the dilemma “what should I learn” 2. It collates relevant information from lots of sources in one book, sav- ing the reader from going through several separate web sites and books It aims to contain an overview of almost everything that I think is impor- tant for software developers. It doesn’t contain everything; but it should contain enough for the reader to understand software development, and to be able to read about and understand any topic in further detail as needed. The book focuses on teaching the core principles around software develop- ment. It uses several technologies to this goal (e.g. C, Python, JavaScript, HTML, etc.) but is not a book about the technologies themselves. The reader will learn the basics (or in some cases more) of various technolo- gies along the way, but the focus is on building a foundation for software development. This book does have the aim of supporting interested people in pursuing a job in software development, though I obviously can’t guarantee a job. I’ll expand on this further below. Why are you writing this book? My wife was asking if she could become a software engineer like I did. I have some years of experience in software engineering, and also am now hiring and hence interviewing software engineers. I checked the offerings around Computer Science at the local university, but it seems to me like 8 1.1 Introduction there’s a bit of a gap between what industry needs and what the schools are producing, at least in my local area. To some extent this is expected: univer- sities live in the academic world, often without an explicit goal of ensuring the graduates are employed by the industry. To mitigate, universities may offer degrees directed more towards real world, but these run into the risk of not being relevant or effective enough for the industry. So I ended up teaching my wife what I think is the right stuff. Now, since we also have a little daughter, finding time for both of us at the same time was sometimes difficult, so I’d write down some notes or exercises for her that she could dive into when she had time. I ended up writing more and more and structuring things better and all of it ended up being this book. So, I’m writing this book to teach my wife all the necessary basics around software development so that she’ll be able to land a job. However, the book could be useful to others as well. No, really, why are you writing this book? If I’m being completely selfish, it’s because I’m hiring software engineers and am finding it difficult to find any. Without going into my specific re- quirements, I want to include enough in the book that if the reader were to do all of the following: • Read and understand everything in the book • Finish all the exercises • Write at least some personal mini project in some language (shouldn’t be a problem after the above two points) • Interact with the rest of the software development community, may it be through Reddit or other social media, chat, Stack Overflow or GitHub …then I think that that person should have the technical skills to at least se- riously be considered for a software engineering position. (Apart from technical skills, you’ll also need the interpersonal skills and common sense, or analytical and critical thinking skills, among others, be- fore I’d consider you for a position. I’m expecting the reader to obtain these some other way than reading this book.) 9 1 The beginning Do you mean, if I do the points above, I too can become a profes- sional software engineer? I obviously can’t guarantee anything. Actually getting a job depends on the economy and the job market, where you live, what you’re willing to do and work for etc. But I do think that after doing all the above points, the reader should have enough or almost enough technical skills for many software en- gineering jobs.
Recommended publications
  • SMRT® Tools Reference Guide (V8.0)
    SMRT® Tools Reference Guide Introduction This document describes the command-line tools included with SMRT Link v8.0. These tools are for use by bioinformaticians working with secondary analysis results. • The command-line tools are located in the $SMRT_ROOT/smrtlink/ smrtcmds/bin subdirectory. Installation The command-line tools are installed as an integral component of the SMRT Link software. For installation details, see SMRT Link Software Installation (v8.0). • To install only the command-line tools, use the --smrttools-only option with the installation command, whether for a new installation or an upgrade. Examples: smrtlink-*.run --rootdir smrtlink --smrttools-only smrtlink-*.run --rootdir smrtlink --smrttools-only --upgrade Pacific Biosciences Command-Line Tools Following is information on the Pacific Biosciences-supplied command-line tools included in the installation. Third-party tools installed are described at the end of the document. Tool Description bam2fasta/ Converts PacBio® BAM files into gzipped FASTA and FASTQ files. bam2fastq See “bam2fasta/bam2fastq” on page 2. bamsieve Generates a subset of a BAM or PacBio Data Set file based on either a whitelist of hole numbers, or a percentage of reads to be randomly selected. See “bamsieve” on page 3. blasr Aligns long reads against a reference sequence. See “blasr” on page 5. ccs Calculates consensus sequences from multiple “passes” around a circularized single DNA molecule (SMRTbell® template). See “ccs” on page 10. dataset Creates, opens, manipulates and writes Data Set XML files. See “dataset” on page 15. Demultiplex Identifies barcode sequences in PacBio single-molecule sequencing data. See Barcodes “Demultiplex Barcodes” on page 21. gcpp Variant-calling tool which provides several variant-calling algorithms for PacBio sequencing data.
    [Show full text]
  • Renderx XEP User Guide XEP User Guide
    RenderX XEP User Guide XEP User Guide © Copyright 2005-2019 RenderX, Inc. All rights reserved. This documentation contains proprietary information belonging to RenderX, and is provided under a license agreement containing restrictions on use and disclosure. It is also protected by international copyright law. Because of continued product development, the information contained in this document may change without notice.The information and intellectual property contained herein are confidential and remain the exclusive intellectual property of RenderX. If you find any problems in the documentation, please report them to us in writing. RenderX does not warrant that this document is error- free. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means - electronic, mechanical, photocopying, recording or otherwise - without the prior written permission of RenderX. RenderX Telephone: 1 (650) 328-8000 Fax: 1 (650) 328-8008 Website: http://renderx.com Email: [email protected] Table of Contents 1. Preface ................................................................................................................... 9 1.1. What©s in this Document? .............................................................................. 9 1.2. Prerequisites ................................................................................................ 9 1.3. Acronyms ................................................................................................... 10 1.4. Technical Support
    [Show full text]
  • Dropping Hints: Estimating the Diets of Livestock in Rangelands Using DNA Metabarcoding of Faeces
    Metabarcoding and Metagenomics 2: 1–17 DOI 10.3897/mbmg.2.22467 Research Article Dropping Hints: Estimating the diets of livestock in rangelands using DNA metabarcoding of faeces Timothy R. C. Lee1, Yohannes Alemseged2, Andrew Mitchell1 1 Australian Museum, Sydney, Australia. 2 NSW Department of Primary Industries, Trangie, Australia. Corresponding author: Timothy R. C. Lee ([email protected]) Academic editor: Emre Keskin | Received 23 November 2017 | Accepted 17 February 2018 | Published 14 March 2018 Abstract The introduction of domesticated animals into new environments can lead to considerable ecological disruption, and it can be difficult to predict their impact on the new ecosystem. In this study, we use faecal metabarcoding to characterize the diets of three ruminant taxa in the rangelands of south-western New South Wales, Australia. Our study organisms included goats (Capra aega- grus hircus) and two breeds of sheep (Ovis aries): Merinos, which have been present in Australia for over two hundred years, and Dorpers, which were introduced in the 1990s. We used High-Throughput Sequencing methods to sequence the rbcL and ITS2 genes of plants in the faecal samples, and identified the samples using the GenBank and BOLD online databases, as well as a reference collection of sequences from plants collected in the study area. We found that the diets of all three taxa were dominated by the family Malvaceae, and that the Dorper diet was more diverse than the Merino diet at both the family and the species level. We conclude that Dorpers, like Merinos, are potentially a threat to some vulnerable species in the rangelands of New South Wales.
    [Show full text]
  • Building-Up of a DNA Barcode Library for True Bugs (Insecta: Hemiptera: Heteroptera) of Germany Reveals Taxonomic Uncertainties and Surprises
    Building-Up of a DNA Barcode Library for True Bugs (Insecta: Hemiptera: Heteroptera) of Germany Reveals Taxonomic Uncertainties and Surprises Michael J. Raupach1*, Lars Hendrich2*, Stefan M. Ku¨ chler3, Fabian Deister1,Je´rome Morinie`re4, Martin M. Gossner5 1 Molecular Taxonomy of Marine Organisms, German Center of Marine Biodiversity (DZMB), Senckenberg am Meer, Wilhelmshaven, Germany, 2 Sektion Insecta varia, Bavarian State Collection of Zoology (SNSB – ZSM), Mu¨nchen, Germany, 3 Department of Animal Ecology II, University of Bayreuth, Bayreuth, Germany, 4 Taxonomic coordinator – Barcoding Fauna Bavarica, Bavarian State Collection of Zoology (SNSB – ZSM), Mu¨nchen, Germany, 5 Terrestrial Ecology Research Group, Department of Ecology and Ecosystem Management, Technische Universita¨tMu¨nchen, Freising-Weihenstephan, Germany Abstract During the last few years, DNA barcoding has become an efficient method for the identification of species. In the case of insects, most published DNA barcoding studies focus on species of the Ephemeroptera, Trichoptera, Hymenoptera and especially Lepidoptera. In this study we test the efficiency of DNA barcoding for true bugs (Hemiptera: Heteroptera), an ecological and economical highly important as well as morphologically diverse insect taxon. As part of our study we analyzed DNA barcodes for 1742 specimens of 457 species, comprising 39 families of the Heteroptera. We found low nucleotide distances with a minimum pairwise K2P distance ,2.2% within 21 species pairs (39 species). For ten of these species pairs (18 species), minimum pairwise distances were zero. In contrast to this, deep intraspecific sequence divergences with maximum pairwise distances .2.2% were detected for 16 traditionally recognized and valid species. With a successful identification rate of 91.5% (418 species) our study emphasizes the use of DNA barcodes for the identification of true bugs and represents an important step in building-up a comprehensive barcode library for true bugs in Germany and Central Europe as well.
    [Show full text]
  • Customer Case Study Series #5/2012
    www.scandit.com Out of Milk: An intuitive shopping list equipped with Scandit technology Out of Milk’s initial feature set was to make it easy to create a list and also give users the ability to scan items into their list. With Scandit we’ve found the right barcode scanning technology to equip our clients with a simple and intuitive tool. Marvin Paul, Co-Founder, Capigami Inc. About Capigami Customer Case Study Series #5/2012 Capigami is a startup that began in Pensacola, Florida, recently moving to Starting point San Francisco to take advantage of the Marvin Paul, one of Capigami’s co-founders, originally built Out of Milk because area’s start-up culture. Capigami created he didn’t like any of the shopping list apps that were available at the time. They Out of Milk, a popular app that helps were ugly, clunky, hard-to-use and required too many steps to create a grocery users build shopping lists and organize tasks. Out of Milk is beautiful, intuitive list. Out of Milk’s initial feature set intended to make it easy to create a list and and easy-to-use. It’s been downloaded also give users the ability to scan items into their list. The simplicity of the first over 3 million times, is available in 15 version attracted a lot of users. languages and has users in over 190 countries. In April 2012, Out of Milk Vision: Build a simple and easy-to-use shopping tool users added over 6.2 million items to their shopping lists and scanned about The vision for Out of Milk was to build an app that was beautiful, easy-to-use 500,000 products.
    [Show full text]
  • Automation Basics for the Small Public Library.Pdf
    Automation Basics for the Small Public Library Why automate? Automation makes a library’s collection available online not only to local patrons but to library patrons statewide. Resource sharing is important to small libraries with limited budgets. Small libraries need to automate to bring them up to today’s standards so that they can be viable in their communities and in the larger library world. We will review the following during this course First steps Weeding Learning vocabulary and acronyms Planning Retrospective Conversion/Data Conversion Selecting an Automation Software (ILS/LMS) Weeding Weeding your collection is one of the first and most important steps in the automation process. You don’t want to spend money and time creating computer records for books that haven’t circulated in years, are old and out-dated, and have no value to your library. An excellent weeding process, CREW, has been developed by the Texas State Library and Archives Commission. CREW Download the PDF of CREW: A Weeding Manual for Modern Libraries Weeding The Crew (Continuous Review, Evaluation, and Weeding) Guidelines, developed by the Texas State Library and Archives Commission is a system that has worked for libraries nationwide for over 30 years. It is a library’s responsibility to maintain a collection that is free from outdated, obsolete, shabby, or no longer useful items. You can read through the CREW Manual and use it as a guideline to develop your own policy for weeding your collection for your automation project and weeding after automation. Weeding using CREW The system uses a numbering system that consists of: Copyright date (the age of material in the book.) The last time the book was used or checked out Negative factors, called MUSTIE factors are also used to evaluate whether an item should be weeded.
    [Show full text]
  • Lineage Recording Reveals Dynamics of Cerebral Organoid Regionalization
    bioRxiv preprint doi: https://doi.org/10.1101/2020.06.19.162032; this version posted June 26, 2020. The copyright holder for this preprint (which was not certified by peer review) is the author/funder, who has granted bioRxiv a license to display the preprint in perpetuity. It is made available under aCC-BY-NC 4.0 International license. Lineage recording reveals dynamics of cerebral organoid regionalization Zhisong He1,*, Tobias Gerber2,*, Ashley Maynard1,*, Akanksha Jain1,*, Rebecca Petri1,*, Malgorzata Santel1, Kevin Ly1, Leila Sidow2, Fátima Sanchís-Calleja1, Stephan Riesenberg2, J. Gray Camp3,4, , and Barbara Treutlein1,2, 1Department of Biosystems Science and Engineering, ETH Zürich, Basel, Switzerland 2Max-Planck-Institute for Evolutionary Anthropology, Leipzig, Germany 3Institute of Molecular and Clinical Ophthalmology Basel, Switzerland 4Department of Ophthalmology, University of Basel, Switzerland *Contributed equally Diverse regions develop within cerebral organoids generated power of scRNAseq to understand brain region composi- from human induced pluripotent stem cells (iPSCs), however it tion and progenitor-to-neuron differentiation trajectories has been a challenge to understand the lineage dynamics associ- in individual cerebral organoids. However, it has been ated with brain regionalization. Here we establish an inducible difficult to understand how brain regions are established lineage recording system that couples reporter barcodes, in- during organoid self-organization. Several lineage-coupled ducible CRISPR/Cas9 scarring, and single-cell transcriptomics single-cell transcriptomics strategies have been employed to analyze lineage relationships during cerebral organoid devel- to investigate clonal expansion and differentiation in mouse opment. We infer fate-mapped whole organoid phylogenies over a scarring time course, and reconstruct progenitor-neuron lin- and zebrafish embryos as well as complex multicellular 8−12 eage trees within microdissected cerebral organoid regions.
    [Show full text]
  • Software Reuse Library Amandeep Kaur1, Raman Goyal2 1,2Lala Lajpat Rai College of Engineering & Technology, India, Moga [email protected]
    International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-0181 Vol. 1 Issue 5, July - 2012 Software Reuse Library Amandeep Kaur1, Raman Goyal2 1,2Lala Lajpat Rai College of Engineering & Technology, India, Moga [email protected] Abstract level or may be at Software Code level. Various approaches has been introduced to create a reused Software Reuse is an approach to reuse the pre builds system such as framework integration, Aspect oriented artifacts and assets of existing software to create new Structure, Generator Reuse, Object Oriented software rather than creating it from the scratch; this Programming, Cots Integration etc. This paper presents approach was used to embed some new and advanced a simple approach on Software Reuse to create features over existing one to create new one. In software artefacts, store and retrieve software Software Reuse Taxonomy an abstract design view components effectively. A software reuse library for model was planned, analyzed and categorized before android operating system at application level, written in creating a software so that in future any changes Java, is developed in order to support reuse concepts. persist or need to embed any extra feature , then that should introduced easily & with less complexity by 2. Software Reuse Approaches using the pre-build assets; i.e. Software System is Software Reuse approach is a way to create software developed such that it can reused again. Certain reuse components or artefacts to recur it. Many approaches such as Design Patterns, Aspect Oriented approaches has been taken into mind while creating Integration, Generator Reuse, Object Oriented software reuse system such as Generator Reuse, Aspect Programming Structure, and Software Reuse Libraries oriented approach, Cots Integration, Framework are, Framework Integration etc.
    [Show full text]
  • IEEE Paper Template in A4
    Application of SWOT, Principal Component and Cross-case analysis for Implementing and Recommending an ICT Technology in Library - A Case study V. Kadam Department IT, Dr. BATU,Lonere,Tal-Mangaon,Dist.-Raigad,(M.S.)India. [email protected] Abstract: Many educational organizations and universities are using computer based management information system for increasing efficiency of work in the organizations. Library management plays a vital role in academic organizations. Bar code is one of the computer based technology which helps to increase efficiency and speed of the organization effectively and qualitatively. Though each bar code character is represented by a group of bars and spaces, computer based software can easily understand it. Organizations have to implement new technologies to meet goal of the organization. Implementation of bar code technology in the Library of Dr. BATU, is a tool to minimize the time taken at the circulation counter in charging / discharging the reading material. The new technologies may be a bit difficult to be adopted in the initial stages, but in the long run they improve the image of the organization. The paper is a case study based on the bar coding at Dr. BATU. This paper renders on implementation of Bar code technology and the advantages gained from using bar code technology by looking into each work process in the case library. For better understanding of the bar code based library management system, this case study has been conducted. We used a SWOT analysis for getting actual picture of the situation raised after implementation of the bar code system in the library.
    [Show full text]
  • 2D Barcode Based Mobile Payment System with Biometric Security
    2D Barcode Based Mobile Payment System With Biometric Security Pragyan A Masalkar (Be Comp)1, Udayraj Singh (Be Comp)2, Sayali Shinde (Be Comp)3 1,2,3 G H Raisoni Institute of Engineering & Technology. Abstract— Currently Indian market doesn’t use 2-D based Barcode Mobile. In market or malls 1d barcode system is used and queue line system is used thus it is time consuming. In market most of mobiles don’t have barcode detection system in them; only phones like iPhone have it. Money transaction system in market is also slow and credit cards and other money payment system are used. Mobile payment is very important and critical solution for mobile commerce. A user-friendly mobile payment solution is strongly needed to support mobile users to conduct secure and reliable payment transactions using mobile devices. We will present an innovative mobile payment system based on 2-Dimentional (2D) barcodes for mobile users to improve mobile user experience in mobile payment. Comparatively our system is time saving. A user-friendly mobile payment solution is strongly needed to support mobile users to conduct secure and reliable transactions using mobile devices. Keywords— Mobile Payment, POS, Payment System-Commerce, 2D-barcode I. INTRODUCTION Currently Indian market doesn’t use 2-D based Barcode Mobile. In market or malls 1d barcode system is used and queue line system is used thus it is time consuming. In market most of mobiles don’t have barcode detection system in them; only phones like iPhone have it. Money transaction system in market is also slow and credit cards and other money payment system are used.
    [Show full text]
  • Luatex Lunatic
    E34 MAPS 39 Luigi Scarso LuaTEX lunatic And Now for Something Completely Different Examples are now hosted at contextgarden [35] while – Monty Python, 1972 [20] remains for historical purposes. Abstract luatex lunatic is an extension of the Lua language of luatex to permit embedding of a Python interpreter. Motivations & goals A Python interpreter hosted in luatex allows macro pro- TEX is synonymous with portability (it’s easy to im- grammers to use all modules from the Python standard li- plement/adapt TEX the program) and stability (TEX the brary, allows importing of third modules, and permits the language changes only to Vx errors). use of existing bindings of shared libraries or the creation of We can summarize by saying that “typesetting in T X new bindings to shared libraries with the Python standard E module ctypes. tends to be everywhere everytime.” Some examples of such bindings, particularly in the area of These characteristics are a bit unusual in today’s scientific graphics, are presented and discussed. scenario of software development: no one is surprised Intentionally the embedding of interpreter is limited to the if programs exist only for one single OS (and even for python-2.6 release and to a luatex release for the Linux op- a discontinued OS, given the virtualization technology) erating system (32 bit). and especially no one is surprised at a new release of a program, which actually means bugs Vxed and new Keywords features implemented (note that the converse is in some Lua, Python, dynamic loading, ffi. sense negative: no release means program discontinued).
    [Show full text]
  • Expressed Barcodes Enable Clonal Characterization of Chemotherapeutic Responses in Chronic Lymphocytic Leukemia
    bioRxiv preprint doi: https://doi.org/10.1101/761981; this version posted September 8, 2019. The copyright holder for this preprint (which was not certified by peer review) is the author/funder, who has granted bioRxiv a license to display the preprint in perpetuity. It is made available under aCC-BY-NC-ND 4.0 International license. Expressed barcodes enable clonal characterization of chemotherapeutic responses in chronic lymphocytic leukemia Aziz Al’Khafaji1,2*, Catherine Gutierrez3,4*, Eric Brenner1,2, Russell Durrett1,2, Kaitlyn E. Johnson2, Wandi Zhang4, Shuqiang Li4,5,6, Kenneth J. Livak4,6, Donna Neuberg7, Amy Brock1,2, Catherine J. Wu3,4,5,8 1 Institute of Cellular and Molecular Biology, University of Texas at Austin, TX, USA 2 Biomedical Engineering, University of Texas at Austin, TX, USA 3 Harvard Medical School, Boston, MA, USA 4 Department of Medical Oncology, Dana-Farber Cancer Institute, Boston, MA, USA 5 Broad Institute of MIT and Harvard, Cambridge, MA, USA 6 Translational Immunogenomics Lab, Dana-Farber Cancer Institute, Boston, MA, USA 7 Department of Data Sciences, Dana Farber Cancer Institute, Boston, MA, USA 8 Department of Medicine, Brigham and Women’s Hospital, Boston, MA, USA *Both authors contributed equally to this work. Author information: These authors jointly supervised this work: Catherine J. Wu and Amy Brock Correspondence should be addressed to [email protected] and [email protected] Key words: Chronic lymphocytic leukemia, CLL, clonal evolution, clonal dynamics, drug resistance, lineage tracing, DNA barcoding, expressed barcodes, single-cell RNA sequencing, cancer transcriptomics 1 bioRxiv preprint doi: https://doi.org/10.1101/761981; this version posted September 8, 2019.
    [Show full text]