117 research outputs found
Is Rust Used Safely by Software Developers?
Rust, an emerging programming language with explosive growth, provides a
robust type system that enables programmers to write memory-safe and data-race
free code. To allow access to a machine's hardware and to support low-level
performance optimizations, a second language, Unsafe Rust, is embedded in Rust.
It contains support for operations that are difficult to statically check, such
as C-style pointers for access to arbitrary memory locations and mutable global
variables. When a program uses these features, the compiler is unable to
statically guarantee the safety properties Rust promotes. In this work, we
perform a large-scale empirical study to explore how software developers are
using Unsafe Rust in real-world Rust libraries and applications. Our results
indicate that software engineers use the keyword unsafe in less than 30% of
Rust libraries, but more than half cannot be entirely statically checked by the
Rust compiler because of Unsafe Rust hidden somewhere in a library's call
chain. We conclude that although the use of the keyword unsafe is limited, the
propagation of unsafeness offers a challenge to the claim of Rust as a
memory-safe language. Furthermore, we recommend changes to the Rust compiler
and to the central Rust repository's interface to help Rust software developers
be aware of when their Rust code is unsafe
Development of an e-portfolio social network using emerging web technologies
Dissertação de mestrado em Informatics EngineeringDigital portfolios (also known as e-Portfolios) can be described as digital collections of artifacts, being both a
product (a digital collection of artifacts) and a process (reflecting on those artifacts and what they represent). It
is an extension of the traditional Curriculum Vitae, which tells the educational and professional milestones of
someone, while the portfolio proves and qualifies them (e.g.: annually thousands of students finish a Master
degree on Informatics, but only one has built Vue, Twitter or Facebook – the Portfolio goes beyond the CV
milestones by specifying the person’s output throughout life and distinguishing them). e-Portfolios augment this
by introducing new digital representations and workflows, exposed to a community, being both a product and
a process. This approach can be useful for individual self-reflection, education or even job markets, where
companies seek talented individuals, because it expands the traditional CV concept and empowers individual
merit. There have been many studies, theories, and methodologies related with e-Portfolios, but transpositions
to web applications have been unsuccessful, untuitive and too complex (in opposition to the CV format, which
had success in various applications, for example LinkedIn).
This project aims to study new approaches and develop an exploratory web/mobile application of this method ology, by exploring the potential of social networks to promote them, augmented by emergent web technologies.
Its main output is the prototype of a new product (a social network of e-Portfolio) and its design decisions, with
new theoretical approaches applied to web development. By the end of this project, we will have idealized a web
infrastructure for interacting with networks of users, their skills, and communities seeking them.
The approach to the development of this platform will be to integrate emerging technologies like WebAssembly
and Rust in its development cycle and document our findings. At the end of this project, in addition to the
prototype of a new product, we hope to have contributed to the State of the Art of Web Engineering and to be
able to answer questions regarding new emerging web development ecosystems.Os portfólios digitais (também conhecidos como e-Portfolios) podem ser descritos como coleções digitais de
artefatos, sendo tanto um produto (uma coleção digital de artefatos) quanto um processo (refletindo sobre esses
artefatos e o que eles representam). É uma extensão do tradicional Curriculum Vitae, onde o primeiro conta os
marcos educacionais e profissionais de alguém, enquanto que o segundo, o Portfólio, comprova-os e qualifica-os
(e.g.: anualmente milhares de alunos concluem graduações em Informática, no entanto apenas um consebeu
o Vue, o Twitter ou o Facebook - o Portfólio vai além dos indicadores quantitativos do CV, especificando e
qualificando a produção da pessoa ao longo da vida e distinguindo-a). Os e-Portfolios expandem este conceito
com a introdução de novas representações digitais e fluxos de trabalho, expostos a uma comunidade, sendo
tanto um produto como um processo. Esta abordagem pode ser útil para a autorreflexão individual, educação ou
mesmo mercados de trabalho, onde as empresas procuram indivíduos talentosos, porque expande o conceito
tradicional de CV e potencializa o mérito individual. Existem muitos estudos, teorias e metodologias relacionadas
com os e-Portfolios, mas as transposições para aplicações web têm sido mal sucedidas, pouco intuitivas e muito
complexas (em oposição ao formato CV, que tem tido sucesso em várias aplicações, por exemplo no LinkedIn).
Este projeto visa estudar novas abordagens neste domínio e desenvolver uma aplicação exploratória web/mobile que melhor exprima os e-Portfolios, explorando o potencial das redes sociais para os promover em conjunto
com tecnologias web emergentes. As principais produções esperadadas deste trabalho são um protótipo de
um novo produto (uma rede social de e-Portfolio) e documentar novas abordagens teóricas aplicadas ao desenvolvimento web. No final deste projeto, teremos idealizado uma infraestrutura web para interagir com redes de
utilizadores, as suas competências e comunidades que os procurem.
A abordagem ao desenvolvimento desta plataforma será integrar tecnologias emergentes como WebAssembly e Rust no seu ciclo de desenvolvimento e documentar as nossas descobertas e decisões. No final deste
projeto, para além do protótipo de uma plataforma, esperamos ter contribuido para o Estado da Arte da Engenharia Web e responder a questões sobre novos ecossistemas emergentes de desenvolvimento web
Proceedings of The Rust-Edu Workshop
The 2022 Rust-Edu Workshop was an experiment. We wanted to gather together as many thought leaders we could attract in the area of Rust education, with an emphasis on academic-facing ideas. We hoped that productive discussions and future collaborations would result. Given the quick preparation and the difficulties of an international remote event, I am very happy to report a grand success. We had more than 27 participants from timezones around the globe. We had eight talks, four refereed papers and statements from 15 participants. Everyone seemed to have a good time, and I can say that I learned a ton. These proceedings are loosely organized: they represent a mere compilation of the excellent submitted work. I hope you’ll find this material as pleasant and useful as I have. Bart Massey 30 August 202
Understanding Hardware-Accelerated 2D Vector Graphics
With the rising support of compute kernels and low-level GPU architecture access over the past few years, friction with general-purpose GPU computing is fading. With new accessibility, new analytics methods for hardware-accelerated vector rasterization are being tried with new leverage. There are compelling reasons to optimize performance given the resolution-independent imaging model and inherent benefits. However, there is a noticeable lack of comparison between algorithms, techniques, and libraries which gauge the modern rendering capability. Analyzing the performance of vector graphics on the GPU is challenging, primarily when various technologies may compete for differing scarce computer resources. This thesis examines the contention found with modern vector graphic rendering and expands on analysis techniques used to de-obfuscate efficacy by providing an analytic benchmarking framework for hardware-accelerated renderers
- …