Pull to refresh
10
0
Александр @merovinh

Web Developer

Send message

Пишем nest.js с нуля на typescript

Reading time28 min
Views18K

Nest.js - популярный node.js фреймворк с отличной архитектурой, основанной на Angular.

Под капотом Nest использует надежные платформы HTTP-серверов, такие как Express (по умолчанию), и при желании также может быть настроен для использования Fastify! Nest обеспечивает уровень абстракции по сравнению с этими распространенными платформами Node.js (Express/Fastify), но также предоставляет свои API-интерфейсы непосредственно разработчику. Это дает разработчикам свободу использовать множество сторонних модулей, доступных для базовой платформы.

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments0

График платежей с напоминалкой в Telegram с помощью Google Sheets & JavaScript

Reading time4 min
Views15K

Меня заинтересовал челлендж: в течение 26 недель откладывать N+100 руб, где N - сумма, вложенная на прошлой неделе. Я решил откладывать деньги по средам, составил такую табличку в Google Sheets

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

Техники безопасной парольной авторизации в Web

Reading time21 min
Views17K

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

Я приведу несколько реально используемых схем, встречаемых на практике. Буду приводить схемы авторизации в порядке от простого к сложному, показывая их преимущества и недостатки и обосновывая выбранные технические решения.

Теперь кратко о себе: Я опасно некомпетентен в криптографии. Это всё, что вы должны обо мне знать.

Обзор техник
Total votes 3: ↑2 and ↓1+1
Comments18

gRPC: лучше ли этот фреймворк, чем REST API?

Reading time9 min
Views32K

Привет! Я — Роман Махнык, .NET developer в NIX. Уже четвертый год я занимаюсь разработкой коммерческих проектов, а сейчас проектирую разные приложения на основе облачных решений.

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

Если вы только начинаете работу с API или хотите лучше разобраться именно в gRPC — эта статья для вас.

Читать далее
Total votes 22: ↑10 and ↓12-2
Comments38

JavaScript: заметка о WebAssembly

Reading time8 min
Views11K


Привет, друзья!


В 2019 году WebAssembly (далее — WA или wasm) стал четвертым "языком" веба. Первые три — это, разумеется, HTML, CSS и JavaScript. Сегодня wasm поддерживается 94% браузеров. Он, как утверждается, обеспечивает скорость выполнения кода, близкую к нативной (естественной, т.е. максимально возможной для браузера), позволяя портировать в веб десктопные приложения и видеоигры.


Что не так с JS?


JS — это интерпретируемый язык программирования с динамической типизацией. Динамическая типизация означает, что тип переменной проверяется (определяется) во время выполнения кода. И что с того? — спросите вы. Вот как определяется переменная в C++:


int n = 42

Такое определение сообщает компилятору тип переменной n и ее локацию в памяти. И все это в одной строке. А в случае с определением аналогичной переменной в JS (const n = 42), движку сначала приходится определять, что переменная является числом, затем, что число является целым и т.д. при каждом выполнении программы. На определение и (часто) приведение (преобразование) типов каждой инструкции уходит какое-то время.

Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments15

gRPC + Dart, Сервис + Клиент, напишем

Reading time6 min
Views13K

Привет! Меня зовут Андрей. Занимаюсь разработкой Flutter приложений.

Написание материала вызвано желанием показать пример создания сервиса c использованием технологии gRPC в экосистеме Dart и, соответственно, Flutter. Желание периодически возникает, когда приходится испытывать "боль", при переключении на проекты, в которых до сих пор применяется REST + JSON.

Это будет короткая серия из 3-4 статей.

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

Как взглянуть на Kubernetes с другой стороны? Рассказывает Марсель Ибраев, CTO учебного центра Слёрм

Reading time3 min
Views2.9K

18 октября на образовательной онлайн платформе Слёрм стартует новый курс: Мега – поток по популярной платформе оркестрации контейнеров с открытым исходным кодом Kubernetes. Программа курса максимально широкая – чуть более, чем за месяц участники освоят 12 тем, связанных с разворачиванием отказоустойчивого кластера и решением продвинутых задач по обеспечению стабильности и безопасности кластера и деплою приложений, узнают как Kubernetes работает изнутри, разберутся с тонкостями установки и конфигурации кластера и получат незаменимые практические навыки обращения с инфраструктурой.

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

Восторг безопасника — технология для шифрования образов контейнеров

Reading time15 min
Views12K
На днях поступила интересная задачка — необходимо найти способ защитить исходные данные контейнера (читай: не иметь возможности прочитать, что лежит внутри), когда он остановлен. В голову сразу пришла мысль про шифрование, а пальцы начали набирать в гугле заветные слова. Пока разбирался в теме, наткнулся на достаточно интересную статью, которую с удовольствием привожу вам.


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

Топ-20 самых упоминаемых книг на HackerNews

Reading time4 min
Views15K
image

На HackerNews пользователь tracyhenry проанализировал 40 000 комментариев и составил рейтинг самых упоминаемых в комментариях книг.

Автор рейтинга преисполнен благодарности тем книгам, про которые он узнал благодаря HackerNews и решил отдать долг и написать приложение, которое бы проанализировало все рекомендации на Hackerews. Такие попытки были неоднократно (раз, два, три), но в предыдущих попытках были ограничения по размеру выборки, либо были недостаточно четкие правила поиска и поэтому картина была не полна. Еще сложность представляли случаи, когда названия книги пересекалось с названием фильма («Первому игроку приготовиться») или название — это общеупотребительное слово/словосочетание: «Стив Джобс» или «Медитация».

Автор рейтинга использовал NLP-модель BERT для повышения точности распознавания (и 4000 вручную размеченных комментариев). Новая версия извлекает в 9-50 раз больше упоминаний, чем предыдущие решения.

Ограничения текущей модели: 1) не различает две разные книги с одинаковым названием («Гарри Поттер» и «Гарри Поттер и методы рационального мышления»). 2) не понимает, что это гневный комментарий.

Книги из топ-20 очень известные, и нет смысла давать их краткое описание, это уже делали много раз. Привожу здесь список из топ-20 (более полный см тут), чтобы вы могли свериться, насколько вы «соответствуете повестке мировой ИТ элиты» и отзывы/конспекты/упоминания про эти книги на Хабре.

Что вы уже давно прочитали, а что упустили из вида и почему?
Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments9

Нулевой даунтайм API на ElasticSearch

Reading time9 min
Views6.4K

В статье я хочу поделиться своим опытом достижения нулевого даунтайма ответа одного из API, использующего большой индекс ElasticSearch.  Эта статья будет полезна тем, кто уже использует ElasticSearch и не может позволить себе ни минуты простоя, а один из ваших индексов продолжает расти. Также будет полезна тем, кто работает над ускорением наполнения индекса или пытается сформировать группу индексов, например несколько индексов для разных городов или стран.

Столкнулась наша команда с двумя из описанных выше проблем: ускорение наполнения и обеспечение минимального даунтайма ответа API. Все это случилось довольно быстро, когда количество потенциальных документов для индексации стало превышать 1 млн записей. До этого момента проблема решалась оптимизацией кода и запросов в БД. Конечно, подготовка такого объема данных и формирование индекса занимает не один час. Усложнило задачу то, что индекс использовался в нескольких ключевых API системы, которыми пользуется мобильное приложение, компании, имеющие интеграцию с нашим сервисом, внутренние инструменты технической поддержки. Над индексом постоянно выполняются CRUD-операции.

В статье будут приводиться команды для управления индексами на примере версии ElasticSearch 5.6. В целом описанный подход не ограничивается версиями, но приведенные curl запросы могут отличаться в зависимости от версии.

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

Как я познавал ci/cd, Гитхаб экшены

Reading time5 min
Views24K

Гитхаб экшены, как я познавал ci/cd

   Всем Алоха. Все слышали про ci/cd, про то что он должен быть в каждой компании и то что он упрощает нам жизнь. У всех свой ci/cd. 

   Кто-то предпочитает Jenkins. Особенно если у вас куча микросервисов, команд и процессов, то при помощи Дженкинса можно достаточно гибко настроить ci/cd в компании. Кто-то использует GitLab actions и для каждого репозитория настраивает свои пайплайны и процессы. Достаточно удобно и просто настраиваемый механизм сборки и доставки артефактов на стенды. Не чуть не хуже GitHub actions. Это было открытием для меня что в GitHub появился такой функционал, о котором мы поговорим позже. Ну и конечно всеми «любимый» скриптовый ci/cd. Пачка скриптов, которые нужно выполнить в определенной последовательности чтобы собрать и задеплоить артефакты. Есть ещё так сказать хэнд мэнуал ci/cd. Но это особый вид извращения, с которым не пожелаю столкнуться никому. В котором нужно собрать артефакты у себя на машине и по какому нить ридми выполнять команды в терминале, лазить по ssh смотреть, что все копировалось, перезапускать сервисы и другие развлечения. 

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

Read more about GitHub Actions
Total votes 12: ↑12 and ↓0+12
Comments55

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

Reading time5 min
Views89K

Планируете изучать Java, C++ или Python, но не знаете, с чего начать? А как насчёт игр для программистов?

Да, именно так.

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

Давайте же узнаем о том, как геймификация помогает нам лучше учиться и какие игры помогут стать программистом!
Читать дальше →
Total votes 51: ↑47 and ↓4+43
Comments42

Изобретение инфляции: как Джон Ло разорил Францию

Reading time17 min
Views61K

В романе Марка Твена «Янки при дворе короля Артура» главный герой попадает, как легко догадаться, в дремучее английское Средневековье. Пользуясь своим современным школьным образованием, он значительно подталкивает технологических прогресс Англии, а заодно и сам с легкостью добивается привилегированного положения. В поезде времени мы, к сожалению, пока не научились пересаживаться из вагона в вагон. Но если бы однажды путешественники во времени всё же появились, можете быть уверены: Джон Ло почти наверняка оказался бы одним из них. Вот только в отличие от героя Твена, Ло положился не на свои знания физики, химии или астрономии. Нет, он перевернул с ног на голову всю экономику Франции, как если бы кто-то, чуть разобравшийся в истории с Wall Street и GameSpot, вдруг провалился в XVIII век и попытался втолковать местному королю про банки, инфляцию для разогрева экономики и акционерные общества. Возможно, этот кто-то так же попытался бы лично разбогатеть за счет финансового невежества окружающих, но у каждого, как известно, свои недостатки.

Эта статья об афере Джона Ло – возможно, самой значимой в экономической истории. На краткий миг Ло стал самым известным, самым ненавидимым и самым влиятельным человеком в мире. Ему удалось создать первый частный банк во Франции, сделать его государственным и провернуть колоссальную авантюру с акциями, разорившую половину богатейших домов Парижа. Так кем же был этот удивительный мистер Ло и как ему удалось провернуть свою аферу?

Читать далее
Total votes 172: ↑168 and ↓4+164
Comments90

Как без усталости кодить по восемь с лишним часов

Reading time6 min
Views86K


Всю свою жизнь я писал код неправильно.

Я думал, что достаточно просто сесть за стол, открыть ноутбук, выбрать задачу из моего списка to-do и кодить, пока не устану.

Но на самом деле такой стиль работы убивал мой уровень продуктивности спустя 2–4 часа написания кода. Я ощущал себя таким уставшим, что мне не хотелось ничего, кроме как других задач, требующих низких затрат энергии (например, code review).

Сейчас я могу писать код по восемь с лишним часов, не чувствуя себя после этого развалиной.

Что же изменилось?

Мой подход к работе.

После 62 книг по саморазвитию, десятков статей и исследований продуктивности, собственных проб и ошибок я создал систему продуктивности, помогающую мне кодить, писать, создавать и жить по максимуму без прокрастинации, усталости и тумана в голове.

В статье я расскажу, как этого достиг.
Читать дальше →
Total votes 107: ↑79 and ↓28+51
Comments150

75 лекций на русском от Y Combinator (из 172)

Reading time14 min
Views32K
image


Патрик и Джон Коллинсон, основатели Stripe (в 22 года и в 21 год), с капитализацией $35 млрд.

Y Combinator — лучший в мире акселератор для стартапов по количеству единорогов (21), по объему привлеченных инвестиций ($27 млрд) и по капитализации выпускников ($155 млрд). Важно отметить еще то, что среди выпускников YC было несколько основателей моложе 18 лет (и один 20-летний из России).

А ещё Y Combinator выкладывает все свои учебные материалы бесплатно, уже более 10 лет.

Основатели и техдиры миллиардных стартапов Amazon ($1.55 трлн), Facebook ($720 млрд), PayPal ($127 млрд), AirBnb ($40 млрд), Pinterest ($38 млрд), Stripe ($35 млрд), LinkedIn ($26.2 млрд), Slack ($23 млрд), WatsApp ($19 млрд), Doordash ($16 млрд), Twitch ($15 млрд), Netscape ($10 млрд), Sun Microsystems ($7.4 млрд), Zenefits ($4 млрд), Segment ($4 млрд), Box ($2.76 млрд), Quora ($2 млрд), Asana ($1.5 млрд), Zappos ($1.2 млрд), Docker ($1.2 млрд), Pebble, Jawbone, Opsware, Weebly, Yahoo!Mail, Gmail, Mixpanel, Scribd и пр, а так же основатели венчурных фондов Andreessen Horowitz, Cowboy Ventures делятся своим опытом со всем миром. Это контент невероятного качества для тех, кто хочет играть в «высшей лиге», на международном уровне.

