Программирование {BookFlow}
16.2K subscribers
1.58K photos
468 videos
145 files
2.1K links
Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций, новости технологий.

Группа в https://vk.com/bookflow.

По всем вопросам @evgenycarter

РКН https://clck.ru/3KoAbH
Download Telegram
Как я заработал с помощью хомяка, ни разу на него не кликнув

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

Это история о том, как я, студент третьего курса ТюмГУ, впервые в качестве разработчика смог заработать с помощью собственного проекта. Часть текста будет посвящена теме проекта, часть — аспектам реализации, а в конце — немного о раскрутке и монетизации.

https://habr.com/ru/articles/837014/

👉@Bookflow
👎5👍4🤔1
Рейтинг лучших вузов России RAEX-100, 2024 год

https://raex-rr.com/education/russian_universities/top-100_universities/2024/

👉@Bookflow
👍5
Рейтинг IT-вузов России 2024 от Суперджоб

https://students.superjob.ru/reiting-vuzov/it/

👉@Bookflow
👍7
Сколько, реально, lossless треков в Яндекс Музыке

Я Беслан, IT-шник по любви, искренне увлеченный этим всем.

Люблю ковыряться в коде, писать код, прошивать всё что можно, поднимать инфру на линуксах, собирать роботов, datascience, нейронки, LLM-ки, и много ещё всего такого, вы поняли.

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

https://habr.com/ru/articles/837700/

👉@Bookflow
👍5🔥1
Как Linux запускает процесс

...и как использовать ptrace, чтобы отследить точку входа и повозиться со стеком.

В этой статье вы узнаете, что происходит внутри ядра Linux, когда процесс вызывает execve(), как ядро подготавливает стек и как управление передается процессу в пользовательском пространстве для выполнения.

https://iq.thc.org/how-does-linux-start-a-process

👉@Bookflow
👍7
GET, POST, PUT... Общие HTTP «глаголы» в одной схеме.

1. HTTP GET
Этот метод извлекает ресурс с сервера. Он идемпотентен: несколько идентичных запросов возвращают один и тот же результат.

2. HTTP PUT
Этот метод обновляет или создает ресурс. Он также идемпотентен: несколько идентичных запросов обновят один и тот же ресурс.

3. HTTP POST
Этот метод используется для создания новых ресурсов. Он не идемпотентен: два одинаковых POST-запроса создадут дублированные ресурсы.

4. HTTP DELETE
Этот метод используется для удаления ресурса. Он идемпотентен: несколько идентичных запросов удалят один и тот же ресурс.

5. HTTP PATCH
Метод PATCH применяется для частичного изменения ресурса.

6. HTTP HEAD
Метод HEAD запрашивает ответ, идентичный GET-запросу, но без тела ответа.

7. HTTP CONNECT
Метод CONNECT устанавливает туннель к серверу, идентифицированному целевым ресурсом.

8. HTTP OPTIONS
Этот метод описывает параметры связи для целевого ресурса.

9. HTTP TRACE
Этот метод выполняет тест возврата сообщения по пути к целевому ресурсу.

👉@Bookflow
👍10
Полезные сайты с таблицами системных вызовов ядра Linux для различных архитектур и версий ядра

https://syscalls.mebeim.net/?table=x86/64/x64/latest

https://arm64.syscall.sh/

#Linux #syscall

👉@Bookflow
👍4
Игрушечная телеметрия на Arduino

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

https://habr.com/ru/articles/836334/

👉@Bookflow
👍10
Хотите уверенно проектировать гибкие, масштабируемые и надежные системы, используя современные архитектурные практики?

Присоединяйтесь к онлайн-курсу «Software Architect», где за 4 месяца под руководством практикующих экспертов вы разберёте:
✔️ актуальные тактики по работе с атрибутами качества архитектуры: доступность, отказоустойчивость, безопасность и многое другое;
✔️ основные паттерны и стили архитектуры, их плюсы, минусы и подводные камни;
✔️ технологические домены, включая бекенд, BigData, мобильную разработку, фронтенд и хранилища данных.

👨‍💻🛠👨🏻‍💻 Программа разработана для архитекторов, разработчиков и тимлидов.

Старт группы уже 30 августа. Доступна рассрочка и 🎁 10% скидка по промокоду otus10 до 31.08 включительно!

➡️ Пройдите тест прямо сейчас, чтобы чтобы активировать скидку и получить доступ ко всем открытым урокам курса: https://vk.cc/czYIF5

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👎1
Чем опасен чистый RSA? Разбираем подводные камни

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

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

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

https://habr.com/ru/articles/838882/

👉@Bookflow
👍3
«Белое зеркало»: как AI улучшит жизнь в ближайшие 10 лет

2035 год кажется вам далеким будущим? А ведь он ближе, чем 2013-й…

В 2013-м было сложно представить, как AI-технологии изменят мир через десять лет. Но сейчас перспектива обрисовалась: к 2035-му искусственный интеллект проникнет везде, где сможет быть полезен. Как именно это произойдёт — лучше всех представляют люди, которые внедряют ИИ.

Для этой статьи мы попросили трёх наших экспертов провести нам экскурсию по нейросетевому будущему и по тому, как устроены процессы в ГПБ одиннадцать лет тому вперёд. Под катом: финтех, кодинг и наём сотрудников в 2035 году.

Поделиться своими предсказаниями можете и вы в комментариях — лучшие из них мы совместно с вами превратим в комиксы о светлом (надеемся), совсем не киберпанковском будущем.

https://habr.com/ru/specials/831304/

👉 @bookflow
🤡9👍1🤔1
Советы по Spring 💡

Чтобы выполнять действия в транзакции базы данных, вы можете использовать шаблон Spring TransactionTemplate вместо @Transactional

👉 @bookflow
👍4
Нас часто просят разрабатывать системы с высокой доступностью, масштабируемостью и пропускной способностью. Что это именно означает?

Выше приведена шпаргалка по проектированию систем с распространенными решениями.

1. Высокая доступность
Это означает необходимость обеспечения высокого уровня времени работы. Обычно мы описываем целевой уровень дизайна как «3 девятки» или «4 девятки». «4 девятки» (99,99% времени работы) означает, что сервис может быть недоступен только 8,64 секунды в день.

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

- Горячий-горячий: два экземпляра получают один и тот же ввод и отправляют вывод в downstream-сервис. Если одна из сторон недоступна, другая сторона может сразу же взять на себя ее функции. Поскольку обе стороны отправляют вывод в downstream, downstream-система должна выполнять дедупликацию.

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

- Кластер с единственным лидером: один лидер получает данные от upstream-системы и реплицирует их на другие реплики.

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

2. Высокая пропускная способность
Это означает, что сервис должен обрабатывать большое количество запросов за определенный период времени. Обычно используются метрики QPS (запросов в секунду) или TPS (транзакций в секунду).

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

3. Высокая масштабируемость
Это означает, что система может быстро и легко расширяться, чтобы справляться с большим объемом (горизонтальная масштабируемость) или добавлением новых функциональностей (вертикальная масштабируемость). Обычно мы отслеживаем время отклика, чтобы решить, нужно ли масштабировать систему.

👉 @bookflow
👍6
Настраиваем iptables с нуля

Защита сетевых соединений сейчас просто необходима буквально на каждом устройстве, подключенном к Интернет. Тем более, на сервере. Расскажем и покажем конфигурирование штатного сетевого экрана Linux через интерфейс Iptables.


IPTables: NAT и Port forwarding

Продолжаем разговор про основополагающий инструмент управления трафиком, IPTables. Углубимся в реализацию таких технологий, как NAT и port forwarding.

👉 @sys_adminos
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Как выполняются SQL-запросы👨‍💻

Порядок выполнения SQL запроса определяет последовательность выполнения различных частей запроса SQL. Этот порядок важен, потому что он определяет, как данные фильтруются, группируются и упорядочиваются.

Вот упрощенное объяснение порядка выполнения SQL:

• 𝐅𝐑𝐎𝐌/𝐉𝐎𝐈𝐍: Оператор FROM указывает таблицы, из которых будут извлечены данные. Клауза JOIN может использоваться для объединения данных из нескольких таблиц.
• 𝐖𝐇𝐄𝐑𝐄: Оператор WHERE используется для фильтрации данных на основе определенных условий.
• 𝐆𝐑𝐎𝐔𝐏 𝐁𝐘: Оператор GROUP BY используется для группировки данных по одной или нескольким колонкам.
• 𝐇𝐀𝐕𝐈𝐍𝐆: Оператор HAVING используется для фильтрации сгруппированных данных на основе определенных условий.
• 𝐒𝐄𝐋𝐄𝐂𝐓: Оператор SELECT указывает столбцы, которые будут возвращены в наборе результатов.
• 𝐃𝐈𝐒𝐓𝐈𝐍𝐂𝐓: Ключевое слово DISTINCT может использоваться для обеспечения возврата только уникальных строк в наборе результатов.
• 𝐎𝐑𝐃𝐄𝐑 𝐁𝐘: Оператор ORDER BY используется для сортировки набора результатов по возрастанию или убыванию.
• 𝐋𝐈𝐌𝐈𝐓: Оператор LIMIT может использоваться для ограничения количества возвращаемых строк.

👉 @bookflow
👍4
Проблема омографов в ударениях и как я ее решал

Это история о том, почему в опенсурсе нет TTS с нормальными ударениями, и как я пытался это исправить.

Обзор проблемы
Одной из немаловажных задач в синтезе речи является подготовка текста, а именно расстановка ударений в словах. Если по ударениям в обычных словах все более менее понятно (можно решать с помощью словарей), то с некоторыми "особенными" словами все немного сложнее. Эти особенные слова - омографы (за́мок/замо́к, ду́хи/духи́), а также ё-омографы (не́бо/нё́бо, все/всё́, пе́ред/перё́д, бе́рег/берё́г). Буква Ё часто используется в речи, но всё реже в текстах, потому найти качественные данные становится непростой задачей.

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

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

https://habr.com/ru/articles/767560/

👉 @bookflow
👍1
Ему не место на помойке: хакаем 15-летний электронный переводчик и пишем под него приложения

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

Я всегда любил находить новые применения стареньким девайсам, даже если обход защиты и разработка для них чего-то полезного занимала у меня некоторое время. И если с прошлыми моими статьями, где я привносил новую жизнь смартфонам на Android 2.3, а затем и на Android 1.5, всё понятно - девайсы получили возможность не только быть звонилками, но и вполне полноценными смартфонами, то в случае таких необычных девайсов, как электронные переводчики - всё гораздо интереснее, ведь по сути, это дешёвые альтернативы таким легендарным устройствам, как HP Jornada! Недавно я купил переводчик Ectaco за 1.500 рублей на Windows CE, обошел встроенную оболочку, написал программу, которая твикает реестр и даже портировал туда эмулятор NES. Интересно узнать об этом процессе во всех подробностях? Тогда добро пожаловать под кат!

https://habr.com/ru/companies/timeweb/articles/840418/

👉 @bookflow
👍5
Подборка Telegram каналов для программистов

Системное администрирование 📌

https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux

1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus

Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах

GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
https://t.me/game_devv Все о разработке игр

Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов

БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста

QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://t.me/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров

Английский 📌
https://t.me/UchuEnglish Английский с нуля

Математика 📌
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике

Excel лайфхак📌
https://t.me/Excel_lifehack

https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)

Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
👍1