Как стать автором
Обновить
3
0.2
Роман @Gobl1n

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

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

Как использовать API сайта, у которого нет API?

Время на прочтение4 мин
Количество просмотров80K
У меня достаточно часто появляется задача получить данные от стороннего сайта, при этом далеко не всегда этот сайт предоставляет возможность удобно получить эти данные через API. Единственное решение в таком случае — парсить html содержимое страниц. Когда-то я писал регэкспы, потом появились библиотеки, позволяющие получить нужное содержимое по css-селектору, а сейчас и это кажется сложной задачей, которую хотелось бы упростить.

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

Параллакс на чистом CSS

Время на прочтение4 мин
Количество просмотров168K
В этой статье показывается, как с помощью CSS трансформаций и махинаций с 3d сделать параллакс-эффект на сайте на чистом CSS.

Параллакс почти всегда создаётся с помощью JavaScript и, чаще всего, получается ресурсоёмким, из-за вешания листенеров на событие скролла, модификации DOM напрямую и срабатывания ненужных перерисовок и перестановок. Всё это происходит асинхронно с потоком, в котором браузер рендерит страницу, из-за чего скролл начинает подтормаживать, а картинка рваться на части. Более правильные реализации параллакса отслеживают скролл и используют отложенные обновления DOM с помощью requestAnimationFrame. Получается качественной другой результат, но почему бы вообще не избавиться от JavaScript?
Читать дальше →

Несколько интересностей и полезностей для веб-разработчика #23

Время на прочтение4 мин
Количество просмотров42K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Basket.js



Basket немного похож на RequireJS, только с его помощью все подключаемые скрипты и стили кешируются в localStorage. Тесты Google и Bing демонстрируют улучшение производительности при использовании локального хранилища по сравнению с обычным браузерным кешем. Проект изначально появился как эксперимент, который полностью оправдал результаты этих тестов.
basket
    .require({ url: 'missing.js' })
    .then(function () {
        // Success
    }, function (error) {
        // There was an error fetching the script
        console.log(error);
    });


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

JQuery Deferred — примеры использования

Время на прочтение5 мин
Количество просмотров66K
В этой статье я не буду говорить о том зачем в javascript нужны промисы и в частности JQuery.Deferred. Также не буду приводить справочную информацию, ее достаточно в интернете. Например тут или тут или вот тут.
Эта статья для тек кто уже немного знаком с объектом Deferred из библиотеки JQuery, но не имеет опыта написания сложных цепочек (очередей).

Подготовка

Все примеры кода, рассмотренные здесь, используют асинхронный метод $.ajax(), который возвращает так называемый jqXHR в котором реализованы промис-методы (done, fail, always, then). Нам нужны будут только они, поэтому будем считать что $.ajax возвращает промис (promise).
В некоторых примерах используются методы $.map() и $.each(), которые входят в состав библиотеки JQuery.

Последовательное выполнение

Простейшее использование промисов — это последовательное выполнение асинхронных операций. То есть следующая операция не начинается пока текущая не закончится.

$.ajax('http://echo.jsontest.com/id/1')
.then(function(result){
    console.log(JSON.stringify(result));
    return $.ajax('http://echo.jsontest.com/id/2')
}).then(function(result){
    console.log(JSON.stringify(result));
    return $.ajax('http://echo.jsontest.com/id/3')
}).then(function(result){
    console.log(JSON.stringify(result));
});

Живой пример тут.
Читать дальше →

Subtle Patterns: фоновые текстуры для вашего сайта

Время на прочтение1 мин
Количество просмотров72K
Если вы запускаете новый сайт и заканчиваете его оформление, то есть смысл посмотреть коллекцию Subtle Patterns: отлично оформленную коллекцию фоновых текстур (паттернов) под лицензией Creative Commons Attribution 3.0 Unported. Их можно использовать без ограничений.



Сайт привлекает удобным предварительным просмотром: каждую текстуру можно мгновенно применить на всей странице в качестве фона. Сейчас там 93 работы, коллекция еженедельно пополняется отличными новинками.

Все текстуры на сайте Subtle Patterns являются повторяющимися, то есть склеиваются в бесшовную заливку.
Читать дальше →

Node.js + JQuery Ajax. Загрузка файлов на сервер

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

Введение


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

Что будем использовать


  1. Bootstrap
  2. JQuery
  3. Модуль для Node.js Multiparty

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

Подборка полезных CSS рецептов, или чем мы занимаемся на голых пятницах

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


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

Итак, представляем вашему вниманию сборку интересных и (надеемся) малоизвестных HTML и CSS-рецептов. Будем рады, если каждый из вас узнает что-то новое!
Вперед!

Несколько интересностей и полезностей для веб-разработчика #20

Время на прочтение3 мин
Количество просмотров45K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Awesome Sysadmin


Мега популярный репозиторий на GitHub, который за несколько дней собрал более 4000 звезд. Это огромной живой список всех самых полезных инструментов с открытым исходным кодом для сисадмина по категориям: Backups, Cloning, Cloud Computing, Cloud Orchestration, Cloud Storage, Collaborative Software, Distributed Filesystems, DNS, VPN и др. Автор проекта упомянул также Awesome PHP, по образу и подобию которого он опубликовал свой список.

NodeBB



Многие уже из названия поняли, что это форум-движок на NodeJS и на самом деле это очень крутой проект. Я бы даже сказал, что это в какой то мере переосмысление сложившегося представления о форумах. Ну сколько уже времени прошло с тех пор… Сколько социальных сетей появилось и «социальности» в целом, сколько рассуждений о дизайне с интуитивно понятным UI и продуманным UX, сколько стремления разработчиков превратить веб в «среду для приложений», где все быстро и асинхронно словно нативный софт.

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




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

30 полезных сервисов для веб-разработчика

Время на прочтение2 мин
Количество просмотров163K
Решил собрать сервисы, которые могут быть полезны веб-разработчикам и дизайнерам. Буду рад, если кто-то найдет для себя полезный сервис. Осторожно, под катом куча картинок!
Читать дальше →

Несколько интересностей и полезностей для веб-разработчика #18

Время на прочтение4 мин
Количество просмотров28K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Dat



Dat — data package management. Это инструмент, который позволяет обмениваться большими наборами данных с целью построения совместного рабочего процесса, подобно git с исходными файлами. Важно упомянуть, что текущий статус проекта pre-alpha.

npm install dat -g

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

Рендеринг WEB-страницы: что об этом должен знать front-end разработчик

Время на прочтение6 мин
Количество просмотров236K
Приветствую вас, уважаемые хабравчане! Сегодня я бы хотел осветить вопрос рендеринга в веб-разработке. Конечно, на эту тему уже написано много статей, но, как мне показалась, вся информация довольно разрознена и отрывочна. По крайней мере, чтобы собрать всю картину в своей голове и осмыслить её, мне пришлось проанализировать немало информации (в основном — англоязычной). Именно поэтому я решил формализовать свои знания в статью, и поделиться результатом с сообществом Хабра. Думаю, информация будет полезна как начинающим веб-разработчикам, так и более опытным, чтобы освежить и структурировать свои знания.

Данное направление можно и нужно оптимизировать на этапе вёрстки/frontend-разработки, поскольку, очевидно, что разметка, стили и скрипты принимают в рендеринге непосредственное участие. Для этого соответствующие специалисты должны знать некоторые тонкости.
Читать дальше →

Несколько интересностей и полезностей для веб-разработчика #17

Время на прочтение5 мин
Количество просмотров35K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Intercooler.js


Кто нибудь помнит FullAjax — разработку Руслана Синицкого sirus (нынешний основатель Jelastic)? Вкратце это библиотека для работы с AJAX с помощью объявления определенных атрибутов у элементов, а подробнее об этом написано в постах «Прямые ссылки на AJAX веб-сайтах – наша технология Fullajax Direct Link», «Полный AJAX. Теория и Примеры. Фишки и Фичи» и «Fly AJAX — пишите меньше, имейте больше. Нестандартный AJAX и индексация поисковиками». Вернемся к Intercooler, это нечто похожее:

<div id="targetDiv">Results Div...</div>
<i id="indicator" style="display:none" class="fa fa-spinner fa-spin">
<input id="hiddenInput" type="hidden" name="hidden" value="42"/>

<div ic-trigger-on="click" ic-verb="POST" ic-src="/example" ic-include="#hiddenInput" ic-indicator="#indicator" ic-target="#targetDiv" ic-transition="none">
    Click Me!
</div>

После клика по div, отправляется POST запрос со значением поля с #hiddenInput, а в процессе будет отображаться #indicator. Ответ будет передан в блок #targetDiv. Разве не здорово?

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

Mediabox

Время на прочтение5 мин
Количество просмотров26K
Mediabox – GPL3 web-приложение, позволяющее хранить файлы, воспроизводить audio и video в форматах, которые воспроизводит medialement js, показывать изображения, делать пометки на них, добавлять теги и писать комментарии.



Mediabox продолжает идеи прошлых Ostora FM и Photo, а также является немного измененным Mediabox, созданной для компании Xvid.

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

Выполняем сетевые задачи не осуществляя вход в систему

Время на прочтение5 мин
Количество просмотров5.5K
С выявлением очередной опасной сетевой уязвимости Heartbleed стало предельно ясно, что никакие логины и пароли не гарантируют нам абсолютной безопасности в Интернете. Между тем для выполнения многих обычных задач в Сети вовсе не нужно нигде регистрироваться, придумывать ники, пароли и вообще вводить какую-то информацию о себе. Представьте, что можно без проблем обмениваться фотографиями, загружать видео или даже общаться с друзьями, никуда не залогиниваясь!

Разумеется, в регистрации на сервисе есть очевидные преимущества: например, на том же Flickr все ваши фотоальбомы будут храниться в одном месте — но это одновременно значит, что любой, получивший доступ к вашему аккаунту, может похитить сразу все ваши фотографии. Кроме того, в некоторых случаях хочется сохранять инкогнито, не оставляя каких-то цифровых следов, способных привести к вашим реальным координатам. Анонимность в Сети стала особенно актуальна в связи с обострением параноидальности у российских властей, которые всерьёз вознамерились поставить под контроль любые действия пользователей в интернете, как минимум в пределах территории РФ. Итак, 10 простейших задач.
Читать дальше →

Библиотека для обмена событиями, данными и задачами между вкладками браузера

Время на прочтение11 мин
Количество просмотров20K
Приветствую, уважаемое Хабрасообщество!

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

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

Кому интересно — добро пожаловать под кат.
Читать дальше →

Kenju форк Kendo UI Web (GPL3)

Время на прочтение2 мин
Количество просмотров19K
Несколько дней назад произошло одно важное событие в развитии JS фреймворка Kendo UI от компании Telerik. Они выпустили OpenSource версию продукта, под лицензией Apache v2 — Kendo UI Core. На деле же всё оказалось не так просто и однозначно.

Ранее вся библиотека Kendo UI выпускалась под лицензией GPL v3, что не разрешало использовать её бесплатно в коммерческих продуктах, для коммерческих приложений на основе этой библиотеки была разработана Kendo UI commercial license. Но для OpenSource же эта библиотека была настоящим подарком. Конечно же есть и другие аналогичные библиотеки и у них огромное количество своих поклонников. Плюсами Kendo можно считать:
1) Полная поддержка JQuery
2) Большое количество виджетов, что позволяет обойтись одной JS библиотекой (не считая jquery) в большинстве случаев
3) Качественные и приятные темы оформления
4) Отличная поддержка Twitter Bootstrap. Для kendo даже есть своя тема оформления bootstrap, для одновременной работы с CSS фреймворком.

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

Несколько интересностей и полезностей для веб-разработчика #14

Время на прочтение3 мин
Количество просмотров33K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

FastClick.js


Nota Bene. Практически всегда страница в браузере на вашем тач устройстве реагирует недостаточно быстро. Все из-за задержки в 300ms, чтобы убедиться, что это не double tap. FastClick.js — это полифил, который избавляет пользователей вашего сайта от этой задержки.

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

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

Удаленная установка программ на Windows (XP SP3 и более новые) без использования сторонних утилит

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

Однако, с тех пор, как в нашей ультраконсервативной конторе стали появлятся компьютеры с более новой, чем XP, версией Windows, возникла проблема: удаленный помощник Windows Server 2003 (который итак никого, в общем-то, не устраивал) не мог подключиться к более поздним версиям ОС. Конечно, у нас оставался старый добрый «Удаленный рабочий стол», но иногда ведь нужно увидеть именно то, что видит на своем рабочем столе пользователь. При этом политика безопасности конторы требовала использовать минимум стороннего софта.

После долгих поисков, было установлено, что подключиться к сеансу Windows 7 из сеанса Windows Server 2003 без какой-либо сторонней утилиты не получится. Конкурс на самую бесплатную утилиту удаленного управления выиграла UltraVNC. Именно на ее примере ниже будет рассмотрен способ удаленной тихой установки программ без использования сторонних утилит.
Читать дальше →

Определение локальных IP-адресов через WebRTC

Время на прочтение1 мин
Количество просмотров47K
Через WebRTC можно получить список всех локальных (находящихся за NAT) интерфейсов в системе.

Пример кода на JavaScript jsfiddle.net/GZurr

Работает только в браузерах поддерживающих WebRTC, на текущий момент это Firefox и Chrome.

Это можно использовать для получения более точного фингерпринта браузера или, например, разоблачения персонажей, сидящих за VPN, чтобы ВЫЧИСЛИТЬ ПО АЙПИ И НАБИТЬ Е**ЛЬНИК

Для удобства использования я изготовил js-сниффер, который можно вставить на страницу и удобно просматривать результат его работы: zhovner.com/jsdetector

Достаточно вставить на страницу код:

<script src="//zhovner.com/jsdetector.js?name=test"></script>


Где test нужно заменить на слово, по которому будет доступен результат работы сниффера: zhovner.com/jsdetector/test

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

Вешаем сервер через PHP

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

Здравствуйте, уважаемые хабра-пользователи. Довольно давно я написал PHP скрипт — fork-бомбу и начал его тестировать на различных серверах/хостингах. На моё удивление, скрипт работал на 90% протестированных мною компаний. Я отписал об этой баге во многие компании, но прошло уже много времени, а она до сих пор актуальна.
Читать дальше →

Информация

В рейтинге
2 958-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность