Pull to refresh
1
0
Inessa Matuznaya @Incher

Backend Developer

Send message

Сравниваем PHP FPM, PHP PPM, Nginx Unit, React PHP и RoadRunner

Reading time10 min
Views52K


Тестирование производилось с помощью Yandex Tank.
В качестве приложения использовались Symfony 4 и PHP 7.2.
Целью являлось сравнение характеристик сервисов при разных нагрузках и нахождение оптимального варианта.
Для удобства все собрано в docker-контейнеры и поднимается с помощью docker-compose.
Под катом много таблиц и графиков.
Читать дальше →

Учебный курс по React, часть 1: обзор курса, причины популярности React, ReactDOM и JSX

Reading time14 min
Views194K
Представляем вашему вниманию первые 5 занятий учебного курса по React для начинающих. Оригинал курса на английском, состоящий из 48 уроков, опубликован на платформе Scrimba.com. Возможности этой платформы позволяют, слушая ведущего, иногда ставить воспроизведение на паузу и самостоятельно, в том же окне, в котором ведётся демонстрация, экспериментировать с кодом. Курс показался нам интересным, мы решили перевести его на русский и преобразовать в формат традиционных публикаций.



Полагаем, этот курс будет полезен всем, кто, что называется, «не умеет в React», но хочет научиться. В то же время, на то, чтобы превратить этот курс в обычные публикации, нужны немалые силы и время, поэтому мы, прежде чем принимать окончательное решение о запуске этого проекта, предлагаем всем желающим оценить курс и поучаствовать в опросе о целесообразности его перевода.
Читать дальше →

ТОР-10 — чему стоит научиться в 2019

Reading time4 min
Views17K


От переводчика: публикуем для вас статью профессора Уильяма Бучанана — гика и разработчика. Он рассказывает о десяти главных вещах, которые хотел бы освоить в наступающем 2019 году.

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

Топ-10 фильмов про ИТ

Reading time7 min
Views172K
Привет, Хабр!

Летом в нашем ланитовском блоге мы делали подборку сериалов про ИТ (и хакеров), а теперь в преддверии Нового года пришло время полного метра. Такие «Топ-10 фильмов про ИТ» появляются примерно раз в год, и список там примерно один и тот же: «Хакеры» с Джоли, «Пароль «Рыба-меч» и «Матрица».

Кстати, о последней. При всем уважении к братьям сёстрам Вачовски и трилогии, мы таки не относили бы «Матрицу» к фильмам про айтишников или хакеров. То, что мистер Андерсон работает программистом, а вне работы немного хакерит, всё же не является сюжетной канвой фильма. Рискуем возобновить старый холивар, но «Матрица» — это таки киберпанк. Контраргументы приветствуются.

Так вот, про подборку. Мы решили предложить вам  фильмы посвежее. Под катом нет Джоли и знаменитой сцены из «Пароль „Рыба-меч“», но есть фильмы про ИТ, суперкомпьютеры, и информационную безопасность, большинство из которых выпущены в 2010–2018 годах.

Кадр из фильма «Апгрейд»

Годные туториалы на YouTube

Reading time3 min
Views57K
На YouTube много бесплатных обучающих и курсов и туториалов.

image

Я веду freeCodeCamp, YouTube канал без рекламы. У нас есть полные видеокурсы и учебные пособия по многим популярным языкам программирования и фреймворкам (включая JavaScript, Python, Java, Ruby, C, C ++, Angular и не только).

Есть и другие YouTube каналы с бесплатными уроками по программированию, которые ничуть не хуже, а иногда даже лучше, чем платные.

В этой статье я перечисляю десять YouTube каналов, которые можно посмотреть, чтоб прокачаться в программировании. Расположение каналов — случайное.

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

Есть много отличных каналов, для которых у меня не хватило места в этом списке. Поделитесь своими находками в комментах.

Публичное письмо биохакера Джошуа Зайнера

Reading time2 min
Views16K


Я всё время возвращаюсь к вопросу: «Пошли бы вы в тюрьму, чтобы спасти чью-то жизнь?» Как вы видите, я получаю много писем от людей, которые обращаются за медицинской помощью. Я пытаюсь убедить себя, что не смогу им помочь, но реальность такова, что система сломала нас. Мы обязаны быть готовы сделать всё, чтобы спасти жизни. Мы обязаны относиться ко всем как к близкому человеку. Вместо этого люди остаются умирать и страдать, потому что мы, как общество, слишком боимся взять на себя ответственность за рискованные или самые современные способы лечения.
Читать дальше →

Изменение собственных генов всего лишь одной инъекциeй – если, конечно, вы везучи

Reading time6 min
Views44K
image

Биохакер Джошуа Зайнер хочет создать мир, в котором любой человек способен и в праве экспериментировать со своей ДНК.

«У нас здесь немного ДНК и шприц», – говорит Джошуа Зайнер в комнате, полной синтетических биологов и других исследователей. Он наполняет иглу и вонзает её в кожу. «Это изменит мои мышечные гены, и даст мне больше мышечной массы».
Читать дальше →

Курс MIT «Безопасность компьютерных систем». Лекция 1: «Вступление: модели угроз», часть 1

