Обновить
433.78

Веб-разработка *

Делаем веб лучше

Сначала показывать
Порог рейтинга
Уровень сложности

Что можно ожидать от Луа 5.2?

Время на прочтение8 мин
Охват и читатели5.7K

Опубликована первая превью-версия Луа 5.2


Луа (Lua) — мощный, быстрый, лёгкий, расширяемый и встраиваемый скриптовый язык программирования. Луа удобно использовать для написания бизнес-логики приложений.

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

То, что выложено на публику даже не альфа — это просто снапшот рабочего кода. К релизу может измениться всё, что угодно.

Анонс здесь: http://article.gmane.org/gmane.comp.lang.lua.general/61229

Дополненный список изменений от авторов здесь: http://article.gmane.org/gmane.comp.lang.lua.general/61505

Скачать исходники можно здесь: http://www.lua.org/work/lua-5.2.0-work1.tar.gz

Сборка под Windows здесь: http://article.gmane.org/gmane.comp.lang.lua.general/61528

Посмотреть исходники в онлайне можно, например, здесь.

Update: Выложен 5.2.0-work2, анонс здесь.
То, что написано ниже, скорее всего, будет интересно только людям, близко знакомым с языком.

Download Master Plugin ломает Prototype-сайты

Время на прочтение1 мин
Охват и читатели3.6K
С недавнего времени у меня на Клавогонках у некоторых пользователей начались проблемы совершенно мистического плана — не работали функции, которые ну никак не могли не работать, всплывали абсолютно дикого вида ошибки и гейзенбаги. Долго и мучительно пытаясь выяснить в чем проблема, и не без помощи сообразительных юзеров я обнаружил, что последняя версия Download Master (довольно популярная программа), выпущенная вроде бы где-то в ноябре, содержит удивительнейший Firefox-плагин, который ставится в браузер автоматически. Плагин этот зовется Download Master Plugin 1.2 и его удивительность заключается в том, что он подгружает в глобальное javascript-пространство страницы библиотеку jQuery целиком как она есть. По-настоящему подгружает, со всеми функциями, и (внимание!) с функцией $(). Тем самым, разумеется, ломая аналогичную функцию из Прототайпа.

Tест кейс

Оптимизация градиентов в Фотошопе

Время на прочтение2 мин
Охват и читатели16K
Материал, скорее, для начинающих верстальщиков, например таких, что работают в Microsoft ;) На тему натолкнула одна картинка с одной популярной странички:

image

Дело в том, что весит картинка 55 211 байт. А вот она же, но уже размером 1 764 байт. Если вы думаете, что разница в формате (у меня png, а в оригинале gif), то вы правы лишь отчасти. Попробуйте пересохранить исходное изображение в png, врядли у вас получится серьезный выигрыш (у меня размер получился 45 кб). В общем, дело не в формате.
Тогда в чем же?

Отключайте autocomplete

Время на прочтение3 мин
Охват и читатели80K
В 1999-м году в браузере IE 5 Микрософт впервые реализовал автозаполнение текстовых полей форм, что позволило вам не вводить текст, который вы уже вводили ранее в поле с данным именем (в том числе на другом сайте). Тогда же появилось нестандартное расширение тега <input>: атрибут autocomplete, установление которого в off позволяло отключить эту функциональность для конкретного поля. Сейчас все популярные браузеры (подсказали, что кроме Оперы) поддерживают автозаполнение и этот атрибут. Он также введён в стандарт HTML 5. Тем не менее, разработчики веб-сайтов зачастую им пренебрегают.
Читать дальше →

Разработка расширения для Envos.Blogs

Время на прочтение1 мин
Охват и читатели884
Сделал небольшой видео-туториал, который научит вас разрабатывать расширения для Envos.Blogs, а тех кто расширения разрабатывать не собирается просто познакомит с возможностями Envos Framework :)

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

Записки можно удалять и добавлять. Незалогиненный пользователь к модулю доступа не имеет. В примере показывается так же как добавить свой валидатор. В данном случае он проверяет что длина текста записки не равна нулю.

Ролик снабжен комментариями по ходу, но я старался не перегружать ролик текстом, так что следите внимательно за тем, что происходит на экране. И не забудьте сделать Full Screen.



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

Thick As Brick – простейший html шаблон для верстки

Время на прочтение2 мин
Охват и читатели14K
Я почему вредный был?
Потому что у меня велосипеда не было!
Мультфильм «Трое из Простоквашино»


Когда десять раз делаешь одно и то же, на одиннадцатый раз ты волей-неволей начинаешь задумываться о том, как бы процесс оптимизировать. Так и с версткой: после десятка сверстанных страниц хочется слегка упростить свою задачу. Тут на помощь, конечно же, приходят разнообразные фреймворки (чего только стоит oocss или наикрутейший CSS-фреймворк от Яндекса или целая куча других не менее интересных фреймворков). Пригодятся и системы сборки (Ant стоит на службе у студии Артемия Лебедева, да и я потихоньку постигаю его Дао). Не стоит забывать и различные хаки и шаблоны лейаутов, коих в интернете бесчисленное множество.

Однако как быть с сайтом, для которого надо сверстать пару-тройку типичных страниц? Нет смысла тащить с собой кучу лишнего CSS-кода. Кроме того, многим верстальщикам гораздо проще написать качественный код с нуля, чем перегружать кучу заранее объявленных бесполезных классов. Что делать?

Чтобы решить эту высосанную из пальца нетривиальную задачу я написал простейший шаблон для верстки, который сильно облегчил мне работу над проектами. Шаблон примитивен и прост (потому так и зовется), на звание фреймворка ни в коем случае не претендует (минус в карму тому, кто обзовет его фреймворком! ;) ). Он несет в себе заранее объявленные CSS-классы для работы с меню, списками, формами, ресеты основных тегов (вроде сброса отступов у форм и правильных отступов у <p>) и еще кое-какие полезные для меня вкусности.

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

encached: кеширующий сервер

Время на прочтение2 мин
Охват и читатели2.7K
Идея написания сервера кеша приходила ко мне давно, но небыло подходящего повода и инструмента, чтобы начать над ним работу. Сделать свой сервер кеша мне хотелось по двум причинам: опыт, возможность легко добавлять нужные мне функции (кто видел код memcached, тот меня поймет). Основной проблемой для меня был C++. Несмотря на то, что я нередко с ним сталкиваюсь, он мне не нравится совсем. Я не буду начинать холивар и писать о его недостатках. Он мне не нравится так же как кефир с детства: мы с ним несовместимы. Поэтому для меня было большой новостью существование FreePascal. Когда-то давно у меня был опыт работы на Delphi, поэтому с Pascal я был «на ты». Особенно меня удивило то, что FreePascal оказался кроссплатформенным (чем Delphi совсем не блистал).
Читать дальше →

Знай откуда пришел пользователь

Время на прочтение2 мин
Охват и читатели18K
Когда вы открываете свой проект вы начинаете писать о нем везде, в том числе и на хабре.

Сервисы статистики типа Google Analytics дадут вам общую оценку трафика, а именно сколько посетителей пришло с какого ресурса. Можно настроить цели(goals) и отследить регистрации или покупки, но этого часто бывает недостаточно.

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

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

Highcharts: Красивые, динамические чарты за 5 минут!

Время на прочтение2 мин
Охват и читатели70K
image
Highcharts — библиотека для создания чартов написанная на JavaScript, позволяет легко добавлять интерактивные, анимированные графики на сайт или в веб-приложение. На данный момент чарты поддерживают большое количество диаграмм линейных, круговых, колоночных рассеивающих и многих других типов.

Чарты работают со всеми популярными браузерами, включая Safari на iPhone.
Минимальная версия для IE составляет 6+. Также браузеры поддерживающие Canvas элемент, и в некоторых случаях SVG для графического рендеринга.
Читать дальше →

Получение RSS/Atom фидов с любой страницы

Время на прочтение16 мин
Охват и читатели12K
С Новым Годом! Пока на улице праздник, я занимался одной из интересных проблем (или задач, как кому) своего проекта. Дано — система, схожая с Google Readers, которая принимает от пользователя некоторый адрес и должна обеспечить просмотр (а позже, и подписку) доступных там RSS-фидов. Задача осложняется тем, что от пользователя нельзя требовать ввода именно полного адреса ленты, да и даже просто адреса сайта или произвольной страницы — он может быть введен в совершенно разных вариантах, полностью или частично и т.п. Самих лент на странице также может быть более одно, часто нескольких форматов сразу (а то и не быть вовсе). Поэтому нам надо выбрать из всех доступных лент последние сообщения и отобразить пользователю, чтобы именно он выбрал в конечном итоге одну ленту, которая его интересует. Открою секрет — да, это только начало и в последующих статьях мы вместе постоим несколько уменьшенную версию системы агрегации и чтениях новостей. Но сегодня попробуем решить первую задачу, без которой наша «читалка» просто не сможет работать, какие бы дальше технологии не применялись.

Основой будет мой любимый инструмент — Zend Framework (используем последнюю, trunk версию). Если вы знакомы с его возможностями, что сходу предложите компонент Zend_Feed, который имеет встроенные возможности по извлечению из страницы лент. Однако не спешите, на практике задача не так и проста. Поэтому будем решать ее постепенно.
Читать дальше →

Ближайшие события

Сформирована российская Ассоциация Интерактивных Агентств

Время на прочтение1 мин
Охват и читатели1.1K
28 декабря восемь компаний из первой двадцатки рейтинга Тэглайн объявили о формировании «Ассоциации Интерактивных Агентств» (АИА).



В ассоциацию вошли:

Actis Wunderman
ADV/web-engineering
Defa Interaktiv
Red Keds
Promo Interactive
Qsoft
Articul Media
Grape

Официальный сайт АИА — www.iassociation.ru.

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

Сохранить HTML страницу как PDF, JPEG

Время на прочтение1 мин
Охват и читатели23K
Приветствую сообщество. Думаю я не первый и не последний, перед кем встал вопрос, как же сохранить html страницу в pdf или jpeg формате. Ситуация простая. Разрабатываем crm, есть генератор документов для документооборота. Генератор, соответственно, всего на всего html шаблонизатор, адаптированный для документации. Короче говоря на выходе имеем html. Система сама рассылает заявки производителям, письма партнерам итп. Отправлять их в html виде совершенно не целесообразно, в pdf или jpeg самое оно.
Стандартные консольные средства конвертации html во что-то более «печатоудобное» не подошли. Это и понятно, верстка многих документов достаточно специфична и в любом случае без процессора (в нашем случае браузера) не обойтись. Было опробовано куча соответствующего ПО и модулей. От php скриптов до консольных приложений. Ближе всех оказался dompdf, однако он не был идеальным + частенько сбоил, что в нашем случае недопустимо.

В итоге пришли к решению, что ничего не остается, как брать виндовый сервак, ставить его в нормальный ДЦ, поднимать там фаерфокс итп и делать сервис.
Уважаемые знатоки, внимание вопрос :) Не изобретаем ли мы велосипед? Может кто знает такой сервис, куда денежков заплатил, а на выходе из html получаешь копию firefox-like но уже в jpeg и pdf?

p.s. соответственно советы и способы типа «а ты сверстай документы не firefox-like, а как понравится консольному софту» не годятся, т.к. речь именно о достаточно простом генераторе документов. Не заставлять же каждого пользователя crm учить особенности рендера того же html2ps, а с вёрсткой под великую тройку справится и начинающий верстальщик.

TinyMCE и Opera 10.50

Время на прочтение2 мин
Охват и читатели1.2K
Вышла альфа новой Оперы. Не заставил себя ждать один из первых подводных камней — в новой Опере некорректно работает последняя версия TinyMCE (3.2.7, выпущенная в сентябре). Если открыть сам сайт TinyMCE с примером (http://tinymce.moxiecode.com/examples/full.php), и щелкнуть по любой кнопке, вызывающей диалог (например, просмотр HTML), мы увидим серое поле без ничего. Вставка картинок, HTML код, многие другие незаменимые фичи не работают. Тут можно дождаться обновления TinyMCE, можно дождаться обновлений Оперы. Или можно прямо сейчас поставить «костыль», который решит (временно) проблему.
Это довольно просто

7+ превосходных инструментов для оптимизации изображений

Время на прочтение5 мин
Охват и читатели106K
Перевод статьи 8 Excellent Tools for Optimizing Your Images
К сожалению на момент перевода один из сервисов перестал работать. Но хабровчане предложили еще много хороших решений!

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

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

WebSockets — полноценный асинхронный веб

Время на прочтение7 мин
Охват и читатели349K
Пару недель назад разработчики Google Chromium опубликовали новость о поддержке технологии WebSocket. В айтишном буржунете новость произвела эффект разорвавшейся бомбы. В тот же день различные очень известные айтишники опробовали новинку и оставили восторженные отзывы в своих блогах. Моментально разработчики самых разных серверов/библиотек/фреймворков (в их числе Apache, EventMachine, Twisted, MochiWeb и т.д.) объявили о том, что поддержка ВебСокетов будет реализована в их продуктах в ближайшее время.
Что же такого интересного сулит нам технология? На мой взгляд, WebSocket — это самое кардинальное расширение протокола HTTP с его появления. Это не финтифлюшки, это сдвиг  парадигмы HTTP. Изначально синхронный протокол, построенный по модели «запрос — ответ», становится полностью асинхронным и симметричным. Теперь уже нет клиента и сервера с фиксированными ролями, а есть два равноправных участника обмена данными. Каждый работает сам по себе, и когда надо отправляет данные другому. Отправил — и пошел дальше, ничего ждать не надо. Вторая сторона ответит, когда захочет — может не сразу, а может и вообще не ответит. Протокол дает полную свободу в обмене данными, вам решать как это использовать.

Я считаю, что веб сокеты придутся ко двору, если вы разрабатываете:
— веб-приложения с интенсивным обменом данными, требовательные к скорости обмена и каналу;
— приложения, следующие стандартам;
— «долгоиграющие» веб-приложения;
— комплексные приложения со множеством различных асинхронных блоков на странице;
— кросс-доменные приложения.

Заинтриговал? Давайте посмотрим подробнее

Сжатие Юникод данных

Время на прочтение4 мин
Охват и читатели4.6K
В одном будущем проекте встала задача передавать и хранить данные в формате VCard, которые содержат кириллические буквы. Так как размер передаваемой информации ограничен, необходимо было уменьшить размер данных.

Было несколько вариантов:
  1. Использовать традиционные кодировки (для кириллицы — CP1251).
  2. Использовать форматы сжатия Юникода. На сегодняшний день это — SCSU и BOCU-1. Детальное описание этих двух форматов привожу ниже.
  3. Использовать универсальные алгоритмы сжатия (gzip).

Красивый, но бесполезный, график результатов:
image

Варианты решения и результаты

Вклад авторов