Search
Write a publication
Pull to refresh
0
0

User

Send message

7 шагов для систематизации процесса дизайна и разработки

Reading time6 min
Views4.4K
Систематизация означает создание процессов или предопределенного набора мер, которые предназначены для ускорения выполнения трудоемких и повторяющихся задач.

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

Статистика Google Analytics на вашем сайте. Часть вторая. Использование GAPI

Reading time2 min
Views11K
С момента публикации первого топика о создании хабраподобной статистики (которую, кстати, почему-то тут не обновляют) с импортированием данных из Google Analytics прошел ровно год.

image

Весь этот год все работало, статистика обновлялась, графики рисовались… пока все не сдохло. Как это и присуще гуглу, сдохло оно не сразу у всех, а потихоньку, в течение недели. При беглой диагностике проблемы выяснилось, что она заключается в гугловой авторизации. Учитывая, что скрипт авторизации мною был заимствован, разбираться в нем не было никакого желания, и тут до меня дошло — ведь Google выпустил API для аналитикса! Поэтому было решено не обрабатывать напильником существующую версию, а просто получить данные цивилизованно, посредством API, тем не менее, оставив при этом «структуру» и основные моменты предыдущей версии.
Читать дальше →

Webmin — система на кончиках пальцев

Reading time2 min
Views131K
image

Как говорится на официальном сайте, Webmin — это web-интерфейс для системного администрирования Unix. Используя любой современный баузер, Вы можете настраивать аккаунты юзеров, сервер Apache, DNS, файловый сервер и многое другое.
Читать дальше →

Удаляем вызовы firebug'овской консоли перед выкладкой на produciton

Reading time3 min
Views952
Предисловие

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

Сама статья:


На днях надо было сходить показать представителю заказчика, как пользоваться одной свежевстроенной в проект фичей.

За полчаса до выхода подготовил новый билд, протестировал.

По приезду оказалось, что у заказчика фича не работает. Неприятно получилось, в общем.
Но радость ваша, мои дорогие читатели, была бы не полной, если бы я не сообщил вам, что там случилось и что я по этому поводу предпринял.

Способ вертикального выравнивания блока с помощью настоящего vertical-align

Reading time4 min
Views70K
Сегодня, верстая один макет, я, кажется, изобрел очередной небезынтересный способ вертикального выравнивания блока относительно родительского. Он не основан на превращении блоков в ячейки таблицы и не использует css-свойство position.

Требования

— Должна быть известна начальная высота родительского блока;
— Дочерний блок может иметь произвольный размер как по высоте, так и по ширине.

Возможности

— Работает в IE6+, O9+, FF2+, webkit;
— Тру vertical-align выравнивание со всеми допустимыми значениями;
— Одинаковое поведение во всех браузерах (незначительные отклонение при некоторых условиях в ие6 будут оговорены ниже);
— При вырастании дочернего блока выше «папочки», родительский блок расширяется;
— Ни грамма JavaScript.
Читать дальше →

Это сделает вас мобильнее

Reading time2 min
Views3.2K
В этом кратком обзоре я рассмотрю несколько сайтов, которые помогут стать вам более мобильными и не зависит от компьютеров, десктопных приложений и различных носителей информации.

Возможно большинство из этих сайтов вам уже известно и вы давно ими пользуетесь, но если хоть что то для вас будет в новинку, значит статья написана не зря. Итак, в случайном порядке:

1. Remember The Milk


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

MySQL Profiler: простой и удобный инструмент профилирования запросов

Reading time2 min
Views47K
Сегодня был неожиданно удивлен, какие удобные штуки таит в себе MySQL. ;-)

Хочу представить вашему вниманию фичу MySQL — профайлинг.
Появилась она начиная с версии 5.0.37.

Всего парой запросов можно узнать, какими запросами формируется страница (для веб-девелоперов)
и почему она тормозит.

И раньше подобный функционал был доступен, но пользоваться журналом запросов не в пример сложнее.

Итак, как пользоваться:


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

Загружаем книги «Командная разработка с использованием Visual Studio TFS» и «Знакомство с Visual Studio Team System 2008»

Reading time1 min
Views2.6K
Следующие электронные книги стали доступны для загрузки:

Алексей Федоров. Знакомство с Microsoft Visual Studio Team System 2008
Командная разработка с использованием Visual Studio Team Foundation Server

Эти и другие бесплатные книги можно скачать здесь.

Знакомство с NDepend

