Language Selection

English French German Italian Portuguese Spanish

Migrating the MAAS UI from AngularJS to React

Filed under
Development
Software
Ubuntu

MAAS (metal as a service), is a Canonical product which allows for very fast server provisioning and data centre management. Around 2014, work began to build a rich UI for MAAS, primarily using the AngularJS JavaScript framework from Google. AngularJS today is in long term support (LTS) and due to reach end-of-life in 2021. This year we began the work of transitioning away from AngularJS in anticipation of this impending EOL to more contemporary tooling.

Evaluating Angular vs React

Google’s recommended upgrade path for applications built in AngularJS is to transition to the Angular framework. Despite the similarity in naming, Angular is very different from AngularJS architecturally, and the migration process is non-trivial. While components (allowing for the now ubiquitous uni-directional data architectural pattern) were later backported from Angular to AngularJS, most of MAAS UI predated this and consequently migration to Angular would require significant app-wide refactoring.

Since the inception of the MAAS UI, a number of other products had been built at Canonical using React. As we had developed significant experience using React, and tooling in the surrounding ecosystem, ultimately it made more sense to invest in transitioning the MAAS UI to React rather than Angular. This choice conferred additional benefits, such as standardising our build and testing infrastructure, and allows for component reuse across products. We also just generally enjoy working with React, and feel that the most significant developments in web UI technology are happening within the React ecosystem (hooks, concurrent mode, suspense, CRA).

Read more

More in Tux Machines

KMyMoney 5.0.8 released

The KMyMoney development team today announces the immediate availability of version 5.0.8 of its open source Personal Finance Manager. Despite even more testing we understand that some bugs may have slipped past our best efforts. If you find one of them, please forgive us, and be sure to report it, either to the mailing list or on bugs.kde.org. Besides the software itself, the KMyMoney website was refurbished and now has a more modern clean look. Thanks to all who were involved in the process. Read more

Use this Twitter client for Linux to tweet from the terminal

Last year, I brought you 19 days of new (to you) productivity tools for 2019. This year, I'm taking a different approach: building an environment that will allow you to be more productive in the new year, using tools you may or may not already be using. I love social networking and microblogging. It's quick, it's easy, and I can share my thoughts with the world really quickly. The drawback is, of course, that almost all the desktop options for non-Windows users are wrappers around the website. Twitter has a lot of clients, but what I really want is something lightweight, easy to use, and most importantly, attractive. Read more

Manjaro Linux Laptop with 10th Gen Intel Chips to Launch as “Dell XPS 13 Killer”

Manjaro Lead Project Developer Philip Müller confirmed in an interview with Forbes that a partnership with Tuxedo Computers will bring us several new Linux laptops powered by Intel’s 10th Generation Core i7 chips. In essence updated versions of the InfinityBook Pro 15 model, the Manjaro-powered laptops will boast a maximum of 64GB RAM and feature 2TB SSD storage thanks to a Samsung EVO Plus NVMe drive. Like several other Tuxedo Computers, all devices support aftermarket upgrades without losing warranty. Read more

MarsCat is a Bionic Cat Powered by Raspberry Pi 3 (Crowdfunding)

Elephant Robotics MarsCat is a robotic cat that tries to mimic the behavior of actual cats through artificial intelligence. It can have a life of its own roaming the house, and you can also interact with it as it will play with toys/teasers through its camera, and you can send voice command to ask it to walk, run, look at you, be quiet. etc… but the trick is that it may not always obey like a real cat, and its personality will evolve depending on how you interact with it. Beside being a bionic pet, MarsCat can also be used to teach/learn robotics as the company will release an open-source SDK allowing you to change the Python code running on the Raspberry Pi 3 board powering the cat, and access API’s to control the camera, microphone, touch sensors, as well as the 16 servos connected to a Microchip ATMega2560 MCU via two servo boards. Visual programming for the robot will be made possible through Scratch 3.0 program. Read more