Search
Write a publication
Pull to refresh
78
0
Олег Ефимов @Sannis

Everything Developer

Send message

Некоторые инженерные практики для улучшения качества web application на PHP

Reading time2 min
Views4.6K
Этот топик мой ответ на жалобу одного человека, что «баги достали».

Для начала, никакая методология положения не спасет. Начинать нужно с инженерных практик – внедрив их и почувствовав уверенность в своем коде можно внедрять любую методологию.

Первые задачи могут быть такие:
  • Обеспечить интеграционное тестирование, чтобы каждое обновление на production не было головной болью.
  • Обеспечить регрессионное тестирование – чтобы выявленные ошибки не возникали опять (отслеживались автоматически).

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

Загрузка Linux за пять секунд

Reading time1 min
Views5.2K
На конференции Linux Plumbers Conference двое хакеров Арьян ван де Вен (Arjan van de Ven) и Оук Кок (Auke Kok) провели демонстрацию сразу двух систем Linux, каждая из которых загружалась быстрее пяти секунд. В первом варианте использовался модифицированный вариант дистрибутива Fedora, а во втором — модифицированный Moblin. В обоих случаях хакеры оптимизировали работу ядра (по вышеуказанной ссылке, а также в этом интервью можно узнать все подробности, что они сделали).

Разработчики уверяют, что результат показан без каких-либо трюков: окончание загрузки регистрируется только тогда, как CPU освобождается и прекращаются операции чтения с диска. Сама загрузка не включает в себя время входа в сеть, но включает загрузку NetworkManager.

Асинхронная инициализация железа позволила ускорить загрузку ядра до 1,02 с (на ядре 2.6.28 они уменьшат время до 0,5 с). Дальше загрузка шла параллельными потоками.


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

IE8: Изменения в CSS, подробности для разработчиков

Reading time2 min
Views1.2K
В восьмой версии Internet Explorer ожидается масса изменений, есть и такие, которые касаются CSS. Хороший разработчик должен стараться знать о возможностях различных браузеров, поэтому css-нюансы нового IE считаю интересными. На официальном блоге разработчиков internet explorer появилась статья «Microsoft CSS Vendor Extensions», в которой достаточно подробно излагаются css-изменения.

Ниже под катом я привел основную информацию по изменениям и нововведениям.
Читать дальше →

Компоненты в Unobtrusive JavaScript

Reading time7 min
Views1.7K
Это продолжение моей статьи «Клиентская оптимизация и этапы разработки». В ней были даны рекомендации по созданию быстрых сайтов, а в том числе, фактически, я рассказал что должен сделать Web-разработчик, чтобы следовать принципам «Ненавязчивого JavaScript»:
  • разделение структуры (HTML) / оформления (CSS) и поведения (JavaScript);
  • использование JavaScript для повышения удобства использования уже рабочего приложения;
  • применение техники Graceful degradation — если браузер не поддерживает те или иные функции, которые мы добавляем в приложение с помощью JavaScript — приложение всё равно остается рабочим.
В этой же статье я хотел бы рассказать об алгоритме реализации принципов «ненавязчивости» на JavaScript.
Читать дальше →

Собственный дистрибутив на базе Debian Linux

Reading time3 min
Views48K
Потребовалось как-то по работе сделать кастомный дистрибутив. Дистрибутив должен умещаться на один диск и содержать в себе все, что требуется для простого десктопа + некоторые мелочи.

Итак, поехали.
Читать дальше →

Процессы и потоки in-depth. Обзор различных потоковых моделей

Reading time10 min
Views129K
Здравствуйте дорогие читатели. В данной статье мы рассмотрим различные потоковые модели, которые реализованы в современных ОС (preemptive, cooperative threads). Также кратко рассмотрим как потоки и средства синхронизации реализованы в Win32 API и Posix Threads. Хотя на Хабре больше популярны скриптовые языки, однако основы — должны знать все ;)
Далее

Пишем свой первый Windows-драйвер

Reading time5 min
Views136K
Итак, после моей предыдущей статьи я понял что тема про программирование драйверов Windows интересна хабровчанам, поэтому продолжу. В этой статье я решил разобрать простую программу-драйвер, которая делает только то, что пишет отладочное сообщение «Hello world!» при старте драйвера и «Goodbye!» при завершении, а также опишу те средства разработки, которые нам понадобятся для того, чтобы собрать и запустить драйвер.

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

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

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

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

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

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

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

RIA JsClasses Integrator: Оптимизируем разработку на JavaScript

Reading time4 min
Views1.2K
RIA JavaScript Classes IntegratorЧем ближе Ваш сайт приближается к концепции Web2.0 тем больше JavaScript-кода появляется на Ваших страницах. Очевидно, что разработчику все больше времени приходится тратить на интеграцию своего серверного кода на php/java/python… с клиентской частью на JavaScript.

Большое количество кода требует какой-то систематизации, например, разнести логически связанные части кода по разным файлам, имена файлов привязать к контроллеру/событию/блоку… Наверняка у многих разработчиков есть свое решение этой проблемы.
На Хабре, например, JS-код разбит на небольшие блоки, которые запрашиваются в зависимости от страницы. Код написан красиво, откоментирован, стоят отступы. Небольшой минус такого подхода большое количество блоков (около 25) на каждой странице. В начале я использовал похожую схему, но сейчас, все же, хочу представить хабрасообществу немного другой подход.

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

Стэнфорд открыл учебные материалы по программированию и ИИ

Reading time1 min
Views6.1K
Стэнфордский университет выложил в открытый доступ под лицензией Creative Commons содержание десяти учебных курсов по программирование, искусственному интеллекту, линейным системам и оптимизации. Воспользоваться этими уникальными материалами могут преподаватели и студенты со всего мира.

Каждый курс содержит видеозаписи лекций, полные тексты и тезисы, а также практические задания и экзаменационные билеты. Материалы практически полностью совпадают с той программой, по которой учатся студенты-очники в Стэнфорде. Чтобы скачать материалы, не требуется никакой регистрации или специального запроса. Они просто выложены в открытый доступ в ZIP-архивах примерно по 300 МБ, а видеоролики ещё продублированы на YouTube.

Вот список открытых курсов:

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

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

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


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

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


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

Шпаргалка по микроформатам на русском

Reading time1 min
Views1.8K
Предлагаю вашему вниманию шпаргалку по микроформатам собственного перевода.
Шпаргалку делал конкретно для себя, без подробного описания, но думаю по примерам должно быть понятно.
Рекомендую смотреть не в обычном блокноте, а в notepad++
В дополнение, включил пустой css с классами. Сам этим css не пользуюсь, но может кому-нибудь пригодиться.
Включает в себя:
  • rel, rev
  • XFN
  • hCard
  • hReview
  • xFolk
  • hAtom
  • hCalendar
  • hResume
  • hAudio

Скачать можно по этой ссылке www.site-creator.info/projects/mf.rar
P.S. Если кто найдет неточность, ошибку или переведет то что еще не переведено — буду только рад.
Материалы для этого, искать тут microformats.org

Защита от DDos. Простой, но эффективный скрипт

Reading time1 min
Views33K
Недавно озаботился поиском адекватного решения для защиты некоторых подконтрольных ресурсов от DDos атак.
Первое что посоветовали — Cisco Guard. Но так как требовалось что то легкое и не столь дорогое, то решил посмотреть в сторону софтверных продуктов.
После непродолжительного гугления наткнулся на небольшой скриптик (D)DoS-Deflate
Читать дальше →

Почему у свободного программного обеспечения убогое юзабилити и как это исправить

Reading time11 min
Views3.8K
Предлагаю хабросообществу свой перевод статьи Мэттью Пола Томаса, которую он недавно опубликовал в своем блоге. Томас — программист из Новой Зеландии, работающий в команде разработчиков проекта Launchpad — детища компании Canonical, более известной как коммерческий спонсор самого популярного Linux-дистрибутива Ubuntu.
Что самое интересное:
первый вариант этой статьи вышел еще 6 (!) лет назад.
— скорее всего появление второго варианта навеяно недавним громким заявлением основателя компании Canonical Марка Шаттлворта, в котором он предложил сообществу свободного программного обеспечения создать в течении 2 ближайших лет интерфейс операционной системы, который был бы «приятнее» Mac OS X.
— в статье прослеживается четкое разделение между volunteer designers и dedicated designers, при этом первые не пользуются у автора особой лаской. Это интересно, потому что судя по словам Томаса, он таковым и является.
Читать дальше →

Как грамотно отправлять почту из скриптов (в частности — на PHP)

Reading time5 min
Views40K
Первая часть текста взята из инструкции хостинг-провайдера Netangels. Вторая — авторская.

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

Для того, чтобы быть уверенным, что ваше сообщение отправляется действительно верно, необходимо иметь по меньшей мере базовые представления о формате почтового сообщения. Формат почтового сообщения описан в нескольких стандартизирующих документах, основными из которых являются RFC 822 (описывает формат передачи простого текста на английском языке) и RFC 2045 и далее (описывает расширения этого формата для передачи произвольных данных).
Читать дальше →

Как переделать Firefox 3 в Internet Explorer 7

Reading time2 min
Views1.2K

Здесь я расскажу как сделать Firefox 3 внешне похожим на Internet Explorer 7.
Для чего может понадобидься этот маскарад? Ради эксперимента или для юзеров в офисе, которые привыкли к IE и всё остальное не воспринимающие. Либо как в моём случае, когда после переустановки системы установился IE и злой админ (редиска ты, Вадик!) отказался ставить мне Firefox, ссылаясь на какие то правила.
С IE помучился не долго (больше чем слетающая вёрстка и неработающие скрипты меня бесит скукоженное новое окошко, которое открывается по клику на ссылку открыть в новом).
Читать дальше →

jQuery in Action. Глава 2

Reading time9 min
Views23K
Как я и обещал, вторая глава из книги «jQuery in Action» (авторы Bear Bibeault и Yehuda Katz). Как и из первой главы, выбрал все самое вкусное и интересное ;-)

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

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

Теория кэша (часть вторая, практическая, дополненная)

Reading time7 min
Views6.8K
Это вторая, дополнительная (upd: дополненная), часть моей статьи посвященной кэшированию информации при веб-разработке. Первая имеет название Теория кэша.

UPD: После многочисленных коментариев я сильно переработал статью, внес в неё больше конкретики и примеров, а так же убрал спорные моменты (например, касательно memcached). Спасибо всем, за конструктивную критику.

В данной статье я попытаюсь описать практические стороны кэширования, ориентированные, прежде всего, на сайты и системы управления контентом. Сразу предупреждаю, это мое личное мнение, которое не претендует на истину в последней инстанции. Большинство терминологии — моё, вы можете использовать его, если считаете нужным на своё усмотрение. Конструктивная критика приветствуется.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity