Как стать автором
Обновить
5
0
Федор Майоров @maeln0r

Пользователь

Отправить сообщение

Сказ о том, как я за год решил более 600 leetcode задач

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

Всем салют!

Хочу рассказать вам историю о том, как я начинал с уровня — «не могу решить даже 1 easy задачу из 10» до уровня — «могу решить каждую вторую medium задачу» и прошел несколько coding сессий в таких компаниях как Meta, Booking, Careem, Avito...

Читать далее
Всего голосов 150: ↑141 и ↓9+132
Комментарии407

Универсальная плата для E-Ink экранов. Ч1. Разработка системы питания

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

Однажды мне попался один весьма интересный проект платы, поддерживающей большое количество разнообразных E-Ink экранов. Проект довольно быстро заинтересовал, появилось желание несколько переработать плату, внести улучшения, узнать и попробовать что-нибудь новое. Больше всего изменений претерпела система питания: она была разработана практически с нуля. Процесс оказался очень познавательным и увлекательным, а отладка прототипа преподнесла много поучительных и забавных сюрпризов. Это жизненный рассказ о разработке как есть.
Читать дальше →
Всего голосов 70: ↑70 и ↓0+70
Комментарии30

DIY-программатор ST-Link V2.1

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

Привет, Хабр!

Предлагаю вашему вниманию самодельный программатор ST-Link V2.1.

Особенности: интерфейс SWD, функция виртуального COM-порта, поддержка SWO, функция MSC (mass storage class), низкая цена.

Перейти к статье
Всего голосов 33: ↑33 и ↓0+33
Комментарии47

Где бесплатно учить Java в 2024 году

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

В 2024 году изучение Java остается одним из актуальных направлений для тех, кто стремится стать профессиональным разработчиком.

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

 Изучения Java в 2024 году остается актуальным по нескольким причинам:

1. Популярность: Java является одним из самых популярных языков программирования в мире и сохранит свою популярность и в 2024 году. Множество компаний и организаций используют Java для разработки приложений и веб-сервисов, поэтому знание этого языка будет востребовано.

2. Карьерные возможности: Знание Java открывает широкий спектр карьерных возможностей. Работа с Java может предоставить вам возможность работать в таких областях, как разработка мобильных приложений, веб-разработка, разработка игр, аналитика данных и многое другое.

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

4. Устоявшийся экосистема: Java имеет богатую экосистему инструментов и фреймворков, которые помогают разработчикам ускорить процесс разработки и повысить производительность. Знание Java позволит вам использовать все преимущества этой экосистемы и упростить свою работу.

Читать
Всего голосов 13: ↑10 и ↓3+7
Комментарии8

Тинькофф дает противоречащие ответы Роскомнадзору и ЦБ РФ в части дачи клиентом согласия на обработку его биометрии

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

В ответ на статьи «Тинькофф-банк» собирает согласие на обработку биометрии клиентов при вводе пин-кода в новом приложении или банкомате и Сделаем для вас биометрию. Отказаться не получится хотел бы добавить интересные новости о том, как «Тинькофф» дает противоречащие ответы Роскомнадзору и ЦБ РФ в части дачи клиентом согласия на обработку его биометрии.

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

Автоматизированный бот на Selenium

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

Selenium – один из самых популярных фреймворков автоматизации тестирования. Несмотря на то, что Selenium поддерживает шесть популярных языков программирования, его можно использовать для волшебной реализации с наименьшим количеством кода в связке с Python.

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

Прогресс GC от JDK 8 до JDK 17

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

JDK 17 с нами уже несколько месяцев и он не только про новые возможности языка Java. Прирост производительности в сравнении с более старыми версиями JDK очень заметен. Это становится особенно очевидно, когда мы сравниваем его с предыдущими LTS версиями: JDK 8 и JDK 11. Большая доля в улучшении производительности происходит из новых функций и оптимизаций в JVM, и в этой статье фокус будет на улучшениях, которые были сделаны в области сборки мусора в JVM

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

JavaScript: заметка о WebAssembly

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


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


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


Что не так с JS?


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


int n = 42

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

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

Как устроен вывод Generic-типов в Java

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

Добрый день! Меня зовут Владислав Верминский, я отвечаю за развитие профессии JVM-разработчика в Райффайзенбанке. В этой статье я расскажу про неоднозначность вывода типов в Java. На первый взгляд с ним всё очевидно, но когда сталкиваешься со странным поведением, возникают вопросы — начинает казаться, что какие-то части кода работают неправильно. Однако, после анализа становится понятно, что всё очень непросто, но при этом всё работает по своей спецификации.

Читать далее
Всего голосов 27: ↑26 и ↓1+25
Комментарии17

WordClock — от вдохновения до воплощения

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

Однажды увидел картинку необычных часов, которые пишут время. Это были QlockTwo.

Поиск в интернет по производителю предоставил информацию, которой я был огорчен.

Стоимость часов в форм-факторе 450 x 450 мм. начиналась от 1500$ за версию с пластиковой лицевой панелью. Версия со стальной сатинированной панелью стоила 2000$, именно ее я изначально увидел и она мне понравилась.

Платить такие суммы не было возможности и я загорелся идеей создания аналога данных часов. 

Как же оно получилось?
Всего голосов 143: ↑142 и ↓1+141
Комментарии65

Практические советы, примеры и туннели SSH

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

Практические примеры SSH, которые выведут на новый уровень ваши навыки удалённого системного администратора. Команды и советы помогут не только использовать SSH, но и более грамотно перемещаться по сети.

Знание нескольких трюков ssh полезно любому системному администратору, сетевому инженеру или специалисту по безопасности.
Читать дальше →
Всего голосов 69: ↑66 и ↓3+63
Комментарии29

Необычный дуалбут: ноутбук с «двойным дном»

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

Не так давно на Habr Q&A я наткнулся на интересный вопрос — как сделать, чтобы два жестких диска не видели друг друга? Чтобы вирус, попав на одну систему, никоим образом не мог заразить другую. В ответах предлагали достаточно стандартные способы — использовать полнодисковое шифрование, отключить диск в диспетчере устройств и даже поставить переключатель на питание. Но что если взглянуть на задачу совершенно с другого угла и сделать всё средствами самого HDD? Да-да, сегодня мы снова погружаемся в пучины модификации прошивок и реверс-инжиниринга!
Узнать подробности
Всего голосов 361: ↑357 и ↓4+353
Комментарии122

Nginx. О чем не пишут в книгах

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

Эта статья родилась случайно. Слоняясь по книжному фестивалю и наблюдая, как дочка пытает консультантов, заставляя их искать Иэна Стюарта, мой глаз зацепился за знакомые буквы на обложке: "Nginx".

Надо же, на полках нашлось целых три книги - не полистать их было бы преступлением. Первая, вторая, третья... Ощущение, будто что-то не так. Ну вроде страниц много, текст связный, но каково содержание? Установка nginx, список переменных и модулей, а дальше docker, ansible. Открываем вторую: wget, лимиты запросов и памяти, балансировка, kubernetes, AWS. Третья: GeoIP, авторизация, потоковое вещание, puppet, Azure. Ребята, а где про то, как вообще работает nginx? На кого рассчитаны ваши книги? На состоявшегося админа, который и так знает архитектуру этого веб-сервера? Да он вроде с базовыми настройками и сам справится. На новичка, который не знает как пользоваться wget? Вы уверены, что ему знание о существовании ngx_http_degradation_module и тем паче "облака" важнее порядка прохождения запроса?

Итак. О чем не пишут в книгах.
(здесь и дальше мы говорим только о NGX_HTTP_)

Фазы обработки запроса
Всего голосов 86: ↑86 и ↓0+86
Комментарии11

[На правах пятницы] IT-холостяк и три HR-девицы

Время на прочтение2 мин
Количество просмотров33K
Три девицы вечерком
Чатились за коньячком…
Мысль у всех была ловка:
Схантить бы холостяка.
Чтобы в теле мускулистом
Был крутым специалистом,
Чтобы с опытом в айти
Лет так более пяти.
В корпорации, стартапе
Чтоб прошёл он все этапы,
Да на англицком на слоге
Пел на Хабре в своём блоге.
И в сообществе средь профи
Был желан, как кружка кофе.
Ну, короче, чтоб матёр
Был как истинный Senior.

image
Читать дальше →
Всего голосов 139: ↑116 и ↓23+93
Комментарии14

Стандартный браузерный API Payment Request

Время на прочтение6 мин
Количество просмотров13K
Знаете ли вы о том, что во многих современных браузерах имеется встроенный API, который называется Payment Request? Этот API описан в стандарте W3C, который направлен на поддержку работы с платёжной и контактной информацией. Вот обзор стандарта на ресурсе developers.google.com. Обзор реализации этого API на сайте MDN говорит о том, что Payment Request даёт разработчику браузерные средства, которые позволяют пользователям связывать предпочитаемые ими платёжные системы и платформы с интернет-магазинами. Это повышает удобство выполнения платежей за товары и услуги, ускоряя и упрощая этот процесс. В частности, например, API Payment Request позволяет пользователю ввести свои платёжные данные и адрес лишь один раз, а не вводить одни и те же сведения на каждом сайте. Выполнение оплаты на всех сайтах, поддерживающих этот API, будет выглядеть для пользователя одинаково. У API Payment Request есть и другие ценные возможности. Среди них — решение проблем с доступностью платёжных инструментов для пользователей с ограниченными возможностями, синхронизация платёжных данных между различными устройствами пользователей, стандартизированные средства обработки ошибок.



Материал, перевод которого мы сегодня публикуем, посвящён демонстрации практического использования API Payment Request. Сразу же стоит отметить, что API Payment Request — это экспериментальная технология, которая вполне может измениться в будущем. Однако автор этого материала говорит, что она, несмотря на это, достойна того, чтобы с ней ознакомиться. Он уверен в том, что эту технологию ждёт светлое будущее, и в том, что изменения, которые могут быть в неё внесены, не слишком сильно повлияют на основные принципы работы с ней.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии6

Правильно освобождаем ресурсы в Java

Время на прочтение4 мин
Количество просмотров162K
Неправильное освобождение ресурсов — одна из наиболее часто допускаемых ошибок среди Java-программистов. Под ресурсом в данной статье я буду подразумевать всё, что реализует интерфейс java.io.Closeable. Итак, сразу к делу.

Будем рассматривать на примере OutputStream. Задача: получить на вход OutputStream, сделать некоторую полезную работу с ним, закрыть OutputStream.
Читать дальше →
Всего голосов 68: ↑59 и ↓9+50
Комментарии82

Структуры данных в картинках. ArrayList

Время на прочтение3 мин
Количество просмотров871K
Приветствую вас, хабралюди!

Взбрело мне в голову написать несколько статей, о том как реализованы некоторые структуры данных в Java. Надеюсь, статьи будут полезны визуалам (картинки наше всё), начинающим java-визуалам а также тем кто уже умеет писать new ArrayList(), но слабо представляет что же происходит внутри.



Сегодня поговорим о ArrayList-ах

ArrayList — реализует интерфейс List. Как известно, в Java массивы имеют фиксированную длину, и после того как массив создан, он не может расти или уменьшаться. ArrayList может менять свой размер во время исполнения программы, при этом не обязательно указывать размерность при создании объекта. Элементы ArrayList могут быть абсолютно любых типов в том числе и null.

Поверить на слово
Всего голосов 89: ↑82 и ↓7+75
Комментарии66

Java Challengers #2: Сравнение строк

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

Java Challengers #2: Сравнение строк


У нас как всегда много опаздывающих к началу курса, так что только вчера провели второе занятие среди нового потока "Разработчик Java". Но это так, мелочи жизни, а пока что мы продолжаем публикацию серии статей Java Challengers, перевод которых подготовили для вас.


В Java класс String инкапсулирует массив char (прим. переводчика — с java 9 это уже массив byte, см. Компактные строки в Java 9). Говоря по простому, String — это массив символов, используемый для составления слов, предложений или других конструкций.


Инкапсуляция — это одна из самых мощных концепций объектно — ориентированного программирования. Благодаря инкапсуляции вам не нужно знать как работает класс String. Вам достаточно знать методы его интерфейса.


Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии27

Делаем клон сервиса по доставке еды, используя Nuxt.js, GraphQL, Strapi и Stripe. Часть 1/7

Время на прочтение5 мин
Количество просмотров18K
image

Приготовьтесь написать клон сервиса по доставке еды deliveroo.co.uk используя современные технологии: Nuxt.js, GraphQL, Strapi и Stripe!

От входа до оформления заказа, мы дадим пользователям возможность открывать для себя новые рестораны, блюда и выбирать свою любимую еду.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии13

Поднимаем свой DNS-over-HTTPS сервер

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

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


DOH


До последнего времени, несмотря на очевидность уязвимости DNS трафика, который, до сих пор, по большей части, передаётся в открытом виде, для злонамеренных действий со стороны провайдеров, стремящихся повысить своих доходы за счёт встраивания рекламы в контент, государственных силовых органов и цензуры, а также просто преступников, процесс усиления его защиты, несмотря на наличие различных технологий, таких как DNSSEC/DANE, DNScrypt, DNS-over-TLS и DNS-over-HTTPS, буксовал. И если серверные решения, а некоторые из них существуют уже довольно долгое время, широко известны и доступны, то поддержка их со стороны клиентского программного обеспечения оставляет желать много лучшего.

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

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность