This Visual Studio Code extension provides comprehensive support for the SAS programming language, enabling users to connect directly to both SAS Viya and SAS 9.4 servers to run code within the familiar development environment. The extension offers syntax highlighting, code completion, help documentation, and snippets for SAS programming, whilst also supporting SQL, Python, and Lua syntax highlighting capabilities. Users can navigate SAS Content and libraries through an integrated table viewer, create notebooks for multiple programming languages, and benefit from features such as code folding, outline views, and line commenting functionality. The open-source project operates under an Apache 2.0 licence and actively welcomes community contributions, with support available through SAS Communities, comprehensive documentation, and GitHub issue tracking. Recent development activity has focused on enhancing file navigation capabilities, improving dependency management, and expanding multilingual support across various European and Asian languages.
To update SAS Analytics Pro on Viya with a new licence, users must first download the JWT licence file from their software order on the My SAS portal after logging in and selecting their order details. The process involves stopping the currently running container using either container-manager commands or Docker stop commands, then copying the new licence file to the deploy/sasinside directory. On Windows systems, users can restart the container using either the container-manager with the new licence path parameter or by editing the launch script to reference the new licence file name before running the deployment command. For macOS and Linux environments, the same steps apply with the addition of modifying file permissions using chmod 0644 on the licence file. Kubernetes deployments require updating the configuration YAML file by inserting the complete contents of the licence file under the apro.SETINIT_TEXT parameter whilst maintaining proper indentation, then redeploying using kubectl apply commands. Throughout all platforms, users should save their current licence file as a precautionary measure before beginning the update process.
In Python, using __slots__ can effectively enhance code performance by reducing memory usage and increasing the speed of attribute access. Normally, Python objects store attributes in a dictionary, which offers flexibility but incurs additional memory usage and slower access times. By declaring __slots__, developers can specify a fixed set of attributes that the object will need, thereby eliminating the need for a dictionary and leading to more efficient memory management. Though the performance gains from __slots__ may be subtle in small datasets, they become more pronounced as data scales, reducing memory consumption and improving speed dramatically. This technique proves invaluable for memory-bound tasks, such as machine learning, where optimising computational resources is crucial.
There are three primary barriers to adopting automated testing, and that a lack of time is not typically one of them. The first issue is code that is not designed to be testable by nature. Many development teams face challenges with legacy codebases, where the architecture hinders test automation. This includes tightly coupled components, hard-coded configurations, and missing interfaces for injecting test doubles or dependencies. A substantial refactoring or architectural redesign is often necessary for meaningful automated testing to be implemented. Secondly, the lack of accessible and realistic test data can prevent tests from being written, as relying on production data poses significant risks.
Developers should create a self-contained testing environment using fake data, mocks, and factories to simulate data. Utilising factory functions to wrap reusable data structures allows for reliable and maintainable tests. Lastly, the tight coupling with external dependencies can turn test runs into unpredictable experiences. Code should be refactored to decouple business logic from external systems using interfaces, adapters, or dependency injection, allowing tests to run independently of such dependencies. Adhering to these strategies can make automated testing a natural part of the development process.
Stack Overflow, presenting from WeAreDevelopers in Berlin, has unveiled its new vision: to be the world's most vital source for technologists by providing a trusted human intelligence layer in the AI era. Their mission focuses on cultivating community, powering learning, and unlocking growth. Recent survey findings reveal 83% of developers use AI tools, yet 46% distrust AI outputs, highlighting Stack Overflow's crucial role in providing reliable information. The company has simplified its brand architecture, with public platforms now unified under "Stack Overflow" and business offerings labelled "Stack Overflow Business." New features include Community Activity displays, revamped Chat functionality, an AI-powered search tool, and Coding Challenges. For enterprise users, Stack Internal offers Knowledge Ingestion, new Connectors for Microsoft Graph and Backstage.io, and an upcoming bidirectional MCP server to enhance AI interaction with trusted data.
Observable is a JavaScript-based reactive programming environment that offers R users significant benefits for interactive data visualisation. This framework allows for advanced customisation using various JavaScript libraries whilst eliminating the need for server-side code execution, resulting in faster rendering of interactive visualisations in browsers. Though Observable can handle some data wrangling, R remains superior for statistical modelling; fortunately, Quarto enables users to combine both tools effectively. Users can perform data manipulation in R, pass the processed data to Observable, and then create sophisticated visualisations. The integration process is straightforward, requiring only Quarto installation and simple code blocks that transfer data between environments. For those interested in JavaScript libraries like D3.js but deterred by their complexity, this approach provides a gentler introduction to creating compelling, interactive data visualisations whilst leveraging R's robust analytical capabilities.
The latest release of chromote, version 0.5.0, brings new features that make it easier to download and use any version of Chrome. This is a package that allows users to drive and access the Chrome web browser programmatically from R using Chrome's headless mode, which is ideal for automated testing and server environments. Headless mode is a special browsing mode without a visible interface, and chromote automatically launches Chrome in this mode. The latest version of chromote includes features that let users download any version of Chrome or chrome-headless-shell from the Google Chrome for Testing service, ensuring reproducibility of automated scripts. Users can manage Chrome versions with functions such as local_chrome_version, which sets the version of Chrome for the current session and chrome_versions_add, which adds a new Chrome version to the cache. Additionally, chromote now has a new method called set_viewport_size, which makes it easier to adjust the virtual window size of a chromote tab. Overall, the updates in chromote version 0.5.0 aim to improve the user experience and provide more flexibility in managing Chrome versions.
The ellmer R package, launched in February 2025, has revolutionised how scientists can harness large language models in their research workflow. This innovative tool stands out by supporting both tool use (enabling LLMs to run commands on computers for accurate calculations or information retrieval) and structured data extraction from documents. Unlike previous solutions that required knowledge of other languages such as JSON, ellmer makes powerful LLM capabilities readily accessible to R users. Its practical applications are particularly valuable for scientific work, including performing literature reviews, interpreting metadata from online databases, analysing data, writing up findings, and batch processing documents for summarisation. The package simplifies authorisation through API keys and offers both interactive and programmatic interfaces, allowing researchers to experiment with different system prompts before implementation.
The sassy system is a collection of R packages aimed at enhancing productivity, particularly for users familiar with SASĀ® software. Addressing limitations in areas such as logging, value formatting, data management, and report creation, these packages introduce concepts and workflows inspired by SAS to streamline R programming. The system includes key packages for logging, libraries, data formatting, reporting, and general utilities, along with specialised tools for tasks like generating define.xml files, accessing data, and creating analysis datasets.