494 research outputs found

    Debugging Native Extensions of Dynamic Languages

    Full text link
    Many dynamic programming languages such as Ruby and Python enable developers to use so called native extensions, code implemented in typically statically compiled languages like C and C++. However, debuggers for these dynamic languages usually lack support for also debugging these native extensions. GraalVM can execute programs implemented in various dynamic programming languages and, by using the LLVM-IR interpreter Sulong, also their native extensions. We added support for source-level debugging to Sulong based on GraalVM's debugging framework by associating run-time debug information from the LLVM-IR level to the original program code. As a result, developers can now use GraalVM to debug source code written in multiple LLVM-based programming languages as well as programs implemented in various dynamic languages that invoke it in a common debugger front-end.Comment: 7 pages, 7 figures, accepted at 15th International Conference on Managed Languages & Runtimes (ManLang'18

    Instrumentation and Data Collection for Sheet Glass Production

    Get PDF
    Indiana University Purdue University IndianapolisKokomo Opalescent Glass (KOG) is a manufacturer of art glass located in Kokomo Indiana. KOG has high defect rates in their sheet glass production process that can vary greatly depending on operator experience and environmental factors. This project aimed to improve the repeatability of KOG’s sheet glass production process by enabling them to monitor the temperature at which glass sheets enter their annealing oven and to decrease their defect rate, which has historically been around 25%. Through integrating instrumentation and data collection into KOG’s production process, defects in sheet glass production were successfully decreased by approximately 10% in the weeks following the installation of the device created in this project.Electrical Engineering Technolog

    An Arduino Simulator in Classroom - a Case Study

    Get PDF
    The Arduino Platform is increasingly being used as a central component in introductory programming courses of the curricula in middle, high school and even higher education. Given this scenario it is pertinent to understand how the cost-effectiveness, reliability and accessibility of this central component can be improved. We propose the use of an Arduino simulator to improve usability, cost, and class efficiency, allowing for improved and even new forms of use and course benefits. This paper presents and describes an Arduino simulator that we developed for education purposes, and a case study of its use in embedded programming courses from two high-schools. We compared its use against the usual use of real hardware platform analyzing usability, student workload and time efficiency. Our results, that we present and discuss, suggest that there are no apparent drawbacks in using the simulator, and some metrics such as basic exercise-solving efficiency and global effort showed an improvement

    Using Arts and Crafts to teach Computer Science at the YMCA After-School Program

    Get PDF
    Computer Science (CS) is a popular, flourishing field. To prepare young students, CS is now being taught in middle school. Our team created a curriculum that delivers CS education using arts and crafts. We crafted a multi-week program that taught CS concepts including pseudo code, debugging, functions, and algorithms using art activities involving navigating a maze and drawing pixel art. We piloted the curriculum with 6th/7th graders at a YMCA after-school program, where we observed the students’ perspective, interest, and knowledge of CS. After the pilot program, we analyzed the results to measure the curriculum’s effectiveness and found the students better understood CS. The project resulted in a curriculum and set of recommendations for future groups conducting similar projects

    Investigation of GPGPU for use in processing of EEG in real-time

    Get PDF
    The purpose of this thesis was to investigate the use of General Purpose computing on Graphics Processing Units (GPGPU) to process electroencephalogram (EEG) signals in real-time. The main body of this work required the implementation of Independent Component Analysis were investigated: FastICA and JADE. Both were implemented three times: first using M-file syntax to serve as a benchmark, next, as native C code to measure performance of the algorithms when running natively on a CPU, and finally, as GPGPU code using the NVIDIA CUDA C language extension. In previous works, Independent Component Analysis represented the largest roadblock to achieving the real-time goal of processing 10 seconds of EEG within a 10 second window. It was found that both FastICA and JADE see speedups, with a maximum measured speedup of approximately 6x for FastICA, and approximately 2.5x for JADE, when operating on the largest datasets. In addition, speedups of between 1x and 2x were seen when working on datasets of the expected size provided by 10 seconds of 32-channel EEG sampled at 500 Hz. However, it was also found that GPGPU solutions are not necessary for real-time performance on a modern desktop computer as the FastICA algorithm is capable of a worst-case performance of between approximately 1 and 2 seconds depending on configuration parameters

    Design and implementation of a generalised computer aided learning system

    Get PDF
    This thesis surveys the development of computer aided learning and outlines the tools that are used for creating computer aided learning systems. A project to create and port over a computer aided learning system from a VAX 11/750 to a PDF model 11/44 based on the UNIX operating system is described. The computer aided learning system makes extensive use of existing software tools available on UNIX and is hence named CALUNIX for Computer Aided Learning on UNIX

    xLED: Covert Data Exfiltration from Air-Gapped Networks via Router LEDs

    Full text link
    In this paper we show how attackers can covertly leak data (e.g., encryption keys, passwords and files) from highly secure or air-gapped networks via the row of status LEDs that exists in networking equipment such as LAN switches and routers. Although it is known that some network equipment emanates optical signals correlated with the information being processed by the device ('side-channel'), intentionally controlling the status LEDs to carry any type of data ('covert-channel') has never studied before. A malicious code is executed on the LAN switch or router, allowing full control of the status LEDs. Sensitive data can be encoded and modulated over the blinking of the LEDs. The generated signals can then be recorded by various types of remote cameras and optical sensors. We provide the technical background on the internal architecture of switches and routers (at both the hardware and software level) which enables this type of attack. We also present amplitude and frequency based modulation and encoding schemas, along with a simple transmission protocol. We implement a prototype of an exfiltration malware and discuss its design and implementation. We evaluate this method with a few routers and different types of LEDs. In addition, we tested various receivers including remote cameras, security cameras, smartphone cameras, and optical sensors, and also discuss different detection and prevention countermeasures. Our experiment shows that sensitive data can be covertly leaked via the status LEDs of switches and routers at a bit rates of 10 bit/sec to more than 1Kbit/sec per LED

    Eclipse based Environment  for Multi-Architecture Cross Developments

    Get PDF
    We investigate the current state of open-source (or at least free proprietary) tool-chains that enable cross developments for different architectures of embedded systems and the ability to integrate them on an Eclipse based development environment. We provide a proof of concept of a possible solution that, in addition to the basic features, includes hardware debugging and productivity enhancement tools such as automatic documentation, version control, and serial console management

    UML-Based co-design framework for body sensor network applications

    Get PDF
    Ph.DDOCTOR OF PHILOSOPH
    corecore