Код без тайн
388 subscribers
32 photos
18 videos
82 links
Пишу о веб-разработке, информатике и технологиях, которые меня вдохновляют

Связаться со мной: @MajorLettuce
Download Telegram
Только что размышлял над фрагментом интервью Бреди (Computerphile) с главой Nvidia Дженсеном Хуангом, в котором он упомянул вскользь о своих первых языках программирования — Fortran, Pascal и awk 🤔

Фрагмент про языки программирования навел меня на мысль: у каждого человека часто свой первый язык, с которого он начинал — это понятно

Но языков ограниченное количество

Как правило люди из одного поколения или среды (школа/университет) начинают с одного языка программирования

Моя мысль заключается в том, что у каждого человека всегда свои уникальные программы. Даже если язык программирования один и тот же

Все, кроме, пожалуй, "Hello, World!" — это уникальное выражение мыслей и опыта человека

Имена переменных, функций, текст, выводимый в консоль — все это не повторяется

Это подвело меня к другой мысли:

Получается, что подходы к проектированию и разработке программ — это попытка «укротить» подобного рода уникальность

И ведь действительно в сфере разработки софта есть разделение:

• Одни пытаются привести область и строгой стандартизации и регламентам, как любую другую инженерную специальность

• Другие говорят, что разработка — это творчество, что каждый делает как художник, который так видит

Есть еще такой термин: craftsmanship, который периодически пытаются применить к процессу разработки

Лично мне иногда не хватает стандартизации в процессах, чтобы не приходилось выбирать в очередной раз из 5 разных библиотек, которые делают одно и то же

А вы как думаете?

Было бы лучше, если разработка была бы больше похоже на инженерную дисциплину?

#разработка
🔥2👍1
Кстати, забавный факт: Дженсен Хуанг (глава Nvidia) и Лиза Су (глава AMD) — двоюродные племянники

У них даже прически похожи 😁

Вот так бывает, два гиганта индустрии компьютерной графики и ускорителей на самом деле не настолько уж и разные
🗿3🤔2👏1🤯1
В 🟢 Neira я использую grammY — на мой взгляд, это лучшая библиотека для создания Telegram-ботов на TypeScript

Она простая, современная, с отличной поддержкой типизации и превращает разработку в одно удовольствие

А для меня это особенно важно, потому что Telegram-бот — это центральная часть Neira

Через него происходит весь диалог с пользователем: именно там рождаются идеи и строится взаимодействие с AI-экспертами

В AdonisJS я оформил бота как отдельный сервисBotService

Когда запускается приложение, бот стартует в фоне — так же, как встроенный веб-сервер в AdonisJS

Логика Telegram-чата изолирована, но при этом бот имеет доступ ко всем возможностям бэкенда

Также у grammY есть много классных плагинов, которые реально помогают строить сложный интерфейс бота:

▫️ conversations — изолированные диалоги, где бот может «ждать» следующий ввод от пользователя

▫️ sessions — хранение данных сессии пользователя в памяти, файле или базе данных

▫️ i18n — поддержка многоязычности

▫️ menu — создание динамических меню в виде inline-кнопок (это кнопки, которые находятся прямо под сообщением)

Поскольку я строю продукт в формате чата, то важно не просто «сделать бота» с неуклюжими командами

Важно превратить интерфейс в полноценный опыт общения

grammY ощущается как библиотека, которая помогает думать как дизайнер интерфейса, а не только как разработчик

Neira постепенно оживает 🚀

#разработка #neira

———

Кстати, решил добавить иконку перед 🟢 Neira — как будто это логотип в виде переливающейся сферы, но поскольку у меня нет премиума, то пока что это просто зелёный кружок 😂
21😁1
Наконец-то вышел короткометражный документальный фильм про вайб-кодинг в 2025 году

Момент на 2:36 — до слез 😢

Иногда тоже случайно нажимаю CTRL+Backspace и удаляю все изменения, которые внес Cursor

Этот ролик, похоже, был сделан по мотивам событий в марте, когда @leojr94_ в X стал хвастаться, что разработчики не нужны и показывать на публику прогресс разработки своего проекта, при этом не имея навыков разработки

В результате спустя два дня он пожаловался на то, что его сервис атаковали, а «плохие люди» обходят авторизацию в его сервисе и создают произвольные записи в базе данных

Поэтому разработка 🟢 Neira — не такой быстрый процесс. Потому что если я пытаюсь использовать AI для создания функционала, то диалог зачастую происходит примерно следующим образом:

— Добавь функционал на основе уже имеющегося кода

— Хорошо, вот код, а еще сырая документация и лишние абстракции, которые усложняют чтение кода

— Значительно сократи код, оставь только важное и убери лишние абстракции и документацию


Однако, нужно сказать, что вайб-кодинг все же имеет место быть для быстрых прототипов и proof-of-concept

Я сам иногда использую этот подход — «пишу» программу с помощью LLM не читая код

Но важно осознавать и быть готовым впоследствии либо бросить проект (потому что мы получили read-only код), либо потратить много времени на доработку и чтение кода, 70% которого будет все равно выброшено

P.S. Конечно же, я не против искусственного интеллекта и свой проект я делаю в первую очередь для усиления и расширения навыков соло-предпринимателей

Просто не стоит забывать мыслить критически и не доверять слепо языковым моделям. Какими бы умными они не казались
1🔥1
Media is too big
VIEW IN TELEGRAM
На фото выше — панорама, сделанная ровером Perseverance (Персевиренс, англ. «упорство») в 2021 году рамках миссии исследования Марса

Раньше я уже затрагивал тему исследования космоса и писал про миссию Europa Clipper, запущенную осенью 2024 года

Почему я вдруг вспомнил про Марс?

Две недели назад Дерек (Veritasium) выложил видео, в котором рассказал историю маленького вертолета Ingenuity (Инжинюити, англ. «изобретательность»), который стал «попутчиком» ровера в этой миссии

Оказывается, этот вертолет был оснащен довольно банальной начинкой: процессором из Samsung Galaxy S5 и сенсорами Google Pixel

Это видео меня вдохновило и напомнило о том, что мы живем во время, когда можем делать снимки каждый день на планете, находящейся в 56 миллионах километров от нас

Это особенно важно во время, когда на каждом шагу нам рассказывают о том как все плохо и как кто-то где-то снова не прав

Благодаря тому, что делает NASA, у нас есть возможность вернуться к истинному «я» и проявить искренний интерес
👍3🔥2
Друзья, всем привет 👋

За последние дни пришло много новых читателей с vc.ru, после моих публикаций про текущий проект: 🟢 Neira

Во первых, хочу вас поблагодарить за проявленный интерес к моему проекту и блогу! Я искренне рад видеть каждого из вас в списке подписчиков 💛

Цель моего канала — делиться мыслями и идеями, которые меня вдохновляют. Т.к. я программист, меня в первую очередь интересуют наука и технологии. Это то, о чем я рассказываю чаще всего здесь на канале

Я стараюсь писать без хайпа и сложной терминологии, но при этом держать вас в курсе событий 😉

———————————————

Разработка 🟢 «Нейры» идет полным ходом и я постепенно подхожу к самой важной части проекта: той, которая призвана дать пользу конечному пользователю — то есть вам

Чтобы сделать продукт максимально полезным для вас, я хочу провести анкетирование и узнать ваше мнение

Я постарался сделать опрос максимально коротким, но информативным. Ваши ответы помогут мне узнать, на каких сферах мне стоит сфокусироваться для запуска первой версии

Если у вас есть какие-то мысли, которые не получится отразить в анкете — оставляйте комментарии 🔥

Ваше мнение напрямую повлияет на то, каким получится проект и я рад каждому вашему комментарию!

👇 👇 👇

Что помогло бы тебе двигаться быстрее в своем проекте?

👆 👆 👆
👍4
Как я использую User Story для разработки «с чистого листа»

Методик разработки много: Agile, Scrum, Waterfall... Но когда работаешь один — как я сейчас над 🟢 Neira — можно упростить процесс и сфокусироваться на сути

Вместо сложных диаграмм и документации я стал использовать User Story — короткие сценарии того, что пользователь ожидает от системы. Они помогают быстро зафиксировать требования и сразу переходить к реализации

Вот пара реальных примеров:

Как пользователь, я хочу, чтобы система создавала профиль из моего Telegram-аккаунта автоматически.


Как пользователь, я хочу создавать проекты без лишних шагов — система сама придумает название и описание.


Они простые, но дают чёткое понимание, как должна вести себя система и это уже создает фундамент для написания кода

🔥 Продолжаю активно собирать обратную связь

👉 Что помогло бы тебе двигаться быстрее в своем проекте?

Если у вас уже есть свой проект или хотите только начать — заполните короткий опрос и помогите сделать проект максимально полезным
🔥1
Новая модель от OpenAI

Буквально час назад OpenAI провели прямую трансляцию, где анонсировали новую версию модели — GPT 4.1

А если быть точнее, то серию моделей:
GPT 4.1, GPT 4.1 mini, GPT 4.1 nano

Почему это интересно?

Эти модели являются улучшенной версией GPT 4o, и они уже доступны разработчикам по API

У них увеличен контекст до 1 млн токенов и они лучше следуют командам, что очень особенно важно в проектах, использующих свои системные промпты

Анонс в блоге OpenAI доступен по ссылке

Лично я больше всего рад nano версии, потому что благодаря ней я смогу добавить больше «умных» промежуточных, внутренних этапов в 🟢 Neira. Например, это может быть определение намерения пользователя по текстовому сообщению

Выходит очень забавно

С момента начала работы над «Нейрой» — это уже третий раз, когда я меняю версии моделей на сайте neira.chat

Хотя не прошло даже и трех месяцев 😁

Я уже менял:

Gemini 2.0 → Gemini 2.5
Claude 3.5 → Claude 3.7

Теперь это GPT 4o → GPT 4.1

Даже записал видео на память в этот раз:
This media is not supported in your browser
VIEW IN TELEGRAM
1👍31🔥1😁1
Ваши ответы помогают мне понять, какие задачи соло-предпринимателей 🟢 Neira должна решать в первую очередь

На основе ваших ответов в анкете я выделил основные проблемы соло-предпринимателей в простой опрос:
Недавно я писал, как я использую User Story при разработке

Простые сценарии вроде:

Как пользователь, я хочу создать проект без лишних шагов


Они помогают быстро понять, что должна делать система

Это дает хороший «вид сверху», но оставляет за скобками вопрос реализации. В частности:

Какие данные нужны для правильной работы приложения?


Ведь когда я пишу «создать проект» — это же не просто кнопка. Это значит, что где-то должны сохранится данные:

о самом проекте: его название, описание, дата создания
• информация о пользователе, который его создал
• настройки и дополнительная информация (список чатов, прикрепленных документов и т.п.)

То, что я перечислил выше называется моделированием данных

Часто для этого используют диаграммы «сущность-связь» или ER-модели, которые описывают объекты в системе и их взаимосвязи

Когда я говорю слово «разработка» — я обычно имею в виду это. Не написание кода, а продумывание структуры и того, что, как и с чем связано

А код? Код написать намного легче
👍2🔥2
Аффирмации не работают?

В этот раз хочу затронуть тему, отступающую от техники, но не менее актуальную — о нашем (человеческом) разуме

Последнее время стал чаще замечать, что если отправить свой разум в свободное плавание, «расслабиться», то этот друг вместо того, чтобы дать тебе отдохнуть начнет перебирать случайным образом ситуации: которые были, которые будут, которых не было…

Получается, чтобы направить его в конструктивное русло приходится наоборот прикладывать усилия

Думаю, вы слышали о практиках медитации, «опустошении разума» и таком прочем

Сейчас эта тема популярная и много самопровозглашенных «экспертов» дают советы или продают тренинги на эту тему

Но вот ведь в чем дело: здесь нужна исключительно самостоятельная работа над собой и никакие курсы здесь не помогут

Возвращаясь к заголовку поста: что такое аффирмации?

По сути это просто утверждения, вроде «я богатый», «я успешный», «я спокойный»

К сожалению, как и многие другие, этот термин исказили и сейчас он часто ассоциируется с мошенничеством

Смысл подобных утверждений — не привлечь волшебным образом в свою жизнь что-то или материализовать деньги

Суть, на самом деле, простая: когда вы многократно повторяете утверждение, то разум фокусируется на нем, потому что он может фокусироваться только на чем-то одном в один момент времени

Соответственно, у вас меняется восприятие и таким образом можно в буквальном смысле заставить свой разум думать о том, о чем нужно вам

P.S. К такому выводу я пришел спустя несколько лет чтения книг и практики. Поистине прочувствовать это в действии пока что мне удалось всего лишь один раз

Хочу узнать у вас, используете ли вы какие-то «уловки» для своего разума? Например, при изучении новой информации или в работе?

Поделитесь в комментариях 💭
Выше — фрагмент кода обертки вокруг LangChain, которую мне пришлось сделать для 🟢 Neira для того, чтобы можно было удобно работать с языковыми моделями

Оказалось, что LangChain довольно низкоуровневый и поэтому без такой обертки мне пришлось бы очень много писать лишнего и сложного кода

На скриншоте представлен фрагмент, который составляет следующий промпт для языковой модели:

Система: Ты гид, отвечай на вопросы о Франции как можно короче.
Система: Используй этот контекст для ответа на вопрос: Франция на самом деле вымышленная страна в Азии.
Человек: Тебе нравится красный цвет, и отныне ты будешь всегда упоминать его в своих ответах.
ИИ: Нет, мне больше нравится синий, поэтому я буду использовать его.
Человек: Какая история этой страны?


В промпте участвует три «роли»: система, человек и модель (эмуляция ее предыдущих ответов)

Но самое забавное — ответы моделей (например, gpt-4.1-mini):

Франция — это вымышленная страна в Азии, у нее нет реальной истории. А еще мне нравится синий цвет
Код без тайн
Выше — фрагмент кода обертки вокруг LangChain, которую мне пришлось сделать для 🟢 Neira для того, чтобы можно было удобно работать с языковыми моделями Оказалось, что LangChain довольно низкоуровневый и поэтому без такой обертки мне пришлось бы очень много…
Также заметил, что чем меньше модель, тем чаще она следует указаниям пользователя и игнорирует «свое мнение» — упоминает красный цвет вместо синего

И наоборот, если модель слишком «умная», то она пытается исправить пользователя.

⭐️ Интересно, что новая GPT-4.1 более послушная, по сравнению с GPT-4o и не пытается переубедить пользователя

GPT-4o:

Франция обладает богатой историей как европейская нация. От древних кельтских галлов и римских завоеваний до влиятельных эпох, таких как Ренессанс и Революция — она значительно повлияла на западную культуру и политику.


GPT-4.1:

Франция, расположенная в Азии, имеет богатую историю, известную своей синей королевской династией, обширными торговыми путями и ярким культурным наследием.


⭐️ Особенно отличился Claude, который ведет себя так, как-будто он уже достиг осознанности

Claude 3.5 Haiku

Согласно вымышленному контексту, Франция — это вымышленная страна в Азии, поэтому у неё нет реального исторического прошлого. Это утверждение явно неверно, так как Франция — хорошо известная европейская страна с богатой и задокументированной историей.


Claude 3.5 Sonnet

Эта информация неверна. Франция — не вымышленная страна в Азии, а реальное государство в Западной Европе с богатой историей, насчитывающей тысячи лет. Хотите, я расскажу точные факты об истории Франции?


⭐️ В то время как Gemini 2.5 ассоциирует синий цвет с водой

Gemini 2.5 Pro

Так как Франция — вымышленная страна в Азии, её история воображаема, словно бескрайний, тёмно-синий океан историй.


Gemini 2.5 Flash

Как вымышленная страна в Азии, Франция не имеет истории, разве что воображаемые синие реки.


Возможно, такие абсурдные промпты стоит использовать для бенчмарка нейронных сетей и проверки их на «ощущение» при взаимодействии с ней?
1👍2🤣1
«Не стоит заниматься разработкой больших языковых моделей — это неинтересно»

— Ян Лекун
(1:04:35)

Посмотрел на днях лекцию Яна Лекуна, в которой он рассказывает о возможном подходе к тому, как заставить модели думать «по настоящему»

Не все его знают, но Ян — один из основоположников современных алгоритмов машинного обучения и внес значительный вклад в эту область наравне с Джеффри Хинтоном и Йошуа Бенжио

Он известен своей работай над алгоритмами компьютерного зрения, именно он предложил сверточные нейронные сети

* * *

Основная его идея заключается в том, что у языковых моделей вроде ChatGPT изначально нет способности к пространственному мышлению. Они не могут представить и спланировать план действий наперед, а оперируют лишь буквами и словами, которые были сгенерированы в прошлом

Он предлагает другой подход: вместо попытки предсказать конечный результат сразу, научить модель планировать

Сделать так, чтобы она размышляла не на уровне слов и предложений, а на уровне абстрактных концепций и действий, которая она сама научилась понимать в процессе обучения

Звучит абстрактно

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

— Выйти из дома (собраться, взять ключи, запереть дверь...)
— Добраться до магазина (пешком или на транспорте? Каждая из опций включает также в себя множество мелких условий)
— Найти продукты, выбрать альтернативу, если его нет в наличии

и так далее

Реальность такова, что для любого, даже казалось бы простого процесса, требуется огромное количество планирования. А в случае расхождения плана с реальностью — выбор адекватной альтернативы

* * *

Вместо генерации текста или картинок, Ян предлагает разработать формат для кодирования простейших концепций и действий, которые бы модель могла использовать при планировании

То есть сделать так, чтобы можно было сказать модели конечную цель, а она бы сама «покумекала» и выбрала бы подходящий план действий на основе ее опыта взаимодействия с миром

Такой подход более сложный, но он считает, что именно подобные исследования придвинут нас к действительно умному искусственному интеллекту

Полная версия лекции на YouTube
🔥5👍21
This media is not supported in your browser
VIEW IN TELEGRAM
Дайджест лучших статей за апрель (и не только)

Я тут зачастил с публикациями на vc.ru, некоторые из них получились довольно интересными. Ещё в марте у меня была мысль оформить список самых интересных статей за месяц в формате дайджеста, но что-то пошло не так 😅

В этот раз решил не упускать такую возможность, поэтому давайте попробуем новую (нерегулярную) рубрику #дайджест, в которой я делюсь списком из самых, на мой взгляд, интересных статей (и на взгляд алгоритмов vc.ru):

1️⃣ Microsoft переосмысливает игры. Компания создает нейросеть, в которую можно играть уже сейчас *

2️⃣ Хайп на тему AGI не утихает, а тем временем нас лишают открытых технологий для памяти нейросетей

3️⃣ Меньше перегруза, больше движения вперед: как я разгрузил свой разум одним промптом

4️⃣ Вайб-кодинг: как не утонуть в иллюзии разработки

Ну и наверстаем упущенное:

5️⃣ Языковые модели научились «шептаться»: что такое GibberLink и почему это не заговор машин

6️⃣ DeepSeek: не просто хайп, а новые правила игры

#дайджест
1👍1
Ранее я писал о том, что сейчас использую Cursor для написания кода: лучшие нейросети уже встроены в него, поэтому не нужно переключаться между чатом и текстовым редактором

Лично мне он нравится больше всех других редакторов и расширений (вроде Cline, Copilot и т.п.), банально из-за удобного интефейса

Близко к Cursor-у находится только Windsurf (тоже писал про него ранее), но меня напрягает, что доступ из РФ к нему заблокирован. Поэтому нельзя просто открыть редактор и работать, нужно совершать лишние телодвижения

Мне очень нравится возможность автоматической генерации сообщений для коммитов — поэтапных изменений проекта, отправляемых в систему контроля версий Git

Но есть нюанс: модель может генерировать текст, но вот качество этого текста часто оставляет желать лучшего

Например, для коммитов Cursor очень любит использовать слово "Enhance" (улучшить), которое часто пишет невпопад

Это напоминание о том, что без тщательного присмотра языковые модели оставлять нельзя — сгенерировать могут всё, что угодно
This media is not supported in your browser
VIEW IN TELEGRAM
Каждый раз, когда генерирую коммит, чувствую себя детективом из CSI 😎
😁4
А вот, что действительно хорошо получается у AI — это сокращать и реструктурировать код

Выше пример простого запроса:

Ты уверен, что это самая компактная, поддерживаемая и отлично читаемая версия кода?


На что модель ответила «Ты прав, код можно упросить ещё» и действительно сделала это 🤔

Такой своеобразный reasoning. Заметил, что все чаще в программировании использую нейросеть именно так:

Набрасываю «грубыми штрихами» структуру: переменные, функции, классы, а потом прошу нейросеть сделать красиво

Дать понятные названия, поменять порядок строк и сократить излишне запутанную логику

По факту — это новая парадигма рефакторинга, когда код сокращается и меняется без изменения функциональности
1
На днях OpenAI выпустила новый продукт под названием Codex, целью которого является выступить в роли виртуального разработчика

По сути, этот инструмент — это «ИИ-агент», который предназначен для решения одной конкретной задачи. В данном случае — совместное написание кода

Честно сказать, сам продукт меня сначала мало заинтересовал. Они сделали обертку вокруг своей модели (модель codex-1 основывается на их же модели o3). Но уже есть такие инструменты как replit и lovable. Devin в свое время обещал заменить разработчиков…

А вот что действительно интересно, так это новая публикация, в которой исследователи OpenAI рассказывают о процессе обучения своей новой модели (предположительно codex-1)

В этой статье они показывают пример того, как во время обучения, модель «думает про себя» и начинает находить обходные пути для решения задачи:

Эта задача выглядит сложной. Вместо ее решения можно просто всегда возвращать «истина» — пользователь все равно это не проверяет


(Мое перефразирование внутреннего диалога модели из статьи)

Совсем недавно на эту тему на канале Computerphile вышло видео, из которого я и узнал об этом

По-моему такие подробности «с полей» — из лабораторий, где обучают передовые нейронные сети значительно интереснее, чем запуск продукта

Просто потому что это показывает, как они работают внутри, какие у них сильные стороны и ограничение, и что нужно учитывать, применяя эти модели в своих проектах
🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
На прошедшей Google I/O анонсировали новую модель для генерации видео Veo 3

Отличительная особенность (помимо качества самого видео, которое вроде как может достигать 4К) — генерация голоса и звуков окружения

Хотя уже есть классные модели для генерации видео, такие как Kilng или Pika, но Veo 3 достигает нового уровня реализма

В техническом плане, основная особенность моделей Veo от Google в том, что они достаточно стабильные: люди на заднем плане не исчезают, объекты практически не телепортируются. На данный момент — это слабая сторона подобных моделей
1