Week of August 20, 2018
From time to time, RealEyes Media will be sharing a tech roundup of cool products, technologies, and tools we recently learned about and dig. Feel free to reach out to us with questions or share some experiences of your own!
Contact us to learn more about our product and services.
John Gainfort, Senior Developer
With the introduction to Angular 2 a couple of years ago I was introduced to the wonderful world of Reactive Programming with the RxJS library. I was immediately hooked and had to learn more. Through my research I found Cycle.js, a Functional Reactive Framework, which used another reactive library called XStream. XStream was developed to remove some of the bloat that the RxJS library had by only including what was thought to be the most necessary operators instead of the 100+ that RxJS carried by default. This however still had the same flaw RxJS had and that it is only maintained by a handful of developers and it could still include more code than a user was using in their project. Andre Staltz, the creator of Cycle.js and XStream, then created the Callbag spec.
A Callbag is simply a definition of a function that handles callbacks in a functional reactive way. The idea being that anyone can create a function that adheres to the Callbag spec and open source it as a library. This removes the burden of maintaining larger libraries like RxJS and the steep learning curve of creating an open source project for the first time. This also enables the ability to only include the desired callbags into your projects bundle through either single imports or a collection of imports. In my opinion this new idea that you are no longer dependant on oss maintainers to fix bugs or add new features will lead to a better development experience. When the need to change or add a new Callbag arises, simply create your own and release it to the world. I am not alone in this opinion and can be seen with the boom of Callbag libraries created within the 5 months since it has been introduced. I urge everyone to read up on this new spec, dive into the many operators created by Andre and the many other authors, and then create your own.
John Cohen, Developer
As time has passed, computers have gotten faster and faster. The raw hardware, as well as our internet connections, but, there has been a lot of buildup of latency. The web today is laggy, even though it is very fast. It takes a long time for systems to establish connections. With the way trends in design of web applications aregoing, it is only going to become even slower as every application you use has to talk to more and more applications to do anything.
One thing I am keeping my eye on is the rise of the QUIC (Quick UDP Internet Connections) protocol. This is a replacement for TCP which underpins the standard HTTP/HTTPS connections that most websites rely on. Google has been developing the QUIC protocol for a few years now, and it has started to see some adoption in some locations internally in Google services (and their Chrome browser), as well as from some big players like Akamai.
QUIC addresses the multiple RTT (Round-Trip-Time) of establishing connections that TCP has (SYN, SYN-ACK, ACK), which adds latency that can become a problem as more and more connections to different systems are required. Add additional RTTs of overhead for every connection established that is HTTPS.
QUIC cuts out that overhead. It also describes the encryption used, instead of needing another layer for encryption, like HTTPS needs TLS.
It may still be years before the internet at large switches to a different protocol, but I am looking forward to the relative speedups when we migrate away from TCP to something faster.
Lora Kulm, Mobile Developer
360|AnDev, a local Denver Android conference, was a couple of weeks ago, and they filled two days with great speakers and amazing content ranging from advanced Kotlin techniques to learning how to effectively work with designers. One of my favorite talks by Yun Cheng covered the process of splitting up an existing code base into an MVP architecture, and had some great tips and explanations of benefits, as well as the underlying concepts behind the architecture. It was a great conference and I had the privilege to connect with talented Android developers from all over the world. Looking forward to the next one!