Pull to refresh
0
0
Сергей @Chelyuk

User

Send message

Отучаемся от токсичных практик на код-ревью

Reading time9 min
Views42K

Код-ревью частенько порождают споры. При подготовке лекции «Отучаемся от токсичного поведения на код-ревью» на конференции AlterConf я была готова услышать кучу возражений и критики. Но совершенно не ожидала, что сообщество настолько поддержит идею. Я предполагала сопротивление, но сообщество очень доброжелательно и с одобрением приняло меня. 

Меня попросили поделиться слайдами, но теперь я подумала, что слайды сами по себе малополезны и вырваны из контекста: им не хватает объяснений. Поэтому решила опубликовать эту статью. Позже организаторы конференции выложили видеозапись.
Читать дальше →
Total votes 69: ↑50 and ↓19+31
Comments76

Один язык чтобы править всеми

Reading time6 min
Views28K

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



На момент написания этой статьи запрос «программирование какой язык изучать первым» выдаёт 517 миллионов поисковых результатов. Каждый из этих сайтов будет нахваливать один определённый язык, и 90% из них, в конечном итоге, порекомендуют Python или JavaScript.


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


Просто знать как кодить ещё не достаточно. Рынок настолько насыщен выпускниками институтов и курсов, что позиция джуниора практически перестала существовать*. Чтобы преуспеть в сегодняшнем мире, вы должны и кодить, и иметь продвинутое фундаментальное логическое мышление.


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


Мой первый урок информатики


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


«Сегодня мы будем дегустировать самостоятельно приготовленные пломбиры. Но с одним условием: вы должны составить список конкретных инструкций, как приготовить десерт, а я — буду им следовать»

Читать дальше →
Total votes 59: ↑49 and ↓10+39
Comments53

Неразбериха с Boeing 737 MAX: анализ возможных причин аварий

Reading time40 min
Views72K
image

«Столкновение с землёй в управляемом полёте» (Controlled Flight into Terrain) — это авиационный термин, обозначающий аварию нормально функционирующего самолёта из-за того, что пилоты были чем-то отвлечены или дезориентированы. Настоящий кошмар. По моим оценкам, ещё хуже столкновение с землёй в автоматизированном полёте, когда система управления самолётом заставляет его совершать пикирование в землю, несмотря на отчаянные попытки экипажа спасти ситуацию. Такова предполагаемая причина двух недавних аварий новых самолётов Boeing 737 MAX 8. Я попытался разобраться, как могли произойти эти инциденты.

Примечание: изучение катастроф MAX 8 находится на раннем этапе, поэтому многое из статьи основано на данных из непрямых источников, другими словами, на утечках и слухах, а также на рассуждениях тех людей, которые знают или не знают, о чём говорят. Так что учитывайте это, если решите продолжить чтение.

Аварии


Ранним утром 29 октября 2018 года рейс 610 авиакомпании Lion Air вылетел из Джакарты (Индонезия) с 189 людьми на борту. Это был новый, эксплуатировавшийся всего четыре месяца 737 MAX 8 — последняя модель линейки самолётов Boeing, созданной ещё в 1960-х. Взлёт и подъём до высоты примерно 1 600 футов (480 метров) был нормальным, после чего пилоты убрали закрылки (элементы крыла, повышающие подъёмную силу при малых скоростях). В этот момент воздушное судно неожиданно снизилось до 900 футов (270 метров). В радиопереговорах с авиадиспетчерами пилоты сообщали о «проблеме с системой управления» и спрашивали данные о своей высоте и скорости, отображаемых на экранах радаров диспетчеров.
Читать дальше →
Total votes 126: ↑118 and ↓8+110
Comments429

Сергей Зонов: «Первый „Спектрум“ я сделал потому, что мне было интересно»

Reading time12 min
Views47K


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

В первой половине 1980-х популярным компьютером в Европе был ZX Spectrum. Когда он пришел в СССР, местные умельцы начали его копировать, перерабатывать и улучшать. Одним из тех, кто сделал свой вариант «Спектрума», был Сергей Зонов. По его схемам собраны десятки тысяч компьютеров.
Читать дальше →
Total votes 121: ↑121 and ↓0+121
Comments239

Заполняем документы в Microsoft Word при помощи Python. Часть 2

Reading time2 min
Views21K

Размножаем документы

.
В предыдущем посте было рассмотрено как заполнить запрос в word с помощью python. В этот раз будет продемонстрировано как заполнить сразу несколько word документов данными из таблицы excel.

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

image

Теперь обратимся к программе.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments5

Как ИТ-компании мира защищаются от конкурентов в лице бывших сотрудников?

Reading time9 min
Views39K

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


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


Про неконкуренцию


Вообще, уход сотрудника — это 3 «полярные лисички», а не одна.



Ушедший сотрудник:


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

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


О них и поговорим.

Читать дальше →
Total votes 57: ↑50 and ↓7+43
Comments169

Оживляем тормозящий Samsung Galaxy TAB 2 WiFi

Reading time4 min
Views137K
Предлагаю Вашему вниманию свой рецепт оживления старого, тормозящего планшета и приведение его ПО в актуальное состояние.

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

Настала очередь уборки гаража, где я и нашел Samsung Galaxy Tab 2 7.0" P3110 (без слота сим карты). Ради интереса включил, он моргнул экраном и загрузился Android 4.1.

Здорово, подумал я, надежная железка, если за пару лет нахождения в неотапливаемом помещении завелась и загрузилась. Пожалуй, возьму я его под свою книжку. Собственно так я получил возможность несколько раз перечитать содержимое страницы, пока текст прокручивается на следующую, и пошагово смотреть любимые сериалы.
Решено было обновить и ускорить
Total votes 52: ↑41 and ↓11+30
Comments42

Япония: страна настолько здравого смысла, что он для нас местами иррационален

Reading time11 min
Views198K


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

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

И вся вот эта лютая хрень, которую вы слышали про страну, на самом деле логично следует из предпосылок, которые есть в базовом культурном коде. Сейчас расскажу.
Читать дальше →
Total votes 377: ↑365 and ↓12+353
Comments481

Семь неожиданных переменных Bash

Reading time3 min
Views37K
Продолжая серию заметок о менее известных функциях bash, покажу вам семь переменных, о которых вы могли не знать.

1) PROMPT_COMMAND


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

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

Попробуйте запустить это в новом шелле, и увидите, что произойдёт с сессией:

$ PROMPT_COMMAND='echo -n "writing the prompt at " && date'
Читать дальше →
Total votes 69: ↑66 and ↓3+63
Comments32

Хакаем CAN шину авто. Виртуальная панель приборов

Reading time14 min
Views219K


В первой статье «Хакаем CAN шину авто для голосового управления» я подключался непосредственно к CAN шине Comfort в двери своего авто и исследовал пролетающий траффик, это позволило определить команды управления стеклоподъемниками, центральным замком и др.

В этой статье я расскажу как собрать свою уникальную виртуальную или цифровую панель приборов и получить данные с любых датчиков в автомобилях группы VAG (Volkswagen, Audi, Seat, Skoda).

Мною был собран новый CAN сниффер и CAN шилд для Raspberry Pi на базе модуля MCP2515 TJA1050 Niren, полученные с их помощью данные я применил в разработке цифровой панели приборов с использованием 7″ дисплея для Raspberry Pi. Помимо простого отображения информации цифровая панель реагирует на кнопки подрулевого переключателя и другие события в машине.

В качестве фреймворка для рисования приборов отлично подошел Kivy для Python. Работает без Иксов и для вывода графики использует GL.

  1. CAN сниффер из Arduino Uno
  2. Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
  3. Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
  4. Софт панели приборов на Python и Kivy (UI framework)
  5. Видео работы цифровой панели приборов на базе Raspberry Pi

Под катом полная реализация проекта, будет интересно!
Total votes 195: ↑192 and ↓3+189
Comments224

Сети для самых маленьких. Часть ой, всё

Reading time4 min
Views164K
Дорогие мои друзья, отважные критики, тихие читатели и тайные почитатели, СДСМ заканчивается.



Я не могу похвастаться тем, что за 7 лет я затронул все темы сетевой сферы или тем, что хотя бы одну из них раскрыл полностью. Но это и не было целью. А целью этой серии статей было ввести юного студента за руку в этот мир и проводить его шаг за шагом по основной галерее, давая общее представление, и уберечь от болезненных скитаний по тёмным уголкам сознания Олифера и Олифера в мучительных попытках найти ответ на вопрос, как всё это применить в жизни.
СДСМ планировался коротким практическим курсом «как научиться в сети за месяц», а вылился в 16 (на самом деле 19) длинных выпусков, которые мы уже даже переименовали в «Сети Для Самых Суровых». Общее количество символов перевалило за 1 000 000.
Читать дальше →
Total votes 55: ↑55 and ↓0+55
Comments38

Защита микросхем от реверс-инжиниринга и несанкционированного проникновения

Reading time20 min
Views84K

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

Реверс-инжиниринг микросхем — головная боль производителей с самых первых лет существования микроэлектроники. Вся советская электроника в какой-то момент была построена на нем, а сейчас с гораздо большим размахом тем же самым занимаются в Поднебесной, да и не только в ней. На самом деле, реверс-инжиниринг абсолютно легален в США, Евросоюзе и многих других местах, с целью (цитирую американский закон) “teaching, analyzing, or evaluating the concepts or techniques embodied in the mask work or circuitry”.

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

Другое не менее (а то и более) важное направление защиты микросхем от реверс-инжиниринга — обеспечение безопасности информации, хранимой в памяти. Такой информацией может быть как прошивка ПЛИС (то есть опять-таки интеллектуальная собственность разработчика), так и, например, пин-код от банковской карты или ключ шифрования защищенной флэшки. Чем больше ценной информации мы доверяем окружающему миру, тем важнее защищать эту информацию на всех уровнях работы обрабатывающих ее систем, и хардварный уровень — не исключение.
Читать дальше →
Total votes 237: ↑234 and ↓3+231
Comments130

Декодирование сигналов мультиплексированного ЖКИ

