University of Applied Sciences Rapperswil

eprints OST (Ostschweider Fachhochschule)
Not a member yet
    1194 research outputs found

    Incident-Response für KMUs

    Get PDF
    Einleitung Kleinere und mittlere Unternehmen (KMUs) investieren viel Geld in die Digitalisierung ihrer Arbeitsprozesse und sind auf ihre digitale Infrastruktur angewiesen. Durch diese Digitalisierung erlangt eine Unternehmung auf dem Markt den wirtschaftlichen Vorteil, der zur Rentabilität nötig ist. Gerade diese Digitalisierung fördert die Attraktivität der KMUs gegenüber Cyberkriminellen. Cyberkriminelle nehmen häufig KMUs ins Visier und scheuen nicht davor zurück, mit gestohlenen oder verschlüsselten Daten hohe Geldsummen zu erpressen. Wer den Forderungen nicht nachkommt, muss zahlreiche Systeme zurücksetzen oder unternehmenskritische Daten werden veröffentlicht. Oftmals erreichen Cyberkriminelle die Unternehmenssyteme durch Sicherheitslücken und bleiben dabei unentdeckt. Diese Angriffe können mit einfachen Massnahmen erschwert und von oft kostenlosen Sicherheitsapplikationen entdeckt werden. Ziel Das Ziel dieser Bachelorarbeit ist es, KMUs in der Planung, der Vorbereitung und der Abwicklung von Cyberangriffen zu unterstützen. Die KMUs werden entsprechend ihrer Grösse mit Anleitungen, Vorlagen und Applikationen ausgestattet. Die erarbeiteten Anleitungen und Vorlagen sind praxisnah, für IT-Fachkräfte eines KMUs leicht verständlich und schnell umzusetzen. Das interaktive Incident-Detection-Training festigt das durch die Anleitungen erlernte Fachwissen. Ergebnisse Die Ergebnisse dieser Bachelorarbeit sind in vier Bereiche aufgeteilt. Es wurden 4 Ergebnisformate gewählt, um eine möglichst breite Hilfestellung bieten zu können. Anleitungen: Es wurden technische Anleitungen für Sicherheits-‹Best Practices› in mehreren Bereichen erstellt. Diese reichen von konzeptionellen Vorgehensweisen bis hin zu konkreten Implementationen. Ausserdem wurden Anleitungen zur automatischen Installation und Verwendung einer Sicherheitsapplikation erstellt, welche KMUs hilft, Cyberangriffe zu entdecken. Vorlagen: Es wurden zwei Vorlagen zur Definition der Vorgehensweisen bei einem Cyberangriff erstellt. Die Vorlagen unterstützen KMUs darin, bei einem Cyberangriff effektiver reagieren zu können, da alle Prozessabläufe vorgegeben sind und dadurch Klarheit im Vorgehen herrscht. Sicherheitsapplikation: Es wurde eine automatische Installation inklusive Installations- und Benutzeranleitung für ein Sicherheitssystem erstellt. Dieses bringt Sichtbarkeit und Transparenz in die IT-Infrastruktur, mit welchem akutelle Ereignisse nachvollzogen werden können. Dadurch können Anomalien in der IT-Infrastruktur entdeckt und es kann darauf reagiert werden. Incident-Detection-Training: Mit dem Incident-Detection-Training können KMUs ihre IT-Fachkräfte in der Verwendung der Sicherheitsapplikation trainieren. Dies hilft KMUs, Angriffe frühzeitig zu erkennen

    Machine Learning for Programming Languages

    Get PDF
    Artificial Intelligence, or more precisely deep learning, has become a trending topic in the broad public and software engineering circles. Some exciting technologies have arisen from it, such as voice assistants or language translation services. Also, programmatically understanding source code and supporting the developer in writing better code have been a topic for a while. In recent times, a push toward combining these two fields has been made. For a software engineer coming from the world of tackling a problem with the help of algorithms with a predictable outcome, deep learning can be rather challenging to grasp. This paper aims to bring a software engineer or a programming language researcher up to speed on the current state of deep learning and show the possibilities of such technologies. All this, in an easily digestible manner for someone without any profound knowledge about deep learning

    Haskell Substitution Stepper (BA)

    Get PDF
    Functional programming languages such as Haskell are fundamentally different from imperative languages. While Haskell code is very expressive and elegant, the language involves a steep learning curve. Concepts like higher-order functions, lazy evaluation and recursion are difficult to teach. Moreover, debugging a functional language is more difficult due to a less intuitive execution model compared to imperative languages. This thesis presents the implementation of the „Haskell Substitution Stepper“, a tool aiming to address those issues. The goal is to create an environment in which developers can analyze Haskell expressions. To achieve this, the evaluation of those expressions is done step by step, and an explanation for each reduction is given. Such step by step reductions are often printed in textbooks to help understand a small program. The first step was to research how the Glasgow Haskell Compiler (GHC) transforms and evaluates expressions in the backend. Existing similar solutions were assessed and ideas for improvement were collected. Finally, the „Haskell Substitution Stepper“ was implemented using the intermediate representation „Core“ from GHC. The result is a command line application. Developers can load a source file with Haskell expressions into the stepper and see the individual reduction steps. The tool can be used for debugging or to better understand specific Haskell expressions. While the stepper is using the Core intermediate representation for the reduction, the result can be pretty printed in a format that looks like regular Haskell code

    Machine Learning für Bilderkennung

    Get PDF
    Aufgabenstellung: Die Softwarelösung der Firma Trihow soll mit einem Feature erweitert werden, welches durch die Anwendung von Machine Learning Komponenten, Post-it Zettel auf Bilder erkennt die in die Cloud hochgeladen werden. Zusätzlich soll eine synthetische Version des Post-its generiert werden, welche die Farbe und den Text des Originals hat. Vorgehen / Technologien: Da das Backend der Softwarelösung auf die Infrastruktur von Firebase setzt, wurden sogenannte Cloud Functions eingesetzt um das verlangte Feature zu implementieren. Durch die Einbindung der Objekterkennungsmethoden von Google Cloud Vision API, konnten Objektbeschreibungen (Labels), Farben und Texte vom hochgeladenem Bild extrahiert und ausgewertet werden. Zum Schluss wurde aus den gewonnen Daten ein SVG-String generiert, welcher in ein JPEG- Bild konvertiert wurde. Fazit: Durch das Trainieren eines eigenen Machine Learning Modells mit Google AutoML wurde festgestellt, dass wenn sich das ganze Backend auf Firebase befindet, die Verwendung von Cloud Vision die bessere und auch die kostengünstigere Wahl ist um Objekterkennungsaufgaben zu bewerkstelligen. Auch wenn in Einzelfällen das eigene Modell, bessere Vorhersagen treffen konnte, ob es sich um ein Post-it Foto handelte, gab es verschiedene Gründe die dagegen sprachen. Da sowohl Cloud Vision als auch Firebase zu Google gehört, konnte die Objekterkennung einwandfrei in die vorhandene Softwarelösung integriert und die daraus gewonnen Daten zu einem digitalen Post-it Bild verarbeitet werden, womit das Ziel dieser Arbeit erreicht wurde

    Visual OO Debugger

    Get PDF
    Object-oriented programming can be a challenge for unexperienced or new developers. The relations between objects, variables, and the concept of call-by-reference in methods is difficult to comprehend for a lot of people, sometimes even for more experienced developers. Teaching object-oriented programming can be just as challenging as learning it. One of the best ways to teach this topic, is to visualize the relations between objects and variables. Creating such visualizations is time consuming. The goal of this project is to create a tool for developers, with any level of experience, as well as teachers, to ease the process of learning and teaching the concepts of object-oriented programming. This tool uses debugger information at runtime to visualize objects and variables in a graph. The nodes of the graph represent variables and objects while the edges represent references between variables and objects, as well as references between two objects. The result was an extension for the widely used and free IDE Visual Studio Code. For the visualization of the graph, we used the open-source visualization library vis.js. In case of an object, a node consists of the name of the class in parentheses and, if present, every instance field with a primitive data type including its value. References to other objects are displayed with edges/arrows to other nodes. In case of a variable referencing an object or null, a node simply contains the name of the variable. A variable with a primitive data type contains the type, name of the variable and the value. Newly added nodes and edges are colored in yellow. Multiple options to export the visualization were implemented, as a PNG, PlantUML or GraphViz of the current state or as a GIF of multiple steps. Using the two buttons in the upper left-hand corner of the debugger view, it is possible to load the previous/next state of the visualization, all the way back to the first visualization

    NUTS

    Get PDF
    Einleitung Netzwerke sind elementare Bestandteile jedes Unternehmens, welche immer wieder von Änderungen betroffen sind. Um grössere Probleme vorzubeugen, wird nach Änderungen manuell von Netzwerk-Ingenieuren getestet. Das Problem dabei ist, dass das Know-How oftmals bei den Netzwerk-Ingenieuren liegt und das menschliche Fehler beim Testen vorkommen. Die Automatisierung von Netzwerktests versucht dieses Problem zu eliminieren. Ein Produkt für die Automatisierung von Netzwerktests ist NUTS (NetTowel Network Unit Testing), welches vom INS (Institue of Networked Solutions) entwickelt wird. NUTS ist ein pytest Plugin, welches mithilfe der Open-Source Frameworks Nornir und Napalm es ermöglicht, Unit-Tests in einem Netzwerk auszuführen. Diese Tests werden in einer Testdefinitionssprache in YAML definiert und von NUTS herstellerunabhängig ausgeführt. Ziel Die vorliegende Arbeit befasst sich mit dem Testing von Netzwerken durch NUTS und wie dieses Produkt in der Industrie verwendet werden kann. Es sollen mit Industriepartnern Kundenanforderungen evaluiert werden, ob Interesse an automatisiertem Testing vorhanden ist. Auch wie aktuelles, meist manuell ausgeführtes Testing automatisiert werden kann. Die gefundenen Tests sollen als sogenannte ``Test-Bundles'' in NUTS umgesetzt werden. Zusätzlich sollen weitere Open-Source Netzwerkautomatisierungsframeworks analysiert werden, welche von NUTS verwendet werden können. Ergebnis Die Interviews mit den Industriepartnern erlaubten es ein umfangreiches Testportfolio zu kreieren, welches Test-Bundles enthält, die für die Industrie interessant sind. Es sind diverse Test-Bundles implementiert. Dazu gehört unter anderem ein Test, ob die richtigen VLANs einem Interface zugewiesen sind oder wie viele CDP Nachbaren ein Netzwerkgerät hat. Die meisten Tests im Testportfolio können nicht umgesetzt werden, da das eingesetzte Framework Napalm nicht die benötigten Daten von den Netzwerkgeräten liefern kann. Von den weiteren analysierten Netzwerkautomatisierungsframeworks lässt sich keines als umfassende Gesamtlösung einsetzen. Daher wurde für die Umsetzung weiterer Test-Bundles evaluiert, wie eine mögliche Architektur von NUTS aussehen sollte. Künftig ist es sinnvoll NUTS so umzubauen, damit es nicht als pytest Plugin verwendet wird und nicht so stark vom Framework Napalm abhängig ist. Die Daten herstellerunabhängig von Netzwerkgeräten abholen sollte nicht von Napalm gelöst werden, sondern von NUTS selbst. Dies ist mit der aktuellen Struktur von NUTS nicht möglich und erfordert einen grösseren Umbau der Architektur

    Markua Support for Pandoc

    Get PDF
    The goal of this semester thesis is to extend the functionality of “Pandoc” with the option to output text in Markua version 0.10. Pandoc is an open-source project that can read and write different markup languages and convert between them. It can be separated into readers that parse an input document and convert it to an internal format and writers. The later is responsible to translate from the internal representation to, in this case, Markua. Markua is a markup language, developed by Peter Armstrong, that is mainly used on Leanpub for writing books. It is based on Github Flavored Markdown, but has some significant syntactic and semantic differences. We accomplished the task by writing a Markua writer for Pandoc, which we then integrated within the existing Markdown writer as a new variant. During the process we greatly increased our knowledge of Haskell, as well as gaining experience in working on a big open-source project. The main project phase ended with the successful integration of our Markua 0.10 writer to the official Pandoc code base

    Microsoft Teams smino App

    Get PDF
    Einleitung: smino ist ein Produkt, welches Baufirmen bei jeder Leistungsphase, von der Planung bis zur Schlüsselübergabe, unterstützt. Mit smino können unter anderem Aufgaben und Mängel schnell und einfach erfasst werden. Bilder, Dokumente und Planmarkierungen können einfach hinzugefügt und den verantwortlichen Personen zugewiesen werden. Durch die vermehrte Nutzung von MS Teams wünscht sich auch smino herauszufinden, wie ihre Funktionalitäten in die Plattform integriert werden können. Ausgangslage: Ein erstes Ziel dieser Arbeit war das Einarbeiten in die Microsoft Teams Entwicklung und das Herausarbeiten von Möglichkeiten der verschiedenen Teams Funktionalitäten in Bezug auf die Integration der smino Funktionalitäten. Das Hauptziel ist die Integration der smino Aufgaben in ein Microsoft Teams Tab eines Kanals oder eines Chats. In dieser Phase ging es um den Aufbau von Kompetenzen in der Entwicklung mit Microsoft Teams und den entsprechenden Integrationsmöglichkeiten, welche Microsoft Teams zur Verfügung stellt. Mittels Prototypen wurden die verschiedenen Ansprüche von smino validiert und auf deren Machbarkeit geprüft. Ergebnis: In einer zweiten Phase wurde basierend auf den Komponenten aus der smino Web Applikation eine smino Teams Applikation entwickelt. Dabei wurde zuerst die Authentifizierung des smino Benutzers im Teams Kontext und die anschliessende Teams Tab-Konfiguration mit einem smino Projekt implementiert. Für die Implementation der Aufgaben mussten neue Funktionalitäten implementiert und auch komplexe, bestehende Komponenten der smino Applikation überarbeitet werden. Des Weiteren wurde ein Theming-Konzept erarbeitet und ein Dark-Theme implementiert, um das Dark-Theme der Teams Applikation selbst zu unterstützen. Für die Applikation wurde eine entsprechende Provisionierung in Teams und Hosting mit Microsoft Azure umgesetzt. Abgeschlossen wurde die Arbeit mit einem User�Testing der smino Aufgaben in der Beta-Version von der smino Microsoft Teams Applikation

    Qualitatsprüfung der Verknüpfungen von OpenStreetMap nach Wikidata

    Get PDF
    Die freie Landkarte OpenStreetMap ist in der Lage, Verknüpfungen auf die strukturierte Wissensdatenbank Wikidata abzubilden. Derzeit existieren rund 5.5 Millionen solcher Verknüpfungen von OpenStreetMap zu Wikidata. Die Qualität dieser Verknüpfungen ist bislang jedoch unbekannt und ungeprüft. Die entwickelte Applikation "osm wikidata quality checker" überprüft diese Verknüpfungen auf deren Qualität. Sie läuft in einem Docker-Container, besorgt sich selbstständig die Datensätze, verarbeitet diese und liefert gefundene Fehler an die etablierte Fehlerdatenbank Osmose. Ziel dieser Arbeit ist, dass die Applikation ein dauerhafter Teil der Infrastruktur zur Qualitätssicherung von OpenStreetMap wird und einfach weiterentwickelt werden kann. Die Grundlage für die Checks liefern die Datenbank-Dumps von OpenStreetMap und Wikidata. Die Herausforderung bestand darin, die enorme Datenmenge innerhalb einer Woche und mit geringem Speicherplatzbedarf zu verarbeiten. Dies wurde hauptsächlich durch den Einsatz von Multiprocessing und des entwickelten Datenbankmodells, bei dem nur die relevanten Daten extrahiert werden, erreicht. Auch Schwierigkeiten im Umgang mit crowdsourced Data, bei denen mit unvorhergesehene Datenfehlern gerechnet werden muss, wurden erfolgreich gemeistert, sodass eine hohe Fehlertoleranz erreicht wurde. Eine ausführliche Dokumentation sowie die leicht verständliche Architektur ermöglicht es, das Tool auszubauen und weitere Checks zu implementieren. Die optionale Konfiguration bietet die nötige Flexibilität im Betrieb und hilft bei der Weiterentwicklung. Entstanden ist ein betriebsreifes Werkzeug, welches in der Lage ist, mit den grossen Datenmengen umzugehen und die gesamte Welt innerhalb der geforderten Frist zu prüfen. Aktuell werden weltweit über 30'000 Fehler in neun Kategorien gefunden. Dabei wird eine hohe Treffsicherheit von 95% erreicht. The free geographic map OpenStreetMap is able to map links to the structured knowledge database Wikidata. Currently, there are about 5.5 million such links from OpenStreetMap to Wikidata. However, the quality of these links is unknown and unchecked so far. The developed application "osm wikidata quality checker" checks these links for their quality. It runs in a Docker container, gets the datasets on its own, processes them and delivers found errors to the established error database Osmose. The goal of this work is for the application to become a permanent part of OpenStreetMap's quality assurance infrastructure and be easily developed further. The database dumps from OpenStreetMap and Wikidata provide the basis for the checks. The challenge is to process the enormous amount of data within a week and with low storage requirements. This was mainly achieved by using multiprocessing and the developed database model where only the relevant data is extracted. Difficulties in dealing with crowdsourced data, where unforeseen data errors must be expected, were also successfully mastered, so that a high error tolerance was achieved. A detailed documentation as well as the easy to understand architecture allows to extend the tool and to implement further checks. The optional configuration offers the necessary flexibility in operation and helps with further development. The result is a ready-to-use tool that is able to handle large amounts of data and to check the entire world within the required timeframe. Currently, more than 30,000 errors in nine categories are found worldwide. A high accuracy of 95% is achieved

    Big Data Management von Punktwolken

    Get PDF
    -- Deutsch: Light Detection And Ranging (LiDAR) ist eine Methode, die verwendet werden kann, um Objekte oder Umgebungen als Punktwolke aufzunehmen. In Kombination mit Simultaneous Localization And Mapping (SLAM) ist es mobilen Robotern möglich ihre eigene Position in einer dieser Umgebungen zu bestimmen. Damit können sie verwendet werden, um autonom Punktwolken ihres Umfelds zu erstellen. Das Institute for Lab Automation and Mechatronics der OST (ILT) hat ihren Roboterhund Spot mit einem LiDAR-Sensor und einem Mini-Computer mit SLAM-Algorithmus ausgestattet. Damit sollen in Zukunft Punktwolken unterschiedlicher Indoor-Umgebungen erstellt werden. Um diesem Ziel näher zu kommen, wird eine Software-Komponente benötigt, die Punktwolken zentral verwaltet und noch während der Aufnahme deren Qualität überprüft werden kann. Dafür wurde im Rahmen dieser Arbeit eine Applikation namens “3D Data Management” entwickelt. Sie ermöglicht es mit mobilen Clients (zum Beispiel Roboter) aufgenommene Punktwolken über eine Schnittstelle an einen Server zu senden. Die empfangenen Daten werden inkrementell in einer Webapplikation dargestellt und können so beinahe in Echtzeit betrachtet werden. Mobile Clients können 3D-Daten in Form von Punktwolken (Point Clouds) oder Polygonnetze (Meshes) im PLY-Dateiformat an die REST-API der Webapplikation übermitteln. Die übertragenen Daten werden auf dem Server zunächst unverändert als PLY-Datei verwaltet. Zusätzlich werden zu jeder Aufnahme zugehörige Metadaten wie Name, Ort, Zeitpunkt, Dateigrösse und Vorschau in einer PostgreSQL-Datenbank gespeichert. Für die unmittelbare Darstellung der aufgenommenen Punkte im Webbrowser (JavaScript und Three.js) wird die Webapplikation per Websocket-Verbindung mit dem Backend (Python und Django) über neue Aufnahmen benachrichtigt. Am Ende einer Aufnahmesession können die Teilaufnahmen zu einer einzelnen Datei zusammengefügt und als Ganzes verwaltet, heruntergeladen und weiterverarbeitet werden. Die Funktionalität der Applikation wurde am Ende des Projekts mit dem Roboterhund Spot des ILT getestet. Die Systemtests haben gezeigt, dass die Software alle gewünschten Anwendungsfälle abdeckt. Sie leistet damit einen wichtigen Beitrag zur Vision des ILT. Die Modulare Softwarearchitektur der Applikation bildet eine gute Grundlage für Weiterentwicklungen. -- Englisch: Light Detection And Ranging (LiDAR) is a method that can be used to record objects or environments as a point cloud. In combination with Simultaneous Localization And Mapping (SLAM), it is possible for mobile robots to determine their own position in one of these environments. This means that mobile robots can be used to autonomously create point clouds of their environment. The Institute for Lab Automation and Mechatronics (ILT) has equipped their robot dog Spot with a LiDAR sensor and a mini-computer with a SLAM algorithm in order to be able to create point clouds of different environments in the future. To get closer to this goal, a software component is needed that allows the point clouds to be managed centrally and their quality to be checked while they are still being recorded. For this purpose, an application called "3D Data Management"was developed within the scope of this work. It enables point clouds recorded with mobile clients (e.g. robots) to be sent to a server via an interface and WLAN. The received data is displayed incrementally in a web application and can thus be viewed almost in real time. Mobile clients can transmit 3D data in the form of point clouds or meshes in PLY file format to the REST API of the web application. The transmitted data is initially managed on the server unchanged as a PLY file. In addition, associated metadata such as name, location, time, file size and preview are stored in a PostgreSQL database for each recording. For the immediate display of the recorded points in the web browser (JavaScript and Three.js), the web application is notified of new recordings via a websocket connection with the backend (Python and Django). At the end of a recording session, the partial recordings can be merged into a single file and managed as a whole, downloaded and further processed. The functionality of the application was tested at the end of the project with the robot dog Spot of the ILT. The system tests have shown that the software covers all desired use cases. It thus makes an important contribution to the vision of 3D indoor mapping and navigation.The modular software architecture of the application forms a good basis for further developments

    1,015

    full texts

    1,194

    metadata records
    Updated in last 30 days.
    eprints OST (Ostschweider Fachhochschule)
    Access Repository Dashboard
    Do you manage Open Research Online? Become a CORE Member to access insider analytics, issue reports and manage access to outputs from your repository in the CORE Repository Dashboard! 👇