Pull to refresh
5
0
Федор Майоров @maeln0r

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

Send message

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

Level of difficulty Easy
Reading time 7 min
Views 70K

Всем салют!

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

Читать далее
Total votes 150: ↑141 and ↓9 +132
Comments 406

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

Level of difficulty Medium
Reading time 13 min
Views 7K

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

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

Level of difficulty Medium
Reading time 6 min
Views 16K

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

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

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

Перейти к статье
Total votes 33: ↑33 and ↓0 +33
Comments 47

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

Level of difficulty Easy
Reading time 6 min
Views 26K

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

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

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

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

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

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

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

Читать
Total votes 13: ↑10 and ↓3 +7
Comments 8

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

Reading time 5 min
Views 29K

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

Читать далее
Total votes 259: ↑259 and ↓0 +259
Comments 71

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

Reading time 12 min
Views 20K

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

Читать далее
Total votes 8: ↑6 and ↓2 +4
Comments 1

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

Reading time 5 min
Views 22K

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

Читать статью
Total votes 19: ↑19 and ↓0 +19
Comments 13

JavaScript: заметка о WebAssembly

Reading time 8 min
Views 11K


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


В 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
Comments 15

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

Reading time 9 min
Views 15K

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

Читать далее
Total votes 27: ↑26 and ↓1 +25
Comments 17

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

Reading time 3 min
Views 28K

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

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

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

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

Как же оно получилось?
Total votes 143: ↑142 and ↓1 +141
Comments 65

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

Reading time 13 min
Views 203K

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

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

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

Reading time 15 min
Views 80K

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

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

Reading time 9 min
Views 45K

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

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

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

Фазы обработки запроса
Total votes 86: ↑86 and ↓0 +86
Comments 11

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

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

image
Читать дальше →
Total votes 139: ↑116 and ↓23 +93
Comments 14

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

Reading time 6 min
Views 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 — это экспериментальная технология, которая вполне может измениться в будущем. Однако автор этого материала говорит, что она, несмотря на это, достойна того, чтобы с ней ознакомиться. Он уверен в том, что эту технологию ждёт светлое будущее, и в том, что изменения, которые могут быть в неё внесены, не слишком сильно повлияют на основные принципы работы с ней.
Читать дальше →
Total votes 26: ↑26 and ↓0 +26
Comments 6

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

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

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

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

Reading time 3 min
Views 870K
Приветствую вас, хабралюди!

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



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

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

Поверить на слово
Total votes 89: ↑82 and ↓7 +75
Comments 66

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

Reading time 7 min
Views 21K

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


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


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


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


Читать дальше →
Total votes 22: ↑18 and ↓4 +14
Comments 27

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

Reading time 5 min
Views 18K
image

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

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

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

Reading time 11 min
Views 56K

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


DOH


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

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

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity