Search
Write a publication
Pull to refresh
99
0
Дима Семьюшкин @Devgru

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

Send message

Для «чайников»: Стандарт стопроцентно читабельных сайтов

Reading time5 min
Views6.5K
Большинство веб-сайтов нашпиговано мелким текстом, читать который — сплошное мучение. Для чего? Нет никаких причин для того, чтобы ужимать так много информации на один экран. Это — просто дурацкое коллективное заблуждение, восходящее к временам, когда экраны были очень, очень маленькими. Поэтому…

Не заставляйте нас изменять размер шрифта


Мы не хотим постоянно менять настройки размера шрифта в браузере при посещении каждого нового сайта.

Не доказывайте нам, что переполненные страницы лучше выглядят


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

Не втирайте нам, что прокрутка страниц — это плохо


Потому что в таком случае все сайты плохие. В прокручивании веб-страницы нет ровным счётом ничего страшного. Ни-че-го. Так же, как нет ничего страшного в перелистывании страниц книги.

Не говорите нам, что текст не важен


95 % того, что обычно называют веб-дизайном, — это типографика.

Не требуйте, чтобы мы начали носить очки


Лучше вместо этого перестаньте тереться носом об экран, откиньтесь в кресле назад (!) и продолжайте чтение этой статьи в расслабленной позе.

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

Раздельная скорость мышки и тачпада в Linux.

Reading time2 min
Views5.7K
Здраствуйте, я являюсь щасливым пользователем ноутбука [попросили не рекламировать марку]. Вообще, чудесная машина, и одна из наиболее линуксо-совместимых. В Америке их продают с предустановленой убунтой, так что абсолютно никаких проблем с железом нет. Работает решительно всё.

Но возникла у меня малюсенкая неприятность. Основное время я пользуюсь мышкой, подключенной к usb, а тачпад использую только при отсутствии возможности присоединить грызуна. И будучи немножко геймерско-понтовой, моя мышка обладает разрешением 1600dpi. Иными словами: она сверхчуствительна.
Конечно, особой это проблемы не составляет, поскольку решается уменьшением чуствительности указателя мыши в настройках операционной системы. Но, вот после этого и начинаются неприятности, поскольку тачпадом с такими настройками пользоваться становится почти невозможно (приходится раз пять пробежать по нему пальцем, чтобы перетянуть курсор из одного угла экрана в другой.)
Собственно, передо мной возникла задача — разделить настройки чуствительности для внешней мыши и тачпада.

как?

Цифры, числа и числительные

Reading time9 min
Views40K
По следам хабралинча имени Рюмкина коснёмся темы правильного типографического оформления чисел. В голову пришли следующие темы, если что-то вдруг забыто — пишите в комментариях, добавлю в статью.
  • Минускульные и маюскульные цифры
  • Целые числа и десятичные дроби
  • Простые дроби
  • Буквенные сокращения (тысяча, миллион, миллиард)
  • Диапазоны
  • Порядковые числительные и числительные в составе сложных слов
Ещё в комментариях к хабралинчу возникло интересное обсуждение согласования и управления при употреблении порядковых числительных, но это, как мне кажется, скорее отдельная тема для блога Пишу правильно.

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

Eval или include?

Reading time3 min
Views9.6K
Один из текущих проектов разрабатываю на собственном фреймворке, параллельно его обкатывая и дописывая. Зачем мне понадобилось изобретать велосипед, и чем он отличается от существующих, напишу когда буду представлять его общественности. Сейчас же хочется поделиться некоторыми мыслями по поводу производительности и заодно выслушать мнения коллег. Возможно, мои наблюдения будут полезны и тем, кто не использует фреймфорки.

Когда пришлось реализовывать дерево комментариев, столкнулся с необходимостью рекурсивного вызова представления (view в MVC). Так как представления у меня, да и практически везде, — это обычные файлы с кусками HTML-кода и возможностью вставки PHP, то подключаются они с помощью include. Мне стало не по себе, когда представил как этот include вызывается рекурсивно сотни раз. Первая мысль — засунуть файл представления при первом запросе в память и потом выполнять его через eval. Такой подход позволит кешировать код представлений, и даже хранить его в БД. Так как eval кушает только PHP, а представления у нас чистым PHP-кодом не являются, то обрамляем содержимое в '?>' и '<?php'.

Тесты и выводы

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]-->

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

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

Reading time3 min
Views2.3K
Объясняя однажды преимущества таких браузеров, как firefox и opera перед всеми любимым IE, я осознал насколько не очевидны их преимущества при рассказе о них.

  • Табы большинство пользователей воспринимают как нечто заумное — они привыкли переключаться между окнами, ища нужное внизу на панельке. У многих она для этого специально делается двойной а то и тройной ширины.
  • Обработка полупрозрачных PNG для нормальных людей звучит вообще как страшное шаманское заклинание. И конечным потребителям, в итоге, глубоко плевать, насколько на сайте сделана честная полупрозрачность и на скольких костылях она держится. Это целиком проблемы вебмастеров. Юзерам о них можно даже не упоминать.
  • CSS 3 уровня непонятен пользователям точно так-же как и полупрозрачность в картинках — они с этим не сталкиваются и им все равно.
  • Проверка орфографии понятна уже многим. Несмотря на то, что обычно в качестве аргумента приводят проверку орфографии в ворде, расстановку им заглавных букв и прочие мелочи, простые пользователи даже сами замечают различия между IE и другими браузерами — у меня было несколько вопросов, мол почему дома и на-работе ВКонтакт выглядит по-разному.
  • Быстродействие особенно актуально для пользователей рискнувших перейти на IE7 — разница в скорости ощущается невооруженным взглядом. Обычно такие пользователи быстро откатываются на IE6, но достаточно серьезным аргументов для них будет упоминание о дате выпуска IE6 — многих это подталкивает к переходу на более новые браузеры.

Во всем этом списке нет ни одного железного аргумента для простого пользователя, чтобы уйти с IE6. Для разработчиков, стремящихся использовать новые возможности браузеров, это большая проблема. Но кого она волнует кроме них? Поэтому проводятся всевозможные акции из серии «Заблокируй для IE доступ на свой сайт», которые приносят какой-то эффект, но этого явно недостаточно. Я хочу предложить еще один способ для ослабления позиций «самого любимого» браузера, который кардинально отличается от подобных акций.


Читать дальше на хабре

Предисловие

Reading time4 min
Views1.5K
Не знаю почему, но на эту важнейшую технологию обращают так мало внимания. Я хочу несколько исправить положение, поэтому это — первая статья в цикле «Кодогенерация». При рассмотрении данной темы будет использован язык PHP и БД MySQL, но кодогенерация сама по себе возможна на любом языке и с использованием любой БД, просто на PHP мне будет проще объяснять некоторые важные моменты. Так же я буду обращать внимание на состояние дел в других системах и языках.

Данная статья посвящена одному вопросу: какие проблемы присутствуют в современном программировании.
Читать дальше →

Новые идеи в дизайне форм от Smashingmagazine.com

Reading time1 min
Views1.7K
Яркие, свежие и интересные идеи по дизайну форм на сайт.

Перевод части:

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

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

Ниже мы представляем более 40 (очень) красивых примеров веб-форм, а также современные решения и творческих идей, связанных с веб-формами. Некоторые из примеров Flash-основе, однако, в большинстве случаев вы можете легко создать аналогичные проекты с чистого CSS и (X)HTML.

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

PHP — ООП или процедурный подход

Reading time5 min
Views99K
PHP один из самых популярных скриптовых языков программирования. Почти 60% веб серверов используют PHP.Миллионы веб-сайтов и веб-приложений разрабатываются на PHP каждый месяц.

PHP изначально разрабатывался как простая замена языку Perl, и уже спустя пару лет он стал чрезвычайно мощным и популярным. Язык PHP, сам по себе очень похож на ANSI C.
Одна из причин почему PHP стал таким популярным это его короткий период обучения.

Изучение PHP абсолютно не тяжёлое занятие, особенно если вы хорошо знакомы с синтаксисом Java или C.

Так как писать PHP скрипты достаточно просто, любой может написать PHP код без соблюдения каких-либо соглашений и смешивая уровень представления с бизнес логикой (это одна из основных причин существования большого количества неуправляемых проектов). Потому что в PHP не обязательно строгое соответствие соглашений написания кода, с годами когда проект становится всё больше и больше, он превращается в громадное неуправляемое приложение.
Читать дальше →

sIFR — расширяем возможности типографики xhtml

Reading time2 min
Views3.4K
sIFR

В этой заметке пойдет речь о довольно интересной технологии sIFR (Scalable Inman Flash Replacement). Путем комбинации Flash JavaScript и CSS на вашей XHTML-страничке можно создать текст, выполненный абсолютно любым шрифтом. При этом xhtml абсолютно валиден, текст будет выделяться, а отсутствие flash или JavaScript приведет всего лишь к отображению текста стандарным шрифтом с CSS стилями.

Заметка не претендует на абсолютно полное описание технологии, но в конце вас ждут ссылки на документацию и небольшой пример, который вы сможете скачать одним файлом и «поиграться» с ним на досуге.
Читать дальше →

Всё (или почти всё) о пробеле

Reading time13 min
Views141K
Как следует из заголовка, речь в статье пойдёт о неотъемлемой части любого русскоязычного (и не только) текста — о пробеле. Мы затронем историю пробела, виды пробелов, вопросы употребления пробела в веб-типографике.

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

Rootless Root на русском языке. Откровение второе.

Reading time2 min
Views2.1K
Учитель Foo и скрипт-кидди.

Когда Учитель Foo завтракал со своими учениками, к ним пришёл путник из страны Woot.
«I hear y00 are very l33t,» сказал он. «Pl33z teach m3 all y00 know.»
Читать дальше →

Борьба с фрагментацией PHP кешеров

Reading time3 min
Views3.8K
Я надеюсь, что нормальные люди уже прониклись необходимостью кешировать вывод данных на своих сайтах, либо кэшировать промежуточные результаты работы с базой данных, либо просто кешировать opcode скриптов для их более быстрого выполнения.
И что разработчики предоставляют нам для этого дела?
Читать дальше →

Позднее статическое связывание в PHP (Часть II: Практика)

Reading time3 min
Views11K
phpПервую часть читайте здесь.

Теперь приступим к практике. Наиболее показательным примером использования LSB, по-моему, является случай, когда у вас есть набор классов выполняющих похожие действия. В терминах веб-разработки мы часто встречаемся с такими задачами при обращениях к таблицам базы данных, особенно в ORM системах. Все ваши объекты для работы с таблицами будут похожи по сути, но при этом будут иметь собственный функционал ( и, соответственно, свои подклассы).
Читать дальше →

Шаблоны Django. Наследование.

Reading time5 min
Views78K
Прочитал статью «Фрагментарное кэширование в MVC веб-фреймворках». Статья описывает проблему кеширования фрагмета отображения, а именно проблему полного разделения контроллера и отображения — контроллер отрабатывает полностью до вызова отображения. Если в отображении мы кешируем фрагмент, это ничего не меняет — контроллер-то уже отработал! В статье описан способ этого избежать: сделать запрос данных «ленивым».

Начав писать, как это должно быть сделано правильно, решил написать, как устроены шаблоны Django, чтобы не-джанговодам тоже было понятно.

Как это сделано в Django?

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

Как gzip-сжатие влияет на производительность сервера

Reading time1 min
Views4.2K
Несколько статей и переводов по оптимизации (gzip для Apache, gzip для CSS- и JS-файлов, CSS-сжатие, JS-сжатие) уже затрагивали тему применения архивирования для уменьшения размера файлов, и, тем самым, увеличения скорости их передачи конечному пользователю. В данном исследовании я задался вопросом: а как динамическое gzip-сжатие влияет на быстродействие сервера? Рентабельно ли включать mod_gzip / mod_deflate для высоконагруженных проектов? И в каких случаях архивирование вообще лучше не использовать?

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

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

Позднее статическое связывание в PHP (Часть I)

Reading time2 min
Views36K
phpПозднее Статическое Связывание (Late Static Binding, LSB) является бурно темой обсуждений последние три года в кругах разработчиков PHP (и наконец мы его получили в PHP 5.3). Но зачем оно нужно? В данной статье, как раз и будет рассматриваться, как позднее статическое связывание может значительно упростить ваш код.

На встрече разработчиков PHP, которая проходила в Париже в ноябре 2005 года, тема позднего статического связывания официально обсуждалась основной командой разработчиков. Они согласились реализовать его, наряду со многими другими темами, которые стояли на повестке дня. Детали должны были быть согласованы в ходе открытых дискуссий.
Читать дальше →

Программируем для PSP: Часть I, настройка компилятора

Reading time4 min
Views12K
Давайте условимся сразу: я следую паттерну «изучение обучением», т.е. учу, одновременно изучая, обгоняя читателей на 2-3 «шага» вперед. Однако это не значит, что я ничего не знаю и все, что говорю — обычные копипасты: я стараюсь разобраться в теме, прежде чем писать о ней. Поэтому смело задавайте вопросы, этим вы принесете пользу и себе, и мне: на вопросы, ответ на которые я не знаю, я буду его искать, осозновать и рассказывать вам.

Итак, в этом топике будет небольшой рассказ о том, как скомпилировать и запустить первую программу на своей приставке. Сразу предупреждение: статья мегатехнического плана, почти все содержание касается утомительной, но быстрой настройки компилятора, а в результате вы получите лишь банальный «Hello World». Однако без нее никак.
Читать дальше →

Information

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