Pull to refresh
2
0
Flex25 @Flex25

User

Send message

Всё, что нужно знать о выравнивании во Flexbox

Reading time 7 min
Views 48K
Об авторе: Рэйчел Эндрю — не только главный редактор журнала Smashing Magazine, но и веб-разработчик, писатель и спикер. Она автор ряда книг, в том числе The New CSS Layout, один из разработчиков системы управления контентом Perch. Пишет о бизнесе и технологиях на своём сайте rachelandrew.co.uk.

Краткое содержание: в этой статье мы рассмотрим свойства выравнивания во Flexbox и некоторые основные правила, как работает выравнивание по основной и поперечной осям.

В первой статье этого цикла я рассказала, что происходит при объявлении свойства display: flex для элемента. Сейчас рассмотрим свойства выравнивания и как они работают с Flexbox. Если вы когда-либо приходили в замешательство, применить align или justify, надеюсь, эта статья многое прояснит!

История выравнивания во Flexbox


За всю историю CSS правильное выравнивание по обеим осям казалось самой сложной проблемой. Появление этой функции во Flexbox для многих стало главным преимуществом этой технологии. Выравнивание свелось к двум строчкам CSS.
Читать дальше →
Total votes 16: ↑14 and ↓2 +12
Comments 3

Реализация многопоточного сервера на PHP

Reading time 3 min
Views 26K
Данная публикация не претендует на полноту решения поставленного вопроса. Сервер разрабатывается исключительно в ознакомительных целях. Многие важные вопросы, такие как, например, обработка ошибок сокетов, опущены. Для реализации многопоточного сервера мы будем использовать, конечно же, потоки. Очень часто приходится видеть фразу, что, мол, в PHP потоков нет. Так вот это неправда. Потоки есть, но реализованы в отдельном расширении pthreads.
Читать дальше →
Total votes 34: ↑24 and ↓10 +14
Comments 50

Как создать тему для Magento 2 с нуля

Reading time 10 min
Views 31K


Здравствуйте, уважаемые хабрапользователи! В этой публикации хочу описать процесс создания темы для Magento 2 с нуля. Magento 2 имеет достаточно большое количество нововведений и улучшений по сравнению с первой версией. По большей части они относятся к клиентской части.

Вот некоторые из них:

  1. Полная поддержка HTML5 и CSS3;
  2. Встроенный препроцессор LESS;
  3. Асинхронная загрузка модулей с помощью RequireJS (без ручного добавления скриптов в cекцию head);
  4. jQuery/jQuery UI вместо библиотеки Prototype;
  5. Magento UI библиотека (набор компонентов для простого и гибкого рендеринга пользовательского интерфейса).

Самое интересное – под катом!
Читать дальше →
Total votes 16: ↑12 and ↓4 +8
Comments 1

Книга «Как пережить полный конец обеда, или безопасность в PHP». Часть 1

Reading time 22 min
Views 45K
image

Big Five Part 3 by CrazyAsian1

Привет. Меня зовут Саша Баранник. В Mail.Ru Group я руковожу отделом веб-разработки, состоящим из 15 сотрудников. Мы научились создавать сайты для десятков миллионов пользователей и спокойно справляемся с несколькими миллионами дневной аудитории. Сам я занимаюсь веб-разработкой около 20 лет, и последние 15 лет по работе программировать приходится преимущественно на PHP. Хотя возможности языка и подход к разработке за это время сильно изменились, понимание основных уязвимостей и умение от них защититься остаются ключевыми навыками любого разработчика.

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

P. S. Книга длинная, поэтому перевод будет выкладываться несколькими статьями. Итак, приступим…
Читать дальше →
Total votes 73: ↑64 and ↓9 +55
Comments 19

Масштабирование базы данных через шардирование и партиционирование

Reading time 11 min
Views 153K


Масштабирование базы данных через шардирование и партиционирование


Денис Иванов (2ГИС)


Всем привет! Меня зовут Денис Иванов, и я расскажу о масштабировании баз данных через шардирование и партиционирование. После этого доклада у всех должно появиться желание что-то попартицировать, пошардировать, вы поймете, что это очень просто, оно никак жрать не просит, работает, и все замечательно.

Немного расскажу о себе — я работаю в команде WebAPI в компании 2GIS, мы предоставляем API для организаций, у нас очень много разных данных, 8 стран, в которых мы работаем, 250 крупных городов, 50 тыс. населенных пунктов. У нас достаточно большая нагрузка — 25 млн. активных пользователей в месяц, и в среднем нагрузка около 2000 RPS идет на API. Все это располагается в трех датацентрах.

