Обновить
3
0

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

Отправить сообщение

Python: коллекции, часть 1/4: классификация, общие подходы и методы, конвертация

Время на прочтение7 мин
Охват и читатели414K
Коллекция в Python — программный объект (переменная-контейнер), хранящая набор значений одного или различных типов, позволяющий обращаться к этим значениям, а также применять специальные функции и методы, зависящие от типа коллекции.

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

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

Для кого: для изучающих Python и уже имеющих начальное представление о коллекциях и работе с ними, желающих систематизировать и углубить свои знания, сложить их в целостную картину.

Будем рассматривать стандартные встроенные коллекционные типы данных в Python: список (list), кортеж (tuple), строку (string), множества (set, frozenset), словарь (dict). Коллекции из модуля collections рассматриваться не будут, хотя многое из статьи должно быть применимым и при работе с ними.

ОГЛАВЛЕНИЕ:


  1. Классификация коллекций;
  2. Общие подходы к работе с коллекциями;
  3. Общие методы для части коллекций;
  4. Конвертирование коллекций.
Читать дальше →

Умный дренажный колодец на ESP32: уведомление в телефон — вместо «сюрпризов» в унитазе, дешевле готовых решений в разы

Время на прочтение6 мин
Охват и читатели11K

Этот девайс больше всего актуален для тех, кто живёт в загородном доме и уже знаком с особыми «сюрпризами» в унитазе, когда дренажный колодец переполняется.

Вы бежите к колодцу, поднимаете тяжеленную крышку, а там... уже всё плавает. А через пару минут доходит осознание: насос благополучно проспал момент включения. Привет, внеплановые 20 минут откачки и «удобрение» участка самым неожиданным способом.

Я посмотрел в сторону готовых решений за 3000+ рублей (используют емкостной метод (измеряют точный уровень 0-100%), имеют качественный корпус, готовое приложение и гарантию), но обнаружил, на мой взгляд, подводные камни: мало отзывов — устройства довольно новые на рынке, закрытая система — нельзя ничего доработать под свои нужды.

А мне было нужно простое, как лопата, решение. Чтобы устройство оповестило меня: «Колодец полный, не желаешь ли включить насос? ПОЖАЛУЙСТА 😠» — и желательно в Telegram, где я точно замечу это сообщение.

Да ну, серьёзно?

Гайд по ориентации Wi-Fi антенн для роутеров и при чем тут пончики

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели24K

Привет Хабр! Меня зовут Алексей и я занимаюсь беспроводными технологиями. На написание этой статьи меня сподвиг комментарий уважаемого @NightFlight который обратил внимание, что многие пользователи ориентируют антенны у роутеров по типу ориентации «заячьи уши» \/ так, как это делали для комнатных телевизионных антенн. В этой статье вспомню немного теории, расскажу о разных типах антенн, поляризации, и о том как лучше ориентировать антенны у бытовых роутеров в зависимости от их количества и как ориентация может повлиять на beamforming.

Правильная ориентация антенн Wi-Fi роутера может существенно улучшить качество беспроводного соединения, увеличить скорость передачи данных и расширить зону покрытия сети. Согласно моим тестам, оптимизация расположения антенн способна повысить скорость соединения на 50-300%, а в некоторых случаях улучшить уровень сигнала на 2-4 дБ, что критически важно для устройств, находящихся на границе зоны покрытия. При неправильной ориентации, особенно при несовпадении поляризации передающей и приемной антенн, потери сигнала могут достигать 20 дБ, что фактически делает соединение невозможным.

Читать далее

Как написать простейшую нейросеть на python, простыми словами о сложном

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели18K

В мире Data Science написание нейронных сетей, кажется чем‑то очень трудоёмким, доступным для понимания лишь математикам с многолетним опытом. Многие руководства, начинаются со сложных объяснений backpropagation, градиентного спуска и т.п, от которых у новичков складывается впечатление, что написание нейросетей — им не по силам. В данной статье, я хочу развеять подобные убеждения и показать пример, написания простейшей нейронной сети на python. Мы не будем углубляться в теоретические основы высшей математики. Вместо этого, мы просто возьмем данные, напишем код, посмотрим на результат и проанализируем его.

Читать далее

Первый http сервер на С++, заметки для новичков

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели4.2K

Решил написать простенькую статейку по следам реализации небольшой программки на С++ под Виндоус, которая содержит в себе TCP сервер. Мы получаем от клиента http запрос. Соединение не защищенное.

На чем реализован клиент нам неизвестно: может на php (curl,socket,stream_contex_create,...), может на js (ajax), вообще может быть на чем угодно.

Надо задача реализовать http парсинг запроса и контента, выполнить задание (на каком-то подключенном к серверу оборудовании) и ответить клиенту о результате.

Примечание: автор реализует http сервер на устаревшем Qt4, используем QTcpServer. Но для http сервера это не принципиально.

Читать далее

Включаем функции сбора статистики в ESP32-arduino для PlatformIO

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели2.4K

При использовании arduino framework в PlatformIO нет возможности конфигурирования esp32 arduino core, больша́я часть функций по умолчанию отключена, а для изменения конфигурации предлагается вручную пересобирать SDK. Давайте пройдем этот квест.

Речь пойдет о функциях FreeRTOS vTaskGetRunTimeStats / vTaskList, но таким же образом можно изменить и другие опции sdkconfig.

Читать далее

«База» по метрикам в Prometheus

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели14K

Привет, Хабр! Меня зовут Глеб Типсин, я являюсь ведущим разработчиком продукта «Системы персонализации и геймификации» в SM Lab.

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

Материал подойдёт тем, кто только знакомится с мониторингом и хочет освоить «базу», а также тем, кто уже работает с Prometheus, но хочет "освежить" свои знания и узнать что-то новое.

Читать далее

История бюджетной автоматизации отопления в Home Assistant

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели13K

В этой статье хочу рассказать как я узнал что такое умный дом на примере управления отопительным котлом. Чтобы долго не подводить, скажу сразу, что статья о том, как мне удалось подключить электрический котел Protherm Ray 18, который работает по EBUS, к Home Assistant. Все сейчас работает хорошо, но некоторые проблемы еще не решил. О всем расскажу по порядку.

Читать далее

Home Assistant на Raspberry Pi 5

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели15K

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

Поскакали

Умный дом, опыт построения, бег по граблям (MajorDomo, Tasmota и Алиса)

Время на прочтение8 мин
Охват и читатели93K

Решил обобщить и систематизировать накопленный опыт в создании умного дома. Началось все с управления розетками (светом) на даче – если уехал и забыл выключить свет, можно через интернет выключить и спать спокойно. Потом появилось ограничение по мощности и желание автоматически реагировать на превышение мощности отключением маловажных потребителей типа чайника. Ну а дальше уже сложно остановиться. Климат, автономное электроснабжение, комфортный свет и все это - не вкладывая много денег, хотя если все посчитать..

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

Подробности тут

Объяснение Kafka на примерах из Factorio

Время на прочтение4 мин
Охват и читатели26K
Недавно я как обычно играл в Factorio после рабочего дня — и вдруг меня поразила удивительная мысль. Как много здесь аналогий с Apache Kafka!


Если у вас мало свободного времени, не скачивайте Factorio

Для тех, кто в последние годы путешествовал за пределами цивилизации, на всякий случай поясню: Factorio — это стратегия реального времени с открытым миром, где вы строите и оптимизируете цепочки поставок, чтобы запустить спутник и восстановить связь с родной планетой, а Kafka — это распределённая платформа потоковой передачи событий, которая обрабатывает асинхронные коммуникации надёжным способом.

Если человек вообще никогда не работал с потоковой платформой, то ему станет всё понятно на примерах из игры. Что ж, давайте начнём с нуля, изучим основные концепции Kafka — и немного повеселимся.
Читать дальше →

Консольные изображения ( от ЧБ до 24bit )

Время на прочтение4 мин
Охват и читатели9.2K

В данной статье будет рассмотрен прогресс от ЧБ картинки в консоли до 24 bit изображения в ней же
Чёрно белое -> 48 цветов -> 216 цветов -> 24 bit

Читать далее

Как прокачать свою продуктивность с помощью музыки?

Время на прочтение9 мин
Охват и читатели8.6K

Теме “Как повысить собственную эффективность” посвящено тысячи книг и статей, видеороликов и тренингов. И судя по тому, что материалов с каждым днем всё больше и больше, а запросы в гугл не прекращаются — тема сложная, и толком не решенная. Существует сотни подходов к решению, начиная от приёма лекарственных препаратов, заканчивая организацией своего рабочего дня. В этой статьи мы предлагаем довольно необычный способ повысить собственную эффективность — с помощью функциональной музыки.

