Content Developer II at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
121452 stories
·
29 followers

Meta is adding real-time AI image generation to WhatsApp

1 Share
An image showing the WhatsApp logo in black
Illustration: The Verge

Meta is rolling out real-time AI image generation in beta for WhatsApp users in the US. As soon as you start typing a text-to-image prompt in a chat with Meta AI, you’ll see how the image changes as you add more detail about what you want to create.

In the example shared by Meta, a user types in the prompt, “Imagine a soccer game on mars.” The generated image quickly changes from a typical soccer player to showing an entire soccer field on a Martian landscape. If you have access to the beta, you can try out the feature for yourself by opening a chat with Meta AI and then start a prompt with the word “Imagine.”

GIF: Meta

Additionally, Meta says its Meta Llama 3 model can now produce “sharper and higher quality” images...

Continue reading…

Read the whole story
alvinashcraft
52 minutes ago
reply
West Grove, PA
Share this story
Delete

Building for our AI future

1 Share
A note from Google and Alphabet CEO Sundar Pichai to employees, sharing a number of structural changes to improve velocity and execution across the company.
Read the whole story
alvinashcraft
53 minutes ago
reply
West Grove, PA
Share this story
Delete

New Wasm Project Brings Web Components to Backend Languages

1 Share
Image of web design storyboard

WebAssembly basically allows non-frontend languages, such as Rust or Python, to run in a web browser. But web developer and Enhance maintainer Ryan Bethel wondered: Could you reverse that paradigm and use Wasm to run web components in Python or Rust environments?

The answer, it turns out, is yes. With a little tinkering, it is possible. Bethel and the Enhance team worked out the problems with that and on April 8 released Enhance Wasm.

“In order for the Wasm ecosystem to do what it does, Rust and Python and Java and all these other runtimes can also execute Wasm,” explained Brian LeRoux, CEO at Begin, which created Enhance, and a web developer in his own right. “So we can now go the other way. We can take browser code and run it inside of Java or Python or PHP or Rust or whatever. We’re taking the Enhance interpreter, which generates HTML from web component definitions, and we’re compiling it into Wasm.”

The implications range from solving web problems like reusing headlines across digital properties of different languages, to possibly creating a global universal design where buttons, drop downs and other common design elements could be reused as components across languages, LeRoux explained.

Web Development Goes Back to the Browser

To understand how it works, it helps to know about Enhance, an open source full stack HTML framework. And to understand why Enhance matters, it’s helpful to consider the prolific adoption of JavaScript.

Ten years ago, there were around 20 million programmers — now GitHub puts that number at 100 million developers, LeRoux noted. Most of them have not become coders by learning lower-level programming languages such as Rust, he contended, but from learning HTML, CSS and JavaScript — and particularly JavaScript, which is the most commonly used programming language for 11 years running, according to the Stack Overflow’s Developer Survey.

“Our hypothesis is [that] the new largest segment of software developers are frontend and a lot of what they’ve learned, frankly, is also about ten years out of date,” LeRoux said. “There [are] a lot of assumptions around how we need to build for the frontend these days that are invalidated by the browser.”

But browsers have only continued to improve, LeRoux noted. Despite this, a lot of the assumptions around frontend today are about transpiling JavaScript so that it can be more modern and have “nicer syntaxes for things like components and modules,” he said.

“Good news: Browsers have both components and modules built in now,” LeRoux continued. “So needing a framework for that is — actually, to coin a cloud term — undifferentiated, heavy lifting.”

Does React Create too Much Code?

JavaScript, and React specifically, bring a whole bunch of code to the party to replicate components the browser can already create. This slows down the experience for users, he said.

“Enhance’s philosophy is to get back to writing for the platform, writing lower-level code for the browser,” he said.”Now. that’s not to say that the browser’s flawless and awesome. It’s got paper cuts all over the place, and there are difficulties in using things like web components at scale, and you hear about those all over the place. This isn’t just FUD. Plenty of ink [has] been spilled of people complaining about the state of the user experience, of the developer experience, for working with the lower level browser primitives; and so Enhance’s overarching goal is to make it fun to build with web components.”

When developers author a web component, they tend to write JavaScript that extends the HTML element, he said. But, most elements on a page are not actually interactive.

