Материал из DOM
(Перенаправлено с
Заглавная страница)
Приветствую Вас на моем сайте. Здесь я выкладываю тексты статей, которые я пишу, и некоторые из созданных мною програм. Благодаря использованию вики вы можете обсуждать, вносить правки в мои работы. Я надеюсь, что каждый сможет найти для себя нечто полезное среди огромной кипы материалов. Круг моих интересов в области программирования достаточно велик. Пишу я правда, не очень часто (хотя стараюсь выдерживать ритм и писать каждую неделю 1-2 статьи), так что это не совсем похоже на привычный вам блог с множеством мелких заметок.
Сразу предупреждаю: все материалы - авторские. Я не копирую ничего из сети. Иногда я перевожу англоязычные материалы, но почти всегда добавляю в них свое видение вопроса, свои примеры и т.д.
Я разрешаю каждому копировать и использовать размещенные здесь материалы не с целью извлечения прямой коммерческой выгоды. Это значит что вы можете брать статьи и размещать их на своих сайтах, но при условии обязательного сохранения авторского права, и вы обязаны в тексте статьи делать ссылку на мой сайт.
|
Flash
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
Adobe Pixel Bender представляет собой язык и технологию для создания шейдерных программ, исполняющихся в среде Flash, Photoshop или After Effects. Вы можете записать небольшой скрипт, который будет применен к каждому отдельному пикселю входного изображения с тем, чтобы изменить его (осветлить, поменять цвета ...). И все это будет работать очень быстро благодаря тому, что шейдерная программа активно использует аппаратную поддержку CPU или GPU.
2010.2.28 Adobe Pixel Bender. Новый уровень в обработке изображений для flash
Эта статья завершит собой серию материалов посвященных задачам создания мультимедиа-приложений использующих возможности flash и java. Прошлая статья рассказывала о том, как мультимедиа-сервер red5 умеет “отдавать” клиенту поток видеоинформации. Так, мы создали простенький видеопроигрыватель, который умел загружать и показывать видео и как обычный flv-файл, и как мультимедиа-поток, формируемый red5-сервером. Сегодня пришло время рассмотреть вторую сторону этой задачи: захват видео-потока с веб-камеры и отправка его на red5-сервер.
2010.2.18 A Practical Introduction to multimedia programming with Red5. Part 10
Сегодняшняя статья в серии будет посвящена тому, как мультимедиа-сервер red5 умеет работать с видео-информацией, передавая ее как в направлении от клиента к серверу, так и в обратном направлении. В частности, мы попробуем создать небольшое веб-приложение с галерей видеоизображений, и список этих изображений будет не статическим. Т.е. посетители сайта, имеющие в своем распоряжении веб-камеру, смогут сами записать небольшой ролик и опубликовать его на нашем ресурсе. Впоследствии, заходящие на наш сайт посетители смогут выбрать в меню любой из этих видеороликов и просмотреть его.
2010.2.8 A Practical Introduction to multimedia programming with Red5. Part 9
Трудно привести пример какого-нибудь серьезного приложения, перед которым не стояла бы задача сохранения информации между сеансами работы. И не важно где будет эта информация сохранена: то ли на локальном жестком диске компьютера, то ли на интернет -сервере. В разных приложениях могут меняться требования к объемам хранимой информации, надежности хранилища, возможности параллельной работы с данными нескольких пользователей, поддержке транзакций и т.д. Сегодняшняя статья завершит рассказ о SharedObject-ах. В частности, сегодня я расскажу о том, как можно сохранять состояние “общего объекта” в некотором хранилище в перерывах между отдельными сеансами.
2010.1.20 A Practical Introduction to multimedia programming with Red5. Part 8
Сегодняшняя статья продолжит рассказ об одной из самых полезных возможностей, которые получаются от объединения flash и red5, а именно, SharedObjects. “Общие объекты” представляют собой отличное средство для организации взаимодействия и обмена информацией между несколькими flash-клиентами, подключенными к red5 серверу. В прошлый раз мы разобрали пример приложения чат, в котором демонстрировалось, как клиенты могут обмениваться между собой текстовыми сообщениями. Однако остался нераскрытым вопрос об участии в этом “общении” не только flash-клиентов, но и red5-сервера, точнее написанных на java-приложений, выполняющихся в среде red5 и использующих всевозможные библиотеки и прочие “вкусности”, доступные для java-программистов.
2009.12.10 A Practical Introduction to multimedia programming with Red5. Part 7
В прошлой статье я завершил рассказ о том, как создать каркас для веб-приложения, выполняющегося в среде red5 и представляющего набор сервисов для flash-приложения. Пример был не самым сложным и всего лишь показывал то, как можно отправить из flash запрос на подключение к веб-приложению, а после этого как вызвать какой-нибудь метод, передав ему как параметры строку и получив в ответ такую же строку. В "настоящем" приложении, обмен данными будет включать в себя отправку более сложных и "приближенных к жизни" структур данных: массивы, объекты. Именно это и будет темой сегодняшнего материала.
2009.11.27 A Practical Introduction to multimedia programming with Red5. Part 6
В прошлой статье я завершил рассказ о том, как создать каркас для веб-приложения, выполняющегося в среде red5 и представляющего набор сервисов для flash-приложения. Пример был не самым сложным и всего лишь показывал то, как можно отправить из flash запрос на подключение к веб-приложению, а после этого как вызвать какой-нибудь метод, передав ему как параметры строку и получив в ответ такую же строку. В “настоящем” приложении, обмен данными будет включать в себя отправку более сложных и “приближенных к жизни” структур данных: массивы, объекты. Именно это и будет темой сегодняшнего материала.
2009.11.6 A Practical Introduction to multimedia programming with Red5. Part 5
Рассказ о том, как создать веб-приложение, работающее в среде red5, медленно, но неуклонно близится к своему завершению. Так, прошлая статья была посвящена созданию серверной части примера: я перечислял файлы и каталоги, составляющие тот архив war, который можно развернуть на red5 сервере. Сегодняшний же материал расскажет о том, как создать клиентскую часть приложения, как установить соединение с сервером и вызывать на нем какой-нибудь метод из flash.
2009.10.25 A Practical Introduction to multimedia programming with Red5. Part 4
Я продолжаю рассказ о методиках создания веб-приложений совместно использующих возможности java, red5 и flash. Хотя конечной целью моих статей, в полном соответствии с вынесенным в заголовок названием, является организовать передачу мультимедиа информации с сервера flash-клиенту и обратно. Но следует понимать, что потоковое мультимедиа – это не самоцель, а всего лишь одна из составных частей хорошего приложения. В прошлой статье я начал построение универсального “каркаса” для веб-приложения выполняющегося в среде red5.
2009.10.16 A Practical Introduction to multimedia programming with Red5. Part 3
Эта статья продолжит начатый в прошлый раз рассказ о методиках создания веб-приложений, активно использующих технологии доставки и публикации потокового мультимедиа. Прошлая статья была “насквозь” теоретической: я рассказывал о том, что такое битрейт, медиаконтейнеры, кодеки, перечислил с десяток как платных, так и бесплатных медиа-серверов, умеющих доставлять медиа-поток к flash-клиенту. Сегодня я перейду к практике и познакомлю вас с red5, бесплатным, свободным, популярным и зарекомендовавшим себя медиа-сервером. Но сначала давайте еще раз уточним цель статьи.
2009.10.08 A Practical Introduction to multimedia programming with Red5. Part 2
Идея доставки по сетям Интернет мультимедиа в виде аудио и видеоматериалов совсем не нова. Еще добрых пятнадцать лет назад, в середине девяностых, было очевидно, что по мере повышения скорости работы телекоммуникационных сетей соотношение между информацией доставляемой через internet в форме текста и аудио-видео материалов будет неуклонно смещаться в сторону последней. И что самое приятное этот рост проявляется не в примитивной форме mp3 песен или фильмов загружаемых с torrent, а в форме организации телеконференций, ip телефонии, интерактивного телевидения и т.д. Технические возможности за последние три года подросли так сильно, а цены снизились до таких величин, что создать в internet собственный мультимедиа-сервер и развернуть на нем, да хоть сервис организации телеконференции, можно всего за пару месяцев. И это не будет требовать больших инвестиций ни в разработку специального программного обеспечения, ни в наем специалистов экстра-класса. Мультимедиа в internet – это уже совсем не “rocket science”.
2009.10.01 A Practical Introduction to multimedia programming with Red5. Part 1
И Flash и PDF - давно известные всем технологии с четко очерченным набором возможностей и сферой применения. Может показаться, что эти сферы настолько различны, что ничего общего у flash и pdf быть не может. Однако это не так. И как всегда случается на стыке двух технологий, “смесь” pdf и flash не только возможна, но и очень интересна.
2009.9.21 Flash And PDF Together With AlivePDF
Пришло время поделиться еще одной своей наработкой, теперь в области flash. MobileEng - игра-тренажер английского языка. Я специально разработал ее, когда приобрел себе в пользование наладонник ipaq 3715 и озаботился тем, что во время скучных поездок совсем нечем себя занять. Количество тренажеров английского языка для наладонников не слишком велико и, к сожалению, эти продукты не слишком разнообразны. В большинстве своем все сводится к тому, что на экране появляется английское слово и вы должны выбрать правильное значение перевода из списка некоторых вариантов. Я решил скрестить "выбери правильный вариант перевода" и известную игру на внимательность "не помню как она там называется, но вы ее вспомните, если посмотрите примеры скриншотов дальше".
2008.7.29 MobileEnglish: Прокачай свою внимательность и знания английского языка
Эта статья является логическим продолжением ранее опубликованной серии посвященной 2d-физике для flash-разработчиков. Сегодня я продолжу рассказ о методах “плоской” физической симуляции, вот только язык программирования будет java.
2008.04.10 Phys2D: физика и java
Сегодня я завершу рассказ об FOAM. FOAM - это один из лучших физических движков доступных для flash-разработчиков. В прошлый раз я рассказал об идее легшей в основу FOAM (четкое разделение ответственности за расчеты между несколькими частями движка), об иерархии интерактивных объектов (которые мы можем добавить на сцену). Сегодня осталось только рассмотреть методику добавления к объектам, воздействующих на них сил и ограничений. Также интересен вопрос о создании renderer-ов, (пользовательских объектов позволяющих управлять тем, как “голый” физический объект можно визуализировать).
2008.4.2 FOAM: физика и actionscript 3. Часть 2
Почти год назад я написал серию из трех статей посвященных основным физическим законам и их практическому применению при разработке flash-приложений. Тогда фокус внимания был посвящен flash 8, а код писался на actionscript2. Несколько раз я порывался написать статью, посвященную физике и flash, но использующую не “собственные поделки”, а flade (известный и, по сути, единственный качественный) физический движок для flash 8. Но не сложилось. Теперь я начну рассказ об физических движках во flash на примере FOAM.
2008.3.27 FOAM: физика и actionscript 3. Часть 1
Я был вынужден написать данное расширение после того, как провел неутешительный анализ возможностей расширений по данной тематике найденны на mediawiki.org. Скрипт интегрирован с swfobject. Умеет управлять версией flashplayer, передавать swf-файлу произвольные параметры, корректно обрабатывает ситуацию когда flashplayer у клиента не установлен.
2008.1.13 Flvswf
Утилита “smalldebugger” служит для отладки flash/flex приложений. Состоит из двух частей: сервер и клиент. Коммуникация между этими двумя частями идет с помощью LocalConnection. Умеет "охотиться" на несколько профилей сообщений, умеет фильтровать полученные сообщения, поддерживается экспорт полученных сообщений в excel, автоматический и по-требованию сброс списка сообщений в базу mysql, в углу крутиться красивая иконка - сигнал о полученном сообщении ... Пользуйтесь на здоровье.
2007.12.11 Proj smallflexdebugger
Сегодня мы продолжим и завершим рассмотрение вопроса о разработке внедренных в сайт графиков, диаграмм. После рассказа о библиотеках php, которые генерируют статические картинки, логичным будет завершить тему рассмотрением подобных средство но для уже flash.
2007.10.22 Графики, диаграммы, графы … и все это в веб? Часть 2
Выложена серия статей посвященных методике и библиотекам для создания и внедрения в веб-страницы
графиков, диаграмм. Рассматривается 6-ть библиотек (конечно, получилось немного, галопом по европам)
три библиотеки для php (генерируют статические картинки) и три библиотеки для flash.
В первой части я рассказываю о общих методиках построения графиков, диаграмм, внедрения их на страницы, быстро разбиваю в пух и прах всякие ужасные методы вроде java/activex (прости меня java, но истина дороже), и после пары слов о canvas и svg перехожу к разбору библиотечек для php генерирующих статические изображения.
2007.10.15 Графики, диаграммы, графы … и все это в веб? Часть 1
Я продолжаю рассказ о 3d-движке для flash sandy3d.
2007.1.1 Про 3-е измерение во flash с помощью sandy 3d - часть 2
Я завершаю рассказ о 3d-движке для flash sandy3d. Сегодняшний материал посвящен советам и трюкам.
2007.1.1 Про 3-е измерение во flash с помощью sandy 3d - часть 3
Ладно, ладно, я прекрасно знаю что 3d во flash это пытка над вычистельными ресурсами компа
и что главное нервами посетителя. На текущий момент есть тройка крепких 3d движков во flash
(правда, по возможностям сравнительно к серьезным (написанным на c|c++) движкам,
они близки к годам, эдак, 93-95). Два моих самых любимых это
* sandy3d (http://www.flashsandy.org) и
* papervision 3d (http://www.papervision3d.org/)
вот я и написал серию статеек посвященых этим продуктам:
2007.1.1 Про 3-е измерение во flash с помощью sandy 3d - часть 1
Я продолжаю знакомить вас с различными технологиями в мире flash позволяющими быстрее и проще (без глупых ошибок) создавать сложные приложения. Тема сегодняшнего материала – это организация взаимодействия между flash и серверными скриптами написанными на php.
2007.1.1 Часть первая и единственная про flash8 и swx
Тема сегодняшней статьи - библиотека создания пользовательских интерфейсов ASWing. Сегодня я завершаю рассказ о ASwing и на очереди рассмотрение возможностей JTree. Уделю пару слов и всплывающими подсказами (JToolTip) и работе с DnD.
2007.1.1 часть 4 про flash9 и aswing
Тема сегодняшней статьи - библиотека создания пользовательских интерфейсов ASWing. Я продолжаю рассказ о возможностях ASWing и сегодня нас ждет знакомство с всплывающими окнами, работа со шрифтами, мы создаем меню (обычное и контекстное). Не остаются в строне и такие компоненты-контейнеры как JLoadPane, JTabbedPane, JAccordion. Напоследок покажу как работать с JAdjuster и JProgressBar.
2007.1.1 часть 2 про flash9 и aswing
Тема сегодняшней статьи - библиотека создания пользовательских интерфейсов ASWing. Я рассказываю о менеджерах раскладок, об работе с диалоговыми окнами, создание обработчиков событий. Работа с кнопками, иконками и текстовыми полями.
2007.1.1 часть 1 про flash9 и aswing
Тема сегодняшней статьи - библиотека создания пользовательских интерфейсов ASWing. Сегодня я рассказываю байки о том какая полезная вещь MVC и об реализации ее в ASwing. Мы знакомимся с JList, JTable. Я рассказываю об идее Renderer-ов и Editor-ов для сложных визуальных компонентов.
2007.1.1 часть 3 про flash9 и aswing
Каждый настоящий флешер должен знать три закона Ньютона, один закон Пифагора, и иметь на книжной полке справочник по физике и математике. Здесь я пишу то там как macromedia и adobe халявят и не могут сделать нормальной поддержки физики/математики в своих продуктах, так что приходится использовать посторонние решения (open source - GO, GO !, GO !!!) или реализовывать все самим.
2007.1.1 Про восьмой флеш и физику - часть 1
Сегодня мы продолжаем начатый в прошлый раз рассказ о методах интеграции физики во flash. В прошлый раз мы рассмотрели основы векторной математики. Мы узнали, что такое вектор, что такое длина вектора, и нормаль к нему, и что такое нормализованный вектор. Поняли, как векторы преобразуются в углы, и какой смысл несет скалярное произведение двух векторов. Сегодня мы завершаем рассмотрение этой темы, нам осталось разобраться с понятием движения по вектору. Также мы рассмотрим механизм определения точки, где два вектора пересекаются.
2007.1.1 Про восьмой флеш и физику - часть 2
Эта статья завершает собой серию материалов посвященных интеграции flash8 и физики. Сегодня мы перейдем от рассмотрения взаимодействия идеальных тел, таких как точка и линия, к более сложным и приближенным к реальной жизни. Серия заканчивается не потому, что закончились интересные законы физики|математики, а из-за грядущего выхода flash cs3 с поддержкой actionscript3. Работа с которым и будет рассматриваться в других сериях статей.
2007.1.1 Про восьмой флеш и физику - часть 3
|
Java
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
Эта статья завершит собой серию материалов посвященных задачам создания мультимедиа-приложений использующих возможности flash и java. Прошлая статья рассказывала о том, как мультимедиа-сервер red5 умеет “отдавать” клиенту поток видеоинформации. Так, мы создали простенький видеопроигрыватель, который умел загружать и показывать видео и как обычный flv-файл, и как мультимедиа-поток, формируемый red5-сервером. Сегодня пришло время рассмотреть вторую сторону этой задачи: захват видео-потока с веб-камеры и отправка его на red5-сервер.
2010.2.18 A Practical Introduction to multimedia programming with Red5. Part 10
Сегодняшняя статья в серии будет посвящена тому, как мультимедиа-сервер red5 умеет работать с видео-информацией, передавая ее как в направлении от клиента к серверу, так и в обратном направлении. В частности, мы попробуем создать небольшое веб-приложение с галерей видеоизображений, и список этих изображений будет не статическим. Т.е. посетители сайта, имеющие в своем распоряжении веб-камеру, смогут сами записать небольшой ролик и опубликовать его на нашем ресурсе. Впоследствии, заходящие на наш сайт посетители смогут выбрать в меню любой из этих видеороликов и просмотреть его.
2010.2.8 A Practical Introduction to multimedia programming with Red5. Part 9
Трудно привести пример какого-нибудь серьезного приложения, перед которым не стояла бы задача сохранения информации между сеансами работы. И не важно где будет эта информация сохранена: то ли на локальном жестком диске компьютера, то ли на интернет -сервере. В разных приложениях могут меняться требования к объемам хранимой информации, надежности хранилища, возможности параллельной работы с данными нескольких пользователей, поддержке транзакций и т.д. Сегодняшняя статья завершит рассказ о SharedObject-ах. В частности, сегодня я расскажу о том, как можно сохранять состояние “общего объекта” в некотором хранилище в перерывах между отдельными сеансами.
2010.1.20 A Practical Introduction to multimedia programming with Red5. Part 8
Сегодняшняя статья продолжит рассказ об одной из самых полезных возможностей, которые получаются от объединения flash и red5, а именно, SharedObjects. “Общие объекты” представляют собой отличное средство для организации взаимодействия и обмена информацией между несколькими flash-клиентами, подключенными к red5 серверу. В прошлый раз мы разобрали пример приложения чат, в котором демонстрировалось, как клиенты могут обмениваться между собой текстовыми сообщениями. Однако остался нераскрытым вопрос об участии в этом “общении” не только flash-клиентов, но и red5-сервера, точнее написанных на java-приложений, выполняющихся в среде red5 и использующих всевозможные библиотеки и прочие “вкусности”, доступные для java-программистов.
2009.12.10 A Practical Introduction to multimedia programming with Red5. Part 7
В прошлой статье я завершил рассказ о том, как создать каркас для веб-приложения, выполняющегося в среде red5 и представляющего набор сервисов для flash-приложения. Пример был не самым сложным и всего лишь показывал то, как можно отправить из flash запрос на подключение к веб-приложению, а после этого как вызвать какой-нибудь метод, передав ему как параметры строку и получив в ответ такую же строку. В "настоящем" приложении, обмен данными будет включать в себя отправку более сложных и "приближенных к жизни" структур данных: массивы, объекты. Именно это и будет темой сегодняшнего материала.
2009.11.27 A Practical Introduction to multimedia programming with Red5. Part 6
В прошлой статье я завершил рассказ о том, как создать каркас для веб-приложения, выполняющегося в среде red5 и представляющего набор сервисов для flash-приложения. Пример был не самым сложным и всего лишь показывал то, как можно отправить из flash запрос на подключение к веб-приложению, а после этого как вызвать какой-нибудь метод, передав ему как параметры строку и получив в ответ такую же строку. В “настоящем” приложении, обмен данными будет включать в себя отправку более сложных и “приближенных к жизни” структур данных: массивы, объекты. Именно это и будет темой сегодняшнего материала.
2009.11.6 A Practical Introduction to multimedia programming with Red5. Part 5
Рассказ о том, как создать веб-приложение, работающее в среде red5, медленно, но неуклонно близится к своему завершению. Так, прошлая статья была посвящена созданию серверной части примера: я перечислял файлы и каталоги, составляющие тот архив war, который можно развернуть на red5 сервере. Сегодняшний же материал расскажет о том, как создать клиентскую часть приложения, как установить соединение с сервером и вызывать на нем какой-нибудь метод из flash.
2009.10.25 A Practical Introduction to multimedia programming with Red5. Part 4
Я продолжаю рассказ о методиках создания веб-приложений совместно использующих возможности java, red5 и flash. Хотя конечной целью моих статей, в полном соответствии с вынесенным в заголовок названием, является организовать передачу мультимедиа информации с сервера flash-клиенту и обратно. Но следует понимать, что потоковое мультимедиа – это не самоцель, а всего лишь одна из составных частей хорошего приложения. В прошлой статье я начал построение универсального “каркаса” для веб-приложения выполняющегося в среде red5.
2009.10.16 A Practical Introduction to multimedia programming with Red5. Part 3
Эта статья продолжит начатый в прошлый раз рассказ о методиках создания веб-приложений, активно использующих технологии доставки и публикации потокового мультимедиа. Прошлая статья была “насквозь” теоретической: я рассказывал о том, что такое битрейт, медиаконтейнеры, кодеки, перечислил с десяток как платных, так и бесплатных медиа-серверов, умеющих доставлять медиа-поток к flash-клиенту. Сегодня я перейду к практике и познакомлю вас с red5, бесплатным, свободным, популярным и зарекомендовавшим себя медиа-сервером. Но сначала давайте еще раз уточним цель статьи.
2009.10.08 A Practical Introduction to multimedia programming with Red5. Part 2
Идея доставки по сетям Интернет мультимедиа в виде аудио и видеоматериалов совсем не нова. Еще добрых пятнадцать лет назад, в середине девяностых, было очевидно, что по мере повышения скорости работы телекоммуникационных сетей соотношение между информацией доставляемой через internet в форме текста и аудио-видео материалов будет неуклонно смещаться в сторону последней. И что самое приятное этот рост проявляется не в примитивной форме mp3 песен или фильмов загружаемых с torrent, а в форме организации телеконференций, ip телефонии, интерактивного телевидения и т.д. Технические возможности за последние три года подросли так сильно, а цены снизились до таких величин, что создать в internet собственный мультимедиа-сервер и развернуть на нем, да хоть сервис организации телеконференции, можно всего за пару месяцев. И это не будет требовать больших инвестиций ни в разработку специального программного обеспечения, ни в наем специалистов экстра-класса. Мультимедиа в internet – это уже совсем не “rocket science”.
2009.10.01 A Practical Introduction to multimedia programming with Red5. Part 1
Этой статьей я завершаю рассказ об maven и о том, как он позволяет управлять проектами разработки программного обеспечения. Сегодня мы поговорим о том, как выполнить подготовку разработанного вами проекта к поставке заказчику. Тема эта сложна и включает в себя множество аспектов. Начинается все с подготовки исполнимого файла приложения со всеми нужными для его работы ресурсами и библиотеками. Затем нужно подготовить документацию, создать инсталлятор для приложения. И, наконец, выполнить доставку приложения заказчику или же, как вариант, скопировать на сервер в internet, откуда приложение может скачать любой желающий.
2009.5.25 Наводим порядок в разработке ПО вместе с maven. Часть 8
Рассказ об maven был бы не полон, если бы я умолчал о том как maven умеет интегрироваться с ant. Также я много рассуждаю на тему средств записи сценария сборки проекта и о том, что ant это не всегда хорошо.
2009.5.8 Наводим порядок в разработке ПО вместе с maven. Часть 7
Я продолжаю начатый в прошлой статье рассказ о том, как maven умеет работать с многомодульными проектами. В качестве примера я пытаюсь создать enterprise приложение на java, состоящее трех модулей: business-logic (логика работы приложения), web-interface (пользовательский интерфейс) и, собирающий предыдущие две части в единое целое, модуль application.
2009.4.29 Наводим порядок в разработке ПО вместе с maven. Часть 6
Я продолжаю рассказ об maven, и о том, как он упрощает разработку программных продуктов, задавая четкий ритм и последовательность шагов, через которые проходит жизненный цикл проекта. В прошлый раз мы завершили рассказ о самой большой и известной части maven – управление зависимостями. Сегодня нас ждет продолжение, и мы поговорим о создании многомодульных проектов.
2009.4.15 Наводим порядок в разработке ПО вместе с maven. Часть 5
Одна из самых широко разрекламированных и приятных возможностей maven – это управление зависимостями. Описав в файле pom.xml список артефактов нужных для работы проекта, мы перекладываем на maven все заботы связанные с загрузкой библиотек из internet, разрешение транзитивных зависимостей. И можем сосредоточиться на, собственно, разработке проекта, написании кода. Увы, но задачу разрешения зависимостей не всегда можно выполнить автоматически, т.к. существует вероятность конфликтов различных версий библиотек. Как находить и устранять такие конфликты – это как раз тема сегодняшнего материала.
2009.4.6 Наводим порядок в разработке ПО вместе с maven. Часть 4
Я продолжаю рассказ об maven – инструменте, с помощью которого мы можем организовать унифицированное, не зависящее от конкретной среды разработки (IDE) представление проекта java. В прошлых двух статьях я пробежался по основным “вкусностям” maven: управление зависимостями проекта, способности maven загружать из internet и сохранять в локальном репозитории артефакты. Также я рассказал о жизненном цикле maven, о том из каких фаз он состоит, и как мы можем сами инициировать определенные этапы из “жизни” проекта. Все это было, и было, скажем честно, очень поверхностно: некоторые из аспектов, например, упаковка проекта были практически не затронуты, и сегодня пришло время это исправить. Я снова попытаюсь создать проект maven “с нуля” и пройтись по всем его шагам, вот только сделаю это более основательно и подробно.
2009.4.1 Наводим порядок в разработке ПО вместе с maven. Часть 3
Я продолжаю рассказ об maven – инструменте управления проектом, составляющими его модулями, зависимостями модулей от различных библиотек-артефактов и многим другим. Maven имеет несколько “лиц” или областей применения, которые будут раскрываться перед вами по мере изучения maven, плагинов для maven и смежных инструментов.
Сегодня я продолжаю рассказ о начатом в прошлой статье примере создания проекта maven, его настройки. Так, разобравшись с основными параметрами проекта (название, описание, список авторов), самое время перейти к описанию зависимостей и тому, как инициировать различные события из жизненного цикла проекта.
2009.3.23 Наводим порядок в разработке ПО вместе с maven. Часть 2
Разработка программного обеспечения не самая простая наука. В общем объеме времени, отданного на создание продукта, написание, непосредственно, программного кода занимает далеко не самую большую долю. По мере увеличения сложности создаваемого продукта, финансовых и временных затрат, опережающими темпами растут затраты на анализ требований, планирование и организацию коллективной работы, на повышение качества. Почти года назад я написал несколько серий статей посвященных не, собственно, программированию, а различным технологиям и инструментам, поддерживающим процесс разработки ПО. Это были статьи, рассказывающие об управлении версиями документов (SVN и perforce), ведения списка задачи и багов в JIRA, хоть и поверхностно, но я прошелся и по вопросам тестирования веб-проектов с помощью badboy и jmeter. Сегодня пришло время раскрыть еще один инструмент (maven), с помощью которого ход разработки ПО должен стать более управляемым.
2009.3.9 Наводим порядок в разработке ПО вместе с maven. Часть 1
Velocity - это простой (хоть и не очень гибкий) движок шаблонов для java. В состав Velocity входит VelocityTools набор стандартизированных (понарошку) классов-инструментов. Мы можем положить их внутрь контекста Velocity и использовать при необходимости, а это значит, что возможности velocity практически не ограничены.
2009.1.19 Шаблоны на java с помощью Velocity. Часть 2
Velocity - это простой (хоть и не очень гибкий) движок шаблонов для java. Основной плюс в том, что velocity шаблоны могут использоваться не только для веб-приложений, но и для desktop-приложений.
2009.1.11 Шаблоны на java с помощью Velocity. Часть 1
Одной из редко используемых, но очень полезных функций в java, является запуск jre машины в режиме журналирования того какие классы загружаются и из каких ресурсов (файлов). Остался только вопрос о том как эту информацию представить в удобной форме и проанализировать.
2008.10.27 Анализируем в java загружаемые классы
Я продолжаю рассказ об двух полезных для любого java (а может и не только) программиста или тестировщика утилитах: dbunit и liquibase. В прошлый раз я начал рассказ о том, как с помощью dbunit можно создать тестовый набор данных в формате xml. Сегодня же нам нужно разобраться с тем, как импортировать эти данные в БД при запуске тестов и то, как интегрировать dbUnit и jUnit.
2008.8.13 Пишем и тестируем код, работающий с БД, вместе с DBUnit и LiquiBase. Часть 2
Существует несколько интерфейсов являющихся базовыми точками расширения hibernate-функциональности: UserType, CompositeUserType, UserCollectionType, EnhancedUserType, UserVersionType, ParametrizedType. Не все эти интерфейсы часто используются в практике, так я сосредоточусь на описании возможностей только UserType, CompositeUserType и ParametrizedType.
2008.7.31 Hibernate: Пользовательские типы в hibernate. Разбираемся с UDT
ТHibernate служит для отображения java-классов на таблицы БД. Естественно, что бывают ситуации, когда иерархия (сеть) классов java является более "богатой" и не может быть (не должна) переводиться в таблицы БД непосредственно. Классический пример, это класс (таблица) User, который помимо простых свойств fio, age (отображаемых непосредственно на поля таблицы user), содержит более сложные поля. Например, поле homeAddress (тип Address) хранит сведения об домашнем адресе user-а. Я расскажу о том как реализовать подобную функциональность с помощью component-ов.
2008.7.29 Hibernate: Пользовательские типы в hibernate. Разбираемся с компонентами
Сегодняшняя статья рассказывает об unit-тестировании и такой его части как тестирование кода работающего с базой данных. Одним из наиболее популярных средств для разработки юнит-тестов в среде java является dbUnit. Назначение же liquiBase - поддержать процесс развития БД, внесения в ее изменений.
2008.7.27 Пишем и тестируем код, работающий с БД, вместе с DBUnit и LiquiBase. Часть 1
Сегодня я завершаю рассказ о JIRA, системе управления проектами, задачами не только в сфере разработки ПО но и во многих других областях. Основное внимание будет сегодня посвящено интеграции JIRA с системами управления версиями файлов и мониторингу за выполняемой работой, оценкой трудозатрат и планированию.
2008.7.19 JIRA: Все, что пожелаешь, Хозяин. Часть 4
JIRA – это не просто система управления проектами, журнал учета обнаруженных ошибок, контроля за выполнением работ и средство для общения предприятия с клиентами – это настоящий конструктор, позволяющий создать приложение, путь не вашей мечты, но близкое к тому бизнес-процессу, который есть у вас. Основной акцент я делаю на применение JIRA в сфере разработки ПО. Но с таким же успехом можно применить JIRA и для управления другими видами проектов.
2008.7.13 JIRA: Все, что пожелаешь, Хозяин. Часть 3
Я продолжаю рассказ об JIRA. Управление процессом разработки ПО, ведение журнала пожеланий, задач, обнаруженных багов – все это сфера применения JIRA. В прошлый раз я показал, как установить JIRA у себя на компьютере, рассказал о политике безопасности. Теперь самое время создать проект, разобраться в его составляющих, попробовать пройтись по шагам Жизненного Цикла.
2008.7.6 JIRA: Все, что пожелаешь, Хозяин. Часть 2
Тема сегодняшней статьи – как отобразить иерархию классов на реляционную модель данных. Наследование – это один из столпов ООП, а раз в СУБД нет родного понятия или методики представления подобного отношения, то все что нам остается – это имитировать наследование классов различными способами. В hibernate есть три методики имитации: “вся иерархия классов в одной таблице”, “одна таблица базовому классу и каждому подклассу по таблице дополнений”, “каждому классу свою, независимую от остальных таблицу”.
2008.6.26 Hibernate: отображая иерархии классов
Сегодня завершающая статья посвященная работе с sql (да-да-да, я сделал это) и fmt.
2008.6.24 JSTL: Шаблоны для разработки веб-приложений в java. Часть 3
В прошлый раз я рассказал о jstl-тегах основного назначения, сегодня самое время перейти к средствам позволяющим работать с xml.
2008.6.19 JSTL: Шаблоны для разработки веб-приложений в java. Часть 2
Управление проектами – не простая наука, для этого нужны знания (и еще больше опыт) во множестве сфер связанных и с социальными, техническими, экономическими технологиями. Я ставлю перед собой более простую задачу: рассказать об “управлении желаниями” и программными продуктами, которые могут вам помочь вести учет пожеланий клиентов, контролировать их выполнение в сфере разработки ПО.
2008.6.16 JIRA: Все, что пожелаешь, Хозяин. Часть 1
Это статья является логическим продолжением серии материалов под названием “Тестируй веб-сайты вместе с Badboy”. Как видите, названия статей похожи, отличия только в конкретных программных продуктах, которые будут использованы. Сегодня я расскажу, что такое Jmeter, как он соотносится с badboy.
2008.6.12 Тестируй веб-сайты вместе с Jmeter
Эта статья является логическим развитием материалов посвященных средствам отображения информации (слой View в ставшей уже классической связке Model-View-Controller). Чтобы вы понимали место, которое занимают JSTL и Velocity нужно рассказать о Страшной Ошибке постигшей разработчиков jsp. Кроме рассказа об Страшной Ошибке с Черной Рукой я рассказываю об первом пакете (наборе jstl-тегов) - core.
2008.6.9 JSTL: Шаблоны для разработки веб-приложений в java. Часть 1
Это последняя статья, которая рассказывает о badboy. Сегодня мы завершим рассмотрение методик тестирования сайта под “нагрузкой”, рассмотрим несколько “продвинутых” методик создания сценария тестирования.
2008.6.2 Тестируй веб-сайты вместе с Badboy. Часть 3
Я продолжаю рассказ об badboy, инструменте похожем на большой магнитофон. Badboy запишет ваши действия с веб-сайтом (переходы по страницам, нажатия кнопок). Затем записанную последовательность действий вы сможете “проиграть”, чтобы проверить качество реализации сайта и то, как он работает под “нагрузкой”.
2008.5.29 Тестируй веб-сайты вместе с Badboy. Часть 2
Разработка программного обеспечения не самая простая наука. И уж тем более не сводится к знанию языков программирования и разных библиотечек с готовыми наработками. Если создавать что-то не “для себя” или “на потеху”, а заниматься разработкой ПО профессионально, зарабатывать деньги, то необходимо качественно “пройтись” по всем шагам жизненного цикла ПО: от планирования до сопровождения. Сегодня рассказ будет посвящен такому этапу как тестирование.
2008.5.26 Тестируй веб-сайты вместе с Badboy. Часть 1
Прошлые две статьи были посвящены работе с ассоциацими “один-ко-многим”. Фактически этот вид ассоциаций является наиболее ценным и часто используемым. В теории СУБД (и соответственно, в hibernate) есть еще два вида связей: один-к-одному и многие-ко-многим. Сначала разберем пример, когда могут потребоваться именно такие отношения между таблицами.
2008.5.21 Hibernate: Связи вида Многие-ко-Многим и Один-к-Одному
Продолжаю рассказывать про hibernate и ассоциации. Сегодняшний материал продолжает прошлую статью, так что все примеры предполагаются над моделью данных: отдел & сотрудник. При организации связи один-ко-многим, мы должны внутрь класса Отдел поместить контейнер, хранящий список подчиненных объектов. Есть несколько вариантов того, каким может быть этот контейнер и выбор является не настолько тривиальным.
2008.5.14 Hibernate: Set-ы, bag-и и все, все, все
Вот пришло время и мне написать пару строчек про hibernate. Я попробую сделать небольшой cheatsheet по вопросу двусторонней ассоциации, каскадных обновлений, ленивой загрузки и прочего и прочего. Большинство проблем, которые возникают у новичков заключается в том, что они забывают, что база данных живет по другим правилам, чем слой объектов. В СУБД нет всех этих двусторонних связей, да и в понятие каскадных обновлений вкладывается немного другой смысл.
2008.5.12 Hibernate: каскадные обновления, инверсия отношений и прочая и прочая
Почти год назад я внедрял у себя на сайте пробную версию скрипта, который отображал на сайте "Некрасивые графики посещаемости вашего ресурса от google analytics". В левой колонке сайта рисовался небольшой график. А что очень удобно, если вы не дрожите над google-показателями: зашли к себе на сайт, посмотрели, чтобы ничего не поломалось, полюбовался также на графики, мол растут показатели не по дням, так по часам. Да и пользователи видят как сайт прогрессирует (обычные счетчики не дают возможности увидеть изменение вашей посещаемости во времени - только статические показатели "на сегодня" и "за всегда"). И вот появилась новая инкарнация сервиса.
2008.5.5 Mygooglechart2
Я продолжаю выкладывать некоторые из своих наработок. Сегодня на очереди (так же как и в прошлый раз) несколько способов улучшить и облегчить жизнь java программистов использующих spring. Я расскажу об перезагрузке контекста spring и определений tiles2.
2008.5.1 Tiles2 и Sping: Перезагрузка
Сегодня я расскажу об инструменте, который наверняка пригодится всем тем кто пользуется spring. Назначение этой утилиты - проверить чтобы все коды ошибок которые я использую внутри кода класса-валидатора (например), были не забыты и перечислены внутри файлов ResourceBundle.
2008.4.28 Как в spring написать валидатор использующий коды сообщений и не забыть кого-то из них
Одной из важнейших и, к сожалению, плохо оцененных возможностей jsp являются пользовательские теги. Вот только создание тегов требует значительных усилий именно java-разработчиков, так что мы не можем делегировать часть ответственности верстальщикам. Ведь им нужны знания tag-библиотек, нужно знать, что и когда возвращать из методов, какие классы нужно наследовать. Кроме того, не решена проблема с переносом внутрь тега html-блоков кода и сложной процедурой тестирования тегов. Ведь для того чтобы перечитать заново определения тегов и обновленный java-код требуется перезапускать контекст веб-приложения и это медленно, дорого, да и просто раздражает. Естественным решением от sun было создать новые теги (новые правила их написания), улучшенные и не повторяющие ошибок предшественников.
2008.4.21 Jsp теги, новые и улучшенные
Сегодня я столкнулся с необходимость написать несколько регулярных выражений для java. Надо сказать, что последнее время я часто переключаюсь между java и php, так что держать в голове два стиля использования regexp-ов становится все труднее: допускаю мелкие ошибки и опечатки. Отличия в regexp-ах не в самом синтаксисе (он обычный, те же самый \w, \d, классы символов и их модификаторы). Отличия в мелочах и эти мелочи мне не нравятся. Сегодня я расскажу о том как я написал небольшой java-класс позволяющий обращаться с regexp-ами в стиле php
2008.4.15 Regexp-ы для java точь в точь как для php
Это java-библиотека позволяющая с помощью аннотаций метить поля классов так чтобы автоматизировать поддержку этим классом методов equals, compareTo, hashCode и toString
2008.4.14 Java аннотации пример 1
Эта статья является логическим продолжением ранее опубликованной серии посвященной 2d-физике для flash-разработчиков. Сегодня я продолжу рассказ о методах “плоской” физической симуляции, вот только язык программирования будет java.
2008.04.10 Phys2D: физика и java
Готовясь написать серию заметок про Velocity, решил я пока выложить один из своих ранних проектов. Сервлет-фильтр, выполняющий прозрачную генерацию html-документов с помощью Velocity. Если вы не знаете что такое Velocity, то это универсальный движок шаблонификации (для java). Velocity может быть использован для генерации документа на основании шаблона и "что-там-нужно-вставить-в-шаблоне-в-нужные-места".
2008.4.7 Velocity_Фильтр
Сегодня я завершу рассказ об FOAM. FOAM - это один из лучших физических движков доступных для flash-разработчиков. В прошлый раз я рассказал об идее легшей в основу FOAM (четкое разделение ответственности за расчеты между несколькими частями движка), об иерархии интерактивных объектов (которые мы можем добавить на сцену). Сегодня осталось только рассмотреть методику добавления к объектам, воздействующих на них сил и ограничений. Также интересен вопрос о создании renderer-ов, (пользовательских объектов позволяющих управлять тем, как “голый” физический объект можно визуализировать).
2008.4.2 FOAM: физика и actionscript 3. Часть 2
Почти год назад я написал серию из трех статей посвященных основным физическим законам и их практическому применению при разработке flash-приложений. Тогда фокус внимания был посвящен flash 8, а код писался на actionscript2. Несколько раз я порывался написать статью, посвященную физике и flash, но использующую не “собственные поделки”, а flade (известный и, по сути, единственный качественный) физический движок для flash 8. Но не сложилось. Теперь я начну рассказ об физических движках во flash на примере FOAM.
2008.3.27 FOAM: физика и actionscript 3. Часть 1
Сегодня я завершаю рассказ об gears, так что сегодня я буду в основном программировать, программировать и программировать: необходимо завершить построение клиентской части записной книжки и организовать общение с сервером в обоих направлениях (загрузка информации и ее сохранение).
2008.3.4 Разработка веб-страниц с помощью google gears. Часть 4
Я продолжаю выкладку серии статей, посвященных работе в java с swing. Сегодня внимание посвящено работе с JProgressBar и созданию меню
2008.2.26 Про swing - часть 7
Я продолжаю выкладку серии статей, посвященных работе в java с swing. Сегодня внимание посвящено таким контейнерам как JScrollPane, JSplitPane, JTabbedPane
2008.2.26 Про swing - часть 6
Я продолжаю выкладку серии статей, посвященных работе в java с swing. Сегодня внимание посвящено JTree (работа с иерархическими данными)
2008.2.26 Про swing - часть 5
Я продолжаю выкладку серии статей (а-га, после того как месяц назад затер файлы), посвященных работе в java с swing. Сегодня внимание посвящено работе с JTable (отображение табличных данных)
2008.2.26 Про swing - часть 4
После рассказа о sqlite я перехожу к практике: проектирую архитектуру небольшого примера - записной книжки. Сегодня фокус внимания посвящен серверной строне программирования (разработка базы данных sqlite и php-код заполняющий ее данными). Также я анализирую два подхода к передаче данных от сервера клиенту (XML vs JSON).
2008.2.23 Разработка веб-страниц с помощью google gears. Часть 3
Сегодня основной фокус внимания будет посвящен изучению возможностей sqlite - встроенной в gears базы данных. Создание, таблиц, "виртуальные" типы данных, индексы, ограничения, правка данных в таблице - все это сегодняшняя тема.
2008.02.22 Разработка веб-страниц с помощью google gears. Часть 2
Google gears это плагин для браузера (firefox, ie) позволяющий создавать веб-приложения, хранящие большие объемы пользовательских данных на локальном компьютере (в виде полноценной базы данных). Также gears представляет средства для синхронизации этой информации с сервером.
2008.2.15 Разработка веб-страниц с помощью google gears. Часть 1
Небольшая (меньше 300 кб.) библиотека позволит двум java приложениям общаться между собой. Поддерживается передача сложных структур данных, корректная обработка исключений. Есть реализация сервиса на других языках (в примере расказывается о связи java + flex)
2008.2.7 Hessian связывает flash и java
Сегодня я устрою тест еще одному серверу и consumer-у openid. Этот кандидат прибыл с экзотического острова Явы, так что ставить его в один ряд с описанными в прошлой статье библиотеками нельзя. Требования к хостингу у него будут повыше, да и процедура настройки и установки требует знания основных идей из мира java. Библиотека называется joid (полагаю, сокращение от java openid). Технически кандидат обещает, что сможет понять и версию 1.0 и 2.0 протокола openid.
2008.2.5 Openid 2b
Я продолжаю вытаскивать из пыльных закромов некоторые из своих скриптов. Сегодня пришло время рассекретить сервлет-фильтр, который поможет взглянуть на загрузку в java web-приложения файлов немного по-новому
2008.2.4 Заметки про java и загрузку файлов с помощью commons fileupload
Я раскажу о типовых ошибках возникающих при работе с кодировками в веб-приложениях и не только
2008.2.2 Java ru 1
Я продолжаю выкладку серии статей, посвященных работе в java с swing. Сегодня внимание посвящено менеджерам раскладки (правда, всего двум), спискам (Jlist и JComboBox), окнам сообщений и нескольким элементам для работы с текстом ...
2008.1.16 Про swing - часть 3
Я продолжаю выкладку серии статей, посвященных работе в java с swing. Сегодня внимание посвящено обработке событий, тому как грамотно в многопоточном приложении обновлять элементы управления, работа с рамками, курсорами ...
2008.1.11 Про swing - часть 2
Начата выкладка серии статей посвященных работе в java с swing. Сегодня внимание уделено впросу рисования с помощью Graphics и Graphics2d
2008.1.5 Про swing - часть 1
Пару дней назад у меня было немного свободного времени, и я решил тряхнуть стариной и написал на java небольшую утилиту, которая сжимает css-файлы. А почему тряхнул стариной? Так уже довольно давно не писал я java-кода работающего с regexp-ами – “пламенным мотором” этой программки – вспомнить довольно приятно. А результаты своего “графоманства” выложил на всеобщий обзор, не забыв снабдить комментариями. Ссылка на конечные исходники лежит в самом конце страницы, а пока поехали.
2007.12.25 Proj csscompactor
Сегодня я расскажу о формировании ЧПУ для java-основанных веб-проектов на примере небольшого веб-магазинчика. Это будет очень простой магазинчик, все данные в котором помещаются в одной таблице. Информация же будет выводиться на нескольких страницах, в виде иерархии разделов каталога и, собственно, товаров внутри раздела.
2007.11.2 Java cpu 1
В далеком 2003 г. я написал серию статей посвященных криптографии, проектированию пользовательских интерфейсов для java с помощью продукта (сейчас почившей в бозе конторки) похожего на xul, xaml .... Написал серию статей посвященных разработке плагинов для borland jbuilder (также почившего в бозе). Ниже перичислены ссылки на оригиналы статей опубликованных тогда на javable.com
2007.10.11 Iwasonjavable
Программа написанная на java, назначение которой создание на основании сайта в формате mediawiki
набора страниц html для последующей сборки их в единый файл в формате chm.
Преимущества использования моей программы в том, что она специализирована под mediawiki.
И в отличии от универсальных offline-менеджеров не загружает абсолютно все
(ссылки на служебные страницы, версии для печати, страницу для правки статьи, загрузки файлов,
истории правок).
Вы можете задать шаблон для будущего проекта, сохранить его, продолжать и приостанавливать работу.
В шаблоне возможно использовать стили css. Корректно обрабатываются изображения.
Программа wiki2chm служит для создания на основании сайта mediawiki единого файла chm содержащего все страницы/изображения (возможно указывать критерии отбора документов). В отличии от универсальных "сайто-выкачивальщиков", например, offline explorer, teleport, моя программа специализированна именно на mediawiki стиль документов и не загружает избыточные страницы (служебные, правка, история).
2007.9.6 Узнай больше об проекте wiki2chm
Эта статья будет несколько необычной. Если вы уже привыкли к моему стилю с множество текста, примеров исходного кода программ и пары маленьких картинок, то самое время что-нибудь поменять. Сегодня мы работаем с программой irrEdit. Это стандартный для irrlicht визуальный редактор 3d-окружения.
2007.8.20 irrlicht - часть 12
В этой статье я начал рассказ о шейдерах, пока только введение в суть дела. Я рассуждаю об прошлом, и персективах будущего в области многоядреных вычислений, графических процессоров, одним словом, рассказываю сказки. В следующих ыпусках ждите пример того как загрузить шейдеры в irrlicht
2007.8.20 irrlicht - часть 13
Эта статья начнет серию материалов посвященных разработке 3d-приложений. Будут рассмотрены общие методики проектирования и программирования, которые могут быть применены как для разработки игр, так и для разработки более серьезных приложений: например задач визуализации каких-либо физических или химических процессов, создания моделей интерьера, или графического изображения поверхностей задаваемых некоторыми математическими функциями, в общем всего что будет подвластно вашей фантазии.
Начнем, пожалуй, с выбора средств и инструментов разработки с их обоснованием.
2007.1.1 irrlicht - часть 1
В предыдущей статье серии мы определились с выбором 3d-движка, а также используемым языком программирования. Теперь пора приступать к работе.
2007.1.1 irrlicht - часть 3
В прошлый раз мы остановились на том, что выбирали 3d движок который будем использовать для этой серии уроков в качестве основы был использован ресурс http://www.devmaster.net/engines. Если вы открыли и внимательно его изучили, то нашли три интересные колонки, в которых перечислены “самые, самые” рейтинга “3d-движков”.
2007.1.1 irrlicht - часть 2
Этот проект написан на java и представляет собой утилиту которая служит для сравнения двух документов html/xhtml/xml. Необходимость его разработки была возникала тогда когда при верстке сайтов с последующей их нарезкой на шаблоны для некоторого движка шаблонификации (smarty/xsl/добавьте сами что вам нравится). Получающийся html документ не совпадает с эталонной версткой. Обычно это где нибудь не закрытий или лишний тег, найти который (если верстка не две таблицы с тремя колонками) довольно сложно. Особое внимание я уделил вопросу обработки некорректных html документов (как оригинальных так и генерируемых). Поэтому я говорю спасибо проекту TagSoap - и всем его авторам, создавшим настоящее чудо - парсер который может читать некорректные html документы и по мере своих сил их исправлять.
2007.1.1 Узнай больше об проекте сравниватель xml и других
Есть такая замечательная фирма ibm и делает она базу данных
cloudscape (вот ее адрес http://www.ibm.com/software/data/cloudscape/).
Вообще-то, ibm купила разработчиков cloudscape еще лет 5-ть назад, но сути дела это не меняет.
Т.к. база для мира java очень хорошая, и я ей пользовался некоторое время назад.
2007.1.1 вот здесь можно узнать больше об базе данных cloudscape - часть 4
Хайберия - инструмент для тех кто работает с java hibernate
и хочет исследовать какие иерархии объектов возвращаются из запросов HQL
2007.1.1 HYBERIA - hibernate explorer
Есть такая замечательная фирма ibm и делает она базу данных
cloudscape (вот ее адрес http://www.ibm.com/software/data/cloudscape/).
Вообще-то, ibm купила разработчиков cloudscape еще лет 5-ть назад, но сути дела это не меняет.
Т.к. база для мира java очень хорошая, и я ей пользовался некоторое время назад.
2007.1.1 вот здесь можно узнать больше об базе данных cloudscape - часть 3
Есть такая замечательная фирма ibm и делает она базу данных
cloudscape (вот ее адрес http://www.ibm.com/software/data/cloudscape/).
Вообще-то, ibm купила разработчиков cloudscape еще лет 5-ть назад, но сути дела это не меняет.
Т.к. база для мира java очень хорошая, и я ей пользовался некоторое время назад.
2007.1.1 вот здесь можно узнать больше об базе данных cloudscape - часть 2
Есть такая замечательная фирма ibm и делает она базу данных
cloudscape (вот ее адрес http://www.ibm.com/software/data/cloudscape/).
Вообще-то, ibm купила разработчиков cloudscape еще лет 5-ть назад, но сути дела это не меняет.
Т.к. база для мира java очень хорошая, и я ей пользовался некоторое время назад.
Признаюсь что писал данный материал я еще в далеком детстве года, эдак, 4 назад
поэтому мой литературный стиль еще не так отточен как хотелось, текст сыроват, плоховат,
и наверняка сильно устарел, но раз уж я его нашел среди своих старых материалов, то почему бы и нет.
2007.1.1 вот здесь можно узнать больше об базе данных cloudscape - часть 1
Тема сегодняшней статьи - библиотека создания пользовательских интерфейсов ASWing. Сегодня я завершаю рассказ о ASwing и на очереди рассмотрение возможностей JTree. Уделю пару слов и всплывающими подсказами (JToolTip) и работе с DnD.
2007.1.1 часть 4 про flash9 и aswing
Тема сегодняшней статьи - библиотека создания пользовательских интерфейсов ASWing. Я продолжаю рассказ о возможностях ASWing и сегодня нас ждет знакомство с всплывающими окнами, работа со шрифтами, мы создаем меню (обычное и контекстное). Не остаются в строне и такие компоненты-контейнеры как JLoadPane, JTabbedPane, JAccordion. Напоследок покажу как работать с JAdjuster и JProgressBar.
2007.1.1 часть 2 про flash9 и aswing
Эта статья завершает собой серию материалов посвященных интеграции flash8 и физики. Сегодня мы перейдем от рассмотрения взаимодействия идеальных тел, таких как точка и линия, к более сложным и приближенным к реальной жизни. Серия заканчивается не потому, что закончились интересные законы физики|математики, а из-за грядущего выхода flash cs3 с поддержкой actionscript3. Работа с которым и будет рассматриваться в других сериях статей.
2007.1.1 Про восьмой флеш и физику - часть 3
Сегодня мы продолжаем знакомиться со средствами irrlicht. Пока мы работаем только с 2d-графикой. На этот раз мы научимся выводить на экран текстовые надписи, разумеется, с русскими буквами. Также разберем возможности модуля string – содержащего функции работы со строками.
2007.1.1 irrlicht - часть 7
Сегодня мы продолжаем начатый в прошлый раз рассказ о методах интеграции физики во flash. В прошлый раз мы рассмотрели основы векторной математики. Мы узнали, что такое вектор, что такое длина вектора, и нормаль к нему, и что такое нормализованный вектор. Поняли, как векторы преобразуются в углы, и какой смысл несет скалярное произведение двух векторов. Сегодня мы завершаем рассмотрение этой темы, нам осталось разобраться с понятием движения по вектору. Также мы рассмотрим механизм определения точки, где два вектора пересекаются.
2007.1.1 Про восьмой флеш и физику - часть 2
Каждый настоящий флешер должен знать три закона Ньютона, один закон Пифагора, и иметь на книжной полке справочник по физике и математике. Здесь я пишу то там как macromedia и adobe халявят и не могут сделать нормальной поддержки физики/математики в своих продуктах, так что приходится использовать посторонние решения (open source - GO, GO !, GO !!!) или реализовывать все самим.
2007.1.1 Про восьмой флеш и физику - часть 1
В прошлый раз мы продолжили изучать продвинутые методики создания собственных функций, также работали со списками и tuple. Сегодня мы вернемся к изучению средств irrlicht. Наша цель научиться работать с механизмами взаимодействия между пользователем и средой irrlicht. Так мы научимся обрабатывать события от клавиатуры.
2007.1.1 irrlicht - часть 9
В прошлый раз мы начали изучение графических средств irrlicht. Пока мы ограничиваемся работой только с 2d-графикой, параллельно изучая на простых примерах особенности языка python|jython. В статье № 4 мы начали большой пример игры “угадай число”. Сегодня мы продолжим ее развивать с помощью пользовательских функций (udf – user defined functions).
2007.1.1 irrlicht - часть 6
Тема сегодняшней статьи - библиотека создания пользовательских интерфейсов ASWing. Сегодня я рассказываю байки о том какая полезная вещь MVC и об реализации ее в ASwing. Мы знакомимся с JList, JTable. Я рассказываю об идее Renderer-ов и Editor-ов для сложных визуальных компонентов.
2007.1.1 часть 3 про flash9 и aswing
Продолжим начатое в предыдущей статье серии рассмотрение возможностей python. В прошлый раз мы дошли только до условного оператора, позволяющего делать выбор из некоторого количества альтернатив развития алгоритма. На основании определенного условия мы совершаем одно действие, если условие выполнилось или истинно, и другое если это не так.
2007.1.1 irrlicht - часть 4
Тема сегодняшней статьи - библиотека создания пользовательских интерфейсов ASWing. Я рассказываю о менеджерах раскладок, об работе с диалоговыми окнами, создание обработчиков событий. Работа с кнопками, иконками и текстовыми полями.
2007.1.1 часть 1 про flash9 и aswing
В прошлый раз мы учились выводить на экран надписи в irrlicht, изучали методы работы со строками текста (модуль string). Сегодня мы отложим немного в сторону irrlicht и продолжим изучать собственные средства python|jython. Сложность наших примеров будет с каждым разом возрастать и нам необходимы способы оперировать большим количеством сложноорганизованной информации. Т.е. нам нужен механизм группировки множества переменных в централизованные группы и нужны способы выполнять ВЗАИМОСВЯЗАННЫЕ действия сразу над множеством этих переменных.
2007.1.1 irrlicht - часть 8
В прошлый раз мы начали знакомство с реализацией ООП в python|jython и использовали полученные знания для организации самого простого взаимодействия irrlicht с пользователем – реакции на события клавиатуры. Сегодня мы продолжаем эту тему и разберем, как обрабатывать события мыши, а также попробуем спроектировать интерфейс приложения с помощью стандартных компонентов GUI: кнопки, списки, диалоговые окна.
2007.1.1 irrlicht - часть 10
Весь предыдущий материал нас подготавливал к этой главе. Сегодня мы попробуем применить полученные нами знания в языке python, вызывая графические функции irrlicht. Сначала займемся настройкой и установкой, аккуратно пройдите все шаги.
2007.1.1 irrlicht - часть 5
Отладка в мире веб-приложений (flash/flex/ajax <-> server side)... Как я тебя не навижу.
В свое время замучанный непонятными багами разрабатываемых приложений под ajax и flash обменивающихся данными с сервером, я написал на java приложение, которое туннелирует трафик от браузера или иного веб-клиента на целевой сервер, при этом журналируя и отображая всю прошедшую информацию в удобном виде.
2007.1.1 Узнай больше об проекте туннелятор
В прошлый раз мы научились проектировать интерфейс приложения, используя стандартные компонентов GUI: кнопки, списки, диалоговые окна. Сегодня мы завершаем эту тему. Так нам осталось рассмотреть методику обработки событий от этих компонентов. А также мы попробуем загрузить в среду irrlicht уровень от quake2/3.
2007.1.1 irrlicht - часть 11
|
JavaScript
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
Эта статья завершит собой рассказ о методиках внедрения в html-страницы графиков, диаграмм, а также рассказ о javascript библиотеках, умеющих “рисовать” красивые и интерактивные изображения таких структур данных как графы и деревья. В прошлой статье я начал рассказ об одной из самых лучших библиотек подобного плана – jit.
2009.9.7 Легко и просто. Графики и диаграммы на веб-страницах. Часть 4
Согласно своему определению диаграмма (от греч. diagramma — изображение, рисунок, чертеж) - это графическое изображение, наглядно показывающее соотношение каких-либо величин. Прошлые две статьи серии были посвящены классическим видам диаграмм, т.е. линейным и столбчатым. Сегодня же я начну знакомство с парой javascript библиотек, служащих не для показа соотношения каких-либо величин, а для отображения их структуры, связей и взаимодействия.
2009.8.31 Легко и просто. Графики и диаграммы на веб-страницах. Часть 3
Я продолжаю начатый в прошлой статье рассказ о том, как с помощью javascript, без использования “тяжелых” серверных скриптов на php, или flash-роликов создавать и внедрять в html-странички картинки диаграмм и графиков Сегодня я завершу повествование об основных функциях библиотеки flot и посвящу материал всевозможным “красивостям”, т.е. тому как можно управлять внешним видом серий данных на диаграмме, настраивать внешний вид легенды диаграммы и ее фона.
2009.8.20 Легко и просто. Графики и диаграммы на веб-страницах. Часть 2
Нет лучшего и более наглядного способа отображения больших таблиц с числовыми данными, чем отображение их в виде диаграмм или графиков. Применительно к отображению диаграмм на веб-страницах у разработчиков есть и богатство подходов и конкретных инструментов, позволяющих внедрять на html-страницы не только красивые, но и обладающие некоторой долей интерактивности диаграммы. Осенью 2007 года я уже поднимал вопрос о том, как мы можем внедрять в html-страницы диаграммы. Тогда серия из двух статей была посвящена методике, когда диаграммы строились на стороне сервера, т.е. некий php-скрипт генерировал статическую картинку диаграммы и отдавал ее браузеру клиента. В ряде случаев, когда нас не устраивала статическая картинка, то использовался подход с flash-роликом внедренным в страницу, который сначала загружал с сервера поток данных в виде xml или json массива, а затем рисовал диаграмму. Сегодняшняя статья рассмотрит третий подход, когда графики строятся без использования “тяжелой артиллерии” - с помощью javascript.
2009.8.10 Легко и просто. Графики и диаграммы на веб-страницах. Часть 1
Эта статья завершит собой серию материалов, рассказывающих о том, как можно внутри обычного браузера “поселить” базу данных. “Браузерная” СУБД должна содержать две функции: сохранение данных и операции над ними (поиск, редактирование). В прошлых двух статьях я рассказывал о том, как библиотека persistjs позволяет организовать унифицированное хранение информации не зависимо от версии используемого браузера. Сегодня мы поговорим о том, что мы можем делать с сохраненной информацией.
2009.6.22 PersistJS и TaffyDB. Как поселить почти настоящую базу данных в браузер. Часть 3
Ключевой частью любого приложения, и веб-приложение не исключение, является хранение данных. Помимо того, что данные нужно сохранять между перезапусками браузера или компьютера клиента, не менее важным является наличие средств быстрого и удобного поиска информации. И эти средства есть. Есть, средства предусмотренные стандартом html5, пусть и не поддерживаемые пока всеми браузерами. Есть средства, созданные как несовместимые расширения, доступные только в определенных версиях браузеров. В крайнем случае, есть возможность организовать хранение данных с помощью flash. И для того, чтобы рядовой веб-разработчик не занимался складыванием паззла из десятка возможных альтернатив технологий хранения данных и поддерживающих их браузеров, появились javascript-библиотеки, предлагающие унифицированный интерфейс взаимодействия с доступными в браузере технологиями хранения данных.
2009.6.9 PersistJS и TaffyDB. Как поселить почти настоящую базу данных в браузер. Часть 2
Хм, база данных в браузере, да еще и “почти настоящая”, как это и, самое главное, кому это нужно? Не было бы ничего более простого, чем начать эту статью со стандартных фраз, вроде следующей: “За последние годы все более и более выраженной становится тенденция наделения веб-приложений, чертами своих старших “настольных” собратьев”. И под этим “соусом” обосновать необходимость для веб-приложения хранить данные не только на веб-сервере, но и на локальном компьютере пользователя. Затем можно быстро перейти к “немножко попрограммировать”, завершив статью рассказом о паре замечательных javascript-библиотек, вынесенных в заголовок (PersistJS и TaffyDB). Увы, все не так просто и вопрос стоит не столько “о той самой базе данных”, но и интересных направлениях в разработке ПО.
2009.6.1 PersistJS и TaffyDB. Как поселить почти настоящую базу данных в браузер. Часть 1
Эта статья завершит рассказ о компоненте TreeView. С его помощью мы можем отображать на веб-странице иерархическую информацию в форме дерева. Если для простеньких сайтов мы вполне можем обойтись загрузкой информации из статического источника данных, т.е. данные встроены в саму веб-страницу. То для серьезных приложений, работающих с большими объемами информации, такая методика не подойдет: данные должны загружаться динамически, по мере необходимости – и это тема сегодняшней статьи.
2009.3.2 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 20
Эта статья начнет рассказ о последнем из больших и сложных компонентов YUI – TreeView. Разрабатывая с помощью YUI “богатые” пользовательские интерфейсов для веб-приложений мы нуждаемся не только в средствах удобного отображения табличной информации (DataTable), но еще и информации иерархической (например, структура организации или категории товаров). Тема сегодняшней статьи – компонент TreeView – как раз и предназначен для того, чтобы показывать информацию в форме дерева.
2009.2.29 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 19
Эта статья завершит рассказ об одном из самых “больших” и полезных компонентов в библиотеке Yahoo UI - компоненте DataTable. DataTable служит для отображения на веб-страницах информации в форме таблиц. В последних двух статьях я рассказал почти обо всех возможностях DataTable. Остались не раскрытыми только те функции DataTable, которые связаны с редактированием содержимого таблицы.
В прошлой статье я рассказывал, как можно настроить правила выделения строк в таблице. Как разрешить выделять одну строку, или целый их диапазон, как реализовать динамическую подсветку строки, над которой в этот момент времени находится курсор. Все это было подготовительными шагами для того, чтобы превратить DataTable из средства только отображения табличных данных в инструмент, позволяющий редактировать данные в таблице и даже отправлять информацию назад на сервер (сохранять ее в БД).
2009.2.16 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 18
Эта статья продолжает рассказ об одном из самых часто используемых и сложных компонентов YUI – DataTable. Сегодня я расскажу о том, как загружать данные для DataTable с сервера с поддержкой paging-а, как сделать табличку более дружественной к пользователю и как работать с моделями выделения строк.
2009.2.6 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 17
Я продолжаю рассказ об одном из наиболее полезных и сложных компонентов в библиотеке Yahoo UI. В прошлый раз я показал самые основы работы с компонентом DataTable: мы научились размещать его на странице и наполнять данными из javascript-массива. Также познакомились с методиками настройки внешнего вида колонок таблицы и отдельных ячеек (formatter-ы). Сегодняшняя статья покажет то, как загружать данные для DataTable с сервера (ajax), как реализовать постраничную прокрутку таблицы и управлять ее внешним видом.
2009.1.26 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 16
В своеобразный “джентльменский набор” любой javascript-библиотеки, предназначенной для проектирования “богатых” пользовательских интерфейсов, входит компоненты для отображения табличных данных. Конечно, для большинства “домашних” сайтов нет необходимости отображать большие объемы информации в виде таблиц. Но для бизнес-приложений (учет товаров и их движения, кадровый учет …) таблицы обязательны. И не просто таблицы, а удобные: с поддержкой сортировки информации по клику на заголовке столбца, с поддержкой изменения широты столбцов, с возможностью гибко настроить внешний вид вплоть до каждой отдельной ячейки.
2008.12.29 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 15
Сегодняшняя статья лишь формально продолжает серию, рассказывающую о библиотеке javascript компонентов Yahoo UI. Разработка сложного интерфейса веб-страницы активно использующего идеи ajax, поднимает вопрос о том, как визуализировать данные, загруженные с сервера. В отдельных ситуациях можно обойтись подходом, когда на стороне сервера формируется полный фрагмент html-представления страницы. В других случаях YUI компоненты диктуют правила как должны выглядеть отображаемые в них данные. Я расскажу о том, как быть когда ни один из этих двух подходов нам не подходит.
2008.12.22 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 14
В прошлой статье серии я закончил рассказ о таком визуальном элементе в библиотеке Yahoo UI, как colorpicker (окошко для выбора цвета). Сегодня мы продолжим изучать другие визуальные компоненты: нас ждет знакомство с carousel и slider.
2008.12.15 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 13
Я продолжаю серию материалов рассказывающих про javascript-библиотеку Yahoo UI. Прошлая статья была посвящена такому элементу управления как календарь (группа календарей). Мы научились внедрять его в html-страницу, управлять параметрами внешнего вида, выполнять интернализацию интерфейса. Сегодня я завершу рассказ о календаре и перейду к рассмотрению других элементов управления.
2008.12.9 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 12
Я продолжаю рассказ о библиотеке Yahoo UI. В прошлой статье серии я рассказывал о компоненте TabView (наборе закладок). Сегодня я продолжу рассмотрение возможностей YUI именно в области построения пользовательских интерфейсов и начну рассказ про один из наиболее часто используемых элементов интерфейса - календарь.
2008.11.25 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 11
Я завершаю начатый в прошлый раз рассказ об AutoComplete (и на этом буду считать завершенной тему про ajax). Вторая часть статьи будет посвящена визуальному компоненту TabView.
2008.11.17 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 10
Я продолжаю рассказ о возможностях javascript-библиотеки Yahoo UI. Несколько прошлых статей были посвящены различным аспектам работы с ajax: работа с формами, отправка на сервер файлов, решение проблемы crossdomain запросов. Сегодня я возвращаюсь к рассмотрению визуальных элементов управления, хотя это не означает, что про ajax больше не будет сказано ни слова: многие сложные визуальные элементы YUI открываются во всей своей красе только, если данные для них загружаются асинхронно, ajax-ом.
2008.11.4 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 9
Сегодня я завершаю начатый в прошлой статье рассказ о том как использовать YUI компонент uploader для загрузки на сервейр файлов. Также продолжается рассмотрение возможностей Yahoo UI связанных с ajax: нас ждет модуль Get и HistoryManager.
2008.10.28 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 8
Я продолжаю рассказ о возможностях Yahoo UI, возможностях как в построении красивых и удобных интерфейсов пользователей, так и возможностей YUI в "общении" с сервером (ajax). Прошлая статья носила достаточно теоретический характер: я рассуждал об основных проблемах построения приложений на ajax┐-платформе. Проблемах, характерных не только для YUI, но и для любой другой javascript-библиотеки. Сегодня я расскажу еще несколько "баек" о том, как правильно строить ajax-приложения и покажу вам еще один способ загрузки файлов на сервер.
2008.10.20 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 7
YUI - известная javascript библиотека для построения "богатых" пользовательских интерфейсов веб-страниц. Однако ее изобразительные средства были бы мало полезны, если бы в состав YUI не входили специальные модули позволяющие загружать в html-страницу информацию с сервера. Так в прошлый я начал рассказ о том, как YUI поддерживает идеи ajax. Мы научились загружать и отправлять на сервер информацию в различных форматах (text, xml, json) и даже, смогли асинхронно отправить на сервер файл. Сегодняшняя статья "зашлифует" некоторые аспекты построения ajax-сайтов.
2008.10.14 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 6
Назначение (YUI) Yahoo User Interface – создание “серьезных и больших” веб-приложений. Кнопки, закладки, таблички и менюшки – все это хорошо и красиво, но главный вопрос остался открытым. Где взять данные для отображения в той таблице, как обработать и сохранить информацию, введенную пользователем в форму? Сегодня мы начинаем знакомиться с тем как YUI умеет “разговаривать” с серверными скриптами (на примере php).
2008.10.10 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 5
YUI по праву заслужила право называться одной из самых лучших javascript-библиотек. Она отлично подходит в том случае, если вам нужно создать сложный интерфейс веб-страницы: мы можем проектировать внешний вид приложения из таких “кубиков” как меню, таблицы, деревья, наборы закладок. Внешний вид интерфейса получается унифицированным с тем, к которому привык пользователь, работая с windows, а стилевые возможности css позволяют придать интерфейсу свою “изюминку”.
2008.9.30 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 4
Сегодня я продолжаю рассказывать об одной из лучших javascript-библиотек для построения сложных и “богатых” пользовательских интерфейсов - yui (yahoo user interface). В прошлых двух статьях мы изучили модули dom, selector, events, animation, logger и тем самым заложили хороший фундамент для перехода к изучению, нет, не более сложной, но более интересной теме – работе с компонентами пользовательского интерфейса.
2008.9.25 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 3
Я продолжаю начатый в предыдущей статье рассказ об известной javascript-библиотеке yui (yahoo user interface). В прошлый раз я поверхностно прошелся по модулям, из которых состоит yui, рассказал об ее истории, лицензировании. Завершив рассмотрение модуля Selector, отвечавшего за решение задач поиска в исходном дереве html-страницы некоторых узлов по условию. Научившись выполнять простейшие операции над DOM структурой html-документа, назначать обработчики событий для кнопок и других элементов интерфейса. Сейчас самое время пойти дальше, и начать рассматривать то, что и составило славу yui – развитую библиотеку визуальных компонентов.
2008.9.15 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 2
Сегодняшняя статья будет посвящена разработке с помощью javascript сложных и визуально богатых веб-приложений. Нет, даже не так, очень сложных и очень визуально богатых веб-приложений. YUI (Yahoo User Interface) по праву заслужила внимание как одна из лучших библиотек такого плана. Пришло время познакомиться с ней.
2008.9.4 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 1
Сегодня я завершаю рассказ об gears, так что сегодня я буду в основном программировать, программировать и программировать: необходимо завершить построение клиентской части записной книжки и организовать общение с сервером в обоих направлениях (загрузка информации и ее сохранение).
2008.3.4 Разработка веб-страниц с помощью google gears. Часть 4
После рассказа о sqlite я перехожу к практике: проектирую архитектуру небольшого примера - записной книжки. Сегодня фокус внимания посвящен серверной строне программирования (разработка базы данных sqlite и php-код заполняющий ее данными). Также я анализирую два подхода к передаче данных от сервера клиенту (XML vs JSON).
2008.2.23 Разработка веб-страниц с помощью google gears. Часть 3
Сегодня основной фокус внимания будет посвящен изучению возможностей sqlite - встроенной в gears базы данных. Создание, таблиц, "виртуальные" типы данных, индексы, ограничения, правка данных в таблице - все это сегодняшняя тема.
2008.02.22 Разработка веб-страниц с помощью google gears. Часть 2
Google gears это плагин для браузера (firefox, ie) позволяющий создавать веб-приложения, хранящие большие объемы пользовательских данных на локальном компьютере (в виде полноценной базы данных). Также gears представляет средства для синхронизации этой информации с сервером.
2008.2.15 Разработка веб-страниц с помощью google gears. Часть 1
Сегодня я продолжу рассказ о библиотеке mootols. Это одна из наиболее известных javascript библиотек, позволяющих вам внедрить на веб-страницу немножко эффектов, и чуть-чуть анимации. Сегодня мы завершим знакомство с обязательной частью mootols и попробуем создавать всплывающие подсказки, управлять перемещением элементов, эффектами перехода одного изображения в другое.
В некотором плане это экспериментальная статья: я решил не просто опубликовать немного текста, примеров исходных кодов и картинок, но сегодня я внедрил в код этой статьи несколько интерактивных примеров показывающих возможности mootools.
2008.1.28 Анимация и эффекты в javascript с помощью mootools. Часть 2
Эта статья начнет небольшую серию материалов посвященных “анимации” в javascript. Тема статьи подсказана вами, уважаемые читатели. В последнее время мне пришло несколько писем с вопросами как сделать с помощью javascript так, чтобы “блестело, вертелось, двигалось”. По-правде говоря, javascript для этого совсем не предназначен, но если подумать, то …
2008.1.14 Анимация и эффекты в javascript с помощью mootools. Часть 1
Я был вынужден написать данное расширение после того, как провел неутешительный анализ возможностей расширений по данной тематике найденны на mediawiki.org. Скрипт интегрирован с swfobject. Умеет управлять версией flashplayer, передавать swf-файлу произвольные параметры, корректно обрабатывает ситуацию когда flashplayer у клиента не установлен.
2008.1.13 Flvswf
Выложены исходники небольшого решения на javascript+php. Его назначение - генерация изображения дерева согласно текстовому описанию в html-коде страницы.
2007.11.19 Livetreegen
Начинающему javascript-программисту. Тюнинговая версия alert для отладки. Будет и продолжение про firebug, developer tools, m$ script editor, jash
2007.10.31 Мелкие хитрости в отладке кода с помощью alert. Часть 1
Сегодня мы продолжаем и заканчиваем знакомство с технологией асинхронных вызовов – ajax. Сегодня я смещу фокус рассмотрения материала с того “как бы хотя бы вызвать что-то” к тому “как бы это сделать удобным для пользователя”. Также я расскажу об том, как можно загружать на сервер файлы, как работать с историей браузера.
2007.10.9 Часть третья про ajax
Я продолжаю серию статей посвященных технологии ajax. Сегодня я расскажу вам о ajaj, о возможностях jquery при работе с ajax, разборе xml-документов, борьбе с crossdomain-ограничениями и кое-чем еще.
2007.10.1 Часть вторая про ajax
Выложена серия статей посвященных использованию технологии aja*. Хотя первые примеры использования
ajax появлились еще лет 8 назад, но широкое практическое применение началось относительно недавно.
Я рассказываю историю развития ajax, говорю о библиотеках с его поддержкой:
(http://jquery.com/, http://dklab.ru/lib/JsHttpRequest/). Говорю о проектировании
удобного интерфейса (адресная строка, кнопка "Назад" браузера).
Раскрываются вопросы загрузки файлов на сервер с помощью ajax и мониторингом за этим процессом.
Сегодня я начну серию материалов посвященных технологии ajax – средстве позволяющем строить сложные веб-приложения и отойти от традиционной модели “на каждое действие пользователя - загрузка новой страницы”.
2007.9.24 Часть первая про ajax
Этой статьей я продолжу серию материалов посвященных тегу canvas – специальному расширению, поддерживаемому передовыми браузерами (opera, firefox) и позволяющему вам, используя вызовы функций javascript, рисовать растровые изображения в окне браузера. Сегодня мы поговорим о работе с преобразованиями, управлении режимами наложения изображений при отрисовке.
2007.9.10 Про тег html canvas - 2
Создав для mediawiki поддержку RSS-экспорта я не остановился и решил написать еще один скрипт
(это javascript-основанное решение), который бы загружал новостную ленту с моего (или любого
другого сайта и отображал бы новости в виде всплывающей панели). Как всегда доступны исходники
проекта. Загрузка новостей идет через асинхронный вызов ajax.
2007.9.6 Узнай больше об всплывающей панели новостей RSS
Библиотека jquery (ее домашний сайт http://jquery.com/ )предоставляет способ легко работать
с документом DOM из javascript (например, возможно адресовать элементы через xpath/css-подобную
нотацию). Также есть поддержка технологии асинхронных вызовов ajax.
Реализована поддержка работы с эффектами, анимацией.
Это вводная статья об jquery. Здесь я рассказываю об его назначении, и преимуществах которые дает механизм адресации узлов элементов основанный на css/xpath-подобной нотации
2007.8.27 Часть первая про jquery
Библиотека jquery (ее домашний сайт http://jquery.com/ )предоставляет способ легко работать
с документом DOM из javascript (например, возможно адресовать элементы через xpath/css-подобную
нотацию). Также есть поддержка технологии асинхронных вызовов ajax.
Реализована поддержка работы с эффектами, анимацией.
Это статья продолжает рассказ об jquery. Сегодня я продолжу разговор о системах адресации узлов, методах обнаружения возможностей браузера, и событиях
2007.8.27 Часть вторая про jquery
В этой статье я расскажу и покажу приемы позволяющие создавать ваши собственные “расширения” возможностей браузера opera. Почти год назад вышла очередная версия этого браузера под номером 9. Среди множества изменений направленных на улучшения скорости и удобства работы особняком стоят widget-ы. До этого момента opera неизменно проигрывала firefox долю на рынке за счет того, что для последнего существует множество расширений/плагинов реализующих некоторые дополнительные возможности, которыми изначально firefox не обладал. Может быть пришло время изменить ситуацию ... вряд-ли...
2007.1.1 Виджеты для оперы часть 1
Эта статья начнет серию материалов посвященных особой возможности html – тегу canvas.
Этот тег необычен тем, что не управляет параметрами визуализации текста, как, например, “это слово будет выделено курсивом”, а дает возможность нарисовать на странице любое изображение используя команды javascript.
2007.1.1 Про тег html canvas - 1
В этой статье я расскажу и покажу приемы позволяющие создавать ваши собственные “расширения” возможностей браузера opera. Почти год назад вышла очередная версия этого браузера под номером 9. Среди множества изменений направленных на улучшения скорости и удобства работы особняком стоят widget-ы. До этого момента opera неизменно проигрывала firefox долю на рынке за счет того, что для последнего существует множество расширений/плагинов реализующих некоторые дополнительные возможности, которыми изначально firefox не обладал.
Может ли что-нибудь изменить добавление widget-ов?
2007.1.1 Opera-widget первая статья серии
|
Управление проектами
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
Эта статья завершит собой серию материалов посвященных рассказу о том, как teamcity помогает управлять проектами разработки программного обеспечения и, в частности, автоматизирует процесс сборки проекта, запуска тестов и интегрирует эти шаги в жизненный цикл разработки приложения. Прошлые две статьи были посвящены рассказу о том, какое место занимают в ходе разработки программного обеспечения продукты класса “build management and continuous integration ” вообще и teamcity в частности. Мы разобрались с основными понятиями teamcity, научились создавать билд-конфигурации и запускать их на выполнение. Этого должно быть достаточно для повседневной работы, так что сегодняшней статье осталось только “зашлифовать” некоторые не раскрытые моменты.
2009.8.03 Управление сборкой проектов вместе с teamcity. Часть 3
Я продолжаю рассказ о teamcity и о том, как с его помощью мы можем вынести процесс управления разработкой программного обеспечения на новый уровень. Технически, teamcity относится к классу продуктов build management and continuous integration. Такие инструменты используются отделом управления качеством и предназначены для того, чтобы извлечь из cvs/svn-репозитория последнюю версию исходников проекта и собрать проект (билд). Затем билд будет подвергнут набору автоматических и ручных тестов.
2009.7.27 Управление сборкой проектов вместе с teamcity. Часть 2
В последнее время я написал несколько серий статей посвященных различным аспектам управления процессом разработки программного обеспечения. Мы научились использовать maven для унифицированного представления проекта, а для хранения перечня всех заданий, возникающих в ходе разработки, мы использовали mantis. Сегодня пришло время рассказать еще об одной важной сфере в профессиональной разработке программного обеспечения – создание специализированного сервера, автоматизирующего задачу сборки проекта в единое целое. Так мы рассмотрим методики интеграции этого билд-сервера в существующую инфраструктуру предприятия (svn-репозитории).
2009.7.20 Управление сборкой проектов вместе с teamcity. Часть 1
Я продолжаю и завершаю рассказ об Mantis – популярном средстве управления проектом разработки программного обеспечения. Сфера компетенции mantis – это ведение единой базы данных, в которой хранится вся история разработки проекта, список всех выданных заданий (как багов так и фич). Каждому заданию соответствует карточка учета, благодаря которой всегда можно узнать, как и кем было выдано задание, кто отвечал за его реализацию, кто проверил качество выполнения работы и завизировал ее. К каждому заданию присоединен список связанных артефактов: файлов с примерами тестовых данных, скриншоты, записи о том какие файлы в CVS/SVN были изменены в ходе реализации задания.
2009.7.7 Mantis. Охотник на BUG-и. Часть 2
В разработке программного обеспечения важнейшую часть занимает вопрос координации усилий всех участников, вопрос обмена ими информацией, учета и планирования работ. Не секрет, что хороший продукт создается, прежде всего, не индивидуальным мастерством отдельных программистов, а четкой последовательностью шагов, начиная от сбора требований заказчиков и анализа, далее к построению архитектуры приложения, собственно, программированию и завершающим этапом идет оценка качества. Для того, чтобы связать эти этапы в живую цепь нужны специальные инструменты. И сегодня мы поговорим об одном из подобных средств – mantis.
2009.6.28 Mantis. Охотник на BUG-и. Часть 1
Этой статьей я завершаю рассказ об maven и о том, как он позволяет управлять проектами разработки программного обеспечения. Сегодня мы поговорим о том, как выполнить подготовку разработанного вами проекта к поставке заказчику. Тема эта сложна и включает в себя множество аспектов. Начинается все с подготовки исполнимого файла приложения со всеми нужными для его работы ресурсами и библиотеками. Затем нужно подготовить документацию, создать инсталлятор для приложения. И, наконец, выполнить доставку приложения заказчику или же, как вариант, скопировать на сервер в internet, откуда приложение может скачать любой желающий.
2009.5.25 Наводим порядок в разработке ПО вместе с maven. Часть 8
Рассказ об maven был бы не полон, если бы я умолчал о том как maven умеет интегрироваться с ant. Также я много рассуждаю на тему средств записи сценария сборки проекта и о том, что ant это не всегда хорошо.
2009.5.8 Наводим порядок в разработке ПО вместе с maven. Часть 7
Я продолжаю начатый в прошлой статье рассказ о том, как maven умеет работать с многомодульными проектами. В качестве примера я пытаюсь создать enterprise приложение на java, состоящее трех модулей: business-logic (логика работы приложения), web-interface (пользовательский интерфейс) и, собирающий предыдущие две части в единое целое, модуль application.
2009.4.29 Наводим порядок в разработке ПО вместе с maven. Часть 6
Я продолжаю рассказ об maven, и о том, как он упрощает разработку программных продуктов, задавая четкий ритм и последовательность шагов, через которые проходит жизненный цикл проекта. В прошлый раз мы завершили рассказ о самой большой и известной части maven – управление зависимостями. Сегодня нас ждет продолжение, и мы поговорим о создании многомодульных проектов.
2009.4.15 Наводим порядок в разработке ПО вместе с maven. Часть 5
Одна из самых широко разрекламированных и приятных возможностей maven – это управление зависимостями. Описав в файле pom.xml список артефактов нужных для работы проекта, мы перекладываем на maven все заботы связанные с загрузкой библиотек из internet, разрешение транзитивных зависимостей. И можем сосредоточиться на, собственно, разработке проекта, написании кода. Увы, но задачу разрешения зависимостей не всегда можно выполнить автоматически, т.к. существует вероятность конфликтов различных версий библиотек. Как находить и устранять такие конфликты – это как раз тема сегодняшнего материала.
2009.4.6 Наводим порядок в разработке ПО вместе с maven. Часть 4
Я продолжаю рассказ об maven – инструменте, с помощью которого мы можем организовать унифицированное, не зависящее от конкретной среды разработки (IDE) представление проекта java. В прошлых двух статьях я пробежался по основным “вкусностям” maven: управление зависимостями проекта, способности maven загружать из internet и сохранять в локальном репозитории артефакты. Также я рассказал о жизненном цикле maven, о том из каких фаз он состоит, и как мы можем сами инициировать определенные этапы из “жизни” проекта. Все это было, и было, скажем честно, очень поверхностно: некоторые из аспектов, например, упаковка проекта были практически не затронуты, и сегодня пришло время это исправить. Я снова попытаюсь создать проект maven “с нуля” и пройтись по всем его шагам, вот только сделаю это более основательно и подробно.
2009.4.1 Наводим порядок в разработке ПО вместе с maven. Часть 3
Я продолжаю рассказ об maven – инструменте управления проектом, составляющими его модулями, зависимостями модулей от различных библиотек-артефактов и многим другим. Maven имеет несколько “лиц” или областей применения, которые будут раскрываться перед вами по мере изучения maven, плагинов для maven и смежных инструментов.
Сегодня я продолжаю рассказ о начатом в прошлой статье примере создания проекта maven, его настройки. Так, разобравшись с основными параметрами проекта (название, описание, список авторов), самое время перейти к описанию зависимостей и тому, как инициировать различные события из жизненного цикла проекта.
2009.3.23 Наводим порядок в разработке ПО вместе с maven. Часть 2
Разработка программного обеспечения не самая простая наука. В общем объеме времени, отданного на создание продукта, написание, непосредственно, программного кода занимает далеко не самую большую долю. По мере увеличения сложности создаваемого продукта, финансовых и временных затрат, опережающими темпами растут затраты на анализ требований, планирование и организацию коллективной работы, на повышение качества. Почти года назад я написал несколько серий статей посвященных не, собственно, программированию, а различным технологиям и инструментам, поддерживающим процесс разработки ПО. Это были статьи, рассказывающие об управлении версиями документов (SVN и perforce), ведения списка задачи и багов в JIRA, хоть и поверхностно, но я прошелся и по вопросам тестирования веб-проектов с помощью badboy и jmeter. Сегодня пришло время раскрыть еще один инструмент (maven), с помощью которого ход разработки ПО должен стать более управляемым.
2009.3.9 Наводим порядок в разработке ПО вместе с maven. Часть 1
Я продолжаю рассказ об двух полезных для любого java (а может и не только) программиста или тестировщика утилитах: dbunit и liquibase. В прошлый раз я начал рассказ о том, как с помощью dbunit можно создать тестовый набор данных в формате xml. Сегодня же нам нужно разобраться с тем, как импортировать эти данные в БД при запуске тестов и то, как интегрировать dbUnit и jUnit.
2008.8.13 Пишем и тестируем код, работающий с БД, вместе с DBUnit и LiquiBase. Часть 2
Сегодняшняя статья рассказывает об unit-тестировании и такой его части как тестирование кода работающего с базой данных. Одним из наиболее популярных средств для разработки юнит-тестов в среде java является dbUnit. Назначение же liquiBase - поддержать процесс развития БД, внесения в ее изменений.
2008.7.27 Пишем и тестируем код, работающий с БД, вместе с DBUnit и LiquiBase. Часть 1
Сегодня я завершаю рассказ о JIRA, системе управления проектами, задачами не только в сфере разработки ПО но и во многих других областях. Основное внимание будет сегодня посвящено интеграции JIRA с системами управления версиями файлов и мониторингу за выполняемой работой, оценкой трудозатрат и планированию.
2008.7.19 JIRA: Все, что пожелаешь, Хозяин. Часть 4
JIRA – это не просто система управления проектами, журнал учета обнаруженных ошибок, контроля за выполнением работ и средство для общения предприятия с клиентами – это настоящий конструктор, позволяющий создать приложение, путь не вашей мечты, но близкое к тому бизнес-процессу, который есть у вас. Основной акцент я делаю на применение JIRA в сфере разработки ПО. Но с таким же успехом можно применить JIRA и для управления другими видами проектов.
2008.7.13 JIRA: Все, что пожелаешь, Хозяин. Часть 3
Я продолжаю рассказ об JIRA. Управление процессом разработки ПО, ведение журнала пожеланий, задач, обнаруженных багов – все это сфера применения JIRA. В прошлый раз я показал, как установить JIRA у себя на компьютере, рассказал о политике безопасности. Теперь самое время создать проект, разобраться в его составляющих, попробовать пройтись по шагам Жизненного Цикла.
2008.7.6 JIRA: Все, что пожелаешь, Хозяин. Часть 2
Управление проектами – не простая наука, для этого нужны знания (и еще больше опыт) во множестве сфер связанных и с социальными, техническими, экономическими технологиями. Я ставлю перед собой более простую задачу: рассказать об “управлении желаниями” и программными продуктами, которые могут вам помочь вести учет пожеланий клиентов, контролировать их выполнение в сфере разработки ПО.
2008.6.16 JIRA: Все, что пожелаешь, Хозяин. Часть 1
Это статья является логическим продолжением серии материалов под названием “Тестируй веб-сайты вместе с Badboy”. Как видите, названия статей похожи, отличия только в конкретных программных продуктах, которые будут использованы. Сегодня я расскажу, что такое Jmeter, как он соотносится с badboy.
2008.6.12 Тестируй веб-сайты вместе с Jmeter
Это последняя статья, которая рассказывает о badboy. Сегодня мы завершим рассмотрение методик тестирования сайта под “нагрузкой”, рассмотрим несколько “продвинутых” методик создания сценария тестирования.
2008.6.2 Тестируй веб-сайты вместе с Badboy. Часть 3
Я продолжаю рассказ об badboy, инструменте похожем на большой магнитофон. Badboy запишет ваши действия с веб-сайтом (переходы по страницам, нажатия кнопок). Затем записанную последовательность действий вы сможете “проиграть”, чтобы проверить качество реализации сайта и то, как он работает под “нагрузкой”.
2008.5.29 Тестируй веб-сайты вместе с Badboy. Часть 2
Разработка программного обеспечения не самая простая наука. И уж тем более не сводится к знанию языков программирования и разных библиотечек с готовыми наработками. Если создавать что-то не “для себя” или “на потеху”, а заниматься разработкой ПО профессионально, зарабатывать деньги, то необходимо качественно “пройтись” по всем шагам жизненного цикла ПО: от планирования до сопровождения. Сегодня рассказ будет посвящен такому этапу как тестирование.
2008.5.26 Тестируй веб-сайты вместе с Badboy. Часть 1
Сегодня я завершаю рассказ об SVN. В прошлой статье я начал рассказ о средствах работы с SVN без командной строки – с помощью графического интерфейса (программы TortoiseSVN и SmartSVN). После того как мы научились в TortoiseSVN вести проект, помещать и извлекать его из хранилища, добавлять/удалять файлы, нам осталось только разобраться с ветками, слияниями, разрешениями конфликтов. Последняя тема этой серии материалов - SmartSVN (не идеальный, но очень неплохой svn-клиент).
2008.5.16 Системы управления версиями для программистов и не только. Часть 5
Сегодня я продолжу рассказ об SVN. Управление версиями документов является важной задачей нужной почти для каждого, кто работает в сфере IT. Самое главное, чтобы сложности, возникающие на этапе “понять и привыкнуть”, не помешали вам научиться хранить документы в SVN, видеть историю изменений и оценивать ход работы. Поэтому наличие удобных графических средств является ключевым фактором, для того чтобы сделать “быстрый старт” и не отпугнуть от СУВ новичков.
2008.5.9 Системы управления версиями для программистов и не только. Часть 4
Я продолжаю рассказ о системах управления версиями файлов (далее СУВ). Сегодня я завершу рассказ об основных понятиях СУВ: мы поработаем с ветвями и тегами. Попробуем создать репозиторий доступный для коллективной работы и настроить политику безопасности.
2008.5.1 Системы управления версиями для программистов и не только. Часть 3
Я продолжаю рассказ о системах управления версиями файлов (далее СУВ). В прошлый раз я сделал введение в суть проблемы, описал, кто такие СУВ и какие задачи они решают. Сегодняшний материал будет сугубо-практический и продолжит рассмотрение методик работы с репозиторием и помещенным в него проектом.
2008.4.19 Системы управления версиями для программистов и не только. Часть 2
Часто говорят, что системы управления версиями (далее, СУВ) нужны только программистам, и только тем из них кто работает в команде. Т.е. когда кодом владеет не один “избранный”, а любой программист в команде может взять и внести изменения в код. Говорят, что разобраться в СУВ практически не возможно: все эти ветки, ревизии, теги, репозитории слишком сложны и непонятны. Будем разбивать заблуждения.
2008.4.5 Системы управления версиями для программистов и не только. Часть 1
|
Базы Данных
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
Назначение (YUI) Yahoo User Interface – создание “серьезных и больших” веб-приложений. Кнопки, закладки, таблички и менюшки – все это хорошо и красиво, но главный вопрос остался открытым. Где взять данные для отображения в той таблице, как обработать и сохранить информацию, введенную пользователем в форму? Сегодня мы начинаем знакомиться с тем как YUI умеет “разговаривать” с серверными скриптами (на примере php).
2008.10.10 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 5
YUI по праву заслужила право называться одной из самых лучших javascript-библиотек. Она отлично подходит в том случае, если вам нужно создать сложный интерфейс веб-страницы: мы можем проектировать внешний вид приложения из таких “кубиков” как меню, таблицы, деревья, наборы закладок. Внешний вид интерфейса получается унифицированным с тем, к которому привык пользователь, работая с windows, а стилевые возможности css позволяют придать интерфейсу свою “изюминку”.
2008.9.30 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 4
Сегодня я продолжаю рассказывать об одной из лучших javascript-библиотек для построения сложных и “богатых” пользовательских интерфейсов - yui (yahoo user interface). В прошлых двух статьях мы изучили модули dom, selector, events, animation, logger и тем самым заложили хороший фундамент для перехода к изучению, нет, не более сложной, но более интересной теме – работе с компонентами пользовательского интерфейса.
2008.9.25 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 3
Я продолжаю начатый в предыдущей статье рассказ об известной javascript-библиотеке yui (yahoo user interface). В прошлый раз я поверхностно прошелся по модулям, из которых состоит yui, рассказал об ее истории, лицензировании. Завершив рассмотрение модуля Selector, отвечавшего за решение задач поиска в исходном дереве html-страницы некоторых узлов по условию. Научившись выполнять простейшие операции над DOM структурой html-документа, назначать обработчики событий для кнопок и других элементов интерфейса. Сейчас самое время пойти дальше, и начать рассматривать то, что и составило славу yui – развитую библиотеку визуальных компонентов.
2008.9.15 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 2
Сегодняшняя статья будет посвящена разработке с помощью javascript сложных и визуально богатых веб-приложений. Нет, даже не так, очень сложных и очень визуально богатых веб-приложений. YUI (Yahoo User Interface) по праву заслужила внимание как одна из лучших библиотек такого плана. Пришло время познакомиться с ней.
2008.9.4 Сложные интерфейсы на javascript вместе Yahoo UI. Часть 1
Сегодня я завершаю рассказ об gears, так что сегодня я буду в основном программировать, программировать и программировать: необходимо завершить построение клиентской части записной книжки и организовать общение с сервером в обоих направлениях (загрузка информации и ее сохранение).
2008.3.4 Разработка веб-страниц с помощью google gears. Часть 4
После рассказа о sqlite я перехожу к практике: проектирую архитектуру небольшого примера - записной книжки. Сегодня фокус внимания посвящен серверной строне программирования (разработка базы данных sqlite и php-код заполняющий ее данными). Также я анализирую два подхода к передаче данных от сервера клиенту (XML vs JSON).
2008.2.23 Разработка веб-страниц с помощью google gears. Часть 3
Сегодня основной фокус внимания будет посвящен изучению возможностей sqlite - встроенной в gears базы данных. Создание, таблиц, "виртуальные" типы данных, индексы, ограничения, правка данных в таблице - все это сегодняшняя тема.
2008.02.22 Разработка веб-страниц с помощью google gears. Часть 2
Google gears это плагин для браузера (firefox, ie) позволяющий создавать веб-приложения, хранящие большие объемы пользовательских данных на локальном компьютере (в виде полноценной базы данных). Также gears представляет средства для синхронизации этой информации с сервером.
2008.2.15 Разработка веб-страниц с помощью google gears. Часть 1
Давным-давно я выложил в Интернете “обучающую машину mysql”. Обучающая машина представляет собой интерактивный метод проб. Вы читаете текст задания: “например, найти все товары, которые проданы за последние 3 месяца”. Затем вводите код sql-запроса (того, как вы думаете должен находить нужную информацию) и жмете кнопку “проверить”. Если выборки совпадают, то переходите к следующему вопросу, иначе думаете что же вы сделали не так. Если вы знаете что такое http://sql-ex.ru, то фактически это его младший брат, ориентированный на, именно, mysql.
Я решил возродить проект и привести его в порядок: переписал пользовательский интерфейс, добавил средства статистики, обсуждения вопросов, голосования “оцени сложность задачи” и кое-что еще. Вопросов пока стало меньше, но по мере их “вычитки” они будут публиковаться на сайте.
2008.1.2 Obmach mysql
Это последняя часть в серии посвященной методам работы с базами данных из php. В прошлый раз я начал рассказ о библиотеке propel и паттерне Data Mapper. Я рассказал о слабых и сильных сторонах этого подхода, описал модель базы данных (таблицы и их связи) на которой мы будем практиковаться, так что осталось завершить пример и немного попрограммировать: попробовать искать записи на основании сложных и не очень условий, добавлять новые, редактировать и удалять записи.
2007.12.20 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 8
В прошлый раз я обещал начать рассказ о паттерне Data Mapper и поддерживающей его библиотеке propel. Эта библиотека будет последней, которую мы рассмотрим в рамках серии посвященной доступу к БД из php. Естественно, что заслуживающих внимание библиотек еще очень много, но все базовые идеи (паттерны), которые лежат в их основе, мы уже прошли, разобрали наиболее ярких представителей каждого из подходов, так что пора завершать.
2007.12.12 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 7
В прошлый раз я начал рассказ о паттернах Active Record и Row Data Gateway. Сегодня мы продолжим и завершим рассмотрение возможностей библиотеки adodb (ставшей стандартом де-факто и применяемой в разработке множества известных и не очень веб-приложений: postnuke, xaraya, moodle). Библиотеке, которая позволяет нам писать код быстрее и с меньшим числом ошибок. Также я уделю внимание вопросу оценки производительности вашего sql-кода.
2007.12.3 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 6
Сегодня мы продолжим знакомство с передовыми методиками доступа к базам данных. На очереди рассмотрение паттернов Active Record и Row Data Gateway. Также я расскажу о новой библиотеке adodb.
2007.11.27 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 5
Сегодня мы продолжим и завершим знакомство с библиотекой dbSimple. Мне осталось закончить начатый в прошлой статье рассказ о кэшировании, показать пару фокусов с преобразованием результата запроса в привычные для php массивы. Также я скажу пару слов о memcached.
2007.11.20 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 4
Сегодня мы продолжим знакомство с паттернами доступа к данным и библиотеками php реализующими эти паттерны или просто помогающими делать нам меньше ошибок. В прошлый раз я начал рассказывать о библиотеке dbSimple (http://dklab.ru), сегодня мы продолжим ее рассмотрение и поднимем еще парочку интересных вопросов “качественного доступа к СУБД”.
2007.11.12 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 3
Сегодня мы продолжим разговор об различных методиках организации доступа к базам данных из php. Я буду начну рассказ о библиотеке dbSimple от Д.Котерова, также внимание будет уделено вопросам защиты кода от sql-injection.
2007.11.5 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 2
Сегодня я расскажу о формировании ЧПУ для java-основанных веб-проектов на примере небольшого веб-магазинчика. Это будет очень простой магазинчик, все данные в котором помещаются в одной таблице. Информация же будет выводиться на нескольких страницах, в виде иерархии разделов каталога и, собственно, товаров внутри раздела.
2007.11.2 Java cpu 1
Добавлена статья посвященная основам работы с mysql из c/c++. Данный материал писался еще в далеком 2004 г. И тогда все приведенные примеры кода отлаживались на visual c++ 6.0 и (возможно, borland cbuilder++). Также возможно, что в настоящий момент некоторые из его положений устарели - но я все же надеюсь, что кому-нибудь они будут полезны. В планах написать заметку посвященную zeos dbo - библиотеке для работы с mysql-сервером из delphi/c++ builder.
2007.11.1 Mysql and langs 1
Выложена серия статей посвященных методикам разработки приложений получающих доступ к базам данных
из php. Материал включает в себя общие фразы про то что такое паттерны, абстракция,
кэширование, защита от sql-injection и многое другое. Разумеется что после порции теории
я рассказываю об конкретных библиотеках позволяющих реализовать ту или иную функцию, паттерн,
или просто хорошую идею.
Сегодня мы поговорим о методиках доступа к базам данных из php. Сегодня я начну с философских размышлений, почему так много библиотек решающих сходные задачи и почему программисты любят создавать свои собственные “квадратные велосипеды”. Упомяну про абстракцию, паттерны, enterprise-системы. В общем программировать сегодня ничего не будем - такое легкое чтиво на ночь.
2007.10.29 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 1
Это библиотека которую я использовал и использую последние годы в тех проектах, которые я пишу на php. Библиотека самописная и достаточно интересная - она отлична от adodb, propel и более похожа на ado, построена на паттерне ActiveRecord. Также я рассказываю филофские байки о велосипедных фабриках: бесполезных, ненужных, глупых, непонятно зачем и для кого сделанных библиотеках.
2007.10.10 Mydblib
Это проект написан на php и представляет собой инструмент для разработчика баз данных, подобный всем вам знакомым javadoc, asdoc, phpdoc (утилитам получающим на вход код программы на некотором языке X с коментариями и формирующий соответственно документацию об исходниках в виде html, pdf или чем то еще, т.е. совмещается разработка кода с документированием (коментарии это все же хорошо) и создание отчетной (по крайней мере ее части) документации).
Для баз данных такого в явном виде нет. Но я сделал утилитку которая подсоединяется к базе данных и выводит в виде древообразной структуры информацию об таблицах и полях, затем вы жмете на кнопку напротив этой самой таблицы или поля, появляется окно html редактора, в нем вы пишите примечания об полях, возможно использовать специальные jump ссылки на другие таблицы и поля.
Завершив сей ратный подвиг документирования вы уже жмете на кнопку сгенерировать документацию, и все что вы вводили формируется в виде упаковки html файлов (с примерами данных или без).
2007.1.1 Узнай больше об проекте документатор
Хайберия - инструмент для тех кто работает с java hibernate
и хочет исследовать какие иерархии объектов возвращаются из запросов HQL
2007.1.1 HYBERIA - hibernate explorer
Есть такая замечательная фирма ibm и делает она базу данных
cloudscape (вот ее адрес http://www.ibm.com/software/data/cloudscape/).
Вообще-то, ibm купила разработчиков cloudscape еще лет 5-ть назад, но сути дела это не меняет.
Т.к. база для мира java очень хорошая, и я ей пользовался некоторое время назад.
2007.1.1 вот здесь можно узнать больше об базе данных cloudscape - часть 4
Есть такая замечательная фирма ibm и делает она базу данных
cloudscape (вот ее адрес http://www.ibm.com/software/data/cloudscape/).
Вообще-то, ibm купила разработчиков cloudscape еще лет 5-ть назад, но сути дела это не меняет.
Т.к. база для мира java очень хорошая, и я ей пользовался некоторое время назад.
2007.1.1 вот здесь можно узнать больше об базе данных cloudscape - часть 2
Обучающую машину я сделал для того чтобы мучать ленивых студентов. Она построена по приниципу: задача -> вариант ответа в виде команды sql/mysql -> сообщение об ошибке,или что гораздо реже следующий вопрос.
А кроме шуток, идея в том, чтобы создать интерактивный учебник MYSQL. Здесь нет текстовых учебных пособий и руководств, благо их очень много в сети, и вы их легко достанете и может даже прочитаете. Здесь просто форма для ввода
кода SQL-запроса: вы читаете вопрос, вводите ваш вариант ответа и жмете кнопку **сверить результаты**. Если все в порядке, то
переходите к следующему вопросу, если нет - вы видите какой должен быть ответ (сама выборка, естественно, а не код SQL).
Затем вы думаете, что же сделали не так, и пробуете следующий вариант ответа.
Считаю важной частью обучающей машины возможность обсуждения вопросов: пока все это еще несколько сырое,
как в плане формулировок вопросов, так и ответов (может быть мои, как бы правильные, варианты ответов не совсем верны).
Планируется также возможность создания Вами же уважаемые пользователи собственных
наборов задач, главное чтобы это все не затихло.
2007.1.1 Старая версия обучающей машины mysql
Есть такая замечательная фирма ibm и делает она базу данных
cloudscape (вот ее адрес http://www.ibm.com/software/data/cloudscape/).
Вообще-то, ibm купила разработчиков cloudscape еще лет 5-ть назад, но сути дела это не меняет.
Т.к. база для мира java очень хорошая, и я ей пользовался некоторое время назад.
2007.1.1 вот здесь можно узнать больше об базе данных cloudscape - часть 3
Я продолжаю знакомить вас с различными технологиями в мире flash позволяющими быстрее и проще (без глупых ошибок) создавать сложные приложения. Тема сегодняшнего материала – это организация взаимодействия между flash и серверными скриптами написанными на php.
2007.1.1 Часть первая и единственная про flash8 и swx
Есть такая замечательная фирма ibm и делает она базу данных
cloudscape (вот ее адрес http://www.ibm.com/software/data/cloudscape/).
Вообще-то, ibm купила разработчиков cloudscape еще лет 5-ть назад, но сути дела это не меняет.
Т.к. база для мира java очень хорошая, и я ей пользовался некоторое время назад.
Признаюсь что писал данный материал я еще в далеком детстве года, эдак, 4 назад
поэтому мой литературный стиль еще не так отточен как хотелось, текст сыроват, плоховат,
и наверняка сильно устарел, но раз уж я его нашел среди своих старых материалов, то почему бы и нет.
2007.1.1 вот здесь можно узнать больше об базе данных cloudscape - часть 1
|
MediaWiki
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
Никто не будет спорить с тем, что mediawiki хоть и мощная система, однако и очень прожорливая. До недавнего момента этот факт меня совершенно не интересовал (посещаемость моего сайта в среднем не превосходит 150 человек в сутки, а время генерации страницы плавало около 1.5-2 секунд). Однако вот пришло ко мне письмо, где интересовались способами "разгона" mediawiki. Что же, задача актуальная и необходимая. К тому же я надеюсь, что посещаемость моего ресурса будет расти, и рано или поздно (а это всегда случается на виртуальных хостингах) мне должно будет придти письмо от провайдера, где попросят умерить аппетиты. Учитывая что дело было в субботу утром, и почти целый день был свободен, то я решил "стряхнуть пыль" с php и "слепить" что-нибудь такое этакое.
2008.9.21 Кэш Для Вики. Часть 2
Сегодня я устрою тест еще одному серверу и consumer-у openid. Этот кандидат прибыл с экзотического острова Явы, так что ставить его в один ряд с описанными в прошлой статье библиотеками нельзя. Требования к хостингу у него будут повыше, да и процедура настройки и установки требует знания основных идей из мира java. Библиотека называется joid (полагаю, сокращение от java openid). Технически кандидат обещает, что сможет понять и версию 1.0 и 2.0 протокола openid.
2008.2.5 Openid 2b
Я решил поизучать openid и добавить его поддержку к себе на сайт. Как известно лучше всего усваивается материал, который проговаривается, поэтому я решил публиковать свои заметки по ходу изучения этой технологии
2008.1.18 Openid_1
Я решил поизучать openid и добавить его поддержку к себе на сайт. Сегодня я устроил большой тест нескольким провайдерам openid и openid consumer-ам.
2008.1.18 Openid 2a
Я решил поизучать openid и добавить его поддержку к себе на сайт. Сегодня я устроил большой тест нескольким провайдерам openid и openid consumer-ам.
2008.1.18 Openid_2a
Я решил поизучать openid и добавить его поддержку к себе на сайт. Как известно лучше всего усваивается материал, который проговаривается, поэтому я решил публиковать свои заметки по ходу изучения этой технологии
2008.1.18 Openid 1
Я был вынужден написать данное расширение после того, как провел неутешительный анализ возможностей расширений по данной тематике найденны на mediawiki.org. Скрипт интегрирован с swfobject. Умеет управлять версией flashplayer, передавать swf-файлу произвольные параметры, корректно обрабатывает ситуацию когда flashplayer у клиента не установлен.
2008.1.13 Flvswf
Переезд дело муторное, хоть в мире реальном, хоть в мире виртуальном. Прошло уже почти три недели с того, как я сменил хостинг и перенес сайт, но до сих пор я нахожу ошибки. Причем там где, казалось бы, ошибки в принципе не могли возникнуть. Найдя очередной “баг” и исправив его, решил написать маленькую заметку (по теме) про php и zip-архивы.
2007.12.26 Про работу в php с архивами 1
Насмотревшись на "невероятную" посещаемость моего сайта в google analytics (черт, как мне нравится эта штука!)
я решил создать сервис-надстройку над google analytics. К сожалению google не представляет никакого api для доступа к
своим отчетам. Поэтому без пары фокусов и работы ручками не обошлось
2007.9.27 Google chartlive
Создав для mediawiki поддержку RSS-экспорта я не остановился и решил написать еще один скрипт
(это javascript-основанное решение), который бы загружал новостную ленту с моего (или любого
другого сайта и отображал бы новости в виде всплывающей панели). Как всегда доступны исходники
проекта. Загрузка новостей идет через асинхронный вызов ajax.
2007.9.6 Узнай больше об всплывающей панели новостей RSS
Программа написанная на java, назначение которой создание на основании сайта в формате mediawiki
набора страниц html для последующей сборки их в единый файл в формате chm.
Преимущества использования моей программы в том, что она специализирована под mediawiki.
И в отличии от универсальных offline-менеджеров не загружает абсолютно все
(ссылки на служебные страницы, версии для печати, страницу для правки статьи, загрузки файлов,
истории правок).
Вы можете задать шаблон для будущего проекта, сохранить его, продолжать и приостанавливать работу.
В шаблоне возможно использовать стили css. Корректно обрабатываются изображения.
Программа wiki2chm служит для создания на основании сайта mediawiki единого файла chm содержащего все страницы/изображения (возможно указывать критерии отбора документов). В отличии от универсальных "сайто-выкачивальщиков", например, offline explorer, teleport, моя программа специализированна именно на mediawiki стиль документов и не загружает избыточные страницы (служебные, правка, история).
2007.9.6 Узнай больше об проекте wiki2chm
По воле судьбы первой новостью доступной по rss feeds стала новость об добавлении на сайт этой самой поддержки rss. Для реализации этой возможности я создал собственное расширение, и предлагаю использовать его всем желающим
2007.8.17 Узнай больше об плагине rss для mediawiki
Я пишу расширения функий mediawiki, которых не нашел в стандартном репозитарии. Первый на рассмотрении это плагин: sourceshighlighter - его назначение это предъявление исходных текстов программ написаннах на разных языках программирования. Это надстройка над geshi и отличается от множества подобных решений тем, что служит для оформления не одного кусочка исходной страницы, а встраивает внутрь страницы настоящий файловый менеджер по папке с исходниками некоторого проекта. Вы видите файлы в составе проекта, жмете на файл и открывается страница с подсвеченным исходным кодом данного файла. По сути, это решение "скопировал папку проекта на сервер - и забыл".
2007.1.1 Узнай больше об подсветке синтакиса - плагине
Спамеры - это спамеры, дрянь одним словом. До текущего дня я довольно наплевательски относился к их усилиям: откровенно говоря, я не видел большой беды в том, что кто-то вставит пару ссылок на свой какой-то дрянь сайт (mediawiki все равно защищает ссылки атрибутом nofollow, так что потери позиций в поисковых машинах я не боялся). Некоторые записи были забавны своей неприкрытой ненавистью к тем, кто способен создавать что-то новое, а не размазывать свое дерьмо по чужим ресурсам.
Но это было до сих пор. Новая тенденция меня крайне не радует, если раньше все обходилось парой ссылок, то теперь содержимое страниц удаляется полностью и вместо них вставляется ... ну что может вставить на страницу спамер всем ясно.
Поэтому я принимаю меры:
1. Все изменения, которые вызвали у меня хоть малейшие подозрения, были отменены (спасибо всем, кто участвовал в проекте,
и извините, если я вас нечаянно "потер").
2. Mediawiki переходит в режим readonly.
3. Все правки в будущем буду выполнять только я, любые изменения других пользователей будут откатываться.
4. Если у Вас есть что сказать мне, нашли какую-то ошибку в статьях - только через почту. Исправления будут вносить только я.
5. Прошу, очень прошу всех кто посещает ресурс обращать внимание на то, что происходит на нем. Если что-то вызвало ваши сомнения,
что так и должно быть (потерянная страница, страница заполненная чем-то не тем), пожалуйста, пишите мне. Т.к. кое что я мог
пропустить, и, наоборот, мог нечаянно удалить актуальный материал.
Спасибо всем
2099.1.1 Привет
|
3d графика
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
В этой статье я начал рассказ о шейдерах, пока только введение в суть дела. Я рассуждаю об прошлом, и персективах будущего в области многоядреных вычислений, графических процессоров, одним словом, рассказываю сказки. В следующих ыпусках ждите пример того как загрузить шейдеры в irrlicht
2007.8.20 irrlicht - часть 13
Эта статья будет несколько необычной. Если вы уже привыкли к моему стилю с множество текста, примеров исходного кода программ и пары маленьких картинок, то самое время что-нибудь поменять. Сегодня мы работаем с программой irrEdit. Это стандартный для irrlicht визуальный редактор 3d-окружения.
2007.8.20 irrlicht - часть 12
В прошлый раз мы начали знакомство с реализацией ООП в python|jython и использовали полученные знания для организации самого простого взаимодействия irrlicht с пользователем – реакции на события клавиатуры. Сегодня мы продолжаем эту тему и разберем, как обрабатывать события мыши, а также попробуем спроектировать интерфейс приложения с помощью стандартных компонентов GUI: кнопки, списки, диалоговые окна.
2007.1.1 irrlicht - часть 10
В прошлый раз мы научились проектировать интерфейс приложения, используя стандартные компонентов GUI: кнопки, списки, диалоговые окна. Сегодня мы завершаем эту тему. Так нам осталось рассмотреть методику обработки событий от этих компонентов. А также мы попробуем загрузить в среду irrlicht уровень от quake2/3.
2007.1.1 irrlicht - часть 11
Ладно, ладно, я прекрасно знаю что 3d во flash это пытка над вычистельными ресурсами компа
и что главное нервами посетителя. На текущий момент есть тройка крепких 3d движков во flash
(правда, по возможностям сравнительно к серьезным (написанным на c|c++) движкам,
они близки к годам, эдак, 93-95). Два моих самых любимых это
* sandy3d (http://www.flashsandy.org) и
* papervision 3d (http://www.papervision3d.org/)
вот я и написал серию статеек посвященых этим продуктам:
2007.1.1 Про 3-е измерение во flash с помощью sandy 3d - часть 1
Я завершаю рассказ о 3d-движке для flash sandy3d. Сегодняшний материал посвящен советам и трюкам.
2007.1.1 Про 3-е измерение во flash с помощью sandy 3d - часть 3
Я продолжаю рассказ о 3d-движке для flash sandy3d.
2007.1.1 Про 3-е измерение во flash с помощью sandy 3d - часть 2
В прошлый раз мы продолжили изучать продвинутые методики создания собственных функций, также работали со списками и tuple. Сегодня мы вернемся к изучению средств irrlicht. Наша цель научиться работать с механизмами взаимодействия между пользователем и средой irrlicht. Так мы научимся обрабатывать события от клавиатуры.
2007.1.1 irrlicht - часть 9
В прошлый раз мы учились выводить на экран надписи в irrlicht, изучали методы работы со строками текста (модуль string). Сегодня мы отложим немного в сторону irrlicht и продолжим изучать собственные средства python|jython. Сложность наших примеров будет с каждым разом возрастать и нам необходимы способы оперировать большим количеством сложноорганизованной информации. Т.е. нам нужен механизм группировки множества переменных в централизованные группы и нужны способы выполнять ВЗАИМОСВЯЗАННЫЕ действия сразу над множеством этих переменных.
2007.1.1 irrlicht - часть 8
В предыдущей статье серии мы определились с выбором 3d-движка, а также используемым языком программирования. Теперь пора приступать к работе.
2007.1.1 irrlicht - часть 3
В прошлый раз мы остановились на том, что выбирали 3d движок который будем использовать для этой серии уроков в качестве основы был использован ресурс http://www.devmaster.net/engines. Если вы открыли и внимательно его изучили, то нашли три интересные колонки, в которых перечислены “самые, самые” рейтинга “3d-движков”.
2007.1.1 irrlicht - часть 2
Продолжим начатое в предыдущей статье серии рассмотрение возможностей python. В прошлый раз мы дошли только до условного оператора, позволяющего делать выбор из некоторого количества альтернатив развития алгоритма. На основании определенного условия мы совершаем одно действие, если условие выполнилось или истинно, и другое если это не так.
2007.1.1 irrlicht - часть 4
Весь предыдущий материал нас подготавливал к этой главе. Сегодня мы попробуем применить полученные нами знания в языке python, вызывая графические функции irrlicht. Сначала займемся настройкой и установкой, аккуратно пройдите все шаги.
2007.1.1 irrlicht - часть 5
Сегодня мы продолжаем знакомиться со средствами irrlicht. Пока мы работаем только с 2d-графикой. На этот раз мы научимся выводить на экран текстовые надписи, разумеется, с русскими буквами. Также разберем возможности модуля string – содержащего функции работы со строками.
2007.1.1 irrlicht - часть 7
В прошлый раз мы начали изучение графических средств irrlicht. Пока мы ограничиваемся работой только с 2d-графикой, параллельно изучая на простых примерах особенности языка python|jython. В статье № 4 мы начали большой пример игры “угадай число”. Сегодня мы продолжим ее развивать с помощью пользовательских функций (udf – user defined functions).
2007.1.1 irrlicht - часть 6
Эта статья начнет серию материалов посвященных разработке 3d-приложений. Будут рассмотрены общие методики проектирования и программирования, которые могут быть применены как для разработки игр, так и для разработки более серьезных приложений: например задач визуализации каких-либо физических или химических процессов, создания моделей интерьера, или графического изображения поверхностей задаваемых некоторыми математическими функциями, в общем всего что будет подвластно вашей фантазии.
Начнем, пожалуй, с выбора средств и инструментов разработки с их обоснованием.
2007.1.1 irrlicht - часть 1
|
Физика
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
Эта статья является логическим продолжением ранее опубликованной серии посвященной 2d-физике для flash-разработчиков. Сегодня я продолжу рассказ о методах “плоской” физической симуляции, вот только язык программирования будет java.
2008.04.10 Phys2D: физика и java
Сегодня я завершу рассказ об FOAM. FOAM - это один из лучших физических движков доступных для flash-разработчиков. В прошлый раз я рассказал об идее легшей в основу FOAM (четкое разделение ответственности за расчеты между несколькими частями движка), об иерархии интерактивных объектов (которые мы можем добавить на сцену). Сегодня осталось только рассмотреть методику добавления к объектам, воздействующих на них сил и ограничений. Также интересен вопрос о создании renderer-ов, (пользовательских объектов позволяющих управлять тем, как “голый” физический объект можно визуализировать).
2008.4.2 FOAM: физика и actionscript 3. Часть 2
Почти год назад я написал серию из трех статей посвященных основным физическим законам и их практическому применению при разработке flash-приложений. Тогда фокус внимания был посвящен flash 8, а код писался на actionscript2. Несколько раз я порывался написать статью, посвященную физике и flash, но использующую не “собственные поделки”, а flade (известный и, по сути, единственный качественный) физический движок для flash 8. Но не сложилось. Теперь я начну рассказ об физических движках во flash на примере FOAM.
2008.3.27 FOAM: физика и actionscript 3. Часть 1
Эта статья завершает собой серию материалов посвященных интеграции flash8 и физики. Сегодня мы перейдем от рассмотрения взаимодействия идеальных тел, таких как точка и линия, к более сложным и приближенным к реальной жизни. Серия заканчивается не потому, что закончились интересные законы физики|математики, а из-за грядущего выхода flash cs3 с поддержкой actionscript3. Работа с которым и будет рассматриваться в других сериях статей.
2007.1.1 Про восьмой флеш и физику - часть 3
Каждый настоящий флешер должен знать три закона Ньютона, один закон Пифагора, и иметь на книжной полке справочник по физике и математике. Здесь я пишу то там как macromedia и adobe халявят и не могут сделать нормальной поддержки физики/математики в своих продуктах, так что приходится использовать посторонние решения (open source - GO, GO !, GO !!!) или реализовывать все самим.
2007.1.1 Про восьмой флеш и физику - часть 1
Сегодня мы продолжаем начатый в прошлый раз рассказ о методах интеграции физики во flash. В прошлый раз мы рассмотрели основы векторной математики. Мы узнали, что такое вектор, что такое длина вектора, и нормаль к нему, и что такое нормализованный вектор. Поняли, как векторы преобразуются в углы, и какой смысл несет скалярное произведение двух векторов. Сегодня мы завершаем рассмотрение этой темы, нам осталось разобраться с понятием движения по вектору. Также мы рассмотрим механизм определения точки, где два вектора пересекаются.
2007.1.1 Про восьмой флеш и физику - часть 2
|
XML
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
Готовясь написать серию заметок про Velocity, решил я пока выложить один из своих ранних проектов. Сервлет-фильтр, выполняющий прозрачную генерацию html-документов с помощью Velocity. Если вы не знаете что такое Velocity, то это универсальный движок шаблонификации (для java). Velocity может быть использован для генерации документа на основании шаблона и "что-там-нужно-вставить-в-шаблоне-в-нужные-места".
2008.4.7 Velocity Фильтр
Сегодня я продолжу и завершу рассмотрение технологий, составляющих основу Семантической Паутины. В прошлой статье я начал рассказ об одной из наиболее популярных (и уже нашедших практическое применение в ряде веб-приложений) технологий – FOAF. FOAF позволяет нам создавать описания “своего профиля”, указывать то, с какими сайтами или документами вы взаимосвязаны, и (самая “соль” технологии) указывать “дружеские” отношения с другими участниками сети.
2008.3.22 Семантическая сеть. Часть 4
Я продолжаю рассказ о технологиях, которые составляют ядро Семантической Паутины. В прошлый раз я завершил краткое введение в RDF и рассказал о проекте Dublin core. Сегодня фокус внимания будет посвящен FOAF, XFN, openid, социальным сетям.
2008.3.17 Семантическая сеть. Часть 3
Я продолжаю рассказ о Семантической Паутине и технологиях. Сегодня я продолжаю описание RDF, ввожу понятие RDF-словарей и и кратко описывают идеи лежащие в основе DC (dublin core)
2008.3.14 Семантическая сеть. Часть 2
В начале 2000-ых годов я впервые услышал о идее которую пропагандировал Тим Бернерс-Ли. Это была идея Семантической Паутины (Semantic Web) и о том как она изменит привычный нам internet. Я буду рассказывать о RDF, FOAF, микроформатах.
2008.3.10 Семантическая сеть. Часть 1
Сегодня мы продолжим и завершим рассмотрение вопроса о разработке внедренных в сайт графиков, диаграмм. После рассказа о библиотеках php, которые генерируют статические картинки, логичным будет завершить тему рассмотрением подобных средство но для уже flash.
2007.10.22 Графики, диаграммы, графы … и все это в веб? Часть 2
Выложена серия статей посвященных методике и библиотекам для создания и внедрения в веб-страницы
графиков, диаграмм. Рассматривается 6-ть библиотек (конечно, получилось немного, галопом по европам)
три библиотеки для php (генерируют статические картинки) и три библиотеки для flash.
В первой части я рассказываю о общих методиках построения графиков, диаграмм, внедрения их на страницы, быстро разбиваю в пух и прах всякие ужасные методы вроде java/activex (прости меня java, но истина дороже), и после пары слов о canvas и svg перехожу к разбору библиотечек для php генерирующих статические изображения.
2007.10.15 Графики, диаграммы, графы … и все это в веб? Часть 1
|
Сказки
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
|
MYSQL
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
Давным-давно я выложил в Интернете “обучающую машину mysql”. Обучающая машина представляет собой интерактивный метод проб. Вы читаете текст задания: “например, найти все товары, которые проданы за последние 3 месяца”. Затем вводите код sql-запроса (того, как вы думаете должен находить нужную информацию) и жмете кнопку “проверить”. Если выборки совпадают, то переходите к следующему вопросу, иначе думаете что же вы сделали не так. Если вы знаете что такое http://sql-ex.ru, то фактически это его младший брат, ориентированный на, именно, mysql.
Я решил возродить проект и привести его в порядок: переписал пользовательский интерфейс, добавил средства статистики, обсуждения вопросов, голосования “оцени сложность задачи” и кое-что еще. Вопросов пока стало меньше, но по мере их “вычитки” они будут публиковаться на сайте.
2008.1.2 Obmach mysql
Сегодня я расскажу о формировании ЧПУ для java-основанных веб-проектов на примере небольшого веб-магазинчика. Это будет очень простой магазинчик, все данные в котором помещаются в одной таблице. Информация же будет выводиться на нескольких страницах, в виде иерархии разделов каталога и, собственно, товаров внутри раздела.
2007.11.2 Java cpu 1
Добавлена статья посвященная основам работы с mysql из c/c++. Данный материал писался еще в далеком 2004 г. И тогда все приведенные примеры кода отлаживались на visual c++ 6.0 и (возможно, borland cbuilder++). Также возможно, что в настоящий момент некоторые из его положений устарели - но я все же надеюсь, что кому-нибудь они будут полезны. В планах написать заметку посвященную zeos dbo - библиотеке для работы с mysql-сервером из delphi/c++ builder.
2007.11.1 Mysql and langs 1
Это библиотека которую я использовал и использую последние годы в тех проектах, которые я пишу на php. Библиотека самописная и достаточно интересная - она отлична от adodb, propel и более похожа на ado, построена на паттерне ActiveRecord. Также я рассказываю филофские байки о велосипедных фабриках: бесполезных, ненужных, глупых, непонятно зачем и для кого сделанных библиотеках.
2007.10.10 Mydblib
Обучающую машину я сделал для того чтобы мучать ленивых студентов. Она построена по приниципу: задача -> вариант ответа в виде команды sql/mysql -> сообщение об ошибке,или что гораздо реже следующий вопрос.
А кроме шуток, идея в том, чтобы создать интерактивный учебник MYSQL. Здесь нет текстовых учебных пособий и руководств, благо их очень много в сети, и вы их легко достанете и может даже прочитаете. Здесь просто форма для ввода
кода SQL-запроса: вы читаете вопрос, вводите ваш вариант ответа и жмете кнопку **сверить результаты**. Если все в порядке, то
переходите к следующему вопросу, если нет - вы видите какой должен быть ответ (сама выборка, естественно, а не код SQL).
Затем вы думаете, что же сделали не так, и пробуете следующий вариант ответа.
Считаю важной частью обучающей машины возможность обсуждения вопросов: пока все это еще несколько сырое,
как в плане формулировок вопросов, так и ответов (может быть мои, как бы правильные, варианты ответов не совсем верны).
Планируется также возможность создания Вами же уважаемые пользователи собственных
наборов задач, главное чтобы это все не затихло.
2007.1.1 Старая версия обучающей машины mysql
|
PHP
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
Сегодня я устрою тест еще одному серверу и consumer-у openid. Этот кандидат прибыл с экзотического острова Явы, так что ставить его в один ряд с описанными в прошлой статье библиотеками нельзя. Требования к хостингу у него будут повыше, да и процедура настройки и установки требует знания основных идей из мира java. Библиотека называется joid (полагаю, сокращение от java openid). Технически кандидат обещает, что сможет понять и версию 1.0 и 2.0 протокола openid.
2008.2.5 Openid 2b
Я решил поизучать openid и добавить его поддержку к себе на сайт. Как известно лучше всего усваивается материал, который проговаривается, поэтому я решил публиковать свои заметки по ходу изучения этой технологии
2008.1.18 Openid 1
Я решил поизучать openid и добавить его поддержку к себе на сайт. Сегодня я устроил большой тест нескольким провайдерам openid и openid consumer-ам.
2008.1.18 Openid_2a
Я решил поизучать openid и добавить его поддержку к себе на сайт. Как известно лучше всего усваивается материал, который проговаривается, поэтому я решил публиковать свои заметки по ходу изучения этой технологии
2008.1.18 Openid_1
Я решил поизучать openid и добавить его поддержку к себе на сайт. Сегодня я устроил большой тест нескольким провайдерам openid и openid consumer-ам.
2008.1.18 Openid 2a
Переезд дело муторное, хоть в мире реальном, хоть в мире виртуальном. Прошло уже почти три недели с того, как я сменил хостинг и перенес сайт, но до сих пор я нахожу ошибки. Причем там где, казалось бы, ошибки в принципе не могли возникнуть. Найдя очередной “баг” и исправив его, решил написать маленькую заметку (по теме) про php и zip-архивы.
2007.12.26 Про работу в php с архивами 1
Это последняя часть в серии посвященной методам работы с базами данных из php. В прошлый раз я начал рассказ о библиотеке propel и паттерне Data Mapper. Я рассказал о слабых и сильных сторонах этого подхода, описал модель базы данных (таблицы и их связи) на которой мы будем практиковаться, так что осталось завершить пример и немного попрограммировать: попробовать искать записи на основании сложных и не очень условий, добавлять новые, редактировать и удалять записи.
2007.12.20 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 8
В прошлый раз я обещал начать рассказ о паттерне Data Mapper и поддерживающей его библиотеке propel. Эта библиотека будет последней, которую мы рассмотрим в рамках серии посвященной доступу к БД из php. Естественно, что заслуживающих внимание библиотек еще очень много, но все базовые идеи (паттерны), которые лежат в их основе, мы уже прошли, разобрали наиболее ярких представителей каждого из подходов, так что пора завершать.
2007.12.12 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 7
В прошлый раз я начал рассказ о паттернах Active Record и Row Data Gateway. Сегодня мы продолжим и завершим рассмотрение возможностей библиотеки adodb (ставшей стандартом де-факто и применяемой в разработке множества известных и не очень веб-приложений: postnuke, xaraya, moodle). Библиотеке, которая позволяет нам писать код быстрее и с меньшим числом ошибок. Также я уделю внимание вопросу оценки производительности вашего sql-кода.
2007.12.3 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 6
Сегодня мы продолжим знакомство с передовыми методиками доступа к базам данных. На очереди рассмотрение паттернов Active Record и Row Data Gateway. Также я расскажу о новой библиотеке adodb.
2007.11.27 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 5
Сегодня мы продолжим и завершим знакомство с библиотекой dbSimple. Мне осталось закончить начатый в прошлой статье рассказ о кэшировании, показать пару фокусов с преобразованием результата запроса в привычные для php массивы. Также я скажу пару слов о memcached.
2007.11.20 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 4
Выложены исходники небольшого решения на javascript+php. Его назначение - генерация изображения дерева согласно текстовому описанию в html-коде страницы.
2007.11.19 Livetreegen
Сегодня мы продолжим знакомство с паттернами доступа к данным и библиотеками php реализующими эти паттерны или просто помогающими делать нам меньше ошибок. В прошлый раз я начал рассказывать о библиотеке dbSimple (http://dklab.ru), сегодня мы продолжим ее рассмотрение и поднимем еще парочку интересных вопросов “качественного доступа к СУБД”.
2007.11.12 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 3
Сегодня мы продолжим разговор об различных методиках организации доступа к базам данных из php. Я буду начну рассказ о библиотеке dbSimple от Д.Котерова, также внимание будет уделено вопросам защиты кода от sql-injection.
2007.11.5 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 2
Полезняшки: PHPShell - скрипт php, позволяющий выполнять на веб-сервере shell-команды
2007.10.30 Phpshell
Выложена серия статей посвященных методикам разработки приложений получающих доступ к базам данных
из php. Материал включает в себя общие фразы про то что такое паттерны, абстракция,
кэширование, защита от sql-injection и многое другое. Разумеется что после порции теории
я рассказываю об конкретных библиотеках позволяющих реализовать ту или иную функцию, паттерн,
или просто хорошую идею.
Сегодня мы поговорим о методиках доступа к базам данных из php. Сегодня я начну с философских размышлений, почему так много библиотек решающих сходные задачи и почему программисты любят создавать свои собственные “квадратные велосипеды”. Упомяну про абстракцию, паттерны, enterprise-системы. В общем программировать сегодня ничего не будем - такое легкое чтиво на ночь.
2007.10.29 Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 1
Сегодня мы продолжим и завершим рассмотрение вопроса о разработке внедренных в сайт графиков, диаграмм. После рассказа о библиотеках php, которые генерируют статические картинки, логичным будет завершить тему рассмотрением подобных средство но для уже flash.
2007.10.22 Графики, диаграммы, графы … и все это в веб? Часть 2
Выложена серия статей посвященных методике и библиотекам для создания и внедрения в веб-страницы
графиков, диаграмм. Рассматривается 6-ть библиотек (конечно, получилось немного, галопом по европам)
три библиотеки для php (генерируют статические картинки) и три библиотеки для flash.
В первой части я рассказываю о общих методиках построения графиков, диаграмм, внедрения их на страницы, быстро разбиваю в пух и прах всякие ужасные методы вроде java/activex (прости меня java, но истина дороже), и после пары слов о canvas и svg перехожу к разбору библиотечек для php генерирующих статические изображения.
2007.10.15 Графики, диаграммы, графы … и все это в веб? Часть 1
Это библиотека которую я использовал и использую последние годы в тех проектах, которые я пишу на php. Библиотека самописная и достаточно интересная - она отлична от adodb, propel и более похожа на ado, построена на паттерне ActiveRecord. Также я рассказываю филофские байки о велосипедных фабриках: бесполезных, ненужных, глупых, непонятно зачем и для кого сделанных библиотеках.
2007.10.10 Mydblib
Сегодня мы продолжаем и заканчиваем знакомство с технологией асинхронных вызовов – ajax. Сегодня я смещу фокус рассмотрения материала с того “как бы хотя бы вызвать что-то” к тому “как бы это сделать удобным для пользователя”. Также я расскажу об том, как можно загружать на сервер файлы, как работать с историей браузера.
2007.10.9 Часть третья про ajax
Я продолжаю серию статей посвященных технологии ajax. Сегодня я расскажу вам о ajaj, о возможностях jquery при работе с ajax, разборе xml-документов, борьбе с crossdomain-ограничениями и кое-чем еще.
2007.10.1 Часть вторая про ajax
Выложена серия статей посвященных использованию технологии aja*. Хотя первые примеры использования
ajax появлились еще лет 8 назад, но широкое практическое применение началось относительно недавно.
Я рассказываю историю развития ajax, говорю о библиотеках с его поддержкой:
(http://jquery.com/, http://dklab.ru/lib/JsHttpRequest/). Говорю о проектировании
удобного интерфейса (адресная строка, кнопка "Назад" браузера).
Раскрываются вопросы загрузки файлов на сервер с помощью ajax и мониторингом за этим процессом.
Сегодня я начну серию материалов посвященных технологии ajax – средстве позволяющем строить сложные веб-приложения и отойти от традиционной модели “на каждое действие пользователя - загрузка новой страницы”.
2007.9.24 Часть первая про ajax
Библиотека jquery (ее домашний сайт http://jquery.com/ )предоставляет способ легко работать
с документом DOM из javascript (например, возможно адресовать элементы через xpath/css-подобную
нотацию). Также есть поддержка технологии асинхронных вызовов ajax.
Реализована поддержка работы с эффектами, анимацией.
Это статья продолжает рассказ об jquery. Сегодня я продолжу разговор о системах адресации узлов, методах обнаружения возможностей браузера, и событиях
2007.8.27 Часть вторая про jquery
Библиотека jquery (ее домашний сайт http://jquery.com/ )предоставляет способ легко работать
с документом DOM из javascript (например, возможно адресовать элементы через xpath/css-подобную
нотацию). Также есть поддержка технологии асинхронных вызовов ajax.
Реализована поддержка работы с эффектами, анимацией.
Это вводная статья об jquery. Здесь я рассказываю об его назначении, и преимуществах которые дает механизм адресации узлов элементов основанный на css/xpath-подобной нотации
2007.8.27 Часть первая про jquery
По воле судьбы первой новостью доступной по rss feeds стала новость об добавлении на сайт этой самой поддержки rss. Для реализации этой возможности я создал собственное расширение, и предлагаю использовать его всем желающим
2007.8.17 Узнай больше об плагине rss для mediawiki
Данный проект написан на php и предствляет собой консольную версию утилиты. Утилита служит для синхронизации каталогов на локальной машине с сервером развертывания целевого проекта. На стороне сервера требуется наличие небольшого скрипта который собирает сведения об текущем состоянии дел на сервере (какие файлы и папки, даты их изменения и свертки md5). Критерий необходимости обновить файлы - изменение md5-кода для файла.
2007.1.1 Узнай больше об проекте php synctool
Это проект написан на php и представляет собой инструмент для разработчика баз данных, подобный всем вам знакомым javadoc, asdoc, phpdoc (утилитам получающим на вход код программы на некотором языке X с коментариями и формирующий соответственно документацию об исходниках в виде html, pdf или чем то еще, т.е. совмещается разработка кода с документированием (коментарии это все же хорошо) и создание отчетной (по крайней мере ее части) документации).
Для баз данных такого в явном виде нет. Но я сделал утилитку которая подсоединяется к базе данных и выводит в виде древообразной структуры информацию об таблицах и полях, затем вы жмете на кнопку напротив этой самой таблицы или поля, появляется окно html редактора, в нем вы пишите примечания об полях, возможно использовать специальные jump ссылки на другие таблицы и поля.
Завершив сей ратный подвиг документирования вы уже жмете на кнопку сгенерировать документацию, и все что вы вводили формируется в виде упаковки html файлов (с примерами данных или без).
2007.1.1 Узнай больше об проекте документатор
Данный проект написан на php и предствляет собой консольную версию утилиты подобной wget из мира linux-а.
Проще говоря вы указываете правила формирования адресов веб-страниц на основании некоторого шаблона с подстановками, например:
http://site/page.php?id={}&cat={}
затем задаете правила изменения этих параметров (, ) вуаля и файлы загружаются к вам на компьютер.
Но не просто загружаются, а сохраняются в формат MHT (когда в одном файле и текст html и картинки и css стили и javascript).
2007.1.1 Узнай больше об проекте php wget
Я пишу расширения функий mediawiki, которых не нашел в стандартном репозитарии. Первый на рассмотрении это плагин: sourceshighlighter - его назначение это предъявление исходных текстов программ написаннах на разных языках программирования. Это надстройка над geshi и отличается от множества подобных решений тем, что служит для оформления не одного кусочка исходной страницы, а встраивает внутрь страницы настоящий файловый менеджер по папке с исходниками некоторого проекта. Вы видите файлы в составе проекта, жмете на файл и открывается страница с подсвеченным исходным кодом данного файла. По сути, это решение "скопировал папку проекта на сервер - и забыл".
2007.1.1 Узнай больше об подсветке синтакиса - плагине
|
Prolog (логическое программирование)
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
Связываем пролог с другими языками программирования
2007.1.1 Пролог - часть 3
Делаем экспертную систему своими руками
2007.1.1 Пролог - часть 2
Пришлось мне как то вести занятия аж в трех группах по прологу,
есть такой язык в сфере логических языков программирования,
экспертных систем, систем обработки знаний и прочая и прочая,
читать то чему учили в свое время меня было откровенно в лом
да и гадость это была непередаваемая),
хотелось быстрее попробовать что то делать и желательно коммерчески живое
вот я и нашкрябал собственный вариант курса.
Сегодня нас ждут пока лишь ... Общие фразы об прологе. Что такое пролог, что такое экспертная система и т.д.
2007.1.1 Пролог - часть 1
|
Безопасность информации
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
В далеком 2003 г. я написал серию статей посвященных криптографии, проектированию пользовательских интерфейсов для java с помощью продукта (сейчас почившей в бозе конторки) похожего на xul, xaml .... Написал серию статей посвященных разработке плагинов для borland jbuilder (также почившего в бозе). Ниже перичислены ссылки на оригиналы статей опубликованных тогда на javable.com
2007.10.11 Iwasonjavable
Специализированная программная система SoftwarePassport/Armadillo Software Protection System
(ее домашний сайт http://www.siliconrealms.com/ ) служит для защиты созданного вами программного
обеспечения на языках (delphi/c++/.net) от взлома. Добавляет функции trial периода по
различным критериям: время работы, количество запусков. Обеспечивает функции защиты от взлома,
позволяет контролировать работу программы в сети (сетевое лицензирование). Есть методы
привязки к аппаратному обеспечению. Достаточно простое api позволяет вызывать функции armadillo
из программ на разных языках.
В прошлый раз я начал рассказ о специализированной системе защиты ПО: armadillo. Armadillo выступает в роли “бронированного сейфа”, скрывая и защищая внутри себя некоторую программу от взлома. Для доступа к которой мы создавали ключи и сертификаты. Сегодня я продолжу рассказ об особенностях создания сертификатов, о привязке созданных ключей к конкретному “железному” обеспечению, а также покажу, как можно создать приложение, взаимодействующее с armadillo с помощью специального программного интерфейса (api).
2007.9.18 Часть вторая про armadillo
Специализированная программная система SoftwarePassport/Armadillo Software Protection System
(ее домашний сайт http://www.siliconrealms.com/ ) служит для защиты созданного вами программного
обеспечения на языках (delphi/c++/.net) от взлома. Добавляет функции trial периода по
различным критериям: время работы, количество запусков. Обеспечивает функции защиты от взлома,
позволяет контролировать работу программы в сети (сетевое лицензирование). Есть методы
привязки к аппаратному обеспечению. Достаточно простое api позволяет вызывать функции armadillo
из программ на разных языках.
Одна из самых лучших систем защиты, о которой я сегодня и расскажу это - SoftwarePassport/Armadillo Software Protection System. Последняя версия: 5.0 вышла этим летом. Домашний сайт проекта: http://www.siliconrealms.com/. Разработчики позиционируют armadillo как средство буквально за пять минут добавить систему защиты/лицензирования для ваших программ.
В этой статье я начинаю рассказ об возможностях armadillo. Говорю об сертификатах, ключах, методиках их генерации, защите от типовых методов взлома. Материал не требует специального знания низкоуровневого программирования - я старался раскрыть тему с точки зрения программиста создавшего некоторый продукт и думающего как его защитить, возможно, с целью дальшейшего распространения как shareware.
2007.9.5 Часть первая про armadillo
|
C++
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
Добавлена статья посвященная основам работы с mysql из c/c++. Данный материал писался еще в далеком 2004 г. И тогда все приведенные примеры кода отлаживались на visual c++ 6.0 и (возможно, borland cbuilder++). Также возможно, что в настоящий момент некоторые из его положений устарели - но я все же надеюсь, что кому-нибудь они будут полезны. В планах написать заметку посвященную zeos dbo - библиотеке для работы с mysql-сервером из delphi/c++ builder.
2007.11.1 Mysql and langs 1
Наконец-то собраны воедино и переведены в формат mediawiki все разрозненные статьи, которые я писал по теме проектирования структур данных, алгоритмике и всему тому, что необходимо знать каждому начинающему программисту. 11 статей теоретических объемом в 200 000 знаков, 11 текстов лабораторных работ + куча картинок - все это ждет вас. Вперед.
2007.9.21 Структуры данных и алгоритмы
|
Структуры данных и алгоритмы
|
Всего статей: ; из них добавлено за прошедшую неделю:
|
Наконец-то собраны воедино и переведены в формат mediawiki все разрозненные статьи, которые я писал по теме проектирования структур данных, алгоритмике и всему тому, что необходимо знать каждому начинающему программисту. 11 статей теоретических объемом в 200 000 знаков, 11 текстов лабораторных работ + куча картинок - все это ждет вас. Вперед.
2007.9.21 Структуры данных и алгоритмы
|
|
|
|