Pull to refresh
35
0
Миронов Михаил @MIC

User

Send message

Меню «Гаражные двери»

Reading time3 min
Views1.3K
garagemenuexample
Очень красивое меню, реализованное при помощи Jquery, сравнимое только с меню реализованными на флеше.
Это меню работает за счет изменения background-position наложенных друг на друга слоями изображений.
Читать дальше
Total votes 1: ↑0 and ↓1-1
Comments102

Установка и настройка SVN (сервер+клиент)

Reading time6 min
Views313K
По просьбам трудящихся, а так же учитывая, что есть статья по установке SVN (правда +Trac) под Linux, решил написать краткое описание установки и настройки SVN для Windows.
Ничего нового для людей, хорошо знающих и работающих с SVN, здесь не будет. Цель статьи — помочь некоторому проценту новичков, пребывающих на Хабре, таки осилить изучение этой системы контроля версий.
Читать дальше →
Total votes 75: ↑66 and ↓9+57
Comments37

Ещё один способ разобраться с PNG в IE6

Reading time1 min
Views2K
Существует несколько способов избавиться от глюка использования PNG картинок в Internet Explorer 6.

Unit Interactive предложили свой вариант решения — Unit PNG Fix.

Ключевые особенности:
  • Малый вес, около 1 килобайта
    Решает некоторые проблемы функциональность атрибута filter
    Работает как с тегоми img, так и атрибутом background-image
    Автоматически запускается
    Позволяет выставлять авто ширину и высоту
    Полностью бесплатен


    Скачать и посмотреть можно на странице Unit PNG Fix
Total votes 41: ↑30 and ↓11+19
Comments49

Отладка PHP средствами Firebug

Reading time2 min
Views25K
FirePHP

Отладка PHP-скриптов определенно недостаточно освещена в интернете. Потому многие, очень многие довольствуются print_r-ками. Очевидный недостаток такого способа — нельзя отладить AJAX, SOAP-сервисы, генераторы картинок и вообще скрипты, не отдающие непосредственно HTML-документов.

Javascript-разработчики используют для отладки Firebug. Как я им всегда завидовал. Лепота — выделенная консоль, net-монитор, отладчик, и все это в любимом браузере.

Так вот, нашел такое расширение Firebug — FirePHP. Оно позволяет выводить информацию в консоль Firebug непосредственно из PHP. Делается это довольно простым вызовом:
Читать дальше →
Total votes 84: ↑76 and ↓8+68
Comments69

Пересборка пакетов для Ubuntu (Debian)

Reading time1 min
Views20K

Думаю, практически все понимают преимущества пакетных менеджеров над установкой при помощи ./configure && make && make install.

На примере недавно появившегося патча для Pidgin я хочу показать, как легко пересобирать пакеты в deb-based дистрибутивах.

Читать дальше →
Total votes 50: ↑45 and ↓5+40
Comments28

Подборка видео-проигрывателей на флэше

Reading time2 min
Views18K


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

Надеюсь уважаемые комментаторы помогут дополнить список и выявить абсолютного лидера среди проигрывателей.
Уже помогли. Отдельные спасибы Elected, atri, rmb. Кармы всем за мой счет ^_^

Читать дальше
Total votes 84: ↑77 and ↓7+70
Comments101

Каптча 3d

Reading time7 min
Views6.3K
Прочитав топик «RapidShare — новые каптчи», я вспомнил как слушал доклад создателя каптчи на UaВебе.



Зайдя на сайт, желая посмотреть код, я увидел:
Q: Is it opensource?
A: No, sorry. Maybe later.

Я удивился! Мне казалось что любой маломальски образованный хороший программист сделает такую каптчу.
Погуглив и нашел пару интересных линков: 1, 2 и не получил кода, решил написать сам.
Читать дальше →
Total votes 158: ↑145 and ↓13+132
Comments102

Flash 9r48

Reading time1 min
Views691
Наткнулся в интернете обсуждение линуксовского флеш плеера, в котором один человек сказал, что флеш 9r48 работал быстрее, чем текущий. По моим наблюдениям это оказалось действительно так. Кто хочет попробовать сам, может найти на сайте Adobe 100 мегабайтный архив со старыми версиями флеша для девелоперов: fpdownload.macromedia.com/get/flashplayer/installers/archive/fp9_archive.zip либо скачать только эту версию с drop.io: drop.io/2xv7fab и положить в папку с плагинами файерфокса (обычно /home/username/.mozilla/plugins). Желательно перед этим удалить остальные версии.
Total votes 6: ↑4 and ↓2+2
Comments18

Автоматическое определение языка произвольного текста на РНР — библиотека PHPLangautodetect

Reading time15 min
Views20K
Знаете, работа с стартапе, который пытается создать что-то новое и уникальное на рынке очень захватывает. И не только открывающимися возможностями, но и часто нетривиальными задачами и вопросами, которые ставятся перед создателями и которые раньше никто не решал. Вот один из таких вопросов как раз вчера появился передо мной: дано нам произвольную строку текста, заведомо известно, что она может быть двух, а в некоторых случаях и трехъязычной, то есть там смешанный текст из нескольких языков. Необходимо прозрачно для пользователя определить язык, на котором написан текст.

На самом деле задача не такая и редкая — подобная функциональность есть и в текстовых редакторах, и в переключателе клавиатуры PuntoSwitcher, да и в системах машинного перевода такой функционал востребован, не говоря уже про системы поиска информации. Кстати, именно в контексте создания специализированного поисковика и классификатора текстов и появилась такая проблема. Необходимо было получить такую возможность в собственной программе на платформе РНР и при этом не задействовать сторонние сервисы — подобная возможность в виде веб-сервиса присутствует в Google Language API (в своём блоге я уже исследовал этот сервис), однако она выполняется удалённо и имеет некоторые существенные для нас ограничения, в частности, процедура опознания языка выполняется с существенной задержкой и асинхронна по своей природе. Кроме этого очень хотелось иметь полный контроль над процессом и иметь возможность его гибко настраивать, чего, увы, нет в сторонних сервисах. Поэтому пришлось подумать и попробовать реализовать собственными силами, результат же представляем вашему вниманию.
Читать дальше →
Total votes 45: ↑38 and ↓7+31
Comments45

Crop & Resize на страницах ваших сайтов

Reading time3 min
Views32K
Пройдясь по хабра-поиску выяснил, что готового решения для кропа-ресайза изображений, на движке JavaScript/HTML/CSS еще не предлагалось. Поэтому, позвольте представить вашему вниманию модуль для ваших сайтов, частично реализуюший функционал редактирования, распространенный на фото-хостингах.

К делу

Внешне задумка выглядит так:


Читать дальше →
Total votes 117: ↑102 and ↓15+87
Comments122

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

Reading time2 min
Views35K
Такая потребность может возникнуть при геотаргетинге информации, работе картографических сервисов, анализе статистики посещений сайта.

Задача решается следующим образом.

1. Выкачиваем и правильно складываем базы whois.
2. Для каждой подсети определяем город.
3. Пакуем базу в бинарный файл.

Но зачем это все делать самим, когда уже есть готовые решения. Одно из них (полную версию) я выкладываю сюда для теста и получения фидбэка.
Читать дальше →
Total votes 38: ↑32 and ↓6+26
Comments84

Для начинающих убунтуводов. Моё мини FAQ

Reading time4 min
Views2.6K
Не беспокойтесь: это не очередной «мануал для начинающих», в котором описаны базовые принципы работы с Ubuntu и ее настройки. Нет, я вовсе не хочу повторяться, а поэтому писать буду о разного рода мелочах и вопросах, которые могут интересовать «Неофита культа Убунту» :)

Читать дальше →
Total votes 51: ↑41 and ↓10+31
Comments45

Blueprint

Reading time4 min
Views27K
Blueprint — довольно интересный фреймворк для верстки сеткой, который я лично считаю удобным, потому как он позволяет довольно просто создавать весьма сложные страницы, при этом не думая об IE.

Со страницы проекта на Google Code скачиваем архив.

В архиве будет папка blueprint/ там и содержатся основные файлы фреймворка, их и подключаем к странице:

<link rel="stylesheet" href="css/blueprint/screen.css" type="text/css" media="screen, projection">
<link rel="stylesheet" href="css/blueprint/print.css" type="text/css" media="print"> 
<!--[if IE]><link rel="stylesheet" href="css/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->

Читать дальше →
Total votes 54: ↑50 and ↓4+46
Comments73

Верстка без float'ов

Reading time2 min
Views8.7K
Существует много разных способов css разметки. Некоторые базируются на абсолютном позиционировании, другие используют float'ы. Первый метод плохо поддерживает «резиновость» макета, тогда как второй это неплохой способ разметки.

Но, как и многие мощные инструменты, float'ы имеют свои изъяны. Для начала, верстка на основе float'ов не такая простая к пониманию, а также float'ы есть источником многих багов (в основном в ИЕ), что делает их не идеальным вариантом в погоне за кроссбраузерностью.

Итак, речь далее пойдет о
семантически корректном методе верстки
Total votes 77: ↑61 and ↓16+45
Comments174

Мотивация IT специалистов

Reading time5 min
Views18K
В предыдущей статье о моём методе оценки эффективности сотрудников я отвечал на письмо уважаемого мной человека. Признаюсь, я немного слукавил :). Если быть точным, Subject письма был: «мотивация ИТ». Далее в письме вопросы ставились иначе, речь шла о KPI, на мой взгляд, это совершенно разные вещи. То есть я отличаю понятие Мотивация и Критерии эффективности.
Далее о мотивации в ИТ
Total votes 21: ↑16 and ↓5+11
Comments30

«Вредные» клиенты

Reading time3 min
Views1.8K
Тем, кто занимается бизнесом, в частности веб-разработкой, не надо рассказывать о «вредных» клиентах. Мой комментарий на эту тему в одном из топиков вызвал положительные отклики, поэтому расскажу, что я думаю по этому поводу. А именно: как дифференцировать клиентов по «вредности»; как (и стоит ли) работать с «вредными клиентами».

Читать дальше →
Total votes 48: ↑45 and ↓3+42
Comments108

40 советов по оптимизации вашего PHP-кода

Reading time4 min
Views57K
Всем доброго времени суток.

Перевод заметки "40 Tips for optimizing your php code". Автор — Reinhold Weber.

  1. Если метод может быть статическим, объявляйте его статическим.
  2. echo быстрее, чем print.
  3. Передавайте в echo несколько параметров, вместо того, чтобы использовать конкатенацию строк.
  4. Устанавливайте максимальное количество проходов ваших циклов for до цикла, а не во время его выполнения.
  5. Удаляйте свои переменные для освобождения памяти, тем более, если это большие массивы.
  6. Остерегайтесь магических методов, таких как __set, __get, __autoload.
  7. require_once дорого обходится.
  8. Указывайте полные пути в конструкциях include/require, меньше времени будет тратится на поиск файла.
  9. Если вам необходимо определить время, когда скрипт был запущен, используйте $_SERVER[’REQUEST_TIME’] вместо time().
  10. Старайтесь использовать strncasecmp, strpbrk и stripos вместо регулярных выражений.

Читать дальше →
Total votes 79: ↑65 and ↓14+51
Comments201

data URI

Reading time2 min
Views7.8K
Пару лет назад я занимался проблемой data URL в Internet Explorer, добился определённых результатов, но то, что получилось, использовать было невозможно. Data URL (иногда его ещё называют «протокол data:») — возможность вставлять ресурсы (графику, CSS, JavaScript и так далее) в HTML код.


Подробнее о data URL можно узнать из свежей статьи на «Хабре» «Картинки в теле страницы с помощью data:URL». Хотелось только её дополнить двумя замечаниями: IE8b1 поддерживает data URL длиной не более 32Кб, в современных версиях других браузеров ограничений увидеть не удалось, Safari/Opera/FF показали изображения размером около 700Кб.


Теперь амбула.


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


Результат — готовый код на PHP из двух функций. Первую функцию («bolk_data_uri_header») нужно вызвать в самом начале перед выводом любого вашего кода, вторую («bolk_data_uri») собственно для включения картинки в код.


Надеюсь на примерах всё понятно:
bolk_data_uri_header();
bolk_data_uri('myjpeg.jpg');
bolk_data_uri('ourpng.png', 'border: 2px dotted red');


Код самой библиотеки:
function bolk_data_uri_header() 
{ 
    echo "<!--\n" 
        ."Content-Type: multipart/related; boundary=\"=_NextPart_01C6A9B1.539AB070\"\n\n" 
        ."--=_NextPart_01C6A9B1.539AB070\n" 
        ."Content-Transfer-Encoding: base64\n" 
        ."Content-Type: text/html\n" 
        ."-->\n\n"; 

} 

function bolk_data_uri($file, $style = '') 
{ 
    if (!( file_exists($file) && ($data = @getimagesize($file)) )) return false; 

    $name = uniqid('', true); 

    if ($style <> '') $style = ' style="'.htmlspecialchars($style).'"'; 
    $mime = strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko') ? " type='{$data['mime']}" : '';

    echo "<!--\n" 
        ."--=_NextPart_01C6A9B1.539AB070\n" 
        ."Content-Location: {$name}\n" 
        ."Content-Transfer-Encoding: base64\n" 
        ."Content-Type: {$data['mime']}; -->\n" 
        ."<object data='data:{$data['mime']};base64,\n\n"; 

    echo base64_encode(file_get_contents($file)); 

    echo "' {$data[3]}{$style}{$mime}'><img " 
        ."src='mhtml:http://{$_SERVER['HTTP_HOST']}"
        ."{$_SERVER['REQUEST_URI']}!{$name}' {$data[3]}{$style} /></object>\n\n" 
        ."<!--\n" 
        ."--=_NextPart_01C6A9B1.539AB070-->"; 

    return true; 
}



Секрет в совмещении данных, чтобы IE, обратившись к странице по протоколу mhtml нашёл нужный кусор, «спрятанный» внутри тега, а остальные браузеры увидели бы картинку через data URL.


Код тестировался под Opera 9.50b, FF 2.0.0.13, Safari 3.1 и IE6. Предложения и результаты испытаний — прошу в комментарии.


Оригинал записи опубликован в моём блоге.
Total votes 46: ↑43 and ↓3+40
Comments85

Information

Rating
Does not participate
Location
Таиланд
Registered
Activity