\documentclass[landscape]{slides}
\usepackage[kasre=off,tashdid=off]{faanoos}
\usepackage{graphicx}
\usepackage{color}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{array}
\usepackage{mflogo}
\usepackage{stepslid}

\oddsidemargin=1.5cm
\topmargin=-1.5cm

\newcommand{\slt}[1]{\raggedleft\textcolor{yellow}{\Large\textbf{#1}}\vfill\raggedright\par}
\newcommand{\prog}[1]{\texttt{#1}}
\newcommand{\cont}{{\small\ (continued)}}
\newcommand{\fa}[1]{\mbox{\Large\textfarsi{#1}}}

\let\saveendslide=\endslide
\let\saveendoverlay=\endoverlay
\renewcommand{\endslide}{\vfill\saveendslide}
\renewcommand{\endoverlay}{\vfill\saveendoverlay}
\let\saveslide=\slide
\renewcommand{\slide}{\saveslide\flushright}
\let\saveoverlay=\overlay
\renewcommand{\overlay}{\saveoverlay\flushright}

\title{\textcolor{yellow}{\Huge\bfseries
	\reflectbox{\textfarsi{\reflectbox{\textlatin{Unicode}} chist?}}
	\hfill
	\reflectbox{What is \reflectbox{\textfarsi{yooni-kod}}?}
}}
\author{\vspace{1em}\textcolor{white}{\LARGE
	Behdad Esfahbod\\
	\texttt{unicode@behdad.org}%
}}
\date{\textcolor{yellow}{\large\textfarsi{%
daaneshkade-ye mohandesi-e kaampiyooter\\
daaneshgaah-e San'ati-e sharif\\
tehraan, iraan\\
avvalin chahaar-shanbe-ye aabaan-maah-e har-saal\\
}}}

\color{white}
\begin{document}
\color{white}
\pagecolor[rgb]{0,0,.113}
\maketitle

\slide
\thispagestyle{empty}
\begin{center}
\mbox{}
\vfill
\large There were some slides from old presentations\\
\vfill
\step\textcolor{yellow}{\Huge\bfseries It was boring\\to redesign new ones}\\
\vfill
\vfill
\vfill
\end{center}
\endslide

\slide
\thispagestyle{empty}
\begin{center}
\mbox{}
\vfill
\Large So, I turned to\\
\vfill
\textcolor{yellow}{\Huge\bfseries Technical Details}\\
\vfill
here\dots
\vfill
\vfill
\end{center}
\endslide

\slide
\slt{What is Unicode?}
\begin{itemize}
\step\item It's all about characters
\step\item $0 \le \mbox{character code} \le \mathtt{10FFFF}_{16} = 17 \times 2^{16} - 1 = 1{,}114{,}111$ 
\step\item The minimum number of bits enough for encoding every character is 21, but that's almost
nowhere used. (It's actually a $20.08746$-bit
character set!)
\step\item U+06CC is the ARABIC LETTER FARSI YEH (\fa{y})
\step\item Characters are arranged in blocks so one can f{}ind
them easily (all Arabic letters are in range U+0600 and U+06FF)
%\step\item This is a multipage slide
\end{itemize}
\endslide

\slide
\slt{But what is a character?}
We don't know!\\
\step
\dots\ but we know some things that are not characters:
\begin{itemize}
\step\item Glyphs: there is only one ARABIC LETTER BEH ({\Large\fa{b}})
\step\item Ligatures: there is no ARABIC LIGATURE LAM ALEF ({\Large\fa{laa}})
\step\item Markup: there is no START BOLDFACE (\prog{<b>})
\step\item Logos and emblems: there is no APPLE SIGN
\end{itemize}
\step
So, did you found out what's it?
\endslide

\slide
\slt{That's a big lie!}\vspace*{-0.5cm}
\begin{itemize}
\step\item Glyphs: there are four different presentation forms of ARABIC LETTER BEH
(\fa{b"=}, \fa{"=b"=}, \fa{"=b}, \fa{b}),
in addition to one general one, but\dots
\step\item Ligatures: there \emph{is} an ARABIC LIGATURE LAM ALEF (\fa{laa}), among many others
\step\item Markup: there are control character everywhere, from a PARAGRAPH SEPARATOR to something named
POP DIRECTIONAL FORMATTING
\step\item Logos and Emblems: FARSI SYMBOL (U+262B) is there, as well as playing cards suits.
\end{itemize}
\endslide

\slide
\slt{Not just codes, names or shapes}
\begin{itemize}
\step\item Several informative or normative properties and descriptions are available to disambiguify the characters: 
\begin{quote}
\emph{general category, combining class, bidirectional
category, decomposition mapping, numeric value, mirroring property, case mappings, joining class and group,
line breaking property, \dots}
\end{quote}
\end{itemize}
\endslide

\slide
\slt{Some character properties}
\begin{itemize}
\step\item \textbf{Decomposition, recomposition, reordering, equivalence, and normalization:} to make sure that me and you encode the
same string the same way.
\step\item \textbf{Bidirectional properties and behavior:} to make sure logically encoded bidirectional
scripts are not displayed differently on my computer than yours.
\end{itemize}
\endslide

\slide
\slt{Bidirectional Algorithm}
Providing an \emph{exact} and \emph{implicit} mechanism for converting a logically stored stream of characters including
some characters of a right-to-left script, to a visually ordered one suitable for display.

\step
This is needed for Arabic
(incl.\ Persian, Urdu, Sindhi,~\dots)
Hebrew (incl.\ Yiddish), Syriac, and Thanaa.
\step
\begin{center}
\textcolor{yellow}{A car is called ``\reflectbox{RAC EHT}'' in Hebrew \\ {\Large $\Downarrow$} \\[3mm] 
A car is called ``\reflectbox{THE CAR}'' in Hebrew}
\end{center}
\endslide

\slide
\slt{Bidirectional Algorithm \cont}
Many implicit and explicit \emph{bidirectional categories}:
\begin{quote}
left-to-right, right-to-left, right-to-left Arabic, European number, Arabic number, European number separator,
European number terminator, common number separator, non-spacing mark, boundary neutral, paragraph separator,
segment separator, whitespace, other neutrals, \emph{left-to-right embedding, right-to-left embedding, left-to-right override,
right-to-left override, pop directional format}
\end{quote}
\endslide

\slide
\slt{A few interesting features \cont}
\begin{itemize}
\step\item Line breaking properties
\step\item Mirroring characters
\step\item All characters and symbols needed for mathematical typesetting (thanks to AMS)
\end{itemize}
\endslide

\slide
\slt{Arabic Script Rendering}
\begin{center}
\setlength{\extrarowheight}{5mm}
\begin{tabular}{|l|l|l|}
\hline
Input text & Logical order & \fa{s} \fa{l} \fa{=aa} \fa{m} \\
\hline
After Bidirectional Algorithm & Visual order & \hfill\fa{m} \fa{=aa} \fa{l} \fa{s} \\
\hline
After Arabic Joining Algorithm & Glyph list & \hfill\fa{m} \fa{"=aa} \fa{"=l"=} \fa{s"=} \\
\hline
After Ligation & Glyph list & \hfill\fa{m} \fa{"=laa} \fa{s"=} \\
\hline
When Rendered & Output & \hfill\fa{salaam} \\
\hline
\end{tabular}
\end{center}
With enough care, the above algorithms can be applied in some different
order.
\endslide

\slide
\slt{Joining and Shaping Algorithms}
\begin{itemize}
\step\item Two adjacent letters may {\em join} to each other, or may not
\step\item \dots\ forming 1, 2, or 4 glyphs for each character (for example
\fa{s}, \fa{"=s}, \fa{"=s"=}, \fa{s"=})
\step\item The Joining Algorithm is for deciding if two adjacent letters do join or not
\step\item The Shaping Algorithm is for selecting the proper glyph, based on the results
of the Joining Algorithm 
\end{itemize}
\endslide

\slide
\slt{Unicode Transformation Formats}
These are just \emph{encodings}\dots
\begin{itemize}
\step\item UTF-8 for 8-bit envirnments
\step\item UTF-16 for 16-bit envirnments
\step\item UTF-32 for 32-bit envirnments
\end{itemize}
\dots\ best one depends on the environment
\endslide

\slide
\slt{UTF-32}
\begin{itemize}
\step\item The identity mapping to Unicode values
\step\item Easiest to process
\step\item Most storage
\step\item Four times in size for ASCII text
\end{itemize}
\endslide

\slide
\slt{UTF-16}
\begin{itemize}
\step\item The identity mapping for BMP, so misleading for novice developers
\step\item Good compromise on ease
\step\item Reasonbale storage
\step\item Widely used on MicroSoft platforms
\end{itemize}
\endslide

\slide
\slt{UTF-8}
\begin{itemize}
\step\item Upward compatible with ASCII
\step\item Designed for replacing ASCII transparently
\step\item Least storage, still simple
\step\item Most recommended and actually in use
\step\item Great fun to learn
\end{itemize}
\endslide

\slide
\slt{Frequently Asked/Answered Questions}
\begin{itemize}
\step\item What is all crap with these fonts?
\step\item What is the problem with FARSI YEH (\textfarsi{kaart-e geraaf"=-y-"=ki})?
\step\item What is the problem with HEH WITH YEH ABOVE (\textfarsi{h`})?
\step\item I cannot type my name \textfarsi{poozhan}, where are the letters?
\step\item Is there any good fonts around?
\end{itemize}
\endslide

\slide
\slt{ISIRI~2901\\Standard keyboard layout}
\begin{itemize}
\step\item First released in 1989, and revised in 1994
\step\item All characters are accessible at most by shift key
\step\item Should be revised to ref{}lect the new standard
\step\item Drivers available for Windows 2000/XP, also all Linux environments
\step\item After you learn, you will never switch
\end{itemize}
\endslide

\slide
\begin{center}
\includegraphics[width=\textwidth,height=0.48\textheight,keepaspectratio=true]{2901.eps}\vspace{.03\textheight}
\includegraphics[width=\textwidth,height=0.48\textheight,keepaspectratio=true]{2901shifted.eps}
\end{center}
\endslide

\slide
\slt{\color{red}www.farsiweb.info}
\thispagestyle{empty}
\endslide

\slide
\thispagestyle{empty}
\begin{center}
\mbox{}
\vfill
\Large That's enough, let's talk about\\
\vfill
\textcolor{yellow}{\Huge\bfseries Online Games}\\
\vfill
\vfill
\vfill
\end{center}
\endslide

\title{\textcolor{yellow}{\Huge\bfseries John Carmack}}
\author{\vspace{1em}\textcolor{white}{\LARGE\em
	The Prophet of Online Gaming}}
\date{}
\maketitle

\slide
\slt{John Carmack, the commander keen}
\begin{itemize}
\step\item 1990, just another 19 year old geek
\step\item Working at Softdisk Publishing
\step\item Starts to write \emph{Commander Keen}, the EGA side-scroller game, with his team
\step\item The game is a huge success, so his team leave\dots
\end{itemize}
\endslide

\slide
\slt{The more keens}
\begin{itemize}
\step\item \dots\ to found id Software on February 1, 1991
\step\item Writes several more Commander Keen games
\step\item After months of hard work, in May 1992, the f{}irst 3d game is born
\end{itemize}
\endslide

\slide
\slt{Remember Nazy SS symbol?}
\begin{itemize}
\step\item \dots\ the good old \emph{Wolfenstein 3d}
\step\item The very next year the great \emph{Doom} is born
\step\item It was a technical and creative milestone
\step\item Signif{}icantly raised the standards for game creators
\end{itemize}
\endslide

\slide
\slt{The revolutionary step forward}
\begin{itemize}
\step\item With Doom you could play through your modem
\step\item Better still, on a LAN with up to 8 people
\step\item No force to play against mindless computer opponents
\end{itemize}
\endslide

\slide
\slt{The sequel to the Doom series}
\begin{itemize}
\step\item In 1996, Carmack creates \emph{Quake}
\step\item Once again, the technology is completely new and totally astonishing
\step\item The f{}irst truly three-dimensional environment game
\step\item Completely supporting internet play online
\step\item This was the def{}ining moment in f{}irst-person online gaming
\end{itemize}
\endslide

\slide
\slt{Quake Clans}
\begin{itemize}
\step\item From the f{}irst week, pople began to form teams
\step\item Several leagues were formed for expert players
\step\item The idea of a LAN party was formed
\step\item Within a year, the internet was a changed place
\end{itemize}
\endslide

\slide
\slt{\Huge\bfseries Quake III Arena}
{\LARGE was the last big step}\vfill\vfill
\endslide

\slide
\slt{\Huge\bfseries Doom III}
{\LARGE is the next}\vfill\vfill
\endslide

\slide
\thispagestyle{empty}
\begin{center}
\mbox{}
\vfill
\vfill
\textcolor{yellow}{\Huge\bfseries Have a Look Yourself}\\
\vfill
\Large{THE END}\\
\vfill
\vfill
\end{center}
\endslide

\slide
\slt{Oh! Wait}
{\Large And this f++ing bastard is just 31\footnote{see page number}}\\
\vfill\vfill
\endslide

\end{document}

\slide
\slt{}
\begin{itemize}
\step\item
\end{itemize}
\endslide


