Читать дальше →
Сначала показывать
Книга: «Алгоритмы? Аха!»
6 мин
7.2K![image](https://webcf.waybackmachine.org/web/20240823070353im_/https://habrastorage.org/webt/v_/ig/d1/v_igd1lrte4kk1nkiosgc2npsd0.jpeg)
Зачем читать скучные описания алгоритмов и продираться через нагромождение формул? Практические примеры и забавные объяснения позволят моментально разобраться с самыми сложными задачами, а юмор и прекрасные иллюстрации не дадут вам «заснуть» над книгой. Вы словно читаете короткие истории или пытаетесь справиться с головоломкой, постигая при этом суть алгоритмов и ощущая их красоту.
В число алгоритмов, рассмотренных в книге, вошли различные методы сортировки, перебор, поиск в глубину и ширину, обход графов, четыре алгоритма поиска кратчайшего пути, два алгоритма минимального остовного дерева, алгоритмы определения вершин и ребер разреза, а также поиск наибольшего паросочетания в двудольных графах и многое другое.
+8
Книга: «Алгоритмы и структуры данных на Python»
21 мин
8.5K![image](https://webcf.waybackmachine.org/web/20240823070353im_/https://habrastorage.org/webt/ai/rp/ua/airpua_837hhg5tqspg7l6nwsii.jpeg)
Представьте, что вы не просто программируете, а создаете элегантные решения, обладая глубоким пониманием алгоритмов и структур данных. Откройте же мощь алгоритмического мышления с помощью Python. Разберитесь в алгоритмах и структурах данных с нуля до продвинутого уровня и применяйте знания в реальном мире.
Кем бы вы ни были — начинающим программистом, опытным разработчиком, желающим расширить знания, или специалистом с нетехническим образованием, интересующимся анализом данных, — книга поможет улучшить понимание и навыки решения задач.
+13
Книга: «PowerShell: практическая автоматизация»
20 мин
16K![image](https://webcf.waybackmachine.org/web/20240823070353im_/https://habrastorage.org/webt/g1/2-/6t/g12-6t9dskhrjwzzmjf-8b2_w8g.jpeg)
PowerShell — это язык для написания скриптов, инструмент, позволяющий программно управлять всем центром обработки данных. С его помощью можно создавать высокоэффективные и надежные системы автоматизации, пригодные для многократного использования и значительно повышающие производительность специалистов. Из этой книги вы узнаете, как проектировать, разрабатывать, организовывать и развертывать скрипты для автоматизации задач любого масштаба, от локальных серверов до корпоративных облачных платформ.
Вы узнаете, как создавать скрипты PowerShell для автоматизации локальных и облачных систем. Найдете советы по определению задач, которые стоит автоматизировать, по организации структуры скриптов и управлению ими, а также множество примеров кода с подробными пояснениями. Научитесь адаптировать уже готовые скрипты к новым условиям применения и упрощать работу специалистов не-технического профиля при помощи простых и понятных интерфейсов SharePoint.
+9
Как улучшить время сборки в iOS с помощью модуляризации
9 мин
658Перевод
![image](https://webcf.waybackmachine.org/web/20240823070353im_/https://habrastorage.org/webt/pg/1n/dz/pg1ndzbj7sf-n4tj3qe6gxqo2mw.png)
Большинство команд мобило понимают и ценят преимущества быстрой сборки. Возможность быстро компилировать и тестировать код означает ускорение разработки и итераций, что, в свою очередь, позволяет команде осуществлять доставку новых версий более регулярно и эффективно. Но на самом деле бывает сложно добиться стабильно быстрой сборки и внедрить долгосрочное решение, позволяющее поддерживать высокую скорость сборки по мере роста кодовой базы. Существует множество различных тактик, и если некоторые из них относительно тривиальны — например, уменьшение размера доставляемых ресурсов, — то другие могут быть гораздо более сложными и даже опасными (вспомните сомнительные трюки с компилятором)!
+8
Книга: «Программирование на Python с помощью GitHub Copilot и ChatGPT.»
34 мин
18K![image](https://webcf.waybackmachine.org/web/20240823070353im_/https://habrastorage.org/webt/pg/mh/o6/pgmho6epro3pagl00rwtwwtxi-g.jpeg)
В наши дни люди пишут компьютерные программы совсем не так, как раньше. Используя GitHub Copilot, можно простым языком описать, что должна делать программа, а искусственный интеллект тут же сгенерирует ее.
Узнайте, как создавать и улучшать программы на Python с помощью ИИ, даже если прежде вы не написали ни строчки компьютерного кода. Сэкономьте время на рутинном программировании и воспользуйтесь услугами ИИ, способного мгновенно воплотить ваши идеи в жизнь. Заодно выучите Python!
+17
Книга: «Безопасные и надежные системы: Лучшие практики проектирования, внедрения и обслуживания как в Google»
29 мин
1.4K![image](https://webcf.waybackmachine.org/web/20240823070353im_/https://habrastorage.org/webt/i_/xd/wj/i_xdwjd5h_-9rcehaduy0d2uqzm.jpeg)
Может ли быть надежной небезопасная система? Можно ли считать безопасной ненадежную систему? Безопасность имеет решающее значение для разработки и эксплуатации масштабируемых систем в реальных условиях, поскольку вносит важный вклад в качество, производительность и доступность продукта. В этой книге эксперты Google делятся передовым опытом, позволяющим разрабатывать масштабируемые и надежные системы, которые действительно будут безопасны.
Вам уже знакомы два бестселлера, написанные разработчиками из Google — «Site Reliability Engineering. Надежность и безотказность как в Google» и «Site Reliability Workbook: практическое применение», значит, вы понимаете, что только неуклонное следование жизненному циклу обслуживания позволяет успешно создавать, развертывать и поддерживать программные системы. Сейчас же мы предлагаем взглянуть на проектирование, реализацию и обслуживание систем с точки зрения практиков, специализирующихся на безопасности и надежности.
+11
Программируем микроконтроллер STM32 на Rust
8 мин
7.5KПеревод
Rust — отличный язык, но насколько он подходит для разработки встраиваемых систем? В этом посте будет подробно рассказано, как обустроить инструментарий для такой разработки. Кроме того, мы рассмотрим один удивительный аспект Rust, проявляющийся при разработке встраиваемых систем. Изучив этот пост, вы сможете приступать к собственным проектам в данной области.
![image](https://webcf.waybackmachine.org/web/20240823070353im_/https://habrastorage.org/webt/qb/c2/a0/qbc2a06wlg2qmrgj_r3_p-zppy8.jpeg)
![image](https://webcf.waybackmachine.org/web/20240823070353im_/https://habrastorage.org/webt/qb/c2/a0/qbc2a06wlg2qmrgj_r3_p-zppy8.jpeg)
+16
+12
Как устроены условные точки останова
9 мин
2.8KПеревод
Условные точки останова (conditional breakpoints) – исключительно полезный инструмент. Но всем известно, насколько они замедляют работу кода, так, что из-за этого некоторые даже бросают ими пользоваться. В Visual Studio в своё время удалось значительно улучшить ситуацию с ними, что не помешало пользователю @ryanjfleury высмеивать их крайнюю медлительность. Но даже у
Давайте разберёмся, как условные точки останова обычно реализуются в современных отладчиках, откуда в данном случае берутся проблемы с производительностью и что можно сделать, чтобы ускорить процесс.
raddbg
уходит около 2 секунд на выполнение 10000 итераций простого цикла, если внутри него расставлены точки останова. Для сравнения: без точек останова тот же самый цикл выполняется менее чем за 1 мс. Почему же так чертовски медленно? Давайте разберёмся, как условные точки останова обычно реализуются в современных отладчиках, откуда в данном случае берутся проблемы с производительностью и что можно сделать, чтобы ускорить процесс.
Обратите внимание: в этой статье речь идёт об отладчиках, работающих с нативным кодом – например, GDB, LLDB, Visual Studio C++. Отладчики для управляемых и скриптовых языков работают примерно так же, но могут отличаться детали реализации.
+10
Книга: «Data mesh в действии»
17 мин
3.6K![image](https://webcf.waybackmachine.org/web/20240823070353im_/https://habrastorage.org/webt/cp/35/au/cp35aufdrilnzyytjwcfubt2lh4.jpeg)
Потребность эффективно хранить большие объемы данных и обращаться к ним стала одной из ключевых потребностей любого бизнеса. Сетка данных (data mesh) — это новый способ децентрализовать управление данными, радикально повышая их безопасность и доступность. Хорошо спроектированная сетка данных позволяет потреблять данные в режиме самообслуживания и помогает избавляться от узких мест, которые свойственны монолитным архитектурам данных.
Пора разобраться с тем, как на практике децентрализовать данные и организовать их в эффективную сетку. Сперва вы создадите простейший жизнеспособный продукт данных, а потом, продвигаясь от главы к главе, преобразуете его в самообслуживаемую платформу данных. Вам наверняка понравятся предложенные в книге «ползунки», с помощью которых можно будет настроить сетку под ваши потребности.
Книга предназначена для профессионалов в области данных и не привязана к конкретным программным стекам или платформам данных.
+9
Создание масштабируемых приложений при помощи Kafka и реактивного программирования
12 мин
8.9KПеревод
![image](https://webcf.waybackmachine.org/web/20240823070353im_/https://habrastorage.org/webt/ps/aa/pa/psaapa9urdawcj_z9p_5z2w8eyq.png)
Введение
В современном цифровом мире критически важна возможность обрабатывать данные в режиме реального времени и масштабировать приложения. Для этого хорошо подходит Kafka – платформа для распределённой потоковой обработки событий, особенно, если сочетать её с реактивным программированием. В данной статье будет рассказано, как создавать реактивные приложения при помощи этого инструментария.
+15
Как разработать онлайновый компилятор кода при помощи Java и Docker
12 мин
3.1KПеревод
![image](https://webcf.waybackmachine.org/web/20240823070353im_/https://habrastorage.org/webt/e6/dk/2c/e6dk2c_0au6rmsrq7wtejn9uxce.jpeg)
Вы когда-нибудь задумывались, как устроены такие платформы как Codeforces и LeetCode? Как именно они компилируют и выполняют код, поступающий от множества пользователей и проверяют его в тестовых кейсах? Как определяют эффективность алгоритмов?
В этой статье мы подробно разберём, как выстроить высокоэффективную платформу для решения задач.
Исходный код к этой статье выложен на Github в этом репозитории
+7
Книга: «Фулстек-тестирование»
27 мин
7.8K![image](https://webcf.waybackmachine.org/web/20240823070353im_/https://habrastorage.org/webt/bw/ho/om/bwhoomutje9u6ifnudp6fpcut_c.jpeg)
Тестирование — важнейшая задача для создания высококачественного программного обеспечения. Разработчики и инженеры по качеству найдут в книге всеобъемлющий материал по тестированию в десяти различных категориях. Познакомьтесь с соответствующими стратегиями и понятиями и получите практические знания, применимые как при разработке, так и при тестировании мобильных и веб-приложений.
Автор предлагает примеры использования более чем 40 инструментов, которые вы сможете немедленно опробовать. Профессионалы и новички получат навыки тестирования производительности, защищенности и доступности, а также поближе познакомятся с особенностями исследовательского, межфункционального тестирования, тестирования данных и мобильных приложений, автоматизации тестирования, и многими другими вопросами, связанными с тестированием. Руководство поможет вам справиться со сложной задачей поддержания качества программного обеспечения в процессе его разработки.
+14
Сила gRPC в облачных окружениях
7 мин
2.7KПеревод
При разработке исходно облачных (cloud-native) приложений требуется наладить гладкую и эффективную коммуникацию между различными компонентами. Для начала давайте рассмотрим весь спектр инструментов от XML до gRPC, которые обеспечивают и улучшают эти критически важные взаимодействия.
XML (часто с применением SOAP):
<order>
<bookID>12345</bookID>
<quantity>2</quantity>
<user>JohnDoe</user>
</order>
+7
+13
Книга: «Фактор Ч, или Как не угробить хорошую идею»
12 мин
1.6K![image](https://webcf.waybackmachine.org/web/20240823070353im_/https://habrastorage.org/webt/tp/ng/m6/tpngm6nk0rs9lbnpin8totfebwk.jpeg)
Почему некоторые инновационные идеи «выстреливают», а другие — нет. Что им мешает? Или, точнее… кто? Ответ, дорогой друг, прост: ты — Человек! Ты ленишься и выбираешь привычное и знакомое, боишься и сопротивляешься переменам.
Авторы этой книги талантливо объясняют истоки «сил трения» и рассказывают о том, как их преодолеть, чтобы новым продуктам, услугам или пользовательскому опыту сопутствовал заслуженный успех на сегодняшнем высококонкурентном рынке.
+8
Проблема энтропии в циклической Вселенной
24 мин
13KПривет, Хаброжители!
Рады сообщить, что у нас вышла новая книга Николая Горькавого «Пульсирующая Вселенная»
Предлагаем ознакомиться с 13 главой данной книги.
Энтропию можно назвать характеристикой мертвой энергии. Энергия низкоэнтропийной системы является «живой силой», которая может преобразовывать систему и вызывать в ней новые структуры. Например, перепад температур в атмосфере вызывает ветер, который в свою очередь порождает волновую структуру на поверхности океана (рис. 7). Если температура в замкнутой системе выровняется, то ее суммарная энергия не изменится, но эта энергия станет бесплодной, «мертвой». Именно для ее характеристики и служит энтропия, которая становится максимальной для замкнутой системы с одинаковой температурой. Термин «мертвая энергия» не просто художественный образ, недаром Клаузиус пророчил остывающей Вселенной «тепловую смерть».
В классической термодинамике, не учитывающей гравитацию и подчиняющейся закону сохранения энергии, тепловая смерть замкнутой Вселенной неизбежна. Для анализа космологических моделей Ричарду Толмену в 1934 году пришлось отклониться от классической термодинамической модели Клаузиуса, потому что гравитирующие системы ведут себя по-особенному. Например, если рассмотреть поведение газа в комнате при отсутствии любых внешних источников (или стоков) энергии, то через некоторое время температура газа в различных частях комнаты сравняется.
Рады сообщить, что у нас вышла новая книга Николая Горькавого «Пульсирующая Вселенная»
Предлагаем ознакомиться с 13 главой данной книги.
Энтропию можно назвать характеристикой мертвой энергии. Энергия низкоэнтропийной системы является «живой силой», которая может преобразовывать систему и вызывать в ней новые структуры. Например, перепад температур в атмосфере вызывает ветер, который в свою очередь порождает волновую структуру на поверхности океана (рис. 7). Если температура в замкнутой системе выровняется, то ее суммарная энергия не изменится, но эта энергия станет бесплодной, «мертвой». Именно для ее характеристики и служит энтропия, которая становится максимальной для замкнутой системы с одинаковой температурой. Термин «мертвая энергия» не просто художественный образ, недаром Клаузиус пророчил остывающей Вселенной «тепловую смерть».
В классической термодинамике, не учитывающей гравитацию и подчиняющейся закону сохранения энергии, тепловая смерть замкнутой Вселенной неизбежна. Для анализа космологических моделей Ричарду Толмену в 1934 году пришлось отклониться от классической термодинамической модели Клаузиуса, потому что гравитирующие системы ведут себя по-особенному. Например, если рассмотреть поведение газа в комнате при отсутствии любых внешних источников (или стоков) энергии, то через некоторое время температура газа в различных частях комнаты сравняется.
+17
Программисты не должны доверять никому, даже себе
7 мин
1.7KПеревод
Программисты должны быть параноиками.
Писать правильный код сложно, а проверить его корректность невозможно. Вот несколько причин, почему:
- “Я дважды проверил код”
- “Код прошел тесты”
- “Ревьюер одобрил мой код”
Писать правильный код сложно, а проверить его корректность невозможно. Вот несколько причин, почему:
- Универсальность: Даже если ваш код работает правильно один раз, будет ли он работать так во всех случаях, на всех машинах, во всех ситуациях?
- Ложноположительные результаты: Неудачные тесты указывают на наличие ошибок, но пройденные тесты не обещают их отсутствия.
- Отсутствие уверенности: Вы могли бы написать формальное доказательство корректности вашего кода, но теперь вы должны задаться вопросом, верно ли это доказательство. Вам нужно будет подтвердить доказательство. Эта цепочка проверки доказательств никогда не закончится.
+3
Книга: «Hypermedia-разработка. htmx и Hyperview»
25 мин
2K![image](https://webcf.waybackmachine.org/web/20240823070353im_/https://habrastorage.org/webt/6d/ku/py/6dkupykx_xxjdlovpxdafzxo4mg.jpeg)
Опытные программисты, выросшие вместе со Всемирной паутиной, не уделяли идеям гипермедиа особого внимания. А молодые веб-разработчики не знают ничего, кроме одностраничных приложений и фреймворков, используемых для их создания.
Устаревшая технология, подходящая только для создания документов со ссылками, текстом и графикой? Ничего подобного! В вашем распоряжении — эффективная технология для построения приложений.
Познакомьтесь с новыми инструментами — htmx и Hyperview, которые используют гипермедиа в качестве системной архитектуры. Научитесь строить сложные пользовательские интерфейсы с использованием гипермедиа как базовой технологии: на базе htmx для веб-приложений и на базе Hyperview для мобильных. А затем исследуйте прикладные современные подходы к построению веб-приложений, в которых эта архитектура используется.
Гипермедиа-управляемая архитектура подойдет не для каждого приложения, но повышенная гибкость и простота станут огромным преимуществом. Даже если этот подход не улучшит вашу программу, вам стоит понять его суть, сильные и слабые стороны и отличия от традиционно применяемой методики. Веб-среда росла быстрее, чем любая другая распределенная система в истории, и веб-разработчики должны уметь использовать сильные стороны базовых технологий, которые сделали возможным этот рост.
+12