Перейдем к проблемам, которые мы с вами сегодня будем решать. Одна из проблем — это большое количество данных. Когда вы разрабатываете тот или иной проект, у вас в любой момент времени может случиться так, что данных становится очень много. Если бизнес работает, он приносит деньги. Соответственно, данных больше, денег больше, и с этими данными что-то нужно делать, потому что эти запросы очень долго начинают выполняться, и у нас сервер начинает не вывозить. Одно из решений, что с этими данными делать — это масштабирование базы данных.
Читать дальше →
Total votes 37: ↑34 and ↓3 +31
Comments 17

Основы индексирования и возможности EXPLAIN в MySQL

Reading time 19 min
Views 35K


Темой доклада Василия Лукьянчикова является индексирование в MySQL и расширенные возможности EXPLAIN, т.е. нашей задачей будет ответить на вопросы: что мы можем выяснить с помощью EXPLAIN'а, на что следует обращать внимание?


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


По индексам мы пройдемся очень кратко, исключительно в плане того, какие нюансы есть в MySQL, в отличие от общей теории.


Доклад, таким образом, состоит из 3х частей:


  • Архитектура;
  • Основы индексирования;
  • EXPLAIN (примеры).

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

Как устроена MySQL-репликация

Reading time 12 min
Views 45K
Андрей Аксёнов

Как устроена MySQL-репликация


Андрей Аксенов (Sphinx), shodan


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


Мы немного пройдемся по теории, попытаемся объяснить, как это все работает внутри, а после этого вы с утроенными силами сможете сами нырнуть в документацию.


Что такое репликация, в принципе? Это копирование изменений. У нас есть одна копия БД, мы хотим с какой-то целью еще одну копию.


Репликация бывает разных видов. Разные оси сравнения:


  • степень синхронизации изменений (sync, async, semisync);
  • количество серверов записи (M/S, M/M);
  • формат изменений (statement-based (SBR), row-based (RBR), mixed);
  • теоретически, модель передачи изменений (push, pull).

Читать дальше →
Total votes 44: ↑37 and ↓7 +30
Comments 11

Стилизация изображений с помощью нейронных сетей: никакой мистики, просто матан

Reading time 14 min
Views 91K

Приветствую тебя, Хабр! Наверняка вы заметили, что тема стилизации фотографий под различные художественные стили активно обсуждается в этих ваших интернетах. Читая все эти популярные статьи, вы можете подумать, что под капотом этих приложений творится магия, и нейронная сеть действительно фантазирует и перерисовывает изображение с нуля. Так уж получилось, что наша команда столкнулась с подобной задачей: в рамках внутрикорпоративного хакатона мы сделали стилизацию видео, т.к. приложение для фоточек уже было. В этом посте мы с вами разберемся, как это сеть "перерисовывает" изображения, и разберем статьи, благодаря которым это стало возможно. Рекомендую ознакомиться с прошлым постом перед прочтением этого материала и вообще с основами сверточных нейронных сетей. Вас ждет немного формул, немного кода (примеры я буду приводить на Theano и Lasagne), а также много картинок. Этот пост построен в хронологическом порядке появления статей и, соответственно, самих идей. Иногда я буду его разбавлять нашим недавним опытом. Вот вам мальчик из ада для привлечения внимания.


Читать дальше →
Total votes 145: ↑141 and ↓4 +137
Comments 38

Как победить на собеседовании. Несколько крайне полезных советов для разработчиков

Reading time 8 min
Views 68K
От автора: я разработал и провёл десятки собеседований по программированию. Здесь я расскажу, как меня обыграть



Будем честными, большинство программистов не любят писать код на собеседовании. Некоторые даже угрожают уйти из профессии по этой причине. Но в ближайшее время ничего не изменится. Так что если вы действительно хотите получить работу, то придётся понять, как можно добиться успеха на этих собеседованиях. Я помогу вам. Мы изучим процесс, и я объясню, что именно я хочу добиться от собеседования, так что у вас сложится довольно чёткое представление, как его пройти.
Читать дальше →
Total votes 54: ↑39 and ↓15 +24
Comments 116

5 советов от экспертов, как построить карьеру в ИТ

Reading time 3 min
Views 49K
image

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

Ниже я подобрала пять докладов, которые отвечают на вопросы, как проходить собеседования, какие способности нужно развить, чтобы стать успешнее в сфере ИТ, и что делать, чтобы карьера пошла в гору. Осторожно, здесь говорят про бизнес!

Читать дальше →
Total votes 27: ↑15 and ↓12 +3
Comments 25

И снова об уязвимости $_SERVER['HTTP_HOST']

Reading time 2 min
Views 9.6K
На Хабре уже упоминали об одной известной уязвимости, связанной с переменной $_SERVER['HTTP_HOST']. Только почему-то говорилось об SQL-инъекциях и о чем угодно, кроме XSS.

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

<script type="text/javascript" src="<?=$_SERVER['HTTP_HOST']  ?>/my.js"></script>

Допустим, адрес вашего сайта "www.user.com". Допустим, адрес моего сайта "www.hacker.com". Все, что мне нужно сделать, — это скинуть вам ссылку на специальную страницу моего сайта, откуда я сделаю самый обычный редирект на ваш же собственный сайт. Только для редиректа использую немного необычные заголовки. В качестве HTTP-target я укажу ваш собственный сайт "www.user.com", а вот в качестве хоста — мой "www.hacker.com". Хотя, в принципе, в абсолютной форме HTTP-target нет ничего необычного.

Заголовки примут вид:

GET http://www.user.com HTTP/1.1
Host:www.hacker.com

И ваш скрипт вместо SERVER['HTTP_HOST'] подставит мой хост. Ваша ссылка src="<?=$_SERVER['HTTP_HOST'] ?>/my.js" примет вид не как вы ожидали "www.user.com/my.js", а "www.hacker.com/my.js". В результате чего с моего сайта ваш браузер с чистой совестью скачает скрипт и выполнит его.

А я получу ваши cookie.
Читать дальше →
Total votes 33: ↑13 and ↓20 -7
Comments 26

SVG-иконки – много и со стилем

Reading time 14 min
Views 50K

Маленький рассказ о том, как наша команда решила организовать иконки в грядущем проекте. Чуть-чуть исторического экскурса, взгляды по сторонам (на PNG и векторные шрифты) и рассказ о том, как мы всё-таки обустроились в итоге.

Иконки у нас используются, и активно – хорошо подобранная иконка заменяет слова и предложения (а фигово подобранной иконке можно сделать всплывающую подсказку, но не будем о грустном)

В общем, есть (и продолжают создаваться) иконки. Надо их положить на веб-страницу. Надо сделать это так, чтобы потом голова не болела про них весь остаток проекта и ещё пару лет в поддержке. Ну и есть дополнительные хотелки:
  • хочется вектора. Ну, ладно, вектор – это средство, а не цель. Цель – не беспокоиться ВООБЩЕ об изменении размеров, ретина дисплеях, сохранении изображения в разных форматах для разных целей.
  • хочется стилизации иконок. Потому что у нас из коробки как минимум два набора тем (светлая и тёмная), а то и контрастная, для людей с нестандартным зрением, а то и оранжевенькая какая-нибудь появится ближе к Новому году… В общем – одна и та же по сути иконка должна выглядеть слегка иначе в зависимости от выбранной на странице темы.
  • хочется динамической стилизации иконок. Статики – нам мало. Этого хватает для скриншотиков и рекламных буклетиков, но не для живых пользователей. А мы хотели жизни! Мы хотели ховера! Мы хотели селекшена!!! И дизаблить, дизаблить их всех!.. Извините.
  • НЕ хочется, чтобы в этом участвовал JavaScript в любой его форме и проявлении. Иконки – это внешний вид, а за него ответственный HTML + CSS. Ну, ладно, класс selected я готов навесить на элементы, но это последняя граница…

Есть и факторы, облегчающие задачу. Иконки сейчас (2015, осень, начинает снежить) в моде плоские, строгие. Если лет пять назад иконки пестрели, то сейчас это ушло под влиянием МС, Эппла, Материал Дизайна…

tl;dr Внимание. Следующие несколько разделов – это расплывание мыcлею по древу, причём вширь, обзор решений (в том числе – неудачных) и котик в разных ракурсах.
Кому хочется технических подробностей того, что же вышло в итоге – пожалуйте сюда.
А для остальных начнём по порядку...
Total votes 61: ↑58 and ↓3 +55
Comments 34

Как работает Интерактивное и Цифровое ТВ от ОнЛайм

Reading time 8 min
Views 81K
Интерактивное ТВ и Цифровое ТВ, они же IPTV и DVB-C, имеют много общего, например, позволяют смотреть современное телевидение в отличном качестве. В то же время, они являются разными услугами, рассчитанными на разную аудиторию и предоставляющими разный подход к просмотру телевизора. В этом материале мы рассмотрим обе услуги и расскажем о том, как они работают, что у них общего и что их различает.


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

Как заменить однородный фон прозрачным с помощью Imagemagick

Reading time 2 min
Views 30K
Бывает, что на сайт загружаются картинки с однородным фоном и возникает потребность в автоматической замене его (фона) на прозрачный.

Часто такая фича нужна для фотографий товаров в интернет-магазине, картинок, которые накладываются на корпоративный фон и других фоток, не портящих дизайн сайта. Вырезать каждую фотку вручную фотошопом довольно грустно, но есть php-методы, с помощью которых это можно «поставить на поток».
image
Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 9

Разбираемся с сеткой в Adobe Illustrator

Reading time 9 min
Views 146K

От переводчика


Привет, %юзернейм%!

Этот перевод как бы дополняет мою предыдущую публикацию про Pixel Perfect, без которого она была бы неполной, тем более что оригинальная статья про Pixel Perfect ссылается на оригинальную статью этого перевода.

Материал расчитан на новичков, и немного рассказывает о двух вещах:
  1. Как избежать той проблемы, из-за которой у вас в макетах расстояние между элементами или гайдами начинает включать в себя дробные части пикселей;
  2. Как использовать сетки для прототипирования в Adobe Photoshop и Adobe Illustrator.

Мне этот материал интересен с той точки зрения, что я был бы очень благодарен, если бы в самом начале моей работы дизайнером интерфейсов мне кто-нибудь рассказал о пиксельной сетке. Поэтому, я надеюсь, что облегчу кому-то жизнь, публикуя этот перевод.

Как и в прошлый раз, одна из целей, почему я пишу эту статью на Хабр (а не ограничиваюсь, к примеру, переводом на Tuts+) — это составление после перевода полезных ссылок по теме. Призываю хабражителей так же делиться своими соображениями и инструментами, которыми вы пользуетесь при создании сеток, может быть какими-то другими редакторами. Один мой знакомый товарищ прокомментировал предыдущую статью таким образом, что, конечно, материал прикольный, но сам он пользуется Sketch'ем, а там это всё из коробки. Расскажите, чем пользуетесь вы?

Кстати, хотя в статье речь идёт об Adobe Illustrator, в Adobe Photoshop можно так же использовать и пиксельную сетку, и привязку к пикселям, и свою собственную настраиваемую сетку.

Краткое содержание


  • Чтобы включить/выключить сетку в Adobe Illustrator/Photoshop, нажмите Ctrl + '
  • Чтобы включить/выключить гайды в Adobe Illustrator/Photoshop, нажмите Ctrl + ;


Ну, поехали.

Разбираемся с сеткой в Adobe Illustrator





Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Comments 0

Как считается Load Average

Reading time 7 min
Views 95K

Постановка вопроса


Недавно, во время собеседования в одну крупную компанию мне задали простой вопрос, что такое Load Average. Не знаю, на сколько правильно я ответил, но лично для себя пришло осознание, что точного ответа я на самом деле и не знаю.

Большинство людей наверняка знают, что Load Average — это среднее значение загрузки системы за некоторый период времени (1, 5 и 15 минут). Так же можно узнать некоторые подробности из данной статьи, про то, как этим пользоваться. В большинстве случаев этих знаний достаточно для того, что бы по значению LA оценивать загрузку системы, но я по специальности физик, и когда я вижу «среднее за промежуток времени» мне сразу становится интересна частота дискретизации на данном промежутке. А когда я вижу термин «ожидающие ресурсов», становится интересно, каких именно и сколько времени надо ждать, а так же сколько тривиальных процессов надо запустить, что бы получить за короткий промежуток времени высокий LA. И главное, почему ответы на эти вопросы не дает 5 минут работы с гуглом? Если вам данные тонкости так же интересны, добро пожаловать под кат.
Читать дальше →
Total votes 64: ↑63 and ↓1 +62
Comments 34

Upgrade до Middle PHP-разработчика за 3 месяца

Reading time 2 min
Views 193K

В очередной раз на меня свалилась задача найти хорошего PHP-программиста.
По результатам прозвона потенциальных кандидатов, 90% тех, кто мнит себя Middle, на самом деле Junior и годы опыта не спасают, потому что клепают однотипный код в пределах заданий, посланных свыше.
Прописал минимальный план желающим сделать рывок и перейти на следующий уровень без отрыва от производства.


Читать дальше →
Total votes 94: ↑55 and ↓39 +16
Comments 190

Удачная модель ветвления для Git

Reading time 10 min
Views 974K
Перевод статьи Vincent Driessen: A successful Git branching model

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



В качестве инструмента управления версиями всего исходного кода она использует Git.

Читать дальше →
Total votes 180: ↑171 and ↓9 +162
Comments 105

Не мамонт ли Вы? (пятничный тест; который ложь, да в ней намек)

Reading time 4 min
Views 72K
PHP развивается стремительно. И сам язык, и его реализация, и, особенно, сообщество. PHP перестаёт быть языком для быстрого клепания сайтиков и всё больше движется в сторону языка общего назначения, хотя путь этот будет долог — слишком много врожденных недостатков тянется с доисторических времён.

Как грибы растут стандарты, фреймворки, развивается и становится всё слаще синтаксис, растут разнообразные инструменты.

И это здорово!

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

image

Попробуйте пройти несложный тест и определить — не мамонт ли Вы в мире PHP? Не грозит ли Вам, как специалисту, вымирание в ближайшее время?

Тест, разумеется, пятничный и шуточный. Но в нём всё-таки есть доля истины.
Проверить степень своего оволосения и размер бивней
Total votes 119: ↑80 and ↓39 +41
Comments 245

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity