Normal view

There are new articles available, click to refresh the page.
Today — 23 November 2024Main stream

invisCAM A Compact 2MP Camera for Low Light and Low Power Applications

23 November 2024 at 11:54
This month, Arducam introduced the invisCAM, a compact imaging solution that integrates advanced functionality and precise engineering within a small form factor. The camera is designed to address the challenges of achieving high-quality imaging, functional versatility, and cost efficiency in a portable USB device. The invisCAM features a Sony STARVIS 2MP image sensor with a […]

Coin-sized ESP32-H2-WROOM-07 RISC-V Module with BLE, Thread, and Zigbee Support for $2.13

23 November 2024 at 11:14
The ESP32-H2-WROOM-07 is a compact module featuring a RISC-V single-core 32-bit microprocessor and support for Bluetooth Low Energy. It can be configured with up to 4 MB of flash memory and is designed for applications such as smart home systems, industrial automation, and consumer electronics. Measuring just 8.5 × 12.7 × 2.6 mm, the ESP32-H2-WROOM-07 […]

Waveshare RoArm-M2 ESP32 robotic arms offer four degrees of freedom, various servo options

23 November 2024 at 10:23
RoArm M2 Series Robotic Arm

Waveshare has recently launched the RoArm-M2-S and RoArm-M2-Pro ESP32 robotic arms with four degrees of freedom, or 4-DOF for short. The main difference is that the RoArm-M2-S is equipped with standard servos, while the RoArm-M2-Pro features all-metal ST3235 bus servos, adding more durability and performance. Designed for educational and robotics applications, the 4-DOF RoArm-M2 is sturdy yet lightweight, built using carbon fiber and aluminum alloy. It can handle payloads up to 0.5kg and has a workspace diameter of 1 meter. The arm offers high precision with a 12-bit magnetic encoder and dual-drive technology for improved torque and stability. On top of that, it features a 12-bit magnetic encoder and dual-drive technology for improved torque and stability. Other features include a 360° omnidirectional base and support for both wireless (WiFi, ESP-NOW) and wired (USB) control. These features make this device suitable for various applications including industrial automation, education, research, and DIY robotics projects. Waveshare [...]

The post Waveshare RoArm-M2 ESP32 robotic arms offer four degrees of freedom, various servo options appeared first on CNX Software - Embedded Systems News.

FreeBSD 14.2-RC1 Available

23 November 2024 at 07:00
The first RC build for the FreeBSD 14.2 release cycle is now available. ISO images for the amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, aarch64, and riscv64 architectures are FreeBSD mirror sites.

This Week in Matrix 2024-11-22

By: Thib
22 November 2024 at 07:00

Matrix Live

Today's Matrix Live: https://youtube.com/watch?v=O_bChwDHE3U

Dept of Status of Matrix 🌡️

Thib (m.org) announces

We want to know everything about the bugs you squashed, the features you developed, and the docs you wrote. And even better, not only do we want to know about it, we want you to tell the Matrix community about it during our FOSDEM Fringe event, or even to tell the world about it in our FOSDEM Devroom!

Our Call for Proposals is still open for the DevRoom until December 1, so don't miss your chance to advertise your project!

But we're not limiting our presence to a DevRoom, we will also organize a fringe event before FOSDEM and have a booth during the wole event. Want to grab a limited edition T-shirt? Now's your chance to sign-up and help us staff the booth. All details are in our blog post.

Dept of Spec 📜

TravisR reports

Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://spec.matrix.org/proposals.

MSC Status

New MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Accepted MSCs:

  • No MSCs were accepted this week.

Closed MSCs:

  • No MSCs were closed/rejected this week.

Spec Updates

The SCT continues to work towards the next spec release, expected in mid-December with Account Suspension, backwards compatibility for captions, and likely some further work towards Matrix 2.0 in the form of crypto MSCs.

Folks are encouraged to raise their MSCs for review in the SCT Office as soon as they feel it's ready for broad review. This helps ensure there are minimal process delays, and feedback can be incorporated into the feature design early. This is especially important for Matrix 2.0 MSCs, which the SCT hopes to be able to release in the new year.

In other news, the SCT had its last workshop this week to set expectations for how the team works. Next steps here are to compile conclusions into a document, check everything over, then find a place to ship that document for everyone to read. This effort has been important to help ensure the SCT is most effective at what it does, and identifying areas where the Foundation more broadly may be able to help. Watch this space for updates.

Dept of Servers 🏢

Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element

Olivier 'reivilibre' says

Hello! Synapse 1.120.0rc1 was cut this week, with Synapse 1.120.0 intended to be released next week. A noteworthy change in this version of Synapse is that authenticated media will now be enforced by default. For people running homeservers that want to gracefully support older clients and older federated homeservers (which still make unauthenticated requests for media), you might still want to turn this enforcement off; see the upgrade notes for details.

With that said, for homeservers in the open federation, it's worth noting that matrix.org has been running like this since September, so by now it's very likely that most clients and homeservers already support authenticated media and there'd be no need to turn it off. This option will likely vanish in the future, but we're not yet sure when. Track this issue if you're interested.

Dept of Clients 📱

Tammy

Benedict says

Tammy 1.0.4 has been released with a bunch of improvements. We added a nice wizard for account setup after initial login. We also introduced sharing media into Tammy on Android. Web does support emojis and file upload/download now and therefore is on its way out of the Beta. Of course, we have also fixed a few bugs.

kazv (website)

kazv is a convergent matrix client and instant messaging app.

tusooa🏔️ says

kazv 0.6.0 is released. It depends on libkazv v0.8.0 which has fixed a security vulnerability. It also comes with many new features such as better support for stickers, reactions, and media file handling.

Element X Android (website)

Android Matrix messenger application using the Matrix Rust SDK and Jetpack Compose.

benoit reports

  • Element X Android v0.7.4 is on the PlayStore (beta channel). Please see the changelog here: https://github.com/element-hq/element-x-android/releases/tag/v0.7.4. Will be pushed to prod on Monday.
  • Working on media caption at the moment: users will be also able to write a caption for files and audio files. They will be rendered in the timeline. Also it will be possible to add a caption after the media has been sent. Removing a caption or editing a caption will be possible too
  • Making progress on room knocks AKA ask to join. There is still work to do on the SDK and the application is getting the latest polish.
  • We are also fixing bugs and recent regressions among our 170k+ SLOC.
  • Last but not least, the send button has been refreshed and is now very glossy!

Extera

OfficialDakari announces

Today, new development version of Extera is out - 1.0-DEV-D5XQW.

Here is what changed since last TWIM post:

  • New versioning scheme. We rolled back to 1.0 and started marking development versions with date in 36-richered number system. A first stable release is soon.
  • Changed reaction colors. Not very heavy change, but improves usability a lot.
  • Removed backdrop blurs in dialogs. They were unnecessary and didn't fit in the UI.
  • Added more animations. Opening emojiboard now has an animation for it.
  • Remade polls. Polls were Extera's first feature, which I added when I didn't know React as good as now. Fixed displaying vote counts, ending polls etc.
  • Added sending polls. Back in summer, when polls were only added, you could only receive & vote in polls. Now Extera can also send polls.
  • Also, we made a few changes to our website and opened it's source code.

The latest version is already live at app.extera.xyz. Source code is always available here.

Dept of Widgets 🧩

Matrix Widget Toolkit (website)

Michael Weimann (n.io) says

Matrix Widget Toolkit is a framework for creating Matrix widgets.

We have released new versions of our matrix-widget-toolkit packages.

Highlights

🎨 Better Element Web design integration: Element Web is currently the most commonly used hosting client for widgets. At the moment, Element Web is moving the designs towards the Element Compound design system. In this toolkit release, the primary (green) and error (red) colours and the avatar colours have been matched with the Compound design system.

🚀 To the future: The popular lodash library seems to be unmaintained. Also nowadays many functions are built in to the ECMAScript standard or Browser APIs. We therefore decided to remove the lodash dependency. Most uses are replaced by native functions. What could not be replaced is now provided by a utils module in each package. Last but not least, one less dependency.

All the packages can be found in the releases section of our repo.

You can see a demo of what the toolkit can do using our demo widget.

If you have any questions or feedback, please reach out to us using our public room #nordeck:matrix.org.

Dept of VoIP 🤙

Element Call (website)

Native Decentralised End-to-end Encrypted Group Calls in Matrix, as a standalone web app

Robin says

Hello TWIM!

You may be wondering: "Why hasn't there been a post from the Element VoIP Team in so long?" A fair question! We've been asking ourselves the same, especially since so much has happened. Over the past month, we've been deep down the rabbit hole, working hard to solidify the Element Call experience.

Our mission? To banish issues like gray tiles, missing participants, and lost media—for good! (Well, at least issues we can identify and control…)

This behind-the-scenes work wasn't exactly flashy, but it was crucial. Here's what we've been tackling to make Element Call more stable than ever:

  • Encryption key issues: Fixes to ensure keys don't get lost between the client and widget.
  • State resolution complexities: Matrix state resolution can lead to scenarios EC struggles with. While Simplified Sliding Sync helps here, getting everything to work as reliably as we need for EC took some work.
  • Edge case fixes: Numerous small changes in widget communication and the SPA (Single Page Application) to iron out tricky corner cases.

Looking forward, these foundational improvements open doors for bigger steps—like making EC more secure and fully leveraging its Matrix backing.

Other key updates:

  • We've improved mobile ringing, though there's still work ahead making DM calls behave like a telephone call.
  • Load times for the widget and app have been significantly improved, making calls snappier to start.
  • Tiles now stay in a stable order to make for a more focused call experience.

With all that groundwork laid, let's get to the fun stuff !

New Features🎉

Our latest release introduces several usability enhancements and fun additions that make calling over Matrix even better:

  • Fast camera switching: on mobile. Easily switch cameras with a dedicated button.
  • Emoji reactions! 👏🤘🐱🐶 With playful sound effects that keep the mood lighthearted.
  • Raise hand feature: Now you can raise your hand during calls! (Includes an experimental timer—feedback welcome on whether it's helpful or confusing.)

Exciting Milestones

Even on stable Element Web, you can now start an Element Call-based call—a huge step forward for the quest to ship MatrixRTC!

Not all of our recent stability improvements have made it into this release (some depend on Synapse, JS-SDK, or other updates), but we're taking care to roll them out thoughtfully to ensure a smooth experience.

Now's a great time to give Matrix calling a try! Jump into Element X or even stable Element Web and start a call. We can't wait to hear your thoughts.

Happy calling! 🚀

Dept of SDKs and Frameworks 🧰

matrix-rust-sdk (website)

Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM

bnjbvr says

@this-week-in:matrix.org

We have released a new version of the Matrix Rust SDK this week: you can now update it to version 0.8.0!

This is the first version we're releasing using our brand new release process, so changelogs are still a bit rough, but this new release process should also help with hopefully getting more frequent releases (with fewer large breaking changes, better changelogs over time, etc.).

Notable new changes include:

  • There are new APIs in town to observe the latest event of a single type: Client::observe_events and Client::observe_room_events (docs).
  • The media cache has been moved over to a new store, called the EventCacheStore; it may be configured when creating a new client using StoreConfig::event_cache_store.
  • The send queue now has the ability to upload medias, and reflect ongoing uploads as local echoes.
  • The implementation of invisible crypto is moving along nicely, with new methods to pin a UserIdentity, listen to identity changes etc.

Full changelog for the main crate. Note we now have changelog files for every other crate we do publish.

libkazv (website)

libkazv is a matrix client sdk built upon lager and the value-oriented design it enables.

tusooa🏔️ announces

libkazv 0.8.0 is released. It uses the vodozemac crypto library instead of the deprecated olm, and fixes a security vulnerability that might have allowed the replacement of the session key of a megolm session. There are also several small enhancements.

Elm SDK (website)

A more consistent alternative to the matrix-js-sdk, written in Elm.

Bram says

Elm SDK beta 3.6.1

The Elm SDK has a patch update, fixing trailing slashes at the end of the URL.

Most of the work for the Elm SDK is fixing bugs where the spec doesn't match the ecosystem. Synapse doesn't sanitize user IDs over federation, for example, which leads to unspecified JSON results. This is currently in the testing phase, but this refactor means a second patch update might appear soon.

  • ❌️ Downside: This means more work for me.
  • ✅️ Upside: The Elm SDK will be able to count numbers and determine the scope of these problems.

Once the Elm SDK has appropriately adapted to some problems like these, I will report my findings, hopefully offering the Spec Core Team some statistics that can help them make decisions when making breaking migration changes. For now, however, this week's patch update exclusively fixes a bug! 🐛

Dept of Services 🚀

Synapse Admin

Aine [don't DM] reports

A while back, we at etke.cc announced our Synapse-Admin fork, and this week, we're excited to share more new features and QoL changes!

Add "Assign Admin" button

Using the Make Room Admin API endpoint, you can now assign room admins to Matrix rooms. This feature works only if there is at least one local member (preferably with a room admin power level) in that room.

Add preferred color themes to login page and footer

This update brings something small but special: a proper dark theme across the whole Synapse Admin app 🎉.

Previously, the Login page had a light background even when your browser was configured to prefer dark mode. The same was true for the footer, which was overwhelmingly bright.

Fellow dark mode enjoyers, the inconvenience is no more—both the Login page and footer now use your preferred theme colors!

Documentation for configuration

Not a new feature, but one that may help a lot—we hope you find this useful! We've added documentation for all config options and example configs for reverse proxies. The latter is a bit lacking, containing examples only for basic cases with Nginx and Traefik, so PRs are greatly appreciated.

Source code, admin.etke.cc (CDN version), and don't forget to say hi in the #synapse-admin:etke.cc

Dept of Bots 🤖

I Don't Have Spotify Maubot

HarHarLinks announces

Do people sometimes share links to music with you on Matrix? They do for me. Often, people use Spotify as their music streaming service, but I don't have Spotify.

Last week I came across sjdonado's I don't have Spotify webapp which conveniently exposes a REST API that allows you to easily query things, and is selfhostable open source software.

So easy enough I spent yesterday afternoon tinkering a quick maubot plugin that does the job for you: https://github.com/HarHarLinks/maubot-idonthavespotify.

Here is what it looks like in action:

Baibot

Slavi says

baibot and its underlying framework library (mxlink) have been adapted to the new v0.8.0 release of the Rust-based matrix-sdk.

This brings Matrix authenticated media support, so:

  • baibot can now be used on existing homeservers which already enable authenticated media (like matrix.org)
  • there's one less blocker preventing admins from enabling authenticated media on their homeserver

Dept of Events and Talks 🗣️

Matrix Retreat 2025: Workation in Thailand

Yan says

Following the success of the Matrix Retreat in Austria 2024, we are organizing the next iteration: a workation for those passionate about Matrix, messengers, and distributed technology.

Details:

  • When: Between FOSDEM (February 1–2, 2025) and FOSSASIA (March 13–15, 2025) joining partially is possible
  • Where: Koh Phangan, Thailand

This is an excellent opportunity to collaborate with like-minded professionals in a productive yet relaxed environment.

How to Get Involved:

  1. Join our videocall: on 24th November 6pm CEST
  2. Connect via Matrix for updates and coordination:

We look forward to collaborating with you on this exciting initiative.

Dept of Interesting Projects 🛰️

matrix-sdk-redis

andybalaam says

matrix-sdk-redis is a new Rust crypto store implementation, allowing you to use matrix-rust-sdk and store your Matrix crypto information in a Redis store, avoiding the need for a filesystem. It's highly experimental and has some significant known gaps, but it seems to work. Version 0.1.1 is out now. Find out more at https://codeberg.org/andybalaam/matrix-sdk-redis

Element Web Guest Module (website)

Michael Weimann (n.io) reports

The Element Guest Module in conjunction with the Synapse Guest Module allows visitors to your homeserver to automatically register a temporary account with some capabilities that go beyond standard Matrix guest users.

Element Web 1.11.84 now includes the matrix-react-sdk as part of the Element Web repo (PR). We have released a new version of the guest module adapting to the change, that works with Element Web 1.11.84 (or later).

All the packages of our Element Web modules can be found in the releases section of our repo.

If you have any questions or feedback, please reach out to us using our public room #nordeck:matrix.org.

TARDIS

Matthew announces

I wrote a new experimental DAG visualisation layout algorithm for TARDIS, loosely based on git-style 'tramline' branching visualisations. It can handle massively complex DAG structures, useful when debugging exotic state resolution problems or fork-proliferation problems.

So for instance, the layout of an Element Call-related DAG explosion that TARDIS entirely failed to visualise last week, which looked like this:

Now looks like this

Matrix in the News 📰

Thib (m.org) announces

Computer Weekly covered the story of ePost, a service from the Swiss Post based on Matrix targeting a million users

Matrix Federation Stats

Aine [don't DM] reports

collected by MatrixRooms.info - an MRS instance by etke.cc

As of today, 10384 Matrix federateable servers have been discovered by matrixrooms.info, 3171 (30.5%) of them are publishing their rooms directory over federation. The published directories contain 21165 rooms.

Stats timeline is available on MatrixRooms.info/stats

How to add your server | How to remove your server

Dept of Ping

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.

#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay183
2girlboss.ceo214
3puppygock.gay270.5
4ncat.cafe307
5uwu.zemos.net318
6rory.gay321.5
7transgender.ing329
8constellatory.net349
9ipv6.girlcock.systems353
10kif.rocks360

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

To learn more about how to prepare an entry for TWIM check out the TWIM guide.

AMD Linux Graphics Driver Now Allows Display Support With Modern GPUs On LoongArch

23 November 2024 at 00:11
Following the Linux 6.13 DRM feature pull this week that brought many new open-source kernel graphics driver features, it's now time to further stabilize that new feature code with fixes. Sent out today were a batch of fixes for the AMDGPU/AMDKFD kernel driver code targeting the early Linux 6.13 state. In addition to fixes though is also allowing the AMDGPU Display Core "DC" code to build properly on LoongArch hardware for allowing recent AMD Radeon GPUs to work on these Chinese systems...

Docker Desktop 4.36: New Enterprise Administration Features, WSL 2, and ECI Enhancements

22 November 2024 at 23:38

Key features of the Docker Desktop 4.36 release include: 

Docker Desktop 4.36 introduces powerful updates to simplify enterprise administration and enhance security. This release features streamlined macOS sign-in enforcement via configuration profiles, enabling IT administrators to deploy tamper-proof policies at scale, alongside a new PKG installer for efficient, consistent deployments. Enhancements like the unified WSL 2 mono distribution improve startup speeds and workflows, while updates to Enhanced Container Isolation (ECI) and Desktop Settings Management allow for greater flexibility and centralized policy enforcement. These innovations empower organizations to maintain compliance, boost productivity, and streamline Docker Desktop management across diverse enterprise environments.

2400x1260 4.36 rectangle docker desktop release

Sign-in enforcement: Streamlined alternative for organizations for macOS 

Recognizing the need for streamlined and secure ways to enforce sign-in protocols, Docker is introducing a new sign-in enforcement mechanism for macOS configuration profiles. This Early Access update delivers significant business benefits by enabling IT administrators to enforce sign-in policies quickly, ensuring compliance and maximizing the value of Docker subscriptions.

Key benefits

  • Fast deployment and rollout: Configuration profiles can be rapidly deployed across a fleet of devices using Mobile Device Management (MDM) solutions, making it easy for IT admins to enforce sign-in requirements and other policies without manual intervention.
  • Tamper-proof enforcement: Configuration profiles ensure that enforced policies, such as sign-in requirements, cannot be bypassed or disabled by users, providing a secure and reliable way to manage access to Docker Desktop (Figure 1).
  • Support for multiple organizations: More than one organization can now be defined in the allowedOrgs field, offering flexibility for users who need access to Docker Desktop under multiple organizational accounts (Figure 2).

How it works

macOS configuration profiles are XML files that contain specific settings to control and manage macOS device behavior. These profiles allow IT administrators to:

  • Restrict access to Docker Desktop unless the user is authenticated.
  • Prevent users from disabling or bypassing sign-in enforcement.

By distributing these profiles through MDM solutions, IT admins can manage large device fleets efficiently and consistently enforce organizational policies.

Screenshot of Enforced Sign-in Configuration Profile showing Description, Signed, Installed, Settings, Details, and Custom Settings.
Figure 1: macOS configuration profile in use.
Screenshot of macOS configuration profile showing "allowedOrgs"
Figure 2: macOS configuration profile in use with multiple allowedOrgs visible.

Configuration profiles, along with the Windows Registry key, are the latest examples of how Docker helps streamline administration and management. 

Enforce sign-in for multiple organizations

Docker now supports enforcing sign-in for more than one organization at a time, providing greater flexibility for users working across multiple teams or enterprises. The allowedOrgs field now accepts multiple strings, enabling IT admins to define more than one organization via any supported configuration method, including:

  • registry.json
  • Windows Registry key
  • macOS plist
  • macOS configuration profile

This enhancement makes it easier to enforce login policies across diverse organizational setups, streamlining access management while maintaining security (Figure 3).

Learn more about the various sign-in enforcement methods.

Screenshot of Sign-in required box, saying "Sign-in to continue using Docker Desktop. You must be a member of one of the following organizations" with Docker-internal and Docker listed.
Figure 3: Docker Desktop when sign-in is enforced across multiple organizations. The blue highlights indicate the allowed company domains.

Deploy Docker Desktop for macOS in bulk with the PKG installer

Managing large-scale Docker Desktop deployments on macOS just got easier with the new PKG installer. Designed for enterprises and IT admins, the PKG installer offers significant advantages over the traditional DMG installer, streamlining the deployment process and enhancing security.

  • Ease of use: Automate installations and reduce manual steps, minimizing user error and IT support requests.
  • Consistency: Deliver a professional and predictable installation experience that meets enterprise standards.
  • Streamlined deployment: Simplify software rollouts for macOS devices, saving time and resources during bulk installations.
  • Enhanced security: Benefit from improved security measures that reduce the risk of tampering and ensure compliance with enterprise policies.

You can download the PKG installer via Admin Console > Security and Access > Deploy Docker Desktop > macOS. Options for both Intel and Arm architectures are also available for macOS and Windows, ensuring compatibility across devices.

Start deploying Docker Desktop more efficiently and securely today via the Admin Console (Figure 4). 

Screenshot of Admin console showing option to download PKG installer.
Figure 4: Admin Console with PKG installer download options.

Desktop Settings Management (Early Access) 

Managing Docker Desktop settings at scale is now easier than ever with the new Desktop Settings Management, available in Early Access for Docker Business customers. Admins can centrally deploy and enforce settings policies for Docker Desktop directly from the cloud via the Admin Console, ensuring consistency and efficiency across their organization.

Here’s what’s available now:

  • Admin Console policies: Configure and enforce default Docker Desktop settings from the Admin Console.
  • Quick import: Import existing configurations from an admin-settings.json file for seamless migration.
  • Export and share: Export policies as JSON files to easily share with security and compliance teams.
  • Targeted testing: Roll out policies to a smaller group of users for testing before deploying globally.

What’s next?

Although the Desktop Settings Management feature is in Early Access, we’re actively building additional functionality to enhance it, such as compliance reporting and automated policy enforcement capabilities. Stay tuned for more!

This is just the beginning of a powerful new way to simplify Docker Desktop management and ensure organizational compliance. Try it out now and help shape the future of settings management: Admin Console > Security and Access > Desktop Settings Management (Figure 5).

Screenshot of Admin console showing Desktop Setting Management page, which includes Global policy, Settings policy, User policies, and more.
Figure 5: Admin console with Desktop Settings Management.

Streamlining data workflow with WSL 2 mono distribution 

Simplify the Windows Subsystem for Linux (WSL 2) setup by eliminating the need to maintain two separate Docker Desktop WSL distributions. This update streamlines the WSL 2 configuration by consolidating the previously required dual Docker Desktop WSL distributions into a single distribution, now available on both macOS and Windows operating systems.

The simplification of Docker Desktop’s WSL 2 setup is designed to make the codebase easier to understand and maintain. This enhances the ability to handle failures more effectively and increases the startup speed of Docker Desktop on WSL 2, allowing users to begin their work more quickly.

The value of streamlining data workflows and relocating data to a different drive on macOS and Windows with the WSL 2 backend in Docker Desktop encompasses these key areas:

  • Improved performance: By separating data and system files, I/O contention between system operations and data operations is reduced, leading to faster access and processing.
  • Enhanced storage management: Separating data from the main system drives allows for more efficient use of space.
  • Increased flexibility with cross-platform compatibility: Ensuring consistent data workflows across different operating systems (macOS and Windows), especially when using Docker Desktop with WSL 2.
  • Enhanced Docker performance: Docker performs better when processing data on a drive optimized for such tasks, reducing latency and improving container performance.

By implementing these practices, organizations can achieve more efficient, flexible, and high-performing data workflows, leveraging Docker Desktop’s capabilities on both macOS and Windows platforms.

Enhanced Container Isolation (ECI) improvements 

  • Allow any container to mount the Docker socket: Admins can now configure permissions to allow all containers to mount the Docker socket by adding * or *:* to the ECI Docker socket mount permission image list. This simplifies scenarios where broad access is required while maintaining security configuration through centralized control. Learn more in the advanced configuration documentation.
  • Improved support for derived image permissions: The Docker socket mount permissions for derived images feature now supports wildcard tags (e.g., alpine:*), enabling admins to grant permissions for all versions of an image. Previously, specific tags like alpine:latest had to be listed, which was restrictive and required ongoing maintenance. Learn more about managing derived image permissions.

These enhancements reduce administrative overhead while maintaining a high level of security and control, making it easier to manage complex environments.

Upgrade now

The Docker Desktop 4.36 release introduces a suite of features designed to simplify enterprise administration, improve security, and enhance operational efficiency. From enabling centralized policy enforcement with Desktop Settings Management to streamlining deployments with the macOS PKG installer, Docker continues to empower IT administrators with the tools they need to manage Docker Desktop at scale.

The improvements in Enhanced Container Isolation (ECI) and WSL 2 workflows further demonstrate Docker’s commitment to innovation, providing solutions that optimize performance, reduce complexity, and ensure compliance across diverse enterprise environments.  

As businesses adopt increasingly complex development ecosystems, these updates highlight Docker’s focus on meeting the unique needs of enterprise teams, helping them stay agile, secure, and productive. Whether you’re managing access for multiple organizations, deploying tools across platforms, or leveraging enhanced image permissions, Docker Desktop 4.36 sets a new standard for enterprise administration.  

Start exploring these powerful new features today and unlock the full potential of Docker Desktop for your organization.

Learn more

Yesterday — 22 November 2024Main stream

Doing more with less: LLM quantization (part 2)

22 November 2024 at 07:00
What if you could get similar results from your large language model (LLM) with 75% less GPU memory? In my previous article,, we discussed the benefits of smaller LLMs and some of the techniques for shrinking them. In this article, we’ll put this to test by comparing the results of the smaller and larger versions of the same LLM.As you’ll recall, quantization is one of the techniques for reducing the size of a LLM. Quantization achieves this by representing the LLM parameters (e.g. weights) in lower precision formats: from 32-bit floating point (FP32) to 8-bit integer (INT8) or INT4. The

The Official Raspberry Pi Camera Module Guide out now: build amazing vision-based projects

22 November 2024 at 18:02

We are enormously proud to reveal The Official Raspberry Pi Camera Module Guide (2nd edition), which is out now. David Plowman, a Raspberry Pi engineer specialising in camera software, algorithms, and image-processing hardware, authored this official guide.

The Official Raspberry Pi Camera Guide 2nd Edition cover

This detailed book walks you through all the different types of Camera Module hardware, including Raspberry Pi Camera Module 3, High Quality Camera, Global Shutter Camera, and older models; discover how to attach them to Raspberry Pi and integrate vision technology with your projects. This edition also covers new code libraries, including the latest PiCamera2 Python library and rpicam command-line applications, as well as integration with the new Raspberry Pi AI Kit.

Camera Guide - Getting Started page preview

Save time with our starter guide

Our starter guide has clear diagrams explaining how to connect various Camera Modules to the new Raspberry Pi boards. It also explains how to fit custom lenses to HQ and GS Camera Modules using C-CS adaptors. Everything is outlined in step-by-step tutorials with diagrams and photographs, making it quick and easy to get your camera up and running.

Camera Guide - connecting Raspberry Pi pages

Test your camera properly

You’ll discover how to connect your camera to a Raspberry Pi and test it using the new rpicam command-line applications — these replace the older libcam applications. The guide also covers the new PiCamera2 Python library, for integrating Camera Module technology with your software.

Camera Guide - Raw images and Camera Tuning pages

Get more from your images

Discover detailed information about how Camera Module works, and how to get the most from your images. You’ll learn how to use RAW formats and tuning files, HDR modes, and preview windows; custom resolutions, encoders, and file formats; target exposure and autofocus; shutter speed, and gain, enabling you to get the very best out of your imaging hardware.

Camera Guide - Get started with Raspberry Pi AI kit pages

Build smarter projects with AI Kit integration

A new chapter covers the integration of the AI Kit with Raspberry Pi Camera Modules to create smart imaging applications. This adds neural processing to your projects, enabling fast inference of objects captured by the camera.

Camera Guide - Time-lapse capture pages

Boost your skills with pre-built projects

The Official Raspberry Pi Camera Module Guide is packed with projects. Take selfies and stop-motion videos, experiment with high-speed and time-lapse photography, set up a security camera and smart door, build a bird box and wildlife camera trap, take your camera underwater, and much more! All of the code is tested and updated for the latest Raspberry Pi OS, and is available on GitHub for inspection.

Click here to pick up your copy of The Official Raspberry Pi Camera Module Guide (2nd edition).

The post The Official Raspberry Pi Camera Module Guide out now: build amazing vision-based projects appeared first on Raspberry Pi.

Arm Tech Symposia: AI Technology Transformation Requires Unprecedented Ecosystem Collaborations

22 November 2024 at 15:57

The Arm Tech Symposia 2024 events in China, Japan, South Korea and Taiwan were some of the biggest and best attended events ever held by Arm in Asia. The size of all the events was matched by the enormity of the occasion that is being faced by the technology industry.

As Chris Bergey, SVP and GM of Arm’s Client Line of Business, said in the Tech Symposia keynote presentation in Taiwan: “This is the most important moment in the history of technology.”  

There are significant opportunities for AI to transform billions of lives around the world, but only if the ecosystem works together like never before.

Chris Bergey, SVP and GM of the Arm Client Line of Business, welcomes attendees to Arm Tech Symposia 2024

A re-thinking of silicon

At the heart of these ecosystem collaborations is a broad re-think of how the industry approaches the development and deployment of technologies. This is particularly applicable to the semiconductor industry, with silicon no longer a series of unrelated components but instead becoming “the new motherboard” to meet the demands of AI.

This means multiple components co-existing within the same package, providing better latency, increased bandwidth and more power efficiency.

Silicon technologies are already transforming the everyday lives of people worldwide, enabling innovative AI features on smartphones, like the real-time translation of languages and text summarization, to name a few.

As James McNiven, VP of Product Management for Arm’s Client Line of Business, stated in the South Korea Tech Symposia keynote: “AI is about making our future better. The potential impact of AI is transformative.”

The importance of the Arm Compute Platform

The Arm Compute Platform is playing a significant role in the growth of AI. This combines hardware and for best-in-class technology solutions for a wide range of markets, whether that’s AI smartphones, software-defined vehicles or data centers.

This is supported by the world’s largest software ecosystem, with more than 20 million software developers writing software for Arm, on Arm. In fact, all the Tech Symposia keynotes made the following statement: “We know that hardware is nothing without software.”

Dipti Vachani, SVP and GM of Arm’s Automotive Line of Business, outlines the software benefits of the Arm Compute Platform

How software “drives the technology flywheel”

Software has always been an integral part of the Arm Compute Platform, with Arm delivering the ideal platform for developers to “make their dreams (applications) a reality” through three key ways.

Firstly, Arm’s consistent compute platform touches 100 percent of the world’s connected population. This means developers can “write once and deploy everywhere.”

The foundation of the platform is the Arm architecture and its continuous evolution through the regular introduction of new features and instruction-sets that accelerate key workloads to benefit developers and the end-user.

SVE2 is one feature that is present across AI-enabled flagship smartphones built on the new MediaTek Dimensity 9400 chipset. It incorporates vector instructions to improve video and image processing capabilities, leading to better quality photos and longer-lasting video.

The Arm investment into AI architectural features at Arm Tech Symposia Shanghai

Secondly, through having acceleration capabilities to deliver optimized performance for developers’ applications. This is not just about high-end accelerator chips, but having access to AI-enabled software to unlock performance.

One example of this is Arm Kleidi, which seamlessly integrates with leading frameworks to ensure AI workloads run best on the Arm CPU. Developers can then unlock this accelerated performance with no additional work required.

At the Arm Tech Symposia Japan event, Dipti Vachani, SVP and GM of Arm’s Automotive Line of Business, said: “We are committed to abstracting away the hardware from the developer, so they can focus on creating world changing applications without having to worry about any technical complexities around performance or integration.”

This means that when the new version of Meta’s Llama, Google AI Edge’s MediaPipe and Tencent’s Hunyuan come online, developers can be confident that no performance is being left on the table with the Arm CPU.

Kleidi integrations are set to accelerate billions of AI workloads on the Arm Compute Platform, with the recent PyTorch integration leading to 2.5x faster time-to-first token on Arm-based AWS Graviton processors when running the Llama 3 large language model (LLM).

James McNiven, VP of Product Management for Arm’s Client Line of Business, discusses Arm Kleidi

Finally, developers need a platform that is easy to access and use. Arm has made this a reality through significant software investments that ensure developing on the Arm Compute Platform is a simplified, seamless experience that “just works.”

As each Arm Tech Symposia keynote speaker summarized: “The power of Arm and our ecosystem is that we deliver what developers need to simplify the process, accelerate time-to-market, save costs and optimize performance.”

The role of the Arm ecosystem

The importance of the Arm ecosystem in making new technologies a reality was highlighted throughout the keynote presentations. This is especially true for new silicon designs that require a combination of core expertise across many different areas.

As Dermot O’Driscoll, VP, Product Management for Arm’s Infrastructure Line of Business, said at the Arm Tech Symposia event in Shanghai, China: “No one company will be able to cover every single level of design and integration alone.”

Dermot O’Driscoll, VP, Product Management for Arm’s Infrastructure Line of Business, speaks at the Arm Tech Symposia event in Shanghai, China

Empowering these powerful ecosystem collaborations is a core aim of Arm Total Design, which enables the ecosystem to accelerate the development and deployment of silicon solutions that are more effective, efficient and performant. The program is growing worldwide, with the number of members doubling since the program was launched in late 2023. Each Arm Total Design partner offers something unique that accelerates future silicon designs, particularly those that are built on Arm Neoverse Compute Subsystems (CSS).

One company that exemplifies the spirit and value of Arm Total Design is South Korea-based Rebellions. Recently, it announced the development of a new large-scale AI platform, the REBEL AI platform, to drive power efficiency for AI workloads. Built on Arm Neoverse V3 CSS, the platform uses a 2nm process node and packaging from Samsung Foundry and leverages design services from ADtechnology. This demonstrates true ecosystem collaboration, with different companies offering different types of highly valuable expertise.

Dermot O’Driscoll said: “The AI era requires custom silicon, and it’s only made possible because everyone in this ecosystem is working together, lifting each other up and making it possible to quickly and efficiently meet the rising demands of AI.”

Chris Bergey at the Arm Tech Symposia event in Taiwan talks about the new chiplet ecosystem being enabled on Arm

Arm Total Design is also helping to enable a new thriving chiplet ecosystem that already involves over 50 leading technology partners who are working with Arm on the Chiplet System Architecture (CSA). This is creating the framework for standards that will enable a thriving chiplet market, which is key to meeting ongoing silicon design and compute challenges in the age of AI.

The journey to 100 billion Arm-based devices running AI

All the keynote speakers closed their Arm Tech Symposia keynotes by reinforcing the commitment that Arm CEO Rene Haas made at COMPUTEX in June 2024: 100 billion Arm-based devices running AI by the end of 2025.

James McNiven closes the Arm Tech Symposia keynote in Shenzhen

However, this goal is only possible if ecosystem partners from every corner of the technology industry work together like never before. Fortunately, as explained in all the keynotes, there are already many examples of this work in action.

The Arm Compute Platform sits at the center of these ecosystem collaborations, providing the technology foundation for AI that will help to transform billions of lives around the world.

The post Arm Tech Symposia: AI Technology Transformation Requires Unprecedented Ecosystem Collaborations appeared first on Arm Newsroom.

Mercury X1 wheeled humanoid robot combines NVIDIA Jetson Xavier NX AI controller and ESP32 motor control boards

22 November 2024 at 14:34
Mercury X1 wheeled humanoid robot

Elephant Robotics Mercury X1 is a 1.2-meter high wheeled humanoid robot with two robotic arms using an NVIDIA Jetson Xavier NX as its main controller and ESP32 microcontrollers for motor control and suitable for research, education, service, entertainment, and remote operation. The robot offers 19 degrees of freedom, can lift payloads of up to 1kg, work up to 8 hours on a charge, and travel at up to 1.2m/s or about 4.3km/h. It’s based on the company’s Mercury B1 dual-arm robot and a high-performance mobile base. Mercury X1 specifications: Main controller – NVIDIA Jetson Xavier NX CPU – 6-core NVIDIA Carmel ARM v8.2 64-bit CPU with 6MB L2 + 4MB L3 caches GPU – 384-core NVIDIA Volta GPU with 48 Tensor Cores AI accelerators – 2x NVDLA deep learning accelerators delivering up to 21 TOPS at 15 Watts System Memory – 8 GB 128-bit LPDDR4x @ 51.2GB/s Storage – 16 [...]

The post Mercury X1 wheeled humanoid robot combines NVIDIA Jetson Xavier NX AI controller and ESP32 motor control boards appeared first on CNX Software - Embedded Systems News.

(D241122) godns webhook coturn and dynamic IP address on FreeBSD

22 November 2024 at 13:52

This is for FreeBSD. It may not work on Linux because sh and sed on FreeBSD are not the same as Linux (bash and other sed).

We're running a STUN/TURN server, it work well but we don't have a static IP address. Everytime we got a new IP address we need to change coturn config and restart the service.

There is a way to get it work by a cron job that run a shell script check public ip every 5 minutes and restart service if the public IP address has changed.

#!/bin/bash

# Linux only, doesn't work on FreeBSD
current_external_ip_config=$(cat /etc/turnserver.conf | grep "^external-ip" | cut -d'=' -f2)
current_external_ip=$(dig +short <MY_DOMAIN>)

if [[ -n "$current_external_ip" ]] && [[ $current_external_ip_config != $current_external_ip ]]; then
        sed -i "/^external-ip=/ c external-ip=$current_external_ip" /etc/turnserver.conf
        systemctl restart coturn
fi

ref: set up with dynamic ip address

Since we're running a godns daemon to update our IP to Cloudflare DNS server we also want godns send a webhook to coturn server whenever it update IP to Cloudflare. That may be more effective.

So this is what we have:

godns

$ cat /etc/godns/config.json 
{
  "provider": "Cloudflare",
  "login_token": "YOUR_TOKEN",
  "domains": [
    {
      "domain_name": "yourdomain.com",
      "sub_domains": [
        "@"
      ]
    }
  ],
  "ip_urls": [
    "https://api.ipify.org"
  ],
  "ip_type": "IPv4",
  "interval": 300,
  "resolver": "8.8.8.8",
  "webhook": {
    "enabled": true,
    "url": "http://your.coturn.webhook.endpoint:9000/hooks/godns",
    "request_body": "{ \"domain\": \"{{.Domain}}\", \"ip\": \"{{.CurrentIP}}\", \"ip_type\": \"{{.IPType}}\" }"
  }
}

webhook

$ cat /usr/local/etc/webhook.yaml
---
# See https://github.com/adnanh/webhook/wiki for further information on this
# file and its options.  Instead of YAML, you can also define your
# configuration as JSON.  We've picked YAML for these examples because it
# supports comments, whereas JSON does not.
#
# In the default configuration, webhook runs as user nobody.  Depending on
# the actions you want your webhooks to take, you might want to run it as
# user root.  Set the rc.conf(5) variable webhook_user to the desired user,
# and restart webhook.

# An example for a simple webhook you can call from a browser or with
# wget(1) or curl(1):
#   curl -v 'localhost:9000/hooks/samplewebhook?secret=geheim'
- id: godns
  execute-command: "/usr/local/etc/godns.sh"
  command-working-directory: "/usr/local/etc"
  pass-arguments-to-command:
  - source: payload
    name: domain
  - source: payload
    name: ip
  - source: payload
    name: ip_type
  trigger-rule:
    and:
      - match:
          type: value
          value: "your.domain.com"
          parameter:
            source: payload
            name: domain

shell script

$ cat /usr/local/etc/godns.sh
#!/bin/sh

# write ip log to a file
now="$(date +'%y%m%d%H%M%S%N')"
echo $now $1 $2 $3 >> godns.txt

# restart coturn when ip changed
turnserver_config="/usr/local/etc/turnserver.conf"
current_external_ip_config=$(cat $turnserver_config | grep "^external-ip" | cut -d'=' -f2)
current_external_ip_webhook=$2

if [ -n "$current_external_ip_webhook" ] && [ $current_external_ip_config != $current_external_ip_webhook ]; then
        sed -i .old -e "s/external-ip=$current_external_ip_config/external-ip=$current_external_ip_webhook/g" $turnserver_config
        service turnserver restart
fi

It may not work well enough, if something happen and godns can not send webhook to coturn server. But for now we stick with it.

❌
❌