Pull to refresh
1
0

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

Ложь из солидарности: как Thawte убила «систему доверия» в Интернете

Reading time 6 min
Views 95K
Information Security *

Отзыв TLS-сертификатов у российских подсанкционных банков – это конец «системы доверия» в Интернете в том виде, как мы ее знаем. Ящик Пандоры открыт.
Читать дальше →
Total votes 207: ↑177 and ↓30 +147
Comments 1063

Учимся проектировать на основе предметной области (DDD: Domain Driven Design)

Reading time 8 min
Views 209K
Java *.NET *

1. Введение



В данной статье я хотел бы рассказать об этих трёх буквах, постоянно находящихся на слуху, но для многих являющихся тайной за семью печатями, а так же привести ряд ресурсов, с которыми неплохо было бы познакомиться при желании продолжить развитие в проектировании на основе предметной области (DDD: Domain Driven Design).


Читать дальше →
Total votes 66: ↑54 and ↓12 +42
Comments 25

Шпаргалка по mongodb: e-commerce, миграция, часто применяемые операции и немного о транзакциях

Reading time 40 min
Views 63K
Python *Algorithms *NoSQL *MongoDB *Development for e-commerce *
Tutorial

Этот пост — небольшая шпаргалка по mongodb и немного длинных запросов с парой рецептов. Иногда бывает удобно когда какие-то мелочи собраны в одном месте, надеюсь, каждый, кто интересуется mongodb, найдет для себя что-то полезное.


Не хотелось бы, чтобы пост воспринимался в ключе холиваров на тему SQL vs. NOSQL И так понятно что везде есть свои плюсы и минусы, в данном случае это просто где-то немного справки, где-то немного примеров из того, с чем приходилось сталкиваться. Примеры на mongo shell и на python.


  1. Миграция в на новые версии в mongodb
  2. Запросы сравнения и логические
  3. Полнотекстовый поиск в Mongodb, regexp, индексы и пр.
  4. Атомарные операторы (модифицирующие данные )
  5. Немного о транзакциях в Mongodb
  6. Агрегационный фреймворк и JOIN-ы в Mongodb
  7. Примеры
  8. Небольшая песочница на Python

Читать дальше
Total votes 47: ↑42 and ↓5 +37
Comments 14

Интерфейсы в реальном мире

Reading time 5 min
Views 178K
Мосигра corporate blog Usability *
IT-интерфейсы часто растут из физических. Например, вот аппаратные чекбоксы:



Вообще, лучший же пример правильного инженерного интерфейса – это гранёный стакан.

Почему? Очень просто. С одной стороны, он дружелюбен к советским роботам: круглая верхняя полоса позволяет автоматической мойке нащупать его ещё с 40-х годов. С другой стороны, он прощает человеческие ошибки: ребра останавливают скатывание стакана со стола при падении. Плюс он просто красивый.

Сейчас покажу ещё несколько интерфейсов, которые облегчают жизнь. Общий смысл – попробовать понять, как думал разработчик, чтобы сделать что-то удобнее.
Читать дальше →
Total votes 314: ↑304 and ↓10 +294
Comments 347

Интерфейсы в реальном мире: проектируем самый адский интерфейс

Reading time 6 min
Views 63K
Мосигра corporate blog Interfaces *Usability *
До прошлой недели абсолютным чемпионом по упоротости интерфейса для меня всегда были мультиварки. Одну из них мы втроём (включая системного архитектора) пытались включить 6 минут, пока не пришла хозяйка. Но нет, этот рекорд тоже оказался побит. Вот это небольшое устройство, знакомое большинству жителей нашей страны, отняло у меня 25 долбанных минут на то, чтобы выставить время. Знакомьтесь, чемпион по когнитивной сопротивляемости:



Сейчас расскажу, какой крови мне это стоило. Ну и сразу – второй чемпион, но на этот раз по дружелюбности инженерного интерфейса:



Давайте начнём с того, что попробуем ещё сильнее ухудшить интерфейс часов выше.
Читать дальше →
Total votes 58: ↑49 and ↓9 +40
Comments 203

Интерфейсы в реальном мире: страховка от ошибок пользователя

Reading time 6 min
Views 51K
Мосигра corporate blog Interfaces *Usability *

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

«Пользователь пьян» — базовый принцип проектировщика. Ещё пользователь нечеловечески изобретателен, умён и привередлив, но прямо сейчас пьян. То же самое касается передачи информации. Сейчас покажу физические ограничения на ошибки пользовательских интерфейсов.



