Emacsy. Shane Celis. GNU Hackers Meeting Paris, France August 24th, 2013

Size: px
Start display at page:

Download "Emacsy. Shane Celis. GNU Hackers Meeting Paris, France August 24th, 2013"

Transcription

1 Emacsy Shane Celis GNU Hackers Meeting Paris, France August 24th, 2013

2 Agenda Intended Audience What is Emacsy? What is Emacs? Demos What s next? Where to get it

3 Audience

4 Audience Interactive application developers

5 Audience Interactive application developers Emacs users

6 Audience Interactive application developers Emacs users Why base it off Emacs?

7 Emacsy: Google Summer of Code Officially started this Summer Working with Ludovic Courtès from GNU Project Received lots of help from #guile on freenode.net Special thanks to Andy Wingo and Mark Weaver

8 What is Emacsy?

9 What is Emacsy? It s an embeddable Emacs-like library.

10 What is Emacsy? It s an embeddable Emacs-like library. How Emacs-like exactly?

11 A Joke That Explains Emacs is a great operating system lacking only a decent editor. Emacs Extensions Mail Reader Emacs

12 A Joke That Explains Emacs is a great operating system lacking only a decent editor. Emacs Extensions Mail Reader Emacs

13 A Joke That Explains Emacs is a great operating system lacking only a decent editor. Emacs Extensions Mail Reader Emacs Extensions Mail Reader Text Editor Emacs "Emacs OS"

14 Emacsy Features

15 Emacsy Features lisp interpreter

16 Emacsy Features lisp interpreter keymaps

17 Emacsy Features lisp interpreter keymaps minibuffer history completion

18 Emacsy Features lisp interpreter keymaps minibuffer history completion

19 Emacsy Features lisp interpreter keymaps recordable macros minibuffer history completion

20 Emacsy Features lisp interpreter keymaps minibuffer history recordable macros comprehensive online help completion

21 Emacsy Features lisp interpreter keymaps minibuffer history completion recordable macros comprehensive online help major and minor modes

22 Emacsy Anti-goals

23 Emacsy Anti-goals Emacsy is not an Emacs replacement

24 Emacsy Anti-goals Emacsy is not an Emacs replacement not a text editor

25 Emacsy Anti-goals Emacsy is not an Emacs replacement not a text editor not elisp compatible

26 Different Integration Strategy

27 What is Emacs?

28 What is Emacs?

29 What is Emacs? It s a text editor,

30 What is Emacs? It s a text editor, a mail reader,

31 What is Emacs? It s a text editor, a mail reader, a shell,

32 What is Emacs? It s a text editor, a mail reader, a shell, a lisp interpreter,

33 What is Emacs? It s a text editor, a mail reader, a shell, a lisp interpreter, a web browser.

34 What is Emacs? Beautiful Architecture. Ch. 11. GNU Emacs: Creeping Featurism is a Strength by Jim Blandy

35 Model View Controller

36 Model View Controller The buffer is a model.

37 Model View Controller The buffer is a model. The window is a view.

38 Model View Controller The buffer is a model. The window is a view. The controller is all the elisp code.

39 Praising the Model A buffer is plaintext. Emacs is not a word processor; no bold, italics, nor attributes are embedded into the model. It s simple. It s all just text.

40 Other Simple Models It s all just blocks.

41 Simple Model Users can make very complicated things out of simple building blocks.

42 Emacs is Extensible It s a text editor, a mail reader, a shell, a lisp interpreter, a web browser.

43 The Fix is In The view is fixed. The model is fixed. Only the controller is extensible with elisp.

44 Emacsy

45 Emacsy The view is not fixed.

46 Emacsy The view is not fixed. The model is not fixed.

47 Emacsy The view is not fixed. The model is not fixed. The controller is extensible with GNU Guile Scheme.

48 Vision Cameron, D., Rosenblatt, B., & Raymond, E. S. (1996). Learning GNU Emacs. O'Reilly Media.

49 Cameron, D., Rosenblatt, B., & Raymond, E. S. (1996). Learning GNU Emacs. O'Reilly Media. Vision

50 Vision Cameron, D., Rosenblatt, B., & Raymond, E. S. (1996). Learning GNU Emacs. O'Reilly Media. Emacsy

51 Vision Cameron, D., Rosenblatt, B., & Raymond, E. S. (1996). Learning GNU Emacs. O'Reilly Media. Emacsy

52 Vision Cameron, D., Rosenblatt, B., & Raymond, E. S. (1996). Learning GNU Emacs. O'Reilly Media. Emacsy

53 Vision Cameron, D., Rosenblatt, B., & Raymond, E. S. (1996). Learning GNU Emacs. O'Reilly Media. Emacsy

54 Vision Cameron, D., Rosenblatt, B., & Raymond, E. S. (1996). Learning GNU Emacs. O'Reilly Media. Emacsy

55 Emacs(y) Architecture Emacs Extensions Emacs Core Elisp Interpreter C Core

56 Emacs(y) Architecture Emacs Extensions Emacsy Extensions Emacs Core Emacsy Core Elisp Interpreter Lisp Interpreter C Core C/C++ App

57 Emacs(y) Architecture Emacs Extensions Emacsy Extensions Emacs Core Elisp Interpreter Emacsy Core Lisp Interpreter } Emacsy C Core C/C++ App

58 Emacs(y) Architecture Emacs Extensions Emacsy Extensions Emacs Core Elisp Interpreter Emacsy Core Lisp Interpreter } Emacsy C Core C/C++ App } Your App

59 Demo!

60 Levels of Integration 1. No buffer support 2. Multiple buffers 3. Multiple windows

61 What Guile Provides that Elisp Doesn t

62 What Guile Provides that Elisp Doesn t Continuations

63 What Guile Provides that Elisp Doesn t Continuations Modules

64 What Guile Provides that Elisp Doesn t Continuations Modules Foreign Function Interface (FFI)

65 What Guile Provides that Elisp Doesn t Continuations Modules Foreign Function Interface (FFI) Threads

66 Taking Advantage of Guile Continuations can be used to build system-calls but in userland Blocking in Scheme without blocking in C Non-blocking events

67 Modules In my Emacs environment, I have 6,029 commands available at all times. Many aren t useful in my current context. Can we be more careful in what commands we expose?

68 Context Sensitive Commands Idea: Export commands to a module Each buffer could have a MODULE_PATH that works like PATH in bash M-x only looks up commands in the MODULE_PATH C-u M-x looks up all commands

69 Comprehensive Help Emacs has a great help system! What will Emacsy do? Options: 1. Do it all in minibuffer. 2. Use a text buffer like Emacs. 3. Use a local web server.

70 Beyond Emacs Job control Continuations Coroutines Cooperative Multitasking Major modes Are major modes worth it?

71 Available Now Alpha quality Recommend release v Available under the GNU GPLv3

72 Thanks for watching! contact: repo:

73 Acknowledgments GNU Emacs project (Thank you, RMS!) GNU Guile project The guys at Nykia Hunter for the elephant and narwhal graphics

74 Questions?

The User in the Loop Extensibility, Guile, and GNU GNU Hackers Meeting 2011 Andy Wingo

The User in the Loop Extensibility, Guile, and GNU GNU Hackers Meeting 2011 Andy Wingo The User in the Loop Extensibility, Guile, and GNU GNU Hackers Meeting 2011 Andy Wingo Greetings! Andy Wingo Guile co-maintainer, along with Ludovic Courtès Goal Understand the problem Guile is part of

More information

GNU Hackers Meeting 2013

GNU Hackers Meeting 2013 GNU Hackers Meeting 2013 http://www.gnu.org/ghm/2013/paris Luca Saiu IRILL, Paris, August 2013 1/12. Introduction A software is free software if you can: 0: run it, for any purpose 1:

More information

Learning Gnu Emacs A Guide To Unix Text Processing

Learning Gnu Emacs A Guide To Unix Text Processing We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our ebooks online or by storing it on your computer, you have convenient answers with learning gnu emacs a

More information

Workflow management for data analysis with GNU Guix

Workflow management for data analysis with GNU Guix Workflow management for data analysis with GNU Guix Roel Janssen June 9, 2016 Abstract Combining programs to perform more powerful actions using scripting languages seems a good idea, until portability

More information

A beginner s guide to (GNU) Emacs 24

A beginner s guide to (GNU) Emacs 24 A beginner s guide to (GNU) Emacs 24 Matthew Chan, themattchan.com, last updated November 2014 Part 0: Getting started Why Emacs? Emacs is the One True Editor. Emacs can do anything you can possibly think

More information

ag.el Documentation Release 0.45 Wilfred Hughes

ag.el Documentation Release 0.45 Wilfred Hughes ag.el Documentation Release 0.45 Wilfred Hughes Feb 25, 2018 Contents 1 Installation 3 1.1 Operating System............................................ 3 1.2 Emacs..................................................

More information

Phil Sung. Special thanks to Piaw Na and Arthur Gleckler

Phil Sung. Special thanks to Piaw Na and Arthur Gleckler Being Productive With Emacs Part 1 Phil Sung sipb iap emacs@mit.edu http://stuff.mit.edu/iap/emacs Special thanks to Piaw Na and Arthur Gleckler Emacs is the extensible, customizable, self documenting

More information

Learning The Bash Shell: Unix Shell Programming (In A Nutshell (O'Reilly)) PDF

Learning The Bash Shell: Unix Shell Programming (In A Nutshell (O'Reilly)) PDF Learning The Bash Shell: Unix Shell Programming (In A Nutshell (O'Reilly)) PDF O'Reilly's bestselling book on Linux's bash shell is at it again. Now that Linux is an established player both as a server

More information

Navigating the Guix Subsystems

Navigating the Guix Subsystems Navigating the Guix Subsystems Ludovic Courtès GNU Hackers Meeting, Rennes, August 2016 The Emacs of distros When large numbers of nontechnical workers are using a programmable editor, they will be tempted

More information

A Brief Introduction to Scheme (I)

A Brief Introduction to Scheme (I) A Brief Introduction to Scheme (I) Philip W. L. Fong pwlfong@cs.uregina.ca Department of Computer Science University of Regina Regina, Saskatchewan, Canada Scheme Scheme I p.1/44 Scheme: Feature Set A

More information

Integrated Software Environment. Part 2

Integrated Software Environment. Part 2 Integrated Software Environment Part 2 Operating Systems An operating system is the most important software that runs on a computer. It manages the computer's memory, processes, and all of its software

More information

CALIFORNIA STATE UNIVERSITY CHANNEL ISLANDS COURSE MODIFICATION PROPOSAL

CALIFORNIA STATE UNIVERSITY CHANNEL ISLANDS COURSE MODIFICATION PROPOSAL CALIFORNIA STATE UNIVERSITY CHANNEL ISLANDS COURSE MODIFICATION PROPOSAL Courses must be submitted by October 15, 2013, and finalized by the end of the fall semester to make the next catalog (2014-15)

More information

How Emacs Evolves to Suit Your Needs p. 1 How Emacs Differs from Other Software p. 3 Software and the User p. 4 Emacs Vocabulary and Conventions p.

How Emacs Evolves to Suit Your Needs p. 1 How Emacs Differs from Other Software p. 3 Software and the User p. 4 Emacs Vocabulary and Conventions p. Introduction p. xxix How Emacs Evolves to Suit Your Needs p. 1 How Emacs Differs from Other Software p. 3 Software and the User p. 4 Emacs Vocabulary and Conventions p. 7 Key Conventions p. 9 Emacs and

More information

Prefix COMP Course# 421 Title Unix for Programmers Units (3) 3 hours lecture per week 3 hours lecture per week

Prefix COMP Course# 421 Title Unix for Programmers Units (3) 3 hours lecture per week 3 hours lecture per week CALIFORNIA STATE UNIVERSITY CHANNEL ISLANDS COURSE MODIFICATION PROPOSAL Courses must be submitted by October 15, 2010, to make the next catalog (2011-12) production DATE (CHANGE DATE EACH TIME REVISED):

More information

Cloud-Based Certification. Gary Fluitt - Google

Cloud-Based Certification. Gary Fluitt - Google Cloud-Based Certification Gary Fluitt - Google Google Admin in natural habitat Goal OS independent Learns online Google s for answers Free No IT certifications Mobile Google s Goals Internet Scale Google

More information

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Scripting 1 Overview Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Rationale C++ isn't the best choice for all problems Complicated feature set, syntax Low-level,

More information

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory SCRIPTING Overview Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Reflection Bindings Serialization Performance, memory Rationale C++ isn't the best choice

More information

CSS: The Missing Manual PDF

CSS: The Missing Manual PDF CSS: The Missing Manual PDF CSS lets you create professional-looking websites, but learning its finer points can be trickyâ even for seasoned web developers. This fully updated edition provides the most

More information

University of Maine School of Computing and Information Science COS 470/570

University of Maine School of Computing and Information Science COS 470/570 University of Maine School of Computing and Information Science COS 470/570 Assignment 1: Lisp and Robot Familiarization Assigned 8/28 Due 9/13 This assignment is meant to familiarize you with the tools

More information

Magit-Popup User Manual

Magit-Popup User Manual Magit-Popup User Manual for version 2.12.2 (v2.12.2-6-gbd04ebd+1) Jonas Bernoulli Copyright (C) 2015-2018 Jonas Bernoulli You can redistribute this document and/or modify it under the

More information

CPS221 Lecture: Operating System Functions

CPS221 Lecture: Operating System Functions CPS221 Lecture: Operating System Functions Objectives 1. To overview key hardware concepts 2. To introduce the process concept 3. To discuss the various kinds of functionality of the OS last revised 8/25/11

More information

Introduction to Linux Overview and Some History

Introduction to Linux Overview and Some History Introduction to Linux Overview and Some History Computational Science and Engineering North Carolina A&T State University Instructor: Dr. K. M. Flurchick Email: kmflurch@ncat.edu Operating Systems and

More information

The Xemacs Editor. Overview

The Xemacs Editor. Overview The Xemacs Editor Editors are used to create and modify simple text files. The public domain editor emacs has achieved great popularity because of its many features and its wide availability. Emacs was

More information

GIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY

GIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY GIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY 1 WHAT IS VERSION CONTROL? Management of changes to documents like source code, scripts, text files Provides the ability to check documents in

More information

25. DECUS Symposium THE Application Development Environment for OpenVMS

25. DECUS Symposium THE Application Development Environment for OpenVMS NetBeans THE Application Development Environment for OpenVMS Sunil Kumaran, Thomas Siebold Agenda What is NetBeans some history Major Features / Demonstrations NetBeans on OpenVMS Questions 5/2/2002 DECUS

More information

Knit, Chisel, Hack: Crafting with Guile Scheme. Andy Wingo ~ wingolog.org

Knit, Chisel, Hack: Crafting with Guile Scheme. Andy Wingo ~ wingolog.org Knit, Chisel, Hack: Crafting with Guile Scheme Andy Wingo ~ wingo@igalia.com wingolog.org ~ @andywingo I love craft! Woodworking Gardening Grow-your-own Brew-your-own Knit-your-own Sew-your-own Roast-your-own

More information

entity tomove over backward forward character C-b C-f word M-b M-f line C-p C-n go to line beginning (or end) C-a C-e sentence M-a M-e paragraph M- M-

entity tomove over backward forward character C-b C-f word M-b M-f line C-p C-n go to line beginning (or end) C-a C-e sentence M-a M-e paragraph M- M- Starting Emacs To enter GNU Emacs 21, just type its name: emacs To read in a file to edit, see Files, below. Leaving Emacs suspend Emacs (or iconify it under X) exit Emacs permanently Files read afileinto

More information

Lab 1: Using Oz/Mozart IDE

Lab 1: Using Oz/Mozart IDE Lab 1: Using Oz/Mozart IDE February 5, 2009 Using Oz/Mozart can be done in 2 ways: 1. interactive programming with OPI (Oz Programming Interface) (oz) 2. compiling Oz programs with Oz compiler (ozc) and

More information

GNU Guix: Scheme as a uniform OS admin and deployment interface

GNU Guix: Scheme as a uniform OS admin and deployment interface GNU Guix: Scheme as a uniform OS admin and deployment interface Ludovic Courtès Commercial Users of Functional Programming 24 September 2016, Nara, Japan $ guix package -i gcc-toolchain coreutils sed

More information

Make Your Own Webquest!!!

Make Your Own Webquest!!! Make Your Own Webquest!!! 1. Do the following steps in MS Word first! 2. Save your Word.doc and all pictures in a folder on your flashdrive. 3. After completing all 6 steps below, copy and paste your webquest

More information

idris-mode: Idris interaction with emacs

idris-mode: Idris interaction with emacs idris-mode: Idris interaction with emacs Hannes Mehnert hannes@mehnert.org November 22, 2013 Abstract This document describes the interaction of the Idris compiler with the editor emacs, to facilitate

More information

Lab 3, Part 1: Using Oz/Mozart IDE

Lab 3, Part 1: Using Oz/Mozart IDE Lab 3, Part 1: Using Oz/Mozart IDE February 22, 2012 Using Oz/Mozart can be done in 2 ways: 1. interactive programming with OPI (Oz Programming Interface) (oz) 2. compiling Oz programs with Oz compiler

More information

Handout: Handy Computer Tools

Handout: Handy Computer Tools Handout: Handy Computer Tools T. Satogata: June 2011 USPAS Accelerator Physics June 13, 2011 This is a description of a few computational tools that I ve found to be very useful as a working physicist.

More information

1B1a Programming I Getting Started

1B1a Programming I Getting Started 1B1a Programming I Getting Started Agenda Definitions. What is programming? What is Java? Writing your first program. Classes and Objects. 1 2 Reading You should be reading chapters 1 & 2 of the text book.

More information

Linux at the Command Line Don Johnson of BU IS&T

Linux at the Command Line Don Johnson of BU IS&T Linux at the Command Line Don Johnson of BU IS&T We ll start with a sign in sheet. We ll end with a class evaluation. We ll cover as much as we can in the time allowed; if we don t cover everything, you

More information

An introduction to compiler construction and functional programming through the implementation of GNU epsilon

An introduction to compiler construction and functional programming through the implementation of GNU epsilon An introduction to compiler construction and functional programming through the implementation of GNU epsilon An LCR seminar LIPN - Universite Paris 13 Who I am and what I do here Introducing myself I

More information

A Byte of Python. Swaroop C H

A Byte of Python. Swaroop C H A Byte of Python Swaroop C H A Byte of Python Swaroop C H Copyright 2003-2005 Swaroop C H Abstract This book will help you to learn the Python programming language, whether you are new to computers or

More information

Igniting QuantLib on a Zeppelin

Igniting QuantLib on a Zeppelin Igniting QuantLib on a Zeppelin Andreas Pfadler, d-fine GmbH QuantLib UserMeeting, Düsseldorf, 7.12.2016 d-fine d-fine All rights All rights reserved reserved 0 Welcome Back!» An early stage of this work

More information

Introduc+on. General Information. General Information. General Information. General Information. General Information

Introduc+on. General Information. General Information. General Information. General Information. General Information Introduc+on IT244 - Introduc+on to Linux / Unix Instructor: Bo Sheng Location and Time S-3-143, Mon & Wed, 4:00 ~ 5:15pm Door code: 261359* Office Hours Science Center, S-3-167, Mon & Wed, 2 ~ 4pm TA office

More information

Text Editors for Programmers. Dr. Prasad Kulkarni Michael Jantz Jamie Robinson

Text Editors for Programmers. Dr. Prasad Kulkarni Michael Jantz Jamie Robinson Text Editors for Programmers Dr. Prasad Kulkarni Michael Jantz Jamie Robinson 1 Real Programmers 2 vim Based on vi vi written in 1976 and has become standard on Unix machines Basic design principles: Retains

More information

A Quick Introduction to Emacs. Jim Diamond CAR 409 Jodrey School of Computer Science Acadia University

A Quick Introduction to Emacs. Jim Diamond CAR 409 Jodrey School of Computer Science Acadia University A Quick Introduction to Emacs Jim Diamond CAR 409 Jodrey School of Computer Science Acadia University 1 Overview 2 Availability History Basic Concepts Psychoanalysis Built-In Help My Video Tutorial Keyboard

More information

Emacs manual:

Emacs manual: Emacs manual: http://www.gnu.org/manual/emacs-20.3/html_mono/emacs.html GNU Emacs Reference Card (for version 19) Starting Emacs To enter GNU Emacs 19, just type its name: emacs or emacs filename Leaving

More information

COMP1007 Principles of Programming

COMP1007 Principles of Programming Agenda COMP1007 Principles of Programming Definitions. What is programming? What is Java? Writing your first program. Classes and Objects. 3 Reading Program You should be reading chapters 1 & 2 of the

More information

CS4023 Week04 Lab Exercise

CS4023 Week04 Lab Exercise CS4023 Week04 Lab Exercise Lab Objective: We will use this lab to log in to our Linux accounts and to look at some simple programs that perform a few elementary system calls. By the end of the lab we will

More information

CS350 : Operating Systems. General Assignment Information

CS350 : Operating Systems. General Assignment Information CS350 : Operating Systems General Assignment Information 1 Introduction Assignments in CS350 are based on NachOS. NachOS is a workstation simulation, along with a simple operating system for the simulated

More information

Public Meeting Agenda Formatting Best Practices

Public Meeting Agenda Formatting Best Practices DEFINITIVE GUIDE Public Meeting Agenda Formatting Best Practices In this guide, we will first walk you through some best practices with text and images. Then, we will show you how to execute the best practices

More information

Mastering Linux by Paul S. Wang Appendix: The emacs Editor

Mastering Linux by Paul S. Wang Appendix: The emacs Editor Mastering Linux by Paul S. Wang Appendix: The emacs Editor The emacs editor originally was developed at the MIT Laboratory for Computer Science. As emacs gained popularity, it was ported to UNIX and Linux

More information

Voluntary Product Access Template (VPAT) Kronos webta 4.x

Voluntary Product Access Template (VPAT) Kronos webta 4.x Voluntary Product Access Template (VPAT) Kronos webta 4.x CHANGE RECORD DOCUMENT HISTORY Version Author (s) Revision Notes 05/03/2011 Ann Marie Kamensky Convert to Word template with Kronos branding and

More information

Introduction to Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Introduction to Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University Introduction to Operating Systems Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics What is OS? History of OS 2 What is OS? (1) Application

More information

zembly An open platform for iphone/social applications Prakash Narayan Sun Microsystems, Inc.

zembly An open platform for iphone/social applications Prakash Narayan Sun Microsystems, Inc. zembly An open platform for iphone/social applications Prakash Narayan Sun Microsystems, Inc. http://blogs.sun.com/pnarayan Prakash.Narayan@sun.com zembly embracing change A new world: Software development

More information

CS 326: Operating Systems. Lecture 1

CS 326: Operating Systems. Lecture 1 CS 326: Operating Systems Lecture 1 Welcome to CS 326! Glad to have you all in class! Lecture Information: Time: T, Th 9:55 11:40am Lab: M 4:45 6:20pm Room: LS G12 Course website: http://www.cs.usfca.edu/~mmalensek/cs326

More information

Linux shell scripting intro/review

Linux shell scripting intro/review Linux shell scripting intro/review David Morgan You should already know how to log in run programs at the command line use pipelines and redirection ( < > ) put jobs in the background ( & ) create and

More information

Chapter-3. Introduction to Unix: Fundamental Commands

Chapter-3. Introduction to Unix: Fundamental Commands Chapter-3 Introduction to Unix: Fundamental Commands What You Will Learn The fundamental commands of the Unix operating system. Everything told for Unix here is applicable to the Linux operating system

More information

GPU Offline Shader Compiler. Mali. User Guide. Version: 2.2. Copyright 2009 ARM. All rights reserved. ARM DUI 0513A (ID101409)

GPU Offline Shader Compiler. Mali. User Guide. Version: 2.2. Copyright 2009 ARM. All rights reserved. ARM DUI 0513A (ID101409) Mali GPU Offline Shader Compiler Version: 2.2 User Guide Copyright 2009 ARM. All rights reserved. ARM DUI 0513A () Mali GPU Offline Shader Compiler User Guide Copyright 2009 ARM. All rights reserved. Release

More information

There Will Be Code or EMACS, VHDL & Templates,

There Will Be Code or EMACS, VHDL & Templates, There Will Be Code or EMACS, VHDL & Templates, Nigel Gunton; September 2008, 2014 Depar tment of Engineering Design & Mathematics Grouping Prerequisites Courses Requirements Summar y Duration Individual

More information

Computer Networks Vim and Emacs. Seongjin Lee

Computer Networks Vim and Emacs. Seongjin Lee 2019-01 Computer Networks 407-202 Vim and Emacs Seongjin Lee Vim 2 Contents What is vi Modes of Vi Moving Around and Dele7ng in vi Replacing, Searching, and Subs7tu7ng in vi Undo and Redo in vi Simple

More information

Read & Download (PDF Kindle) The Art Of UNIX Programming

Read & Download (PDF Kindle) The Art Of UNIX Programming Read & Download (PDF Kindle) The Art Of UNIX Programming The Art of UNIX Programming poses the belief that understanding the unwritten UNIX engineering tradition and mastering its design patterns will

More information

The goal of this book is to teach you how to use Adobe Integrated

The goal of this book is to teach you how to use Adobe Integrated Clearing the AIR The goal of this book is to teach you how to use Adobe Integrated Runtime (AIR) to create desktop applications. You can use JavaScript or ActionScript to develop AIR applications, and

More information

Linux Desktop Pocket Guide Download Free (EPUB, PDF)

Linux Desktop Pocket Guide Download Free (EPUB, PDF) Linux Desktop Pocket Guide Download Free (EPUB, PDF) While Mac OS X garners all the praise from pundits, and Windows XP attracts all the viruses, Linux is quietly being installed on millions of desktops

More information

Introduction to writing GNU Emacs native modules Extending Emacs in C or other languages. Aurélien Aptel SUSE Labs / Samba team

Introduction to writing GNU Emacs native modules Extending Emacs in C or other languages. Aurélien Aptel SUSE Labs / Samba team Introduction to writing GNU Emacs native modules Extending Emacs in C or other languages Aurélien Aptel SUSE Labs / Samba team GNU Emacs Editor of the Emacs family Written in 1976 by

More information

Power Editing: Hoxie Ackerman. April 1, Building a Productive Editing Environment for Yourself

Power Editing: Hoxie Ackerman. April 1, Building a Productive Editing Environment for Yourself : Building a Productive Editing Environment for Yourself Hoxie Ackerman UC Berkeley Department of Statistics Student Productivity Seminar April 1, 2011 Goals of This Talk Goals of This Talk 1 Spark interest

More information

Shell Script Programming 2

Shell Script Programming 2 Shell Script Programming 2 David Morgan Useful capabilities parameter processing validation usage checking user input custom functions filenames decomposition, tempnames, random names action hinged on

More information

Ajax On Rails: Build Dynamic Web Applications With Ruby By Scott Raymond READ ONLINE

Ajax On Rails: Build Dynamic Web Applications With Ruby By Scott Raymond READ ONLINE Ajax On Rails: Build Dynamic Web Applications With Ruby By Scott Raymond READ ONLINE Let's take a look at how we can accomplish this with AJAX in Rails. Overall, I was quite surprised at how easy it is

More information

Chapter 3: Processes

Chapter 3: Processes Chapter 3: Processes Silberschatz, Galvin and Gagne 2013 Chapter 3: Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication

More information

Introduction to Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Introduction to Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University Introduction to Operating Systems Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Why OS? 2 What is an OS? Software that converts hardware into

More information

Introduction to Unix The Windows User perspective. Wes Frisby Kyle Horne Todd Johansen

Introduction to Unix The Windows User perspective. Wes Frisby Kyle Horne Todd Johansen Introduction to Unix The Windows User perspective Wes Frisby Kyle Horne Todd Johansen What is Unix? Portable, multi-tasking, and multi-user operating system Software development environment Hardware independent

More information

Getting Started with Python

Getting Started with Python Getting Started with Python Python is a general purpose, high level programming language that is used in a variety of application domains. The Python language has a very clear and expressive syntax as

More information

bigguyinabowtie.com Presentation can be found at bigguyinabowtie.com/google Things to Check Out

bigguyinabowtie.com Presentation can be found at bigguyinabowtie.com/google Things to Check Out Presentation can be found at /google Things to Check Out Websites ksuiteach.org seeedudifferently. com corecs.tech http://bit.ly/ bigguybowtievideo @bigguyinabowtie @bigguyinabowtie @bigguyinabowtie Idea

More information

MAKING OPEN SOURCE ROBOTICS APPROACHABLE -- THE FUTURE IS NOW! James Ketrenos Embedded Linux Conference, Dublin, 2015

MAKING OPEN SOURCE ROBOTICS APPROACHABLE -- THE FUTURE IS NOW! James Ketrenos Embedded Linux Conference, Dublin, 2015 MAKING OPEN SOURCE ROBOTICS APPROACHABLE -- THE FUTURE IS NOW! James Ketrenos I, ROBOT: A Pseudo History A little bit about me... Intel Open Source Technology Center Portland, Oregon Where are all the

More information

OPERATING SYSTEMS. Goals of the Course. This lecture will cover: This Lecture will also cover:

OPERATING SYSTEMS. Goals of the Course. This lecture will cover: This Lecture will also cover: OPERATING SYSTEMS This lecture will cover: Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S services This Lecture will

More information

Senthil Kumaran S

Senthil Kumaran S Senthil Kumaran S http://www.stylesen.org/ Agenda History Basics Control Flow Functions Modules History What is Python? Python is a general purpose, object-oriented, high level, interpreted language Created

More information

Sync Points in the Intel Gfx Driver. Jesse Barnes Intel Open Source Technology Center

Sync Points in the Intel Gfx Driver. Jesse Barnes Intel Open Source Technology Center Sync Points in the Intel Gfx Driver Jesse Barnes Intel Open Source Technology Center 1 Agenda History and other implementations Other I/O layers - block device ordering NV_fence, ARB_sync EGL_native_fence_sync,

More information

COSC243 Part 2: Operating Systems

COSC243 Part 2: Operating Systems COSC243 Part 2: Operating Systems Lecture 14: Introduction, and history of operating systems Zhiyi Huang Dept. of Computer Science, University of Otago Zhiyi Huang (Otago) COSC243 Lecture 14 1 / 27 General

More information

Lab 4: Interrupts and Realtime

Lab 4: Interrupts and Realtime Lab 4: Interrupts and Realtime Overview At this point, we have learned the basics of how to write kernel driver module, and we wrote a driver kernel module for the LCD+shift register. Writing kernel driver

More information

CPS221 Lecture: Operating System Functions

CPS221 Lecture: Operating System Functions CPS221 Lecture: Operating System Functions Objectives last revised 6/23/10 1. To overview key hardware concepts 2. To iintroduce the process concept 3. To discuss the various kinds of functionality of

More information

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview Today CSCI 4061 Introduction to s Instructor: Abhishek Chandra OS Evolution Unix Overview Unix Structure Shells and Utilities Calls and APIs 2 Evolution How did the OS evolve? Dependent on hardware and

More information

CptS 360 (System Programming) Unit 3: Development Tools

CptS 360 (System Programming) Unit 3: Development Tools CptS 360 (System Programming) Unit 3: Development Tools Bob Lewis School of Engineering and Applied Sciences Washington State University Spring, 2018 Motivation Using UNIX-style development tools lets

More information

Version Control with Git

Version Control with Git Version Control with Git Methods & Tools for Software Engineering (MTSE) Fall 2017 Prof. Arie Gurfinkel based on https://git-scm.com/book What is Version (Revision) Control A system for managing changes

More information

Free & Open Source Software: The Academic Future

Free & Open Source Software: The Academic Future Free & Open Source Software: The Academic Future Paul E. Johnson University of Kansas http://lark.cc.ku.edu/~pauljohn Presentation at Ukrainian National University of L'viv May 27, 2005

More information

Installing CEA on an Intel Mac

Installing CEA on an Intel Mac Installing CEA on an Intel Mac Jonah Zimmerman April 20, 2012 1 Introduction Chemical Equilibrium with Applications (CEA) is a computer program published by NASA Glenn with the purpose of calculating chemical

More information

SOFTWARE UNIT 1 PART B C O M P U T E R T E C H N O L O G Y ( S 1 O B J A N D O B J 3-2)

SOFTWARE UNIT 1 PART B C O M P U T E R T E C H N O L O G Y ( S 1 O B J A N D O B J 3-2) SOFTWARE UNIT 1 PART B C O M P U T E R T E C H N O L O G Y ( S 1 O B J 2 2-3 A N D O B J 3-2) DIGITAL LITERACY STANDARD 1 OBJECTIVE 3 Explore and demonstrate understanding of managing operating systems

More information

Introduction to Linux

Introduction to Linux Introduction to Linux University of Bristol - Advance Computing Research Centre 1 / 47 Operating Systems Program running all the time Interfaces between other programs and hardware Provides abstractions

More information

Intermediate Programming, Spring Misha Kazhdan

Intermediate Programming, Spring Misha Kazhdan 600.120 Intermediate Programming, Spring 2017 Misha Kazhdan Outline Unix/Linux command line Basics of the Emacs editor Compiling and running a simple C program Cloning a repository Connecting to ugrad

More information

Copyright 2007, GemStone Systems Inc. All Rights Reserved.

Copyright 2007, GemStone Systems Inc. All Rights Reserved. 1 But first, a Word from our Sponsors Some highlights since last year TimeZone patch for 6.x GemStone/S 64 Bit releases 1.1.7 to 1.1.14 2.0.4, 2.0.5 2.1.0 to 2.1.5 2.2.0 to 2.2.2 (August 2007) 2 GemStone

More information

How to Stay Safe on Public Wi-Fi Networks

How to Stay Safe on Public Wi-Fi Networks How to Stay Safe on Public Wi-Fi Networks Starbucks is now offering free Wi-Fi to all customers at every location. Whether you re clicking connect on Starbucks Wi-Fi or some other unsecured, public Wi-Fi

More information

Technical Brief Exporting a List of Device MAC Addresses from Xcalibur Global Document Version 1.0

Technical Brief Exporting a List of Device MAC Addresses from Xcalibur Global Document Version 1.0 Technical Brief Exporting a List of Device MAC Addresses from Xcalibur Global Document Version 1.0 August 2006 2006 Chip PC (UK) Ltd., Chip PC (Israel) Ltd. All rights reserved. The information contained

More information

http://xkcd.com/208/ 1. Review of pipes 2. Regular expressions 3. sed 4. Editing Files 5. Shell loops 6. Shell scripts cat seqs.fa >0! TGCAGGTATATCTATTAGCAGGTTTAATTTTGCCTGCACTTGGTTGGGTACATTATTTTAAGTGTATTTGACAAG!

More information

Mendeley quick start guide

Mendeley quick start guide Mendeley quick start guide UCL Library Services, Gower St., London WC1E 6BT 020 7679 7793 E-mail: library@ucl.ac.uk Web www.ucl.ac.uk/library/ Mendeley allows you to collect, manage, share and use references

More information

Saint Louis University. Intro to Linux and C. CSCI 2400/ ECE 3217: Computer Architecture. Instructors: David Ferry

Saint Louis University. Intro to Linux and C. CSCI 2400/ ECE 3217: Computer Architecture. Instructors: David Ferry Intro to Linux and C CSCI 2400/ ECE 3217: Computer Architecture Instructors: David Ferry 1 Overview Linux C Hello program in C Compiling 2 History of Linux Way back in the day: Bell Labs Unix Widely available

More information

RetroBSD and LiteBSD: Meet the Smallest BSDs. Brian Callahan New York City *BSD User Group July 2016 meeting

RetroBSD and LiteBSD: Meet the Smallest BSDs. Brian Callahan New York City *BSD User Group July 2016 meeting RetroBSD and LiteBSD: Meet the Smallest BSDs Brian Callahan New York City *BSD User Group July 2016 meeting First thing s first Interrupt me if you have questions. About me George continues

More information

Simplified CICD with Jenkins and Git on the ZeroStack Platform

Simplified CICD with Jenkins and Git on the ZeroStack Platform DATA SHEET Simplified CICD with Jenkins and Git on the ZeroStack Platform In the technical article we will walk through an end to end workflow of starting from virtually nothing and establishing a CICD

More information

STEAM Clown & Productions Copyright 2017 STEAM Clown. Page 1

STEAM Clown & Productions Copyright 2017 STEAM Clown. Page 1 What to add next time you are updating these slides Update slides to have more animation in the bullet lists Verify that each slide has stand alone speaker notes Page 1 Python 3 Introduction A Python class

More information

Why Discuss JavaScript? CS312: Programming Languages. Lecture 21: JavaScript. JavaScript Target. What s a Scripting Language?

Why Discuss JavaScript? CS312: Programming Languages. Lecture 21: JavaScript. JavaScript Target. What s a Scripting Language? Why Discuss JavaScript? CS312: Programming Languages Lecture 21: JavaScript Thomas Dillig JavaScript is very widely used and growing Any AJAX application heavily relies on JavaScript JavaScript also has

More information

Handout: Handy Computer Tools

Handout: Handy Computer Tools Handout: Handy Computer Tools T. Satogata: January 2017 USPAS Accelerator Physics January 2017 This is a description of a few computational tools that I ve found to be useful as a working physicist. This

More information

CS350 : Operating Systems. General Assignment Information

CS350 : Operating Systems. General Assignment Information CS350 : Operating Systems General Assignment Information 1 Introduction Assignments in CS350 are based on OS/161 (os161) running on System/161 (sys161). System/161 is a workstation simulation, and OS/161

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2016 Lecture 5 Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 User Operating System Interface - CLI CLI

More information

GOOGLE TIES MOBILE USABILITY ISSUES WITH YOUR WEBSITE RANKINGS GOOGLE NOW SHOWS SOCIAL PROFILES IN THE KNOWLEDGE PANEL

GOOGLE TIES MOBILE USABILITY ISSUES WITH YOUR WEBSITE RANKINGS GOOGLE NOW SHOWS SOCIAL PROFILES IN THE KNOWLEDGE PANEL Your Your Company Logo Logo GOOGLE TIES MOBILE USABILITY ISSUES WITH YOUR WEBSITE RANKINGS GOOGLE NOW SHOWS SOCIAL PROFILES IN THE KNOWLEDGE PANEL GOOGLE RECONSIDERATION REQUESTS DOCUMENTATION ADDS STEP-BY-STEP

More information

Functional Programming in Haskell for A level teachers

Functional Programming in Haskell for A level teachers Functional Programming in Haskell for A level teachers About this document Functional Programming is now part of the A level curriculum. This document is intended to get those who already have some programming

More information

Technology, E-Textbooks and BYOD Initiative at The Webb School

Technology, E-Textbooks and BYOD Initiative at The Webb School Technology, E-Textbooks and BYOD Initiative at The Webb School Does a student need his/her own email account? Yes, each student needs his/her own email account. Many digital text books are delivered to

More information

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement. CSCE 315: Android Lectures (1/2) Dr. Jaerock Kwon App Development for Mobile Devices Jaerock Kwon, Ph.D. Assistant Professor in Computer Engineering App Development for Mobile Devices Jaerock Kwon, Ph.D.

More information