Pull to refresh

All streams

Show first
Rating limit

I’m tired of talking to AI

I found GitHub repositories that were spreading malware. I asked AI what to do about it, but it gave me nothing useful. So I opened a discussion on GitHub. Someone replied. It was the exact same text the AI had given me. I called it out and the comment was deleted. Then another person replied. It was the same AI answer again.

I worked as a developer at a company. I asked the business owner a question about a business task. He sent me a ChatGPT screenshot with the answer. I replied that it had nothing to do with my question and everything there was wrong. A minute later he sent me another ChatGPT screenshot. He didn’t even read the AI’s answer. He just took a screenshot and forwarded it to me.

Recently someone messaged me on Reddit about my post. I replied. They wrote again, I replied again. After a few messages I realized I was talking to an AI agent.

I’m tired of talking to AI.
I want to talk to real people.
But even when I talk to people, they forward my questions to AI and send me the AI’s answer.

BlogTelegramBluesky

Tags:
0
Comments0

Apostrophe and quotes

American style uses double typographic quotes “ ”, British style uses single typographic quotes ‘ ’, and technical documentation uses straight quotes " ". In American style, punctuation goes inside the quotation marks; in British style, placement follows meaning. But even in American blogs and technical books, punctuation is often placed by meaning rather than inside.

The apostrophe is either straight ' or typographic ’. For articles and posts, the typographic apostrophe is recommended. But if you look at popular news outlets or blogs from large tech companies, you’ll often find straight and typographic apostrophes and quotation marks mixed even within the same article. Some AI agents can’t use typographic symbols and replace them with straight ones.

Straight quotes are always easier to type than holding 3 keys for typographic ones. On top of that, with straight quotes the opening and closing mark is the same character, while typographic quotes use different ones. Smart auto-replacement to typographic symbols can be set up on a laptop, but most apps ignore that setting. If you write in different languages or for different styles, smart replacement will not help. You can set up a script to replace them before publishing articles, but if the article contains code examples, you can’t replace them there. You can also replace them manually before publishing, but when replying to comments you end up with straight ones again. Some fonts render the straight apostrophe beautifully, but you control the font only on your own site. Some websites automatically convert typed text into typographic marks, but if you paste text, they leave the straight ones in.

BlogTelegramBluesky

Tags:
0
Comments0

Looking for a VMware or Proxmox Alternative? Let's Talk VMmanager

On May 28, join us for a live technical demo of VMmanager — our virtualization management platform built for hosting providers and infrastructure teams. We'll walk through cluster setup with Ceph, VxLAN networking, white-label customization, and automation patterns that cut routine ops by 30-40%. If you're evaluating alternatives to VMware or Proxmox, or just curious about how we approached these challenges, join us.

Sign up now to lock in a 20% discount on any plan of any ISPsystem product of your choice, and grab our white paper How to Reduce Your Time-to-Market completely free.

Here's what we'll cover:

  • HCI out of the box. See how to spin up a HA cluster by combining servers and Ceph—no complex setup, with live VM migration out of the box.

  • White Label. Your brand, your interface. Fully customize the panel so your customers only see your logo and styling.

  • Automation. Cut routine tasks by 30–40% with automated network config (VxLAN, IPAM), IP management, and backups that run without babysitting.

  • IaaS & SaaS-ready monetization. Move beyond selling raw VMs. Offer pre-configured apps with one-click deploy and keep more margin in-house.

Who should tune in:

  • Hosting providers considering alternatives to VMware or Proxmox

  • CEOs & technical directors looking to reduce operational costs

  • DevOps leads tired of maintaining custom automation scripts

  • System architects planning infrastructure expansion

The details: 

May 28 

📍 Europe (CEST, UTC+2): 4:00 PM 

📍 US East Coast (EDT, UTC-4): 10:00 AM (New York)

📍 US West Coast (PDT, UTC-7): 7:00 AM (Los Angeles) 

Can't attend? Register anyway —we'll send you the recording and materials.

👉 Register here

Tags:
0
Comments0

Doubts about what I’ve done

I have doubts not only while making a decision, but also after I’ve made it. I publish a post, and the next day I already want to change the wording. I put an unpromising project on hold, and a month later I want to continue working on it. I come up with a cool name for a product, register the domain, and claim the social media handles, but a week later I no longer like the name. I publish an essay, and a year later I want to delete it so no one can see it anymore.

No matter how many hours I spend thinking things through and making a decision, the doubts won’t go away. I just make decisions knowing that I may no longer agree with them in the future.

BlogTelegramBluesky

Tags:
-2
Comments0

Multilingualism in startups

When launching a startup, don’t make it multilingual until you have stable revenue and a team to support it. You can’t know whether the startup will become profitable, so early on, your time is better spent finding PMF and acquiring users. AI can write scripts to manage translation files and help with text translation, but the quality will still be poor. Users might as well use the browser’s built-in translator.

If you build the service in 10 languages right away, you’ll struggle to maintain it. Every interface change means updating translation files across all languages, even though most of your users will likely understand an English interface anyway. But if you’re building for a specific country, build it in that country’s language and don’t add English. Even two languages at the start are worse than one. With a single language, you can keep text directly in the code instead of splitting it into separate translation files.

BlogTelegramBluesky

Tags:
-1
Comments0

Просто крик души. Невозможно проводить собеседования на позицию Go-разработчика.

Все эти Ghost GPT, CodeShot AI, ENIGMA AI привели к тому, что единственный способ действительно понять квалификацию человека — пригласить его в офис. С одной стороны, мы получили инструмент, который снижает уровень стресса: помощника, способного подсказать и поддержать в нужный момент. С другой — человек из условного Усть-Дальневска уже вряд ли сможет пройти собеседование в Москве на хорошую позицию и достойную зарплату, потому что, похоже, скоро компании начнут массово возвращаться к офлайн-собеседованиям. Лично у меня уровень доверия к онлайн-интервью сейчас где-то на уровне плинтуса.

И, к слову, если человеку кажется, что использование AI-помощника на интервью незаметно — ему только кажется. Это видно. В итоге все просто тратят время друг друга впустую.

Tags:
-1
Comments10

Does your team actually use PRDs, or has something else taken over?

Anthropic recently said they don’t really rely on classic PRDs. They build a prototype, ship it internally, and let people use it. In that world, the prototype becomes the main reference.

A lot of people heard that and thought, “PRDs are dead.” I don’t think that’s quite right.

It works at Anthropic because everyone is technical, they use the product themselves, and they trust AI‑generated code enough to ship it early. The product evolves through real use, not documents.

Most teams are not like that. There’s a short call, a loose agreement, and then a ticket that misses half the conversation. By the time something ships, it’s working code, but not what was really meant.

So to me, Anthropic is not killing PRDs. It’s replacing them with heavy internal usage and fast feedback. If you remove PRDs and don’t have that, you’re not being like Anthropic. You’re just losing context.

For me, the key question is not “do we need PRDs.” It’s “what makes sure the team actually builds what it agreed on.”

Tags:
0
Comments0

В последнее время появляется всё больше новых решений, но выбрать по-прежнему сложно. Поэтому я потратил время, чтобы сравнить и провести бенчмарк всех решений для интернационализации в Next.js и TanStack Start.

На одном и том же приложении я протестировал 4 сценария, комбинируя динамическую загрузку и JSON-скоупинг по неймспейсам.

Что я измерял:

  • размер библиотеки

  • размер страницы

  • утечки неиспользуемого контента на страницу и локаль

  • размер компонентов

  • время загрузки, переключение страниц и реактивность приложения

После 6 часов тестов вот результаты:
Тренд оказался неожиданным. Чем более «хайповым» и модным является решение, тем хуже оно справляется с реальными задачами интернационализации. Самые приятные сюрпризы оказались там, где их меньше всего ожидаешь.

Отчёт TanStack
https://intlayer.org/ru/doc/benchmark/tanstack

Отчёт Next.js
https://intlayer.org/ru/doc/benchmark/nextjs

Репозиторий бенчмарка
https://github.com/intlayer-org/benchmark-i18n

(Считайте это версией v1. Интерпретация результатов частично основана на моих личных предпочтениях и опыте как автора решения. Буду рад обратной связи и предложениям по улучшению.)

Tags:
Total votes 1: ↑1 and ↓0+1
Comments0

I recorded a short video showing how to build a complete feature using Claude Code Agent Teams. Even if you're not using Agent Teams, the general approach still applies, making this a useful watch for anyone getting started with Claude Code or curious about this new experimental feature. In the video, I set up an "umbrella" project that brings together two repositories and multiple components: a Java App built with Google ADK (Spring Boot), a Front End App, and a Command Line utility. As part of the demo, the utility is extended with an "api" command that exposes it via the AG-UI protocol, allowing clients to connect to it directly.

Link to the video https://youtu.be/FekjxvNSpyg in the case embed does not work.

Tags:
Rating0
Comments0

Since there are so many great command line AI assistants, including the marvellous Opencode, I thought I was going to stop developing Gaunt Sloth. However, because I control the code and it is so small and LangChain.js-based, I still find myself reaching for it regularly for quick prototypes and other tasks.

https://github.com/Galvanized-Pukeko/gaunt-sloth-assistant/

The last thing I needed was to use it with a very minimal system prompt and without any vendor-provided defaults, so here comes a new config parameter: noDefaultPrompts. This enforces no fallback to default system prompts, which means if your project config does not define a system prompt, it will be completely blank.

Example config

{
  "llm": {
    "type": "groq",
    "model": "openai/gpt-oss-120b"
  },
  "noDefaultPrompts": true
}

Another new feature, introduced for experiments, is the api command, which currently supports the AG-UI protocol. Calling gsloth api ag-ui will make Gaunt Sloth listen for incoming connections.

{
  "llm": {
    "type": "openai",
    "model": "gpt-4o-mini"
  },
  "streamOutput": true,
  "commands": {
    "api": {
      "port": 3000,
      "cors": {
        "allowOrigin": "http://localhost:5555",
        "allowMethods": "POST, GET, OPTIONS",
        "allowHeaders": "Content-Type, Accept"
      }
    }
  }
}

A client implementation and demo setup are available at the link below. https://github.com/Galvanized-Pukeko/galvanized-pukeko-ai-ui

Tags:
Rating0
Comments0
interface
interface

Built my own UART Web-Serial terminal.
Drew the mockups myself, read and edited the code. HTML/CSS — 99% AI generated, JS — roughly 80%.

Key feature: zero installation, works on locked-down machines. Open tab — plug in USB-UART — go. You can browse HABR and sniff UART simultaneously in another tab.

What makes it different

Unlimited export. Real-time packet counter for the future log file — instantly see how much you've captured.
No lag under load. Batched DOM updates, handles 500k+ log lines without freezing.
JSON scripts for automation. Useful when hardware needs precise handshake timing — describe command sequences in JSON, terminal executes with proper delays.
Multiple input fields with separate send buttons. Convenient for switching between frequent commands — no copy-pasting needed.
Hex input with auto-formatting. Automatic spaces, validation — no mental byte counting.
Packet grouping by inter-arrival time. Helps visually spot message boundaries when traffic is dense.
Custom baud rates. Beyond standard 9600/115200 etc. — enter any rate your hardware supports.
Technical details
Clean interface — only what actually matters from 20 years of HW/FW/Embedded experience. Vanilla JS, zero frameworks. Not for ideological reasons, just wanted no dependencies and minimal bloat.
Web Serial API provides direct COM port access through the browser — works in Chrome/Edge on desktop.

Links
Live: link
Source: link

Might come in handy for flashing Arduino, debugging firmware, sniffing hardware communication.

Tags:
Rating0
Comments0

polluSensWeb now supports 26 sensors and webhooks

polluSensWeb
polluSensWeb

With the latest updates, polluSensWeb now supports 26 different sensors and introduces webhook integration, opening up possibilities for real-time automation, data forwarding, and external analytics pipelines.

These sensors are manufactured by different companies and use different protocols. Some transmit data continuously, while others require start commands.

Until now, polluSensWeb was primarily a visualization and diagnostic tool. The data remained within the browser session. This was convenient for testing, calibration, or demonstration, but it limited real-world use cases.

With webhooks enabled, sensor data can be automatically sent to an external endpoint in real time.
This makes it possible to:

  • Forward measurements to databases

  • Trigger alerts or automation workflows

  • Send data to monitoring dashboards such as Grafana

  • Integrate with community platforms or custom APIs

