Как стать автором
Обновить
2
0

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

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

Один из сотни способов публикации нескольких production проектов на одном сервере

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

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

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

Делаем GraphQL API на PHP и MySQL. Часть 1: Установка, схема и запросы

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

В последнее время я все чаще и чаще слышу про GraphQL. И в интернете уже можно найти немало статей о том как сделать свой GraphQL сервер. Но почти во всех этих статьях в качестве бэкенда используется Node.js.

Я ничего не имею против Node.js и сам с удовольствием использую его, но все-таки большую часть проектов я делаю на PHP. К тому же хостинг с PHP и MySQL гораздо дешевле и доступнее чем хостинг с Node.js. Поэтому мне кажется не справедливым тот факт, что об использовании GraphQL на PHP в интернете практически нет ни слова.

В данной статье я хочу рассказать о том, как сделать свой GraphQL сервер на PHP с помощью библиотеки graphql-php и как с его помощью реализовать простое API для получения данных из MySQL.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии40

Глубокое обучение с R и Keras на примере Carvana Image Masking Challenge

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


Привет, Хабр!

Пользователи R долгое время были лишены возможности приобщиться к deep learning-у, оставаясь в рамках одного языка программирования. С выходом MXNet ситуация стала меняться, но своеобразная документация и частые изменения, ломающие обратную совместимость, все еще ограничивают популярность данной библиотеки.

Гораздо привлекательнее выглядит использование R-интерфейсов к TensorFlow и Keras с бекендами на выбор (TensorFlow, Theano, CNTK), подробной документацией и множеством примеров. В этом сообщении будет разобрано решение задачи сегментации изображений на примере соревнования Carvana Image Masking Challenge (победители), в котором требуется научиться отделять автомобили, сфотографированные с 16 разных ракурсов, от фона. "Нейросетевая" часть полностью реализована на Keras, за обработку изображений отвечает magick (интерфейс к ImageMagick), параллельная обработка обеспечивается parallel+doParallel+foreach (Windows) или parallel+doMC+foreach (Linux).

Читать дальше →
Всего голосов 60: ↑58 и ↓2+56
Комментарии1

Как разобраться в Tensorflow и не умереть, а даже научить чему-то машину

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

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


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

Анонс веб-интерфейса Kubernetes Web View (и краткий обзор других web UI для Kubernetes)

Время на прочтение7 мин
Количество просмотров17K
Прим. перев.: Автор оригинального материала — Henning Jacobs из компании Zalando. Он создал новый веб-интерфейс для работы с Kubernetes, который позиционируется как «kubectl для веба». Почему новый Open Source-проект появился и каким критериям не удовлетворили уже существующие решения — читайте в его статье.



В этой публикации я рассматриваю различные веб-интерфейсы Kubernetes с открытым исходным кодом, предъявляю свои требования к универсальному UI и рассказываю, почему разработал Kubernetes Web View — интерфейс, призванный облегчить поддержку и устранение неполадок сразу во множестве кластеров.

Сценарии использования


В Zalando мы обслуживаем большое количество пользователей Kubernetes (900+) и кластеров (100+). Есть пара типичных случаев использования, в которых бы очень пригодилась помощь специализированного веб-инструмента:

  1. общение с коллегами в рамках поддержки;
  2. реагирование на инциденты и расследование их причин.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии6

Отличия == и === в JavaScript

Время на прочтение2 мин
Количество просмотров208K
Сразу предупрежу, да, статья немного некорректная, добро пожаловать в комментарии, там неплохие уточнения ).

Доброго времени суток.


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

Оператор == сравнивает на равенство, а вот === — на идентичность. Плюс оператора === состоит в том, что он не приводит два значения к одному типу. Именно из-за этого он обычно и используется.

Читать дальше →
Всего голосов 107: ↑61 и ↓46+15
Комментарии68

Ты не компилятор

Время на прочтение3 мин
Количество просмотров32K
На конференциях часто на стендах раздают подарки. Обычно нужно решить какую-то задачку.

Невинная головоломка


Некоторые из задач предусматривают решение головоломки с кодом, вроде такой:

Каким будет результат выполнения следующего кода:

public class Sum {

    public static void main(String[] args) {
        System.out.println(0123 + 3210);
    }
}

  1. 3293
  2. 3333
  3. Этот код не компилируется
  4. Этот код приводит к ошибке IllegalArgumentException
  5. Ничего из вышеперечисленного

Моя обычная реакция — или немедленно покинуть стенд, или, если время позволяет, набрать код на ноутбуке, чтобы посмотреть результат (или поискать в Google). Вы можете упрекнуть меня в лености, но я предпочитаю представлять себя экспертом по тайм-менеджменту.
Читать дальше →
Всего голосов 98: ↑85 и ↓13+72
Комментарии173

Как общаются машины — протокол MQTT

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

В предыдущей статье мы разбирали протокол Modbus, являющийся стандартом де-факто в промышленности для M2M-взаимодействия. Разработанный в далеком 1979 году, он имеет ряд существенных недостатков, которые решает MQTT.

Протокол MQTT достаточно молод (стандартизирован только в 2016 году), но уже успел получить широкое распространение в промышленности и IoT. Он был специально разработан максимально компактным, для нестабильных интернет-каналов и маломощных устройств, и позволяет гарантированно доставлять сообщения в случае потери пакетов и обрывов связи.

Главные особенности протокола MQTT:

  • Компактный и легковесный — минимальные накладные расходы на пересылку данных, для экономии трафика.
  • Устойчивость к потерям — гарантированная доставка в условиях нестабильных сетевых подключений.
  • Асинхронный — позволяет обслуживать большое количество устройств, и не зависит от сетевых задержек.
  • Поддержка QoS — возможность управлять приоритетом сообщений и гарантировать доставку сообщения адресату.
  • Динамическая конфигурация — не требует предварительно согласования полей и форматов данных, может конфигурироваться «на лету».
  • Работает за NAT — клиенты могут находиться за NAT, только сервер (брокер) должен иметь реальный IP. Позволяет обойтись без VPN и пробрасывания портов.
  • Удобная адресация — поля данных имеют текстовые названия, понятные для человека. Не нужно запоминать цифровые адреса и битовые смещения.
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии33

Principle: инструмент для прототипирования, который вы должны попробовать

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


От переводчика
Principle — приложение для Mac OS, которое позволяет в два счета создать анимацию элементов пользовательского интерфейса и сгенерировать его интерактивный прототип. Будь то многоэкранное приложение или просто придуманный вами контрол, так просто и быстро реализовать это раньше не позволял ни один сервис. Бенжамин Бергер — бета-тестер ранней версии Principle, описал свой опыт в статье на Medium, где рассказал о первых впечатлениях и привел пару наглядных примеров использования.
Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии10

Порыв, позыв или прорыв? Рассказываем всю правду про крупнейший хакатон страны

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

Зачем?


У любого известного в широком кругу узких специалистов хакатона обычно есть конкретная и заявленная открыто цель. Согласитесь, никто не станет тратить десятки, а то и сотни тысяч долларов на раскрутку, аренду огромного помещения и свежевыжатые морковные соки just for fun. Поэтому на своих пестрых и адаптированных под смартфоны лендингах организаторы всегда красивым и жирным шрифтом пишут зачем это всё нужно.

Страница HackPrinceton заявляет, что мероприятие соберет “лучших разработчиков и дизайнеров со всей страны, чтобы создать потрясающие sowtware- и hardware-проекты”. Не менее популярный в США проект HackDavis определяет свою миссию как “hack for social good”, то есть делать проекты ради общественного блага. Есть и более специализированные варианты. Хакатон FlytCode просит участников заняться инновационными алгоритмами для автоматизации полетных миссий дронов. Наверняка есть хакатоны, которые призваны помочь людям бороться с мигренью или наконец-таки отлепить тинейджеров от их смартфонов.

Между тем, у нас в России вообще всегда все либо совсем легко, весело и просто так, либо серьезно в самой крайней степени. Но серьезно вовсе не значит скучно. Рассказываем, каким будет крупнейший хакатон страны.

image
Читать дальше →
Всего голосов 8: ↑4 и ↓40
Комментарии3

Яндекс: умный дом по-взрослому

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


Недавно компания Яндекс запустила свою систему «умного дома». Нам предлагают купить недорогие работающие по Wi-Fi устройства: адаптер в розетку, лампочку и ИК пульт. Интересно, что у разработчиков «умных» устройств появилась возможность создать свои навыки «умного дома», это позволит подключить девайсы к системе Яндекса и управлять ими голосом через Алису. В списках навыков появляется всё больше новых брендов. Алиса прекрасно понимает русскую речь, что делает ее безусловным лидером среди голосовых ассистентов на российском рынке.
Однако, не всё так гладко…
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Комментарии103

Шаблоны проектирования в React

Время на прочтение7 мин
Количество просмотров45K
Шаблоны проектирования, которые возникли и развились в экосистеме React за время её существования, улучшают читабельность и чистоту кода, облегчают повторное использование компонентов.

Автор этого материала говорит, что начал работать с React около трёх лет назад. В то время ещё не было устоявшихся практик, изучая которые и следуя которым можно было бы улучшить качество своих разработок.

Сообществу React понадобилось около двух лет для того, чтобы выработать несколько идей, которые теперь стали популярными. Тут можно отметить переход с React.createClass к классам ES6 и к чистым функциональным компонентам, отказ от миксинов и упрощение API. Теперь, учитывая то, что число React-разработчиков постоянно растёт, то, что в развитие этого проекта вкладываются серьёзные силы, можно наблюдать эволюцию нескольких интересных шаблонов проектирования. Этим шаблонам и посвящён данный материал.
Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии5

Погружение в свёрточные нейронные сети. Часть 5 / 1 — 9

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

Полный курс на русском языке можно найти по этой ссылке.
Оригинальный курс на английском доступен по этой ссылке.



Выход новых лекций запланирован каждые 2-3 дня.

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

Как можно использовать прерываемые виртуальные машины Яндекс.Облака и экономить на решении масштабных задач

Время на прочтение6 мин
Количество просмотров16K
Сегодня мы хотим рассказать о такой полезной функции Яндекс.Облака как прерываемые виртуальные машины. Это специальная опция, которую вы можете выбрать при создании виртуальной машины, чтобы использовать вычислительные ресурсы по сниженной цене. Что же такого особенного в прерываемых виртуальных машинах, почему они стоят дешевле обычных и в каких случаях разумно их применять?


Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии8

Официальный сайт Node.js теперь на русском

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

nodejs


По горячим следам, наконец-то, принятого пулл-реквеста, спешу объявить что официальный сайт Node.js теперь доступен на русском языке.

Читать дальше →
Всего голосов 60: ↑59 и ↓1+58
Комментарии19

Обзор способов и протоколов аутентификации в веб-приложениях

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


Я расскажу о применении различных способов аутентификации для веб-приложений, включая аутентификацию по паролю, по сертификатам, по одноразовым паролям, по ключам доступа и по токенам. Коснусь технологии единого входа (Single Sign-On), рассмотрю различные стандарты и протоколы аутентификации.

Перед тем, как перейти к техническим деталям, давайте немного освежим терминологию.

  • Идентификация — это заявление о том, кем вы являетесь. В зависимости от ситуации, это может быть имя, адрес электронной почты, номер учетной записи, итд.
  • Аутентификация — предоставление доказательств, что вы на самом деле есть тот, кем идентифицировались (от слова “authentic” — истинный, подлинный).
  • Авторизация — проверка, что вам разрешен доступ к запрашиваемому ресурсу.


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

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

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

Аутентификация в Node.js. Учебные руководства и возможные ошибки

Время на прочтение12 мин
Количество просмотров42K
Однажды я отправился на поиск учебных руководств по аутентификации в Node.js/Express.js, но, к сожалению, не смог найти ни одного, которое меня бы полностью устроило. Некоторые были неполными, некоторые содержали ошибки в сфере безопасности, вполне способные навредить неопытным разработчикам.

Сразу скажу, что я всё ещё нахожусь в поиске надёжного, всеобъемлющего решения для аутентификации в Node/Express, которое способно составить конкуренцию Devise для Rails. Однако, удручающая ситуация в сфере руководств подвигла меня на подготовку этого материала. Тут я разберу некоторые наиболее распространённые ошибки в области аутентификации и расскажу о том, как их избежать.

image
Читать дальше →
Всего голосов 31: ↑25 и ↓6+19
Комментарии3

10 основных ошибок при разработке на Node.js

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


C момента появления Node.js его и критикуют, и превозносят. Споры о достоинствах и недостатках этого инструмента не утихают и, вероятно, не утихнут в ближайшее время. Однако часто мы упускаем из виду, что критика любого языка или платформы основывается на возникающих проблемах, зависящих от того, как мы эти платформы используем. Вне зависимости от того, насколько Node.js усложняет написание безопасного кода и облегчает его распараллеливание, платформа существует уже довольно давно, и на ней создано огромное количество надёжных и сложных веб-сервисов. Все они хорошо масштабируются и на практике доказали свою устойчивость.

Но, как и любая платформа, Node.js не застрахован от ошибок самих разработчиков. В одних случаях падает производительность, в других — система становится практически непригодной к использованию. И в этом посте я хотел бы рассмотреть 10 наиболее частых ошибок, которые делают разработчики с недостаточным опытом работы с Node.js.
Читать дальше →
Всего голосов 85: ↑74 и ↓11+63
Комментарии45

Информация

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