DIGITAL.ERA

DIGITAL.ERA

Размышления, истории и идеи.

Rails Multibase and Models
rails

Rails Multibase and Models

Rails 6.1 предлагает возможность использования одновременно нескольких баз данных. Для чего? Во первых можно распределить нагрузку и использовать одну из баз только для чтения, другую только на запись, например для админки. Конечно можно использовать разные типы баз данных в одном приложении. Это открывает еще больше возможностей, например для объединения
2 min read
OAuth 2
security

OAuth 2

Роли / Roles Стороннее приложение: Клиент Клиент это приложение которое пытается получить доступ к учетной записи пользователя. Для этого клиенту нужны разрешения от пользователя. API: Сервер ресурсов Сервер ресурсов это API сервер используемый для получения доступа к информации пользователя. Сервер авторизации Это сервер предоставляющий интерфейс где пользователь разрешает или запрещает запрос
4 min read
Grape Rails.
grape

Grape Rails.

Grape - это API-фреймворк для Ruby. Grape создан для работы с Rack приложениями. Для создания API используется простой DSL (domain specific language). Grape поддерживает разнообразные общепринятые практики при создании API. Для установки, добавить в Gemfile: gem 'grape' или сразу "всё" необходимое для Rails # grape gem '
3 min read
Nuxt load JSON
nuxt

Nuxt load JSON

Вопрос: Есть json файл, в котором есть данные для инициализации страницы, какой способ загрузки следует использовать? В 2017 году создатель Nuxt ответил примерно так: Запрос на сервере // wrong export default { asyncData() { return axios.get('/data.json').then((res) => res.data) } } Когда мы пытаемся исполнить http запрос на
2 min read
Nuxt Fetch. How?
nuxt

Nuxt Fetch. How?

Начиная с версии 2.12 в Nuxt появился новый подход к получению данных приложением. Хук Fetch и жизненный цикл Nuxt Сверху вниз NuxtServerInit | Route Middleware | validate | asyncData() | beforeCreate() | created() | [$fetchState.pending = true] >>> fetch() <<< | mounted() [$fetchState.pending = false] Хук fetch() вызывается  после  того, как экземпляр
3 min read
Bearer Token
bearer

Bearer Token

Один из типов токенов ( tokens), используемых в платформе авторизации OAuth 2.0. Bearer Token или «Токен на предъявителя» - сторона владеющая токеном («предъявитель», bearer), может использовать токен ( token ) любым способом (как и любая другая сторона, например разные клиенты или приложения). Использование токена не требует  от предъявителя доказательства владения. То есть,
1 min read
The Little Redis Book
redis

The Little Redis Book

Об этой книге Лицензия The Little Redis Book (Маленькая книга о Redis) распространяется под лицензией AttributionNonCommercial 3.0 Unported. Вы не обязаны платить за эту книгу. Вы можете свободно копировать, распространять, изменять и публиковать книгу. Тем не менее, я прошу, чтобы вы всегда указывали мое, Карла Сегуина (Karl Seguin), авторство
31 min read
Headless CMS, всадник без головы
headless

Headless CMS, всадник без головы

Что такое headless cms? Кратко - это система управления контентом  (CMS) c готовым к использованию  REST API. В отличие от классической CMS, в Headless нет механизма отрисовки страниц, нет шаблонов, только инструменты и интерфейс для проектирования моделей данных, их связей, управление пользователями, доступом и интеграцией. Да, данные хранятся в Headless
2 min read
Национальная система доменных имен (НСДИ)
dns Featured

Национальная система доменных имен (НСДИ)

Национальная система доменных имен (НСДИ) представляет собой совокупность взаимосвязанных программных и технических средств, предназначенных для хранения и получения информации о сетевых адресах и доменных именах. Использование НСДИ осуществляется имеющими номер автономной системы операторами связи, собственниками или иными владельцами технологических сетей связи, организаторами распространения информации в сети "Интернет", пользователями
2 min read
Vue Design Frameworks (2021)
vue

Vue Design Frameworks (2021)

Ant Design Vue * Дизайн система корпоративного уровня * Высококачественные Vue-компоненты * 120 contributors / 13k stars Ant Design VueAn enterprise-class UI components based on Ant Design and Vue BalmUI * Набор готовых к использованию компонентов, плагинов, директив и утилит Vue * Основано на Material Design * 3 contributors / 121 stars BalmUIBalmUI: Next Generation Material UI for
4 min read
Vite (Vue Next)
vue

Vite (Vue Next)

Vite - это еще один инструмент для создания веб-приложения, который использует es6 модули на этапе разработки и Rollup на этапе компиляции приложения. * Быстрый "холодный" запуск сервера * Мгновенная горячая замена модулей (HMR) * Настоящая компиляция по-требованию Почему и как? Чем отличается от vue-cli и других сборщиков? Основное отличие в том,
2 min read
pgsync
ruby

pgsync

