Pull to refresh
0
0
Олег @qazwsx

Разработчик Ruby on Rails / Go / Swift

Send message

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

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

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


Читать дальше →
Total votes 81: ↑60 and ↓21+39
Comments113

Кастомизация input type=”file” с помощью CSS

Reading time2 min
Views64K
Есть несколько способов кастомизации (изменения внешнего вида) инпутов такого типа. Все они обладают своими плюсами и минусами, но, на мой взгляд, предложенный мною вариант, выигрывает даже со своими минусами, коих всего один.
Читать дальше →
Total votes 60: ↑40 and ↓20+20
Comments57

Интересная задачка для знатоков

Reading time2 min
Views853
В процессе написания плагинов для jQuery столкнулся с необходимостью добавлять расширенные атрибуты к некоторым известным тэгам для облегчения передачи параметров плагинам (получается красиво и просто), но так же хочется без проблем проходить валидацию страницы. Небольшой эксперимент поставил перед выбором: или валидный html или расширенные атрибуты…
Подробности и вопрос
Total votes 33: ↑30 and ↓3+27
Comments60

Simpla — движок для великолепных интернет-магазинов

Reading time7 min
Views13K


Последние 5 лет я создавал интернет-магазины. Много магазинов. Хороших и разных. Я был сам себе программистом, верстальщиком, дизайнером и менеджером.

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

Обычная история


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

Читать дальше →
Total votes 233: ↑218 and ↓15+203
Comments446

Bit.ly получил $2 млн. Сокращение ссылок — выгодный бизнес?

Reading time1 min
Views835
В мире, который ограничен 140 символами, краткость ценится на вес золота. Вот почему стремительно набирают популярность сервисы по сокращению ссылок. Один из них, Bit.ly, вчера получил венчурное финансирование в размере $2 млн за 20% проекта, что означает общую оценку проекта в $8 млн.

При этом нужно заметить, что Bit.ly — второй по популярности сервис по сокращению ссылок в интернете. Он контролирует примерно 13% рынка, значительно уступаю абсолютному лидеру TinyURL (75%), если верить статистике Tweetmeme.

То есть если экстраполировать оценку Bit.ly на TinyURL, то его можно оценить и вовсе в $50 млн. Правда, это не совсем корректно, потому что популярность TinyURL.com застыла на месте, тогда как Bit.ly взлетает как ракета. Причины понятны: 6 символов вместо 11, инструменты статистики и аналитики, отсутствие контекстной рекламы, а также корпоративная мафия — у Bit.ly и Twitter одни инвесторы. Но даже если взять оценку в несколько десятков миллионов — неужели сервис по сокращению ссылок может принести такую прибыль? За счёт чего? Этого пока никто объяснить не может.

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

За прошлую неделю Bit.ly обработал 20 млн кликов, и это число растёт на 10% в неделю.

via TechCrunch
Total votes 43: ↑38 and ↓5+33
Comments75

В корзине нет товаров? Положим туда изюминку!

Reading time2 min
Views4.4K
Сейчас я на простом примере продемонстрирую одну их наших «микроинтерфейсных» находок.

Если товар добавлен в корзину, то вопрос с содержимым блока снимается. Пишем, сколько там товаров, на какую сумму, даем ссылку на оформление заказа.
Читать дальше →
Total votes 137: ↑119 and ↓18+101
Comments107

Ускоряем выборку произвольных записей MySQL

Reading time3 min
Views33K
Последнее время оживилась публика с вопросом случайной выборки из таблицы. Решений по оптимизации полно, и нового сейчас я вам наверное ничего не покажу, просто напомню про основные методы оптимизации — упрощение запроса и индексацию. Без предисловий про фриленсеров, сразу к делу ;)

Читать дальше →
Total votes 59: ↑50 and ↓9+41
Comments22

Простое сравнение изображений с помощью php

Reading time3 min
Views27K
Алгоритм возможно не новый, и не является идеалом, но, на удивление, работает. Никаких графов и корелляции.

Для начала, стоит отметить, что сравнение очень приблизительно (по крайней мере, на данном этапе), временами две совершенно разные фотографии оказываются похожими процентов на 60%, так же не учитываются жесткие модификации (повороты, инверсия, обрезка) – для этого нужно доводить и доводить. Лично для меня самым главным оказались два параметра: скорость, независимость от разрешения изображения и возможность сравнивать «изображения» прямо в базе данных.
Читать дальше →
Total votes 161: ↑153 and ↓8+145
Comments64

PHP_Exceptionizer: преобразование E_NOTICE в исключения (Exception)

Reading time2 min
Views2.7K
Очень простая, но полезная библиотека PHP_Exceptionizer позволяет преобразовывать нотисы (E_NOTICE), предупреждения (E_WARNING) и т. д. в исключения PHP.

// Где-то в начальном коде инициализации скрипта.
error_reporting(E_ALL);
if (<is debug mode active>) {
    $exceptionizer = new PHP_Exceptionizer(E_ALL);
    // И оставьте эту переменную, чтобы она не удалялась до окончания 
    // скрипта. Удаление переменной вызовет отключение PHP_Exceptionizer.
}
...
// Далее можно ловить нотисы как исключения:
try {
    echo $undefinedVariable;
} catch (E_NOTICE $e) {
    echo "Notice raised: " . $e->getMessage();
}
...
// Если вы ловите E_WARNING, то поймаете и E_NOTICE тоже:
try {
    echo $undefinedVariable;
} catch (E_WARNING $e) {
    echo "Warning or better raised: " . $e->getMessage();
}
...
// А можно и не ловить, тогда нотис вызовет завершение программы.
echo $undefinedVariable;

Читать дальше →
Total votes 68: ↑49 and ↓19+30
Comments97

PHP + Ajax = Web explorer?!

Reading time1 min
Views3K
Сегодня я предлагаю одолеть одну очень популярную задачку open source методом. Задача тривиальная и давно имевшая множество решений. Но для меня лично вопрос еще открыт. А именно: веб-бейзд файл менеджер…

extplorer.png - upload images with Picamatic

eXtplorer — с помощью Ajax (ExtJS, ку-ку!) и PHP наш подопытный отлично справляется…
Что же он умеет?
Total votes 49: ↑43 and ↓6+37
Comments42

Отладка 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

PHP библиотека для jQuery

Reading time2 min
Views8.2K
jQuery-PHP

С тех пор как сочетание «Web 2.0» пришло в массы, все чаще разработчикам сайтов приходиться добавлять «web 2.0 красивости» к сайтам. Очень помогает в этом JavaScript фреймворк jQuery. Описывать все прелести данного фреймворка я думаю не имеет смысла (о нем и так слишком много написано), но мне, как PHP разработчику, нехватало удобного сервер сайда для генерации AJAX ответов, в итоге на свет появилась PHP библиотека jQuery-PHP
Читать дальше →
Total votes 50: ↑37 and ↓13+24
Comments78

Generating PDF files with PHP and FPDF

Reading time5 min
Views111K
Большинство web-сервисов экспортируют данные в разных форматах для дальнейшего использования. Данная статья о том, как экспортировать данные в pdf-формате.
Хотя многие знают как это делать, я опишу кратко для тех кто не знает.
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments48

Работа с датой. PHP5.2

Reading time2 min
Views14K
В PHP5.2 для работы с датой/временем появились классы DateTime и DateTimeZone. Вначале на них не обратил внимание, так как привык пользоваться функциями date(), etc. Но потом решил все-таки посмотреть какие возможности реализуют новые классы.

DateTime


Конструктор класса


DateTime DateTime::__construct ([ string $time [, DateTimeZone $timezone ]] )

Конструктор принимает два параметра:
1. Строка в формате принимаемым strtotime(), по умолчанию — «now».
2. Зона для которой будем считать время.
Читать дальше →
Total votes 54: ↑45 and ↓9+36
Comments46

Один из лучших классов для загрузки файлов на сервер. (PHP)

Reading time1 min
Views13K
Хочу познакомить вас с одним из лучших классов, на мой взгляд, для загрузки файлов на сервер.
позволяет делать с изображением все что угодно
Ничего лучше чем пример быть не может, так что сразу к делу…
Читать дальше →
Total votes 31: ↑21 and ↓10+11
Comments27

Делаем вебдванольные превьюшки с ImageMagick

Reading time2 min
Views15K
Недавно, у меня случилась проблема с GD на сервере — он перестал понимать png, после получаса мытарств, решил посмотреть на ImageMagick и его PHP интерфейс IMagick
После недолгого гугления нашел замечательный блог посвященный Imagick. Там же нашел способ делать красивые превьюшки. Однако, способ, предложенный там, правильно отрабатывал только с png картинками. Я немного поковырялся и сделал свой.

Читать дальше →
Total votes 73: ↑59 and ↓14+45
Comments54

Кеширование обычными средствами

Reading time2 min
Views6.6K
Сегодня решил сделать то, что собирался уже давно — поставить таки кеширование скриптов у себя на сайте. Все скрипты перед отдачей пользователю собираются в один файл и сжимаются GZIP'ом — все вроде по-уму, но есть проблемка… Браузер отчаянно не хотел кешировать этот выходной скрипт.

Опытным путем было установлено, что PHP устанавливает хидеры запрета кеширования при использовании функции session_start();
Читать дальше →
Total votes 41: ↑29 and ↓12+17
Comments41

Безопасная загрузка изображений на сервер. Часть вторая

Reading time7 min
Views28K
Это вторая часть перевода. Начинать прочтение лучше с первой.

Итак, после применения описанных в первой части методов, мы можем прекратить волноваться? К сожалению, нет. То, какие расширения файла будут переданы транслятору PHP, будет зависеть от конфигурации сервера. Разработчик часто не знает и не контролирует конфигурацию веб-сервера. Мы видели веб-серверы, с такой конфигурацией, что файлы .html и .js выполнялись как php. Некоторые веб-приложения могут потребовать, чтобы файлы .gif или .jpeg интерпретировались PHP (это часто случается, когда изображения, например графы и диаграммы, динамически строятся на сервере самим PHP).

Даже если мы знаем точно, какие расширения файла интерпретируются PHP, у нас нет никакой гарантии, что это не изменится в будущем, когда другие приложения будут установлены на сервер. К тому времени можно забыть, что безопасность нашего сервера зависит от этих изменений.
Читать дальше →
Total votes 63: ↑59 and ↓4+55
Comments31

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity