Search
Write a publication
Pull to refresh
51
0
Глеб Арестов @arestov

User

Send message

Стилизация файл-инпутов

Reading time5 min
Views39K
Результат стилизации файл-инпута
Привет. Сегодня я хочу вам рассказать о том, как можно изменить внешний вид файлового инпута.

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

Облако тегов: линейная зависимость vs логарифмическая

Reading time2 min
Views3.6K
Этот пост меня сподвигли написать две вещи. Автокадабра и некто под ником napisal, кто активно не соглашался с моим постом

Дело было так: я зашёл в карту клубов Автокадабры и понял что она мне ни о чём не говорит. Создавалось впечатление, что пишут всего в трёх клубах. После изучения облака я пришёл к выводу что линейная зависимость размера тега (в данном случае блога) от количества публикаций совершенно не информативна. Клубы с одной публикацией выглядят так же как и с 15-ю.
далее с картинками

Улучшаем читабельность CSS-кода с помощью «стилевых гидов»

Reading time7 min
Views4.6K
В W3Cast #3 Денис ( CurlyBrace) затронул тему использования styleguides, а у меня как раз уже была статья по этой теме. Поэтому я решил поделиться ей, чтобы показать наглядные примеры, демонстрирующих возможности «стилевых гидов».
«Стилевые гиды» — это свод правил и соглашений, предоставляющих разработчикам информацию о структуре кода и принятых правилах оформления. Чаще всего используется группой разработчиков, при совместном участии в проекте или же для самодисциплины при разработке кода.
Если проект большой, то он обрастает многочисленными файлами CSS с различными цветовыми схемами, типографикой и другими стилевыми установками. Чтобы избежать путаницы в структуре кода и не забыть что да как, нужно разрабатывать структурированный код, который впоследствии будет проще использовать, править и частично использовать в других проектах.
Вход для тех, кому интересно

Web Optimizator: fin

Reading time4 min
Views675
Полгода работы Web Optimizator — 20000 проверенных сайтов, 2000 зарегистрированных пользователей, около 100000 посетителей, 50 статей и переводов по оптимизации, сотни статей, заметок и отзывов по всему Рунету. Проект выстрелил.

Ниже я хочу поделиться парой мыслей о том, как я продвигал ресурс в Рунете и как пытался (местами неплохо) окупить поток посетителей. Итак, поехали.

Web Optimizator statistics

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

Пишем свой XML-парсер

Reading time9 min
Views72K

Предыстория


Решив запустить небольшой сервис на подаренном мне хостинге, оказалось, что там нету ни одного xml-парсера: ни SimpleXML, ни DOMXML, а только libxml и xml-rpc. Недолго думая, я решил написать свой. Мне требовался разбор не сложных rss-лент, поэтому хватило достаточно просто класса xml => array.[1]

Но для интересной статьи этого было явно не достаточно, поэтому сейчас мы напишем свою замену для SimpleXML. А заодно пробежимся по многим интересным возможностям PHP 5.

Постановка задачи


Доступ к элементам у нас будет осуществляться как доступ к свойствам класса, например $xml->element, а доступ к атрибутам элемента, как к массиву, те $xml->element['attr'], также реализуем проверку на существование атрибута при помощи isset() и итерацию по элементам при помощи foreach. И так, начнем.
Читать дальше →

Songsterr — онлайн-проигрыватель гитарных табулатур

Reading time2 min
Views22K
В конце февраля мы разместили пост о запуске первого релиза стартапа Songsterr. Благодаря Хабру, мы получили приток посещаемости и, что важно, обратную связь от пользователей. После этого обзор проекта был опубликован на killerstartups.com и нескольких других популярных блогах. В общей сложности проект посетили 65 тысяч человек, при этом для нас стал приятной неожиданностью большой процент аудитории из Бразилии, Франции и Германии, где проект засветился на телевидении.

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

Наш второй релиз — это онлайн-проигрыватель гитарных табулатур.
Читать дальше →

О том, как гипербола помогла придумать новую систему рейтингов

Reading time2 min
Views1.3K

Здравствуй.

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

Последние несколько постов я рассуждал о системах рейтингов и в первой заметке на эту тему была система +1/-1. Очень простая для понимания, от того любимая многими. Я хочу улучшить ее, а точнее улучшить алгоритм подсчета. Визуально для пользователя ничего не изменится, он по прежнему будет иметь на выбор два варианта «+» либо «-».

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

Итак пусть в нашей системе абсолютный плюс это «+100», а абсолютный минус это «-50».
Читать дальше →

39-й способ скругления блока. Один тэг, одна картинка.

Reading time2 min
Views1.3K
Пару дней назад наткнулся на статью про 38 способов скругления блоков. Очень понравилось. Однако там я не встретил способа, которым пользуюсь уже около года. Он не требует лишних тэгов и требует загрузки только одной картинки (спрайт). Работает во всех современных баузерах и IE6+
Читать дальше →

Что делать с триллионом фотографий в Интернет?

Reading time2 min
Views1.8K
Разработка новых подходов к поиску фотографий в Интернет становится сейчас более чем перспективным направлением:

Просто потому что 100 миллиардов изображений появляются ежегодно.

Этому способствует 750 миллионов мобильных телефонов, приобретаемых нами, а также 100 миллионов цифровых фотоаппаратов, уходящих с прилавков ежегодно. В ближайшем будущем тот же Google планирует насчитывать в своем индексе 1 триллион изображений.

Компании улучшают текстовый поиск (Picsearch.com, Facesaerch.com). Другие работают с визуальными запросами (в качестве запроса — изображение, а не текст) или пытаются сочетать текст и картинку (Riya, Picollator.ru).

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

Верстаем пиксел в пиксел: кроссбраузерный аналог PixelPerfect

Reading time2 min
Views36K
Нет, с твоим монитором всё в порядке, %username%
Довольно часто некоторые заказчики, отдавая макет сайта на вёрстку, требуют попиксельно достоверной точности в разметке во всех браузерах.

Проверить такое соответствие достаточно легко — нужно сделать скриншот сайта и совместить его с графическим макетом, например, в Photoshop'е.

Но вот только в процессе вёрстки использовать такой приём не очень удобно.

Что же делать трудяге-верстальщику?

Заметки о Ruby. №1. [[: key,: value], [: key2,: value2]] --> {: key =>: value,: key2 =>: value2 }

Reading time1 min
Views1.1K
Планирую начать очень короткие заметки о ruby.

Иногда нам нужно преобразовать структуру вида [[:key, :value], [:key2, :value2]] в
{ :key => :value, :key2 => :value2 }

Короткое решение:

Hash[[[:key, :value], [:key2, :value2]]]

К сожалению, в ruby 1.8.6 не работает. В 1.8.7 баг (?) исправили.

Обычное решение:

[[:key, :value], [:key2, :value2]].inject({}) { |hash, pair| hash[pair[0]] = pair[1]; hash }

Мегакороткое решение, а главное понятное и работает везде от Eugzol’а:

Hash[*[[:key, :value], [:key2, :value2]].flatten]

Неблокирующая загрузка JavaScript

Reading time1 min
Views1.7K
Примечание: ниже перевод статьи «Non-blocking JavaScript Downloads», в которой автор рассказывает о проблемах, связанных с подключением JavaScript-файлов, и возможной параллелизации их загрузок. Мои комментарии далее курсивом.

Stoyan StefanovОб авторе: Stoyan Stefanov является веб-разработчиком Yahoo! в группе Exceptional Performance и курирует разработку YSlow — инструмента по измерению производительности. Он также внес значительный вклад в разработку продуктов с открытым кодом, выступал на конференциях и автор технических текстов. Его последняя книга Object-Oriented JavaScript.

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

читать дальше на webo.in →

И ещё один способ генерации PDF

Reading time4 min
Views9.2K
Навеяно топиком о генрации PDF с помощью ghostscript и Inkscape.

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

Итак, генерация PDF с помощью QT

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

38 статей о создании закругленных углов на сайтах

Reading time4 min
Views12K
Моя статья на Временно.нет
38 статей о создании закругленных углов на сайтах
Часто сталкиваешься с необходимостью создания блоков с круглыми краями. Задавшись вопросом как вообще можно решить поставленную задачу, сделал подборку интересных статей и уроков на данную тему.

Здесь представлен обзор 38 статей, разбитых на 4 категории по способам реализации.
Читать дальше →

Лучшие расширения для Firebug

Reading time1 min
Views1.1K
Adam DuVander из команды сайта WebMonkey составил список пяти лучших надстроек над Firebug. Вне конкуренции, оказался YSlow, но остальные 4 тоже очень полезны:

* Firecookie для простоты работы с cookies
* FirePHP для интеграции серверного PHP дебагинга с интерфейсом Firebug
* Pixel Perfect для наложения макета на HTML шаблон для контроля соответствия вёрстки
* Rainbow для подсветки Javascript синтаксиса

Пользуйтесь.

Объединение JS-файлов 2.0 (1/2)

Reading time3 min
Views3.2K
В последнее время стало модно объединять все внешние JavaScript-файлы вашего сайта в один большой, загружаемый один раз и навсегда. Это, скажем прямо, хорошо — браузер не делает сто миллионов запросов на сервер для отображения одной страницы 1, скорость загрузки повышается, пользователи счастливы, разработчики отдыхают.
Как всегда, в бочке мёда есть ложка дёгтя — в объединённый файл в этом случае попадает много того, что при первом запросе можно было бы и не загружать.2 Здесь должна была быть ссылка на хабратопик с соответствующим обсуждением. Успешно потеряна. Чаще всего для борьбы с этим предлагают выкидывать ненужные части руками… Лично у меня перспектива каждый раз перелопачивать несколько десятков (а то и сотен 3) килобайт JavaScript кода вызывает острое нежелание работать — а у вас?
под катом: описание простейшего алгоритма разрешения зависимости между модулями
Что можно сделать?

Открылся Qik — сервис видеотрансляций с мобильного телефона

Reading time2 min
Views779
Сервисом для организации видеотранляций через веб-камеру настольного компьютера или ноутбука уже никого не удивишь. Подобные сайты существуют в большом количестве как за рубежом, так и в рунете. Но только что открывшийся Qik — не совсем обычный сервис видеотрансляций. С его помощью вы можете организовать живое вещание в интернете через свой мобильный телефон.

Работает это довольно просто — вы устанавливаете на свой аппарат специальное приложение, авторизуетесь в системе и начинаете трансляцию, используя встроенную в телефон камеру и активное подключение к интернет. Создав трансляцию, вы можете пригласить своих друзей и коллег посмотреть ее с сайта qik.com, а также разместить ее на свой профиль в сетях Facebook, Myspace, Orkut или на любую веб-страницу, вставив html-код.



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

DOM DocumentFragment: быстрее быстрого

Reading time1 min
Views4.7K
Примечание: ниже перевод заметки от John Resig DOM «DOM DocumentFragments», в которой автор рассказывает об опыте использования DocumentFragment и сравнивает его быстродействие с обычным appendChild. Мои комментарии далее курсивом.

Недавно я игрался с DOM DocumentFragment в JavaScript, пробуя, что же можно с ним сотворить. Если вкратце, то DocumentFragment является облегченным контейнером для DOM-узлов. Он является частью спецификации DOM 1 и поддерживается во всех современных браузерах (был добавлен в Internet Explorer в 6 версии).

В процессе чтения я наткнулся на интересную вещь. Цитирую из спецификации:

Также различные операции — например, добавление узлов как дочерних для другого Node — могут принимать в качестве аргумента объекты DocumentFragment; в результате этого все дочерние узлы данного DocumentFragment перемещаются в список дочерних узлов текущего узла.


читать дальше на webo.in →

OpenDNS зарабатывает $20 тыс. в день

Reading time1 min
Views929
Бесплатный сервис OpenDNS специализируется на фильтрации сетевого трафика. Он был запущен в середине 2006 года как инструмент для защиты пользователей от фишинга и других «нехороших» сайтов (гемблинг, порнография и т.д., там полсотни категорий, из которых можно выбирать). Вы прописываете IP-адрес в настройках DNS и больше можете никогда не вспоминать о его существовании. В то же время все запросы с этого момента будут проходить через него. Если попытаться загрузить какой-то из запрещённых сайтов — то вместо него в браузере появится страничка от OpenDNS с результатами поиска и контекстной рекламой.

За неполные два года своего существования OpenDNS стал чрезвычайно популярным сервисом, особенно среди корпоративных клиентов и образовательных учреждений. Ежедневно он обрабатывает около 7 млрд DNS-запросов и показывает 2 млн поисковых страниц. Только зарегистрированных аккаунтов насчитывается 500 тыс., но за каждым аккаунтом могут скрываться тысячи настоящих пользователей.

Оказывается, OpenDNS приносит своим создателям неплохие деньги: они получают около $20 000 в день за счёт контекстной рекламы, причём эксклюзивным поставщиком рекламы является Yahoo. Ни одна услуга OpenDNS не предоставляется за деньги, всё абсолютно бесплатно. Пополнение и обновление базы «вредоносных» сайтов осуществляется с помощью самих пользователей через Digg-подобный интерфейс.

via TechCrunch

Information

Rating
Does not participate
Date of birth
Registered
Activity