Search
Write a publication
Pull to refresh
9
0

User

Send message

Статистика Google Analytics на вашем сайте

Reading time6 min
Views17K
Помню, как-то проскакивала пара записей (здесь и здесь) по поводу импортирования данных из Google Analytics для отображения сводных диаграмм на сайте, в общем, как на хабре. Прочитав вышеупомянутые топики и не обратив особого внимания тогда, я о них успешно «забыл» и пошел себе дальше. И вот сейчас, появилась необходимость реализовать нечто подобное на одном из своих проектов.

image

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

UPDATE:
Добавил еще одну версию, подробности и линк под катом.

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

Выбор серверного дистрибутива Linux

Reading time1 min
Views33K
Два больших монолитных проекта стартовавшие много лет назад, потребовали новых мощностей как от железа так и от нас разработчиков. В связи с этим завтра в стойку ставиться новый HP сервак на который будет переведен один из проектов. Рэйд 5, 4 ядра и некоторые другие приятственные вещи не требующие упоминания. Подниматься будет исключительно линуксовая среда. От чего и возник вопрос о смене текущего Альта на на что нибудь более адекватное и отзывчивое.
Читать дальше →

Делаем страницу 404-й ошибки разумной с помощью Google

Reading time2 min
Views6.7K
Вот я прошёлся по блогам и сайтам, которые висят у меня в подписках, и понял, что всё печально. Если намеренно вызвать страницу 404-й ошибки, то можно напороться на все возможные отмазки, пустую страницу, либо на страницу, которую генерит сервер. Ну или на крайний случай — sitemap. Часто любят выкладывать туда смешную картинку.
Читать дальше →

«Типографские» раскладки клавиатуры

Reading time6 min
Views29K
По просьбам трудящихся коснёмся темы «типографских» раскладок клавиатуры. То есть, как системных средств Windows, так и сторонних программ, позволяющих вводить различные специальные символы с помощью клавиатуры (обычно, правой клавиши Alt, она же AltGr).

Большинство вспомнят раскладку Ильи Бирмана, но она не идеальна для нужд контент-менеджера или дизайнера. Заслуга её в том, что Рунету был продемонстрирован путь создания таких раскладок.

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

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

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

Лицензия Ubuntu для украинского (и не только) законодательства

Reading time2 min
Views4.5K
В последнее время все чаще и чаще слышу истории о том, что ведется активная борьба с нелицензионным софтом, конфискуют железо, выдают повестки в суд.
Буквально вчера в офисном здании где размещена наша небольшая фирмочка в одну из таких же небольших фирмочек постучались люди в погонах — у них нашли палёную винду со всеми вытекающими.

Естественно, мы забеспокоились о собственной безопасности. У нас на данный момент на всех десктопах установлена Ubuntu 8.04 LTS, несколько человек приходят с ноутбуками, где стоит лицензионный и не очень софт.

По непроверенным данным люди в погонах требуют наличие лицензии на софт даже если он бесплатный. В свете этих событий, прошу совета и ответа на несколько вопросов у хабралюдей, сталкивавшихся с подобными ситуациями. Сделайте, пожалуйста, приписку к своему комментарию — о какой стране идет речь. Лично меня интересует Украина. Также, было бы неплохо увидеть несколько примеров из жизни и комментарии хабралюдей с юридическим опытом
Читать дальше →

Ускоряем wordpress

Reading time11 min
Views10K
Привет.
Думаю, среди читателей хабра найдется немало тех, кто имеет stand-alone blog на движке wordpress.

Так вот, для вас, дорогие мои, у меня есть две новости, как водится, плохая и хорошая.
Плохая состоит в том, что wordpress — довольно-таки тормознутая штука.
Виноваты в этом в основном криворукие производители тем и, особенно, криворукие производители плагинов. Особенно кривой плагин, на мой вкус, wp-ajax-edit-comments, который является образцом быдлокодинга.

Хорошая — в том, что это можно поправить.

Делается это примерно так:

Nginx UploadProgress Module

