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

A policy proposal on our approach to deepfake tools and responsible AI

1 Share

We are proposing an addition to our Acceptable Use Policies on Misinformation and Disinformation to address the development of synthetic and manipulated media tools for the creation of non-consensual intimate imagery (NCII) and disinformation. We have opened a pull request for public comment on the proposed change, which reads as follows:

Synthetic and Manipulated Media Tools
GitHub does not allow any projects that are designed for, encourage, promote, support, or suggest in any way the use of synthetic or manipulated media for the creation of non-consensual intimate imagery or any content that would constitute misinformation or disinformation under this policy.

Why are we proposing this change?

Artificial intelligence (AI) has rapidly progressed beyond the realm of science fiction. One of its most impressive capabilities is the ability to generate realistic looking images, audio, and video, which has substantial benefits for creativity and innovation, but also introduces new vectors of abuse. As we move into a significant year for global elections, we have observed rising concern for the use of AI-generated disinformation such as deepfake videos, images, and robocalls. Additionally, several high-profile cases of the use of deepfake technology to generate NCII have prompted a wave of state and federal legislative proposals. As a code collaboration platform that could be used to share the tools to make synthetic or manipulated media, we must take responsible measures to address these harms while protecting valuable research.

At GitHub, we have always adapted our policies to reflect new technologies and their impacts. This proposed change addresses concerns about the use of technology to create deepfakes for election disinformation, harassment, and other deceptive misuses, while enabling legitimate uses of this technology.

How are we thinking about this?

Our mission is to accelerate human progress through developer collaboration. One way we further that goal is by making a vast amount of source code available to the public. The more source code available, the more the world can learn from it, secure it, and build off it. So, whenever we make changes to our Acceptable Use Policies, we think hard about how our policies will affect the public availability of code on our platform.

There is always some educational value to sharing code, and removing code from the public removes important information that can be used to address critical challenges, understand key concepts, and enable important innovation. For example, security researchers gain enormous value from examining the source code that generates exploits, which allows them to develop tools that can detect malware and create counter measures for it, but such software also has the potential to be abused. We publicly addressed these questions a few years ago when we updated our policies on malware, where we disallow actively harmful projects but allow dual-use content that is shared for the purpose of security research. We want to take a similar approach here.

GitHub is a home for all developers. If you are developing synthetic and manipulated media tools that contribute to the world’s knowledge, we want that research and creative energy here in this community. It is important for this research to happen in the open where others can learn from it. At the same time, we cannot tolerate tools on our platform designed to create harmful non-consensual intimate imagery or whose purpose is to develop synthetic media intended to misinform and spread disinformation. Through enforcing this policy, we will differentiate between harmful misuse and legitimate dual or general use and consider proportionate responses to possible abuse.

Next steps

You can review our proposed Acceptable Use Policy addition in the site-policy repository, where we continually develop and make updates to our policies collaboratively with the community. We invite all stakeholders to comment for the 30-day period from now until May 20, and look forward to learning from and engaging with the broader community on these important topics.

The post A policy proposal on our approach to deepfake tools and responsible AI appeared first on The GitHub Blog.

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

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
1 hour 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
1 hour 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
1 hour 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
1 hour 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
1 hour ago
reply
West Grove, PA
Share this story
Delete
Next Page of Stories