Начнём со специальной клавиатурной чашки.
Читать дальше →
Total votes 90: ↑85 and ↓5 +80
Comments 221

Интерфейсы в реальном мире (ещё примеры)

Reading time 10 min
Views 139K
Мосигра corporate blog Interfaces *Usability *
Обычный кран с горячей и холодной водой очень жесток к пользователю. В идеале его интерфейс решает три основные задачи:
  • Позволяет выбрать напор воды.
  • Позволяет выбрать температуру воды.
  • И защищает систему от гидравлического удара.

Вот тут вы можете узнать пару своих знакомых кранов:



А это — очень страшный автомобильный диод, по нему только вперёд:



Итак, если вам интересно продолжение про интерфейсы в реальном мире – заходите в пост. Осторожно, трафик.
Читать дальше →
Total votes 110: ↑105 and ↓5 +100
Comments 227

Полная автоматизация «development» среды с помощью docker-compose

Reading time 7 min
Views 153K
Website development *IT Standards *
Tutorial

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


Docker в 2017


На конференции Dockercon 2016 CEO компании Docker рассказал, что количество приложений, которые запускаются в Docker выросло на 3100% за последние два года. Боле 460 тысяч приложений по всему миру запускаются в Docker. Это невероятно!


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

Читать дальше →
Total votes 27: ↑24 and ↓3 +21
Comments 53

Улучшение производительности PHP 7

Reading time 9 min
Views 33K
VK corporate blog High performance *Website development *PHP *Designing and refactoring *
Translation


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

В этой статье мы рассмотрим, что изменилось в движке Zend седьмой версии по сравнению с пятой, а также разберёмся, как можно эффективно использовать внутренние оптимизации. В качестве исходной точки возьмём PHP 5.6. Зачастую многое зависит от того, как те или иные вещи написаны и представлены движку. При написании критически важного кода необходимо уделять внимание его производительности. Изменив несколько мелочей, вы можете сильно ускорить работу движка, зачастую без ущерба для других аспектов вроде читабельности кода или управления отладкой. Свои рассуждения я докажу с помощью профилировщика Blackfire.
Читать дальше →
Total votes 86: ↑73 and ↓13 +60
Comments 30

Стратегия кеширования в приложении

Reading time 5 min
Views 69K
Website development *
Sandbox
Когда заходит разговор о кешировании складывается парадоксальная ситуация. С одной стороны все понимают важность и нужность кеширования в архитектуре приложений. С другой стороны мало кто может внятно объяснить что и как надо кешировать.

Обычно люди сходу начинают предлагать готовые реализации кеша, вроде memcached или HTTP-кеша, но это лишь ответ на вопрос где кешировать.

Кеширование – одна из многих тем, наряду с безопасностью и логированием, о которых знают и говорят все, но мало кто может это сделать правильно.
Читать дальше →
Total votes 50: ↑39 and ↓11 +28
Comments 47

10 книг по UI/UX дизайну, которые стоит прочитать

Reading time 4 min
Views 135K
Productivity Inside corporate blog Web design *Interfaces *Usability *Mobile applications design *


Стать отличным UI/UX дизайнером не так просто: нужно знать основы, постоянно отслеживать последние тенденции и использовать их на практике. Каждый из нас время от времени обращается за советом к коллегам или друзьям, но когда нужна проверенная информация, лучшие советчики – это специализированные издания.

У многих UI дизайнеров есть своя личная коллекция любимых книг. Сегодня мы приготовили список из 10 крутых книг по дизайну, которые по той или иной причине могли пройти мимо вас.
Читать дальше →
Total votes 18: ↑14 and ↓4 +10
Comments 6

Что такое мотивация на самом деле: какие желания мы игнорируем больше всего

Reading time 2 min
Views 18K
GTD *
Моя предыдущая статья оказалась весьма по нраву жителям Хабра и поэтому я, с вашего позволения, немного разовью тему.

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

Но, поскольку в предыдущей статье я указал, что желаний много и все их надо учитывать, давайте попробуем подумать, какие желания мы не учитываем. И, руководясь принципом «Назад к истокам!», давайте определим, какие желания лежат в основе всего.

Читать дальше →
Total votes 22: ↑18 and ↓4 +14
Comments 22

6 концепций функционального программирования. Польза и примеры использования

Reading time 9 min
Views 38K
Touch Instinct corporate blog Programming *Development for iOS *Functional Programming *
Sandbox
Доброго времени суток! Меня зовут Иван Смолин, я разработчик мобильных приложений на платформе iOS. Сегодня предлагаю вам окунуться в мир функционального программирования. Статья носит по большей части теоретический характер, нежели практический. В ней я постараюсь дать определения основным понятиям функционального программирования и покажу примеры реализации на C, Objective-C, Swift, Haskell.

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

Существует 6 основных концепций:

  • концепция первого класса и функций высшего порядка
  • концепция чистых функций
  • концепция неизменяемого состояния
  • концепция опциональности и сопоставления с образом
  • концепция ленивости и бесконечных структур данных
  • концепция лямбда-исчислений

Читать дальше →
Total votes 44: ↑42 and ↓2 +40
Comments 26

Javascript-паноптикум

Reading time 7 min
Views 21K
JavaScript *
Sandbox

За время, что мне довелось писать на Javascript, у меня сложился образ, что js и его спецификация это шкатулка с потайным дном. Иногда кажется, что ничего секретного в ней нет, как вдруг магия стучит в ваш дом: шкатулка раскрывается, оттуда выскакивают черти, по-домашнему исполняют блюз и резво скрываются обратно в шкатулке. Позднее вы узнаете причину: стол повело и шкатулку наклонило на 5 градусов, что вызвало чертей. С тех пор вы не знаете, это фича шкатулки, или лучше все-таки покрепче замотать её изолентой. И так до следующего раза, пока шкатулка не подарит новую историю.


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

Читать дальше →
Total votes 43: ↑38 and ↓5 +33
Comments 79

15 тривиальных фактов о правильной работе с протоколом HTTP

Reading time 7 min
Views 222K
Яндекс corporate blog Website development *API *Development of communication systems *
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →
Total votes 191: ↑186 and ↓5 +181
Comments 120

«Пишите письма»: Три техники верстки хороших email’ов

Reading time 3 min
Views 11K
Pechkin.com corporate blog Website development *Development of mobile applications *Development for e-commerce *Email layout *
Верстке писем и рассылок посвящено огромное количество обучающих статей. В таком объеме информации очень легко заблудиться, а писать письма и делать рассылку все-таки нужно. Поэтому сегодня мы подготовили материал, в котором собрали три популярные техники для эффективной верстки email’ов, подходящие для начинающих верстальщиков.


Читать дальше →
Total votes 14: ↑11 and ↓3 +8
Comments 9

How-to: адаптивные письма в Gmail

Reading time 6 min
Views 25K
Pechkin.com corporate blog CSS *HTML *Email layout *


В нашем блоге мы часто пишем о создании адаптивных почтовых рассылок (раз, два, три) и вообще уделяем большое внимание email-верстке. Сегодня речь пойдет о способе создания адаптивных писем для почтового клиента Gmail, известного своей довольно скудной поддержкой различных возможностей для верстки. Данную технику в 2014 году описал Джастин Ку (Justin Khoo), позднее метод был дополнен статьей Марка Роббинса в блоге Email Code Geek. Мы представляем вашему вниманию адаптированный перевод основных моментов двух публикаций.
Читать дальше →
Total votes 14: ↑12 and ↓2 +10
Comments 3

Программное обеспечение для умного дома

Reading time 6 min
Views 52K
Java *.NET *Development for IOT *
Sandbox
Всем добрый день. В качестве хобби написал программу, которую можно использовать как часть системы “умный дом”. Чтобы сразу заинтересовать читателя, продемонстрирую некоторую малую часть сценариев использования ПО:

image
Просмотр
Total votes 20: ↑17 and ↓3 +14
Comments 29

Сортировка огромного файла с массивом при известном словаре данных

Reading time 2 min
Views 13K
Programming *Algorithms *
Recovery mode
Sandbox
Привет Хабр! Недавно пришло интересное задание:
Имеется многогигабайтный файл, содержащий массив целых чисел от 1 до 10000. Элементы расположены хаотично с повторениями. Необходимо его отсортировать. Принять во внимание ограниченность в ресурсах.

Самым ленивым способом отсортировать можно используя «внешнюю сортировку со слиянием», но это весьма тяжёлый и долгий метод. В этой публикации я расскажу, какой метод пришёл мне в голову — я не смог не поделиться им.
Читать дальше →
Total votes 29: ↑17 and ↓12 +5
Comments 30

Держите данные под контролем

Reading time 7 min
Views 12K
PHP *Symfony *Zend Framework *Yii *Laravel *
Не секрет, что пользовательским данным доверять нельзя. Поэтому однажды человек и придумал валидацию данных. Ну а я, интереса ради и пользы для, написал свою реализацию валидатора на PHP.
Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 32

Information

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