Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Как построить безопасный, типизированный Node.js API с использованием Prisma, TypeGraphQL и graphql-query-purifier

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 49

Создание эффективного Node.js API, обеспечивающего безопасность данных и типобезопасность, может быть сложной задачей. Это руководство демонстрирует процесс с использованием Prisma, TypeGraphQL и graphql-query-purifier.

Читать далее
Рейтинг 0
Комментарии 0

Новости

Рефакторинг Swift

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 176

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

Читать далее
Рейтинг 0
Комментарии 0

Как выбрать первую механическую клавиатуру. Пособие для новичка

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 2K

Попросили меня друзья\коллеги рассказать про первые шаги и выбор механики для работы и жизни. Решил поделиться и с Хабром статьёй о том, как выбрать себе первую механическую клавиатуру.

В статье отвечу на вопросы о том, что такое HotSwap board, что за проценты в размерах клавиатур и зачем нужна крутилка на некоторых из них. А так же помогу определиться с тем, какую клавиатуру вам искать.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 3

Как подружить Windows, Lens и Teleport

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 275

Я не являюсь экспертом ни в Lens, ни в Teleport, но в какой-то момент моей разработческой жизни возникла необходимость подключиться к кластеру Kubernetes с помощью Lens, т.к. не могу сказать, что очень удобно пользоваться kubectl. Подробной инструкции на этот счет, к сожалению, в Интернете мне найти не удалось. Поэтому решил написать свою (описание настройки серверной части оставим другим авторам).

Если вы, как я, и все остальные «нетрушные» программисты, предпочитаете оставаться на Windows и не спешите уходить на Linux или Mac, а встроенный WSL2 (подсистема Linux для Windows) вас белее чем устраивает, то добро пожаловать под кат.

Читать далее
Рейтинг 0
Комментарии 0

Истории

Проблема понимания существующего кода, или Как делать иногда [не] надо

Время на прочтение 11 мин
Количество просмотров 1.3K

Я столкнулся с тем, что я иногда не понимаю код, с которым мне приходится работать. И это сильно сказывается на моей производительности и на качестве конечного результата. Неделю назад я прочитал статью Плохо девелопмент за авторством @dalerank(Сергей Кушниренко), в которой описывается проблема молодых специалистов, которые упрощая себе работу пользовались готовыми решениями, а не писали код с нуля. Моя статья не об этой статье и не ответ к ней. В самой статье Сергея Кушниренко была ссылка на другую статью - You should refuse to develop what you don’t understand. И вот эта статья меня несколько озадачила. Я задумался о проблеме понимания того, с чем я работаю. О ней я бы хотел написать, но и некоторые тезисы из статьи Сергея Кушниренко я тоже затрону.

ВНИМАНИЕ! Дальше вас ждет душная простыня текста без юмора.

Соглашаюсь со строкой выше
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 5

XRay (с VLESS/XTLS): проброс портов, реверс-прокси, и псевдо-VPN

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 2.5K

Я уже написал тут много статей на тему установки и настройки прокси-серверов XRay с недетектируемыми протоколами Shadowsocks-2022, VLESS (с XTLS), и т.п. И один из очень часто поднимаемых в комментариях вопросов звучит так: можно ли с использованием XRay как-то организовать проброс портов или получать доступ к внутренностям корпоративной сети? Можно, и сейчас я расскажу как.

Итак, что же можно сделать с помощью реверс-проксирования?

Можно получать доступ к каким-либо сервисам на хосте за NAT'ом или строгим фаерволом, и даже более того - можно получать доступ к сервисам на других устройствах в локальной сети, к которой имеет доступ этот самый хост за NAT'ом файерволом.

Можно маршрутизировать весь (или некоторый в зависимости от настроенных правил) трафик на хост за NAT'ом или фаерволом и выпускать его оттуда в Интернет.
Например, вы проживаете за границей, хотите оплачивать счета за ЖКХ вашей недвижимости оставшейся России, но сервис оплаты не пускает вас с забугорных IP и не пускает вас с IP-адресов даже российских VPS-хостеров. Тогда можно поставить у кого-нибудь из друзей или родственников в РФ преднастроенный роутер или одноплатник типа Raspberry Pi, который подключится к вашему прокси-серверу, а вы, в свою очередь, через прокси-сервер сможете достучаться до этого роутера/р-пишки и выйти через него во внешний интернет как обычный пользователь, находящийся в России - и всем ресурсам будет виден IP-адрес российского домашнего интернет-провайдера.

Можно выборочно пробрасывать порты, например, все подключения на 80 порт прокси-сервера будут переадресовываться на 80 (или любой другой) порт "изолированного" хоста или еще куда-то дальше.

Можно даже в теории соорудить псевдо-VPN, чтобы подключенные клиенты прокси-сервера могли достукиваться друг до друга.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 10

Практический пример использования модели детекции изображений

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 790

Всем доброго дня. Совсем недавно я закончила продвинутый курс от Deep Lerning. Курс объемный, много свежей информации. Мне, как закончившей прикладную математику и часто по работе соприкасающейся с искусственным интеллектом (нейросетки, генетика, fuzzy logics) было не сильно сложно, но мега-увлекательно за счет того, что ребята очень заинтересованные и рассказывали про свежие интересные модели, еще и на русском языке. Приятно видеть, что ИИ-сфера в нашей стране тоже не стоит на месте.

Хотелось сделать своими руками что-нибудь эдакое полезное и одновременно мега-современное и вот что я придумала. У нас есть частный дом, там есть дворовые коты, которых надо кормить и в мое отсутствие. А так же есть еще птицы, кроты, чужие вездесущие собаки и другая живность, которых не стоит кормить, если не хотим, чтобы они у нас все поселились. Так вот, а что, если прикрутить модель детекции изображений к умной кормушке? Далее было бы здорово научиться использовать голосовые команды, например, на закрытие кормушки. И чтобы не писать никаких специальных программ, воспользуемся телеграмм-ботами, телеграмм стоит почти в каждом телефоне.

В данной статье я сделала акцент именно на том, как пользоваться моделями детекции изображений на практике.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 2

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

Уровень сложности Простой
Время на прочтение 26 мин
Количество просмотров 7.3K

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

Читать далее
Всего голосов 40: ↑39 и ↓1 +38
Комментарии 9

Реализация SOLID на примере

Уровень сложности Сложный
Время на прочтение 3 мин
Количество просмотров 1.5K

Рассмотрим на простом и наглядном примере реализацию SOLID на Symfony. Будет так же ссылка на Github. Допустим, нужно реализовать импорт товаров из внешнего сервиса...

Читать далее
Всего голосов 11: ↑0 и ↓11 -11
Комментарии 14

Хакатоним эффективнее: как поднять удаленный сервер MLflow Tracking для команды

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 505

Хакатон – это всегда повышенный стресс, потому что за короткое время нужно найти лучшее решение для поставленной задачи. Вам придется обучить десятки моделей, найти оптимальную комбинацию гиперпараметров и при этом координировать действия с командой. Чтобы минимизировать хаос совместной разработки, предлагаю воспользоваться MLflow. С его помощью вы сможете синхронизировать усилия всей команды, а также иметь доступ к истории всех экспериментов: к обученным моделям, их гиперпараметрам, метрикам и не только. Узнайте, как поднять удаленный сервер MLflow Tracking, приложив минимум усилий.

Читать далее
Рейтинг 0
Комментарии 0

Переключение раскладок методом смены клавиатур

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 3K

Хотел бы предложить свой метод переключения раскладок на клавиатуре. Существует множество программ, переключающих раскладки - Punto Switcher, Comfort Keys Pro... И для большинства пользователей эти способы, вполне возможно, будут предпочтительными.

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

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

Я подумал: почему бы вместо переключения раскладок на одной физической клавиатуре не переключаться между двумя физическими клавиатурами. Т.е. русский текст набираем на одной клавиатуре, а английский - на другой клавиатуре.

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

По завершении недели можно сказать, что эксперимент прошел успешно и возвращаться к старому методу нет никакого желания:

Первые 2 дня проходило привыкание к новому способу набора текста, рука так и тянулась к клавишам переключения раскладки. Поэтому совет: отключите сочетание клавиш переключения языка, к которому Вы привыкли. А в следующие дни работа с клавиатурой пошла быстрее, без неверно-введенных слов. Больше не приходилось заново набирать текст или менять раскладку, что вселяло некоторую уверенность при наборе текста.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 28

Как принимать платежи в Telegram | Оплата без всяких токенов и асинхронная обработка платежа

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 2.3K

Как принимать платежи на своем сайте или в telegram используя библиотеку yoomoney-api.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 9

Как я заработал 500 000 рублей, сделав доступ к ChatGPT. А потом Яндекс убил SEO и всё (почти) закончилось

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 14K

Статья о том, как я почти проспал "бум" ChatGPT, но сделал к нему доступ и заработал на этом (и продолжаю зарабатывать). Сам проект сейчас идёт на спад, но об этом в конце.

Читать далее
Всего голосов 47: ↑37 и ↓10 +27
Комментарии 43

Ближайшие события

Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
Яндекс Backend Tour
Дата 13 – 26 ноября
Время 18:00 – 23:00
Место Москва Нижний Новгород Екатеринбург Новосибирск Санкт-Петербург Онлайн
Онлайн IT HR-конференция HR42
Дата 17 – 18 ноября
Время 10:00 – 14:00
Место Онлайн
SMM TRENDS
Дата 22 ноября
Время 14:00 – 19:00
Место Онлайн
HighLoad++ 2023
Дата 27 – 28 ноября
Время 9:00 – 20:00
Место Москва Онлайн
Открытая трансляция Главного зала HighLoad++ 2023
Дата 27 – 28 ноября
Время 10:00 – 20:00
Место Онлайн
Business Code Conference
Дата 30 ноября
Время 17:30 – 00:00
Место Москва
Импульс Т1
Дата 1 декабря
Время 12:30
Место Москва Онлайн
YaTalks 2023 — главная конференция Яндекса для IT сообщества
Дата 5 – 6 декабря
Время 9:00 – 23:59
Место Москва Белград Онлайн

Пишем gRPC сервис на Go — сервис авторизации

Уровень сложности Средний
Время на прочтение 63 мин
Количество просмотров 4.2K

Пишем gRPC сервис на Go — сервис авторизации


В этой статье мы научимся писать полноценный gRPC сервис на Go на примере сервера авторизации с полноценной архитектурой, готовой к продакшену. Мы напишем как серверную часть, так и клиентскую. В качестве клиента мы возьмём мой сервис — URL Shortener, о котором у меня также есть статья и видео-гайд на ютубе. Попутно мы познакомимся с базовыми подходами к работе с авторизацией. И в конце настроим автоматический деплой сервиса с помощью GitHub Actions на удалённый сервер.


Видео-версия этого гайда с более подробными объяснениями

Итого, наш план:


  • Напишем простой, но полноценный gRPC-сервис
  • Разберемся с базовыми принципами работы авторизации — чтобы не было скучно
  • Настроим автоматический деплой в прод — потому что руками деплоить лень
  • Подружим его с уже готовым сервисом URL Shortener — чтобы был практический смысл
  • Напишем полноценные функциональные тесты

На выходе мы получим полноценный рабочий сервис авторизации, который вы сможете по аналогии подключать к своим пет-проектам.


Кратко обо мне: меня зовут Николай Тузов, я много лет занимаюсь разработкой на Go, очень люблю этот язык. Также веду свой YouTube-канал.

Читать дальше →
Всего голосов 34: ↑34 и ↓0 +34
Комментарии 5

Tailwind vs BEM — 2 (архитектура)

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 1.1K

Статья рассматривает возможные задачи верстки на разных проектах и как с ними справляются две разные архитектуры: Tailwind CSS и ванильный CSS + BEM.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 5

Когда телефоны были большими…

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 2.5K

  На днях прочитал прекрасную статью по использованию древнего контроллера i4040 для вычисления числа Пи. Искусство в чистом виде, браво.

   Это совпало с необходимостью освобождения помещений у нас для нового проекта, а в этих помещения у нас лежит масса артефактов нашего прошлого: разнообразной комплектации, недоделок, не проданных изделий  для телефонии, видеорекордеров, модулей записи речи и прочего. У нас у самих не хватает мыслей, куда это можно применить, так находимся в плену исходного предназначения этих изделий. Возможно коллективный разум Хабра сможет помочь. Если находятся даже применения контроллера  i4040, то наверняка можно применить и наши артефакты, где тоже реализовывалось искусство программирования, практически утерянное сейчас, позволяющее впихнуть обширный функционал в 8КБ кода.

Для интересных хоббийных проектов отдадим образцы бесплатно, для коммерческих - договоримся. Будем рады, если нам удастся кому-нибудь помочь создать что-то интересное.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 23

Добавляем подсказки в приложение с помощью TipKit

Время на прочтение 11 мин
Количество просмотров 432

Когда TipKit был впервые упомянут во время выступления на WWDC 2023, я поначалу предположил, что это какой-то новый способ отображения приложений в приложении Tips и, возможно, Spotlight. Вместо этого мы увидели встроенный компонент для добавления небольших обучающих представлений в наши собственные приложения на всех платформах с системой правил для отображения на основе условий и синхронизацией на нескольких устройствах через iCloud! Более того, Apple сама использует этот компонент в iOS 17, например, в приложениях Messages и Photos.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 0

Время Cloud.ru. AWS закрывает дверь

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 3.9K

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

За последнее время мне несколько раз приходилось упоминать в различных дискуссиях о том, какая проводится работа в области генома человека, как применяется нейросетевая модель для исследований. Эта тема достойна больше, чем просто восхищения!

Этим летом мне посчастливилось участвовать в программе «Цифровые технологии и цифровые бизнес-модели для IT» Академии лидеров цифровых команд Сбера (детальней можно посмотреть здесь https://programmes.sberuniversity.ru/digital_leaders_academy#rec623444895).

В программе был доклад «Применение ИИ в геномике» Ольги Кардымон (чуть более подробней можно найти по поиску в сети, например, здесь: «AI Journey на ПМЭФ»  https://finance.rambler.ru/business/50937255-na-pmef-proshla-sessiya-ai-journey-puteshestvie-v-mir-iskusstvennogo-intellekta/) – это был доклад на тему микробиологии и применения технологий искусственного интеллекта.

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

И теперь хочу вернуться к ставшим повседневными технологиям Cloud, и способам подготовки и проверки экспертов такого направления как архитектура ИТ-решений (Solutions architecture).

Читать далее
Всего голосов 24: ↑3 и ↓21 -18
Комментарии 16

Road Run, или как я свою первую игру делал. Часть 3

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 1.7K

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

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 0

Погружение в Smali. Как выглядят Java и Kotlin со стороны

Время на прочтение 6 мин
Количество просмотров 2.1K

Эта статья для начинающих исследователей файлов APK. Хотя почему только для начинающих? Иногда стоит остановиться и разложить по полочкам то, что накопилось. И тогда можно найти логичное и простое объяснение тому, чего не понимал. Или увидеть то, чего раньше не замечал.

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Комментарии 0