Pull to refresh
0
0
Михаил Р @russum

User

Send message

Сервис проверки пользовательских файлов «powered by pytest»: нужно повозиться, но оно того стоит

Level of difficultyMedium
Reading time10 min
Views3.2K

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

Пользователю нужно возвращать информацию "что не так с файлом": какую проверку не прошел файл и где конкретно в файле проблемные данные.

Эта задача - про качество данных и очень напоминает тестирование. Так почему не использовать фреймворк тестирования pytest, и не написать тесты на каждый проверяемый аспект и для каждого типа файлов? Однако, есть небольшое "но". проверка должна быть реализована в качестве сервиса, чтобы встраиваться в более широкий процесс обработки пользовательских документов.

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

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

Telegram-бот, webhook и 50 строк кода

Reading time5 min
Views174K
Как, опять? Ещё один туториал, пережёвывающий официальную документацию от Telegram, подумали вы? Да, но нет! Это скорее рассуждения на тему того, как построить функциональный бот-сервис используя Python3.5+, asyncio и aiohttp. Тем интереснее, что заголовок на самом деле лукавит…
Читать дальше →
Total votes 31: ↑21 and ↓10+11
Comments19

Получаем фотографии NASA с Марса с помощью aiohttp

Reading time5 min
Views14K
Я большой фанат книги «Марсианин» Энди Вейера. Читая её, мне было интересно, что же Марк Уотни чувствовал, гуляя по красной планете. Недавно наткнулся на пост на Twillo, в котором упоминалось, что у NASA есть публичный API для доступа к фотографиям с марсоходов. Так что я решил написать собственное приложение для просмотра изображений непосредственно в браузере.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments0

Основы TCP/IP для будущих дилетантов

Reading time11 min
Views468K
Предположим, что вы плохо владеете сетевыми технологиями, и даже не знаете элементарных основ. Но вам поставили задачу: в быстрые сроки построить информационную сеть на небольшом предприятии. У вас нет ни времени, ни желания изучать толстые талмуды по проектированию сетей, инструкции по использованию сетевого оборудования и вникать в сетевую безопасность. И, главное, в дальнейшем у вас нет никакого желания становиться профессионалом в этой области. Тогда эта статья для вас.

Читать дальше →
Total votes 47: ↑39 and ↓8+31
Comments63

Выделение подпроекта в отдельный репозиторий на github

Reading time3 min
Views18K

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


Итак, что дано:


  • Есть большой репозиторий, содержащий множество папок. Каждая папка – это отдельный проект.

Что необходимо сделать:


  • Одну из папок перенести в отдельный репозиторий с сохранением ее истории коммитов.

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


Я использовал стандартный гитовый filter-branch. За основу я взял следующие статьи:



В этом посте я хочу немного адаптировать процесс для лучшего восприятия.

Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments25

Биологические предпосылки деградации компаний

Reading time25 min
Views90K


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

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

Благодаря этим особенностям мышления человека, среднее время нормальной жизни коммерческих компаний составляет 15 лет, а изначальные «Империи добра», типа Гугл и Яндекс, неумолимо со временем приобретают черты «Империй зла».

Некоторые компании сопротивляются этому, а некоторые даже и не понимают, почему приходит в упадок их внутренняя корпоративная культура. Почему попытки привить хорошие и правильные принципы и практики организации бизнеса не дают ожидаемых результатов…
Читать дальше →
Total votes 86: ↑81 and ↓5+76
Comments160

Лекции Техносферы. Программирование на Perl (осень 2015)

Reading time3 min
Views11K


Сегодня мы предлагаем вам ознакомиться с одним из курсов Техносферы, который посвящён программированию на Perl. Этот курс открытый — на него может записаться любой студент или аспирант МГУ имени М.В. Ломоносова. Также в Техносфере есть еще несколько открытых курсов, 1 сентября на них открывается запись. В этом семестре вас ждет приятное дополнение: они будут подкреплены методическим материалом, который будет содержать достаточно информации, чтобы по нему можно было вспомнить материал любой лекции и при необходимости более глубоко её изучить.

Цель курса «Программирование на Perl» — узнать возможности языка (его сильные и слабые стороны), научиться писать программные продукты на этом языке, научится быстро ориентироваться в чужом коде. Под катом находятся все лекции в формате видео и краткое описание к ним.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments19

Как можно зарабатывать на Wi-Fi в общественных местах (если вы не платите, то вы — товар)

Reading time7 min
Views42K

Карта расположения Wi-Fi устройств в реальном времени показывает точки наибольшего интереса посетителей выставки

С развитием iBeacon’ов, хорошего широкополосного 5-гигагерцевого канала, появлением довольно доступных антенн с beamforming сегодня есть возможность давать быстрый коннект под HD-видеопоток даже в таких традиционно сложных местах, как стадионы. Кстати, у нас уже был проект, где мы делали для стадиона приложение с возможностью просмотра повторов сразу после гола на телефоне и справкой по тактической расстановке, статистике игроков и так далее.