Reading time2 min
Views7.4K
Модуль для nginx, с помощью которого достаточно просто мониторить прогресс загрузки файлов на сервер. Ранее были подобные решения, через модули к php, ruby, через стороние скрипты, flash объекты итп. Автор предлагает универсальное решение на уровне web сервера. Подробную информацию и инструкции вы можете найти на wiki.codemongers.com (кстати, один из лучших проектов, посвященных nginx`у). Тут я хотел обратить внимание на другое.
Использовал модуль совместно с nginx upload module, работает на ура. Однако файлы, что я заливаю, достаточно большие (поддерживаю файлообменник), пытался запихнуть в директиву upload_progress размер обрабатываемых файлов — 1g, при релоаде nginx`а получил варнинг, мол непонятный размер вы поставили. Странно, т.к. в client_max_body_size у меня стоит 1g и нормально себя чувствует. Глянул исходники nginx`а и модуля, выяснелось, что модуль обрабатывает директиву upload_progress функцией ngx_parse_size, тогда как сам nginx обрабатывает ту же client_max_body_size соседней функцией ngx_parse_offset, функции абсолютно идентичны (на мой взгляд), разве что первая не понимает размерность «g», а вторая понимает =) Для того, чтобы модуль нормально обрабатывал размерность в директиве upload_progress, надо в исходнике модуля (ngx_http_uploadprogress_module.c) в строчке 1151 исправить ngx_parse_size на ngx_parse_offset.
В общем это не критично, т.к. директива нормально обрабатывает значение 1024m, но как-то нелепо выглядит подобная запись =)))
А вообще модуль очень понравился, очень удобное решение, не зависящее от бэк-енда.

update: Внимание, совершил глупую ошибку. Стыдно. Деректива upload_progress задает не максимальный размер загружаемых файлов для указанной зоны, как я думал, а размер оперативной памяти, выделяемой для обсчета одной загрузки в эту зону. Значение для этой дерективы — 1,2m, максимум 10-20m. Задавая 1g вы будете тратить гигабайт оперативки на каждую загрузку. Стыдно, ошибку не повторяйте.
p.s. тем не менее баг найден, автору сообщил, он обещал исправить.

Старт блога

Reading time1 min
Views1.1K
Странно, что подобного блога еще нет на Хабре. Имею честь начать.
Я не претендую на гуру nginx, но использую его уже значительное время и имею представление, что это.
Всем привет, вливайтесь.

Мой опыт образования

Reading time3 min
Views2.6K
UP: Gregory дал очень интересную ссылочку, похоже, это решение проблемы. Собственно, ее можно сразу и читать.

Будучи занят в обучении людей (ВУЗ и тренинги, курсы повышения квалификации), вижу, что образование в традиционном смысле дает очень мало полезного (собственно, я не открываю Америку).
Мне интересны причины такого положения вещей:
Читать дальше →

Веб-технологии. Что включить в изучение HTML?

Reading time2 min
Views5.9K
HTML — это наше все. В уже дважды обсуждавшемся тут базовом курсе по веб-технологиям (Лекция 2 и все готовые лекции в одном файле, Структура курса) эта тема, конечно, присутствует.

Как верно заметил один из участников дискуссии, «айсберг очень велик», и поэтому дать на лекциях все и подробно невозможно.

Прошу хабражителей помочь определиться с главным: что по теме HTML должен знать будущий профессиональный технолог (практическая работа — верстка psd-макета в XHTML).

Под катом — цели преподавания HTML и программа-максимум по структуре лекции (предел — 2 пары, т.е. 3 астрономических часа).
Читать дальше →

Обрати внимание

Reading time1 min
Views704
ui
Зачастую необходимо обратить внимание пользователя на какую-либо деталь интерфейса.

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

Я хочу Вам показать прием позволяющий обратить внимание пользователя, на мой взгляд, с большой точностью.
Читать дальше

MaxSite CMS — первые впечатления

Reading time1 min
Views15K
Вчера на одном из своих блогов поставил MaxSite CMS 0.22. Первые впечатления только положительные. Автор этой системы, Максим, долгое время занимался поддержкой русской версии WordPress, и вот к сентябрю этого года выпустил систему собственного изготовления, за что ему однозначный респект. Что можно отметить в первую очередь:

1. От тормознутости Вордпресса здесь не осталось и следа. Система легкая и ест совсем немного памяти.

2. В системе абсолютно ничего лишнего, по крайней мере, сразу возникает такое ощущение.

3. Настройки и вообще работа с CMS очень удобны и очевидны. У меня ушло не больше часа на то, чтобы поднять сайт, настроить его и скопировать туда свои старые тексты по теме.

4. Поддержка на очень хорошем уровне: на какие-то вопросы или замечания Максим отвечает очень быстро. Я вчера пожаловался на то, что немного некорректно работает плагин, создающий XML Sitemap, и уже буквально через час автор выложил исправленную версию.

Ну что ж, буду использовать дальше и тестировать прочие возможности. В ближайшее время планирую заняться созданием собственного темплейта.

Ограничения на названия логинов

Reading time1 min
Views7.7K
Добрый день. В этой заметке я хотел бы поговорить об ограничениях, которые выставляются в сервисах на логины.

Создавая очередной сервис, я исхожу из следующих соображений:
1. Логин не должен быть слишком короткий (у меня сейчас от 3 символов включительно, для более крупных систем, типа GMail, используется от 6).
2. Логин не должен быть слишком длинный, иначе в каком-нибудь интерфейсе он начнёт что-нибудь неправильно распирать. Я использую логины до 20 символов, но интересно выслушать ваши мнения по этому поводу.
3. Логин может использоваться в адресной строке, при интеграции с SMS и проч. Поэтому оставляем только латинские символы, цифры, подчёркивание, дефис и точку.
3а. Если логин может быть использован как имя поддомена, то эти условия сокращаются до символов латинского алфавита, цифр и дефиса (дефис не может быть первым и последним, он не может повторяться).
4. Иногда очень удобно использовать двойную навигацию: по логину и ID. Например, у нас на одном сервисе используется адрес domain.com/users/<login> для пользователей с логином и domain.com/users/<id> для тех, у кого нет логина (т. н. виртуальные профили, которые зарегистрированы администрацией или другими пользователями). Это приводит к тому, что логин не может состоять только из цифр, чтобы не путать его с идентификатором.
5. Слова-исключения: www, mail, ns1, ns2, ns3, ns4, admin, god, moderator, editor. Первые 6 являются исключениями для совместимости с поддоменами. А какие слова-исключения используете вы?

И основной вопрос к читателям: какие ограничения стоят у вас, и что я забыл?

Индустрия it-велосипедов

Reading time9 min
Views4.4K

Введение


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

Почитав комментарии к которому, мне стало уж совсем плохо… Я просто не понимал как люди не видят сути проблемы, а видят только лишь ее последствия — проблему в велосипеде. А суть то заключается в том, что у автора напрочь отсутствуют какие-либо познания в «велосипедостроении». И что самое страшное — эти знания отсутствуют не у одного него. А практически у всей массы изобретателей которые сами велосипеды видели только на картинках. 

А если взять в расчет то, что они не хотят даже посмотреть на другие велосипеды…
 
Читать дальше →

Плавный переезд

Reading time3 min
Views11K
После того, как мне попались на глаза рассказы о переезде информационной инфраструктуры компании с места на место, я подумал, что переезд среднего контентного интернет-проекта с одной площадки на другую — тоже довольно интересная тема. Особенно интересно то, как сделать это с минимальными перебоями в работе.

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

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

Рассказ рассчитан на подготовленную аудиторию и не является точным пошаговым руководством к действию.

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

10 jQuery скриптов для улучшения интерфейса

Reading time3 min
Views11K
С рассветом WEB 2.0 получили развитие и javascript фрэймворки, позволяющие вебмастеру делать динамические элементы сайта гораздо быстрее и проще. Одним из таких фреймворков является jQuery, получивший огромную популярность за свою простоту и невероятно малый вес. Итак, представляю вашему вниманию 10 наиболее полезных скриптов jQuery для улучшения интерфейса вашего сайта.
Читать дальше →

Ajax-машина

Reading time11 min
Views4.1K
Знали ли разработчики LiveScript из Netscape о том, какое влияние окажет их язык, позже переименованный в JavaScript, на лицо интернета — веб-сайты, или, может быть, они твердо на это рассчитывали, но факт остается фактом — JavaScript на сегодняшний день является одним из самых важных и распространенных языков в мире.

В то время, как на стороне сервера трудится разношерстная компания языков в лице php, perl, python, ruby, .net, java и многих других, на стороне клиента JavaScript существует буквально в гордом одиночестве. Фактически, из маленького дополнения к html, JavaScript превратился в полноправного члена банды «html+css+js», который, зачастую, уже командует остальными, сверкая золотым браслетом с надписью «ajax» и делая недовольное лицо $( ) при случае.
продолжить чтение

95% веб-дизайна составляет типографика

Reading time3 min
Views31K
95% информации на вебе — текст. Вполне логично, что веб-дизайнер должен получить хорошую подготовку в основной дисциплине формирования письменной информации, иными словами: типографике.

Информационный дизайн это типографика


В 1969 году, Эмиль Рудер, знаменитый швейцарский типограф, написал о современных ему материалах для печати то, что мы могли бы легко сказать о наших современных веб-сайтах:

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


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

Information

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