Читать дальше →
Евгений Метагностик @EuHex
Нейрохакер
Лучшая подарочная книга для начитанных фанатов JavaScript
11 мин
27KПеревод
Здравствуйте, уважаемые хаброжители!
Мы вынашиваем амбициозные планы по изданию вот такой книги:

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

Как вы понимаете, эта книга требует не только литературного перевода, но и классной полиграфии, хорошей бумаги, широкого формата и т.п. Поэтому предлагаем ознакомиться с замечательной публикацией об этой книге, появившейся в блоге автора Ангуса Кролла спустя несколько месяцев после публикации оригинала.
Приятного чтения, и поучаствуйте пожалуйста в опросе!
+18
How to ReactJS
6 мин
85KТуториал
Перевод
Для новичка, экосистема вокруг React (как и фронтэнда в целом) может показаться запутанной. Этому есть несколько причин.
Здесь и далее, я предполагаю, что вы уже знакомы с HTML, CSS и JavaScript.
- Изначально, React был нацелен на экспертов и ранних последователей
- Facebook открывает исходный код только тех продуктов, которые использует сам, т. е. не нацеленные на проекты-меньше-чем-Facebook
- Огромное количество гайдов по React совершенно разной сложности
Здесь и далее, я предполагаю, что вы уже знакомы с HTML, CSS и JavaScript.
+24
Инфракрасный мультитул или проще – мультипульт
4 мин
47KВ гонке технологий среди смартфонов в последнее время модно добавлять ИК порт, вроде как не особо нужная вещь, но для пунктика, что, у нас есть, а у конкурентов нет – годится. Хотя почему не особо нужная? Среди техники до сих пор большинство использует ИК-канал для управления с пульта и идея вроде хорошая, но вот реализация обычно хромает. Несколько раз наблюдал как мой друг, говоря что, мол, вот у меня есть встроенный ИК пульт на телефоне, сейчас я переключу канал телевизора, например в гостях, натыкался на невозможность этого сделать из-за каких-то дурацких ограничений. Вроде пульт есть, но работать не хочет или требует нахождения техники в той же WiFi сети, что и телефон или какой-то дикой настройки. В общем, с ходу обычный обыватель разобраться не может, а дальше либо лень, так как проще обычным пультом сделать, либо нет времени на это. Я подозреваю, что у большинства читателей Geektimes таких проблем нет, но например, просматривая сторонние приложения для мультифункциональных ИК пультов в Play маркете, я часто встречал комментарии вроде: — отличное приложение наконец-то мой HTC умеет чем-то управлять через ИК. То есть проблема с стандартным ИК портом на смартфонах есть. А что делать у кого нет такого порта, но очень хочется?


+4
Я хочу, чтобы сайты открывались мгновенно
10 мин
140KЗдравствуйте, меня зовут Александр Зеленин и я веб-разработчик. Я расскажу, как сделать так, чтобы ваш сайт открывался быстро. Очень быстро.


+114
bala.js — убийца jQuery в менее чем 400 символах кода *
6 мин
43KТуториал
* Это шутка.

(картинка позаимствована где-то в интернете)
[ Репозиторий ]
Всем привет.
Уже давно прошли времена обязательной поддержки 6, 7, 8 Ослов и неизбежного использования jQuery, DOM API постепенно приводится к единому виду, но я всё так же часто встречаю на просторах интернета утверждения о том, что VanillaJS — это длинная колбаса.
Мол, зачем мне писать вот так:
Если я могу написать вот так:
Я отчасти согласен с этим, потому что, периодически, необходимо выбирать элементы много раз в приложении. Приходится определять функции, делающую выборку, прямо в коде:
Это касается крошечных скриптов. Для крупных проектов, конечно, нужно юзать какой-нибудь фреймворк, который берет на себя все манипуляции над DOM.

