Обновить
34
0.1

Пользователь

Отправить сообщение

Статьи пишут нейросети. Коменты пишут нейросети. Всё это читают нейросети - всякие краулеры и прочее. Может пора сделать хабр только для ИИ. И вход по капче которую человек не пройдёт? И язык там использовать бинарный код?

Если сократить эту простыню текста в нормальный вид то имеем следующее.

Есть сервер СУБД и как на него навесить кучу кеширующих серверов которые могли бы отвечать на запросы самостоятельно. При этом придумываем механизм что бы сервера кешей могли саморазмножаться или самоуничтожаться. Попутно решаем геморой синхронизации данных кешей и центральной СУБД

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

Также упомянуты такие костыли как например что делать при удалении строк? Posgres например не удаляет их, а помечает как удалённые, или при обновлении строки тоже создаёт новую копию. При этом страницы обрастают кучей незадействованной памятью - которую нужно потом уничтожать сборщиком мусора. В противовес этому есть алгоритмы автоматической ликвидации таких пустых мест налету. Но каждый подход имеет свои плюсы и минусы.

Упомянуты векторные вычисления. Это ассемблерные инструкции процессора Sse2, Avx2. Что это? Инструкции позволяющие атомарно читать, записывать, сравнивать данные длиной 16,32,64,128,256 и более байт. Это сильно ускоряет скорость например поиска по колонке с таким типом данных - а также решает геморрой с параллельной записью и чтением, когда происходит гонка потоков чтения и записи. И чтение происходит битым (половина данных старая, половина новая и вариации). Но для работы векторных инструкций данные должны быть выровнены в памяти. т.е адреса должны быть кратны тем самым числам 16,32,64,128,256. Иначе работать не будет - ограничения железа процессора. Нормально данные выровнять в памяти можно в СУБД колоночного вида. Postgres же имеет строчный вид - и данные там не выровняешь. Когда у тебя все типы идут друг за другом. Можно конечно кучу дыр на выравнивание наставлять - но это дикий оверхед по памяти.

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

Вывод. Очень туманно (специально?) и запутанно описали принцип построения кеширующих серверов. Анализа на ходу типа запроса(например есть ли запрос к перебору столбца без индекса) и распределения его на жирные/тощие кеши. Также навели туману на разницу типов построения базы данных колоночной и строковой.

Как думать - это и есть природная расположенность к программированию. А именно - когда начинаешь выстраивать огромный алгоритм в уме, а в реальности это приводит к дикому потреблению сахара из крови и "сушения" собственных мозгов, так вот - что бы от этого действия тебя не начинало тошнить через 5 минут, а наоборот - мозг награждал тебя дофаминовым откликом.

Имея такой генетический природный подарок дальше дорога одна. Тренировки-тренировки-тренировки.... Годами. Суша свой мозг каждый день - заставляешь расширятся и разрастаться кровеносным сосудам в голове, что бы мозг мог выесть всю глюкозу из крови в максимально короткое время.

Я как то мерил свою глюкозу после выпитой литровой колы. Сахар подскочил до 8. После 2 часов сушения мозга - сахар упал до 3.9. Хотя это для меня и не характерно. Обычно сахар держится на одном уровне без колебаний.

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

Всю эту простыню я написал к тому - что не-программисту от природы никакие книги "как программировать" не помогут. А программисту от природы, такие книги не нужны. Ему нужны БЕСПЛАТНЫЕ самоучители из инета по тому или другому языку. Он просто берёт и делает свой первый проект в удовольствие.

Кстати та же история с психологами. Психология это наука понимания и управления психикой другого человека. Миллионы мошенников психологи от природы находят миллионы своих жертв и просто манипулируют ими как хотят. Каждый день читаешь о очередном "тупни" который перевёл все свои деньги на "безопасный счёт."

И с другой стороны - институты выпускают тысячи психологов. Но я общался с некоторыми представителями. И они окопались очень глупы. Я это к чему - нельзя обучится психологии если не дала способностей к этому природа. Как и с программированием. Как и с музыкой. Как и с живописью... Хотя весьма посредственным "писателем строчек кода" наверно можно себя заставить стать.

Чем программист отличается от математика?

Математик использует математический аппарат. Все эти cos, sin и прочие теоремы. Сложность отдельной маленькой формулы может быть максимальна для понимания.

Программист может (и в 99% случаев) обходится без этого. Программист строит огромные алгоритмы в уме. Огромные графы простых кирпичиков. Сложность отдельного взятого кирпичика не превышает 2+2. Но количество кирпичиков может быть крайне много, а взаимосвязи запутаны до предела.

Это как мозг. Работа отдельного нейрона - понятна и проста. Работа всех нейронов одновременно - непонятно до предела.

Эта мысль описана в вашей книге?

P.S. Можно быть и математиком и программистом одновременно. Также есть области программирования (достаточно мало встречающиеся, по сравнению с огромным ворохом всего программного кода) где математика используется в полный мере. Например симуляция реальности в 3D играх.

O! Разблокировано воспоминание.

Лет 25 назад существовали такие кнопочные телефоны siemens s35 и подобные. У меня был проект - надо было через этот телефон выйти в интернет с контроллера. Сами телефоны управлялись через COM порт и AT команды.

Тогда я был молод и горяч и море по колено и горы по плечу. Сказано сделано. Выход в интернет начинался с PPP протокола. В него упаковывался IP, в него TCP. Потом шёл ворох вспомогательных протоколов типа ICMP. В общем всё это я реализовал на С - было дико интересно.

А потом я наткнулся на недокументированные команды AT которые могли реализовывать стек протоколов TCP/IP - и своя разработка улетела в мусорку ). Весёлые времена были.

Добавлю офтопа. Как же мне смешно смотреть на мою карму )))) Я уже давным давно понял писать сюда что то не имеет никакого смысла. Что бы ты не написал - тебе попросту напихают минусов в карму. Потому как на хабре должен остаться только рекламный булшит и кривые переводы в коммерческих блогах. Даже этот комментарий не имеет смысла писать.

Я бы сказал так:

Со временем ИИ инструменты сыграют злую шутку с программистами мясными мешками человеком

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

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

Как бы это разделитель. Компилятор без этого может склеить код там где этого не должно быть.

Вот пример - я писал минификатор для файлов javascript. Основная операция это выкидывать ненужный текст. А это как раз всякие переносы строки которые могут и 2 байта занимать (\r\n) и куча пробелов. Если всё это выкинуть то всё склеится. А точка запятой будет как раз это разделять. Ну в javascript ещё пробел можно использовать.

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

Вот в javascript так и сделали - хочешь используй, хочешь нет.

Опять же есть языки где вместо точки с запятой используют для форматирования другие символы \r\n, begin end и прочее. Но точка с запятой это минимальный и наглядный символ для разделения блоков.

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

Пусть складывает int

Отлично! Программа будет складывать целые числа (int). Давай уточним оставшиеся детали:

  1. Сколько чисел должно складываться?

    • Фиксированное количество (например, 2 числа)

    • Произвольное количество (пользователь вводит числа, пока не решит остановиться)

  2. Как программа должна получать числа?

    • Ввод с клавиатуры (пользователь вводит числа в консоли)

    • Чтение из файла (например, числа хранятся в текстовом файле)

  3. Как программа должна выводить результат?

    • Просто вывод результата в консоль

    • Запись результата в файл

    • Другое (например, вывод с пояснением, типа "Сумма чисел: ...")

  4. Должна ли программа обрабатывать ошибки?

    • Да (например, если пользователь ввел не число)

    • Нет (программа работает только с корректными данными)

Ответь на эти вопросы, и я составлю код для твоей программы! 😊

Вывод. Столь простую программу мне как программисту делать 1 минуту. Взял и написал. Потому как я уже в подсознании знаю ответы на все вопросы и знаю что мне надо. Просто сразу пишу нужный код.

А ИИ может мне наверно ещё пол часа вопросы задавать?

Наверно новичку это норм.

А если это будет чуть сложнее сложения 2 чисел? Уточняющих вопросов будет как книга Война и мир?

И кстати - вот нагляднейшний пример кучи пограничных вариантов в простейшей программе сложения двух чисел. Опытные программисты просто на автомате все эти вопросы будут решать.

А новичок даже не подозревать об их существовании.

Интересный подход. А если попросить текущий ИИ что бы он задавал вопросы и по ответам писал код.

Ради интереса задал deepseek такой промт

Задай мне вопросы что бы написать программу на C#. А я буду тебе давать уточняющий ответы какая должна быть программа.

На что он мне ответил

Конечно! Давай начнем с уточнения, чтобы я мог понять, какую программу ты хочешь написать. Вот несколько вопросов:

  1. Какой тип программы ты хочешь создать?

    • Консольное приложение

    • Графическое приложение (Windows Forms, WPF, MAUI)

    • Веб-приложение (ASP.NET, Blazor)

    • Мобильное приложение

    • Игра (Unity, Godot)

    • Другое (укажи, что именно)

  2. Какую задачу должна решать программа?

    • Обработка данных

    • Работа с файлами

    • Взаимодействие с базой данных

    • Математические вычисления

    • Автоматизация задач

    • Игра или развлечение

    • Другое (опиши подробнее)

  3. Какие данные будет обрабатывать программа?

    • Текстовые данные

    • Числовые данные

    • Изображения

    • Аудио/видео

    • Базы данных

    • Другое (укажи, что именно)

  4. Какие функции должна выполнять программа?

    • Ввод/вывод данных

    • Хранение данных

    • Обработка данных (сортировка, фильтрация, анализ)

    • Взаимодействие с пользователем

    • Сетевые функции (интернет, API)

    • Другое (опиши подробнее)

  5. Какие технологии или библиотеки ты хочешь использовать?

    • .NET Core / .NET 6/7/8

    • Entity Framework

    • LINQ

    • ASP.NET

    • Unity

    • Другое (укажи, что именно)

  6. Есть ли у тебя конкретные требования к интерфейсу?

    • Простой текстовый интерфейс (консоль)

    • Графический интерфейс с кнопками, полями ввода и т.д.

    • Минималистичный дизайн

    • Сложный интерфейс с анимациями

    • Другое (опиши подробнее)

  7. Какая у программы должна быть архитектура?

    • Простой скрипт

    • Модульная структура

    • MVC/MVVM паттерн

    • Микросервисы

    • Другое (укажи, что именно)

  8. Есть ли у тебя предпочтения по стилю кода?

    • Чистый код (Clean Code)

    • ООП (объектно-ориентированное программирование)

    • Функциональное программирование

    • Другое (опиши подробнее)

  9. Какие платформы должны поддерживаться?

    • Windows

    • Linux

    • macOS

    • Мобильные платформы (iOS, Android)

    • Веб-браузеры

    • Другое (укажи, что именно)

  10. Есть ли у тебя конкретные требования к производительности?

    • Высокая производительность

    • Средняя производительность

    • Низкая производительность (например, для простых задач)

    • Другое (опиши подробнее)

Ответь на эти вопросы, и я помогу тебе сформулировать задачу и начать писать программу на C#!

Программа на C#. Консольная. Задавай следующий вопрос.

Отлично, консольное приложение на C#! Давай уточним детали. Вот следующий вопрос:

  1. Какую задачу должна решать программа?

    • Обработка данных (например, сортировка, фильтрация, анализ)

    • Работа с файлами (чтение, запись, редактирование)

    • Взаимодействие с базой данных (запросы, обновление данных)

    • Математические вычисления (калькулятор, решение уравнений)

    • Автоматизация задач (например, выполнение рутинных операций)

    • Игра или развлечение (текстовая игра, викторина)

    • Другое (опиши подробнее, что именно программа должна делать)

Математическое вычисление. Должна уметь складывать числа.

Понял! Программа будет консольным приложением на C#, которое выполняет математическое вычисление — сложение чисел. Давай уточним детали:

  1. Какие числа должна складывать программа?

    • Целые числа (int)

    • Дробные числа (double/float)

    • Оба типа (и целые, и дробные)

  2. Сколько чисел должно складываться?

    • Фиксированное количество (например, 2 числа)

    • Произвольное количество (пользователь вводит числа, пока не решит остановиться)

  3. Как программа должна получать числа?

    • Ввод с клавиатуры (пользователь вводит числа в консоли)

    • Чтение из файла (например, числа хранятся в текстовом файле)

    • Другое (укажи, если есть особые требования)

  4. Как программа должна выводить результат?

    • Просто вывод результата в консоль

    • Запись результата в файл

    • Другое (например, вывод с пояснением, типа "Сумма чисел: ...")

  5. Должна ли программа обрабатывать ошибки?

    • Да (например, если пользователь ввел не число)

    • Нет (программа работает только с корректными данными)

Ответь на эти вопросы, и я помогу тебе написать код!

Я бы ещё добавил что часто бизнес аналитик играет роль щита от самадура-заказчика способного изнасиловать тебе мозг так что и программировать не захочешь.

Вместо тебя мозг насилуется бизнес аналитику. И опять же я замечал что если такой аналитик "не сильно умный" - то ему как бы и норм. Это его "суперсила".

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

Вы правы. Более того про бизнес аналитиков я писал выше. Но на практике я часто видел бизнес аналитиков которые играли роль простого посредника вопросов. И гораздо проще было напрямую связаться с заказчиком и разъяснить все вопросы.

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

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

И часто в схеме бизнес аналитиков попросту может не быть.

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

Он состоит из.

  1. Общения с заказчиком.

  2. Общение с кучей рабочих людей на предприятии заказчика. Например когда программистская контора делает какую нибудь ERP для предприятия.

  3. Каждодневных утренних планёрок и кучи ненужных совещаний

  4. Собственного опыта программиста.

Всё это практически невозможно вспомнить и написать подробно в промте. Зато когда программист пишет код - этот контекст без труда автоматически всплывает в его голове. Так устроен мозг и нейроны - один нейрон тянет другой и так далее. Не зря есть такое понятие как "воспоминание разблокировано" Глянул мельком на камень на земле по дороге на работу и вспомнил случай из детства который никогда не вспоминал.

Часто есть отрицательный момент. Программист десять лет вёл проект на работе. И в его голове хранится ТАКОЙ контекст этого проекта - что он становится "незаменимым работником". Кроме него уже никто не может в этом разобраться. И ИИ не разберётся. Т.к. 10 лет не варился в этом проекту и не знает кучи подводных камней.

Ну так смотрите я как раз и пишу про эту проблему. Ваш подход подразумевает наличие программиста.

Который:

  1. Создаст архитектуру программы.

  2. Нарежет на блоки задачи. Создат чёткие описание каждой задачи.

  3. Далее поручит ИИ или мидлу каждую задачу.

  4. В случае с ИИ потом придётся досконально изучать каждую строчку получившегося кода.

Это изучение как показывает практика, сложнее чем самому написать сначала. И зачем тогда нужен такой помошник?

Статья которую я привёл в самом начале, говорит - все программисты будут ненужны. Код 100% будет писать ИИ.

При этом подобные статьи наводит саспиенса - мол ууууу!!!! Ищи программист сейчас любую другую работу!!! A то через год даже в дворники не возьмут.

А на деле появился очередной инструмент, не более. Я говорю про текущие возможности ИИ. Что будет завтра я не говорю.

Upd. Забыл самый важный пункт который выполняет программист. Он получает весьма туманные хотелки от заказчика и переводит это в возможности которые может программа. Часто (если не всегда) заказчик сам не знает что он хочет. И программисту (ладно пусть будет бизнес аналитик) надо выудить это у заказчика. Бизнес аналитик всё равно потом всё передаёт программисту. Часто программист напрямую с заказчиком общается по деталям.

С этой работой ИИ вообще не справится если он не будет сильным.

Ну вот вы как раз и привели ту проблему о которой я писал. Я например полностью согласен с менеджерами. И то же бы хотел что бы ИИ за меня делал всё. В конечном счёте держать свой мозг по 8 часов в день в постоянном напряжении - это адская работа.

Но вот не работает так. И не программисты этого не видят. А я как программист попытался описать суть проблемы.

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

А когда ИИ станет сильным - то зачем ему вообще человек нужен будет. Давным давно смотрел мультфильм Аниматрица. Что то похожее на Любовь Смерть и Роботы. Тоже собрание короткометражек. Так там очень круто было показано как машины отделились от человечества и создали в Африке своё государство и назвали его 0.

В отличии от PIR датчиков, радарные датчики типа HLK-LD2402 имеют радиолокационный принцип обнаружения, поэтому даже статические объекты с легкостью фиксируются данным датчиком.

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

Человек движется в этих волнах - вносит возмущение в этот генератор. В самом генераторе происходит колебание частоты и эти колебания в виде гармоник и висят например на коллекторе генераторного транзистора. Где эти колебания мы снимаем и анализируем.

Т.е. что бы что то зафиксировать надо что бы кто то двигался. Стоячий человек не будет вызывать искажения. У радара совсем другой принцип работы.

Я сам собирал (100 лет назад)* такие датчики на 1 сверхвысокочастотном транзисторе с логикой обработки детекторного сигнала на контроллере.

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

простые и базовые вещи

Ну во превых на разные вопросы

1. У Анны 3 сестры и 1 брат, сколько сестер у брата Анны?

2. Какое количество сестёр имеет брат?

Был дан абсолютно одинаковый кривой ответ:

  1. У Анны 3 сестры и 1 брат.

    • Это значит, что в семье всего 4 девочки (Анна и её 3 сестры) и 1 мальчик (брат).

  2. Сколько сестёр у брата Анны?

    • Брат Анны является общим братом для всех сестёр.

    • У него те же 3 сестры, что и у Анны.

Ответ:
\boxed{3}

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

Простые базовые вещи это когда "конечному автомату" даёшь одинаковые данные на вход - получаешь одинаковые данные на выходе.

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

Раз задаю один и тот же вопрос да ещё и в одном контексте, значит предыдущий ответ вероятно не удовлетворил пользователя?

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

чтобы не говорить ложную информацию

Что значит ложную? Сделал как написано в статье - перешёл по ссылке. Вбил простой запрос. Получил результат. Даже написал про кривой интерфейс. Как раз другие люди увидев это - не попадутся на такую подставу. И не надо мне доказывать что это нормально: Мы сделали продукт. Пользуйтесь - только будете получать херню. А что бы нормально работало - нужно нажать кнопку - работать нормально. Но про это вы не будете знать.

Очевидное - это перешол по ссылке. Вбил текст. Получил ответ. Этот юзер кейс - подтверждается пользованием всех поисковиков, месенджеров и прочего. Любые дополнительные действия - это надо сидеть и загружать голову очердной ненужной информацией. А если воспринимать все надписи как кнопки - я вообще давным давно привык что всё окружение вокруг нужного места это реклама и её надо фильтровать.

P.S. Я сижу программирую - и на 5 минут зашёл просто мозг разгрузить. Статью глянул по диагонали (опять же всё читать - никаких мозгов не хватит), в заголовке же написано это супер пупер-ноухау. Кликбейтный загловок заставил меня потратить минуту (ну а сколько там то нужно что бы просто перейти по ссылке и вбить 1 запрос). Вот вбил...

Информация

В рейтинге
4 150-й
Зарегистрирован
Активность