Reading time15 min
Views144K

Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3

IT в Германии — как искать работу в крупных городах Германии

Reading time13 min
Views105K
Уехать в Германию при наличии опыта работы в IT довольно просто, и множество статей на эту тему помогают определиться с выбором. Эта статья не будет исключением, в ней собраны истории 5х эмигрантов, которые поделились своим опытом работы в крупных городах Германии и рассказали, что нужно делать, чтобы найти работу и успешно продвигаться по карьерной лестнице. В качестве бонуса — особенности выживания в иностранном коллективе и приятные фишки немецкой рабочей среды. Статья написана в формате мини-интервью, 6 вопросов и ответов от каждого автора


Читать дальше →

Туннели и VPN, устойчивые к DPI

Reading time10 min
Views167K
Мы живем в интересное время. Я бы даже сказал, в удивительное. По одну сторону мы видим неких лиц, которые очень хотят знать, о чем между собой разговаривают другие люди, и очень хотят указывать им, что можно читать, а что нельзя. С другой стороны граждане, которые хотят отстоять свои права тайны личной переписки и свободного получения информации, и не хотят, чтобы факты этой самой переписки и получения этой самой информации были использованы против них. Бонусом страдает огромное количество сторонних сайтов, сервисов и бизнесов, которых задевает «ковровыми блокировками».

Но нет, эта статья не об обществе, а о технологиях.

image
Читать дальше →

Правильная работа с исключениями в PHP

Reading time4 min
Views69K
В предыдущей статье я предложил свести все «механизмы ошибок» к исключениям, поэтому логично будет объяснить, как правильно работать с исключениями в PHP.
Сначала поясню, почему я выбрал именно исключения, как механизм работы с ошибками:
  1. Исключения — это гибкий, расширяемый метод обработки ошибок;
  2. Это стандартизованный механизм – человеку, не работавшему с вашим кодом, не нужно будет читать мануал, чтобы понять, как обрабатывать ошибки. Ему достаточно знать, как работают исключения;
  3. С исключениями гораздо проще находить источник ошибок, так как всегда есть стек вызовов (trace).

Сразу скажу, что в этой статье я не открываю Америку. Описаны стандартные принципы работы с исключениями плюс некоторые особенности, налагаемые PHP. Полезно будет почитать новичкам, хотя может быть и опытные разработчики найдут что-нибудь новое для себя.
Несколько советов по работе с исключениями:

Пособие по webpack

Reading time8 min
Views348K


Давайте сначала разберемся, зачем нужен вебпак (webpack), и какие проблемы он пытается решить, а потом научимся работать с ним. Webpack позволяет избавиться от bower и gulp/grunt в приложении, и заменить их одним инструментом. Вместо bower'а для установки и управления клиентскими зависимостями, можно использовать стандартный Node Package Manager (npm) для установки и управления всеми фронтэнд-зависимостями. Вебпак также может выполнять большинство задач grunt/gulp'а.


Bower это пакетный менеджер для клиентской части. Его можно использовать для поиска, установки, удаления компонентов на JavaScript, HTML и CSS. GruntJS это JavaScript-утилита командной строки, помогающая разработчикам автоматизировать повторяющиеся задачи. Можно считать его JavaScript-альтернативой Make или Ant. Он занимается задачами вроде минификации, компиляции, юнит-тестирования, линтинга и пр.

Допустим, мы пишем простую страницу профиля пользователя в веб-приложении. Там используется jQuery и библиотеки underscore. Один из способов — включить оба файла в HTML:

Читать дальше →

Неприятные ошибки при написании юнит тестов

Reading time9 min
Views11K
На днях я буду делать внутренний доклад, на котором расскажу нашим разработчикам про неприятные ошибки, которые могут возникнуть при написании юнит тестов. Самые неприятные с моей точки зрения ошибки — когда тесты проходят, но при этом делают это настолько некорректно, что лучше бы не проходили. И я решил поделиться примерами таких ошибок со всеми. Наверняка ещё что-нибудь подскажете из этой области. Примеры написаны для Node.JS и Mocha, но в целом эти ошибки справедливы и для любой другой экосистемы.

Чтобы было интереснее, часть из них оформлена в виде проблемного кода и спойлера, открыв который, вы увидите, в чём была проблема. Так что рекомендую сначала смотреть на код, находить в нём ошибку, а затем открывать спойлер. Решения проблем указано не будет — предлагаю самим подумать над ним. Просто потому, что я ленивый. Порядок списка не имеет глубокого смысла — просто это очерёдность, в которой я вспоминал про всякие реальные проблемы, которые доводили нас до кровавых слёз. Наверняка многие вещи покажется вам очевидными — но даже опытные разработчики могут случайно написать такой код.

Читать дальше →

Как безопасно избавиться от своих электронных устройств

Reading time16 min
Views23K

Как освободить ящик от старых телефонов, ноутбуков и жёстких дисков, не беспокоясь по поводу того, что ваши данные попадут кому-то в руки




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

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

Продолжайте читать, если хотите узнать, почему это так, и как шифрование может помочь уменьшит эти риски. А также что лучше – продать старые устройства или просто уничтожить?
Читать дальше →

