FilePizza allows for simple, direct file transfers between browsers using WebRTC. It establishes a peer-to-peer connection, eliminating the need for an intermediary server to store the files. The sender generates a unique URL that they share with the recipient. When the recipient opens the URL, a direct connection is established and the file transfer begins. Once the transfer is complete, the connection closes. This allows for fast and secure file sharing, particularly useful for larger files that might be cumbersome to transfer through traditional methods like email or cloud storage.
ACCESS.bus, developed by ACCESS Co., Ltd., was a short-lived attempt to create a low-cost, low-power alternative to USB in the late 1990s, primarily for connecting peripherals like keyboards and mice. Leveraging the already established I²C protocol, it aimed for simplicity and minimal hardware requirements. Despite backing from major Japanese manufacturers and some limited adoption in devices like digital cameras and PDAs, ACCESS.bus ultimately failed to gain significant traction against the rapidly growing dominance of USB, fading into obscurity by the early 2000s. Its failure was largely due to USB's broader industry support, superior performance for higher-bandwidth devices, and its eventual standardization and adoption across diverse platforms.
Several Hacker News commenters discussed ACCESS.bus's technical merits compared to USB. Some argued that while ACCESS.bus offered advantages like cheaper connectors and isochronous data transfer crucial for audio, its downfall was due to poorer marketing and industry support compared to the Intel-backed USB. Others pointed out that ACCESS.bus's use of a 7-bit addressing scheme limited it to 127 devices, a significant constraint compared to USB's much larger capacity. The conversation also touched upon the complexity of ACCESS.bus drivers and its apparent susceptibility to noise, alongside its prevalence in specific niches like high-end audio equipment in Japan. A few commenters reminisced about using ACCESS.bus devices and noted the lack of readily available information about the technology today, contributing to its "forgotten" status.
Without TCP or UDP, internet communication as we know it would cease to function. Applications wouldn't have standardized ways to send and receive data over IP. We'd lose reliability (guaranteed delivery, in-order packets) provided by TCP, and the speed and simplicity offered by UDP. Developers would have to implement custom protocols for each application, leading to immense complexity, incompatibility, and a much less efficient and robust internet. Essentially, we'd regress to a pre-internet state for networked applications, with ad-hoc solutions and significantly reduced interoperability.
Hacker News users discussed alternatives to TCP/UDP and the implications of not using them. Some highlighted the potential of QUIC and HTTP/3 as successors, emphasizing their improved performance and reliability features. Others explored lower-level protocols like SCTP as a possible replacement, noting its multi-streaming capabilities and potential for specific applications. A few commenters pointed out that TCP/UDP abstraction is already somewhat eroded in certain contexts like RDMA, where applications can interact more directly with the network hardware. The practicality of replacing such fundamental protocols was questioned, with some suggesting it would be a massive undertaking with limited benefits for most use cases. The discussion also touched upon the roles of the network layer and the possibility of protocols built directly on IP, acknowledging potential issues with fragmentation and reliability.
Ggwave is a small, cross-platform C library designed for transmitting data over sound using short, data-encoded tones. It focuses on simplicity and efficiency, supporting various payload formats including text, binary data, and URLs. The library provides functionalities for both sending and receiving, using a frequency-shift keying (FSK) modulation scheme. It features adjustable parameters like volume, data rate, and error correction level, allowing optimization for different environments and use-cases. Ggwave is designed to be easily integrated into other projects due to its small size and minimal dependencies, making it suitable for applications like device pairing, configuration sharing, or proximity-based data transfer.
HN commenters generally praise ggwave's simplicity and small size, finding it impressive and potentially useful for various applications like IoT device setup or offline data transfer. Some appreciated the clear documentation and examples. Several users discuss potential use cases, including sneaker authentication, sharing WiFi credentials, and transferring small files between devices. Concerns were raised about real-world robustness and susceptibility to noise, with some suggesting potential improvements like forward error correction. Comparisons were made to similar technologies, mentioning limitations of existing sonic data transfer methods. A few comments delve into technical aspects, like frequency selection and modulation techniques, with one commenter highlighting the choice of Goertzel algorithm for decoding.
This blog post explores improving type safety and reducing boilerplate when communicating between iOS apps and WatchOS complications using Swift. The author introduces two Domain Specific Languages (DSLs) built with Swift's result builders. The first DSL simplifies defining data models shared between the app and complication, automatically generating the necessary Codable conformance and WatchConnectivity transfer code. The second DSL streamlines updating complications, handling the asynchronous nature of data transfer and providing compile-time checks for supported complication families. By leveraging these DSLs, the author demonstrates a cleaner, safer, and more maintainable approach to iOS/WatchOS communication, minimizing the risk of runtime errors.
HN commenters generally praised the approach outlined in the article for its type safety and potential to reduce bugs in iOS/WatchOS communication. Some expressed concern about the verbosity of the generated code and suggested exploring alternative approaches like protobuf or gRPC, while acknowledging their added complexity. Others questioned the necessity of a DSL for this specific problem, suggesting that Swift's existing features might suffice with careful design. The potential benefits for larger teams and complex projects were also highlighted, where the enforced type safety could prevent subtle communication errors. One commenter pointed out the similarity to Apache Thrift. Several users appreciated the author's clear explanation and practical example.
Summary of Comments ( 64 )
https://news.ycombinator.com/item?id=43342361
HN commenters generally praised FilePizza's simplicity and clever use of WebRTC for direct file transfers, avoiding server-side storage. Several appreciated its retro aesthetic and noted its usefulness for quick, informal sharing, particularly when privacy or speed are paramount. Some discussed potential improvements, like indicating transfer progress more clearly and adding features like drag-and-drop. Concerns were raised about potential abuse for sharing illegal content, along with the limitations inherent in browser-based P2P, such as needing both parties online simultaneously. The ephemeral nature of the transfer was both praised for privacy and questioned for practicality in certain scenarios. A few commenters compared it favorably to similar tools like Snapdrop, highlighting its minimalist approach.
The Hacker News post discussing "Peer-to-peer file transfers in the browser" (referencing the FilePizza project on GitHub) has a moderate number of comments, generating a discussion around the practicality, security, and historical context of the tool.
Several commenters express concerns about security, questioning the safety of transferring files directly between browsers without intermediary checks or safeguards. One user highlights the potential for unknowingly receiving malicious files disguised as something innocuous, while others point out the lack of built-in virus scanning or other protective measures. The discussion also touches upon potential legal implications, particularly regarding copyrighted material.
Some commenters discuss the practical limitations of browser-based P2P transfer, such as the requirement for both parties to be online simultaneously. They contrast this with the convenience of cloud storage services or file-sharing platforms that allow asynchronous transfer. The relatively low bandwidth available to browsers compared to dedicated applications is also mentioned as a potential bottleneck, especially for larger files.
Several commenters draw comparisons to older P2P technologies, recalling tools like Napster and the early days of file-sharing. Some express nostalgia for simpler times before centralized platforms dominated, while others analyze how FilePizza's approach differs technically from these predecessors. The discussion also delves into the historical context of similar projects, with some users referencing past attempts to build browser-based file-sharing tools and the challenges they faced.
One commenter suggests potential improvements, such as implementing end-to-end encryption to enhance security and privacy. Another explores the technical aspects of WebRTC, the underlying technology powering FilePizza, explaining how it enables direct communication between browsers. There's also mention of alternative approaches to P2P file transfer, including using distributed hash tables (DHTs) for more robust and scalable solutions.
A few commenters express appreciation for the simplicity and elegance of FilePizza, praising its minimalist design and ease of use. They acknowledge its limitations but see value in its direct and straightforward approach to file sharing.
Overall, the comments reflect a mixture of skepticism, nostalgia, and technical curiosity. While some appreciate the concept and execution of FilePizza, many raise valid concerns about its security and practicality in the current landscape of file transfer solutions. The discussion offers valuable insights into the complexities of browser-based P2P, highlighting both its potential and its challenges.