Pull to refresh
0
0
Ласкин Дмитрий @eshimischi

Fullstack разработчик

Send message

Gitea + Drone + Nginx + Portainer. Пошаговое руководство по деплою аналога github на своём железе

Reading time8 min
Views15K

В данном туториале я расскажу вам как можно задеплоить gitea на своём железе с использованием docker-compose подключить drone, для возможности автоматизации тестирования и доставки собственных приложений, настроить reverse-proxy через nginx для доступа через сеть и включить portainer для мониторинга запущенных контейнеров.

Читать далее
Total votes 11: ↑9 and ↓2+7
Comments18

Typescript ENUM — баланс использования

Level of difficultyMedium
Reading time4 min
Views7.1K

Привет Всем.

Меня зовут Михаил. В НЛМК нахожусь на должности Frontend-разработчика.  Занимаюсь разработкой внутренних информационных систем на React + Typescript.

В этой статье поговорим про тип enum (перечисление) в Typescript, о случаях когда его можно и нужно использовать, а когда нет.

Перечисления бывают числовыми и строковыми. Например, представим в виде перечисления должности работников кафе.

Рассмотрим перечисления с числовыми значениями:

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments5

Запускаем нативную конфигурацию Linux как виртуальную машину при помощи HyperV

Reading time5 min
Views6.4K
Несколько дней назад я собрал первоклассную рабочую станцию, чтобы возиться с хобби-проектами и играть. Купил себе наилучший и новейший процессор (Ryzen 3900x — 12 ядер, 24 потока), производство AMD, а также 32 ГБ ОЗУ – как говорится, «компромиссы – не для нас». Собрал ПК, оказалось, он просто летает. Сконфигурировал систему так, чтобы в ней можно было одновременно работать с Windows и Linux (PopOS), пользуясь двойной загрузкой. От прошлой сборки у меня сохранился твердотельный диск (SSD), на котором был установлен и сконфигурирован дистрибутив Linux. Там я настроил поисковые роботы для Twitter, а также установил и приспособил для работы другие сервисы. Linux я использовал для задач, где требуется продуктивность, а под Windows в основном играл – впрочем, так и принято.

Некоторое время спустя я осознал, что у такой конфигурации есть явный недостаток. Пока я играл, мои поисковые роботы и прочие сервисы, в сущности, оставались выключены. Чтобы это исправить, я изменил порядок загрузки так, чтобы по умолчанию загружалась именно ОС Linux. Но даже в таком случае я не был готов смиряться с такой нагрузкой, которую испытывал процессор – фактически, он был вынужден тянуть обе эти ОС одновременно, хотя и более чем справлялся с этим. Если бы мне удалось как-то виртуализовать уже установленный у меня образ Linux, то процессор бы смог обслуживать обе ОС, даже не напрягаясь. Я к тому же ленив и обнаружил, что переключаться с одной действующей ОС на другую, фактически, деактивируя при этом первую – очень сложно, в особенности, если делать это часто. Мне хотелось просто снизить издержки.
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments31

Почему эмигранты-удаленщики иногда не платят налоги в России: нюансы НДФЛ с зарплаты

Level of difficultyEasy
Reading time18 min
Views11K

В этом и прошлом году из России уехало огромное число специалистов – но при этом далеко не все из них хорошо понимают, какие налоговые последствия влечет эмиграция. В этой статье мы вместе с налоговым юристом детально разобрались в особенностях удержания российского НДФЛ с зарплаты (и как его можно уменьшить).

Читать далее
Total votes 31: ↑22 and ↓9+13
Comments8

Создание масштабируемой и высокодоступной системы Postgres с помощью Patroni 3.0 и Citus

Reading time16 min
Views8.7K

Citus — это расширение для PostgreSQL, которое обеспечивает масштабируемость PostgreSQL за счет прозрачного распределения и/или репликации таблиц на одном или нескольких узлах PostgreSQL. Citus можно использовать как на облачной платформе Azure, так и на собственных серверах, поскольку расширение базы данных Citus имеет полностью открытый исходный код.

Читать далее
Total votes 18: ↑17 and ↓1+16
Comments0

Аутентификация в React — это просто

Reading time13 min
Views22K


Аутентификация — это одна из тех вещей, которые зачастую требуют от нас гораздо больше усилий, чем нам хотелось бы.

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

В этом руководстве мы рассмотрим другой подход к аутентификации (а также управлению доступом, SSO и т.д.) в React-приложениях.
Читать далее
Total votes 12: ↑9 and ↓3+6
Comments2

Puppeteer в Node.js: Антипаттерны, которые следует избегать

Reading time9 min
Views3.9K

Puppeteer — это мощная библиотека автоматизации работы с браузером для веб-скрейпинга и интеграционного тестирования. Однако ее асинхронный реалтайм API оставляет вам достаточно много пространства для неумышленного создания проблем и антипаттернов.

Хоть эти антипаттерны и не являются полноценными ошибками, исключение их из скриптов (или хотя бы разумное использование) значительно повысит надежность вашего Puppeteer-кода.

Давайте начнем.

Читать далее
Total votes 15: ↑13 and ↓2+11
Comments0

Модели данных в NoSQL

Level of difficultyEasy
Reading time15 min
Views4.7K


Автор статьи: Артем Михайлов


NoSQL (от «Not Only SQL») представляют собой семейство баз данных, разработанных для решения проблем, связанных с хранением, извлечением и обработкой больших объемов разнообразных данных. Они отличаются от традиционных реляционных баз данных, таких как MySQL или PostgreSQL, тем, что не требуют жесткой схемы данных и предоставляют более гибкую структуру хранения.

Преимущества NoSQL баз данных включают в себя горизонтальное масштабирование, высокую производительность при больших нагрузках, способность обрабатывать полуструктурированные и неструктурированные данные, а также поддержку распределенных вычислений. Они широко используются в веб-разработке, анализе больших данных, интернете вещей и других областях, где требуется обработка и хранение данных большого объема и разнообразной структуры.
Читать дальше →
Total votes 13: ↑10 and ↓3+7
Comments1

Как открыть счет и карту в банках Грузии в 2023 году?

Reading time9 min
Views31K

Грузия — страна с хорошо развитой финансовой системой. Два ее банка — TBC и BoG — торгуются на London Stock Exchange. Грузия интересна открывателям счетов прежде всего благодаря современному банкингу, относительно лояльному валютному контролю, отсутствию автообмена с РФ, возможностью привязки карты к PayPal.

Среди минусов стоит отметить скандалы, связанные с неожиданными закрытиями счетов для Россиян и полное отсутствие возможности свифт, да и вообще каких либо переводов в РФ.

Одним словом, если требуется принимать платежи из-за границы и отправлять в РФ - это в Казахстан, Армению и Киргизию, если обладатель карты - кочевник, который получает зарплату из-за рубежа, то Грузия - идеальный вариант. Почти во всех банках требуется личное присутствие, но некоторые допускают открытие счета по доверенности.

Читать далее
Total votes 8: ↑5 and ↓3+2
Comments6

Шина между Веб-воркерами и основным потоком. Ускоряем работу JavaScript

Level of difficultyEasy
Reading time8 min
Views11K

Хотите узнать, как ускорить выполнение JavaScript в веб-приложениях? В этой статье я подробно расскажу о веб-воркерах, шине данных между основным потоком и веб-воркерами, и как это можно применить в Angular, React и Vue, используя мой npm пакет web-worker-bus. Вы узнаете, как вынести тяжелые вычисления в отдельные потоки, организовать обмен данными, и как это все собрать в единую архитектуру. Примеры кода, инструкции и советы внутри помогут вам сделать ваши проекты быстрее и эффективнее с помощью этого инструмента. Освоение этого подхода и использование web-worker-bus может стать значимым улучшением в ваших проектах. Загляните, если интересуетесь оптимизацией JavaScript и хотите узнать, как мой пакет может вам в этом помочь!

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments9

Революционные IDE, повлиявшие на разработку ПО

Level of difficultyEasy
Reading time12 min
Views31K
В старину при написании кода вы видели лишь чёрный текст на белом фоне. Для того чтобы писать код, требовалось много внимания и аккуратности. Опечатки не подсвечивались автоматически, а синтаксические ошибки обнаруживались только в процессе компиляции. По сравнению с современным программированием это был совершенно иной процесс.

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

В этой статье мы рассмотрим десяток сред разработки, оказавших самое большое влияние за последние тридцать лет программирования. IDE ранжированы по порядку, от десятого места до первого.
Читать дальше →
Total votes 98: ↑90 and ↓8+82
Comments181

Разбираем HTTP/2 по байтам

Level of difficultyMedium
Reading time24 min
Views26K

image


Откройте любую статью с обзором HTTP/1.1. Скорее всего, там найдётся хотя бы один пример запроса и ответа, допустим, такие:


GET / HTTP/1.1
Host: localhost

HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Content-Length: 38
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<h1>Привет!</h1>

Теперь откройте статью с обзором HTTP/2 или HTTP/3. Вы узнаете о мультиплексировании запросов, о сжатии заголовков, о поддержке push-технологий, но вряд ли увидите хоть одно конкретное сообщение. Ясно, почему так: HTTP/1.1 — текстовый протокол, тогда как сиквелы к нему бинарные. Это очевидное изменение открывает дорогу ко множеству оптимизаций, но упраздняет возможность просто и доступно записать сообщения.


Поэтому в этой статье предлагаю покопаться в кишках у HTTP/2: разобрать алгоритмы установки соединения, формат кадров, примеры взаимодействия клиента с сервером.

Читать дальше →
Total votes 115: ↑115 and ↓0+115
Comments45

Автоматизация развертывания стенда Kubernetes

Level of difficultyEasy
Reading time22 min
Views7.6K

Автоматизация развертывания стенда Kubernetes

Что бывает когда стандартное и самое распространённое решение по изучению kubernetes по каким то причинам даёт осечку на твоей рабочей машине?

Ты начинаешь пилить свой велосипед конечно! Вот и я напилил. и он даже катается!)

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments7

5 примечательных IT-компаний из Вьетнама

Level of difficultyEasy
Reading time3 min
Views2.1K

В последние годы экономика Вьетнама бурно растет, и немалую лепту в общий прогресс страны внесла IT-индустрия. Низкая стоимость рабочей силы (к тому же высококвалифицированной) — основа быстрого расширения сектора информационных технологий. Сегодня Вьетнам является восьмой по величине страной в мире, предлагающей IT-услуги. Даже сельское хозяйство и торговля ушли на задний план.

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

Читать далее
Total votes 12: ↑6 and ↓60
Comments1

Как получить визу таланта О-1 в США: требования, критерии, личный опыт

Level of difficultyMedium
Reading time11 min
Views14K

На сегодняшний день виза О-1 — это самый простой и надежный способ переехать в США для профессионалов. Получить ее намного проще, чем EB-1 или H1B, при этом нет привязки к работодателю и количество выдаваемых виз не квотируется государством, а процент одобрения сейчас на уровне 96% от всех поданных заявлений.

Читать далее
Total votes 28: ↑13 and ↓15-2
Comments36

Постановка задач в очередь Laravel сторонними сервисами

Level of difficultyEasy
Reading time3 min
Views3K

При работе над проектом (будь-то хайповые микросервисы или монолит) довольно часто возникает ситуация, когда необходимо, чтобы один сервис поставил задачу для другого сервиса. Задача довольно тривиальная, если на обеих сторонах используется один и тот же фреймворк. Но все становится намного интересней, когда на стороне подписчика допустим Laravel со своим дефолтным форматом, а на стороне издателя что‑то модное на Go.

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments1

Любите ли вы Rust, как люблю его я?

Level of difficultyEasy
Reading time3 min
Views6.4K

Привет, коллеги.

На самом деле ещё несколько месяцев назад я ненавидел Rust и задавался лишь одним вопросом: какого чёрта я вообще с ним связался? Но сегодня - сегодня всё иначе. И про это я хочу предложить немного доводов разобрать с ним.

Он быстрый. Конечно не в смысле разработки и отладки (особенно поначалу), а в плане работы. Код, написанный на нём, в некоторых вопросах существенно быстрее аналогичного кода, написанного на других языках программирования. Нисколько не хочу обидеть адептов других религий языковых предпочтений (уверен, вы с лёгкостью докажете, что это не так). Однако предложенные мне тесты показали, что он немного, но шустрее.

Он безопасный. Это, правда, не совсем так, но если взять условного новичка, который напишет программу на C и условного новичка, который напишет программу на Rust - шанс, что вторая выйдет более безопасной окажется существенно выше. По крайней мере, атака через переполнение буфера, почти гарантировано, провалится (не станем отрицать наличие дарований, которые даже там, где это почти невозможно, смогут заложить уязвимость).

Он необычный. Уверен, вы сталкивались со странными языками программирования. Такими, которые ломают привычную парадигму и заставляют мыслить иначе. Например, люди, всю жизнь работающие с объектно-ориентированным подходом, нередко, теряются, когда сталкиваются с функциональным программированием, т.к. там иной подход. Да даже далеко ходить не надо; столкновение с попыткой воспользоваться OpenGL из привычного C++, в какой-то момент, рвёт все шаблоны и в воздухе повисает лишь два вопроса: "какого..." и "зачем вы так со мной". Это, разумеется, проходит, но не сразу.

Читать далее
Total votes 25: ↑19 and ↓6+13
Comments110

GUI для Git: подборка популярных решений

Level of difficultyEasy
Reading time7 min
Views39K

Разработчикам несомненно надо уметь работать с Git и делать это через командную строку. Иногда бывают ситуации, когда просто нет возможности установить на машину альтернативный инструмент с графическим интерфейсом. При этом некоторые задачи удобнее выполнять в специализированных приложениях, и никто не запрещает использовать GUI в собственных проектах.

В этой статье собраны самые популярные графические интерфейсы Git. Есть как бесплатные инструменты с открытым исходным кодом, так и проприетарные решения с дорогими лицензиями. Некоторыми клиентами из статьи я пользовался сам, чтобы в итоге выбрать удобный вариант для своих задач.

Читать далее
Total votes 41: ↑36 and ↓5+31
Comments138

Стартап виза в Испанию

Level of difficultyEasy
Reading time9 min
Views9.6K

Недавно я получила одобрение своего бизнес плана от испанской компании Enisa (которая выдает официальное резюме вашему проекту) и вместе с ним ВНЖ Испании на 3 года.

Бизнес‑план и все документы я писала и подавала самостоятельно, по инструкции от ребят из чата «Стартап‑виза в Испании», и решила написать эту статью, собрав ее из рассказов и рекомендаций, которые почти каждый день пишу друзьям и знакомым, обращающихся с просьбой описать подробности.

История закона о стартапах

Этот закон существует с 2013 года, и много наших соотечественников получали по нему ВНЖ, но 21 декабря 2022 года в него внесли некоторые изменения.

Во‑первых функцию ревью и оценки бизнес‑плана передали в Enisa, во‑вторых увеличили срок выдаваемого ВНЖ(с 1 года до 3 лет). До апреля у Enisa не было новых регламентов, а когда они появились, началась некоторая чехарда (и продолжается до сих пор), но мой стартап был одобрен как раз во время этой пересменки.

С новым регламентом добавились еще изменения — теперь нужно показывать на счету фаундера совсем другие суммы (суммы выросли, но зато появилась возможность демонстрировать другие активы, не только деньги на счетах), сократятся сроки приема (через полгода после принятия регламентов, сейчас сроки еще плавают), и бизнес‑план теперь загружается не в свободной форме, а по форме Enisa, у них на сайте.

Читать далее
Total votes 33: ↑27 and ↓6+21
Comments36

Свой NPM репозитарий Verdaccio + GitLab + Docker

Level of difficultyMedium
Reading time3 min
Views3.4K

Требовалось кешировать используемые в разных проектах NPM пакеты (+ хранить свои пакеты) на отдельном сервере.

Было решено делать это с помощью репозитария Verdaccio (по нему есть достаточно хорошая офф. дока), крутится это все должно в Docker, а разворачиваться на отдельном сервере через GitLab CI/CD.

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

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments8
1
23 ...

Information

Rating
Does not participate
Location
Калининградская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Web Developer