Taner Şener, the creator of FFmpegKit, a commercial wrapper around FFmpeg for mobile development, announced that he's ceasing development and support. Due to complexities in maintaining FFmpeg across various architectures and operating systems, increasing maintenance burden, and inadequate revenue to justify continued development, he's chosen to shut down. Existing clients can continue using their purchased licenses, but future updates and support are discontinued. The core issue is the difficulty of sustainably supporting a complex project like FFmpegKit, even as a paid product, given the rapid pace of mobile development and the substantial engineering effort required for compatibility. While acknowledging the disappointment this will cause some users, Şener emphasizes the unsustainable nature of the project's current trajectory and thanks users for their support over the years.
The blog post explores the potential of the newly released S1 processor as a competitor to the Apple R1, particularly in the realm of ultra-low-power embedded applications. The author highlights the S1's remarkably low $6 price point and its impressive power efficiency, consuming just microwatts of power. While acknowledging the S1's limitations in terms of processing power and memory compared to the R1, the post emphasizes its suitability for specific use cases like wearables and IoT devices where cost and power consumption are paramount. The author ultimately concludes that while not a direct replacement, the S1 offers a compelling alternative for applications where the R1's capabilities are overkill and its higher cost prohibitive.
Hacker News users discussed the potential of the S1 chip as a viable competitor to the Apple R1, focusing primarily on price and functionality. Some expressed skepticism about the S1's claimed capabilities, particularly its ultra-wideband (UWB) performance, given the lower price point. Others questioned the practicality of its open-source nature for the average consumer, highlighting potential security concerns and the need for technical expertise to implement it. Several commenters were interested in the potential applications of a cheaper UWB chip, citing potential uses in precise indoor location tracking and device interaction. A few pointed out the limited information available and the need for further testing and real-world benchmarks to validate the S1's performance claims. The overall sentiment leaned towards cautious optimism, with many acknowledging the potential disruptive impact of a low-cost UWB chip but reserving judgment until more concrete evidence is available.
Alexey Starobinskiy's blog post, "Goodbye, Slopify," details his decision to discontinue Slopify, a side project offering simplified Spotify playlists. He explains that maintaining the service became too time-consuming and costly, especially with the increasing complexity of handling Spotify's API and data updates. Despite initial success and positive user feedback, the project's unsustainability, combined with Starobinskiy's desire to focus on other ventures, ultimately led to its shutdown. He expresses gratitude to his users and reflects on the valuable lessons learned throughout the project's lifespan.
Hacker News users generally agreed with the author's criticisms of Slopify, echoing frustrations with the app's user experience, bugs, and lack of responsiveness from the developers. Several commenters shared similar experiences with the app crashing, losing data, and encountering unhelpful or non-existent support. Some speculated on technical reasons for the app's poor performance, suggesting issues with Electron or database choices. Others pointed to alternative note-taking apps like Obsidian and Logseq as preferred replacements. A few users expressed disappointment with the apparent abandonment of the project, having previously enjoyed its unique features. The overall sentiment was one of resignation and a search for better alternatives.
TypeScript enums are primarily useful for representing a fixed set of named constants, especially when interfacing with external systems expecting specific string or numeric values. While convenient for basic use cases, enums have limitations regarding tree-shaking, dynamic key access, and const assertions. Alternatives like string literal unions, const objects, and regular objects offer greater flexibility, enabling features like exhaustiveness checking, computed properties, and runtime manipulation. Choosing the right approach depends on the specific requirements of the project, balancing simplicity with the need for more advanced type safety and optimization.
Hacker News users generally discussed alternatives to TypeScript enums, with many favoring union types for their flexibility and better JavaScript output. Some users pointed out specific benefits of enums, like compile-time exhaustiveness checks and the ability to iterate over values, but the consensus leaned towards unions for most use cases. One comment mentioned that enums offer better forward compatibility when adding new values, potentially preventing runtime errors. Others highlighted the awkwardness of TypeScript enums in JavaScript, particularly reverse mapping, and emphasized unions' cleaner translation. A few commenters suggested that const assertions with union types effectively capture the desirable aspects of enums. Overall, the discussion frames enums as a feature with niche benefits but ultimately recommends simpler alternatives like union types and const assertions for general usage.
Summary of Comments ( 90 )
https://news.ycombinator.com/item?id=43053499
Hacker News users discuss the author's decision to discontinue FFmpegKit, an iOS/Android FFmpeg library. Several commenters express disappointment, highlighting FFmpegKit's ease of use compared to alternatives like MobileFFmpeg. Some suggest the decision stems from the difficulty of maintaining cross-platform compatibility and the complex build process involved with FFmpeg. Others speculate about the author's motivation, including burnout or lack of financial viability. A few offer alternative solutions or express hope for a successor project. The lack of clear documentation for building FFmpeg directly is also a recurring concern, reinforcing the value of projects like FFmpegKit.
The Hacker News post titled "Saying Goodbye to FFmpegKit" has a moderate number of comments discussing the author's decision to discontinue the project and the broader implications for mobile FFmpeg integration.
Several commenters expressed appreciation for the author's work on FFmpegKit, acknowledging the difficulty of maintaining such a project and thanking him for his contributions to the community. One commenter specifically mentioned gratitude for the clear explanation provided by the author regarding the challenges faced.
A key theme in the discussion revolves around the complexities and frustrations of cross-compiling FFmpeg, particularly for mobile platforms. Commenters echoed the author's sentiments about the time-consuming nature of this process and the constant struggle to keep up with updates and changes. One commenter highlighted the constant need to chase new NDK versions and the resulting instability as a major pain point.
The licensing issues surrounding FFmpeg and its dependencies were also brought up. One commenter pointed out the potential legal risks involved in using FFmpeg in commercial projects due to the GPL license and the complexities of ensuring compliance.
Some commenters discussed alternative approaches to using FFmpeg on mobile, including MobileFFmpeg, which was mentioned as a potential option, although some skepticism was expressed regarding its long-term viability. The challenges of maintaining such projects, especially given the dynamic nature of FFmpeg and mobile platforms, were a recurring theme.
A few commenters also touched upon the broader challenges of native development on mobile and the increasing appeal of cross-platform frameworks like Flutter. While not directly related to FFmpegKit, this reflects the evolving landscape of mobile development and the factors that might influence the adoption of tools and libraries like FFmpegKit.
Finally, there's a brief discussion on the reasons behind the increasing complexity of cross-compilation. One commenter speculated that the increasing modularization of projects and the deprecation of older APIs contribute to this growing difficulty.
Overall, the comments paint a picture of a dedicated developer grappling with the inherent complexities of maintaining a crucial but complex tool for mobile development, and a community grappling with the implications of its discontinuation.