Project on GitHub
Live deployment
Project on GitHub

Tags:
Rating0
Comments0

Из обсуждения в телеграме.

Кстати, я кажется понял, откуда дипсик берет ответы на вопросы, которые я не могу найти в гугле.

Скорее всего, из китайского интернета.

Так как иногда он внезапно переходит на китайский.

Китайский интернет - это нечто вроде темной материи)))

Кстати, это интересная идея. Обычную материю можно сравнить с латинским алфавитом, а темную - с иероглифами. По сути стандартная модель элементарных частиц и представляет собой нечто вроде обычного алфавита.

Похоже, что гравитация - это единственное, что объединяет обычную материю с темной. Получается, что гравитация - это нечто вроде звуков, так как алфавиты в разных языках разные, а звуки по большому счету одни и те же. Вероятно так же, что темная материя - это не один вид материи, а много разных, типа как есть много разных языков. И, видимо, каждый тип материи обладает собственными фундаментальными взаимодействиями вместо сильного, слабого и электромагнитного. Видимо, именно поэтому в современной физики удалось объединить эти 3 типа взаимодействий, но не удалось объединить их с гравитацией. то есть гравитон не удастся вписать в стандартную модель, так как частицы - это символы, а гравитоны - звуки.

- Звуки есть уникальные для многих языков.

- Есть и уникальные, но большая часть - общие. По сути, любой звук сводится к звуковым волнам, тогда как символы - это более сложная модель, тесно связанная с сознанием.

P.S. Прошу прощения за формат поста, но сама идея показалась мне достаточно интересной для того, чтобы её высказать.

Tags:
Total votes 2: ↑0 and ↓2-2
Comments0

Back in July I wrote about Gaunt Sloth Assistant hitting 0.9.2. Today we finally get to say version 1.0.0 is out. This is the release where we upgraded our primary dependency the LangChain/LangGraph to v1, moved the runtime baseline to Node 24/npm 11, and declared the tool ready for daily automation work.

What changed since the last post?

  • Reviews concluded with a call to the built-in rating tool. By default the scale is 10/10, the pass threshold is 6/10, and rates below 6 cause the review command to return non-zero exit codes. If you prefer warnings-only mode, set commands.review.rating.enabled (and/or commands.pr.rating.enabled) to false in .gsloth.config.*.

  • Identity profiles are now part of the core workflow, letting you swap prompts, models, and providers per folder with a simple -i profile-name flag.

  • Middleware is now first-class. You can stack built-ins such as anthropic-prompt-caching or summarization, or point at your own JS middleware objects, and the CLI shows what runs alongside every command.

  • Deep merging for command configs fixes the annoying situation when overriding the content provider deleted the rating settings. Defaults now survive partial overrides.

  • OAuth caching, documentation, and the README were refreshed so newcomers can get productive faster, and dependencies were hardened while we were here.

Identity profiles are the everyday quality-of-life feature in 1.0.0. They let me flip between system prompts, model presets, and tool chains per task. gth pr 555 PP-4242 still reads .gsloth/.gsloth-settings, but gth -i devops pr 555 PP-4242 automatically switches to .gsloth/.gsloth-settings/devops/ with whatever prompts and providers that folder declares.

Need to talk to Jira through MCP? Drop a profile such as jira-mcp that contains its own config and call gth -i jira-mcp chat. A trimmed example looks like this:

{
  "llm": {
    "type": "vertexai",
    "model": "gemini-2.5-pro"
  },
  "mcpServers": {
    "jira": {
      "url": "https://mcp.atlassian.com/v1/sse",
      "authProvider": "OAuth",
      "transport": "sse"
    }
  },
  "requirementsProviderConfig": {
    "jira": {
      "cloudId": "YOUR-JIRA-CLOUD-ID-UUID",
      "displayUrl": "https://YOUR-BUSINESS.atlassian.net/browse/"
    }
  },
  "commands": {
    "pr": {
      "contentProvider": "github",
      "requirementsProvider": "jira"
    }
  }
}

Switching between those folders is now just a flag, so I can keep separate personas for DevOps, documentation, or any remote MCP I need to reach.

The rater tool is the other big unlock. Reviews always included qualitative feedback, but 1.0.0 makes the score actionable: we share it with the review module through an artifact store and wire it to setExitCode, so CI can fail automatically when quality is below the goal. Setting guardrails for production services now takes seconds and no longer depends on custom scripts.

Finally, the middleware registry and artifact store give me nicer hooks for future automation. I can wrap model/tool calls, log exactly what ran, and still let Gaunt Sloth handle the chat, code, PR, or init commands it already mastered. The CLI remains a small TypeScript binary you can ship through npm or run via npx gth, but it now has the internal architecture to evolve without hacks.

If you want to try the release, the quickest path is still
npm install -g gaunt-sloth-assistant

The GitHub repo at https://github.com/Galvanized-Pukeko/gaunt-sloth-assistant is there for reference and issues. File an issue, drop feedback in Discussions, or wire the new rater tool into your CI and tell me how it behaves—I would love help pushing 1.1 features.

Huge thanks to all contributors for their PRs and testing.

Tags:
Rating0
Comments0

Next.js i18n битва: next-intl vs next-i18next vs Intlayer
Добавление нескольких языков в приложение Next.js может быть сложным: большие JSON-файлы, отсутствующие переводы, запутанная конфигурация.
Вот краткий обзор:
next-intl – лёгкий, простой, отлично подходит для небольших проектов.
next-i18next – функционально богатый, много плагинов, но требует больше настроек и поддержки.
Intlayer – современное решение для Next.js: контент на уровне компонентов, безопасность TypeScript, проверки на этапе сборки, SEO-помощники и опциональный визуальный редактор.
Если вы хотите масштабируемую, модульную и безопасную i18n для ваших Next.js 13+ приложений, Intlayer стоит попробовать.
📖 Полное сравнение здесь: https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer

Tags:
Total votes 1: ↑1 and ↓0+1
Comments0

Хватит fine-tuning. Просто постройте RAG-пайплайн.

Я всё чаще вижу, как люди делают fine-tuning LLM под задачи, где это вообще не нужно.
В большинстве случаев вам не нужен очередной «наполовину дообученный» модельный франкенштейн — вам нужен RAG (Retrieval-Augmented Generation).

Почему:

  • Fine-tuning дорогой, медленный и хрупкий.

  • В большинстве кейсов не нужно «учить» модель — достаточно дать правильный контекст.

  • С RAG модель всегда актуальна: обновили документацию → обновили эмбеддинги → готово.

Чтобы доказать это, я собрал ассистента по документации на RAG:

  • Документация режется на чанки и эмбеддится

  • Запросы пользователей матчатся через косинусное сходство

  • GPT отвечает с нужным контекстом

  • Каждый запрос логируется → вы видите, с чем юзеры сталкиваются (пробелы в доках, запросы фич, инсайты по продукту)

👉 Живое демо: intlayer.org/doc/chat
👉 Полный разбор + код + шаблон: intlayer.org/blog/rag-powered-documentation-assistant

Моё мнение:
Для большинства задач с документацией и продуктом fine-tuning мёртв.
RAG проще, дешевле и куда более поддерживаемый.

Но, может быть, я не прав. Что думаете?
Есть ли будущее у связки fine-tuning + RAG, или RAG — очевидное решение для 80% кейсов?

P.S.: это перевод поста с английского на русский при помощи ChatGPT.

Tags:
Rating0
Comments0

Samsung expands GPU team: open RTL Designer and Performance Architect positions

The team at Samsung that designs the Xclipse GPU in Galaxy phones with Exynos SoC – is doing expansion. There are multiple jobs available, including positions in the RTL and Architecture teams:

These positions are in two locations:

  • Samsung Advanced Computing Lab (ACL) in San Jose, California

  • Samsung Austin Research and Development Center (SARC) in Austin,Texas

The compensations listed in the opening descriptions are base salaries only. The total compensation includes serious performance-based bonuses.

You can apply at the website – or, if you want, I can make you an internal referral since I (Yuri Panchul) am a member of the GPU team. Getting a referral from me is easy:

  1. First, you solve the SystemVerilog Microarchitecture Challenge for AI No.2. Adding the Flow Control, an open-source challenge from Verilog Meetup – and send me the solution to yuri@panchul.com.

https://github.com/verilog-meetup/systemverilog-microarchitecture-challenge-for-ai-2

2. Then I discuss your solution with you either in person (if you live in the San Francisco Bay Area) or over Zoom. I don’t care whether you solve the challenge manually or use AI for it, but I need you to explain every single line of the solution. In addition to it, I may ask you a couple more questions (manual solutions only in front of me, no AI).

3. If I like your solutions, I will enter your data in the Samsung internal referral website. After that, you will get an email from the website and can start an application to go through the official Samsung interview process. I will also forward your resume to the hiring managers and the team’s recruiters.

4. Note that solving a couple of puzzles for me is not a part of the official Samsung interview process. This is just my personal way to ensure I forward only the relevant resumes to the company. Every single member of our RTL teams would solve such a thing easily, so this is not something difficult, just some basic techniques to design a static pipeline in Verilog, generic for the industry.

Our team consists of friendly, proficient, and helpful people. We also have a fancy office that just got 10-year anniversary:

Thank you,
Yuri Panchul

Tags:
Total votes 2: ↑2 and ↓0+2
Comments0

Since my last post on Gaunt Sloth Assistant, we have achieved a number of things.

As a reminder, Gaunt Sloth is an open-source CLI AI client, built with TypeScript, distributed via NPM,
and it works on Linux, Windows, and Mac. The primary feature is PR and code reviews, and the fact that it is small means you're not going to spend priceless minutes waiting for this tool to install in your workflow. GitHub repo is https://github.com/Galvanized-Pukeko/gaunt-sloth-assistant

Gaunt Sloth doing code review in GitHub
Gaunt Sloth doing code review in GitHub

Gaunt Sloth is at version 0.9.2 now, and achievements since the last post are:

  • two new contributors

  • created an example GitHub workflow for PR reviews. We have this workflow in our own repo, and I succeeded in deploying it in a build pipeline at work: https://github.com/Galvanized-Pukeko/gaunt-sloth-assistant/blob/main/.github/workflows/review.yml (pay attention, using AI review in public repo with PRs from strangers may leak your API keys, do your homework)

  • added the ability to run tests and lint, so Gaunt Sloth can build a complete feature (we're using it to engineer its own features now. This is helpful as part of testing)

  • improved chat loop (including a retry feature, for when the AI gives you an annoying "overloaded" message)

  • confirmed that it works with local LLMs from Ollama (not all models work. It needs a model with text-generation target and with tool use)

  • Added preset for open router

  • crossed the 500 commits line

Plans

Most of the documentation is in two markdown documents. I still need to find time or contributor to build proper documentation. We're probably going to use typedoc to use combination of generated documentation and markdowns.

Tags:
Rating0
Comments0

Here is my take on Verilog-vs-VHDL

In the early 1990s many people thought that Verilog was a temporary language and was going away with VHDL standard adoption.

For example, Verilog was plagued by race conditions in the form:

always @ (posedge clock) a = b;
always @ (posedge clock) c = a;

You had to use non-blocking assignments or delays in simulation to counteract the fact that the order of always block evaluation is indeterminate. This led to a pre-synthesis-post-synthesis simulation mismatch. At the same time, many people complained that VHDL has different incompatible arithmetic packages (numeric_std and std_logic_arith) and writing something like

wire [3:0] a, b;
wire [4:0] c = a + b;

becomes something like

signal a, b : std_logic_vector (3 downto 0);
signal c : std_logic_vector (4 downto 0);
c <= std_logic_vector (resize (unsigned (a), 5) + resize (unsigned (b), 5))

Finally John Cooley, the first blogger of EDA industry (he started his blog http://deepchip.com even before the word "blogger" appeared in the press) decided to make a hackathon in 1997 (at that moment the word "hackathon" was also unknown) to find out who is more productive - Verilog or VHDL engineers.

John Cooley published the results in an article

"The Unexpected Results From A Hardware Design Contest:  Verilog Won & VHDL Lost? -- You Be The Judge!"

https://www.angelfire.com/in/rajesh52/contest.html

He found that the Verilog engineers were more productive in his challenge.

After that more and more companies started to switch to Verilog, especially when Verilog-2001 and SystemVerilog integrated all the features of VHDL (packages, generate, records/structs etc).

In the early 2000s Synopsys developers thought that VHDL was going to die soon. However they continued to maintain VHDL support for die-hard VHDL users like Texas Instruments, IBM and the military. But even the Pentagon eventually back in 2008 allowed contractors to mix VHDL RTL designs with SystemVerilog testbenches (before they used a mix of VHDL and Specman e language).

However, VHDL at some moment stopped declining and stabilized. For example PowerVR GPU used in Apple iPhone 1-4 was written in VHDL by the British company Imagination. VHDL is still used but EDA companies give SystemVerilog priority when implementing language support in their tools.

Tags:
Total votes 1: ↑1 and ↓0+1
Comments3

It's been a while since I last published anything on Habr, about 10 years or so, and today is the day to share my small open-source project.

The project, called Gaunt Sloth Assistant, is a CLI AI client built with TypeScript (LangChain.js), distributed via npm, and works on Linux, Windows, and Mac. The user is in full control of the prompts, and forming your own system prompt is encouraged, but it has a default one as well.

GitHub: https://github.com/andruhon/gaunt-sloth-assistant

NPM: https://www.npmjs.com/package/gaunt-sloth-assistant

Gaunt Sloth currently has dependencies allowing it to use a simple JSON configuration for VertexAI, Anthropic, Groq, DeepSeek and OpenAI (consequently everyone else who using OpenAI format, e.g. Inception). Hypothetically, it should work with any model supported by LangChain; there's even a package available for Yandex, which I have never tried, but I think it should work if you install the package and provide a JS config. OLLAMA? It might work; I have never tried, but I will appreciate it if someone shares their experience.

The Gaunt Sloth can review pull requests and match them with requirements from a Jira or GitHub issue, review local diffs, chat, has access to the filesystem, and can write code to the filesystem.

The Gaunt Sloth is a versatile tool with a range of helpful capabilities:

  • Reviews pull requests (e.g., 42) and matches them with requirements from a Jira or GitHub issue (e.g., 12).

    • gth pr 42 12

  • Reviews local diffs.

    • git --no-pager diff | gth review

  • Provides an interactive chat session.

    • gth chat

  • Has access to the filesystem to read and write code.

    • gth code

Of course, it has MCP and OAuth, so you can connect to a remote MCP such as Jira and create and edit stories like a boss.

It also has a tiny feature that can log time against a Jira issue when it finishes reviewing a PR. This is not documented yet, but you can find the config example in the release notes or ask me in the comments (as far as I know, Jira MCP can't do that).

Apart from that, you can supply simple local AI tools in LangChainJS tool format, as simple as this:

import { tool } from "@langchain/core/tools";
import { z } from "zod";
const multiply = tool(
  ({ a, b }: { a: number; b: number }): number => a * b,
  {name: "multiply", description: "Multiply two numbers", schema: z.object({ a: z.number(), b: z.number(), })}
);

It is very config and guidelines-driven. I have a separate config in each project, setting it up for me and providing the necessary guidelines, so the AI does not screw up because of a lack of information.
Also, I have a number of non-coding projects. I have a separate one for Jira with detailed instructions on how to work with it and another for writing.

Why, when there is X and Y?

Some months ago, I was looking for a CLI assistant based on LangChainJS/LangGraphJS and didn't find many. There was a factor of curiosity and other factors as well.

The initial intent was to build a tool into which I could pipe a diff and send this diff along with guidelines to the AI, but over time it evolved, new features were built, and potentially, this can be used as a coding agent.

E.g., you type gth code, tell it implement requirements.md, so it would read the file with requirements and go coding.

GeminiCli, ClaudeCode? They were not officially released when I started, and I didn't know they were in development.
Aider, Goose? Sure, they are good and probably better options, but this would be harder to make your contributions and add features you need.

So what?

There are more features I would like to build than I have time for.
Contributors are welcome.
Trying it out and creating an issue, or sharing feedback in Discussions is also a contribution; a PR would be even better.

Tags:
Total votes 1: ↑1 and ↓0+1
Comments0