text:
\section{\sc Skills}
\begin{itemize}[leftmargin=0.16cm]
\setlength\itemsep{0em}
\item Languages: Polish (native), English (fluent)
\item Programming Languages (Proficient): Erlang, Elixir, Python, C++, C, Latex, Assembler Intel x86 \& x86-64, SQL, JavaScript, Typescript, VueJS, Solidity
\item Programming Languages (Familiar): D, PHP, Java, Ocaml, Bash, Haskell, Prolog, Rust
\item Cybersecurity: Reverse Engineering, Binary Exploitation \& More, Captain of the \href{https://ctftime.org/team/48557}{Made in MIM} CTF team
\item Operating Systems: Linux (daily driver for more than 6 years, favourite distro: Arch Linux, familiar with Ubuntu \& Debian), Windows
\item Technologies: The Phoenix Framework, Django, AWS, Docker, Git, ZFS, Nest JS, Various ORM frameworks
\item DevSecOps: Kubernetes, PostgreSQL, ArgoCD, Helm, PgBouncer, familiarity with various Kubernetes Operators, Hashicorp Vault, Teleport(PAM solution)
\end{itemize}

ext: tex


text:
%\documentstyle[11pt,aspconf]{article}
\documentstyle[times,12pt,psfig]{article}

\begin{document}

\title{Data Structures in STIS and NICMOS}
\author{A. Farris\\ Space Telescope Science Institute, Baltimore, MD 21218\\
Email: farris@stsci.edu}
\date{March 22, 1996}
\maketitle

\begin{abstract}
The new instruments to be installed during the 1997 servicing mission
for the Hubble Space Telescope present challenges of managing complex
associations among a variety of data.  The data structures and the
design of the I/O software interface to support these instruments are
presented.  The significance of this software architecture to the
design of calibration algorithms is that it allows the implementation of
algorithms, based on accessing data in a logical form, abstracting from
the details of disk formats.  The architecture also illustrates the
principle of encapsulation, concealing the details of implementation
from the developers of algorithms.  The consequences of this approach
are discussed.
\end{abstract}

%\keywords{data structures, data models, encapsulation, software design,
%	STIS, NICMOS }

Note: This paper has been submitted for publication as part of the
proceedings of the Fifth Annual Conference on Astronomical Data Analysis
Software and Systems (ADASS V) held in Tucson, Arizona, on October 22-25,
1995.

\section{Fundamental Design and Implementation Considerations}

STIS and NICMOS (New, 1995), instruments to be installed aboard the
Hubble Space Telescope during the 1997 servicing mission, are extremely
flexible and can be used in many different modes.  Consequently, the
data produced by these instruments contains complex internal
relationships as well as external associations with other data groups.
This paper will discuss the basic structure of the data from STIS and
NICMOS and the structure of the software that provides access to the data.
This software is being used in the STScI calibration pipelines for these
instruments.

The calibration software is being written in strict conformity to ANSI C,
(which includes the standard ANSI C library), with no special vendor
extensions allowed.  The pipeline software is modular in design with
minimal and managed dependencies on the operating system in which the
software executes.  The pipeline utilizes the IRAF software environment
(Tody, 1986).  However, any IRAF routines employed use the OpenIRAF
software environment, which allows IRAF library routines to be called
from an ANSI C program.  The design perspective toward IRAF is the same
as that toward an operating system, viz., managed and minimal
dependencies.  The use of IRAF routines is confined primarily to basic I/O
routines or special STSDAS (Hanisch, 1989) packages, such as synphot.

ANSI C data structures represent both uncalibrated and calibrated data
from each instrument, forming a data model of each instrument.  The
pipeline software consists of calibration steps that operate on these
data structures.  A major goal is to make the calibration algorithms
themselves only dependent on these data structures.  All I/O is
encapsulated in basic routines that form a mapping between these
data structures and external storage media.

Exceptions to this goal are calibration steps for which I/O becomes a
significant part of the algorithm itself, e.\ g.\ when there is
insufficient memory to contain all the needed data.  In this case, I/O
needs will be satisfied by calls to the interface module, leaving the
algorithms themselves free of any direct, low-level I/O.  This issue
will likely be significant to STIS.

\section{General Structure of Science Data}

While a detailed discussion of STIS and NICMOS instrument data is beyond
the scope of this paper, we can present the general structure of the
associated science data.  The science data files utilize FITS
image extensions (Ponz, 1994).  Data from both instruments may be
represented as sequences of FITS Header-Data-Units (HDUs) containing
two-dimensional arrays.  These HDUs are grouped as an array of science
data, together with a data quality array and an error array, representing,
respectively, an array of boolean conditions that identify various
possible anomalous conditions that may be associated with each pixel and
the error associated with each pixel.  In addition, NICMOS has two
additional arrays, an array identifying the number of samples associated
with each pixel and an array identifying the integration time associated
with each pixel.  The structure of the FITS file for both instruments is
shown below.

\begin{tabbing}
\={\bf STIS} \hspace{2.6in} \={\bf NICMOS} \\
\> Primary Header Data Unit \> Primary Header Data Unit \\
\> \hspace{0.5in} general keywords \> \hspace{0.5in} general keywords \\
\> \hspace{0.5in} no data \> \hspace{0.5in} no data\\
\> first Science HDU \>first Science HDU\\
\>first Error HDU \>first Error HDU\\
\>first Data Quality HDU \>first Data Quality HDU\\
\>second Science HDU \>first Samples HDU\\
\>second Error HDU \>first Integration Times HDU\\
\>second Data Quality HDU\>second Science HDU\\
\>etc.\>second Error HDU\\
\>\>second Data Quality HDU\\
\>\>second Samples HDU\\
\>\>second Integration Times HDU\\
\>\>etc.
\end{tabbing}

\section{ANSI C Structures Representing the Fundamental Data Items}

A number of basic ANSI C data structures have been defined to correspond
to the FITS HDUs mentioned above.  The most fundamental structure
consists of a two-dimensional array of an arbitrary size and various
types (short, float, etc.), together with an array of header lines to
represent collections of keywords associated with the data.  This basic
structure is then specialized to represent specific types of header plus
two-dimensional array, viz., Science, Error, Data Quality, Samples, and
Integration Times HDUs.

In addition, the basic structures above are grouped into single and
multiple groups of HDUs.  A single STIS group consists of a global
header together with a Science, Error, and Data Quality HDU.  A single
NICMOS group consists of a global header together with a Science, Error,
Data Quality, Samples and Integration Times HDU.  A multiple STIS group
consists of a global header together with N groups of Science, Error,
and Data Quality HDUs.  Likewise, a multiple NICMOS group consists of a
global header together with N groups of Science, Error, Data Quality,
Samples and Integration Times HDUs.

\section{ I/O Functions Related to ANSI C Data Structures }

Supporting these data structures is an I/O interface module called
HSTIO.  High-level functions in the HSTIO interface include:
1) functions to initialize all data structures, to allocate and
free memory needed by the data structures,
2) macros to access elements of the two-dimensional data arrays,
3) functions to get and set values associated with header keywords,
4) functions to read and write entire Science, Error, and Data Quality HDUs,
as well as NICMOS Samples and Integration Times HDUs,
5) functions to read and write single and multiple groups of
\{Science, Error, Data Quality\} or, for NICMOS, groups of
\{Science, Error, Data Quality, Samples, Integration Times\}.
These functions recognize local conventions used in conjunction
with the various HDUs, and generate arrays of the proper
dimensionality and value.

The HSTIO interface also includes a number of lower-level functions
that can be used if there is insufficient memory to store entire HDUs.
These include:
1) opening and closing a particular image in a FITS file,
2) reading and writing the FITS header associated with an image,
3) reading and writing the data array associated with an image, and
4) reading and writing arbitrary lines or arbitrary two-dimensional sections
of a data array associated with an image.

The structure of the software is shown in Figure~1.  All of the
high-level functions are implemented in terms of the lower-level functions.
These lower-level functions are implemented using IRAF's image I/O, enhanced
by the addition of the FITS kernel with support for image extensions.

%\begin{figure}
%\epsscale{.80}
%\plotone{farrisa1.eps}
%\caption{HSTIO Interface} \label{fig-1}
%\end{figure}

\centerline{\psfig{figure=farrisa1.eps,width=5.0in}}
\begin{center}
{\bf Figure~1:  HSTIO Interface}
\end{center}

\section{Consequences of this Design }

The design of the HSTIO interface is based on two principles: adequate
modeling and encapsulation.  The high-level data structures form a
complete representation of basic instrument data and all associated
keywords, as well as meaningful groups of these data and keywords, thus
forming an adequate model of data from the instruments.  The I/O
functions include all functions needed to support these high-level data
structures, including translating between the external disk
representation and the internal data structures.  Implementation details
are carefully concealed within these I/O functions, thus employing the
principle of encapsulation.

There are two important consequences of this design: flexibility in
usage and flexibility in implementation.  First, by encapsulating all
I/O operations within the HSTIO interface, the pipeline calibrations can
be written in the form of pure algorithms, with no operating system
dependencies.  Furthermore, since these algorithms are being implemented
in a widely available standard language (ANSI C), they are easily used
in other environments or even translated into other languages.
Second, encapsulation also allows alternative implementations of the I/O
functions without impacting the calibration algorithms.  The low-level
I/O functions are currently implemented using IRAF, but they do not have
to be.  A preliminary version already exists implementing the low-level
functions using FITS C++ classes with no use of IRAF whatever.  This is
completely transparent to the calibration algorithms using these
functions and data structures.

%\begin{references}
%\reference Hanisch, R., 1989, ``STSDAS: The Space Telescope Science Data
%      Analysis System'', in {\em Data Analysis in Astronomy III},
%      V. Di Gesu, et. al., Plenum Press, 129
%\reference {\em New Instruments for Second Servicing Mission}, 1995,
%	Servicing Mission Office, Space Telecsope Science Institute,
%	3700 San Martin Drive, Baltimore, Maryland 21218
%\reference Ponz, J., Thompson, R., and Mu\~{n}oz, J., 1994,
%	``The FITS image extension'', in {\em Astron. and Astrophys.
%	Suppl. Ser., 105}, 53
%\reference Tody, D., 1986, ``The IRAF Data Reduction and Analysis System'', in
%      {\em Instrumentation in Astronomy VI}, SPIE 627, Part 2
%\end{references}

\begin{thebibliography}{99}
\bibitem{hanish1} { Hanisch, R., 1989, ``STSDAS: The Space Telescope Science Data
      Analysis System'', in {\em Data Analysis in Astronomy III},
      V. Di Gesu, et. al., Plenum Press, 129
}
\bibitem{new1} { {\em New Instruments for Second Servicing Mission}, 1995,
	Servicing Mission Office, Space Telecsope Science Institute,
	3700 San Martin Drive, Baltimore, Maryland 21218
}
\bibitem{ponz1} { Ponz, J., Thompson, R., and Mu\~{n}oz, J., 1994,
	``The FITS image extension'', in {\em Astron. and Astrophys.
	Suppl. Ser., 105}, 53
}
\bibitem{tody1} { Tody, D., 1986, ``The IRAF Data Reduction and Analysis System'', in
      {\em Instrumentation in Astronomy VI}, SPIE 627, Part 2
}
\end{thebibliography}

\end{document}

max_stars_repo_name: iraf-community/stsdas


text:
%------------------------------------
% Dario Taraborelli
% Typesetting your academic CV in LaTeX
%
% URL: http://nitens.org/taraborelli/cvtex
% DISCLAIMER: This template is provided for free and without any guarantee
% that it will correctly compile on your system if you have a non-standard
% configuration.
% Some rights reserved: http://creativecommons.org/licenses/by-sa/3.0/
%------------------------------------

%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode

\documentclass[11pt, a4paper]{article}
\usepackage{fontspec}

% DOCUMENT LAYOUT
\usepackage{geometry}
\geometry{a4paper, textwidth=5.5in, textheight=8.5in, marginparsep=7pt, marginparwidth=.6in}
\setlength\parindent{0in}

% FONTS
\usepackage{xunicode}
\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text} % converts LaTeX specials (``quotes'' --- dashes etc.) to unicode
\setromanfont [Ligatures={Common}, BoldFont={Gentium Basic Bold}, ItalicFont={Gentium Basic Italic}]{Gentium Basic}
\setmonofont[Scale=0.8]{Monaco}
% ---- CUSTOM AMPERSAND
\newcommand{\amper}{{\fontspec[Scale=.95]{Gentium Basic Italic}\selectfont\itshape\&}}
% ---- MARGIN YEARS
\usepackage{marginnote}
\newcommand{\years}[1]{\marginnote{\scriptsize #1}}
\renewcommand*{\raggedleftmarginnote}{}
\setlength{\marginparsep}{7pt}
\reversemarginpar

% HEADINGS
\usepackage{sectsty}
\usepackage[normalem]{ulem}
\sectionfont{\rmfamily\mdseries\upshape\Large}
\subsectionfont{\rmfamily\bfseries\upshape\normalsize}
\subsubsectionfont{\rmfamily\mdseries\upshape\normalsize}

% PDF SETUP
% ---- FILL IN HERE THE DOC TITLE AND AUTHOR
\usepackage[bookmarks, colorlinks, breaklinks, pdftitle={Robert Kubinec - vita},pdfauthor={Robert Kubinec}]{hyperref}
\hypersetup{linkcolor=black,citecolor=black,filecolor=black,urlcolor=black}
\usepackage{doi}

% DOCUMENT
\begin{document}
{\LARGE Robert M. Kubinec}\\[1cm]
New York University Abu Dhabi\\
Abu Dhabi, United Arab Emirates\\[.2cm]
Email: \href{mailto:rmk7@nyu.edu}{rmk7@nyu.edu}\\
\textsc{url}: \href{http://www.robertkubinec.com}{www.robertkubinec.com}\\

%%\hrule
\section*{Current position}
\noindent
\years{2019-}\emph{Assistant Professor}, Social Sciences Division, New York University Abu Dhabi\\

\section*{Previous positions}
\noindent
\years{2018-2019}\emph{Postdoctoral Research Scholar}, Niehaus Center for Globalization and Governance, Princeton University\\

%\hrule
\section*{Education}
\noindent
\years{2018}\textsc{PhD} in Foreign Affairs, University of Virginia\\
\years{2010}\textsc{MA} in Middle East Studies, George Washington University\\
\years{2008}\textsc{BA} in International Relations, Wheaton College

\section*{Publications}

\subsection*{Journal Articles}

\years{2020}Kubinec, Robert and Owen, John. ``When Groups Fall Apart: Identifying Transnational Polarization with Twitter from the Arab Uprisings." Forthcoming \textit{Political Analysis}. \\

\years{2020}Cheng, Cindy, Barcelo, Joan, Hartnett, Allison, Kubinec, Robert and Messerschmidt, Luca. ``COVID-19 Government Response Event Dataset (CoronaNet v.1.0)." \textit{Nature Human Behavior}. \doi{10.1038/s41562-020-0909-7} \\

\years{2020}Kropko, Jonathan and Kubinec, Robert. ``Why the Two-way Fixed Effects Model is Difficult to Interpret, and What to Do About It." \textit{PLOS One}. \doi{10.1371/journal.pone.0231349}

\subsection*{Working Papers}
\noindent

For a list of my current working papers, please see my \href{https://scholar.google.com/citations?user=bhOaXR4AAAAJ&hl=en&authuser=1}{Google Scholar page}.

\subsection*{Reports and Op-eds}
\noindent
\years{2021}Kubinec, Robert, (Spring 2021), ``Pandemic Safe Research with Online Surveys", \emph{American Political Science Association MENA Politics Newsletter}\\
\years{2020}Kubinec, Robert, (April 2020), ``The CoronaNet Database", \emph{Project on Middle East Political Science Studies No. 39}\\
\years{2019}Grewal, Sharan; Kilavuz, Tahir M.; and Kubinec, Robert, (July 2019), ``Algeria's Uprising: A Survey of Protesters and the Military", \emph{The Brookings Institution}\\
\years{2017}Kubinec, Robert, (Aug. 13, 2017), ``How to Respond to Terrorism", \emph{The Daily Progress}\\
\years{2016}Kubinec, Robert, (Dec. 19, 2016), ``How Foreign Aid Could Hurt Tunisia's Transition to Democracy", \emph{Washington Post}\\

\subsection*{Software}
\years{2017-2019}Kubinec, Robert. \href{https://github.com/saudiwin/idealstan}{\texttt{idealstan}: An R  Package for Bayesian Ideal Point Modeling}. \href{https://cran.r-project.org/web/packages/idealstan/index.html}{CRAN link}\\
\years{2017}Kubinec, Robert. \href{https://github.com/saudiwin/algoeval}{\texttt{algoeval}: An R Package for Evaluation of Machine-Learning Algorithm Performance.}

\section*{Reviewing}

I have been a reviewer for \emph{Political Analysis}, \emph{The American Political Science Review}, \emph{The American Journal of Political Science}, \emph{Political Science Research and Methods}, \emph{PLOS One}, \emph{SAGE Open}, and \emph{Middle East Law and Governance}.\\

%\hrule
\section*{Grants and fellowships}

\subsection*{External}
\noindent
\years{2019}Koch Foundation Grant for ``Online Survey Research on the U.S. - China Trade War" (\$10k)\\
\years{2017-2018}Economic Research Forum, ``A Survey of Firm-Level Political Participation" (\$6k)\\
\years{2017}Koch Foundation Dissertation Grant (\$5k)\\
\years{2016}Project on Middle East Political Science Travel, Research \& Engagement Grant (\$3k)\\

\subsection*{Internal}
\noindent
\years{2020}COVID-19 Facilitator Research Fund (\$30k)\\
\years{2017}Quantitative Collaborative Bynum Grant\\
\years{2015 - 2016}Quandt International Research Fund travel grant, University of Virginia\\
\years{2015}Summer Research Grant, Graduate School for Arts and Sciences, University of Virginia\\
\years{2014-2015}Developing Students for Leadership in Data-intensive Research and Innovation fellowship, Data Science Institute, University of Virginia\\
\years{2014}Summer Foreign Language Fellowship, University of Virginia\\
\years{2008-2010}Elliott School High Achievement Fellowship, George Washington University\\
\years{2009}Banville Tuition Fellowship, George Washington University\\

\section*{Invited Talks}
\years{2017}Tunisia Country Team, Millennial Challenge Corporation, Washington DC\\

% \section*{Field Research}
%
% \noindent
% \years{2016}Interviews about the political role of businesspeople in Egypt and Tunisia.\\
% \years{2015}Semi-structured interviews with Tunisian scholars, pundits and journalists\\
% \years{2015}Focus groups on sharia law courts in Palestine with PI Prof. Deena Hurwitz\\
% \years{2010}Structured interviews with Jordanian policymakers

%%\hrule
\section*{Professional Experience \& Consulting}
\noindent
\years{2017-2018}Acting Data Scientist, Unbias\\
\years{2011-2013}Foreign Service Officer, U.S. Department of State\\
\years{2010-2011}Data Mining Consultant, IBM Advanced Analytics \& Optimization

%\vspace{1cm}
\vfill{}
%\hrulefill

\begin{center}
{\scriptsize  Last updated: \today\- •\- Typeset in \href{http://nitens.org/taraborelli/cvtex}{
\fontspec{Times New Roman}\XeTeX }}
\end{center}

\end{document}


text:
\section{Design By Example}
In this section, we will explain how to handle basic data formats in Nail, how to handle
redundancies in the format with dependent fields, and how Nail parsers can be extended with
transformations.

As a motivating example, we will parse DNS packets, as defined in RFC 1035. Each DNS packet consists of a
header, a set of question records, and a set of answer records. Domain
names in both queries and answers are encoded as a sequence of labels,
terminated by a zero byte.  Labels are Pascal-style strings, consisting
of a length field followed by that many bytes comprising the label.
\label{s:design}
\subsection{Basic data formats}

\input{fig-dnsfull}
Let's step through a simplified Nail grammar for DNS
packets, shown in  Figure~\ref{fig:dns-full}.  For this grammar, Nail produces the type declarations
shown in Figure~\ref{fig:dns-full-struct}, and the parser and
generator functions shown in Figure~\ref{fig:dns-full-api}.
Nail grammars are reusable between applications and we will use this grammar to implement
both a DNS server and a DNS client, which previously would have had two separate hand-written parsers,
leading to bugs such as the Android ZIP file vulnerability.

A Nail grammar file consists of rule definitions, for example lines 1--20,  which assign a name
(\texttt{dnspacket}) to a grammar production (lines 2--20). If you are not familiar with
other parsers, you can imagine rules as C type declarations on steroids
(although our syntax is inspired by Go).

Just like C supports various constructs to build up types, such as structures and unions from pointers and
elemental types, Nail supports various \emph{combinators} to represent features of a file or protocol. We will present the features we used in implementing
DNS\@. A more complete reference can be found in Figure~\ref{fig:syntax}, with detailed rationale in~\cite{bangert:nail}.

\paragraph{Integers and Constraints.}
Because Nail is designed to cope with binary formats,
it handles not only common integer types (such as \texttt{uint16} on line 16), but bit fields of any
length, such as \texttt{uint1}. These integers are exposed to the programmer as an appropriately
sized machine integer, e.g. \texttt{uint8\_t}. Nail also supports constraints on integer values,
limiting the values to either a range (line 23, \texttt{|1..16}), which can optionally be half-open,
or a fixed set (line 24, \texttt{|[1,255]}). Both types of constraint can be combined, e.g. \texttt{|
  [1..16,255]}. Constant values are also supported; for instance, on line 10, \texttt{uint3=0} represents
three reserved bits that must be 0. Because constant values carry no information, they are not
represented in the data type.

\paragraph{Structures.}

The body of the \texttt{dnspacket} rule is a structure, which contains any number of fields enclosed
between  curly braces. Each field in the structure is parsed in sequence, and represented as a
structure to the programmer.  Contrary to other programming languages, Nail does not have a special
keyword for structs. We also reverse the usual structure-field syntax: \texttt{id uint1} is a field
called \texttt{id} with type \texttt{uint1}. Often, Nail grammars have
structures with just one non-constant field, for example when parsing a fixed header. Nail supports
this with an alternative form of structures,
using angle brackets, that contains one unnamed, non-constant field, which is represented directly
in the data type, without introducing another layer of indirection, as shown on line 40.

\paragraph{Arrays.}

Nail supports various forms of arrays. Line 40 shows how to parse a domain in a DNS packet with
\cc{many}, which keeps repeating the \cc{label} rule until it fails.  In the next section, we will
explain how to handle count fields, and our full paper~\cite{bangert:nail} describes how to handle various array
representations (such as delimiters or non-empty arrays).

% To support recursive structures, we include a reference combinator \cc{*}, which
%   is syntactically equivalent to directly including the parser, but in the internal model adds a
%   level of indirection to the value. This allows recursive structures to be parsed, f

\input{fig-syntax}

\subsection{Redundant data}
\label{s:dependent}
Data formats often contain values that are determined by other values or the layout of information,
such as checksums, duplicated information, or offset and  length fields. Exposing such values risks
inconsistencies that could trick the program into unsafe behavior. Therefore, we represent such values using \emph{dependent fields} and handle them transparently during
parsing and generation without exposing them to the application.
Dependent fields are handled like other fields when parsing input, but only stored temporarily
instead of in the data type. Their value can be referenced by other parsers until it goes out of scope.
When generating output, Nail inserts the correct value.

In DNS packets, the packet header contains count fields (\cc{qc},
\cc{ac}, \cc{ns}, and \cc{ar}), which contain the number of questions and answers that follow the
header, which we represent by dependent fields (lines 12--15).
Dependent fields are defined within a structure like normal fields, but their names start with an \cc{@} symbol.
A dependent field is in scope and can be referred to by the definition of all subsequent fields in
the same structure. Dependent fields can be passed to rule invocations as parameters.

Nail allows handling count fields with \cc{n\_of}, which parses an exact number of repetitions of a rule. Lines 16--19 in Figure~\ref{fig:dns-full} shows how to use \cc{n_of} to parse the question and
answer records in a DNS packet.
Other dependencies, such as offset fields or checksums, are not handled directly by combinators, but
through  transformations, as we describe next.

\subsection{Input streams and transformations}
\label{s:transforms}
So far, we have described a parser that consumes input a byte at a time from beginning to end.
However, real-world formats often require non-linear parsing. Offset fields require a parser to move
to a different position in the input, possibly backwards. Size fields require the parser to stop
processing before the end of input has been reached.
Other cases, such as compressed data and checksums, require more complicated processing on parts of the input
before it can be handled.

For a parser to be useful, it needs to support all these ways of structuring a format. This makes data description languages like
PADS~\cite{Fisher:2005:PDL:1064978.1065046} contain not just a kitchen sink, but a kitchen store
full of features, and a language that can handle all possible formats will be a general-purpose
programming language.  Instead, we keep Nail itself small, and introduce an
interface that allows complicated format structures to be handled by  plug-in \emph{transformations}
in a general-purpose
language. Of course, we ship Nail with a handy library of common transformations to handle common
format features, such as offsets,sizes and checksums.

These \emph{transformations} consume and produce
\emph{streams}---sequences of bytes---which can be further passed to other transformations and
eventually parsed by a Nail rule. Transformations can also access values in dependent fields.
Streams can be subsets of other streams, for example the substream starting at an
offset given in a dependent field to handle pointer fields, or computed at runtime,
such as by decompressing another stream with zlib.

Transformations are two arbitrary functions called during parsing and output generation.
The parsing function consumes any number of streams and dependent field values,
and produces any number of temporary streams. This function may reposition and read from the
input streams and read the values of dependent fields, but not change their contents and values.
The generating function has to be an inverse of the parsing function, consuming streams and
producing dependent field values and other streams.

\input{fig-zip}

As a concrete example, we will show a grammar for ProtoZIP, a very simple archive format inspired by ZIP in
Figure~\ref{fig:zip-extract}. ProtoZIP consists of a variable-length end-of-file directory, which
is a magic number followed by an array of filenames and pointers to compressed files. A grammar for the real ZIP format, which
has more layers of indirection, is presented in the full paper~\cite{bangert:nail}.

The grammar first calls the \cc{zipdir} transform on line 2, which finds the magic number and splits the file into
two streams, one containing the compressed files, the other the directory.  Streams are referred to
with \cc{\$identifiers}, similar to dependent fields. A C prototype of the \cc{zipdir} transform is
shown in Figure~\ref{fig:zip-transform}.

\begin{figure}[tb]
\smaller[0.5]
\input{code/zip-eod-xform}
\caption{Signatures of stream transform functions for handling the
end-to-beginning structure of ProtoZIP files.}
\label{fig:zip-transform}
\end{figure}
When parsing input, line 2 of Figure~\ref{fig:zip-extract} will call \cc{zipdir\_parse}, which takes \cc{\$current} (an implicit
identifier always referring to the stream currently being handled) and returns \cc{\$files} and
\cc{\$header}. When generating output, the same line will call \cc{zipdir\_generate}, which appends
\cc{\$files} and \cc{\$header} to \cc{\$current}.

Line 3 of Figure~\ref{fig:zip-extract} then applies the \cc{dir} rule to  the \cc{\$header} stream, passing it the \cc{\$files}
stream as an argument. Within \cc{dir}, \cc{\$current} is now \cc{\$header} and input is parsed from and output
generated to that stream. The \cc{dir} rule in turn describes the structure of the directory, which consists of a
magic number and a count field, followed by that many file descriptors. Each file descriptor is then parsed with two
transformations, the standard-library \cc{slice} which describes an offset and a size within another
stream, and the custom \cc{zlib}, which compresses a stream using zlib. Finally, we apply a trivial
grammar (line 14) to the contents.

In a more complicated example, such as an Office document, we could now specify grammars for each
file contained within an archive.

Transformations need to be carefully written, because they can violate Nail's safety properties
and introduce
bugs. However, as we will show in \S\ref{s:eval-effort}, Nail transformations are much shorter than
hand-written parsers, and many formats can be represented with just the transformations in Nail's
standard library.
For example, our Zip transformations are 78 lines of code, compared to 1600 lines of code for a
   hand-written parser. Additionally, Nail provides convenient and safe interfaces for allocating
   memory and accessing streams that address the most common occurrences of buffer overflow
   vulnerabilities.

max_stars_repo_name: russetrob/nail

max_issues_repo_name: russetrob/nail

max_forks_repo_name: russetrob/nail


text:
%        File: arfc-beamer.tex
%     Created: Sun May 5 10:00 PM 2013 C
%

%\documentclass[11pt,handout]{beamer}
\documentclass[9pt]{beamer}
\usetheme[white]{Illinois}
%\title[short title]{long title}
\title[Short Title]{Dynamic Transition Analysis with TIMES}
%\subtitle[short subtitle]{long subtitle}
%\subtitle[Short SubTitle]{Mostly Kittens}
%\author[short name]{long name}
\author[Anshuman Chaube]{Anshuman Chaube, Andrew Chapman, James Stubbins, Kathryn Huff}
%\date[short date]{long date}
\date[01.02.2019]{February 1, 2019 \\ I$^2$CNER INTERNATIONAL WORKSHOP \\ ENERGY ANALYSIS DIVISION}
%\institution[short name]{long name}
\institute[UIUC]{University of Illinois at Urbana-Champaign \\ International Institute for Carbon-Neutral Energy Research}
%\institute[I2CNER]{International Institute for Carbon-Neutral Energy Research}

%\usepackage{bbding}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{xspace}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{booktabs} % nice rules for tables
\usepackage{microtype} % if using PDF
\usepackage{bigints}
%\usepackage{minted}

\newcommand{\units}[1] {\:\text{#1}}%
\newcommand{\SN}{S$_N$}%{S$_\text{N}$}%{$S_N$}%
\DeclareMathOperator{\erf}{erf}
%I need some complimentary error funcitons...
\DeclareMathOperator{\erfc}{erfc}
%page numbers
\setbeamertemplate{footline}[page number]
\setbeamertemplate{caption}[numbered]
%Those icons in the references are terrible looking
\setbeamertemplate{bibliography item}[text]

% ------------CHECK MARKS -------------------------
\usepackage{amssymb}
\usepackage{pifont}
\usepackage{xcolor}
\newcommand{\greencheck}{{\color{green}\checkmark}}
\newcommand{\xmark}{{\color{red}\ding{55}}}
%--------------------------------------------------

%---------------TIKZ-------------------------------
\usepackage{tikz}
\usepackage{scalefnt}
\usepackage{chronology}
\usetikzlibrary{arrows.meta}

\usetikzlibrary{positioning, arrows, decorations, shapes, calc }
% Define block styles

\usetikzlibrary{shapes.multipart}
\usetikzlibrary{positioning}
\usetikzlibrary{backgrounds,scopes}
%--------------------------------------------------

%%%% Acronym support

\usepackage[acronym,toc]{glossaries}
\include{acros}

\makeglossaries

%try to get rid of header on title page\dots
\makeatletter
    \newenvironment{withoutheadline}{
        \setbeamertemplate{headline}[default]
        \def\beamer@entrycode{\vspace*{-\headheight}}
    }{}
\makeatother

\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% From uw-beamer Here's a handy bit of code to place at
%% the beginning of your presentation (after \begin{document}):
\newcommand*{\alphabet}{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz}
\newlength{\highlightheight}
\newlength{\highlightdepth}
\newlength{\highlightmargin}
\setlength{\highlightmargin}{2pt}
\settoheight{\highlightheight}{\alphabet}
\settodepth{\highlightdepth}{\alphabet}
\addtolength{\highlightheight}{\highlightmargin}
\addtolength{\highlightdepth}{\highlightmargin}
\addtolength{\highlightheight}{\highlightdepth}
\newcommand*{\Highlight}{\rlap{\textcolor{HighlightBackground}{\rule[-\highlightdepth]{\linewidth}{\highlightheight}}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%--------------------------------%%
\begin{withoutheadline}
\frame{
  \titlepage
}
\end{withoutheadline}

%%--------------------------------%%
\AtBeginSection[]{
\begin{frame}
  \frametitle{Outline}
  \tableofcontents[currentsection]
\end{frame}
}

\section{Motivation}
%\subsection{Cat Behavior}
\input{motivation}
%\subsection{Cat Appearance}
%\input{cat_appearance}
%\subsection{Cat Math}
%\input{cat_math}
\section{Methodology}
\subsection{Basics}
\input{basics}
\subsection{Assumptions}
\input{assums}
\subsection{Limitations}
\input{limits}
\subsection{Scenarios}
\input{scens}
\section{Results}
\subsection{Scenario 1}
\input{s1}
\subsection{Scenario 2}
\input{s2}
\subsection{Scenario 3}
\input{s3}
\subsection{Scenario 4}
\input{s4}
\section{Conclusion}
\input{conclusion}
\section{Future work}
\input{future}
\input{acks}
%%--------------------------------%%
%%--------------------------------%%
\begin{frame}[allowframebreaks]
  \frametitle{References}
  \footnotesize \bibliographystyle{ieeetr}
  { \bibliography{2019-chaube-i2cner-poster} }

\end{frame}

%%--------------------------------%%

\end{document}


text:
\chapter{Feature Extraction}

% \section{Introduction}

Under the term {\em Feature Extraction} we include several techniques
aiming to detect or extract information of low level of abstraction
from images. These {\em features} can be objects : points, lines,
etc. They can also be measures : moments, textures, etc.

\section{Textures}
\subsection{Haralick Descriptors}

This example illustrates the use of the \doxygen{otb}{ScalarImageToTexturesFilter},
which compute the standard Haralick's textural features~\cite{Haralick1973} presented in table~\ref{tab:haralickStandardFeatures},
where $\mu_t$ and $\sigma_t$ are the mean and standard deviation of the row
(or column, due to symmetry) sums, $ \mu =  $ (weighted pixel average)
$ = \sum_{i,j}i \cdot g(i, j) =\sum_{i,j}j \cdot g(i, j) $ due to matrix summetry, and
$ \sigma =  $ (weighted pixel variance) $ = \sum_{i,j}(i - \mu)^2 \cdot g(i, j) =\sum_{i,j}(j - \mu)^2 \cdot g(i, j)  $
due to matrix symmetry.

\begin{table}
\begin{center}
\begin{tabular}{|c|c|}
\hline
& \\
Energy & $ f_1 = \sum_{i,j}g(i, j)^2 $ \\
& \\
\hline
& \\
Entropy & $ f_2 = -\sum_{i,j}g(i, j) \log_2 g(i, j)$, or 0 if $g(i, j) = 0$ \\
& \\
\hline
& \\
Correlation & $ f_3 = \sum_{i,j}\frac{(i - \mu)(j - \mu)g(i, j)}{\sigma^2} $ \\
& \\
\hline
& \\
Difference Moment &  $f_4 = \sum_{i,j}\frac{1}{1 + (i - j)^2}g(i, j) $ \\
& \\
\hline
& \\
Inertia (a.k.a. Contrast) & $ f_5 = \sum_{i,j}(i - j)^2g(i, j) $ \\
& \\
\hline
& \\
Cluster Shade & $ f_6 = \sum_{i,j}((i - \mu) + (j - \mu))^3 g(i, j) $ \\
& \\
\hline
Cluster Prominence & $ f_7 = \sum_{i,j}((i - \mu) + (j - \mu))^4 g(i, j) $ \\
& \\
\hline
& \\
Haralick's Correlation & $ f_8 = \frac{\sum_{i,j}(i, j) g(i, j) -\mu_t^2}{\sigma_t^2} $ \\
& \\
\hline
\end{tabular}
\itkcaption[Haralick features]{Haralick features~\cite{Haralick1973} available in \doxygen{otb}{ScalarImageToTexturesFilter}}
\end{center}
\label{tab:haralickStandardFeatures}
\end{table}

More features are available in \doxygen{otb}{ScalarImageToAdvancedTexturesFilter}.
\relatedClasses
\begin{itemize}
\item \doxygen{otb}{ScalarImageToAdvancedTexturesFilter}
\item \doxygen{otb}{ScalarImageToPanTexTextureFilter}
\item \doxygen{otb}{GreyLevelCooccurrenceIndexedList}
\end{itemize}

\input{TextureExample}

\subsection{PanTex}
\input{PanTexExample}

\subsection{Structural Feature Set}
\input{SFSExample}

\section{Interest Points}
\subsection{Harris detector}
\input{HarrisExample}
\subsection{SIFT detector}
\label{sec:SIFTDetector}
% \input{SIFTFastExample}
\InputIfFileExists{SIFTFastExample.tex}{}{}
\subsection{SURF detector}
\input{SURFExample}

\section{Alignments}
\label{sec:Alignments}
\input{AlignmentsExample}
\section{Lines}
\label{sec:LineDetectors}

\subsection{Line Detection}
\label{sec:LineDetection}
\input{RatioLineDetectorExample}
\input{CorrelationLineDetectorExample}
\input{AsymmetricFusionOfLineDetectorExample}
\input{ParallelLineDetectionExample}

\subsection{Segment Extraction}
\label{sec:SegmentExtraction}
\subsubsection{Local Hough Transform}
\input{LocalHoughExample}
%\input{ExtractSegmentsByStepsExample}
%\input{ExtractSegmentsExample}
%\subsubsection{Line Segment Detector}
%\label{sec:LSD}
%\input{LineSegmentDetectorExample}
%\subsection{Right Angle Detector}
%\label{sec:RightAngleDetector}
%\input{RightAngleDetectionExample}

\section{Density Features}
An interesting approach to feature extraction consists in computing
the density of previously detected features as simple edges or
interest points.
\subsection{Edge Density}
\input{EdgeDensityExample}
\subsection{SIFT Density}
\InputIfFileExists{SIFTDensityExample.tex}{}{}

% \input{SIFTDensityExample}

\section{Geometric Moments}

\subsection{Complex Moments}
\label{sec:ComplexMoments}
The complex geometric moments are defined as:
\begin {equation}
c_{pq} = \int\limits_{-\infty}^{+\infty}\int\limits_{-\infty}^{+\infty}(x + iy)^p(x- iy)^qf(x,y)dxdy,
\label{2.2}
\end{equation}
where $x$ and $y$ are the coordinates of the image $f(x,y)$, $i$ is the
imaginary unit and
$p+q$ is the order of $c_{pq}$. The geometric moments are
particularly useful in the case of scale changes.

\subsubsection{Complex Moments for Images}
\input{ComplexMomentsImageFunctionExample}
\subsubsection{Complex Moments for Paths}
\input{ComplexMomentPathExample}

\subsection{Hu Moments}
\label{sec:HuMoments}
Using the algebraic moment theory, H. Ming-Kuel obtained a family of 7
invariants with respect to planar transformations called Hu invariants,
\cite{hu}. Those invariants can be seen as nonlinear combinations of
the complex moments. Hu invariants have
been very much used in object recognition during the last 30 years,
since they are invariant to rotation, scaling and translation. \cite{flusserinv} gives their expressions :

\begin{equation}
\begin{array}{cccc}
\phi_1 = c_{11};& \phi_2 = c_{20}c_{02};& \phi_3 = c_{30}c_{03};& \phi_4 = c_{21}c_{12};\\
\phi_5 = Re(c_{30}c_{12}^3);& \phi_6 = Re(c_{21}c_{12}^2);& \phi_7 = Im(c_{30}c_{12}^3).&\\
\end{array}
\end{equation}

\cite{dudani} have used these invariants for the recognition of
aircraft silhouettes. Flusser and Suk have used them for image
registration, \cite{flusser_2}.

\subsubsection{Hu Moments for Images}
\input{HuMomentsImageFunctionExample}
%\subsubsection{Hu Moments for Paths}
%\input{HuMomentPathExample}

\subsection{Flusser Moments}
\label{sec:FlusserMoments}
The Hu invariants have been modified and
improved by several authors. Flusser used these moments in order to
produce a new family of descriptors of order higher than 3,
\cite{flusserinv}. These descriptors are invariant to scale and
rotation. They have the following expressions:
\begin {equation}
\begin{array}{ccc}
\psi_1  = c_{11} = \phi_1; &  \psi_2  = c_{21}c_{12} = \phi_4; & \psi_3  = Re(c_{20}c_{12}^2) = \phi_6;\\
\psi_4  = Im(c_{20}c_{12}^2); & \psi_5  = Re(c_{30}c_{12}^3) = \phi_5;
& \psi_6  = Im(c_{30}c_{12}^3) = \phi_7.\\
\psi_7  = c_{22}; & \psi_8  = Re(c_{31}c_{12}^2); & \psi_9  = Im(c_{31}c_{12}~2);\\
\psi_{10} = Re(c_{40}c_{12}^4); & \psi_{11} = Im(c_{40}c_{12}^2). &\\

\end{array}
\end {equation}

\textbf{Examples}
\subsubsection{Flusser Moments for Images}
\input{FlusserMomentsImageFunctionExample}
%\subsubsection{Flusser Moments for Paths}
%\input{FlusserMomentPathExample}

\section{Road extraction}
\label{sec:RoadExtraction}

Road extraction is a critical feature for an efficient use of high resolution satellite images. There are many applications of road extraction: update of GIS database, reference for image registration, help for identification algorithms and rapid mapping for example.  Road network can be used to register an optical image with a map or an optical image with a radar image for example. Road network extraction can help for other algorithms: isolated building detection, bridge detection. In these cases, a rough extraction can be sufficient. In the context of response to crisis, a fast mapping is necessary: within 6~hours, infrastructures for the designated area are required. Within this timeframe, a manual extraction is inconceivable and an automatic help is necessary.

\subsection{Road extraction filter}

\input{ExtractRoadExample}

\subsection{Step by step road extraction}

\input{ExtractRoadByStepsExample}

% \section{Seam carving}
% \label{sec:SeamCarving}
%
% \input{SeamCarvingExample}
%
% \input{SeamCarvingOtherExample}

\section{Cloud Detection}
\input{CloudDetectionExample}

max_stars_repo_name: xcorail/OTB

max_issues_repo_name: xcorail/OTB

max_forks_repo_name: xcorail/OTB


text:
%-------------------------
% Resume in Latex
% Author : Sourabh Bajaj
% License : MIT
%------------------------

\documentclass[letterpaper,11pt]{article}

\usepackage{latexsym}
\usepackage[empty]{fullpage}
\usepackage{titlesec}
\usepackage{marvosym}
\usepackage[usenames,dvipsnames]{color}
\usepackage{verbatim}
\usepackage{enumitem}
\usepackage[pdftex]{hyperref}
\usepackage{fancyhdr}

\pagestyle{fancy}
\fancyhf{} % clear all header and footer fields
\fancyfoot{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

% Adjust margins
\addtolength{\oddsidemargin}{-0.375in}
\addtolength{\evensidemargin}{-0.375in}
\addtolength{\textwidth}{1in}
\addtolength{\topmargin}{-.5in}
\addtolength{\textheight}{1.0in}

\urlstyle{same}

\raggedbottom
\raggedright
\setlength{\tabcolsep}{0in}

% Sections formatting
\titleformat{\section}{
  \vspace{-1pt}\scshape\raggedright\large
}{}{0em}{}[\color{black}\titlerule \vspace{-1pt}]

%-------------------------
% Custom commands
\newcommand{\resumeItem}[2]{
  \item\small{
    \textbf{#1}{: #2 \vspace{-1pt}}
  }
}

\newcommand{\resumeSubheading}[4]{
  \vspace{-1pt}\item
    \begin{tabular*}{0.97\textwidth}{l@{\extracolsep{\fill}}r}
      \textbf{#1} & #2 \\
      \textit{\small#3} & \textit{\small #4} \\
    \end{tabular*}\vspace{-1pt}
}

\newcommand{\resumeSubItem}[2]{\resumeItem{#1}{#2}\vspace{-1pt}}

\renewcommand{\labelitemii}{$\circ$}

\newcommand{\resumeSubHeadingListStart}{\begin{itemize}[leftmargin=*]}
\newcommand{\resumeSubHeadingListEnd}{\end{itemize}}
\newcommand{\resumeItemListStart}{\begin{itemize}}
\newcommand{\resumeItemListEnd}{\end{itemize}\vspace{-1pt}}

%-------------------------------------------
%%%%%%  CV STARTS HERE  %%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

%----------HEADING-----------------
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}
  \textbf{\href{https://www.linkedin.com/in/cheuk-lau-31311626/}{\Large Cheuk Lau}} & Email : \href{mailto:cheuk.lau@aggienetwork.com}{cheuk.lau@aggienetwork.com}\\
  \href{https://www.linkedin.com/in/cheuk-lau-31311626/}{https://www.linkedin.com/in/cheuk-lau-31311626/} & Mobile : +1-518-915-8165 \\
\end{tabular*}

%-----------EXPERIENCE-----------------
\section{Experience}
  \resumeSubHeadingListStart

    \resumeSubheading
      {Insight}{Palo Alto, CA}
      {DevOps Fellow}{Jul. 2018 - Present}
      \resumeItemListStart
        \resumeItem{DevOps Pipeline}
          {Automatically deployed and monitored a data engineering pipeline handling 500GB of spatial-temporal data using a Terraform/Packer/Prometheus stack.}
       \resumeItem{DevOps Deep Dive}
          {Increased scalability and fault tolerance by using AWS auto-scaling and elastic load balancers across multiple availability zones.}
      \resumeItemListEnd

    \resumeSubheading
      {Lawrence Livermore National Laboratory}{Livermore, CA}
      {Computational Physicist}{Jul. 2016 - Jul. 2018}
      \resumeItemListStart
        \resumeItem{Code Verification}
          {Automated testing of scientific codes by creating test scripts comparing computational to analytic and experimental results.}
        \resumeItem{Code Developer}
          {Furthered the capability of scientific codes in multiple disciplines e.g., plasma physics, fluid dynamics, radiation transport by implementing and testing new methods from academic journals.}
        \resumeItem{Mentor}
          {Provided guidance and technical direction to PhD-level summer interns.}
      \resumeItemListEnd

    \resumeSubheading
      {Texas A\&M University}{College Station, TX}
      {National Excellence Fellow}{Aug. 2011 - May. 2016}
      \resumeItemListStart
        \resumeItem{Code Developer}
          {Improved the computational efficiency of radiation transport codes by developing adaptive mesh refinement strategies.}
      \resumeItemListEnd

    \resumeSubheading
      {Knolls Atomic Power Laboratory}{Niskayuna, NY}
      {Nuclear Engineer}{Aug. 2008 - Aug. 2011}
      \resumeItemListStart
        \resumeItem{Code Developer}
          {Furthered the capability of radiation transport codes by implementing and testing new methods from academic journals.}
        \resumeItem{Field Testing}
          {Validated radiation transport codes by gathering instrumentation data from aircraft carriers and submarines for comparison.}
      \resumeItemListEnd

  \resumeSubHeadingListEnd

%-----------EDUCATION-----------------
\section{Education}
  \resumeSubHeadingListStart
    \resumeSubheading
      {Texas A\&M University}{College Station, TX}
      {Doctorate of Philosophy in Nuclear Engineering}{Aug. 2011 -- May. 2016}
    \resumeSubheading
      {Pennsylvania State University}{University Park, PA}
      {Master of Science in Nuclear Engineering}{Jan. 2009 -- Dec. 2010}
    \resumeSubheading
      {University of Illinois}{Urbana-Champaign, IL}
      {Bachelor of Science in Nuclear Engineering}{Aug. 2004 -- May. 2008}
  \resumeSubHeadingListEnd

%-----------PROJECTS-----------------
\section{Projects}
  \resumeSubHeadingListStart
    \resumeSubItem{Catalog App}
      {\href{https://github.com/cheuklau/catalog_app}{\bf https://github.com/cheuklau/catalog\_app} App built on Flask demonstrating create, read, update and delete (CRUD) functionalities using an SQL backend with third-party authentication.}
    \resumeSubItem{Neighborhood App}
      {\href{https://github.com/cheuklau/neighborhood_app}{\bf https://github.com/cheuklau/neighborhood\_app} App demonstrating the use of Javascript libraries (Knockout JS) and multiple third-party APIs (Google Maps and New York Times).}
  \resumeSubHeadingListEnd

%
%--------CERTIFICATIONS------------
\section{Certifications -- available upon request}
  \resumeSubHeadingListStart
    \resumeSubItem{Udemy DevOps}
      {Series of courses on DevOp tools (Docker, Kubernetes, Jenkins, Puppet, Terraform, Prometheus).}
    \resumeSubItem{Udacity Full-Stack Engineering Nano-Degree}
      {Certificate covering both front and backend development along with server deployment. (HTML, CSS, Javascript, jQuery, Knockout JS, Flask, SQL, Apache, AWS).}
  \resumeSubHeadingListEnd

%-------------------------------------------
\end{document}

max_stars_repo_name: cheuklau/resume

max_issues_repo_name: cheuklau/resume

max_forks_repo_name: cheuklau/resume


text:
\documentclass{article}[12pt]
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage[margin=2.5cm]{geometry}
\newcommand{\ignore}[1]{}
\begin{document}
\begin{center}
\textbf{\huge{Getting Started With Picat}}\\
\end{center}
\rule{450pt}{1pt}

\vspace*{5mm}
\begin{center}
{\Large Bo Yuan Zhou}
\end{center}

\vspace*{5mm}

\noindent
\textit{The following instructions are for Windows. They also apply to Unix systems, except that the archive name is different, the executable is named \texttt{picat}, the way to open a command terminal is different, and the way to include the executable in the default path is different.}

\section*{\Large{Install Picat}}
\begin{enumerate}
\item Download the zip or gz archive file for from: \url{http://picat-lang.org}.
\item Extract the files of the archive to a directory, say \verb+c:\+ on Windows. The file named \verb+picat.exe+ is the executable of the Picat system.
\item For convenience, add the directory that contains \verb+picat.exe+ to the environment variable \texttt{PATH} so that you can start Picat from any working directory.
  \ignore{
Please refer to the following Web page for instructions for updating environment variables.
\begin{tabbing}
aa \= aaa \= aaa \= aaa \= aaa \= aaa \= aaa \kill
\> \> \verb+http://www.itechtalk.com/thread3595.html+
\end{tabbing}
Once you're finished, the directory that you are in should look like this:
\\
\\
\includegraphics[width=6in]{tutorial_2.jpg}
\\
}
\end{enumerate}

\section*{\Large{Start and Quit Picat}}
\begin{enumerate}
\item Open an OS terminal. This can be done by selecting \verb+Start->Run+ and typing \verb+cmd+, or selecting
\begin{tabbing}
aa \= aaa \= aaa \= aaa \= aaa \= aaa \= aaa \kill
\> \> \verb+Start->Programs->Accessories->Command Prompt+.
\end{tabbing}

\item Change the working directory. In the following, the working directory is assumed to be \verb+c:\Picat\work\+. The command DOS \texttt{mkdir} can be used to create directories.

\item Type \verb+picat+ to start the system. If Windows does not recognize the command, then you need to edit the environment variable \texttt{PATH} or type the full path of the executable \verb+picat.exe+. Once Picat is started, the system shows the prompt \verb+Picat>+ and is ready to accept queries.

\item Type \texttt{help} to see the help information.

\item Type \texttt{halt} or \verb+ctrl-d+ (control-d) to exit the system.
\end{enumerate}

\includegraphics[width=6in]{get_started_1.jpg}

\section*{\Large{Load and Run Programs}}
\indent For the sake of demonstration we'll create a Picat function to sum the
even-valued terms of the Fibonacci sequence whose values do not exceed four million.

\begin{figure}[htb]
\begin{verbatim}
main =>
    S = 0,
    I = 1,
    F = fib(I),
    while (F <= 4000000)
        if (F mod 2 == 0) then
            S := S+F
        end,
        I := I+1,
        F := fib(I)
    end,
    printf("Sum of the even-valued terms is %w%n",S).

main([A1]) =>
    printf("fib(%s)=%w%n",A1,A1.to_integer().fib()).

table
fib(1) = 1.
fib(2) = 2.
fib(N) = fib(N-1)+fib(N-2).
\end{verbatim}
\end{figure}
\vspace*{-5mm}

\begin{enumerate}
\item Create a file named \texttt{fib.pi} in the directory \verb+c:\Picat\work\+.
\item Start Picat.
\item Compile and load the file using \texttt{cl(fib)}.
\item Type \texttt{main} to run the program.
\item You can also call the function {\tt fib} by typing a query such as \verb+X=fib(100)+.
\end{enumerate}

\includegraphics[width=6in]{get_started_2.jpg}

\clearpage

\section*{\Large{Debug}}
\begin{enumerate}
\item Start Picat.
\item Enable debug mode with \texttt{debug}.
\item Compile and run the file using \texttt{cl(fib)}.
\item Type \texttt{main} to run the program.
\item At the entrance and exit of each call, the debugger displays the call and waits for a command. For the available debugging commands, type the question mark \texttt{?}.
\item Use the command \texttt{spy fib} to set a spy point on the \texttt{fib} function.
\end{enumerate}
Note that only programs compiled in debug mode can be traced or spied on.

\includegraphics[width=6in]{get_started_3.jpg}

\includegraphics[width=6in]{get_started_4.jpg}

\section*{\Large{Run Programs Directly}}
\begin{enumerate}
\item Type the DOS command \texttt{picat fib}. The Picat system will execute the \texttt{main/0} predicate defined in \texttt{fib.pi}.

\item Type the DOS command \texttt{picat fib 100}. The Picat system will execute the \texttt{main/1} predicate, which calls the \texttt{fib} function.
\end{enumerate}

\includegraphics[width=6in]{get_started_5.jpg}

If the command line contains arguments after the file name, then the Picat system calls \texttt{main/1}, passing all the arguments after the file name to the predicate as a list of strings.
\end{document}


text:
\documentclass[12pt]{article}

\usepackage{tabularx}
\usepackage{booktabs}

\title{SE 3XA3: Problem Statement\\ScrumBot}
\author{
	Team 304, ScrumBot
		\\ Arkin Modi, modia1
        \\ Leon So, sol4
        \\ Timothy Choy, choyt2
}
\date{Last Updated: January 23, 2020}

\begin{document}

\begin{table}[hp]
    \caption{Revision History} \label{TblRevisionHistory}
    \begin{tabularx}{\textwidth}{llX}
        \toprule
            \textbf{Date} & \textbf{Developer(s)} & \textbf{Change}\\
        \midrule
            January 20, 2020 & Leon So & Copy template, rough draft\\
            January 23, 2020 & Everyone & Update problem statement\\
            January 23, 2020 & Everyone & Add stakeholders and headings\\
        \bottomrule
    \end{tabularx}
\end{table}

\newpage
\maketitle

\section{Problem Statement}
Scrum is an agile process framework widely used in industry for managing and coordinating collaborative projects. Scrum being a process based on the agile development method, follows a highly iterative process and often has heavy customer involvement, therefore it can be often be complex. It is often difficult to manage communication and coordination within the project due to the complexity of agile development processes. With Discord being a popular communication tool used by many teams of software developers today, our team would like to develop a solution to directly integrate the management of a scrum development cycle into the communication channels. Our solution will allow for better management and organization of retrospectives, stand-ups, and other scrum/agile processes used by software teams during routine communication.\\

As a result, a well-integrated scrum management system may reduce inefficiencies surrounding the management of projects using the scrum framework, as well as strengthen communication within the agile process. This will help software development firms reduce costs and achieve better workflow. Therefore, all members of the development and management team will be able to benefit from a scrum management system that is directly integrated into the communication channel.

\section{Stakeholders}
This solution will be used in an environment where the development team uses the scrum agile framework and uses Discord as their routine communication channel.
\begin{itemize}
  \item Roles in Scrum process:
  \begin{itemize}
    \item Product Owner(s)
    \begin{itemize}
      \item[] The product owner(s) will benefit from the reduced development time through improved communication and efficient management of the project. The product owner(s) will also benefit as their ideas and requirements will be better organized, thus helping the development team more efficiently achieve the goals of the product owner(s).
    \end{itemize}
    \item Scrum Master
    \begin{itemize}
      \item[] The scrum master will be better able to coordinate scrum plans and division of tasks, as well as routine communication (i.e. retrospectives and stand-ups). With a scrum management system directly implemented into the communication channels, the scrum master will be able to directly manage the meeting information and their scrum development cycle during communication.
    \end{itemize}
    \item Development Team
    \begin{itemize}
      \item[] The development team will be able to more easily follow through on tasks assigned by the scrum master. The development team may easily refer to any relevant articles or information regarding their project. This will reduce inefficiencies and speedup communication within the development team. It will also reduce confusion, as all information concerning the development cycle will be available through their routine communication channel (Discord).
    \end{itemize}
  \end{itemize}
  \item Other stakeholders:
  \begin{itemize}
    \item Development Firm
    \begin{itemize}
      \item[] The development firm will benefit through centralizing project resources, therefore improving the organization and management of the project. The development firm will therefore be able to reduce any costs associated with inefficiencies during the development process. This will also improve communication between members of the development firm.
    \end{itemize}
  \end{itemize}
\end{itemize}
\end{document}


text:
\documentclass{article}
\usepackage[utf8]{inputenc}

\title{PS6 Hoffman}
\author{Abigail Hoffman }
\date{March 2021}

\usepackage{natbib}
\usepackage{graphicx}

\begin{document}

\maketitle

\section{PS 6 Questions}

For my data, I chose to clean a data set needed for my masters LIS class. I am still debating on my topic for this course, so I chose something that would help progress my work in another class.

First data I grabbed from the Gutenberg open access classics. The first grouping was from HG Wells books: The Time Machine, The War of the Worlds, The Invisible Man, and The Island of Doctor Moreau.
I tokenized the book into one word per line and removed all the stop words such as "the" "of" "to".Renamed the variables in the data from the PMF of each word.Sorted by descending for better visualization. I only used words that had frequencies larger than 0.002.
\begin{figure}[h!]
\centering
\includegraphics[scale=0.8]{PS6a_Hoffman.png}
\caption{HG Wells Word frequencies}
This image helps show the frequency of HG Wells common words from each book. This helps the audience understand his style of writing.
\label{fig:PS6a}
\end{figure}

I created a Word Cloud of HG Well's text just for fun. Hope you enjoy.
\begin{figure}[h!]
\centering
\includegraphics[scale=0.75]{PS6d_Hoffman.png}
\caption{WordCloud}
Word clouds are visuals that use frequency to increase and bold words in the cloud. This just transforms data into something more "fun".
\label{fig:WordCloud}
\end{figure}

I then, repeated the process for Bronte sisters' books: Jane Eyre, Wuthering Heights, The Tenant of Wildfell Hall, Villette, and Agnes Grey.
\begin{figure}[h!]
\centering
\includegraphics[scale=0.8]{PS6b_Hoffman.png}
\caption{Bronte sisters Word frequencies}
This image helps show the frequency of the Bronte sister's common words from the books pulled. This helps the audience understand their style of writing.
\label{fig:PS6b}
\end{figure}

Finally, I arranged each individual visual plot to be side by side for an easier compare and contrast.

\begin{figure}[h!]
\centering
\includegraphics[scale=0.8]{PS6c_Hoffman.png}
\caption{Left: HG Wells Right: Bronte Sisters}
This visual allows the audience to easily compare and contrast the word frequencies. It shows that on the left HG Wells used a wider variety meanwhile Bronte sisters on the right used a more equal distribution of words.
\label{fig:PS6c}
\end{figure}
\section{PS 6 Visuals}

\end{document}


text:
\chapter{UV RRS measurements of nucleic acids}

This chapter represents a brief overview of the published studies, summarizes
the main assets to NA research, and draws attention to possible pitfalls.
In addition to the results achieved, great attention is paid to the used
apparatus and the experiment's methodology, data treatment, and interpretation.

\input{introduction/uvrr_na_experiment}
\input{introduction/uvrr_na_studies}
\input{introduction/uvrr_na_important}


text:
\documentclass[a4paper]{article}
\usepackage{amsmath}

\hbadness=99999
\voffset=-1in
\oddsidemargin=5pt
\textwidth=450pt
\textheight=700pt

\title{Linear Algebra: Week 2 Notes and Exercises}
\author{Christopher Aytona}

\begin{document}
\begin{center}
\Huge{Week 2 Notes and Exercises}
\end{center}

\section{Notes}
\textbf{Matrix operations}\\

Calculate $A+B$ and $A-B$ or state why you can't.\\

a) \[ A=
\begin{bmatrix}
1&0&4\\
-1&2&2\\
0&-2&-3
\end{bmatrix},
B=
\begin{bmatrix}
-1&3&5\\
2&2&-3\\
2&-3&0
\end{bmatrix}
\]
\[ A+B=
\begin{bmatrix}
0&3&9\\
1&4&-1\\
2&-5&-3
\end{bmatrix},
A-B=
\begin{bmatrix}
2&-3&-1\\
-3&0&5\\
-2&1&-3
\end{bmatrix}
\]\\

b) \[ A=
\begin{bmatrix}
-1&0&5&6\\
-4&-3&5&-2
\end{bmatrix},
B=
\begin{bmatrix}
-3&9&-3&4\\
0&-2&-1&2
\end{bmatrix}
\]
\[ A+B=
\begin{bmatrix}
-4&9&2&10\\
-4&-5&4&0
\end{bmatrix}
\]\\

Exercises find $AB$ or state why it doesn't exist.\\

a) \[A=
\begin{bmatrix}
1&0&1\\
0&-1&-1\\
-1&1&0
\end{bmatrix},
B=
\begin{bmatrix}
0&1&-1\\
1&-1&0\\
-1&0&1
\end{bmatrix}
\]

b) \[A=
\begin{bmatrix}
4&-3\\
3&-1\\
0&-2\\
-1&5
\end{bmatrix},
B=
\begin{bmatrix}
-1&3&2&2\\
0&-1&4&3
\end{bmatrix}
\]\\

\section{Exercise 2.1}
Questions 1,2,3,7,8,9,10,12\\

In Exercise 1 and 2, compute each matrix sum or product if it is defined. If an expression is undefined, explain why. Let
$A=
\begin{bmatrix}
2&0&-1\\
4&-5&2
\end{bmatrix},
B=
\begin{bmatrix}
7&-5&1\\
1&-4&-3
\end{bmatrix},
C=
\begin{bmatrix}
1&2\\
-2&1
\end{bmatrix},
D=
\begin{bmatrix}
3&5\\
-1&4
\end{bmatrix},
E=
\begin{bmatrix}
-5\\
3
\end{bmatrix}
$.\\

\textbf{Sum}\\
\[A+B =
\begin{bmatrix}
2+7&0+(-5)&-1+1\\
4+1&-5+(-4)&2+(-3)
\end{bmatrix}=
\begin{bmatrix}
9&-5&0\\
5&-9&-1
\end{bmatrix}
\]

\[C+D =
\begin{bmatrix}
1+3&2+5\\
-2+(-1)&1+4
\end{bmatrix}=
\begin{bmatrix}
4&2\\
-3&5
\end{bmatrix}
\]
Rest of matrices can't be added together since they don't have the same dimensions.\\

\textbf{Product}\\
\[C_{2\times2} \cdot A_{2\times3}=
\begin{bmatrix}
1\cdot2+2\cdot4&1\cdot 0+2\cdot-5&1\cdot-1+2\cdot2\\
-2\cdot2+1\cdot4&-2\cdot0+1\cdot-5&-2\cdot-1+1\cdot2
\end{bmatrix}=
\begin{bmatrix}
10&-10&3\\
0&-5&4
\end{bmatrix}
\]

\[C_{2\times2} \cdot B_{2\times3}=
\begin{bmatrix}
1\cdot7+2\cdot1&1\cdot-5+2\cdot-4&1\cdot1+2\cdot-3\\
-2\cdot7+1\cdot1&-2\cdot-5+1\cdot-4&-2\cdot1+1\cdot-3
\end{bmatrix}=
\begin{bmatrix}
9&-13&-5\\
-13&6&-5
\end{bmatrix}
\]

\[C_{2\times2} \cdot D_{2\times2}=
\begin{bmatrix}
1\cdot3+2\cdot5&1\cdot5+2\cdot4\\
-2\cdot3+1\cdot-1&-2\cdot5+1\cdot4
\end{bmatrix}=
\begin{bmatrix}
13&13\\
-7&-5
\end{bmatrix}
\]

\[C_{2\times2} \cdot E_{2\times1}=
\begin{bmatrix}
1\cdot-5+2\cdot3\\
-2\cdot-5+1\cdot3
\end{bmatrix}=
\begin{bmatrix}
1\\
13
\end{bmatrix}
\]

\[D_{2\times2} \cdot A_{2\times3}=
\begin{bmatrix}
3\cdot2+5\cdot4&3\cdot0+5\cdot-5&3\cdot-1+5\cdot2\\
-1\cdot2+4\cdot4&-1\cdot0+4\cdot-5&-1\cdot-1+4\cdot2
\end{bmatrix}=
\begin{bmatrix}
26&-25&7\\
6&-20&9
\end{bmatrix}
\]

\[D_{2\times2} \cdot B_{2\times3}=
\begin{bmatrix}
3\cdot7+5\cdot1&3\cdot-5+5\cdot-4&3\cdot1+5\cdot-3\\
-1\cdot7+4\cdot1&-1\cdot-5+4\cdot-4&-1\cdot1+4\cdot-3
\end{bmatrix}=
\begin{bmatrix}
26&-35&-12\\
-3&-11&-13
\end{bmatrix}
\]

\[D_{2\times2} \cdot E_{2\times1}=
\begin{bmatrix}
3\cdot-5+5\cdot3\\
-1\cdot-5+4\cdot3
\end{bmatrix}=
\begin{bmatrix}
0\\
17
\end{bmatrix}
\]
Rest of matrices can't have a dot product since they don't have the required dimensions.\\

1) \\
\[-2A = 2\cdot
\begin{bmatrix}
2&0&-1\\
4&-5&2
\end{bmatrix}=
\begin{bmatrix}
2\cdot2&2\cdot0&2\cdot-1\\
2\cdot4&2\cdot-5&2\cdot2
\end{bmatrix}=
\begin{bmatrix}
4&0&-2\\
8&-10&2
\end{bmatrix}
\]

\[B - 2A=
\begin{bmatrix}
7&-5&1\\
1&-4&-3
\end{bmatrix}+
\begin{bmatrix}
4&0&-2\\
8&-10&2
\end{bmatrix}=
\begin{bmatrix}
11&-5&-1\\
9&-14&-1
\end{bmatrix}
\]\\
$A_{2\times3} \cdot C_{2\times2}$ can't have a dot product because they don't have the proper dimensions.\\
\[C D=
\begin{bmatrix}
1\cdot3+2\cdot5&1\cdot5+2\cdot4\\
-2\cdot3+1\cdot-1&-2\cdot5+1\cdot4
\end{bmatrix}=
\begin{bmatrix}
13&13\\
-7&-5
\end{bmatrix}
\]\\

2) \\

\[A +2B=
\begin{bmatrix}
2&0&-1\\
4&-5&2
\end{bmatrix}+2
\begin{bmatrix}
7&-5&1\\
1&-4&-3
\end{bmatrix}=
\begin{bmatrix}
2&0&-1\\
4&-5&2
\end{bmatrix}+
\begin{bmatrix}
14&-10&2\\
2&-8&-6
\end{bmatrix}=
\begin{bmatrix}
16&-10&1\\
6&-13&-4
\end{bmatrix}
\]

$3C-E$ can't have a sum because they don't have the same dimensions.\\

\[C \cdot B=
\begin{bmatrix}
1\cdot7+2\cdot1&1\cdot-5+2\cdot-4&1\cdot1+2\cdot-3\\
-2\cdot7+1\cdot1&-2\cdot-5+1\cdot-4&-2\cdot1+1\cdot-3
\end{bmatrix}=
\begin{bmatrix}
9&-13&-5\\
-13&6&-5
\end{bmatrix}
\]

$EB$ can't have a dot product because they don't have the proper dimensions.\\

3) Let $A = \begin{bmatrix}
4&-1\\
5&-2
\end{bmatrix}$. Compute $3I_2 - A$ and $(3I_2)A$.

\[3I_2-A=3\cdot
\begin{bmatrix}
1&0\\
0&1
\end{bmatrix}-
\begin{bmatrix}
4&-1\\
5&-2
\end{bmatrix}=
\begin{bmatrix}
3&0\\
0&3
\end{bmatrix}-
\begin{bmatrix}
4&-1\\
5&-2
\end{bmatrix}=
\begin{bmatrix}
-1&0\\
-5&5
\end{bmatrix}
\]

\[(3I_2)A =
\begin{bmatrix}
3&0\\
0&3
\end{bmatrix}\cdot
\begin{bmatrix}
4&-1\\
5&-2
\end{bmatrix}=
\begin{bmatrix}
3\cdot4+0\cdot5&3\cdot-1+0\cdot-2\\
0\cdot4+3\cdot5&0\cdot-1+3\cdot-2
\end{bmatrix}=
\begin{bmatrix}
12&-3\\
15&-6
\end{bmatrix}
\]\\

7) If a matrix $A$ is $5\times3$ and the product $AB$ is $5\times7$, what is the size of $B$?\\
$A_{5\times3} \cdot B_{x \times y}=AB_{5\times7}$. To be able to multiply $AB$, the column number of $A$ has to be the same as the row number of $B$. Since $AB$ has a size of $5\times3$, the row size came from the row size of $A$ and the column size came from the column size $B$. Therefore, $B_{3\times7}$.\\

8) How many rows does $B$ have if $BC$ is a $3\times4$ matrix?\\
$B = 3$ rows.\\

9) Let $A = \begin{bmatrix}
2&5\\
-3&1
\end{bmatrix}, B = \begin{bmatrix}
4&-5\\
3&k
\end{bmatrix}$. What value(s) of $k$, if any, will make $AB = BA$?\\

\[A \cdot B=
\begin{bmatrix}
2\cdot4+5\cdot3&2\cdot-5+5\cdot k\\
-3\cdot4+1\cdot3&-3\cdot-5+1\cdot k
\end{bmatrix}=
\begin{bmatrix}
23&5k-10\\
-9&k+15
\end{bmatrix}
\]
\[B \cdot A=
\begin{bmatrix}
4\cdot2+(-5)\cdot-3&4\cdot5+(-5)\cdot1\\
3\cdot2+k\cdot-3&3\cdot5+k\cdot1
\end{bmatrix}=
\begin{bmatrix}
23&15\\
-3k+6&k+15
\end{bmatrix}
\]
\[if
\begin{bmatrix}
23&5k-10\\
-9&k+15
\end{bmatrix}=
\begin{bmatrix}
23&15\\
-3k+6&k+15
\end{bmatrix}, then
\begin{bmatrix}
23&5k-10\\
-9&k+15
\end{bmatrix} -
\begin{bmatrix}
23&15\\
-3k+6&k+15
\end{bmatrix} =
\begin{bmatrix}
0&0\\
0&0
\end{bmatrix}
\]
\[AB - BA =
\begin{bmatrix}
23-(23)&5k-10-(15)\\
-9-(-3k+6)&k+15-(k+15)
\end{bmatrix}=
\begin{bmatrix}
0&5k-25\\
3k-15&0
\end{bmatrix}
\]
$$5k-25=0, 5k=25, k=5$$
$$3k-15=0, 3k=15, k=5$$\\

10) Let $A =
\begin{bmatrix}
2&-3\\
-4&6
\end{bmatrix},
B =
\begin{bmatrix}
8&4\\
5&5
\end{bmatrix},
C =
\begin{bmatrix}
5&-2\\
3&1
\end{bmatrix}$. Verify that $AB = AC$ and yet $B \neq C$.\\

The cancellation laws do not hold for matrix multiplication. Such that $$AB=AC$$ $$\frac{A}{A}B = C$$ $$I_AB = C$$ $$B = C$$\\
\[A \cdot B =
\begin{bmatrix}
2\cdot8+(-3)\cdot5&2\cdot4+(-3)\cdot5\\
-4\cdot8+6\cdot5&-4\cdot4+6\cdot5
\end{bmatrix} =
\begin{bmatrix}
1&-7\\
-2&14
\end{bmatrix}
\]

\[A \cdot C =
\begin{bmatrix}
2\cdot5+(-3)\cdot3&2\cdot-2+(-3)\cdot1\\
-4\cdot5+6\cdot3&-4\cdot-2+6\cdot1
\end{bmatrix} =
\begin{bmatrix}
1&-7\\
-2&14
\end{bmatrix}
\]

\[
\begin{bmatrix}
1&-7\\
-2&14
\end{bmatrix} =
\begin{bmatrix}
1&-7\\
-2&-2
\end{bmatrix}
\]\\

12) Let $A =
\begin{bmatrix}
3&-6\\
-1&2
\end{bmatrix}$. Construct a $2\times2$ matrix $B$ such that $AB$ is the zero matrix. Use two different non-zero columns for $B$.\\

Consider $B = \begin{bmatrix}
b_1&b_2\\
b_3&b_4
\end{bmatrix}$, then $Ab_1 = 0$ and $Ab_2 = 0$ or $Ab_3 = 0$ and $Ab_4 = 0$.

\[B =
\begin{bmatrix}
2&2\\
1&1
\end{bmatrix}
\]

\[A \cdot B =
\begin{bmatrix}
3\cdot2+(-6)\cdot1&3\cdot2+(-6)\cdot1\\
-1\cdot2+2\cdot1&-1\cdot2+2\cdot1
\end{bmatrix} =
\begin{bmatrix}
0&0\\
0&0
\end{bmatrix}
\]\\

\section{Exercise 2.2}
Questions 1,2,3,4,5,6,7a,8,29-32\\

Find the inverse of the matrices in Exercise 1-4.\\

1) $\begin{bmatrix}
8&6\\
5&4
\end{bmatrix}$

\[A^{-1} =
\begin{bmatrix}
8&6&|&1&0\\
5&4&|&0&1
\end{bmatrix} = \frac{1}{8}R_1 , -\frac{1}{5}R_2
\begin{bmatrix}
\frac{1}{8}(8)&\frac{1}{8}(6)&|&\frac{1}{8}(1)&\frac{1}{8}(0)\\
-\frac{1}{5}(5)&-\frac{1}{5}(4)&|&-\frac{1}{5}(0)&-\frac{1}{5}(1)
\end{bmatrix}\]
\[
\begin{bmatrix}
1&\frac{3}{4}&|&\frac{1}{8}&0\\
-1&-\frac{4}{5}&|&0&-\frac{1}{5}
\end{bmatrix} = R_2+R_1
\begin{bmatrix}
1&\frac{3}{4}&|&\frac{1}{8}&0\\
-1+1&-\frac{4}{5}+\frac{3}{4}&|&0+\frac{1}{8}&-\frac{1}{5}+0
\end{bmatrix}
\]
\[
\begin{bmatrix}
1&\frac{3}{4}&|&\frac{1}{8}&0\\
0&-\frac{1}{20}&|&\frac{1}{8}&-\frac{1}{5}
\end{bmatrix} =R_2\times20
\begin{bmatrix}
1&\frac{3}{4}&|&\frac{1}{8}&0\\
0\times-20&-\frac{1}{20}\times-20&|&\frac{1}{8}\times-20&-\frac{1}{5}\times-20
\end{bmatrix}
\]
\[
\begin{bmatrix}
1&\frac{3}{4}&|&\frac{1}{8}&0\\
0&1&|&-2\frac{1}{2}&4
\end{bmatrix} = R_1-\frac{3}{4}R_2
\begin{bmatrix}
1-\frac{3}{4}(0)&\frac{3}{4}-\frac{3}{4}(1)&|&\frac{1}{8}-\frac{3}{4}(-\frac{5}{2})&0-\frac{3}{4}(4)\\
0&1&|&-2\frac{1}{2}&4
\end{bmatrix}
\]
\[A^{-1} =
\begin{bmatrix}
1&0&|&2&-3\\
0&1&|&-2\frac{1}{2}&4
\end{bmatrix}
\]\\

2) $\begin{bmatrix}
3&2\\
7&4
\end{bmatrix}$

\[A^{-1} =
\begin{bmatrix}
3&2&|&1&0\\
7&4&|&0&1
\end{bmatrix} = R_1-\frac{1}{2}R_2
\begin{bmatrix}
3-\frac{1}{2}(7)&2-\frac{1}{2}(4)&|&1-\frac{1}{2}(0)&0-\frac{1}{2}(1)\\
7&4&|&0&1
\end{bmatrix}
\]
\[
\begin{bmatrix}
-\frac{1}{2}&0&|&1&-\frac{1}{2}\\
7&4&|&0&1
\end{bmatrix} = R_1\times-2
\begin{bmatrix}
-\frac{1}{2}\times-2&0\times-2&|&1\times-2&-\frac{1}{2}\times-2\\
7&4&|&0&1
\end{bmatrix}
\]
\[
\begin{bmatrix}
1&0&|&-2&1\\
7&4&|&0&1
\end{bmatrix} = R_2-7(R_1)
\begin{bmatrix}
1&0&|&-2&1\\
7-7(1)&4-7(0)&|&0-7(-2)&1-7(1)
\end{bmatrix}
\]
\[
\begin{bmatrix}
1&0&|&-2&1\\
0&4&|&14&-6
\end{bmatrix}= \frac{1}{4}R_2
\begin{bmatrix}
1&0&|&-2&1\\
\frac{1}{4}(0)&\frac{1}{4}(4)&|&\frac{1}{4}(14)&\frac{1}{4}(-6)
\end{bmatrix}
\]
\[A^{-1} =
\begin{bmatrix}
1&0&|&-2&1\\
0&1&|&3\frac{1}{2}&-1\frac{1}{2}
\end{bmatrix}
\]\\

3) $\begin{bmatrix}
8&5\\
-7&-5
\end{bmatrix}
$

\[A^{-1} =
\frac{1}{-40-(-35)}
\begin{bmatrix}
8&5\\
-7&-5
\end{bmatrix} =
-\frac{1}{5}
\begin{bmatrix}
8&5\\
-7&-5
\end{bmatrix} =
\begin{bmatrix}
-\frac{8}{5}&-1\\
\frac{7}{5}&1
\end{bmatrix}
\]\\

4) $\begin{bmatrix}
3&-4\\
7&-8
\end{bmatrix}$

\[A^{-1} =
\frac{1}{-24-(28)}
\begin{bmatrix}
3&-4\\
7&-8
\end{bmatrix} =
\frac{1}{4}
\begin{bmatrix}
3&-4\\
7&-8
\end{bmatrix} =
\begin{bmatrix}
\frac{3}{4}&-1\\
\frac{7}{4}&-2
\end{bmatrix}
\]
\end{document}

max_stars_repo_name: aytona/LinearAlgebra

max_issues_repo_name: aytona/LinearAlgebra

max_forks_repo_name: aytona/LinearAlgebra