Pull to refresh
47
0
mprokopov @mprokopov

User

Send message

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

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



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

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

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

Читать дальше →
Total votes 120: ↑95 and ↓25+70
Comments108

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

Reading time5 min
Views15K

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

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

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

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

image
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments1

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

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



Итак, что мы делаем по порядку и по пунктам.
Total votes 36: ↑30 and ↓6+24
Comments33

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

Reading time9 min
Views928K

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


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


Читать дальше →
Total votes 122: ↑105 and ↓17+88
Comments108

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

Reading time7 min
Views43K


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


UI vs. UX


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


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


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


Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments10

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

Reading time6 min
Views40K

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


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


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


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

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

Reading time8 min
Views9.5K
imageЗдравствуй, дорогой Читатель. Сегодня я расскажу тебе, как устроена система определения приоритетов обращений в техническую поддержку компании, наличие которой в организации позволяет существенно сократить время реакции на запрос, правильно распределить ограниченные ресурсы сервисного подразделения, максимально быстро и эффективно реагировать на острые проблемы клиентов, не терпящие отлагательств. Особенности работы системы мы рассмотрим на реальном примере нашей компании.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments21

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

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

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

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

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

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


Давайте посмотрим...
Total votes 35: ↑22 and ↓13+9
Comments15

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

Reading time3 min
Views16K
Привет, Хабр! Хочу поделиться очень интересным инструментом для «приручения» положения окон в OS X. Если кратко, то вот ссылка на репозиторий с замечательным приложением Slate. За подробностями, добро пожаловать под кат.

image
Читать дальше →
Total votes 29: ↑23 and ↓6+17
Comments40

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

Reading time5 min
Views87K


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


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


Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments7

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

Reading time10 min
Views91K


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


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


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


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


Arity (арность)


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

Читать дальше →
Total votes 91: ↑87 and ↓4+83
Comments113

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

Reading time7 min
Views9.6K


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

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

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

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

Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments0

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

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

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

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

Reading time4 min
Views61K


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

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

Reading time5 min
Views96K

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

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

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

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

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

Information

Rating
Does not participate
Location
Украина
Registered
Activity