title: "Fusion: Opportunistic Web Prototyping with UI Mashups" authors: Xiong Zhang and Philip J. Guo venue: ACM Symposium on User Interface Software and Technology (UIST) year: 2018 links: - Blog post tweet: Fusion lets you quickly build web apps by copying interactive functionality from existing websites abstract: > Modern web development is rife with complexity at all layers, ranging from needing to configure backend services to grappling with frontend frameworks and dependencies. To lower these development barriers, we introduce a technique that enables people to prototype opportunistically by borrowing pieces of desired functionality from across the web without needing any access to their underlying codebases, build environments, or server backends. We implemented this technique in a browser extension called Fusion, which lets users create web UI mashups by extracting components from existing unmodified webpages and hooking them together using transclusion and JavaScript glue code. We demonstrate the generality and versatility of Fusion via a case study where we used it to create seven UI mashups in domains such as programming tools, data science, web design, and collaborative work. Our mashups include replicating portions of prior HCI systems (Blueprint for in-situ code search and DS.js for in-browser data science), extending the p5.js IDE for Processing with real-time collaborative editing, and integrating Python Tutor code visualizations into static tutorials. These UI mashups each took less than 15 lines of JavaScript glue code to create with Fusion. bibtex: > @inproceedings{ZhangUIST2018, author = {Zhang, Xiong and Guo, Philip J.}, title = {Fusion: Opportunistic Web Prototyping with UI Mashups}, booktitle = {Proceedings of the 31st Annual ACM Symposium on User Interface Software and Technology}, series = {UIST '18}, year = {2018}, isbn = {978-1-4503-5948-1}, location = {Berlin, Germany}, pages = {951--962}, numpages = {12}, url = {http://doi.acm.org/10.1145/3242587.3242632}, doi = {10.1145/3242587.3242632}, acmid = {3242632}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {opportunistic programming, ui mashups, web prototyping}, }