Сейчас у Y Combinator 172 видео-лекции в плейлистах: 2012, 2013, 2014 NY, 2014 Europe, 2014 SV, How to Start a Startup (2014 Lectures), 2016, 2017, 2018, Startup Investor School 2018, 2019, 2020. Ниже приведены переводы, субтитры и транскрипты 75 из них.
Читать дальше →
Total votes 27: ↑19 and ↓8+11
Comments1

Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи

Reading time9 min
Views64K

fiona


Вторая частьhttps://habr.com/ru/post/563484/


Вокруг темы синтеза речи сейчас много движения: на рынке есть огромное число тулкитов для синтеза, большое число закрытых коммерческих решений за АПИ (как на современных технологиях, так и на более старых, т.е. "говорилки") от условных GAFA компаний, большое количество американских стартапов, пытающихся сделать очередные аудио дипфейки (voice transfer).


Но мы не видели открытых решений, которые бы удовлетворяли одновременно следующим критериям:


  • Приемлемый уровень естественности речи;
  • Большая библиотека готовых голосов на разных языках;
  • Поддержка синтеза как в 16kHz так и в 8kHz из коробки;
  • Наличие своих собственных голосов у авторов решения, не нарушающих чужие права и лицензии;
  • Высокая скорость работы на "слабом" железе. Достаточная скорость работы на 1 потоке / ядре процессора;
  • Не требует GPU, команды ML инженеров или какой-либо дополнительной тренировки или для использования;
  • Минимализм и отсутствие зависимостей / использование в 1 строчку / не надо ничего собирать или чинить;
  • Позиционируется именно как готовое решение, а не очередной фреймворк / компиляция чужих скриптов / тулкитов для сбора плюсиков;
  • Решение никак не связано и не аффилировано с закрытыми экосистемами и продуктами Гугла / Сбера / Яндекса / вставить нужное;

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

Total votes 205: ↑205 and ↓0+205
Comments229

FrontEnd разработка в Docker

Reading time5 min
Views27K

Когда приходит новый разработчик, то перед ним встает задача запустить окружение для разработки. И до недавнего времени - это часто становилось похожим на танцы с бубном. Поставь 10 разных пакетов определенных версий, а еще окажется что твой собственный pet-проект требует другие версии или это даже может быть другой проект в рамках той же работы. Каждый раз из этой ситуации специалист выходил по своему, но основной проблемой помимо временных затрат на эту конфигурацию - оставалось, то что работоспособность от разработчика к разработчику или runner не гарантировалась.

К счастью - эта проблема решена в современном мире разработки, если не полностью, то в большей мере. Нам на выручку пришел Docker.

Read more
Total votes 9: ↑9 and ↓0+9
Comments6

Шпаргалка по функциональному программированию

Reading time23 min
Views37K

Привет, меня зовут Григорий Бизюкин, я преподаватель Школы разработки интерфейсов и фронтенд-разработчик в Яндексе. Давайте поговорим о функциональном программировании в мире JavaScript. Мы все про ФП что-то слышали, нам всем оно интересно, но у меня, когда я искал полезные материалы для подготовки к лекциям, сложилось такое впечатление: есть куча статей, каждая из которых либо говорит об ФП общими словами, либо раскрывает отдельный маленький кусочек темы, чего, конечно, недостаточно.



Добавим функционального света


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

Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments18

Самые зрелищные игры для тех, кто не любит играть

Reading time10 min
Views58K


Не всем нравится играть в компьютерные игры. Представьте — вы общаетесь с идеальным новым партнёром, разделяющим многие ваши предпочтения и интересы, но на вопрос о том, что ему нравится, шутеры или RPG, он отвечает: «Ой, я на самом деле не особо играю в игры, но мне нравится Candy Crush, это считается?»

Прежде чем вы скажете «понятно, пока» и удалитесь на пенсию в окружении кошек, вспомните, что за некоторыми играми для PC так же интересно наблюдать, как и играть, особенно если зритель не игрок. Возможно, они даже поспособствуют тому, что ваша вторая половинка попробует окунуться в мир гейминга. И вот вы уже совместно организуете рейды и спорите, какая из частей Fallout лучше… или же останетесь в одиночестве. Но рискнуть всё равно стоит.

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

В этой статье мы представим отсортированный по категориям список лучших игр, за которыми будет интересно наблюдать. Вероятно, вы заметите, что в списке часто встречаются хорроры; они определённо интересны для просмотра, а поскольку в большинстве подобных игр у игроков нет оружия, просмотр оказывается невероятно напряжённым.
Total votes 52: ↑50 and ↓2+48
Comments78
1
23 ...

Information

Rating
Does not participate
Location
Житомир, Житомирская обл., Украина
Date of birth
Registered
Activity