This document outlines the agenda for a technical lab meeting on topics in TEX and LATEX. The talk will cover TEX engines, selected LATEX packages including microtype, siunitx, and todonotes, programming tools for TEX/LATEX like conditionals and patching, Overleaf updates, and references. Attendees will learn about typesetting documents, adding notes, formatting numbers and units, programming techniques, and compiling on Overleaf.
This document discusses Veriloggen, a Python framework for generating Verilog HDL code from Python. It allows designing hardware at the register-transfer level using Python by mapping Python constructs to Verilog modules, always blocks, wires, and other Verilog constructs. Veriloggen includes modules for RTL generation (Core), connecting Python threads to finite state machines (Thread), and defining streaming hardware (Stream). It aims to support a "Veriloggen for DSL X" approach to create domain-specific hardware description languages in Python.
How to Build a Telegraf Plugin by Noah CrowleyInfluxData
Telegraf is a plugin-driven server agent for collecting & reporting metrics and there are many plugins already written to source data from a variety of services and systems. However, there may be instances where you need to write your own plugin to source data from your particular systems. In this InfluxDays NYC 2019 session, Noah Crowley will provide you with the steps on how to write your own Telegraf plugin. Writing your own Telegraf plugin will require an understanding of the Go programming language.
Telegraf is a plugin-driven server agent for collecting & reporting metrics and there are many plugins already written to source data from a variety of services and systems. However, there may be instances where you need to write your own plugin to source data from your particular systems. In this session, Noah will provide you with the steps on how to write your own Telelgraf plugin. This will require an understanding of the Go programming language.
Developing Your Own Flux Packages by David McKay | Head of Developer Relation...InfluxData
Flux is easy to contribute to, and it is easy to share functions and libraries of Flux code with other developers. Although there are many functions in the language, the true power of Flux is its ability to be extended with custom functions. In this session, David will show you how to write your own custom function to perform some new analytics.
1. The document discusses digital signal processing concepts and exercises using Python packages like NumPy, SciPy and Matplotlib.
2. It provides instructions on installing the required software packages for Windows, Ubuntu Linux and Android systems.
3. A list of 20 exercises is given covering topics like continuous and discrete sine waves, convolution, DFT using fft and own function, windowing techniques and design of FIR and IIR filters.
Jenkins X - automated CI/CD solution for cloud native applications on KubernetesTed Won
Let's have a look at CI/CD best practices to help developers on the cloud platform Kubernetes, which is becoming an industry standard, as we move to the era of cloud native application development, which is about to come.
The document discusses the convergence of two test systems called IQPT and XAPQT. It provides details on their differences historically but the goal of convergence, which is to have the same executable running on all tools to allow for flexible development and consistent quality. It describes how convergence is achieved through configurable building blocks and controlled change processes.
The document discusses the convergence of two test systems called IQPT and XAPQT. It provides details on their different hardware configurations and software components. The goal of convergence is to have the same executable running on all tools to reduce costs and improve flexibility. Controlled changes and configuration files allow variations while maintaining a common code base.
This document discusses Veriloggen, a Python framework for generating Verilog HDL code from Python. It allows designing hardware at the register-transfer level using Python by mapping Python constructs to Verilog modules, always blocks, wires, and other Verilog constructs. Veriloggen includes modules for RTL generation (Core), connecting Python threads to finite state machines (Thread), and defining streaming hardware (Stream). It aims to support a "Veriloggen for DSL X" approach to create domain-specific hardware description languages in Python.
How to Build a Telegraf Plugin by Noah CrowleyInfluxData
Telegraf is a plugin-driven server agent for collecting & reporting metrics and there are many plugins already written to source data from a variety of services and systems. However, there may be instances where you need to write your own plugin to source data from your particular systems. In this InfluxDays NYC 2019 session, Noah Crowley will provide you with the steps on how to write your own Telegraf plugin. Writing your own Telegraf plugin will require an understanding of the Go programming language.
Telegraf is a plugin-driven server agent for collecting & reporting metrics and there are many plugins already written to source data from a variety of services and systems. However, there may be instances where you need to write your own plugin to source data from your particular systems. In this session, Noah will provide you with the steps on how to write your own Telelgraf plugin. This will require an understanding of the Go programming language.
Developing Your Own Flux Packages by David McKay | Head of Developer Relation...InfluxData
Flux is easy to contribute to, and it is easy to share functions and libraries of Flux code with other developers. Although there are many functions in the language, the true power of Flux is its ability to be extended with custom functions. In this session, David will show you how to write your own custom function to perform some new analytics.
1. The document discusses digital signal processing concepts and exercises using Python packages like NumPy, SciPy and Matplotlib.
2. It provides instructions on installing the required software packages for Windows, Ubuntu Linux and Android systems.
3. A list of 20 exercises is given covering topics like continuous and discrete sine waves, convolution, DFT using fft and own function, windowing techniques and design of FIR and IIR filters.
Jenkins X - automated CI/CD solution for cloud native applications on KubernetesTed Won
Let's have a look at CI/CD best practices to help developers on the cloud platform Kubernetes, which is becoming an industry standard, as we move to the era of cloud native application development, which is about to come.
The document discusses the convergence of two test systems called IQPT and XAPQT. It provides details on their differences historically but the goal of convergence, which is to have the same executable running on all tools to allow for flexible development and consistent quality. It describes how convergence is achieved through configurable building blocks and controlled change processes.
The document discusses the convergence of two test systems called IQPT and XAPQT. It provides details on their different hardware configurations and software components. The goal of convergence is to have the same executable running on all tools to reduce costs and improve flexibility. Controlled changes and configuration files allow variations while maintaining a common code base.
Modern Release Engineering in a Nutshell - Why Researchers should Care!Bram Adams
Invited talk at the Leaders of Tomorrow Symposium of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2016).
The presentation (and its accompanying paper, see http://mcis.polymtl.ca/publications/2016/fose.pdf) explain the basics of release engineering pipelines, common challenges industry is facing as well as pitfalls software engineering researchers are falling into.
Speakers are Bram Adams (MCIS, http://mcis.polymtl.ca) and Shane McIntosh (McGill University, http://shanemcintosh.org).
A video-taped version of the talk will be available soon at https://www.youtube.com/channel/UCL8yG6qpHk7V66l1Jt3aZrA/featured.
Slides that were presented during the webrtc Qt Cmake tutorial at IIT-RTC in October 2017 in Chicago. The slides are not yet complete, and will be updated later.
The document provides an agenda for a seasoned developers track workshop. The agenda includes sessions on InfluxDB query language (IFQL), writing Telegraf plugins, using InfluxDB for open tracing, advanced Kapacitor techniques, setting up InfluxData for IoT, and database orchestration. There will also be breakfast, lunch, breaks and pizza/beer.
The document summarizes two industrial experiences using AI for software engineering. It describes using an AI system called Ampyfier to automatically amplify test cases, which improved test coverage and mutation scores. It also discusses using AI to classify bug reports and predict factors like who should fix the bug and how long it may take. The presentation concludes by discussing using AI to assist with planning poker estimations and providing explainable AI for practitioner validation.
The document discusses setting up continuous integration for a JavaScript project using Jenkins. It describes configuring Jenkins to run unit tests with RhinoUnit after checking out the code from a GitHub repository. Jenkins fetches the latest code, runs the unit tests via an Ant target, and reports the results, allowing for continuous integration and automated testing of the JavaScript project.
Accelerated .NET Memory Dump Analysis training public slidesDmitry Vostokov
This document provides an overview and training materials for analyzing .NET memory dumps. The training goals are to review fundamentals, learn how to analyze process dumps, learn necessary WinDbg commands in context, and cover CLR 4 on x86 and x64. The training covers fundamentals of memory spaces, user/managed space, types/assemblies/modules, process threads, and provides examples of stack traces and commands. It also outlines practice exercises analyzing different memory dumps to diagnose issues like exceptions, deadlocks, leaks and corruption.
The Ring programming language version 1.9 book - Part 16 of 210Mahmoud Samir Fayed
This document summarizes the new features and changes in Ring 1.5.1, 1.5.2, and 1.5.3. Some key updates include improved documentation, fixes to the standard library and RingVM, new 3D graphics samples using OpenGL, and enhancements to the form designer and Ring notepad editor.
Report contains digital and analog design flow procedures in detail, working, Simulation and Synthesize mapped output. Full custom Schematic and layout design by using virtuoso encounter cadence tool.
"Industrial Internet IoT bootcamp" meetup, 11-5-2015 hosted by GE Digital at HackerDojo. Discussing topics ranging from IoT architecture to connectivity and protocols, cyber security, data science and industrial UX design.
Modules and Scripts- Python Assignment HelpAnderson Silva
This slide explains the working of modules and scripts.
How to run a script in a shell. For reusability , how to use modules. How to convert a script into modules. For more assistance on python assignment, please visit http://www.needassignmenthelp.com/python-assignment
Continuous Delivery and Automated Operations on k8s with keptnAndreas Grabner
Slidedeck from Vienna DevOps & Security Meetup. This talk is keptn - an open source event driven control plane for continuous delivery and automated operations for kubernetes
Template driven code generation tool, fore real time and safety critical systems.
API message formating and serialisation.
Template driven source code generator for any language : Ada, C, C#, Java, ...
Dart's popularity has surged in the past few years, as it's the language behind Flutter - Google's cross platform front end framework. That's now driving a notion of 'Full Stack Dart', where if you've spent time learning Dart for the front end, why not also use it for the back end.
You can find the video presentation here: http://youtu.be/VhVjCnF-Y0M
Ron Ravid and Grégoire Sage cover the Overlay technique and how to load parts of code from resources.
Day 2 - Video 4
Report contains digital and analog design flow procedures in detail, working, Simulation and Synthesize mapped output. Full custom Schematic and layout design by using virtuoso encounter cadence tool.
IUA 2001 Creative Techniques for Application TuningGary Cherlet
Some different approaches to tuning IDMS-DB/DC applications which ought to be of interest to project leeaders, team leaders, and application developers.
Free GitOps Workshop + Intro to Kubernetes & GitOpsWeaveworks
Follow along in this free workshop and experience GitOps!
AGENDA:
Welcome - Tamao Nakahara, Head of DX (Weaveworks)
Introduction to Kubernetes & GitOps - Mark Emeis, Principal Engineer (Weaveworks)
Weave Gitops Overview - Tamao Nakahara
Free Gitops Workshop - David Harris, Product Manager (Weaveworks)
If you're new to Kubernetes and GitOps, we'll give you a brief introduction to both and how GitOps is the natural evolution of Kubernetes.
Weave GitOps Core is a continuous delivery product to run apps in any Kubernetes. It is free and open source, and you can get started today!
https://www.weave.works/product/gitops-core
If you’re stuck, also come talk to us at our Slack channel! #weave-gitops http://bit.ly/WeaveGitOpsSlack (If you need to invite yourself to the Slack, visit https://slack.weave.works/)
Fall 2016 Insurance Case Study – Finance 360Loss ControlLoss.docxlmelaine
The document provides instructions for a coursework assignment on analyzing loss control policies of an S&P 500 company. Students are asked to select a company and analyze its policies focusing on environmental loss prevention, catastrophic loss prevention, or employee-related risk management. The analysis should address the likelihood and potential impacts of losses, as well as the company's loss control activities. Requirements include an 8-12 page paper with discussion of the topic areas, works cited, and any attachments. The paper is due by the deadline for extra credit activities in the course.
Yannis Zarkadas. Enterprise data science workflows on kubeflowMarynaHoldaieva
This document discusses using GitOps and multi-tenancy to provide an enterprise data science experience on Kubeflow. It describes how to deploy and manage Kubeflow using GitOps to simplify operations and accelerate time to production. GitOps allows storing all configuration in Git for versioning, rollbacks, and collaboration. Kustomize is used to manage configurations and integrate changes from upstream Kubeflow repositories while allowing customizations. This provides reproducibility, isolation of tenants, and easy upgrades in a production-ready Kubeflow cluster.
GNU Parallel: Lab meeting—technical talkHoffman Lab
The document summarizes an upcoming lab meeting technical talk on GNU Parallel, a shell tool for executing jobs in parallel. The talk will cover why GNU Parallel is useful, basic examples and syntax from its tutorial, additional advanced syntax for various tasks, recently added features since 2020, and more examples from the tutorial and the speaker's own use of GNU Parallel.
This document summarizes a new technique and Python package called TCRpower for quantifying the detection power of T-cell receptor sequencing methods using spike-in standards. TCRpower uses a negative binomial model to estimate detection probabilities of target T-cell receptors based on sequencing read counts. It calibrates this model using spike-in controls containing known T-cell receptor sequences added at defined concentrations. Results from applying TCRpower to PCR-based T-cell receptor sequencing data show it can reliably detect clonotypes down to a frequency of 10-6 but has higher variability for rarer clonotypes below 300 per million RNA. TCRpower improves method selection, optimization and reproducibility for T-cell receptor sequencing.
More Related Content
Similar to Topics in TeX and LaTeX: Selected packages, programming, and Overleaf updates
Modern Release Engineering in a Nutshell - Why Researchers should Care!Bram Adams
Invited talk at the Leaders of Tomorrow Symposium of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2016).
The presentation (and its accompanying paper, see http://mcis.polymtl.ca/publications/2016/fose.pdf) explain the basics of release engineering pipelines, common challenges industry is facing as well as pitfalls software engineering researchers are falling into.
Speakers are Bram Adams (MCIS, http://mcis.polymtl.ca) and Shane McIntosh (McGill University, http://shanemcintosh.org).
A video-taped version of the talk will be available soon at https://www.youtube.com/channel/UCL8yG6qpHk7V66l1Jt3aZrA/featured.
Slides that were presented during the webrtc Qt Cmake tutorial at IIT-RTC in October 2017 in Chicago. The slides are not yet complete, and will be updated later.
The document provides an agenda for a seasoned developers track workshop. The agenda includes sessions on InfluxDB query language (IFQL), writing Telegraf plugins, using InfluxDB for open tracing, advanced Kapacitor techniques, setting up InfluxData for IoT, and database orchestration. There will also be breakfast, lunch, breaks and pizza/beer.
The document summarizes two industrial experiences using AI for software engineering. It describes using an AI system called Ampyfier to automatically amplify test cases, which improved test coverage and mutation scores. It also discusses using AI to classify bug reports and predict factors like who should fix the bug and how long it may take. The presentation concludes by discussing using AI to assist with planning poker estimations and providing explainable AI for practitioner validation.
The document discusses setting up continuous integration for a JavaScript project using Jenkins. It describes configuring Jenkins to run unit tests with RhinoUnit after checking out the code from a GitHub repository. Jenkins fetches the latest code, runs the unit tests via an Ant target, and reports the results, allowing for continuous integration and automated testing of the JavaScript project.
Accelerated .NET Memory Dump Analysis training public slidesDmitry Vostokov
This document provides an overview and training materials for analyzing .NET memory dumps. The training goals are to review fundamentals, learn how to analyze process dumps, learn necessary WinDbg commands in context, and cover CLR 4 on x86 and x64. The training covers fundamentals of memory spaces, user/managed space, types/assemblies/modules, process threads, and provides examples of stack traces and commands. It also outlines practice exercises analyzing different memory dumps to diagnose issues like exceptions, deadlocks, leaks and corruption.
The Ring programming language version 1.9 book - Part 16 of 210Mahmoud Samir Fayed
This document summarizes the new features and changes in Ring 1.5.1, 1.5.2, and 1.5.3. Some key updates include improved documentation, fixes to the standard library and RingVM, new 3D graphics samples using OpenGL, and enhancements to the form designer and Ring notepad editor.
Report contains digital and analog design flow procedures in detail, working, Simulation and Synthesize mapped output. Full custom Schematic and layout design by using virtuoso encounter cadence tool.
"Industrial Internet IoT bootcamp" meetup, 11-5-2015 hosted by GE Digital at HackerDojo. Discussing topics ranging from IoT architecture to connectivity and protocols, cyber security, data science and industrial UX design.
Modules and Scripts- Python Assignment HelpAnderson Silva
This slide explains the working of modules and scripts.
How to run a script in a shell. For reusability , how to use modules. How to convert a script into modules. For more assistance on python assignment, please visit http://www.needassignmenthelp.com/python-assignment
Continuous Delivery and Automated Operations on k8s with keptnAndreas Grabner
Slidedeck from Vienna DevOps & Security Meetup. This talk is keptn - an open source event driven control plane for continuous delivery and automated operations for kubernetes
Template driven code generation tool, fore real time and safety critical systems.
API message formating and serialisation.
Template driven source code generator for any language : Ada, C, C#, Java, ...
Dart's popularity has surged in the past few years, as it's the language behind Flutter - Google's cross platform front end framework. That's now driving a notion of 'Full Stack Dart', where if you've spent time learning Dart for the front end, why not also use it for the back end.
You can find the video presentation here: http://youtu.be/VhVjCnF-Y0M
Ron Ravid and Grégoire Sage cover the Overlay technique and how to load parts of code from resources.
Day 2 - Video 4
Report contains digital and analog design flow procedures in detail, working, Simulation and Synthesize mapped output. Full custom Schematic and layout design by using virtuoso encounter cadence tool.
IUA 2001 Creative Techniques for Application TuningGary Cherlet
Some different approaches to tuning IDMS-DB/DC applications which ought to be of interest to project leeaders, team leaders, and application developers.
Free GitOps Workshop + Intro to Kubernetes & GitOpsWeaveworks
Follow along in this free workshop and experience GitOps!
AGENDA:
Welcome - Tamao Nakahara, Head of DX (Weaveworks)
Introduction to Kubernetes & GitOps - Mark Emeis, Principal Engineer (Weaveworks)
Weave Gitops Overview - Tamao Nakahara
Free Gitops Workshop - David Harris, Product Manager (Weaveworks)
If you're new to Kubernetes and GitOps, we'll give you a brief introduction to both and how GitOps is the natural evolution of Kubernetes.
Weave GitOps Core is a continuous delivery product to run apps in any Kubernetes. It is free and open source, and you can get started today!
https://www.weave.works/product/gitops-core
If you’re stuck, also come talk to us at our Slack channel! #weave-gitops http://bit.ly/WeaveGitOpsSlack (If you need to invite yourself to the Slack, visit https://slack.weave.works/)
Fall 2016 Insurance Case Study – Finance 360Loss ControlLoss.docxlmelaine
The document provides instructions for a coursework assignment on analyzing loss control policies of an S&P 500 company. Students are asked to select a company and analyze its policies focusing on environmental loss prevention, catastrophic loss prevention, or employee-related risk management. The analysis should address the likelihood and potential impacts of losses, as well as the company's loss control activities. Requirements include an 8-12 page paper with discussion of the topic areas, works cited, and any attachments. The paper is due by the deadline for extra credit activities in the course.
Yannis Zarkadas. Enterprise data science workflows on kubeflowMarynaHoldaieva
This document discusses using GitOps and multi-tenancy to provide an enterprise data science experience on Kubeflow. It describes how to deploy and manage Kubeflow using GitOps to simplify operations and accelerate time to production. GitOps allows storing all configuration in Git for versioning, rollbacks, and collaboration. Kustomize is used to manage configurations and integrate changes from upstream Kubeflow repositories while allowing customizations. This provides reproducibility, isolation of tenants, and easy upgrades in a production-ready Kubeflow cluster.
GNU Parallel: Lab meeting—technical talkHoffman Lab
The document summarizes an upcoming lab meeting technical talk on GNU Parallel, a shell tool for executing jobs in parallel. The talk will cover why GNU Parallel is useful, basic examples and syntax from its tutorial, additional advanced syntax for various tasks, recently added features since 2020, and more examples from the tutorial and the speaker's own use of GNU Parallel.
This document summarizes a new technique and Python package called TCRpower for quantifying the detection power of T-cell receptor sequencing methods using spike-in standards. TCRpower uses a negative binomial model to estimate detection probabilities of target T-cell receptors based on sequencing read counts. It calibrates this model using spike-in controls containing known T-cell receptor sequences added at defined concentrations. Results from applying TCRpower to PCR-based T-cell receptor sequencing data show it can reliably detect clonotypes down to a frequency of 10-6 but has higher variability for rarer clonotypes below 300 per million RNA. TCRpower improves method selection, optimization and reproducibility for T-cell receptor sequencing.
Efficient querying of genomic reference databases with ggetHoffman Lab
gget is a free, open-source command-line tool and Python package for efficiently querying genomic reference databases. It allows users to retrieve gene and transcript sequences, search for genes, find correlated genes from expression databases, enrich gene sets in pathways and ontologies, and more. gget also integrates tools for sequence alignment, BLAST/BLAT searches, and protein structure prediction with AlphaFold.
The WashU Epigenome Browser is an online tool for exploring epigenomic data. It was recently updated in 2022 with new features like dynamic tracks that allow users to overlay additional data on top of existing tracks. The meeting covered a live demo of the browser and directed attendees to its documentation and dynamic tracks feature page to learn more.
Wireguard: A Virtual Private Network TunnelHoffman Lab
Wireguard is a simple yet secure VPN tunnel that can provide access to an entire private network rather than just a single machine. It runs on Linux, Windows, macOS, and phones. With Wireguard, you create a virtual network interface and cryptographic key pair, share your public key, and add the public keys of networks you want to access. This allows you to securely connect your device to the private network and access resources like network attached storage from anywhere via an encrypted single point of access.
Plotting heatmap with matplotlib/seabornHoffman Lab
The document describes several methods for creating heatmaps using the matplotlib and seaborn Python libraries. It provides code examples for creating basic heatmaps with matplotlib and seaborn, heatmaps with labels and annotations using seaborn, combining multiple heatmaps, and manually creating heatmaps with matplotlib by adding colored rectangles. The final sections provide an example of creating a heatmap with two colors and adding polygons manually.
Go Get Data (GGD) is a genomics data management system that provides access to processed and curated genomic data files. It allows users to create "data recipes" that define genomic data files and their metadata. These recipes are used to generate data packages that can be installed and their files accessed via environment variables. GGD also supports finding, installing, uninstalling, and listing installed data packages.
The document discusses fastp, an ultra-fast all-in-one FASTQ preprocessor. Fastp performs adapter trimming, quality trimming, base correction, polyG/polyX tail trimming, and can handle UMIs. It is very fast due to being written in C++ and multi-threaded. Fastp outputs metrics that can be integrated into MultiQC reports. The document provides examples of fastp commands and usage with GNU Parallel for processing multiple samples simultaneously.
R markdown allows connecting data, code, and text into reports, presentations, and other documents. It works with R, Python, and Bash code. The rmdformats package creates clean HTML documents from R markdown files using different template designs like "readthedown" and "docute". Templates allow formatting code and content into pages, tables of contents, and other features. Parameters control template features such as figure sizes and code folding. Resources for learning more about R markdown and rmdformats were also provided.
This document discusses various file searching tools. It introduces grep for searching files using regular expressions. Faster alternatives to grep like Ag, Ack, and Ripgrep are presented. The document also covers finding files using find or fd, fuzzy filtering with FZF, code searching with ctags or language servers, and summarizes to consider faster tools when possible and leverage editor plugins for code context.
The document discusses Better BibTeX (BBT), an add-on for the desktop version of Zotero. BBT improves on the standard BibTeX file export from Zotero by handling key formatting, duplicates, special characters, and journal abbreviations to produce cleaner BibTeX files that are suitable for use in LaTeX documents on platforms like Overleaf.
Bioawk is a tool that extends GNU awk to facilitate working with biological file formats like FASTA, FASTQ, SAM, BED, GFF, and VCF. It directly reads gzipped files and treats spanning sequences as single records. Some key functions added in Bioawk include calculating GC content, reversing/reverse complementing sequences, and working with quality values. Bioawk allows for convenient parsing, manipulation and statistical analysis of genomic data.
This document discusses terminals and shells. It defines that a shell is a program that interprets commands from a user and executes those commands, while a terminal is a physical device for displaying output and reading input. It provides a brief history of terminals, from telexes and teletypewriters to modern terminal emulators. It also covers terminal configuration, customization, multiplexing using software like tmux and screen, and pseudoterminals. Finally, it discusses different shells, how to choose a shell, shell modes of operation, and shell configuration files like bashrc and profiles.
This document discusses molecular biology concepts for computer scientists and tools for creating glossaries and displaying acronyms. It introduces BioRender, a tool for creating biological diagrams and illustrations. It then evaluates different LaTeX packages for creating glossaries and displaying acronyms, finding that the glossaries-extra package allows for creating both a glossary and acronyms. It concludes that BioRender is easy to use and has a useful icon library, and that glossaries-extra is effective for defining terms and acronyms.
Linters in R provides a 3 sentence summary of the document:
The document discusses the R package lintr, which checks R code for adherence to style guidelines, syntax errors, and possible semantic issues. It describes how to install lintr for use with RStudio, Emacs, and Vim and configure which checks or "linters" are applied. The document also gives examples of what lintr checks for, such as syntax, formatting, code quality, and provides information on customizing lintr using a project-specific configuration file.
BioSyntax: syntax highlighting for computational biologyHoffman Lab
bioSyntax is syntax highlighting software for computational biology. It highlights nucleotides, amino acids, and quality scores in common file formats used in bioinformatics like FASTA, FASTQ, SAM, BAM, VCF, GTF and custom formats. bioSyntax works in many text editors and terminals to help visualize and interpret genomic data. It supports common color schemes and allows customizing colors for specific nucleotides, amino acids or quality scores to highlight features of interest in sequences and alignments.
This document provides an overview and introduction to using the version control system Git. It covers basic Git concepts and operations including configuration, the three main states files can be in, committing changes, viewing history and logs, branching, merging, rebasing, tagging, and collaborating remotely. The document also discusses some internals of Git including how objects are stored and how Git and other version control systems originated.
The document discusses the UCSC Genome Browser, an online tool for viewing and interacting with genomic data. It allows users to view multiple data sources simultaneously for a genomic region across many organisms. The document covers basic usage, uploading temporary custom tracks, creating permanent track hubs to host data, and sharing views using saved sessions. Track hubs and sessions allow sharing genomic views and custom data without time limits.
MultiQC: summarize analysis results for multiple tools and samples in a singl...Hoffman Lab
MultiQC is a tool that aggregates bioinformatics quality control (QC) results from different tools into a single HTML report. It currently supports 73 tools and can integrate QC metrics from preprocessing, alignment, and post-alignment stages. MultiQC generates interactive plots and tables in an customizable report to allow users to compare QC metrics across multiple samples and tools in an flexible manner.
Esquisse is an R package called dreamRs that provides an interactive graphical user interface for creating ggplot2 graphs. The interface allows users to build plots by selecting aesthetic mappings and geoms directly in the UI without writing any code. dreamRs can be launched from within R or installed directly from GitHub, and it offers various customization options for adjusting plot properties through the visual interface.
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...DanBrown980551
This LF Energy webinar took place June 20, 2024. It featured:
-Alex Thornton, LF Energy
-Hallie Cramer, Google
-Daniel Roesler, UtilityAPI
-Henry Richardson, WattTime
In response to the urgency and scale required to effectively address climate change, open source solutions offer significant potential for driving innovation and progress. Currently, there is a growing demand for standardization and interoperability in energy data and modeling. Open source standards and specifications within the energy sector can also alleviate challenges associated with data fragmentation, transparency, and accessibility. At the same time, it is crucial to consider privacy and security concerns throughout the development of open source platforms.
This webinar will delve into the motivations behind establishing LF Energy’s Carbon Data Specification Consortium. It will provide an overview of the draft specifications and the ongoing progress made by the respective working groups.
Three primary specifications will be discussed:
-Discovery and client registration, emphasizing transparent processes and secure and private access
-Customer data, centering around customer tariffs, bills, energy usage, and full consumption disclosure
-Power systems data, focusing on grid data, inclusive of transmission and distribution networks, generation, intergrid power flows, and market settlement data
The Microsoft 365 Migration Tutorial For Beginner.pptxoperationspcvita
This presentation will help you understand the power of Microsoft 365. However, we have mentioned every productivity app included in Office 365. Additionally, we have suggested the migration situation related to Office 365 and how we can help you.
You can also read: https://www.systoolsgroup.com/updates/office-365-tenant-to-tenant-migration-step-by-step-complete-guide/
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsDianaGray10
Join us to learn how UiPath Apps can directly and easily interact with prebuilt connectors via Integration Service--including Salesforce, ServiceNow, Open GenAI, and more.
The best part is you can achieve this without building a custom workflow! Say goodbye to the hassle of using separate automations to call APIs. By seamlessly integrating within App Studio, you can now easily streamline your workflow, while gaining direct access to our Connector Catalog of popular applications.
We’ll discuss and demo the benefits of UiPath Apps and connectors including:
Creating a compelling user experience for any software, without the limitations of APIs.
Accelerating the app creation process, saving time and effort
Enjoying high-performance CRUD (create, read, update, delete) operations, for
seamless data management.
Speakers:
Russell Alfeche, Technology Leader, RPA at qBotic and UiPath MVP
Charlie Greenberg, host
In our second session, we shall learn all about the main features and fundamentals of UiPath Studio that enable us to use the building blocks for any automation project.
📕 Detailed agenda:
Variables and Datatypes
Workflow Layouts
Arguments
Control Flows and Loops
Conditional Statements
💻 Extra training through UiPath Academy:
Variables, Constants, and Arguments in Studio
Control Flow in Studio
What is an RPA CoE? Session 2 – CoE RolesDianaGray10
In this session, we will review the players involved in the CoE and how each role impacts opportunities.
Topics covered:
• What roles are essential?
• What place in the automation journey does each role play?
Speaker:
Chris Bolin, Senior Intelligent Automation Architect Anika Systems
How information systems are built or acquired puts information, which is what they should be about, in a secondary place. Our language adapted accordingly, and we no longer talk about information systems but applications. Applications evolved in a way to break data into diverse fragments, tightly coupled with applications and expensive to integrate. The result is technical debt, which is re-paid by taking even bigger "loans", resulting in an ever-increasing technical debt. Software engineering and procurement practices work in sync with market forces to maintain this trend. This talk demonstrates how natural this situation is. The question is: can something be done to reverse the trend?
ScyllaDB is making a major architecture shift. We’re moving from vNode replication to tablets – fragments of tables that are distributed independently, enabling dynamic data distribution and extreme elasticity. In this keynote, ScyllaDB co-founder and CTO Avi Kivity explains the reason for this shift, provides a look at the implementation and roadmap, and shares how this shift benefits ScyllaDB users.
In the realm of cybersecurity, offensive security practices act as a critical shield. By simulating real-world attacks in a controlled environment, these techniques expose vulnerabilities before malicious actors can exploit them. This proactive approach allows manufacturers to identify and fix weaknesses, significantly enhancing system security.
This presentation delves into the development of a system designed to mimic Galileo's Open Service signal using software-defined radio (SDR) technology. We'll begin with a foundational overview of both Global Navigation Satellite Systems (GNSS) and the intricacies of digital signal processing.
The presentation culminates in a live demonstration. We'll showcase the manipulation of Galileo's Open Service pilot signal, simulating an attack on various software and hardware systems. This practical demonstration serves to highlight the potential consequences of unaddressed vulnerabilities, emphasizing the importance of offensive security practices in safeguarding critical infrastructure.
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsScyllaDB
ScyllaDB monitoring provides a lot of useful information. But sometimes it’s not easy to find the root of the problem if something is wrong or even estimate the remaining capacity by the load on the cluster. This talk shares our team's practical tips on: 1) How to find the root of the problem by metrics if ScyllaDB is slow 2) How to interpret the load and plan capacity for the future 3) Compaction strategies and how to choose the right one 4) Important metrics which aren’t available in the default monitoring setup.
Must Know Postgres Extension for DBA and Developer during MigrationMydbops
Mydbops Opensource Database Meetup 16
Topic: Must-Know PostgreSQL Extensions for Developers and DBAs During Migration
Speaker: Deepak Mahto, Founder of DataCloudGaze Consulting
Date & Time: 8th June | 10 AM - 1 PM IST
Venue: Bangalore International Centre, Bangalore
Abstract: Discover how PostgreSQL extensions can be your secret weapon! This talk explores how key extensions enhance database capabilities and streamline the migration process for users moving from other relational databases like Oracle.
Key Takeaways:
* Learn about crucial extensions like oracle_fdw, pgtt, and pg_audit that ease migration complexities.
* Gain valuable strategies for implementing these extensions in PostgreSQL to achieve license freedom.
* Discover how these key extensions can empower both developers and DBAs during the migration process.
* Don't miss this chance to gain practical knowledge from an industry expert and stay updated on the latest open-source database trends.
Mydbops Managed Services specializes in taking the pain out of database management while optimizing performance. Since 2015, we have been providing top-notch support and assistance for the top three open-source databases: MySQL, MongoDB, and PostgreSQL.
Our team offers a wide range of services, including assistance, support, consulting, 24/7 operations, and expertise in all relevant technologies. We help organizations improve their database's performance, scalability, efficiency, and availability.
Contact us: info@mydbops.com
Visit: https://www.mydbops.com/
Follow us on LinkedIn: https://in.linkedin.com/company/mydbops
For more details and updates, please follow up the below links.
Meetup Page : https://www.meetup.com/mydbops-databa...
Twitter: https://twitter.com/mydbopsofficial
Blogs: https://www.mydbops.com/blog/
Facebook(Meta): https://www.facebook.com/mydbops/
Essentials of Automations: Exploring Attributes & Automation ParametersSafe Software
Building automations in FME Flow can save time, money, and help businesses scale by eliminating data silos and providing data to stakeholders in real-time. One essential component to orchestrating complex automations is the use of attributes & automation parameters (both formerly known as “keys”). In fact, it’s unlikely you’ll ever build an Automation without using these components, but what exactly are they?
Attributes & automation parameters enable the automation author to pass data values from one automation component to the next. During this webinar, our FME Flow Specialists will cover leveraging the three types of these output attributes & parameters in FME Flow: Event, Custom, and Automation. As a bonus, they’ll also be making use of the Split-Merge Block functionality.
You’ll leave this webinar with a better understanding of how to maximize the potential of automations by making use of attributes & automation parameters, with the ultimate goal of setting your enterprise integration workflows up on autopilot.
AI in the Workplace Reskilling, Upskilling, and Future Work.pptxSunil Jagani
Discover how AI is transforming the workplace and learn strategies for reskilling and upskilling employees to stay ahead. This comprehensive guide covers the impact of AI on jobs, essential skills for the future, and successful case studies from industry leaders. Embrace AI-driven changes, foster continuous learning, and build a future-ready workforce.
Read More - https://bit.ly/3VKly70
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving
What began over 115 years ago as a supplier of precision gauges to the automotive industry has evolved into being an industry leader in the manufacture of product branding, automotive cockpit trim and decorative appliance trim. Value-added services include in-house Design, Engineering, Program Management, Test Lab and Tool Shops.
Introducing BoxLang : A new JVM language for productivity and modularity!Ortus Solutions, Corp
Just like life, our code must adapt to the ever changing world we live in. From one day coding for the web, to the next for our tablets or APIs or for running serverless applications. Multi-runtime development is the future of coding, the future is to be dynamic. Let us introduce you to BoxLang.
Dynamic. Modular. Productive.
BoxLang redefines development with its dynamic nature, empowering developers to craft expressive and functional code effortlessly. Its modular architecture prioritizes flexibility, allowing for seamless integration into existing ecosystems.
Interoperability at its Core
With 100% interoperability with Java, BoxLang seamlessly bridges the gap between traditional and modern development paradigms, unlocking new possibilities for innovation and collaboration.
Multi-Runtime
From the tiny 2m operating system binary to running on our pure Java web server, CommandBox, Jakarta EE, AWS Lambda, Microsoft Functions, Web Assembly, Android and more. BoxLang has been designed to enhance and adapt according to it's runnable runtime.
The Fusion of Modernity and Tradition
Experience the fusion of modern features inspired by CFML, Node, Ruby, Kotlin, Java, and Clojure, combined with the familiarity of Java bytecode compilation, making BoxLang a language of choice for forward-thinking developers.
Empowering Transition with Transpiler Support
Transitioning from CFML to BoxLang is seamless with our JIT transpiler, facilitating smooth migration and preserving existing code investments.
Unlocking Creativity with IDE Tools
Unleash your creativity with powerful IDE tools tailored for BoxLang, providing an intuitive development experience and streamlining your workflow. Join us as we embark on a journey to redefine JVM development. Welcome to the era of BoxLang.
9. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
siunitx: SI units & number formatting
Use for all quantities that have units: $SI{10}{gpermicrolitre}$
10g/µl
Typeset units: $si{dalton} = si{grampermole}$ and
$si{angstrom} = SI{0.1}{nanometer}$ Da = gmol−1 and
Å = 0.1000nm
Typeset numbers, $num{2.718281828459045}$, $num{200000}$:
2.7183, 200000
10. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
siunitx: SI units & number formatting
Use for all quantities that have units: $SI{10}{gpermicrolitre}$
10g/µl
Typeset units: $si{dalton} = si{grampermole}$ and
$si{angstrom} = SI{0.1}{nanometer}$ Da = gmol−1 and
Å = 0.1000nm
Typeset numbers, $num{2.718281828459045}$, $num{200000}$:
2.7183, 200000
Define new units: DeclareSIUnit[number-unit-product = ;]
basepair{bp}
11. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
siunitx: SI units & number formatting
Use for all quantities that have units: $SI{10}{gpermicrolitre}$
10g/µl
Typeset units: $si{dalton} = si{grampermole}$ and
$si{angstrom} = SI{0.1}{nanometer}$ Da = gmol−1 and
Å = 0.1000nm
Typeset numbers, $num{2.718281828459045}$, $num{200000}$:
2.7183, 200000
Define new units: DeclareSIUnit[number-unit-product = ;]
basepair{bp}
Options: detect-all
12. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
siunitx: SI units & number formatting
Use for all quantities that have units: $SI{10}{gpermicrolitre}$
10g/µl
Typeset units: $si{dalton} = si{grampermole}$ and
$si{angstrom} = SI{0.1}{nanometer}$ Da = gmol−1 and
Å = 0.1000nm
Typeset numbers, $num{2.718281828459045}$, $num{200000}$:
2.7183, 200000
Define new units: DeclareSIUnit[number-unit-product = ;]
basepair{bp}
Options: detect-all
13. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
siunitx: SI units & number formatting
Use for all quantities that have units: $SI{10}{gpermicrolitre}$
10g/µl
Typeset units: $si{dalton} = si{grampermole}$ and
$si{angstrom} = SI{0.1}{nanometer}$ Da = gmol−1 and
Å = 0.1000nm
Typeset numbers, $num{2.718281828459045}$, $num{200000}$:
2.7183, 200000
Define new units: DeclareSIUnit[number-unit-product = ;]
basepair{bp}
Options: detect-all, binary-units
14. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
siunitx: SI units & number formatting
Use for all quantities that have units: $SI{10}{gpermicrolitre}$
10g/µl
Typeset units: $si{dalton} = si{grampermole}$ and
$si{angstrom} = SI{0.1}{nanometer}$ Da = gmol−1 and
Å = 0.1000nm
Typeset numbers, $num{2.718281828459045}$, $num{200000}$:
2.7183, 200000
Define new units: DeclareSIUnit[number-unit-product = ;]
basepair{bp}
Options: detect-all, binary-units, round-mode=places,round-precision=4
16. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
todonotes: Todo notes within your document
The todonotes package lets you mark items that you need to complete…
This note was created with todo[inline].
Mark missing figures: missingfigure[fig-
width=6cm,
figheight=4cm]
Missing
figure
17. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
todonotes: Todo notes within your document
The todonotes package lets you mark items that you need to complete…
This note was created with todo[inline].
Mark missing figures: missingfigure[fig-
width=6cm,
figheight=4cm]
Missing
figure
Lots of options…colour combos: blue!20!white
18. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
todonotes: Todo notes within your document
The todonotes package lets you mark items that you need to complete…
This note was created with todo[inline].
Mark missing figures: missingfigure[fig-
width=6cm,
figheight=4cm]
Missing
figure
Lots of options…colour combos: blue!20!white
Load with obeyFinal to remove all notes when passing final to your class.
28. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Patching other packages or classes
Often want to edit a macro in an external package or class
regexpatch provides advanced functionality to do so
Some useful patches for the BioMed Central’s bmcart.cls:
Contains: defdoi@base{http://dx.doi.org/}
29. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Patching other packages or classes
Often want to edit a macro in an external package or class
regexpatch provides advanced functionality to do so
Some useful patches for the BioMed Central’s bmcart.cls:
Contains: defdoi@base{http://dx.doi.org/}
patchcmd{doi@base}{http://dx.doi.org}
{https://doi.org}{}{}
31. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Patching other packages or classes
appto{ figure@ setting s}{%
i f @ f i g u r e s t a r
captionsetup { . . . ,
s i n g l e l i n e c h e c k=f a l s e , j u s t i f i c a t i o n=RaggedRight}
f i%
}
def bmcart@hyperref@settings{%
. . .
@ifundefined { hy@title }{}{ p d f s t r i n g d e f
@pdftitle { hy@title }}
}
32. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Patching other packages or classes
appto{ figure@ setting s}{%
i f @ f i g u r e s t a r
captionsetup { . . . ,
s i n g l e l i n e c h e c k=f a l s e , j u s t i f i c a t i o n=RaggedRight}
f i%
}
def bmcart@hyperref@settings{%
. . .
@ifundefined { hy@title }{}{ p d f s t r i n g d e f
@pdftitle { hy@title }}
}
regexpatchcmd { bmcart@hyperref@settings }
{.* @title .*}{}{}{}
34. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
There are typesetting instructions and instructions with other effects
def is like a simpler version of newcommand*, in TEX and not LATEX
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
35. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
There are typesetting instructions and instructions with other effects
def is like a simpler version of newcommand*, in TEX and not LATEX
expandafter is a macro that influences the expansion of macros
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
36. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
There are typesetting instructions and instructions with other effects
def is like a simpler version of newcommand*, in TEX and not LATEX
expandafter is a macro that influences the expansion of macros
defxx{ABC}; replacement text and expansion of xx is ABC
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
40. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
expandafter〈tokene〉〈token1〉〈token2〉…〈tokenn〉
tokene is saved without expansion
Process 〈token1〉
〈token1〉 is a macro: it gets expanded.
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
41. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
expandafter〈tokene〉〈token1〉〈token2〉…〈tokenn〉
tokene is saved without expansion
Process 〈token1〉
〈token1〉 is a macro: it gets expanded.
〈token1〉 is another expandafter: TEX continues performing expandafters
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
42. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
expandafter〈tokene〉〈token1〉〈token2〉…〈tokenn〉
tokene is saved without expansion
Process 〈token1〉
〈token1〉 is a macro: it gets expanded.
〈token1〉 is another expandafter: TEX continues performing expandafters
〈token1〉 is csname: TEX looks for the matching endcsname and expands
the resulting token
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
43. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
expandafter〈tokene〉〈token1〉〈token2〉…〈tokenn〉
tokene is saved without expansion
Process 〈token1〉
〈token1〉 is a macro: it gets expanded.
〈token1〉 is another expandafter: TEX continues performing expandafters
〈token1〉 is csname: TEX looks for the matching endcsname and expands
the resulting token
〈token1〉 is an opening curly brace: the opening brace is temporarily
suspended
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
44. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
expandafter〈tokene〉〈token1〉〈token2〉…〈tokenn〉
tokene is saved without expansion
Process 〈token1〉
〈token1〉 is a macro: it gets expanded.
〈token1〉 is another expandafter: TEX continues performing expandafters
〈token1〉 is csname: TEX looks for the matching endcsname and expands
the resulting token
〈token1〉 is an opening curly brace: the opening brace is temporarily
suspended
〈token1〉 is the: operation is performed, reading the token after it
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
45. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
expandafter〈tokene〉〈token1〉〈token2〉…〈tokenn〉
tokene is saved without expansion
Process 〈token1〉
〈token1〉 is a macro: it gets expanded.
〈token1〉 is another expandafter: TEX continues performing expandafters
〈token1〉 is csname: TEX looks for the matching endcsname and expands
the resulting token
〈token1〉 is an opening curly brace: the opening brace is temporarily
suspended
〈token1〉 is the: operation is performed, reading the token after it
〈token1〉 is any other primitive: nothing
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
47. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
tokene is placed back in front of the generated tokens and processing
continues
expandafter reverses expansion, not execution
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
48. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
tokene is placed back in front of the generated tokens and processing
continues
expandafter reverses expansion, not execution
Common use case: calling a macro with the result of another
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
49. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
tokene is placed back in front of the generated tokens and processing
continues
expandafter reverses expansion, not execution
Common use case: calling a macro with the result of another
defxx[#1]{...} defyy{[ABC]}
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
50. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
tokene is placed back in front of the generated tokens and processing
continues
expandafter reverses expansion, not execution
Common use case: calling a macro with the result of another
defxx[#1]{...} defyy{[ABC]}
xxyy fails; expandafterxxyy works
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
51. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
tokene is placed back in front of the generated tokens and processing
continues
expandafter reverses expansion, not execution
Common use case: calling a macro with the result of another
defxx[#1]{...} defyy{[ABC]}
xxyy fails; expandafterxxyy works
defzz{yy}. expandafterxxzz fails, since expansion only occurs
once
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
52. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
tokene is placed back in front of the generated tokens and processing
continues
expandafter reverses expansion, not execution
Common use case: calling a macro with the result of another
defxx[#1]{...} defyy{[ABC]}
xxyy fails; expandafterxxyy works
defzz{yy}. expandafterxxzz fails, since expansion only occurs
once
Solved using edeftemp{noexpandxxzz}
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
56. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
Multiple expandafters: ex1ex1ex1aex4bc
ex1 is executed, saving ex2.
ex3 is executed, saving a
Saved token list: ex2· a
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
57. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
Multiple expandafters: ex1ex1ex1aex4bc
ex1 is executed, saving ex2.
ex3 is executed, saving a
Saved token list: ex2· a
ex4 is executed, saving b and expanding c
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
58. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
Multiple expandafters: ex1ex1ex1aex4bc
ex1 is executed, saving ex2.
ex3 is executed, saving a
Saved token list: ex2· a
ex4 is executed, saving b and expanding c
All saved tokens ex2· a · b are reinserted in front of the replacement of
c
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
59. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
Multiple expandafters: ex1ex1ex1aex4bc
ex1 is executed, saving ex2.
ex3 is executed, saving a
Saved token list: ex2· a
ex4 is executed, saving b and expanding c
All saved tokens ex2· a · b are reinserted in front of the replacement of
c
Now ex2 s executed, saving a and expanding b
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
60. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
Multiple expandafters: ex1ex1ex1aex4bc
ex1 is executed, saving ex2.
ex3 is executed, saving a
Saved token list: ex2· a
ex4 is executed, saving b and expanding c
All saved tokens ex2· a · b are reinserted in front of the replacement of
c
Now ex2 s executed, saving a and expanding b
a is reinserted and then expanded
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
61. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: expandafter
Multiple expandafters: ex1ex1ex1aex4bc
ex1 is executed, saving ex2.
ex3 is executed, saving a
Saved token list: ex2· a
ex4 is executed, saving b and expanding c
All saved tokens ex2· a · b are reinserted in front of the replacement of
c
Now ex2 s executed, saving a and expanding b
a is reinserted and then expanded
Execution continues with the replacement text of a
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
66. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: csname…endcsname
csname–endcsname are TEX primatives used to define and call macros
def can only used letters
Can do: expandafterdefcsname $&3endcsname{Hi!}
A. Hendrickson, “The joy of csname…endcsname”, TUGboat, vol. 33, no. 2,
pp. 219–224, 2012.
67. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: csname…endcsname
csname–endcsname are TEX primatives used to define and call macros
def can only used letters
Can do: expandafterdefcsname $&3endcsname{Hi!}
Then csname $&3endcsname produces “Hi!”
A. Hendrickson, “The joy of csname…endcsname”, TUGboat, vol. 33, no. 2,
pp. 219–224, 2012.
68. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
ε-TEX programming: csname…endcsname
csname–endcsname are TEX primatives used to define and call macros
def can only used letters
Can do: expandafterdefcsname $&3endcsname{Hi!}
Then csname $&3endcsname produces “Hi!”
Can expand commands within this and use for building dynamic macros
A. Hendrickson, “The joy of csname…endcsname”, TUGboat, vol. 33, no. 2,
pp. 219–224, 2012.
80. Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
S. Kottwitz. (2015), Example: a diagram of tex engines,
http://www.texample.net/tikz/examples/smart-bubbles/.
H. T. Thành, “Micro-typographic extensions of pdfTEX in practice”,
TUGboat, vol. 25, no. 1, pp. 35–38, 2004.
S. Khirevich. (2018), Tips on writing a thesis in latex,
http://www.khirevich.com/latex/microtype/.
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1,
pp. 57–61, 1988.
A. Hendrickson, “The joy of csname…endcsname”, TUGboat, vol. 33, no. 2,
pp. 219–224, 2012.
J. Wright, “siunitx: a comprehensive (SI) units package”, TUGboat, vol. 32,
no. 1, pp. 95–98, 2011.