Синхронизация одной Postgres базы данных в другую. pgsync декларирует следующие преимущества * скорость - таблицы передаются параллельно * безопасность - встроенные методы, чтобы исключить утечку чувствительных данных * гибкость - изящная обработка различий в схемах данных, например отсутствующих колонок * удобство - синхронизация части таблиц, групп таблиц, и относящихся записей Проверено в бою на
2 min read
docker system prune
docker

docker system prune

При активной работе с Docker приходится быстро столкнуться с проблемой переполнения, заполнения диска. Сама логика работы докер ресурсоёмка, так устроен Docker. Образы, контейнеры, промежуточные слои, разные версии и т.д. Посмотреть все образы можно так docker images А можно вывести список всех образов по их размерам в порядке убывания docker
2 min read
mailcatcher
ruby

mailcatcher

Конечно да, можно использовать обычную почту, но для облачных IDE или изолированных контейнеров LXC или для DOCKER окружения удобней будет подменять SMTP и смотреть почту локально или в браузере. Особенно удобно когда работаем дистанционно через облако. Начиная с 2023 года использую maildev. Удобно и просто. Отдельно как сервис или в
2 min read
rails webpacker live-reload views
rails

rails webpacker live-reload views

webpacker дает возможность использовать webpack и webpack-dev-server вместе с Rails. webpacker отлично интегрирован с Rails и имеет все необходимые настройки для быстрого старта с основными популярными технологиями, такими как React или Vue. При разработке мы можем использовать все преимущества webpack. При этом webpacker сосуществует совместно с assets pipeline, не отменять
1 min read
docker - как уменьшить размер образа
docker

docker - как уменьшить размер образа

Некоторые замечания и соображения по тому, как уменьшить общий размер образа, создаваемого Docker. Размер образа (image) может легко превысить несколько гигабайт, даже у самого простого приложения, ведь мы создаем  окружение, а значит  включаем  в образ большое количество зависимостей. При активном выпуске обновлений/релизов приложения это может стать значительной проблемой и
3 min read
Sudo Ubuntu
ubuntu

Sudo Ubuntu

Разделение привилегий пользователей - это фундаментальная парадигма безопасности в Linux. Обычный пользователь Linux  оперирует с ограниченными привилегиями, чтобы снизить область  его воздействия на систему в целом. У пользователя своё собственное окружение в котором он имеет права, а не во всей системе. Специальный пользователь root обладает супер привилегиям.  Это административная учетная
2 min read
LXD обмен данными с хостом
ubuntu

LXD обмен данными с хостом

LXD по умолчанию использует непривилегированные контейнеры. Разница между привилегированным контейнером в том, реальный ли root пользователь (uid 0 уровне ядра). При создании контейнера создается новый диапазон UID:GID обычно начиная со 100000. Настройка базы сопоставлений в /etc/subuid и /etc/subgid. Все uid:gid в контейнере сопоставлены с неиспользуемым  диапазоном
1 min read
Создание образа LXD
ubuntu

Создание образа LXD

Можно копировать lxc-контейнеры целиком, это абсолютно нормально. Копировать не только контейнеры, а лучше того снимки (snapshots) состояния. Механизм образов позволяет применять шаблоны, обмениваться конфигурацией, обновлять образы автоматически # create snapshot for `bx` container with name `latest` lxc snapshot bx latest # create image from snapshot lxc publish bx/latest --alias bx_latest
1 min read
Yandex Browser для Ubuntu/Debian
faq

Yandex Browser для Ubuntu/Debian

Ссылка на Яндекс Браузер бета больше не работает (2019-10), пост о том, что Яндекс Браузер теперь доступен для Linux (2014), в архиве... На сайте Яндекс браузера всё как надо, как у людей) Определяется OS и предложение скачать версию - которая "нафиг" не нужна... Вот всё красиво на конференциях,
1 min read
Исправление цветовой схемы Chromium
faq

Исправление цветовой схемы Chromium

Да, и такое тоже возможно. При изменении цветового профиля монитора или после обновления браузера Chromium можно столкнуться с искажением цветовой схемы, цвета в браузере выглядят неестественно  и ярко. Что делать что исправить? Набираем в строке браузера chrome://flags Находим настройки Force color profile и изменяем. Обычно выбор sRGB решает проблему.
Как проверить доступность порта в Ubuntu/Linux?
ubuntu

Как проверить доступность порта в Ubuntu/Linux?

lsof список файлов открытых различными процессами. Открытые файлы могут быть обычным файлом, директорией, блоком, библиотекой, потоком, сетевым файлом (например сокетом). # bash sudo lsof -i -P -n sudo lsof -i -P -n | grep LISTEN # filter -i, [46][protocol][@hostname|hostaddr][:service|port] sudo lsof -i4:22 sudo lsof -i:3000 -P
1 min read
Растровая графика
design

Растровая графика

Растровая графика позволяет создавать изображения фотографического качества. Ведь что такое растровая графика: это изображение, состоящее из пикселей - маленьких квадратиков, каждому из которых присвоен определенный цвет. На любом дисплее информация отображается именно в растровом виде. С помощью растровой графики можно создавать удивительно реалистичные образы. Растровый формат позволяет получать изображения с
1 min read