• Web-шрифты как они есть

      Web-шрифты на данном этапе развития невозможно применять без геморроя. Они придуманы для того, чтобы дать пользователям возможность видеть страницу такой, как её задумал автор сайта. Что на самом деле видит посетитель?
      Читать дальше →
    • Модификация изображений для сайта, или какие бывают превьюшки

        Наверняка каждый из вас делал сайт, где администратор, или даже пользователи, могу закачивать изображения, которые должны отобразится на сайте. Такие изображения можно разделить условно на 2 группы: те, которые вставляются в тело статей, скажем с помощью wysiwyg-редактора, и те, которые закачиваются в отдельное поле и потом выводятся в заранее отведенном месте. Ко вторым относятся всевозможные картинки к новостям, фотографии в фото-галереях, какие-нибудь логотипы партнеров и прочее.

        И те и другие требуют какой-то обработки после размещения, но каждая группа имеет свои особенности.
        Читать дальше →
      • Новые фишки Youtube

          С сегодняшнего дня Ютуб выдает вот такую картинку:

          image

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

          Кстати, если выделить текст на странице ctrl+a, смысл тайного послания будет понятнее:
          image

          UPD: Временное решение пришлось искать Опере софтвере: my.opera.com/chooseopera/blog/2010/04/15/youtube-fix Баг ютуба будет в скором времени исправлен.
        • jQuery 1.4: проблема с прерыванием ajax запросов

            Решил перейти на новую версию, а тут такая засада. Как известно, метод $.ajax() возвращает объект XMLHttpRequest. У этого объекта есть метод .abort(), который прерывает запрос. И вот тут и кроется отличие от предыдущих версий — раньше такой «недогруженный запрос» тихо умирал, а в новой версии срабатывает событие success и недогруженные куски кода вставляются прямо на страницу, из-за чего смотрится это все очень не аккуратно.

            Что это, баг или новая фича? Как это можно обойти? Помогите найти ответ.

            Нормального чейнджлога версии, который бы смог внести ясность, найти не смог. А просматривать все видео на jquery14.com в поисках ответа, сами понимаете, никуда не годится.
          • Оптимизация градиентов в Фотошопе

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

              image

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

                картинка для привлечения внимания

                Как известно, компания Opera готовит нам на рождество (Капитан сказал, что их рождество 25 декабря) отличный подарок, преальфу браузера версии 10.50, основным достоинством которого называется скорость.

                В детстве, под новый год, я всегда пытался найти подарки, которые готовили родители. Я рылся по всем шкафам в квартире и, кажется, мне всегда это удавалось. Вот и сегодня я решил найти следы браузера Opera 10.50 в интернете :)

                Таких же любопытных, как я, прошу под кат.
                Читать дальше →
              • Firefox и Direct2D ускорение: реальный выигрыш производительности

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

                  Итак, в конце ноября Bas Schouten опубликовал в своем блоге заметку о том, что он добавил в код браузера Firefox еще один графический бекенд, для работы с Direct2D. Direct2D — это новый API, призванный заменить давным давно устаревший и выкинутый из состава DirectX DirectDraw. Он работает в Windows 7 и Windows Vista, если ваш драйвер видео карты соответствует хотябы стандарту WDDM 1.0.

                  Замеры скорости отрисовки популярных страниц показывают, что автор старался не зря :)
                  image

                  В той же записи есть ссылка на скомпилированный вариант Firefox с нужными патчами, и я решил посмотреть, так ли велик выигрыш от использования Direct2D.
                  Читать дальше →
                • Другой Open Source

                    Тогда никто этих слов не употреблял. Не уверен, что я тогда вообще знал их значение. Впервые о проекте Владимира Кладова «Key Object Library», или просто KOL я узнал еще до института, в одном из двух выпусков журнала «Программист», которые моя мама выписала мне в честь выезда на олимпиаду по программированию в область. Статья называлась «Кол в сердце… своей программы!» Кажется в том же выпуске журнала, я впервые узнал и о .NET. Тогда, такие непомерные требования к ресурсам казались чуть ли не диверсией софтверного гиганта против IT индустрии. (До сих пор вспоминаю лабораторную друга-однокурсника, состоящую из одной формочки, запускающуюся пол минуты на кафедре на железе Celeron 433 64мб ОП из под 98-й винды. Я на той машине еще в Diablo II без тормозов играл, когда задание на пару было выполнено :)
                    Читать дальше →
                  • Google chrome не показывает атрибут alt у картинок

                      Убедиться в этом легко, создав документ с текстом
                      <img src="wrong" alt="Alt"/> и открыв его в хроме. Результат будет такой.

                      Предвидя вопрос «нафига браузеру, в котором в принципе не возможно отключить картинки1), нужен Alt», напоминаю, что альтернативный текст бывает полезен и в случаях, когда картинка не может быть доставлена до пользователя по различным причинам.

                      1) На самом деле возможность есть, но для этого нужно перезагрузить браузер, когда нужно выключить, и когда нужно включить.
                    • Боремся с неплавной анимацией скрытых элементов

                        Работая с jQuery многие рано или поздно сталкиваются с одной особенностью: когда мы хотим показать с анимацией скрытый блок, его появление может быть дерганым. Происходит это не всегда, но довольно часто. К сожалению не все разработчики знают как с этим бороться, а те кто знают, зачастую ленятся. Явный пример дерганного появления блока, можно посмотреть прямо на главной странице jQuery, нажав на кнопку Run Code:

                        image
                        Читать дальше →
                      • Разбираемся с анимацией в jQuery

                          imageЗдравствуйте. Сегодняшний топик я хотел написать о том, что механизм анимации в jQuery не эффективен, создает кучу таймеров, каждый из которых работает по отдельности, что приводит к чрезмерно частой перерисовки контента и сильно тормозит браузер, и хотел описать некоторые приемы написания «правильной анимации». В ходе подготовки примеров я понял, что я ошибался. Механизм анимации jQuery действительно не эффективен, создает кучу проблем, но причины этих проблем вовсе не в создании большого количества таймеров, а в нечте совсем другом, и, кажется, я добился замечательных результатов в устранении этих проблем.
                          Читать дальше →
                        • Скоро мы увидим расширения в опере?

                            Сегодня я скачал новую сборку оперы. В тестовых сборках до сих пор работают над юнайтом. Так же постепенно добавляются новые сервисы, которые теперь называются приложения. Одно из приложений я решил установить, называется оно UJS Manager — тоесть менеджер User Javascript. Выглядит оно в боковой панели так или так в зависимости от выбранной темы оперы:
                            Читать дальше →
                          • Способ вертикального выравнивания блока с помощью настоящего vertical-align

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

                              Требования

                              — Должна быть известна начальная высота родительского блока;
                              — Дочерний блок может иметь произвольный размер как по высоте, так и по ширине.

                              Возможности

                              — Работает в IE6+, O9+, FF2+, webkit;
                              — Тру vertical-align выравнивание со всеми допустимыми значениями;
                              — Одинаковое поведение во всех браузерах (незначительные отклонение при некоторых условиях в ие6 будут оговорены ниже);
                              — При вырастании дочернего блока выше «папочки», родительский блок расширяется;
                              — Ни грамма JavaScript.
                              Читать дальше →
                            • Контролы форм в html 5

                                Честно говоря, я сначала хотел сделать обзор, как современные браузеры поддерживают всякие новые контролы для форм из спецификации html 5. Но похоже обзора не выйдет — единственный браузер, поддерживающий больше двух контролов — Опера.

                                Я накидал очень простенькую страничку, куда поместил кучу input'ов с неведомыми мне доселе значениями свойства type и получил такой результат:
                                Читать дальше →
                              • Пример использования пользовательских событий

                                  Наверное много кто знает что в jQuery есть набор стандартных событий, таких как Click или MouseDown и прочие, на которые можно повесить обработчики или возбудить с помошью функций click() mousedown() и прочих. Чуть поменьше людей знают, что те-же самые действия можно сделать с помощью функций bind() и trigger():
                                  $(document).bind('click', function(){
                                    alert('It works!');
                                  });

                                  $(document).trigger('click');


                                  * This source code was highlighted with Source Code Highlighter.

                                  И наверное мало кто знает, что в функциях bind() и trigger() можно использовать свои собственные события. Зачем это нужно, я и хочу рассказать на примере.
                                  Читать дальше →
                                • Что нам готовит Kohana 3

                                    Как-то так получилось, что примерно месяц я не следил за разработкой этого замечательного фреймворка. Наблюдение за скоростью разработки версии 2.4 вызывало тоску. Но вчера я заглянул на сайт и ахнул. Оказывается, разработчики, не дождавшись готовности версии 2.4, успели уже выпустить целых 2 релиз кандидата версии 3. Глянул я в исходные тексты, немного почитал форум и стало мне так радостно на душе от грядущих изменений, что я решил не дожидаться 09.09.09 или ранее и поделиться радостью.
                                    Читать дальше →
                                  • Дыры в форуме NetCat

                                      Вы наверное уже слышали о CMS Netcat и даже видели кое-какие примеры кода этой CMS.

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

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

                                      Вот я и решил поделиться этим багом.

                                      1) Заходим в любую ветку форума, пусть для определенности будет эта.
                                      1,5) Если вы залогинены, нужно выйти
                                      2) Нажимаем Ответ
                                      3) Вводим в поле «Имя пользователя» число.

                                      Все!

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

                                      Можно представить, какой бардак творится в коде у системы.

                                      UPD. Сейчас форум на сайте компании закрыли. Если в ближайшее время появится патч, можно считать что я добился того, что хотел, публикуя эту статью.
                                    • Cтеклянная строка вкладок в Опере

                                      • Translation
                                      С момента появления Google Chrome, много мелких деталей во внешнем виде браузеров привлекли мое внимание. Одной из них стала пропажа заголовка окна и использование стеклянной строки с вкладками, что очень хорошо вписывается в стиль Vista/Win7 Aero.

                                      Недавно Safari 4 тоже скопировал этот формат.

                                      image

                                      И, наконец, мы добрались до оперы…
                                      Я пользуюсь Оперой более 6 лет, и я впечатлен достижениями в последних билдах. Но я (и другие), хотели бы видеть стеклянные окна в опере 10, но с таким количеством новых функций, мне не кажется, что Aero будет доступна к финалу (на самом деле его обещали к Опере 11).

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