Reading time4 min
Views9.3K
Проблема связанности в архитектуре приложений в последнее время получила очень много огласки, и породила большое количество фреймворков DI-характера и приложений для статического разбора и «умного рефакторинга». Об одном таком приложении под названием NDepend я и хочу рассказать.

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

Интернет магазин на Google App Engine (UPD: 20.01.2010)

Reading time2 min
Views4K
Магазин работает уже почти пол года — добро пожаловать :)
http://www.digital-mode.ru

Как это все работает.

Фронт-офис — генерирует страницы с группами и товарами, а также позволяет добавить товар в корзину и оформить заказ.
Хранилище картинок — отдает фотографии товаров в нужном размере. Все остальные картинки статические, загружаются с сервера GAE.
Бэк-офис — административная часть, позволяет редактировать товары и группы, просматривать заказы, загружать фотографии для товаров, а также загружать обновления цен, наличия и новые позиции.

Для генерации почти всех страниц используется Django templates.

В целом ничего сложного :)

Проблемы с которыми пришлось столкнутся при разработке.

На текущий момент есть проблемы с загрузкой/выгрузкой большого количества данных. На данный момент использую CSV для загрузки обновлений (цены, товары, наличие). При большом объеме данных превышается тайм-аут 30 сек на выполнение. Кроме этого в GAE ограничение на 30 запросов на запись (put). Соответственно обновлять больше 30 товаров за один проход не получается. Этот момент можно оптимизировать и обновлять данные не поштучно, а сразу пачками т.к. в GAE запись в хранилище может производится целыми массивами.

Выгрузка данных для Яндекс.Маркета занимает почти 10 секунд (200 товаров), 90% времени это генерация HTML.

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

Преимущества GAE

Отсутствие необходимости покупки/настройки/поддержки собственного сервера.
Автоматическое масштабирование.
Одинаковое время доступа к приложению при разных нагрузках.
Удобство разработки.

Итого

Скорость работы магазина не зависит от количества посетителей.
На данный момент при 500-600 хитов в сутки используется 0,3-0,4 часа процессорного времени из 6,5 бесплатного.

После публикации в комментариях к топику: "Стоит ли вам использовать Google AppEngine?" ссылки на магазин было использовано ресурсов:
— 0,44 часов CPU из 6,5
— 28000 запросов из 1,3 млн
— 210 Мб из 1 Гб исходящего траффика
— 5,59 Гб из 116 Гб получено из API
— 0,22 часа из 62,11 использовано хранилищем
Всего за 12 часов — 700 хитов (180 хостов).

Это микрохаброэффект:
image
Читать дальше →

Три интересные задачи на знание SQL

Reading time4 min
Views30K
image

Буквально несколько часов назад, после внимательного изучения комментариев вот к этому топику я был несколько удивлен что многие не очень любят использовать условия HAVING и похоже другие возможности СУБД. Скажу прямо — мне очень понравилась обсуждение простейшего и не работающего запроса, в результате которого многие узнали для себя много нового и познавательного (это мое личное мнение). Поэтому я решил сделать вот что — вывести три моих самых любимых задачи по знанию SQL (MySQL) на суд общественности.

Данные задачи абсолютно реальные, и в отдаленном светлом прошлом действительно имели место, и были благополучно решены жертвой некоторого количества рабочего времени и нервных клеток. Я уверен на 100% что они актуальны и по сей день, и будут актуальны еще долго. Сложными их назвать нельзя, но и очень простыми тоже (в зависимости от уровня подготовки конечно).

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

Используем SQL Server Dynamic Management Views and Functions (DMV and DMF)

Reading time6 min
Views17K
MS SQL Dynamic Management Views and Functions (DMV and DMF)
Microsoft SQL 2005/2008 предоставляет доступ к динамическим административным представлениям и функциям (Dynamic Management Views and Functions, DMV and DMF). Эти данные мы можем использовать для диагностики проблем и оптимизации производительности баз данных.
Вот неполный перечень доступной информации:
  • Причины задержек выполнения запросов.
  • Работа с индексами (отсутствующие, неиспользуемые, требующие больше всех операций ввода/вывода, часто используемые).
  • Запросы с высокими издержками на ввод-вывод, с высоким использованием процессора.
  • Запросы, выполняющиеся чаще всего.
  • Запросы, страдающие от блокировок.
Полное описание всех функций можно найти в MSDN — Динамические административные представления и функции (Transact-SQL). Для тех, кто еще не сталкивался с запросами к DMV – рекомендую ознакомиться со статьей из журнала MSDN за январь 2008-ого года: "Открытие скрытых данных для оптимизации производительности приложений". Она довольно обширна, содержит общую информацию и большое количество готовых часто используемых запросов к DMV.
Далее, я хочу рассказать о том, как можно сохранять и анализировать данные запросов к DMV.
Читать дальше →

Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

Reading time16 min
Views40K
Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

Введение


С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Статья большая, так что будет поделена на логические блоки:

0. Зачем вообще что-то оптимизировать?
  
1. Оптимизация ОС (FreeBSD)
  1.1 Переход на 7.х 
  1.2 Переход на 7.2
  1.3 Переход на amd64
  1.4 Разгрузка сетевой подсистемы
  1.5 FreeBSD и большое кол-во файлов
  1.6 Softupdates, gjournal и mount options
  
2. Оптимизация фронтенда (nginx)
  2.1 Accept Filters
  2.2 Кеширование
  2.3 AIO
  
3. Оптимизация бэкенда
  3.1 APC
  3.1.1 APC locking
  3.1.2 APC hints
  3.1.3 APC fragmentation
  3.2 PHP 5.3
  
4. Оптимизация базы данных
  4.1 MySQL 
  4.1.1 Переход на 5.1
  4.1.2 Переход на InnoDB
  4.1.3 Встроеный кеш MySQL - Query Cache
  4.1.4 Индексы
  
4.2 PostgreSQL
  4.2.1 Индексы
  4.2.2 pgBouncer и другие.
  4.2.3 pgFouine
  
4.3 Разгрузка базы данных
  4.3.1 SphinxQL
  4.3.2 Не-RDBMS хранилище
  4.4 Кодировки
  4.5 Асинхронность
  
Приложение. Мелочи.
  1. SSHGuard или альтернатива.
  2. xtrabackup
  3. Перенос почты на другой хост
  4. Интеграция со сторонним ПО
  5. Мониторинг
  
 6. Минусы оптимизации

Кому что-нибудь из этого списка интересно, жмём сюда...

Текст любой ценой: RTF

Reading time14 min
Views88K
Что ж продолжим наши изыскания на предмет получения текста из различных форматов данных. Не так давно мы с вами научились вытаскивать текст из zipped-xml-based файлов (odt и docx), а также, в начале этой недели, из pdf. Сегодня мы продолжим с обещанным rtf.

Rich Text Format (он же rtf), вы могли бы подумать, достаточно забытый, хотя и не очень сложный формат представления текстовых данных. Что ж, относительно несложный для получения текста, но за свою историю: от своей первой версии до текущей 1.9.1 — он приобрёл под 300 страниц официально документации и огромное количество надстроек, которые в большей степени нам будут мешать при получении plain text'а. Попробуем их обойти…
Читать дальше →

Инструменты быстрого прототипирования

Reading time9 min
Views206K
Прототипы, как инструменты дизайна, находятся на подъёме, и вот почему. Я твёрдо верю, что прототипирование помогает нам в процессе создания качественных пользовательских интерфейсов. Мы работаем в мире богатых, обладающих динамикой интерфейсов пользователя как в сети, так и на наших устройствах. Интерфейсы, которые мы создаём, интерактивны, откликаются на воздействие пользователя и обладают эмоциями. Прототипы позволяют сформулировать чувства и функции дизайна так, как этого не могут сделать простые экранные формы. Но как выбрать лучший инструмент прототипирования для работы?
Много текста. Читать дальше

Текст любой ценой: PDF

Reading time12 min
Views93K
Продолжаем разбирать текстовые форматы на предмет получения текста. Итак, обещанный ранее PDF.

С portable document format'ом не всё так просто, как DOCX или ODT, что мы рассматривали в прошлый раз, но всё же это всё ещё изначально текстовый, а не бинарный формат. Вы удивлены? Тогда давайте посмотрим на то, что там внутри. Дальше действительно много текста.

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

Текст любой ценой: DOCX и ODT

Reading time4 min
Views63K
Недавно возникла задача получения чистого текста из различных форматов документооборота — будь-то документы Microsoft Word или PDF. Задача была выполнена даже с чуть более широким списком возможных входных данных. Итак, этой статьёй я открываю список публикаций о чтении текста из следующих типов файлов: DOC, DOCX, RTF, ODT и PDF — с помощью PHP без использования сторонних утилит.

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

Information

Rating
Does not participate
Location
Бурон, Северная Осетия, Россия
Date of birth
Registered
Activity