“Probably 90% of elements on a given web page don’t listen for JavaScript, don’t submit forms, don’t interpret scroll events or intercepts, form submits or clicks or whatever,” he said. “So we want to server-render web components and we don’t want to necessarily run client JavaScript.”

Enhance gives developers a page full of custom elements, he said. While developers can use JavaScript, they probably don’t need it, LeRoux added.

“In fact, you probably don’t want it because your performance is going to really suffer by doing all this extra work,” he added.

The average website has one or two megabytes of JavaScript. LeRoux pointed to Enhance’s home page, which, despite rich animations, has only four or five kilobytes of JavaScript and relies instead on HTML and CSS.

“Our hypothesis is [that] the new largest segment of software developers are frontend and a lot of what they’ve learned, frankly, is also about ten years out of date.” –Brian LeRoux, web developer and CEO at Begin

This is radical news for people who were taught that React JavaScript is required to build a website. One of the challenges people have with using Enhance is that, for instance, React will allow you to pass complex objects to attributes. HTML does not allow that; attributes are only used to pass styles, not complex objects. This kind of thing often surprises a React developer, he said.

“React papered over how the browser works, and it creates an uncanny valley and this is actually really kind of awful learning for a lot of people,” he said. “If you’re a web developer, and you’ve been building sites with React for a decade, it’s a bit of a cold shower to realize you don’t know how the browser works and it can be disappointing and upsetting. So they go through the full range of emotions, where they start off angry and then they despair, then they accept and move on.”

Enhance's code

Brian LeRoux, CEO at Begin and a developer, shows code used from the Enhance website.

A lot of reasons to use JavaScript have disappeared as browsers have progressed, he added.

“We can be very productive working with the basics of the web,” LeRoux said. ”We have auto-updating, super backwards compatible web browsers now that can load a website from the ’90s just as good as it [can] load a website from today, and we don’t even have to tell it to update anymore, and we’re not leveraging that anymore as much as we should be.”

Enhance is for those who are super performance-focused and want to build sites that last, he said.

“I feel with the modern JavaScript frameworks, they break a lot and they’re very brittle and every year there’s a new big conference where they announce all the breaking changes and everyone cheers; and I’m like, well, you’re cheering for unplanned work […] to deliver a webpage,” he said. “So there’s some soul searching to be done by the industry, for sure, on that topic.”

Creating Enhance Wasm

Bethel read about Shopify’s experiment using Qwik.js, a newer JavaScript runtime that’s designed to be small. Shopify hypothesized that they could take the interpreter, compile it with Wasm, bundle it with some JavaScript, and run that JavaScript in any runtime that supported Wasm. Bethel and the Enhance team wanted to see if they could go the other way and run web components inside other languages.

The team took the Enhance interpreter, which generates HTML from web component definitions, and compiled that into Wasm, he explained. It took about ten prototypes to get a solution that worked well, he said — the secret ingredient came from a startup called Extism, a cross-language framework for building with WebAssembly.

“Extism gave us the ability to really take this code and run with it across all these different platforms quite quickly,” he said. “Wasmtime [a runtime for WebAssembly], we couldn’t get working in Java, and there was another one that we couldn’t get working on PHP unless we did native shelling, but now we have it working everywhere. The idea would be that you write one set of web components, and you can run them in any backend.”

The team introduced Enhance in an April 8 blog post, calling it a “leapfrog moment for frontend development.”

Server-side rendering is a key requirement for personalized web applications,” the team wrote. “Organizations that prioritize the stability, performance and accessibility of web standards run workloads in a huge variety of backend runtimes. Now we can build browser native web interfaces that cross the runtime chasm.”

Enhance Wasm, which is open source, launched with support for Node, Deno, Python, Ruby, PHP, Java, C#, Rust, and Go.

Enhance Wasm Use Cases

Upon release, Enhance saw developers immediately using it to repurpose headline styles across web properties. It’s particularly useful in large companies that have grown through acquisition and may have four or five different technology sections completely divorced from one another, said LeRoux. For instance, his wife works at the large tech firm LaunchDarkly, which has multiple systems from acquired startups. It’s a major headache to maintain a design system across them because they have a blog in PHP and a Go app and different technologies implemented across the different digital properties, he said.

“If you have to maintain a design system across the things you’re re-implementing for each one of these runtimes,” he said. “With Enhance Wasm, we could do all these definitions with web components, and run them in all of these properties from one set of definitions, and that’s that’s why this is compelling.”