Reading time7 min
Views34K


В этой статье я расскажу о том, как работает жидкокристаллический индикатор (ЖКИ) с точки зрения сигналов, как эти сигналы декодировать и использовать для своих целей.
Total votes 82: ↑82 and ↓0+82
Comments28

Юнит тесты на Си — нет ничего проще

Reading time4 min
Views52K
Прочитав статью «Тестирование встроенных систем» и комментарии к ней я был несколько поражен тем фактом, что многие хабровчане знакомы с книгой «Test Driven Development for Embedded C (Pragmatic Programmers)» и framework-ом Unity, но не используют весь арсенал средств, которые предлагают ребята из throwtheswitch.org.

Хочу кратко поделится опытом использования этих самых средств.
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments11

Особенности использования и тестирования кода С++ на микроконтроллерах

Reading time11 min
Views25K
Так сложилось, что основным языком для работы с микроконтроллерами является C. Многие крупные проекты написаны именно на нем. Но жизнь не стоит на месте. Современные средства разработки уже давно позволяют использовать C++ при разработке ПО для встраиваемых систем. Однако такой подход до сих пор встречается достаточно редко. Не так давно я попробовал использовать С++ при работе над очередным проектом. Об этом опыте я и расскажу в данной статье.

Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments55

Qt: Embedded World 2017 и roadmap

Reading time10 min
Views16K

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


Я работаю в The Qt Company (в офисе Осло, Норвегия), и видя как обделено вниманием весьма немаленькое русскоязычное сообщество, я решил написать эту статью на русском и рассказать немного о прошедшей на позапрошлой неделе в Нюрнберге конференции Embedded World 2017, а также поделиться планами компании на будущие релизы Qt. Но хотя статья и на русском, ссылки всё же ведут на английскую документацию, а также некоторые термины я решил оставить в оригинале.

Читать дальше →
Total votes 42: ↑42 and ↓0+42
Comments43

Что нам стоит ЧПУ привод построить

Reading time3 min
Views16K
Не так давно я озаботился вопросом, как бы сделать привод для систем ЧПУ на коллекторном двигателе, да еще и с обратной связью, и что бы работал по Modbus RTU.

В распоряжении у меня имелись, Arduino UNO, Драйвер на L298N, коллекторный двигатель от привода сиденья автомобиля марки AEG на 12В, щелевой фотопрерыватель 2 шт.
Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments11

Почему фотография Скарлетт Йоханссон заставила PostgresSQL майнить Monero

Reading time5 min
Views31K
В рамках кампании по защите данных наших клиентов мы в Imperva рассказываем о разных методах атак на БД. Если вы не знакомы с нашим исследовательским проектом StickyDB, почитайте прошлые статьи: часть I и часть II. Там описано устройство сети ханипотов (рис. 1), которая заманивает злоумышленников атаковать наши БД, чтобы мы изучали их методы и улучшали защиту.


Рис. 1. Сетевое окружение ханипота StickyDB

Недавно мы обнаружили интересную технику в ходе атаки одного из серверов PostgreSQL. После входа в БД злоумышленник продолжал создавать полезные нагрузки из встроенных бинарников в скачанных картинках, сохранять полезные нагрузки на диск и запускать их. Как часто бывает в последнее время, злоумышленник захватил ресурсы сервера для майнинга Monero. Как будто этого мало, вектором атаки была фотография Скарлетт Йоханссон. Ну тогда ладно. Разберёмся, как это работает!
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments15

Python’ом по машинлернингу

Reading time16 min
Views19K

Сегодня только ленивый не говорит (пишет, думает) про машинное обучение, нейросети и искусственный интеллект в целом. Всего лишь в прошлом году ML сравнили с подростковым сексом — все хотят, но никто не занимается. Сегодня все озабочены тем, что ИИ нас оставит без работы. Хотя, судя по последним исследованиям Gartner, можно успокоиться, так как к 2020 году благодаря ИИ появится больше рабочих мест, чем ликвидируется. Так что, дорогой друг, учи ML, и будет тебе счастье.


Читать дальше →
Total votes 26: ↑21 and ↓5+16
Comments1

Open-source решение для десятикратного снижения задержек чтения данных с Apache Cassandra

Reading time5 min
Views5.6K


В Instagram развернута одна из крупнейших в мире БД Apache Cassandra. Проект начал использовать Cassandra в 2012 году с целью замены Redis и поддержки внедрения таких функций приложения как система распознания мошенничества, Лента и Директ. Сначала кластеры Cassandra работали в среде AWS, но позже инженеры мигрировали их в инфраструктуру Facebook вместе со всеми остальными системами Instagram. Cassandra показала себя очень хорошо с точки зрения надежности и отказоустойчивости. В то же время метрики задержки при чтении данных явно можно было улучшить.

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

Основания для перехода


Instagram активно и широко использует Apache Cassandra в качестве сервиса хранения типа «ключ-значение». Большинство запросов Instagram происходят онлайн, поэтому для предоставления надежного и приятного пользовательского опыта для сотен миллионов пользователей Instagram, SLA очень требовательны к показателям работы системы.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments10

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity