Обновить
357.51

Веб-разработка *

Делаем веб лучше

Сначала показывать
Порог рейтинга
Уровень сложности

Вы наверное шутите, мистер Дал, или почему Node.js — это венец эволюции веб-серверов

Время на прочтение8 мин
Охват и читатели30K
WTF is Node.js?

Node.js — вещь, вокруг которой сейчас много шума, восторженных отзывов и гневливых выкриков. При этом, по моим наблюдениям, в умах людей закрепилось следующее представление о том что же такое Node.js: «это штука, позволяющая писать на JavaScript на серверной стороне и использующая JavaScript-движок от Google Chrome». Поклонники языка восторженно вздохнули: «Ах! Сбылось!», противники же процедили сквозь зубы: «Ну вот только еще этой ерунды с прототипами и динамической типизацией нам на серверах не хватало!». И дружно побежали ломать копья в блоги и форумы.

При этом многие представители обоих лагерей придерживаются мнения, что Node.js — это эзотерическая игрушка, веселая задумка для переноса языка браузерных сценариев на «новые колеса». Дабы быть до конца честным, признаюсь, что я так же придерживался подобной точки зрения. В один прекрасный момент, я набрался духу и решил «копнуть поглубже». Выяснилось, что создатель Node.js Райан Дал далеко не фанатик, а человек, пытающийся решить реальную проблему. А его творение — не игрушка, а применимое на практике решение.

Так что же такое Node.js?

Web-дизайнеры и Web-разработчики

Время на прочтение1 мин
Охват и читатели1.5K
Web-дизайнеры и Web-разработчики

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

Перевёл я почти всё правильно.
Читать дальше →

Рецепт быстрого приготовления расширений под популярные браузеры

Время на прочтение2 мин
Охват и читатели1.3K
0147 (1)

Возникла задача написание простенького расширения под все (по возможности) популярные браузеры. Деятельность расширения заключается во внедрении javascript`а в тело документа.
Читать дальше →

1C-Битрикс vs UMI.CMS или расово верный холивар популярных коробочных CMS

Время на прочтение10 мин
Охват и читатели26K
В топике пойдет речь о том, какая из систем (1C: Битрикс или UMI.CMS) лучше для создания Интернет-магазина на основе коробки с демоконтентом.
Есть системы, есть задача, есть испытуемые и есть числовые критерии. Есть сводная таблица и комментарии тех, кто сравнивал.
Нет подыгрывания участникам, подтасовки фактов и прочей джинсы.

Эксперимент был проведен в рамках преподавания мной курса веб-технологий в ВолгГТУ. Для выполнения работы использовался выделенный сервер компании, в которой я работаю, помимо государственного ВУЗа.
Для особо въедливых товарищей оговорюсь, что компания является Золотым партнером Битрикса и имеет много баллов от Юми.
Представители каждой из систем, с которыми я знаком (Котырев, Рыжиков, Сидоренко, Солончук) узнают о подробностях и результатах исследования из этого топика. Исследованиями я не торгую, мне за отрасль поболеть интересно.
Перед тем, как минуснуть топик за то, что он про коробочные системы, которые вы, может быть, не любите, прочитайте его. Или просто проходите мимо.
Тут не агитация, тут анализ.

Итак, задача-системы-критерии-испытуемые-результат.
Читать дальше →

Google выпускает mod_pagespeed для Apache

Время на прочтение1 мин
Охват и читатели11K
В прошлом году Google в рамках своих инициатив по ускорению веб проектов представила свой инструмент для разработчиков Page Speed. Теперь же для упрощения труда разработчиков и вебмастеров Google предлагает нам новый инструмент.

Сегодня Google представила новый модуль для Apache под названием mod_pagespeed. По словам разработчиков время загрузки страницы удалось уменьшить на 50 процентов, а на отдельных проектах эта цифра значительно выше.

Сравнительная демонстрация с включенным модулем и без него



Ссылка для скачивания

UPD

Модуль представляет из себя набор фильтров, каждый из них и примеры использования представлены и описаны в Документации. Применять и использовать модули следует исходя из потребностей своего проекта, у каждого фильтра есть свои особенности, которые следует учесть при использовании, обращая внимание на раздел «Risks» в их документации.

Создание приложений на GTK+ с использованием среды Glade

Время на прочтение10 мин
Охват и читатели49K
Данный пост посвящен созданию приложений с использованием кроссплатформенной библиотеки GTK+. Ориентирован он в основном на новичков? поэтому какие-то вещи возможно для многих покажутся очень простыми и банальными, но я постарался максимально подробнее всё описать, чтобы было понятно для всех.

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

Я продемонстрирую как можно очень быстро создать интерфейс для GTK+ с помощью приложения для визуального создания графических интерфейсов Glade и интегрировать его в вашу программу. Glade не является ни компилятором, ни отладчиком. Он позволяет лишь описать интерфейс и представить его в файлах XML-формата GladeXML.

Базовым интерфейсом для библиотеки GTK+ является язык C. Но я в данном примере буду ипользовать C++. Соответственно появятся небольшие особенности, о которых я обязательно расскажу. Дистрибутив Linux я использую Ubuntu 10.04.

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

Грабли при верстке HTML писем

Время на прочтение3 мин
Охват и читатели105K
Довольно часто наши клиенты устраивают регулярные рассылки с новостями. Почти всегда их не устраивают текстовые рассылки или простое оформление HTML рассылок. Наши дизайнеры вовсю креативят, а мы потом набиваем шишки при верстке их макетов с корректным отображением во множестве почтовых клиентов.

Ниже список встретившихся нам особенностей и способы их разрешения (как то упорядочить их мне не удалось, поэтому всё идет единым списком)
Читать дальше →

История развития и оптимизаций одного высоконагруженного ресурса

Время на прочтение5 мин
Охват и читатели14K


Введение

Все началось с того, что я стал системным администратором у одного провинциального Интернет-провайдера. Помимо администрирования различного рода ресурсов, мне в присмотр достался один молодой, но бурно развивающийся ресурс. Ресурс представлял из себя классический LAMP проект. Сайт, на котором генераторами контента являлись обычные пользователи.
* К слову, в то время я ничего не понимал в *nix системах, хоть и все сервера которые мне достались, были именно на нем, разбирался я во всем этом достаточно быстро.

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

Как избавиться от пристрастия к синхронности

Время на прочтение6 мин
Охват и читатели5.8K
При сравнении асинхронное программирование превосходит синхронное, как по потреблению памяти, так и по производительности. Мы знакомы с этим фактом уже годы. Если посмотреть на Django или Ruby on Rails, возможно два самых многообещающих веб-фреймворка, появившихся за последние несколько лет, оба написаны из расчета на синхронный стиль. Почему даже в 2010 году мы пишем программы, полагающиеся на синхронное программирование?

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

Перенаправление функций в разделяемых ELF-библиотеках

Время на прочтение22 мин
Охват и читатели39K
Все мы пользуемся динамически-компонуемыми билиотеками. Их возможности поистине великолепны. Во-первых, такая библиотека загружается в физическое адресное пространство только один раз для всех процессов. Во-вторых, можно расширять функционал своей программы, подгружая дополнительную библиотеку, которая и будет этот функционал обеспечивать. И все это без перезапуска самой программы. А еще решается проблема обновлений. Для динамически компонуемой библиотеки можно определить стандартный интерфейс и влиять на функционал и качество своей основной программы, просто меняя версию библиотеки. Такие методы повторного использования кода даже получили название «архитектура plug-in’ов». Но топик не об этом.

Кстати, нетерпеливые могут все скачать и попробовать прямо сейчас.

Осторожно, много текста!

Госмедсоцсеть за 55 миллионов и 16 дней

Время на прочтение1 мин
Охват и читатели771
На сайте госзакупок размещен заказ Минздравсоцразвития «на выполнение работ по созданию социальной сети медицинских работников и пациентов на основе портала главных внештатных специалистов Министерства здравоохранения и социального развития Российской Федерации». То есть на создание государственной медицинской соцсети.

Цена контракта: 55 миллионов рублей.
Сроки выполнения работ: не более 16 дней со дня заключения контракта.

Пруфлинк

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

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

UPD2
11 октября госзаказ был отменен самим заказчиком.

Новый сайт московского метро

Время на прочтение3 мин
Охват и читатели1.1K
На днях общественности был представлен обновленный сайт московского метрополитена, mosmetro.ru

Сайт сделан на Silverlight 4, и это и есть главный фэйл, судя по разъяренным комментариям в блоге разработчика, например:
>Он не будет работать корректно. Никогда. Потому что SL. Точка.

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

Но, по большому счету, фэйл тут не из-за сильверлайта, а из-за ужасной кривизны сайта.
так, mosmetro.ru вы уронили, все бегом на ifabrika.ru — сайт разработчика
Читать дальше →

Развитие валидации форм

Время на прочтение9 мин
Охват и читатели22K

Валидация форм была педантичным занятием с момента появления web. Первой пришла серверная валидация. Затем она развилась в валидацию на стороне клиента для проверки результатов в браузере. Теперь у нас есть такие гиганты как HTML5 и CSS3: глава о формах HTML5 предлагает нам новые типы для input полей и атрибуты, которые делают возможным проверку ограничений поля. Базовый UI модуль CSS3 предоставляет несколько псевдо-классов, которые помогают нам стилизовать состояние валидности и менять внешний вид поля в зависимости от действий пользователя. Давайте взглянем на комбинацию обоих для создания валидатора форм основанного на CSS, который имеет достаточно широкую поддержку браузеров.

Чем больше мы можем дать подсказок пользователю, как правильно заполнять форму, в процессе заполнения, тем меньше шансов, что он сделает ошибку. Взгляните на пример CSS3 валидации форм в браузере поддерживающем CSS3 UI псевдо-классы, например Chrome 4+, Safari 5+ или Opera 9.6+. Я использовал CSS3 UI псевдо-классы и HTML5 атрибуты форм для создания валидации основанной на CSS. Давайте посмотрим как это работает.
Читать дальше →

Ближайшие события

Сайт для министерства за 2000 рублей

Время на прочтение2 мин
Охват и читатели1.1K
image Обычно, мы редко освещаем аккаунты системы Artsofte-lite – их много, они разные, наполняются силами клиентов, иногда со вкусом, иногда нет. Недавно, правда, мы писали про то, как может выглядеть один и тот же веб-проект в Lite-версии и в полноценном виде, но сейчас случай особый.

Аккаунт нашей Saas системы подключило Министерство информационных технологий Свердловской области.
Читать дальше →

Инструментарий веб-разработчика под мобильные устройства

Время на прочтение2 мин
Охват и читатели12K
С каждым днем количество веб-сайтов и сервисов под мобильные платформы становится все больше и больше. Я уже как то писал про эмуляторы, а сейчас хочу представить несколько полезных инструментов, начиная от самых простых, показывающих как будет сайт выглядеть на том или ином устройстве, заканчивая различными оптимизаторами контента.
Читать дальше →

Evercookie — самые устойчивые куки

Время на прочтение1 мин
Охват и читатели77K
Samy Mamkar разработал систему, которая позволяет хранить куки в 8 местах, автоматически восстанавливая друг друга, и даже добиться того, чтобы куки, поставленное в одном браузере, действовало и в другом.

Удалить это куки практически невозможно! (Все возможно, конечно, но слишком много мороки)

Куки хранятся в:
  • HTTP Cookies;
  • Local Shared Objects (Flash);
  • Сохранение куки в значениях RGB автосгенерированных и форсированно кэшированных PNG с использованием HTML5 canvas;
  • Сохранение куки в Web History;
  • HTML5 Session Storage;
  • HTML5 Local Storage;
  • HTML5 Global Storage;
  • HTML5 Database Storage через SQLite.

При удалении из одного из этих мест кука автоматически восстанавливается из оставшихся. Работает даже если пользователь сменит браузер (через Local Shared Objects из Flash).

Описание (на английском) и демо: http://samy.pl/evercookie/.
Попробуйте удалить куки, почистить систему и зайти назад.



Как пользоваться?
Читать дальше →

Онлайн игра: howto, или как я проспорил девушке программисту

Время на прочтение7 мин
Охват и читатели5.2K
Не мало было историй о том, как небольшие группы разработчиков добивались успеха. И ещё больше о том, как эти разработки проваливались. Но здесь я хочу рассказать именно об эволюции процесса разработки онлайн игры, опираясь на свой опыт. Оговорюсь заранее: это первый мой опыт разработки массовой онлайн игры.
Всё началось весьма интригующе. Я имел неаккуратность поспорить со знакомой web-программисткой о том, кто быстрее и качественнее из нас сделает web-проект. Чтобы не сильно распыляться и не тратить много времени, решили, что нам будет дана всего одна неделя, а разрабатывать мы будем многопользовательскую игру!

По истечению этого срока проекты были сданы «оценочной комиссии», которой являлись наши общие друзья. И… Мой проект не выиграл. А самым обидным на тот момент казалось то, что, по условиям спора, я должен был выделить ещё одну неделю рабочего времени, чтобы помочь своей оппонентке в развитии её игры. Но спор есть спор!
Читать дальше →

Шаблонизация на стороне клиента — уже реальность

Время на прочтение2 мин
Охват и читатели28K

Предыстория


Я занимаюсь разработкой IFrame приложений для социальной сети ВКонтакте. Самый удобный способ навигации по приложению — это динамическая подгрузка данных, без перезагрузки всей страницы. Раньше я генерил html код который нужно отобразить на сервере, пока не встретил EJS — JavaScript Templates…

EJS — Embedded JavaScript


EJS оказался одним из самых удобных и подходящих мне шаблонизаторов. Он работает, как с одиночными переменными, так и с массивами (читай объектами), присутствует логика (if...else...).
Читать дальше →

Несколько смешных «404»–страниц по версии журнала Шпигель

Время на прочтение1 мин
Охват и читатели9.4K
Вообще–то немцы употребили слово «Die schönsten», что значит «прекрасные», но, как по мне, они всё же больше смешные, чем прекрасные. Я уверен, что ценность подобных подборок не только в генерации смехуёчков, но и некая педагогически–профилактическая. Подобные подборки сенсибилизируют веб–разработчиков к необходимости создания вменяемых страниц 404. Ведь приложив мышку к сердцу, каждый может вспомнить минуты слабости и лени. Приятного просмотра за хабракатом!
Читать дальше →

Изобретайте велосипед часто

Время на прочтение2 мин
Охват и читатели2.2K
Переводчик не несет ответственности за несовпадение мнения автора с точкой зрения читателя

«Просто используйте то, что существует — это глупо, изобретать колесо...»

Вы когда-нибудь это слышали в том или ином виде? Конечно, слышали! Каждый разработчик и студент часто слышит нечто подобное. Почему? Почему изобретать велосипед так постыдно? Потому что, чаще всего, существующий код — рабочий код. Он уже прошел через какой-то контроль качества, тщательное тестирование, и в настоящее время успешно используется. Кроме того, время и усилия, вложенные в изобретение обычно не окупаются так же, как при использовании существующего продукта или кодовой базы. Нужно ли заморачиваться изобретением велосипеда? Зачем? Когда?
Читать дальше →

Вклад авторов