Как стать автором
Обновить
20
0
Иван @IDriuk

программист

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

Тонкости модульной системы ECMAScript 2015 (ES6)

Время на прочтение5 мин
Количество просмотров117K
Уже около полугода я пишу на ES6 (который в итоге назвали ES-2015) и ES7, с использованием бабеля в качестве транслятора. Писать мне приходилось в основном серверную часть, соответственно, использование модулей было само собой разумеющимся: до ES6 — с помощью модульной системы самой ноды, а теперь — с помощью стандартизированной семантики самого языка. И мне захотелось написать статью, в которой расписать тонкости, плюсы, подводные камни и необычности новообретенной модульной системы языка: отчасти — чтобы другим было проще, отчасти — чтобы разобраться во всём окончательно самому.

Я разберу, что такое модуль, как происходит экспорт сущностей, как происходит импорт сущностей, чем система модулей ES6 отличается от системы модулей в NodeJS.
Итак, начнем.
Всего голосов 39: ↑39 и ↓0+39
Комментарии38

Let's Encrypt и nginx: настройка в Debian и Ubuntu

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

image


Если вдруг вся эта история прошла мимо вас, Let's Encrypt — центр сертификации от некоммерческой организации ISRG, существующий при поддержке EFF и многих компаний, взявшей на себя миссию дать людям бесплатные SSL/TLS сертификаты для сайтов и серверов. Сертификаты от Let's Encrypt уже используются на более чем 10 миллионах доменов.


Кроме очевидной бесплатности у сертификатов от Let's Encrypt есть особое, отсутствующее у любых других коммерческих сертификационных центров, достоинство: если вы однажды получили сертификат от Let's Encrypt, то, при прочих равных, это навсегда. Не нужно раз в год-два вручную обновлять сертификаты. Не нужно вообще вспоминать что сертификаты где-то есть. Получил, настроил и забыл!


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


Организации автоматического обновления сертификатов в статье уделено пристальное внимание, с тем чтобы вы могли в полной мере оценить это принципиальное преимущество Let's Encrypt.

Читать дальше →
Всего голосов 48: ↑46 и ↓2+44
Комментарии96

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

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

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


Docker в 2017


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


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

Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии53

О структуре и масштабировании сложных приложений для Node.JS

Время на прочтение7 мин
Количество просмотров20K
Структура программных проектов – это важно. От решений, принятых в самом начале работы, зависит то, какой будет эта работа в течение всего жизненного цикла продукта.



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

Вот основные темы, которые мы здесь раскроем:

  • Разработка хорошо масштабируемых приложений, которые легко поддерживать.
  • Качественное разделение конфигурационных данных и основного кода приложения.
  • Использование в Node.js-приложениях процессов различных типов.

Здесь мы, иллюстрируя различные концепции, будем пользоваться приложением-примером, полный код которого можно найти на GitHub.
Читать дальше →
Всего голосов 28: ↑22 и ↓6+16
Комментарии5

Серия видеоуроков по Git для новичков

Время на прочтение1 мин
Количество просмотров114K
Скорее всего, если вас привлекло название статьи, то вы начинаете свой путь знакомства с системой контроля версий Git. В данной статье я приведу 10+ видео о пошаговом вхождении в контроль версии используя Git. Данного курса будет вполне чем достаточно для работы с такими популярными сервисами как GitHub и Bitbucket.

Однажды мой знакомый, который только начинал свой путь в ИТ кинул мне данный мемчик что слева, с вопросом "А чем плохо то?", поэтому чтобы понимать данную шутку и уметь работать с самым популярным на сегодня VCS (Version Control System) рекомендую к ознакомлению серии видеоуроков, которую я привел ниже.
Читать дальше →
Всего голосов 58: ↑49 и ↓9+40
Комментарии43

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

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

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


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


Читать дальше →
Всего голосов 122: ↑105 и ↓17+88
Комментарии108

Грабли mongoose

Время на прочтение4 мин
Количество просмотров59K
Хакер — человек, который наступает на грабли, которые спрятаны в сарай и закрыты на замок

Mongoose — самый популярный модуль для работы с mongodb на javascript. Примеры на сайте позволяют достаточно быстро и успешно начать его использовать, однако mongoose имеет ряд неожиданных особенностей, которые могут заставить программиста начать выдирать волосы на голове. Именно об этих особенностях я и собираюсь рассказать.
Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии10

С помощью LAMP я создал SaaS-сервис приносящий $3700 в месяц. Моя история

Время на прочтение11 мин
Количество просмотров70K
В этой статье я хотел бы поделиться своим опытом создания SaaS-сервиса на базе LAMP стека, Postio и доведения сервиса до состояния, когда он стал приносить 3 700 долларов ежемесячно (до обрушения рубля было почти 7 000). Сразу надо сказать, что эта история не имеет ничего общего с инвесторами, с золотой лихорадкой Кремниевой долины и с какой-то сверхсовременной технологией. Просто незамысловатая история от независимого разработчика о создании прибыльного SaaS-сервиса, который может сделать любой. Этот веб-сервис был сделан для внутреннего рынка России, поэтому я перевёл всё на английский и в доллары для удобства (пожалуйста, обратите внимание, что это перевод моей статьи, которая изначально была написана для англоязычной аудитории). Но, с другой стороны, этот опыт является довольно универсальным и может быть применён везде. По сути, это инструкция по созданию проектов такого рода.

Три года назад я решил заняться SMM, и самым простым способом сделать это показалось запустить свою собственную группу в какой-нибудь нише и попытаться развить её. Facebook был уже, мягко говоря, довольно конкурентным на тот момент, поэтому я запустил свою тестовую группу на базе «ВКонтакте». Я выбрал очень популярную нишу, потому что всё, что я хотел, — это научиться, а не доминировать на рынке.

Наверное, я должен немного отвлечься и сказать, что VK.com имел и до сих пор имеет процветающую «экосистему» таких групп, которая приносит прибыль их владельцам. Это — своеобразный рынок, который Facebook прикрыл уже давно. И этот базар является прекрасной средой для обучения и экспериментов.
Всего голосов 106: ↑95 и ↓11+84
Комментарии101

Как основать стартап и не сломать собственную жизнь

Время на прочтение16 мин
Количество просмотров73K
Участие в стартапе по эмоциям напоминает езду по американским горкам, когда в какой-то момент вы чувствуете, что владеете миром, а через секунду — что всё рушится. Это руководство может помочь в запуске стартапа.

Данная статья является обновлением моей предыдущей статьи, написанной в 2014 году. Прошло уже почти три года с той поры, и я хотел бы дать улучшенную информацию посвежее.

В течение 6 лет я работал исключительно в стартапах. Я был «программистом» — специалистом, которого нанимали для преобразования идей в «реальный» бизнес. У меня никогда не было желания запустить моё собственное дело: стоит ли рисковать комфортной жизнью ради идеи, которая может не сработать?

Затем 4 года назад я взялся за трудное дело, основав стартап — 5-дневные курсы обучения программированию в Лондоне под названием Steer. Через два года я оставил Steer, запустив SuperHi.

Прежде чем я начну рассказ, хотел бы обратить, что я не эксперт по стартапам. Вообще, не думаю, что кто-то может быть таким экспертом, поскольку опыт, получаемый при запуске стартапов, сильно различается. Однако множество людей является новичками как в вопросах самих стартапов, так и информационных технологий, поэтому я адресую настоящее руководство всем, кто интересуется возможностью погружения в тёмные воды этого бизнеса.
Читать дальше →
Всего голосов 40: ↑31 и ↓9+22
Комментарии4

Знакомство с Styled components 

Время на прочтение4 мин
Количество просмотров37K
Предлагаем вашему вниманию перевод свежей ознакомительной статьи Cаши Грифа (Sacha Greif), соавтора книги «Discover Meteor», о специфике работы с библиотекой Styled components.
«СSS – странная штука. Его основам можно обучиться за 15 минут, но на то, чтобы найти хороший способ организации стилей, могут уйти годы.



Отчасти это объясняется особенностями самого языка. В своем исходном виде CSS довольно ограничен — никаких переменных, циклов или функций. В то же время, он развязывает вам руки, обеспечивая возможность задавать стиль элементам, классам, ID или любым их комбинациям.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии30

Веб-анимация: где, зачем и почему

Время на прочтение6 мин
Количество просмотров51K
Качественная и уместная анимация веб-страниц радует глаз и помогает в работе. Это – одна из основ веб-дизайна наших дней. Взаимодействие пользователей с современными веб-сайтами серьёзно завязано именно на анимации. Она способна сообщать о неких состояниях страницы, направлять внимание. Анимация помогает пользователю увидеть результат его действий и может влиять на его поведение.

image

Когда анимация способна улучшить впечатления пользователя от работы со страницами? Что именно стоит «оживить» для того, чтобы взаимодействие с ресурсом стало бы более удобным, понятным, увлекательным?
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии13

Трансляция WebRTC-видеопотока из браузера на YouTube Live в 65 строк JavaScript/HTML-кода

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


В данной статье мы расскажем как работают трансляции Youtube Live и покажем как человек с базовыми знаниями JavaScript может закодить трансляцию на Youtube Live с HTML страницы с использованием технологии WebRTC.

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

1) Базовые знания JavaScript / HTML
2) Умение работать в командной строке Linux.
3) Прямые руки.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии15

Облачное видеонаблюдение: Что должен знать каждый?

Время на прочтение13 мин
Количество просмотров137K
О облачном видеонаблюдении (VSaaS) написано много, но, как правило, вся эта информация достаточно разрознена, и часто посвящена какой либо одной стороне облачного видеонаблюдения. В итоге у пользователей часто создается впечатление, что вроде бы о чем речь и понятно, но цельной картины и понимания как это можно использовать нет.

Облачное видеонаблюдение одна из самых перспективных технологий наряду с видеоаналитикой. Редкий эксперт не объявит видеоаналитику и облачное видеонаблюдение «The Next Big Thing» систем видеонаблюдения.

Мировой рынок VSaaS в прошедшем 2015 году достиг уровня 789,5 миллионов долларов по данным доклада IHS, что от общего объема рынка видеонаблюдения составляет примерно 5%.

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

image
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии0

Как создавать, собирать, устанавливать и использовать пакеты с программами и библиотеками для UNIX-подобных систем

Время на прочтение13 мин
Количество просмотров44K
Речь пойдёт о программах и библиотеках для UNIX-подобных систем, распространяемых в виде исходного кода (в том числе в виде тарболлов), написанных обычно на C и C++ (хотя этот же порядок работы может применяться к софту на любом языке). Многие вещи в этой статье написаны применительно конкретно к GNU/Linux, хотя многое из статьи может быть обобщено и на другие UNIX-подобные ОС.

Под словом «пакет» я понимаю в этой статье пакет с исходными текстами, причём не пакет конкретного дистрибутива GNU/Linux, а просто пакет, исходящий от оригинальных авторов софта (UPD от 2017-02-09: кроме тех случаев, где из контекста ясно, что слово «пакет» употреблено в другом смысле).

В этой статье я разберу следующие вопросы:

  • Вот скачал программу или библиотеку. Как её собрать и установить? Как воспользоваться библиотекой?
  • Что такое префикс (prefix) установки? В чём разница между сборкой и установкой? Куда обычно устанавливают программы?

Я разберу только совсем базовые вещи. Те, которые типичные участники сообщества свободного ПО, программирующие на C и C++ под UNIX-подобные системы, обычно уже знают. Как создавать тарболлы (на примере «голого» make) и как устанавливать чужие тарболлы. Advanced советы по созданию «хороших» пакетов я не дам. «Продвинутые» вещи читайте в документации систем сборки, в замечательной статье «Upstream guide» от Debian (в её конце есть ещё куча ссылок о создании «хороших» пакетов). Многое в этой статье можно было сделать по-другому, моя цель: дать хотя бы один способ, не пытаться объять необъятное.
Читать дальше →
Всего голосов 44: ↑39 и ↓5+34
Комментарии17

Пишем самый простой и быстрый input type file

Время на прочтение2 мин
Количество просмотров69K
Доброго времени суток, мой дорогой друг. В сети, да и на Хабре, есть множество статей на тему создания своего input type=«file», но все они отличаются большим количеством костылей и большим количеством кода, что, как мне кажется, не есть хорошо. Ибо, как бы это не было парадоксально, меньше — лучше.


Всего голосов 58: ↑35 и ↓23+12
Комментарии48

Azure понятным языком [Шпаргалка]

Время на прочтение10 мин
Количество просмотров73K
Скажите, приходилось ли вам слышать о новых службах Azure: Elasticville, StorageWart и API Gatesian? Разумеется, нет, ведь эти названия были придуманы только что. В этой статье мы делимся с вами шпаргалкой, в которой понятным языком описана экосистема Microsoft Azure.


Читать дальше →
Всего голосов 49: ↑45 и ↓4+41
Комментарии12

Внедрение Docker для небольшого проекта в Production, часть 3

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

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

Часть 1. Установка CoreOS
Часть 2. Базовая настройка и настройка безопасности SSH

В этой части мы научимся работать с контейнерами и разворачивать стек приложений за считанные секунды. Но вначале я бы хотел сделать небольшое отступление на поступившие комментарии и замечания.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии3

Hack.me: Ещё одна площадка для оттачивания навыков в области ИБ

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


Всем доброго времени суток, сегодня не будет VulnHub'a. Сегодня рассмотрим его альтернативу hack.me. На котором содержится не мало интересных площадок для взлома, на различные темы. В этой статье рассмотрим BeachResort. Как пишет автор, это не типичный CTF,
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Комментарии11

Использование SVG для рисования набросков схем

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

Введение


Эта статья о том, как набросать простенькую схемку из десятка элементов, когда под рукой нет ни Altium'а, ни Orcad'a, ни даже Visio, а Draw.io внезапно сломался.

Это совсем не сложно: современные браузеры поддерживают язык разметки SVG, с помощью которого в обычном текстовом редакторе можно легко и быстро нарисовать небольшую схему типа:

Sketch of a low-power step-up converter

Читать дальше →
Всего голосов 67: ↑66 и ↓1+65
Комментарии17

Краткая история развития игровых движков

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

О разработке игр и становлении игровой индустрии


image

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

Общая для игр функциональность — графические решения, игровые механики, расчет физики и другое — стала выделяться в отдельные библиотеки, но, для того чтобы быть «игровым движком» было еще далеко. Во многом это было связано с серьезным различием программно-аппаратных платформ и неопределенности в самих играх. Ведь жанры и типы игр еще предстояло изобрести, при том, что многие первые игры были текстовыми. Собственно, именно для ранних адвенчур и платформеров и стали возникать игровые движки, особенно с развитием графики — хорошим примером можно назвать Adventure Game Interpreter (AGI). При разработке King’s Quest в далеком 1984 году, программисты Sierra On-Line столкнулись с неудобством низкоуровневой разработки столь сложной и перспективной по графике в те времена игры — и разработали набор решений, которым и стал AGI. Всего на нем было выпущено 14 различных игр за 5 лет на 7 различных платформах, поэтому понятие “кроссплатформенность” было важным уже тогда.

Однако, движки того времени редко выходили за пределы изначальной компании-разработчика и, как правило, были достаточно узкоспециализированными под конкретный жанр игры.
Читать дальше →
Всего голосов 34: ↑29 и ↓5+24
Комментарии14

Информация

В рейтинге
Не участвует
Откуда
Полтава, Полтавская обл., Украина
Дата рождения
Зарегистрирован
Активность