I have been working with the web for a long time now. And like every other developer, I use frameworks and libraries to build most of my web applications. Over the years as web standards have emerged and solidified over the years, the web platform has become much more capable. One such standard is Web Components.
The ability to natively create components using APIs that ship in all modern browsers without needing build tooling or npm installation. I have been diving head-first into Web Components lately, thanks to my friend Rob Eisenberg (notably known for this work on Durandal, Aurelia and FAST at Microsoft).
Custom web components have revolutionised web development by enabling encapsulation, reusability, and dynamic functionality. Combined with Aurelia 2, a robust and extensible framework, the possibilities for building rich, sophisticated applications are endless. A key feature of Aurelia 2 is its extensible Attribute Mapper, which bridges HTML attributes and JavaScript properties, enabling significant customization to meet unique application requirements.
Scenario: Custom Web Components Imagine developing an application that heavily utilizes custom web components, such as a custom slider element named , a custom dropdown (), and a custom date picker (). Each component has unique attributes that need to be bound to properties on your view models.
Ah, the Neural DSP Quad Cortex, the proverbial golden child of the guitar modelling world. As we approach the two-year anniversary of my ownership, I find myself in a love-hate relationship with this awesome device.
Let’s start with the good bits. The touchscreen and rotary stomps are nothing short of a revelation. Navigating through the menus is as smooth as a hot knife through butter, and the visual building process is so intuitive it’s like playing with Lego blocks. But alas, this is where the honeymoon period ends, and the reality of living with the Quad Cortex sets in.
Aurelia 2, the latest incarnation of the Aurelia framework, is packed with improvements and new features. Among these, the revamped template compiler stands out for its potential to significantly boost your productivity. This article takes a deep dive into the template compiler, focusing on functionality that allows developers to intercept and modify the compilation process of an application’s templates.
Introduction to the Template Compiler Aurelia’s template compiler operates behind the scenes, processing templates and providing hooks and APIs that allow developers to modify their default behaviour. One critical use case for the template compiler is the ability to preprocess a template before it’s compiled. This could be for reasons such as accessibility validation, the addition of debugging attributes, or even the injection of custom attributes or elements.
In Aurelia 2 the @watch decorator allows you to react effectively to data changes in your application, from simple properties to complex expressions. Think of it as computedFrom (if you’re coming from Aurelia 1) but on steroids.
Basics of @watch The @watch decorator in Aurelia 2 lets you define a function that will execute whenever a specified expression changes. This expression can be a simple property on your view model, a custom attribute, or a more complex expression involving the view-models properties.
Aurelia 2 has some awesome templating features that make creating dynamic and replaceable components a breeze. One of these features is the au-slot tag. This magic tag, combined with expose.bind and repeaters brings about a new level of control and flexibility for developers to create customizable components.
In Aurelia 2 there are two types of slots: and – the element is only for Shadow DOM-enabled components, whereas the element is more akin to replaceable parts in Aurelia 1 (it’s what they are now in v2).
Meta has released version 2 of its open-source Llama AI model and has caught many’s attention – but not entirely for the right reasons. Coming in a broad spectrum of sizes, from the 7 billion to an impressive 70 billion parameter models, Llama 2 certainly stands out.
If you’re curious, you can experience the different models for yourself on Perplexity. You can only try 7 and 13 billion models there.
But as I’ve dug deeper into Llama 2, I’ve begun to ask myself: has Meta gone too far with safety measures?
Since its launch, OpenAI’s GPT-4 has been the talk of the town, marking yet another milestone in artificial intelligence. However, over the past few months, there’s been a rising suspicion within the AI community that GPT-4 has been “nerfed” or subtly downgraded. Despite these concerns, OpenAI maintains its stance that nothing has changed that would cause any significant impact on GPT-4’s performance or quality. But is that really the case?
In the cutthroat world of web development, trends come and go faster than a blink of an eye. Yet amidst this constant churn, there has been one relentless narrative: the supposed downfall of PHP and its offspring, WordPress. But here’s the twist—despite the years of criticism, proclamations of their death, and the rise of shinier, ‘cooler’ tools, PHP and WordPress are still standing. Not just standing but thriving.
Let’s face it. PHP has been the favourite whipping boy of developers for years. It’s been derided as messy, outdated, and everything in between. Yet, if PHP is as terrible as its critics claim, how has it survived and flourished in the competitive landscape of web development? The answer lies in its simplicity, flexibility, and resilience.
Have you ever found yourself startled by the uncanny resemblance between the smartphone in your hand and that of your mate’s, despite them being from entirely different manufacturers? You are not alone. This unsettling sameness is a symptom of a broader ailment plaguing the tech industry: homogenisation.
Like a relentless tide, homogenisation has washed over the technology landscape, reducing the once vibrant panorama of innovation to a monotonous, grey sea. This is a trend where uniqueness is relinquished in favour of uniformity, where diversity is suppressed for the sake of standardisation. But at what cost?