Как я уже недавно писал, в настоящее время я занимаюсь разработкой мобильной версией одного сервиса. Вчерашняя статья про особенности дизайна сайта для мобильных устройств показала, что у аудитории есть интерес к разработке сайтов, адаптированных под телефоны, коммуникаторы и т.д.
Жандос @jandosul
Пользователь
apache+nginx+gzip_static+yuicompressor
6 min
15KВ этой статье я опишу принципиальные различия Apache и Nginx, архитектуру фронтэнд-бэкэнд, установку Apache в качестве бэкэнда и Nginx в качестве фронтэнда. А также опишу технологию, позволяющую ускорить работу веб-сервера: gzip_static+yuicompressor.
+101
jQuery:step() селектор произвольной позиции
2 min
10KTranslation
Одна из самых потрясающих вещей в jQuery — это движок селекторов. Доступ к элементам DOM используюя селекторы в jQuery становиться довольно простой задачей, еще и потому, что большинство селекторов используют те же выражения что и селекторы в CSS. Это то что веб-дизайнеры НЕ программисты могут легко усвоить.
Это статья — упражение в создании произвольного слектора, вы можете её использовать, как руководство по созданию своего собственного селектора.
Это статья — упражение в создании произвольного слектора, вы можете её использовать, как руководство по созданию своего собственного селектора.
+23
Рецепт быстрого приготовления расширений под популярные браузеры
2 min
1.2K
Возникла задача написание простенького расширения под все (по возможности) популярные браузеры. Деятельность расширения заключается во внедрении javascript`а в тело документа.
+70
Форки движка MySQL: MariaDB, Percona. who is who?
3 min
89KMySQL стал собственностью Oracle, есть ли альтернативы и как быстро движение вперед?.. Вроде как обобщающего обзорчика «who is who?» еще не было. Итак, обзорчик для тех кто «не в теме»
+90
Ручная сборка PostgreSQL для 1C 8.2, или легкие пути не для нас!
9 min
25KВ статье рассказывается про ручную сборку базы данных PostgreSQL для 1C под Gentoo Linux.
Не буду рассказывать о всех тупиковых ветвях нашего лабиринта сборки постгреса для 1С. Опишу только то, чего нигде в интернете нет — то, что мы раскурили методом научного тыка. Несмотря на обилие мануалов по установке постгреса для 1C, ни один из них не решил наших основных граблей, все они оказались поверхностными и ничего не объясняли. Поэтому мы посчитали своим долгом восполнить этот пробел :-)
Не буду рассказывать о всех тупиковых ветвях нашего лабиринта сборки постгреса для 1С. Опишу только то, чего нигде в интернете нет — то, что мы раскурили методом научного тыка. Несмотря на обилие мануалов по установке постгреса для 1C, ни один из них не решил наших основных граблей, все они оказались поверхностными и ничего не объясняли. Поэтому мы посчитали своим долгом восполнить этот пробел :-)
+58
Наиболее полное руководство по Internet Explorer 9 для разработчиков (и не только), часть 6
5 min
1.3KCSS3 2D Transforms, HTML5 Semantic Elements, JavaScript, демонстрации и тесты

В ходе конференции PDC10 была представлена очередная тестовая версия браузера Internet Explorer 9. IE9 Preview 6 – это версия предназначенная для тестирования разработчиками и, как предыдущие превью-версии, она не содержит пользовательского интерфейса. Зато ее можно установить на компьютер не удаляя IE9 Beta.
Этот пост раскроет детали шестой тестовой версии Internet Explorer 9 и расскажет о нововведениях в браузер, которые будут важны для разработчиков.
Это шестая статья из серии статей про нововведения в IE9 для разработчиков. Ознакомится с предыдущими частями можно здесь:

В ходе конференции PDC10 была представлена очередная тестовая версия браузера Internet Explorer 9. IE9 Preview 6 – это версия предназначенная для тестирования разработчиками и, как предыдущие превью-версии, она не содержит пользовательского интерфейса. Зато ее можно установить на компьютер не удаляя IE9 Beta.
Этот пост раскроет детали шестой тестовой версии Internet Explorer 9 и расскажет о нововведениях в браузер, которые будут важны для разработчиков.
Это шестая статья из серии статей про нововведения в IE9 для разработчиков. Ознакомится с предыдущими частями можно здесь:
- часть 1 (CSS3, HTML5, DOM);
- часть 2 (SVG, GPU);
- часть третья (профили ICC, форматы изображений, JavaScript);
- часть 4;
- часть 5.
+17
Почему программисты срывают сроки
8 min
11KВместо введения
Так уж сложилось, что в какой бы компании я не работал, наш отдел или группа разработки ПО почти всегда срывала сроки. Иногда мы не укладывались на два дня, а иногда на несколько недель. Обычно, нам не хватало от пяти до десяти дней. В результате мы либо задерживали поставку, либо сдавали работу с известными ошибками, недоделками, не проверенными частями, и затем пытались наверстать упущенное на следующем этапе разработки.
Старт очередного этапа, который начинается с доделывания прошлых задач, является очень плохой практикой, как показал мой опыт. И чем больше я работаю в таком режиме, тем больше мне хочется что-то поменять. Но прежде чем лечить какую-то болезнь, надо провести диагностику и отделить причины от симптомов. Итак, вот моя попытка выявить и “разложить по полкам” причины срыва сроков разработки.
+60
Пишем свой драйвер под Linux
8 min
68K
Хочу признаться сразу, что я вас отчасти обманул, ибо драйвер, если верить википедии — это компьютерная программа, с помощью которой другая программа (обычно операционная система) получает доступ к аппаратному обеспечению некоторого устройства. А сегодня мы создадим некую заготовку для драйвера, т.к. на самом деле ни с каким железом мы работать не будем. Эту полезную функциональность вы сможете добавить сами, если пожелаете.
То, что мы сегодня создадим, корректнее будет назвать LKM (Linux Kernel Module или загрузочный модуль ядра). Стоит сказать, что драйвер – это одна из разновидностей LKM.
Писать модуль мы будем под ядра линейки 2.6. LKM для 2.6 отличается от 2.4. Я не буду останавливаться на различиях, ибо это не входит в рамки поста.
Мы создадим символьное устройство /dev/test, которое будет обрабатываться нашим модулем. Хочу сразу оговориться, что размещать символьное устройство не обязательно в каталоге /dev, просто это является частью «древнего магического ритуала».
+229
Программист, который отвлекается
5 min
13KTranslation
Автор статьи — программист с шестнадцатилетним стажем работы — был поставлен перед невозможностью подолгу сидеть за компьютером (как поступают многие из нас). В этой статье он рассказывает о том, как организовать свою рабочий процесс так, чтобы частые перерывы не вредили возможности сосредоточиться на работе и эффективности труда. В принципе достаточно известные вещи, но лично для меня стали новостью инвертирование приоритетов и сам факт того, что можно работать отвлекаясь и при этом не терять ход мысли.
Я не могу безболезненно сидеть за столом дольше часа подряд, и я не могу работать больше, чем стандартный восьмичасовой день. Проблема в том, что последние 15 лет моя стратегия работы заключалась в том, чтобы поймать «поток» и после этого кодить очень долго без перерывов. Эта стратегия очень популярна у кодеров, любящих запираться на сутки, надевать наушники и отключаться от внешнего мира — и именно поэтому они так болезненно реагируют, когда их отвлекают. Программирование требует концентрации, а концентрация работает по принципу клапанного механизма — на разогрев и запуск требуется время, поэтому уже запущенный механизм лучше не останавливать.
Я не думал, что существуют другие способы программирования, и уже начал было смиряться с тем, что обречен на низкую производительность. Но за последние 6 месяцев я обнаружил, что «медленный разогрев и долгая работа без перерывов» — поведение приобретенное, а не врожденное, и вполне возможно переучиться на другие ритмы активности. Это похоже на многофазный сон — как только вы привыкли делать вещи определенным образом, любые изменения очень трудоемки, но возможны — при наличии достаточной мотивации и времени на привыкание.
Я не могу безболезненно сидеть за столом дольше часа подряд, и я не могу работать больше, чем стандартный восьмичасовой день. Проблема в том, что последние 15 лет моя стратегия работы заключалась в том, чтобы поймать «поток» и после этого кодить очень долго без перерывов. Эта стратегия очень популярна у кодеров, любящих запираться на сутки, надевать наушники и отключаться от внешнего мира — и именно поэтому они так болезненно реагируют, когда их отвлекают. Программирование требует концентрации, а концентрация работает по принципу клапанного механизма — на разогрев и запуск требуется время, поэтому уже запущенный механизм лучше не останавливать.
Я не думал, что существуют другие способы программирования, и уже начал было смиряться с тем, что обречен на низкую производительность. Но за последние 6 месяцев я обнаружил, что «медленный разогрев и долгая работа без перерывов» — поведение приобретенное, а не врожденное, и вполне возможно переучиться на другие ритмы активности. Это похоже на многофазный сон — как только вы привыкли делать вещи определенным образом, любые изменения очень трудоемки, но возможны — при наличии достаточной мотивации и времени на привыкание.
+136
Самый короткий в мире маркетинговый план
1 min
17KВ догонку к посту про макет бизнес модели, не менее полезный «самый короткий в мире маркетинговый план» (так его назвал автор, Келли Одел).
Можно для любой новой идеи, продукта или услуги заполнить эту табличку и сразу увидеть общую картину с перспективами.
Можно для любой новой идеи, продукта или услуги заполнить эту табличку и сразу увидеть общую картину с перспективами.
+104
Реализация паттерна Observer средствами PHP 5.3
3 min
11KПрочитав недавно нововведения PHP 5.3, я обратил внимание на несколько интересных особенностей, скомпоновав которые можно получить реализацию шаблона проектирования Observer, гораздо красивее, чем имеющиеся в pear и symfony, причём вся реализация займёт всего несколько строк кода.
+42
История развития и оптимизаций одного высоконагруженного ресурса
5 min
14K
Введение
Все началось с того, что я стал системным администратором у одного провинциального Интернет-провайдера. Помимо администрирования различного рода ресурсов, мне в присмотр достался один молодой, но бурно развивающийся ресурс. Ресурс представлял из себя классический LAMP проект. Сайт, на котором генераторами контента являлись обычные пользователи.
* К слову, в то время я ничего не понимал в *nix системах, хоть и все сервера которые мне достались, были именно на нем, разбирался я во всем этом достаточно быстро.
Как обычно бывает с ресурсами, набирающими популярность, железки на которых все крутится, перестают справляться. Ресурс стоял на стареньком двухпроцессорном сервере, на котором крутились практически все сервисы для пользователей. В то время начальство не воспринимало ресурс как нечто стоящее вложений, поэтому, к моему сожалению (а позже – счастью), денег под новую железку мне не выделяли.
+188
Перехват и редактирование файлов http-трафика на примере торрента
4 min
12KПару лет назад возникла идея сделать локальный bittorrent-ретрекер для пользователей нашей «домашней» городской сети, чтобы и пользователи быстрее скачивали и у нас меньше трафика было. Установкой самого ретрекера дело только начиналось, необходимо было как-то анонсировать его для скачиваемых торрентов. В процессе выяснения способов и механизмов анонса я пришёл к достаточно общему и универсальному алгоритму, с которым и предлагаю познакомиться.
Итак, первое:
Итак, первое:
+109
Build Your First PHP for Android Application
5 min
34KTranslation
Операционная система Android повергла рынок сматрфонов в шок :). В отличии от компании Apple, которая предъявляет достаточно строгие требования к разработчикам, которые хотят выставлять свои приложения в iPhone App Store, Google создал платформу Android открытой (в оригинале wide open). В настоящее время вы можете писать приложения PHP. Парни из Irontech создали необходимое, и используя Scripting Layer для Android (SL4A), вы можете создавать на PHP приложения для Android.
+50
MySQL шпаргалки
3 min
827KЧасто, когда разрабатываешь сайт, замечаешь, как на одни и те же грабли наступают разработчики при проектировании базы данных.
Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL.
Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL.
+171
Fur.ly — создай презентацию из сайтов
1 min
791
Дня три назад наткнулся на любопытный сервис по сокращению ссылок — Fur.ly. Поиск по Хабру не дал никаких результатов, поэтому решил написать небольшой топик, демонстрирующий возможности сократителя ссылок. Задача сервиса состоит в том, чтобы предоставить пользователям возможность составлять небольшие презентации из сайтов, сокращая несколько ссылок в одну. Затем все ссылки будут представлены в виде небольшой интернет-презентации.
+24
extsrc.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)
4 min
21KХочу Вам рассказать о штуке, которую я изобрел сегодня, чтобы ускорить процесс загрузки сайтов. Все вы знаете, что
Не правда ли было бы круто, если бы можно было сказать
Все бы хорошо, но есть
Результат? Супер-быстрая загрузка страниц, даже если там море всяких внешних скриптов.
Использование:
Заменяем
Итого получается:
<script src="..."></script>
задерживает отрисовку страницы, пока не загрузится этот скрипт. Если их десятки — это может сереьезно замедлить работу сайта — в результате пользователь 20 секунд пялится на пустую (или недорисованную) страницу из-за какого-нибудь тупящего социального виджета (умножить на десяток этих виджетов). Не правда ли было бы круто, если бы можно было сказать
<script extsrc="..."></script>
("extsrc" = "грузи потом"
), чтобы скрипты загружались после того как страница отрисована? Все бы хорошо, но есть
document.write
… Сегодня я наконец решил его проблему — представляю extsrc.js — скрипт, который запустит все скрипты после отрисовки страницы (даже если они содержат document.write
— и правильно отрисуется все).Результат? Супер-быстрая загрузка страниц, даже если там море всяких внешних скриптов.
Использование:
Заменяем
<script src="...">
на <script extsrc="...">
.Итого получается:
<script src="http://whiteposts.com/extsrc_js/extsrc.js"></script>
<script extsrc="..."></script>
+143
Непрерывная интеграция и TeamCity
4 min
102KНепрерывная интеграция (англ. Continuous Integration) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. В обычном проекте, где над разными частями системы разработчики трудятся независимо, стадия интеграции является заключительной. Она может непредсказуемо задержать окончание работ. Переход к непрерывной интеграции позволяет снизить трудоёмкость интеграции и сделать её более предсказуемой за счет наиболее раннего обнаружения и устранения ошибок и противоречий.

+39
JSNAV
3 min
2.9KНавигация по странице
Всё чаще и чаще в web появляются сайты, использующие навигацию, написанную на JavaScript. Типичный случай использования javascript для навигации: страница с меню и блоком контента, куда через AJAX подгружается содержимое:

Пользователь кликает по пункту, JavaScript грузит из сети содержимое, вставляет в блок контента, пользователь доволен: страница без перезагрузки показывает требуемое и траффика потребовалось меньше за счёт того, что не потребовалось грузить все эти HEAD, BODY, STYLE и прочие элементы.
Но вот проблема: URL страницы. Если на old scool сайтах на каждый пункт меню показывается новая HTML страница, и у пользователя есть вменяемый URI, который он может скопировать из адресной строки бразуера, послать другу или положить в закладки, то в случае AJAX интерфейсов в URI странице зачастую нет никаких ссылок на текущий контент документа.
Пересылая ссылку из адресной строки браузера другу, пользователь не может быть уверен, откроется ли документ с тем содержимым, что он просматривает сейчас, или откроется документ с начальным содержимым страницы.
Не с секрет, что для решения этой проблемы многие программисты кодируют ссылку на текущее просматриваемое содержимое в якорь (anchor) URI документа. К примеру, на сайте jqapi.com (скриншот которого приведён вначале топика) при выборе того или иного пункта меню якорь страницы меняется на #p={contentId}.
+54
Information
- Rating
- Does not participate
- Location
- Казахстан
- Date of birth
- Registered
- Activity