Сейчас Wi-Fi получил новые фичи для следующих мест:
  • Музеев (технология заменяет гидов).
  • Спортобъектов от 5–8 тысяч зрителей.
  • Выставок (теплокарты как на картинке выше, навигация).
  • Торговых центров (навигация и реклама).
  • Транспортных узлов (сервис в аэропортах вроде авторегистрации на рейс).
  • Складов (поиск товара).
  • Туристических объектов (открытый Wi-Fi и аналитика).

Ниже — подробнее о том, как, почему и зачем. И где вы покупатель, где вы товар.
Читать дальше →
Total votes 40: ↑33 and ↓7+26
Comments5

Как Валера взял в команду стажера и начал учить его проектированию

Reading time7 min
Views70K

Начало


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

На следующее утро в зале для совещаний собрались ключевые сотрудники направления. Технический директор (для тех, кто с ним еще не знаком, — его зовут Иван) сразу перешел к сути вопроса: «Приветствую всех! Как вы знаете, некоторое время назад мы поставили перед собой цель расширить присутствие на рынке и для этого открыли новый офис продаж. Так вот, эта стратегия сработала. Через месяц мы подписываем договор на разработку и внедрение платформы дистанционного образования. Проект очень интересный, но пока не об этом. Чтобы его потянуть, нам нужно срочно формировать новую команду в направлении образовательных систем.»
Читать дальше →
Total votes 69: ↑58 and ↓11+47
Comments38

ES6 и за его пределами. Глава 1: ES? Настоящее и Будущее

Reading time5 min
Views35K


Хочу уделить внимание книге, которую написал Kyle Simpson — «ES6 и за его пределами» (англ. «ES6 & Beyond»). Конечно, вклад внес не только он, а множество замечательных контрибьюторов. Благодарности.
На данный момент имеет статус — завершенный черновик.

Оглавление:
  • Глава 1: ES? Настоящее & Будущее
  • Глава 2: Синтаксис
  • Глава 3: Организация
  • Глава 4: Асинхронное управление потоком
  • Глава 5: Коллекции
  • Глава 6: API Дополнения
  • Глава 7: Мета программирование
  • Глава 8: За пределами ES6

Перед тем как начать читать эту книгу, я полагаю, что вы уже обладаете твердым знанием JavaScript вплоть до самого популярного стандарта (на момент написание этой книги), который обычно называют ES5 (технически это ES5.1). Здесь мы будем говорить о предстоящем стандарте ES6 и попытаемся понять дальнейшее развитие JS.
Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments8

Running Lean. Пересказ одной из лучших книг о стартапах

Reading time14 min
Views108K
Cover
Ниже — вольный пересказ книги Running Lean, автор — Ash Maurya. Рейтинг Амазона — 4.8 из 5. Книга, насколько я знаю, на русский язык еще не переведена.

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

Допускаю, что нарушаю чьи-то права: пересказ лицензии не требует, но иллюстрации взяты из книги. Автору я писал в попытке прояснить этот вопрос, но ответа не получил.

Блог автора кгиги: practicetrumpstheory.com.

Структура пересказа

  • Введение в процесс Running Lean
    • Три важнейших методологии
    • Roadmap
  • Описание процесса Running Lean
    • Составьте «План А»
      • Определите кто клиенты
      • Создайте бизнес-модели
      • Ранжируйте бизнес-модели
    • Протестируйте и измените план
      • Подготовьтесь к проведению экспериментов
      • Категории рисков и четыре фазы тестирования плана
        • Фаза 1. Поймите проблему
        • Фаза 2. Найдите решение
        • Фаза 3. Валидируйте качественно
        • Фаза 4. Верифицируйте количественно
  • Три стадии стартапа
    • Соотношение трех стадий стартапа и четырех фаз тестирования плана
    • Держите правильный фокус
    • Привлекайте финансирование вовремя
    • Масштабируйте правильно
Читать дальше →
Total votes 60: ↑58 and ↓2+56
Comments14

Борьба за покупателя или как купить лояльность?

Reading time12 min
Views30K


Сейчас на многих специализированных интернет-ресурсах, конференциях и тренингах только и говорят, что классические маркетинговые инструменты в розничной торговле вроде прямых скидок, накопительных и бонусных программ, уходят в прошлое. Фразы: “скидками не удержишь покупателя”, “скоро никто не будет носить дисконтные карты” и вопросы типа “у вас нет CRM и digital-маркетинга? И к вам еще ходят покупатели?” — повсеместно звучат из уст экспертов.

В этих высказываниях есть зерно истины, но так ли все категорично? Не беру на себя смелость рассудить знатоков, но попробую описать классические и современные методы борьбы за покупателя и рассмотреть их сильные и слабые стороны.
Читать дальше →
Total votes 34: ↑28 and ↓6+22
Comments11

Лучшие плагины для Sublime Text

Reading time5 min
Views639K

WebInspector


Мощный инструмент для дебаггинга JavaScript, полноценный инспектор кода для Sublime. Фичи: установка брейкпоинтов прямо в редакторе, показ интерактивной консоли с кликабельными объектами, остановка с показом стек трейса и управление шагами дебаггера. Все это работает на ура! А еще есть Fireplay от Mozilla, который позволяет подключаться к Firefox Developer tools и максимально простой дебаггер JSHint.



Читать дальше →
Total votes 116: ↑114 and ↓2+112
Comments101

Советская операция по спасению мертвой космической станции

Reading time19 min
Views350K

Источник: Spacefacts.de

Эта история произошла в 1985 году, но в последствии постепенно забылась. Шли годы — многие подробности были искажены, кое-что было выдумано. Даже те, кто первыми рассказал об этих событиях, допускали явные ошибки. Операция «Союза-13» по спасению орбитальной станции «Салют-7» была впечатляющей попыткой проведения ремонта в открытом космосе. Писатель Николай Белаковский собрал все факты воедино и готов впервые за все время предоставить нам полноценный рассказ о тех событиях.
Читать дальше →
Total votes 312: ↑305 and ↓7+298
Comments116

Строение двигателей

Reading time7 min
Views128K
Недавно наткнулся на прекрасный сайт (англ.), который по полочкам размусоливает и показывает строение большинства типов двигателей. Попытаюсь вольно и сжато пересказать самое на мой взгляд главное, совсем по пальцам и как для самых маленьких. Конечно можно было бы позаимствовать точные определения из авторитетных источников, но такой любительский перевод обещает быть единственным в своем роде :)

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

Читать дальше →
Total votes 249: ↑220 and ↓29+191
Comments142

22-й выпуск подкаста «Откровенно про IT-карьеризм». Беседа с системным архитектором Сергеем Ковалевым в Дании

Reading time1 min
Views949
image
Айти путь.
Как уехать работать в Данию?
Датский язык.
Разница в менталитете русских и датчан.
Виза и должность.
Работа с клиентами. Украинские клиенты работают с датскими разработчиками.
Машины и велосипеды.
Кризис в Дании.
Безработица в Дании.
Аренда жилья в Дании.
Собеседования в Дании.
Планшеты в энтерпрайз сегменте.
Total votes 28: ↑16 and ↓12+4
Comments14

Проблема с режимом сна в Mac OS Lion

Reading time3 min
Views88K
Mac OS Lion

После установки обновления огромное количество пользователей жалуются на некорректную реакцию компьютера на выход из режима сна, причём независимо от типа устройства, будь то iMac, Macbook или Mac Mini. Проявляется это таким образом: после погружения компьютера в сон, его уже невозможно разбудить традиционными способами: открытием крышки ноутбука, нажатием кнопки включения, etc, приходится делать hard reset. Главная прелесть заключается в том, что существует множество модификаций этого бага: у кого-то он проявляется только если вводить компьютер в режим сна путём закрытия крышки, у кого-то только путём нажатия «Режим сна» в меню; у кого-то он проявляется только при подключённом MagSafe, а у кого-то только при работе от аккумулятора. У меня же он проявляется крайне экзотическим образом: система просыпается, но ведёт себя так, как будто её перезапускали, — все приложения загружаются заново.

Что интересно, единого лекарства против этого нету. На форуме поддержки предлагают огромное количество решений проблемы, но ни один из них не помогает всем и наверняка.
Этот пост — сборка всех возможных решений отсюда: https://discussions.apple.com/thread/3190738.

Читать дальше →
Total votes 48: ↑33 and ↓15+18
Comments115

Активация TRIM SSD-накопителей в Mac OS X

Reading time1 min
Views18K
Скоро официальный анонс Mac OS X 10.7 Lion, одним из ключевых функций новой ОС будет скрытый раздел восстановления, функции AirDrop, а так же поддержка команды TRIM, которая повышает скорость перезаписи на SSD-накопителях.
Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments19

Дрессируем MacBook для работы с внешним монитором

Reading time3 min
Views153K
Покупая внешний монитор для свего MacBook Pro 13" я не мог предполагать что придется столкнуться с некоторыми неудобствами в ежедневной работе. Моим желанием было получить систему, в которой внешний монитор является основным и единственным, а дисплей ноутбука при этом выключен. Отягчающим обстоятельством был тот факт, что внешней клавиатуры у меня пока нет и для работы хотелось использовать клавиатуру ноутбука. Это значит что закрыть MacBook с целью выключить его дисплей не получится.
Перед покупкой монитора изучением возможностей работы MacBook с внешними дисплеями я пренебрег, потому как был убежден, что дело обстоит ровно так же хорошо как и у других портативных компьютеров. Другими словами, был уверен, что MacBook поддерживает полный набор режимов работы с внешними дисплеями, позволяя привычно переключаться между режимами с помощью комбинации клавиш (Fn+F5 или подобной). Но не тут-то было.
Читать дальше →
Total votes 47: ↑31 and ↓16+15
Comments130
1
23 ...

Information

Rating
Does not participate
Location
New York, New York, США
Registered
Activity