Digitable: Channel
132 subscribers
143 photos
12 videos
3 files
106 links
digitable.ru | Твой путеводитель в разработке ПО, от стажера/джуна до техлида, ex-workers и workers Microsoft, Xsolla, Roadmunk, Adjust, Контур, НЛМК, Т1, Аквелон
Download Telegram
Channel created
Channel photo updated
Привет, %username%, здесь ты научишься полному циклу программиста в разработке ПО.

Команда работающая над этим каналом - это ex/workers из Microsoft, Xsolla, Roadmunk, Иннотех, Контур, Akvelon, НЛМК и прочих

- Софт-скиллы (искусство менеджмента для программиста, дизайнера и так далее)
- Хард-скиллы (от аналитики до коммуникации с заказчиком, разумеется разработка ПО (все виды циклов))

Этот бот является расширением нашего веб-портала digitable.ru

Что тебя ждет:

- Постоянные ссылки на полезные ресурсы, проверенные временем
- Статьи
- Полезные заметки и гайды
- Полный карьерный путь
- Лайфхаки по собеседованиям

Всё будет публиковаться с хештегами по уровням

Цикл полный, а значит это:

- Аналитика
- Дизайн
- Разработка
- Тестирование
- DevOps/SecOps
- System adminitstration
Channel name was changed to «Digitable: Channel»
#updates

Данное сообщение запрос на интересующие Вас темы, пишите комментарием к данному посту, что бы Вы хотели узнать из мира о разработке ПО

Например:

- Интересует стек - javascript, backend
- Хочу узнать больше про SOLID, GRASP, Patterns GoF
- Как строить архитектуру
- Лучшие практики по CI/CD
#all #qa #development #environment #applications #chromeextensions

Есть ряд приложений подлежащих установке на Ваш десктоп

- Insomnia - это своего рода postman, только бесплатный; своего рода curl только с gui; своего рода тула для написания автоматических тестов; также имеет встроенную поддержку git-а, умеет генерировать код запросов;

Одна важная деталь - версия, в которой всё хорошо
Ссылка на скачивание:
https://github.com/Kong/insomnia/releases/tag/core%402023.5.8

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


- (OS X only) Meeting bar:

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

Репозиторий:
https://github.com/leits/MeetingBar
brew:
brew install meetingbar

-
(OS X only) UTM:

Поднимаем виртуалки на макбуке или айфоне из любых iso-образов, под капотом qemu, что позволяет выбирать практически любую архитектуру процессоров, запускает и Windows 95, и NetBSD и Windows 11, и Ubuntu и всё что захотите, в том числе кастомные образы

Вебсайт: https://mac.getutm.app
Репозиторий: https://github.com/utmapp/UTM

- Obsidian:

Ваш персональный Notion, который умеет строить mindmap-ы, синкуется с календарем и создаёт мини-википедию на основе ваших заметок

Вебсайт: https://obsidian.md

- Bpytop:

Сколько раз вам приходится вызывать всякого рода диспетчеры задач? Ради этой тулзы не страшно поставить Python.

Она позволяет в достаточно информативном выводе из терминала узнать что реально творится с вашей системой и что она жрёт

Репозиторий: https://github.com/aristocratos/bpytop

- Хром расширения:

1) Stylus, позволит поменять тему на любом вебсайте, к примеру сделать YouTube чёрным или ту же википедию, https://chromewebstore.google.com/detail/stylus/clngdbkpkpeebahjckkjfobafhncgmne?pli=1

2) Allow CORS, позволит не сталкиваться с траблами CORS при разработке и взаимодействием поверх CORS-ов, так как когда-то году в 21-ом Chrome выпилила флаги позволяющие это всё дело настроить, остаётся только страдать так, https://chromewebstore.google.com/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf

3) JSON viewer, предосмотр json-результатов сразу в браузере, https://chromewebstore.google.com/detail/json-viewer/gbmdgpbipfallnflgajpaliibnhdgobh

4) Web Highlights, позволяет выделять текст на любых веб-страницах и сохранять их в едином месте, после вы можете через расширение вернуться к этому куску в любое время без необходимости сохранять страницу в избранное целиком и так далее, удобная штука для заметок https://chromewebstore.google.com/detail/web-highlights-pdf-web-hi/hldjnlbobkdkghfidgoecgmklcemanhm

Что понравилось больше всего из списка и что поставил?
Напиши в комментарий 👇🏻
Что-то хочешь порекомендовать? В комментарии! 👇🏻
🔥3
#all #development #brew #osx #macos #environment #tty #terminal

Продолжаем публиковать полезные development-инструменты,
На этот раз список утилит для вашего терминала в паре с brew (https://brew.sh/),

Все команды в списке можно установить, используя brew install

- alacritty - gui под ваш терминал, самый кастомизируемый и быстрый в принципе

- mcfly - утилита по навигации в истории шела (Ctrl + R), написана на Rust

- dust - утилита показывает как много пыли в ваших директориях

- duf - расширение классического du (disk usage)

- bpytop - лучший диспетчер задач и процессов, слегка тормозит, написан на Python

- bat - красивый вывод вашего cat

- exa - красивый вывод с иконками для ls, просто используйте его вместо него либо через alias, либо просто exa -ls, шустрый и написан на Rust

- fzf - быстрый поиск по файлам

- ripgrep - будет хоткеем rg, ищет файлы по содержимому контенту

- gping - заменяет классический ping, показывая график просадки трафика

- ncdu - расширенный du (disk usage), позволяет удалять файлы и перемещаться как в классических файловых менеджерах

- podman - внутри еще будет podman-compose, ваш путь (жаль, что от RedHat) в замену Docker и Docker Compose, отличий вы практически не замените, внутри хостит qemu + fedoraos, имеет gui в виде podman-desktop-companion

- procs - ещё один менеджер процессов, только пошустрее, удобная надстройка по отношению к top

- lf - ваш файловый менеджер в терминале с предосмотром файлов, в том числе показывает скрытые файлы и имеет гибкую конфигурационную систему

- sl - паровозик в терминале, куда ж без него

- tabby - карманная LLM внутри вашей системы, можно подключить в vs code, vim и прочие IDE в качестве альтернативы GitHub Copilot, работает шустро, ставится через


brew install tabbyml/tabby/tabby
tabby serve --device metal --model StarCoder-1B


- tree - вывод директорий и их содержимого в древовидной структуре

- lynx - терминальный браузер, получше w3m

- carbonyl - терминальный браузер с рендером в svg, ставится правда через npm - npm i -g carbonyl

- tmux - менеджер окон, можно настроить тайлинг

- git-delta - позволяет перенастроить вывод git diff в удобночитаемый вывод а-ля книжка или cat

- qutebrowser - vim-оподобный браузер
#medium #development #web #css #javascript #devtools #chromium #browsers

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



Лет 6 назад в DevTools можно было увидеть интересную утилиту - Layers (Слои)

1. Открываем DevTools в Chrome, и включаем классический хоткей Ctrl + Shift + P или Command + Shift + P
2. Далее мы видим что-то вроде dmenu/rofi/spotlight и так далее
3. В ней нам интересно вбить "Слои" или "Layers"

На скриншоте пример - слои YouTube

Как это может быть полезно?

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

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

Также Google хочет убрать эту feature в deprecated, поэтому вовремя извлеките её например здесь (https://stackoverflow.com/questions/47558844/is-it-possible-to-see-layers-in-firefox), где чел написал кусок кода для отображения страницы сллоями в Webkit (в комментариях будет код, вставьте в консоль любой вкладки и вертите страницу как хотите)

Подробный гайд по Chrome Layers ещё можно найти тут (на англ.) https://youtu.be/6je49J67TQk

Более подробная статья по коду из комментария тут (на англ.) - https://blog.scottlogic.com/2012/03/09/explodz-a-webkit-dom-visualizer.html

Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше! 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
#medium #development #web #html #javascript #browsers #news

Сегодня короткий пост на тему реализации модальных окон без Javascript, на чистом HTML + CSS.
Раньше приходилось писать ужасный обвяз вокруг перекрытий, а теперь больше не нужно

Пример кода


<button popovertarget="mypopover">Toggle Popover</button>
<div id="mypopover" popover>Popover Content</div>


Правила использования

1. Use title if the content in my popover is just text.
2. Use the popover attribute if the content is more than plain text and like a menu of options or something.
3. Use <dialog> if you need to force the user to make a decision or block all other interactions on the page.

К примеру, вы можете теперь реализовывать контекстные меню также просто


<button id="menu-toggle" popovertarget="menu-items">
Open Menu
</button>

<ul id="menu-items" popover anchor="menu-toggle">
<li class="item">...</li>
<li class="item">...</li>
</ul>


Пример на codepen по базовому использованию: https://codepen.io/chriscoyier/pen/XWQwjPY/8c499122e4ab74c76d4997e1ce8a3ce6

Коллекция примеров: https://codepen.io/collection/ExkRWw

Из заметок: обновите Chrome до последней версии, к примеру на предыдущей сборке 124.0.6367.119, оно не работало должным образом, поэтому нужна бета 125-ая

Тут можно узнать про обновление https://developer.chrome.com/blog/chrome-125-beta


Официальная документацию тут: https://developer.mozilla.org/en-US/docs/Web/API/Popover_API/Using

Веб-сайт показывающий логику позиционирования: https://anchor-tool.com/

Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше! 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
#all #development #git #svc #pullrequests #documentation #decomposition #taskbehaviour #selfmanagement #selforganisation #problemsolving #transperancy #roadtosenior

Крайне часто нам приходится сталкиваться с тем, чтобы открывать Pull Requests / Merge Requests и прочее,

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

Представьте себя в роли доставщика продуктов.

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


- Борщ
- Чай (если нет зеленого, то взять черный)
- Хлеб (если нет черного, то не брать вообще)


И вот от того как Вы будете подходить к решению этой задачи многое зависит и Ваш mindset в том числе.

Как с этим всем работать и правильно оформлять Pull Requests и работать с задачами? 👇
Полный разбор подхода в закрепленном комментарии к этому посту.


А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog , а еще разные услуги можно найти в нашем интернет-магазине https://digitable.ru/



Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше! 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
#medium #development #os #nasm #yasm #qemu #virutal #x86 #assembly #brew

Чтобы написать вашу первую программу (а именно операционную систему, но на уровне bootloader) вы можете воспользоваться NASM (Netwide Assembler) под архитектуру x86

Мне, к примеру, нравится больше переписанная реализация с более широким списком архитектур YASM (https://yasm.tortall.net/), но для начала вам хватит и NASM.

В чём он хорош?

- BSD License
- Простой и понятный синтаксис

Ставим компилятор и виртуализатор (qemu), для примера будет использоваться brew:


brew install nasm qemu


Далее берём код из закрепленного комментария к этой публикации и закидываем в boot.asm файл

Компилим




Запускаем




Наслаждаемся, команда вывода в последней строке после msg

Как залить в Live USB?


sudo dd if=boot.com of=/dev/sdb bs=512 count=1


Статья в Википедии про синтаксис (англ.): https://en.wikibooks.org/wiki/X86_Assembly/NASM_Syntax
Статья в Википедии о технологии (рус.): https://ru.wikipedia.org/wiki/NASM
Руководство с metanit на русском: https://metanit.com/assembler/nasm/
Официальный веб-сайт: https://www.nasm.us/


Код на nasm в закрепленном комментарии к этому посту.

А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog , а еще разные услуги можно найти в нашем интернет-магазине https://digitable.ru/


Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше! 👇
🔥2
#advanced #development #emails #dovecot #postfix #nginx #unix #linux #ubuntu #roundcube #spf #dkim #dmarc #dns #administration #devops

Как развернуть свой email-server?

А зачем вообще нужно поднимать свой собственный?
Всё просто - не нужно платить за то, что вы можете настроить сами и пользоваться на том же уровне, что вам и предлагают за услугу.
К примеру, Digital Ocean (#digitalocean) не позволяет вам использовать собственный email-server, а продаёт Sendgrid.

Свой email-server обеспечивает как в локальной, так и в открытой сети Интернет возможность отправлять письма.
То есть, к примеру, вы купили домен myawesome.ru, как теперь сделать почту admin@myawesome.ru?
Или того хуже, вам нужна почта только в локальной сети и без доступа к интернету на основе LDAP или AD и без лишних танцев с бубнами?

Немножко суммаризируем:
- Из достоинств:
- Self-hosted, вы сами управляете вашим сервером и не ждете поддержки. Яркий кейс, что случилось у cloudpit (#cloudpit) , после обновления dmarc, Google (#google) помечает все письма с их сервиса как спам. Вы продолжаете платить деньги и ждёте когда вам кто-то ответит на почте или решит вашу проблему.
- Из недостатков:
- Кривые руки и вы похоронили всю систему

Что же использовать и почему?
Есть такая связка из открытых инструментов:

- Postfix (#postfix), https://www.postfix.org, под IBM Public License (#ibmpubliclicense), - свободный и open-source (#opensource) агент отправки электронной почты.
- Dovecot (#dovecot), https://www.dovecot.org/, под MIT (#mit) и LGPLv2 (#lgplv2), - open-source (#opensource) IMAP (#imap) и POP3 (#pop3) сервер для Unix-like (#unixlike) систем, написанный с безопасностью из коробки.
- Roundcube (#roundcube), https://roundcube.net/, под GPL-3.0-or-later с исключениями под скины и плагины (#gpl3), - почтовый бразуерный IMAP клиент, свободный и open-source (#opensource).
- Apache SpamAssassin (#spamassassin #apache), https://spamassassin.apache.org/, под Apache License 2.0 (#apachelicense2), фильтрует спам с большим разнообразием техник.

Пошаговый гайд по настройке на свеженькой убунте-бубунте-22.04 и коллекция полезных ссылок будут в закрепленном комментарии к данной публикации


А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog

А еще саму настройку email-сервера можно заказать в нашем магазине https://digitable.ru

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

Have a fun!
🔥2
#medium #development #emails #dovecot #postfix #nginx #unix #linux #ubuntu #roundcube #spf #dkim #dmarc #dns #administration #devops #aapanel

Как развернуть свой email-server и поднять hosting panel? (часть вторая с графическим интерфейсом)

Сегодня разберём использование https://github.com/aaPanel/aaPanel - open-source с китайской лицензией. Это очередная панель, как вы могли привыкнуть к ISPManager, CPanel, ISPanel и прочее, но устанавливается проще, а также бесплатная, с опцией перейти на платные плагины и прочее

Устанавливаем на голую Ubuntu 22.04

Для начала не забудьте удостовериться, что в /etc/resolv.conf есть nameserver 8.8.8.8 - DNS от Google

После идём и ставим aapanel через


URL=https://www.aapanel.com/script/install_6.0_en.sh && if [ -f /usr/bin/curl ];then curl -ksSO "$URL" ;else wget --no-check-certificate -O install_6.0_en.sh "$URL";fi;bash install_6.0_en.sh aapanel


Пошаговый гайд по настройке на свеженькой убунте-бубунте-22.04 и коллекция полезных ссылок будут в закрепленном комментарии к данной публикации


А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog

А еще саму настройку email-сервера можно заказать в нашем магазине https://digitable.ru

Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
🔥2
#middle #development #typescript #patterns #decorators #fp #oop

Декоратор. Что-то декорирует. А зачем-почему?
По своей сути обычный структурный шаблон проектирования, целью которого является просто обогащение объекта чем-либо.

Typescript, к примеру, вы можете достигнуть это следующим образом, буду как всегда показывать на животных:


function vaccinated(target: any) {
target.prototype.reflect = function () {
console.log("Reflected.");
};
}

@vaccinated
class Animal {
public age: number = 42;
}

const instance = new Animal();
instance.reflect();


Когда и где это нужно?
- Это самый простой способ собрать подобие #chain_of_responsibility или хоть какого-то #pipe похожего оператора на классах
- В коде ваших тестов, базовую логику можно утащить туда, передавая дублирующийся код в качестве аргументов вашим декораторам

В чём плюсы?
- Легче писать #unit_testing под ваши классы, так как код становится ближе к модульности #modularity из парадигмы #fp

В чём минусы?
- Имея кривые руки, вы легко наплодите косяков вокруг `any`-типов, так как основная идея вообще избавиться от #типизация за счёт #generics

Что такое Decorator в Typescript в целом?


// Input - просто ваш type для target
type Decorator = (target: Input, context: {
kind: string; // class, method, getter, setter, field, or accessor
name: string | symbol; // имя декорируемого object
access: { // объект отвечающий за get-ер и set-ер декорируемого object
get?(): unknown;
set?(value: unknown): void;
};
private?: boolean; // если декорируемый object является private членом класса
static?: boolean; // если декорируемый object является static членом класса
addInitializer?(initializer: () => void): void; // способ добавить кастомную логику до вызова конструктора
}) => Output | void; // Output - что вы ожидаете получить

// При работе с классами
type ClassDecorator = (value: Function, context: {
kind: "class"
name: string | undefined
addInitializer(initializer: () => void): void
}) => Function | void


- Где ещё можно почитать?
- https://www.typescriptlang.org/docs/handbook/decorators.html
- https://blog.logrocket.com/practical-guide-typescript-decorators/
- https://dev.to/danywalls/decorators-in-typescript-with-example-part-1-m0f
- https://www.digitalocean.com/community/tutorials/how-to-use-decorators-in-typescript
- https://stackoverflow.com/questions/45160341/how-do-you-type-a-class-decorator-in-typescript
- https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BA%D0%BE%D1%80%D0%B0%D1%82%D0%BE%D1%80_(%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)

Другие простые примеры для расширения методов или полей вы можете найти используя Google, а вот более интересные примеры вы найдете в закрепленных комментариях, а именно:
- Пример
#middleware за счёт #decorator в #nodejs
- Расширение
#constructor без использования #prototype
- Расширение
#class целиком за счёт использования #наследование #inheritance (мой любимый пример)


А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog

А еще если вам понадобилась карьерная консультация, подготовка к интервью или настройка чего-либо, то можно ознакомиться с услугами в нашем магазине
https://digitable.ru

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

Have a fun!
🔥3👍1
Digitable: Channel pinned «Привет, %username%, здесь ты научишься полному циклу программиста в разработке ПО. Команда работающая над этим каналом - это ex/workers из Microsoft, Xsolla, Roadmunk, Иннотех, Контур, Akvelon, НЛМК и прочих - Софт-скиллы (искусство менеджмента для программиста…»
#all #development #ai #llm #localllm #chatgpt

В нашем магазине (https://digitable.ru) появилась новая опция "Поднять сервер с большой языковой моделью (как chatGPT)", расскажу только про устройство самого сервера что и к чему, в закрепленном комментарии найдете пошаговый гайд по развертыванию.

Итак, вариантов открытых моделей крайне много, но вот их лицензирование проблематично, самые распространенные:
- Llama (https://github.com/meta-llama/llama)
- GPT4All (https://github.com/nomic-ai/gpt4all)

Причем они также позволяют вам подключаться к chatGPT от OpenAI, но нас интересует следующая модель под названием Nous Hermes 2 Mistral DPO
У неё 7 миллиардов параметров, требует 8 GB RAM, а самое главное Licensed for commercial use.

Если открыть Hugging Face, то найдем следующее: https://huggingface.co/NousResearch/Nous-Hermes-2-Mistral-7B-DPO

Разумеется целый ряд benchmark-ов, по своему опыту на Metal от Apple скажу, что работает шустро, когда генерит простые ответы на вопросы. Ограничений никаких нет. Спросите сгенерировать ген. алгоритм зависнет на минуты 3, так как задача сложная, в остальном для "быстрой википедии" работает быстро.

#advice : Если просите сгенерировать код, неважно у какой модели, просите генерировать на Python, они все хорошо его знают, а потом просите сконвертировать полученный Python код на нужный вам язык, этот метод лучше, чем просто пробовать генерировать сразу код на JavaScript


Как дообучить ту же LLaMA можно почитать тут https://habr.com/ru/articles/755114/

Наша задача получить рабочее API для коммуникации. Гайд в комментах


А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog , а еще разные услуги можно найти в нашем интернет-магазине https://digitable.ru/

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

Have a fun!
🔥3
#all #development #lectures #typescript #videos

Небольшая вводная по типизации в typescript

За кадром севший голос и температура, но лейт-мотив по типизации должен быть полезным

https://vk.com/video-35647046_456239144


А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog

Если вам понадобился личный лекториум или карьерная консультация, подготовка к интервью или настройка чего-либо, то можно ознакомиться с услугами в нашем магазине https://digitable.ru

Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
🔥2
#all #development #lectures #typescript #videos

Лекториум на тему "Построение REST Api" + построение баз данных и СУБД

Полная архитектура современного архитектурного стиля REST в беглом лекториуме на доступном языке

- Ассоциативные массивы
- Что такое REST
- CAP теорема (бегло пробежался в том числе по relational, key-value, document-oriented databases)
- Access pattern
- БД и СУБД
- CRUD
- Repository pattern

https://vk.com/video-35647046_456239145


А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog

Если вам понадобился личный лекториум или карьерная консультация, подготовка к интервью или настройка чего-либо, то можно ознакомиться с услугами в нашем магазине https://digitable.ru

Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
🔥4
#advanced #development #php #microfrontends #sandbox #composer #plugins #templates #javascript #hosting #twig

Нашел интересный плагин для PHP (twig), который впервую очередь создан для сахара разметки в PHP по подобию Pug (HTML), Django (Python), Blazor/Razor (C# ASP.NET) и так далее.

Одна из особенных фич - это sandboxing.

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

Идея очень похожа на заголовочные файлы от C. Или например на hosting в JavaScript, но на уровне шаблонов. Фактически вы можете просто вкорячить себе в проект PHP только для оркестрации микрофронтендов.


{{ include('page.html', sandboxed = true) }}


URL: https://twig.symfony.com
Composer: composer require twig/twig
GitHub: https://github.com/twigphp/Twig


А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал
@digitable_blog

А еще если вам понадобилась карьерная консультация, подготовка к интервью или настройка чего-либо, то можно ознакомиться с услугами в нашем магазине
https://digitable.ru

Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Have a fun!
#advanced #development #warcraft #ai #voiceover #addons #habr #articles #python #games #tts #pytorch

На хабре новую статью написал, можно почитать, о том как я World Of Warcraft по-русски заставлял говорить

https://habr.com/ru/articles/818513/

Здравствуйте-здравствуйте, играю я значит в классический World of Warcraft и понимаю, что игра тосклива из-за отсутствия более-менее озвученных квестов. Конечно, инди-студия Метелица не способна озвучить всю свою игру, да и понятно, что сюжет развивается, а люди имеют свойство менять работу или, да это печально, физической гибели, как например случилось с озвучкой Артаса Менетила в Warcraft III: Frozen Throne.

В общем, заваривайте чай, как и все мои предыдущие публикации, эта статья в формате (б|в)лога.
🔥2