Graphic 3D
2D, 3D, game, games, online game, game development, game engine, programming, OpenGL, Open AI, math, graphics, design, graphic, graphics, game development, game engine, programming, web development, web art, web graphic, arts, tutorial, tutorials,
joi, 9 iulie 2026
miercuri, 8 iulie 2026
News : PointDiT: Pixel-Space Diffusion for Monocular Geometry Estimation
State-of-the-art single-image 3D reconstruction methods often rely on complex hybrid architectures and loss functions, or compress geometry into latent spaces in order to leverage pre-trained latent diffusion models. In this work, we show that such architectural overhead and intricate loss formulations are unnecessary. We introduce a minimalist pixel-space Diffusion Transformer, built on a plain ViT, that operates directly on raw 3D point map patches and is conditioned on image tokens from a pre-trained DINOv3. Unlike existing latent diffusion approaches, we train our diffusion backbone entirely from scratch, eliminating the need for point map tokenizers. Despite its simplicity, our approach surpasses complex latent-based diffusion models while remaining significantly simpler than hybrid alternatives. Notably, it produces sharper geometric structure and is more robust in highly ambiguous regions, such as transparent objects.
News : Laguna XS 2.1 from Ollama.
Laguna XS 2.1 is a 33B total parameter Mixture-of-Experts model with 3B activated parameters per token designed for agentic coding and long-horizon work on a local machine.
See the official website.
marți, 7 iulie 2026
Tools : simple guide of the most relevant terms, structured as a specialized in development.
Today, with a little help of artificial intelligence I created this a comprehensive synthesis of the most relevant terms, structured as a specialized guide.
In the software development field, jargon and slang are extremely rich, evolving rapidly alongside new technologies.
1. Code Quality and Technical Debt
These terms are used in professional environments to evaluate the state of a codebase and the trade-offs made during development:
- Technical Debt: Decisions made to deliver a feature quickly at the cost of lower quality, which will require additional effort to correct later.
- Code Smell: Symptoms or patterns in the code that suggest a deeper design problem, even if the code is functional.
- Spaghetti Code: Source code with a complex and incomprehensible control structure, often the result of chaotic development.
- Code Rot: The process by which a software system becomes increasingly difficult to maintain and more prone to errors as it is modified over time.
- Maintainability Index: A software metric that measures how easy it is to maintain, modify, and understand a codebase.
- Brittle Code: Code that breaks as soon as you change a single setting or a small part of the input.
2. Slang for Poor Quality (Beyond Slop)
- Boilerplate: Repetitive, standard code that must be written to make a feature work but adds no unique logical value.
- Cargo Cult Programming: The practice of copying and implementing code snippets or design patterns without understanding why they are used.
- Quick and Dirty: A solution implemented rapidly, without a solid structure or maintainability, usually with the intention of being refactored later.
- Kitchen Sink: Code or a project where everything has been added, without a clear direction, resulting in an oversized and unmanageable codebase.
- Hack: An inelegant solution that fixes something for the moment but creates significant risks in the long term.
- Low-effort slop: A slang term borrowed from creative and online communities to describe mass-generated content that lacks added value or attention to detail.
3. Processes, Errors, and Productivity
- Yak Shaving: The situation where you start a simple task but realize you have to solve a minor problem, then another, and another, until you lose hours doing things completely unrelated to the main objective.
- Bikeshedding: The phenomenon where the team spends hours discussing trivial details instead of focusing on the critical architecture of the project.
- Heisenbug: A bug that disappears or changes its behavior when you try to investigate or debug it.
- Race Condition: An error that occurs only under very specific timing conditions, making it extremely difficult to reproduce in a controlled manner.
- Zombie Code: Code that is no longer used by anyone in the application but has not been deleted because programmers are afraid that if they remove it, something will break.
- Rubber Ducking: The method of explaining your code, line by line, to an inanimate object. The act of explaining often helps you find the logical error yourself.
4. The AI Paradigm: Risks and Automation
- Prompt Engineering: Although it has become a technical term, in the programming community it is sometimes used ironically to describe the process of trying to get the AI to produce something useful through repeated trial and error.
- AI-in-the-Middle: The situation where a programmer no longer understands the logical flow of their application because they have delegated too much to an AI assistant, losing control over the code architecture.
- Hallucination: Used to describe code or a model that has a high probability of generating false information, logical errors, or calls to non-existent libraries.
- Stochastic Parrot: A critical term describing language models that repeat statistical patterns without understanding the meaning or context of what they are generating.
- Shadow Code: Code introduced into a project without being fully understood or reviewed.
- Copy-Paste Programming: The practice of taking code without understanding how it works or how it interacts with the rest of the system.
5. AI Yak Shaving (AI Infrastructure Pitfalls)
- The RAG Architecture Rabbit Hole: Instead of a simple context injection, the developer becomes obsessed with chunking strategies, vector distance metrics, and migrating between vector databases.
- Model Hopping: Occurs when the focus shifts to the provider or model architecture rather than the inference logic, spending hours fine-tuning quantization parameters or local registry versions.
- Agentic Over-Orchestration: Getting lost in Agentic Frameworks, building complex state machines and multi-agent hierarchies for a task that is essentially a linear sequence of inputs.
- Evaluation Paralysis: Building systems to evaluate LLM outputs using another LLM before shipping any feature, thereby optimizing the evaluation system instead of validating the product value.
6. Testing and Validation in the AI Era
- Golden Master Testing: A fundamental testing technique originating from the music and film industry. It involves running a system with a set of inputs and capturing the output in a known, correct state. When AI modifies the code, the output is compared to this Master to verify if the changes are safe.
- Mutation Score: A metric that quantifies the AI drift, representing how many changes were required to make the AI-generated code behave like the Golden Master.
- LLM-as-a-Judge: Using a second, distinct AI instance that receives the input, output, and code to evaluate if the output is logically consistent with the requirements.
- Property-Based Testing: Instead of checking for an exact match, the AI is prompted to verify if essential properties hold true.
- Self-Healing Tests: A framework where a failed test triggers the AI-Author again with instructions to rewrite the code based on the specific error, effectively allowing the AI to debug itself.
- Circular Hallucination: The risk that an AI-Judge evaluates the code positively simply because it was trained on the same data as the Author, sharing the same biases or errors.
7. Governance and Structured Logging
- ADRs (Architecture Decision Records): The gold standard for recording decisions; this is where you document a Hack or a Quick and Dirty solution, transparently acknowledging the Technical Debt you are incurring.
- Structured Logs (JSONL): For an AI to learn from development history, logs must be structured rather than stored as unstructured text.
- Remediation Engine: Feeding your structured logs into a more capable AI model using a Meta-Prompt to analyze recurring patterns of logic errors and suggest system prompt updates or coding standards.
- Human-in-the-Loop (HITL): The ultimate safety standard; the developer defines Trust Checkpoints. If a module passes the AI-Judge and Golden Master tests repeatedly, it becomes Trusted Code and is merely monitored rather than re-verified.
Posted by
Cătălin George Feștilă
Labels:
2026,
artificial intelligence,
development,
programming,
tool,
tools
News : Grok Voice Agent Builder Beta.
Voice Agent Builder is now live in beta: a no-code platform for production voice agents with Grok Voice. Every account includes a free phone number. Create a voice agent in under 2 minutes, then call it from your browser.
It’s for operators and developers who want high-volume production voice agents without building the stack from scratch. You get telephony, knowledge retrieval, tools, guardrails, and observability in one place. You can also keep what you already have: bring existing phone numbers, wire your APIs, or connect MCP servers.
Most voice stacks stitch together speech-to-text, a language model, and text-to-speech, often across different providers. Every hop adds latency and new failure modes. Voice Agent Builder is one interface built for Grok Voice, tightly coupled to the model.
See the official website.
Google Apps Script : example of transition from a Google Sheet to a formatted Google Doc.
This script that automates the transition from a Google Sheet to a formatted Google Doc. Here is a breakdown of what this solution does:
Custom Menu Integration: The script adds a Custom Menu directly into your Google Sheet interface. With a single click, you can trigger processes like fetching data or generating reports, making the tool incredibly easy to use without touching the code.
This example is based on this URL : https://www.planetpython.org/opml.xml.
Intelligent Data Processing: It doesn't just copy text; it parses RSS and Atom feeds, extracts titles and links, and prepares them for your document. It intelligently handles the HYPERLINK formulas you use in Sheets, translating them into real, clickable links in your final document.
Automatic Folder Management: One of the most useful features of this script is its ability to keep your Drive organized. Instead of cluttering your root directory, the script automatically identifies the folder where your source spreadsheet is located and creates the new document right there.
Built-in Troubleshooting: I have included logging functionality throughout the code. If a link is malformed or a feed fails to load, the script logs exactly what happened, allowing you to debug issues quickly via the Apps Script Dashboard.
Let's see the source code for Google Apps Scripts:
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Custom Menu')
.addItem('Read OPML PlanetPython', 'fetchAndProcessFeed')
.addItem('Download Selected Content', 'downloadSelectedContentWrapper')
.addItem('Send Sheet via Email', 'sendSheetViaEmail')
.addToUi();
}
function fetchAndProcessFeed() {
const dateTime = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy-MM-dd_HH-mm");
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
let sheet = spreadsheet.getSheetByName(dateTime);
if (!sheet) {
sheet = spreadsheet.insertSheet(dateTime);
} else {
sheet.clear();
}
sheet.appendRow(["Date", "Source", "Title", "Select"]);
const opmlUrl = "https://www.planetpython.org/opml.xml";
const opmlContent = UrlFetchApp.fetch(opmlUrl).getContentText();
const opmlDoc = XmlService.parse(opmlContent);
const outlines = opmlDoc.getRootElement().getChild("body").getChildren("outline");
outlines.forEach(outline => {
const text = outline.getAttribute("text")?.getValue().replace(/"/g, '""').replace(/[<>&]/g, '') || "";
const xmlUrl = outline.getAttribute("xmlUrl")?.getValue() || "";
try {
const feedContent = UrlFetchApp.fetch(xmlUrl).getContentText();
const feedDoc = XmlService.parse(feedContent);
const root = feedDoc.getRootElement();
if (root.getName() === "rss") {
processRssFeed(root, text, xmlUrl, sheet);
} else if (root.getName() === "feed") {
processAtomFeed(root, text, xmlUrl, sheet);
}
} catch (e) {
Logger.log(`Error processing feed ${text} (${xmlUrl}): ${e}`);
}
});
}
function processRssFeed(root, source, xmlUrl, sheet) {
const items = root.getChild("channel")?.getChildren("item") || [];
items.forEach(item => {
const title = item.getChild("title")?.getValue().replace(/"/g, '""').replace(/[<>&]/g, '') || "";
const pubDate = item.getChild("pubDate")?.getValue() || "";
const link = item.getChild("link")?.getValue().replace(/[<>&]/g, '') || xmlUrl;
sheet.appendRow([
pubDate,
`=HYPERLINK("${xmlUrl}", "${source}")`,
`=HYPERLINK("${link}", "${title}")`,
""
]);
});
}
function processAtomFeed(root, source, xmlUrl, sheet) {
const entries = root.getChildren("entry") || [];
entries.forEach(entry => {
const title = entry.getChild("title")?.getValue().replace(/"/g, '""').replace(/[<>&]/g, '') || "";
const updated = entry.getChild("updated")?.getValue() || "";
const link = entry.getChild("link")?.getAttribute("href")?.getValue().replace(/[<>&]/g, '') || xmlUrl;
sheet.appendRow([
updated,
`=HYPERLINK("${xmlUrl}", "${source}")`,
`=HYPERLINK("${link}", "${title}")`,
""
]);
});
}
function downloadSelectedContentWrapper() {
downloadSelectedContent();
}
async function downloadSelectedContent() {
const dateTime = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy-MM-dd_HH-mm");
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getActiveSheet();
const data = sheet.getDataRange().getValues();
const doc = DocumentApp.create(`Content_${dateTime}`);
const folderId = DriveApp.getFileById(spreadsheet.getId()).getParents().next().getId();
DriveApp.getFileById(doc.getId()).moveTo(DriveApp.getFolderById(folderId));
let contentAdded = false;
const body = doc.getBody();
for (let i = 1; i < data.length; i++) {
const row = data[i];
if (row[3] == 1) {
const sourceMatch = row[1].toString().match(/^=HYPERLINK\("([^"]+)",\s*"([^"]+)"\)$/);
const source = sourceMatch ? sourceMatch[2] : row[1].toString().replace(/[<>&]/g, '') || "Unknown source";
const titleMatch = row[2].toString().match(/^=HYPERLINK\("([^"]+)",\s*"([^"]+)"\)$/);
const title = titleMatch ? titleMatch[2] : row[2].toString().replace(/[<>&]/g, '');
const link = titleMatch ? titleMatch[1] : "";
Logger.log(`Processing ${title} with link: ${link}`);
try {
body.appendParagraph(source).setHeading(DocumentApp.ParagraphHeading.HEADING1);
const titleParagraph = body.appendParagraph(title).setHeading(DocumentApp.ParagraphHeading.HEADING2);
if (link) titleParagraph.setLinkUrl(link); // Titlu ca hyperlink
body.appendParagraph(""); // Spațiu între intrări
contentAdded = true;
Logger.log(`Added ${title} with link`);
} catch (e) {
Logger.log(`Error processing ${title} (${link}): ${e}`);
body.appendParagraph(source).setHeading(DocumentApp.ParagraphHeading.HEADING1);
const titleParagraph = body.appendParagraph(title).setHeading(DocumentApp.ParagraphHeading.HEADING2);
if (link) titleParagraph.setLinkUrl(link);
body.appendParagraph("");
contentAdded = true;
}
}
}
if (!contentAdded) {
Logger.log("No content was added to the document.");
body.appendParagraph("No content was selected or available.");
}
}
function sendSheetViaEmail() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getActiveSheet();
const sheetName = sheet.getName();
const data = sheet.getDataRange().getValues();
let htmlContent = `
<html>
<head>
<title>${sheetName}</title>
</head>
<body>
<h1>${sheetName}</h1>
<table border="1">
<tr>
<th>Date</th>
<th>Source</th>
<th>Title</th>
<th>Select</th>
</tr>
`;
data.forEach((row, index) => {
if (index > 0) {
const date = row[0] || "";
const sourceMatch = row[1].toString().match(/^=HYPERLINK\("([^"]+)",\s*"([^"]+)"\)$/);
const sourceUrl = sourceMatch ? sourceMatch[1] : "";
const sourceText = sourceMatch ? sourceMatch[2] : row[1].toString().replace(/[<>&]/g, '');
const titleMatch = row[2].toString().match(/^=HYPERLINK\("([^"]+)",\s*"([^"]+)"\)$/);
const titleUrl = titleMatch ? titleMatch[1] : "";
const titleText = titleMatch ? titleMatch[2] : row[2].toString().replace(/[<>&]/g, '');
const select = row[3] || "";
htmlContent += `
<tr>
<td>${date}</td>
<td><a href="${sourceUrl}">${sourceText}</a></td>
<td><a href="${titleUrl}">${titleText}</a></td>
<td>${select}</td>
</tr>
`;
}
});
htmlContent += `
</table>
</body>
</html>
`;
const mimetype = "application/epub+zip";
const containerXml = `
<?xml version="1.0"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
<rootfiles>
<rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/>
</rootfiles>
</container>
`;
const contentOpf = `
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="bookid" version="2.0">
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
<dc:title>${sheetName}</dc:title>
<dc:identifier id="bookid">urn:uuid:${Utilities.getUuid()}</dc:identifier>
<dc:language>en</dc:language>
</metadata>
<manifest>
<item id="content" href="content.html" media-type="application/xhtml+xml"/>
</manifest>
<spine>
<itemref idref="content"/>
</spine>
</package>
`;
const blobs = [
Utilities.newBlob("mimetype", "text/plain", "mimetype").setContentType(mimetype),
Utilities.newBlob(containerXml, "application/xml", "META-INF/container.xml"),
Utilities.newBlob(contentOpf, "application/xml", "OEBPS/content.opf"),
Utilities.newBlob(htmlContent, "application/xhtml+xml", "OEBPS/content.html")
];
const zipOutput = Utilities.zip(blobs, `Sheet_${sheetName}.epub`);
MailApp.sendEmail({
to: "catalinfest@gmail.com,catafest@yahoo.com",
subject: `Sheet activ: ${sheetName}`,
body: "Vezi atașat sheet-ul activ în format EPUB.",
attachments: [zipOutput]
});
}
Posted by
Cătălin George Feștilă
Labels:
2026,
demo,
development,
google,
Google Apps Script,
open source,
programming,
source code,
tutorial,
tutorials
Abonați-vă la:
Postări (Atom)