Pull to refresh
14
0
Send message

Основы функционального программирования на Python

Reading time19 min
Views68K

Этот пост служит для того, чтобы освежить в памяти, а некоторых познакомить с базовыми возможностями функционального программирования на языке Python. Материал поста разбит на 5 частей:

Читать далее

Как найти удаленную работу в зарубежной компании. 10 шагов

Reading time10 min
Views67K


Каждый год Оксфордский словарь английского языка выбирает «Слово года». Но в 2020-м что-то пошло не так. Издательство Оксфордского университета описало 2020-й как «год, который лишил нас дара речи», и сказало, что к нему невозможно подобрать правильное слово.


Но на наш взгляд, такое слово всё-таки есть. С прошлого марта в мире резко возросло использование слова «удаленно». Большинство предприятий отошли от традиционной модели офисной работы и стали пытаться организовать труд сотрудников из дома. Для разработчиков из СНГ это прекрасная возможность начать работу в лучших мировых компаниях. Зарплаты за рубежом выше, а возможностей сейчас стало больше, чем когда-либо прежде.


Мы постоянно исследуем рынок. Публикуем сотни вакансий ежедневно. И сейчас 40% выручки получаем от иностранных компаний, которые в основном нанимают программистов для удаленной работы.


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

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

Принципы для разработки: KISS, DRY, YAGNI, BDUF, SOLID, APO и бритва Оккама

Reading time8 min
Views312K
image

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

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

Последовательное применение этих принципов упростит ваш переход от миддла к сеньору. Вы можете обнаружить, что некоторые (вероятно) вы применяете интуитивно.

Принципов много. Мы остановимся на семи самых важных. Их использование поможет вам в развитии и позволит стать лучшим программистом.

1. YAGNI

You Aren’t Gonna Need It / Вам это не понадобится

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

Этот принцип применим при рефакторинге. Если вы занимаетесь рефакторингом метода, класса или файла, не бойтесь удалять лишние методы. Даже если раньше они были полезны – теперь они не нужны.

Может наступить день, когда они снова понадобятся – тогда вы сможете воспользоваться git-репозиторием, чтобы воскресить их из мертвых.
Читать дальше →

Как подключить содержимое любых файлов для использования в коде C / C++

Reading time5 min
Views24K

Задача состояла в подключении файлов: HTML, JS, CSS; без специальной подготовки. Так же неудобно подключать бинарные файлы (например картинки) конвертируя их в HEX. Так как не хотелось конвертировать в HEX или разделять на строки, искал способ подключения файла в адресное пространство программы.

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

FizzBuzz по-сениорски

Reading time7 min
Views118K

- Добрый день, я на интервью на позицию старшего разработчика.

- Здравствуйте, давайте начнем с небольшого теста, пока я ваше CV смотрю. Напишите программу, которая выводила бы числа от 1 до, скажем, миллиарда, притом если число кратно трем, то вместо числа выводится Fizz, если кратно пяти, то Buzz, а если и трем, и пяти, то FizzBuzz.

Серьезно, FizzBuzz? Задачка для начальной школы, на сениорскую позицию? Ну ладно.

Читать далее

Бизнес, госслужба, вуз, наука: все ли работы хороши?

Reading time14 min
Views20K

Мне много лет, я вышел из тьмы я так и не сделал карьеру. Да, я неплохо зарабатываю, уважаем на работе. Более того, я везунчик: каждая моя работа, с самого первого места, по-настоящему любимая. Кайф от того, что ты делаешь, заменяет многое: мотивацию, карьеризм, часть амбиций. Ты просто работаешь в потоке, ты не знаком с выгоранием (ой ли?), ты активно развиваешься. Всё отлично, но карьеры — в понимании общества и HR-ов — нет. И если в 20, 25, даже 30 это вообще не напрягает, то стоит перевалить за 35, начинаешь думать, а всё ли так, а что дальше? А вдруг хорошо на госслужбе? Или пойти преподавать до самых глубоких седин? Я гоню от себя эти мысли, потому что в моей жизни было преподавание, была наука, была госслужба и вот уже более 15 лет есть работа в бизнесе. А что бы и не поделиться опытом с теми, кого тоже угнетают «карьерные» мысли? 

Читать далее

Думай как инженер: 4 способа находить нестандартные решения

Reading time8 min
Views24K

В работе и быту нам часто приходится сталкиваться с проблемами, которые заводят в тупик, хотя кажется, что их решение лежит где-то на поверхности. «Эх, мне бы сейчас чужие мозги», — думаете вы. К счастью, операция необязательна, достаточно использовать МФО, РВС, детский язык и маленьких человечков! Не переживайте, это научно подкрепленные методы, которые заставляют мозг работать иначе. Вместе с ведущими телеграм-канала Креативность 101 разбираемся с феноменом инерции мышления и преодолеваем психологические барьеры.
Вот как это делается

Как я добавил функции автомобилю по шине CAN, не умея программировать

Reading time4 min
Views55K


Цель этой статьи — рассказать о моём опыте модификации автомобиля и экспериментах с шиной CAN.

С чего всё началось


Сначала я решил добавить фронтальную камеру в свой 2017 Chevrolet Cruze. Поскольку у автомобиля уже есть заводская камера заднего вида, то на высоком уровне нужно было выяснить две вещи:

  1. Способ передачи видео с фронтальной камеры, которую я добавлю.
  2. Способ отображения на экране картинки с камеры заднего вида в любое время.
Читать дальше →

Печатная плата заменяет два линейных двигателя

Reading time2 min
Views47K


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

Внедрение LoRaWAN на сельскохозяйственном предприятии. Часть 2. Учет топлива

Reading time1 min
Views9.5K
Здравствуйте уважаемые читатели! Со времени публикации первой статьи, мы подросли, наши любимые поставщики-разработчики Atiko, проделали не мало кропотливой работы, и наступил день, когда есть что рассказать и показать!

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

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

Настройка VSCODE под разработку для ARM на примере отладочной платы stm32f429i-disco

Reading time2 min
Views44K


Всем привет!


Сегодня рассмотрим настройку удобной и красивой среды разработки для программиста микроконтроллеров с помощью набора полностью бесплатных инструментов разработки.


Все шаги проверены на виртуальной машине со свежеустановленной Ubuntu 16.04 xenial desktop x64.


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


Все настройки, касающиеся конкретного железа (в моём случае это контроллер STM32F429 и девборда STM32F429DISCO), нужно подменить на свои. То же самое касается и путей.


Если готовы, то

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

Cogear.JS – современный генератор статических сайтов

Reading time3 min
Views23K

Привет, Хабр!


Хочу представить вниманию хабровчан генератор статических сайтов с открытым исходным кодом, написанный на Node.JS, в основе которого лежит Webpack.


Проект вдохновлён тем же Jekyll, но в основе своей использует современный технологический стек. Например, предоставляет возможность «горячей подгрузки» (без перезагрузки страницы) изменённых скриптов и стилей.


image

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

Записки IoT-провайдера. LoRaWAN и RS-485

Reading time6 min
Views22K

Здравствуйте, уважаемые любители Интернета Вещей. Продолжаю свой цикл статей.


Первая частьВторая частьТретья частьЧетвертая частьПятая часть

Итак, мы научились работать с импульсным выходом счетчиков и освоили шифрование. Какой шаг следующий? Ответ очевиден. RS-485.

Чуть-чуть теории. RS-485 (Recommended Standard) – это асинхронный интерфейс физического уровня. Получил огромную популярность в Промышленном Интернете, начиная от ЖКХ и заканчивая различными заводами и предприятиями.


В принципе, почти любой счетчик, который хочет передать нам не один, а несколько параметров, скорее всего, будет снабжен RS-485. Реже RS-232 или M-Bus, но их пока оставим в стороне и разберем самый показательный пример. Точнее проблемы в работе с ним.


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

Как защититься от переполнения стека (на Cortex M)?

Reading time8 min
Views28K
Если вы программируете на «большом» компьютере, то у вас такой вопрос, скорее всего, вообще не возникает. Стека много, чтобы его переполнить, нужно постараться. В худшем случае вы нажмёте ОК на окошке вроде этого и пойдете разбираться, в чем дело.

image

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

В этой статье я расскажу о собственных изысканиях на эту тему. Поскольку я программирую в основном под STM32 и под Миландр 1986 — на них я и фокусировался.
Читать дальше →

Оптический приемопередатчик FTDI-POF

Reading time4 min
Views21K
image

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

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

Оптические линии имеют ряд преимуществ: нет проблем с заземлением, высокая помехозащищенность, секретность (нет электромагнитного излучения, которое может быть подслушано), легкость.

Задача: создать рабочий прототип платы с последовательным портом, сигналы которого передаются по пластиковой волоконно-оптической линии связи. За основу взят программатор MBFTDI, построенный на микросхеме FT2232H. Разъем JTAG с программатора нужно было убрать и на его место поставить оптический приемник и передатчик. Что и было сделано.
Читать дальше →

Фантастика и фентези за два с половиной года, почти сто хороших книг

Reading time22 min
Views249K
На этот пост меня подтолкнула публикация «Почему я ворую книги, бедные авторы, и как это исправить», а именно — скепсис и возражения на мой комментарий о том, что я не читаю плохие книги. Мне предложили рассказать, как я выбираю книги для чтения и что именно читаю. Ну я и повелся.
Оформить список было сравнительно просто, FBReader любезно хранил на GoogleDrive все скачанные книги с того момента, как там появилась эта услуга. Предлагаю вашему вниманию список прочитанного мной за 2,5 года из жанров фентези и фантастики.
Читать дальше →

Как я автоматизировал дачу на 90%

Reading time9 min
Views138K


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

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

Подводные камни настройки Mikrotik SXT LTE

Reading time5 min
Views121K
Доброго времени суток Хабр, попытаюсь рассказать о своём знакомстве с такой вещью, как Mikrotik SXT LTE, муках настройки и последующего доведения до ума.


Немного предыстории:

Своё знакомство с Mikrotik и RouterOS начал около двух лет назад, имеется сертификат MTCNA, планирую в ближайшее время получить MTCRE и MTCWE. За это время я не устаю восхищаться оборудованием Mikrotik за их функциональность. В основном работал с представителями линейки RouterBoard 7xx и 9xx, так как их возможностей и мощностей всегда хватало, до недавних пор.
Читать дальше →

Реверс-инжиниринг прошивки устройства на примере мигающего «носорога». Часть 1

Reading time16 min
Views46K

26 апреля 2018 года компания ИНФОРИОН провела конференцию для студентов МГТУ им. Баумана SMARTRHINO-2018. Специально для конференции было подготовлено небольшое устройство на базе микроконтроллера STM32F042.

Этот носорожек стал подопытным главным героем мастер-класса по реверсу прошивки. К сожалению, за время, отведенное на мастер-класс, не представлялось возможным провести полное исследование прошивки, поэтому мы решили восполнить это подробным разбором в формате статьи. Надеемся, информация будет полезна не только участникам конференции, но также всем начинающим кодокопателям.

Первая часть статьи составлена по мотивам проведённого мастер-класса и рассчитана на начинающих — уделяется внимание базовым подходам к реверсу прошивок и особенностям работы с дизассемблером IDA.

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

Осторожно, под катом мигающий носорог и его прошивка!
Читать дальше →

Удалённое включение компьютера бесплатно, без SMS и без облаков, с помощью Mikrotik

Reading time3 min
Views114K
… а также без проброса портов, SSH/telnet и установки сторонних приложений. С любого компьютера, подключённого к интернет и даже с телефона!

Периодически мне бывает нужно включить домашний компьютер, когда я нахожусь не дома. Обычно я не запаривался и звонил или отправлял сообщение с такой просьбой жене, которая сидит дома в декрете. Очень удобное средство удалённого управления с голосовым интерфейсом. Однако у этого способа есть ряд недостатков — ушла гулять, укладывает ребёнка, или ещё чем либо занята. Хотелось простого решения из того что есть под рукой.
Тыкни меня!

Information

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