(картинка позаимствована где-то в интернете)
[ Репозиторий ]
Всем привет.
Уже давно прошли времена обязательной поддержки 6, 7, 8 Ослов и неизбежного использования jQuery, DOM API постепенно приводится к единому виду, но я всё так же часто встречаю на просторах интернета утверждения о том, что VanillaJS — это длинная колбаса.
Мол, зачем мне писать вот так:
document.querySelector('.selector');
Если я могу написать вот так:
$('.selector');
Я отчасти согласен с этим, потому что, периодически, необходимо выбирать элементы много раз в приложении. Приходится определять функции, делающую выборку, прямо в коде:
// selects one node matched given selector
function $(selector, ctx) {
return (ctx || document).querySelector(selector);
}
// selects all nodes matched given selector
function $$(selector, ctx) {
return [].slice.call((ctx || document).querySelectorAll(selector));
}
Это касается крошечных скриптов. Для крупных проектов, конечно, нужно юзать какой-нибудь фреймворк, который берет на себя все манипуляции над DOM.
+25
Вёрстка писем: 60 полезных ресурсов, руководств и исследований
3 мин
112K
В нашем блоге на Хабре мы часто пишем о создании почтовых рассылок — верстке HTML и CSS, работе с plain-text сообщениями и описываем интересные эксперименты. Сегодня мы представляем вашему вниманию список из 60 полезных ресурсов, туториалов и исследований о работе с email.
+14
Эрланг для веб-разработки (1) -> Знакомство;
7 мин
29KТуториал

Продолжение о базе данных и деплое во второй статье.
Я начинаю публиковать серию статей о веб-разработке на Эрланге. Многие хотят попробовать Эрланг, но сталкиваются с проблемой, что вводные курсы в основном касаются Эрланга как функционального языка и далеки от реальных проектов (Learn You Some Erlang for great good! — хорошая и подробная книга). С другой стороны все обучающие материалы по веб-разработке подразумевают, что читатель уже хорошо знает Эрланг.
Эта серия статей рассчитана для разработчиков, у которых есть опыт в веб-разработке (PHP, Ruby, Java), но не имеют опыта разработки на Эрланге.
Задачей будет сделать блог. Код из статей https://github.com/denys-potapov/n2o-blog-example, готовый проект можно посмотреть по адресу http://46.101.118.21:8001/. Особенности проекта:
- обновление комментариев в реальном времени;
- авторизация через фейсбук;
- данные храним в mnesia.
В основе проекта феймворк n2o. Выбор довольно субъективен, но из живых Эрланг фреймворков, n2o мне показался наиболее «эрлангоподобным», в тоже время ChicagoBoss больше похож на MVC фреймворки в других языках.
+26
Еще одна «критическая» «уязвимость» «VPN» и почему Port Fail — ерунда
7 мин
45KУтро 26 ноября началось для меня с интересной новости — ребята из Perfect Privacy опубликовали информацию об уязвимости Port Fail, которая позволяет раскрывать IP-адрес клиентов VPN-сервисов с функцией проброса портов. Я немного понегодовал из-за того, что ее назвали уязвимостью, т.к. это никакая не уязвимость, а особенность маршрутизации: трафик до IP-адреса VPN-сервера всегда идет напрямую, в обход VPN. Вполне очевидная вещь, подумал я, о которой должен знать любой сетевой администратор. Заметка вменяемая и технически грамотная, придраться можно только к слову vulnerability (уязвимость). Но потом за дело взялись СМИ, и пошло-поехало…

Критическая уязвимость во всех протоколах VPN на всех операционных системах. У-у-у, как страшно!
В новости, опубликованной на Geektimes, изначально имевшей желтый заголовок, было сказано о награде в $5000 за найденную «уязвимость» от Private Internet Access — одного из крупнейших VPN-сервисов. «$5000 за типичную, совершенно очевидную любому сетевику вещь?» — подумал я — «Невероятно!», и высказал свое негодование по этому поводу в комментариях, попутно расписав еще одну, не менее очевидную, особенность маршрутизации, с которой сталкивался любой настраивавший работу двух и более интернет-провайдеров на одном компьютере: ответ на входящий запрос не обязательно уйдет через этого же провайдера и с этим же IP, чего запросившая сторона совсем не ожидает. Если мы представим, что вместо второго провайдера у нас VPN-соединение, то отправив запрос на IP-адрес нашего провайдера, при определенных условиях может получиться так, что ответ на наш запрос мы получим с IP VPN-сервера.


Критическая уязвимость во всех протоколах VPN на всех операционных системах. У-у-у, как страшно!
В новости, опубликованной на Geektimes, изначально имевшей желтый заголовок, было сказано о награде в $5000 за найденную «уязвимость» от Private Internet Access — одного из крупнейших VPN-сервисов. «$5000 за типичную, совершенно очевидную любому сетевику вещь?» — подумал я — «Невероятно!», и высказал свое негодование по этому поводу в комментариях, попутно расписав еще одну, не менее очевидную, особенность маршрутизации, с которой сталкивался любой настраивавший работу двух и более интернет-провайдеров на одном компьютере: ответ на входящий запрос не обязательно уйдет через этого же провайдера и с этим же IP, чего запросившая сторона совсем не ожидает. Если мы представим, что вместо второго провайдера у нас VPN-соединение, то отправив запрос на IP-адрес нашего провайдера, при определенных условиях может получиться так, что ответ на наш запрос мы получим с IP VPN-сервера.

+61
Избавляемся от DNS Leak в Windows 10 — свой userspace WFP-фильтр в виде OpenVPN-плагина
2 мин
38KКак вы уже можете знать, резолвер DNS в Windows 10 отправляет DNS-запросы на все интерфейсы параллельно, что часто бывает либо просто неудобно, когда используется так называемый Split Tunneling и DNS внутри VPN-туннеля отдает внутренние адреса для внутренних ресурсов, а Windows не может понять, что к чему, либо и вовсе создает угрозу безопасности, как в случае утечки DNS через публичный Wi-Fi.
Решить проблему можно разными способами, например, временно добавив правила firewall для блокировки 53 порта на всех интерфейсах, кроме интерфейса VPN, либо установить на всех интерфейсах, кроме VPN, DNS в 127.0.0.1.
Однако, эти способы вносят изменения, выдерживающие перезагрузку, поэтому, если во время работы VPN у вас случайно отключили электричество или VPN-демон просто упал, вы останетесь с неработающим интернетом. Ничего хорошего в этом нет.
Однако есть способ лучше, который вносит только временные изменения и не оставит пользователя без интернета.
Решить проблему можно разными способами, например, временно добавив правила firewall для блокировки 53 порта на всех интерфейсах, кроме интерфейса VPN, либо установить на всех интерфейсах, кроме VPN, DNS в 127.0.0.1.
Однако, эти способы вносят изменения, выдерживающие перезагрузку, поэтому, если во время работы VPN у вас случайно отключили электричество или VPN-демон просто упал, вы останетесь с неработающим интернетом. Ничего хорошего в этом нет.
Однако есть способ лучше, который вносит только временные изменения и не оставит пользователя без интернета.
+33
Обнаруженная брешь позволяет раскрывать ip-адреса клиентов VPN-провайдеров
2 мин
20K
26 ноября специалисты по безопасности VPN-провайдера Perfect Privacy обнаружили в VPN уязвимость, которая может привести к раскрытию ip-адресов пользователей. Атака работает за счёт перенаправления портов. По заявлениям специалистов, уязвимости подвержены все реализации VPN (протоколы IPSec, OpenVPN, PPTP, и другие), и не зависит от операционной системы.
Для успешного осуществления атаки атакующий должен завести аккаунт у того же VPN-провайдера, что и жертва. Затем необходимо узнать выходной ip-адрес жертвы. Часто у VPN-провайдеров используется небольшой пул выходных адресов – их можно перебирать, заманить жертву на специально созданный веб-сайт, что и выдаст её выходной ip-адрес, или брать адреса из торрентокачалки.
Затем атакующий активирует у себя перенаправление портов – при этом от жертвы не требуется никаких действий, и неважно, работает ли у неё такое перенаправление, или нет. И в заключение, жертве необходимо скормить любой ресурс, в url которого указан порт, на который идёт перенаправление.
Технические детали специалисты приводят следующие:
+9
Бесплатный VPN от Amazon
2 мин
125KПод хабракатом я расскажу вам, как при помощи нескольких простых действий получить себе практически бесплатный VPN в штатах:
+230
Полезные техники HTML, CSS и JavaScript
8 мин
101K
Оборачиваясь назад, отметим, что в последние несколько лет установились новые, лучшие, стандарты и способы их применения, позволяя нам создавать более продвинутые «техники». Этот новый мир, открытый перед нами, называется «modern web». Web 2.0, которым восхищались в свое время, сегодня для нас стал запутанным и застойным. С одной стороны нет сомнений в том, что подобная судьба постигнет и то, что мы называем «modern web». С другой — пока что мы можем использовать этот термин и злоупотреблять им сколько угодно, пока понимаем, что он означает.
В 2010 появился стандарт HTML5, обеспечивающий совершенно новую, полустандартизованную веб-среду. Такие браузеры, как Opera, Firefox, Chrome и Safari приняли нововведения, и их разработчики вышли за пределы реализации стандартов и изучения интерфейса программирования приложений. Чтобы представить себе, насколько автономны эти браузеры, можно ознакомиться с отличной наглядной демонстрацией поддержки HTML5 на www.html5readiness.com.
+87
Подбор паролей к WPA/WPA2 с использованием видеокарты
6 мин
203KПривет, Хабр!
Сегодня я расскажу и покажу вам, как можно использовать всю мощность ваших видеокарт дляигр перебора паролей к Wi-Fi. Как-то не комильфо в наше время использовать только процессорные мощности под эти задачи (в частности aircrack-ng), когда в 80% компьютеров есть видеокарта. Поэтому разумно использовать всю потенциальную мощность ваших систем. А именно, речь пойдет о замечательной программе pyrit.
Сегодня я расскажу и покажу вам, как можно использовать всю мощность ваших видеокарт для
+132
Подборка бесплатных инструментов для разработчиков
28 мин
187KПеревод
Сегодня мы представляем вашему вниманию адаптированную подборку инструментов (в том числе облачных) для разработчиков, которые позволяют создавать по-настоящему качественные проекты. Здесь представлены исключительно SaaS, PaaS и IaaS сервисы, предоставляющие бесплатные пакеты для разработчиков инфраструктурного ПО.


+82
Понятно и просто про веб-компоненты и Polymer
9 мин
49KТуториал

Кто я
Я — Александр Кашеверов. По образованию — магистр радиофизики. По профессии — веб-разработчик, работаю в компании DataArt с 2011 года, с 2009 увлекаюсь IT и веб-технологиями.
О чем статья, коротко
Рассмотрим, что такое веб-компоненты и polymer. Немного поразмышляем на тему развития веба. Посмотрим на технические детали, примеры, поддержку браузерами, тестирование. Коротко, понятно, по делу. С картинками.
Вступление
Веб постоянно развивается. Технологии были придуманы и внедрены, исходя из потребностей, актуальных на момент создания. Десять лет назад невозможно было сделать то, что мы реализуем сейчас, и сложно представить, что будет еще через 10 лет.
Бизнес требует создания крупных и сложных программных веб-продуктов с богатой функциональностью, красотой, высокой производительностью. Такие решения нетривиальны сами по себе, так еще и накладывается специфичность веб-технологий. Зачастую, чтобы уменьшить сложность продукта, его разделяют на множество более простых частей. Такой компонентный подход уменьшает хаос, улучшает структуру, понимаемость, увеличивает эффективность командной работы.
Для уменьшения головной боли хорошо бы, если в контексте веб:
- CSS не пересекался.
- Области видимости JS не пересекались.
- HTML был понятным и читаемым, никаких лишних элементов.
+19
11 инструментов для удаленного управления Вебстудией
4 мин
10KСегодня все бизнесы и сферы либо идут по пути оптимизации и упрощения, либо идут в неверном направлении, это факт. Любые дополнительные издержки влекут за собой трату лишних денег и драгоценного времени. Если можно что-то перевести в онлайн, то это незамедлительно делают. На примере Вебстудии я хочу рассказать как можно вести успешную деятельность в полностью облачной компании. Часть инструментов о которых я расскажу относятся именно к сфере IT и помогут оптимизировать работу Вебстудий, SEO-компаний и Интернет-агенств, но остальные инструменты позволят кардинально изменить стиль ведения бизнеса в любой сфере. Эта статья будет полезна как начинающим бизнесменам, которые только начинают или собираются начать свой путь, так и опытным руководителям. Без лишних слов — приступим!


