JetBrains выпустили свежий релиз Writerside 2025.03.8312 для документации
Киллер-фича в отказе от продаж. Изначально Writerside разрабатывался как платный проект в стадии EAP, а с 11-го марта 2025-го официально прекратил претендовать на платную роль. Но и вместе с тем Брейнсы отказались поддерживать отдельную IDE на её базе в пользу плагина.
Что нового:
- Теперь можно в рамках одного репозитория создавать несколько документаций благодаря новой фичи множественной сборки;
- Добавлена возможность экспорта контента документации в текстовые файлы для использования с LLM;
- Добавили новый формат карточек;
- Добавили новые иконки соцсетей в футер;
- Улучшили ссылки, вебхуки, пути, типы, примеры и другие улучшения и фиксы
https://www.jetbrains.com/help/writerside/8312.html
Киллер-фича в отказе от продаж. Изначально Writerside разрабатывался как платный проект в стадии EAP, а с 11-го марта 2025-го официально прекратил претендовать на платную роль. Но и вместе с тем Брейнсы отказались поддерживать отдельную IDE на её базе в пользу плагина.
Что нового:
- Теперь можно в рамках одного репозитория создавать несколько документаций благодаря новой фичи множественной сборки;
- Добавлена возможность экспорта контента документации в текстовые файлы для использования с LLM;
- Добавили новый формат карточек;
- Добавили новые иконки соцсетей в футер;
- Улучшили ссылки, вебхуки, пути, типы, примеры и другие улучшения и фиксы
https://www.jetbrains.com/help/writerside/8312.html
Writerside Help
2025.03.8312 | Writerside
🔥3
🚀 Полезные плагины для PhpStorm
- Laravel Idea - незаменимый помощник для работы с Laravel.
- CodeGlance Pro - отображение скроллера "как у sublime".
- Developer Tools - набор полезных хелперов для разработки. Есть также "быстрый запуск" в правом боковом меню.
- Elasticsearch - работа с Эластиком.
- Json Parser - парсер json строк.
- Mermaid - построение графиков и функций Mermaid.
- PHP Annontations - улучшение работы с аннотациями.
- PHP Expections - расширенный аудит PHP кода с возможностью быстрого применения хот-фиксов влияющих на быстродействие.
- String Manipulation - работа со строками - смена case, фильтрация, сортировка и другое.
- Translation - быстрый перевод текста по хоткею
- Writerside - плагин для работы с документацией Writerside
- Laravel Idea - незаменимый помощник для работы с Laravel.
- CodeGlance Pro - отображение скроллера "как у sublime".
- Developer Tools - набор полезных хелперов для разработки. Есть также "быстрый запуск" в правом боковом меню.
- Elasticsearch - работа с Эластиком.
- Json Parser - парсер json строк.
- Mermaid - построение графиков и функций Mermaid.
- PHP Annontations - улучшение работы с аннотациями.
- PHP Expections - расширенный аудит PHP кода с возможностью быстрого применения хот-фиксов влияющих на быстродействие.
- String Manipulation - работа со строками - смена case, фильтрация, сортировка и другое.
- Translation - быстрый перевод текста по хоткею
- Writerside - плагин для работы с документацией Writerside
Laravel-Idea
Laravel Idea
The most productive Laravel Development Environment
👍11✍3❤🔥1
Полезное расширение .gitattributes support для PhpStorm
7-го марта нв маркетплейсе JetBrains появилось новое расширение для работы с файлами
Плагин подсвечивает подсвечивает синтаксис файла, добавляет автокомплит для правил и позволяет быстро переходить к нужным файлам и папкам по одному клику.
Единственное чего не хватает на момент написания этого поста, это подсказок при добавлении файлов и папок. Но, скорее всего, рано или поздно, он появится.
https://plugins.jetbrains.com/plugin/26477--gitattributes-support
7-го марта нв маркетплейсе JetBrains появилось новое расширение для работы с файлами
.gitattributes
.Плагин подсвечивает подсвечивает синтаксис файла, добавляет автокомплит для правил и позволяет быстро переходить к нужным файлам и папкам по одному клику.
Единственное чего не хватает на момент написания этого поста, это подсказок при добавлении файлов и папок. Но, скорее всего, рано или поздно, он появится.
https://plugins.jetbrains.com/plugin/26477--gitattributes-support
👍6
Мой набор команд для обновления контейнера WSL в Windows
Конечно, кроме этого нужно также создать ssh ключ, запретить парольную аутентификацию и закрыть снаружи все порты кроме 80 и 443 для начала.
wsl --install -d Ubuntu-24.04
wsl --set-default -d Ubuntu-24.04
wsl --unregister -d Ubuntu-22.04
wsl --update
wsl
sudo su
apt update && apt upgrade -y
apt install -y lsb-release ca-certificates apt-transport-https software-properties-common postgresql-client imagemagick
add-apt-repository ppa:ondrej/php
apt update && apt install -y php8.4 php8.4-curl php8.4-mbstring php8.4-xml php8.4-zip php8.4-bcmath php8.4-intl php8.4-readline php8.4-redis php8.4-sqlite3 php8.4-opcache php8.4-pdo php8.4-mysql php8.4-pgsql php8.4-imagick
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php && php -r "unlink('composer-setup.php');" && mv composer.phar /usr/local/bin/composer
composer global require ergebnis/composer-normalize
apt update && apt upgrade -y && apt autoremove --purge -y && apt autoclean -y && apt clean -y
Конечно, кроме этого нужно также создать ssh ключ, запретить парольную аутентификацию и закрыть снаружи все порты кроме 80 и 443 для начала.
👍6❤4🔥2🤔2
Laravel-Zero - это микро-фреймворк для консольных приложений на базе Laravel Framework, позволяющий легко и быстро разрабатывать функционал работающий без веба. Но инициатором этой статьи стал кейс при использовании Laravel Prompts с несколькими часами потраченного времени.
Для экономии Вашего времени при столкновении с этой ошибкой или вовсе преждевременным её устранением, добро пожаловать в пост:
https://habr.com/ru/articles/892010/
Для экономии Вашего времени при столкновении с этой ошибкой или вовсе преждевременным её устранением, добро пожаловать в пост:
https://habr.com/ru/articles/892010/
50🔥4👍2
Laravel-Lang: 6 миллионов скачиваний — присоединяйтесь к успешным проектам!
🎉 Наш проект Laravel-Lang: Lang достиг важной вехи — 6 миллионов скачиваний на Packagist! 🎉
С момента своего перехода в 2020 году из местечкового
Почему выбирают Laravel-Lang?
- Простота использования.
- Регулярные обновления.
- Поддержка большого и дружного сообщества.
Не упустите возможность локализовать свои проекты с помощью Laravel-Lang. Присоединяйтесь к нам и убедитесь, насколько легко и удобно работать с нашим продуктом!
👉 Посетите наш сайт и узнайте больше: https://laravel-lang.com
🎉 Наш проект Laravel-Lang: Lang достиг важной вехи — 6 миллионов скачиваний на Packagist! 🎉
С момента своего перехода в 2020 году из местечкового
caouecs/laravel-lang
, проект вырос до 24 репозиториев и объединил 32 талантливых специалиста. Мы гордимся тем, что наше решение помогает тысячам разработчиков по всему миру.Почему выбирают Laravel-Lang?
- Простота использования.
- Регулярные обновления.
- Поддержка большого и дружного сообщества.
Не упустите возможность локализовать свои проекты с помощью Laravel-Lang. Присоединяйтесь к нам и убедитесь, насколько легко и удобно работать с нашим продуктом!
👉 Посетите наш сайт и узнайте больше: https://laravel-lang.com
Laravel Lang Help
Lang | Laravel Lang
Translations for Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel UI.
❤7🎉1
Коротко о том как работает метод "Cache::flexible()" в Laravel
Метод
Например, какой-то код выполняется 10 секунд. Таким образом, первый запросивший будет ждать 10 секунд прежде чем получит ответ в случае отсутствия кэшированных данных.
Именно эту проблему и призван решить метод "Cache::flexible()".
Вторым параметром метода указывается массив из двух значений, например,
- 600 - это то самое время (TTL) жизни кэша в целом;
- 480 - время, через которое ключ можно считать устаревающим.
В данном примере мы запоминаем значение сроком на 10 минут, а устаревшими данными считаются по истечении 8-ми минут.
Что это значит и как это работает? А работает это довольно просто благодаря функционала Concurrency, работающим с процессами PHP без блокировки ответа.
Другими словами, кэш живёт 10 минут и при постоянном обращении к нему в ответ будет всегда выводиться результат кэширования. В итоге получаем отсутствие ожидания времени выполнения в 10 секунд при "протухшем" кэше ибо протухание "самоустраняется", так сказать.
Допустим, результат запрашивается каждую минуту. При самом первом запросе пользователь будет ждать 10 секунд пока выполнятся какие-то действия, после чего результат будет записан в кэш. При ежеминутных запросах
Вот и получаем что при постоянных запросах код становится, так сказать, "самопрогреваемым".
Если прямо "на пальцах", то при вызове
При повторном вызове метода проверяется наличие того самого второго ключа и, пока он жив, данные считаются актуальными.
Как только тот второй пропадает, запускается функция механизм Concurrency, создающий фоновый процесс для обновления данных, а ответ из запроса по-прежнему возвращается из кэша.
Фоновый процесс, закончив выполнение, кладёт свежие данные в кэш и создаёт новый вспомогательный ключ сроком на 480 секунд.
И так по кругу.
Минус у этого способа один - если эти данные будут запрашиваться, скажем, раз в 20 минут, тогда при каждом запросе нужно будет ожидать 10 секунд, так как в кэше этих данных уже не будет. Решить эту проблему можно двумя способами в зависимости от нужд приложения - либо создать крон-команду с "прогревом", т.е. когда команда раз в N времени будет просто запрашивать этот механизм, таким образом создавая прецендент на срабатывание, либо увеличить срок жизни кэша.
https://laravel.com/docs/12.x/cache#swr
Метод
Cache::remember
"запоминает" данные на определённый промежуток времени, по истечении которого, следующий за ним запрос будет вынужден ожидать вычислений с последующей записью в кэш.Например, какой-то код выполняется 10 секунд. Таким образом, первый запросивший будет ждать 10 секунд прежде чем получит ответ в случае отсутствия кэшированных данных.
Именно эту проблему и призван решить метод "Cache::flexible()".
Вторым параметром метода указывается массив из двух значений, например,
[480, 600]
, где:- 600 - это то самое время (TTL) жизни кэша в целом;
- 480 - время, через которое ключ можно считать устаревающим.
В данном примере мы запоминаем значение сроком на 10 минут, а устаревшими данными считаются по истечении 8-ми минут.
Что это значит и как это работает? А работает это довольно просто благодаря функционала Concurrency, работающим с процессами PHP без блокировки ответа.
Другими словами, кэш живёт 10 минут и при постоянном обращении к нему в ответ будет всегда выводиться результат кэширования. В итоге получаем отсутствие ожидания времени выполнения в 10 секунд при "протухшем" кэше ибо протухание "самоустраняется", так сказать.
Допустим, результат запрашивается каждую минуту. При самом первом запросе пользователь будет ждать 10 секунд пока выполнятся какие-то действия, после чего результат будет записан в кэш. При ежеминутных запросах
Cache::flexible()
"увидит" что наступило время истечения срока годности токена и создаёт не блокирующий процесс на его обновление. Таким образом, при запросе на 9-й минуте пользователь всё также быстро получит результат кэша потому как он был записан, а фоновый процесс выполнит то самое действие и обновит этот самый кэш.Вот и получаем что при постоянных запросах код становится, так сказать, "самопрогреваемым".
Если прямо "на пальцах", то при вызове
Cache::flexible()
создаётся два ключа - один с данными на 600 секунд, а второй на 480 как метка времени.При повторном вызове метода проверяется наличие того самого второго ключа и, пока он жив, данные считаются актуальными.
Как только тот второй пропадает, запускается функция механизм Concurrency, создающий фоновый процесс для обновления данных, а ответ из запроса по-прежнему возвращается из кэша.
Фоновый процесс, закончив выполнение, кладёт свежие данные в кэш и создаёт новый вспомогательный ключ сроком на 480 секунд.
И так по кругу.
Минус у этого способа один - если эти данные будут запрашиваться, скажем, раз в 20 минут, тогда при каждом запросе нужно будет ожидать 10 секунд, так как в кэше этих данных уже не будет. Решить эту проблему можно двумя способами в зависимости от нужд приложения - либо создать крон-команду с "прогревом", т.е. когда команда раз в N времени будет просто запрашивать этот механизм, таким образом создавая прецендент на срабатывание, либо увеличить срок жизни кэша.
https://laravel.com/docs/12.x/cache#swr
👍4🔥4
Forwarded from AI News | Нейросети
Синий «экран смерти» УМЕР: Microsoft перекрасили культовый экран. Теперь при ошибке будет виднеться плашка с зелёным или чёрным фоном.
Самый ор это причина апдейта — страх нового поколения юзеров, которые впервые сталкиваются с «экраном смерти». По этой причине убрали QR-код и смайлик.
Ушла эпоха🫡
● GPT News | ChatGPT BOT
Самый ор это причина апдейта — страх нового поколения юзеров, которые впервые сталкиваются с «экраном смерти». По этой причине убрали QR-код и смайлик.
Ушла эпоха
● GPT News | ChatGPT BOT
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😢2😭1👻1
Помощник деплоя был переработан и улучшен. Новая версия включает в себя следующие изменения:
- Добавлена строгая типизация во всех файлах;
- Добавлен новый хелпер OperationHelper для быстрого вызова операций;
- Добавлена интеграция с миграциями (вызов любых операций при выполнении любой миграции);
- Документация была переписана на Writerside;
- Удалили лишние и перегруженные свойства и методы;
- Прекращена поддержка Laravel 10
- Удалены консольные команды
operations:refresh
, operations:reset
и operations:upgrade
И другие изменения, список которых можно найти на странице релиза.
Апгрейд гайд доступен в документации: https://deploy-operations.dragon-code.pro/upgrade-7.html
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Release 7.0.0 · TheDragonCode/laravel-deploy-operations
Added
A strict typification has been added by @andrey-helldar in #191
Added OperationHelper by @andrey-helldar in #205
Added withOperation method to migrations by @andrey-helldar in #200
Added imp...
A strict typification has been added by @andrey-helldar in #191
Added OperationHelper by @andrey-helldar in #205
Added withOperation method to migrations by @andrey-helldar in #200
Added imp...
🔥6👍1
Обновил сайт 😎
Стал легче, быстрее. Со стороны кода тоже🚀
Избавился от монструозного Vuetify 3 и решил попробовать Laravel VueJS Starter Kit. Фронтовую часть писал сам, зато роутинг подсмотрел в стартер ките. Работает отлично на первый взгляд, а там посмотрим 🙂
Также автоматизировал то, что раньше было гвоздями приколочено к vue файлам.
ЗЫ: под мобилы даже не смотрел вёрстку 😅
https://dragon-code.pro
Стал легче, быстрее. Со стороны кода тоже
Избавился от монструозного Vuetify 3 и решил попробовать Laravel VueJS Starter Kit. Фронтовую часть писал сам, зато роутинг подсмотрел в стартер ките. Работает отлично на первый взгляд, а там посмотрим 🙂
Также автоматизировал то, что раньше было гвоздями приколочено к vue файлам.
ЗЫ: под мобилы даже не смотрел вёрстку 😅
https://dragon-code.pro
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥5
Сегодняшней ночью в одном из проектов было создано две иссуи с таким контекстом.
НИКОГДА НЕ ПЕРЕХОДИТЕ ПО ССЫЛКАМ ИЗ НИХ даже по тем, что внизу письма находятся (скрин из почтового клиента)
О том что это именно иссуя, я узнал зайдя в сам репозиторий проекта на GitHub и увидел его. В теле письма нижние ссылки на гитхаб оказались настоящие, а вот все остальные - фишинговые.
Рекомендуемые действия в таком случае:
1. Перейти в проект на GitHub через браузер (не по ссылкам из письма);
2. Скопировать ссылку на иссую и сделать её скриншот;
3. Перейти из интерфейса GitHub в профиль отправителя;
4. Слева под фото нажать на ссылку "Block or Report", во всплывающей форме нажать "Report abuse";
5. На открывшейся странице в поле категории ввести "spam" и выбрать соответствующий пункт из предложенных;
6. В тело сообщения вставить скопированную ссылку на иссую и приложить скриншот. Подробнее можно даже не писать;
7. Отправить.
Поддержка GitHub на такие случаи довольно быстро реагирует и аккаунт отправителя будет забанен.
Также Вы можете удалить иссую из репозитория. Для этого на её странице в правой колонке нужно нажать на соответствующую ссылку.
НИКОГДА НЕ ПЕРЕХОДИТЕ ПО ССЫЛКАМ ИЗ НИХ даже по тем, что внизу письма находятся (скрин из почтового клиента)
О том что это именно иссуя, я узнал зайдя в сам репозиторий проекта на GitHub и увидел его. В теле письма нижние ссылки на гитхаб оказались настоящие, а вот все остальные - фишинговые.
Рекомендуемые действия в таком случае:
1. Перейти в проект на GitHub через браузер (не по ссылкам из письма);
2. Скопировать ссылку на иссую и сделать её скриншот;
3. Перейти из интерфейса GitHub в профиль отправителя;
4. Слева под фото нажать на ссылку "Block or Report", во всплывающей форме нажать "Report abuse";
5. На открывшейся странице в поле категории ввести "spam" и выбрать соответствующий пункт из предложенных;
6. В тело сообщения вставить скопированную ссылку на иссую и приложить скриншот. Подробнее можно даже не писать;
7. Отправить.
Поддержка GitHub на такие случаи довольно быстро реагирует и аккаунт отправителя будет забанен.
Также Вы можете удалить иссую из репозитория. Для этого на её странице в правой колонке нужно нажать на соответствующую ссылку.
👍6❤1👌1
Сегодня я осознал что работаю с PHP уже 20 лет 😱
Как же быстро летит время...
HTML - ~24 года
CSS - ~24 года
JavaScript - ~22 года
И, конечно, звуковое сопровождение 😅
https://music.yandex.ru/album/26119228/track/114422104
Как же быстро летит время...
HTML - ~24 года
CSS - ~24 года
JavaScript - ~22 года
И, конечно, звуковое сопровождение 😅
https://music.yandex.ru/album/26119228/track/114422104
🎉13❤🔥3👍2
Forwarded from Новости от CutCode
Filament или MoonShine? Пора разобраться.
Если ты работаешь с Laravel — почти наверняка ты писал админку.
Типовой CRUD, кастомные формы, фильтры, роли, доступы...
Иногда ТЗ простое, иногда — ад.
Кто-то пишет с нуля, кто-то выбирает готовые решения: Nova, Filament, MoonShine…
Недавно на Laravel World провели опрос — и все три админки набрали почти одинаковое количество голосов.
У каждой админки есть свои сильные стороны, но в комьюнити до сих пор нет чёткого ответа, какая же админка лучше?
Давайте это исправим! CutCode устраивает баттл Laravel-админок:
MoonShine vs Filament
Я буду защищать MoonShine, а кто-то из комьюнити (один или несколько разработчиков) — Filament.
Если ты фанат Filament, уверенно разбираешься в нём, всем в чате советуешь использовать только его и не теряешься на камеру — напиши в личку.
Если есть кто-то на примете, можете тоже намекнуть мне)
Формат — прямой эфир, с реальными кейсами для честного сравнения.
Чтобы всё не закочилось потасовкой, позовём авторитетных жюри.
👀 В эфире:
💡 Часть 1 — Знакомство с админками и их философией
💡 Часть 2 — “Проблемные” задачи из жизни. Участники показывают, как справляется их админка
💡 Часть 3 — Дуэль фич: один “нападает” сильной стороной, второй парирует
💡 Часть 4 — Итоги и мнения жюри
💬 Соберем вопросы для баттла!
Чтобы баттл был не “ради шоу”, а реально полезным, мы собираем настоящие проблемы разработчиков:
— какие самые частые боли при разработке на готовых админках
— что по вашему мнению реализовать в админке сложнее всего
— что останавливает когда хотите выбрать готовую админку, и вы решаете написать свою
— что вы не смогли сделать в админке и пришлось сказать заказчику что сделать это нереально
📌 Не стесняйся, напиши в моего бота в свободной форме.
Не надо идеально формулировать — просто чтобы была понятна суть проблемы/кейса.
Telegram бот для записи вопросов на баттл админок
Почему стоит скинуть свой кейс?
Мы разберём его в прямом эфире.
Ты узнаешь, как бы это сделали с другой админкой.
Возможно, найдётся решение проще, чем ты думал.
Это не интервью, не конкурс, не доклад, а полезное обсуждение!
Честный разбор “что болит” у разработчиков и как это можно реализовать.
Дату баттла выберем, когда определимся с участниками и соберем вопросы!
Если ты работаешь с Laravel — почти наверняка ты писал админку.
Типовой CRUD, кастомные формы, фильтры, роли, доступы...
Иногда ТЗ простое, иногда — ад.
Кто-то пишет с нуля, кто-то выбирает готовые решения: Nova, Filament, MoonShine…
Недавно на Laravel World провели опрос — и все три админки набрали почти одинаковое количество голосов.
У каждой админки есть свои сильные стороны, но в комьюнити до сих пор нет чёткого ответа, какая же админка лучше?
Давайте это исправим! CutCode устраивает баттл Laravel-админок:
MoonShine vs Filament
Я буду защищать MoonShine, а кто-то из комьюнити (один или несколько разработчиков) — Filament.
Если ты фанат Filament, уверенно разбираешься в нём, всем в чате советуешь использовать только его и не теряешься на камеру — напиши в личку.
Если есть кто-то на примете, можете тоже намекнуть мне)
Формат — прямой эфир, с реальными кейсами для честного сравнения.
Чтобы всё не закочилось потасовкой, позовём авторитетных жюри.
👀 В эфире:
💡 Часть 1 — Знакомство с админками и их философией
💡 Часть 2 — “Проблемные” задачи из жизни. Участники показывают, как справляется их админка
💡 Часть 3 — Дуэль фич: один “нападает” сильной стороной, второй парирует
💡 Часть 4 — Итоги и мнения жюри
💬 Соберем вопросы для баттла!
Чтобы баттл был не “ради шоу”, а реально полезным, мы собираем настоящие проблемы разработчиков:
— какие самые частые боли при разработке на готовых админках
— что по вашему мнению реализовать в админке сложнее всего
— что останавливает когда хотите выбрать готовую админку, и вы решаете написать свою
— что вы не смогли сделать в админке и пришлось сказать заказчику что сделать это нереально
📌 Не стесняйся, напиши в моего бота в свободной форме.
Не надо идеально формулировать — просто чтобы была понятна суть проблемы/кейса.
Telegram бот для записи вопросов на баттл админок
Почему стоит скинуть свой кейс?
Мы разберём его в прямом эфире.
Ты узнаешь, как бы это сделали с другой админкой.
Возможно, найдётся решение проще, чем ты думал.
Это не интервью, не конкурс, не доклад, а полезное обсуждение!
Честный разбор “что болит” у разработчиков и как это можно реализовать.
Дату баттла выберем, когда определимся с участниками и соберем вопросы!
Telegram
Laravel World
Подведем итоги опроса о лучшей админке для Laravel. Проголосовало более двух с половиной тысяч человек, но однозначного лидера мы не выявили. Первая тройка идёт очень плотной группой, набрав по ~16% каждая. Тем не менее, по набранным голосам побеждает
FILAMENT…
FILAMENT…
🔥4👍3