Pull to refresh
-3
0

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

Send message

Автоматизируем теплицу на Linux

Reading time5 min
Views15K

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

Меня пригласили в биотехнологический комплекс РУП "Институт овощеводства" под Минском, где выращивают салат, базилик, лук, перец, огурцы, голубику и картофель, и где реализовано несколько проектов автоматизации. Моим гидом был Александр из LedFarm.by, отвечавший за светодиодное освещение.

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

Читать далее
Total votes 14: ↑12 and ↓2+15
Comments32

Книга «Python без проблем: решаем реальные задачи и пишем полезный код»

Reading time18 min
Views34K
image Привет, Хаброжители!

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

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

Вы узнаете, как:
  • запускать программы на Python, работать со строками и использовать переменные;
  • писать программы, принимающие решения;
  • повысить эффективность кода с помощью циклов while и for;
  • использовать множества, списки и словари для организации, сортировки и поиска данных;
  • разрабатывать программы с использованием функций и методики нисходящего проектирования;
  • создавать алгоритмы поиска и использовать нотацию «О большое» для разработки более эффективного кода.

К концу книги вы не только овладеете Python, но и научитесь тому типу мышления, который необходим для решения задач. Языки программирования приходят и уходят, а подходы к решению проблем останутся с вами навсегда!
Читать дальше →
Total votes 8: ↑7 and ↓1+10
Comments6

Как стиральная машина управляет двигателем. Часть I — подключение двигателя и алгоритм стабилизации

Reading time8 min
Views55K


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

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

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

Погода на дворе не очень, очередной прототип отправляется на опытную эксплуатацию, почему бы не рассказать о чём то интересном? Давно я не писал на Хабр!
Почему двигатель, почему стиральные машины?
Ответ под катом
Total votes 90: ↑88 and ↓2+101
Comments284

Исчерпывающее руководство по множествам в Python

Reading time10 min
Views71K

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

Читать далее
Total votes 16: ↑15 and ↓1+24
Comments9

Выкуси, Telegram Premium — бот-конвертер голосовых сообщений для обхода ограничений (Java, Spring, вебхуки, ffmpeg)

Reading time17 min
Views13K

Это третья статья в моей серии "для самых маленьких" - первая была посвящена "классическому" Telegram-боту, наследуемому от TelegramLongPollingBot, вторая - боту на вебхуках на Spring с блекджеком и ш БД Redis и клавиатурами.

Для кого написано

Если вы ни разу не писали Telegram-ботов на Java с использованием вебхуков и только начинаете разбираться — эта статья для вас. В ней подробно и с пояснениями описано создание реального бота, автоматизирующего одну очень простую функцию. Можно использовать статью как мануал для создания скелета своего бота, а потом подключить его к своей бизнес-логике.

Я пытаюсь писать как для себя, а не сразу для умных — надеюсь, кому-нибудь это поможет быстрее въехать в тему.

Предыстория

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

Большинство преимуществ Telegram Premium не вызывают никаких вопросов, но запрет на отправку себе голосовых сообщений - это низко, Telegram.

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

На дно!
Total votes 15: ↑15 and ↓0+15
Comments21

Расширенное использование SSH

Reading time10 min
Views13K

Протокол SSH v.2 является важной составляющей безопасных компьютерных сетей. Он криптографически надёжен, быстр, универсален и широко распространён. Многие крупные облачные провайдеры даже не пытаются заменить его каким-либо альтернативным, собственным решением, что подчёркивает его силу. 

В этой статье я хочу продемонстрировать некоторые интересные и универсальные возможности протокола SSH и его реализации OpenSSH. 

Читать далее
Total votes 23: ↑20 and ↓3+20
Comments6

Управление учетными записями в Linux. Часть 3. Различные способы поднятия привилегий

Reading time6 min
Views8.8K

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

Читать далее
Total votes 11: ↑9 and ↓2+8
Comments3

Наглядное руководство по SSH-туннелям

Reading time8 min
Views153K

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

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

Читать далее
Total votes 75: ↑75 and ↓0+75
Comments17

Почему вам не нужен опыт управления для роли руководителя

Reading time4 min
Views4.5K

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

Читать далее
Total votes 14: ↑6 and ↓8+1
Comments1

Заблуждения программистов о почтовых адресах

Reading time15 min
Views47K
У всех легковых автомобилей четыре колеса. Исключение из этого правила — Reliant Robin.

Если у автомобиля больше четырёх колёс, то это грузовик, автобус или вообще автопоезд. Исключение найдётся и здесь: Mercedes-AMG G 63 6x6.

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

Заблуждение 0. Для доставки нужны адрес и имя


В мае 2016 года издание Skessuhorn рассказало трогательную историю: семья фермеров в Хоуларе на северо-западе Исландии получила письмо, на котором не были указаны ни имена получателей, ни адрес, по которому его нужно было доставить. Письмо отправил зарубежный турист, который гостил в посёлке Хоулар и точного адреса не знал. Вместо этого на конверте было изображено местоположение получателя с кратким описанием места, вместо имени — «датчанка, которая работает в супермаркете в Будардалюре».

Адрес называл точно только страну (Исландия) и посёлок (Будардалюр). Дальше шло текстовое описание: лошадиная ферма, где живёт исландская/датская семья с тремя детьми и большим количеством овец. Письмо турист отправил из столицы Исландии, Рейкьявика.


Skessuhornið
Читать дальше →
Total votes 134: ↑131 and ↓3+166
Comments257

Управление учетными записями в Linux. Часть 1. Хранение учетных данных

Reading time3 min
Views24K

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

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

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

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

Читать далее
Total votes 18: ↑14 and ↓4+11
Comments3

Разбираемся с условными брейкпоинтами в C++

Reading time4 min
Views5.4K

Для большинства случаев дебаггинга вам должно с головой хватать стандартных точек останова (breakpoints или брейкпоинтов). Но иногда кода для проверки, объектов или случаев попросту слишком много. Что делать, если мы хотим отфильтровать код, генерирующий точку останова? Прошу вас поприветствовать условные точки останова!

Читать далее
Total votes 15: ↑8 and ↓7+4
Comments7

Уроки компьютерного зрения. Оглавление

Level of difficultyEasy
Reading time2 min
Views35K

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 1.

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 2.

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 3.

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 4.

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 5.

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 6.

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 7.

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 8.

Читать далее
Total votes 15: ↑13 and ↓2+14
Comments4

Превращаем старый телефон на Android в веб-сервер

Reading time4 min
Views47K

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

У меня залежался собиравший пыль старый Motorola G5 Cedric, поэтому я решил сделать с ним что-нибудь, и теперь на нём работает веб-сервер Puma с простым веб-приложением на Sinatra.

Читать далее
Total votes 39: ↑39 and ↓0+39
Comments61

Код доступа Termux

Reading time62 min
Views164K

Лонгрид посвящается любителям CLI в знак солидарности лучшего эмулятора терминала на OS Android, который испытывает «кошмарную» монополию Google.

В данной работе вербализация пойдет о нижеизложенном со всеми остановками:

[+] глубоко настраивать средý (флэшка, виджет, стиль, зеркала и конфиги);
[+] управлять серверами через ssh;
[+] скачивать ролики/отрывки с YouTube;
[+] нарезать видео, создавать gif;
[+] воспроизводить текст/музыку/радио прямо в CLI;
[+] нарезать mp3-бигфайлы (аналогов приложений на Android попросту нет), и склеивать аудиофайлы;
[+] редактировать документы;
[+] проверять орфографию: как текстовых файлов, так и различных статей по url, например, проверка орфографии статей на Habr-e;
[+] генерировать словари различной сложности со скоростью Си;
[+] создавать блок-схемы; графики; облако слов и даже 3D-визуализацию;
[+] заниматься Data Science на Android-мощностях;
[+] тестировать интернет соединение/интерфейс (требуется частично Root);
[+] сниффить/сканировать сети (требуется частично Root);
[+] запускать и управлять TOR-сетью (deleted);
[+] управлять приложениями и процессами в ОС Android (требуется Root);
[+] анализировать память;
[+] защищать любые данные от случайного редактирования/уничтожения (требуется Root);
[+] автоматически шифровать и бэкапить по ночам любые данные в своё облако;
[+] чекать username(s) и e-mail(s);
[+] проводить аудит безопасности (об опасности сердить скрипт-кидди с их любимыми: «сниффить, парсить, брутить, дампить, сканить, фишить»);
[+] работать с электропочтой;
[+] изучать UNIX/shell;
[+] программировать на Android (на выбор пользователя. В Termux портированы несколько интерпретируемых и компилируемых языков программирования);
[+] запускать python/php/npm скрипты в т.ч. в одно касание с рабочего стола;
[+] работать с криптографией, стеганографией и цифровыми подписями;
[+] парсить данные;
[*] и даже запускать GNU-GUI-софт из CLI.

Погрузиться в GNU культуру
Total votes 28: ↑27 and ↓1+28
Comments46

8 практических советов как сделать тренировки частью привычной жизни и перестать ненавидеть физкультуру. Часть вторая

Reading time8 min
Views31K

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

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

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

Разберем еще несколько, достаточно важных, рекомендаций, которые вы сможете применить немедленно. И в конце, по традиции вас ждет чек-лист для самоконтроля. И велкам комментировать!

Читать далее
Total votes 19: ↑11 and ↓8+8
Comments114

Моя шпаргалка по Скраму для подготовки к интервью. Часть 1

Reading time11 min
Views43K

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

Читать
Total votes 15: ↑11 and ↓4+8
Comments18

Как выбрать мойку высокого давления на примере Karcher K5 Compact

Reading time4 min
Views15K
Что нужно для полного счастья автолюбителю? Не секрет: мойка высокого давления. И чем мощнее мойка, и чем больше можно подключить различных аксессуаров, тем лучше результат и интереснее с ней работать. Для самостоятельной бесконтактной мойки есть смысл выбрать одну из профессиональных моек высокого давления, например, Karcher K5 Compact. Это одна из самых сбалансированных моделей с высоким показателем соотношения цены и качества. Эта модель поможет не просто справиться с грязью, а обеспечивает реально высокое значение уровня давление воды, но и позволяет использовать различные насадки (струйные насадки, прочистные форсунки для водостоков, телескопические штанги для фасадов и другие насадки, расширяющие сферу применения мойки высокого давления).


Читать дальше →
Total votes 34: ↑2 and ↓32-30
Comments5

Как превратить пишущую машинку в терминал Linux

Reading time5 min
Views15K

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

Читать далее
Total votes 31: ↑29 and ↓2+28
Comments17

Что читать разработчику C++

Reading time6 min
Views28K

В этой подборке — не только классические рекомендации книг для C++ программистов. Обычно советуют издания про паттерны, развитие стандарта или успехи большой компании. Но за всем этим изобилием «экспертных советов» и best practices теряется одна простая мысль: язык программирования — это средство выражения мысли от одного разработчика другому, а также средство описания пользовательского API в самом широком смысле.

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

Первые 5 книг этой подборки — в меньшей степени про технику, в большей степени об осознанности деятельности C++ программистов любого уровня. Остальные — «золотой фонд» классической литературы для C++ разработчиков.

Читать далее
Total votes 95: ↑85 and ↓10+76
Comments16

Information

Rating
Does not participate
Location
Томская обл., Россия
Registered
Activity