Обновить
352.33

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

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

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

Программирование — не отстой! По крайней мере, не должно быть им

Время на прочтение5 мин
Количество просмотров9.2K
Перевод статьи из блога Enfranchised Mind.

Недавно мне на глаза попалось два текста, на которые я просто не мог не ответить. Первый, самый ужасный, — это статья на Daily WTF «Программирование — отстой! Или что-то вроде того». Второй — пост о том, почему функциональное программирование не получает распространения.

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

7 простых способов протестировать кроссбраузерную совместимость

Время на прочтение4 мин
Количество просмотров73K
Эта статья предназначена для дизайнеров, верстальщиков, разработчиков и всех остальных людей, бьющихся с тестированием сайтов в нескольких браузерах.

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

В этой статье, мы рассмотрим 7 простых инструментов для тестирования кроссбраузерной совместимости; инструментов, которые справляются со своей задачей очень легко, и к тому же, каждый из этих инструментов можно использовать бесплатно.
Читать дальше →

«Ошибки в ДНК» или как неправильный дизайн может приводить к миллионным убыткам

Время на прочтение4 мин
Количество просмотров5.1K
Написать эту заметку меня побудили очередная статья с «криком души»: ну почему Windows в очередной раз требует перезагрузки при изменении чего-либо (обычно это установка/удаление программ, но бывают и другие случаи)? Почему разработчики Windows-приложений — такие лохи, а разработчики Linux-программ (где таких сообщений при установке «обычных программ» не бывает) — такие молодцы?

Этот феномен всем давно известен — но задумывались ли вы о том откуда у него «ноги растут» и почему в других операционных системах (Linux, MacOS X и т.п.) подобные окна являются чем-то исключительным, а в Windows — постоянным?
Читать дальше →

Safari 4 Beta

Время на прочтение1 мин
Количество просмотров891
Внезапно, вышла бета Safari 4 для Windows и Mac.



Новая версия изменена очень серьёзно. Во-первых, внутри теперь стоит новый движок JS, по скорости сравнимый с Google Chrome (так что внутри у двух браузеров стоят одинаковые движки отображения и очень похожие — по крайней мере, по скорости — движки скриптования).

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

Для режима «speed dial» Apple сделала свое красивое решение с 12 табами:
Читать дальше →

Правила составления Software requirements specification

Время на прочтение5 мин
Количество просмотров204K
Все мы прекрасно знаем о том, как разрабатывается ПО. Подумали 10 минут и сразу пошли кодить. Цикл создания программного обеспечения состоит из многих ключевых моментов. Это такие моменты как планирование, создания архитектуры, создание SRS, создание дизайна и тд и тп.

В данной статье я бы хотел остановиться на том, как правильно нужно писать SRS.

Программирование — отстой! Или что-то вроде того

Время на прочтение8 мин
Количество просмотров14K
Предлагаю вниманию читателей перевод статьи "Programming Sucks! Or At Least, It Ought To", опубликованной в «The Daily WTF». Публикация рассказывает о том, как избыток профессионализма на практике мешает эффективности и предназначена скорее для опытных разработчиков, нежели для новичков.
Читать дальше →

Организация видеотрансляции на сайте

Время на прочтение4 мин
Количество просмотров20K
Всем привет.

Боремся с пробками вместе


В рамках этого проекта в г. Красногорск, мы решили установить пару сетевых камер и сделать удобным просмотр потокового видео. Забегая вперед, результат можно посмотреть на нашем сайте или с мобильного телефона по wap www.ventumnet.ru/camera


Читать далее

Определение нечетких дубликатов для коротких документов

Время на прочтение3 мин
Количество просмотров7.4K
Хочу поделиться простым, но эффективным алгоритмом определения нечетких копий документов. Есть много статей об использовании для этой цели алгоритма шинглов. Ходят слухи, что большие поисковые системы используют очень похожий алгоритм у себя. Однако, все признают, что шинглы плохо подходят для коротких (3-5 предложений) документов. А в моей задаче надо было работать именно с такими документами. В качестве решения предлагают закольцовывать текст, чтобы как бы сделать из него длинный, но мне кажется, что это не очень правильное решение, точность распознавания дублей все равно будет низкая.

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

Пуленепробиваемый HTML: 37 шагов к идеальной разметке

Время на прочтение11 мин
Количество просмотров20K
Примечание: это не полный перевод статьи. Я выбрал только самые интересные лично для себя пункты. Статья не претендует на свежесть, но возможно даже люди хорошо знакомые с версткой найдут для себя что-то интересное. Статья затрагивает некоторые аспекты семантики верстки с конкретными примерами.

Под катом много букв! Чтоб не потеряться в их обилии все пункты выделены заголовками.
Читать

JS Charts — генератор графиков и схем.

Время на прочтение1 мин
Количество просмотров16K
image
JS Charts является бесплатным JavaScript-генератором графиков и схем, который требует минимум знаний программирования. С JS Charts рисование диаграмм становится простой и легкой задачей. Он не требует никаких дополнительных плагинов и серверных модулей. Просто подключите скрипты, подготовьте данные для схемы в XML или массиве JavaScript и ваша таблица готова.
Читать дальше →

Кроссбраузерная одноцветная полупрозрачность

Время на прочтение3 мин
Количество просмотров13K
В этой статье я рассмотрю метод создания блоков с одноцветным полупрозрачным фоном.
Например, таких:


Сразу оговорюсь, что я не буду использовать opacity и абсолютное позиционирование, чтобы разместить контент поверх полупрозрачного блока.
Читать дальше →

Разработка модуля для Apache 2.x

Время на прочтение16 мин
Количество просмотров12K

Предисловие



Недавно мне пришлось столкнуться с необходимостью разработать собственный небольшой модуль для веб-сервера Apache 2.2.x. Проведя несколько часов в поисках подходящей информации, я столкнулся с тем фактом, что по-русски об этом мало кто рассказывает. Поэтому и возникла идея написать эту статью. Ниже я постараюсь как можно подробнее поделиться накопленным опытом, пошагово описать этапы создания модуля и приведу различные полезные ссылки по данной теме.

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

Firebug: Part 2 — commands

Время на прочтение2 мин
Количество просмотров1.7K
Это продолжение серии статей про Firebug.

Весь цикл: Console, Commands, Debugging ,Profiling

Firebug имеет приятную особенность — собственные функции.
Некоторые из них вам уже встречались, например в Prototype.
И чтобы вы не сомневались в том, что все честно, то мы продолжим мучать домашнюю страничку Firebug, т.к. на ней нет подключенных js файлов.

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

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

Firebug: Part 1 — console

Время на прочтение2 мин
Количество просмотров7.9K
Данной статей я хочу начать серию, посвященную всеми любимому Add-on к Firefox под названием Firebug.

Весь цикл: Console, Commands, Debugging ,Profiling

Я постараюсь раскрыть известные и не очень его возможности, которые могут пригодиться любому Web-разработчику(а могут и не пригодиться, но это врядли).

Если у вас его еще нету, то можно скачать со страницы http://getfirebug.com.

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

Методы защиты веб-формы без капчи

Время на прочтение3 мин
Количество просмотров62K

О чём речь?


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

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

В этом обзорном посте я бы хотел рассмотреть незаметные для пользователя методы защиты от ботов.

Методы защиты


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

Баги IE. Часть 1. Наличие или отсутствие hasLayout

Время на прочтение10 мин
Количество просмотров12K
Этим постом я планирую начать серию статей о багах IE и возможных вариантах их исправления. Цикл статей решил написать в первую очередь для себя, дабы как-то систематизировать и сохранить свои знания, но я надеюсь, что он будет полезен как новичкам так и опытным верстальщикам.

Первым постом хочу затронуть одно из фундаментальных понятий при исправлении багов IE — hasLayout.
Читать дальше →

25 самых опасных ошибок в программировании

Время на прочтение8 мин
Количество просмотров2.9K
Всем привет.
Под катом — перевод статьи Джеффа Атвуда, в которой он приводит список 25 наиболее опасных ошибок в программировании от Common Weakness Enumeration со своими комментариями.

Сразу хочу сказать. Большинство ошибок, перечисленных там — общеизвестны и многим набили оскому. Несмотря на это, мы продолжаем вновь и вновь наступать на те же грабли. И я в том числе.
Однако, поехали

Типы HTTP-запросов и философия REST

Время на прочтение4 мин
Количество просмотров1M
Этот пост — ответ на вопрос, заданный в комментарии к одной из моих статей.

В статье я хочу рассказать, что же из себя представляют HTTP-методы GET/POST/PUT/DELETE и другие, для чего они были придуманы и как их использовать в соответствии с REST.
Читать дальше →

Проверка орфографии с помощью Google

Время на прочтение2 мин
Количество просмотров15K
Иногда в проекте требуется проверить данные на предмет орфографических ошибок, не полагаясь на познания пользователя по части языков. Тут нам сможет помочь компания Google, с таким их сервисом, как проверка орфографии, используемым в Google Toolbar. Но, к сожалению, Google не предоставляет открытого API для работы с ним.

Итак, краткое описание:
Для того, чтобы проверить текст нам нужно отослать его в POST на https://google.com/tbproxy/spell?lang=ru, где для смены языка следует заменить значение параметра lang на соответствующий по ISO 3166-1 alpha-2. Текст оформляется в XML вида:
<?xml version="1.0" encoding="UTF-8" ?><br/>
<spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1"><br/>
 <text>Текст для проверки</text><br/>
</spellrequest>
ignoredups — подсветка повторов
ignoredigits — считать цифры ошибками
ignoreallcaps — не проверять слова написанные капсом (подсказал pointum)

Если всё успешно, мы получаем ответ вида
<?xml version="1.0" encoding="UTF-8"?><br><spellresult error="0" clipped="0" charschecked="272"><br> <c o="27" l="13" s="0"></c><br> <c o="73" l="11" s="1">орфографии и орфографии</c><br> <c o="190" l="11" s="1">пользоваться</c><br> <c o="226" l="13" s="0">пред оставляет пред-оставляет</c><br></spellresult>
Атрибуты тега spellresult:
error — произошла ли ошибка
charschecked — количество проверенных символов

В нем идет перечисление допущенных ошибок (теги c), их параметры:
o — начало исходного слова в тексте
l — длина этого слова
s — точность результата

В самом теге c содержатся предполагаемые варианты написания слов, разделенные символом \t.

P.S. Когда этот текст уже был написан, случайно наткнулся на статью в блоге Paul Welter, которая, в принципе, описывает тоже самое…


UPD: Пользователь wayly написал на PHP класс для проверки текста с помощью этого сервиса, скачать можно по ссылке proxysoft.ru/files/spellchecker.zip (зеркало).

UPD2: mezhevikin подсказал ajax-решение с использованием этого сервиса — orangoo.com/labs/?page_id=3

UPD3: Список поддерживаемых языков

_________
Текст подготовлен в ХабраРедакторе
Код подсвечен в Source Code Highlighter

Кунг-фу: стиль JavaScript

Время на прочтение5 мин
Количество просмотров2.2K
Эта статья начиналась как комментарий к другой статье на habrahabr. После написания первого листа, я понял, комментарий слишком обширный получился :). Я решил написать, потому что хочу заострить внимание на моментах, которые, на мой взгляд, были упущены. Ограничение этой статьи — моя цель изложить всё максимально доступно, не ищите здесь математической точности в определении терминов, и всё же я прилагаю ссылки где математики найдут высококлассные понятные только им определения :)

Наверно каждую статью по JS принято начинать со слов о его недооцененности :) Это правда :) Когда я пару лет назад говорил о том что JS мой любимый язык на меня смотрели, как на школьника-переростка, который только что написал свою первую страницу на HTML, а те кто меня знал, как на гроссмейстера, который сказал что он только и знает как фигуры ходят :). Таких людей не стало намного меньше, увы :(

Итак, ...

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