7 research outputs found

    Personalizing the web: A tool for empowering end-users to customize the web through browser-side modification

    Get PDF
    167 p.Web applications delegate to the browser the final rendering of their pages. Thispermits browser-based transcoding (a.k.a. Web Augmentation) that can be ultimately singularized for eachbrowser installation. This creates an opportunity for Web consumers to customize their Web experiences.This vision requires provisioning adequate tooling that makes Web Augmentation affordable to laymen.We consider this a special class of End-User Development, integrating Web Augmentation paradigms.The dominant paradigm in End-User Development is scripting languages through visual languages.This thesis advocates for a Google Chrome browser extension for Web Augmentation. This is carried outthrough WebMakeup, a visual DSL programming tool for end-users to customize their own websites.WebMakeup removes, moves and adds web nodes from different web pages in order to avoid tabswitching, scrolling, the number of clicks and cutting and pasting. Moreover, Web Augmentationextensions has difficulties in finding web elements after a website updating. As a consequence, browserextensions give up working and users might stop using these extensions. This is why two differentlocators have been implemented with the aim of improving web locator robustness

    Constructing Hybrid Incremental Compilers for Cross-Module Extensibility with an Internal Build System

    Full text link
    Context: Compilation time is an important factor in the adaptability of a software project. Fast recompilation enables cheap experimentation with changes to a project, as those changes can be tested quickly. Separate and incremental compilation has been a topic of interest for a long time to facilitate fast recompilation. Inquiry: Despite the benefits of an incremental compiler, such compilers are usually not the default. This is because incrementalization requires cross-cutting, complicated, and error-prone techniques such as dependency tracking, caching, cache invalidation, and change detection. Especially in compilers for languages with cross-module definitions and integration, correctly and efficiently implementing an incremental compiler can be a challenge. Retrofitting incrementality into a compiler is even harder. We address this problem by developing a compiler design approach that reuses parts of an existing non-incremental compiler to lower the cost of building an incremental compiler. It also gives an intuition into compiling difficult-to-incrementalize language features through staging. Approach: We use the compiler design approach presented in this paper to develop an incremental compiler for the Stratego term-rewriting language. This language has a set of features that at first glance look incompatible with incremental compilation. Therefore, we treat Stratego as our critical case to demonstrate the approach on. We show how this approach decomposes the original compiler and has a solution to compile Stratego incrementally. The key idea on which we build our incremental compiler is to internally use an incremental build system to wire together the components we extract from the original compiler. Knowledge: The resulting compiler is already in use as a replacement of the original whole-program compiler. We find that the incremental build system inside the compiler is a crucial component of our approach. This allows a compiler writer to think in multiple steps of compilation, and combine that into a incremental compiler almost effortlessly. Normally, separate compilation \`a la C is facilitated by an external build system, where the programmer is responsible for managing dependencies between files. We reuse an existing sound and optimal incremental build system, and integrate its dependency tracking into the compiler. Grounding: The incremental compiler for Stratego is available as an artefact along with this article. We evaluate it on a large Stratego project to test its performance. The benchmark replays edits to the Stratego project from version control. These benchmarks are part of the artefact, packaged as a virtual machine image for easy reproducibility. Importance: Although we demonstrate our design approach on the Stratego programming language, we also describe it generally throughout this paper. Many currently used programming languages have a compiler that is much slower than necessary. Our design provides an approach to change this, by reusing an existing compiler and making it incremental within a reasonable amount of time

    Una propuesta de transformación M2M para el análisis de la fase ASM de MoWebA

    Get PDF
    En este trabajo presentamos cómo la adopción del ASM apoya la portabilidad del PIM y mantiene el modelo arquitectónico independiente de la plataforma de implementación. Para el efecto, adoptamos MoWebA, con sus reglas de transformación M2M que permiten la correcta generación de múltiples ASM partiendo del mismo PIM y múltiples PSM partiendo del mismo ASM. Así, el alcance de este trabajo es presentar las reglas de transformación PIM-ASM definidas en MoWebA para dos arquitecturas diferentes (Aplicaciones Enriquecidas de Internet y móviles) y mostrar su relevancia en pos de la reducción del problema de la portabilidad del PIM. Hemos seleccionado RIA y arquitecturas móviles debido a la relevancia y el impacto actual de ambas. Con este trabajo se logró comprobar que mediante transformaciones M2M es posible obtener modelos ASM para diferentes arquitecturas partiendo de un único PIM sin necesidad de modificarlo previamente. A pesar de que sólo fueron considerados dos modelos ASM (i.e., uno para RIA y otro para persistencia móvil), se concluyó que es completamente posible obtener modelos ASM para otras arquitecturas. La principal ventaja de obtener varios modelos ASM partiendo de un único modelo PIM es que la portabilidad del PIM se conserva de manera considerable y significativa. Es importante recordar que este enfoque (es decir, la captura de los elementos arquitectónicos en el modelo ASM), es muy diferente al de la mayoría de las metodologías actuales que, a diferencia de MoWebA, tienden a agregar los elementos específicos de la arquitectura al PIM (mediante la adaptación/extensión del mismo). Adicionalmente, este estudio muestra que mediante el uso de archivos de configuración externos es posible mejorar en gran medida el grado de automatización de las transformaciones PIM-ASM, más aún cuando es posible procesar estos archivos invocando código Java nativo.This study focuses on a model-to-model (M2M) transformation approach as a possible contribution for the portability problem, mainly at the conceptual modeling level. Therefore, we show as the adoption of Architectural Specific Model (ASM), an intermediate model between Platform Independent Model (PIM) and Platform Specific Model (PSM), supports the PIM portability and maintains the architectural model independent from the implementation platform. To exemplify the concept, we defined M2M transformation rules for MoWebA in order to automate transformations from PIM to ASM for different architectures. We show how to obtain different ASM models for two architectures (Rich Internet Applications and mobile) starting from the same PIM model with a semi-automatic process. Thus, we show the approach relevance to reduce the portability problem.Facultad de Informátic

    Reverse engineering of web applications

    Get PDF
    The MAP-i Doctoral Program of the Universities of Minho, Aveiro and PortoEven so many years after its genesis, the Internet is still growing. Not only are the users increasing, so are the number of different programming languages or frameworks for building Web applications. However, this plethora of technologies makes Web applications’ source code hard to comprehend and understand, thus deteriorating both their debugging and their maintenance costs. In this context, a number of proposals have been put forward to solve this problem. While, on one hand, there are techniques that analyze the entire source code of Web applications, the diversity of available implementation technology makes these techniques return unsatisfactory results. On the other hand, there are also techniques that dynamically (but blindly) explore the applications by running them and analyzing the results of randomly exploring them. In this case the results are better, but there is always the chance that some part of the application might be left unexplored. This thesis investigates if an hybrid approach combining static analysis and dynamic exploration of the user interface can provide better results. FREIA, a framework developed in the context of this thesis, is capable of analyzing Web applications automatically, deriving structural and behavioral interface models from them.Mesmo decorridos tantos anos desde a sua génese, a Internet continua a crescer. Este crescimento aplica-se não só ao número de utilizadores como também ao número de diferentes linguagens de programação e frameworks utilizadas para a construção de aplicações Web. No entanto, esta pletora de tecnologias leva a que o código fonte das aplicações Web seja difícil de compreender e analisar, deteriorando tanto o seu depuramento como os seus custos de manutenção. Neste contexto, foram desenvolvidas algumas propostas com intuito de resolver este problema. Não obstante, por um lado, existirem técnicas que analisam a totalidade do código fonte das aplicações Web, a diversidade das tecnologias de implementação existentes fazem com que estas técnicas gerem resultados insatisfatórios. Por outro lado, existem também técnicas que, dinamicamente (apesar de cegamente), exploram as aplicações, executando-as e analisando os resultados da sua exploração aleatória. Neste caso, os resultados são melhores, mas corremos o risco de ter deixado alguma parte da aplicação por explorar. Esta tese investiga se uma abordagem híbrida, combinando a análise estática com a exploração dinâmica da interface do utilizador consegue produzir melhores resultados. FREIA, uma framework desenvolvida no contexto desta tese é capaz de, automaticamente, analisar aplicações Web, derivando modelos estruturais e comportamentais da interface das mesmas.Esta investigação foi financiada pela Fundação para a Ciência e Tecnologia através da concessão de uma bolsa de doutoramento (SFRH/BD/71136/2010) no âmbito do Programa Operacional Potencial Humano (POPH), comparticipado pelo Fundo Social Europeu e por fundos nacionais do QREN

    Dienstekomposition in intelligenten Umgebungen basierend auf KI-Planung

    Get PDF
    In intelligenten Umgebungen wird das Zusammenspiel mehrerer Dienste benötigt, welches durch eine Dienstekomposition erzielt werden kann. KIPlanung ist eine Methode, dies umzusetzen. Im Rahmen der vorliegenden Arbeit wurde experimentell das Laufzeitverhalten von verschiedenen Planern untersucht. Daneben wurden die Möglichkeiten der Modellierung von Problemen der Dienstekomposition evaluiert, was zu einer Richtline für die verteilte Modellierung von Dienstbeschreibungen führte. Basierend auf den Erfahrungen wurde ein Composer entworfen und umgesetzt, der verschiedene Planer nutzen kann

    Электронные библиотеки: перспективные методы и технологии, электронные коллекции

    Get PDF
    Электронные библиотеки – область исследований и разработок, направленных на развитие теории и практики обработки, распространения, хранения, анализа и поиска цифровых данных различной природы. Основная цель серии конференций RCDL заключается в формировании сообщества специалистов России, ведущих исследования и разработки в области электронных библиотек и близких областях. Всероссийская научная конференция 2009 г. (RCDL'2009) является одиннадцатой конференцией по данной тематике (1999 г. – Санкт-Петербург, 2000 г. – Протвино, 2001 г. – Петрозаводск, 2002 г. – Дубна, 2003 г. – Санкт-Петербург, 2004 г. – Пущино, 2005 г. – Ярославль, 2006 г. – Суздаль, 2007 г. – Переславль-Залесский, 2008 г. – Дубна). Настоящий сборник включает тексты докладов, коротких сообщений и стендовых докладов, отобранных Программным комитетом RCDL'2009 в результате проведенного рецензирования
    corecore