The team has also spoken with noted designer Brad Frost, who has the idea of a global design system similar to Google’s Material or Salesforce’s Lightning, but meant to be used by everyone.

The Enhance team has also joined the W3C Web Components Working group and the Open UI group.

“The end game would be [to] get a lot of this in the browser itself,” Le Roux said. “We shouldn’t be necessarily sharing these design systems for buttons —that should just be built into the platform by now… Tabs or carousels or accordions or whatever, every website has these things. Being able to have a kind of blessed set of these components that works everywhere, ideally without client JavaScript, would be nice.”

The post New Wasm Project Brings Web Components to Backend Languages appeared first on The New Stack.

Read the whole story
alvinashcraft
53 minutes ago
reply
West Grove, PA
Share this story
Delete

NEWS: Hottest Job in Corporate America? The Executive in Charge of A.I.

1 Share

Many feared that artificial intelligence would kill jobs. But hospitals, insurance companies and others are creating roles to navigate and harness the disruptive technology.
https://www.nytimes.com/2024/01/29/technology/us-jobs-ai-chatgpt-tech.html
(Archive: https://archive.ph/FCHZ2)

Why? Because artificial intelligence has been a breakthrough catalyst for never-before advancements.  Here’s some of the many that Microsoft has been involved with in just the last year:



Read the whole story
alvinashcraft
53 minutes ago
reply
West Grove, PA
Share this story
Delete

4 Big Developments in WebAssembly

1 Share
Cars on assembly line

At Wasm I/O in Barcelona and KubeCon in Paris, several updates regarding WebAssembly (Wasm) were announced. From these, four big patterns emerged.

Programming Language Support Is Booming

Since its inception, the biggest risk to Wasm’s success has been lack of support from programming languages. Even the best cross-platform bytecode format cannot succeed if no languages compile to that format.

I’ve been keeping track of language support in WebAssembly for a long time. In particular, I track how many of the top 20 languages, according to RedMonk, are adopting WebAssembly. Python, JavaScript/TypeScript, Ruby, Rust, C/C++ and Zig have all made the Wasm move, and other languages are on their way.

At Wasm I/O, JetBrains’ Zalim Bashorov reported on the rapid progress of Kotlin. In addition to being a popular language in its own right, Kotlin represents the most progressive elements of the Java world. With Kotlin nearing WebAssembly core support and WASI 0.2 support, I expect that the popularity of the language will gain another boost as it finds a new target developer audience. More than that, it will draw the larger Java community toward WebAssembly.

Dart now ships with a WebAssembly compile target. At Wasm I/O, Kevin Moore of Google shared the exciting developments in the Dart and Flutter world. Moore did not give the impression that Dart would extend its reach beyond its browser and mobile app roots, but the performance boon that Wasm brings to that world is fantastic. Moore showed benchmarks indicating that Wasm execution can be over 50% faster than JavaScript-based execution times.

Finally, the Go team, represented by Rajiv Singh and Achille Roussel, covered the new developments in Go’s WebAssembly support. Go has ceded some of its WebAssembly support to TinyGo (and Ron Evans, head of that project, also presented at Wasm I/O). But the core Go team now has a renewed interest in supporting Wasm both in and out of the browser.

One more major feature of programming language support, though, is debuggability. Microsoft’s Natalia Venditto and Ralph Squillace demonstrated Wasm debugging inside of Visual Studio Code. Language-neutral Wasm debugging is an absolute must for modern software development, and Microsoft is hard at work on making this a reality.

Kubernetes Is the Destination for WebAssembly Deployments

Both Wasm I/O and KubeCon were abuzz about running Wasm inside of Kubernetes. Fermyon, Microsoft, SUSE, Liquid Reply and others collectively released the open source SpinKube project for running Spin-flavored Wasm Kubernetes applications. And at KubeCon, international optics company ZEISS Group showed practical use cases on the keynote stage.

SUSE announced Rancher Desktop support for WebAssembly, using its K3s Kubernetes runtime. Fermyon announced a commercially supported, ultra-dense Fermyon Platform for Kubernetes, capable of running 5,000 Wasm apps per Kubernetes node. Cloud Native Computing Foundation’s wasmCloud project reached 1.0, and supports Kubernetes integration. And NGINX Unit announced support for running Spin apps inside of its application platform.

After the KubeCon keynote on WebAssembly, EMA analyst Torsten Volk noted that Wasm had trended to the most discussed topic of the conference.

What is it about Wasm that meshes so well with Kubernetes? Wasm’s cold start times make it an excellent platform for lambda-like serverless functions. Kubernetes users have long had an interest in running such workloads inside of the cluster, but the first wave of Kubernetes serverless solutions could not match the density, performance and startup speed of Wasm.

The Component Model Gets Real

There were eight sessions on the WebAssembly Component Model at Wasm I/O this year. While last year’s Wasm I/O covered the component model in a largely theoretical way, this year we saw the impact one year of development has had on components.

I particularly enjoyed the three-session series with Fermyon’s Thorsten Hans showing polyglot programming with components, Ryan Levick explaining the wherefore and why of components, and Luke Wagner finishing the triad with a session on asynchronous calls between components (a yet-to-be-completed part of WASI).

There were other sessions focused on using components to accomplish specific tasks by InfinyOn’s Sejyo Chang, Design Systems’ Pierre Dureau, Dilla.io’s Jean Valverde, Cosmonic’s Taylor Thomas and others. Taken in aggregate, it is now clear that the component model is ready for use.

The most important component-related development, though, came from F5’s Oscar Spencer and JAF Labs’ Danny Macovei. Work on defining a component registry has been ongoing for the last three years, but at the end of Wasm I/O’s first day, Macovei and Spencer launched WA.dev, the first Wasm component registry. It’s fair to compare WA.dev to npm or even Docker Hub. Developers can upload their components to a central registry that makes discovery and management of components easy for us all.

Wasm Is Still a Pioneering Language

Perhaps the last development is an anti-trend. Language support is falling in line. Kubernetes and Wasm are hitting stride. The Wasm Component Model specification is finding its way into practical tooling. These are all signs of maturation and stability. However, Wasm has not stagnated; there’s still an element of ongoing exploration.

Nothing illustrates this better than the Wanix project, which independent developers Jeff Lindsay and Julian Del Signore introduced on the second day of Wasm I/O. Lindsay is a visionary’s visionary whose projects frequently force software developers to rethink their assumptions about how things can be done. From inventing webhooks to his prolific early contributions in the container space, Lindsay has pushed boundaries. Wanix is no exception.

Del Signore and Lindsay showed an in-browser, Plan9-inspired operating system that powered a CMS-like system capable of syncing state to GitHub. It was a fantastic example of how Wasm’s versatility, performance and cross-platform nature can combine to build a class of tool for which there currently is no name.

In a similar vein, Daniel Lopez, former head of Wasm Labs at VMware, took the audience on a fun-filled ride when he showed a variety of demos. From running Windows 95 in the browser to demonstrating AI inferencing, Lopez pointed to a variety of interesting applications of this highly versatile technology. Among the most humorous moments, Lopez showed how Docker could be run inside of Wasm, adding multiple layers of virtualization. The guiding strand of his presentation, though, is that Wasm is not to be pigeonholed.

On the last day of Wasm I/O, Ron Evans, creator of TinyGo (among other things), introduced an open source framework for Internet of Things (IoT) embedded development. Powered by Wasm, Mechanoid supports embedded development in a wide variety of programming languages, including Rust, Go and Zig. IoT is a burgeoning area for WebAssembly. While it has already gained a foothold in entertainment devices, Evans explored using it in microcontrollers, pushing Wasm down to classes of tiny devices.

Conclusion

In many ways, Wasm has shown its maturation. Almost all mainstream languages now support WebAssembly. Kubernetes is proving to be a popular environment for hosting Wasm applications, and the WebAssembly Component Model is unlocking the revolutionary possibilities of WebAssembly, including true polyglot programming.

But just as Java found use cases beyond its original intent, we also see Wasm opportunities opening up in fascinating areas like IoT as well as emerging areas like Wanix. This serves as a good reminder that maturity does not entail stagnation.

The post 4 Big Developments in WebAssembly appeared first on The New Stack.

Read the whole story
alvinashcraft
54 minutes ago
reply
West Grove, PA
Share this story
Delete

Archive NuGet Packages from GitHub

1 Share
Archive NuGet Packages from GitHub
Read the whole story
alvinashcraft
54 minutes ago
reply
West Grove, PA
Share this story
Delete
Next Page of Stories