45 research outputs found

    Remote Management of Embedded Systems

    Get PDF
    Možnosti dnešních vestavěných zařízení rapidně rostou. Jejich výkon dovoluje běh složitějších aplikací v prostředích Internetu věcí (IoT). Složité aplikace bývají náchylné na chyby a vyžadují průběžnou aktualizaci. Systém, který umožňuje aktualizace většího množství vzdálených vestavěných zařízení, byl navrhnut a implementován. Systém byl implementován na základě studie existujících řešení a podmínek projektu BeeeOn, který se zabývá chytrou domácností.Possibilities of today's embedded devices are growing rapidly. Their performance allows them to run more complex applications in Internet of Things (IoT) environments. Complex applications tend to be error-prone and require continual updates. A system that is capable of updating a multitude of remote embedded devices was designed and implemented. This system was created based on the study of existing solutions and requirements of the project BeeeOn which concerns itself with smart homes.

    Critters in the Classroom: A 3D Computer-Game-Like Tool for Teaching Programming to Computer Animation Students

    Get PDF
    The brewing crisis threatening computer science education is a well documented fact. To counter this and to increase enrolment and retention in computer science related degrees, it has been suggested to make programming "more fun" and to offer "multidisciplinary and cross-disciplinary programs" [Carter 2006]. The Computer Visualisation and Animation undergraduate degree at the National Centre for Computer Animation (Bournemouth University) is such a programme. Computer programming forms an integral part of the curriculum of this technical arts degree, and as educators we constantly face the challenge of having to encourage our students to engage with the subject. We intend to address this with our C-Sheep system, a reimagination of the "Karel the Robot" teaching tool [Pattis 1981], using modern 3D computer game graphics that today's students are familiar with. This provides a game-like setting for writing computer programs, using a task-specific set of instructions which allow users to take control of virtual entities acting within a micro world, effectively providing a graphical representation of the algorithms used. Whereas two decades ago, students would be intrigued by a 2D top-down representation of the micro world, the lack of the visual gimmickry found in modern computer games for representing the virtual world now makes it extremely difficult to maintain the interest of students from today's "Plug&Play generation". It is therefore especially important to aim for a 3D game-like representation which is "attractive and highly motivating to today's generation of media-conscious students" [Moskal et al. 2004]. Our system uses a modern, platform independent games engine, capable of presenting a visually rich virtual environment using a state of the art rendering engine of a type usually found in entertainment systems. Our aim is to entice students to spend more time programming, by providing them with an enjoyable experience. This paper provides a discussion of the 3D computer game technology employed in our system and presents examples of how this can be exploited to provide engaging exercises to create a rewarding learning experience for our students

    How to Measure the Killer Microsecond

    Get PDF
    Datacenter-networking research requires tools to both generate traffic and accurately measure latency and throughput. While hardware-based tools have long existed commercially, they are primarily used to validate ASICs and lack flexibility, e.g. to study new protocols. They are also too expensive for academics. The recent development of kernel-bypass networking and advanced NIC features such as hardware timestamping have created new opportunities for accurate latency measurements. This paper compares these two approaches, and in particular whether commodity servers and NICs, when properly configured, can measure the latency distributions as precisely as specialized hardware. Our work shows that well-designed commodity solutions can capture subtle differences in the tail latency of stateless UDP traffic. We use hardware devices as the ground truth, both to measure latency and to forward traffic. We compare the ground truth with observations that combine five latency-measuring clients and five different port forwarding solutions and configurations. State-of-the-art software such as MoonGen that uses NIC hardware timestamping provides sufficient visibility into tail latencies to study the effect of subtle operating system configuration changes. We also observe that the kernel-bypass-based TRex software, that only relies on the CPU to timestamp traffic, can also provide solid results when NIC timestamps are not available for a particular protocol or device

    EdCCDroid: An Education Pilot Prototype for Introducing Code-Combat using LUA

    Get PDF
    The current paper present a serious game prototype developed to assist the learning of programming at a university level. The game is called EdCCDroid, and is based on Code-Combat, currently the only game field targeting audience for programming learning compared to other games that would see users touch on the purely logically side of programming without having the user entering any code. Code Combat allows users to use script languages such as javascript, Lua, python etc. as input in order to progress through a small story or compete against other players. The paper reports on a “Learn & Play” game prototype that encourages students to understand the fundamentals of programming, through algorithmic design sceptic tasks, using Robots as Avatars to perform certain tasks within the game world. The paper explores the use of the UNITY 3D libraries to design the game, the real-time interactive platform used and the instructions in Lua format. The goal of the game is to produce an attractive game theme environment as part of the game simulation concept, targeting the development of an easy use Head Up Display (HUD) for writing the equivalent task code in Lua., Feedback is provided in case of errors and a visual output of the game state is being produced with the motion/interaction of the game world-bots. The paper also reports on the usability evaluation results from a pilot study conducted with 14 participants

    Automating User Interfaces for a Multi-way Dataflow Constraint System

    Get PDF
    A scriptable User Interface (UI) can be set to record the user’s actions into a script, and then play that recorded script back over different data. The purpose is to automate oft-occurring use patterns. Though such automation is useful, especially for advanced users of particular software systems, scriptable UIs are not common. We conjecture that the implementation cost of such features is too high for them to become common. The project develops a generic approach for scripting where this feature could be packaged into a library, to be reused by different UIs. In this approach, the effort needed to implement scripting is considerably reduced. The context for this thesis is the use of multi-way dataflow constraint systems in Graphical User Interface (GUI) programming. Such systems can represent the state of a GUI in a concise and well-structured manner. These state representations can be inspected and manipulated programmatically, which is what we exploit for generic script- ing too. Concretely, we build scripting support for the HotDrink GUI framework that is based on multi-way dataflow constraint systems and provides a mechanism for structural manipulation of GUI elements.Masteroppgave i Programutvikling samarbeid med HVLPROG399MAMN-PRO

    MoonGen: A Scriptable High-Speed Packet Generator

    Full text link
    We present MoonGen, a flexible high-speed packet generator. It can saturate 10 GbE links with minimum sized packets using only a single CPU core by running on top of the packet processing framework DPDK. Linear multi-core scaling allows for even higher rates: We have tested MoonGen with up to 178.5 Mpps at 120 Gbit/s. We move the whole packet generation logic into user-controlled Lua scripts to achieve the highest possible flexibility. In addition, we utilize hardware features of Intel NICs that have not been used for packet generators previously. A key feature is the measurement of latency with sub-microsecond precision and accuracy by using hardware timestamping capabilities of modern commodity NICs. We address timing issues with software-based packet generators and apply methods to mitigate them with both hardware support on commodity NICs and with a novel method to control the inter-packet gap in software. Features that were previously only possible with hardware-based solutions are now provided by MoonGen on commodity hardware. MoonGen is available as free software under the MIT license at https://github.com/emmericp/MoonGenComment: Published at IMC 201

    The CECAM Electronic Structure Library and the modular software development paradigm

    Get PDF
    First-principles electronic structure calculations are very widely used thanks to the many successful software packages available. Their traditional coding paradigm is monolithic, i.e., regardless of how modular its internal structure may be, the code is built independently from others, from the compiler up, with the exception of linear-algebra and message-passing libraries. This model has been quite successful for decades. The rapid progress in methodology, however, has resulted in an ever increasing complexity of those programs, which implies a growing amount of replication in coding and in the recurrent re-engineering needed to adapt to evolving hardware architecture. The Electronic Structure Library (\esl) was initiated by CECAM (European Centre for Atomic and Molecular Calculations) to catalyze a paradigm shift away from the monolithic model and promote modularization, with the ambition to extract common tasks from electronic structure programs and redesign them as free, open-source libraries. They include ``heavy-duty'' ones with a high degree of parallelisation, and potential for adaptation to novel hardware within them, thereby separating the sophisticated computer science aspects of performance optimization and re-engineering from the computational science done by scientists when implementing new ideas. It is a community effort, undertaken by developers of various successful codes, now facing the challenges arising in the new model. This modular paradigm will improve overall coding efficiency and enable specialists (computer scientists or computational scientists) to use their skills more effectively. It will lead to a more sustainable and dynamic evolution of software as well as lower barriers to entry for new developers
    corecore