Index Page

Материал из DOM

Версия от 11:43, 19 ноября 2007; 217.21.51.166 (обсуждение)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Приветствия

Приветствую Вас на моем сайте. Здесь я выкладываю тексты статей, которые я пишу, и некоторые из програм, которые я также пишу. Благодаря использованию вики вы можете обсуждать, вносить правки в мои работы. Я надеюсь, что каждый сможет найти для себя нечто полезное среди огромной кипы материалов. Круг моих интересов в области программирования достаточно велик.

Сразу предупреждаю: все материалы - авторские. Я не копирую ничего из сети. Иногда я перевожу англоязычные материалы, но почти всегда добавляю в них свое видение вопроса, свои примеры и т.д.

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

Обучающая машина MYSQL

Обучающую машину я сделал для того чтобы мучать ленивых студентов, построена по приниципу задача - вариант ответа в виде команды sql/mysql - сообщение об ошибке,или что гораздо реже следующий вопрос

Это проект энтузиаста, верящего что за MYSQL светлое будущее, и что настоящий человек обязан знать его от и до, тогда его настигнет светлая нирвана.

А кроме шуток, идея в том, чтобы создать интерактивный учебник MYSQL, 
здесь нет текстовых учебных пособий и руководств, благо их очень много в сети, 
и вы их легко достанете и может даже прочитаете, здесь просто формочка для ввода 
кода SQL-запроса, вы читаете вопрос, вводите 
ваш вариант ответа и жмете кнопку **сверить результаты** если все в порядке то 
переходите к следующему вопросу, если нет
то вы видите какой должен быть ответ (сама выборка, естественно, а не код SQL) 
и думаете что же Вы сделали не так.
Важным считаю возможность обсуждения вопросов, пока все это еще достаточно сырое, 
как в плане формулировок вопросов так и ответов 
(может быть мои как бы правильные варианты ответов не совсем верны), 
для обратной связи я решил не поднимать форум, это слишком громоздко,
а использую wikki-wacko. 
Планируется также возможность создания Вами же уважаемые пользователи собственных 
наборов задач, главное чтобы это все не затихло.


Используемая версия на хостинге mysql5.0.18, все же задачи придумывались и решались под 4.1.10

Краткое описание того как это все работает - обучающая машина
запуск обучающей машины

Для тех кто не знает что такое flash player и откуда его достать, 
вот ссылка на скачивание с сайта adobe.com закачать 9-ый флешплеер

Проект HYBERIA - hibernate explorer

 Хайберия - тулза - инструмент для тех кто работает с java hibernate 

и хочет исследовать какие иерархии объектов возвращаются из запросов HQL

1. Скачать в формате PDF описание данного инструмента Медиа:hyberia.pdf
2. Просмотреть в режиме on-line версию того же документа hyberia описание on-line
3. Скачать скомпилированную версию программы Медиа:hyberia.jar
4. Скачать исходники программы Медиа:hyberia.src.zip

opera widgets

 Opera - мой любимый браузер 

и вот нашкрябал я статейку об том как создать собственный виджет, официальное руководство конечно получше, за то на английском Виджеты для оперы часть 1

Prolog - логическое программирование

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

общие фразы об прологе Пролог - часть 1
делаем экспертную систему своими руками  Пролог - часть 2
связываем пролог с другими языками программирования Пролог - часть 3

html tag CANVAS

есть, но не встандарте html, такой классный тег canvas который умеет сам 
но под вашим чутким   руководством рисовать линии, круги, прямоугольники, 
кривые безье, закрашивать все это безобразие разными цветами и
даже рисовать на существующих картинках

Про тег html canvas - 1

Про тег html canvas - 2

3d движок irrlicht

Серия статей об разработке 3д-приложений с помощью иррличт инджине,
рассказываю я медленно и степенно, если вы прокаченный хацкер то врядли найдете для себя 
что то интересное,
я ставил перед собой цель совместить изучение средств java + python + irrlicht, 
так чтобы даже самый неопытный в исскусстве программирования,
НО И ЭТО ВАЖНО, инициативный и целеустремленный молодой человек или молодая девушка
сделали что нибудь эдакое красивое и полезное.


  Список разных ссылок 

Сами иррличт - домашняя страница проекта

ambierra - контора которая делает редактор для иррличта, также звуковой движок, парсер xml, скриптовый язык для этого самого редактора и что то еще

сайт скриптового языка jython - мы его используем в этой серии как основной язык, любители си, брысь отсюда

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


Перечень статей

irrlicht - часть 1 (здесь я рассказываю что написать собственный 3d движок может только великий и ужасный гудвин, к которому я себя не отношу, поэтому мы начинаем обзор различных 3d движков, чтобы выбрать среди них то который и будет изучаться далее -- вообще то я уже давно все выбрал -- но надо же соблюсти иллюзию демократии)

irrlicht - часть 2 (логическое продолжение предыдущей части - здесь мы после того как в прошлый раз разобрали различные критерии качества движков - наконец то сделали свой выбор)

irrlicht - часть 3 (тут мы начинаем знакомство с языком python / jython, на котором и будут писаться все дальнейшие статьи - сюрприз, кто думал что мы будем писать на c|c++? )

irrlicht - часть 4 (тут мы продолжаем это знакомство с python / jython - я бы конечно сначала рассказал бы все что можно об основах программирования и только бы потом перешел бы к непосредственно 3d программированию, но надо совмещать, надо)

irrlicht - часть 5 (тут мы пытаемся запустить наш первый пример в связке irrlicht + jython = дед мороз идет по летнему лесу а на него падают снежинки размеров с самого деда мороза, хотя если не обращать внимание на качество графического материала то пример получился не плохой, показано как создать 3d устройтство, как загрузить и вывести картинку, как работать с альфа-каналом и еще много мелочей по ходу дела)

irrlicht - часть 6 (мы продолжаем что рисовать - сегодня у нас на рассмотрении в мире python | jython функции и рекурсия а в мире irrlicht мы рисуем дерево пифагора - картинка в общем такая красивая -)

irrlicht - часть 7 (сегодня мы работаем со строками, большей частью материал посвящен тому как работать со строками и строковыми функциями в python|jython и во второй части мы рисуем много движущихся по экрану - даже плавно - текстовых надписей и даже с русскими буквами)

дорогие разработчики irrlicht сделайте что нибудь с вашим движком 
чтобы не надо было делать заплатки размером больше чем код самого приложения

irrlicht - часть 8 (так, этот урок посвящен только python | jython - сегодня мы рисовать ничего не будем)

irrlicht - часть 9 (сегодня мы учимся работать с классами в python|jython а в мире irrlicht - обрабатывать события от клавиатуры и будем рисовать фрактал )

irrlicht - часть 10 (это первая из двух статей посвященных работе с GUI - кнопками, полями, падающими списками и диалоговыми окнами - в мире irrlicht)

irrlicht - часть 11 (это вторая часть посвященная работе с GUI)

irrlicht - часть 12 (эта часть посвящена работе с редактором irrEdit)

irrlicht - часть 13 (эта часть посвящена началам работы с шейдерами)

Flash и физика

Каждый настоящий круто флешер должен знать три закона Ньютона, один закон Пифагора, 
и иметь на книжной полке справочник по физике и математике.  
Здесь я пишу то там как macromedia и adobe халявят и не могут 
сделать нормальной поддержки физики/математики в своих продуктах, 
так что приходится использовать посторонние решения 
(open source - GO, GO !, GO !!!) или реализовывать все самим.

Про восьмой флеш и физику - часть 1

Про восьмой флеш и физику - часть 2

Про восьмой флеш и физику - часть 3

Про дорогой и всеми уважаемый язык java (спасибо тебе sun за наше счастливое детство )

Сейчас я отношусь ко всеми более критически, не пытаюсь искать серебрянных пуль и знаю, что
нет идеальных продуктов, технологий и подходов. Но в то далекое время java была отличным 
сектором приложения моих сил, давшая неплохой для меня старт.
  Дорогая фирма sun, ты уже заработала много много денег на мне, 
  поэтому я тебя прошу озаботиться более простыми потребностями чем
  клепания монструозных ejb приложений. 
  Поэтому может хватит спать, а надо активнее работать.
              с любовью, твоя java
Про swing - часть 1

Плагины или расширения которые я написал для mediawiki

я пишу расширения функий медиавики, которых не нашел в стандартном репозитарии,
первый на рассмотрении это плагин: sourceshighlighter - его назначение это 
предъявление исходных текстов программ написаннах на разных языках программирования
  узнай больше об подсветке синтакиса - плагине
также я написал плагин выполняющий формирование RSS-потока на основании базы статей. 
Естественно, что это не единственный в мире плагин, в базе extensions для wikimedia 
я нашел штук 5 подобных чудес, уверен, если покапаться в сети то найдется и еще несколько решений.
НО, из этих 5-и решений, 4-е оказались импортом в страницу wiki новостей с другого сайта,
а единственный нужный мне плагин для создания rss-потока, оказался с багом, 
на этом хостинге действует ограничение по времени выполнения 4 сек., 
на большинстве других хостингов - 30 сек, в любом случае алгоритм работы скрипта - ужасен, 
он получает список страниц и ... выполняет генерацию полного ее наполнения ... если на странице
достаточно много текста или же страниц много или же еще в страницу встроено достаточное количество
ограничений то происходит ... бамс... и время выполнения скрипта превышено, в любом случае нагружать
сервер таким ресурсоемким чудом не стоит. Уверен что грамотная игра с кэшем 
поможет решить часть проблем но все же ...
  Итак, я представляю собственный плагин rss - Узнай больше об плагине rss для mediawiki

Проект документатор

 Это проект написан на php и представляет собой инструмент для разработчика баз данных,
 подобный всем вам знакомым javadoc, asdoc, phpdoc (утилитам получающим на вход 
 код программы на некотором языке X с коментариями и формирующий соответственно 
 документацию об исходниках в виде html, pdf или чем то еще, т.е. совмещается 
 разработка кода с документированием (коментарии это все же хорошо) и 
 создание отчетной (по крайней мере ее части) документации). 
 Для баз данных такого в явном виде нет. Но я сделал утилитку которая подсоединяется 
 к базе данных и выводит в виде древообразной структуры информацию об 
 таблицах и полях, затем вы жмете на кнопку напротив этой самой таблицы 
 или поля, появляется окно html редактора, в нем вы пишите примечания об полях, 
 возможно использовать специальные jump ссылки на другие таблицы и поля. 
 Завершив сей ратный подвиг документирования вы уже жмете на кнопку 
 сгенерировать документацию, и все что вы вводили формируется в виде 
 упаковки html файлов (с примерами данных или без)
  узнай больше об проекте документатор

Проект xml/xhtml/html 'сравниватель'

 Этот проект написан на java и представляет собой утилиту которая служит для сравнения 
 двух документов html/xhtml/xml. Необходимость его разработки была возникала тогда 
 когда при верстке сайтов с последующей их нарезкой на шаблоны для некоторого движка 
 шаблонификации (smarty/xsl/добавьте сами что вам нравится). Получающийся html документ 
 не совпадает с эталонной версткой. Обычно это где нибудь не закрытий или лишний тег, 
 найти который (если верстка не две таблицы с тремя колонками) довольно сложно. Особое 
 внимание я уделил вопросу обработки некорректных html документов (как оригинальных 
 так и генерируемых). Поэтому я говорю спасибо проекту TagSoap - и всем его авторам, 
 создавшим настоящее чудо - парсер который может читать некорректные html документы и по мере
 своих сил их исправлять.
 узнай больше об проекте сравниватель xml и других

Проект Tunn - это как бы прокс сервер, ориентированный опять таки на веб-разработчиков

  Отладка в мире веб-приложений (flash/flex/ajax <-> server side)... Как я тебя не навижу. 
  В свое время замучанный непонятными багами разрабатываемых приложений под ajax и flash
  обменивающихся данными с сервером, я написал на java приложение которое туннелирует трафик
  от браузера или иного веб-клиента на целевой сервер, при этом журналируя и 
  отображая всю прошедшую информацию в удобном виде. 
  узнай больше об проекте туннелятор  


Проект PHP Client&Server FTP Synchronizer - синхронизатор

  Данный проект написан на php и предствляет собой консольную версию утилиты. 
  Ориентировался я опять таки под веб-разработчиков. Утилита служит для
  синхронизации каталогов на локальной машине (там у меня апач+фтп сервер) с сервером развертывания.
  На стороне сервера требуется наличие небольшого скрипта который собирает сведения об 
  текущем состоянии дел на сервере (какие файлы и папки, даты их изменения и свертки md5). 
  Затем эти данные загружаются на клиента. и клиентский скрипт выполняет последний этап
  синхронизации - непосредственно записывает на сервер или с сервера на клиентскую машину 
  те файлы которые отсутствуют или были изменены.
  В инете достаточно утилиты которые делают как будто то же самое, но 
   1. платные
   2. глючные (ладно, глюки есть у всех, но непонятные которые нельзя понять - вот что страшно)
   3. с GUI - я пользуюсь сценариями ant для развертывания проекта и всяких подготовительных 
   действия - поэтому мне была нужна именно консольная версия
  узнай больше об проекте php synctool

Проект PHP WGET & MHT

  Данный проект написан на php и предствляет собой консольную версию утилиты
  подобной wget из мира linux-а. Проще говоря вы указываете правила формирования адресов
  веб-страниц на основании некоторого шаблона с подстановками, например:
    http://site/page.php?id={$1}&cat={$2}
  затем задаете правила изменения этих параметров ($1, $2) вуаля и файлы загружаются 
  к вам на локалку. Но не просто загружаются а сохраняются в формат MHT (це когда в одном 
  файле и текст html и картинки и css стили и javascript). 
  Зачем был нужен тот маразм с файлом html и папкой с его ресурсами - одному microsoft известно
  узнай больше об проекте php wget


Базы данных CloudScape

 Есть такая замечательная фирма ibm и делает она базу данных
 cloudscape (вот ее адрес http://www.ibm.com/software/data/cloudscape/)
 вообщето ibm купила разработчиков cloudscape еще лет 5ть назад, но сути дела это не меняет
 база для мира java очень хорошая и я ей пользовался некоторое время назад.
 
 (признаюсь что писал данный материал я еще в далеком детстве года, эдак, 4 назад
 поэтому мой литературный стиль еще не так отточен как хотелось, текст сыроват, плоховат,
 и наверняка сильно устарел, но раз уж я его нашел среди своих старых материалов, то почему бы и нет
 )  
 вот здесь можно узнать больше об базе данных cloudscape - часть 1
 вот здесь можно узнать больше об базе данных cloudscape - часть 2
 вот здесь можно узнать больше об базе данных cloudscape - часть 3
 вот здесь можно узнать больше об базе данных cloudscape - часть 4

Flash 8 и 3d (третье измерение во flash)

 Ладно, ладно, я прекрасно знаю что 3d во flash это пытка над вычистельными ресурсами компа 
 и что главное нервами посетителя. На текущий момент есть тройка крепких 3d движков во flash
 (правда, по возможностям сравнительно к серьезным (написанным на c|c++) движкам, 
 они близки к годам, эдак, 93-95). Два моих самых любимых это 
  * sandy3d (http://www.flashsandy.org) и 
  * papervision 3d (http://www.papervision3d.org/)
 вот я и написал серию статеек посвященых этим продуктам:
   
    Про 3-е измерение во flash с помощью sandy 3d - часть 1
    Про 3-е измерение во flash с помощью sandy 3d - часть 2
    Про 3-е измерение во flash с помощью sandy 3d - часть 3

Разработка пользовательских интерфейсов с помощью flash9 + aswing

 Библиотека aswing предоставляет способ проектирования сложных интерфейсов пользователя с помощью
 идей MVC и очень сходна с библиотекой swing из мира java
 домашняя страница проекта http://www.aswing.org/
   часть 1 про flash9 и aswing
   часть 2 про flash9 и aswing
   часть 3 про flash9 и aswing
   часть 4 про flash9 и aswing

Организация взаимодействия flash8 основанных проектов и php скриптов + mysql

 Библиотека swx (ее домашний сайт http://swxformat.org/)предоставляет способ действительно
 легкого взаимодействия flash+php. Вам кажется что вы вызываете функции находящиеся в том 
 же самом ролике что и интерфейс - но нет, они находятся на сервере и это просто круто.
 часть первая и единственная про flash8 и swx


JQuery: Быстрый старт в разработке javascript-основанных решений

 Библиотека jquery (ее домашний сайт http://jquery.com/ )предоставляет способ легко работать
 с документом DOM из javascript (например, возможно адресовать элементы через xpath/css-подобную
 нотацию). 
 Также есть поддержка технологии асинхронных вызовов ajax.
 Реализована поддержка работы с эффектами, анимацией. 
 часть первая про jquery
 часть вторая про jquery

Armadillo: Защити свою программу от взлома

 Специализированная программная система SoftwarePassport/Armadillo Software Protection System
 (ее домашний сайт http://www.siliconrealms.com/ ) служит для защиты созданного вами программного
 обеспечения на языках (delphi/c++/.net) от взлома. Добавляет функции trial периода по 
 различным критериям: время работы, количество запусков. Обеспечивает функции защиты от взлома,
 позволяет контролировать работу программы в сети (сетевое лицензирование). Есть методы
 привязки к аппаратному обеспечению. Достаточно простое api позволяет вызывать функции armadillo
 из программ на разных языках.
 часть первая про armadillo
 часть вторая про armadillo

wiki2chm. Трансформация mediawiki-сайта в файл справки windows chm

 Программа написанная на java, назначение которой создание на основании сайта в формате mediawiki
 набора страниц html для последующей сборки их в единый файл в формате chm.
 Преимущества использования моей программы в том, что она специализирована под mediawiki. 
 И в отличии от универсальных offline-менеджеров не загружает абсолютно все 
 (ссылки на служебные страницы, версии для печати, страницу для правки статьи, загрузки файлов,
 истории правок).
 Вы можете задать шаблон для будущего проекта, сохранить его, продолжать и приостанавливать работу.
 В шаблоне возможно использовать стили css. Корректно обрабатываются изображения.
 
 узнай больше об проекте wiki2chm


RSS Import Floater Bar. Плавающая панель на которой отображаются импортированные RSS новости

  Создав для mediawiki поддержку RSS-экспорта я не остановился и решил написать еще один скрипт
(это javascript-основанное решение), который бы загружал новостную ленту с моего (или любого
другого сайта и отображал бы новости в виде всплывающей панели). Как всегда доступны исходники
проекта. Загрузка новостей идет через асинхронный вызов ajax.

узнай больше об всплывающей панели новостей RSS


Структуры данных и алгоритмы

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


Ajax, Ajaj и все про технологию подзагрузки данных в страницу

Выложена серия статей посвященных использованию технологии aja*. Хотя первые примеры использования
ajax появлились еще лет 8 назад, но широкое практическое применение началось относительно недавно.
Я рассказываю историю развития ajax, говорю о библиотеках с его поддержкой: 
(http://jquery.com/, http://dklab.ru/lib/JsHttpRequest/). Говорю о проектировании 
удобного интерфейса (адресная строка, кнопка "Назад" браузера). 
Раскрываются вопросы загрузки файлов на сервер с помощью ajax и мониторингом за этим процессом.
Часть первая про ajax
Часть вторая про ajax
Часть третья про ajax

Модуль анализа посещаемости данного ресурса

 Добавлен скрипт (php+javascript) который строит некрасивый график посещаемости вашего сайта.
 Данные берутся из google analytics, и возможно видеть несколько графиков по различным критериям.
 Как всегда доступны исходные коды, и вы можете использовать данный счетчик-график у себя.
 Узнай больше о google_chartlive


Добавлена библиотека tdbgenset

Это библиотека которую я использовал и использую последние годы в тех проектах, 
которые я пишу на php. Библиотека самописная и достаточно интересная - она отлична от adodb, 
propel и более похожа на ado, построена на паттерне ActiveRecord. 
Также я рассказываю филофские байки о велосипедных фабриках: бесполезных, ненужных, глупых,
непонятно зачем и для кого сделанных библиотеках.
Узнай больше о mydblib

Как я писал для javable.com

Узнай больше об статейках, которые я писал для javable iwasonjavable

Графики, диаграммы (графы?) обзор методик построения с помощью flash и php

Выложена серия статей посвященных методике и библиотекам для создания и внедрения в веб-страницы
графиков, диаграмм. Рассматривается 6-ть библиотек (конечно, получилось немного, галопом по европам)
три библиотеки для php (генерируют статические картинки) и три библиотеки для flash.
Графики, диаграммы, графы … и все это в веб? Часть 1
Графики, диаграммы, графы … и все это в веб? Часть 2

Разрушая велосипедные фабрики. Доступ к базам данных из php

Выложена серия статей посвященных методикам разработки приложений получающих доступ к базам данных
из php. Материал включает в себя общие фразы про то что такое паттерны, абстракция,
кэширование, защита от sql-injection и многое другое. Разумеется что после порции теории
я рассказываю об конкретных библиотеках позволяющих реализовать ту или иную функцию, паттерн, 
или просто хорошую идею.
Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 1
Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 2
Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 3
Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 4
Разрушая велосипедные фабрики: доступ к базам данных из php. Часть 5


Полезняшки: phpshell

phpshell - это написанный на php скрипт, позволяющий вам запускать shell-команды 
без прямого доступа к ssh.
узнай больше о phpshell


Начинающему javascript-программисту

Мелкие хитрости в отладке кода с помощью alert. Часть 1


Доступ к mysql из c/c++

 Данный материал писался еще в далеком 2004 г. Все приведенные примеры кода отлаживались на 
 visual c++ 6.0 и (возможно, borland cbuilder++, увы сейчас уже не помню). 
 Возможно, в настоящий момент некоторые из его положений устарели - но я все же надеюсь, что
 кому-нибудь они будут полезны.
 Mysql_and_langs_1

Начинающему java-программисту

Создаем свой маленький интернет-магазин на java+mysql+ЧПУ java_cpu_1

Полезняшки: встраивание генерируемых "на лету" изображений деревьев в веб-страницы

Выложены исходники небольшого решения на javascript+php. Его назначение - генерация изображения
дерева согласно текстовому описанию в html-коде страницы livetreegen

Subscribe Now!

 

ObMachine projects & articles (java, flash, flex, php, ...)  -- black-zorro.com