📌 CLAUDE CODE 24x7 NO VPS → https://codigofonte.click/claudecodehostinger
Se você se acostumou só a usar o chat do Claude Code ou só interage pela IDE, que tal testar os agentes no Claude Code CLI?
Mergulhamos no Claude Code para mostrar como você pode criar seus próprios agentes de IA diretamente do terminal. Esqueça a teoria: vamos construir, do zero, agentes focados em caçar bugs e revisar código em tempo real.
Neste episódio do Podcast Tecnopolítica, Gabriel de Moraes e Sérgio Amadeu analisam como a inteligência artificial está transformando as disputas eleitorais.
👥 Apresentadores
Sérgio Amadeu é sociólogo, professor da UFABC e pesquisador do CNPq, com atuação destacada na defesa da democratização da comunicação e da soberania tecnológica. Autor de livros e artigos, é referência em debates sobre privacidade, software livre e cultura digital.
Gabriel de Moraes é mestrando e pesquisador do Laboratório de Tecnologias Livres da UFABC (LabLivre), integra a equipe do Podcast Tecnopolítica e coordena o Grupo Avançado de Tecnologias para Movimentos Sociais (GATMOB-UFABC).
📌 Equipe
Coordenação e autoria dos podcasts: Sérgio Amadeu da Silveira
Criação de arte e edição: Tutti Marketing
Conteúdos e divulgação: Tutti Marketing e Gabriel Boscardim de Moraes
🔗 ACESSE OS CURSOS NO PORTAL DO TECNOPOLÍTICA: https://tecnopolitica.blog.br/
Instagram: https://www.instagram.com/podtecnopolitica/
Nesse episódio do Tecnopolítica, Sergio Amadeu conversou com o economista José Paulo Guedes Pinto sobre o impacto das BETs na Balança de Serviços do Brasil. Os dados do Balanço de Pagamentos disponíveis no Banco Central, mostram que após a liberação do funcionamento desses negócios no país, a remessa de dólares no subitem do entretenimento da Balança de Serviços vem aumentando a cada ano. Somente em 2024, as BETS foram responsáveis pelo déficit de 6 bilhões de dólares. O negócio das BETS não é ruim somente para as famílias e para os adolescentes que acabam viciados, é nefasto para as contas externas do país. Episódio imperdível! Divulgue e ajude a disseminar informações de qualidade e de utilidade social.
In a bold move toward ultimate minimalism, developer Geir Isene has created Frame — the first X11 server for Linux written entirely in assembly language. The X server is one of those foundational pieces that most of us take for granted. It’s big, complex, and full of decades of legacy code. But what if someone...
Creation is the ultimate form of pursuing ourselves, giving to the world when shared, and using the power of our subconscious. It gives us joy, and to every artist, it is the ultimate (flow) state of happiness.
The Act of Creation
The act of creation is an outlet. It gives joy to us when we create something out of nothing, we block out anxiety or boredom.
Creating should be done like:
a kid in mind: effortless, exploring your thoughts, and seeing where it leaves you, as Picasso said: He wouldn’t have bothered to start a painting if he knew the outcome.
calm like the water: flowing wherever your mind is going.
to fulfill yourself: by portraying your never-resting thoughts. Share it with the world. Create with joy and love in mind.
follow your train of thought: see where it leads you. You start somewhere, on an unfinished emotion, a task, or anything to ponder on.
Creation, and especially writing, can help resolve the unresolved.
Creation to Make a Difference: Joy and Laughter
Creating is also about making a difference. If nothing changes in you, the people, not enough value was added to your creation. Any creation should trigger something. But foremost, the process of creation should change something in you, some release, a good feeling, it must feel right. If it does nothing, an empty feeling, the creation might not be there yet.
Create with love and empathy in mind. Liking someone is one thing, but giving love, caring for someone, and integrating that into your work is the ultimate way to create.
Create joy and laughter. Speak the language of people, make them happy by creating enjoyment.
Following Our Emotions without Boundaries
When we follow our emotions without any boundaries, following our instincts, we get into a state of deep focus and deep concentration where all thoughts can be resolved.
Creation is our inner [[Gut Feeling|Instinct]]. If we follow and nourish it, great things can arise from it. Treat it as an outlet for your body and mind. Go with the flow, follow along. Create for the sake of creation.
My outlet of writing this article, not knowing where it leads me, but just letting my thoughts out as they come, while sitting still in nature somewhere close to the beach in Italy.
Learn for Life, Follow Your Own Uniqueness
The act of creation is following your own life rhythm, for example, the [[Pathless Path]]. It is the ultimate form of connecting with yourself.
All creation is unique, unique specifically to you as the creator, but also (hopefully) to the reader, viewer, or consumer of your work. Your creations live long after your death; others will connect and create new works from them. It’s giving joy after you’re gone.
Learn for Life, as I like to say, has been my earliest mantra when starting any of my creations shared online. The common definition of success is reaching a desired outcome. The Scientist’s definition of success is: if you learn something new, you haven’t failed, as Anne-Laure Le Cunff says on How to Design Tiny Experiments Like a Scientist.
For example, a scientist defines it like this: if you say you want to write more, instead of just writing, you define ‘I will write for at least one month, or at least 10 articles. And then you don’t stop before that. Success is the experience, not the outcome.
The Outcome of Creation
The act of creation is a slow process that needs time and experience. A slow life, an [[The Ordinary (Boring) Life|ordinary, boring life]] even, to focus on the details, using the craftsmanship refined over the years, and retrieving joy from the process of creation.
What matters is the quality and outcome we are proud to release to the world.
Gifts Shared with the World
You create for yourself with no return in mind, you just share it as a gift for the world, for anyone to consume.
Creation thought of as a gift is an easy way for you to create without the burden of pleasing people, as it’s take-it-or-leave-it, like a gift. No strings attached, just making gifts.
A Curious Mind is Mostly a Subconscious Mind
When we create, most of our subconscious is driving the thought. Just let it cruise and see what the outcome is. Use the conscious mind for fixing errors and making sure the sentences make sense later, but don’t start with it.
Conscious mind vs subconscious and unconscious minds (5 to 95% difference) | Image from this Tweet.
The Spark of Joy Philosophy
Different flairs for designs to add ease or user delight to your creation. Similar to the “Spark Joy Philosophy”, which is very fitting when creating for the enjoyment of the reader.
To me, creation sparks joy for myself, it’s the outlet for me to release and organize my thoughts. It avoids the [[shallow happiness]] that I get from social media, binge-watching Netflix, or other brainless activities on the phone or TV. Sure, there’s time for that too, to calm down, but if we are not careful, the algorithms will take over and we default to always choosing the easy choice.
The Reward is Long-term
Creating is hard, there’s friction, it does not directly work, but the reward is long-term, with [[deep happiness]] and a deep flow state: “It’s magical that they just tried to be there”, which is the highest form of happiness artists get (see The Artist’s Way) as we discovered in Finding Flow, with escaping digital distractions through deep work and slow living.
I hope you find your outlet for creation, an act you can partake in to develop happiness and joy for yourself, getting into that deep flow and having a slow process where many small gifts of creation can be shared with the world.
This article was created with the inspiration of reading How to Live by Derek Sivers in Cavallino, Italy.
I was watching kids play football on a campsite football field in Italy, so free and joyful. ↩︎
Weston 16.0 released with major advances in HDR, color management, and Wayland protocol support. After about five months of development, the Weston project has officially released Weston 16.0, the reference Wayland compositor. This version brings important improvements that will help desktop environments like GNOME, KDE, and Enlightenment achieve better and more complete Wayland support. It’s...
Nesse episódio do Tecnopolítica, Sergio Amadeu conversou com a pesquisadora Luciana Rodrigues sobre como os aplicativos de namoro, tais como Tinder, Bumble, Happn, entre outros, são expressões de uma racionalidade neoliberal que cria uma sexualidade produtiva e domina a intimidade montando circuitos afetivos de "eterno retorno". Luciana Rodrigues defendeu na sua tese de doutorado que a estrutura dos aplicativos swipe-based reforça um modo de ser neoliberal que já opera na vida cotidiana, mas que se intensifica no campo amoroso: as pessoas passam a se relacionar como "empreendedoras de si mesmas", otimizando tempo, estratégias e resultados na busca por parceiros.
GNOME OS is getting a dedicated “Test Center” that finally makes testing experimental apps and system components safe, simple, and reversible on image-based distributions. GNOME OS has always been that cool, slightly wild playground for people who live and breathe GNOME. It’s image-based, atomically updated, super secure… and until now, a bit of a pain...
📌 Integre Pagamentos e Assinaturas nos seus Apps com a Appmax -https://codigofonte.click/appmax
---
A discussão sobre os programadores se tornarem MEI (Micro Empreendedor Individual) voltou com força total depois que o PLP 25/26 foi aprovado na Comissão de Indústria, Comércio e Serviços da Câmara dos Deputados. Vem analisar com a gente como isso pode mexer com o mercado de trabalho para devs.
📌 PLP 25/26 - O QUE FOI APROVADO:
→ https://codigofonte.click/plp2526
Debian released important point updates for both its current stable and previous stable versions on July 11, with Debian 12 officially entering its Long Term Support phase. The Debian project released updated point versions for both its current stable release and the previous one on July 11, 2026. Debian 13.6 delivers 124 stability fixes and...
KDE Frameworks 6.28.0 Released with Android Calendar Plugin, New Barcode Support, and KIO Improvements. KDE has released Frameworks 6.28.0, the latest monthly update to its set of over 80 libraries that form the foundation of Plasma and most KDE applications. This release brings several useful new features along with the usual round of bug fixes...
Grammars for languages or any other field are a beautiful thing. They compress complex systems into a language with a couple of rules. For the spoken language example, we know when to capitalize a letter or how to start a sentence. There are clear rules. Grammars also help us remember, as we do not need to recall every little rule, but apply them in a structured way.
For text editing, we have Vim motions that help us navigate a text document with 1000s of shortcuts, but because there is a grammar, we do not need to remember them all, but learn the structure of the grammar and combine them. But what if you work in data? What if we could have the same for data, a grammar for data engineering, or a language that defines it?
Expressing our needs declaratively and decisively? Also, expressing it in a way that leads to reproducible outcomes, or works with multiple parts and execution engines already out there. This is what we will discuss in this article. How existing tooling, such as Ibis, provides some capabilities, and how xorq extends them by adding full lineage and transparency for humans, with included executable memory for useful tabular data, all manifested in a single git repository.
Expressions for Data Engineering Workloads
Having a grammar for data engineering means we can express the workloads in a declarative manner, and then be sure we can deterministically reproduce and apply that exact definition.
It’s similar to the concept of a Declarative Data Stack I introduced a while back, but it gives the stack not only configurations but also a language with in-built manifestation and execution engines.
How to express (write) our transformations and business logic. It’s the context of every ML or DE pipeline.
We can build the expression into a manifest that has a unique hash, runs input validations, tracks lineage, creates a deterministic cache, and produces a human-readable expr.yaml you can diff and review in a PR.
Lastly, we can execute it in any execution engine with the same manifest.
This is hugely powerful and separates the concerns of defining logic, verification in the manifest step, and execution as a composable data stack, as Wes McKinney called it, with multi-compute engine possibilities.
How the DE Language Works: Different Expression Types
Every grammar starts with nouns, and here the noun is the source, a node that holds data but carries no transformation yet. It might be an in-memory table, a registered connection to a warehouse, or just a lazy pointer to a file on disk that hasn’t been read. They’re simply referenced, the way a noun refers to a thing before any verb acts on it.
The verbs in our language are transforms such as filter, select, mutate, aggregate, join, order, limit. Each one takes a source (or another transformed expression) and returns a new, immutable expression. You do not mutate anything before it, only describe what should happen next.
Looking at a definition such as .filter(...).aggregate(...).mutate(...), we can see this as a sentence. The moment a verb is applied, the expression stops being a plain noun and becomes a statement, a description of “data plus what should happen to it.” But the sentence isn’t spoken yet, it stays inert, fully composed but unexecuted, until something finally asks it to run. That’s the deferred part of the grammar: writing the sentence and saying it out loud are two different acts.
There’s a third part of speech worth naming: the template. Instead of writing a sentence about a specific noun, you can write one about a noun’s shape, a schema with no rows behind it. A template says “given something with a column of this type, here is what I’ll do to it,” and only later gets bound to an actual source, at which point the placeholder resolves and it becomes an ordinary statement again.
And we have modifiers that ride alongside a statement without changing what it computes. They’re small tags of metadata that say “this expression also represents a fitted model” or “this is a saved reference to something else.” It’s like a footnote with additional metadata that doesn’t change the surface meaning, but adds context for later use.
This analogy makes the grammar compose the same way regardless of which engine eventually executes it. There are more parts, but with just these four, noun, verb, template, modifier, you can read (and write) arbitrarily complex data pipelines the same way learning a handful of verb-and-object combinations in a text editor lets you compose arbitrarily complex edits.
[!tip] Avoids building “Inner-Platform Effect” with repeated tools
With this grammar, we can avoid repeatedly implementing the same logic we already have, but manifest and express our logic once, and reuse it with different execution engines, exactly what Ibis and xorq allow. Similar to what the inner-platform effect means for software best practices.
Why a Grammar is Really Good for LLMs
Having a grammar is really good for LLMs, too. It helps them first to declare data artifacts and second to execute them reproducibly.
On top, expressions can be LLM-agnostic, and we can interchange the LLMs we use just with an expression. Also, the chart is just an expression, or the data catalog and the metrics.
Model Once, Represent Everywhere: Expressing the Full Data Stack with a Single Expression
Like UDA (Unified Data Architecture) from Netflix, we define our expressions once and represent them everywhere. Netflix built UDA to solve duplicated models, inconsistent terminology, and siloed systems, where the same concept like ‘actor’ or ‘movie’ gets modeled differently across teams, with no shared foundation. Their answer was a full knowledge graph with a metamodel, making the conceptual model part of the actual control plane.
Not everyone needs Netflix-scale tooling, though. For a code-first approach, xorq gives you the same core principle: define once, execute anywhere by writing a declarative Ibis expression, serializing them as content-addressed YAML artifacts, and running against any supported engine, fully reproducible.
The difference worth noting: UDA is a semantic layer defining what data means across systems. Xorq is a computational layer defining what transformations do across engines. Both reject the same anti-pattern of re-implementing the same logic for every system.
Entering Xorq: The Horizontal Data Architecture
Xorq is an executable memory system for tabular data that works horizontally across your data stack, supporting everything from discovery with a catalog to defining transformation logic to modeling.
It has declarative transformation (Pandas style), and you can build ML pipelines and prepare data with its semantics in a single stack that is not vertically integrated, but horizontally integrated, giving your agents a catalog of executable pipelines and turning short-lived agent work such as wrangling scripts, sklearn pipelines, ad-hoc tables into durable, composable, executable artifacts that any future agent or human can discover, reproduce, and reuse.
Old vertical siloed way vs. the horizontal composable data stack way with multi-engine
The horizontal data stack shows what Xorq brings to the table. Xorq’s origins started from a git-native semantic layer, for data analysts out of college, to build semantic models for a living, to make their lives easier.
From point-and-click tools, dragging tables and drawing joins manually, only to add more reporting tools on top to create pixel-perfect reports. Also performance-wise, it didn’t scale, meaning we needed cubes to make it faster, adding another layer of complexity.
And there was no lineage that shows from source to dashboard. The question asked was: “what if we could do this end-to-end data engineering workflow locally?”. This is what the horizontal data stack and xorq are providing.
To add semantic layer capabilities, Julien Hurault and Hussain built the Boring Semantic Layer + the Xorq catalog, providing a semantic model you define in Python, check into git, and query from the CLI.
Compressing Logic into a Single Executable
Compression of a full data stack into a single executable is hard, but xorq tries exactly this with the help of Ibis, git, uv, and DataFusion.
The design choices of xorq showcase even better what it is, and what they enable:
Ibis as expression layer (v9.5.0+, partial): Declarative dataframe expressions compiled to multiple backends (xorq supports a subset of the Ibis API, not the full surface)
Git for state and storage: The catalog is a git repo of entries with git-annex support for large files
uv for reproducible environments: Each entry ships with a wheel and pinned requirements.txt.
DataFusion for embedded compute: Pipelines execute in-process with SQL and UDFs
Composable Data Engines
Another big advantage of expressions and having a grammar for data engineering is easily switching between backends, with no change to the transformation or business logic. It’s just defining the backend from Apache Arrow Flight to DuckDB or any other engine.
We write the definitions and express our tabular data and computations. The engine, in this case xorq, can build it into a manifest file that is deterministic and hashed.
Xorq uses Ibis as the expression layer for single-backend logic, then builds the cross-engine expression tree into a serialized YAML artifact. When moving data between backends, xorq transfers Apache Arrow RecordBatch streams between them—each backend acts as a RecordBatch transducer. No CSV serialization, no JSON encoding needed. This makes backend switching fast and memory-efficient. Write declarative Ibis expressions that run like a tool—xorq extends Ibis with caching, multi-engine execution, and UDFs.
Here’s an example of using DuckDB and Postgres in conjunction:
importxorq.apiasxo# Connect to enginespg=xo.postgres.connect_env()db=xo.duckdb.connect()# Load data from different sourcesbatting=pg.table("batting")awards=xo.examples.awards_players.fetch(backend=db)# Filter in respective enginesrecent=batting.filter(batting.yearID==2015)nl_awards=awards.filter(awards.lgID=="NL")# Move data to postgres for joinresult=recent.join(nl_awards.into_backend(pg),["playerID"])result.execute()
Move data between different engines within a single expression using into_backend(), here Postgres and DuckDB
You can see how easily you choose your most optimized execution engine, whether in the above example choosing DuckDB for filtering recent batting and using Postgres to filter NL (National League) awards, and joining the two with the Postgres engine.
Engines supported by xorq as of now, with the ability to move data between them, are (check Supported backends for the latest):
Arrow Flight: GizmoSQL (DuckDB over Arrow Flight SQL)
Cross-Engine Expression Tree
With different engines supported, we can use the compressed single executable logic across engines. We can build expression graphs before executing them, which works like this, with one expression, many engines:
The output of building a cross-engine expression is a directory containing your serialized pipeline with a unique hash identifying each build and its artifacts and expressions. When executed, the output is the resulting object or data.
And the expressions are tools, Arrow is the pipe. E.g., a Unix pipe streams text between small programs. Xorq pipes Arrow streams between expressions: unix : programs :: xorq : arrow-transforms
That executes like this:
1
2
In [6]: expr.to_pyarrow_batches()Out[6]: <pyarrow.lib.RecordBatchReader at 0x15dc3f570>
This is quite short and potentially abstract to understand when never used, but we will go into more examples and details in another article.
A Shared Language for Data
This article introduces a new way of describing data transformations for machine learning or data engineering pipelines in a direct and simple way that works locally with any execution engine, without changing the code itself.
It’s a good place if you need a trusted harness for a data engineering persona. We can define once and use it with the engine that works best for your workload and data engineering environment.
We had a look at how we write -> manifest -> execute with xorq, its advantages, and why you might use it for modeling once and representing everywhere. By adding AI agents to the mix, which help us pull the right lever, instead of bigger, more expensive models or more tokens, we improve accuracy with more semantic understanding, with a grammar the model can learn and apply, even pre-manifest before execution, and run them deterministically every time. This is a huge addition to working just with agentic Skills files that are free-form Markdown and pull data all over, or are not defined precisely enough. It’s all about having high-quality context in the right format, with a clear definition where humans and AI agents can interchange and help each other.
There’s a lot more to come, with showcasing the horizontal data stack and the use cases it supports, how we build expressions versus running computations, and how data catalogs are integrated into the picture, too.
Neste episódio do Tecnopolítica, gravado durante o Fórum da Internet no Brasil (FIB 2026), em Belém do Pará, Sérgio Amadeu entrevista Jader Gama, pesquisador dedicado às relações entre tecnologias digitais, Amazônia, conhecimentos tradicionais e justiça socioambiental. Sua atuação reúne temas como soberania tecnológica, territórios digitais, cultura, inovação e os impactos da digitalização sobre as comunidades amazônicas.
Durante a conversa, eles discutem o conceito de Terra Preta Digital, suas inspirações nos saberes ancestrais da Amazônia, a construção de infraestruturas tecnológicas voltadas ao bem comum, a valorização dos conhecimentos tradicionais e os caminhos para pensar um desenvolvimento tecnológico comprometido com a diversidade cultural, a sustentabilidade e a autonomia dos povos.