Как стать автором
Обновить
47
0
mprokopov @mprokopov

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

Отправить сообщение

DevOps с Kubernetes и VSTS. Часть 1: Локальная история

Время на прочтение13 мин
Количество просмотров13K
Последнее время я часто рассказываю про контейнеры, Docker и Kubernetes. На фоне этого коллеги всё чаще стали спрашивать о том, а где же здесь технологи Microsoft? Чтобы объяснить, я нашёл несколько материалов, в том числе этот набор из пары статей от Colin Dembovsky. В них есть всё: Docker, Kubernetes и наши технологии. Думаю, что для читателей Хабры это тоже должно быть интересно. Итак, встречайте, перевод первой части.



Если вы читаете мой блог, то знаете, что я фанат контейнеров в целом и Docker в частности. Когда вы в последний раз ставили софт на «голое железо»? Может быть, только на ноутбук, но и то шансы невелики. Виртуализация кардинально изменила наше отношение к ресурсам центра обработки данных, значительно увеличив их плотность и эффективность использования. Следующим этапом повышения плотности стали контейнеры, только ВМ размещаются на физических серверах, а контейнеры — в самих ВМ. Очень скоро большинство из нас не будет работать не только на уровне серверов, но даже на уровне ВМ, все рабочие нагрузки переместятся в контейнеры. Но это в перспективе.
Подходы к локальной разработке с использованием Kubernetes и minikube
Всего голосов 18: ↑17 и ↓1+16
Комментарии0

10 приёмов работы в терминале Linux, о которых мало кто знает

Время на прочтение3 мин
Количество просмотров166K
Близкое знакомство с возможностями терминала — один из признаков человека, который хорошо разбирается в Linux. Хотя некоторые вещи запомнить сложно, есть довольно-таки простые, но эффективные приёмы, которые способны повысить качество и скорость работы в терминале. Пожалуй, каждый пользователь Linux рано или поздно обзаводится собственным списком ценных мелочей. Надеемся, некоторых из тех десяти приёмов работы в командной строке Linux, которыми мы хотим с вами поделиться, попадут в ваш личный список полезных команд.

Читать дальше →
Всего голосов 120: ↑95 и ↓25+70
Комментарии108

Прагматичное функциональное программирование

Время на прочтение5 мин
Количество просмотров15K

Движение к функциональному программированию началось всерьез примерно десятилетие назад. Мы видели как такие языки как Scala, Clojure и F# стали привлекать внимание. Это движение было больше чем просто обычное восхищение «О, круто, новый язык!». Было что-то действительно побуждающее это движение — или мы так думали.

Читать дальше →
Всего голосов 31: ↑26 и ↓5+21
Комментарии100

Повторяем дизайн приложений, получивших награду Apple

Время на прочтение9 мин
Количество просмотров15K
Привет, Хабр! Дизайнеры рисуют приложения с красивыми кнопочками, тенями, анимациями, градиентами и сложными переходами между экранами. К сожалению, такие дизайны нелегко превращать в рабочие приложения. Можно ли облегчить нашу работу? Разберемся на примере приложений, получивших награды Apple за дизайн: Auxy, Streaks и Zova.

image
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии1

Мобильная платформа. Как не бояться ReactNative

Время на прочтение6 мин
Количество просмотров17K
Первый пост блога мы решили посвятить «мобильной» тематике и  рассказать о  разработке глобального решения для запуска и создания приложений — «Мобильная платформа ЕФС».
       
Что это? Это многомодульный продукт, позволяющий массово создавать мобильные приложения, тиражировать их и поддерживать во время эксплуатации.



Итак, что мы делаем по порядку и по пунктам.
Всего голосов 36: ↑30 и ↓6+24
Комментарии33

Как «пробить» человека в Интернет: используем операторы Google и логику

Время на прочтение9 мин
Количество просмотров928K

В очередной статье нашего цикла публикаций, посвященного интернет-разведке, рассмотрим, как операторы продвинутого поиска Google (advanced search operators) позволяют быстро находить необходимую информацию о конкретном человеке.


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


Читать дальше →
Всего голосов 122: ↑105 и ↓17+88
Комментарии108

Крэш-курс по UI-дизайну

Время на прочтение7 мин
Количество просмотров43K


Мы всегда в поисках хороших статей о дизайне, чтобы потом использовать их в работе над сайтом «Я люблю ИП». Сегодня мы перевели ещё одну статью, которая рассказывает, чем отличается UI-дизайн от UX-дизайна и на каких основных принципах строится дизайн интерфейсов.


UI vs. UX


Если вы хоть немного интересовались дизайном приложений, то наверняка слышали термины «UI» и «UX». Но чем же они отличаются?


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


Согласно книги Дж. Гарретта «Элементы опыта взаимодействия», UX-дизайн можно определить через пять основных уровней. Давайте начнём с самого абстрактного.


Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии10

Конкурентность: Асинхронность

Время на прочтение6 мин
Количество просмотров40K

Мы всё-таки смогли дойти до третьей части и добрались до самого интересного — организации асинхронных вычислений.


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


Теперь посмотрим, как можно управлять потоком исполнения (control flow) в случае обработки асинхронных задач.


Читать дальше →
Всего голосов 37: ↑37 и ↓0+37
Комментарии13

Ваш звонок очень важен для нас? Или как работает система приоритизации заявок в сервисных подразделениях

Время на прочтение8 мин
Количество просмотров9.5K
imageЗдравствуй, дорогой Читатель. Сегодня я расскажу тебе, как устроена система определения приоритетов обращений в техническую поддержку компании, наличие которой в организации позволяет существенно сократить время реакции на запрос, правильно распределить ограниченные ресурсы сервисного подразделения, максимально быстро и эффективно реагировать на острые проблемы клиентов, не терпящие отлагательств. Особенности работы системы мы рассмотрим на реальном примере нашей компании.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии21

Прошлое и будущее Управления ИТ Услугами (ITSM)

Время на прочтение8 мин
Количество просмотров16K
image Представляю перевод статьи Стюарта Рейнса «Прошлое и будущее Управления ИТ Услугами» («The Past and Future of IT Service Management» by Stuart Rance), опубликованную в блоге ITSM.Tools.

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

Предупреждение: статья явно продающая и, по скромному мнению переводчика, содержит в себе излишне восторженные оценки, которые могут не встречаться Вам в реальном мире и пагубно влиять на неокрепшие умы.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии0

Рекурсия. Беглый взгляд

Время на прочтение3 мин
Количество просмотров34K

image


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

Читать дальше →
Всего голосов 29: ↑18 и ↓11+7
Комментарии34

Dribbble обзор №2 — наиболее интересные дизайны интерфейсов за последние 2 недели

Время на прочтение5 мин
Количество просмотров18K
Всем привет. Минуло пару недель с момента выхода предыдущего обзора. Увы, за это время копилка Dribbble пополнялась вяло. Хотя в целом она пополнялась стабильно, но стоящего Вашего внимания материала крайне мало. Поэтому давайте вновь отмотаем таймер назад, теперь уже на две недели и посмотрим на различные концепты UX/UI артистов со всего мира. Я, как независимый обозреватель, выбрал 10 работ и расставил их в порядке возрастания качества исполнения.


Давайте посмотрим...
Всего голосов 35: ↑22 и ↓13+9
Комментарии15

Slate – «серебряная пуля» для расположения окон на экранах OS X

Время на прочтение3 мин
Количество просмотров16K
Привет, Хабр! Хочу поделиться очень интересным инструментом для «приручения» положения окон в OS X. Если кратко, то вот ссылка на репозиторий с замечательным приложением Slate. За подробностями, добро пожаловать под кат.

image
Читать дальше →
Всего голосов 29: ↑23 и ↓6+17
Комментарии40

Кластер Docker Swarm за 30 секунд

Время на прочтение5 мин
Количество просмотров87K


В этом июне, в качестве лейтмотива конференции DockerCon мы видели демо, в котором 3-узловой Swarm-кластер был создан за 30 секунд используя набор инструментов для кластеризации Swarm, интегрированную в Docker Engine 1.12.


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


Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии7

Жаргон функционального программирования

Время на прочтение10 мин
Количество просмотров91K


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


В примерах используется JavaScript ES2015). (Почему JavaScript?)


Работа над материалом продолжается; присылайте свои пулл-реквесты в оригинальный репозиторий на английском языке.


В документе используются термины из спецификации Fantasy Land spec по мере необходимости.


Arity (арность)


Количество аргументов функции. От слов унарный, бинарный, тернарный (unary, binary, ternary) и так далее. Это необычное слово, потому что состоит из двух суффиксов: "-ary" и "-ity.". Сложение, к примеру, принимает два аргумента, поэтому это бинарная функция, или функция, у которой арность равна двум. Иногда используют термин "диадный" (dyadic), если предпочитают греческие корни вместо латинских. Функция, которая принимает произвольное количество аргументов называется, соответственно, вариативной (variadic). Но бинарная функция может принимать два и только два аргумента, без учета каррирования или частичного применения.

Читать дальше →
Всего голосов 91: ↑87 и ↓4+83
Комментарии113

44 наиболее популярных проекта на Product Hunt за лето 2016

Время на прочтение7 мин
Количество просмотров9.6K


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

Ниже показаны 44 наиболее популярных проекта, появившихся на Product Hunt за лето 2016 года, каждый из которых набрал более 1 000 голосов. Надеемся, вы найдёте в этом списке много того, что поможет вам подготовиться к творческому, продуктивному и волнующему вас сезону «погружения в работу». Получайте удовольствие.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии4

Дайджест интересных материалов для мобильного разработчика #170 (5-11 сентября)

Время на прочтение4 мин
Количество просмотров8K
iPhone 7 лишился выхода для наушников, зато приобрел вторую камеру и новый процессор, представление Apple Watch Series 2 и AirPods, игры как бизнес, дизайнеры и разработчики – лишь малая часть нового большого дайджеста. Добро пожаловать!

Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии0

Правила внедрения TDD в старом проекте

Время на прочтение12 мин
Количество просмотров21K
Статья «Скользящая ответственность паттерна Репозиторий» подняла несколько вопросов, на которые очень сложно дать ответ. Нужен ли репозиторий, если абстрагироваться от технических деталей полностью невозможно? На сколько сложным репозиторий может быть, чтобы его написание оставалось целесообразным? Ответ на эти вопросы различается в зависимости от акцента, который делается при разработке систем. Наверно, самый сложный вопрос: нужен ли, вообще, репозиторий? Проблема «текучей абстракции» и рост сложности кодирования с увеличением уровня абстракции не позволяют найти решение, которое удовлетворяло бы оба лагеря. Например, в репортинге intention design приводит к созданию большого числа методов для каждого фильтра и сортировки, а generic решение создает большой оверхед по кодированию. Продолжать можно бесконечно…

Для более полного представления я взглянул на проблему абстракций со стороны применения их в уже готовом коде, в legacy code. Репозиторий, в таком случае, нас интересует только, как инструмент для достижения качественного и безбажного кода. Конечно, этот паттерн — не единственное, что необходимо для применения TDD практик. Наевшись «невкусной еды» в нескольких больших проектах и наблюдая за тем, что работает, а что нет, я вывел для себя несколько правил, которые мне помогают следовать TDD практикам. С удовольствием выслушаю конструтктивную критику и иные приёмы внедрения TDD.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии86

Быстрый фильтр каталога для интернет-магазинов на основе битмапов Redis

Время на прочтение4 мин
Количество просмотров61K


Не секрет, что каждый интернет-магазин должен помогать пользователям найти то, что им нужно. Особенно, если товаров у вас много (> 10). На помощь приходит каталогизация товаров, но разбить товары по категориям — полдела. Товары внутри категории нужно уметь фильтровать по их свойствам. Особенно, если товары у вас разношёрстные, например, одежда, электроника, ювелирные изделия и т.д. И тут любой разработчик, пишущий свой e-commerce продукт, сталкивается с неприятными реалиями жизни: у товаров могут быть совершенно разные свойства, у некоторых товаров они могут отсутствовать, некоторые товары по одному свойству могут попадать под разные значения (цвет платья то ли синий, то ли голубой, соответственно, неплохо бы его показать и по синему и по голубому цвету). Проще говоря, у вас EAV. Бывает ещё, что EAV вам диагностирует заказчик ближе к концу разработки, а то и просит добавить фильтр по динамическим свойствам уже после релиза.
Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии75

Идентификация личности по обычной охранной камере: приключения на одной проходной

Время на прочтение5 мин
Количество просмотров96K

Фото с объекта нельзя. Это — примерно похожее место на примере КРОК.

Началось всё с кота-терминатора. На начало операции мы знали следующее:

  • При строительстве здания с крупным продуктовым рабочая бригада завела кота, чтобы он ловил крыс.
  • После приёмки кот незнамо где заныкался, и уже три или четыре года его никто не видел.
  • Какая-то сволочь показала ему прямую взаимосвязь между открытым мешком кошачьего корма из торгового зала и появлением корма.
  • Появлялся он только на камерах — приходил ночью охотиться на мешки, причём как настоящий матёрый охотник, детей и самок не трогал, а брал только жирных самцов, то есть выбирал самые крупные мешки, неожиданно на них прыгал и вскрывал им брюхо.
  • Ему пробовали на ночь накладывать отдельную миску с кормом, но он был уже далеко не домашним, и отказаться от охоты не мог.
  • Кроме этого, кот любил крайне дорогой алкоголь: сотрудники догадались списывать на кота бутылки. Мол, уронил, уборщица уже осколки убрала.
  • Суммарный убыток он приносил примерно на 50–100 тысяч в месяц (да, это будет покруче, чем в нашумевшей истории про единоразовый обед кота на 1000 долларов в аэропорту Владивостока).
  • За поимку кота уже 4 месяца была награда в 5 тысяч рублей.

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

Здесь и нас и операционного директора ждало несколько открытий, согласующихся с русским менталитетом. Когда мы для начала узнали, что происходит, мату главного просто не было предела.
Читать дальше →
Всего голосов 157: ↑147 и ↓10+137
Комментарии123

Информация

В рейтинге
Не участвует
Откуда
Украина
Зарегистрирован
Активность