PDF and Epub Files Available? You Can Upgrade to the Ebook Version at And, As a Print Book Customer, You Are Entitled to a Discount on the Ebook Copy

Total Page:16

File Type:pdf, Size:1020Kb

PDF and Epub Files Available? You Can Upgrade to the Ebook Version at And, As a Print Book Customer, You Are Entitled to a Discount on the Ebook Copy Mastering Go Second Edition Create Golang production applications using network libraries, concurrency, machine learning, and advanced data structures Mihalis Tsoukalos BIRMINGHAM - MUMBAI Mastering Go Second Edition Copyright © 2019 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. Acquisition Editor: Andrew Waldron Acquisition Editor – Peer Reviews: Suresh Jain Project Editor: Kishor Rit Development Editor: Joanne Lovell Technical Editor: Aniket Shetty Copy Editor: Safis Editing Proofreader: Safis Editing Indexer: Pratik Shirodkar Production Designer: Sandip Tadge First published: April 2018 Second edition: August 2019 Production reference: 1270819 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-83855-933-5 www.packtpub.com Packt.com Subscribe to our online digital library for full access to over 7,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website. Why subscribe? Spend less time learning and more time coding with practical eBooks and videos from over 4,000 industry professionals Improve your learning with Skill Plans built especially for you Get a free eBook or video every month Fully searchable for easy access to vital information Copy and paste, print, and bookmark content Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.packt.com and, as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details. At www.packt.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks. Contributors About the author Mihalis Tsoukalos is a UNIX administrator, a programmer, a DBA, and a mathematician who enjoys writing technical books and articles and learning new things. He is the author of Go Systems Programming and Mastering Go. He has written more than 250 technical articles for many magazines, including Sys Admin, MacTech, Linux User and Developer, Usenix ;login:, Linux Format, and Linux Journal. His research interests include databases, visualization, statistics and machine learning. You can reach him at https:/​/​www.​mtsoukalos.​eu/ ​ and @mactsouk. Mihalis is also a photographer. I would like to thank the people at Packt Publishing for helping me to write this book, including my technical reviewer, Mat Ryer, and Kishor Rit for answering all my questions and encouraging me during the whole process. I would like to dedicate this book to the loving memory of my parents, Ioannis and Argetta. About the reviewer Mat Ryer has been programming computers since he was six years old. He would build games and programs, first in BASIC on a ZX Spectrum, and then in AmigaBASIC and AMOS on Commodore Amiga with his father. Many hours were spent manually copying the code from the Amiga Format magazine and tweaking variables or moving GOTO statements around to see what might happen. The same spirit of exploration and obsession with programming led Mat to starting work with a local agency in Mansfield, England, when he was 18, where he started to build websites and other online services. After several years of working with various technologies and industries in London and around the world, Mat noticed a new systems language called Go that Google was pioneering. Since it addressed very pertinent and relevant modern technical challenges, he started using it to solve problems while the language was still in the beta stage, and he has been using it ever since. Mat contributes to open-source projects and has founded Go packages, including Testify, Moq, Silk, and Is, as well as a macOS developer tool called BitBar. In 2018, Mat co-founded Machine Box and still spends a lot of time speaking at conferences, writing about Go on his blog, and being an active member of the Go community. Table of Contents Chapter 1: Go and the Operating System 8 The history of Go 8 Where is Go going? 9 The advantages of Go 9 Is Go perfect? 10 What is a preprocessor? 11 The godoc utility 11 Compiling Go code 12 Executing Go code 13 Two Go rules 14 You either use a Go package or you do not include it 14 There is only one way to format curly braces 16 Downloading Go packages 17 UNIX stdin, stdout, and stderr 18 About printing output 19 Using standard output 21 Getting user input 23 About := and = 23 Reading from standard input 24 Working with command-line arguments 25 About error output 28 Writing to log files 30 Logging levels 30 Logging facilities 30 Log servers 31 A Go program that sends information to log files 32 About log.Fatal() 35 About log.Panic() 35 Writing to a custom log file 37 Printing line numbers in log entries 39 Error handling in Go 41 The error data type 41 Error handling 43 Using Docker 46 Exercises and links 51 Summary 52 Chapter 2: Understanding Go Internals 53 The Go compiler 54 Table of Contents Garbage collection 55 The tricolor algorithm 58 More about the operation of the Go garbage collector 61 Maps, slices, and the Go garbage collector 62 Using a slice 63 Using a map with pointers 63 Using a map without pointers 64 Splitting the map 65 Comparing the performance of the presented techniques 65 Unsafe code 66 About the unsafe package 68 Another example of the unsafe package 69 Calling C code from Go 70 Calling C code from Go using the same file 70 Calling C code from Go using separate files 71 The C code 72 The Go code 72 Mixing Go and C code 74 Calling Go functions from C code 75 The Go package 75 The C code 76 The defer keyword 77 Using defer for logging 80 Panic and recover 82 Using the panic function on its own 84 Two handy UNIX utilities 85 The strace tool 85 The dtrace tool 86 Your Go environment 88 The go env command 90 The Go assembler 91 Node trees 92 Finding out more about go build 98 Creating WebAssembly code 100 A quick introduction to WebAssembly 100 Why is WebAssembly important? 100 Go and WebAssembly 100 An example 101 Using the generated WebAssembly code 102 General Go coding advice 104 Exercises and links 104 Summary 105 Chapter 3: Working with Basic Go Data Types 107 Numeric data types 108 [ ii ] Table of Contents Integers 108 Floating-point numbers 108 Complex numbers 108 Number literals in Go 2 111 Go loops 111 The for loop 111 The while loop 112 The range keyword 113 An example with multiple Go loops 113 Go arrays 115 Multi-dimensional arrays 116 The shortcomings of Go arrays 118 Go slices 119 Performing basic operations on slices 119 Slices are expanded automatically 121 Byte slices 123 The copy() function 123 Multi-dimensional slices 125 Another example with slices 126 Sorting slices using sort.Slice() 128 Appending an array to a slice 130 Go maps 131 Storing to a nil map 133 When you should use a map 134 Go constants 134 The constant generator iota 136 Go pointers 139 Why use pointers? 142 Times and dates 142 Working with times 144 Parsing times 144 Working with dates 146 Parsing dates 146 Changing date and time formats 147 Measuring execution time 149 Measuring the operation of the Go garbage collector 151 Web links and exercises 151 Summary 152 Chapter 4: The Uses of Composite Types 153 About composite types 154 Structures 154 Pointers to structures 156 Using the new keyword 158 Tuples 159 [ iii ] Table of Contents Regular expressions and pattern matching 160 Introducing some theory 161 A simple example 161 A more advanced example 164 Matching IPv4 addresses 167 Strings 171 What is a rune? 174 The unicode package 176 The strings package 177 The switch statement 181 Calculating Pi with high accuracy 185 Developing a key-value store in Go 187 Go and the JSON format 193 Reading JSON data 193 Saving JSON data 195 Using Marshal() and Unmarshal() 197 Parsing JSON data 198 Go and XML 201 Reading an XML file 204 Customizing XML output 206 Go and the YAML format 207 Additional resources 208 Exercises and web links 208 Summary 209 Chapter 5: How to Enhance Go Code with Data Structures 210 About graphs and nodes 211 Algorithm complexity 211 Binary trees in Go 212 Implementing a binary tree in Go 213 Advantages of binary trees 215 Hash tables in Go 216 Implementing a hash table in Go 217 Implementing the lookup functionality 219 Advantages of hash tables 220 Linked lists in Go 220 Implementing a linked list in Go 222 Advantages of linked lists 225 Doubly linked lists in Go 226 Implementing a doubly linked list in Go 227 Advantages of doubly linked lists 230 Queues in Go 231 Implementing a queue in Go 231 Stacks in Go
Recommended publications
  • Hipeac Conference 2021 Virtual Event
    62 JANUARY 2021 HiPEAC conference 2021 Virtual event HiPEAC Vision roadmap 2021: taking a whole systems approach Tulika Mitra on taking edge computing to the next stage Evangelos Eleftheriou on the possibilities of in-memory computing Brad McCredie on exascale and beyond contents 16 18 19 IBM’s Evangelos Eleftheriou on AMD’s Brad McCredie on HPC Tulika Mitra on the way forward in-memory computing and exascale for edge computing 3 Welcome 32 Technology transfer Koen De Bosschere Signaloid: A new approach to computation that interacts with the physical world 4 Policy corner Vasileios Tsoutsouras Two very different twins Sandro D’Elia 34 Technology transfer Nostrum Biodiscovery pyDock: specialised software 6 News enabling drug design and discovery 16 HiPEAC voices Ezequiel Mas Del Molino ‘It’s not that often that you get involved in developing 36 SME snapshot and nurturing a new computing paradigm’ Nosh Technologies Evangelos Eleftheriou Somdip Dey 18 HiPEAC voices 37 SME snapshot ‘Our biggest challenges in the world today are limited by Maspatechnologies: supporting regulatory compliance in what is computationally possible’ safety-critical industries Brad McCredie Jaume Abella and Francisco J. Cazorla 19 HiPEAC voices 38 Peac performance Pushing the frontiers of edge computing Accemic Technologies: CEDARtools – look inside your Tulika Mitra processor (without affecting it) 20 The future Alexander Weiss and Thomas Preusser HiPEAC Vision 39 Peac performance The HiPEAC Vision editorial board PreVIous: a useful tool for decision making in the
    [Show full text]
  • SYNDICATION Partner with Future OUR PURPOSE
    SYNDICATION Partner With Future OUR PURPOSE We change people’s lives through “sharing our knowledge and expertise with others, making it easy and fun for them to do what they want ” CONTENTS ● The Future Advantage ● Syndication ● Our Portfolio ● Company History THE FUTURE ADVANTAGE Syndication Our award-winning specialist content can be used to further enrich the experience of your audience. Whilst at the same time saving money on editorial costs. We have 4 million+ images and 670,000 articles available for reuse. And with the support of our dedicated in-house licensing team, this content can be seamlessly adapted into a range of formats such as newspapers, magazines, websites and apps. The Core Benefits: ● Internationally transferable content for a global audience ● Saving costs on editorial budget so improving profit margin ● Immediate, automated and hassle-free access to content via our dedicated content delivery system – FELIX – or custom XML feeds ● Friendly, dynamic and forward-thinking licensing team available to discuss editorial requirements #1 ● Rich and diverse range of material to choose from ● Access to exclusive content written by in-house expert editorial teams Monthly Bookazines Global monthly Social Media magazines users Fans 78 2000+ 148m 52m Source: Google Search 2018 SYNDICATION ACCESS the entire Future portfolio of market leading brands within one agreement. Our in context licence gives you the ability to publish any number of features, reviews or interviews to boost the coverage and quality of your publications. News Features Interviews License the latest news from all our Our brands speak to the moovers and area’s of interest from a single shakers within every subject we write column to a Double Page spread.
    [Show full text]
  • LINUX JOURNAL (ISSN 1075-3583) Is Published Monthly by Linux Journal, LLC
    Getting Started Review: the A Look at GDPR’s with Nextcloud Librem 13v2 Massive Impact Since 1994: The original magazine of the Linux community PRIVACY HOW TO PROTECT YOUR DATA EFFECTIVE PRIVACY PLUGINS GIVE YOUR SERVERS SOME PRIVACY WITH TOR HIDDEN SERVICES INTERVIEW: PRIVATE INTERNET ACCESS GOES OPEN SOURCE ISSUE 286 | MAY 2018 www.linuxjournal.com MAY 2018 CONTENTS ISSUE 286 82 DEEP DIVE: PRIVACY 83 Data Privacy: Why It Matters and How to Protect Yourself by Petros Koutoupis When it comes to privacy on the internet, 118 Facebook the safest approach is to cut your Ethernet cable or power down your Compartmentalization device. In reality though, most people by Kyle Rankin can’t actually do that and remain productive. This article provides an I don’t always use Facebook, but when overview of the situation, steps you I do, it’s over a compartmentalized can take to mitigate risks and finishes browser over Tor. with a tutorial on setting up a virtual private network. 121 The Fight for Control: 106 Privacy Plugins Andrew Lee on by Kyle Rankin Open-Sourcing PIA by Doc Searls Protect yourself from privacy-defeating ad trackers and malicious JavaScript with When I learned that our sister company, these privacy-protecting plugins. Private Internet Access (PIA) was opening its source code, I immediately wanted to know the backstory, especially since 113 Tor Hidden Services privacy is the theme of this month’s issue. So I contacted Andrew Lee, who founded by Kyle Rankin PIA, and an interview ensued. Why should clients get all the privacy? Give your
    [Show full text]
  • Curriculum Vitae
    William Weinberg 408-568-2492 [email protected] May 2010 The following resume details my professional experience in the IT industry. Highlights include ♦ Two-decade track record in embedded/mobile, desktop and enterprise computing; over thirteen years hands-on experience with Linux, Open Source, and Open Systems ♦ Executive and thought-leadership roles at both start-ups and established firms, including General Manager, Country Manager, and Director of Marketing ♦ Market and technology know-how targeting mobile, consumer electronics, data and tele- communications, industrial control, instrumentation and aerospace/defense ♦ Expertise in Open Source practices, licensing and distribution, Linux kernel and OS tech- nology, s/w and h/w ecosystems ♦ Deep knowledge of tools, OSes (Linux/UNIX, Android, Symbian, RTOSes), middleware and applications development ♦ Extensive US and international experience “on the ground” in North America, Asia, Europe, and Latin America; strong communications skills in Portuguese, Italian and French ♦ Consulting experience in open source, business strategy and market analysis with clients including FT/Orange, HP, Intel, Mentor Graphics, MIPS, Palm, Synopsys, Wind River and other segment leaders ♦ Evangelist and author of over 160 articles, on topics ranging from mobile and embedded computing to open source and software licensing, virtualization and security ♦ Faculty chair and track manager for mobile/embedded at Linux Collaboration Summit and Open Source World; top-rated speaker at Informa Open Mobility, LinuxWorld, O’Reilly E- Tel and other conferences; frequent panelist and panel leader Looking forward Bill Weinberg Additional background information at http://www.linuxpundit.com William Weinberg 408-568-2492 [email protected] Professional Experience Olliance Group Palo Alto, CA : 2009-present Senior Executive / Mobile Open Source Practice Partner Responsible for definition, marketing and execution of mobile/embedded practice engage- ments.
    [Show full text]
  • THE YEAR of LINUX 2015 the YEAR of LINUX This Year Is Set to Be the Best Ever for Linux – and That’S Not Just Our Opinion
    2015: THE YEAR OF LINUX 2015 THE YEAR OF LINUX This year is set to be the best ever for Linux – and that’s not just our opinion. Some of the biggest players in Free Software think so too… here’s a long-running joke in the Linux world, market where Linux dominates thanks to Android – that the next year will be the year of “Linux on and the server space became even bigger thanks to Tthe desktop”. At first it was a serious “cloud” computing, software/platform/infrastructure proposition: back in the early 2000s, it looked like the as a service, and the growth of web apps. operating system was poised to take a significant So Linux is, today, by far the most prevalent and chunk of desktop marketshare. Microsoft was important operating system in the world. It’s a long struggling with major security problems in Windows, way from being on every home desktop PC, but the Apple’s Mac OS X had barely gotten off the ground, next 12 months have plenty in store, and so for our and there was clearly room for something better. first issue of the year we want to look ahead at the So why didn’t Linux dive in and win millions of goodies to come. But we don’t just want to wax users? Well, it did, just in another way. Microsoft lyrical about our favourite projects here; we also want started to take security more seriously, and OS to hear from some of the biggest names in Linux X emerged as a shiny Unix-like OS that appealed and Free Software about what they’re most looking to many geeks.
    [Show full text]
  • View on 5G Architecture
    5G PPP Architecture Working Group View on 5G Architecture Version 3.0, June 2019 Date: 2019-06-19 Version: 3.0 Dissemination level: Public Consultation Abstract The 5G Architecture Working Group as part of the 5G PPP Initiative is looking at capturing novel trends and key technological enablers for the realization of the 5G architecture. It also targets at presenting in a harmonized way the architectural concepts developed in various projects and initiatives (not limited to 5G PPP projects only) so as to provide a consolidated view on the technical directions for the architecture design in the 5G era. The first version of the white paper was released in July 2016, which captured novel trends and key technological enablers for the realization of the 5G architecture vision along with harmonized architectural concepts from 5G PPP Phase 1 projects and initiatives. Capitalizing on the architectural vision and framework set by the first version of the white paper, the Version 2.0 of the white paper was released in January 2018 and presented the latest findings and analyses of 5G PPP Phase I projects along with the concept evaluations. The work has continued with the 5G PPP Phase II and Phase III projects with special focus on understanding the requirements from vertical industries involved in the projects and then driving the required enhancements of the 5G Architecture able to meet their requirements. The results of the Working Group are now captured in this Version 3.0, which presents the consolidated European view on the architecture design. Dissemination level: Public Consultation Table of Contents 1 Introduction........................................................................................................................
    [Show full text]
  • Artificial Intelligence and the Future of Humans
    FOR RELEASE DECEMBER 10, 2018 Artificial Intelligence and the Future of Humans Experts say the rise of artificial intelligence will make most people better off over the next decade, but many have concerns about how advances in AI will affect what it means to be human, to be productive and to exercise free will By Janna Anderson, Lee Rainie and Alex Luchsinger FOR MEDIA OR OTHER INQUIRIES: Janna Anderson, Director, Imagining the Internet Center Lee Rainie, Director, Internet and Technology Research Shawnee Cohn, Communications Manager 202.419.4372 www.pewresearch.org RECOMMENDED CITATION Pew Research Center, December, 2018, “Artificial Intelligence and the Future of Humans” 1 PEW RESEARCH CENTER About Pew Research Center Pew Research Center is a nonpartisan fact tank that informs the public about the issues, attitudes and trends shaping America and the world. It does not take policy positions. It conducts public opinion polling, demographic research, content analysis and other data-driven social science research. The Center studies U.S. politics and policy; journalism and media; internet, science and technology; religion and public life; Hispanic trends; global attitudes and trends; and U.S. social and demographic trends. All of the center’s reports are available at www.pewresearch.org. Pew Research Center is a subsidiary of The Pew Charitable Trusts, its primary funder. For this project, Pew Research Center worked with Elon University’s Imagining the Internet Center, which helped conceive the research and collect and analyze the data. © Pew Research Center 2018 www.pewresearch.org 2 PEW RESEARCH CENTER Artificial Intelligence and the Future of Humans Experts say the rise of artificial intelligence will make most people better off over the next decade, but many have concerns about how advances in AI will affect what it means to be human, to be productive and to exercise free will Digital life is augmenting human capacities and disrupting eons-old human activities.
    [Show full text]
  • Future, We Pride Ourselves on the Heritage of Our Brands and Loyalty of Our Communities
    IPSO ANNUAL STATEMENT 2017 Introduction At Future, we pride ourselves on the heritage of our brands and loyalty of our communities. We help dedicated enthusiasts follow their passion through high-quality content, unique experiences and innovative technology. First set up with one magazine in 1985, Future now boasts a portfolio of over 80 brands produced from operations in the UK, US and Australia. Every day, innovation is at the core of what we do: put simply, we push boundaries. In recent years, Future has made a number of acquisitions in the UK. These include Blaze Publishing, Imagine Publishing, Team Rock and Centaur’s Home Interest brands. Today, Future employs approximately 500 employees and the company’s leadership structure is outlined in Appendix 2. Our core portfolio covers consumer technology, games/entertainment, music, creative/design, home interest, photography, and history/science. ​We have over 50 monthly magazines and publish over 400 one-off ‘bookazine’ products each year. Globally, 53 million users access Future’s digital sites each month, we have over 200,000 digital subscriptions worldwide, and a combined social media audience of 56 million followers (a list of our titles/products can be found under Appendix 1a. & 1b.). For the purpose of this statement, Future’s ‘responsible person’ is Paul Newman, Group Content Director. Editorial Standards Through our expertise in nine different content ‘verticals’, Future produces engaging, informative and entertaining content across a number of channels and to a high standard. The business is driven by a core strategy – ‘Content that Connects’ – that has been in place since 2014. This puts content at the heart of what we do, and is an approach we reiterate in our internal communications strategy through regular staff briefings.
    [Show full text]
  • Virtualization and Cloud Computing in Linux
    Virtualization in Linux a Key Component for Cloud Computing Harrison Carranzaa and Aparicio Carranzaa aComputer Engineering Technology New York City College of Technology of The City University of New York 186 Jay Street (V633) Brooklyn, NY 11201 Phone: (718) 260 – 5897 Email: [email protected] ABSTRACT Cloud Computing and Virtualization are becoming very popular and many businesses are embracing this paradigm. Cloud computing enables on-demand access to network services as well as configuration of Computer Systems. Virtualization allows physical machines to be partitioned into several Virtual Machines (VMs); and run applications in each of these VMs as if it were independent physical machines all running at the same time. VMware, Xen and KVM are well known virtualization solutions that provide means to create virtual machines; there after allows us to install different operating systems. VMware is a commercial product that carries a license fee; Xen and KVM are freely available and are included with most of the Linux distributions. In this paper we mainly report our work carried out by using KVM (Kernel Virtual Modules)and briefly mention the high performance solution that VMware server system provides when used; we revise the requirements to implement this approach: Memory (RAM), Storage (hard disk), CPU selection (Intel-VT or AMD-V), etc. Lastly, we create several Virtual Machines and install various Operating Systems to observe their performance. Keywords: Cloud Computing, Virtualization, Physical Machines, Virtual Machines, VMware, Xen, Linux, KVM, SAN. I. INTRODUCTION During the last decade, virtualization and cloud computing have become two driving forces in the engineering and information technology industry.
    [Show full text]
  • Linux Journal | June 2011 | Issue
    Backbone.js | Gumstix | DNSSEC | Buildroot | Tiny Core ™ TIME-SAVING COMMAND-LINE TRICKS INSTALL THE CYANOGENMOD ANDROID DISTRO ON YOUR PHONE TRY SUPER-LIGHTWEIGHT Since 1994: The Original Magazine of the Linux Community TINY CORE LINUX EMBEDDED LINUX INTERVIEW WITH HEXAPOD DEVELOPER MATT BUNTING + DEBUG EMBEDDED LINUX PLATFORMS WITH PYTHON AND GDB APPLYING SPEECH I/O IN EMBEDDED APPLICATIONS JUNE 2011 | ISSUE 206 www.linuxjournal.com $5.99US $5.99CAN Getting Started Authenticate 06 with Buildroot Users with OAuth 0 09281 03102 4 More TFLOPS, Fewer WATTS Microway delivers the fastest and greenest floating point throughput in history 2.5 TFLOPS Enhanced GPU Computing with Tesla Fermi 480 Core NVIDIA® Tesla™ Fermi GPUs deliver 1.2 TFLOP single precision & 600 GFLOP double precision performance! New Tesla C2050 adds 3GB ECC protected memory New Tesla C2070 adds 6GB ECC protected memory Tesla Pre-Configured Clusters with S2070 4 GPU servers WhisperStation - PSC with up to 4 Fermi GPUs OctoPuter™ with up to 8 Fermi GPUs and 144GB memory New Processors 12 Core AMD Opterons with quad channel DDR3 memory 8 Core Intel Xeons with quad channel DDR3 memory Superior bandwidth with faster, wider CPU memory busses Increased efficiency for memory-bound floating point algorithms Configure your next Cluster today! 10 TFLOPS 5 TFLOPS www.microway.com/quickquote 508-746-7341 FasTree™ QDR InfiniBand Switches and HCAs 45 TFLOPS 36 Port, 40 Gb/s, Low Cost Fabrics Compact, Scalable, Modular Architecture Ideal for Building Expandable Clusters and Fabrics MPI Link-Checker™ and InfiniScope™ Network Diagnostics FasTree 864 GB/sec Achieve the Optimal Fabric Design for your Specific Bi-sectional Bandwidth MPI Application with ProSim™ Fabric Simulator Now you can observe the real time communication coherency of your algorithms.
    [Show full text]
  • 39666091.Pdf
    Development of a general purpose computer-based platform to provide functional assistance to people with severe motor disabilities Franco Senatore A dissertation submitted to the Faculty of Engineering and the Built Environment at The University of the Witwatersrand, Johannesburg, in fulfilment of the requirements for the degree of Master of Science in Engineering. Johannesburg, March 2009 Declaration I declare that this dissertation is my own, unaided work, except where otherwise acknowl- edged. It is being submitted for the degree of Master of Science in Engineering in the University of the Witwatersrand, Johannesburg. It has not been submitted before for any degree or examination in any other university. Signed this day of 20 Franco Senatore. i Abstract Research and development into a generic assistive platform, which can accommodate a vari- ety of patients suffering from a wide range of motor disabilities is described. Methodologies were established, whereby the design could be made sufficiently flexible, such that it could be programmed to suit these people in terms of their needs and level of motor disability. This needed to be achieved without redesigning the system for each person. Suitable sensors were chosen to sense the residual motor function of the disabled individual, while being non-invasive and safe for use. These sensors included a dual-axis accelerometer (tilt switch), a 6-key touch sensor and a SCATIR switch (blink/wink sensor). The placement of the sensors, for the purpose of this study, were restricted to sensing arm (dual-axis ac- celerometer) or finger movements (touch sensors), head and neck movements (accelerom- eter) and blink/wink and/or eye-brow movements (SCATIR switch).
    [Show full text]
  • Linux, Raspberry Pi and Amateur Radio Mark G8PHM, 9/2/2015 What Is Linux?
    Linux, Raspberry Pi and Amateur Radio Mark G8PHM, 9/2/2015 What is Linux? ...An operating system! :-) So… what’s an operating system? Once upon a time, it meant the software which enabled a user to read, write and manipulate files stored on floppy drives for micro-computers. Now, it refers to the software which provides ● the computer user(s) with mechanisms to run any and all applications ● those applications with standard ways of accessing all connected devices, such as screen, keyboard, storage, network, and USB dongles Some of those applications need to be tools such as assemblers, compilers, debuggers and binary editors, so that programmers can write the applications. Most Linux code is written by volunteers, largely the code is of very high quality, but not all projects remain live, and not all projects have large development teams, so like proprietary software, it’s something of a mixed bag. Unlike proprietary software, all Open-Source can be fixed by someone with the right capability. The most important operating systems in use in domestic and small commercial environments are: Windows NT, Apple OSX and Linux. Windows NT series (up to 10) ● Fully proprietary - copyright Microsoft ● Source code generally not available ● Most versions are binary compatible ● Designed for graphical UI (mouse clicks) ● Very limited text shell interface ● Very poor security record, essential to run with virus-guards and similar ● Very popular, including with virus-writers! ● Current versions have no relationship with DOS-based versions (Win 3.0 to Millenium)
    [Show full text]