Search
Write a publication
Pull to refresh
44
0
Андрей @reaferon

Пользователь

Send message

Выравнивание полей формы с помощью CSS

Reading time2 min
Views166K

Задача


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

forms_1

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

Скругленные углы на чиcтом CSS без JS без картинок с анти-аллиасингом

Reading time2 min
Views7.7K
Раз уже пошла такая пьянка бурное обсуждение, то предложу и свой метод скругления углов, с характеристиками, которые можно увидеть в названии топика.

Хочу заметить, что это не улучшение какого-то из существующих методов, а совершенно новый (по крайней мере, я нигде не смог найти — наверное, плохо искал ;) метод. В статье 38 статей о создании закругленных углов на сайтах данный метод также не был упомянут.

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

Не томи

Расширенный сборник CSS-хаков

Reading time4 min
Views37K
Статья является расширенным сборником CSS-хаков в сравнении с аналогичной статьей.
Под хаком подразумевается метод, позволяющий воспринимать CSS только определенному браузеру.
Хаки могут использоваться не только для исправления багов в верстке, но и в случае использования определенных особенностей браузера для ускорения рендеринга web-страницы в нём (к примеру CSS3-свойства)

Подробности под катом

Превентивная защита ваших и не ваших скриптов

Reading time1 min
Views30K
Наверное не ошибусь если скажу, что очень большая часть мегахакерских_взломов основаны на закачке PHP-скрипта в каталог, доступный для записи в него файлов скриптами (0777, например). Это каталоги для заливки фотографий товаров, аватарок и т.п.

Я еще несколько лет назад «допер» до способа предотвратить на корню подобные вещи. Закачать — может и закачают, а воспользоваться не смогут. Это казалось очевидным все это время, но мало кто это реализовывает. К примеру, только в последнем патче популярного форума SMF была добавлена подобная штука.
Поэтому, для тех, кто не задумывался…

Всё просто. Во все каталоги, доступные для записи, закачиваем (или добавляем строчки к существующему) .htaccess с содержимым:

php_flag engine 0
AddType "text/html" .php .cgi .pl .fcgi .fpl .phtml .shtml .php2 .php3 .php4 .php5 .asp .jsp

Этим самым мы отключаем PHP в данном каталоге и заставляем все скрипты отображаться как HTML.
Это можно сделать просто на всякий случай. Лишним уж точно не будет.
Разумеется, только для Apache. Если кто-то знает как подобное реализовать в IIS — напишите. :)

phpThread: нити в PHP? Запросто

Reading time2 min
Views2.2K
Если вы хотите научиться писать многопоточные приложения на PHP или здорово упростить себе жизнь — статья для вас.

Раньше для этих целей я пользовался либо запуском несколько копий скрипта, либо же использовал pcntl на более низком уровне, чем хотелось бы. Это, а от части и Java-идеология работы с потоками, побудили меня к написанию пакета phpThread.
Читать дальше →

Объединение сетевых интерфейсов в linux

Reading time2 min
Views119K
Так уже получилось что писал статью для howtoforge. И естественно тут же все это оказалось в русском варианте на других сайтах. Только вот незадача: в статье были допущены неточности, и публицисты с других «сайтов» вставили as-is.
Хочу попробовать исправить это оплошность.
Для чего это надо?
Объясню на примере: был у меня фтп с 2мя сетевыми картами, но использовалась одна. Со временем весь 1Гб/с начал забиваться по вечерам — и людям плохо, и у меня iowait растет. Но есть вторая сетевая карта. Так вот такое объединение позволит использовать 2 (3, 4, 5...) как одну с 2Гб/с.
Читать дальше →

Исследование на тему замены стандартных кнопок

Reading time8 min
Views2.8K
В процессе работы над интерфейсом одного продукта, появилась надобность в изготовлении собственного дизайна кнопок. За это время код, который заменяет стандартную кнопку на требуемую несколько раз переписывался и в данный момент тоже далёк от идеала. Учитывая все текущие проблемы кросс-браузерности, за это время выяснились и получилось нижеописанное.

Допустим, что она должна выглядеть примерно так:


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

Делаем красивые кнопочки

Reading time4 min
Views12K
Зачастую стандартный вид кнопочек не может сочетаться с концепцией дизайна, которую придумал дизайнер, поэтому он рисует свои кнопочки.

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

Например:
<a href="some_page.html"><img src="button.gif" alt="Button"></a>
<input type="image" src="button.gif" alt="Button">


* This source code was highlighted with Source Code Highlighter.


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

Определение города и региона России по IP

Reading time2 min
Views7.9K
И так, 13 Марта, 2009 16:07 появилась следующая новость на данном ресурсе "Долгожданный XML-сервис!!!".

Это событие необычайно меня обрадовало, ещё бы такой сервис на таком ресурсе и сразу ручки шаловливые зачесались!

Буквально через 10 минут был готов простейший код запроса ip, в ходе обсуждений он получился следующим (сделано на curl):

  function getip($GetRIP)
  {
    $data = "<ipquery><fields><all/></fields><ip-list><ip>".$GetRIP."</ip></ip-list></ipquery>";
    
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, "http://194.85.91.253:8090/geo/geo.html");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    
    $xml = curl_exec($ch);
    curl_close($ch);
    
    //echo $xml;
    
    $messge="!<message>(.*?)</message>!si";
    
    preg_match($messge, $xml, $main_ar["message"]);
    
    if($main_ar["message"][1]!="Not found")
    {
      $district="!<district>(.*?)</district>!si";
      $region="!<region>(.*?)</region>!si";
      $town="!<city>(.*?)</city>!si";
      
      preg_match($district, $xml, $main_ar["district"]);
      preg_match($region, $xml, $main_ar["region"]);
      preg_match($town, $xml, $main_ar["city"]);
      
      $ArMain=array("FIND"=>1,"DISTRICT"=>$main_ar["district"][1], "REGION"=>$main_ar["region"][1],"TOWN"=>$main_ar["city"][1]);
      return $ArMain;    
    }
    else return array("FIND"=>0);    
  }


* This source code was highlighted with Source Code Highlighter.


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

Интернет в моём EEE PC через Bluetooth-GPRS

Reading time2 min
Views1.5K

1. Вступление.


Прочитав последние статьи на эту тему, узнал что народ хочет более простой инструкции настройки интернета через bluetooth и решил написать небольшую памятку.

2. Собственно, процесс.


Итак, в качестве подопытных кроликов я буду использовать Asus EEE PC 900 с установленным Debian Lenny (Gnome) и Siemens CX75.

UPD: Добавил информацию о настройке bluetooth полностью в консоли.
Читать дальше →

Закрепляем jQuery — 25 отличных советов

Reading time19 min
Views168K
Перевод отличной статейки. Думаю, будет полезна как новичкам, которые только приступили к использованию jQuery, так и тем, кто уже какое-то время с ним работает. А кого-то, возможно, заставит глянуть эту чудесную библиотечку. Многие советы имеют отношение не только к jQuery, но и к JavaScript в целом. Лично для меня была весьма и весьма познавательной, посему и захотелось донести это «до масс». Перевод не дословный, но передающий смысл и максимально адаптированный к русскому языку.

Далее все написано от имени автора оригинальной статьи.

Введение


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

Я не эксперт в jQuery. И даже не претендую, поэтому, если встретите ошибки, смело поправляйте меня и вносите предложения по улучшению (поправлять и присылать поправки нужно автору статьи, а не перевода — зам. пер.).

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

Содержание


  1. Загружайте фреймворк с Google Code
  2. Используйте «шпаргалку» (cheat sheet)
  3. Соединяйте все ваши скрипты и уменьшайте размер файла
  4. Используйте возможности Firebug для ведения логов
  5. Минимизируйте операции выборки в пользу кэширования
  6. Сводите манипуляции с DOM-деревом к минимуму
  7. Оборачивайте все в единый элемент, когда речь идет о любой вставке в DOM
  8. Используйте «id» вместо классов, где это возможно
  9. Задайте контекст своим селекторам
  10. Используйте последовательности вызовов методов с умом
  11. Научитесь правильно использовать анимацию
  12. Научитесь назначать и делегировать события
  13. Используйте классы для сохранения состояния
  14. Еще лучше — используйте встроенный в jQuery метод data() для сохранения состояния
  15. Пишите собственные селекторы
  16. Подготавливайте HTML и модифицируйте его, когда страница загружена
  17. Используйте «отложенную загрузку» (lazy loading) для определенного контента для выигрыша в общей скорости и преимуществ для SEO
  18. Используйте служебные функции jQuery
  19. Используйте «noconflict» для переименования глобального объекта «jquery», когда используете его с другими фреймворками
  20. Как узнать что картинки загружены?
  21. Всегда используйте последнюю версию
  22. Как проверить, что элемент существует?
  23. Добавляйте класс «JS» в элемент «html»
  24. Возвращайте «false» для отмены поведения по-умолчанию
  25. Короткая запись для события готовности документа


Rock'n'Roll!

Элементарный Bash скрипт для резервного копирования данных

Reading time3 min
Views56K
Привет хабралюди, сейчас я расскажу как можно немного автоматизировать рутиную работу по подготовке бэкапов.

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

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

jQuery для начинающих. Часть 4. Селекторы

Reading time11 min
Views216K


Последнее время мне всё чаще задают вопрос как выбрать тот или иной элемент в DOM'е, и данный пост будет сплошь посвящен селекторам в jQuery, возможно большинство из них Вы видели в различных источниках, но собрать их воедино все же стоит…
Читать дальше →

Убираем лишний отступ внизу изображения

Reading time1 min
Views39K
Лишний отступ внизу изображения img1

Наверное, многие, при html-верстке, встречали «баг», когда, размещая в блоке подряд два изображения, между ними возникает промежуток, примерно в 3-5 пикселей. Этот эффект присутствует не только в горячо любимом IE6, но и в других браузерах. Большинство решали это с бубнами – подменой Doctype, убиранием лишних отступов в html-файле и так далее.

Начав искать решение проблемы в интернете, в том числе и на хабре, я понял, что вопросов по этому поводу много, но правильного ответа большинство так и не нашли. В итоге выяснилось, что это вовсе не баг. IMG – внутристрочный элемент, и поэтому к нему применяется свойство vertical-align. В браузерах это свойство задается по умолчанию (в большинстве baseline, если не ошибаюсь).

Достаточно к изображению применить vertical-align:bottom и отступа внизу не будет. В других случаях будет неоднозначность, и браузеры будут вести себя на свое усмотрение.

Убираем лишний отступ внизу изображения img1

ajax загрузка нескольких файлов с php формой

Reading time2 min
Views36K
Как-то для личных целей мне понадобилось сделать ajax загрузку сразу нескольких файлов. Но хотелось сделать это красиво и удобно.
Для этой задачи я выбрал горячо мной любимый jquery и несколько плагинов к нему.
подробнее

Самый простой способ научиться печатать вслепую

Reading time2 min
Views111K
Перенесено из персонального блога

Бесплатный совет:
Если вы до сих пор не умеете печатать вслепую — обязательно научитесь.

Потратьте пару дней своего драгоценного времени. Это еще более выгодное вложение чем покупка акций Гугла в 2004 году. Экономить время будете всю жизнь, причем много, честно.

84.83 КБ

Как научиться печатать вслепую
Курсы стенографисток и клавиатурные тренажеры ни к чему. На Шахиджаняна тоже не ведитесь, психотерапия — для неуверенных в себе неудачников. Есть способ гораздо более простой и быстрый: смело выбрасывайте свою клавиатуру на помойку, идите в магазин и купите там новую, такую же, только без русских букв. Ломка продлится один день, обучение займет еще день. Через неделю вы будете смотреться за клавиатурой как Рихтер за роялем.

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

P. S. Как экономите время вы? Поделитесь рецептами.

См. так же обсуждение в ЖЖ

Добавка: а вот и подоспевшие мнения уважаемых комментаторов:

SteelappleНаучился печатать вслепую очень легко — купил в Малайзии ноутбук без русских букв на клавиатуре. Наклеить русские буквы было невозможно, т.к. клавиши были меньше стандартных, а вырезать наклейки мне не хотелось. За неделю выучил наизусть раскладку и больше не задумываюсь о том, есть русские буквы или нет на клавиатуре.
В знание русской раскладки есть очень большой плюс. Представьте ситуацию: вы приезжаете заграницу, садитесь за чужой компьютер и… пишите транслитом. Я же добавляю русский язык в настройках и свободно пишу по-русски без всяких сложностей.


Ag47Как-то попробовал не смотреть на клаву, оказалось, что практически всё помню, поэтому заклеил все клавиши бумажками, чтобы не было соблазна на неё смотреть.
В общем, я думаю каждый кто не первый год печатает может печать в слепую, главное себя пересилить и на клаву не смотреть.


clopsВсё было очень просто — я купил себе Mac (давно, тогда он ещё назывался PowerBook G3) и не посмел портить идеальный комп русскими буквами. через пару дней уже совершенно без каких-либо проблем печатал слепо по-русски!

Есть и противоположные мнения, вообще, дискуссия получается интересная.

Как быстро начать и эффективно продолжить писать расширение для лисы

Reading time1 min
Views1.1K

Обычно цикл разработки таков:


1) вносим изменение в исходники,
2) перепаковываем исходники в *.xpi (скриптами),
3) переключаемся на лису,
4) Ctrl+O, выбираем полученный выше *.xpi,
5) появляется диалог установки, ждём 4 секунды,
6) жмём «Install»,
7) потом «Restart Firefox» и смотрим что изменилось.

Стало страшно? Тогда…
дальше про то как userChrome.js позволяет обойтись без перезагрузки и сократить количество шагов до двух

jQuery Alert Dialogs — замена стандартным функциям Alert(), Confirm() и Prompt()

Reading time2 min
Views39K
image
Плагин jQuery Alert Dialogs призван заменить основную функциональность стандартных предупреждений JavaScript, alert(), confirm(), и prompt() функций. Они полностью настраиваются с помощью CSS (это позволит выглядеть вашему сайту гораздо более привлекательно). И вы также можете настроить пользовательский заголовок для каждого диалогового окна.

Эти методы моделируют обычные модальные диалоговые окна. Они автоматически изменяют свое положение при изменении окна браузера. Если включить jQuery UI Draggable плагин, то окна можно перемещать, перетаскивая их за заголовки. В отличие от стандартных JavaScript функций, вы можете использовать HTML в сообщении. Например, чтобы задать переход на новую строку, вы можете использовать либо \n, либо < br / >.
Читать дальше →

Демон конвертации видео в FLV

Reading time3 min
Views3.8K
Решил поделиться недавно написанным кодом демона для видеохостинга.
Принцип демона прост. Демон смотрит в папку, куда загружаются видеофалы, и при появлении там новых, копирует в другую папку, запускает в фоне процесс конвертации, создает превьюшку, и копирует полученное видео в папку пользователя.
Читать дальше →

Flexify плагин для выравнивания чего бы то ни было

Reading time2 min
Views1.9K
Наверное каждый верстальщик, хотя бы раз в жизни сталкивался с версткой двух- или трех-колоночного макета. Хотя, сам макет сверстать несложно, если конечно колонки не различаются цветом фона, как например на хабре. А вот с разноцветными придется помучаться, потому что они имеют свойство тянуться по содержимому, а содержимое у соседних колонок, как правило, разной высоты.

Мне известны два способа решения этой проблемы:

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

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

Information

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