Обновить
98
0
Дима Семьюшкин@Devgru

Веб-разработчик

Отправить сообщение

Юзабилити на практике: «Введите дату»

Время на прочтение2 мин
Охват и читатели16K
Всем снова привет.
Сегодня буду рассказывать о моем любимом — о Юзабилити.

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

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

Сначала окунемся в историю.

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

Иконки флагов увеличены

Время на прочтение1 мин
Охват и читатели2.2K
Думаю многие из вас пользуются иконками от фамфамфам. Там есть хорошие иконки флагов всех стран, но все они размера 16х16.
Теже иконки но в три раза большего рамера
Но вот появились увеличенные варианты — 24x24, 32x32, 48x48!
Скачать можно здесь(968 кБ)

PS
Ждем увеличенной версии иконок на все случаи жизни :-)

Визуализация данных на CSS

Время на прочтение3 мин
Охват и читатели3K
Визуализация данных графиков, диаграмм в основном решается с помощью флэш и некоторых языков программирования. Являются ли эти способы единственными? Давайте попробуем реализовать эту задачу с помощью CSS.

Предисловие
В этом примере я не буду использовать ни JavaScript, ни любые другие языки. Все, что мне нужно это хорошая разметка и код CSS.
Таким образом, наша цель состоит в том, чтобы представить данные таблицы в виде диаграммы. Можно отметить, что данные диаграммы – это объект из 2х элементов, непосредственно зависимых друг от друга. Поэтому, лучшим решением в отношении структуры и семантики будет использование списков определений.
Почему? Ну, для начала, это список элементов. Несмотря на то, что список является линейным, мы можем обозначить заголовки определений (элементы dt) как пункты по оси X и описание определений (элементы dd) как значения по оси Y.
Читать дальше →

Разгоняем CSS-селекторы: стоит ли?

Время на прочтение1 мин
Охват и читатели3K
Виталию Харисову посвящается

После перевода заметки «Оптимизируем CSS-производительность» и справедливых замечаний Виталия vithar, я решил поставить серию экспериментов по скорости работы CSS-селекторов внутреннего движка браузеров. Результаты получились весьма забавными, а местами, наверное, даже интересными.

Методика. Размер файлов



Естественно, что скорость работы одиночного CSS-правила весьма высока, и даже десятки и сотни их не должны заметно замедлить работу браузеров. Поэтому нужно ставить эксперимент по работе с несколькими тысячами правил, иначе точность результатов будет весьма невысока. Использовать JavaScript для генерации HTML/CSS-кода не представляется разумным, ибо тогда придется учитывать еще и скорость работы JS-движка в браузерах, в итоге, эксперимент будет недостаточно чистым.

В конце концов, было решено сгенерить статичные файлы (порядка 300Кб), которые будут содержать достаточное число различных CSS-селекторов. Это самое «достаточное» число подбиралось по нескольким параметрам, в том числе: размер файла (гонять несколько Мб через браузер и интернет совсем не хотелось) и скорость работы HTML/CSS-кода в браузерах (она должна быть достаточно низкой, чтобы файлы в несколько сотен Кб уже заметно тормозили при открытии).

читать дальше на webo.in →

CSS в помощь JavaScript программисту

Время на прочтение3 мин
Охват и читатели14K
С помощью JavaScript можно без проблем манипулировать всеми характеристиками узлов на html-странице. Но, как правило, изменение характеристик узлов «вручную» средствами JavaScript слишком трудоемкая работа, и требует от программиста знание тонкостей HTML и CSS.
Возможности CSS позволяют большую часть этой задачи переложить на верстальщика, а программисту останется лишь реализовать манипуляцию состояниями этих узлов. Такой подход к решению задачи позволяет обойти большую часть «подводных камней» и решить многие задачи без особых трудностей.
простой и наглядный пример отражающий суть

Занимательная верстка

Время на прочтение1 мин
Охват и читатели2K
Недавно коллега из соседнего отдела попросил меня помочь ему с версткой одного блока. Он хотел разобраться с основами семантической верстки и сверстать этот блок аккуратно и красиво. Однако блок оказался совсем не прост для верстки — в нем сочетались скругленные уголки и градиентные бордеры. Я отправил коллегу верстать таблицами, а сам предлагаю устроить мастер-классы, кто сможет предложить наиболее оптимальное решение данной задачи.
Под катом скриншот задачи и ссылки на .psd и мой вариант решения
Читать дальше →

PHP Performance Series: Caching Techniques

Время на прочтение6 мин
Охват и читатели11K
Кеширование промежуточного кода (Opcode Caching)
Кэширование кода это один из самых легких и эффективных путей увеличения производительности в PHP. Использовании данного вида кэширования позволит избавиться от большого количества неэффективностей, возникающих при процессе запуска выполнения кода. Кэширование кода сохраняет промежуточный код в памяти для того чтобы не компилировать PHP-код каждый раз при запуске файла.
Читать дальше →

Борьба с DDOS и DOS на уровне nginx

Время на прочтение1 мин
Охват и читатели8.5K
FreeBSD, сетевая Intel fxp, порт 100Мбит, polling, http accept-filter
в sysctl:

sysctl kern.maxfiles=90000
sysctl kern.maxfilesperproc=80000
sysctl net.inet.tcp.blackhole=2
sysctl net.inet.udp.blackhole=1
sysctl kern.polling.burst_max=1000
sysctl kern.polling.each_burst=50
sysctl kern.ipc.somaxconn=32768
sysctl net.inet.tcp.msl=3000
sysctl net.inet.tcp.maxtcptw=40960
sysctl net.inet.tcp.nolocaltimewait=1
sysctl net.inet.ip.portrange.first=1024
sysctl net.inet.ip.portrange.last=65535
sysctl net.inet.ip.portrange.randomized=0

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

Копирование из потока — сравнение различных способов

Время на прочтение1 мин
Охват и читатели2.5K
Возникла задача из php://input скопировать данные в нужный файл.
Решил проверить на быстродействие возможные способы копирования файла размером 9 мегабайт из php://stdin.
Их несколько:
  • Чтение блоками через fread() и запись через fwrite()
  • Запись содержимого используя file_put_contents() данных, полученных с помощью file_get_contents()
  • Копирование с использованием функции копирования файлов copy()
  • Использование stream_copy_to_stream(). появилась в PHP5
Читать дальше →

CSS меню для начинающих

Время на прочтение4 мин
Охват и читатели8.4K

Данное руководство поможет Вам создать CSS меню для вашего сайта, оно не будет обычным, оно будет привлекать внимание пользователей, не сомневайтесь. И так приступим…
Читать дальше →

Смена оформления сайта в зависимости от времени суток.

Время на прочтение1 мин
Охват и читатели12K
Подобное конечно не новинка, и технически совершенно не сложно, но возможно кому то это покажется интересным и нужным.
Сразу отмечу, что меня побудил написать пост этот блог.

Многие видели в сети и писали скрипты, которые здороваются с посетителем по разному, в зависимости от времени суток («доброе утро», «добрый день», «привет тебе, человек с бессонницей»). Но можно пойти дальше, меняя оформление сайта, путём переключателя CSS.

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

Generating PDF files with PHP and FPDF

Время на прочтение5 мин
Охват и читатели122K
Большинство web-сервисов экспортируют данные в разных форматах для дальнейшего использования. Данная статья о том, как экспортировать данные в pdf-формате.
Хотя многие знают как это делать, я опишу кратко для тех кто не знает.
Читать дальше →

Поговорим о погоде

Время на прочтение5 мин
Охват и читатели33K
За последнее время мне пришлось довольно основательно пообщаться с несколькими сервисами Yahoo! В этой заметке расскажу об одном из них, который для многих может оказаться полезным. Это сервис прогноза погоды Yahoo! Weather.

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

Yahoo! Weather порадовал отсутствием перечисленных недостатков. Информация о текущей погоде, а так же прогноз на ближайшие 5 дней экспортируется с их сервера в формате RSS. На мой взгляд, выбор этого формата притянут за уши, т.к. погодная RSS «лента» содержит всего однин item. Те же данные можно было бы экспортировать в более лаконичном виде, но в Yahoo, по всей видимости, расчитывали на стандартные методы обработки RSS, что тоже довольно весомый довод. Стандарт — это все-таки стандарт.

Адрес RSS фида для интересующего города можно найти на сайте weather.yahoo.com.



В общем виде URL выглядит следующим образом:

xml.weather.yahoo.com/forecastrss?p=код_города&u=единицы_измерения

Первый параметр — идентификатор интересующего города. Второй параметр определяет, в каких единицах будет выдаваться температура. Значение «c» соответствует градусам Цельсия, «f» — градусам Фаренгейта.
Читать дальше →

Оптимизируем CSS-производительность

Время на прочтение1 мин
Охват и читатели2.3K
Примечание: ниже перевод статьи Dean Edwards «Optimising Performance» с советами по написанию CSS-кода для Internet Explorer'а, который будет быстрее отрабатывать на клиенте. Мои комментарии далее курсивом.

При первоначальном поиске информации по теме удалось только наткнуться на советы от разработчиков Firefox, однако, последняя редакция датирована 2000 годом, да и сами советы несколько противоречивы. Если кто-то может поделиться информацией по теме, сделайте это, пожалуйста, в комментариях.

Есть несколько приемов, с помощью которых можно Увеличить производительность IE7 на вашем сайте. Они перечислены в порядке убывания важности, если можно так сказать.

читать дальше на webo.in →

В поисках идеала

Время на прочтение2 мин
Охват и читатели1.8K
Раз пошла такая пьянка, то и я, в свою очередь, решил представить на суд общественности свой вариант макета, который, как мне кажется, находится очень близко к идеальному.
И вот что у меня получилось в итоге?

Тематические Медиа: задача для собеседования

Время на прочтение3 мин
Охват и читатели2.3K
В свете того, что в последнее время похожая тема довольно часто стала появляться на страницах проекта, опубликую задание, которое на протяжении значительного времени мы предлагали соискателям на позицию php-разработчика в нашей компании.

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

Оптимизация работы с MySQL

Время на прочтение3 мин
Охват и читатели79K
Ни для кого не секрет, что работа с базой данных занимает большую часть работы практически любого сайта. И именно работа с БД чаще всего является узким местом веб-приложений.
В этой статье хотелось бы дать практические советы использования MySQL.
Сразу оговорюсь:
  • данная статья написана про MySQL, хотя общие вещи скорее всего справедливы для любой СУБД.
  • все написанное в статье является моей личной точкой зрения, и не является истиной в последней инстанции.
  • советы не претендуют на новизну и являются результатом обобщения прочтенной литературы и личного опыта.
  • в рамках данной статьи я не буду касаться вопросов конфигурирования MySQL.

Проблемы при использовании MySQL можно разделить на следующие три группы(в порядке значимости):
  1. Неиспользование или неправильное использование индексов.
  2. Неправильная структура БД.
  3. Неправильные \ неоптимальные SQL запросы.

Остановимся на каждой из этих групп подробнее.
Читать дальше →

jQuery для самых маленьких или динамическая загрузка страниц (AJAX)

Время на прочтение1 мин
Охват и читатели3.7K
В один прекрасный день понадобилось мне сделать динамическую загрузку из базы. До этого я ничего подобного не делал и не интересовался этим вопросом. Я начал искать информацию на эту тему. Нашёл, что нужная мне задача делается при помощи AJAX.

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

Для профессионалов он (пример) покажется смешным и простым, но для людей, не имеющим представления что и как и почему — он поможет. Пример снабжен комментариями в коде. В нём показано как загрузить одну страницу в другую, не перезагружая первую, так же немножко прошёлся по базовым основам классов.

Скачать пример можно вот тут

Использование MySQL как файловой системы

Время на прочтение1 мин
Охват и читатели2.8K
Продолжая эту тему хочу вернуться к вопросу файловой базы данных.

Интересно, что файлы в базе хранятся повторяя структуру классической ФС: файлы разбиты на блоки размером 4 Кб, хранящиеся в отдельных «blob» записях. Всего имеется 3 таблицы типа MyISAM: tree (дерево файловой системы и имена файлов), inodes (права доступа и параметры файла) и data_blocks (блоки данных).

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

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность