Про систему Kasseler CMS мало кто слышал, но все же она существует. Документации по системе очень мало, а в документации по плагинам рассмотрены самые простые примеры, которые не дают возможности пользователю увидеть всей силы так называемых хуков. В серии постов хочу продемонстрировать примеры написания плагинов для данной системы.
Читать полностью »
Рубрика «web-разработка» - 46
Написание плагина для Kasseler CMS [часть 1]
2013-05-24 в 19:28, admin, рубрики: cms, php, web-разработка, Веб-разработка, метки: cms, PHP, web-разработкаДелаем безопасную загрузку изображений
2013-05-22 в 6:45, admin, рубрики: php, security, web-разработка, защита, изображения, метки: PHP, security, web-разработка, защита, изображенияКак показывает практика — загрузка файлов (и в частности изображений) без надлежащего контроля приводит к образованию уязвимостей. В этой публикации рассмотрим практическую реализацию одного из вариантов безопасной загрузки изображений на сервер. Исходная постановка задачи предполагает возможность загрузки пользователем изображения на сервер и возможность дальнейшего его просмотра.
Для начала кратко основные шаги:
— производим отправку изображения с использованием XMLHttpRequest;
— проводим проверку загруженных данных на сервере на предмет «действительно ли это изображение»;
— проводим принудительное преобразование изображения в jpeg
Читать полностью »
Кейт Мэтсудейра: Масштабируемая Веб-архитектура и распределенные системы
2013-05-21 в 19:20, admin, рубрики: distributed computing, open source, web-разработка, высокая производительность, масштабирование, переводы, метки: distributed computing, web-разработка, масштабированиеЧетыре месяца назад ребром встал вопрос о тексте для моего дипломного перевода. Результатом помощи коллективного разума стало решение переводить главу Scalable Web Architecture and Distributed Systems за авторством Kate Matsudaira. Нужно отметить, что это мой первый перевод такого объема и сложности. Текст, был мною относительно успешно переведен, хотя по качеству перевода я поставил бы себе 6-7 из 10. Дабы мои усилия не пропали втуне, публикую результат своих трудов.
Блокировки сессий в веб-проектах — выбираем эффективное оружие
2013-05-16 в 7:53, admin, рубрики: Apache, php, php-fpm, web-разработка, Блог компании 1С-Битрикс, Веб-разработка, системное администрирование, метки: apache, PHP, php-fpm, web-разработкаВсем привет!
В последнее время, в связи с бурным ростом и усложнением фронт-эндов, аяксами и т.п. — все чаще проявляется проблема блокировки сессий во время эксплуатации сайтов на PHP. PHP по умолчанию создает для сессии файл и процесс эксклюзивно его блокирует. Остальные процессы, пытающиеся открыть сессию (аяксы, табы в браузере) — выстраиваются в очередь. Не всегда логика приложения, особенно если она сложная, позволяет эффективно ограничить время блокировки конкурирующих за сессию процессов.
Ситуация усугубляется еще тем, что 3-5 подобных клиентов способны быстро забить зависшими и простаивающими в ожидании процессами PHP-воркеры и сайту становится плохо, если не сказать очень.
К сожалению, разработчики/сисадмины не всегда могут сразу понять, что дело в блокировке сессии — и ищут проблемы в других частях проекта, теряя время.
В статье расскажу какие инструменты позволяют быстро диагностировать проблему, приведу работающий код и дам несколько боевых рекомендаций по выживанию :-)
JIRA: создание плагинов. Особенности фреймворка
2013-05-06 в 8:49, admin, рубрики: java, jira, web-разработка, Веб-разработка, плагины, метки: jira, tutorial, web-разработка, плагины Приветствую всех.
Эта статья поможет начинающим в области веб-программирования научиться писать плагины под JIRA. Сам в начале работы с этой системой столкнулся с тем, что, во-первых, нет ни одного достаточно подробного и русскоязычного гайда. А во-вторых, большая часть статей рассчитана на достаточно опытных людей.
Для начала, я рассмотрю основные моменты и ошибки при создании плагинов, а так же структуру JIRA плагина, что сильно упростит задачу начинающему веб-программисту.
Читать полностью »
Модифицируем Chrome Logger — пост как стимул к изучению расширений Google Chrome и написанию своих
2013-05-05 в 1:53, admin, рубрики: chrome extensions, Google Chrome, php, web-разработка, Веб-разработка, метки: chrome extensions, PHP, web-разработка В своем комментарии: habrahabr.ru/post/177709/#comment_6169843 я описал проблему расширения из соответствующей статьи, кроме редиректов также есть проблемы с выводом логов AJAX запросов и возможно в некоторых случаях с iframe заголовками.
Я решил разобраться почему это происходит и понял, что то мое утверждение было слишком категоричным. После того как webRequest перестал быть экспериментальным developer.chrome.com/extensions/experimental.webRequest.html теперь можно писать логеры «на заголовках» обрабатывающие все, ранее проблемные, ситуации. Я не ставлю своей целью разобрать все такие ситуации, просто хотел бы показать — как можно модифицировать расширение Chrome Logger для решения части вышеуказанных проблем и возможно заинтересовать желающих разобраться с расширениями Google Chrome на простом примере. Может быть у кого-то после прочтения поста возникнет желание написать свое расширение.
Читать полностью »
Хостинг одностраничных сайтов
2013-05-04 в 14:58, admin, рубрики: web-разработка, веб-дизайн, Песочница, сайт, сайтостроение, хостинг, метки: web-разработка, веб-дизайн, сайт, сайтостроение, хостингЗапустили svsite.com — сервис для размещения сайтов из одной страницы. Очень удобно, когда нужно быстро поднять сайт или html5-приложение. Для сайтов-визиток — вообще идеальный вариант. Одностраничные сайты сейчас в тренде.
Что сейчас можно делать:
- Редактировать исходный код сайта (html, css, javascript) с подсветкой синтаксиса.
- Править содержание страницы с помощью WYSIWYG-редактора прямо на сайте. Чтобы редактировать текст на сайте, нужно поместить его в html-тег с любым id и css-классом sv. С тегом <img> такое тоже работает — появляется меню загрузки изображения.
- Читать полностью »
Автоматизация тестирования Web-приложений
2013-04-29 в 18:04, admin, рубрики: .net, bdd, Gangnam Style, nunit, specflow, tdd, web-разработка, webdriver, приёмочные тесты, разработка, тестирование, метки: .net, bdd, gangnam style, nunit, specflow, tdd, web-разработка, webdriver, приёмочные тесты
Автоматизация тестирования – место встречи двух дисциплин: разработки и тестирования. Наверное поэтому, я отношу эту практику к сложным, но интересным.
Путем проб и ошибок мы пришли к следующему технологическому стеку:
- SpecFlow (опционально): DSL
- NUnit: тестовый фреймворк
- PageObject + PageElements: UI-абстракиця
- Контекст тестирования (информация о целевом окружении, пользователях системы)
- Selenium.WebDriver
Для запуска тестов по расписанию мы используем TFS 2012 и TeamCity.
В статье я опишу, как мы к этому пришли, типовые ошибки и пути их решения.
Читать полностью »
Разработка веб-приложений в PicoLisp
2013-04-28 в 12:51, admin, рубрики: web-разработка, Веб-разработка, функциональное программированиеЧитатели предыдущей статьи Радикальный подход к разработке приложений могли справедливо заметить, что статья слишком теоретическая. Поэтому спешу восстановить баланс
добра и златеории и практики.Эта статья раскрывает лишь верхушку айсберга под названием picoLisp. За бортом остались интересные моменты, касающиеся внутренностей базы данных, организация распределенной БД, отладка, функциональный I/O, объектная модель с множественным наследованием, PicoLisp Prolog…
Я всё-таки надеюсь, что отечественные программисты присмотрятся к этому мощному инструменту.
Осторожно, под катом много текста и скобок!
Создание графической капчи с выбором лишнего варианта
2013-04-24 в 7:33, admin, рубрики: php, web-разработка, Веб-разработка, капча, метки: PHP, web-разработка, капча
На работе потребовалось решить проблему со спамом, так как старую капчу легко обходили спамботы. Погуглив и не найдя нужных вариантов, решил написать свой, да и давно хотелось, если честно.
И так, суть капчи в том, что пользователю отображается несколько иконок и необходимо выбрать ту, которая логически не вписывается в общий ряд. Думаю в интернете таких вариантов море, но я не нашел (ну если честно не особо то и искал).
Читать полностью »