C++ сложный и интересный язык, совершенствоваться в нем можно чуть ли не всю жизнь. В какой-то момент мне захотелось изучать его следующим образом: взять какой-то аспект языка, возможно довольно узкий, и разобраться с ним максимально глубоко и подробно. Такой подход в значительной степени был стимулирован замечательными книгами Скотта Мейерса, Герба Саттера и Стефана Дьюхэрста. Когда накопилось определенное количество материалов, решил познакомить с ними Хабровчан. Так появилась эта серия, которую я назвал «C++, копаем вглубь». Серия помечена как Tutorial, но ориентирована она все-таки не на начинающих, а скорее на intermediate уровень. Первая тема — это перегрузка в C++. Тема оказалась очень обширной и получилось три статьи. Первая статья посвящена перегрузке функций и шаблонов, вторая перегрузке операторов и третья перегрузке операторов new/delete
. Итак, начнем копать.
Пользователь
Все, что вы хотели узнать про области видимости в Python, но стеснялись спросить
Сегодня мы будем говорить о важных теоретических основах, которые необходимо понимать и помнить, чтобы писать грамотный, читаемый и красивый код. Мы будем вести речь об областях видимости переменных. Эта статья будет полезна не только новичкам, но и опытным программистам, которые пришли в Python из другого языка и хотят разобраться с его механиками работы.
Как работают реляционные базы данных (Часть 1)
Привет, Хабр! Представляю вашему вниманию перевод статьи
"How does a relational database work".
Когда дело доходит до реляционных баз данных я не могу не думать, что чего-то не хватает. Они используются везде. Существует множество различных баз данных: от небольшого и полезного SQLite до мощной Teradata. Но есть только несколько статей, которые объясняют, как работает база данных. Вы можете искать сами по запросу "howdoesarelationaldatabasework" («как работают реляционные базы данных») чтобы увидеть, как мало результатов. Более того, эти статьи — короткие. Если же вы ищете последние модные технологии (BigData, NoSQL или JavaScript), вы найдете больше углубленных статей, объясняющих, как они работают.
Являются ли реляционные базы данных слишком старыми и слишком скучными, чтобы их можно было объяснить вне университетских курсов, исследовательских работ и книг?
Занимательная мнемотехника: собираем слуховую память из зрительной
Довольно часто можно слышать, как кто-нибудь говорит про себя: «У меня плохая память». И если мы немного представляем, как работает память, то на этом месте мы должны задать вопрос: «А какая именно?» Дело в том, что существует много видов памяти, и они могут работать (а также ломаться) независимо друг от друга.
Моделирование бизнес-процессов как часть проекта по внедрению ERP-системы
Эти статьи не несут собой целью рассказать миру о том, какой я крутой реализатор или о том, что я лучше всех знаю как надо реализовывать такие проекты. Если вы скажете, что это «очередная статья неудачника, который ну прямо все понимает неправильно» — это тоже будет для меня ценностью, так как ожидаю, что кто-то поделится своими соображениями в комментариях.
Чистое зло Python
Темные силы не дремлют. Они пробираются в дивное королевство Python и используют черную магию, чтобы осквернить главную реликвию — чистый код. Однако опасны не только злые чары.
Сегодня я расскажу о страшных чудовищах, которые, возможно, уже обжились в вашем коде и готовы устанавливать свои правила. Здесь нужен герой, который защитит безмятежный мир от злобных тварей. И именно вы станете тем, кто сразится с ними!
Linux. Настройка клавиатуры
Для чего вообще специально настраивать клавиатуру?
Можно пользоваться и стандартными настройками, но иногда внесенные изменения дают возможность набирать быстрее (это, конечно, не слепая печать, но все же), совершать меньше ошибок, меньше переключать раскладку...
Почему я захотел изменить свою клавиатуру?
Во-первых, когда я начал использовать vim
как основной редактор, я понял, что не хочу каждый раз тянуться к ESC
. Кроме того, я писал в основном на питоне, поэтому ;
нажимал сильно реже, чем :
, а в vim
разница стала более явной.
Во-вторых, через некоторое время я стал пользоваться вимовскими комбинациями для навигации в браузере, дальше — тайловый оконный менеджер i3
, где они тоже использовались, и хотелось перейти на них везде (вместо обычных стрелок, например, в файловом менеджере).
Книга «Объектно-ориентированный подход. 5-е межд. изд.»
Именно поэтому Мэтт Вайсфельд советует выработать объектно-ориентированное мышление и только потом приступать к объектно-ориентированной разработке на конкретном языке программирования.
Эта книга написана разработчиком для разработчиков и позволяет выбрать оптимальные подходы для решения конкретных задач. Вы узнаете, как правильно применять наследование и композицию, поймете разницу между агрегацией и ассоциацией и перестанете путать интерфейс и реализацию.
Технологии программирования непрерывно меняются и развиваются, но объектно-ориентированные концепции не зависят от платформы и остаются неизменно эффективными. В этом издании основное внимание уделяется фундаментальным основам ООП: паттернам проектирования, зависимостям и принципам SOLID, которые сделают ваш код понятным, гибким и хорошо сопровождаемым.
За бесконечность
Пятый выпуск нашего подкаста “В бесконечность и далее”, который мы выпустили почти 1,5 года назад, мы назвали "За бесконечность" потому что в нём (начиная с 4й минуты) мы обсуждаем место освоения космоса в современном мире. Также, в этом выпуске мы говорим о том, когда высохнут океаны на Земле, о сложностях колонизации Марса, об отсутствии необходимости начинать космическую экспансию, а также о многом другом.
Наше обсуждение темы можно послушать (начиная с 3:30) в Youtube, в Яндекс музыка, в Google подкастах, на устройствах Apple и Android, на нашем сайте, на сайте-хостинге подкаста и много где ещё. А ниже краткая выжимка-стенограмма из нашего диалога.
- 4:10 У человечества есть как минимум три пути: самоуничтожение; адаптация планеты Земля под себя и себя под условия планеты; космическая экспансия
- 5:10 Через миллиард лет на Земле не останется океанов. Мы кратко обсуждаем куда денется вода и почему
- 6:40 А зачем человечеству космос? Один из вероятных ответов — незачем.
Пишем сервис одноразовых записок на Python
У некоторых людей возникает необходимость передать небольшие сообщения. Но как это сделать, если вы пользуетесь различными социальными сетями и мессенджерами, в безопасности передачи данных через которые вы сомневаетесь.
Некоторые люди для этого используют сервисы самоуничтожающихся шифрованных записок. Но тут встает вопрос можно ли доверять этим сервисам и действительно ли они уничтожают записки после прочтения.
Для решения этой проблемы мы напишем свой сервис самоуничтожающихся шифрованных записок на языке Python с использованием модуля cryptography и фреймворка Flask и развернем его на облачном сервисе Heroku.
Питонистический подход к циклам for: range() и enumerate()
for
в Python.Цикл
for
— это один из краеугольных камней программирования. С этими циклами будущие программисты знакомятся в самом начале учёбы и, после первого знакомства, пользуются ими постоянно.Книга «Изучаем Python: программирование игр, визуализация данных, веб-приложения. 3-е изд.»
Вы сможете не только максимально быстро его освоить, но и научитесь писать программы, устранять ошибки и создавать работающие приложения. В первой части книги вы познакомитесь с основными концепциями программирования, такими как переменные, списки, классы и циклы, а простые упражнения приучат вас к шаблонам чистого кода. Вы узнаете, как делать программы интерактивными и как протестировать код, прежде чем добавлять в проект.
Во второй части вы примените новые знания на практике и создадите три проекта: аркадную игру в стиле Space Invaders, визуализацию данных с удобными библиотеками Python и простое веб-приложение, которое можно быстро развернуть онлайн. Работая с книгой, вы научитесь: ∙ Использовать мощные библиотеки и инструменты Python: Pygame, Matplotlib, Plotly и Django ∙ Создавать 2D-игры разной сложности, которыми можно управлять с клавиатуры и мыши ∙ Создавать интерактивную визуализацию данных ∙ Разрабатывать, настраивать и развертывать веб-приложения ∙ Разбираться с багами и ошибками
Новое издание было тщательно переработано и отражает последние достижения в практиках программирования на Python. Первая часть книги была дополнена новой информацией о f-строках, константах и управлении данными. Во второй части был обновлен код проектов. Структура проектов и код стали более чистыми и понятными, теперь они используют всю мощь популярных библиотек и инструментов, таких как Plotly и Django.
Полезные советы по Python, которых вы ещё не встречали. Часть 2
Конфигурационные файлы в Python
Конфиги. Все хранят их по разному. Кто-то в .yaml
, кто-то в .ini
, а кто-то вообще в исходном коде, подумав, что "Путь Django" с его settings.py
действительно хорош.
В этой статье, я хочу попробовать найти идеальный (вероятнее всего) способ хранения и использования конфигурационных файлов в Python. Ну, а также поделиться своей библиотекой для них :)
Самый экономичный способ управления двигателями – преобразователь частоты
В промышленности свыше 60% электроэнергии потребляется асинхронными электроприводами – в насосных, компрессорных, вентиляционных и других установках. Это наиболее простой, а потому дешевый и надежный тип двигателя.
Технологический процесс различных производств в промышленности требует гибкого изменения частоты вращения каких-либо исполнительных механизмов. Благодаря бурному развитию электронной и вычислительной техники, а также стремлению снизить потери электроэнергии появились устройства для экономного управления электродвигателями различного типа. В этой статье как раз и поговорим о том, как обеспечить максимально эффективное управление электроприводом. Работая в компании «Первый инженер» (группа компаний ЛАНИТ), я вижу, что наши заказчики всё больше внимания уделяют энергоэффективности
Python (+numba) быстрее Си — серьёзно?! Часть 2. Практика
Это вторая часть статьи про numba. В первой было историческое введение и краткая инструкция по эксплуатации numba. Здесь я привожу слегка модифицированный код задачи из статьи про хаскелл «Быстрее, чем C++; медленнее, чем PHP» (там сравнивается производительность реализаций одного алгоритма на разных языках/компиляторах) с более детальными бенчмарками, графиками и пояснениями. Сразу оговорюсь, что я видел статью Ох уж этот медленный C/C++ и, скорее всего, если внести в код на си эти правки, картина несколько изменится, но даже в этом случае то, что питон способен превысить скорость си хотя бы в таком варианте, само по себе является примечательным.
Python (+numba) быстрее Си — серьёзно?! Часть 1. Теория
Давно собирался написать статью о numba и о сравнении её быстродействия с си. Статья про хаскелл «Быстрее, чем C++; медленнее, чем PHP» подтолкнула к действию. В комментариях к этой статье упомянули о библиотеке numba и о том, что она магическим образом может приблизить скорость выполнения кода на питоне к скорости на си. В данной статье после небольшого обзора по numba (часть 1) чуть более подробный разбор этой ситуации (часть 2).
Хаос зависимостей в Python
Мне удалось поговорить с Никитой Вороновым, больше известным как Gram или orsinium, и расспросить его о теме будущего доклада, болях плохих решений резолвинга зависимостей, о DepHell, pip, принципе first match wins, о Гвидо, Pipfile, инкрементальном развитии Python и будущем экосистемы.
Разработка чрезвычайно быстрых программ на Python
Автор статьи, перевод которой мы сегодня публикуем, предлагает доказать то, что те, кто называет Python медленным, неправы. Он хочет рассказать о том, как улучшить производительность Python-программ и сделать их по-настоящему быстрыми.
Подборка @pythonetc, декабрь 2019
Новая подборка советов про Python и программирование из моего авторского канала @pythonetc.
← Предыдущие публикации
Очевидно, что разные
asyncio
-задачи используют разные стеки. Можно в любой момент просмотреть их все, получив с помощью asyncio.all_tasks()
все выполняемые сейчас задачи, а с помощью task.get_stack()
получив стеки для всех задач.Information
- Rating
- Does not participate
- Location
- Томская обл., Россия
- Registered
- Activity