Обновить
458.95

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

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

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

Пара слов о каптче…

Время на прочтение1 мин
Охват и читатели733
Путешествуя по просторам интернета, я набрёл на интересный экземпляр на сайте довольно крупного ресурса:


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

Об eyeOS и веб-осях. Пример использования

Время на прочтение2 мин
Охват и читатели6.1K
Выполняю давнее обещание и рассказываю, как я использую eyeOS как систему личных кабинетов.
Читать дальше →

Просимся в поиск к пользователю с помощью OpenSearch

Время на прочтение2 мин
Охват и читатели12K
Хабрапоиск
На картинке есть одна деталь, которую не все замечают. Подсветка стрелки выпадающего меню. Значит сайт, на котором вы находитесь, предлагает добавление поискового плагина. Работает в Firefox и IE.

Как это сделать на примере Хабрапоиска

Как отправить форму по нажатию на ссылку?

Время на прочтение4 мин
Охват и читатели67K
Этот вопрос входит, наверное, в ТОП10 вопросов на форумах :) Скорей всего это требование дизайнера или заказчика.

Итак, решение, на первый взгляд, простое:

<a href="#" onclick="document.getElementById('myform').submit(); return false;">Отправить</a>


Но тут же возникает (как ни странно :) следующий вопрос это, а если JS будет у посетителя отключен?
Читать дальше →

Проект Gestalt – пишите на Ruby, Python и XAML прямо в HTML на стороне клиента

Время на прочтение5 мин
Охват и читатели4.8K
imageGestalt – это open source фреймворк, который позволит вам включить в обыкновенный html-код страницы коды на Ruby или Pyhton и даже XAML-разметку. И все это будет работать на стороне клиента! Если вы хотите написать клиентский код подобный следующему,
<script language=«python»> или <script language=«ruby»>
то Gestalt сделан специально для вас. Быстрый старт и простейшую демонстрацию можно посмотреть по адресу http://www.visitmix.com/labs/gestalt/getstarted/.

* внимание, исполняющая среда запускается не мгновенно, при самой первой загрузке стоит подождать пару секунд и все заработает

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

Как написать слово в поле для пароля так, что бы его было видно?

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

Сейчас стало очень модно делать формы, в которых заголовок поля для ввода написан в самом поле. Например так:


Но как в таком случае быть с полем для ввода пароля? Ведь он заменяет дефолтное значение на звездочки.
В этом посте я решил рассмотреть несколько вариантов, как сделать поле для пароля со звездочками, но что бы слово «пароль» было видно.
Читать дальше →

Том ДеМарко: инжиниринг ПО — идея, время которой прошло?

Время на прочтение5 мин
Охват и читатели4.5K
Я часто общаюсь с людьми на тему гибких методов разработки ПО, иногда пишу статьи про это (например, недавняя статья на хабре про Канбан в IT).
И я могу сказать, что основной аргумент, который люди приводят против этих методов, который останавливает многих даже от мыслей про Канбан, Scrum или XP — это якобы низкий уровень контроля за разработкой у этих методологий.
При этом некоторые воспринимают, как непрофессионализм, доводы о том, что уровень контроля не сильно-то зависит от методологии, да и вообще контроль в сфере разработки ПО — это по большому счету фикция.

Для таких людей я перевёл новую статью Тома Демарко, одного из основоположников инжиниринга ПО, разработчика метрик для ПО и соавтора известной книги «Человеческий фактор: успешные проекты и команды».
Эта статья сильно провокационная и сейчас широко обсуждается в англоязычных блогах и странно, что я еще не встречал ее переводов на русский. Но, несмотря на провокационность, в ней есть несколько очень правильных идей, которые могут изменить у кого-то представление о важности и возможности контроля за разработкой.
В общем, читайте перевод статьи под катом.

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

Siege — утилита для нагрузочного тестирования веб-серверов

Время на прочтение7 мин
Охват и читатели86K
Надеюсь, что данный материал будет кому-нибудь полезен.

Siege – это утилита для нагрузочного тестирования веб-серверов. Она была создана для того чтоб дать разработчикам возможность проверить ресурсоёмкость своего кода в условиях, максимально приближенных к реальным. Так же Siege может имитировать обращения к сайту сразу нескольких пользователей. Это позволяет держать сервер как бы «под осадой» долгое время. Количество запросов, произведённых при «осаде», рассчитывается из общего количества пользователей и количества их обращений к серверу. Например 20 пользователей, обратившись по 50 раз, создают в общей сложности 1000 запросов. Результат, выводимый программой после тестирования, включает в себя время затраченное на проверку, общее количество переданной информации ( включая заголовки ), среднее время ответа сервера, его пропускную способность и число запросов на которые пришёл ответ с кодом 200. Эти данные формируются и выдаются при каждой проверке. Подробно они описываются ниже. Siege имеет 3 основных модели работы – режим регрессионного тестирования, режим имитации Интернета и режим грубой силы. Программа считывает порцию ссылок из конфигурационного файла и обращается к ним по очереди ( режим регрессионного тестирования ) или случайно ( имитация интернета ). Или же пользователь может указать один единственный адрес к которому будут производиться все обращения – режим грубой силы.

UPD: спасибо за плюсы, перенес в тематический блог.
Читать дальше →

Вышел Expression Web 3 + SuperPreview

Время на прочтение1 мин
Охват и читатели1.7K
Наконец-то, после появления Blend 3 RC, стал доступен Expression Web 3 Trial. Все бы ничего, но вместе с Expression Web 3 идет инструмент SuperPreview, который меняет представление о тестировании разметки в браузерах. Ранее уже писалось об этом инструменте, но он был доступен только для браузеров Internet Explorer. Теперь же появилась полноценная поддержка Firefox (и последних версий тоже).

image

На скриншоте вы видите работу инструмента: сайт habrahabr для примера. Сравнивается разметка, эталлоном выбран Firefox, на стороне рендеринга IE8 отображается отклонение выбранного элемента разметки. Сравнивать можно с загружаемым исходным изображением, а не только результатом работы браузера.

Поддерживаются браузеры Firefox и IE. В скором времени будет добавлена поддержка Safari. Expression Web — это платное ПО с триалом на 60 дней.

PS: это очень удобно!
PS: в комментариях сообщили что вышла вся линейка Expression! Скачать всю студию разом можно тут www.microsoft.com/expression/try-it/Default.aspx?filter=studio3

Индикатор окончания эпохи Internet Explorer 6 на рабочем столе

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

Internet Explorer 6 появился в 2001 году. В 2003-2004 годах он набрал рекордную рыночную долю 90%, и не глядя на все свои недостатки долгое время удерживал лидирующие позиции. Сегодня мы наблюдаем окончание эпохи IE6. Для того, чтобы наблюдать за этим процессом, я реализовал идею yanajy. Теперь мы можем прямо на рабочем столе наблюдать за изображением уходящего в тень логотипа IE6.


Скачать: ie6-meter.zip (1 кб.)
Исходники: ie6-meter-src.zip (236 кб.)
Демо: http://veg.by/pages/ie6meter/


Индикатор популярности IE6 на рабочем столе

Данные автоматически берутся из статистики liveinternet.ru по неделям. Скрипт генерирует картинку, на которую ссылается обычный HTML документ, что собственно и устанавливается в качестве рабочего стола.


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

Организация среды веб-разработки

Время на прочтение4 мин
Охват и читатели6K
Продуктивность коллектива веб-студии напрямую зависит от удобства среды разработки. У нас сложилась стройная система организации работы с проектами, включающая в себя набор таких неотъемлемых компонентов, как IDE, SCM, PM-система, багтрекер и development-сервер. Этим постом я бы хотел начать цикл статей, посвященных настройке и использованию этих компонентов в нашей студии.

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

Идеи

  1. Среда разработки должна быть единой для всех сайтов.
  2. Девелоперы не должны тратить время на настройку каждый своей серверной части.
  3. Работает ли над проектом один человек или несколько — контроль версий необходим.
  4. Если рабочий каталог (IDE workspace) находится на сервере, то можно поработать и дома, не тратя время на повторную настройку окружения на домашнем десктопе или ноуте.

Концепция и реализация

Канбан в IT (Kanban Development)

Время на прочтение7 мин
Охват и читатели287K
Я собираюсь написать несколько статей про новую методологию гибкой разработки Канбан (Kanban Development) в целях подготовки к Scandinavian Agile Conference 2009, где я буду делать один из докладов (кстати, заодно приглашаю всех на конференцию).
Сегодня публикую первую из статей.
Основная задача первой статьи — это как можно проще описать основы Канбан: что это такое, в чем отличие от других гибких методологий и зачем это нужно.
Также я хотел бы собрать как можно больше вопросов и сомнений в комментариях, чтобы ответить на них в следующих статьях, так что пишите всё, что вам непонятно, или что ещё вы хотели бы узнать про Канбан.
Я не то, чтобы большой специалист по этой новой методологии, но мы внутри команды пришли к Канбану самостоятельно и последовательно прошли все этапы мутации от SCRUM до Канбан, так что практический опыт есть.

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

Использование составных ключей для манипуляции данными в memcached

Время на прочтение7 мин
Охват и читатели3.4K
Часто, при работе с memcached, возникает ситуация, когда необходимо удалить данные в самых различных местах. Например, при добавлении нового комментария, необходимо обновить не только кеш самих комментариев этой страницы, но и ленты комментариев на главной странице, списока комментариев пользователя, счетчика комментариев пользователя, общего счетчика комментариев сайта, счетчика комментариев статьи и т.д. Можно запомнить все ключи этих данных и множество раз вызвать delete() с этими ключами.

<?php
$cache->delete('comments_art123');
$cache->delete('comments_tape');
$cache->delete('comments_user123');
$cache->delete('comments_counters_art123');
$cache->delete('comments_counters_user123');
......
?>


* This source code was highlighted with Source Code Highlighter.


Как известно, memсached хранит данные плоско, то есть одному ключу соответствует всегда одно значение. Вложенных ключей не существует. Так же нет возможности удалить группу ключей, скажем по маске. Хорошо бы было, если бы можно было сделать, например, так: $cache->delete('comments*'); Но так нельзя.

Но если нельзя, но очень хочется, то можно ;)
Читать дальше →

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

Redis — высокопроизводительное хранилище данных

Время на прочтение2 мин
Охват и читатели102K
Бодрый день, хаброчеловеки!

Что такое Redis?


Redis — это высокопроизводительное нереляционное распределённое хранилище данных. В отличие от Memcached, который может в любой момент удалить ваши данные, вытесняя старые записи новыми, Redis хранит информацию постоянно, таким образом он похож на MemcacheDB.

Чем Redis отличается от существующих решений?


API для работы с Memcached (MemcacheDB) позволяет хранить массивы, но эти массивы будут сериализованы и сохранены как строки, таким образом атомарные операции над такими массивами не возможны.
Redis позволяет хранить как строки, так и массивы, к которым можно применять атомарные операции pop / push, делать выборки из таких массивов, выполнять сортировку элементов, получать объединения и пересечения массивов.

Производительность


110000 запросов SET в секунду, 81000 запросов GET в секунду на Linux-сервере начального уровня (тесты).

Высокая скорость работы Redis обеспечивается тем, что данные хранятся в оперативной памяти и сохраняются на диск либо через равные промежутки времени, либо при превышении определённого количества не сохранённых запросов. Из этого вытекает, что используя Redis, вы можете потерять результаты нескольких последних запросов, что вполне приемлимо для большинства веб-приложений, учитывая, что обращение к Redis по скорости сравнимо с обращением к оперативной памяти. Тем не менее, потерь можно избежать через избыточность — Redis поддерживает неблокирующую master-slave репликацию.

Sharding


Redis, как и Memcached, может работать как распределённое хранилище на многих физических серверах. Такой функционал реализуется в клиентских библиотеках, и к сожалению, «из коробки» этот функционал реализован пока только в Ruby API, однако это не мешает вам хешировать ключ самостоятельно и получать ID сервера, к которому с этим ключом обращаться.

API


API доступно для следующих языков:
  • Ruby
  • Python
  • PHP
  • Erlang
  • Tcl
  • Perl
  • Lua
  • Java


API для PHP доступно как в виде модуля, написанного на C, так и в виде PHP5 класса, который общается с Redis-сервером через сокеты, таким образом не требуется устанавливать модуль.
Кроме того существует PHP5 класс от отечественного разрабочика (с именем, заслуживающим доверия. Я серьёзно.) — IMemcacheClient. (Спасибо DYPA за наводку)

Перспективы развития


Разработка ведётся очень активно, комиты происходят почти каждый день, сейчас доступна версия Redis 0.900 (1.0 release candidate 1), которая очень скоро станет версией 1.0
В ближайшем будущем авторы обещают внедрить разные интересные фичи, в том числе и сжатие данных.

Лицензия и поддерживаемые платформы


Redis — написан на ANSI C и работает на большинстве POSIX-систем (Linux, MacOS X). Это бесплатное открытое ПО под BSD лицензией =)

Up: Rediska — удобный PHP-клиент для key-value базы Redis. Оф.сайт.

Гламурный Traceroute под iPhone

Время на прочтение1 мин
Охват и читатели8.9K
Многие знают отличную утилиту MTR (MyTraceroute) под Linux, которая сочетает в себе преимущества traceoute и ping (под Windows есть вроде бы есть WinMTR, хотя я не пробовал). Это диагностическое средство, чтобы не просто однократно запустить трэйс, а конкретно мониторить качество канала до хоста. Например, её можно запустить на час или два и проследить — был ли хоть один потерянный пакет за это время.

Хабраюзер happybyte (Павел Новиков, основатель белорусского хостинг-провайдера «Экстмедиа») написал программу Nice Trace для iPhone [iTunes link, $0,99], которая по функционалу даже лучше MTR, плюс красочный интерфейс в стиле iPhone с графикой, анимацией, флагами стран и прочими штуками.

Проблемные узлы на экране меняют цвет, в зависимости от процента потерянных пакетов. При потере пакета узел моргает. В общем, не трейс хоста, а целое шоу. Программа работает на удивление быстро (в смысле, не застревает на проблемных узлах).

Памятка евангелиста-II

Время на прочтение2 мин
Охват и читатели597
Цель текста: показать возможные способы конструктивного общения представителей конкурирующих технологий.

Тактика пропаганды нашей платформы

  1. Мы миролюбивы и уважаем другие технологии;
  2. Мы проводим различие между разработчиками конкурирующей платформы и ее пользователями;
  3. Мы никогда не конкурировали с конкурирующей платформой (парадокс? да);
  4. Мы помогаем пользователям конкурирующей платформы в битве за стандарты и открытое ПО вместе с нашими конкурентами;
  5. Мы помогаем пользователям ПО, несовместимого с нашим;
  6. Мы отдали в Open Source множество своих технологий.
  7. Мы предоставили свою технологию для реализации ее на всех операционных системах;
  8. Любовь к качеству во всем мы разделяем с нашими конкурентами;
  9. Наши и ваши технологии велики, и мы уверены в будущем;
  10. У нас общий дух пионеров Web2.0;
  11. Нашими технологиями уже пользуются многие разработчики, которые оказывают влияние на развитие нашей платформы;
  12. Творчество дизайнеров и продукты опенсорс-сообщества (в т. ч. пользователей Линукса) широко используются в наших решениях. Многие наши разработчики вышли из конкурирующего сообщества;
  13. Книги приверженцев конкурирующей платформы популярны в нашей компании и среди наших пользователей. У нас изучают изучают их языки. Примечание: нужно рецензировать новые блоги авторитетных конкурентов и исследования по их технологии , даже если в них нет важного содержания;
  14. Мы публично восхищаемся достижениями конкурирующей платформы и честно признаем ее преимущества;
  15. Мы помогаем всем пользователям и разработчикам, независимо от того, согласны ли они с нашей концепцией;
  16. Мы используем паттерны программирования, и не скрываем, что основной вклад в их развитие положен сообществом Open-Source;
  17. Наши руководители, начальники отделов и многие частные разработчики пытались установить культурный и технический обмен с конкурирующей технологией;
  18. О нашей сущности и сущности свободного мира, основных идеалах, которые мы разделяем с пользователями конкурирующей технологии, дают представление ключевые труды по программированию: Вирт, GoF, Хотя некоторые из этих книг принадлежат к направлению «социального протеста», они показывают веру в социальный прогресс в действии.

Первая часть: Памятка евангелиста-I.

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

Электронное табло 2 или с пользой для общества

Время на прочтение12 мин
Охват и читатели2.7K
Последнее время на Хабре появляется не так много хороших статей о веб-разработке. Но сейчас не об этом.
Иногда хабралюди делятся интересными идеями, но не раскрывают их сути. И может зря. Потому как в ходе написания статьи (описания) замечаешь то, чего не видел раньше, другие ходы и решения, а читающим проще понять идею и дать дельный совет.
Так несколько дней назад на хабре появилась статья «Электронное табло», в которой автор поделился ссылкой на свою поделку, но из-за недостаточного описания статья получилась из разряда — «посмотри, что я сделал».
Насколько инетересней могла быть статья, если бы автор добавил побольше описания. Потому захотелось показать на примере этой статьи, как можно было бы сделать немного лучше, а заодно и поделиться своей реализацией его задачи.
Читать дальше →

Я — альтруист. Напишу для хабрасообщества любой полезный и бесплатный веб-сервис

Время на прочтение1 мин
Охват и читатели1.8K
Здравствуйте, уважаемые хабралюди!
Я профессионально занимаюсь веб-разработкой. И так сложились обстоятельства, что сейчас у меня есть немного свободного времени, а браться за скучные проекты из популярных фриланс сайтов не охота.
И вот мне подумалось, что было бы неплохо сделать что-нибуть социально полезное и бесплатное, только пока не знаю, куда направить свои силы.

Интересует ваше мнение, как людей, продвинутых в сфере информационных технологий: какого бесплатного веб-сервиса не хватает ру-нету? Какого веб-сервиса не хватает в частности Вам?

Я возьмусь создать такой бесплатный веб-сервис для людей, или по крайней мере дать вам ссылку на то что вам нужно :)

Предлагайте.

Написание виртуальной файловой системы на c++

Время на прочтение8 мин
Охват и читатели16K
Еще одна моя запись из песочницы, если будет время то переведу остальные части

Это перевод первой части статьи про написание VFS (виртуальной файловой системы) на c++ которую я нашел достаточно давно. Надеюсь вам понравится. :)
Читать дальше →

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