+9
У нас проблемы с промисами
16 мин
242KПеревод
Разрешите представить вам перевод статьи Нолана Лоусона «У нас проблемы с промисами», одной из лучших по теме из тех, что мне доводилось читать.
Дорогие JavaScript разработчики, настал момент признать это — у нас проблемы с промисами.
Нет, не с самими промисами. Их реализация по спецификации A+ превосходна. Основная проблема, которая сама предстала передо мной за годы наблюдений за тем, как многие программисты борются с богатыми на промисы API, заключается в следующем:
— Многие из нас используют промисы без действительного их понимания.
Если вы мне не верите, решите такую задачку:
Вопрос: В чем разница между этими четырьмя вариантами использования промисов?
У нас проблемы с промисами
Дорогие JavaScript разработчики, настал момент признать это — у нас проблемы с промисами.
Нет, не с самими промисами. Их реализация по спецификации A+ превосходна. Основная проблема, которая сама предстала передо мной за годы наблюдений за тем, как многие программисты борются с богатыми на промисы API, заключается в следующем:
— Многие из нас используют промисы без действительного их понимания.
Если вы мне не верите, решите такую задачку:
Вопрос: В чем разница между этими четырьмя вариантами использования промисов?
doSomething().then(function () {
return doSomethingElse();
});
doSomething().then(function () {
doSomethingElse();
});
doSomething().then(doSomethingElse());
doSomething().then(doSomethingElse);
+133
DevTips: Советы веб-разработчику (1-16)
5 мин
70KТуториал
Перевод
Команда браузера Google Chrome проделывает огромную работу для того, чтобы разработчикам жилось лучше. Chrome DevTools — пример замечательного инструмента, сильно упрощающего отладку вашего веб-приложения. Но подчас не весь функционал этой системы виден с первого взгляда, поэтому Umar Hansa — программист из Лондона — описывает его на своем сайте, причем в весьма удобном формате: немного текста и короткий скринкаст. А мы, в свою очередь, решили сделать эти советы более доступными русскоязычной аудитории.
Содержание:
Продолжение: 17-32, 33-48.
Содержание:
- Перенаправление порта позволит вам открывать локальные ссылки на мобильном устройстве
- Активация псевдо-классов DOM-элемента
- Повтор сетевого запроса при помощи cURL
- Запуск сохранённых блоков кода (сниппетов) на любой веб-странице
- Отслеживание изменений файлов через DevTools
- Простая запись действий страницы
- Поиск элементов DOM-дерева при помощи CSS-селекторов
- Копирование изображения в формате Data URI
- Переход к нужной строке при открытии файла
- Упрощенная навигация между правками
- Копирование ответа на сетевой запрос
- Работа с несколькими курсорами при редактировании скриптов
- Блочное выделение
- Быстрый мониторинг событий в консоли
- Доступ к выбранному DOM-узлу в консоли
- Отслеживание незавершенных сетевых запросов при помощи фильтра is:running
Продолжение: 17-32, 33-48.
+57
Создание синтезатора на JavaScript
15 мин
30K
Идея сделать браузерный синтезатор у меня появилась достаточно давно, ещё когда Audio API был в весьма зачаточном состоянии и практически единственным шансом извлечь звук из браузера (кроме воспроизведения готовых файлов) была генерация WAV с его последующей кодировкой в base64 и записью в аудио-тег. И если синтез и кодирование удавались без проблем (WAV формат довольно прост), то с потоковым аудио для музицирования в реальном времени всё было хуже и никакими ухищрениями не удавалось добиться бесшовной буферизации, в связи с чем идея и заглохла, так не успев родиться. За прошедшие годы браузеры в поддержке Audio API заметно прибавили, что в свою очередь вдохновило меня на новые эксперименты в этой области. В данной статье шаг за шагом описывается процесс создания браузерного синтезатора средствами HTML5, начиная с генерации простой синусоиды, продолжая коммутацией и модуляцией сигналов и заканчивая аудиоэффектами.
+41
Информация
- В рейтинге
- 5 670-й
- Откуда
- Россия
- Дата рождения
- Зарегистрирован
- Активность