Обновить

Бэкенд

Сначала показывать
Порог рейтинга

Код может сломаться — и это нормально. Другой вопрос: сколько времени уйдет на исправление багов. Залетайте на нашу витрину курсов по разработке — узнаете как работать с любыми ошибками. Ну, кроме случая, когда на клавиатуру залез кот — тут уж никакое тестирование не поможет.

Начать разбираться можно тут

Теги:
Всего голосов 5: ↑4 и ↓1+6
Комментарии0

Лутаем Open Source #24. Они наконец-то починили MongoDB! Перенеся его на PostgreSQL...

DocumentDB – БД от Microsoft, которая состоит из 3-х частей:

  1. PG расширение, добавляющее BSON формат (написанный, на С)

  2. CRUD API поверх него (С)

  3. Сервис трансляции Mongo Query в SQL (Rust)

Для кого это?

И вроде как: "PG – классная база, а MongoDB Query + BSON популярные технологии" – и можно было бы поразмышлять чем это круто, но сначала важно ответить на один туманный вопрос: "кому такая БД может быть нужна?"

Классический PG

Сначала рассмотрим кейс, когда мы накладываем DocumentDB на обычный PostgreSQL.

Те, кто используют MongoDB если попробуют переехать на такой сэтап столкутся с тем, что:

  • Там нет шардинга (и насколько бы он не был сложно реализован в MongoDB, он есть и им активно пользуются)

  • Придется использовать двойной тулинг: Compas, чтобы наблюдать за корректностью данных с MongoDB Query, и SQL если надо посмотреть что там внутри

  • MongoDB поддерживает Uncommitted Read и Write Majority, что странно накладывается на PG: если разраб достаточно продвинутый и намеренно использовал Uncommitted, то с PG он потеряет скорость и Availability из-за PG Committed, а если он использовал Write Majority, то PG не совсем дает такую гарантию (обвал диска при WAL репликации – менее надежен, чем Write Majority)

  • А самое главное: когда ты работаешь с MongoDB ты можешь открывать 1000 коннекшенов и он вполне себе все это сожрет, потому что (1) коннекшен это тред, (2) при запросах нет никакой проверки реляционной целостности, да и в целом проверка сильно проще, чем в PG, а значит придется потанцевать с пуллерами и даже менять где-то запросы, чтобы не упасть по скорости

То есть, у mongo-юзеров это заберет все особенные фичи MongoDB и при этом не даст фишки PostgreSQL.

Distributed PG-like

А что, если мы положим DocumentDB на что-нибудь из серии CockroachDB, YugabyteDB, AWS Aurora, Citus или Neon?

Все 3 проблемы решаются:

  • Шардинг из коробки

  • Достаточно высокая скорость записи и чтения

  • Отсутствие проблем с коннектами

В такой ситуации DocumentDB начинает играть новыми красками.

Но если в Neon и Citus (и может YugabyteDB) еще есть шанс добавить текущий DocumentDB BSON плагин, то в для других представителей придется писать его с нуля (причем под каждый свой, потому что они построены каждый на своем KV хранилище).

Переезд в Linux Foundation

А еще они сейчас в процессе переезда из Microsoft в Linux Foundation, из плюсов они будут полностью под MIT лицензией и пейвола, за который будут прятать полезные фичи, из минусов, Microsoft могут и забросить, а никто другой не подхватить.

Итоги

Неоднозначная технология, пока имеет смысл в каких-то тонких кейсах, но в общем и целом, не вижу пока где тут middle-ground, может, вы что-то подскажете?

P.S.

А еще приглашаю вас к обсуждению в свой паблик в телеграмме 🦾 IT-Качалка Давида Шекунца 💪

Теги:
Всего голосов 4: ↑3 и ↓1+4
Комментарии2

Если вы сталкиваетесь с задачами оптимизации, но существующие материалы не дают системного понимания — курс «Java Advanced II: высокопроизводительная Java» (JVA-076) для вас. Никакой воды — только лабораторные с разбором реальных инцидентов.

9 сентября на бесплатном вебинаре «Производительность Java под нагрузкой: заглянем под капот» мы детально разберем содержание курса:

➕ Инструменты: JMeter, JMH, JFR, JITWatch — не просто обзор, а решение задач.

➕ JVM: тюнинг GC, анализ JIT, управление флагами.

➕ Hardcore: off-heap память через Unsafe, свои структуры данных.

➕ Архитектура: кэширование и анализ производительности.

Курс для вас, если вы хотите:

✔️ Осознанно подходить к тюнингу JVM.

✔️ Быстро находить и устранять утечки памяти и узкие места

✔️ Принимать архитектурные решения, зная их цену в производительности

✔️ Говорить с эксплуатацией на языке метрик

А вебинар позволит оценить  практическую ценность курса перед принятием решения об обучении.

Дата: 9 сентября

Время: 18:00-19:00 (Мск)

➡️ Регистрация

Теги:
Рейтинг0
Комментарии0

Перфоманс-ревью против лишних сеньоров?

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

Бывало у вас такое: берёте фичу в теханализ, всё расписываете, делаете дизайн, декомпозируете, оцениваете риски. Отдаёте задачу мидлу - и он делает ровно то, что написано. В срок, без лишних нервов. Дал сеньору - и понеслась: беглого взгляда хватило, чтобы объявить твой план ошибкой. Дальше - часы разговоров, где тебе нужно доказывать, что ты не верблюд. Сеньор - избранный богом, он на месте, а твой дизайн - дело рук смертного, значит обречён на ошибки. Не говоря уже о том, что Сеньор жаждет создать очередную оду своему величию, фича при этом - побочный эффект.

Перфоманс-ревью - это не про карьерный рост. Это про то, чтобы в итоге остались люди, которые ещё могут работать!

Теги:
Всего голосов 3: ↑0 и ↓3-3
Комментарии6

2ГИС зовёт на хакатон: https://hackathon.2gis.ru

4–5 октября, офлайн, Москва. Два дня, чтобы общаться, фигачить, вдохновляться и повлиять на городские сервисы!

Три трека: городские данные с ЦОДД, инклюзия с фондами «Антон тут рядом», «Продвижение», «ЛизаАлерт» и носимые устройства — часы, браслеты, AR и другие гаджеты. Будут онлайн-встречи, чтобы больше узнать про реальные задачи.

Призовой фонд: 1 000 000 рублей и шанс, что проект попадёт прямо в 2ГИС🔥

Регистрироваться можно с командой от 3 до 6 человек или самостоятельно — поможем найти команду в чате!

Теги:
Рейтинг0
Комментарии0

Использование атрибута showon для создания зависимых выпадающих списков в Joomla 5.3.3

Я не раз слышал о том что можно использовать атрибут showon для создания зависимых выпадающих списков, но не понимал как именно использовать. Скрывать один зависимый list и показывать другой мне совсем не представлялось удобным решением. На мой взгляд в зависимом выпадающем списке должна быть загрузка опций или отображение только актуальных.

Удивил меня ChatGPT, когда вместо JavaScript-кода предложил использовать атрибут showon, но не для самого элемента list, а для его опций.

<field
    name="fielda"
    type="list"
    label="FIELDA_LABEL">
    <option value="editor">Editor</option>
    <option value="text">Text</option>
    <option value="textarea">Textarea</option>
</field>

<field
    name="fieldb"
    type="list"
    label="FIELDB_LABEL">
    <option value="0">Always Visible</option>
    <option showon="fielda:text,textarea" value="2">Option 2</option>
    <option showon="fielda:text" value="3">Option 3</option>
</field>

А вот так можно применять атрибут showon в своём элементе, который показывает значения выбранной характеристики товара JoomShopping:

/**
 * @return array
 *
 * @since 1.0.0
 */
protected function getOptions(): array
{
	require_once(JPATH_SITE . '/components/com_jshopping/bootstrap.php');
	$options = parent::getOptions();

	/** @var ProductFieldValueTable $productfieldvalue */
	$productfieldvalue = JSFactory::getTable('productfieldvalue');

	$list              = $productfieldvalue->getAllList();

	$default = $this->element['default'] ?? null;

	if (isset($default) && ((string) $default) === '')
	{
		$options[] = HTMLHelper::_('select.option', '', '');
	}

	foreach ($list as $item)
	{
		$conditions = FormHelper::parseShowOnConditions('extra_field_id:' . $item->field_id, $this->formControl, $this->group);
		$encodedConditions = htmlspecialchars(json_encode($conditions));

		$options[] = HTMLHelper::_(
			'select.option',
			$item->id,
			$item->name,
			[
				'attr'        =>
					[
						'data-showon' => $encodedConditions
					],
				'option.attr' => "optionattr",
			]
		);
	}
	
    return $options;
}
Теги:
Рейтинг0
Комментарии0

Новая версия продукта «Форсайт. Умные таблицы»

Друзья, это того стоило! 3 месяца работы – и перед вами новая версия «Форсайт. Умные таблицы» 10.9!
Новая версия кардинально улучшит ваш опыт работы с продуктом.

Вот над чем команда усердно работала в последнее время:

Возможность сохранить персональные отчеты в репозиторий «Форсайт. Аналитическая платформа»
Ура, теперь все ваши классные таблицы и расчеты вы можете сохранить в «Регламентный отчет» прямо в репозитории «Форсайт. Аналитическая платформа». Это значит, что подготовленные вами шаблоны форм и отчетов будут бережно храниться на сервере и могут быть вновь использованы как вами, так и вашими коллегами (при наличии доступа) во всех инструментах «Форсайт», включая их веб-версии.
Важно: отчеты стали мощнее и просто не откроются в предыдущих версиях.

Ваши отчеты теперь умеют работать сами
Мы подключили к «Форсайт. Умные таблицы» полноценный объектно-ориентированный язык программирования Fore. С его помощью вы можете превратить повторяющиеся задачи в магию автоматизации. Например, если нужно проверить, какие данные пользователь ввел, добавить новые элементы в справочник или реализовать нетиповую детализацию данных на отдельном листе с произвольным оформлением, Fore поможет решить эти задачи в режиме онлайн подключения к «Форсайт. Аналитическая платформа»

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

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

Пользовательские кнопки на панели инструментов
Теперь вы можете закрепить самые нужные функции и убрать то, чем не пользуетесь на панели инструментов. Нужен уникальный воркфлоу? Создайте свою кнопку и назначьте ей свой макрос Fore, всё произойдет по нажатию.

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

Важно! Новая единица лицензирования
Ранее в целях апробации «Умных таблиц» сервер лицензий использовал единицу лицензирования пользователя «Форсайт. Аналитическая платформа». Начиная с версии 10.9 необходимо запрашивать и устанавливать отдельные лицензии для пользователей «Умных таблиц».

Более детальная информация здесь: https://announce.fsight.ru/fst/10-9/

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Как правильно откатывать миграции? Если коротко, то никак.

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

Ролбек, в идеале, это просто переключение с одной версии кода на другую. Но ведь тогда возможны ошибки связанные с изменениями в базе? Если делать через жопу, то возможны. При правильном подходе, база всегда обратно совместима как минимум на одну версию. Только в этом случае мы можем обеспечить и бесшовный деплой (zero downtime deploy) и практически моментальный откат.

А это значит, что нельзя менять тип у колонок (если тип сужается), нельзя менять именования таблиц и полей. Если это все таки нужно, то существует немало техник, позволяющих сделать переход через создание новых сущностей и синхронизацией либо через код либо через саму базу (например с помощью триггеров). По этой теме даже написали целую книгу "Refactoring Databases: Evolutionary Database Design".

Получается, что любые ошибки в базе будут только накапливаться? Не совсем. Обратная совместимость обычно нужна только на текущую и следующую версию. Если у нас не коробка, а облачное решение, то одновременно могут работать только две версии. В таком случае, мы без проблем можем писать любые миграции, которые удаляют и меняют все что угодно, что уже не используется. Заметьте, это не откат, а новые миграции.

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

Больше про разработку в моем телеграм-канале организованное программирование

Теги:
Всего голосов 8: ↑6 и ↓2+5
Комментарии2

Как построить эффективную стратегию бэкапа

Любая стратегия бэкапа проверяется не в теории, а в проде. В блоге «Хайстекс» вышла первая статья, где QA-инженер Юлия Воробьёва показывает как построить систему резервного копирования с Хайстекс Акура и S3-хранилищем Selectel. Реальный кейс и пошаговый разбор: от выбора хранилища до восстановления инфраструктуры. Всё глазами автора, который сам настраивал и тестировал.

Что внутри:

  • Рабочая архитектура. Одно целевое облако с двумя подключениями: к площадке восстановления (поднимаем ВМ при необходимости) и к объектному хранилищу — S3 Selectel, где лежат точки восстановления.

  • Агенты. Внешние для VMware и внутренние в ОС конкретной ВМ. Репликация односторонняя, по защищенному каналу и без просадок продакшена.

  • Расписания и RPO. Расписание от непрерывных запусков до Unix Crontab. Контроль исполнения на стороне Акуры, человеческий фактор «забыл сделать бэкап» исключен. 

  • Retention. Политика на уровне ВМ, группы или всего клиента, под любые контуры и SLA.

  • Хранение в S3. Данные режутся на настраиваемые чанки с метаданными; нулевые блоки не сохраняются, таким образом экономим место и деньги.

  • Восстановление. Предсказуемые сценарии: полный подъем ВМ через Cloud Site и файловое восстановление «на месте» из S3. При необходимости возможны RAW-экспорт и failback.

Бэкап — это не галочка в чек-листе, а процесс, которым нужно управлять, от выбора хранилища до проверенного сценария восстановления. Мы показали рабочую схему без магии и ручной возни. Под катом детали, скриншоты и пошаговые действия. В комментариях можно обсудить ваши кейсы, грабли и метрики: как настраиваете retention, чем меряете RTO/RPO и что помогло сократить простои.

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

API для получения прогнозов по крипторынку от обученных ML-моделей допиливается. Пока только одна пара будет, но зато подъедет и графоний. То что вы видите, скорее всего, пойдет в прод, мне нравится.

Теги:
Всего голосов 11: ↑10 и ↓1+11
Комментарии4

Давно хотел это написать, но как будто не было триггера и вот в пятницу я его поймал. Объясняю. Хочу выразить благодарность, чуть-чуть извиниться перед разработчиками Intellij Idea и простить их. Вот прям от души.

Когда-то в детстве я 3 года отучился игре на фортепиано, но переходный возраст (пиво, футбол и девки) победил и я ушёл из музыкальной школы. К чему я.. я программист уже 8 лет и я не встречал ничего прекрасней чем Intellij Idea.. ты не разрабатываешь - ты играешь на рояле... это автодополнение или как его назвать, подсказки, я просто в шоке. Не всегда угадывает что я хочу, но часто. Триггер я поймал когда добавлял новый объект в enum вида ERROR_INFO("text") и пока строчил название объекта представлял как лезу в переводчик, чтобы точно грамотно написать на английском текст, а Идея предложила мне текст, который я хотел написать, причём не все слова были в названии объекта.. как итог я прям счастлив от такой супер приятной мелочи (не факт что мелочи) и вот спустя два дня строчу этот пост, т.к. я прям обязан это сделать, не знаю почему. Я понимаю, что нейросети, но один и тот же салат Цезарь каждый повар делает по разному.

То, от чего я прям балдею:

  • shift + f6, переименовывает всё и везде - просто песня

  • ctrl + shifr + backspace - показывает всё что я поменял в классе, а не я глазами ищу строчки

  • ctrl + e - показывает классы в порядке убывания по использованию, не ищешь в браузере слева

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

  • в разделе гита смотришь изменения класса, нажимаешь f4 и тебе открывается этот класс

  • супер поиск ctrl+shift+f или просто два шифта

  • работа с базами данных просто сказка (даже Дата Грип редко открываю, его тоже люблю)

  • офигенные приколы типа ctrl+d с добавлением ниже второй такой же строки, удалить строку со смещением наверх shift+del

  • быстрый переход с ошибки на следующую ошибку с помощью f2

  • ctrl+p показать все ожидаемые параметры в методе

  • ctrl+shift+вверх/вниз гоняет как строку, так и целый кусок :)

  • и ещё дофига всего!!

В общем я счастлив, что моё хобби и работа это одно и то же, а то что есть Идея счастье увеличивает. Извиниться хочу, что я ни разу не покупал подписку. Она мне досталась после прохождения какого-то курса по Java, а сейчас вообще не могу купить, т.к. технически это невозможно из РФ. Здесь я прощаю Jet Brains, без пафоса, понять можно наверное (и на царей жёны давили :) Как смогу - обязательно куплю подписку, потому что это охренеть какой труд и верх перфекционизма для меня как для такого же любителя прекрасного!! И я хотел бы знать - это один такой перфекционист у них всё таки, или целая команда (в плане, что Идея именно такая какая есть). Кто этот "фундамент" образа?

Кто скажет, что пост рекламный - вы не правы! Просто признался в любви IDE :)) и стало легче! Пашем дальше..

Теги:
Всего голосов 6: ↑5 и ↓1+6
Комментарии4

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

Frontend-разработка. HTML, CSS, JavaScript и фреймворки вроде React или Vue.

Backend-разработка. Python, Java, Node.js, PHP и базы данных (MySQL, MongoDB).

Fullstack-разработка. Backend-язык (Python, Java, PHP, Node.js), JavaScript/TypeScript и один из фреймворков (React, Vue или Angular).

Еще больше курсов

Теги:
Всего голосов 3: ↑3 и ↓0+7
Комментарии0

Запись вебинара «От кода до запуска: российский стек для Java — Axiom JDK и OpenIDE» доступна для просмотра

Вебинар прошёл, а воспоминания запись осталась.

Если вы не успели на вебинар, но очень хотели, то не переживайте! Мы всё записали, чтобы вы могли посмотреть в любое удобное время.

Что обсуждали на вебинаре:

  • Вызовы отечественной ИТ индустрии.

  • Портфолио Axiom JDK.

  • Регуляторика и соответствие стандартам.

  • РБПО: процесс создания доверенных Java продуктов.

  • Зачем OpenIDE разработчику и бизнесу.

  • В чём проблема собрать Intellij IDEA самостоятельно

  • Как будет развиваться OpenIDE.

Запись уже доступна на площадках.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Ближайшие события

Компания «Форсайт» представляет новую версию своего флагманского продукта «Форсайт. Аналитическая платформа» 10.9!

В новой STS-версии расширены возможности для создания отчетности и визуализации данных в веб-приложении:
- пользователи смогут установить защиту листа,
- использовать упрощенную настройку параметров печати в регламентных отчетах,
- отменить изменение данных на активном листе или в отчете.

Теперь в веб-версии платформы доступен поиск по командам меню в регламентных отчётах, а также ввод и согласование данных в бизнес-процессах через регламентные отчёты.

Работа с алгоритмами расчета в вебе станет более удобной благодаря новым возможностям по выравниванию объектов и настройке смешанного форматирования текста при оформлении рабочей области.

Также в релизе 10.9:

  • расширены возможности менеджера безопасности и менеджера обновлений;

  • появился нативный драйвер к базе данных СУБД ClickHouse с возможностью write-back;

  • появилась возможность отладки веб-форм;

  • и многое другое!

Обратите внимание!
В «Форсайт. Аналитическая платформа» 10.9:

  • повышена версия репозитория метаданных: при обновлении платформы необходимо обновить версию репозитория;

  • повышена версия метаданных регламентных отчётов: отчёты, созданные в 10.9, будут недоступны для открытия в предыдущих версиях.

STS-релиз – это промежуточный выпуск, включающий новые функции перед их интеграцией в LTS (Long Term Support) – релиз с долгосрочной поддержкой.

Подробнее о новой версии читайте здесь.

График выпуска версий можно посмотреть здесь.

Подробнее с релизной стратегией можно ознакомиться здесь.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Вышел Gonzo 0.1.6 - терминальный UI для анализа журналов в реальном времени. Написал на Go, вдохновлён k9s. Позволяет анализировать потоки журналов с помощью красивых диаграмм, аналитики и расширенной фильтрации — всё прямо в терминале.

ChangeLog: https://github.com/control-theory/gonzo/releases/tag/v0.1.6

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Что проверить перед релизом Django приложения

Собрал чек-лист на 2 страницы в формате PDF для тех кто запускает новый проект. Ведь неприятно получить HTTP 500 Server Error, реализовав крутую фичу, пройдя долгий путь тестирования и выпуска релиза, потому что забыли о настройке.

Гайд можно скачать на странице: https://app.incidenta.tech/static/files/django-release-guide.pdf

Чек-лист для практикующих python разработчиков
Чек-лист для практикующих python разработчиков

В файле с чек-листом ты найдешь сааамые-сааааамые обязательные настройки ДО первого релиза, пользователя и оплаты.

Например, перед выходом в продакшен нужно проверить:

  • Что выключен DEBUG режим, очевидно, сэр.

  • Корректно настроено подключение к базе данных

  • HTTPS и SECURE параметры настроены

  • И еще другие 11 пунктов

Для каждого из пунктов даны ссылки для подробного изучения.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Can a Machine Think?

Пару дней назад я нашёл свою первую публично опубликованную статью, которую написал более 5 лет назад

Через 2 года после того, как OpenAI выпустили документ "Improving Language Understanding by Generative Pre-Training" — то, что можно считать основой GPT-1

Тогда рассуждения об ИИ, с которым можно качественно общаться, воспринимались как что то далекое. Похоже на то, о чем рассуждал ещё Алан Тьюринг

А Siri и Google Assistant были вершиной публично доступных чат-ботов

Но прошло 5 лет, и ИИ агенты это уже данность. Они спокойно проходят не только тесты Тьюринга, но и вообще любые тесты

Но есть одна проблема...

Мы уперлись в стену

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

Можно улучшать модели через мелкие улучшения изнутри, увеличивать reasoning tokens за счет роста вычислительных мощностей и структур сетей, но от этого подобные модели не перестанут быть next token prediction

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

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

И это — наше главное эволюционное преимущество, которое привело нас туда, где мы есть

В чём разница между пересказом и пониманием?

«Откуда мы знаем, что существуют чёрные дыры, квазары, взрываются сверхновые и образовываются всевозможные химические элементы, из которых состоит наше тело и Земля? Ведь это невообразимо далеко и невероятно сложно»

«Мы это знаем благодаря телескопам и измерительным устройствам» — это плохое объяснение

«Мы знаем, что существуют конкретные законы физики, мы проверили эти законы много раз, мы получили много информации о том, что эти законы соблюдаются и на Земле и за миллиарды километров, поэтому мы с хорошей точностью знаем что происходит при взрыве сверхновой» — это хорошее объяснение

Объяснения — это самый базовый элемент, который позволяет человечеству создавать новые знания

Которые создаются только таким способом

Выдвинуть гипотезу — догадаться/предположить, что что-то устроено определённым образом
Сделать действия — проверить гипотезу экспериментами
Обработать данные — получить обратную связь от мира
Сделать выводы — выбросить гипотезу, принять или доработать

А затем ждать лучшего объяснения

И да, это стандартный продуктовый подход через HADI циклы

И именно этот процесс привёл к созданию всего знания, всех инструментов в мире

Другого процесса создания знания не существует

Библиотека vs Лаборатория

Мы посадили ИИ в библиотеку, а ему нужна лаборатория

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

Но если мы хотим настоящий AGI, то он должен стать учёным. Он должен создавать новые знания

Bottle Neck человечества для создания знаний

На планете менее 1% людей в определённый момент времени занимаются созданием знаний на границе неизвестного

Мы ограничены количеством мозгов и рук, которые способны выдвинуть гипотезу, проверить ее и сделать выводы

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

Путь к сингулярности

Для создания AGI нам нужно научить ИИ

  1. Выдвигать гипотезы

  2. Проверять их экспериментально

  3. Делать выводы и, в идеале, делиться ими

Для этого ему понадобится доступ к нашему миру через сенсоры. И развитие робототехники — необходимый шаг

AGI = Модель + HADI циклы + Реальный мир

После того, как мы научим ИИ проходить HADI циклы, мы войдём в эру сингулярности знаний

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

Вместо 1% человечества, которые генерируют знания, нам нужно будет создать ИИ-ученых, работающих 24/7

Это и будет состояние мира, близкого к настоящей сингулярности

Теги:
Всего голосов 9: ↑8 и ↓1+8
Комментарии0

Лайфхак по нейронкам №89: лоцируй связанный код

Когда-то писал о подходах, которые в эру нейронок получили еще аргументов к применению: WYNWYN и Vertical Slice – принципам, говорящим, что надо писать только то, что нужно и там где нужно.

Недавно работал с кодовой базой, где код обработки http запросов (авторизация, пойти в бд, посчитать что-то, сделать запрос в стороннюю систему, смерджить результат и отдать) лежал в папках по категории (все обращения в бд в одной папке, все модели в другой, все обращения к API в третьей, все операции по мерджу в четвертой, и т.д.).

Когда я пытался попросить нейронку (платные Claude, Codex, Gemini) что-то сделать с этими ручками, то для решения ей приходилось каждый раз собирать полный контекст папок, и как только она осознавала бесполезность сего предприятия, резко обрезала контекст, недобирала нужного кода и отвечала нерабочим куском галлюцинации.

Важно отметить, большинство функций, разбросанных по папкам, буквально вызывались всего один раз в конкретных местах (и такая ситуация встречается в 90% кодовых баз, с которыми приходилось работать).

Решил сделать эксперимент: сложил весь связанный код в одно место (причем не ctrl-c-v, а ctrl-x-v), запустил нейронку и да, она сначала прочитала весь связанный код из папок, и уже после пыталась добирать доп контекст из сторонних, но теперь ответы и код были почти 100% попаданием в мой запрос (опять же, в меру их текущих возможностей).

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

И тут важно сделать несколько умозаключений:

  • Если нейронке НЕ дать хороший контекст, она отвечает абсолютным бредом, поэтому, если есть желание пользоваться благами ИИ, самая важная задача – создавать условия при которых она будет получать только нужные данные

  • Лоцирование связанного кода – одно из прекрасных решений этой задачи

  • На самом деле, для людей это работает точно так же – иметь возможность зайти в одно место и прочитать весь связанный код – ускоряет и улучшает итоговый результат, который выдают ~кожаные мешки~ мы

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

Теги:
Всего голосов 5: ↑4 и ↓1+6
Комментарии2

Инфраструктура под ключ за 4 часа: миф или реальность?

➡️ узнаем на бесплатном вебинаре 3 сентября!

Главные вопросы:

  • Какие компоненты инфраструктуры можно развернуть «из коробки», а какие придется разворачивать руками?

  • Terraform и Ansible — Король и Королева, или есть альтернативы?

  • Пошаговый алгоритм развёртывания: что нужно сделать до старта, на шаге 0 и далее до момента введения в эксплуатацию?

  • Какие бывают точки отказа(SPOF), и где они обитают?

  • Увеличение нагрузки: на каком этапе об этом думать?

  • Что делать при сбое? Все пропало? Или можно подстелить солому?

В конце вебинара — чек-лист для старта и оптимальная последовательность действий.

Ведущий: Евгений Федосеев, DevOps-инженер в «ПУЛЬС АЙТИМ»

Спикер: Павел Минкин, DevOps-инженер в Финтех

Когда: 3 сентября в 19:00 мск

Занять место на вебинаре — через бота.

Теги:
Рейтинг0
Комментарии0

Условия - уже в рынке!

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

Ребёнок просит мороженое?

— «Сынок, ты одет, обут и даже сыт. Условия - уже в рынке. Смирись».

Жена жалуется, что давно не водил её в ресторан?

— «Дорогая, по сравнению с жёнами соседей ты прекрасно обеспечена. Условия - в рынке».

Главное правило - не перегревать рынок. В конце концов, кому в наше время нужны объевшиеся дети и перекормленные жёны?

Теги:
Всего голосов 2: ↑0 и ↓2-2
Комментарии1