Полезный обзор. 28 книг, которые повлияли на мое мышление, вдохновили или сделали лучше

Reading time7 min
Views158K


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

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

Конспект доклада «Что мы знаем о микросервисах» (HL2018, Avito, Вадим Мадисон)

Reading time4 min
Views11K
Привет, %username%!

Совсем недавно закончилась конференция Highload++ (еще раз спасибо всей команде организаторов и olegbunin лично. Было очень круто!).

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

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

image
Читать дальше →

Конспект доклада «Как стать классным спецом по бд» (HL2018, Data Egret, Илья Космодемьянский)

Reading time2 min
Views15K
Первый конспект лекции с HighLoad был встречен позитивно, поэтому продолжаю.

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

В докладе затронуты вопросы:

  • Кем собственно мы хотим стать?
  • Надо-ли оно нам?
  • Теоретические навыки
  • Практические навыки (технические)
  • Практические навыки (нетехнические)

image
Читать дальше →

Рецепт полезного код-ревью от разработчика из Яндекса

Reading time9 min
Views48K



Привет. Меня зовут Сергей, последние пять лет я работаю в Яндексе. За это время участвовал в разработке одиннадцати проектов. Писал код на JavaScript, Python и C++. Некоторые проекты делал в одиночку, другие разрабатывал в группе из восьми человек. Но в каждой команде, на всех проектах, вне зависимости от языка программирования я использовал код-ревью.


С помощью код-ревью я постоянно узнаю что-то новое. Иногда, глядя на чужой код, хочется воскликнуть: "А что, так тоже можно?". В чужом коде я нахожу интересные приёмы и беру их себе на вооружение. Много новых знаний черпаю из комментариев к моему коду. Для меня стало открытием, что люди любят делиться своим опытом. Даже когда я разрабатываю проект в одиночку, то прошу ребят из другой команды посмотреть мои пулреквесты. Это мотивирует писать красивый и понятный код.


Но так было не всегда. Когда-то ревью было для меня наказанием. Я мог неделю с вдохновением писать код, вкладывая в него все силы. Отправлял пулреквест, трижды пинговал ревьювера, а в ответ получал сухое "вроде ок" или, что ещё хуже, десятки комментариев не по существу.


Мне на ревью приходили пулы из пяти тысяч строк. Я часами пытался разобраться в коде, по сотне раз скроллил от функции к тесту и обратно. Писал десятки бесполезных комментариев о пропущенной точке с запятой. Всё это жутко меня раздражало. Часто откладывал ревью на потом, и у меня накапливались десятки непросмотренных пулов.


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

Читать дальше →

Docker для Symfony 4 — от локалки до production

Reading time15 min
Views50K

Предистория


Одним прекрасным днём мне понадобилось развернуть среду разработки для своего проекта. Vagrant уже порядком поднадоел и хотелось иметь единую среду разработки для всех участников проекта которая была бы идентичной production серверу. Соответственно наслушавшись информации про хипстерский docker, я решил начать с ним разбираться. Далее я постараюсь максимально подробно описать все шаги начиная от установки докера на локалке вплоть до разворачивания продуктива на KVM.

Исходный стек технологий:

— Docker
— Symfony 4
— nginx
— php-fpm
— postgresql
— elasticsearch
— rabbitmq
— jenkins

Железо:

— ноутбук под ОС Ubuntu 16.04
— продакшн сервер на хостинге KVM

Почему кроме технологического стека я перечислил ещё и стек железа?

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

Первый и наверно самый важный аспект при начале работы с докером — это операционная система вашего ноутбука. Проще всего работать с докером именно на linux системах. Если вы работаете на Windows или Mac то у вас 100 % будут некоторые сложности, но эти сложности не будут являться критическими и при желании «нагуглить» как это исправляется не составит никаких проблем.

Второй вопрос — это хостинг. Зачем нужен Hosting именно с типом виртуализации KVM? Причина в том, что виртуализация VPS разительно отличается от KVM и установить сам docker на VPS у вас попросту не выйдет, так как VPS распределяет ресурсы сервера динамически.

Подитог: для самого быстрого старта на докере резоннее всего выбирать Ubuntu в качестве локальной операционки и KVM хостинг (либо собственный сервер). Далее рассказ пойдёт опираясь именно на эти две составляющие.
Читать дальше →

Методики и инструменты для разработки стилей веб-страниц

Reading time13 min
Views24K
Не будем ходить вокруг да около, скажем прямо: процесс написания хорошего CSS-кода может быть очень и очень тяжёлым. Многие разработчики не хотят связываться со стилями. Они готовы заниматься всем, чем угодно, но только не CSS.



Автор материала, перевод которого мы предлагаем сегодня вашему вниманию, говорит, что он и сам не любил ту часть веб-разработки, которая имеет отношение к CSS. Но от этого никуда не деться. В наши дни огромное внимание уделяется дизайну, и тому, что называют «пользовательским опытом», а без CSS тут никак не обойтись. Цель этого материала — помочь всем желающим улучшить свои навыки в разработке и применении стилей веб-страниц.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity