Search
Write a publication
Pull to refresh
4
0
Send message

Осуществление разных способов связи между модулями esp32

Reading time9 min
Views38K

Микроконтроллер esp32 примечателен многим, однако его наиболее известной характеристикой (которая, кстати, вполне себе «перевернула» рынок в своё время) является встроенная возможность осуществления связи по bluetooth и wi-fi. Эти способы коммуникации позволяют микроконтроллеру осуществлять как скоростную связь с устройствами, так и энергосберегающую. Именно об этих способах мы и поговорим в этой статье.
Читать дальше →

Устаревшие элегантные ругательства на английском

Reading time6 min
Views21K

Привет, Хабр! Сегодня у нас очередной материал из ругательной эпопеи. Мы знаем, как вы их любите. 

В истории английского есть целая куча устаревших оскорблений, которые уже почти не используют. Они устарели, но от этого не потеряли остроты и элегантности. Расскажем вам именно о таких словах. Забудьте о набивших оскомину fuck и shit — ругайтесь как настоящий лорд.

Читать далее

Python — серьезный язык для разработки backend

Reading time13 min
Views76K

Всем привет! Меня зовут Аникин Денис, я тимлид в команде Chat в Райффайзенбанке. А также представитель внутреннего Python-сообщества, так называемый «community lead» (об этом как-нибудь в другой раз). В этой статье я хотел поговорить про отношение к Python среди разработчиков и обсудить все основные претензии, которые очень давно следуют за языком по пятам.

Читать далее

Григорий Остер — Вредные советы для учителей программировать

Reading time15 min
Views29K

Есть у человека такой замечательный перк. Он может обучить другого человека чему-то полезному. Да, конечно, некоторые животные тоже так могут делать, но им далеко до того грандиозного масштаба, с которым мы обучаем друг друга. Мы это дело поставили на поток и проворачиваем в таких объёмах, что тут можно только позавидовать.

Доводилось ли Вам кого-нибудь учить?

Что? Вас уже корёжит и передёргивает от одного только упоминания этого мероприятия? Вы постоянно вспоминаете о том самом стажёре, который был настолько туп, что Вы просто не могли себя сдержать?

Кто-то обвалил собранную базу данных, потому что не увидел разницы между rm -rf ./old и rm -rf . /old?

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

Заходите, поговорим.
Читать дальше →

Личный опыт иммиграции, или Чего не хватает в Канаде инженеру

Reading time15 min
Views54K
Канада давно заслужила имидж immigration-friendly. Наверняка у вас найдутся знакомые знакомых, кто туда переехал и живёт по сей день. Но так ли всё радужно в Стране кленового листа — мы разузнали у инсайдера.

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


Приятного чтения!

REST, что же ты такое? Понятное введение в технологию для ИТ-аналитиков

Reading time17 min
Views401K

Проектирование и работа с REST-сервисами стали повседневными задачами для многих аналитиков. Однако мы часто встречаемся на работе с различными или даже противоречащими друг другу трактовками таких понятий, как REST, RESTful-сервис, RESTAPI.

Сегодня мы разберём, какие принципы вложил в парадигму REST её автор и как они могут помочь нам при проектировании систем.

Выясним, почему существует терминологическая путаница вокруг REST и как нам научиться лучше понимать коллег.

Поговорим о том, как связаны HTTP и REST. А также почему REST противопоставляют SOAP.

Читать далее

Две крайности перевода

Reading time7 min
Views8.1K

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

Конечно, в любой книге главное — это автор. Именно он её придумал и написал, именно ради его идей мы покупаем и читаем книгу. Но автор сочинял её на другом языке, а это — не только другие, незнакомые слова, но ещё и другой образ мысли, другой контекст, другая культура.

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

Читать далее

Bluetooth Low Energy: подробный гайд для начинающих. Bluetooth Mesh

Reading time16 min
Views24K

Внедрение стандарта BLE в 2010 году привело к быстрому росту вариантов использования устройств интернета вещей, таких как сенсоры, носимые устройства, портативные медицинские инструменты и прочие. В то же время, большим недостатком BLE, существующим с момента его внедрения, была невозможность организации ячеистых сетей, когда множество устройств могут посылать друг другу сообщения и ретранслировать их при необходимости на другие устройства в сети. Ситуация изменилась в июле 2017 года, когда Bluetooth SIG выпустила стандарт Bluetooth Mesh.

В этой главе мы рассмотрим наиболее важные основные понятия, чтобы облегчить начало вашего пути в изучении Bluetooth Mesh.

Читать далее

Bluetooth Low Energy: подробный гайд для начинающих

Reading time16 min
Views90K

Создание кастомного сервиса и тем более клиента Bluetooth Low Energy – прогулка по граблям с завязанными глазами. По крайне мере так было для меня 4 года назад, когда я только начинал работать с BLE-устройствами. Сейчас почти каждый мой проект предусматривает использование этого протокола, поэтому в свое время пришлось в нем долго и мучительно разбираться. 

Разложить все по полкам помогла книга Мохаммада Афане "Intro to Bluetooth Low Energy" и серия постов на Novel Bits. Лично для меня эта книга стала настоящим открытием. Изначально я делал ее перевод на русский для своих коллег, не имеющим опыт работы с BLE. С согласия автора (огромное ему спасибо) решил опубликовать свою работу здесь. Надеюсь, перевод окажется полезным.

Это первая часть перевода (всего их будет 5), которая рассказывает, что такое BLE, ее возможности и отличия от Bluetooth Classic и описывает архитектуру протокола.

Читать далее

Субботник в эдеме — история ботаники. Часть I

Reading time13 min
Views6.1K

История ботаники, как и история зоологии, не украшена возвышенными героическими поступками и гениальными прозрениями. Зародившись как сугубо прикладная наука, со временем она превратилась в широкую отрасль естественнонаучных знаний. Ботаника берёт своё начало в древней Греции. Её основателем является ученик Аристотеля Теофраст. Однако обо всём по порядку.

Читать далее

Архитектура Вселенной, часть 2: Относительность

Reading time32 min
Views26K

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

Оба этих понятия настолько самоочевидны, что когда мы пытаемся дать им определение, то сталкиваемся с огромными трудностями и можем выдавить из себя только что-то вроде: "ну, пространство - это то, в чём все находится, а время - ну, оно течёт". Мы можем попробовать описать время, как процесс, но мы тут же натолкнемся на объяснительную рекурсию, ведь процесс - это то, что проистекает во времени. Но может быть все-таки существует лучшее определение времени?

Давайте посмотрим на то, что пишет о времени Википедия:

Время - это форма протекания физических и психических процессов, условие возможности изменения

Звучит даже хуже, чем "оно течёт". Если моя маленькая дочка спросит меня, что такое время, я точно не стану отвечать ей такими словами. Но даже такое запутанное объяснение оказывается лучше, чем определение пространства из Википедии:

Пространство -  трёхмерное пространство нашего повседневного мира.
Трёхмерное пространство - геометрическая модель материального мира.

Получается какая-то рекурсия: пространство - это геометрическая модель мира в мире. Видимо, проблемы с формулировками есть не только у меня. Почему же так трудно дать определение этим понятиям?

Читать далее

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

Reading time34 min
Views30K
Если первая часть моего повествования заканчивалась поступлением в Военную орденов Ленина, Октябрьской Революции и Суворова академию им. Ф. Э. Дзержинского (сокращённое название ВА им. Ф.Э. Дзержинского, ВАД или просто Дзержинка), то вторая часть закончилась отправлением поезда «Москва-Рига», в котором ехал я. Логотип третьей части возвращает меня в годы моего становления как программиста.

I. 649-й отдельный пункт разведки радиоизлучений космического пространства

Итак, промозглой осенью 1976 года я прибыл в Ригу. В Риге пересел на поезд до города Вентспилс. Прибыв в Вентспилс, я зашёл к коменданту станции, где мне показали машину, которая поедет в часть. Оказалось, что каждый день здесь дежурила машина из гарнизона Вентспилс-8. Старшим машины был прапорщик, который довёз меня до части и помог устроиться в гостинице. Была уже ночь. Всю дорогу справа и слева от нас был хвойный лес. Для себя я сразу определился с названием – прибалтийская тайга. Я понял, что меня не обманули, когда говорили, что я буду служить в глухом лесном месте:
Читать дальше →

Расширения Chrome для программистов и сочувствующих

Reading time6 min
Views34K

На Хабре уже есть посты в духе «10 браузерных расширений, которые нужны КАЖДОМУ УВАЖАЮЩЕМУ СЕБЯ РАЗРАБОТЧИКУ». Но в них меня смущает то, что там вперемешку совсем разные вещи для разных людей. От React Developer Tools до съёмки полностраничных скриншотов — и всё это просто списком через запятую.

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

Разумеется, в комментариях приветствуются дополнения, мне знакомо далеко не всё.

Читать далее

Самый полный чек-лист для защиты от мошенников

Reading time17 min
Views167K

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

Читать далее

Тёмный маршрутизатор из Raspberry Pi

Reading time3 min
Views26K

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

Читать далее

Django Admin с миллионами записей — 11 практик оптимизаций для начинающих

Reading time8 min
Views26K

Django — самый популярный Python web-framework. За больше чем 10 лет оброс огромным слоем возможностей. Среди них можно выделить — Django Admin — это готовый CRUDL интерфейс с поиском, фильтрами и хитрыми настройками.


Каждый раз стартуя проект на Django, удивляюсь насколько круто иметь админку — web интерфейс просмотра данных. Да еще и бесплатно.


Каждый раз поддерживая проект на Django, удивляюсь, как же сложно поддерживать админку в рабочем состоянии.


В этой статье я постараюсь привести 11 практик, которые позволят избегать тормозов админки максимально долго.

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

Фронтенд-разработчику: 7 основных принципов дизайна

Reading time5 min
Views17K
Я занимаюсь разработкой фронтенда. Мне часто приходится слышать такой вопрос: «Надо ли мне изучить дизайн для того, чтобы стать фронтенд-разработчиком?».

Прежде чем я отвечу на этот вопрос — мне хотелось бы, чтобы читатели, которые тоже им задаются, понимали, что во многих компаниях есть собственные UX/UI-дизайнеры. Они рисуют интерфейсы, делают макеты, а программисты при этом занимаются исключительно своим делом. Задача программистов заключается в том, чтобы вдохнуть жизнь в макет страницы, сделать его интерактивным.

Но что если в вашей компании дизайнера нет? Что если вы самостоятельно занимаетесь каким-то своим проектом в свободное от работы время? А то, что в компании есть дизайнер, ещё не значит, что он всегда к вашим услугам. Дизайнеры обычно сильно загружены — как текущей работой, так и внесением поправок в то, что они уже сделали. В результате, можно сказать, что программист не может постоянно «цепляться» за дизайнера, например, в случаях, когда речь идёт о незначительных изменениях дизайна веб-страницы. А если вы что-то умеете в сфере дизайна — это пригодится и вам, и вашей команде.



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

Здесь я собираюсь рассказать о 7 основных принципах дизайна, следование которым позволит вам создавать привлекательные интерфейсы и приложения.
Читать дальше →

Разбираемся с параллельными и конкурентными вычислениями в Python

Reading time21 min
Views65K

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

Прим. Wunder Fund: для задач, где не критичны экстремально низкие задержки — при сохранении и обработке биржевых данных, мы используем Питон, и естественно применяем описанные в статье подходы. Статья будет полезна начинающим разработчикам.

Мы увидим, что когда один человек одновременно делает несколько дел — это похоже на конкурентность, а когда несколько человек, работая бок о бок, заняты каждый собственным делом — это напоминает параллелизм. Эти ситуации мы разберём на простом и понятном примере закусочных, в которые люди заходят в обеденный перерыв. Такие заведения стремятся обслуживать клиентов как можно быстрее и эффективнее. Потом я покажу реализацию механизмов этих закусочных на Python, а в итоге мы сравним разные возможности одновременного «приготовления нескольких блюд», которые даёт нам этот язык, и разберёмся с тем, в каких ситуациях их применение наиболее оправдано.

А именно, я раскрою здесь следующие вопросы:

▪ Отличия конкурентности от параллелизма.
▪ Различные варианты организации конкурентного выполнения кода (многопоточность, модуль asyncio, модуль multiprocessing, облачные функции) и их сравнение.
▪ Сильные и слабые стороны каждого подхода к организации конкурентного выполнения кода.
▪ Выбор конкретного варианта организации конкурентного выполнения кода с использованием специальной блок-схемы.

Читать далее

Python service layer: основы оформления бизнес-логики на примере Django-приложений

Reading time18 min
Views43K

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

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

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

На самом деле, изложенный далее текст относится не только к Django-проектам. Разрабатывая веб-приложения, используя другие инструменты, вроде Flask, люди используют те же концепции веб-разработки, причём часто именно в таком же виде, как они реализованы, в Django - views, request-response объекты, middlewares, модели, формы.

Читать далее

Сохранение озвучки книги средствами Google TTS и python

Reading time3 min
Views7.1K

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

Читать далее

Information

Rating
7,432-nd
Location
Адыгейск, Адыгея, Россия
Date of birth
Registered
Activity