Как то в последнее время я начал активно повышать свои навыки и знакомиться не только и не столько с новыми технологиями. Например, я уже более-менее освоил Java, а именно — занимаюсь сетевыми сервисами. Также начал работать с ActionScript 3, хотя мое мнение относительно применимости в AJAX-приложениях Flash-компонентов не изменилось — их надо использовать там, где они дают максимальное преимущество, а вот вся «обвязка», например, интерфейс пользователя, можно сделать при помощи стандартных технологий. При разработке AJAX-приложений у разработчика есть достаточно большой выбор для решения задачи обмена данными с сервером. В основном, общение с сервером заключается в…
Виталий @kraY
Пользователь
jQuery для начинающих. Часть 4. Селекторы
11 min
216KПоследнее время мне всё чаще задают вопрос как выбрать тот или иной элемент в DOM'е, и данный пост будет сплошь посвящен селекторам в jQuery, возможно большинство из них Вы видели в различных источниках, но собрать их воедино все же стоит…
+75
Кроссбраузерная одноцветная полупрозрачность
3 min
13KВ этой статье я рассмотрю метод создания блоков с одноцветным полупрозрачным фоном.
Например, таких:
Сразу оговорюсь, что я не буду использовать opacity и абсолютное позиционирование, чтобы разместить контент поверх полупрозрачного блока.
Например, таких:
Сразу оговорюсь, что я не буду использовать opacity и абсолютное позиционирование, чтобы разместить контент поверх полупрозрачного блока.
+180
Ограничение скорости скачивания файлов средствами PHP
3 min
17KИногда появляется необходимость ограничивать скорость скачивания файлов пользователями. Причин тому может быть множество (бесплатный и платный режимы, регистрация пользователя и т.д.), однако не всегда есть возможность приобрести сервер или настроить его должным образом. В данном топике предлагаю переложить задачу на плечи чистый PHP.
+22
Современная отладка JavaScript
12 min
26KTranslation
В связи с достаточно широким выбором неплохих отладчиков, JavaScript-программисты могут получить достаточно много пользы, изучая то как их можно использовать. Их пользовательские интерфейсы становятся все более совершенными, более стандартизированными между собой и более легкими в использовании, что делает их полезными как для экспертов так и новичков в отладке JS. В этой статье мы обсудим передовые методы отладки для диагностики и анализа ошибок, используя типичное веб-приложение.
В настоящее время средства отладки доступны для всех основных браузеров.
На данный момент Firebug и Dragonfly наиболее стабильны. Утилиты IE8 иногда игнорируют контрольные точки, а во время написания этой статьи WebInspector имеет некоторые проблемы совмстимости с последними билдами Webkit.
Изучите несколько средств отладки — вы никогда не знаете, в котором браузере возникнет следующая ошибка. Так как отладчики примерно сопоставимы в функциональных возможностях, между ними легко переключиться, как только вы разберетесь как использовать хотя бы один.
В настоящее время средства отладки доступны для всех основных браузеров.
- Firefox имеет хорошо известное расширение Firebug
- IE8 выпускается со встроенными Developer Tools
- Опера 9.5+ поддердивает отладчик Dragonfly
- У Safari есть JS-отладчик Drosera и DOM-вьювер WebInspector. В более свежих версиях отладчик интегрирован в WebInspector.
На данный момент Firebug и Dragonfly наиболее стабильны. Утилиты IE8 иногда игнорируют контрольные точки, а во время написания этой статьи WebInspector имеет некоторые проблемы совмстимости с последними билдами Webkit.
Изучите несколько средств отладки — вы никогда не знаете, в котором браузере возникнет следующая ошибка. Так как отладчики примерно сопоставимы в функциональных возможностях, между ними легко переключиться, как только вы разберетесь как использовать хотя бы один.
+71
Архитектура CMS
8 min
18KИмея более чем достаточно времени, увлекся я размышлениями о создании гибкой, многофункциональной, но относительно простой CMS для программистов и её конфигураторов-пользователей. Некоторые идеи были навеяны потенциальными возможностями CMS Drupal. И вот теперь, увлеченный уже реализацией идей и имея успешные промежуточные результаты, я решил рассказать об архитектуре создаваемой CMS. По ходу прочтения общая картина возможностей CMS должна прорисовываться сама, во всяком случае, для программистов:)
Архитектура создаваемой системы основана на модульном принципе. CMS полностью строится из модулей, как детский домик из кубиков. С целью достижения гибкости и простоты взаимодействия модулей, необходимо было достичь минимальных действий для использования модулей любым компонентом системы без необходимости создания жестких связей, а также сделать возможность легкого расширения действий модулей с помощью других модулей.
Архитектура CMS
Архитектура создаваемой системы основана на модульном принципе. CMS полностью строится из модулей, как детский домик из кубиков. С целью достижения гибкости и простоты взаимодействия модулей, необходимо было достичь минимальных действий для использования модулей любым компонентом системы без необходимости создания жестких связей, а также сделать возможность легкого расширения действий модулей с помощью других модулей.
+23
Программное управление FLV
2 min
2KЗдравствуйте.
Программное управление FLV видео можно осуществить при помощи NetStream.
Для начала создадим в библиотеке новый символ — видео. Далее перетаскиваем его на сцену и этот пустой квадратик будет служить нашим контейнером куда мы будем загружать наша видео. Устанавливаем его размеры соответственно размерам видео, которое собираемся проигрывать. Назовем символ videoContainer.
+3
Eclipse PDT — Zend for Eclipse своими руками
2 min
7.6KС выхода в свет последней версии Zend прошло уже немало времени, а на Хабре регулярно проскакивали дискуссии о том, что же лучше — Zend for Eclipse или Eclipse PDT, в которых я неизменно принимал участие. Нынче я позволю себе потревожить публику своим взглядом на предмет, расскажу про всяческие плагины и вы сами сможете решить, что вам нужнее.
+49
Рекурсивные шаблоны в XSLT
12 min
12KПривет всем!
Хочу рассказать о применении рекурсивных шаблонов в XSLT, так как многие начинающие работать с XSLT встречаются с задачами, которые требуют их применения и не знают, как такие задачи решать.
Возьмем пару обычных примеров:
1. Имеется нода со строкой, ее необходимо разбить на части по определенному символу (в нашем случае возьмем символ пробела) и каждую часть разукрасить в разные цвета.
2. Сделаем вывод номеров страниц (pager) исходя из того, что нам известно общее количество объектов (например, тем форума), количество объектов на странице и номер страницы, на которой мы в данный момент находимся.
Хочу рассказать о применении рекурсивных шаблонов в XSLT, так как многие начинающие работать с XSLT встречаются с задачами, которые требуют их применения и не знают, как такие задачи решать.
Возьмем пару обычных примеров:
1. Имеется нода со строкой, ее необходимо разбить на части по определенному символу (в нашем случае возьмем символ пробела) и каждую часть разукрасить в разные цвета.
2. Сделаем вывод номеров страниц (pager) исходя из того, что нам известно общее количество объектов (например, тем форума), количество объектов на странице и номер страницы, на которой мы в данный момент находимся.
+57
Оптимизация MySQL запросов
4 min
125KВ повседневной работе приходится сталкиваться с довольно однотипными ошибками при написании запросов.
В этой статье хотелось бы привести примеры того, как НЕ надо писать запросы.
В этой статье хотелось бы привести примеры того, как НЕ надо писать запросы.
+121
«Совершенный Ajax» – новый подход к построению настоящих клиент-серверных web-приложений
11 min
10K «Совершенный Ajax» — новый подход к построению web-приложений, при котором web-сервер не генерирует ни строчки HTML-кода и взаимодействует с внешним миром только посредством web-служб; а клиентский интерфейс реализуется только на основе клиентских HTML, CSS, JavaScript.
Статья состоит из двух частей. В первой части — более живой и провокационной я постараюсь заинтересовать проблемой, рассказать о технологии «Совершенный Ajax» и показать ее применение на примере нашего проекта «Система Интерактивного Тестирования Знаний “Синтез”» (который имеет ряд интересных особенностей, таких, как использование серверного JavaScript на платформе Mozilla Rhino, прототипно-ориентированная ORM и поддержка SPARQL — языка запросов к Semantic Web).
Вторая часть – более занудная будет содержать много технических деталей и выйдет в следующий раз.
По доброй традиции, награждаю плюсиками всех участников дискуссии, в том числе и конструктивных критиков, с чьим мнением я не согласен.
Попробуйте угадать: к какой архитектуре относятся web-приложения?
К клиент-серверной говорите? Я ожидал, что Вы так ответите :-)
Что ж, давайте разберемся. В клиент-серверной архитектуре выделяют:
Преимущества клиент-серверной архитектуры очевидны; мы их все знаем:
Но, относятся ли web-приложения к клиент-серверной архитектуре?
Действительно, в web-приложениях есть сервер, отвечающий за бизнес логику приложения.
Но! За реализацию интерфейса отвечает не клиент, а тоже сервер. На сервере происходит обработка клиентской формы. Сервер генерирует HTML-код пользовательского интерфейса.
Клиент, т.е. браузер лишь визуализирует уже готовый HTML-код интерфейса. Это, фактически, то же самое, что прицепить к серверу монитор и объявить этот монитор клиентом…
Статья состоит из двух частей. В первой части — более живой и провокационной я постараюсь заинтересовать проблемой, рассказать о технологии «Совершенный Ajax» и показать ее применение на примере нашего проекта «Система Интерактивного Тестирования Знаний “Синтез”» (который имеет ряд интересных особенностей, таких, как использование серверного JavaScript на платформе Mozilla Rhino, прототипно-ориентированная ORM и поддержка SPARQL — языка запросов к Semantic Web).
Вторая часть – более занудная будет содержать много технических деталей и выйдет в следующий раз.
По доброй традиции, награждаю плюсиками всех участников дискуссии, в том числе и конструктивных критиков, с чьим мнением я не согласен.
Попробуйте угадать: к какой архитектуре относятся web-приложения?
К клиент-серверной говорите? Я ожидал, что Вы так ответите :-)
Что ж, давайте разберемся. В клиент-серверной архитектуре выделяют:
- Сервер — отвечает за хранение данных и реализацию бизнес-логики приложения.
- Клиент — отвечает за взаимодействие с пользователем [1].
Преимущества клиент-серверной архитектуры очевидны; мы их все знаем:
- Бизнес-логика не смешивается с пользовательским интерфейсом.
- Можно реализовать несколько клиентов с разными пользовательскими интерфейсами: интерфейс командной строки, оконный Windows-интерфейс, Flash, web-интерфейс, мобильный интерфейс и т.д.
- Клиентский компьютер не требователен к ресурсам;
- И т.д.
Но, относятся ли web-приложения к клиент-серверной архитектуре?
Действительно, в web-приложениях есть сервер, отвечающий за бизнес логику приложения.
Но! За реализацию интерфейса отвечает не клиент, а тоже сервер. На сервере происходит обработка клиентской формы. Сервер генерирует HTML-код пользовательского интерфейса.
Клиент, т.е. браузер лишь визуализирует уже готовый HTML-код интерфейса. Это, фактически, то же самое, что прицепить к серверу монитор и объявить этот монитор клиентом…
+80
Представления (VIEW) в MySQL
10 min
456KВ комментариях Хабра упоминались вопросы по использованию представлений. Данный топик является обзором представлений, появившихся в MySQL версии 5.0. В нем рассмотрены вопросы создания, преимущества и ограничения представлений.
Представление (VIEW) — объект базы данных, являющийся результатом выполнения запроса к базе данных, определенного с помощью оператора SELECT, в момент обращения к представлению.
Представления иногда называют «виртуальными таблицами». Такое название связано с тем, что представление доступно для пользователя как таблица, но само оно не содержит данных, а извлекает их из таблиц в момент обращения к нему. Если данные изменены в базовой таблице, то пользователь получит актуальные данные при обращении к представлению, использующему данную таблицу; кэширования результатов выборки из таблицы при работе представлений не производится. При этом, механизм кэширования запросов (query cache) работает на уровне запросов пользователя безотносительно к тому, обращается ли пользователь к таблицам или представлениям.
Что такое представление?
Представление (VIEW) — объект базы данных, являющийся результатом выполнения запроса к базе данных, определенного с помощью оператора SELECT, в момент обращения к представлению.
Представления иногда называют «виртуальными таблицами». Такое название связано с тем, что представление доступно для пользователя как таблица, но само оно не содержит данных, а извлекает их из таблиц в момент обращения к нему. Если данные изменены в базовой таблице, то пользователь получит актуальные данные при обращении к представлению, использующему данную таблицу; кэширования результатов выборки из таблицы при работе представлений не производится. При этом, механизм кэширования запросов (query cache) работает на уровне запросов пользователя безотносительно к тому, обращается ли пользователь к таблицам или представлениям.
+103
Иерархические структуры данных и Doctrine
15 min
82KВведение
Хранение иерархических данных (или попросту — деревьев) в реляционных структурах задача довольно нетривиальная и вызывает некоторые проблемы, когда разработчики сталкиваются с подобной задачей.
В первую очередь, это связано с тем, что реляционные базы не приспособлены к хранению иерархических структур (как, например, XML-файлы), структура реляционных таблиц представляет из себя простые списки. Иерархические же данные имеют связь «родитель-наследники», которая не реализована в реляционной структуре.
Тем не менее, задача «хранить деревья в базе данных» рано или поздно возникает перед любым разработчиком.
Ниже мы подробно рассмотрим, какие существуют подходы в организации хранения деревьев в реляционных БД, а также рассмотрим инструментарий, который нам предоставляет ORM Doctrine для работы с такими структурами.
+62
Проверяем качество сайта
5 min
38KTutorial
Итак, допустим, вы руководитель проектов, у вас есть команда (программист, верстальщик, дизайнер, кто то еще) и вы создаете сайты. Проблема в том, что руководителю проектов необходимо знать совершенно все аспекты создания сайта, начиная от дизайна, и кончая безопасностью, чаще всего – так не бывает. Если руководитель проектов бывший дизайнер, он справиться с такими аспектами как дизайн и юзабилити, но вот в техническом плане у него (у вас) будут проблемы. Бывает и так, что руководителем становиться менеджер, конечно, он великолепно управляет людьми, у него ярко выраженные лидерские способности… но в техническом аспекте ему приходиться полагаться на свою команду, это хорошо, если команда – настоящие профессионалы, а если нет, то спрос будет не с команды, а с ее руководителя. В этой статье, я постараюсь описать несколько моментов, которые помогут вам оценить качество создаваемых вами (вашей командой) сайтов.
+3
jQuery для начинающих. Часть 3. AJAX
11 min
455KПредставляю Вам третью статью из серии jQuery для начинающих. В этот раз я постараюсь рассказать о реализации AJAX запросов...
+65
Доставка видеоконтента пользователям
7 min
11K[ Часть I. Доставка видеоконтента ] [ Часть II. CDN своими руками ]
Что такое «контент» для видеохостинга? Во-первых, контент видеохостинга – это просто видео, которое представляет собой набор файлов в различных форматах, в частности, в формате FLV для просмотра пользователем через Flash Player. Эти файлы статичны, видеохостинг при загрузке пользователем видеоролика осуществляет конвертацию во все требуемые форматы с необходимым битрейтом. Хранение такого контента — это хранение обычных файлов, только довольно большого размера. Отдача контента — это, по сути, организация скачивания файлов.
Во-вторых, контент видеохостинга — это «живые» потоки или вещания. Вещания не записываются на диск, не происходит их конвертация, потоки раздаются клиентам с учетом пропускной способности каналов (происходит пропуск пакетов, если канал клиента недостаточен для получения потока вещания в полном качестве). Отдача контента в данной ситуации — это раздача потока на большое количество подключенных пользователей (тысячи смотрящих).
Что такое «контент» для видеохостинга? Во-первых, контент видеохостинга – это просто видео, которое представляет собой набор файлов в различных форматах, в частности, в формате FLV для просмотра пользователем через Flash Player. Эти файлы статичны, видеохостинг при загрузке пользователем видеоролика осуществляет конвертацию во все требуемые форматы с необходимым битрейтом. Хранение такого контента — это хранение обычных файлов, только довольно большого размера. Отдача контента — это, по сути, организация скачивания файлов.
Во-вторых, контент видеохостинга — это «живые» потоки или вещания. Вещания не записываются на диск, не происходит их конвертация, потоки раздаются клиентам с учетом пропускной способности каналов (происходит пропуск пакетов, если канал клиента недостаточен для получения потока вещания в полном качестве). Отдача контента в данной ситуации — это раздача потока на большое количество подключенных пользователей (тысячи смотрящих).
+44
Разработка макетов: а давайте в этот раз не будем спрашивать уборщицу?
4 min
4.3KМало кому приходит в голову указывать программистам, как писать код (хотя некоторые умудряются указывать даже проектировщикам баз данных), но уж показать дизайнеру как нужно рисовать — прямо очередь выстраивается.
Это происходит потому, что все «специалисты» знают: дизайн — это красивая картинка.
Дизайн лишь на 20% искусство, на 80% — это точная наука. И вы будете удивлены, когда узнаете, из чего на самом деле состоит каждая картинка.
Это происходит потому, что все «специалисты» знают: дизайн — это красивая картинка.
Дизайн лишь на 20% искусство, на 80% — это точная наука. И вы будете удивлены, когда узнаете, из чего на самом деле состоит каждая картинка.
+122
jsForms
18 min
748Добрый вечер, после написания предыдущего поста прошло уже, наверное, более трех недель, с тех пор мое направление немножко изменилось, да MVC хороший паттерн, но сейчас для js он еще слишком громоздкий. Мы стремимся выбрать более прозрачные и тонкие решения, которые бы позволяли видеть как все работает, вот почему мне нравится jQuery, он вводит тот самый минимум, который позволяет абстрагироваться от типа браузера, но при этом он не убирает ощущение того, что ты пишешь именно на js. Вот почему когда стремясь реализовать паттерн Document-View на js, хотелось сделать его как можно более тонким, незаметным и как мне кажется мне удалось добиться тех же легких ощущений, что все таки это тот же js, просто он немножко расширился.
Как и в WinForms, в jsForms все строится на компонентах. Итак приступим.
Как и в WinForms, в jsForms все строится на компонентах. Итак приступим.
+41
Создание UML по существующему PHP коду
2 min
14KКогда большинство проектов давно находятся на стадии поддержки, а не разработки, то поддержание документации в актуальном виде зачастую не проводится. Тогда довольно полезно будет получить диаграмму UML по существующему коду. Это также необходимо в случае, если предпроектная документация велась не полностью или проектированию подвергались не все части системы. Вопрос особенно актуален, когда появляется новый разработчик.
В этой статье я рассмотрю 2 скрипта, реализованных на PHP:
В этой статье я рассмотрю 2 скрипта, реализованных на PHP:
- Консольный скрипт php2xmi
- Библиотека PHP_UML
+13
Кеширование обычными средствами
2 min
6.6KСегодня решил сделать то, что собирался уже давно — поставить таки кеширование скриптов у себя на сайте. Все скрипты перед отдачей пользователю собираются в один файл и сжимаются GZIP'ом — все вроде по-уму, но есть проблемка… Браузер отчаянно не хотел кешировать этот выходной скрипт.
Опытным путем было установлено, что PHP устанавливает хидеры запрета кеширования при использовании функции session_start();
Опытным путем было установлено, что PHP устанавливает хидеры запрета кеширования при использовании функции session_start();
+17
Information
- Rating
- Does not participate
- Location
- Белозёрский, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity
Specialization
Backend Developer
Middle
PHP
MySQL
Linux
Git
Laravel
Yii framework