├── README.md ├── conference_poster ├── beamerposter.sty ├── beamerthemeconfposter.sty ├── ku_header.png ├── ku_header_text.png ├── lstrfun.sty ├── main.pdf ├── main.tex ├── references.bib ├── rfunprog.tex └── sample.bib ├── eduroam.md ├── erda.md ├── homepage.md ├── printing.md ├── rejsud.md ├── servers.md └── vpn.md /README.md: -------------------------------------------------------------------------------- 1 | # How do I DIKU? 2 | 3 | How indeed. This is supposed to be a written form of unofficial 4 | **public** institutional knowledge that isn't a good fit for the 5 | intranet (also, easier to edit). 6 | 7 | * [The PLTC infoscreen lives here.](https://github.com/diku-dk/pltc-infoscreen) 8 | 9 | * [Reimbursement/RejsUd notes](rejsud.md) 10 | 11 | * [Server information](servers.md) 12 | - [Large file storage with ERDA](erda.md) 13 | - [Your academic homepage](homepage.md) 14 | 15 | * [Eduroam](eduroam.md) 16 | 17 | * [Using the UCPH VPN](vpn.md) 18 | 19 | * [How to spend paper](printing.md) 20 | 21 | ## Intranet pointers 22 | 23 | The [DIKU 24 | intranet](https://kunet.ku.dk/faculty-and-department/diku/Pages/default.aspx) 25 | on KUnet has good and up-to-date information. Rather than duplicate 26 | it, here's links to frequently useful bits: 27 | 28 | * [Academic Calender for SCIENCE](https://kunet.ku.dk/faculty-and-department/science/study-administration/academic-calendar/Pages/default.aspx) 29 | with nice printable overviews. 30 | 31 | * [Who to contact](https://kunet.ku.dk/faculty-and-department/diku/contact/Pages/default.aspx) 32 | - For generic approval of administrative things (collaboration 33 | agreements etc) contact the Head of Administration: 34 | 35 | 36 | * [Phonebook](https://kunet.ku.dk/oevrige/telefonbog), where you can 37 | lookup the names and/or email addresses of an employee or student, 38 | based on their name and/or email address. 39 | 40 | ### Forms and procedures for 41 | 42 | * [Bachelors projects](https://kunet.ku.dk/faculty-and-department/diku/teaching/projects/bachelorprojects/Pages/bachelorprojects.aspx) 43 | 44 | * [Masters theses](https://kunet.ku.dk/faculty-and-department/diku/teaching/projects/masterthesis/Pages/default.aspx) 45 | 46 | * [Projects outside course scope](https://kunet.ku.dk/faculty-and-department/diku/teaching/projects/POCS/Pages/default.aspx) 47 | 48 | * [Course exams](https://kunet.ku.dk/faculty-and-department/diku/teaching/exam/Pages/default.aspx) 49 | 50 | * [Plagiarism and cheating](https://kunet.ku.dk/faculty-and-department/science/study-administration/examination/plagiarism-cheating/Pages/default.aspx) 51 | 52 | * [Reporting of exam results (including projects)](https://kunet.ku.dk/faculty-and-department/science/study-administration/examination/reporting-exam-results/Pages/default.aspx) 53 | 54 | ### Practical information 55 | 56 | * [Booking rooms](https://kunet.ku.dk/faculty-and-department/diku/buildings_and_facilities/book-rooms/Pages/default.aspx) 57 | 58 | * [Booking rooms at faculty level](https://kunet.ku.dk/fakultet-og-institut/science/bygninger-service/lokaleadministration/Sider/default.aspx) 59 | 60 | * [Lokaledatabasen](https://skema.ku.dk/ku2425/dk/room.htm) where you can check room availability. 61 | 62 | * [Online form for ad hoc 63 | booking](https://kuforms.ku.dk/xform/frontend/FormEngine/v2/ShowForm.aspx?alias=SCI3758&groupId=2&doctype=5&formid=3763) - 64 | if you send an email, you'll just get an autoreply telling you to 65 | use this form instead. 66 | 67 | * [The tenure track process](https://kunet.ku.dk/faculty-and-department/diku/human_resources/tenure-track/Pages/default.aspx) 68 | 69 | * [Event planning](https://kunet.ku.dk/faculty-and-department/diku/event-planning/Pages/default.aspx) 70 | 71 | ## Making a poster 72 | 73 | * [Create your poster in beamer](conference_poster/) 74 | * [Get it printed at Campus Print](https://campusprint.ku.dk/) -- consider the polyester poster 75 | 76 | ## Computer problems 77 | 78 | * [KU-IT Service Portal](https://serviceportal.ku.dk/) 79 | 80 | ## Computer software from KU 81 | 82 | * [Softwarebiblioteket](https://pkunet-webapi.ku.dk/software-bibliotek.aspx) 83 | 84 | 85 | ## Teaching 86 | 87 | * [Valkyrie Savage's *Resources for Students*](https://valkyriesavage.notion.site/Resources-for-Students-3a49a78e3f584281b4c596ec3875515b) 88 | 89 | * [Troels Henriksen's notes on teaching](https://sigkill.dk/writings/teaching.html) 90 | 91 | ## Figuring out what's for lunch 92 | 93 | The lunch menus for the canteens at HCØ and Bio are available 94 | [here](https://www.foodandco.dk/besog-os-her/restauranter/ku/norre-campus/). The 95 | menu for the pharma canteen is supposed to be available 96 | [here](https://ku-sund.bychartwells.dk/#ath), but it doesn't work as of this 97 | writing. 98 | -------------------------------------------------------------------------------- /conference_poster/beamerposter.sty: -------------------------------------------------------------------------------- 1 | % Copyright 2007 by 2 | % Philippe Dreuw and 3 | % Thomas Deselaers 4 | % Slight modifications made in August 2009 by Nathaniel Johnston (nathaniel@nathanieljohnston.com) 5 | % 6 | % This file may be distributed and/or modified 7 | % 8 | % 1. under the LaTeX Project Public License and/or 9 | % 2. under the GNU Public License. 10 | % 11 | % 12 | % ChangeLog: 13 | % 14 | % 1.07 - bugfixed custom size handling, portrait or landscape settings are ignored now 15 | % 1.06 - added the type1cm package for scalable math fonts 16 | % 1.05 - added version check for xkeyval package 17 | % 1.04 - added custom size handling 18 | % 1.03 - improved predefined size handling 19 | % 1.02 - minor bugfixes 20 | % 1.01 - bugfixed size handling 21 | % 1.00 - first beamerposter release 22 | % 23 | \def\beamerposter@version{1.07} 24 | \def\beamerposter@date{2008/03/11} 25 | \def\beamerposter@msg{beamerposter: latex-beamer poster extension} 26 | \typeout{Package: \beamerposter@date. v.\beamerposter@version. \beamerposter@msg} 27 | 28 | \NeedsTeXFormat{LaTeX2e} 29 | \ProvidesPackage{beamerposter}[\beamerposter@date. v.\beamerposter@version. \beamerposter@msg] 30 | \RequirePackage{xkeyval}[2006/11/18] 31 | \RequirePackage{type1cm} %% get it from ftp://cam.ctan.org/tex-archive/macros/latex/contrib/type1cm.zip 32 | 33 | \newif\ifportrait 34 | \newif\ifcustomsize 35 | \newif\ifdebug 36 | 37 | \DeclareOptionX{size}[a0]{ 38 | \typeout{beamerposter: checking size input, please wait.} 39 | \XKV@cc*+[\val\nr]{#1}{a0b,a0,a1,a2,a3,a4,custom}{% 40 | \typeout{beamerposter: the input \val\ \nr\ was correct, we proceed.} 41 | \ifcase\nr\relax 42 | %a0b 43 | \setlength{\paperwidth}{119cm} 44 | \setlength{\paperheight}{88cm} 45 | \setlength{\textwidth}{116cm} 46 | \setlength{\textheight}{88cm} 47 | \or 48 | %a0 49 | \setlength{\paperwidth}{118.82cm} 50 | \setlength{\paperheight}{83.96cm} 51 | \setlength{\textwidth}{117.82cm} 52 | \setlength{\textheight}{82.96cm} 53 | \or 54 | %a1 55 | \setlength{\paperwidth}{83.96cm} 56 | \setlength{\paperheight}{59.4cm} 57 | \setlength{\textwidth}{82.96cm} 58 | \setlength{\textheight}{58.4cm} 59 | \or 60 | %a2 61 | \setlength{\paperwidth}{59.4cm} 62 | \setlength{\paperheight}{41.98cm} 63 | \setlength{\textwidth}{58.4cm} 64 | \setlength{\textheight}{40.98cm} 65 | \or 66 | %a3 67 | \setlength{\paperwidth}{41.98cm} 68 | \setlength{\paperheight}{29.7cm} 69 | \setlength{\textwidth}{40.98cm} 70 | \setlength{\textheight}{28.7cm} 71 | \or 72 | %a4 73 | \setlength{\paperwidth}{29.7cm} 74 | \setlength{\paperheight}{21.0cm} 75 | \setlength{\textwidth}{28.7cm} 76 | \setlength{\textheight}{20.0cm} 77 | \or 78 | \customsizetrue 79 | \fi 80 | }{% 81 | \PackageWarning{beamerposter}{the input \val\ was incorrect and was ignored.} 82 | }% 83 | \typeout{beamerposter: finished size input check.} 84 | } 85 | \DeclareOptionX{orientation}[portrait]{ 86 | \typeout{beamerposter: checking orientation input, please wait.} 87 | \XKV@cc*+[\val\nr]{#1}{portrait,landscape}{% 88 | \typeout{beamerposter: the input \val\ \nr\ was correct, we proceed.} 89 | \ifcase\nr\relax 90 | \portraittrue 91 | \or 92 | \portraitfalse 93 | \fi 94 | }{% 95 | \PackageWarning{beamerposter}{the input \val\ was incorrect and was ignored.} 96 | }% 97 | \typeout{beamerposter: finished orientation check.} 98 | } 99 | \DeclareOptionX{scale}[1.0]{\edef\myfontscale{#1}\typeout{beamerposter: myfontscale=\myfontscale}} 100 | \DeclareOptionX{width}{\edef\customwidth{#1}\typeout{beamerposter: custom poster width=\customwidth}} 101 | \DeclareOptionX{height}{\edef\customheight{#1}\typeout{beamerposter: custom poster height=\customheight}} 102 | \DeclareOptionX{debug}{\typeout{beamerposter: enabled debug mode}\debugtrue} 103 | \DeclareOptionX*{\PackageWarning{beamerposter}{Unknown option ignored: \CurrentOption}} 104 | %\DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{beamer}} 105 | \ExecuteOptionsX{size=a0,scale=1.0} 106 | \ProcessOptionsX\relax 107 | 108 | \ifdebug 109 | \RequirePackage[debug]{fp} 110 | \else 111 | \RequirePackage{fp} 112 | \fi 113 | 114 | %% swap sizes for portrait orientation 115 | \ifportrait 116 | \newdimen\tmp 117 | \setlength{\tmp}{\paperwidth} 118 | \setlength{\paperwidth}{\paperheight} 119 | \setlength{\paperheight}{\tmp} 120 | \setlength{\tmp}{\textwidth} 121 | \setlength{\textwidth}{\textheight} 122 | \setlength{\textheight}{\tmp} 123 | \else\relax 124 | \fi 125 | 126 | %% overwrite dimensions if custom size 127 | \ifcustomsize 128 | \setlength{\paperwidth}{\customwidth cm} 129 | \setlength{\paperheight}{\customheight cm} 130 | \FPupn{\resulttextwidth}{1 customwidth -} 131 | \FPupn{\resulttextheight}{1 customheight -} 132 | \setlength{\textwidth}{\resulttextwidth cm} 133 | \setlength{\textheight}{\resulttextheight cm} 134 | \fi 135 | 136 | %% Setting proper dimensions for a DIN A0 printer 137 | \setlength{\headheight}{0 cm} 138 | \setlength{\headsep}{0 cm} 139 | \setlength{\topmargin}{-12.7 mm} % -1in +1.47cm 140 | \setlength{\oddsidemargin}{-25.4 mm} % -1in +0.4cm 141 | 142 | %% For the page layout 143 | \ifdebug 144 | \typeout{beamerposter: paperwidth=\the\paperwidth, paperheight=\the\paperheight} 145 | \typeout{beamerposter: textwidth=\the\textwidth, textwidth=\the\textheight} 146 | \fi 147 | \geometry{ 148 | paperwidth=\the\paperwidth, 149 | paperheight=\the\paperheight, 150 | hmargin=1cm,% 151 | vmargin=0cm,% 152 | head=0.5cm, % 153 | headsep=0pt,% 154 | foot=0.5cm % 155 | } 156 | 157 | %% scalable vector fonts 158 | \edef\fontSizeX{14.4}\edef\fontSizeY{18} 159 | \FPupn{\resultscriptsizeX}{myfontscale fontSizeX * 2 round} 160 | \FPupn{\resultscriptsizeY}{myfontscale fontSizeY * 2 round} 161 | \renewcommand*{\tiny}{\fontsize{\resultscriptsizeX}{\resultscriptsizeY}\selectfont} 162 | 163 | \edef\fontSizeX{17.28}\edef\fontSizeY{22} 164 | \FPupn{\resultfootnotesizeX}{myfontscale fontSizeX * 2 round} 165 | \FPupn{\resultfootnotesizeY}{myfontscale fontSizeY * 2 round} 166 | \renewcommand*{\scriptsize}{\fontsize{\resultfootnotesizeX}{\resultfootnotesizeY}\selectfont} 167 | 168 | \edef\fontSizeX{20.74}\edef\fontSizeY{25} 169 | \FPupn{\resultsmallX}{myfontscale fontSizeX * 2 round} 170 | \FPupn{\resultsmallY}{myfontscale fontSizeY * 2 round} 171 | \renewcommand*{\footnotesize}{\fontsize{\resultsmallX}{\resultsmallY}\selectfont} 172 | 173 | \edef\fontSizeX{24.88}\edef\fontSizeY{30} 174 | \FPupn{\resultnormalsizeX}{myfontscale fontSizeX * 2 round} 175 | \FPupn{\resultnormalsizeY}{myfontscale fontSizeY * 2 round} 176 | \renewcommand*{\small}{\fontsize{\resultnormalsizeX}{\resultnormalsizeY}\selectfont} 177 | 178 | \edef\fontSizeX{29.86}\edef\fontSizeY{37} 179 | \FPupn{\resultlargeX}{myfontscale fontSizeX * 2 round} 180 | \FPupn{\resultlargeY}{myfontscale fontSizeY * 2 round} 181 | \renewcommand*{\normalsize}{\fontsize{\resultlargeX}{\resultlargeY}\selectfont} 182 | 183 | \edef\fontSizeX{35.83}\edef\fontSizeY{45} 184 | \FPupn{\resultLargeX}{myfontscale fontSizeX * 2 round} 185 | \FPupn{\resultLargeY}{myfontscale fontSizeY * 2 round} 186 | \renewcommand*{\large}{\fontsize{\resultLargeX}{\resultLargeY}\selectfont} 187 | 188 | \edef\fontSizeX{43}\edef\fontSizeY{54} 189 | \FPupn{\resultLARGEX}{myfontscale fontSizeX * 2 round} 190 | \FPupn{\resultLARGEY}{myfontscale fontSizeY * 2 round} 191 | \renewcommand*{\Large}{\fontsize{\resultLARGEX}{\resultLARGEY}\selectfont} 192 | 193 | \edef\fontSizeX{51.6}\edef\fontSizeY{64} 194 | \FPupn{\resulthugeX}{myfontscale fontSizeX * 2 round} 195 | \FPupn{\resulthugeY}{myfontscale fontSizeY * 2 round} 196 | \renewcommand*{\LARGE}{\fontsize{\resulthugeX}{\resulthugeY}\selectfont} 197 | 198 | \edef\fontSizeX{61.92}\edef\fontSizeY{77} 199 | \FPupn{\resultHugeX}{myfontscale fontSizeX * 2 round} 200 | \FPupn{\resultHugeY}{myfontscale fontSizeY * 2 round} 201 | \renewcommand*{\huge}{\fontsize{\resultHugeX}{\resultHugeY}\selectfont} 202 | 203 | \edef\fontSizeX{74.3}\edef\fontSizeY{93} 204 | \FPupn{\resultveryHugeX}{myfontscale fontSizeX * 2 round} 205 | \FPupn{\resultveryHugeY}{myfontscale fontSizeY * 2 round} 206 | \renewcommand*{\Huge}{\fontsize{\resultveryHugeX}{\resultveryHugeY}\selectfont} 207 | 208 | \edef\fontSizeX{80.3}\edef\fontSizeY{101} 209 | \FPupn{\resultVeryHugeX}{myfontscale fontSizeX * 2 round} 210 | \FPupn{\resultVeryHugeY}{myfontscale fontSizeY * 2 round} 211 | \newcommand*{\veryHuge}{\fontsize{\resultVeryHugeX}{\resultVeryHugeY}\selectfont} 212 | 213 | \edef\fontSizeX{107}\edef\fontSizeY{134} 214 | \FPupn{\resultVERYHugeX}{myfontscale fontSizeX * 2 round} 215 | \FPupn{\resultVERYHugeY}{myfontscale fontSizeY * 2 round} 216 | \newcommand*{\VeryHuge}{\fontsize{\resultVERYHugeX}{\resultVERYHugeY}\selectfont} 217 | 218 | % set the normalfont (default) 219 | \renewcommand*{\normalfont}{\normalsize} 220 | -------------------------------------------------------------------------------- /conference_poster/beamerthemeconfposter.sty: -------------------------------------------------------------------------------- 1 | %============================================================================== 2 | % Beamer style for the poster template posted at 3 | % http://www.nathanieljohnston.com/2009/08/latex-poster-template/ 4 | % 5 | % Created by the Computational Physics and Biophysics Group at Jacobs University 6 | % https://teamwork.jacobs-university.de:8443/confluence/display/CoPandBiG/LaTeX+Poster 7 | % Modified by Nathaniel Johnston (nathaniel@nathanieljohnston.com) in August 2009 8 | % ============================================================================= 9 | 10 | \ProvidesPackage{beamerthemeconfposter} 11 | \RequirePackage{tikz} % for drawing the nice rounded boxes 12 | \usetikzlibrary{arrows,backgrounds} 13 | \RequirePackage[T1]{fontenc} 14 | \RequirePackage{lmodern} 15 | \usepackage{exscale} 16 | \RequirePackage{textcomp} 17 | \RequirePackage{graphicx} 18 | \RequirePackage{amsmath,amssymb} 19 | \RequirePackage{eso-pic} 20 | \usefonttheme{professionalfonts} 21 | \newcommand{\makeruleinbox}{{\usebeamercolor[bg]{block alerted title}\centering\hspace*{-0.7cm}\rule{\inboxrule}{0.5cm}}} 22 | \usepackage{ragged2e} 23 | 24 | % Spacing before and inside list environments to add white space before lists and between items inside lists 25 | \makeatletter 26 | \def\@listi{\leftmargin\leftmarginii 27 | \topsep 1ex % Spacing before lists 28 | \parsep 0\p@ \@plus\p@ 29 | \itemsep 6pt} % Spacing between items 30 | \makeatother 31 | 32 | \usecaptiontemplate{\small\structure{\insertcaptionname~\insertcaptionnumber: }\insertcaption} % A fix for figure numbering 33 | 34 | %----------------------------------------------------------- 35 | % Define a whole bunch of custom colours and fonts 36 | %----------------------------------------------------------- 37 | 38 | \definecolor{lgreen} {RGB}{180,210,100} 39 | \definecolor{dblue} {RGB}{20,66,129} 40 | \definecolor{ddblue} {RGB}{11,36,69} 41 | \definecolor{lred} {RGB}{220,0,0} 42 | \definecolor{nred} {RGB}{224,0,0} 43 | \definecolor{norange}{RGB}{230,120,20} 44 | \definecolor{nyellow}{RGB}{255,221,0} 45 | \definecolor{ngreen} {RGB}{98,158,31} 46 | \definecolor{dgreen} {RGB}{78,138,21} 47 | \definecolor{nblue} {RGB}{28,130,185} 48 | \definecolor{jblue} {RGB}{20,50,100} 49 | 50 | 51 | %---------------------------------------------------------------------------- 52 | % More colours added due to conflict with Colordvi package 53 | % Addition done by Nishan Mudalige (math.mudalige@uoguelph.ca) in April 2011 54 | %---------------------------------------------------------------------------- 55 | 56 | \definecolor{GreenYellow} {RGB}{217, 229, 6} % GreenYellow Approximate PANTONE 388 57 | \definecolor{Yellow} {RGB}{254, 223, 0} % Yellow Approximate PANTONE YELLOW 58 | \definecolor{Goldenrod} {RGB}{249, 214, 22} % Goldenrod Approximate PANTONE 109 59 | \definecolor{Dandelion} {RGB}{253, 200, 47} % Dandelion Approximate PANTONE 123 60 | \definecolor{Apricot} {RGB}{255, 170, 123} % Apricot Approximate PANTONE 1565 61 | \definecolor{Peach} {RGB}{255, 127, 69} % Peach Approximate PANTONE 164 62 | \definecolor{Melon} {RGB}{255, 129, 141} % Melon Approximate PANTONE 177 63 | \definecolor{YellowOrange} {RGB}{240, 171, 0} % YellowOrange Approximate PANTONE 130 64 | \definecolor{Orange} {RGB}{255, 88, 0} % Orange Approximate PANTONE ORANGE-021 65 | \definecolor{BurntOrange} {RGB}{199, 98, 43} % BurntOrange Approximate PANTONE 388 66 | \definecolor{Bittersweet} {RGB}{189, 79, 25} % Bittersweet Approximate PANTONE 167 67 | \definecolor{RedOrange} {RGB}{222, 56, 49} % RedOrange Approximate PANTONE 179 68 | \definecolor{Mahogany} {RGB}{152, 50, 34} % Mahogany Approximate PANTONE 484 69 | \definecolor{Maroon} {RGB}{152, 30, 50} % Maroon Approximate PANTONE 201 70 | \definecolor{BrickRed} {RGB}{170, 39, 47} % BrickRed Approximate PANTONE 1805 71 | \definecolor{Red} {RGB}{255, 0, 0} % Red Approx PANTONE LUMINOUS VIVID RED 72 | \definecolor{BrilliantRed} {RGB}{237, 41, 57} % Red VERY-Approx PANTONE RED 73 | \definecolor{OrangeRed} {RGB}{231, 58, 0} % OrangeRed No PANTONE match (TRIED PANTONE VIVID ORANGE RED) 74 | \definecolor{RubineRed} {RGB}{202, 0, 93} % RubineRed Approximate PANTONE RUBINE-RED 75 | \definecolor{WildStrawberry} {RGB}{203, 0, 68} % WildStrawberry Approximate PANTONE 206 76 | \definecolor{Salmon} {RGB}{250, 147, 171} % Salmon Approximate PANTONE 183 77 | \definecolor{CarnationPink} {RGB}{226, 110, 178} % CarnationPink Approximate PANTONE 218 78 | \definecolor{Magenta} {RGB}{255, 0, 144} % Magenta Approximate PANTONE PROCESS-MAGENTA 79 | \definecolor{VioletRed} {RGB}{215, 31, 133} % VioletRed Approximate PANTONE 219 80 | \definecolor{Rhodamine} {RGB}{224, 17, 157} % Rhodamine Approximate PANTONE RHODAMINE-RED 81 | \definecolor{Mulberry} {RGB}{163, 26, 126} % Mulberry Approximate PANTONE 241 82 | \definecolor{RedViolet} {RGB}{161, 0, 107} % RedViolet Approximate PANTONE 234 83 | \definecolor{Fuchsia} {RGB}{155, 24, 137} % Fuchsia Approximate PANTONE 248 84 | \definecolor{Lavender} {RGB}{240, 146, 205} % Lavender Approximate PANTONE 223 85 | \definecolor{Thistle} {RGB}{222, 129, 211} % Thistle Approximate PANTONE 245 86 | \definecolor{Orchid} {RGB}{201, 102, 205} % Orchid Approximate PANTONE 252 87 | \definecolor{DarkOrchid} {RGB}{153, 50, 204} % DarkOrchid No PANTONE match 88 | \definecolor{Purple} {RGB}{182, 52, 187} % Purple Approximate PANTONE PURPLE 89 | \definecolor{Plum} {RGB}{79, 50, 76} % Plum VERY-Approx PANTONE 518 90 | \definecolor{Violet} {RGB}{75, 8, 161} % Violet Approximate PANTONE VIOLET 91 | \definecolor{RoyalPurple} {RGB}{82, 35, 152} % RoyalPurple Approximate PANTONE 267 92 | \definecolor{BlueViolet} {RGB}{33, 7, 106} % BlueViolet Approximate PANTONE 2755 93 | \definecolor{Periwinkle} {RGB}{136, 132, 213} % Periwinkle Approximate PANTONE 2715 94 | \definecolor{CadetBlue} {RGB}{95, 158, 160} % CadetBlue Approximate PANTONE (534+535)/2, Could not find get on my own so used PANTONE-CADET BLUE 95 | \definecolor{CornflowerBlue} {RGB}{99, 177, 229} % CornflowerBlue Approximate PANTONE 292 96 | \definecolor{MidnightBlue} {RGB}{0, 65, 101} % MidnightBlue Approximate PANTONE 302 97 | \definecolor{NavyBlue} {RGB}{0, 70, 173} % NavyBlue Approximate PANTONE 293 98 | \definecolor{RoyalBlue} {RGB}{0, 35, 102} % RoyalBlue No PANTONE match 99 | \definecolor{Blue} {RGB}{0, 24, 168} % Blue Approximate PANTONE BLUE-072 100 | \definecolor{Cerulean} {RGB}{0, 122, 201} % Cerulean Approximate PANTONE 3005 101 | \definecolor{Cyan} {RGB}{0, 159, 218} % Cyan Approximate PANTONE PROCESS-CYAN 102 | \definecolor{ProcessBlue} {RGB}{0, 136, 206} % ProcessBlue Approximate PANTONE PROCESS-BLUE 103 | \definecolor{SkyBlue} {RGB}{91, 198, 232} % SkyBlue Approximate PANTONE 2985 104 | 105 | \definecolor{Turquoise} {RGB}{0, 255, 239} % Turquoise Approximate PANTONE (312+313)/2, Could not find get on my own so used PANTONE-TURQUOISE 106 | 107 | \definecolor{TealBlue} {RGB}{0, 124, 146} % TealBlue Approximate PANTONE 3145 108 | \definecolor{Aquamarine} {RGB}{0, 148, 179} % Aquamarine Approximate PANTONE 3135 109 | \definecolor{BlueGreen} {RGB}{0, 154, 166} % BlueGreen Approximate PANTONE 320 110 | \definecolor{Emerald} {RGB}{80, 200, 120} % Emerald No PANTONE match 111 | \definecolor{JungleGreen} {RGB}{0, 115, 99} % JungleGreen Approximate PANTONE 328 112 | \definecolor{SeaGreen} {RGB}{0, 176, 146} % SeaGreen Approximate PANTONE 3268 113 | \definecolor{Green} {RGB}{0, 173, 131} % Green VERY-Approx PANTONE GREEN 114 | \definecolor{ForestGreen} {RGB}{0, 105, 60} % ForestGreen Approximate PANTONE 349 115 | \definecolor{PineGreen} {RGB}{0, 98, 101} % PineGreen Approximate PANTONE 323 116 | \definecolor{LimeGreen} {RGB}{50, 205, 50} % LimeGreen No PANTONE match 117 | \definecolor{YellowGreen} {RGB}{146, 212, 0} % YellowGreen Approximate PANTONE 375 118 | \definecolor{SpringGreen} {RGB}{201, 221, 3} % SpringGreen Approximate PANTONE 381 119 | \definecolor{OliveGreen} {RGB}{135, 136, 0} % OliveGreen Approximate PANTONE 582 120 | \definecolor{RawSienna} {RGB}{149, 82, 20} % RawSienna Approximate PANTONE 154 121 | \definecolor{Sepia} {RGB}{98, 60, 27} % Sepia Approximate PANTONE 161 122 | \definecolor{Brown} {RGB}{134, 67, 30} % Brown Approximate PANTONE 1615 123 | \definecolor{Tan} {RGB}{210, 180, 140} % Tan No PANTONE match 124 | \definecolor{Gray} {RGB}{139, 141, 142} % Gray Approximate PANTONE COOL-GRAY-8 125 | 126 | \definecolor{Black} {RGB}{30, 30, 30} % Black Approximate PANTONE PROCESS-BLACK 127 | \definecolor{White} {RGB}{255, 255, 255} % White No PANTONE match 128 | 129 | 130 | 131 | 132 | \definecolor{KUred} {RGB}{114, 0, 18} % Gray Approximate PANTONE COOL-GRAY-8 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | % set the basic colors 146 | \setbeamercolor{palette primary} {fg=black,bg=white} 147 | \setbeamercolor{palette secondary} {fg=black,bg=white} 148 | \setbeamercolor{palette tertiary} {bg=KUred,fg=white} 149 | \setbeamercolor{palette quaternary}{fg=black,bg=white} 150 | \setbeamercolor{structure}{fg=KUred} 151 | \setbeamercolor{titlelike} {bg=KUred,fg=white} 152 | \setbeamercolor{frametitle} {bg=KUred!10,fg=KUred} 153 | \setbeamercolor{cboxb}{fg=black,bg=KUred} 154 | \setbeamercolor{cboxr}{fg=black,bg=red} 155 | 156 | % set colors for itemize/enumerate 157 | \setbeamercolor{item}{fg=KUred} 158 | \setbeamercolor{item projected}{fg=white,bg=KUred} 159 | 160 | % set colors for blocks 161 | \setbeamercolor{block title}{fg=ngreen,bg=white} 162 | \setbeamercolor{block body}{fg=black,bg=white} 163 | 164 | % set colors for alerted blocks (blocks with frame) 165 | \setbeamercolor{block alerted title}{fg=white,bg=KUred} 166 | \setbeamercolor{block alerted body}{fg=black,bg=KUred!10} 167 | 168 | % set the fonts 169 | \setbeamerfont{section in head/foot}{series=\bfseries} 170 | \setbeamerfont{block title}{series=\bfseries} 171 | \setbeamerfont{block alerted title}{series=\bfseries} 172 | \setbeamerfont{frametitle}{series=\bfseries} 173 | \setbeamerfont{frametitle}{size=\Large} 174 | \setbeamerfont{block body}{series=\rmfamily} 175 | 176 | % set some beamer theme options 177 | \setbeamertemplate{title page}[default][colsep=-4bp,rounded=true] 178 | \setbeamertemplate{sections/subsections in toc}[square] 179 | \setbeamertemplate{items}[circle] 180 | \setbeamertemplate{blocks}[width=0.0] 181 | \beamertemplatenavigationsymbolsempty 182 | 183 | % set bibliography style 184 | \setbeamertemplate{bibliography item}[text] 185 | \setbeamercolor{bibliography item}{fg=black,bg=white} 186 | \setbeamercolor{bibliography entry author}{fg=black,bg=white} 187 | \setbeamercolor{bibliography item}{fg=black,bg=white} 188 | 189 | % define some length variables that are used by the template 190 | \newlength{\inboxwd} 191 | \newlength{\iinboxwd} 192 | \newlength{\inboxrule} 193 | \makeatletter 194 | \makeatother 195 | 196 | %============================================================================== 197 | % build the poster title 198 | %============================================================================== 199 | \setbeamertemplate{headline}{ 200 | \leavevmode 201 | \makebox[0pt][l]{% 202 | \raisebox{-\totalheight}[3cm][0pt]{% 203 | {\hspace{-3cm}\includegraphics[width=\paperwidth]{ku_header}}}}% 204 | \begin{columns}[t,totalwidth=\textwidth] 205 | \begin{column}{\linewidth} 206 | \vskip2cm 207 | \hspace{-.5cm}% 208 | \includegraphics[width=.5\paperwidth]{ku_header_text}\\[2ex]% 209 | % \usebeamercolor{author in headline}{\color{fg}\Large{University of Copenhagen}\\[1ex]} 210 | % \usebeamercolor{author in headline}{\color{gray}\fontfamily{Times New Roman}\selectfont\bf\large{\textbf{DIKU, Department of Computer Science}}\\[1ex]} 211 | \usebeamercolor{author in headline}{\color{gray}\bf\large{DIKU, Department of Computer Science}\\[1ex]} 212 | \vskip4cm 213 | % \centering 214 | \usebeamercolor{title in headline}{\color{fg}\Huge{\textbf{\inserttitle}}\\[0.5ex]} 215 | \usebeamercolor{author in headline}{\color{fg}\Large{\insertauthor}\\} 216 | \usebeamercolor{institute in headline}{\color{fg}\large{\insertinstitute}\\[1ex]} 217 | % \vskip1cm 218 | \end{column} 219 | % \vspace{1cm} 220 | \end{columns} 221 | \vspace{0.1in} 222 | } 223 | 224 | % Block definition 225 | \setbeamertemplate{block begin} 226 | { 227 | \par\vskip\medskipamount 228 | \begin{beamercolorbox}[colsep*=0ex,dp={2ex},center]{block title} 229 | \vspace{-6cm} 230 | \begin{flushleft} 231 | \usebeamerfont{block title}\large\insertblocktitle 232 | \vskip-1cm 233 | % \begin{tikzpicture}[remember picture,overlay] 234 | % \shade [inner color=gray,outer color=white] 235 | % (0,0) rectangle (\textwidth,0.3cm); 236 | % \end{tikzpicture} 237 | \end{flushleft} 238 | \end{beamercolorbox} 239 | {\parskip0pt\par} 240 | \ifbeamercolorempty[bg]{block title} 241 | {} 242 | {\ifbeamercolorempty[bg]{block body}{}{\nointerlineskip\vskip-0.5pt}} 243 | \usebeamerfont{block body} 244 | \vskip-0.5cm 245 | \begin{beamercolorbox}[colsep*=0ex,vmode]{block body} 246 | \justifying 247 | } 248 | 249 | \setbeamertemplate{block end} 250 | { 251 | \end{beamercolorbox} 252 | \vskip\smallskipamount 253 | } 254 | 255 | % Alert block definition (with frame) 256 | \setbeamertemplate{block alerted begin} 257 | { 258 | \par\vskip\medskipamount 259 | \begin{beamercolorbox}[sep=0ex,rounded=true,center,dp={2ex}]{block alerted title} 260 | \vskip0.01cm 261 | \usebeamerfont{block title}\large\insertblocktitle 262 | \end{beamercolorbox} 263 | {\parskip0pt\par} 264 | \usebeamerfont{block body} 265 | \vskip-0.8cm 266 | \begin{beamercolorbox}[sep=0.5cm, rounded=true,center]{block alerted title} 267 | \setlength{\inboxwd}{\linewidth} 268 | \addtolength{\inboxwd}{-1cm} 269 | \begin{beamercolorbox}[rounded=true,wd={\inboxwd},center]{block alerted body} 270 | \setlength{\iinboxwd}{\inboxwd} 271 | \setlength{\inboxrule}{\inboxwd} 272 | \addtolength{\iinboxwd}{-0.5cm} 273 | \addtolength{\inboxrule}{0.5cm} 274 | \begin{center} 275 | \begin{minipage}{\iinboxwd} 276 | \justifying 277 | } 278 | 279 | \setbeamertemplate{block alerted end} 280 | { 281 | \end{minipage} 282 | \end{center} 283 | \end{beamercolorbox} 284 | \end{beamercolorbox} 285 | \vskip\smallskipamount 286 | } -------------------------------------------------------------------------------- /conference_poster/ku_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diku-dk/howto/3e4c3452390f160321ae6f60a6c32745ae279567/conference_poster/ku_header.png -------------------------------------------------------------------------------- /conference_poster/ku_header_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diku-dk/howto/3e4c3452390f160321ae6f60a6c32745ae279567/conference_poster/ku_header_text.png -------------------------------------------------------------------------------- /conference_poster/lstrfun.sty: -------------------------------------------------------------------------------- 1 | % lstlisting for RFun is made by updating Thomas Braibant's lstlisting for Haskell 2 | % https://github.com/braibant/invert_paper/blob/master/lsthaskell.sty 3 | % 4 | 5 | % Color definitions 6 | \definecolor{ltblue}{rgb}{0,0.4,0.4} 7 | \definecolor{dkblue}{rgb}{0,0.1,0.6} 8 | \definecolor{dkgreen}{rgb}{0,0.35,0} 9 | \definecolor{dkviolet}{rgb}{0.3,0,0.5} 10 | \definecolor{dkred}{rgb}{0.5,0,0} 11 | 12 | \lstdefinelanguage{RFun}{ 13 | % 14 | % Anything betweeen $ becomes LaTeX math mode 15 | mathescape=true, 16 | % 17 | % Comments may or not include Latex commands 18 | texcl=false, 19 | % 20 | morekeywords=[1]{data}, 21 | % 22 | morekeywords=[2]{let, in}, 23 | % 24 | morekeywords=[3]{Maybe}, 25 | % 26 | morekeywords=[4]{main}, 27 | % 28 | morekeywords=[6]{do, last, first, try, idtac, repeat}, 29 | % 30 | % Comments delimiters, we do turn this off for the manual 31 | morecomment=[s]{(*}{*)}, 32 | % 33 | % Spaces are not displayed as a special character 34 | showstringspaces=false, 35 | % 36 | % String delimiters 37 | morestring=[b]", 38 | morestring=[d]’, 39 | % 40 | % Size of tabulations 41 | tabsize=3, 42 | % 43 | % Enables ASCII chars 128 to 255 44 | extendedchars=false, 45 | % 46 | % Case sensitivity 47 | sensitive=true, 48 | % 49 | % Automatic breaking of long lines 50 | breaklines=false, 51 | % 52 | % Default style fors listings 53 | %basicstyle=\small, 54 | % I would like the font to be normalsize 55 | basicstyle=\normalsize, 56 | % 57 | % Position of captions is bottom 58 | captionpos=b, 59 | % 60 | % flexible columns 61 | columns=[l]flexible, 62 | % 63 | % Style for (listings') identifiers 64 | identifierstyle={\ttfamily\color{black}}, 65 | % Style for declaration keywords 66 | keywordstyle=[1]{\ttfamily\color{dkviolet}}, 67 | % Style for gallina keywords 68 | keywordstyle=[2]{\ttfamily\color{dkgreen}}, 69 | % Style for sorts keywords 70 | keywordstyle=[3]{\ttfamily\color{ltblue}}, 71 | % Style for tactics keywords 72 | keywordstyle=[4]{\ttfamily\color{dkblue}}, 73 | % Style for terminators keywords 74 | keywordstyle=[5]{\ttfamily\color{dkred}}, 75 | %Style for iterators 76 | %keywordstyle=[6]{\ttfamily\color{dkpink}}, 77 | % Style for strings 78 | stringstyle=\ttfamily, 79 | % Style for comments 80 | commentstyle={\ttfamily\color{dkgreen}}, 81 | % 82 | %moredelim=**[is][\ttfamily\color{red}]{/&}{&/}, 83 | literate= 84 | {<->}{{$\leftrightarrow\;$}}1 85 | {->}{{$\rightarrow\;$}}1 86 | {=>}{{$\Rightarrow\;$}}1 87 | {++}{{\code{++}}}1 88 | {~}{{\ }}1 89 | {\\dollar}{{$\$$\;}}1 90 | % 91 | }[keywords,comments,strings] 92 | 93 | \lstnewenvironment{rfuncode}{\lstset{language=RFun}}{} 94 | 95 | % pour inliner dans le texte 96 | \def\rfuninl{\lstinline[language=RFun]} 97 | % pour inliner dans les tableaux / displaymath... 98 | %\def\haskels{\lstinline[language=RFun, basicstyle=\scriptsize]} 99 | 100 | %%% Local Variables: 101 | %%% mode: latex 102 | %%% Local IspellDict: british 103 | %%% TeX-master: "main.tex" 104 | %%% End: -------------------------------------------------------------------------------- /conference_poster/main.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/diku-dk/howto/3e4c3452390f160321ae6f60a6c32745ae279567/conference_poster/main.pdf -------------------------------------------------------------------------------- /conference_poster/main.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Jacobs Landscape Poster 3 | % LaTeX Template 4 | % Version 1.1 (14/06/14) 5 | % 6 | % Created by: 7 | % Computational Physics and Biophysics Group, Jacobs University 8 | % https://teamwork.jacobs-university.de:8443/confluence/display/CoPandBiG/LaTeX+Poster 9 | % 10 | % Further modified by: 11 | % Nathaniel Johnston (nathaniel@njohnston.ca) 12 | % 13 | % This template has been downloaded from: 14 | % http://www.LaTeXTemplates.com 15 | % 16 | % License: 17 | % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) 18 | % 19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 20 | 21 | %---------------------------------------------------------------------------------------- 22 | % PACKAGES AND OTHER DOCUMENT CONFIGURATIONS 23 | %---------------------------------------------------------------------------------------- 24 | 25 | \documentclass[final]{beamer} 26 | 27 | \usepackage[orientation=portrait, size=a0, scale=1.3]{beamerposter} % Use the beamerposter package for laying out the poster 28 | \usepackage{lipsum} 29 | \usepackage{xspace} 30 | 31 | \usepackage{ragged2e} 32 | 33 | \usepackage{listings} 34 | \usepackage{lstrfun} 35 | 36 | \usepackage{xparse} 37 | \makeatletter 38 | \RenewDocumentCommand\beamer@newblock{u{\newblock}}{% 39 | \def\newblock{% 40 | #1% 41 | \usebeamercolor[fg]{bibliography entry author}% 42 | \usebeamerfont{bibliography entry author}% 43 | \usebeamertemplate{bibliography entry author}% 44 | \def\newblock{% 45 | \usebeamercolor[fg]{bibliography entry title}% 46 | \usebeamerfont{bibliography entry title}% 47 | \usebeamertemplate{bibliography entry title}% 48 | \def\newblock{% 49 | \usebeamercolor[fg]{bibliography entry location}% 50 | \usebeamerfont{bibliography entry location}% 51 | \usebeamertemplate{bibliography entry location}% 52 | \def\newblock{% 53 | \usebeamercolor[fg]{bibliography entry note}% 54 | \usebeamerfont{bibliography entry note}% 55 | \usebeamertemplate{bibliography entry note}}}}}% 56 | \leavevmode\setbox\beamer@tempbox=\hbox{}\ht\beamer@tempbox=1.5em\box\beamer@tempbox\newblock} 57 | \makeatother 58 | 59 | \lstset{language=RFun} 60 | 61 | \usetheme{confposter} % Use the confposter theme supplied with this template 62 | 63 | \setbeamercolor{block title}{fg=black,bg=white} % Colors of the block titles 64 | \setbeamercolor{block body}{fg=black,bg=white} % Colors of the body of blocks 65 | \setbeamercolor{block alerted title}{fg=white,bg=KUred} % Colors of the highlighted block titles 66 | \setbeamercolor{block alerted body}{fg=black,bg=KUred!10} % Colors of the body of highlighted blocks 67 | % Many more colors are available for use in beamerthemeconfposter.sty 68 | 69 | %----------------------------------------------------------- 70 | % Define the column widths and overall poster size 71 | % To set effective sepwid, onecolwid and twocolwid values, first choose how many columns you want and how much separation you want between columns 72 | % In this template, the separation width chosen is 0.024 of the paper width and a 4-column layout 73 | % onecolwid should therefore be (1-(# of columns+1)*sepwid)/# of columns e.g. (1-(4+1)*0.024)/4 = 0.22 74 | % Set twocolwid to be (2*onecolwid)+sepwid = 0.464 75 | % Set threecolwid to be (3*onecolwid)+2*sepwid = 0.708 76 | 77 | \newlength{\sepwid} 78 | \newlength{\onecolwid} 79 | \newlength{\twocolwid} 80 | \newlength{\threecolwid} 81 | \setlength{\hoffset}{-1in} % (1 inch) 2,54 + hoffset = 4 82 | % \addtolength{\oddsidemargin}{0cm} 83 | \setlength{\oddsidemargin}{4cm} 84 | 85 | % \setlength{\voffset}{0cm} % (1 inch) 2,54 + hoffset = 4 86 | \addtolength{\textwidth}{-8cm} % 87 | % \setlength{\paperwidth}{841mm} % A0 width: 46.8in 88 | % \setlength{\paperheight}{1189mm} % A0 height: 33.1in 89 | \setlength{\sepwid}{0.05\textwidth} % Separation width (white space) between columns 90 | \setlength{\onecolwid}{.30\textwidth} % Width of one column 91 | \setlength{\twocolwid}{0.65\textwidth} % Width of two columns 92 | %----------------------------------------------------------- 93 | 94 | \usepackage{graphicx} % Required for including images 95 | 96 | \usepackage{booktabs} % Top and bottom rules for tables 97 | 98 | %---------------------------------------------------------------------------------------- 99 | % TITLE SECTION 100 | %---------------------------------------------------------------------------------------- 101 | 102 | \title{Design of quantum circuits with RFun} % Poster title 103 | 104 | \author{Michael Kirkedal Thomsen} % Author(s) 105 | 106 | \institute{m.kirkedal@di.ku.dk} % Institution(s) 107 | 108 | %---------------------------------------------------------------------------------------- 109 | 110 | \begin{document} 111 | 112 | 113 | \newcommand{\rfun}{RFun\xspace} 114 | \input{rfunprog} 115 | 116 | 117 | %%%% IFL LANG 118 | 119 | \renewcommand{\o}{\texttt{;}} 120 | \renewcommand{\a}{\alpha} 121 | \renewcommand{\i}[1]{#1^{\mbox{-}1}} 122 | \newcommand{\rupd}{\rightarrow} 123 | \newcommand{\cgen}{\;\texttt{?}\;} 124 | \newcommand{\cspe}{\;\texttt{?}\;} 125 | \newcommand{\crev}{\;\texttt{!}\;} 126 | \newcommand{\fdown}[1]{\diagdown} 127 | \newcommand{\fup}[1]{\diagup} 128 | \newcommand{\id}{\ensuremath{\mathsf{Id}}} 129 | \newcommand{\cnot}{\ensuremath{\mathsf{Cnot}}} 130 | \newcommand{\hgate}{\ensuremath{\mathsf{H}}} 131 | \newcommand{\tgate}{\ensuremath{\mathsf{T}}} 132 | \newcommand{\notg}{\ensuremath{\mathsf{Not}}} 133 | \newcommand{\zip}{\ensuremath{\mathsf{Zip}}} 134 | \newcommand{\concat}{\ensuremath{\mathsf{Concat}}} 135 | \newcommand{\spli}{\ensuremath{\mathsf{Split}}} 136 | \newcommand{\flip}{\ensuremath{\mathsf{Flip}}} 137 | \newcommand{\rup}{\ensuremath{\mathsf{Rup}}} 138 | \newcommand{\rdown}{\ensuremath{\mathsf{Rdn}}} 139 | \newcommand{\lif}{\;\mathrm{if}\;} 140 | \newcommand{\lelse}{\;\mathrm{else}\;} 141 | 142 | 143 | %%%%% 144 | 145 | 146 | 147 | 148 | \usebeamerfont{block body} 149 | 150 | \addtobeamertemplate{block end}{}{\vspace*{2ex}} % White space under blocks 151 | \addtobeamertemplate{block alerted end}{}{\vspace*{2ex}} % White space under highlighted (alert) blocks 152 | 153 | \setlength{\belowcaptionskip}{2ex} % White space under figures 154 | \setlength\belowdisplayshortskip{2ex} % White space under equations 155 | 156 | \begin{frame}[t] % The whole poster is enclosed in one beamer frame 157 | % 158 | \begin{columns}[t,onlytextwidth] % The whole poster consists of three major columns, the second of which is split into two columns twice - the [t] option aligns each column's content to the top 159 | 160 | \begin{column}{\onecolwid} % The first column 161 | 162 | %---------------------------------------------------------------------------------------- 163 | % OBJECTIVES 164 | %---------------------------------------------------------------------------------------- 165 | 166 | \begin{alertblock}{Abstract} 167 | 168 | Languages for describing quantum circuits~\cite{ChongEtAl:2017:Qlang} follow standard HDLs with extension for quantum constructs, thus not exploiting the properties of the quantum logic model. 169 | % 170 | Here we explore how DSLs for a reversible model can be transferred to design of quantum circuits. 171 | 172 | Specifically, we implement a quantum extension to combinator language \cite{Thomsen:2012:IFL} in a reversible functional language, \rfun. This gives the strength of circuits described in a combinator languages with type safety of \rfun. 173 | 174 | % I will also expand it with quantum gates. I falls out quite nicely. 175 | 176 | % \begin{itemize} 177 | % \item Mollis dignissim, magna augue tincidunt dolor, interdum vestibulum urna 178 | % \item Sed aliquet luctus lectus, eget aliquet leo ullamcorper consequat. Vivamus eros sem, iaculis ut euismod non, sollicitudin vel orci. 179 | % \item Nascetur ridiculus mus. 180 | % \item Euismod non erat. Nam ultricies pellentesque nunc, ultrices volutpat nisl ultrices a. 181 | % \end{itemize} 182 | 183 | \end{alertblock} 184 | 185 | \end{column} 186 | 187 | \begin{column}{\sepwid}~\end{column} % Empty spacer column 188 | 189 | \begin{column}{\twocolwid} % Begin a column which is two columns wide (column 2) 190 | 191 | %---------------------------------------------------------------------------------------- 192 | % MATERIALS 193 | %---------------------------------------------------------------------------------------- 194 | 195 | \textbf{\large \rfun, a Reversible Functional Language} 196 | 197 | \begin{columns}[t,onlytextwidth] 198 | 199 | \begin{column}{\onecolwid} % The first column 200 | \begin{block}{} 201 | \vspace{-22mm} 202 | \rfun \cite{YokoyamaAxelsenGlueck:2012:LNCS,KaarsgaardThomsen:2017:NWPT} is a \emph{history-free} reversible functional language. Fundamentally, a reversible computation can be considered as an injective transformation of a state into an updated state, thus \rfun implements (often) injective \emph{partial} functions. 203 | 204 | Noticeable for \rfun is a type system supporting: 205 | \begin{itemize} 206 | \item linear usage of resources -- no duplication 207 | \item ancilla usage -- guaranteed restore 208 | \item local inverse semantics -- invertibility 209 | \end{itemize} 210 | 211 | % The materials were prepared according to the steps outlined below: 212 | 213 | \textbf{Tutorial and interpreter found at:} 214 | \url{http://bit.ly/rfun-lang} 215 | 216 | 217 | \end{block} 218 | \end{column} 219 | 220 | %---------------------------------------------------------------------------------------- 221 | 222 | \begin{column}{\sepwid}~\end{column} % Empty spacer column 223 | 224 | \begin{column}{\onecolwid} % The first column 225 | 226 | \RevRFunPlus 227 | 228 | ~ 229 | 230 | \RevRFunMap 231 | 232 | 233 | \end{column} % End of column 2.1 234 | 235 | \end{columns} 236 | 237 | \end{column} % End of column 2.1 238 | 239 | \end{columns} % End of the split of column 2 - any content after this will now take up 2 columns width 240 | 241 | 242 | %---------------------------------------------------------------------------------------- 243 | % CONTENT 244 | %---------------------------------------------------------------------------------------- 245 | 246 | \vspace{20mm} 247 | \textbf{\large Describing Quantum Circuits in \rfun as Combinators} 248 | 249 | \begin{columns}[t,onlytextwidth] % The whole poster consists of three major columns, the second of which is split into two columns twice - the [t] option aligns each column's content to the top 250 | 251 | \begin{column}{\onecolwid} % The first column 252 | 253 | \begin{block}{} 254 | \vspace{-22mm} 255 | Here we present and implements a combinator-style functional language designed to be close to the quantum logical gate-level. The combinators include high-level constructs such as ripples, but also the recognisable inversion combinator $\i{f}$, which defines the inverse function of $f$ using an efficient semantics. 256 | 257 | It is important to ensure that all circuits descriptions follows model constraints, and furthermore we must require this to be done statically. This is ensured by the type system, which also allows the description of arbitrary sized circuits. The combination of the functional language and the restricted reversible model results in many arithmetic laws, which provide more possibilities for term rewriting and, thus, the opportunity for good optimisation. 258 | \end{block} 259 | 260 | \end{column} 261 | 262 | \begin{column}{\sepwid}~\end{column} % Empty spacer column 263 | 264 | \begin{column}{\onecolwid} 265 | 266 | \begin{block}{} 267 | \vspace{-22mm} 268 | The combinator language is based on the following slightly simplified syntax. 269 | 270 | \vspace{-15mm} 271 | \begin{figure} 272 | \begin{align*} 273 | D ::=&\; (\mathit{funcName} = R)^* &~& \mathrm{definition} \\ 274 | R ::=&\; \id \;|\; \notg \;|\; \hgate \;|\; \tgate \;|\; ... &&\mathrm{basic\;gates} \\ 275 | % &\; \flip\;|\; \rup \;|\; \rdown \;|\; \{n_1,n_2,\dots\} && \mathrm{permutations} \\ 276 | &\; \zip \;|\; \spli \;|\; \concat && \mathrm{reordering} \\ 277 | &\; \mathit{funcName} && \mathrm{function\;use} \\ 278 | &\; R \o R \;|\; [R,R] && \mathrm{composition} \\ 279 | &\; \a R \;|\;\fdown{} R \;|\; \fup{} R && \mathrm{map,\;ripples} \\%and\;rippling/folding} \\ 280 | &\; \i{R} && \mathrm{inverse} 281 | \end{align*} 282 | \caption{Syntax for central subset of combinator language.} 283 | \end{figure} 284 | 285 | Note, that this includes only resource preserving combinators and basic quantum gates and, thus, is a restriction to unitarity operations. Measurements and setup should be handled externally. 286 | 287 | The following implementation examples define the combinator language in \rfun. 288 | 289 | \end{block} 290 | 291 | \end{column} 292 | 293 | \begin{column}{\sepwid}~\end{column} % Empty spacer column 294 | 295 | \begin{column}{\onecolwid} 296 | 297 | \RevRFunQC 298 | 299 | \end{column} 300 | 301 | \end{columns} 302 | 303 | \vspace{10mm} 304 | \textbf{\large References} 305 | 306 | \bibliographystyle{acm} 307 | \bibliography{references} 308 | 309 | 310 | 311 | \end{frame} % End of the enclosing frame 312 | 313 | \end{document} 314 | -------------------------------------------------------------------------------- /conference_poster/references.bib: -------------------------------------------------------------------------------- 1 | % !TEX root = main.tex 2 | 3 | 4 | 5 | @article{ChongEtAl:2017:Qlang, 6 | Author = {Chong, Frederic T. and Franklin, Diana and Martonosi, Margaret}, 7 | Journal = {Nature}, 8 | Month = {09}, 9 | Number = {7671}, 10 | Pages = {180--187}, 11 | Title = {Programming languages and compiler design for realistic quantum hardware}, 12 | Volume = {549}, 13 | Year = {2017}} 14 | 15 | @inproceedings{Thomsen:2012:IFL, 16 | Author = {Thomsen, Michael Kirkedal}, 17 | Booktitle = {Implementation and Application of Functional Languages, IFL '12}, 18 | Pages = {148--163}, 19 | Series = {LNCS}, 20 | Title = {Describing and Optimizing Reversible Logic using a Functional Language}, 21 | Volume = {7257}, 22 | Year = {2012}} 23 | 24 | 25 | @inproceedings{KaarsgaardThomsen:2017:NWPT, 26 | Author = {Kaarsgaard, Robin and Thomsen, Michael Kirkedal}, 27 | Booktitle = {Nordic Workshop in Program Theory, NWPT '17}, 28 | Pages = {65--67}, 29 | Series = {LNCS}, 30 | Title = {RFun Revisited}, 31 | Year = {2017}} 32 | 33 | @inproceedings{YokoyamaAxelsenGlueck:2012:LNCS, 34 | Author = {Tetsuo Yokoyama and Holger Bock Axelsen and Gl\"{u}ck, Robert}, 35 | Booktitle = {Reversible Computation, RC '11}, 36 | Pages = {14--29}, 37 | Series = {LNCS}, 38 | Title = {Towards a reversible functional language}, 39 | Volume = {7165}, 40 | Year = {2012}} 41 | 42 | 43 | 44 | @inproceedings{ThomsenAxelsen:2016:IFL, 45 | Author = {Thomsen, Michael Kirkedal and Axelsen, Holger Bock}, 46 | Booktitle = {Proceedings of the 27th Symposium on the Implementation and Application of Functional Programming Languages}, 47 | Pages = {8:1--8:13}, 48 | Publisher = {ACM}, 49 | Series = {IFL '15}, 50 | Title = {Interpretation and Programming of the Reversible Functional Language}, 51 | Year = {2016}} 52 | @inproceedings{AxelsenYokoyama:2015:APLAS, 53 | Author = {Axelsen, Holger Bock and Yokoyama, Tetsuo}, 54 | Booktitle = {Programming Languages and Systems. Proceedings (APLAS)}, 55 | Editor = {Xinyu Feng and Sungwoo Park}, 56 | Pages = {407--426}, 57 | Publisher = {Springer}, 58 | Series = {LNCS}, 59 | Title = {Programming Techniques for Reversible Comparison Sorts}, 60 | Volume = {9458}, 61 | Year = {2015} 62 | } 63 | @inproceedings{GreenEtAl:2013:Quip, 64 | Author = {Green, Alexander S. and Lumsdaine, Peter LeFanu and Ross, Neil J. and Selinger, Peter and Valiron, Beno\^{\i}t}, 65 | Booktitle = {Conference on Programming Language Design and Implementation, PLDI}, 66 | Pages = {333--342}, 67 | Publisher = {ACM}, 68 | Series = {PLDI '13}, 69 | Title = {Quipper: A Scalable Quantum Programming Language}, 70 | Year = {2013}} 71 | 72 | @inproceedings{Thomsen:2012:FDL, 73 | Author = {Thomsen, Michael Kirkedal}, 74 | Booktitle = {Specification \& Design Languages, FDL 2012}, 75 | Pages = {135--142}, 76 | Publisher = {{IEEE}}, 77 | Title = {A Functional Language for Describing Reversible Logic}, 78 | Year = {2012}} 79 | 80 | @inproceedings{SchultzLEA:2015, 81 | Author = {Schultz, Ulrik Pagh and Laursen, Johan Sund and Ellekilde, Lars{-}Peter and Axelsen, Holger Bock}, 82 | Booktitle = {Reversible Computation - 7th International Conference, {RC} 2015, Grenoble, France, July 16-17, 2015, Proceedings}, 83 | OPTCrossref = {DBLP:conf/rc/2015}, 84 | Editor = {Krivine, Jean and Stefani, Jean{-}Bernard }, 85 | Pages = {111--126}, 86 | Title = {Towards a Domain-Specific Language for Reversible Assembly Sequences}, 87 | Volume = {9138}, 88 | Year = {2015}} 89 | 90 | @incollection{Mogensen:2015:GC, 91 | Author = {Mogensen, Torben \Ae.}, 92 | Booktitle = {Reversible Computation}, 93 | Editor = {Krivine, Jean and Stefani, Jean-Bernard}, 94 | Pages = {79-94}, 95 | Publisher = {Springer International Publishing}, 96 | Series = {Lecture Notes in Computer Science}, 97 | Title = {Garbage Collection for Reversible Functional Languages}, 98 | Volume = {9138}, 99 | Year = {2015}} 100 | 101 | @article{YokoyamaAxelsenGlueck:2011:MVLSC, 102 | Author = {Tetsuo Yokoyama and Holger Bock Axelsen and Gl\"{u}ck, Robert}, 103 | Journal = {Multiple-Valued Logic and Soft Computing}, 104 | Number = {1}, 105 | Pages = {5--24}, 106 | Title = {Optimizing Reversible Simulation of Injective Functions}, 107 | Volume = {18}, 108 | Year = {2012}} 109 | 110 | 111 | @article{Lecerf:1963, 112 | Author = {Lecerf, Y.}, 113 | Journal = {Comptes Rendus Hebdomadaires des S\'{e}ances de l'Acad\'{e}mie des Sciences}, 114 | Pages = {2597--2600}, 115 | Title = {Machines de {T}uring R\'{e}versibles}, 116 | Volume = {257}, 117 | Year = {1963}} 118 | 119 | 120 | @inproceedings{YokoyamaAxelsenGluck:2012, 121 | Author = {Yokoyama, T. and Axelsen, H.B. and Gl\"{u}ck, Robert}, 122 | Booktitle = {Networking and Computing (ICNC), 2012 Third International Conference on}, 123 | Pages = {379-387}, 124 | Title = {Minimizing garbage size by generating reversible simulations}, 125 | Year = {2012}} 126 | 127 | @inproceedings{YokoyamaAxelsenGlueck:2008:ICALP, 128 | Author = {Yokoyama, Tetsuo and Axelsen, Holger Bock and Gl\"{u}ck, Robert}, 129 | Booktitle = {Automata, Languages and Programming. Proceedings}, 130 | Editor = {Luca Aceto and Ivan Damg{\aa}rd and Leslie Ann Goldberg and Magn\'{u}s M. Halld\'{o}rsson and Anna Ing\'{o}lfsd\'{o}ttir and Igor Walukiewicz}, 131 | Pages = {258--270}, 132 | Publisher = {Springer-Verlag}, 133 | Series = {LNCS}, 134 | Title = {Reversible Flowchart Languages and the Structured Reversible Program Theorem}, 135 | Volume = {5126}, 136 | Year = {2008}} 137 | 138 | @article{Huffman:1959, 139 | Author = {Huffman, David A.}, 140 | Journal = {{IRE} Transactions on Information Theory}, 141 | Number = {5}, 142 | Pages = {41--59}, 143 | Title = {Canonical Forms for Information-Lossless Finite-State Logical Machines}, 144 | Volume = {5}, 145 | Year = {1959}} 146 | 147 | @article{YokoyamaEtAl:2015, 148 | Author = {Yokoyama, Tetsuo and Axelsen, Holger Bock and Gl\"{u}ck, Robert}, 149 | Journal = {Theoretical Computer Science}, 150 | OPTPages = {-}, 151 | OPTdoi = {10.1016/j.tcs.2015.07.046}, 152 | note = {dx.doi.org/10.1016/j.tcs.2015.07.046. Article in press}, 153 | Title = {Fundamentals of reversible flowchart languages}, 154 | Year = {2015}} 155 | 156 | @article{VedralBarencoEkert:1996, 157 | Author = {Vedral, Vlatko and Barenco, Adriano and Ekert, Artur}, 158 | Journal = {Physical Review A}, 159 | Number = {1}, 160 | Pages = {147--153}, 161 | Title = {Quantum networks for elementary arithmetic operations}, 162 | Volume = {54}, 163 | Year = {1996}} 164 | 165 | @article{CuccaroEtAl:2005, 166 | Author = {Cuccaro, Steven A. and Draper, Thomas G. and Kutin, Samuel A. and Moulton, David Petrie}, 167 | Journal = {arXiv:quant-ph/0410184v1}, 168 | Title = {A new quantum ripple-carry addition circuit}, 169 | Year = {2005}} 170 | 171 | 172 | @inproceedings{AxelsenGluck:2013:RC, 173 | Author = {Axelsen, Holger Bock and Gl\"{u}ck, Robert}, 174 | Booktitle = {Reversible Computation}, 175 | Editor = {Dueck, Gerhard W. and Miller, D. Michael}, 176 | Pages = {96--109}, 177 | Series = {LNCS}, 178 | Title = {Reversible Representation and Manipulation of Constructor Terms in the Heap}, 179 | Volume = {7948}, 180 | Year = {2013}} 181 | 182 | 183 | @inproceedings{Mogensen:2014:RC, 184 | Author = {Mogensen, Torben {\AE}gidius}, 185 | Booktitle = {Reversible Computation}, 186 | Editor = {Yamashita, Shigeru and Minato, Shin-ichi}, 187 | Pages = {82--94}, 188 | Publisher = {Springer International Publishing}, 189 | Series = {Lecture Notes in Computer Science}, 190 | Title = {Reference Counting for Reversible Languages}, 191 | Volume = {8507}, 192 | Year = {2014}} 193 | 194 | @article{Bennett:1973, 195 | Author = {Bennett, Charles H.}, 196 | Journal = {IBM Journal of Research and Development}, 197 | Number = {6}, 198 | Pages = {525--532}, 199 | Title = {Logical Reversibility of Computation}, 200 | Volume = {17}, 201 | Year = {1973}} 202 | 203 | @article{Landauer:1961, 204 | Author = {Landauer, Rolf}, 205 | Journal = {IBM Journal of Research and Development}, 206 | Number = {3}, 207 | Pages = {183--191}, 208 | Title = {Irreversibility and heat generation in the computing process}, 209 | Volume = {5}, 210 | Year = {1961}} 211 | 212 | @inproceedings{AxelsenGlueck:2011:FoSSaCS, 213 | Author = {Holger Bock Axelsen and Gl\"{u}ck, Robert}, 214 | Booktitle = {Foundations of Software Science and Computational Structures}, 215 | Editor = {Martin Hofmann}, 216 | Pages = {42--56}, 217 | Publisher = {Springer-Verlag}, 218 | Series = {LNCS}, 219 | Title = {What Do Reversible Programs Compute?}, 220 | Volume = {6604}, 221 | Year = {2011}} 222 | 223 | @inproceedings{Mogensen:2015:RC, 224 | Author = {Mogensen, Torben {\AE}gidius}, 225 | Booktitle = {Reversible Computation}, 226 | Editor = {Krivine, Jean and Stefani, Jean-Bernard}, 227 | Pages = {79--94}, 228 | Publisher = {Springer International Publishing}, 229 | Series = {Lecture Notes in Computer Science}, 230 | Title = {Garbage Collection for Reversible Functional Languages}, 231 | Volume = {9138}, 232 | Year = {2015}} 233 | 234 | 235 | @unpublished{JamesSabry:2014:RC, 236 | Author = {James, Roshan P. and Sabry, Amr}, 237 | OptNote = {Work in progress paper at RC 2014}, 238 | Title = {Theseus: A High Level Language for Reversible Computing}, 239 | Year = {2014}, 240 | Note = {Work in progress paper at RC 2014. Available at \url{www.cs.indiana.edu/~sabry/papers/theseus.pdf}} 241 | } 242 | 243 | 244 | 245 | @article{BerutEtal:2012:Nat, 246 | Author = {B\'erut, Antoine and Arakelyan, Artak and Petrosyan, Artyom and Ciliberto, Sergio and Dillenschneider, Raoul and Lutz, Eric}, 247 | Journal = {Nature}, 248 | Number = {7388}, 249 | Pages = {187--189}, 250 | Title = {Experimental verification of {Landauer's} principle linking information and thermodynamics}, 251 | Volume = {483}, 252 | Year = {2012}} 253 | 254 | @article{OrlovEtal:2012, 255 | Author = {Alexei O. Orlov and Craig S. Lent and Cameron C. Thorpe and Graham P. Boechler and Gregory L. Snider}, 256 | Journal = {Japanese Journal of Applied Physics}, 257 | Pages = {06FE10}, 258 | Title = {Experimental Test of {L}andauer's Principle at the Sub-$k_{\mathrm{\uppercase{B}}} {T}$ Level}, 259 | Volume = {51}, 260 | Year = {2012}} 261 | 262 | @incollection{SchordanEtal:2015:RC, 263 | Author = {Schordan, Markus and Jefferson, David and Barnes, Peter and Oppelstrup, Tomas and Quinlan, Daniel}, 264 | Booktitle = {Reversible Computation}, 265 | Editor = {Krivine, Jean and Stefani, Jean-Bernard}, 266 | Pages = {95--110}, 267 | Publisher = {Springer}, 268 | Series = {9138}, 269 | Title = {Reverse Code Generation for Parallel Discrete Event Simulation}, 270 | Year = {2015}} 271 | 272 | 273 | @misc{LutzDerby:1986, 274 | Author = {Lutz, Christopher and Derby, Howard}, 275 | Howpublished = {A letter to {R. Landauer.} \verb+http://tetsuo.jp/ref/janus.pdf+}, 276 | Title = {Janus: A Time-reversible Language}, 277 | Year = {1986}} 278 | 279 | 280 | @inproceedings{YokoyamaGlueck:2007:Janus, 281 | Author = {Yokoyama, Tetsuo and Gl\"{u}ck, Robert}, 282 | Booktitle = {Partial Evaluation and Program Manipulation. PEPM '07}, 283 | Pages = {144--153}, 284 | Publisher = {{ACM}}, 285 | Title = {A reversible programming language and its invertible self-interpreter}, 286 | Year = {2007}} 287 | 288 | @phdthesis{Frank:1999, 289 | Author = {Frank, Michael P.}, 290 | School = {MIT, EECS}, 291 | Title = {Reversibility for Efficient Computing}, 292 | Year = {1999}} 293 | 294 | @inproceedings{Axelsen:2011:CC, 295 | Author = {Axelsen, Holger Bock}, 296 | Booktitle = {Compiler Construction. CC '11}, 297 | Editor = {Jens Knoop}, 298 | Pages = {142--161}, 299 | Publisher = {Springer-Verlag}, 300 | Series = {LNCS}, 301 | Title = {Clean Translation of an Imperative Reversible Programming Language}, 302 | Volume = {6601}, 303 | Year = {2011}} 304 | 305 | @phdthesis{Polakow:2001, 306 | Author = {Polakow, Jeff}, 307 | School = {Carnegie Mellon University}, 308 | Title = {Ordered Linear Logic and Applications}, 309 | Year = {2001} 310 | } -------------------------------------------------------------------------------- /conference_poster/rfunprog.tex: -------------------------------------------------------------------------------- 1 | 2 | 3 | \defverbatim[colored]\RevRFunPlus{% 4 | \footnotesize 5 | \begin{rfuncode} 6 | zip :: ([a], [b]) <-> [(a, b)] 7 | zip ([], []) = [] 8 | zip ((a:as), (b:bs)) = 9 | let ls = zip (as, bs) 10 | in ((a, b):ls) 11 | 12 | unzip :: [(a, b)] <-> ([a], [b]) 13 | unzip l = zip! l 14 | \end{rfuncode} 15 | } 16 | 17 | 18 | \defverbatim[colored]\RevRFunMap{% 19 | \footnotesize 20 | \begin{rfuncode} 21 | map :: (a <-> b) -> [a] <-> [b] 22 | map fun [ ] = [ ] 23 | map fun (l:ls) = 24 | let l' = fun l 25 | ls' = map fun ls 26 | in (l':ls') 27 | \end{rfuncode} 28 | } 29 | 30 | 31 | \defverbatim[colored]\RevRFunQC{% 32 | \footnotesize 33 | \begin{rfuncode} 34 | -- Wire is defined as a number 35 | data Wire = Z | S Wire 36 | 37 | data Gate = Id Wire | Not Wire 38 | | H Wire | T Wire | Cnot ([Wire], Wire) 39 | 40 | hadamard :: Wire <-> Gate 41 | hadamard w = (H w) 42 | 43 | cnot :: Wire -> Wire <-> Gate 44 | cnot q1 q2 = Cnot [q1] q2 45 | 46 | -- Simple example circuit 47 | qec :: ([Wire] <-> [Gate]) 48 | -> [Wire] <-> [Gate] 49 | qec phase c = 50 | let ch = map hadamard c 51 | p = phase ch 52 | ci = map hadamard c 53 | in ci 54 | \end{rfuncode} 55 | } 56 | -------------------------------------------------------------------------------- /conference_poster/sample.bib: -------------------------------------------------------------------------------- 1 | @BOOK{Smith:2012qr, 2 | title = {{B}ook {T}itle}, 3 | publisher = {Publisher}, 4 | author = {Smith, J.~M. and Jones, A.~B.}, 5 | year = {2012}, 6 | edition = {7th}, 7 | } 8 | 9 | @ARTICLE{Smith:2013jd, 10 | author = {Jones, A.~B. and Smith, J.~M.}, 11 | title = {{A}rticle {T}itle}, 12 | journal = {Journal title}, 13 | year = {2013}, 14 | volume = {13}, 15 | pages = {123-456}, 16 | number = {52}, 17 | month = {March}, 18 | publisher = {Publisher} 19 | } -------------------------------------------------------------------------------- /eduroam.md: -------------------------------------------------------------------------------- 1 | # Eduroam 2 | 3 | The wireless network at DIKU is called Eduroam. The nice thing about 4 | Eduroam is that your connection settings should work at any university 5 | that also uses Eduroam (actual experience may vary). On Linux, use the 6 | following settings: 7 | 8 | * SSID: eduroam 9 | 10 | * Security: WPA & WPA2 Enterprise 11 | 12 | * Authentication: PEAP 13 | 14 | * Anonymous identity: `anonymous@ku.dk` (may not matter) 15 | 16 | * PEAP version: Automatic 17 | 18 | * Inner authentication: MSCHAPv2 19 | 20 | * Username `username@ku.dk`, e.g. `mzd885@ku.dk` if you are 21 | [Troels](http://hjemmesider.diku.dk/~athas/). 22 | 23 | * Password: your KU password (meaning you'll have to change it ever so often). 24 | -------------------------------------------------------------------------------- /erda.md: -------------------------------------------------------------------------------- 1 | # Using [ERDA](https://www.erda.dk/) 2 | 3 | ERDA is a UCPH-managed data service for storing, sharing, analyzing 4 | and archiving research data. For DIKU researchers, it is probably the 5 | easiest way to store large files for long periods of time. You can 6 | make data stored on ERDA publicly available, or share it with people 7 | who know a password. The ERDA website has pretty decent 8 | documentation, but here are a few pointers (some of these links may 9 | only work after you have logged in): 10 | 11 | * [SFTP (i.e. `sshfs`) 12 | access](https://erda.dk/wsgi-bin/setup.py?topic=sftp) - even works 13 | with your public key, like an actual civilised system! 14 | 15 | * Sharing files with the public requires using the [browser-based file 16 | manager](https://erda.dk/wsgi-bin/fileman.py). But if you share a 17 | directory, this will also make files in all subdirectories available 18 | ([example](https://sid.erda.dk/cgi-sid/ls.py?share_id=FlhwY8rtfk)). 19 | 20 | * To share files in a read-write manner with other ERDA users, you 21 | need to create a ["workgroup"](https://erda.dk/wsgi-bin/vgridman.py) 22 | and add them (using their KU username). 23 | 24 | For additional help, consult the [user 25 | guide](https://erda.ku.dk/public/ucph-erda-user-guide.pdf). 26 | 27 | ## Using ERDA with [`get-data.sh`](https://github.com/munksgaard/get-data.sh) to host large files in a git repository 28 | 29 | Sometimes you want to host a project or some data on GitHub, but your project 30 | contains files larger than GitHub allows (currently 100 MB). This is a guide for 31 | how to set up `get-data.sh` and ERDA for such a scenario. 32 | 33 | ### Create an ERDA workgroup 34 | 35 | The first thing you'll need to do is create an ERDA workgroup for your 36 | project. For illustrative purposes, I'll call mine `get-data-test`. To create a 37 | workgroup, you'll need to navigate to the [ERDA workgroups 38 | page](https://erda.dk/wsgi-bin/vgridman.py), scroll all the way to the bottom, 39 | enter the name of the workgroup we wish to create and click create. 40 | 41 | ### Create a share link for your workgroup 42 | 43 | Now we need to create a share link for public access to the files in the 44 | workgroup folder. 45 | 46 | After creating the workgroup, find the newly created directory in [the file 47 | manager on erda.dk](https://erda.dk/wsgi-bin/fileman.py), right-click it, choose 48 | "Share Link" and "Create". In the prompt, specify which permissions should be 49 | available for public access. Most likely, you should use "Read Access" 50 | only. When the share link has been created, you'll get a popup noting the ID of 51 | the share link. In my case it was `FXS2tnCbLE`. 52 | 53 | ### Upload your files 54 | 55 | Using the web-interface, upload the files you want access to into your 56 | workgroup. For instance, I've uploaded a file called "foo.blob" into my 57 | `get-data-test` folder. 58 | 59 | ### Add the uploaded files to external-data.txt 60 | 61 | Create a file named `external-data.txt` in the root of your repository. For each 62 | file you've uploaded, add a line of the format `PATH URL SHA`. For instance: 63 | 64 | ``` 65 | external-data/foo.blob https://sid.erda.dk/share_redirect/FXS2tnCbLE/foo.blob 8c63faf15d9f8028826ed7d9a1647917a833092c1bd291f017b6618584124707 66 | ``` 67 | 68 | Now, calling `./get-data.sh external-data.txt` will download and verify the 69 | files specified. You want to commit `external-data.txt` to your repository, but 70 | not the files in `external-data`. Instead, add symlinks from the places 71 | where you want to use the data to their location in `external-data`, and commit 72 | the symlink: 73 | 74 | ``` 75 | ln -s -r external-data/foo.blob my/data/is/needed/here/foo.blob 76 | git add my/data/is/needed/here/foo.blob 77 | ``` 78 | -------------------------------------------------------------------------------- /homepage.md: -------------------------------------------------------------------------------- 1 | # Updating your diku.dk/~foo homepage 2 | 3 | Your department homepage is stored on the "N drive", specifically 4 | `https://ucph-ku.zoom.us/j/4582423981`. To gain access, you must write to 5 | [Morten 6 | Engell-Nørregaard](https://di.ku.dk/english/staff/administration/?id=246448&vis=medarbejder). 7 | Note that you will get write access to *all* homepages, so please be careful. 8 | 9 | Once you have been granted access, you access your homepage as you access 10 | anything else on the "N drive". In practice, I have found that you do this by 11 | logging into some KU system (e.g. [the DIKU cluster](servers.md)) and looking in 12 | `~/ucph/ndir/WEB-hjemmesider.diku.dk/`. 13 | 14 | For greater convenience, you can also use `sshfs` to mount the remote file 15 | system locally. However, in that case the `ucph` symlink in your home directory, 16 | will not work, as it is absolute and not relative. You can instead directly 17 | access `/maps/groupdir/$USER/WEB-hjemmesider.diku.dk`, where you should replace 18 | `$USER` with your username. 19 | -------------------------------------------------------------------------------- /printing.md: -------------------------------------------------------------------------------- 1 | # Printing at DIKU 2 | 3 | The easiest way is to use [webprint](https://webprint.ku.dk/). 4 | 5 | - After logging in, choose "Web Print" on the left. 6 | - Choose "Submit a Job" 7 | - Choose how you want to print (color/gresycale, duplex/simplex). Don't worry 8 | about the weird long name at the 9 | front. `prtskyq02pw\WebPrint_q02_A4_Greyscale_Duplex (virtual)` is usually 10 | good enough. 11 | - Choose how many copies you want to print 12 | - Upload the file you want to print 13 | - Physically go to the mobility printer and scan your KU ID-card. 14 | - Select "Print all" on the printer 15 | 16 | ## Mobility print setup 17 | http://mobilityprint.ku.dk:9163/client-setup/ 18 | -------------------------------------------------------------------------------- /rejsud.md: -------------------------------------------------------------------------------- 1 | # RejsUd 2 | 3 | If you have a KU credit card and need to settle expenses, you can do so using 4 | [RejsUd2](https://kunet.ku.dk/faculty-and-department/diku/finances/Pages/expense-claims.aspx). 5 | 6 | ## What do I put for the Alias/Sted/KU Specifikation fields on the settlement page? 7 | See [here](https://kunet.ku.dk/faculty-and-department/diku/finances/Pages/Unit-number-alias-UCPH-specification.aspx). 8 | 9 | ## Checklist for reimbursement after conference trip 10 | 11 | You need: 12 | 13 | * PDF invoice for hotel 14 | * PDF invoice for conference 15 | * PDF invoice from Carlson Wagonlit (CWT, the travel agent) 16 | * (Generally, invoice for any expense, but these three are unavoidable) 17 | * PDF of the conference programme (hopefully can be printed from conference website). 18 | 19 | Hints: 20 | 21 | 1. For "Afregningsskabelon" pick "2 - Travel settlements". 22 | 2. Fill in your sted/alias/spec, travel days, start/end-date, and so on. 23 | 3. Add the various expenses. Note that CWT is usually *two* expenses 24 | (ticket and "travel fee"). Attach invoices/bills to the relevant 25 | expenses. You do not need to add anything for the CWT travel free. 26 | 4. Under "Rejsedage" (or the "Travel" tab if you're using CWT in English) you add the travel days and indicate for each day 27 | how you want to be reimbursed (e.g. which meals were included as 28 | part of the hotel/conference stay). 29 | 30 | So for the most common expenses you need the following attachments: 31 | 32 | * **CWT ticket** 33 | 1. The confirmation/ticket/travel-document from CWT. 34 | * **CWT travel fee** 35 | * Nothing! 36 | * **Conference registration** 37 | 1. Conference program. 38 | 2. Bill or invoice. 39 | * **Hotel** 40 | 1. Bill or invoice. 41 | -------------------------------------------------------------------------------- /servers.md: -------------------------------------------------------------------------------- 1 | # Servers 2 | 3 | There are servers at DIKU that are accessed through various esoteric 4 | mechanisms. You might need to talk to various people to get access, 5 | but *once* you have access, this is how you connect and use them. 6 | 7 | ## The DIKU cluster 8 | 9 | Also known as *Hendrix* or *the IMAGE cluster*. [See here for access and other 10 | useful information.](https://diku-dk.github.io/wiki/slurm-cluster) 11 | 12 | ### Tips and tricks 13 | 14 | * Remember that this is a shared system with many users. Don't do 15 | clearly antisocial things. For example, don't leave an interactive 16 | job idle for a long period of time on an in-demand node while you go 17 | for lunch. 18 | 19 | * To run a command on an arbitrary node with an arbitrary GPU: 20 | 21 | ``` 22 | srun --gres=gpu:1 --pty nvidia-smi 23 | ``` 24 | 25 | * To get a an interactive session on an arbitrary node: 26 | 27 | ``` 28 | srun --pty bash 29 | ``` 30 | 31 | * To get an interactive session on a node with an arbitrary GPU: 32 | 33 | ``` 34 | srun --gres=gpu:1 --pty bash 35 | ``` 36 | 37 | * To get an interactive session on a node with a specific GPU: 38 | 39 | ``` 40 | srun -p gpu --gres=gpu:titanx:1 --pty bash 41 | ``` 42 | 43 | See [this 44 | table](https://diku-dk.github.io/wiki/slurm-cluster#available-gpus) 45 | for available GPUs. (Note that the table may not contain correct 46 | names - try lowercase versions of the indicated names.) 47 | 48 | * To start an interactive session on a specific node: 49 | 50 | ``` 51 | srun -p gpu -w hendrixgpu03fl --pty bash 52 | ``` 53 | 54 | Note that you will also need to add an appropriate `--gres` to 55 | access the GPU(s) if you need them. 56 | 57 | * To see all available resources and which nodes have them: 58 | 59 | ``` 60 | sinfo -o "%60N %5c %10m %20G " 61 | ``` 62 | 63 | * You can add `--exclusive` to `srun` to get an entire node to 64 | yourself, but you may be waiting a long time. Otherwise you will 65 | only have exclusive access to the resources you asked for (e.g. you 66 | may get the GPU to yourself, but someone else may be hammering the 67 | CPU cores). 68 | 69 | * You may want to add `--time=00:20:00` to `srun`, which will allow 70 | your command to run before jobs that demand infinite execution 71 | time... 72 | 73 | #### Compiling Haskell 74 | 75 | * Use `module load gmp` to make the GMP library available. GHC 76 | usually expects this to be available. Some SML compilers do, too. 77 | 78 | * Use [ghcup](https://www.haskell.org/ghcup/) to install GHC and 79 | `cabal`. You may need to use the following command to obtain a 80 | working GHC: 81 | 82 | ``` 83 | $ ghcup install ghc --set -p x86_64-fedora27-linux 84 | ``` 85 | 86 | * Compilation with `cabal` is likely to make progress and then fail 87 | with errors such as: 88 | 89 | ``` 90 | /home/.../dist-newstyle/tmp/package-registration--811774 91 | removeDirectoryRecursive:removeContentsRecursive:removeDirectory: unsatisfied 92 | constraints (Directory not empty) 93 | ``` 94 | 95 | As far as I can determine, this is due to the network filesystem not 96 | following POSIX semantics. However, this error is nondeterministic 97 | and `cabal` will make a bit of progress every time, so just keep 98 | retrying until it is done. 99 | 100 | ### Adding modules 101 | 102 | The system has a standard [HPC module 103 | system](https://hpc-wiki.info/hpc/Modules). Use it with e.g. `module 104 | load cuda`. The set of available modules is maintained by KU IT, and 105 | you can request more modules by opening a ticket at 106 | https://serviceportal.ku.dk under *Forsknings-IT -> 107 | Forskningsapplikationer og Service -> Rådgivning og support*. They 108 | seem pretty responsive. 109 | 110 | ### Futhark servers 111 | 112 | The DIKU cluster has three so-called "Futhark servers" that are not 113 | properly hooked into the Slurm queue system. They have the following 114 | hostnames: 115 | 116 | - hendrixfut01fl 117 | - hendrixfut02fl 118 | - hendrixfut03fl 119 | 120 | You access them by SSH'ing into the Hendrix gateway server and then 121 | SSH'ing into one of the hosts listed above, provided you have 122 | permission (see below). From there, you can run normal Unix commands. 123 | The module system is available, but Slurm is not. 124 | 125 | ### Granting permission 126 | 127 | To access the Futhark servers, you must be added to the 128 | `SRV-hendrixfut-users` group on 129 | [identity.ku.dk](https://identity.ku.dk). 130 | -------------------------------------------------------------------------------- /vpn.md: -------------------------------------------------------------------------------- 1 | # How do I VPN? 2 | 3 | There is currently only one KU VPN, which uses 2FA. This document describes how to 4 | access it. 5 | 6 | Take a look at [the official 7 | documentation](https://kunet.ku.dk/medarbejderguide/Sider/It/Fjernadgang-vpn.aspx) 8 | (generally, the material on KUNet is better than its reputation). 9 | However, you will notice that there is no documentation for Linux. 10 | 11 | ## Accessing the KU VPN using NetworkManager 12 | 13 | First you must set up the KU VPN. You do this by going to 14 | [vpn.ku.dk](https://vpn.ku.dk). Note that you must use the app (NetIQ 15 | Advanced Authenticator) - for some reason the VPN apparently does not 16 | work with SMS-based 2FA or NemID/MitID. 17 | 18 | Open the connection editor: 19 | 20 | ``` 21 | $ sudo nm-connection-editor 22 | ``` 23 | 24 | Then, press *Add connection*, pick *Cisco AnyConnect or openconnect* 25 | and enter the following: 26 | 27 | * **Gateway:** `vpn.ku.dk` 28 | 29 | Leave everything else at its default settings. Whenever you activate 30 | the VPN, it will ask for your username, password (both of which can be 31 | saved) and 2FA token (this must be entered every time you connect). If 32 | *Cisco AnyConnect or openconnect* is not in the list of available 33 | connection types, you would probably need to install some package(s), 34 | depending on your setup (called `networkmanager-openconnect` on Arch 35 | Linux). 36 | 37 | ## Accessing the KU VPN on Linux and macOS with OpenConnect 38 | 39 | The new VPN uses the Cisco AnyConnect protocol. In order to access it, install 40 | [OpenConnect](http://www.infradead.org/openconnect/) and run: 41 | 42 | ```sh 43 | $ sudo openconnect vpn.ku.dk 44 | ``` 45 | 46 | You will be asked to enter your username and password. You will also 47 | need to enter a 2FA token from an authenticator app on your phone, or 48 | via a discrete device (see the official documentation above for how to 49 | set that up). 50 | 51 | You can write a script such that you don't have to enter your username 52 | and password every time (do so and put it here!), but you will always 53 | need to do the 2FA. 54 | 55 | To install [OpenConnect](http://www.infradead.org/openconnect/) under 56 | macOS use `brew`: 57 | 58 | ```sh 59 | $ brew install openconnect 60 | ``` 61 | --------------------------------------------------------------------------------