Обновить
465.5

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

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

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

япона-капча

Время на прочтение1 мин
Охват и читатели1.1K
imageДа-да, то что вы видите на картинке — каптча.
История рождения этого плода больного воображения чуда техники такая: давным-давно, уже не помню сколько лет назад я посмотрел какой то американский боевик, в котором у главного героя был чудо-компьютер, авторизация на котором происходила не привычными нам логином-паролем, а путем собирания иероглифа. Идея мне очень понравилась, но я тогда еще был далек от программирования, и все это как-то забылось. Но вот недавно, прочитав несколько топиков на Хабре о том, как с легкостью «ломают» привычные каптчи, мелькнула безумная мысль — а почему бы и не сделать каптчу-иероглиф?
сказано - сделано

Новая жизнь без IE6

Время на прочтение1 мин
Охват и читатели591
Данная тема основана на теме Жизнь без IE6 пользователя mobilz

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

Основные моменты:
Добавлены ссылки на счетчик LiveInternet для предоставления пользователям объективных сведений о доле браузера Internet Explorer 6 в сети интернет. Обновлены версии используемых на странице браузеров, а также ссылки на основные моменты, которые могут быть непонятны пользователям (например выражение «Гик»).
В результате получилось

Хранение кода в бд или собираем код по кирпичикам

Время на прочтение7 мин
Охват и читатели11K
Данная статья написана Napolsky. По известным причина он не смог ее опубликовать. Если статья вам понравилась — поощрите автора известным способом.

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

Как все начиналось


Для того чтобы понять, а «зачем оно собственно надо» быстренько пройдем тот путь, который и привел меня к хранению кода в бд. Так сложилось, что свой путь в веб программировании я начинал не с написания каких-либо скриптов или модулей для существующих систем, а сразу с написания собственного движка сайта с абсолютного нуля. К этому моменту я имел двухлетний опыт программирования на C++ и, конечно же, по накатанной пытался строить свой веб движок на ООП (правда в то время в PHP от ООП было одно название :) ). В пределах разумного, я очень люблю свои «велосипеды». Особенно большие. И прежде чем воспользоваться готовым решением, всегда задаюсь вопросом «а нельзя ли написать получше?».
Читать далее

Новые проблемы верстальщиков

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

С какой же?

Обеспечение безопасности веб-сайтов

Время на прочтение1 мин
Охват и читатели21K
В хелпе Яндекса для веб-мастеров выложили отличнейшую структурированную статью по защите сайтов от разнообразного вида атак и уязвимостей. Там и прозащиту от sql-инъекций, и хороший php код, настройки сервера, кукисы, авторизацию и много другого интересного. Для гуру конечно пшик, но кто же из гуру не был когда то новичком? Да и освежить мозги — никогда не помешает =)

Добрый день!

Чтобы помочь вебмастерам в обеспечении безопасности их веб-сайтов, предлагаем перевод статьи от компании Sophos: help.yandex.ru/webmaster/?id=1071330

Статья написана в конце 2007 г., но все описанные в ней методы активно используются до сих пор. В статье рассматриваются способы компрометации веб-серверов и методы противодействия им. Последовав приведенным рекомендациям, можно существенно снизить риск проведения успешной атаки на веб-сервер. Это позволит вам избежать заражения посетителей вашего сайта, падения трафика с поисковых систем и возможных проблем с индексацией (например, в тех случаях, когда на страницах сайта хакеры размещают скрытый текст с множеством ссылок).

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

С уважением, команда сервиса Яндекс.Вебмастер.

Языко-ориентированное программирование в действии. Примеры реального кода на JetBrains MPS

Время на прочтение2 мин
Охват и читатели4.1K
Вчера на хабре я опубликовал свою статью про языко-ориентированное программирование, в которой описал, какие проблемы существуют в этой области, и как их решает систем JetBrains MPS. Сегодня я хочу показать реальные примеры того, как выглядит код в MPS, с небольшими комментариями. Мы посмотрим на язык для работы с базами данных, на язык для создания веб интерфейса, на наш javascript. Фрагменты кода взяты из приложения баг-трекера с кодовым именем Charisma, написанного на MPS.

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

Партиционирование таблиц в mySQL

Время на прочтение4 мин
Охват и читатели197K
Начиная с версии 5.1 mySQL поддерживает горизонтальное партицирование таблиц. Что это такое? Партиционирование (partitioning) — это разбиение больших таблиц на логические части по выбранным критериям.. На нижнем уровне для myISAM таблиц, это физически разные файлы, по 3 на каждую партицию (описание таблицы, файл индексов, файл данных). Для innoDB таблиц в конфигурации по умолчанию – разные пространства таблиц в файлах innoDB (не забываем, что innoDB позволяет настраивать индивидуальные хранилища на уровне баз данных или даже конкретных таблиц).

Как это выглядит?

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

Жизнь без IE6

Время на прочтение1 мин
Охват и читатели1.4K
При обновлении очередного проекта решил полностью забить на IE6. Его доля сильно падает, а времени на оптимизацию под этот браузер уходит достаточно много. Сначала всё же хотел оптимизировать сидеть, но потом решил что моё время дороже. Не смотря на то, что верстаю уже давно, IE всегда преподносит что-то новое =) Да и профиль не мой немного.
Однако совесть не позволяла выгрузить простой текст типа «обновите браузер», хотелось сделать доступно и понятно. Сделал, получилось приятно, настолько приятно, что захотелось поделиться =) Владельцы IE6 принудительно видят такую картину, при попытке обратиться к любой станице сайта
image
Читать дальше →

Как система JetBrains MPS позволяет достичь более широкого использование DSL-ей (языков специфичных для предметной области)

Время на прочтение6 мин
Охват и читатели10K
DSL-и (domain specific languages или языки для специфичных областей) известны программистам давно. Несмотря на это, они редко используются в реальных системах. В этой статье будет рассмотрено, что такое DSL-и, и почему они не получили широкого распространения. Также будет описано, как система JetBrains MPS решает проблемы, препятствующие их широкому использованию.
Читать дальше →

HTML 5: Microdata

Время на прочтение3 мин
Охват и читатели10K
image
HTML 5 продолжает удивлять нас своими возможностями. Вот еще одна.

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

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

Firefox 3 — самый популярный браузер рунета

Время на прочтение1 мин
Охват и читатели1.7K
Пару дней назад Firefox 3 обогнал IE7 в статистике Liveinternet и является теперь самым популярным браузером в российской части интернета. Интересно было бы увидеть статистику по сервисам Яндекса.

image

Понятно, что это связано с разделением доли IE6 между IE7 и IE8, но я все равно рад.

Еще удивляет количество пользователей оперы. Причем, похоже, это не гиковская часть пользователей (они давно поставили бы 10 beta). Update: Оказалось, что опера 10 beta идентифицируется как 9.80.

11:30 — пост опубликован
12:00 — вялые минусы. пост никому не интересен
13:00 — попытки конструктивного обсуждения сухой статистики
18:00 — пост попадает на главную
19:10 — начинается холивар!
4 августа 2009, 12:11 — подтасовка статистических данных в пользу Оперы

Что такое транзакционная память и чем она полезна

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

Вышел первый номер журнала «Практика функционального программирования»

Время на прочтение1 мин
Охват и читатели1.2K
image«Вашему вниманию представляется первый выпуск журнала, посвящённого практике функционального и декларативного программирования. Мы ставим своей задачей помочь вам сориентироваться в инструментарии функционального программирования, в используемых в функциональной парадигме подходах к декомпозиции задач, способах упрощения программирования и снижения количества дефектов в разрабатываемых системах.»

Так начинается первый выпуск нового электронного журнала «Практика функционального программирования», о котором я узнал из RSS-каналов. Материал подобран интересный, в журнале есть что почитать. Вообще, инициатива — отличная, думаю нужно поддержать. Собственно, поэтому и знакомлю Хабр с журналом.

Страница первого выпуска fprog.ru/2009/issue1
Прямая ссылка на выпуск fprog.ru/2009/issue1/practice-fp-1-screen.pdf (pdf)

PS: Удачи авторам!

PPS: оказывается, анонс выпуска на хабре уже был. Информация здесь может быть полезна только тем, кто его пропустил (как я).

Скоростная валидация (на примере сайта habrahabr.ru)

Время на прочтение2 мин
Охват и читатели993
Валидация. О её достоинствах/недостатках, необходимости/ненужности, актуальности/неактуальности и прочем, и прочем… можно спорить бесконечно :) Для себя я вывел одно неоспоримое правило (очень простое): когда я вижу в правом нижнем углу Firefox'а такой значок —

валидацию не прошёл

я точно могу знать, что ошибка где-то в незакрытом тэге, некорректном расположении блоков или, например, неправильно названном атрибуте… или ещё в чём-то, что реально влияет на производительность/функциональность/отображение (нужное подчеркнуть). У меня не возникает ленивых размышлений из серии: «А, ну это ж валидатор… Что-то там ему опять не понравилось… Можно забить».

На самом деле, при отсутствии каких-либо средств, так сказать, «дебаггинга» html-разметки, валидатор — отличный способ избежать глупых ошибок и отловить их быстро и безболезненно. (Казалось бы, прописные истины, но почему-то об этом часто забывают… Меня удивляет, как те же программисты частенько пренебрежительно относятся к валидации html и в очередной раз пишут, к примеру, значение атрибута без кавычек — при переносе верстки в шаблон. Казалось бы, кому же ещё сознавать значение соблюдения правил синтаксиса и всяких формальностей, как не кодерам?)

Но вернёмся к нашему заголовку…
Читать дальше →

О флеш-баннерах

Время на прочтение2 мин
Охват и читатели2.2K
Когда я вижу баннер, который меня интересует — я всегда на него кликаю. Но по-разному:

1) Если сайт, на котором расположен баннер, мне неинтересен — кликаю левой кнопкой мыши. Иногда, конечно раздражает, что открывается новая вкладка или, не дай Бог, новое окно. Но это не самое страшное.

2) Если сайт, на котором расположен баннер — хороший и интересный — то мне не хочется открывать его в этой же вкладке. И я кликаю колёсиком мышки. И что происходит? Ни-че-го. Тогда я кликаю правой кнопкой, чтобы выбрать «открыть в новой вкладке». И что происходит? Мне показывается «About Flash Player» и ещё пара пунктов, которыми я ещё никогда в своей жизни не пользовался (и даже не могу представить ситуацию, когда эти пункты мне понадобятся). Что же я делаю, чтобы всё-таки посмотреть на то, что рекламирует баннер? Обычно — ни-че-го (если, конечно, там не «предложение, от которого вообще нельзя отказаться»).
Читать дальше →

Непонимание разметки. Комикс про XHTML 2 и HTML5

Время на прочтение1 мин
Охват и читатели2K
image
С выходом HTML 5 и анонсом W3С о прекращении разработки XHTML 2 в конце 2009 года начались активные дебаты по поводу будущей «правильной разметки». XHTML 1.0, XHTML 2, HTML 4, HTML 5 и XHTML 5 — за всем этим тяжело уследить.

Теперь, когда XHTML 2 перестал маячить на горизонте, какой синтаксис выбрать? Остаться на XHTML 1.0, или двинуться вперед на HTML 5? А может, вернуться к старому доброму HTML 4? Этот комикс немного все проясняет.

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

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