Этот подход далеко не нов, еще в двадцатом веке в советском союзе пытались повысить эффективность труда заводских рабочий с помощью музыки например, знаменитый опыт на Пермском телефонном заводе. В Америке на широкую ногу развернулась компания “Muzak”, которая сначала писала плейлисты для рабочих на мебельной фабрике, а после — для магазинов, отелей и даже лифтов. Знаменитая расслабляющая музыка, которую мы слышим в кинофильмах, когда персонажи куда-то поднимаются — изобретение “Muzak”.

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

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

Читать далее

Регулярные выражения (regexp) — основы

Время на прочтение21 мин
Охват и читатели1.5M

Регулярные выражения (их еще называют regexp, или regex) — это механизм для поиска и замены текста. В строке, файле, нескольких файлах... Их используют разработчики в коде приложения, тестировщики в автотестах, да просто при работе в командной строке!

Чем это лучше простого поиска? Тем, что позволяет задать шаблон.

Например, на вход приходит дата рождения в формате ДД.ММ.ГГГГГ. Вам надо передать ее дальше, но уже в формате ГГГГ-ММ-ДД. Как это сделать с помощью простого поиска? Вы же не знаете заранее, какая именно дата будет.

Читать далее

Все уроки по ардуино

Время на прочтение5 мин
Охват и читатели300K
Однажды появилась необходимость собрать все уроки, обучающие материалы (tutorials) с habrahabr и geektimes в одном месте и немного их систематизировать. В этом сборнике обучаек представлены более 100 статей на тему ардуино с пометкой «tutorial», либо содержащие несложные для новичков проекты на ардуино, а также немного видеоуроков по смежным темам. Статьи разделены на 10 тематик по сферам применения собранных устройств. Также хочется напомнить, что весь обучающий материал, опубликованный на habrahabr и geektimes является интерактивным: в любой момент можно задать вопрос автору в комментариях к статье. Как правило авторы на них отвечают. Этот сборник будет дополняться новыми обучайками (tutorials) по мере их публикации.

Читать дальше →

UTF-8 кодировка в названиях и паролях Wi-Fi (Emoji)

Время на прочтение4 мин
Охват и читатели52K
В 2012 году появилась возможность использовать в названии сети Wi-Fi символы UTF-8. Первое, что приходит на ум — выделиться из серой массы и использовать в названии сети смайлики Emoji. А еще, можно сделать Emoji пароль, тогда друзьям можно смело сообщать: «Подключись к Wi-Fi сети бесплатный сыр, пароль: кружка пива и печенька».

Читать дальше →

MySQL шпаргалки

Время на прочтение3 мин
Охват и читатели834K
Часто, когда разрабатываешь сайт, замечаешь, как на одни и те же грабли наступают разработчики при проектировании базы данных.

Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL.

Читать дальше →

25 вопросов задаваемых на собеседовании системным администраторам Linux

Время на прочтение6 мин
Охват и читатели173K
Перевод Андрей А. Породько. Оригинал Pradeep Kumar · March 21, 2016 (http://www.linuxtechi.com/25-interview-questions-for-linux-administrator-job/).
Надеюсь кому-нибудь пригодится. Меня спрашивали про ps, top и overcommitment в kvm ;-)
Внимание! Много букв и нет картинок.
От переводчика. Пожалуйста, не пишите в комментариях что что-то можно сделать по-другому — это перевод. Когда вам зададут на интервью в RedHat подобный вопрос, у вас будет возможность проявить себя ;-)
Читать дальше →

Все, что Вы хотели знать о Chromecast или как сделать обычный телевизор чуть умнее за 35$

Время на прочтение12 мин
Охват и читатели280K

Вводная


Целью данного поста является актуализация информации о замечательном устройстве от Google, а именно — Chromecast.
В связи с последними обновлениями от Google, данное устройство получило намного больший функционал, чем описано ранее на Хабре в обзоре от zvic и обзоре от khoroshev.
По отзывам в сети, многие разочаровались в этом устройстве, у многих оно лежит в ящике, а многие просто избавились от него, т.к. не нашли ему применение.
Забегая вперед, скажу, что одно из главных достоинств устройства — проигрывание локальных файлов с телефона/планшета/компьютера, находящегося в одной Wi-Fi сети. Также можно стримить на телевизор онлайн-видео из различных программ.
Интересно? Тогда прошу под кат.
Читать дальше →

Сети для Самых Маленьких. Микровыпуск №5. FAQ по сетевым технологиям

Время на прочтение12 мин
Охват и читатели114K
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность