Search
Write a publication
Pull to refresh
3
0

User

Send message

GAME_ON 2010 — конкурс браузерных игр от Mozilla

Reading time2 min
Views734
GAME_ONПривет, Хабр!

Ты всегда в курсе всех дел, но про одно, кажется забыл. Прямо сейчас приближается к своему завершению GAME_ON — конкурс среди браузерных игр, созданных с использованием открытых веб-технологий HTML5, canvas, WebSockets и прочих. Организатором конкурса выступила корпорация Mozilla, не так давно задавшаяся целью создать сообщество разработчиков игр, готовых перейти на новую, более инновационную платформу.
Читать дальше →

Вынеси мусор!

Reading time5 min
Views4.7K
Речь пойдёт о сборке мусора и утечках памяти в разных браузерах.

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

Использование mcabber через ssh на удаленном сервере с уведомлениями

Reading time3 min
Views2.7K
В этой статье я расскажу, как можно держать постоянно запущенным jabber-клиент mcabber на удаленном сервере и пользоваться им подключаясь к серверу по ssh. Также здесь будет описано, как можно реализовать уведомления о пришедших сообщениях.
Профиты от такой схемы следующие:
  • вы постоянно on-line
  • если вдруг рвется соединение не приходится перелогиниваться и терять (при неудачном раскладе) оффлайновые сообщения
  • логи хранятся в одном месте и доступны отовсюду где есть интернет
  • вы можете пользоваться mcabber с любого устройства, поддерживающего ssh, будь то мобила или веб-клиент
  • говорят, что ssh кушает меньше трафика, чем xmpp (не проверял)
Читать дальше →

Динамический favicon или отображаем карму, не обновляя страницу

Reading time5 min
Views12K
image
У каждого из нас, полагаю, в любимом браузере постоянно открыты несколько вкладок одновременно. Не раз бывают случаи, что и заголовка вкладки не видно — лишь favicon'ки. Но часто они информации, кроме как отображения логотипа сайта, не дают. И, наверное, зря. Но мы постараемся и здесь использовать это место (целых 16px*16px!) так, как хотим. По крайней мере, будем знать, как это можно сделать.
Читать дальше →

Обфускация JavaScript

Reading time5 min
Views197K
В статье собраны всем известные методы и предельно извращенные. Эту статью я решил написать после недавнего прочтения поста в блоге Badass JavaScript и решил её дополнить своими находками.

Первый способ


Он всем известен — обфускация минимизаторами такими как JS Packer, JSmin, YUI Compressor, Closure compiler или можно просто пугуглить «JavaScript Obfuscator» и найдется ещё сто штук разных обфускаторов.
Они превращают существующий код
function MyClass(){
    this.foo = function(argument1, argument2){
        var addedArgs = parseInt(argument1)+parseInt(argument2);
        return addedArgs;
    }
    var anonymousInnerFunction = function(){
        // do stuff here!
    }
}

В какой-то такой вид:
function MyClass(){this.foo=function(c,b){var d=parseInt(c)+parseInt(b);return d};var a=function(){}};

Или такой:
var _0xd799=["\x66\x6F\x6F"];function MyClass(){this[_0xd799[0]]=function (_0xefcax2,_0xefcax3){var _0xefcax4=parseInt(_0xefcax2)+parseInt(_0xefcax3);return _0xefcax4;} ;var _0xefcax5=function (){} ;} ;

Или вот такой:
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4 0="3 5!";9 2(1){6(1+"\\7"+0)}2("8");',10,10,'a|msg|MsgBox|Hello|var|World|alert|n|OK|function'.split('|'),0,{}))

Но ничего не стоит его восстановить с помощью jsbeautifier.org либо просто убрать eval и получить исходный код, многое потеряем, но смысл кода восстановим. Ну и с первого взгляда мы видим, что перед нами JavaScript.

Все это были цветочки под катом жесткие методы обфускации.
Читать дальше →

Разоблачение алгоритмов растеризации шрифтов (2/2)

Reading time14 min
Views10K
(вторая часть перевода статьи Разоблачение алгоритмов растеризации шрифтов)

Linux


Наследуя худшее


Windows растеризует шрифты плохо, Linux ещё хуже. Во всех Linux-системах, которые я видел, используется FreeType [10] Дэвида Тёрнера, Роберта Вильгельма и Вернера Лемберга. Это отличная библиотека, но способ её использования, к сожалению, нельзя назвать удачным. Типичный скриншот Linux выглядит так:



Вот полный скриншот:
ссылка

Сразу заметна проблема — чёрные пятна в скругленных углах, образовавшиеся в результате сглаживания. Вцелом, можно сказать, что косые штрихи выглядят тяжелее чем вертикальные, что в регультате производит впечатление «грязи». Вы можете возразить, что FreeType и Linux могли бы использовать схожую с ClearType субпиксельную растеризацию, но по мне это не даёт заметных преимуществ.
Читать дальше →

Разоблачение алгоритмов растеризации шрифтов (1/2)

Reading time15 min
Views14K
Попытка улучшить алгоритмы растеризации шрифтов, пользуясь исключительно общедоступной информацией.

От переводчика


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

FileSystem API&File API: разбираемся и используем

Reading time14 min
Views98K
HTML5 Powered with Performance & Integration, and Offline & Storage
В данной статье я хочу рассмотреть FileSystem API и File API, разобраться с его методами и показать пару полезных штук. Эта статья является компиляцией материалов с html5rocks (1, 2, 3). Все представленные ниже демки можно посмотреть по первым двум ссылкам. Третья ссылка так же предлагает ряд интересных демо. Ну а теперь займемся изучением материала.
Читать дальше →

HTML5 Canvas — создание аркады-скроллера по шагам

Reading time8 min
Views5.7K
image

Предисловие

Это инструкция по созданию игры, которую я накодил за пару вечеров. Целью было не столько создание достойного представителя жанра, сколько проверка возможностей Canvas и ООП в JavaScript. Чтобы было интереснее, я поставил условие — никаких внешних файлов со спрайтами, вся графика рисуется встроенными методами. Также, не используется никаких фреймворков и библиотек. Просто потому, что в такой небольшой игре их использование ИМХО не оправдано.

В целом, Canvas молодая платформа, и может вызывать интерес перенесением на нее классических игровых концепций.

Задача

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

Исполнение

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

Не совсем обычный XMPP-бот на Python: туннелирование

Reading time5 min
Views7.4K
Не так давно была опубликована статья про ICQ на Python, которая меня подтолкнула развить тему, правда в несколько другом направлении. Несколько лет назад у меня были трудности с домашним интернетом: доступ только в локальную сеть, из связи с внешним миром только ICQ и локальный Jabber сервер; никакой другой возможности попасть наружу не было. В результате чего родилась идея туннелировать HTTP трафик в XMPP.

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

Планируемые новшества в CSS

Reading time2 min
Views2.8K
Tab Atkins, член рабочей группы CSS и команды Google Chrome, опубликовал слайды презентации, которую он проводил в прошлую среду.

Эта презентация демонстрирует четыре относительно новых концепта
Читать дальше →

Делаем себе удобно и красиво (о настройках IDE/редактора)

Reading time4 min
Views52K
Один мой друг однажды сказал: „Я смотрю на код восемь часов в день, и я хочу, чтобы смотреть было приятно“. Он имел в виду качество кода, и здесь все понятно (или, наоборот, ничего не понятно). Но что с самим изображением? Все ли с ним хорошо? Можно ли сделать лучше? Это вопросы, которые совсем недавно пришли мне в голову, и я решил озаботиться ими серьезно. Оказалось, что это поле непаханое для улучшений.
Читать дальше →

Тонкости регулярных выражений. Часть 1: метасимволы внутри и вне символьных классов

Reading time5 min
Views17K

Вместо вступления



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

Что бывает, когда начинающий программист в первый раз узнает про регулярные выражения? Чаще всего первое знакомство с ними происходит методом «научного тыка», поскольку ни знаний в соотвествующей области, ни понимания «как это работает» обычно на данном этапе у человека нет. Почему так происходит?

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

Проблемы использования SVG-кнопок в браузерах

Reading time10 min
Views20K
Данная статья является продолжением статьи Рисуем кнопку в SVG, в которой рассматривались проблемы создания SVG-изображений, предназначенных для использования в качестве кнопок на веб-страницах. Здесь я перейду непосредственно к внедрению полученных картинок в HTML-код и расскажу, с какими проблемами столкнётся при этом разработчик, как эти проблемы можно решать и что делать с проблемами, которые решить не удаётся.

На всякий случай (для тех, кто не читал первую статью) повторю, что многие из проблем решить так и не удалось, и что это в конце концов вынудило меня отказаться от идеи использования SVG. Так если вам не хочется тратить время на чтение статьи, не приводящей к реально использующемуся результату, вы вполне можете её пропустить. Тех же, кому несмотря на это интересны детали и конкретика, прошу под кат.
Читать дальше →

Статистика по книге «HTML5: Up & Running»

Reading time2 min
Views4K
Марк Пилгрим выложил статистику по книге «HTML5: Up & Running», которая опубликована издательством O'Reilly в августе 2010-го. Хотя этот справочник по HTML5 доступен бесплатно на сайте Dive Into HTML5 (под лицензией Creative Commons Attribution), в первые шесть недель было продано более 14 000 копий (из них 25% в цифровой форме). Таким образом, издательство O'Reilly быстро окупило все расходы. Сейчас Пилгрим получил первый чек сверх того, что издательство платило ему авансом в течение года работы над книгой.

Из четырёх написанных справочников Пилгрима это лишь второй после Питона, который окупился до такой стадии. Автор считает, что открытая модель публикации привлекла внимание к книге, благодаря чему было получено 1500 предварительных заказов ещё до появления её в магазинах.
Читать дальше →

CSS3 сейчас — transition

Reading time3 min
Views264K
CSS3 и HTML5 развиваются всё быстрее и быстрее, браузеры начинают поддерживать всё больше новых фишек и плюшек. В связи с этим, мне хотелось бы заглянуть в наш будущий рай верстальщиков и сделать цикл обзорных статей по новым плюшкам и фишкам этих технологий.
В этом цикле мне хотелось бы рассмотреть такие свойства CSS3, как transition, animate, opacity и модель rgba().

Использование CSS3.


Часто можно услышать от многих веб-дизайнеров слова «Я уже не могу дождаться, когда же можно будет использовать CSS3...». А между тем, использовать его можно уже сегодня. Да, использование CSS3 для критичных моментов сайта сейчас невозможно. Но использовать его для добавления мелких, некритичных для проекта деталей вполне реально, можно и нужно.

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

CSS3 сейчас — анимация, прозрачность и многое другое (часть 2)

Reading time3 min
Views48K
Продолжая цикл статей «CSS3 сейчас!» (Первая статья — CSS Transitions), хотелось бы рассказать об анимации средствами CSS3, а конкретно — @keyframe и animate. Так же, в статье мы затронем свойства opacity и цветовую модель rgba(), кроссбраузерное использование border-radius, box-shadow и градиентов.

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

Результаты Декабрьского конкурса HTML5 игр

Reading time1 min
Views2.3K
Каждый месяц мы проводим конкурс HTML5 игр (html5contest.com), и пришло время огласить победителей прошлого месяца.

image

Очень приятно смотреть, насколько быстро улучшается качество игр. Еще в сентябре мы видели ели-играбельные прототипы, а сейчас имеем полноценные игры.

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

А вот и победители:
Читать дальше →

Еще один способ использования экзотических шрифтов на веб-странице

Reading time4 min
Views3.7K
imageНередко бывает, что клиент хочет «вот этот красивенький шрифтик ААА» себе на сайт. Раньше это было в большинстве случаев недоступно, пока не появились различные библиотеки для работы с нестандартными шрифтами либо тот же @font-face.

Существуют также решения типа sIFR, cufon, и другие, хотя они, возможно, по сравнению с предлагаемым методом не так элегантны. Холиварить, что лучше мы не будем.
Да и с @font-face могут быть проблемы с лицензиями на шрифты и другие вещи.

Еще когда-то большая часть сайтостроителей пользовались картинками (да и сейчас замечается). Иногда мне в те времена приходилось отказываться от картинок в пользу быстрой загрузки сайта (ведь тогда еще скорость Интернетов была не такая как сейчас). Но заказчику объяснить, почему лучше не использовать тот или иной «красивенький» шрифт — весьма трудно. Да и не должно такое быть на самом-то деле!

Какой же вариант наиболее оптимален?
Читать дальше →

QR генератор в Firefox для удобной подписки на подкасты телефоном

Reading time2 min
Views1.3K
Часто бывает, что находишь интересный видео или аудио подкаст, например на недавно анонсированом mp4serial.ru, и хочется на подкаст этот подписаться. Но что бы перенести ссылку в телефон приходится копировать url, идти в любимый QR генератор и генерировать код, затем сканировать его, и т.д.
Предлагаю немного укоротить этот путь, исключив копирование, и просто добавить генератор QR кодов в выпадающий список предлагаемых сервисов:

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

Information

Rating
Does not participate
Location
Украина
Registered
Activity