12|17

bhyve Hypervisor

Listserver

Audio Unit Plug-ins

DARIAH-DE Repository

ZEITSCHRIFT FÜR DIE KUNDEN DER GWDG

Frohe Weihnachten und einen guten Rutsch ins neue Jahr! Impressum

Zeitschrift für die Kunden der GWDG

ISSN 0940-4686 40. Jahrgang 12|17 Ausgabe 12/2017 Erscheinungsweise: monatlich www.gwdg.de/gwdg-nr Auflage: 550 4 The bhyve Hypervisor 7 Tipps & Tricks Fotos: © Halfpoint - Fotolia.com (1) © pterwort - Fotolia.com (6) 10 Kling, Software, klingelingeling – Entwicklung © fotogestoeber - Fotolia.com (9) © momius - Fotolia.com (17) © MPIbpc-Medienservice (3) von Audio Unit Plug-ins 18 Kurz & knapp © GWDG (2, 20) Herausgeber: 20 Kurse Gesellschaft für wissenschaftliche Datenverarbeitung mbH Göttingen Am Faßberg 11 37077 Göttingen Tel.: 0551 201-1510 Fax: 0551 201-2150 Redaktion: Dr. Thomas Otto E-Mail: [email protected] Herstellung: Franziska Schimek E-Mail: [email protected] Druck: Kreationszeit GmbH, Rosdorf 3 12|17

Prof. Dr. Ramin Yahyapour [email protected] 0551 201-1545

Liebe Kunden und Freunde der GWDG,

Sie erhalten hiermit die Dezember-Ausgabe der GWDG-Nachrichten, womit sich wieder das Ende eines Jahres ankündigt. Im Editorial bieten sich hier immer ein kurzer Rück- blick und eine Vorschau an, wobei die großen Themen naturgemäß nicht neu und Dauer- brenner sind. Der Neubau des gemeinsamen Rechenzentrums hat in diesen Tagen begonnen. Am Burckhardtweg entsteht im Laufe der nächsten 2,5 Jahre ein Gebäude, das sowohl hoch funktionale und effiziente Rechnerräume als auch die dringend benötigten Büroflächen für die GWDG und die IT der Universitätsmedizin Göttingen bereitstellen wird. Die Ausschreibung und Verhandlungen für die vierte Generation des Hochleistungsrech- ners Nord (HLRN-IV) sind auf der Zielgeraden. Das gemeinsam mit dem Zuse-Institut Berlin zu beschaffende System soll in einem Jahr in einer ersten Phase aufgebaut wer- den und seinen Betrieb aufnehmen. Hier können wir vermutlich zu Beginn des kommen- den Jahres weitere Details liefern. So wird es auch im Jahr 2018 nicht langweilig werden. Die GWDG ist bei der Vorberei- tung des Antrags der Universität Göttingen in der Exzellenzinitiative vertreten. Der Antrag wird in den kommenden Monaten weiter vorzubereiten sein, so dass auch hier neue Aufgaben warten. Wir werden wie immer in den GWDG-Nachrichten berichten. Bis dahin wünsche ich Ihnen viel Freude beim Lesen dieser Ausgabe, vor allem aber schöne Feiertage und einen erfolgreichen Start in das neue Jahr.

Ramin Yahyapour GWDG – IT in der Wissenschaft 4 12|17 The bhyve Hypervisor

Text and Contact: Virtual machines have become indispensable today. Meanwhile diverse technical Dr. Konrad Heuer [email protected] solutions have been developed which realize different levels of virtualiziation. 0551 201-1540 This article describes bhyve, a BSD-licensed open source level two hypervisor which runs on top of the FreeBSD operating system. A similar solution called xhyve is available for the macOS operating system.

INTRODUCTION The command line flags are used to specify resources and name (the last argument) of the virtual machine: 1 cpu, 1024 A level two hypervisor is an application run by an ordinary Mbyte of memory, virtual network interface and virtual disk image operating system, and bhyve has even become part of the base as created before, and booting from the given DVD image file (the FreeBSD operating system (on the 64-bit Intel/AMD platform) star- -i-flag forces booting from the virtual DVD drive). Figure 1 shows ting with version 10. It is able to supply virtual FreeBSD, Linux, the appearance of the screen after booting the virtual machine. NetBSD or OpenBSD machines. Although FreeBSD offers for

many years now jails as a light-weight solution for running virtual ______| ____| | _ \ / ____| __ \ FreeBSD instances using a single operating system kernel, it may | |______| |_) | (___ | | | | | ___| '__/ _ \/ _ \| _ < \___ \| | | | be useful in some scenarios to run fully functional virtual machines | | | | | __/ __/| |_) |____) | |__| | | | | | | | || | | | with completely independent operating systems to overcome the |_| |_| \___|\___||____/|_____/|_____/ ``` ` s` `.....---...... --.``` -/ limitations of jails. +======Welcome to FreeBSD======+ +o .--` /y:` +. | | yo`:. :o `+- When comparing bhyve and VirtualBox, another open sour- | 1. Boot Multi User [Enter] | y/ -/` -o/ | 2. Boot [S]ingle User | .- ::/sy+:. ce level two hypervisor which is also available for FreeBSD as a | 3. [Esc]ape to loader prompt | / `-- / | 4. Reboot | `: :` package, a conclusion may be that bhyve is the better solution for | | `: :` | Options: | / / running virtual servers whereas VirtualBox is state of the art for vir- | 5. [K]ernel: kernel (1 of 2) | .- -. | 6. Configure Boot [O]ptions... | -- -. tual desktop systems. In particular, bhyve does not provide a gra- | | `:` `:` | | .-- `--. phical user interface without some greater effort. | | .---.....----. |+= =+ CREATING A FREEBSD GUEST

FigureAfter the 1: installationAppearance process of thehas been screen finished after and booting some configuration the virtual has FreeBSD been done, the new server will be functional. machine Typical application scenarios are virtual servers for HTTP, printing, OpenLDAP, PostgreSQL, firewalls and Creating and starting a virtual FreeBSD machine with bhyve is so on. The basic network configuration within the virtual machine depends on the settings of the bridge interface and relatively easy. First, a new virtual network interface has to be crea- may Afterlook like the this, installation to keep the example: process has been finished and some con-

ted and a bridge between the real network interface (e.g. em0) and figurationifconfig vtnet0 has beeninet 10.0.0.2 done, thenetmask new 255.255.255.0 server will be functional. Typical the virtual software emulated interface tap0 must be established: applicationroute add default scenarios 10.0.0.1 are virtual servers for HTTP, printing, Open- LDAP,It goes without PostgreSQL, saying that virtual firewalls servers andwith privateso on. IP addressesThe basic like 10.0.0.2 network cannot confi communicate- beyond the host system without some additional proxy or NAT configuration on the host system. If official IP addresses are needed and ifconfig tap0 create gurationavailable, onewithin of them the has virtualto be used machine for the bridge depends and further onones the for each settings virtual machine. of the

sysctl -w net.link.tap.up_on_open=1 bridgePowering interface a virtual machine and offmay can lookbe done like within this, the virtualto keep machine the itself example: as usual:

ifconfig bridge0 create shutdown -p now ifconfig bridge0 addm em0 addm tap0 ifconfig vtnet0 inet 10.0.0.2 netmask 255.255.255.0 In normal operation, the virtual FreeBSD machine is started by a shorter vmrun.sh command: ifconfig bridge0 inet 10.0.0.1 netmask 255.255.255.0 up route add default 10.0.0.1 sh /usr/share/examples/bhyve/vmrun.sh -c 1 -m 1024M -t tap0 -d freebsd-11.1.img freebsd-11.1 It is possible to assign an IP address to the bridge interface (for CREATINGIt goes A LINUX without GUEST saying that virtual servers with private IP example 10.0.0.1) for later communication with the virtual machine. addressesIn case that a Linux like server10.0.0.2 has to be cannot run by bhyve, communicate things seem to be abeyond little bit more the complex host (but they are not) as will be shown below. A possible reason for running Linux may be that for example some commercial software product is In the second step, the vmm kernel module must be loa- supported for Linux only. ded and a virtual disk image has to be created. Now it is possib- TapHypervisor and bridge interface as well bhyve as a virtual disk ubuntu-16.04.img (e.g.) have to be created analogously, and of course le to comfortably start the virtual machine by using the shell script the kernel module vmm has as well to be loaded. Next the package grub2-bhyve needs to be installed:

vmrun.sh which is located in the examples directory: pkg installVirtuelle grub2-bhyve Maschinen sind heute unverzichtbar geworden. Inzwischen wurden diverse technische Lösungen entwickelt, After a device.map file containg two lines like kldload vmm die unterschiedliche Virtualisierungsgrade realisieren. Dieser (hd0) ./ubuntu-16.04.img truncate -s 16G freebsd-11.1.img (cd0)Artikel ./ubuntu-16.04.3-server-amd64.iso beschreibt bhyve, einen BSD-lizenzierten Open-Sour-

sh /usr/share/examples/bhyve/vmrun.sh -c 1 -m 1024M -t hasce-Level-2-Hypervisor, been created by using a text editor, der the unter Linux kerneldem can FreeBSD-Betriebssys be loaded: -

tap0 -d freebsd-11.1.img -i grub-bhyvetem läuft. -m device.mapEine ähnliche -r cd0 -MLösung 1024M ubuntu-16.04 namens xhyve ist für das -I FreeBSD-11.1-RELEASE-amd64-dvd1.iso freebsd-11.1 Betriebssystem macOS verfügbar. Now the system is ready to launch the virtual machine for the installation process. After installation, the virtual machine instance must be destroyed (the wording sounds disturbing, but means merely powering off) before further steps can be taken: 5 12|17 system without some additional proxy or NAT configuration on the host system. If official IP addresses are needed and available, they grub-bhyve -m device.map -r hd0,msdos1 -M 1024M can simply be assigned to the virtual machines. In this case, the ubuntu-16.04 bridge interface needs no IP address. bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0, Powering a virtual machine off can be done within the virtual bhyvevirtio-net,tap0 -A -H -P -s 0:0,hostbridge -s 3:0,virtio-blk,./ubuntu-16.04.img -s 1:0,lpc -s 2:0,virtio-net,t -l ap0 -s 3:0,virtio-blk,./ubuntu- machine itself as usual: 16.04.imgcom1,stdio -s 4:0,ahci-cd,./ubuntu-16.04.3-server-amd64.iso -c 1 -m 1024M ubuntu-16.04 -l com1,stdio -c 1 -m 1024M ubuntu-16.04 bhyvectl --destroy –vm=ubuntu-16.04 bhyvectl --destroy –vm=ubuntu-16.04 shutdown -p now To run the virtual Ubuntu server after installation, three commands are needed for a full uptime cycle: The grub-bhyve command loads the Linux kernel before star- In normal operation, the virtual FreeBSD machine is started by tinggrub-bhyve the virtual -m device.map machine -r withhd0,msdos1 bhyve -M, and1024M after ubuntu-16.04 an internal shutdown bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap0 -s 3:0,virtio-blk,./ubuntu- a shorter vmrun.sh command: the16.04.img virtual -l machine com1,stdio instance -c 1 -m 1024M has ubuntu-16.04to be destroyed. This destruction doesbhyvectl not --destroy affect the–vm=ubuntu-16.04 virtual disk but just powers off as explained sh /usr/share/examples/bhyve/vmrun.sh -c 1 -m 1024M -t before. In case of a FreeBSD guest the example script vmrun.sh The grub-bhyve command loads the Linux kernel before starting the virtual machine with bhyve, and after an internal tap0 -d freebsd-11.1.img freebsd-11.1 mentionedshutdown the virtual earlier machine does instance all these has to be steps destroyed. in Thisa more destruction convenient does not affect way the virtual disk but just butpowers when off as looking explained before.deeper In case there of a FreeBSDis no principle guest the example difference. script vmrun.sh mentioned earlier does all CREATING A LINUX GUEST these Figuresteps in a 2 more gives convenient an impression way but when how looking the deeper screen there is looks no principle when difference. star- ting a Ubuntu server after installation. Fig. 2 gives an impression how the screen looks when starting a Ubuntu server after installation. In case that a Linux server has to be run by bhyve, things seem to be a little bit more complex (but they are not) as will be Starting Permit User Sessions... shown below. A possible reason for running Linux may be that [ OK ] Started Permit User Sessions. for example a commercial software product is supported for Linux [ OK ] Started LSB: Set the CPU Frequency Scaling governor to "ondemand". [ OK ] Started LSB: daemon to balance interrupts for SMP systems. only. [ OK ] Started LSB: automatic crash report generation. Tap and bridge interface as well as a virtual disk ubuntu-16.04. Starting Terminate Plymouth Boot Screen... Starting Hold until boot process finishes up... img (e.g.) have to be created analogously, and of course the kernel [ OK ] Started Hold until boot process finishes up. module vmm has as well to be loaded. Next the package grub2- [ OK ] Started Getty on tty1. bhyve needs to be installed: Starting Set console scheme... [ OK ] Started Serial Getty on ttyS0. [ OK ] Reached target Login Prompts. pkg install grub2-bhyve [ OK ] Started Terminate Plymouth Boot Screen. [ OK ] Started Set console scheme. [ OK ] Reached target Multi-User System. [ OK ] Reached target Graphical Interface. Starting Update UTMP about System Runlevel Changes... After a file device.map containing two lines like [ OK ] Started Update UTMP about System Runlevel Changes.

(hd0) ./ubuntu-16.04.img Ubuntu 16.04.3 LTS ubuntu ttyS0 (cd0) ./ubuntu-16.04.3-server-amd64.iso ubuntu login: has been created by using a text editor, the Linux kernel can be loaded: FigureFURTHER 2: Ubuntu INFORMATION server screenAND MOTIVATION after booting CONSIDERATIONS the installed system grub-bhyve -m device.map -r cd0 -M 1024M ubuntu-16.04 In the corresponding chapter of the FreeBSD handbook [1] some more useful information can be found. It shows, for FURTHER INFORMATION AND MOTIVATION example, how the configuration of virtual machines can be made persistent or how a ZFS volume can be used instead of CONSIDERATIONSa disk image. Especially when running a database service like e.g. MS-SQL in a virtual Linux machine the performance Now the system is ready to launch the virtual machine for the gain should be noticeable. On the CBSD project web page [2] some useful tools for virtual machines based on jails, Xen installation process. After installation, the virtual machine instance or bhyveIn thecan be corresponding found. chapter of the FreeBSD handbook [1] must be destroyed (the wording sounds disturbing, but means some more useful information can be found. It shows, for examp- A provocative, but interesting quote from this page is: „According to the authors of the project, Linux is no longer a merely powering off) before further steps can be taken: le,member how of the the common configuration people, it is offully virtual controlled machines by big commercial can be organization made s,persis while FreeBSD- is developed tentmostly or by howenthusiasts. a ZFS Today, volume Linux (...) can is a commercialbe used machine instead for makingof a diskmoney image.(...) However, Linux is bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0, Especiallyoversaturated whenwith similar running solutions. a Therefore, database it's much service more interesting like e.g. to createMS-SQL it on FreeBSD, in where nothing like virtio-net,tap0 -s 3:0,virtio-blk,./ubuntu-16.04.img -s 4:0, athat virtual exists. LinuxThis is an machine excellent challenge the performance to improve and fix gain in FreeBSD. should We be all lovenoticeab independence- and freedom and FreeBSD today - an independent and free operating system, which is in the hands of ordinary people.“ ahci-cd,./ubuntu-16.04.3-server-amd64.iso -l com1,stdio -c 1 le. On the CBSD project web page [2] some useful tools for virtual -m 1024M ubuntu-16.04 machinesIt can be questioned based whether on jails the verdict, Xen onor the bhyve commercialization can be found. of Linux in this hardness is justified, and it can be bhyvectl --destroy –vm=ubuntu-16.04 questionedA provocative, too, whether FreeBSD but interesting is not driven andquote promoted from by thiscommercial page interests is: „Accor in a weakened- manner. And it is dingbasically to verythe welcomeauthors that of important the project, and future-oriented Linux is software no longer products a andmember kernel features of are developed and theprovided common for Linux people, by companies it is or fully with commercialcontrolled backing; by big Ceph, commercial Docker, GlusterFS, organi OpenNebula- or OpenStack are examples. To run the virtual Ubuntu server after installation, three com- zations, while FreeBSD is developed mostly by enthusiasts. Today, mands are needed for a full uptime cycle: LinuxBut in fact,(...) andis a this commercial is the point, very machine convenient for solutions making do often money already (...). exist However, for Linux and not yet for FreeBSD. Therefore, one can legitimately ask why virtual machines should ever be operated under FreeBSD. One answer is: the 6 12|17

Linux is oversaturated with similar solutions. Therefore, it‘s much But in fact, and this is the point, very convenient solutions do more interesting to create it on FreeBSD, where nothing like that often already exist for Linux and not yet for FreeBSD. Therefore, exists. This is an excellent challenge to improve and fix in FreeBSD. one can legitimately ask why virtual machines should ever be ope- We all love independence and freedom and FreeBSD today – an rated under FreeBSD. One answer is: the stimulus to do this in independent and free operating system, which is in the hands of a more complicated and challenging way under FreeBSD is actu- ordinary people.“ ally that this may lead to more experimenting and deeper under- It can be questioned whether the verdict on the commercia- standing and in the end to a higher level of satisfaction. Another lization of Linux in this hardness answer can obviously be: if servers in your setting are already run is justified, and it can be ques- by FreeBSD due to other reasons, bhyve is a valuable feature. tioned too, whether FreeBSD Stability is not an issue; everything in the FreeBSD base sys- is not driven and promoted by tem which is declared as ready for production is indeed ready for commercial interests in a wea- production. So, if after some struggle the swarm of virtual machi- kened manner. And it is basi- nes steadily works like a beehive (see figure 3), the conclusion cally very welcome that impor- will hopefully be that also with bhyve virtualization is a success- tant and future-oriented soft- ful strategy. ware products and kernel fea- tures are developed and provi- FOOTNOTES ded for Linux by companies or with commercial backing; Ceph, [1] https://www.freebsd.org/doc/handbook/virtualization-host- Docker, GlusterFS, OpenNebula bhyve.html Figure 3: Beehive or OpenStack are examples. [2] https://www.bsdstore.ru/en/about.html

Software und Lizenzverwaltung Der einfache Weg zur Software!

Ihre Anforderung > Sie brauchen kein eigenes Ausschreibungs- und Beschaf- Sie benötigen eine Software, für die es keine von Ihnen fungsverfahren durchzuführen. nutzbare Rahmenvereinbarung gibt. Die Anzahl der erfor- > Sie ersparen sich die zeitraubenden Verhandlungen mit derlichen Lizenzen ist nicht genau festgelegt. den Softwareherstellern und -lieferanten. > Die Anzahl der benötigten Lizenzen wird Ihnen flexibel Unser Angebot zur Verfügung gestellt. Wir verfügen über eine Reihe von Rahmen- und Campusver- > Wir können die Nachfrage von verschiedenen Nutzern für einbarungen mit namhaften Softwareherstellern und -liefe- neue Lizenzvereinbarungen bündeln. ranten, über die Software auch in geringerer Stückzahl bezo- gen werden kann. Wir wickeln für Sie die Beschaffung der Interessiert? erforderlichen Lizenzen ab. Wir können uns bei Vertragsver- Informationen zu bestehenden Lizenzvereinbarungen sind handlungen und Bedarfsanalysen engagieren. Zugriffslizen- auf der u. g. GWDG-Webseite zu finden. Falls Sie nach spe- zen können auch über Lizenzserver verwaltet werden. zieller Software suchen, die noch nicht auf unserer Webseite erwähnt ist, kommen Sie bitte auf uns zu. Wir werden prüfen, Ihre Vorteile ob wir eine Vereinbarung abschließen können und bündeln die > Sie können die benötigte Software in vielen Fällen sofort Nachfrage mit anderen Nutzern. nutzen. >> www.gwdg.de/software 7 12|17 Tipps & Tricks

Die häufigsten Anfragen zum bei „Setze jeden eingetragenen Nutzer der Liste auf “mode- Listserver der GWDG riert“...“ (engl. „Set everyone‘s moderation bit, including tho- se members not currently visible“) auf „Ein“ (engl. „On“) und Unser Listserver https://listserv.gwdg.de, der sich mit mehr dann auf „Moderationsflags ändern“ (engl. „Set“). Dann bei als 1.800 Mailinglisten nach wie vor großer Beliebtheit erfreut, allen Mitgliedern, die an die Liste (den Newsletter) senden dür- basiert auf der frei verfügbaren und sehr verbreiteten Software fen, das Moderations-Flag entfernen. Dazu das Mitglied über „Mailman“. das Suchfeld anzeigen lassen und den Haken im Kontrollkäst- Seit dem Jahr 2013 bieten wir einen Selfservice über chen „moderiert“ (engl. „mod“) entfernen. Danach die Ände- unser Kundenportal https://www.gwdg.de an, der es ermög- rungen speichern. licht, selbstständig Mailinglisten einzurichten oder zu löschen, Nun zu „Abo-Regeln und Adreßfilter...“ (engl. „Privacy einen Überblick über die eigene Mitgliedschaft in Mailinglisten options“) wechseln und dort auf „Absender-Filter“ (engl. „Sen- zu erhalten sowie eine Auflistung aller Listen, für die man Admi- der filters“) klicken und dann bei „Sollen die Beiträge neuer Lis- nistratorrechte besitzt, zu bekommen. Das Zurücksetzen des tenmitglieder moderiert werden?“ (engl. „By default, should Administratorpasswortes ist hier ebenfalls möglich. new list member postings be moderated?“) auf „Ja“ (engl. Die Software „Mailman“, die ständig weiterentwickelt „Yes“) klicken und dann weiter unten noch bei „Was soll passie- wird, bietet eine Fülle von „Stellschrauben“, die es dem Lis- ren, wenn ein auf ‘moderiert‘ geschaltetes Mitglied an die Lis- tenbetreiber ermöglicht, die Mailingliste seinen persönlichen te sendet?“ (engl. „Action to take when a moderated member Bedürfnissen anzupassen. posts to the list“) auf „Wegwerfen“ (engl. „Discard“) klicken Diese „Stellschrauben“ sind nicht immer selbsterklärend, und dann speichern. und trotz der zahlreichen Tutorials und Beschreibungen, die sich Hierdurch wird erreicht, dass nur diejenigen (wie oben im Internet zur Software „Mailman“ finden lassen, erreichen beschrieben) Mitglieder, bei denen das Moderations-Flag nicht uns häufig Anfragen zur Konfiguration und Bedienung von Mai- gesetzt ist, senden dürfen und die Nachrichten aller anderen linglisten, von denen hier einmal die häufigsten vorgestellt wer- Mitglieder automatisch verworfen werden. Außerdem ist so den sollen. gewährleistet, dass auch beim Hinzufügen neuer Listenmitglie- der diese auf „moderiert“ (engl. „mod“) stehen. Sollte eines der DIE ANZAHL DER EMPFÄNGER DIESER neuen Listenmitglieder auch an die Liste schreiben dürfen, so NACHRICHT IST ZU HOCH ist, wie oben beschrieben, das Moderationsflag zu entfernen.

Wenn eine E-Mail an eine Liste mit der o. g. Nachricht ICH BEKOMME SEHR VIEL SPAM AN DIE zurückgehalten wird, dann bedeutet das nicht, wie häufig fälsch- LISTE – WAS KANN ICH TUN? licherweise angenommen, dass zuviele Mitglieder in der Liste sind, sondern, dass in den Adressfeldern An:, Cc: und Bcc: der Spam-E-Mails sind eine Plage, gegen die leider noch kein gesendeten E-Mail zusammen mehr als die erlaubte Anzahl Wundermittel entdeckt wurde. Allerdings gibt es Möglichkeiten, Empfänger stehen. Die erlaubte Anzahl steht standardmäßig auf Spam an eine Mailingliste einzudämmen. Zuerst gilt: Je gerin- 10 und kann, wie nachfolgend beschrieben, auf 0 (was unbe- ger der Verbreitungsgrad einer E-Mail-Adresse, desto weniger grenzt bedeutet) oder auf einen anderen Wert gesetzt werden. Spam wird an diese geschickt. Die Mailinglisten auf unserem Klicken Sie im Admin-Bereich der Liste auf „Abo-Regeln Listserver können öffentlich oder privat sein – d. h. öffentliche und Adreßfilter...“ (engl. „Privacy options“) und dann „Emp- Mailinglisten werden auf der Übersichtsseite des Listservers fänger-Filter“ (engl. „Recipient filters“), ändern Sie den Wert angezeitgt, wo diese natürlich auch von Spamern gefunden wer- bei „Obergrenze der Empfängeranzahl einer Veröffentlichung“ den. Deshalb sollte jeder Administrator sorgfältig prüfen, ob eine (engl. „Ceiling on acceptable number of recipients for a pos- Mailingliste öffentlich sein muss oder nicht. Die Einstellung hier- ting“) und speichern Sie Ihre Änderungen. zu in der Admin-Oberfläche finden Sie unter „Abo-Regeln und Adreßfilter...“ (engl. „Privacy options“) unter dem Punkt „Die- WIE KANN ICH ERREICHEN, DASS NUR EIN se Liste auch bekanntmachen, wenn die Leute anfragen, wel- MITGLIED ODER WENIGE MITGLIEDER AN che Listen auf dieser Maschine verfügbar sind?“ (engl. „Adver- EINE LISTE SCHREIBEN DÜRFEN? tise this list when people ask what lists are on this machine?“). Selbstverständlich durchlaufen die eingehenden E-Mails Es kommt häufig vor, dass eine Mailingliste als Newsletter aber auch einen Spam-Filter, der alle E-Mails, die als Spam genutzt werden soll. In diesem Fall soll es nur einem Mitglied erkannt werden, im E-Mail-Kopf (Header) entsprechend mar- oder wenigen Mitgliedern erlaubt sein, Nachrichten an die Liste kiert. Daher empfehlen wir im Spam-Filter der Mailingliste im zu schreiben, und alle anderen sollen lediglich Nachrichten emp- Header-Filter folgende Zeile einzutragen: X-Spam-Flag: YES. fangen. Um das zu erreichen, sind mehrere Schritte notwendig. Die Einstellungen für den Spam-Filter finden sich unter „Abo- Klicken Sie in der Admin-Oberfläche auf „Mitgliederver- Regeln und Adreßfilter...“ (engl. „Privacy options“) und dort waltung...“ (engl. „Membership Management“) und dann unter dem Punkt „Spam-Filter“ (engl. „Spam filters“). 8 12|17

Ist Näheres über die Spam-E-Mails bekannt (z. B. der Eine weitere Adresse ist die -owner-Adresse, unter der Absender oder die E-Mail-Domäne), so können in einem zwei- alle Listenadministratoren der Liste angeschrieben werden kön- ten Eingabefeld hier auch direkt E-Mails blockiert werden. nen. Auch die -request-Adresse ist recht nützlich. Hierüber kön- nen Informationen über die Liste erlangt werden. Um zu erfah- ICH BEKOMME KEINE E-MAILS MEHR ÜBER ren, was hier alles möglich ist, muss nur eine E-Mail mit dem DIE LISTE Betreff Help an diese Adresse (also in unserem Beispiel termi- [email protected]) geschickt werden. Die beiden Adres- Dieses Problem hat nur indirekt mit dem Listserver zu tun. sen -subscribe bzw. -unsubscribe dienen zum Abonnieren bzw. Es kommt leider häufig zu Bedienungsfehlern bei Microsoft Abbestellen einer Mailingliste. Die restlichen Adressen sind für Outlook, wodurch E-Mail-Adressen ungewollt unter den blo- den Nutzer von Mailman eher unwichtig. ckierten Absendern des Postfachs landen. Passiert dies mit der Adresse einer Mailingliste, so wird oft fälschlicherweise ange- MEINE E-MAILS WERDEN ZURÜCKGEHALTEN, nommen, dass etwas mit der Mailingliste nicht stimmt, weil das OBWOHL ICH ADMIN DER LISTE BIN Mitglied, das keine E-Mails mehr über die Liste bekommt, ja Mitglied der Liste ist. Oft wird fälschlicherweise angenommen, dass der Listen- Und so kommt es zu dem Fehler: Bei Microsoft Outlook lie- administrator auch automatisch Listenmitglied ist. Das ist aus gen die Schaltflächen für „Löschen“ und „Junk-E-Mail“ direkt gutem Grund nicht so, da Administratoren oft thematisch nichts nebeneinander. Klickt ein Nut- mit der Liste zu tun haben und nur aufgrund ihrer Mailman- zer für das Löschen einer Nach- Kenntnisse die Liste verwalten. Daher ist es immer notwendig, richt versehentlich auf „Junk- dass sich der Administrator auch als Mitglied einträgt, wenn er E-Mail“ und anschließend, da Nachrichten über die Liste empfangen oder versenden möchte. die E-Mail immer noch im Post- fach zu sehen ist, auf „Absen- KANN EINE MAILINGLISTE MITGLIED EINER der sperren“ im geöffneten Pull-Down-Menü, dann wird die MAILINGLISTE SEIN? entsprechende E-Mail in den Junk-E-Mail-Ordner verschoben und die Adresse zu den blockierten Absender-Adressen hinzu- Natürlich ist es möglich, Mailinglisten zu verschachteln, gefügt. Da die E-Mail jetzt aus dem Posteingang verschwun- d. h. der Name einer Mailingliste kann als Mitglied eingetragen den ist, merkt der Nutzer nicht, dass er versehentlich nicht auf werden. Wird dann an die Mailingliste geschrieben, deren Mit- „Löschen“, sondern auf „Absender sperren“ geklickt hat. Wie glied eine andere Mailingliste ist, dann wird die E-Mail auch an Sie die blockierten Adressen finden können, ist hier beschrie- alle Mitglieder dieser zweiten Mailingliste verteilt, obwohl diese ben: https://info.gwdg.de/docs/doku.php?id=de:services:email_ selbst nicht Mitglied der ersten Liste sind. Hierzu müssen aber collaboration:email_service:5other:50junk_email#e-mail_nach- bei der Mailingliste, die als Mitglied eingetragen wurde, an zwei richt_als_junk_markieren. Stellen Einstellungen vorgenommen werden. Klicken Sie im Admin-Bereich der Liste auf „Abo-Regeln WENN MEIN KOLLEGE AN DIE LISTE und Adreßfilter“ (engl. „Privacy options“) und dann „Empfän- SCHREIBT, DANN BEKOMME ICH IMMER ger-Filter“ (engl. „Recipient filters“). Die Adresse der Liste, bei EINE „UNERKANNTE BOUNCE- der die Liste als Mitglied eingetragen ist, muss hier eingetra- BENACHRICHTIGUNG“ gen werden: „Weitere E-Mail-Adressen (“Aliase“) der Liste, die Mailman akzeptieren soll (reguläre Ausdrücke)“ (engl. „Ali- Die Mailinglisten auf unserem Listserver haben alle jeweils as names (regexps) which qualify as explicit to or cc destination insgesamt zehn E-Mail-Adressen. Am Beispiel der (fiktiven) Liste names for this list“) und dann „Änderungen speichern“ (engl. [email protected] sollen hier einige davon vorgestellt werden. „Submit Your Changes“). Danach auf „Absender-Filter“ (engl. Die zusätzlichen neun Adressen werden alle dadurch gebil- „Sender filters“) klicken und dort unter „Adressliste der Nicht- det, dass hinter den Namen der Liste durch einen Bindestrich mitglieder, deren Nachrichten automatisch akzeptiert werden“ getrennt ein Wort angehängt wird. (engl. „List of non-member addresses whose postings should Eine dieser Adressen ist die bounces-Adresse (also im be automatically accepted“) die Adresse der ersten Liste eben- Beispiel [email protected]). Diese Adresse wird von falls eintragen und dann „Änderungen speichern“ (engl. „Sub- Mailman verwendet, um Benachrichtigungen an Absender zu mit Your Changes“). schicken, die beispielsweise kein Listenmitglied sind, oder, wie Hintergrund für den Eintrag beim Empfängerfilter ist, dass auf der vorigen Seite beschrieben, zuviele Empfänger einge- Mailman im E-Mail-Kopf (Header) den Namen der Mailingliste tragen haben. Nun kommt es leider häufiger vor, dass Nutzer erwartet, was bei einer verschachtelten Liste natürlich nicht der der Liste diese Adresse fälschlicherweise als Listenadresse in Fall ist, da der Absender ja nur an die erste Liste geschrieben ihrem Adressbuch speichern und dann versuchen, hierüber an hat. Würde dieser Eintrag fehlen, dann würde die E-Mail zurück- die Liste zu schreiben. Das führt dann dazu, dass zum einen gehalten und müsste vom Administrator genehmigt werden. eine „unerkannte Bounce-Benachrichtigung“ an den Listenad- Das Ganze funktioniert allerdings nur dann so, wenn die ministrator geschickt wird, und zum anderen die E-Mail nicht an von der GWDG voreingestellte Konfiguration in den „Allge- die Listenmitglieder verteilt wird. meinen Optionen“ (engl. „General Options“) unter folgendem 9 12|17

Punkt nicht auf „Nein“ (engl. „No“) umgestellt wird: „Ersetzt ICH KANN EINE LISTE AUF DER den “From:“-Header mit der E-Mail-Adresse der Mailinglis- ÜBERSICHTSSEITE DES LISTSERVERS NICHT te, wenn Probleme mit der Domain des Absenders und einer MEHR FINDEN – WURDE SIE GELÖSCHT? DMARC-Regel o. ä. auftreten“ (engl. „Replace the From: hea- der address with the list‘s posting address to mitigate issues Natürlich werden auch Listen gelöscht – allerdings wer- stemming from the original From: domain‘s DMARC or similar den auch häufig Listen von „öffentlich“ auf „privat“ umgestellt, policies“). weshalb sie dann auf der Übersichtsseite nicht mehr auftauchen In diesem Fall würde nämlich im E-Mail-Kopf (Header) als (mehr dazu im Abschnitt zu Spam). Ob eine Liste noch vorhan- Absender die E-Mail-Adresse des wirklichen Absenders und den ist, lässt sich überprüfen, indem folgender URL im Brow- nicht die Adresse der Mailingliste auftauchen, was dazu führt, ser eingegeben wird: https://listserv.gwdg.de/mailman/listinfo/ dass Mailman die Mitgliedschaft des Absenders in der zweiten LISTENNAME, wobei LISTENNAME der Name der vermissten Liste überprüft und dann müsste der Absender auch Mitglied Liste ist (nur der Name der Liste und nicht die E-Mail-Adresse); der zweiten Liste sein, damit die E-Mail verteilt wird. Beispiel für die Liste [email protected]: https://listserv.gwdg. de/mailman/listinfo/termine. Binder

Mailinglisten Mailversand leicht gemacht!

Ihre Anforderung > Listenmitglieder können an diese E-Mail-Adresse antwor- Sie möchten per E-Mail zu oder mit einer Gruppe ausgewähl- ten. Eine Moderationsfunktionalität ist verfügbar, mit der ter Empfänger kommunizieren, auch außerhalb Ihres Ins- Sie die Verteilung einer E-Mail genehmigen können. tituts. Sie möchten selbstständig eine Mailingliste verwal- > Voller administrativer Zugriff auf die Einstellungen der ten, z. B. Empfänger hinzufügen oder entfernen. Bei Bedarf Mailingliste und der Listenmitglieder sollen sich auch einzelne Personen in diese Mailingliste ein- > Obsolete E-Mail-Adressen werden vom System erkannt schreiben dürfen. und automatisch entfernt. > Wenn Ihre E-Mail-Domäne bei uns gehostet wird, können Unser Angebot Sie auch die Adresse der Mailingliste über diese Domäne Wir bieten Ihnen einen Listserver, der zuverlässig dafür einrichten lassen. sorgt, dass Ihre E-Mails an alle in die Mailingliste eingetrage- nen Mitglieder versendet werden. Die E-Mails werden auto- Interessiert? matisch archiviert. Das Archiv kann von allen Mitgliedern der Für die Einrichtung einer Mailingliste gibt es zwei Mög- Liste nach Schlagwörtern durchsucht werden. Die Anzahl lichkeiten: Zum einen als registrierter Benutzer der Ihrer Mailinglisten ist unbegrenzt. GWDG im Selfservice über das Kundenportal der GWDG und zum anderen, indem Sie bitte eine entsprechen- Ihre Vorteile de E-Mail an [email protected] senden, die die Wunsch- > Leistungsfähiges ausfallsicheres System zum Versenden E-Mail-Adresse der Liste sowie die E-Mail-Adresse der Per- von vielen E-Mails son, die die Liste bei Ihnen administrieren soll, enthalten soll- > Sie senden Ihre E-Mail lediglich an eine Mailinglisten- te. Die administrativen Aufgaben sind leicht zu erlernen. Adresse, die Verteilung an die Mitglieder der Mailingliste übernimmt der Listserver. >> www.gwdg.de/mailinglisten 10 12|17 Kling, Software, klingelingeling – Entwicklung von Audio Unit Plug-ins

Text und Kontakt: Dieser Artikel beschäftigt sich mit der Programmierung von nachladenden Kom- Thorsten Hindermann [email protected] ponenten, sogenannten Plug-ins, für einen Digitalen Audio-Arbeitsplatz, im 0551 201-1837 Englischen Digital Audio Workstation oder kurz DAW. Für diese Art der Kompo- nenten haben sich ein paar namhafte Standards etabliert. Die wichtigsten sind Apple Audio Units (AU), Steinberg Virtual Studio Technology (VST) und Avid Audio eXtension (AAX). Im Folgenden werden exemplarisch die Programmie- rung, Erstellung, Einbindung und das Testen eines einfachen Audio Units Plug- ins vorgestellt.

KLING,… Projekt-Schalter im oberen Bereich von Xcode nacheinander jedes Projekt auswählen und mittels der Tasten-Kombination cmd+B Um ein Audio Unit zu erstellen und zu testen, werden folgen- übersetzen. Für alle Projekte de Komponenten benötigt: Neben einem Mac, egal ob MacBook, bleibt das Übersetzungsziel

iMac oder Mac Pro, die Entwicklungsumgebung Xcode und die Abb. 2 „My Mac“ gleich (siehe Abb. DAW GarageBand. GarageBand wird bei neueren Macs vorins- 2 und 3). talliert ausgeliefert, kann aber aus dem Mac App Store nachträg- Einzig für das Projekt „Fil- lich heruntergeladen werden, genauso wie die Entwicklungsum- terDemo“ muss eine Einstel- gebung Xcode, eine sogenannte Integrated Development Environ- lung in den Quellzeilen vorge- ment oder kurz IDE. nommen werden, die verhin- Apple selber stellt auch eine Sammlung von Beispielprojek- dert, dass das Projekt über- ten für verschiedene Aspekte der Audio Unit-Programmierung zur setzt und fertiggestellt wer- Verfügung, so dass die Programmierung nicht bei Null angefangen den kann (siehe Abb. 5). Durch Abb. 3 werden muss. Der URL dazu lautet https://developer.apple.com/ Auskommentierung aller Stel- library/content/samplecode/sc2195/Introduction/Intro.html. len mit dem Funktionsaufruf verify_noerror( … ) kann das Projekt Auf dieser Eingangs-Webseite befindet sich oben links eine nun erfolgreich übersetzt und fertiggestellt werden (siehe Quellzei- Schaltfläche „Download Sample Code“. Durch Anklicken dieser len-Auflistung 1). Die noch vorhandenen Warnungen können igno- Schaltfläche werden die Beispielprojekte als .ZIP-Datei herunter- riert werden. geladen und danach automatisch im Ordner Downloads entpackt. Der Inhalt des Ordners ist in Abb. 1 zu sehen. Durch Doppel- SOFTWARE,… klick auf die Xcode-Arbeitsumgebungsdatei AudioUnitExamples. xcworkspace werden alle Beispielprojekte in Xcode geladen (sie- Nachdem nun alle Projekte erfolgreich übersetzt werden he Abb. 4). konnten, müssen die Audio Units in eines von zwei durch Apple Alle Projekte können ohne eine weitere Veränderung, wie aus der „Packung geschüttelt“, übersetzt werden. Dazu über den Audio Unit Programming

This article deals with the programming of reloading com- ponents, called plug-ins, for digital audio workstations (DAW). A few well-known standards have been established for this type of components. Listed here are the most important: App- le Audio Units (AU), Steinberg Virtual Studio Technology (VST) and Avid Audio Extension (AAX). The following is an example of the programming, creation, integration and testing of a sim- ple audio unit (AU) plug-in. Abb. 1 11 12|17

Abb. 4

vorgeschriebene Verzeich- void addParamListener (AUEventListenerRef listener, void* refCon, AudioUnitEvent nisse kopiert werden. Auf *inEvent) { einem macOS-System sind inEvent->mEventType = kAudioUnitEvent_BeginParameterChangeGesture; //verify_noerr ( AUEventListenerAddEventType( listener, refCon, inEvent)); das die Audio Unit-Ordner inEvent->mEventType = kAudioUnitEvent_EndParameterChangeGesture; entweder für alle Benutzer, //verify_noerr ( AUEventListenerAddEventType( listener, refCon, inEvent));

/Library/Audio/Plug-Ins/Com- inEvent->mEventType = kAudioUnitEvent_ParameterValueChange; //verify_noerr ( AUEventListenerAddEventType( listener, refCon, inEvent)); ponents, oder für den aktuel- } len Benutzer, ~/Library/Audio/ #pragma mark ____ PRIVATE FUNCTIONS ____ - (void)priv_addListeners Plug-Ins/Components. In die- { if (mAU) { se beiden Ordner schauen /* verify_noerr( AUEventListenerCreate(EventListenerDispatcher, self, alle gastgebenden DAWs, die CFRunLoopGetCurrent(), kCFRunLoopDefaultMode, 0.05, 0.05, &mAUEventListener)); */ Audio Units unterstützen, wie AudioUnitEvent auEvent; AudioUnitParameter parameter = {mAU, kFilterParam_CutoffFrequency, z. B. GarageBand, Logic Pro X, kAudioUnitScope_Global, 0 }; auEvent.mArgument.mParameter = parameter; Cubase, oder Able- addParamListener (mAUEventListener, self, &auEvent); ton Live, und stellen dort vor- auEvent.mArgument.mParameter.mParameterID = kFilterParam_Resonance; handene Audio Units dem addParamListener (mAUEventListener, self, &auEvent);

Anwender zum dynamischen /* Add a listener for the changes in our custom property */ /* The Audio unit will send a property change when the unit is intialized Laden zur Verfügung. */ auEvent.mEventType = kAudioUnitEvent_PropertyChange; Für einen ersten Test in auEvent.mArgument.mProperty.mAudioUnit = mAU; auEvent.mArgument.mProperty.mPropertyID = GarageBand ein leeres Projekt kAudioUnitCustomProperty_FilterFrequencyResponse; auEvent.mArgument.mProperty.mScope = kAudioUnitScope_Global; anlegen (siehe Abb. 6). Jetzt auEvent.mArgument.mProperty.mElement = 0; //verify_noerr (AUEventListenerAddEventType (mAUEventListener, self, noch den Spurtyp auswäh- &auEvent)); } len und das Projekt erzeugen }

(siehe Abb. 7). Mit der Tasten- - (void)priv_removeListeners { kombination cmd+K die even- //if (mAUEventListener) verify_noerr (AUListenerDispose(mAUEventListener)); mAUEventListener = NULL; tuell vorhandene Musik-Tasta- mAU = NULL; } tur (siehe Abb. 8) ausblenden. Abb. 5 Über die Auswahlliste Quellzeilen-Auflistung 1 in der Gruppe „Plug-Ins“ das gerade eben erstellte und kopierte Plug-in „SinSynth (Instrument AU)“ auswählen (siehe Abb. 9) und Durch Drücken der entsprechenden Tasten werden syntheti- mittels cmd+K wieder die Musik-Tastatur einblenden. Das Parame- sche, in diesem Fall Sinus-Töne, erzeugt. Durch Drücken der Tas- ter-Fenster des Plug-in kann geschlossen werden (siehe Abb. 10). te A wird ein C erzeugt, durch gleichzeitiges Drücken der Tasten 12 12|17

Abb. 10

KLINGE…

Um nun das Plug-in einmal in voller Aktion zu testen, können aus dem Internet sogenannte MIDI-Dateien mit Liedern herunter-

Abb. 6 geladen werden. Diese Dateien sind aus einer DAW gespeicher- te und vorher aufgezeichnete MIDI-Sequenzen. Für diesen Artikel wurde als Beispiel, passend zur Dezember-Ausgabe, das Advents- und Weihnachtslied „Kling, Glöckchen, klingelingeling“ als MIDI- Datei von http://www.volkslieder-songarchiv.de/text_akkorde. php?lied=kling_gloeckchen%2C_klingelingeling heruntergeladen. Eine MIDI-Datei enthält, kurz gesagt, die aufgezeichneten und gespeicherten Informationen über die gespielten Noten, deren Anschlagstärke und weitere zusätzliche Informationen. Nach dem Öffnen der MIDI-Datei in GarageBand sieht die geladene MIDI-Datei wie folgt aus (siehe Abb. 11). Um nun den Abb. 7 gerade erstellen Sinus-Synthesizer ins rechte Adventslicht zu rücken, muss dieser nun in einer vorhandenen MIDI-Sequenz, auch Spur genannt, eingesetzt werden. In diesem Beispiel wird das unterste Instrument mit der Bezeichnung „FM Piano“ gegen den Sinus-Synthesizer ausgetauscht. Dazu die Spur „FM Piano“ und danach die „Smart Control“-Schaltfläche anklicken oder einfach die Taste B als Schnelltaste, engl. Shortcut, drücken. Ganz unten das Dreieck vor „Plug-Ins“ anklicken. Diese Folge von Aktionen stellt sich nun wie folgt dar (siehe Abb. 12; rot eingekreiste Schalt- flächen beachten). Der Austausch des Instruments geht folgen- dermaßen vonstatten: Ganz unten im erweiterten Bereich „Plug- Abb. 8 Ins“ in den rechten Bereich der Schaltfläche mit der Beschriftung A+D+G wird ein C-Akkord erzeugt. „ES2“ klicken und mittels der Menüstruktur „AU Instruments -> Alternativ kann, sofern vorhanden, ein sogenanntes MIDI-Key- Apple Sample Code -> SinSynth (Instrument AU) -> Stereo“ den board per USB-Verbindung an den Mac angeschlossen werden. erstellten Sinus-Synthesizer auswählen (siehe Abb. 13). Das Para- Die Abkürzung MIDI steht hier für Musical Instrument Digital Inter- meter-Fenster, wie schon in Abb. 10 zu sehen, einfach schließen. face. Je nach Anzahl der Tasten auf der Klaviatur des Keyboards Wird nun das geladenen Lied mit dem neuen SinSynth abgespielt, können nun ganze Lieder gespielt werden und das Plug-in erzeugt erhält das Lied eine deutliche Sinus-Ton-Lastigkeit. Vielleicht nicht daraufhin die entsprechenden Sinus-Töne. ganz so stimmungsvoll für den Anlass, aber es funktioniert (siehe Abb. 14; rot eingekreiste Schaltflächen beachten).

Abb. 9 13 12|17

Abb. 11

Abb. 12

Abb. 13 14 12|17

Abb. 14

LINGE… und deren Standard-Werte für die Parameter gesetzt werden (sie- he Quellzeilen-Auflistung 3). Da die Beispiele komplett als Quellzeilen vorliegen, können SinSynth::SinSynth(AudioUnit inComponentInstance) Änderungen zur Funktionserweiterung vorgenommen werden. Als : AUMonotimbralInstrumentBase(inComponentInstance, 0, 1) { Funktionserweiterung soll der Sinus-Synthesizer die Erzeugung CreateElements();

eines Rechtecks erhalten. //Globals()->UseIndexedParameters(1); // we're only defining one param //Globals()->SetParameter (kGlobalVolumeParam, 1.0); Im Bereich der Quellzeilen-Kopfdatei, engl. Header-Datei, Globals()->UseIndexedParameters(kNumbersOfGlobalParameters); Globals()->SetParameter(kGlobalParameter_Volume, kDefault_SinSynth_Volume); SinSynth.h müssen folgende Vorbereitungs-Quellzeilen eingefügt Globals()->SetParameter(kGlobalParameter_WaveGen, kDefault_WaveGen_Waveform);

werden (siehe Quellzeilen-Auflistung 2). }

Quellzeilen-Auflistung 3 #pragma mark SinSynth Parameter für die generische Ansicht // Identifizierung und Anzahl der Parameter festlegen enum SinSynthGlobalParameters { OSStatus SinSynth::GetParameterInfo( AudioUnitScope inScope, kGlobalParameter_Volume = 0, AudioUnitParameterID inParameterID, kGlobalParameter_WaveGen = 1, AudioUnitParameterInfo & outParameterInfo) kNumbersOfGlobalParameters = 2 { }; //if (inParameterID != kGlobalVolumeParam) return // Lautstärke-Parameter kAudioUnitErr_InvalidParameter; // Anzeigename des Lautstärke-Parameters //if (inScope != kAudioUnitScope_Global) return kAudioUnitErr_InvalidScope; static const CFStringRef kGlobalVolumeName = CFSTR("Global Volume"); // Minimale Lautstärke outParameterInfo.flags = SetAudioUnitParameterDisplayType (0, kAudioUnitParameterFlag_DisplaySquareRoot); static const float kGlobalVolume_Min = 0.0; outParameterInfo.flags += kAudioUnitParameterFlag_IsWritable; // Maximale Lautstärke outParameterInfo.flags += kAudioUnitParameterFlag_IsReadable; static const float kGlobalVolume_Max = 1.0; // Standard-Lautstärke if (inScope == kAudioUnitScope_Global) static const float kDefault_SinSynth_Volume = kGlobalVolume_Max; switch (inParameterID) { case kGlobalParameter_Volume: // Wellengenerator-Parameter AUBase::FillInParameterName (outParameterInfo, kGlobalVolumeName, // Anzeigename des Wellengenerator-Parameter false); static const CFStringRef kGlobalWaveformName = CFSTR("Global Waveform"); outParameterInfo.unit = kAudioUnitParameterUnit_LinearGain; // IDentifizierungs-Nummern der Wellenformen outParameterInfo.minValue = kGlobalVolume_Min; static const int kSinWave_Waveform = 1; outParameterInfo.maxValue = kGlobalVolume_Max; static const int kSquareWave_Waveform = 2; outParameterInfo.defaultValue = kDefault_SinSynth_Volume; // Standard-Wellenform break; case kGlobalParameter_WaveGen: static const int kDefault_WaveGen_Waveform = kSinWave_Waveform; AUBase::FillInParameterName(outParameterInfo, kGlobalWaveformName, // Namen der Menüeinträge für den Wellengenerator false); static CFStringRef kMenuItem_WaveGen_Sin = CFSTR("Sinus"); outParameterInfo.unit = kAudioUnitParameterUnit_Indexed; static CFStringRef kMenuItem_WaveGen_Square = CFSTR("Square"); outParameterInfo.minValue = kSinWave_Waveform; // Variablen-Deklarationen outParameterInfo.maxValue = kSquareWave_Waveform; float genwaveretval; // Rückgabewert Wellengenerator outParameterInfo.defaultValue = kDefault_WaveGen_Waveform; float globalVol; // Lautstärke break; float globalWaveGen; // Wellenform default: // Funktions-Deklaration return kAudioUnitErr_InvalidParameter; float genwave(float phase, float amp, float globalVol, float globalWaveGen); break; } else Quellzeilen-Auflistung 2 return kAudioUnitErr_InvalidScope;

return noErr; } Im Konstruktor der Klasse „SinSynth“ der C++-Quellzeilenda- tei SinSynth.cpp müssen die Anzahl sowie Lautstärke, Wellenform Quellzeilen-Auflistung 4 15 12|17

LING

OSStatus SinSynth::GetParameterValueStrings(AudioUnitScope inScope, AudioUnitParameterID inParameterID, CFArrayRef *outStrings) So einigermaßen glatt, wie sich der Text bisher liest, geht es { if ((inScope == kAudioUnitScope_Global) && (inParameterID == aber in der Realität der Programmierung nicht zu. Wie aber werden kGlobalParameter_WaveGen)) { if (outStrings == NULL) return noErr; Komponenten, die in eine gastgebende Anwendung dynamisch

CFStringRef strings[] = { geladen und entladen werden können, auf Fehler untersucht? kMenuItem_WaveGen_Sin, kMenuItem_WaveGen_Square Das nun beschriebene Verfahren gilt auch so für andere Ent- }; *outStrings = CFArrayCreate ( wicklungsumgebungen, wie z. B. Visual Studio unter Windows. NULL, (const void **) strings, Wir nehmen an, dass in der Wellen-Generatorfunktion gen- (sizeof(strings) / sizeof(strings[0])), NULL wave ein Fehler entdeckt wurde. Dazu wird hier in Zeile 302– die-

); se Zeilennummer kann beim nachvollziehenden Leser eine ande- } else return kAudioUnitErr_InvalidScope; re sein – ein Unterbrechungspunkt, engl. Breakpoint, gesetzt (sie-

return noErr; he Abb. 16). }

Quellzeilen-Auflistung 5

//float globalVol = GetGlobalParameter(kGlobalParameterVolume); globalVol = GetGlobalParameter(kGlobalParameter_Volume); globalWaveGen = GetGlobalParameter(kGlobalParameter_WaveGen);

//float out = pow5(sin(phase)) * amp * globalVol; float out = genwave(phase, amp, globalVol, globalWaveGen);

Quellzeilen-Auflistung 6

#pragma mark Wellengenerator-Funktion /** * genwave - Erzeugt die ausgewählte Wellenform * @param phase Phase * @param amp Amplitude Abb. 16 * @param globalVol Lautstärke * @param globalWaveGen Ausgewählte Wellenform */ Falls die gastgebende Anwendung GarageBand nicht mehr float genwave(float phase, float amp, float globalVol, float globalWaveGen) { switch ((int)globalWaveGen) { laufen sollte, diese wieder starten. Das letzte gespeicherte Pro- case kSinWave_Waveform: { //Sinus erzeugen genwaveretval = sin(phase) * amp * globalVol; jekt wird automatisch geladen. Im Plug-Ins-Bereich, wie weiter break; } oben beschrieben, das Plug-in „SinSynth (Instrument AU)“ laden, case kSquareWave_Waveform: { // Rechteck erzeugen genwaveretval = ((sin(phase) < 0) ? -1 : 1) * amp * globalVol; falls dieses Plug-in im Laufe von eigenen Tests durch ein anderes break; } ersetzt wurde. } return genwaveretval; Die Entwicklungsumgebung Xcode muss jetzt an den Prozess }

Quellzeilen-Auflistung 7

Zwei weitere Methoden der Klasse „SinSynth“ lesen und set- zen zum einen Informationen der Parameter Lautstärke und Wel- lenform (siehe Quellzeilen-Auflistung 4), und zum anderen wer- den die Werte zum Aufbau des Auswahlmenüs ausgelesen und gesetzt (siehe Quellzeilen-Auflistung 5). In der Methode „Render“ der Klasse „Testnote“ (Testnote::Render) müssen zwei Veränderungen vorgenommen werden (siehe Quellzeilen-Auflistung 6). Die Funktion des Wellenform-Generators enthält folgende Quellzeilen (siehe Quellzeilen-Auflistung 7). Wenn nun das Plug-in mit seinen Veränderungen erneut über- setzt und erzeugt worden ist, stellt sich das Fenster für die Para- meter wie folgt dar (siehe Abb. 15).

Abb. 17

Abb. 15 Abb. 18 16 12|17

Abb. 19 von GarageBand angefügt werden. Dies geschieht mit dem Befehl diesen anschließend auszumerzen. „Debug -> Attach to Process -> GarageBand ()“ (sie- Bevor die Quellzeilen verbessert werden können, muss der he Abb. 17). ist die aktuell laufende ID der Anwen- vorher an Xcode angehängte Prozess „GarageBand“ befreit wer- dung GarageBand auf dem jeweiligen macOS-System und kann den. Dazu ist der Befehl „Debug -> Detach from GarageBand“ not- bei jedem erneuten Test variieren. Nach erfolgreicher Verbindung wendig (siehe Abb. 20). sieht der obere Bereich von Xcode wie folgt aus (siehe Abb. 18). Wenn nun nach der Verbesserung das Plug-in „SinSynth“ wie Die Anzahl der Warnungen im rechten Bereich neben dem Ausru- erwartet arbeitet, können wir uns freuen. Falls immer noch Fehler fezeichen im gelben Dreieck kann ebenfalls variieren. vermutet oder entdeckt werden, geht die Fehlersuche wie gerade Jetzt mit der einblendbaren Musik-Tastatur, wie weiter oben hier beschrieben weiter, bis das Plug-in nach unseren Wünschen beschrieben, oder einem MIDI-Keyboard eine Note, z. B. die Note arbeitet. C, anschlagen. Nach kurzer Zeit wird von GarageBand zu Xcode An dieser Stelle ist die Entwicklung dieses einfachen Beispiel- gewechselt und das Plug-in genau am vorgesehenen Unterbre- Synthesizers beendet. chungspunkt angehalten. Xcode sieht nun wie folgt aus (siehe Abb. 19). Ab diesem Zeitpunkt SOFTWARE-SYNTHESIZER ALS kann nun die Funktion genau WEIHNACHTSGESCHENK? untersucht werden, ob sie genauso arbeitet, wie von der Die Anzahl der Parameter dieses Beispiel-Synthesizers ist Programmierung vorgesehen, recht überschaubar mit seinen beiden Parametern. Software-Syn- oder ob sich z. B. logische thesizer von Firmen wie z. B. Fehler eingeschlichen haben. der deutschen Firma Native Jetzt können Variab- Instruments haben eine Viel- len eingesehen werden, wei- zahl von Parametern (siehe tere Unterbrechungspunk- Abb. 21; im Bild ist nicht der te für feingranulare Unter- Rollbalken auf der rechten Sei- suchungen gesetzt werden, te zu sehen, aber die Anzahl bedingte Unterbrechungs- der Parameter ist massiv), die punkte gesetzt werden, die zum besseren Verständnis bei bestimmten Bedingungen und zur Bedienung auch gra- erst die Unterbrechung aus- fisch dargestellt werden (sie- lösen, Werte von Variablen he Abb. 22). Oder der Synthe- geändert werden und vieles sizer Hybrid 3 der deutschen mehr. Alles, um den vermute- Firma Air Music Technology Abb. 20 ten Fehler zu lokalisieren, um Abb. 21 aus Bremen (siehe Abb. 23). 17 12|17

Abb. 23 Abb. 22

Diese beiden Synthesizer sind nur zwei Beispiele von einer Viel- Auszubildenden zum Fachinformatiker für Anwendungsent- zahl von Software-Instrument- und -Effekt-Plug-ins, die entweder wicklung. kostenlos oder kostenpflichtig zu erwerben sind und auch in einzel- In einer späteren Ausgabe der GWDG-Nachrichten (geplant nen Fällen als Open Source vorliegen. ist die Ausgabe 12/2018) wird ein Fortsetzungsartikel erscheinen, Die in diesem Artikel vermittelten Inhalte waren auch der sich mit der Programmierung für Inter App Audio Apps für iOS- Grundlage für eine mehrteilige Programmierübung der GWDG- Geräte befassen wird.

FTP-Server Eine ergiebige Fundgrube!

Ihre Anforderung > Aktuelle Software inkl. Updates der gebräuchlichsten Sie möchten auf das weltweite OpenSource-Softwareange- Linux-Distributionen bot zentral und schnell zugreifen. Sie benötigen Handbücher > Unter pub befindet sich eine aktuell gehaltene locatedb oder Programmbeschreibungen oder Listings aus Computer- für schnelles Durchsuchen des Bestandes. zeitschriften. Sie wollen Updates Ihrer Linux- oder FreeBSD- > Alle gängigen Protokolle (http, https, ftp und rsync) wer- Installation schnell durchführen. den unterstützt.

Unser Angebot Interessiert? Die GWDG betreibt seit 1992 einen der weltweit bekanntes- Wenn Sie unseren FTP-Server nutzen möchten, werfen Sie ten FTP-Server, seit sieben Jahren mit leistungsfähigen Res- bitte einen Blick auf die u. g. Webseite. Jeder Nutzer kann sourcen für schnellen Service. den FTP-Dienst nutzen. Die Nutzer im GÖNET erreichen in der Regel durch die lokale Anbindung besseren Durchsatz Ihre Vorteile als externe Nutzer. > Großer Datenbestand (50 TByte), weltweit verfügbar > Besonders gute Anbindung im GÖNET >> www.gwdg.de/ftp-server 18 12|17 Kurz & knapp

DARIAH-DE Repository gestartet – spiegeln die Vielfalt der Göttinger Sammlungslandschaft wider, Unterstützung für das Management die zukünftig im Forum Wissen zu sehen sein wird. Alle Inter- essierten weltweit können im Sammlungsportal fundierte Infor- von Forschungsdaten in den mationen und hochwertige Bilder zu den Objekten abrufen und Geistes- und Kulturwissenschaften weiterverwenden. Die Universität Göttingen ist deutschland- Kurznachricht der Georg-August-Universität Göttingen vom weit eine der ersten Universitäten, die Objekte ihrer Sammlun- 06.12.2017 gen digital frei zugänglich macht. Geistes- und Kulturwissenschaftlerinnen und -wissen- „Durch Open Access und Open Science, also offenen schaftler können ab sofort ihre Forschungsdaten dauerhaft, Zugang und offene Wissenschaft, teilen wir die wissenschaft- nachnutzbar und referenzierbar im DARIAH-DE Repository spei- lichen Primärquellen und digital vorliegenden Informationen chern. Im Rahmen von Forschungsprojekten anfallende Daten über die materiellen Dinge aus Kultur und Natur, Medizin und können dort von Wissenschaftlerinnen und Wissenschaftlern Technik mit der ganzen Welt“, so Karsten Heck, Referent für verwaltet und selbstverantwortlich veröffentlicht werden. Das Sammlungsmanagement an der Zentralen Kustodie der Univer- DARIAH-DE Repository baut dabei auf die langjährig erprob- sität Göttingen. Die Objekte, so das gemeinnützige Ziel, sollen te Technologie und Erfahrungen des TextGrid Repositorys auf, immer wieder neu in Forschung und Lehre, Bildung und Wis- unterstützt allerdings sämtliche Datenformate. Darüber hinaus senskommunikation eingesetzt werden. Auf diese Weise wird wird das Einspielen von Forschungsdaten mit einem vereinfach- neues Wissen entstehen und weitergegeben. Die Mitarbeiterin- ten Publikationsprozess über eine Webanwendung ermöglicht. nen und Mitarbeiter des Projektes veröffentlichen die Metada- Daten im DARIAH-DE Repository werden als Open Access ten konsequent gemeinfrei. Bilder werden über Creative-Com- unter freien Lizenzen veröffentlicht. Das Repository ermög- mons-Lizenzen aktiv nutzbar, Daten auf Bundes- und europäi- licht auch eine einfache Eintragung der Metadaten in die DAR- scher Ebene – in der Deutschen Digitalen Bibliothek und Euro- IAH-DE Collection Registry und damit eine Indizierung in der peana – auffindbar gemacht. DARIAH-DE Generic Search. Weitere Informationen sind unter Hinter dem Portal steht die Göttinger Sammlungsdaten- de.dariah.eu/repository zu finden, erste Erfahrungsberichte im bank, in der die Objekte aus den verschiedenen Instituten DHd-Blog unter dhd-blog.org/. erschlossen und die Daten zur Publikation vorbereitet werden. Der Betrieb des DARIAH-DE Repository wird durch das „Zahlreiche Forschende und Studierende der universitären Humanities Data Centre (HDC) sichergestellt. Das HDC ist eine Sammlungen sowie Partner des Göttingen Campus forschen Kooperation der Gesellschaft für wissenschaftliche Datenver- über die Objekte und kuratieren die Daten“, betont Dr. Marie arbeitung mbH Göttingen (GWDG) und der Niedersächsischen Luisa Allemeyer, Direktorin der Zentralen Kustodie. Die Anzahl Staats- und Universitätsbibliothek Göttingen (SUB). Beide Ein- der im Sammlungsportal vertretenen Objekte und Sammlungen richtungen sichern so gemeinsam die Nachhaltigkeit der For- wird daher kontinuierlich steigen. Das breite Spektrum der Din- schungsdaten auch langfristig ab. Nähere Informationen sind ge, das die Kustodinnen und Kustoden in den Sammlungen pfle- unter de.dariah.eu und humanities-data-centre.de zu finden. gen und verwalten, ist schon heute in den musealen Samm- lungen der Universität zu sehen. Aus diesem Bestand entwi- Kontakt ckelt das vor kurzem gegründete kuratorische Team die Basi- Dr. Beata Mache sausstellung für das Forum Wissen. „Die Schätze des akade- DARIAH-DE Coordination Office mischen Erbes der Universität Göttingen sind ein Kosmos des Papendiek 14, 37073 Göttingen Wissens, ein echtes virtuelles Museum der Wissenschaften“, Telefon: 0551 39-33623 so Allemeyer. E-Mail: [email protected] Das Sammlungsportal und die Datenbank werden von der Otto Niedersächsischen Staats- und Universitätsbibliothek Göttin- gen, der Zentralen Kustodie der Universität und der Verbundzen- trale des Gemeinsamen Bibliotheksverbunds fortlaufend wei- Virtuelles Museum der Wissen- ter entwickelt und betrieben. Dabei kommen die Programme schaften – Sammlungsportal der easyDB.museum und Goobi-Viewer zum Einsatz. Universität Göttingen geht mit Das Forum Wissen wird ein offenes Haus, das Hörsaal, Labor und Museum unter einem Dach vereint. Hier soll Wis- mehr als 20.000 Objekten online sen anschaulich vermittelt, an und mit Objekten geforscht und Presseinformation Nr. 244/2017 der Georg-August-Universität gelehrt werden. Besucherinnen und Besucher haben damit die Göttingen vom 04.12.2017 Chance, hinter die Kulissen der Universität zu schauen und Ein- Über 20.000 Objekte aus mehr als 25 Sammlungen der Uni- blicke in aktuelle Forschung und Lehre zu gewinnen. Sanierung versität Göttingen sind seit Montag, 4. Dezember 2017, unter und Ausbau des Gebäudes an der Berliner Straße 28 haben sammlungen.uni-goettingen.de öffentlich zugänglich. Die digita- begonnen; die Eröffnung des Wissensmuseums ist für Ende lisierten Kunstwerke und Präparate, Instrumente und Modelle 2019 geplant. 19 12|17

Kontakt Deutschland dar. Zwei neu eingerichtete Arbeitsgruppen des Karsten Heck RfII werden zudem Empfehlungen zu den Themen „Datenqua- Georg-August-Universität Göttingen – Zentrale Kustodie lität“ sowie „Berufsbilder und Kompetenzen für den Arbeits- Telefon: 0551 39-20739 markt Wissenschaft“ erarbeiten. „Der RfII hat sich tief in die E-Mail: [email protected] komplexe Thematik des digitalen Wandels eingearbeitet und ist Internet: www.uni-goettingen.de/kustodie in der Lage, in der teils zerfaserten Debatte neue Sichtweisen anzubieten“ so Rienhoff. Der RfII will nun weitere Lösungsan- Dr. Johannes Mangei sätze auf der Systemebene erarbeiten. Niedersächsische Staats- und Universitätsbibliothek Göttingen Telefon: 0551 39-5236 Der Rat für Informationsinfrastrukturen (RfII) E-Mail: [email protected] Der RfII hat 2016 grundlegende Empfehlungen zu Struktu- Internet: www.sub.uni-goettingen.de ren, Prozessen und Finanzierung des Forschungsdatenmanage- ments in Deutschland gegeben. Unter anderem schlägt er den Frank Dührkohp Aufbau einer Nationalen Forschungsdateninfrastruktur (NFDI) Verbundzentrale des Gemeinsamen Bibliotheksverbunds vor, die generische und fachspezifische Bedarfe der Wissen- Telefon: 0551 39-10405 schaft in Deutschland verlässlich und nachhaltig abdeckt. Die E-Mail: [email protected] 24 Mitglieder des RfII sind aus Informationsinfrastruktureinrich- Internet: www.gbv.de/kontakt tungen, Forschung dem öffentlichen Bereich sowie der GWK berufen worden. Der RfII hat seine Geschäftsstelle in Göttin- Anmerkung: Auch das Rechnermuseum der GWDG ist in dem gen etabliert. neuen virtuellen Museum der Wissenschaften vertreten und dort unter sammlungen.uni-goettingen.de/sammlung/slg_1044/ Kontakt zu finden. Rat für Informationsinfrastrukturen – Geschäftsstelle Otto Dr. Barbara Ebert Telefon: 0551 39-20951 Rat für Informationsinfrastrukturen E-Mail: [email protected] Otto unter neuer Leitung (RfII-Pressemitteilung vom 27.11.2017) Der Rat für Informationsinfrastrukturen hat in seiner 10. Sit- Öffnungszeiten des Rechen- zung am 23. November 2017 in Heidelberg die Philosophie-Pro- zentrums um Weihnachten und fessorin Petra Gehring zur neuen Vorsitzenden gewählt. Stell- vertreter wird der Soziologe Prof. Dr. Stefan Liebig. Der bishe- Neujahr 2017/2018 rige Vorsitzende, der Medizininformatiker Prof. Dr. Otto Rien- Das Rechenzentrum der GWDG bleibt an den Tagen vom hoff, scheidet nach drei Jahren planmäßig aus dem Amt. Der 23.12. bis zum 26.12.2017 sowie vom 30.12.2017 bis zum RfII erarbeitet seit November 2014 im Auftrag der Gemeinsa- 01.01.2018 geschlossen. An den Tagen vom 27.12. bis zum men Wissenschaftskonferenz (GWK) Vorschläge zu zukunftsfä- 29.12.2017 ist das Rechenzentrum lediglich von 9:00 bis 17:00 higen Informationsinfrastrukturen für die Wissenschaft. Uhr geöffnet. Petra Gehring ist Professorin für Philosophie an der TU Falls Sie sich zu den Zeiten, an denen das Rechenzentrum Darmstadt und hat über die Konzeptarbeit zur Nationalen For- geschlossen ist, an die GWDG wenden wollen, schicken Sie schungsdateninfrastruktur (NFDI) und als stellvertretende RfII- bitte eine E-Mail an [email protected]. Das dahinter befindli- Vorsitzende die Arbeit des RfII bereits mitgeprägt. Sie folgt dem che Ticket-System wird auch während dieser Zeiten von Mitar- Gründungsvorsitzenden Otto Rienhoff nach, unter dessen Füh- beiterinnen und Mitarbeitern der GWDG regelmäßig überprüft. rung der RfII binnen kurzer Zeit zu einer vielfach gehörten und Wir bitten alle Benutzerinnen und Benutzer, sich darauf respektierten Stimme im deutschen Wissenschaftssystem wur- einzustellen. de. Stefan Liebig ist Professor für Soziologie an der Universität Grieger Bielefeld und Mitglied im Rat für Sozial- und Wirtschaftsdaten (RatSWD). Der RfII wird in der kommenden Arbeitsphase die Zusam- Doppelausgabe 01-02/2018 der menarbeit mit der GWK fortsetzen. „Seine Empfehlungen zur Realisierung einer netzwerkförmigen nationalen Forschungsda- GWDG-Nachrichten teninfrastruktur haben in Wissenschaft und Politik eine bemer- Die nächsten GWDG-Nachrichten erscheinen als Doppel- kenswerte Resonanz gefunden“ so Gehring. Diesen Schwung ausgabe 01-02/2018 Anfang Februar 2018. gelte es zu erhalten und die wichtigen Akteure im Lande ins Otto Boot zu holen. Mittelfristig stelle ein kluger Ansatz für ein ver- netztes Forschungsdatenmanagement im globalen Wettbe- werb eine enorme Chance für den Wissenschaftsstandort 20 12|17

INFORMATIONEN: [email protected] 0551 201-1523

Dezember 2017 bis Dezember 2018 Kurse

KURS VORTRAGENDE/R TERMIN ANMELDEN BIS AE

OUTLOOK – E-MAIL UND Helmvoigt 07.12.2017 30.11.2017 4 GROUPWARE 9:15 – 12:00 und 13:00 – 16:00 Uhr

ANGEWANDTE STATISTIK MIT Cordes 12.12. – 13.12.2017 05.12.2017 8 SPSS FÜR NUTZER MIT VOR- 9:00 – 12:00 und 13:00 – 15:30 Uhr KENNTNISSEN

EINFÜHRUNG IN SHAREPOINT Buck 14.12.2017 07.12.2017 2 2013 FÜR ANWENDER 9:00 – 12:30 Uhr

EINFÜHRUNG IN SHAREPOINT Buck 14.12.2017 07.12.2017 2 2013 FÜR ADMINISTRATOREN 13:30 – 17:00 Uhr

SHAREPOINT – EINFÜHRUNG Buck, Kasper 10.01.2018 03.01.2018 4 FÜR ANWENDER 9:00 – 12:30 und 13:30 – 15:30 Uhr

SHAREPOINT – EINFÜHRUNG Buck, Kasper 11.01.2018 04.11.2018 4 FÜR SITECOLLECTION- 9:00 – 12:30 und 13:30 – 15:30 Uhr BESITZER

QUICKSTARTING R: EINE Cordes 23.01. – 24.01.2018 16.01.2018 8 ANWENDUNGSORIENTIERTE 9:00 – 12:00 und 13:00 – 15:30 Uhr EINFÜHRUNG IN DAS STATISTIKPAKET R

GRUNDLAGEN DER Töpfer 06.02. – 07.02.2018 30.01.2018 8 BILDBEARBEITUNG MIT 9:30 – 16:00 Uhr PHOTOSHOP

SHAREPOINT – Buck, Kasper 21.02.2018 14.02.2018 2 INFORMATIONEN ZUM 9:00 – 12:30 Uhr ANGEBOT 21 12|17

KURS VORTRAGENDE/R TERMIN ANMELDEN BIS AE

STATISTIK MIT R FÜR Cordes 21.02. – 22.02.2018 14.02.2018 8 TEILNEHMER MIT 9:00 – 12:00 und 13:00 – 15:30 Uhr VORKENNTNISSEN – VON DER ANALYSE ZUM BERICHT

SHAREPOINT – EINFÜHRUNG Buck, Kasper 07.03.2018 28.02.2018 4 FÜR ANWENDER 9:00 – 12:30 und 13:30 – 15:30 Uhr

SHAREPOINT – EINFÜHRUNG Buck, Kasper 08.03.2018 01.03.2018 4 FÜR SITECOLLECTION- 9:00 – 12:30 und 13:30 – 15:30 Uhr BESITZER

INDESIGN – GRUNDLAGEN Töpfer 13.03. – 14.03.2018 06.03.2018 8 9:30 – 16:00 Uhr

SHAREPOINT – EINFÜHRUNG Buck, Kasper 04.04.2018 28.03.2018 4 FÜR ANWENDER 9:00 – 12:30 und 13:30 – 15:30 Uhr

SHAREPOINT – EINFÜHRUNG Buck, Kasper 05.04.2018 29.03.2018 4 FÜR SITECOLLECTION- 9:00 – 12:30 und 13:30 – 15:30 Uhr BESITZER

USING THE GWDG SCIENTIFIC Dr. Boehme, Dr. Ehlers 09.04.2018 02.04.2018 4 COMPUTE CLUSTER – 9:30 – 16:00 Uhr AN INTRODUCTION

PARALLELRECHNER- Prof. Haan 10.04. – 11.04.2018 03.04.2018 8 PROGRAMMIERUNG MIT MPI 9:15 – 17:00 Uhr

EINFÜHRUNG IN DIE Cordes 17.04. – 18.04.2018 10.04.2018 8 STATISTISCHE DATEN- 9:00 – 12:00 und 13:00 – 15:30 Uhr ANALYSE MIT SPSS

PROGRAMMING WITH Prof. Haan 17.04.2018 10.04.2018 4 CUDA – AN INTRODUCTION 9:15 – 17:00 Uhr

PHOTOSHOP FÜR Töpfer 24.04. – 25.04.2018 17.04.2018 8 FORTGESCHRITTENE 9:30 – 16:00 Uhr

QUICKSTARTING R: EINE Cordes 15.05. – 16.05.2018 08.05.2018 8 ANWENDUNGSORIENTIERTE 9:00 – 12:00 und 13:00 – 15:30 Uhr EINFÜHRUNG IN DAS STATISTIKPAKET R

ADMINISTRATION VON PCS Quentin 24.05.2018 17.05.2018 4 IM ACTIVE DIRECTORY DER 9:00 – 12:30 und 13:30 – 15:30 Uhr GWDG

SHAREPOINT – EINFÜHRUNG Buck, Kasper 30.05.2018 23.05.2018 4 FÜR ANWENDER 9:00 – 12:30 und 13:30 – 15:30 Uhr

SHAREPOINT –EINFÜHRUNG Buck, Kasper 31.05.2018 24.05.2018 4 FÜR SITECOLLECTION- 9:00 – 12:30 und 13:30 – 15:30 Uhr BESITZER

INDESIGN – AUFBAUKURS Töpfer 05.06. – 06.06.2018 29.05.2018 8 9:30 – 16:00 Uhr

OUTLOOK – E-MAIL UND Helmvoigt 14.06.2018 07.06.2018 4 GROUPWARE 9:15 – 12:00 und 13:00 – 16:00 Uhr 22 12|17

KURS VORTRAGENDE/R TERMIN ANMELDEN BIS AE

ANGEWANDTE STATISTIK Cordes 20.06. – 21.06.2018 13.06.2018 8 MIT SPSS FÜR NUTZER MIT 9:00 – 12:00 und 13:00 – 15:30 Uhr VORKENNTNISSEN

SHAREPOINT – EINFÜHRUNG Buck, Kasper 27.06.2018 20.06.2018 4 FÜR ANWENDER 9:00 – 12:30 und 13:30 – 15:30 Uhr

SHAREPOINT – EINFÜHRUNG Buck, Kasper 28.06.2018 21.06.2018 4 FÜR SITECOLLECTION- 9:00 – 12:30 und 13:30 – 15:30 Uhr BESITZER

STATISTIK MIT R FÜR Cordes 03.07. – 04.07.2018 26.06.2018 8 TEILNEHMER MIT VOR- 9:00 – 12:00 und 13:00 – 15:30 Uhr KENNTNISSEN – VON DER ANALYSE ZUM BERICHT

SHAREPOINT – EINFÜHRUNG Buck, Kasper 15.08.2018 08.08.2018 4 FÜR ANWENDER 9:00 – 12:30 und 13:30 – 15:30 Uhr

SHAREPOINT – EINFÜHRUNG Buck, Kasper 16.08.2018 09.08.2018 4 FÜR SITECOLLECTION- 9:00 – 12:30 und 13:30 – 15:30 Uhr BESITZER

GRUNDLAGEN DER Töpfer 21.08. – 22.08.2018 14.08.2018 8 BILDBEARBEITUNG MIT 9:30 – 16:00 Uhr PHOTOSHOP

SHAREPOINT – EINFÜHRUNG Buck, Kasper 12.09.2018 05.09.2018 4 FÜR ANWENDER 9:00 – 12:30 und 13:30 – 15:30 Uhr

SHAREPOINT – EINFÜHRUNG Buck, Kasper 13.09.2018 06.09.2018 4 FÜR SITECOLLECTION- 9:00 – 12:30 und 13:30 – 15:30 Uhr BESITZER

INDESIGN – GRUNDLAGEN Töpfer 18.09. – 19.09.2018 11.09.2018 8 9:30 – 16:00 Uhr

SHAREPOINT – EINFÜHRUNG Buck, Kasper 17.10.2018 10.10.2018 4 FÜR ANWENDER 9:00 – 12:30 und 13:30 – 15:30 Uhr

SHAREPOINT – EINFÜHRUNG Buck, Kasper 18.10.2018 11.10.2018 4 FÜR SITECOLLECTION- 9:00 – 12:30 und 13:30 – 15:30 Uhr BESITZER

PHOTOSHOP FÜR Töpfer 23.10. – 24.10.2018 16.10.2018 8 FORTGESCHRITTENE 9:30 – 16:00 Uhr

EINFÜHRUNG IN DIE Cordes 13.11. – 14.11.2018 06.11.2018 8 STATISTISCHE DATEN- 9:00 – 12:00 und 13:00 – 15:30 Uhr ANALYSE MIT SPSS

ADMINISTRATION VON PCS Quentin 15.11.2018 08.11.2018 4 IM ACTIVE DIRECTORY DER 9:00 – 12:30 und 13:30 – 15:30 Uhr GWDG

SHAREPOINT – EINFÜHRUNG Buck, Kasper 21.11.2018 14.11.2018 4 FÜR ANWENDER 9:00 – 12:30 und 13:30 – 15:30 Uhr

SHAREPOINT – EINFÜHRUNG Buck, Kasper 22.11.2018 15.11.2018 4 FÜR SITECOLLECTION- 9:00 – 12:30 und 13:30 – 15:30 Uhr BESITZER 23 12|17

KURS VORTRAGENDE/R TERMIN ANMELDEN BIS AE

INDESIGN – AUFBAUKURS Töpfer 27.11. – 28.11.2018 20.11.2018 8 9:30 – 16:00 Uhr

OUTLOOK – E-MAIL UND Helmvoigt 06.12.2018 29.11.2018 4 GROUPWARE 9:15 – 12:00 und 13:00 – 16:00 Uhr

ANGEWANDTE STATISTIK Cordes 11.12. – 12.12.2018 04.12.2018 8 MIT SPSS FÜR NUTZER MIT 9:00 – 12:00 und 13:00 – 15:30 Uhr VORKENNTNISSEN

SHAREPOINT – EINFÜHRUNG Buck, Kasper 19.12.2018 12.12.2018 4 FÜR ANWENDER 9:00 – 12:30 und 13:30 – 15:30 Uhr

SHAREPOINT – EINFÜHRUNG Buck, Kasper 20.12.2018 13.12.2018 4 FÜR SITECOLLECTION- 9:00 – 12:30 und 13:30 – 15:30 Uhr BESITZER

Teilnehmerkreis gent abgerechnet. Für die Institute der Universität Göttingen und Das Kursangebot der GWDG richtet sich an alle Mitarbeiterinnen der Max-Planck-Gesellschaft erfolgt keine Abrechnung in EUR. und Mitarbeiter aus den Instituten der Universität Göttingen und der Max-Planck-Gesellschaft sowie aus einigen anderen wissen- Absage schaftlichen Einrichtungen. Sie können bis zu acht Tagen vor Kursbeginn per E-Mail an [email protected] oder telefonisch unter 0551 201-1523 absagen. Anmeldung Bei späteren Absagen werden allerdings die für die Kurse berech- Anmeldungen können schriftlich per Brief oder per Fax unter der neten AE vom jeweiligen Institutskontingent abgebucht. Nummer 0551 201-2150 an die GWDG, Postfach 2841, 37018 Göt- tingen oder per E-Mail an die Adresse [email protected] erfolgen. Kursorte Für die schriftliche Anmeldung steht unter https://www.gwdg.de/ Alle Kurse finden im Kursraum oder Vortragsraum der GWDG antragsformulare ein Formular zur Verfügung. Telefonische Anmel- statt. Die Wegbeschreibung zur GWDG sowie der Lageplan sind dungen können leider nicht angenommen werden. unter https://www.gwdg.de/lageplan zu finden. Kosten bzw. Gebühren Kurstermine Unsere Kurse werden wie die meisten anderen Leistungen der Die genauen Kurstermine und -zeiten sowie aktuelle kurzfristige GWDG in Arbeitseinheiten (AE) vom jeweiligen Institutskontin- Informationen zu den Kursen, insbesondere zu freien Plätzen, sind unter https://www.gwdg.de/kursprogramm zu finden.