The Dragon Code News
258 subscribers
210 photos
7 videos
4 files
234 links
Рассказываем о том, над чем работаем и что может быть полезным разработчикам 🙂

dragon-code.pro
Download Telegram
1😁9
🎄 С наступающим Новым Годом!

Желаем Вам стабильных серверов, отсутствие багов и закрытия бизнес-задач!

🥂🥂🥂
🔥13🍾63
Первое правило туризма:

Не ешь жёлтый снег
😁6💯5
Первое правило сисадмина:

Работает — не трогай
💯4🌚2👍1
Среди нас есть 3D печатники? Нужна ваша помощь!

Собираю MVP нового сервиса с настройками калибровок филамента и нужно отладить механизм загрузки настроек.

Поэтому прошу всех, кто пользуется OrcaSlicer, Bambu Studio, PrusaSlicer, CrealityPrint или любым другим софтом, под капотом которого Bambu Studio, экспортировать свои профили филамента и прислать ZIP архив мне для тестов.

Заходим в "Файл" > "Экспорт" > "Экспорт пакета профилей..."

На открывшейся странице выбираем пункт "Filament Profiles..." и протыкиваем галками все профили.

На выходе будет ZIP архив с json файлами внутри. Они-то и нужны для тестов.

Проект 3d.dragon-code.pro
👍1
Почему не стоит полностью полагаться на результат работы нейронки предпочитая использовать её лишь в качестве помощника.

Я тот ещё спец по составлению промптов, так что составил следующую инструкцию:

Исходные данные:

- Профили: `storage/app/orca_slicer/OrcaSlicer-main/resources/profiles/*.json`.
- Профили филамента: `storage/app/orca_slicer/OrcaSlicer-main/resources/profiles/*/filament/*.json`.
- Загруженная в базу данных карта профилей филамента: `SELECT "key", "path" FROM maps WHERE "type" = 'filament'`.
- Доступные типы филамента находятся в таблице БД. Получить их можно запросом: `SELECT "title" FROM filament_types`.
- Доступные названия производителей находятся в таблице `vendors`: `SELECT "title" FROM vendors`.
- Обозначение "HS" - это High Speed. Обозначение "HF" - это High Flow. Нужно их нормализовать в единый вид - `HS`.
- Обозначение "CF" - это Carbon Fiber.

Задача:

Проанализируй содержимое колонки "key" в таблице "maps" для всех записей и напиши универсальный код, который позволит обнаруживать в подобных строках следующие данные:

- Производитель (например, Bambulab, Creality, Co Print, eSUN, etc.)
- Тип филамента (например, ABS, ASA+, PETG HS, PPA-CF HS, etc.)
- Цвет филамента (например, Yellow, Brown, Marble, Aero, Transparent, Chameleon, Conductive, Crystal, Everfil, CMYK, etc.)

Для кода создай новый класс App\Services\OrcaSlicer\FilamentDetector.

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

В случае невозможности точного определения данных нужно возвращать `null` из метода определения как явный признак.


На выходе получил два файла:

- Сервис: https://laravel.su/pastebin/2aNFWaxN
- Тест: https://laravel.su/pastebin/w-3m8u4d

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

- https://laravel.su/pastebin/4JroI5dM

С одной стороны всё в порядке, но по факту видим что в таблице есть некоторые недочёты, а именно для строки с RED MATT цвет неправильно определён - указан Red хотя должен быть Red Matte (красный матовый). И да, это разные цвета для филамента в 3D печати.

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

База "обучения", на основании которой нейронка работала, включает в себя 5391 запись, 678 из которых повторялись минимум по 2 раза, а максимум по 37 раз.

Так что, заменит ли нас нейронка в ближайшее время? Очень сильно в этом сомневаюсь :)
preview.dragon-code.pro существует с 2014-го года и предоставляет функционал по лёгкому созданию красивых превью для проектов.

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

Некоторые из них более популярные, а некоторые - менее.

С разбивкой по годам получаем, что в 2025-м году превью открывали на 1007 проектах, а в 2026-м - на 154.

Для малоизвестного сервиса это неплохой показатель.

Превью самых популярных проектов за 2025-й год:

- 64'390 - laravel-lang/Localize-your-app
- 22'078 - laravel-lang/app-localization
- 3'476 - laravel-lang/localization-app
- 1'540 - AriaieBOY/Sail Runtime Image
- 1'313 - open-source packages/Making Developers Happy
- 1'012 - EgoistDeveloper/Readable-Numbers

Превью самых популярных проектов за 2026-й год:

- 199'189 - laravel-lang/localizations
- 37'724 - your-vendor/your-project
- 16'210 - EgoistDeveloper/Laravel-License-Server
- 10'828 - laravel-lang/locales-publisher
- 10'045 - laravel-lang/localize-your-app
- 9'246 - Ariaieboy/Jalali-Date-Picker
- 7'699 - the-dragon-code/deploy-operations
- 5'634 - Luhn's-algorithm/card-number
- 5'337 - the-dragon-code/deploy-actions
- 5'147 - EgoistDeveloper/operating-system-logos
- 5'100 - MohamedSabil83/Filament-Hijri-Picker - 4'758 - laravel-ready/laravel-starter
- 4'698 - Multintegrada/Saúde Integrada
- 4'665 - laravel-lang/attributes
- 4'413 - Ariaieboy/Jalali-DateTime
- 4'412 - the-dragon-code/code-styler
- 4'120 - Ariaieboy/Filament-Jalali
- 3'894 - milwad-dev/laravel-validate
- 3'832 - Ariaieboy/Laravel-Sail
- 3'581 - Multintegrada/Samu-360-server

Ссылки на сами репозитории не ведутся, поэтому угадывал через Гугл. Но удалось не всё :)

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

Так или иначе, объявляю проект устаревшим и вскоре он будет снят полностью отключён.
1🔥1
Позавчера было опубликовано сообщение о разработки нового сервиса для 3D печатников, для которого были нужны пользовательские профили с настройками филаментов.

А уже сегодня проект окончательно заархивирован 🙂

Причина тому в огромном объёме нестабильных данных для обработки.

На случай если кто вдруг загорится идеей, опишу свои размышления.

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

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

Например, три человека используют условный принтер X1, филамент C1 PLA High Speed жёлтого цвета. Каждый у себя настроил и загрузил конфиг на сайт.

Допустим, их базовые параметры имеют следующие значения:

User  PA      Flow Ratio  Vol Speed
U1 0.0701 1.045 24
U2 0.02 0.998 21
U3 0.073 0.991 22

И для каждого из этих людей именно эти параметры идеальны несмотря на использование одного и того же всего.

И на горизонте появляется четвёртый человек с таким же железом и филаментом. Конечно, он может с нуля из Generic профиля калибровать пластик, что занимает около 8 часов на всех тестах, а может взять их средние значения и сразу вбить в слайсер, лишь "шлифуя" под себя.

Вот и получится, что его значения будут:

User  PA      Flow Ratio  Vol Speed
U4 0.0544 1.013 22.3


И с этим уже можно работать.

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

Мои наброски опубликовал в опенсурс:

https://github.com/TheDragonCode/3d.dragon-code.pro

Начальные данные для заполнения брал из исходников OrcaSlicer.
2
Media is too big
VIEW IN TELEGRAM
Есть среди нас те, кто умеет в Blender?

Сегодня начал его изучать по роликам на ютубе и уже споткнулся 😅

Подскажите, как сделать подобное в Blender? Во Fusion 360 процесс занял у меня 7 минут с копейками с учётом ошибок :)
История появления JavaScript

1995 год.

Netscape Navigator – главный браузер планеты, занимает 80% рынка, да еще и денег стоил, что сейчас вообще дикость.

Microsoft смотрит на это и видит: интернет – это будущее, и они его упускают.

Нужно что-то решать.

Microsoft срочно пилит Internet Explorer и встраивает его в Windows.

Бесплатно. Принудительно. Каждому.

Netscape в панике. Им нужно что-то, чего нет у Microsoft. Какая-то киллер-фича, которая привяжет разработчиков к их браузеру.

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

Чтобы кнопки нажимались, формы проверялись, что-то мигало и двигалось.

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

Задачу дают Брендану Айку, разработчику Netscape, которому на тот момент 34 года.

Срок – 10 дней.

Десять, блин, дней.

Не месяцев. Не недель. Дней.

Без чата гпт, Claude Code и даже Stack Overflow.

Брендан сел и написал.

Назвали JavaScript.

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

К самой Java этот язык имеет примерно такое же отношение, как хомяк к Hamster Kombat.

Спасло это Netscape? Нет.

Microsoft тупо скопировал идею, назвал свою версию JScript, и продолжил катком давить конкурента.

К 2000 году Netscape был мёртв. IE захватил 95% рынка.

Но JavaScript выжил.

И что в итоге?

Этот «временный костыль на 10 дней» сейчас:

– работает на 99.9% всех сайтов в интернете и является самым популярным языком в мире
– крутится на серверах (Node.js)
– пишет мобильные приложения (React Native)
– управляет умными чайниками

И при этом всем – это лютое говно.

Язык, написанный за 10 дней, несёт в себе все болячки того спринта:

Например "11" + 1 = "111", но "11" - 1 = 10 – typeof null возвращает "object" (это официально признанный баг, который не фиксят 30 лет ради обратной совместимости)

0.1 + 0.2 = 0.30000000000000004

[] == ![] возвращает true

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

Человечество придумало TypeScript, линтеры, 500 библиотек, которые надо грузить вместе с сайтами чтобы как-то жить с этим, но это костыли поверх костылей, что плохо.

Удивительно, как иногда популярным становится очевидное говно.
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Генератору превью для GitHub репозиториев - ЖИТЬ!

Но - другому 😅

Как сообщал раннее, сервис preview.dragon-code.pro доживает свои последние дни и было рекомендовано пользоваться другими генераторами изображений, например, banners.beyondco.de.

Так вот, представляем Вашему вниманию новый генератор изображений для GitHub Actions - GitHub Preview Updater

Он собирает информацию о Вашем репозитории и проекте и составляет на её основании картинку.

Есть фича с поддержкой тёмной и светлой тем браузера. Да, GitHub так умеет и генератор, соответственно, тоже.

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

Подробнее об использовании читайте в ридми проекта:

https://github.com/TheDragonCode/github-preview-updater

Быстрый старт:

# .github/workflows/preview.yml
name: Preview Updater

on:
schedule:
- cron: '20 2 * * *'
workflow_dispatch:

permissions:
contents: write
pull-requests: write

jobs:
preview:
uses: TheDragonCode/.github/.github/workflows/preview.yml@main
🔥4❤‍🔥1
🎁 GitHub Preview Updater v2 уже в релизе!

Что изменилось?

14-го января вышел MVP проекта.
15-го января его отшлифовали и скорректировали API.

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

Добавлены параметры для отрисовки команды установки - глобальная и dev зоны видимости.

И много чего ещё.

Во второй версии улучшена работа с урлами - убраны остатки привязки к banners.beyondco.de при необходимости заменить ссылку на свою.

Быстрый старт:

Создать файл .github/workflows/preview.yml со следующим содержимым:

name: Preview Updater

on:
schedule:
- cron: '20 2 * * *'
workflow_dispatch:

permissions:
contents: write
pull-requests: write

jobs:
preview:
uses: TheDragonCode/.github/.github/workflows/preview.yml@main


И руками запустить экшен. Либо дождаться обработки по расписанию.

https://github.com/marketplace/actions/preview-updater
🔥2
Forwarded from Пых (Валентин Удальцов)
Стартовал ежегодный опрос!

С 2020 года лидеры русскоязычного PHP-сообщества проводят опрос. Так мы получаем портрет нашей аудитории и понимаем, на чём фокусироваться в новом году.

В этот раз эстафету от CutCode приняла питерская команда Live PHP, пожелаем ребятам удачи с вёрсткой итогов!

➡️ Пройти опрос

Опрос анонимный, но если оставить свою почту, можно поучаствовать в розыгрыше слоника 💙Пых.

Итоги, как обычно, будут опубликованы на phpcommunity.ru.
Please open Telegram to view this post
VIEW IN TELEGRAM
💯5😁2
В силу нулевого интереса к проекту, а также активному развитию различного рода консольных, GUI и ИИ инсталляторов, принял решение заархивировать проект Package Wizard, на разработку которого потребовалось много сил и времени.

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

Поэтому просто приложу скриншоты мажорных изменений, так и не вышедших в релиз. И... помянем...
😱3🫡2
И, раз уж пошла жара на принятие неизбежного - официально останавливается работа над проектом Cashbox для Laravel.

Это менеджер систем оплат.
😢2🔥1
- Что едят андроиды на завтрак?
- Иишницу
👍3😁3