Pull to refresh
129
0
Александр Карпинский @homm

Например: Программист

Send message

Способ вертикального выравнивания блока с помощью настоящего vertical-align

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

Требования

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

Возможности

— Работает в IE6+, O9+, FF2+, webkit;
— Тру vertical-align выравнивание со всеми допустимыми значениями;
— Одинаковое поведение во всех браузерах (незначительные отклонение при некоторых условиях в ие6 будут оговорены ниже);
— При вырастании дочернего блока выше «папочки», родительский блок расширяется;
— Ни грамма JavaScript.
Читать дальше →
Total votes 98: ↑83 and ↓15+68
Comments59

Контролы форм в html 5

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

Я накидал очень простенькую страничку, куда поместил кучу input'ов с неведомыми мне доселе значениями свойства type и получил такой результат:
Читать дальше →
Total votes 90: ↑86 and ↓4+82
Comments82

Пример использования пользовательских событий

Reading time4 min
Views7.6K
Наверное много кто знает что в 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() можно использовать свои собственные события. Зачем это нужно, я и хочу рассказать на примере.
Читать дальше →
Total votes 57: ↑48 and ↓9+39
Comments29

Что нам готовит Kohana 3

Reading time4 min
Views2.3K
Как-то так получилось, что примерно месяц я не следил за разработкой этого замечательного фреймворка. Наблюдение за скоростью разработки версии 2.4 вызывало тоску. Но вчера я заглянул на сайт и ахнул. Оказывается, разработчики, не дождавшись готовности версии 2.4, успели уже выпустить целых 2 релиз кандидата версии 3. Глянул я в исходные тексты, немного почитал форум и стало мне так радостно на душе от грядущих изменений, что я решил не дожидаться 09.09.09 или ранее и поделиться радостью.
Читать дальше →
Total votes 29: ↑25 and ↓4+21
Comments52

Дыры в форуме NetCat

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

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

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

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

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

Все!

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

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

UPD. Сейчас форум на сайте компании закрыли. Если в ближайшее время появится патч, можно считать что я добился того, что хотел, публикуя эту статью.
Total votes 125: ↑110 and ↓15+95
Comments203

Cтеклянная строка вкладок в Опере

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

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

image

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

Читать дальше →
Total votes 93: ↑76 and ↓17+59
Comments88

Спецификации протокола Scope

Reading time2 min
Views1.4K
Ни разу до этого не писал переводы, если есть замечания, пожалуйста, в хабрапочту.

Сегодня мы рады представить спецификации протокола Scope. Этот протокол используется для связи Оперы с отладчиком Dragonfly. Он также используется в компании Опера для автоматизированного тестирования браузера.
Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments22

Разворачиваем nginx + mod_wsgi на сервере

Reading time8 min
Views29K
Здрасти. Долго-долго я присматривался к замечательному фреймворку django, читал книгу, изучал статьи, пробовал писать hello world'ы (со встроенным в джангу сервером это было легко и приятно). А вчера я попробовал настроить от начала до конца боевой сервер, и как оказалось, это не так просто, и мне даже показалось, что будь я моложе и неопытнее, я бы плюнул на это дело. Вот я и решил поделиться с читателями полной инструкцией, снабдив её некоторыми рассуждениями и конфигами. Статья расчитана на начинающих, но будет интересно всем, обещаю.
Читать дальше →
Total votes 41: ↑38 and ↓3+35
Comments24

Брендогенератор

Reading time1 min
Views9.8K
Вы когда-нибудь регистрировали свою фирму? Наверняка вы долго придумывали, как её назвать. Мы придумали сервис для вас. Больше не нужно сидеть бессонными ночами над названиями новых направлений бизнеса и торговыми марками продуктов. Не нужно обращаться к профессиональным неймерам, никакого креатива, никаких скучных фокус-групп и исследований!

Наш вклад в развитие профессионального нейминга — сервис Брендогенератор.

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

Особую гордость вызывает то, что сервис написан на кохане.
Total votes 112: ↑71 and ↓41+30
Comments96

Навигация в Ajax приложении

Reading time1 min
Views447
Все давно знают удобный способ организации навигации в Ajax-приложениях. Способ этот довольно распространен и основан на изменении якоря (части адреса страницы после диеза #).

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

var start = new Date().getTime();
window.location.hash = url
var stop = new Date().getTime();
alert( stop - start );


А вот результаты:
Opera 10: 15 ms.
FF2: 30 ms.
FF3: 30 ms.
IE6: 323 ms.
IE7: 7825 ms.
IE8: 7240 ms.

Да, безусловно, структура документа очень сложна, весит он аж 240кб только в html. И на этом фоне очень хорошо заметно, что новая версия ИЕ стала работать намного быстрее, обгоняя на 8% своего младшего брата! Ура товарищи! Виват эксплорер! Да здравствует Microsoft!

UPD: Всем спасибо, все дело во включенном Developer Toolbar. Ну так то да, что-бы по якорю пройти в режиме разработчика, дофига времени нужно. Это же столько изменений в системе нужно сделать, когда по якорю переходит разработчик, сходу в голову приходят как максимум 0 таких изменений.
Total votes 23: ↑11 and ↓12-1
Comments8

Userjs, ускоряющий скроллинг страниц на хабре

Reading time1 min
Views452
Заметил, что с вводом x-sidebar на хабре (это такая штука с рефрешилкой страницы и счетчиком новых комментариев скраю страницы) прокрутка страницы стала не то, чтобы тормозить, но некий дискомфорт появился. Проблема конечно-же в том, что сайдбар спозиционирован фиксированно и браузеру приходится при скроллинге перерисовывать всю страницы, а не только невидимую до этого часть. Отказываться от сайдбара на совсем не хотелось, поэтому я написал небольшой user-js, который делает позиционирование сайдбара абсолютным и иногда ставит его на свое место. Положительный эффект очень хорошо заметен в Опере.

homm.stratero.ru/pages/user-js/habrascroll.js

Надеюсь что вы знаете, как ставить user-js в Опере и ФФ.
Total votes 7: ↑6 and ↓1+5
Comments2

С какой проблемой мы столкнулись на виртуальном хостинге

Reading time3 min
Views2.8K
Хочу поделиться опытом диагностирования и решения одной проблемы, которая появилась достаточно внезапно при использовании виртуального хостинга с PHP, и, в принципе, мало вероятна на хостингах другого типа.

Все началось, когда, в один прекрасный день, один сайт перестал открываться. Оказалось, что из-за загруженности сервера хостер решил перенести аккаунт на другой сервер. При этом не было уведомления ни до переноса, ни в то время, когда перенос начался. Это, конечно, было крайне некрасиво со стороны хостера, но не в этом суть. После переноса стали происходить странные вещи. Несколько дней стала наблюдаться следующая картина: при попытке отрыть любую страницу с сайта, она могла либо открыться моментально (как обычно), либо могла не открыться вовсе. Шанс на успех был примерно 50%. Я написал по этому поводу хостеру и посмотрел загрузку процессора, она оказалась феноменальной. В среднем за день выходило около 500% от отведенной мощности, а в некоторые часы загрузка была выше 1000%. До переноса среднесуточная нагрузка была в районе 50-60%.
Читать дальше →
Total votes 58: ↑53 and ↓5+48
Comments115

Модуль для иерархических представлений (View) для Коханы

Reading time4 min
Views1.6K
Речь пойдет о первом моем модуле для фреймворка Kohana.

image
Признаюсь честно, при первом и последующих взглядах на этот фреймворк он мне очень понравился. Но как известно нет ничего идеального. Как мне показалось, одно из самых слабых мест в Кохане — довольно примитивные представления (View). По сути они предствляют из себя plain-php файл с экспортированными в глобальную область видимости переменными и доступным по ссылке $this контроллеру. Это очень удобно, когда вам нужно представление для вывода данных, нет ничего лишнего, можно сосредоточиться на коде. Но когда нам нужно вывести макет страницы со сложным расположением элементов, которые могут меняться от раздела к разделу… Что делать? Собирать все из мелких вьюшек в контроллере? Не удобно, особенно если контроллеров много — не дай бог, например, поменяется количество столбцов в разметке, придется в каждом контроллере перераспределять блоки с контентом по столбцам. Наверное по этому в версии 2.4 появится (я надеюсь) модуль интеграции со Смарти.
Читать дальше →
Total votes 34: ↑29 and ↓5+24
Comments15

Maps: Гигантский смайл в Челябинске

Reading time1 min
Views3.5K
Еще немного и на картах Google Maps на территории нашей родины появится еще одно интересное место.

Сегодня в моем городе, Челябинске, состоялась грандиозная акция, Челябинск улыбнулся миру. Многие наверное про это слышали. Гигантский смайл образовали люди нашего города на главной площади. В это время город снимал спутник Гугла. Это событие было приурочено ко дню города и было проведено совместно с администрацией города и интернет-провайдером «Интерсвязь».

upd: Добавил к фотоотчету видео со стационарной камеры на здании.
Читать дальше →
Total votes 126: ↑107.5 and ↓18.5+89
Comments97

Неудачное нововведение на страницах с якорями в 9.5

Reading time1 min
Views631
На мой взгляд, один из самых больших промахов среди изменений в версии 9.5, по сравнения с девяткой, был сделан в области работы с якорями. Если раньше можно было спококойно ходить по истории вперед-назад и страницы возвращались в положение скролла, которое было до ухода с неё, то теперь это не так. Теперь если вернуться на страницу, которая содержит якорь в адресе, она скроллится в позицию этого якоря вне зависимости от положения скролла при уходе с нее.
Есть ли способ как-то вернуть поведение предыдущих версий?

В идеале хотелось бы изменить реакцию на якорь еще больше, мне очень не нравится, когда я читаю недогруженную страницу, и в этот момент Опера догружает её до конца и скролит до якоря. Мне кажется, если пользователь во время загрузки хоть немного прокрутил страницу — это уже повод не ходить по якорю.
Total votes 15: ↑14 and ↓1+13
Comments11

Элемент управления, TrackBar но с двумя ползунками

Reading time1 min
Views10K
Понадобилась тут такая «штука», как TrackBar только с двумя ползунками, готового решения на jQuery не нашел, решил писать самостоятельно, правда не на jQuery а на чистом JS. Вроде от этого хуже не стало. «Штука» эта нужна была для выбора числовых значений в формах информационного киоска.
Читать дальше →
Total votes 91: ↑87 and ↓4+83
Comments110

Information

Rating
4,925-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity