В связи с тестированием сетевых блокировок в РФ на стороне нашего хостинг-провайдера наблюдаются проблемы с сетью. Сайт может работать нестабильно. Проблема известна, ожидаем восстановления маршрутов.
Авторизация
или войдите через
Забыли пароль?Восстановить
Восстановить пароль
Помощь проекту
Укажите в комментарии свой ник, чтобы мы знали, кого благодарить
Решил я поиграться в ардуинки. Выбор пал на ESP32-C3 с 0,42-Дюймовым OLED-Модулем за какие-то там 200 руб. Пока оно едет из Китая думаю, дай потыкаюсь со средой разработки. Раньше дела с ней не имел.
Оказывается есть две версии под линухой. Одна на электроне v. 2.3.8 и старая 1.8.19 на Java. Но об ентом я ещё не знал, естественно выбрал поновее и получил засаду - вечно крутится на заставке. Думал наши разрабы АльтЛинухи накосячили с опакечиванием, перепробовал кучу сборок со стороны (не из репов Альта) - везде одно и тоже - вечно крутится заставка. Запустил иде из консоли и увидел туеву хучу ошибок с невозможностью чего-то там скачать. Направление гугления тут же изменилось и выяснилось, что www.arduino.cc лочит россиян из-за Cloudflare (эдакий сервис для защиты сайтов от хакерских атак). Что и и как произошло между Cloudflare и РФ вспоминать не стал и начал думать как пустить Ардуино-ИДЕ через тор-сеть. Придумать не удалось
Вот тогда я и узнал, что разница между старой и новой ИДЕ исключительно в интерфейсе, более того, настроек сети в новой версии я не нагуглил (возможно пальчиками где-то в конфигах и прописывается). А вот в старой версии пожалуйста Файл-->Настройки->Сеть:
При этом все библиотеки и "платы" начали загружаться. И да, версия из репозиториев Альта. Между прочим, ардуинки часто используются не только как хобби, но и в образовательных целях. Но политиканам насрать на это.
Всем доброго времени суток, с вами на связи Lis-ST, и сегодня мы с вами более подробно ознакомимся с нейросетями, которые чаще всего и называют ИИ, а именно с языковыми моделями. Начнём от простого, к сложному.
Восприятие языковых нейронок.
Как нейросеть видит нашу письменность.
Модели не понимают буквы и слова как люди. Их родной язык — числа. Решить эту проблему довольно просто, ведь правда? Просто присваиваем каждой букве и знаку число - проблема решена! Но практика показала обратное, на обработку текста в таком формате требовалось очень много вычислительных мощностей и времени, а при увеличении длины текста требования росли в квадратичной зависимости. Причина банальна, внутри скрытого слоя каждый символ должен "взаимодействовать" с каждым, и это не единственная проблема.
Первый шаг в решении данной проблемы, разбить текст на части - "токены". А раз уж решили прибегнуть к такому способу и так как нейросеть всё-равно работает с числами, почему бы их не сделать из наиболее часто встречающихся частей текста:
С одно стороны, когда у нас были символы, наш словарь состоял из 256 значений, а токенов в той же GPT более 50000... Какая-то оптимизация наоборот, скажете вы и будете не правы. Всё дело в том, что если токеновая модель обрабатывает последовательность из 1000 токенов за условные 10 секунд, то символьной модели для обработки того же текста потребуется уже минимум 160 секунд, неплохая такая разница?
Вкратце затронем эмбеддинги - так называемый вектор. Зачем нам какой-то вектор, ведь токены у нас, числа им присвоены? Но нужно же как-то определять, в каком порядке токены размещены в тексте. Не забываем о контексте за который отвечает механизм внимания (Self-Attention), работающий так-же в скрытом слое, всё также путём присвоения дополнительных значений токенам.
Генерация - не сердце, но суть нейросетей.
Валера, что-то не нравится мне этот расклад, как бы чего плохого не случилось.
Языковая модель — этоочень умный писатель, он никогда не видит весь текст сразу, а пишет по кусочкам (токенам). И каждый раз, когда нужно выбрать следующий кусочек, в его голове происходит невидимое "голосование".
После того как модель прочитала всё, что вы написали, она составляетвнутренний рейтинг всех возможных продолжений. У неё в голове есть огромная доска рейтинга на 50 000 мест (по числу токенов). У каждого варианта — своя оценка. Эти оценки — не про "правильность", а протипичность. Модель спрашивает себя: "Что в моей обучающей библиотеке чаще всего шло после такого начала?"
Пример: вы написали "Сегодня хорошая...". В голове модели:
место №1: "погода" - (очень высокий балл)
место №2: "." (точка) - средний балл
место №3: "для" - небольшой балл
место №1000: "крокодил" - почти ноль
Модельникогда не уверена на 100%, у неё есть тольковеса предпочтений.
Что происходит с этими весами дальше? Два Варианта:
Вариант №1: Точность.
Модель всегда берётсамый верхний вариантиз рейтинга. Увидела "погода" - напечатала "погода". Потом снова смотрит рейтинг для "Сегодня хорошая погода", опять берёт самый верхний... В итоге получается очень предсказуемый, сухой,бездумно-правильныйтекст. Как говорят: "модель включила режим калькулятора". Плюс: не ошибается, минус: нет творчества, повторяет штампы.
Такой режим используется, когда нужен точный факт, код или перевод. Но общаться с таким собеседником скучно и бесполезно, но главное, абсолютно бесперспективно, если вы сунетесь к нейронке с тем, чему она не обучена (запомните главный принцип, касательно "проблем", если решения вашей проблемы нет в интернете, вероятность того, что поможет нейросеть, стремится к нулю, даже при варианте №2).
Вариант №2: Обычный человек.
Модель смотрит на рейтинг иподбрасывает волшебный кубик, где грани взвешены по весам. Вариант с весом 80% занимает 80% граней кубика, вариант с 15% - 15% граней и т.д.. Так она иногда может выбрать и "погоду", и неожиданно «.», и даже очень редко "крокодила", если кубик так выпадет.
Именно за счёт случайноститекст становится живым, разнообразным, иногда остроумным. Но изредка - странным или глупым. Это плата за "человечность" и творчество.
Температура.
Температура за бортом.
Температура - это ручка управления "креативностью" нейросети.
Холодная температура (низкая, например 0.2).
Модель как быувеличивает контрастмежду первым местом и всеми остальными. Первое место становитсягигантским, а все остальные - крошечными. Кубик почти всегда падает на топ-1 результат. Текст становится сухим, однообразным, как диктор новостей, читающий по бумажке.
Лучше всего для:фактов, инструкций, кода, перевода.
Комнатная температура (1.0 - стандарт).
Это естественное состояние модели, то, чему её обучили. Разница между первым и вторым местом естественная. Кубик отражает реальные статистические веса. Текст получаетсяпохожим на обычную человеческую речь- с предсказуемыми, но иногда слегка неожиданными поворотами.
Лучше всего для:обычного чата, деловых писем, новостей.
Горячая температура (высокая, например 1.5).
Модельсглаживает оценки: первое место уже ненамного выше второго, а сотый вариант получает заметный шанс. Кубик становится "расслабленным" - он может выбросить редкое слово, необычную конструкцию, даже неуклюжий, носвежийоборот. Текст получается творческим, иногда странным, иногда гениальным, иногда бредовым.
Лучше всего для:стихов, шуток, креативных идей.
Кипящая температура (очень высокая, например 2.5+).
Все варианты становятся почти равноправными. "Погода" и "крокодил" получают почти одинаковые шансы. Кубик выпадает практически случайно. Текст превращается вбессмысленный словесный шум - связные слова, но нелепые сочетания ("Сегодня хорошая крокодил на завтрак"). Полезно разве что для демонстрации того, как модель ломается.
Есть ещё более умные настройки, дополняющие температуру, но статья и так уже не маленькая, а это плохо.
Манипуляции нейросетью.
Да, я такой.
Чтобы задать нейросети нужный "настрой" или стиль, используют два главных инструмента:ручки температуры(о которых мы говорили) иволшебные слова в начале диалога(промпты).
1. Задаём "характер" словами.
Представьте, что вы нанимаете актёра. Вы не просто говорите "говори", а даётевводную о роли:
"Ты - научный популяризатор, который объясняет сложные вещи на пальцах. Ты не используешь формулы и термины, если без них можно обойтись. Ты любишь метафоры, примеры из жизни и немного юмора. Твой стиль - как у хорошего учителя или ведущего научно-популярного шоу."
В GPT это называетсяsystem prompt(системное сообщение). В других моделях - просто первое сообщение, которое задаёт контекст.
Что ещё можно прописать в настройку:
"отвечай кратко, не более трёх абзацев"
"используй маркированные списки, но без markdown"
"называй меня на "ты""
"добавляй примеры из кулинарии/спорта/путешествий"
Это самый мощный способ изменить стиль, потому что модель начинает "вживаться" в роль.
Вот несколько самых интересных примеров того, на что способен системный промпт за пределами привычных сценариев:
Придумать "анти-совет" для вашей идеи (Адвокат Дьявола):
Нейронка по умолчанию старается быть вежливой и соглашаться. Но промпт может превратить её в беспристрастного критика, задача которого - найти слабые места в вашем бизнес-плане или проекте, чтобы вы могли его улучшить.
Подготовиться к сложному интервью:
Попросите нейросеть представить себя журналистом, который задаст вам каверзные вопросы. Это поможет вам заранее подготовиться к разговору с реальным экспертом.
Писать стихи в стиле числа "π":
В этом промпте каждое слово стихотворения должно строго соответствовать цифрам числа Пи (3,14,15…), где первое слово - из трёх букв, второе - из одной, третье - из четырёх и т.д.
Заключение? Итог? Выводы?
А теперь можно вернуться к вопросу, существует ли ИИ на сегодняшний день? Но чтоб разобраться в данном вопросе, нужно в первую очередь понять, что такое ИИ.
Исходя из словосочетания, ИИ, это интеллект, но искусственный, а интеллект - это качество психики, состоящее из способности осознавать новые ситуации, способности к обучению и запоминанию на основе опыта, пониманию и применению абстрактных концепций, и использованию своих знаний для управления средой обитания человека.
Да, это сухое, весьма размытое определение, которое не даёт чёткого представления о том, что-же это такое. Если же посмотреть на то, с помощью чего он реализуется, всё становится на свои места: способности познавать, обучаться, мыслить логически, систематизировать информацию путём её анализа, определять её применимость, находить в ней связи, закономерности и отличия, ассоциировать её с подобной информацией, оценивать её достоверность, актуальность и многое другое...
И опять вернёмся непосредственно к вопросу, являются ли нейросети - искусственным интеллектом? На все 100% нет, и даже близко ничего общего с ним не имеют. По своей сути нейронки - поисковик, работающий на глюках.
П.С.:
У Лисёнка голова бобо. Тут хотел написать в рифму к первому предложению, но видимо ещё не совсем.
Всем спасибо за внимание, с вами был Lis - Silver Tail. Ссылка на первый пост об основах нейросетей ниже.(блин, это же ещё всё вычитывать...(здесь был смайлик))
Всем доброго времени суток, с вами на связи Lis-ST. Это мой первый пост, не на данном сайте, а вообще, (не зря же я состоял в "Лиге лени"), но на общем фоне нейроистерии и всё большего распространения нейросетей кто-то должен хотя бы минимально объяснить, что же такое "Нейросеть", а так-же как правильно с ними работать и чего в принципе от них можно ожидать. В данном посте затронем только самые основы.
Немного истории
Здесь можно было бы надергать текста с вики, различных ресурсов, прогнать всё это через нейронку и вставить тысячи нудных строк на 2 часа чтения, но мне лень, поэтому пробежим вкратце по основным моментам.
Сама идея, создать что-то, что работало бы схожим образом с мозгом, как ни удивительно, появилась задолго до появления компьютеров. Первая математическая модель нейрона была создана ещё в 1943 году.
Первая же нейросеть появилась в 1950 году, примерно в это время начали появляться первые предшественники современных компьютеров. Умела она немного, могла только отличить круг от квадрата, или квадрат от круга, может ещё от треугольника, но ничего сложнее. И на этом всё развитие данной идеи практически остановилось по банальной причине - недостаток вычислительной мощности. Но, это не значит, что от идеи полностью отказались. Её постепенно развивали, предлагались новые модели, способы тренировки но очень существенный толчок в развитии нейронок я связываю с 2015 годом, именно в этот год была основана OpenAI и в 2016 году она положила начало нейроистерии, выпустив в публичный доступ, нет, не нейросеть, а платформу для разработки и обучения нейронок.
Основы
Тут определённо стоило бы начать с определения того, что такое нейрон, но чем больше будет определений, формул и подобного, тем хуже для восприятия будет текст, поэтому простыми словами - это то, что может принимать, обрабатывать, хранить и передавать информацию. Нейронная сеть - попытка повторить данные свойства нейрона.
Примитивное сравнение мозга и нейронки, не передающее суть.
На сегодняшний день придумано множество разных нейронок, разберём самую примитивную, как на картинке выше, она состоит из трёх слоёв: входной, скрытый и выходной.
Входной слой: на него в нейронку поступают какие либо данные - текст, числа, изображения, координаты и т.п.. Здесь
данные приводятся к удобному для нейронки виду (обычно это числа от 0 до
1), чтобы слишком большие значения не «свели сеть с ума» или не спалили ваш компьютер. У вас закономерно возникнет вопрос, как можно фото котика представить в виде обычного числа? Всё просто, это не одно число, а тысячи, на каждый пиксель выделяется по входному нейрону, который просто задаёт удерживает числовый значения. Так, для картинки 1024 на 1024 пикселя нам потребуется 1 048 576 входных нейронов.
Скрытый слой, на нем остановимся намного подробней, так как он и ответственен за всю магию нейронных сетей. Это по сути «сито», которое фильтрует данные, чтобы найти в них смысл. Нейрон скрытого слоя берет данные на входе, преобразованные в числовые значения и умножает их на «важность» (вес). Например, при
поиске кошки на фото — острые уши и хвост важны, а цвет фона — нет. Затем все результаты складывает в одно число, а полученная сумма сравнивается с порогом, который сформировался при обучении нейронки. Если число достаточно большое, нейрон
«просыпается» и передает сигнал дальше. Если нет — молчит.
Выходной слой — это финал, где нейросеть выдает готовый ответ. Он превращает сложные вычисления скрытых слоев в понятный формат. Если в скрытых слоях нейроны «ищут признаки», то в выходном слое они просто «голосуют» за итоговый результат.
Архитектура и типы нейросетей
В попытках получить наилучший результат, уменьшить требуемые вычислительные мощности для работы нейронок, постоянно придумывались новые варианты их архитектуры, способов тренировки, обработки данных. Так появились на свет нейросети с несколькими скрытыми слоями, каскады нейросетей, свёрточные нейронки и многие другие.
Здесь всё очень сложно, пока на этом не будем заострять внимания, но для общего понимания вот очень краткий список основных архитектур и более подробная картинка для наглядности:
ANN (Нейросети прямого распространения / Перцептроны)
CNN (Сверточные нейросети)
RNN (Рекуррентные нейросети)
LSTM / GRU (Сети с долгой краткосрочной памятью)
Transformers (Трансформеры — основа современных GPT)
GAN (Генеративно-состязательные сети)
Autoencoders (Автоэнкодеры)
GNN (Графовые нейросети)
... наглядности северного пушного зверька. Актуально на сентябрь 2025г.
Завершение
Пока мы коснулись только того, из чего состоит нейросеть, самые основы её работы, но без более подробного разбора мы не придём к пониманию того, почему же у меня от некоторых постов, связанных с нейросетями, весьма не слабо горит кресло. К данному вопросу мы перейдём завтра.
П.С.:
Как-то не так я себе это представлял, капля текста, две картинки, куда два часа исчезли то?
Всё чаще встречаю фразу "навайбкодили". Вот у мну есть скачанные 3 тома "Искусство программирования" от Эрвина Дональда Кнута. Я даже первый его том толком не прошёл по его задачкам на уровне более чем начальный. А у него там есть "задачки со звёздочкой".
Вопрос. Хоть какая-нибудь нейросеть сумела порешать хотя бы с десяток "задач*" не плагиатя то, что уже есть в тырнете?
Короткий познавательный пост, основанный на моей больной фантазии. Все совпадения случайны.
Обратился как-то один человек на профильном форуме с вопросом, как запустить (не сказать чтобы старую) игру на Windows 10. Игра (хотя я бы назвал это технодемо) была разработана на легендарном XNA 4.0 (земля пухом) и планировалась к выпуску через Steam Greenlight (и ему земля пухом) еще в далеком 2012, после чего заброшена и убрана со всех магазинов.
Игра была куплена тем человеком еще в тот момент, когда она легально продавалась. А спустя годы она просто перестала подавать признаки жизни. $5 за полную версию уплочены, а поиграть нельзя. Обидно.
Так как типовые решения по типу установки XNA Redistributable не помогли, то был предложен единственно возможный выход из ситуации - отладка через dnSpy.
Внимание: обратная разработка хоть прямо и не запрещена законодательно, но разрешенные случаи весьма ограниченны. В других странах разрешен явный запрет любых манипуляций через лицензию, превращающий это занятие во вполне наказуемое. Не повторяйте дома.
Так как ПО было приобретено легально и оно не работает, то этот теоретический случай допустим в соответствии со статьей 1280 гражданского кодекса.
Демонстрировать буду на бесплатной демоверсии, скачать можно здесь.
dnSpy
Театр начинается с вешалки, а программа на C# с атрибутов сборки. Они нам сейчас не сильно интересны, поэтому пытаемся сразу запускать отладку. С неизвестными программами лучше использовать виртуальную машину, так как может быть встроена какая-нибудь пакость для кулхацкеров, но мне можно и так.
Ошибка. Открываем стек вызовов и ищем место, где произошел провальный запрос в сеть.
А вот и виновник торжества. По сообщению из исключения можно сделать вполне однозначный вывод, что проблемой является скупердяйство и непредусмотрительность автора, который решил перестать платить за домен и хостинг, а вместе с этим случайно (а может и намеренно) сделал запуск игры невозможным без интернета. Так как на сайте заявлено отсутствие DRM, то это явно недосмотр.
Что тут происходит?
Если почитать документацию на XNA, то этот метод предназначен для загрузки контента и вызывается автоматически при запуске игры. Первым делом выполняется инициализация некоторых вещей, после чего открывается файл настроек (options.xml) и начинает последовательно считываться. Как только считываются параметры аккаунта для таблицы рекордов, то происходит отправка логина+пароля на официальный сайт и попытка получить ID. Если сервер возвращает Failure, то открывается диалог входа, который можно пропустить. Если сервер возвращает число, то игра запускается. А вот если сервер недоступен, то вылетает исключение, которое никак не обрабатывается и приводит к молчаливому вылету.
Диалог входа официально можно пропустить.
На этом этапе есть 2 варианта действий:
Вручную отредактировать настройки и убрать пункт об аккаунте. Тогда игра будет всегда запускаться без входа.
Физически убрать запрос на несуществующий сайт.
Нормальные герои всегда идут в обход, так что переходим к написанию небольшого патча. (На самом деле, о первом варианте я додумался не сразу. Более того, полная версия зависает при убирании этого пункта из настроек).
Выделяем строчку с запросом и нажимает "Изменить инструкции IL". Открывается окно с заголовком "Изменение тела метода".
Это - язык MSIL. Он очень прост и сильно напоминает Forth, на самом деле, но новичка может отпугнуть.
Ключевым элементом является стек. Что такое стек я уже когда-то рассказывал. Это некоторое место, на вершину которого можно последовательно добавлять значения (числа, строки и прочие объекты), а так же снимать их в обратном порядке.
Не эти стеки, но суть та же. Можно добавлять и снимать сверху.
ldloc.2: Значение локальной переменной под номером 2 (с типом строки)
ldstr: Строку "&p=".
ldloc.3: Значение локальной переменной под номером 3 (тоже строка).
Потом мы вызываем String::Concat(), принимающий в себя 4 строки и соединяющий их вместе. При вызове метода будут сняты 4 верхние строки со стека и добавлена новая строка.
Вызов следующего метода (WebClient::DownloadString()) снимает строку, полученную от String::Concat(), и веб-клиент. В результате должна остаться только 1 строка, возвращенная WebClient::DownloadString().
Следующим этапом мы должны снять эту строку со стека и сохранить её в локальную переменную 1, но этого не произойдет, так как WebClient::DownloadString() всегда будет проваливаться и выбрасывать исключение. Исключение, если его не обработать сразу, будет раз за разом проваливаться глубже по стеку вызовов, пока не достигнет обработчика или дна. Так как никаких обработчиков по пути нет, то исключение достигает дна и приводит к вылету.
Чтобы избежать получения исключения, мы можем убрать всё, что предназначено для запроса в сеть. Примерно вот так:
8 инструкций превратились в 2: загрузка строки с числом (которое может быть любым) и сохранение в локальную переменную под номером 1.
Сохраняем и проверяем результат.
Было.
Стало.
Из декомпилированного кода полностью исчез кусок с запросом. Осталась лишь загрузка константной строки и сравнение с "Failure", которое всегда будет успешным.
Сохраняем модуль и пытаемся запускать опять.
Жопиздан!
С этой задачей успешно справился человек, который не смыслит в программировании вообще ничего. По его словам, он джва года ждал эту игру!
Но не всё так просто. Если попытаться пройти любой уровень, то вылетит то же самое исключение.
Для исправления точно так же выделяем строку и опять редактируем инструкции в теле метода. Но так как отправка статистики нонче ни на что не влияет, то просто удаляем выделенные инструкции без остатка.
А для надежности выделяем WebClient, нажимаем "Анализировать" и смотрим, где еще может ждать нас подлянка.
В Finish.Update() мы ошибку только что исправили, в Game1.LoadContent() исправили в самом начале, а Login.button1_Click(), Program.Main() и Title.Update() нас не интересуют, так как достаточно просто не делать того, что приведет к обращению в сеть (а конкретно: не открывать диалог входа, не указывать никакие аргументы при запуске и не пытаться авторизоваться через главное меню (вроде бы не реализовано)).
Числа Фибоначчи - это последовательность, где каждое очередное число равно сумме двух предыдущих. 1 = 0+1, 2 = 1+1, 3 = 2+1, 5 = 3+2, 8 = 5+3, ...
В программировании для вычисления этой и подобных последовательностей (факториалы, степени, если нет прямой возможности...) используются циклы.
Цикл представляет собой некоторые условия: начальные условия, условия завершения, изменение данных для достижения условий завершения. (Заметка для тех кто в теме, это касается любых циклов, а не только цикла for)
А вот то, что делается внутри цикла называется ТЕЛОМ цикла.
Когда я в прошлом году (2025) писал роман "Бес парадоксов" (главу 18 "Сталкеры"), пришлось тщательно изучить события 1951-1953 годов. Конкретно: матч на первенство мира по шахматам Ботвинник - Бронштейн, и личность Лаврентия Павловича Берии.
С матчем оказалось всё более или менее понятно, хороший матч, один из интереснейших за всю историю шахмат. Но вот с Берией оказалось всё очень сложно. Чем больше я читал первоисточников и производных материалов, тем меньше понимал. Принципиальные вопросы типа "почему Хрущёв победил Берию", "почему Берия и Хрущёв не могли договориться и править вместе после смерти Сталина", "что было бы в случае победы Берии" оставались без ответа.
Вот тогда мне в голову и пришла мысль, почему бы не использовать шахматный подход к предсказанию исторических событий, которые могут состояться или которые могли бы состояться?
Если вы не увлекаетесь шахматами, самое время заняться этим. Для погружение в тему прочитайте мои произведения "Шахматы, самоучитель для новичков", "Шахматы. Эпическая битва против смартфона 20250711", "Шахматы: человек против робота". Интересно, увлекательно и полезно.
Сегодня силами энтузиастов всего мира создано несколько сотен шахматных программ (движков), которые играют лучше сильнейших гроссмейстеров. Почему бы не использовать эти наработки для чего-то полезного, например, для создания системы прогнозирования событий? Конечно, такая система будет сложнее самого мощного шахматного движка примерно в миллиард раз.
Позволяю тут процитировать себя (песня "Секретное задание"):
Эх! Чем трудней задача, тем интереснее найти для неё решение,
А сложная работа для нас, это лучшее на свете развлечение.
К тому же, с другой стороны, нейронки бурно развиваются. Если объединить идеи шахматного движка и нейросети, то вполне реально сделать что-то полезное.
Например, можно будет довольно точно предсказать, станет ли Трамп захватывать Гренландию или ограничится исключительно словесными атаками. Я пытался предсказывать что-то такое (читайте "Сделаем что-нибудь великим снова"), но намного интереснее и полезнее выслушать мнение кибернетической нейро-системы. Она ведь учтёт характеристики семи миллиардов человек, имеющих отношение к процессу, влияние солнечного ветра, пролетающих комет и ещё чёрт знает чего!
Теперь переходим к развлекательной части нашей программы.
Да, понять личность Берии у меня не получилось, всё свелось к выдаче известных фактов в таком вот стиле:
Здравствуйте, дорогой товарищ Берия,
Отношусь к вам не против, почти даже "за"...
Но зачем из народного вы вышли доверия?
И за что вам иголкой прокололи глаза?
Особенно мне понравился заключительный куплет:
Прокололись во время важной встречи вы случайно,
Вдруг чисто и не к месту сказали "данке шон"
Оправдывались ловко, логично и отчаянно,
Но стало ясно всем: английский вы шпион.
Фирменный юмор Оборотова во всей красе! Отличная свежая остроумная рифма "данке шон" и "английский вы шпион". Очень тонко!
Но где тонко, там обычно и рвётся. Нейронка сказала так. Логические неувязки: Автор путает страны. Берию обвиняли в шпионаже на английскую разведку, но фраза «данке шон» (нем. Danke schön) - немецкая.
Ладно, посмотрим, как эта песня и видео к ней понравятся людям.
Видео забавное, почти как у классика: "кричали женщины ура и в воздух Берию бросали".
Большинству пользователей известно, почему возник Вомбат. На этом я не стану заострять внимание.
А хочу обратить внимание на сложность разработки подобных сайтов. Даже на уровне MVP (минимально жизнеспособный продукт).
Даже если есть готовые наработки, то в любом случае надо продумать: модель, то есть схему базы данных, дизайн веб-морды, общее взаимодействие, то есть бизнес-модель,...
Независимо от всего разрабатываю своего бобра (это скорее будет что-то вроде Хабра, а не очередной аналог Пикабу). И уже раз десять сносил БД из-за невозможности внести изменения (миграции). Ну, может я такой рукожоп и просто не знаю как правильно сделать. 🤷♂️
Нужно продумать внешний вид сайта. Тут сильно помогает такой инструмент как Figma. Да, дизайнеры Figm-ой занимаются. 🙃После пары настроек пользоваться одно удовольствие. Но мало задизайнить. Надо это ещё и в код перенести. А это уже вёрстка. Довольно нудное занятие.
В общем, чего хотел сказать, захотите сделать свой Пикабу с блекджеком и плюхами, то готовьтесь к тому, что заебётесь...
В 2025 году профессии в сфере IT остаются одними из самых востребованных. Специалисты по программированию, системному администрированию, кибербезопасности и цифровому дизайну требуются в компаниях разных отраслей.
Если вы окончили 9 или 11 класс и хотите быстро войти в профессию, обучение в колледже на IT-направлениях станет отличным выбором. Формат дистанционного образования открывает дополнительные возможности: учиться из любого региона, совмещать занятия с работой и осваивать навыки онлайн.
Преимущества дистанционного обучения в колледже
Гибкий график— удобно совмещать с работой или подработкой.
Доступность— можно учиться из любого города.
Практико-ориентированные программы— акцент на востребованные навыки: кодинг, администрирование, веб-разработка.
Перспектива продолжить обучение— выпускники могут поступить в вуз на старшие курсы.
Какие IT-специальности доступны дистанционно
В колледжах чаще всего предлагаются такие направления:
Информационные системы и программирование
Сетевое и системное администрирование
Веб-разработка и мультимедиа
Кибербезопасность
Цифровой дизайн и графика
Колледжи с IT-направлениями и дистанционным форматом обучения
Ниже представлен обзор колледжей, которые предлагают IT-специальности в онлайн-формате.
1. Колледж Университета «Синергия»
Направления:информационные системы и программирование, сетевое и системное администрирование, цифровой дизайн.
Формат:дистанционно через образовательную платформу.
Особенности:упор на практику и проектную работу, государственный диплом, помощь в трудоустройстве, возможность поступления в ВУЗ на бакалавриат. 👉Подробнее о поступлении
2. Колледж Цифровой Экономики и Технологий
Направления:Информационные системы и программирование (квалификация: специалист по информационным системам, разработчик веб и мультимедийных приложений).
Формат:дистанционно.
Особенности:доступен для выпускников школ и СПО, программы адаптированы под онлайн-обучение. 👉Подробнее о поступлении
Дистанционное обучение на IT-специальностях в колледже — это возможность за 2–3 года получить профессию будущего. Такой путь подходит тем, кто хочет учиться онлайн, ценит гибкость и планирует либо продолжить обучение в вузе, либо сразу выйти на рынок труда.
Всем доброго здравия, уважаемые вомбатовцы (я не знаю, как у вас тут принято обращаться друг к другу, надеюсь, никого не обидел).
Кто-то из вас знает, кто-то нет, но где-то месяц тому назад мы весьма немаленькой компанией были вынуждены покинуть насиженное место. Некоторых из нас, в частности меня, заклеймили злодеем вором сайтов, но я человек простой, мне во всей этой грязи возиться лень, я пару раз какашкой кинулся. да самоустранился. «Собака лает, караван идёт».
В итоге что получилось? Решили мы написать новый проект с нуля. Когда-то давно, ещё тогда, когда был большой исход с Пикабу (как раз когда и Вомбат появился на свет). Я решил написать свою площадку. В итоге довёл её за пару месяцев до состояния, что этим можно было пользоваться, но потом работа отъела ресурсы, а когда решил вернуться опять к проекту, уже вышли в открытый доступ варианты Того же Вомбата и Капибары. Свой я отложил в долгий ящик (искренне был уверен, что забросил навсегда).
Но тут вот как получилось.
Использовать код того проекта мне показалось не самой хорошей идеей, так как и технологии устарели и я чуть умнее стал, поэтому начал писать с нуля, но оглядываясь на опыт прошлой писанины.
В качестве основы был выбрал фреймворк Laravel. Почему? Да потому что я его знаю вдоль и поперёк и на нём подобные штуки поднимаются достаточно легко и быстро.
Большой вопрос по фронтэнду. Я вроде как фулстек, но JS фреймворки, аля VUE и React считаю излишеством, тем паче, что открытого АПИ у проекта всё равно нет и не планируется. Поэтому решил совместить удобное с быстрым. И тут мне под руки попалась такая интересная фигня (ну как попалась, чат ГПТ мне её посоветовал. Говорит: «Потыкай в неё палочкой, перспективная фигня»), как Livewire.
И вот, совместив стандартный ларавелевский шаблонизатор, вот эту вот вундервафлу и обычный ванильный JS, удалось собрать проект буквально за пару недель. Пришлось правда отложить все прочие свои поделки, но тут уж как получается 🤷♂️
Ещё две недели активный тестов небольшой, но очень умелой группой пользователей. И вот сегодня я открыл сайт для общего польования.
Согласно пункту правил 10, я, вроде как могу тут делиться ссылками на свои ресурсы, но с другой стороны, этот ресурс не полностью мой, там за ним целая толпа стоит. Поэтому не буду гневить ВомбатоМодераторов. Тем более, что цели переманить людей отсюда к нам у меня нет, я просто хвастаюсь ☺
Что могу сказать по итогу: задачка интересная. И работы предстоит по её доделыванию уйма, но и опыт это прям хороший. Особенно по работе с БД. Так что, готов ответить на вопросы, поделиться, если у кого-то есть что спросить. А если кто-то вдруг ещё и шарит в описанных мной технологиях, буду раз помощи)
Linux, а для меня основная ОС для дома (удевлены?), является продолжателем самых первых операционок семейства UNIX, фактически - родоначальника всех ОСей. И есть в ней такая замечательная "либа", некий аналог виндовой DLLки. Практически во всех линухах (и частенько в MAC-OS/Windows) не только библиотека есть, но и её обёртка, что бы можно было использовать в командной строке.
Так вот, разраба данной библиотеки хакнули, причём конкретно его самого. Это наивысшый уровень социального инжиниринга.
Т.к. его библиотека была распростанённой, и достаточно эффективной, то хакеры решили "хакнуть" большинство дистров на базе Linux одним махом.
Там была цельная спецоперация.
Сначала долбили разраба фич-реквестави (пожелалками) - продолжалось енто пару лет. Потом появляются коммитеры, которые енти фичи реализуют. Их количество росло, а чел (ну не буду я его ФИО писать, что блы поисковики его опять пердолили ссылаясь на ентот пост - не хочу), просто устал, выгорел. И дал права над исходниками левому чуваку, который был наиболее активен среди коммитеров.
Результат не заставил себя ждать - в качестве очередного патча, в библиотеку был внедрён бэкдур, позволяющий получить права root.
Так будет тост: "Не давайте прав кому либо выше Ваших! Программисты - вы боги-создатели своего кода".
Нуссс. Начну из далека. На заре вычислительной техники народ довольствовался механическими вычислительными машинками. Не буду на них останавливаться - это тема для длинющего поста, начиная с камешков на берегу и заканчивая машинкой "Энигма".
Потом, почти одновременно, появились аналоговые вычислительные машины - АВМ. Они имели крайне узкую направленность, и грубо говоря пытались электронными, а зачастую и физическими методами повторить некий физ. процесс и получить результат/расчёт того или иного физ. процесса. Головоломка уже не для программистов, а для физиков и математеков.
штЫрьками собираем схему для нужного вычислеия - соединения подключают различные блоки интеграторов, делителей, усилителей пр. Всё должно быть выполнено очень точно. Это пик развития аналоговой электроники
Про квантовые компы я промолчу тихи в тряпочку - сколько ни читал - муть мутная и мне непонятная. Стар я видать стал, а может стал и СуперСтар...
Говорить я буду о привычных компах - которые работают с единичками и ноликами (троичные погибли, хотя в СССР были нехилые наработки). Вроде всё норм, но комп, процессор, понимает как раз енти нули и единички. Ещё на этапе проектирования железяки народ понял енту проблему и начал объединять их в группы, кратные степени двойки. Так появился байт (2^3 = 8), а потом и слово (2^4 = 16). И тут же различные производители железа придумали первый геморрой для программистов - порядок следования байт в слове. Little-Endian и Big-Endial - эти слова знакомы каждому сетевику и привычно вызывают когнитивный диссонанс...
Но ладно, вернёмся к ассемблеру. На заре программирования под цифровые процессора народ вбивал программу тумблерами - битик за битиком. Производительность труда была на наименьшейшем уровне, а вероятность щёлкнуть не тот битик самой большой.
Нервы не выдержали и мисс Кэтлин Бут решила облегчить себе работу, создав первый в мире ассемблер для ARC2 (военный авиационный вычислитель).
Эту идею подхватили остальные. Что самое интересное - на языке Ассемблера можно добиваться максимальной производительности (самая популярная библиотека ffmpeg имеет множество ассемблерного кода под разные архитектуры) - выжать из процессора все соки. Такое же происходит в различных математических библиотеках.
Вроде всё с ассемблером хорошо, кроме одного - там команды процессору заменены на мнемокоды - краткие символьные представления команды процессора. Писать программу стало удобно, понятно. Появились кросс-ассемблеры (низкий уровень llvm)
Но оснавная засада осталась - трудоёмкость программирования и половина башки программиста занята архитектурой компа (да-да, там не только про проц надо помнить, но и про периферию).
спёрто с https://blog.skillfactory.ru/glossary/assembler/
А что итого? Я понимаю, что питонисты нифига не поймут - они даже не понимают, что каждая питон-либа это просто обёртка под высокоэффективным кодом на Си. Ассемблер жив и будет жив, те же "тысяча строк" ассемблера под линуксом - это и есть основа ядра ОС. Потом уже можно писать на Си, Си++, даже Расте (чёт ОС растоманов зачахла - видать пришло понимание, что язык высокого уровня не может использоваться наравне с Ассемблером или СИ).
Язык Ассемблера, как продился, так и будет жив. Есть яыки программирования близкие к АСМу - тот же Си, или Форт, но никто не даст программисту той мощи и контроля за компом как АСМ. Тот же Си в своих диалектах везде имеет возможность АСМ-вставок.
Что же до программирования на АСМе - мне он нравится, но... Всегда надо иметь баланс в голове. Поверьте strncpy() из Си будет более оптимизирована чем ваша реализаций на АСМе, а вот к-либо формула, вычисляющая интеграл, которого нет в clib - лучше уже на асме, особенно если оно вычисляется в цикле..
Я всегда работал в командах, где рядом были гики. Они могли часами ковыряться в исходниках, спорить о фреймворках, разбирать архитектуры до последнего байта. И я часто чувствовал себя самозванцем.
Я не получал удовольствия от бесконечного копания в технологиях. Меня всегда больше заводила другая часть - продукт. Чтобы было что показать людям. Чтобы оно работало и решало задачу.
И вот недавно я наткнулся на простую мысль: есть два типа разработчиков.
Гики— им в кайф технологии ради технологий. Они кайфуют от деталей, оптимизаций, исходников.
Продуктовые— им интересен результат. Технологии для них — инструмент, а драйвит то, что продуктом кто-то реально пользуется.
Когда я это понял — многое встало на свои места. Я перестал сравнивать себя с теми, кто живёт кодом ради кода. Я нашёл отдушину в пет-проектах и indie-hacking. Там как раз важнее другое — скорость, гипотезы, первые пользователи.
💡 Поэтому если ты тоже чувствуешь синдром самозванца — попробуй честно ответить себе: кто ты? Гик или продуктовый. И тогда сравнивать станет проще, а работать легче.
Я делюсь такими наблюдениями про код, проекты и indie-hacking у себя в телеге. Если эта тема отзывается — заглядывайте, ссылка в профиле
О проекте: Пишем один код - собираем на разные 8 бит МК!
https://vm5277.ru - это универсальное решение для embedded-разработки, которое позволяет сократить время создания прошивки для 8 бит микроконтроллеров в разы.
Как это работает?
Пишешь код на Java подобном языке (чистое ООП, без головной боли с указателями и не читабельным кодом)
Компилятор автоматически генерирует оптимизированный ассемблерный код под выбранную платформу
Код работает поверх легковесной RTOS, написанной на ассемблере для максимальной производительности
Ассемблер-сборщик финализирует проект в бинарный файл прошивки
Что входит в решение:
Высокоуровневый компилятор с Java подобным синтаксисом
Максимально оптимизированная RTOS, целиком на ассемблере для каждой платформы
Унифицированные драйвера - один API для UART, SPI, I2C, GPIO на всех МК
Стандартные библиотеки (Runtime): Базовые типы данных (Float, String), математические функции (Math), работа с памятью и другие абстракции, не зависящие от платформы.
Драйверы верхнего уровня (High-Level Drivers): Унифицированные API для работы с периферийными устройствами: датчиками (I2C/SPI), дисплеями, SD-картами, беспроводными модулями (ESP8266, Bluetooth).
Ключевые преимущества:
Скорость разработки: Создавайте функционал на высокоуровневом языке быстрее, чем на Си
Производительность: RTOS и драйверы оптимизированы до уровня чистого ассемблера, экономя каждый байт и такт
Переносимость: Переход с AVR на PIC или STM8 - дело нескольких правок, а не изучение и адаптация библиотек
Проект находится на ранней стадии, но я активно над ним работаю. Уже можно видеть, как высокоуровневый код на Java-подобном языке превращается в чистый и эффективный ассемблер! Это ещё не итоговый вариант, но прогресс уже есть.
Что уже работает в этом примере:
Наследование интерфейсов: Test implements Number
Динамическое выделение памяти: оператор new
Полиморфизм: вызов метода через переменную интерфейсного типа (Number.toByte())
Проверка типа во время выполнения: оператор is (аналог instanceof)
Полноценная работа с объектами: конструкторы, методы, поля.
Интеграция с RTOS: вызов системных функций (System.out).
Исходный код custom.j8b
Итоговый ассемблер код(стр. 1, черновой, могут быть ошибки)
Итоговый ассемблер код(стр. 2, черновой, могут быть ошибки)
Также приведу одну из функций RTOS(код сырой, может содержать ошибки)
1. Метаданные класса: Компилятор автоматически формирует структуру для поддержки RTTI (Run-Time Type Information), необходимую для instanceof.
2. Динамическое создание объекта в куче: Код конструктора new Byte(0x08) транслируется в вызов менеджера динамической памяти (os_dram_alloc) и инициализацию полей.
3. Проверка типа (is / instanceof):
Оператор if(b1 is Byte) компилируется в вызов процедуры j8bproc_instanceof_nr, которая проверяет метаданные объекта.
4. Полиморфный вызов метода:
Вызов b1.toByte() через интерфейс Number преобразуется в универсальный механизм поиска и диспетчеризации метода.
5. Интеграция с системными сервисами:
Вывод в "консоль" (System.out) — это вызов системного сервиса ОСРВ.
Что это значит?
Это доказывает, что подход vm5277 работоспособен. Мы можем писать на высокоуровневом ООП-языке, а под капотом получать код, который:
Эффективно использует память: объекты размещаются в куче, метаданные компактны.
Сохраняет производительность: ключевые операции (выделение памяти, проверка типов) вынесены в оптимизированные ассемблерные процедуры.
Является переносимым: этот же Java-код, после завершения работы над платформами, сможет работать на PIC и STM8 (ограничений почти нет).