#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 есть
После идём и ставим aapanel через
Пошаговый гайд по настройке на свеженькой убунте-бубунте-22.04 и коллекция полезных ссылок будут в закрепленном комментарии к данной публикации
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog
А еще саму настройку email-сервера можно заказать в нашем магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Как развернуть свой 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, к примеру, вы можете достигнуть это следующим образом, буду как всегда показывать на животных:
Когда и где это нужно?
- Это самый простой способ собрать подобие #chain_of_responsibility или хоть какого-то #pipe похожего оператора на классах
- В коде ваших тестов, базовую логику можно утащить туда, передавая дублирующийся код в качестве аргументов вашим декораторам
В чём плюсы?
- Легче писать #unit_testing под ваши классы, так как код становится ближе к модульности #modularity из парадигмы #fp
В чём минусы?
- Имея кривые руки, вы легко наплодите косяков вокруг `any`-типов, так как основная идея вообще избавиться от #типизация за счёт #generics
Что такое Decorator в Typescript в целом?
- Где ещё можно почитать?
- 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!
Декоратор. Что-то декорирует. А зачем-почему?
По своей сути обычный структурный шаблон проектирования, целью которого является просто обогащение объекта чем-либо.
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!
www.typescriptlang.org
Documentation - Decorators
TypeScript Decorators overview
🔥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!
В нашем магазине (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
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Небольшая вводная по типизации в typescript
За кадром севший голос и температура, но лейт-мотив по типизации должен быть полезным
https://vk.com/video-35647046_456239144
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog
Если вам понадобился личный лекториум или карьерная консультация, подготовка к интервью или настройка чего-либо, то можно ознакомиться с услугами в нашем магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
VK Видео
Лекторий: Знакомство с языком программирования Typescript. Асинхронная работа.
Watch Лекторий: Знакомство с языком программирования.. 57 min 26 s from 21 May 2024 online in HD for free in the VK catalog without signing up! Views: 69.
🔥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
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Лекториум на тему "Построение 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
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
VK Видео
Мастер-класс: Построение REST Api. Добавление постоянного хранилища к REST API
Watch Мастер-класс: Построение REST Api. Добавление.. 56 min 8 s from 22 May 2024 online in HD for free in the VK catalog without signing up! Views: 92.
🔥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 только для оркестрации микрофронтендов.
URL: https://twig.symfony.com
Composer:
GitHub: https://github.com/twigphp/Twig
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog
А еще если вам понадобилась карьерная консультация, подготовка к интервью или настройка чего-либо, то можно ознакомиться с услугами в нашем магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Have a fun!
Нашел интересный плагин для 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/twigGitHub: 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.
В общем, заваривайте чай, как и все мои предыдущие публикации, эта статья в формате (б|в)лога.
На хабре новую статью написал, можно почитать, о том как я World Of Warcraft по-русски заставлял говорить
https://habr.com/ru/articles/818513/
Здравствуйте-здравствуйте, играю я значит в классический World of Warcraft и понимаю, что игра тосклива из-за отсутствия более-менее озвученных квестов. Конечно, инди-студия Метелица не способна озвучить всю свою игру, да и понятно, что сюжет развивается, а люди имеют свойство менять работу или, да это печально, физической гибели, как например случилось с озвучкой Артаса Менетила в Warcraft III: Frozen Throne.
В общем, заваривайте чай, как и все мои предыдущие публикации, эта статья в формате (б|в)лога.
🔥2
#all #development #python #packages #environment #dependencies #pip #pipx #conda #poetry #pyflow #pdm #venv
Какие способы работы с пакетами в Python вы знаете?
Да и вообще зачем всё это надо?
Смысл в том, что проекты редко делаются без стороннего набора библиотек, особенно, когда строите что-то поверх фреймворков. Так и выходит, что каким-то образом надо следить чтобы зависимости находились в одном месте и их можно было подтягивать вне зависимости от разработчика и среды окружения. Будь это другой разработчик на другой ОС или же CI/CD-агенты.
Если не использовать менеджеры пакетов/зависимостей, тогда всё будет храниться в вашем общем кеше, да и другое окружение/разработчик просто-напросто не будет знать какие версии и каких пакетов ставить.
Что есть в Питоне?
Во-первых,
collapsed:: true
установка -
установка конкретных версий -
установка из конкретных registries, множества пакетов, а также с привязкой к версии питона -
удаление -
листинг -
через файл с указанием версий, например так:
И последующая установка
Или удаление
Но пакеты по-прежнему будут кешироваться, а значит нужно еще и пользоваться виртуальным окружением, чтобы использовать конкретную директорию
Единожды создаёте эту самую директорию,
А далее, каждый раз в вашем терминале в папке проекта вызывайте
Во-вторых,
Во-третьих,
Есть там еще приколу вроде inject-а зависимостей, например
Чтобы доставить
В-четверых,
А далее в
И можем собирать
В-пятых,
Создание виртуальных окружений
Использование окружения
И установка разумеется
В-шестых,
Старт проекта -
Установка зависимостей
В-седьмых,
По сути на большей части проектов используется обычный `pip`, `pipx` или `poetry`
Что интересно, это то, что коммьюнити питона-петона-удава-петухона никак не можем договориться делать что-то одно, хотя тот же javascript тоже в ту же степь пошел, теперь там `yarn`, `npm`, `pnpm` и имхо из-за вендорства Microsoft над Typescript скоро будет `nuget`, хотя ЕМНИП npm теперь тоже им принадлежит
Какие способы работы с пакетами в Python вы знаете?
Да и вообще зачем всё это надо?
Смысл в том, что проекты редко делаются без стороннего набора библиотек, особенно, когда строите что-то поверх фреймворков. Так и выходит, что каким-то образом надо следить чтобы зависимости находились в одном месте и их можно было подтягивать вне зависимости от разработчика и среды окружения. Будь это другой разработчик на другой ОС или же CI/CD-агенты.
Если не использовать менеджеры пакетов/зависимостей, тогда всё будет храниться в вашем общем кеше, да и другое окружение/разработчик просто-напросто не будет знать какие версии и каких пакетов ставить.
Что есть в Питоне?
Во-первых,
pip, который можно использовать в следующем виде:collapsed:: true
установка -
pip install torchустановка конкретных версий -
pip install torch==2.2установка из конкретных registries, множества пакетов, а также с привязкой к версии питона -
pip3.10 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118удаление -
pip uninstall torchлистинг -
pip show torchчерез файл с указанием версий, например так:
# requirements.txt
torch==2.2
И последующая установка
pip3.10 install -r requirements.txtИли удаление
pip3.10 uninstall requirements.txtНо пакеты по-прежнему будут кешироваться, а значит нужно еще и пользоваться виртуальным окружением, чтобы использовать конкретную директорию
Единожды создаёте эту самую директорию,
python -m venv .venvА далее, каждый раз в вашем терминале в папке проекта вызывайте
. .venv/bin/activate, чтобы питон знал, что сейчас он работает с локальными модулями вместо глобальныхВо-вторых,
pipx, который делает тоже самое что и pip, но уже сразу с venvВо-третьих,
poetry, который еще и в сборку умеет и в отслеживание зависимостей и огромную кучу всегоpipx install poetry==1.2.0Есть там еще приколу вроде inject-а зависимостей, например
pipx inject ipython matplotlib
Чтобы доставить
matplotlib к ipythonВ-четверых,
setuptools в роли такого же file-based указателя зависимостейpip install setuptoolsА далее в
pyproject.toml указываем зависимости
[project]
name = "mypackage"
version = "0.0.1"
dependencies = [
"requests",
'importlib-metadata; python_version<"3.10"',
]
И можем собирать
python -m buildВ-пятых,
conda, с лицензией BSD, между прочимСоздание виртуальных окружений
conda create -n digitable python=3Использование окружения
source activate digitableИ установка разумеется
conda install numpyВ-шестых,
pdm, мне он нравится большеСтарт проекта -
pdm initУстановка зависимостей
pdm add requests flask
В-седьмых,
pyflow, на его вдохновении был создан pdm работает по сути также как и pipx, список команд такой же примерноПо сути на большей части проектов используется обычный `pip`, `pipx` или `poetry`
Что интересно, это то, что коммьюнити питона-петона-удава-петухона никак не можем договориться делать что-то одно, хотя тот же javascript тоже в ту же степь пошел, теперь там `yarn`, `npm`, `pnpm` и имхо из-за вендорства Microsoft над Typescript скоро будет `nuget`, хотя ЕМНИП npm теперь тоже им принадлежит
#docs #python
Ссылки для публикации
Доки по pip: https://pip.pypa.io/en/stable/installation/
Доки по pipx: https://github.com/pypa/pipx
Доки по venv: https://docs.python.org/3/library/venv.html
Доки по poetry: https://python-poetry.org/
Доки по setuptools: https://pypi.org/project/setuptools/
Доки по conda: https://conda.io/projects/conda/en/latest/user-guide/getting-started.html
Доки по pdm: https://github.com/pdm-project/pdm
Доки по pyflow: https://github.com/David-OConnor/pyflow
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog
А еще если вам понадобилась карьерная консультация, подготовка к интервью или настройка чего-либо, или даже, например, парсер/скраппер на питоне то можно ознакомиться с услугами в нашем магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Have a fun!
Ссылки для публикации
Доки по pip: https://pip.pypa.io/en/stable/installation/
Доки по pipx: https://github.com/pypa/pipx
Доки по venv: https://docs.python.org/3/library/venv.html
Доки по poetry: https://python-poetry.org/
Доки по setuptools: https://pypi.org/project/setuptools/
Доки по conda: https://conda.io/projects/conda/en/latest/user-guide/getting-started.html
Доки по pdm: https://github.com/pdm-project/pdm
Доки по pyflow: https://github.com/David-OConnor/pyflow
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog
А еще если вам понадобилась карьерная консультация, подготовка к интервью или настройка чего-либо, или даже, например, парсер/скраппер на питоне то можно ознакомиться с услугами в нашем магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Have a fun!
GitHub
GitHub - pypa/pipx: Install and Run Python Applications in Isolated Environments
Install and Run Python Applications in Isolated Environments - pypa/pipx
#all #development #ai #llm #localllm #chatgpt #news
Парижский проект Mistral AI представил Codestral — модель искусственного интеллекта для генерации кода.
Нейросеть обучили на наборе данных из более чем 80 языков программирования, включая популярные (Python, Java, C, C++ и JavaScript, Bash) и даже Swift и Fortran.
- 22 млрд параметров
Официальная ссылка: https://mistral.ai/news/mistral-ai-non-production-license-mnpl/
Hugging Face: https://huggingface.co/bartowski/Codestral-22B-v0.1-GGUF
Весит 40 GB
О том, как подключить и сделать себе свой клиент/REST API, мы писали в отдельной публикации: https://t.me/c/2056433705/20
Парижский проект Mistral AI представил Codestral — модель искусственного интеллекта для генерации кода.
Нейросеть обучили на наборе данных из более чем 80 языков программирования, включая популярные (Python, Java, C, C++ и JavaScript, Bash) и даже Swift и Fortran.
- 22 млрд параметров
Официальная ссылка: https://mistral.ai/news/mistral-ai-non-production-license-mnpl/
Hugging Face: https://huggingface.co/bartowski/Codestral-22B-v0.1-GGUF
Весит 40 GB
О том, как подключить и сделать себе свой клиент/REST API, мы писали в отдельной публикации: https://t.me/c/2056433705/20
#all #development #lectures #frontend #videos #web
Лекториум на тему "Фронтенд разработка приложений"
Что такое фронтенд и почему он устроен именно так как устроен?
Как в это вписывается React и его основные идеи?
https://vk.com/video-35647046_456239152 (в скором времени переедем на собственное облако для статики)
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog
Если вам понадобился личный лекториум или карьерная консультация, подготовка к интервью или настройка чего-либо, то можно ознакомиться с услугами в нашем магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Лекториум на тему "Фронтенд разработка приложений"
Что такое фронтенд и почему он устроен именно так как устроен?
Как в это вписывается React и его основные идеи?
https://vk.com/video-35647046_456239152 (в скором времени переедем на собственное облако для статики)
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog
Если вам понадобился личный лекториум или карьерная консультация, подготовка к интервью или настройка чего-либо, то можно ознакомиться с услугами в нашем магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
VK Видео
Мастер-класс: Фронтенд разработка приложения на REACT + Typescript
Смотрите онлайн Мастер-класс: Фронтенд разработка приложения.. 48 мин 9 с. Видео от 4 июня 2024 в хорошем качестве, без регистрации в бесплатном видеокаталоге ВКонтакте! 123 — просмотрели.
🔥2
#development #design #uiux #itten #colors #theory #web #mobile #colortheory #csharp
Работа с цветовой палитрой - одна из важнейших частей при разработке клиентских приложений.
Лет 8 назад, я хотел как-то избавиться от дизайнеров, изучив, каким образом, они подбирают согласованность в цветах. Репозиторий найти сложно, но кусок кода под подбор цветов Иттена остался.
Как это работает?
В начале 20-ого века швейцарский художник Иоханнес Иттен создал ощутимый вклад в изучение колористики. Написанная книга "Искусство цвета" делится принципами работы с цветом и was ist цветовой круг.
По сути это схема из 12 цветов с определенной иерархией.
Первичные - синий, желтый и красный, перемешивая которые, можно получить любые оттенки, что может воспринимать человеческое зрение.
Вторичные - зеленый, оранжевый и фиолетовый, что являются результатами смешения первичных цветов.
Третичные - смешивание первичных и вторичных
Итог: 3 первичных, 3 вторичных, 6 третичных
И как с этим работать?
Выберите или придумайте алгоритм.
Имхо, можно и самому навыдумывать тьму, выше только популярные
В комментариях:
- лайфхак-алгоритм для поиска комплементарных пар с примером кода на C#
- картинки для каждого из вариантов выше
- полезные ссылки
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Работа с цветовой палитрой - одна из важнейших частей при разработке клиентских приложений.
Лет 8 назад, я хотел как-то избавиться от дизайнеров, изучив, каким образом, они подбирают согласованность в цветах. Репозиторий найти сложно, но кусок кода под подбор цветов Иттена остался.
Как это работает?
В начале 20-ого века швейцарский художник Иоханнес Иттен создал ощутимый вклад в изучение колористики. Написанная книга "Искусство цвета" делится принципами работы с цветом и was ist цветовой круг.
По сути это схема из 12 цветов с определенной иерархией.
Первичные - синий, желтый и красный, перемешивая которые, можно получить любые оттенки, что может воспринимать человеческое зрение.
Вторичные - зеленый, оранжевый и фиолетовый, что являются результатами смешения первичных цветов.
Третичные - смешивание первичных и вторичных
Итог: 3 первичных, 3 вторичных, 6 третичных
И как с этим работать?
Выберите или придумайте алгоритм.
Вариант А (Complementary pairs): Берем противоположные друг другу цвета (т.е. те, что находятся напротив друг друга, например зеленый и красный)
Вариант Б (Contrast triadic): Также как и А, только берем 2 цвета напротив вместо 1
Вариант В (Classic triadic): Также как и Б, только треугольник будет равносторонний
Вариант Г (Analog triadic): Берем просто три цвета подряд по дуге
Вариант Д (Tetrad): Как и В, только квадрат и теперь цветов 4
Вариант Е (Rectangle): Как и Д, только прямоугольник
Имхо, можно и самому навыдумывать тьму, выше только популярные
В комментариях:
- лайфхак-алгоритм для поиска комплементарных пар с примером кода на C#
- картинки для каждого из вариантов выше
- полезные ссылки
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
#tools #vm #dd #etcher #unix #posix #typescript
Для того, чтобы заливать ваши образы систем на флешки у вас есть один путь: использовать dd
Берете ваш образ, сигнатура следующая:
Например так
Подробно можно почитать, например тут: https://en.wikipedia.org/wiki/Dd_(Unix)
Однако инструмент в кривых руках похоронит вашу систему и диски в мгновенье ока, поэтому новичкам не рекомендуется на живых машиных тестить, а прогресс трекать хочется, тогда на помощь придет Etcher
Open source инструмент, хорошо справляется с прожигом образов операционных систем на девайсы
Количество звезд: 28.4k
GitHub: https://github.com/balena-io/etcher
Написан на TypeScript
Поддерживает ОС для запуска:
- Linux; most distros; Intel 64-bit.
- Windows 10 and later; Intel 64-bit.
- macOS 10.13 (High Sierra) and later; both Intel and Apple Silicon.
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog , а еще разные услуги можно найти в нашем интернет-магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Для того, чтобы заливать ваши образы систем на флешки у вас есть один путь: использовать dd
Берете ваш образ, сигнатура следующая:
dd if=ЧТО of=КУДА bs=РАЗМЕР_БЛОКАНапример так
dd if=ubuntu.iso of=/dev/sda bs=1MПодробно можно почитать, например тут: https://en.wikipedia.org/wiki/Dd_(Unix)
Однако инструмент в кривых руках похоронит вашу систему и диски в мгновенье ока, поэтому новичкам не рекомендуется на живых машиных тестить, а прогресс трекать хочется, тогда на помощь придет Etcher
Open source инструмент, хорошо справляется с прожигом образов операционных систем на девайсы
Количество звезд: 28.4k
GitHub: https://github.com/balena-io/etcher
Написан на TypeScript
Поддерживает ОС для запуска:
- Linux; most distros; Intel 64-bit.
- Windows 10 and later; Intel 64-bit.
- macOS 10.13 (High Sierra) and later; both Intel and Apple Silicon.
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog , а еще разные услуги можно найти в нашем интернет-магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
#development #typescript #patterns #classes #inheritance #fp #oop
Каким образом заставить класс расширить поведение обобщенного класса? Или как сделать "наследование налету"?
Например у нас есть вот такой код
Но в какой-то момент мы хотим сделать так, чтобы наследовалась либо утка либо собака, в зависимости от переданного generic-а в наши подклассы, например подвергнутые мутациям
Вопрос - как избавиться от
И оказалось так можно сделать, выглядит сложно, но только ощутить прекрасие сего кодирования!
Отвечая на вопрос - а зачем это вообще в production коде:
У вас может быть два класса тестов, например одни проверяют скриншот всей страницы, а другие проверяют ее часть
Вы можете определить два разных базовых класса для тестов, а дальше в тестах использовать их как базовый класс, однако, если вам понадобится написать условный перехватчик для обоих классов, то вам потребуется условное множественное наследование, вот чтобы его избежать вы можете "наследовать налету".
Финальный код в комментариях к данной публикации!
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog , а еще разные услуги можно найти в нашем интернет-магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Полезные ссылки:
https://github.com/microsoft/TypeScript/issues/4890
Каким образом заставить класс расширить поведение обобщенного класса? Или как сделать "наследование налету"?
Например у нас есть вот такой код
class Dog {
private name = 'dog';
public getName() {
console.info(this.name);
}
}
class Duck {
private name = 'duck';
public getName() {
console.info(this.name);
}
}
Но в какой-то момент мы хотим сделать так, чтобы наследовалась либо утка либо собака, в зависимости от переданного generic-а в наши подклассы, например подвергнутые мутациям
export function useDraft<Animal extends Duck | Dog>(
animal: Animal
) {
return class extends Dog {
name: string;
getName() {
console.info(animal);
}
}
}
Вопрос - как избавиться от
return class extends Dog получив запись вида return class extends Dog & CatИ оказалось так можно сделать, выглядит сложно, но только ощутить прекрасие сего кодирования!
Отвечая на вопрос - а зачем это вообще в production коде:
У вас может быть два класса тестов, например одни проверяют скриншот всей страницы, а другие проверяют ее часть
Вы можете определить два разных базовых класса для тестов, а дальше в тестах использовать их как базовый класс, однако, если вам понадобится написать условный перехватчик для обоих классов, то вам потребуется условное множественное наследование, вот чтобы его избежать вы можете "наследовать налету".
Финальный код в комментариях к данной публикации!
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog , а еще разные услуги можно найти в нашем интернет-магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Полезные ссылки:
https://github.com/microsoft/TypeScript/issues/4890
GitHub
Allow class to extend from a generic type parameter · Issue #4890 · microsoft/TypeScript
There appears to be some kind of internal "class" type that is impossible to represent generically: You can see a live version here: http://goo.gl/exBzY6 function IdentifiableSubclass<...
У нас тут микро-подкаст вышел про AI от вуза 🙂
Можете послушать, если интересно 😄
https://vk.com/video-35647046_456239167
Совместно с замечательным руководителем и преподавателем и моим первым тимлидом там про нейросети рассказываю) это пилот) но зато вы узнаете чуточку больше из научно-практических уст, чем просто от любителей :)
#подкасты #ai #нейросети #игхту
Можете послушать, если интересно 😄
https://vk.com/video-35647046_456239167
Совместно с замечательным руководителем и преподавателем и моим первым тимлидом там про нейросети рассказываю) это пилот) но зато вы узнаете чуточку больше из научно-практических уст, чем просто от любителей :)
#подкасты #ai #нейросети #игхту
🔥4
#management #development #office #luckysheet #sheets #docs #excel #presentations #notes #365 #libreoffice #opensource
Сколько разных офисных решений вы знаете?
Самые известные из них:
* Microsoft Office (proprietary)
* Libre Office (open source)
* Google
* Мой Офис
И так далее
Но после закрытия opensource проекта Luckysheet на сцену вышел Univer
Полностью открытый и включает стандартный пак: документы, эксели и презентации
Его легко встроить куда угодно или просто развернуть для себя в рамках собственного облака
Из самых крутых фич - это возможность запускать multi-instances как показано на скриншотах
Плюс есть возможность сделать collaborative режим
github: https://github.com/dream-num/univer
demos: https://univer.ai/examples
landing: https://univer.ai
documentation: https://univer.ai/guides/sheet/introduction
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog , а еще разные услуги можно найти в нашем интернет-магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Сколько разных офисных решений вы знаете?
Самые известные из них:
* Microsoft Office (proprietary)
* Libre Office (open source)
* Мой Офис
И так далее
Но после закрытия opensource проекта Luckysheet на сцену вышел Univer
Полностью открытый и включает стандартный пак: документы, эксели и презентации
Его легко встроить куда угодно или просто развернуть для себя в рамках собственного облака
Из самых крутых фич - это возможность запускать multi-instances как показано на скриншотах
Плюс есть возможность сделать collaborative режим
github: https://github.com/dream-num/univer
demos: https://univer.ai/examples
landing: https://univer.ai
documentation: https://univer.ai/guides/sheet/introduction
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog , а еще разные услуги можно найти в нашем интернет-магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
#news #blog #digitable #updates
Good news everyone!
- Канал теперь полностью открытый без подписки и никакой бот не нужен) - не нравится мне подписочная модель, хочу делиться знанием, а не вот это все, гипотеза интересная, но заниматься рекламой и прочим вместо контента - мне не подходит
- Ссылка на канал теперь t.me/digitable_blog (зовите друзей и знакомых, why not)
- На сайте digitable.ru появился товар "Угощение меня чашкой кофе" если кто-то захочет отлабгодарить за что-нибудь)
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Good news everyone!
- Канал теперь полностью открытый без подписки и никакой бот не нужен) - не нравится мне подписочная модель, хочу делиться знанием, а не вот это все, гипотеза интересная, но заниматься рекламой и прочим вместо контента - мне не подходит
- Ссылка на канал теперь t.me/digitable_blog (зовите друзей и знакомых, why not)
- На сайте digitable.ru появился товар "Угощение меня чашкой кофе" если кто-то захочет отлабгодарить за что-нибудь)
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
#games #development #osx #macos #emulators #steam #wine #whisky #unix #linux #utm #qemu
Каким образом запускать виндовое ПО или играть на вашем macbook (будь-то Intel или M1+) в старые игры или даже игры со Steam и любых других лаунчеров?
Решений тьма:
Из проприетарных: CrossOver и Parallels (просто позволяет создать вам полноценную виртуалку с Windows и чем угодно), пользовался только вторым, стоит примерно 100 евро в год
Из опенсорсных: UTM (под капотом qemu, тоже по сути виртуалку запускает, самая крутая фича - возможность подключиться с телефона) и Wine (на базом уровне просто транслирует системные вызовы)
Вся проблема в работе с графикой, у вас просто может не быть 3D Accelerator, но к примеру M1 хорошо с этим справляется из-под Wine
Разумеется смотрим только open source, у Wine есть красивая GUI под Mac OS - Whisky
По своей сути, вы можете пользоваться Wine под Linux, для запуска любого ПО, но придется поискать рабочий GUI под ваш дистрибутив или просто тыкаться в CLI у Wine
Ссылки (для тех, кто хочет все сам, прикрепляю только то, чем пользуюсь сам):
- https://formulae.brew.sh/cask/whisky
- https://www.winehq.org/
- https://www.qemu.org/
- https://mac.getutm.app/
- https://www.parallels.com/ (у них есть более дешевая версия, но ограничена характеристиками, pro-шка работает хорошо, тестил, гонял в God Of War из-под M1 Max)
Гайд по запуску на open source Whisky в комментариях к данной публикации
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog , а еще разные услуги можно найти в нашем интернет-магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Каким образом запускать виндовое ПО или играть на вашем macbook (будь-то Intel или M1+) в старые игры или даже игры со Steam и любых других лаунчеров?
Решений тьма:
Из проприетарных: CrossOver и Parallels (просто позволяет создать вам полноценную виртуалку с Windows и чем угодно), пользовался только вторым, стоит примерно 100 евро в год
Из опенсорсных: UTM (под капотом qemu, тоже по сути виртуалку запускает, самая крутая фича - возможность подключиться с телефона) и Wine (на базом уровне просто транслирует системные вызовы)
Вся проблема в работе с графикой, у вас просто может не быть 3D Accelerator, но к примеру M1 хорошо с этим справляется из-под Wine
Разумеется смотрим только open source, у Wine есть красивая GUI под Mac OS - Whisky
По своей сути, вы можете пользоваться Wine под Linux, для запуска любого ПО, но придется поискать рабочий GUI под ваш дистрибутив или просто тыкаться в CLI у Wine
Ссылки (для тех, кто хочет все сам, прикрепляю только то, чем пользуюсь сам):
- https://formulae.brew.sh/cask/whisky
- https://www.winehq.org/
- https://www.qemu.org/
- https://mac.getutm.app/
- https://www.parallels.com/ (у них есть более дешевая версия, но ограничена характеристиками, pro-шка работает хорошо, тестил, гонял в God Of War из-под M1 Max)
Гайд по запуску на open source Whisky в комментариях к данной публикации
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog , а еще разные услуги можно найти в нашем интернет-магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
Homebrew Formulae
whisky
Homebrew’s package index
🔥2
#drawing #opensource #ui #2danimation #png #paint #layers #masks #adobe #krita
А существует ли бесплатный инструмент для работы с изображениями и 2D анимацией над ними? 🤔
Конечно!
https://krita.org
В чем преимущество?
Krita is free software under the GNU Public License, Version 3.
• You are free to use Krita for any purpose
• You are free to use to share Krita with anyone
• You are free to read Krita’s source code and change it
• You are free to distribute changed versions of Krita (but you must make your changes public)
You can get the source code for Krita from http://download.kde.org/stable/krita/ and http://download.kde.org/unstable/krita.
Что дает Вам право использовать инструмент как угодно
Написана на C++
- Видеогайды (там наверное вообще все возможные сценарии использования): https://www.youtube.com/channel/UCkIccKaHDGA8lYVmUerLhag/videos
- Рекомендаю начать с базового видеогайда (да, он на английском, но спикер говорит максимально доступно): https://www.youtube.com/watch?v=tRY5bGsJ0f0
- Ссылка на их SVC: https://invent.kde.org/graphics/krita
- Пример анимирования https://youtu.be/CY5XppRTpBY
И пусть open source заменит вам Adobe :) 🧐
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog , а еще разные услуги можно найти в нашем интернет-магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
А существует ли бесплатный инструмент для работы с изображениями и 2D анимацией над ними? 🤔
Конечно!
https://krita.org
В чем преимущество?
Krita is free software under the GNU Public License, Version 3.
• You are free to use Krita for any purpose
• You are free to use to share Krita with anyone
• You are free to read Krita’s source code and change it
• You are free to distribute changed versions of Krita (but you must make your changes public)
You can get the source code for Krita from http://download.kde.org/stable/krita/ and http://download.kde.org/unstable/krita.
Что дает Вам право использовать инструмент как угодно
Написана на C++
- Видеогайды (там наверное вообще все возможные сценарии использования): https://www.youtube.com/channel/UCkIccKaHDGA8lYVmUerLhag/videos
- Рекомендаю начать с базового видеогайда (да, он на английском, но спикер говорит максимально доступно): https://www.youtube.com/watch?v=tRY5bGsJ0f0
- Ссылка на их SVC: https://invent.kde.org/graphics/krita
- Пример анимирования https://youtu.be/CY5XppRTpBY
И пусть open source заменит вам Adobe :) 🧐
А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog , а еще разные услуги можно найти в нашем интернет-магазине https://digitable.ru
Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше!
🔥3❤1