Java developer
Статистика@Alexander_Nesterov https://t.me/tribute/app?startapp=d7Lb
- Последний пост
- 27 авг. 2024 г.
- Последнее чтение
- 13 авг.
- Постов за неделю
- 0
- Всего постов
- 20
- Тип
- открытый
- Язык
- русский
- В каталоге с
- 13 авг.
- 1/24сутки в ленте
- —
- 1/48двое суток
- —
- 1/72трое суток
- —
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
https://t.me/tgresistancebot/letter Присоединяйтесь к #DigitalResistance. Подпишите Открытое письмо за #FREEDUROV.
✈️Задача на тему многопоточности. ➡️ Необходимо реализовать потокобезопасный счетчик, который будет увеличивать своё значение до определенного лимита. ⬇️ Когда лимит достигнут, все потоки, пытающиеся увеличить значение счетчика, должны блокироваться до тех пор, пока один из потоков не сбросит значение счетчика в ноль. ➕ Подход с использованием ограниченного счетчика и механизмов синхронизации, таких как Lock и Condition, применим в сценариях, где требуется контролировать количество выполняемых операций или ресурсов в многопоточном окружении. 📷 Например, сервер может ограничивать количество одновременных запросов, которые он обрабатывает, чтобы предотвратить перегрузку. Когда достигается лимит одновременных запросов, сервер может ожидать завершения текущих запросов перед тем, как начать обработку новых. ❣️ ТЗ Код: GitLab 👩💻
⌨️Программа сервера и клиента. 🔣Общий процесс 1. Клиент запускает соединение и начинает отправлять строки. 2. Сервер обрабатывает каждую строку и возвращает соответствующий ответ в зависимости от содержимого строки. 3. Клиент получает ответ от сервера. Таким образом, сервер отвечает "200 OK" ✉️ для строк, содержащих латинские буквы, кириллицу и цифры, и "404 Not Found" 😟 для всех остальных строк. Если север недоступен "503 Service Unavailable" 🤷♂️. Код: GitLab 👩💻.
без подписи
🧠 NotchNook Небольшое приложение для macOS 💻 Созданное специально для пользователей MacBook с вырезом (notch) на экране. 👏 Основная цель приложения — оптимизация использования пространства вокруг выреза и обеспечение более эффективной работы. ✅ Уже активированный файл ниже, пользуйтесь! 💬Discord
Всем привет! 👋 🎚️ Сегодня, 1 марта стартовал пятый сезон «Тренировки по алгоритмам 5.0» от Яндекс 💸 💜 Как устроены Тренировки 😎 и что получат участники: 📣 Обновлённые лекции по алгоритмам. 👥 Собеседования в прямом эфире. 🎁 Сертификат о прохождении Тренировок. 👥 Персональные тренировки для топ-200. 👥 Пробное алгоритмическое собеседование для топ-200. Записывайтесь по 🧠ссылке
без подписи
☃️Всех с наступающим Новым Годом! ✈️Пусть каждый из вас, открывая новую страницу в календаре, находит невероятные возможности для реализации своих мечт и целей. 🧑💻Пусть каждый день приносит радость, а каждый труд - удовлетворение от результатов. 🏡Желаю не только радости и отдыха, но и набраться сил для покорения новых вершин в грядущем году!🌲
🧑💻 Отправка HTTP-запросов (GET, POST, DELETE) с использованием стандартных классов Java для работы с сетью.🌐 💡Для выполнения HTTP-запросов используем классы HttpURLConnection, URL, BufferedReader, OutputStream и InputStreamReader из пакета java.net. 🗄 Сначала устанавливаем соединение с сервером, указываем тип запроса (GET, POST, DELETE) и настраивает необходимые параметры запроса. ⚡️После этого для запроса GET создается объект URL, через который происходит установка соединения. Полученный ответ считывается построчно с использованием BufferedReader и добавляется в буфер для дальнейшего использования. ⚡️Для запроса POST устанавливается флаг setDoOutput(true), чтобы разрешить вывод данных в соединение. После этого отправляются данные в формате JSON через OutputStream. После отправки данных читается ответ сервера и выводится на экран. ⚡️Для запроса DELETE устанавливается метод запроса, который затем выполняется, и получается код ответа сервера. 🧠 Здесь мы отправляем HTTP-запросы без использования сторонних библиотек, прямо с помощью встроенных средств Java для работы с HTTP. Код: GitLab (в README есть описание) 👩💻
🧠Алгоритм Бойера-Мура. 💻Алгоритм применяется для поиска подстроки в строке. ❗️Его эффективность особенно проявляется в случаях, когда искомая подстрока длиннее или сопоставима по длине с самой строкой, в которой производится поиск. 📖 Алгоритм часто используется в текстовых редакторах, поисковых системах, базах данных, компиляторах и в программном обеспечении для обработки текстов и анализа данных. Код: GitLab 👩💻
🧑💻 Напишем функцию, которая проверяет каждый ход в игре крестики-нолики. 🗄Функция принимает текущее состояние поля в виде двумерного массива. 🔸Если игрок 'X' выиграл - везвращаем 'Х won', если выиграл игрок 'О', то 'O won'. 🔸Если никто не выиграл - 'Next. 🔸Если поле полностью заполнено, но никто не выиграл - 'Game over'. ✍️Функция solution, которая проверяет текущее состояние игры в крестики-нолики и возвращает соответствующий результат в зависимости от выигрыша, продолжения игры или окончания. Код: GitLab 👩💻
💡Интерфейс Deque 🧑💻 Интерфейс Deque, используется для создания коллекции, которая представляет собой двустороннюю очередь элементов. Он расширяет интерфейсы Queue и Collection и определяет методы для работы с очередью, такие как добавление элемента в начало или конец очереди, удаление элемента из начала или конца очереди, проверка наличия элемента и т.д. ✊ Двусторонняя очередь может быть использована для решения различных задач, таких как обработка задач в порядке их поступления, управление потоками данных в многопоточных приложениях, реализация алгоритмов поиска в ширину. ☝️Использование интерфейса Deque может быть полезным при работе с потоками данных, когда необходимо управлять порядком обработки элементов с обеих сторон или обрабатывать элементы в порядке приоритета. ⚡️Методы: 📖Добавление элементов: 🔸 void addFirst(E e): Добавляет элемент в начало очереди. 🔸 void addLast(E e): Добавляет элемент в конец очереди. ❌Удаление элементов: 🔸 boolean offerFirst(E e): Добавляет элемент в начало очереди и возвращает true, если удалось, иначе false. 🔸 boolean offerLast(E e): Добавляет элемент в конец очереди и возвращает true, если удалось, иначе false. 🔸 E removeFirst(): Удаляет и возвращает первый элемент, выбрасывая исключение, если очередь пуста. 🔸 E removeLast(): Удаляет и возвращает последний элемент, выбрасывая исключение, если очередь пуста. 🔸 E pollFirst(): Удаляет и возвращает первый элемент, возвращая null, если очередь пуста. 🔸 E pollLast(): Удаляет и возвращает последний элемент, возвращая null, если очередь пуста. 🔸 E getFirst(): Возвращает первый элемент без удаления, выбрасывая исключение, если очередь пуста. 🔸 E getLast(): Возвращает последний элемент без удаления, выбрасывая исключение, если очередь пуста. 🔸 E peekFirst(): Возвращает первый элемент без удаления, возвращая null, если очередь пуста. 🔸 E peekLast(): Возвращает последний элемент без удаления, возвращая null, если очередь пуста. ❗️Другие методы: 🔸 boolean contains(Object o): Проверяет, содержит ли очередь указанный элемент. 🔸 int size(): Возвращает количество элементов в очереди. 🔸 boolean isEmpty(): Проверяет, пуста ли очередь. Код: GitLab 👩💻
😐Программа для учета расходов. 🗂Пользователю предлагается выбрать различные действия, такие как конвертирование валюты, получение совета, вывод трат за неделю и показ самой большой суммы расходов за неделю. ⚡️Предлагается ввести данные о своих доходах и зарплате, а затем управлять своими расходами. Код: GitLab 👩💻
👋Класс HashSet Это одна из реализаций интерфейса Set. 🔹Он использует хэширование для хранения элементов, что обеспечивает высокую эффективность операций добавления, удаления и поиска элементов. 🔹Класс HashSet не гарантирует порядок элементов, итерация по множеству может осуществляться в произвольном порядке. 💡Интерфейс Set и класс HashSet часто используются для хранения уникальных элементов, например, для фильтрации дубликатов в коллекциях, проверки уникальности значений и других задач, связанных с управлением множеством элементов. Код: GitLab 👩💻
Алгоритм RSA 😎 ⭐️Основан на использовании двух больших простых чисел и математических операций с ними. Он используется для шифрования и подписи данных в криптографии. 📖 Алгоритм RSA работает следующим образом: ⭐️Генерация ключей: сначала выбираются два больших простых числа p и q. Затем вычисляется их произведение n = p * q, которое называется модулем. Также выбирается число e, которое является взаимно простым с числом (p-1)*(q-1). Эти числа (n, e) составляют открытый ключ. Затем вычисляется число d, которое является обратным к числу e по модулю (p-1)*(q-1). Число d является секретным ключом. ⭐️Шифрование: для шифрования сообщения m сначала оно преобразуется в число, меньшее n. Затем вычисляется зашифрованное сообщение c = m^e mod n. ⭐️Расшифрование: для расшифрования зашифрованного сообщения c сначала вычисляется исходное сообщение m = c^d mod n. ⚙️Алгоритм обладает высокой стойкостью к взлому благодаря трудности факторизации больших чисел на простые множители. Однако он также требует больших вычислительных ресурсов и может быть уязвим к атакам, связанным с криптоанализом или использованием слабых ключей. Поэтому важно правильно выбирать параметры алгоритма при генерации ключей. Код: Генерация ключей 👩💻 Код: Шифрование и расшифровка 👩💻
🧠 Insertion Sort ℹ️ Сортировка вставками. Этот алгоритм проходит по массиву, вставляя каждый элемент на свое место в уже отсортированной части массива. Он имеет лучшую сложность, чем сортировки пузырьком и выбором - O(n^2) в худшем случае и O(n) в лучшем случае. 📖 Selection Sort ℹ️ Сортировка выбором. Этот алгоритм проходит по массиву, находит минимальный элемент и меняет его местами с первым элементом. Затем он находит следующий минимальный элемент и меняет его местами со вторым элементом, и так далее. Сложность алгоритма также O(n^2), что делает его неэффективным для больших массивов. ☝️Выбор между сортировкой вставками, пузырьком и сортировкой выбором, зависит от конкретной ситуации. В целом, сортировка вставками обычно более эффективна на почти отсортированных данных, но сортировка выбором может быть более эффективна на больших массивах данных. Сортировка пузырьком обычно менее эффективна, чем обе эти сортировки. ⭐️Более эффективные алгоритмы сортировки, сортировка (QuickSort) и сортировка слиянием (MergeSort). В большинстве случаев, рекомендуется использовать эти алгоритмы вместо сортировки вставками, пузырьком или сортировки выбором. 💡Для выбора между этими алгоритмами, нужно оценить особенности конкретных данных и использовать более эффективные алгоритмы, такие как QuickSort или MergeSort, если это возможно. Код: 👩💻 Insertion Sort Selection Sort Bubble Sort MergeSort QuickSort
💡Быстрая сортировка (QuickSort) ☝️Этот алгоритм использует стратегию "разделяй и властвуй". Он выбирает опорный элемент, разбивает массив на две части - элементы, меньшие опорного и элементы, большие опорного. Затем он рекурсивно сортирует каждую из этих частей. В среднем случае сложность алгоритма O(n log n), но в худшем случае может достигать O(n^2). ✏️O(n log n) “О(n логарифм n)” означает, что сложность алгоритма составляет O(n log n), где "n" - размер входных данных. Это означает, что время выполнения алгоритма будет увеличиваться пропорционально n и логарифму от n. Код: QuickSort 👩💻
👋 Напишем многопоточное приложение, которое моделирует работу нескольких супермаркетов. Каждый супермаркет создает список случайных чеков (сумм продаж) и передает их в налоговую службу для подсчета общей выручки. 🧠 Будем использовать: 🎛Многопоточность - класс ExecutorService и методы awaitTermination() и shutdown() используются для управления потоками выполнения. 🗂Коллекции - список bills в классе Supermarket используется для хранения чеков (сумм продаж). Код: GitLab 👩💻
👩💻 GPT-4 💡OpenAi провела мероприятие для разработчиков, на котором анонсировала улучшения в своих моделях. GPT-3.5 и GPT-4 прокачали, выпустили обновлённую версию GPT-4 Turbo, которому наконец рассказали, что произошло в мире и интернете в период с сентября 2021 до апреля 2023. 👍 GPT-4 Turbo быстрее предшественника, а также он способен анализировать больше информации за один запрос. Теперь он может обработать 128 000 токенов, что приблизительно эквивалентно более 300 страницам текста. Сами токены для API станут дешевле в 2-3 раза. 💻 Помимо этого, OpenAi анонсировала своеобразный конструктор чат-ботов на основе GPT-моделей. В скором можно будет гибко кастомизировать нейросеть под свои нужды, а также делиться созданными моделями с другими пользователями. Обновления обещают раскатать для всех в течение нескольких недель.
💪 Конференция Яндекса YaTalks 2023. 🧠 В 2023 году YaTalks пройдёт 5 и 6 декабря в Москве, Белграде и онлайн. 📖 Тема этого года — явления, которые меняют мир и двигают его вперёд. Пригласили более сотни спикеров, которые будут читать доклады о разработке, управлении и карьере в IT. ⭐️5 декабря — день YaTalks 2023 с хардовыми техническими докладами. 🔹 Андрей Мелихов, ведущий разработчик из Yandex Cloud. Объяснит, с какими проблемами и вызовами пришлось столкнуться, когда выпускали DataLens в опенсорс. 🔹 Никита Илясов, СТО Яндекс Еды и Маркета Деливери. Расскажет, как объединяли Delivery Club и Яндекс Еду. 🔹 Алексей Гусаков, технический директор Яндекс Поиска. Покажет, как инженеры управляют временем — и делают наш мир быстрее. ⭐️6 декабря — день, когда спикеры YaTalks 2023 рассказывают про управление и обучение. 🔹 Галина Юзефович, литературный критик, преподаватель, онлайн-платформа «Страдариум». Расскажет, как новые технологии меняют литературу и какие книги почитать об этой трансформации. 🔹 Евгений Кот, VP of Engineering из Rarible. Объяснит, почему сеньору и менеджеру сложно выбрать вектор для развития и как надо строить карьеру. 💥 Всё это — бесплатно, так что переходите на сайт, изучайте программу и регистрируйтесь!