Статьи по теме программирование

Написание интернет-магазина

2013/06программирование
Стремясь увеличить собственную выручку, многие магазины, работающие "в реале", открывают свои виртуальные "представительства", тем самым обеспечивая увеличение товарооборота. Дополнительная клиентура предприятия, приходящаяся на "интернет-стороне" ведения бизнеса, будет более активна, и, в определенный момент, может поспособствовать тому, что из виртуального она может стать реальным клиентом. Но для того, чтобы ваш интернет магазин помог вам ... подробнее

Профессия программиста и диплом с vyshka.net

2013/06программирование
Молодые люди на всем пост советском пространстве поле окончания школы думают, куда же пойти и кем тать. Подбор специальностей довольно большой и, как ни странно, обучиться практически любой из них можно вообще не выходя из дома. Многие ВУЗЫ предлагают обучение дисциплинам на дому через интернет. Особенно популярным является программирование. Обучиться программированию может каждый, не зависимо о того, окончил школу или нет. Но чтобы ... подробнее

Правила разработки дизайна будущего сайта

2013/06программирование
Правило «Встречают по одежке…» действует не только в реальной жизни, но и в интернете. И первое, на что обращает внимание посетитель сайта, – это дизайн его страниц. Именно поэтому создание сайтов основывается на грамотной разработке их дизайна, над которым работает целая команда специально обученных дизайнеров и веб-разработчиков. Требования при разработке дизайна сайта Существует ряд параметров, при соблюдении которых во время создания ... подробнее

Просто об ActionScript 3. Часть 2

2011/42программирование
Итак, начиная с этой части, мы приступаем к практическим действиям. В качестве базовой (в силу бесплатности) возьмем интегрированную среду разработки (IDE) FlashDevelop (http://www.flashdevelop.org), для работы в которой нам понадобится дополнительно скачать Flex SDK с сайта Adobe (http://www.adobe.com/products/flex.html) и Java Runtime Environment (JRE) с сайта http://java.sun.com/. Этот вариант хорошо подойдет для демонстрации работы с ... подробнее

Арсенал для программистов С/С++

2011/39программирование
Поработав в различных командах и проектах, думаю, что не открою новый материк, сказав о том, что Microsoft Visual C++ или те же решения от экс- Borland — далеко не единственные интегрированные среды разработки С/С++, которые популярны и используются. Иногда комбинации бывают просто невероятными, причем многое зависит от года старта проекта, предрасположенностей программистов, его начинавших, платформы, финансовых и технических требований к ... подробнее

Просто об ActionScript 3. Часть 1

2011/38программирование
«…первая — это Библия, написанная нашим Господом, вторая — «Происхождение видов», написанная трусливым пропойцей Чарльзом Дарвиным». м/с «Симпсоны» о противостоянии дарвинизма и креационизма. Пять лет назад в момент появления ActionScript 3 (далее преимущественно будем использовать аббревиатуру AS3) было очевидно, что мы сталкиваемся с чем-то выходящим за рамки обычного и привычного Flash. Так оно и оказалось, потому как фактически ... подробнее

Lua и C/C++/C#. Часть 2

2011/34программирование
Вообще, использование Lua для платформы .NET сейчас часто воспринимается как специфическое отклонение. Это и так, и не так одновременно, учитывая то, что .NET постоянно расширяется. В прошлой части мы продемонстрировали два очень простых примера, в результате которых читатели могли узнать о том, как управлять функциями C# из Lua-сценариев. Также мы затронули довольно весомую тему CLR (Common Language Runtime — общеязыковой исполняющей среды ... подробнее

Lua и C/C++/C#. Часть 1

2011/33программирование
Интеграцию Lua с C/C++/C# было решено вынести в отдельную серию материалов. Сам язык является по существу универсальным, а наиболее частое его использование — в игровых проектах. Всю вводную часть по Lua, его основному синтаксису, вы можете прочесть в цикле материалов «Lua для игр и не только». Сейчас же углубимся в узкоспециализированные ниши. Сегодня мы начнем с самых азов интеграции, инсталлируем Lua и сделаем несколько простых примеров для ... подробнее

Альфа-гик из Аризоны: интервью с создателем WinAmp

2011/31программирование
WinAmp - наиболее известная и коммерчески успешная программа нашего сегодняшнего героя. В 1999 году America Online купила у него эту программу, а вместе с ней и его фирму Nullsoft, которая развивала и поддерживала ее. За эту сделку Джастин Фрэнкель (Justin Frankel) получил тогда около 100 миллионов долларов плюс руководящую должность с приличным окладом в штате AOL (первую и последнюю наемную работу в своей жизни). На тот момент Джастину было ... подробнее

Программирование в Action Script2 на конкретных примерах

2011/26программирование
В этой части материала я расскажу о коде калькулятора, написанного на ActionScript 2.0. Напомню, что все исходники даются, их можно скачать по ссылке http://itcs.3dn.ru/Programming/AS2-calc/AS2-calc.rar. В прошлой статье (см. КГ №23) этой небольшой серии было рассказано, как можно быстро и эффективно создавать графический интерфейс и собственные интерактивные компоненты (кнопки). В этой части мы все привяжем к коду, а программировать будем ... подробнее

Программирование в Action Script2 на конкретных примерах

2011/23программирование
Честно сказать, долго решался, делать ли эту небольшую практическую серию, причем показав в качестве основы пример на базе программы, созданной мною в 2007 году, но тема действительно востребована. ActionScript 2 (AS2) до сих пор актуален, это можно проследить как по количеству поисковых запросов, так и по числу интернет-ресурсов, посвященных работе с ним, интерес к которым не ослабевает. AS2 очень хорошо подходит для обучения тех же ... подробнее

Популярно об ИИ/Lua для игр и не только

2011/17программирование
Вокруг Lua всегда возникают интересные дискуссии. Не удивляют и мнения о том, что это язык «не для программистов», «не для технарей», уличают Lua в топорной простоте, отсутствии наворотов, в общем, во всем, во всем, во всем… На все это можно ответить перефразированной известной шуткой: «Мне не шашечки, мне ехать». А сам язык очень силен по возможностям и вообще тому, что он из себя предоставляет... Например, в последнее время, если речь идет ... подробнее

Завершилась олимпиада по информатике и веб-программированию

2011/17программирование
Вот уже четвертый год подряд на механико-математическом факультете БГУ проводилась олимпиада по информатике и веб-программированию. Принять в ней участие имели возможность ученики старших классов средних школ, гимназий и лицеев, а также учащиеся средних специальных и профессионально- технических учебных заведений. Главная цель олимпиады — обеспечить качественный набор студентов на специальность «Математика» (направление — информационные ... подробнее

Популярно об ИИ/Lua для игр и не только

2011/10программирование
Вот так, некогда популярная серия «Lua для игр и не только» ненадолго воскрешается в силу ряда причин. Во-первых, буквально в новогодние праздники мы засели с некоторыми читателями и специалистами по ИИ за виртуальным круглым столом (пообщались в чате), где обсудили направления развития серии «Популярно об ИИ». Как многие знают, новый сезон я стартовал с темы вероятностной логики. После чего многие начали спорить, потому как просили написать ... подробнее

Система программирования GNAT: поддержка сертификации программных продуктов на основе стандарта DO-178B

2010/48программирование
Ада (ISO/IEC 8652) - язык программирования, специально созданный в начале 80-х годов прошлого века для применения в области больших встроенных систем реального времени с повышенными требованиями к надежности (с момента своего создания Ада претерпела две серьезные ревизии и является в настоящее время мощным универсальным индустриальным языком - http://www.adaic.com). Современные применения основанных на Аде технологий разработки программного ... подробнее

Язык Ада возрождает свои позиции в постсоветских странах: взгляд из Харьковского национального университета

2010/47программирование
Оглядываясь лет на 20-25 назад… Как известно, амбициозный американский проект конца 70-х – начала 80-х годов прошлого века, нацеленный на формирование новых технологий разработки ПО для критических применений, был закручен вокруг созданного для этих целей языка Ада. Захватив тогда важнейшие позиции в военной, космической и авиационной индустрии, Ада-технологии (разумеется, с тех пор многократно усовершенствованные) сохраняют их и поныне. ... подробнее

Тонкости оптимизации. Подведение итогов

2010/41программирование
Окончание. Начало в КГ №№ 36, 37, 38 В прошлый раз я подробно рассказал об эксперименте «Тонкости оптимизации» от независимой группы специалистов в сфере информационных технологий SASecurity gr.: почему, как и зачем. Кроме того, мы оценили исходное соотношение сил двух сравниваемых в ходе эксперимента алгоритмов. Пришло время ознакомиться с полученными результатами и попытаться объяснить их с точки зрения особенностей аппаратной реализации ... подробнее

Тонкости оптимизации. Практика и результаты эксперимента

2010/38программирование
В предыдущих двух частях я в мучительных подробностях рассказывал о том, как происходит выполнение программы, какие приемы оптимизации реализованы на аппаратном уровне разработчиками процессоров и почему эти приемы оказываются эффективными. Настало время наконец-то рассказать подробнее об эксперименте «Тонкости оптимизации», проводимом независимой группой специалистов в сфере информационных технологий SASecurity gr. Предыстория В ноябре ... подробнее

Тонкости оптимизации. Кратко для новичков. Часть 2

2010/37программирование
В прошлый раз я затронул некоторые вопросы, связанные с программированием и оптимизацией. В частности, напомню, речь шла о конвейерной обработке инструкций процессора и о кэшировании. Как и обещал, продолжаю рассказ. Предсказание переходов Как вы, надеюсь, помните, в процессорах Intel (а именно на их примере мы рассматриваем вопросы оптимизации) на аппаратном уровне реализована возможность одновременной обработки нескольких инструкций: пока ... подробнее

Тонкости оптимизации. Кратко для новичков

2010/36программирование
Ранее на страницах Компьютерной газеты (см. КГ № 30 от 9 августа 2010 г.) появилось сообщение о том, что независимая группа специалистов в сфере информационных технологий SASecurity gr. проводит эксперимент «Тонкости оптимизации». Темы, затрагиваемые этим экспериментом, довольно сложны для понимания даже многих опытных программистов. Поэтому, прежде чем поделиться с читателями полученными результатами, хотелось бы сделать реверанс в сторону ... подробнее

Истина где-то рядом. Эксперимент от SASecurity group

2010/30программирование
Гуляя по просторам сети Интернет в поисках интересной информации, Дмитрий Оношко наткнулся на интересную статью на портале govnokod.ru, автор которой утверждал, что код, генерируемый Delphi для округления вещественных чисел, дает резкое падение скорости выполнения программы. Delphi для округления создает функцию-обертку Round() над инструкцией сопроцессора FRNDINT. По сути, претензия автора обращена к тому, что лишний CALL-RET при выполнении ... подробнее

Скриптовый язык Ruby. Легкий путь в мир программирования. Часть 4

2010/30программирование
Циклы При написании программ в большинстве случаев нельзя обойтись без многократного повторения каких-либо действий, пока соблюдается определенное условие либо просто некоторое количество раз. В Ruby имеется комплект циклов на все случаи жизни. Цикл while Этот способ организации циклов относится к условным. Действия будут повторяться, ПОКА верно указанное в заголовке цикла условие. a_text = "" while a_text.length В этом простейшем ... подробнее

Скриптовый язык Ruby. Легкий путь в мир программирования. Часть 4

2010/29программирование
Организация ветвлений В программировании обыденны ситуации, когда нужно пропустить выполнение какого-либо фрагмента программы, перейдя сразу к следующему. Такие ситуации называются ветвлением. К сожалению (или, вернее, к счастью!), в Ruby нет оператора безусловного перехода, наподобие goto МЕТКА. По причине отсутствия в этом языке всякого присутствия такого понятия, как «метка». Все операторы ветвления подразумевают использование как ... подробнее

Небольшой пример использования регулярных выражений grep

2010/29программирование
Не так давно перед моим хорошим знакомым встала задача: есть файл с настройками DHCP в виде: host h1{ hardwareethernet 00:40:d1:64:ee:80; fixed-address 10.167.13.121; } .... host h1000{ hardwareethernet 00:13:77:3d:46:6f; fixed-address 10.167.12.104; } Ему нужно было привести его к виду: host h1{hardware ethernet 00:40:d1:64:ee:80;fixed-address 10.167.13.121;} .... host h1000{hardware ethernet 00:13:77:3d:46:6f;fixed-address 10.167.12.104;} ... подробнее

Ликбез по программированию

2010/27программирование
За прошедший с прошлой публикации материала серии период пришло сразу несколько фактически идентичных вопросов с просьбой порекомендовать русскоязычную книгу по программированию с использованием DirectX и Direct3D в частности. Нужно отметить, что на самом деле, хорошей литературы на русском языке по этой теме выпускается предельно мало, и лучшим руководством к действию являются всевозможные публикации, интернет-форумы, а также непосредственно ... подробнее

Скриптовый язык Ruby. Легкий путь в мир программирования. Часть 2

2010/25программирование
Синтаксис языка Общие понятия Как уже было сказано, программа на языке Ruby представляет собой текстовый файл. Строение его нельзя назвать сложным: одна строка – одна команда (или командная конструкция). То есть разделителем команд служит символ «перевод строки». То есть строки puts 77 и puts "test" будут правильными, а puts 77 puts "test" будет ошибочной. Правда, в случае необходимости, например при вводе данных, в качестве ... подробнее

Скриптовый язык Ruby. Легкий путь в мир программирования. Часть 1

2010/24программирование
С каждым годом персональный компьютер предлагает все больше способов потратить время. Мегааддиктивные офисные игрушки, наркотические многопользовательские ролевки, сладкая трясина блогов и социальных сетей… И все же программирование все еще остается одним из самых увлекательных занятий на компьютере. Создавать программы куда более интересное времяпрепровождение, чем псевдо-жизнь виртуальных персонажей в MMORPG или словоблудие в эротических ... подробнее

Создание wiki-сайта вместе с Confluence

2010/13программирование
Компания Atlassian давно зарекомендовала себя как ведущий разработчик различных программных продуктов, ориентированных на помощь в управлении проектами разработки ПО и поддержку связанных с ними процессов. Так, из-под крыла Atlassian вышел JIRA – инструмент управления проектом и составляющими его заданиями. Для JIRA есть множество плагинов, поддерживающих различные аспекты управления проектами. Так, одно из самых мощных дополнений для JIRA – ... подробнее

Adobe Pixel Bender: новый уровень в обработке изображений для flash

2010/08программирование
Компания Adobe целенаправленно работает над превращением flash, изначально позиционировавшегося как средство быстрого создания анимации и баннеров, в платформу для создания “больших и серьезных” приложений. Так, у всех на слуху такие технологии, как flex и air, ориентированные, прежде всего, на создание бизнес-приложений с развитым пользовательским интерфейсом (кнопки, списки, поля и таблицы с данными). Помимо этого flex и air предлагают ... подробнее

Легендарные IT-проекты: язык программирования Basic

2010/08программирование
Язык программирования Basic – наверное, самый распространенный в мире. Он, к тому же, единственный язык, который массово используется при обучении основам информатики во всем мире. А это значит, что его более-менее знает великое множество людей, совершенно не причастных к профессиональному программированию. Начало История Basic, как и многих других исторических IT-проектов, началась в середине 1960-х. Тогда два профессора Дартмутского ... подробнее

Программирование с использованием технологий AMD Stream и Nvidia CUDA

2010/07программирование
Технологии вычислений с использованием видеокарты с каждым днем получают все большее распространение. Особенно часто их применение можно встретить в задачах обработки мультимедийных данных, таких как распознавание текста, обработка изображений и декодирование видеоданных. Поэтому в данной статье мы рассмотрим две наиболее распространенные на сегодняшний день технологии программирования для видеокарты - AMD Stream и Nvidia CUDA. Несмотря на то, ... подробнее

Red5: Практика работы с потоковым мультимедиа. Часть 10

2010/06программирование
Эта статья завершит серию материалов, посвященных задачам создания мультимедиа-приложений, использующих возможности flash и java. Прошлая статья рассказывала о том, как мультимедиа-сервер red5 умеет “отдавать” клиенту поток видеоинформации. Так, мы создали простенький видеопроигрыватель, который умел загружать и показывать видео и как обычный flv-файл, и как мультимедиа-поток, формируемый red5-сервером. Сегодня пришло время рассмотреть вторую ... подробнее

Программирование графических приложений для Linux

2010/05программирование
Glade & Gtk В последнее время операционная система Linux становится все более популярной среди пользователей. Для нее написано уже достаточно много программ, улучшен графический интерфейс. Конечно, сложность в конфигурировании еще существует, но это незначительное неудобство для пользователя, особенно для опытного. Ядро системы обновляется несколько раз в год, приложения пишутся сообществами пользователей, благодаря этому Linux очень быстро ... подробнее

Ликбез по программированию & Популярно об ИИ

2010/03программирование
Данный материал носит объединенный характер и подпадает сразу под две серии вашего покорного слуги. Причиной тому послужило несколько писем. Изначально я просто хотел ответить на вопрос: «Кристофер, помоги разобраться с потоками для С++ —> Windows Application. Все книги в основном описывают MFC, а на лекциях дали вывод в консоли; для Windows Application это не работает, приложение виснет,… интересует, как расставлять приоритеты, это тоже ... подробнее

Red5: Практика работы с потоковым мультимедиа. Часть 9

2010/03программирование
Сегодняшняя статья серии будет посвящена тому, как мультимедиа-сервер red5 умеет работать с видеоинформацией, передавая ее как в направлении от клиента к серверу, так и в обратном. В частности, мы попробуем создать небольшое веб-приложение с галерей видеоизображений, и список этих изображений будет не статическим. То есть посетители сайта, имеющие в своем распоряжении веб-камеру, смогут сами записать небольшой ролик и опубликовать его на нашем ... подробнее

Разработка компьютерных игр. Практические курсы

2010/03программирование
Серии и циклы статей, так или иначе связанные с темой разработки компьютерных игр, уже несколько лет вызывают неподдельный читательский интерес. С моей же стороны хотелось бы углубить ситуацию в практическую область. Именно поэтому ваш покорный слуга разработал учебную программу для курса «Разработка компьютерных игр. Вводный практический курс» и решил ее реализовать совместно с учебным центром «Информ-дизайн-8» (www.kursy.by). Это и дополнение ... подробнее

Совсем чуть-чуть о cgi

2010/01программирование
Введение в cgi Популярность таких языков программирования, как php, используемых для создания веб-приложений, заставила нас позабыть о том, что для написания веб-софта можно использовать любой язык программирования, способный работать со стандартными устройствами ввода/вывода, будь то C, C++, Pascal, Delphi, Basic, Assembler (если постараться, можно и в машинных кодах написать). В чем же мы выиграем, если приложение будет написано, ... подробнее

Ликбез по программированию

2010/01программирование
Приступим сразу к делу… Вопросы, конечно, часто пересекаются, поэтому некоторые из них пришлось не ставить. Поехали. Подскажите, пожалуйста, с чего лучше начать, если я новичок в программировании и ни одного языка не знаю. Пробовал изучать по самоучителям, но многие книги написаны непонятным языком, в котором очень трудно разобраться. Если вам нетяжело, расскажите, пожалуйста, с чего лучше всего начинать. Заранее благодарен. Проблемы у ... подробнее

Red5: Практика работы с потоковым мультимедиа. Часть 8

2010/01программирование
Трудно привести пример какого-нибудь серьезного приложения, перед которым не стояла бы задача сохранения информации между сеансами работы. И не столь важно, где будет эта информация сохранена: то ли на локальном жестком диске компьютера, то ли на интернет-сервере. В разных приложениях могут меняться требования к объемам хранимой информации, надежности хранилища, возможности параллельной работы с данными нескольких пользователей, поддержке ... подробнее

Red5: Практика работы с потоковым мультимедиа. Часть 7

2009/46программирование
Сегодняшняя статья продолжит рассказ об одной из самых полезных возможностей, которые получаются от объединения flash и red5, а именно, SharedObjects. “Общие объекты” представляют собой отличное средство для организации взаимодействия и обмена информацией между несколькими flash- клиентами, подключенными к red5-серверу. В прошлый раз мы разобрали пример приложения «чат», в котором демонстрировалось, как клиенты могут обмениваться между собой ... подробнее

Ссылка в никуда, или сломанный указатель

2009/45программирование
Язык программирования C/C++ и ему подобные можно по праву назвать «высокоуровневым ассемблером» благодаря их гибкости и свободе. Но у чрезмерной свободы существуют и свои недостатки, следует неустанно следить за тем, чтобы свобода одного не мешала свободе другого. Именно поэтому на программистов «свободных» (C/C++/Assembler) языков ложится все бремя ответственности за правильный ход выполнения программы (в других языках программирования за ... подробнее

Red5: Практика работы с потоковым мультимедиа. Часть 6

2009/44программирование
Прошлые статьи были посвящены простейшей схеме взаимодействия между пользователями и приложением, исполняющимся в среде red5. То есть я показывал, как flash-клиент может вызвать любой метод на сервере, и то, как сервер может вызвать метод на стороне клиента. Однако подобное двунаправленное общение между клиентом и сервером – это еще не самое “вкусное”, что мы можем сделать с помощью red5. Существует целый класс приложений, в которых ставка ... подробнее

Ликбез по программированию

2009/43программирование
Честно сказать, просмотрев несколько учебников по информатике для школьников, а также ознакомившись с задачами олимпиад по программированию (или информатике, не помню, как точно называется), прочитав несколько методических пособий для ВУЗов, и зная, как функционирует коммерческое программирование у нас, у меня сформировалось пессимистическое мнение. Также по итогам моего общения/работы в последние два года, могу отметить, что самый худший код, ... подробнее

Red5: Практика работы с потоковым мультимедиа. Часть 5

2009/41программирование
В прошлой статье я завершил рассказ о том, как создать каркас для веб-приложения, выполняющегося в среде red5 и представляющего собой набор сервисов для flash-приложения. Пример был не самым сложным и всего лишь показывал, как можно отправить из flash запрос на подключение к веб- приложению, а после этого — как вызвать какой-нибудь метод, передав ему как параметры строку и получив в ответ такую же строку. В “настоящем” приложении обмен данными ... подробнее

КГ: ответы на вопросы

2009/39программирование
Ну что же, думаю, что на все нужно смотреть с оптимизмом. Приятно удивил фильм «Суррогаты» от режиссера «Терминатора-3» с Брюсом Уиллисом в главной роли, также порадовал белорусский производитель, выпустивший прекрасное питание для спортсменов «Беллакт-25», а под хорошее настроение и пишется легко. И, кстати, я посмотрел на происходящее со стороны и пришел к странным, но тоже положительным выводам. А именно… Нужно сказать, что КГ отличается от ... подробнее

Red5: Практика работы с потоковым мультимедиа. Часть 4

2009/39программирование
Рассказ о том, как создать веб-приложение, работающее в среде red5, медленно, но неуклонно близится к своему завершению. Так, прошлая статья была посвящена созданию серверной части примера: я перечислял файлы и каталоги, составляющие тот архив war, который можно развернуть на red5- сервере. Сегодняшний же материал расскажет о том, как создать клиентскую часть приложения, как установить соединение с сервером и вызывать на нем какой-нибудь метод ... подробнее

Red5: Практика работы с потоковым мультимедиа. Часть 3

2009/38программирование
Я продолжаю рассказ о методиках создания веб-приложений, совместно использующих возможности java, red5 и flash. Хотя конечной целью моих статей, в полном соответствии с вынесенным в заголовок названием, является организовать передачу мультимедиа-информации с сервера flash-клиенту и обратно, следует понимать, что потоковое мультимедиа – это не самоцель, а всего лишь одна из составных частей хорошего приложения. В прошлой статье я начал ... подробнее

Red5: Практика работы с потоковым мультимедиа. Часть 2

2009/37программирование
Эта статья продолжит начатый в прошлый раз рассказ о методиках создания веб-приложений, активно использующих технологии доставки и публикации потокового мультимедиа. Прошлая статья была “насквозь” теоретической: я рассказывал о том, что такое битрейт, медиаконтейнеры, кодеки, перечислил с десяток как платных, так и бесплатных медиасерверов, умеющих доставлять медиапоток к flash-клиенту. Сегодня я перейду к практике и познакомлю вас с red5 — ... подробнее

Ликбез по программированию. Сети и сетевые протоколы

2009/35программирование
Компьютер — это инструмент, которым нужно уметь пользоваться. Не секрет, что современное коммерческое программирование отличается от теоретического, и приложением «Hello, World!» вы никого не удивите — существуют потребности иного толка и другого уровня. В новообразованную рубрику (или цикл статей) пишут не только студенты, но и просто люди, которые хотят научиться реально программировать. Часть из них хочет воплотить в жизнь какие-нибудь ... подробнее

Red5: практика работы с потоковым мультимедиа. Часть 1

2009/34программирование
Идея доставки по сетям Интернет мультимедиа в виде аудио- и видеоматериалов совсем не нова. Еще добрых пятнадцать лет назад, в середине девяностых, было очевидно, что по мере повышения скорости работы телекоммуникационных сетей соотношение между информацией, доставляемой через internet в форме текста и аудио/видеоматериалов, будет неуклонно смещаться в сторону последней. И что самое приятное, этот рост проявляется не в примитивной форме MP3 ... подробнее

Легко и просто: графики и диаграммы на веб-страницах. Часть 4

2009/32программирование
Эта статья завершит рассказ о методиках внедрения в html-страницы графиков, диаграмм, а также рассказ о javascript-библиотеках, умеющих “рисовать” красивые и интерактивные изображения таких структур данных, как графы и деревья. В прошлой статье я начал рассказ об одной из самых лучших библиотек подобного плана – jit. Первый пример, который мы сделали с помощью jit, демонстрировал методику построения Hypertree. То есть дерева, размер и ... подробнее

Создаем средство для автоматического обновления продуктов Symantec на Delphi

2009/30программирование
За долгое время использования антивирусного ПО Symantec мне ни разу не приходилось сомневаться в качестве его работы. Единственное, что меня всегда огорчало, это невозможность создания локального зеркала обновлений (к Corporate-версиям не относится). Более того, почему-то до сих пор нельзя настроить соединение с сервером обновлений через прокси, и всем, кто не сидит в Интернете через VPN, приходится регулярно скачивать полный архив баз весом в ... подробнее

Разрабатываем компьютерные игры. Практика. Часть 2

2009/30программирование
Сегодня у нас должен был быть «жирный» урок, то есть большой, и делить его на две раздельные части очень не хотелось. Дело в том, что мы внедримся в специфику технологий, где все взаимосвязано, то есть, вывод треугольников, тайлы (блоки), текстурирование, спрайты. Но газета не резиновая, поэтому о текстурировании и спрайтах мы поговорим в следующем материале серии. Другими словами, часть II и часть III у вас должны восприниматься как единый ... подробнее

Легко и просто: графики и диаграммы на веб-страницах. Часть 3

2009/30программирование
Согласно своему определению, диаграмма (от греч. diagramma — изображение, рисунок, чертеж) - это графическое изображение, наглядно показывающее соотношение каких-либо величин. Прошлые две статьи серии были посвящены классическим видам диаграмм, т.е. линейным и столбчатым. Сегодня же я начну знакомство с парой javascript библиотек, служащих не для показа соотношения каких-либо величин, а для отображения их структуры, связей и взаимодействия. Из ... подробнее

Конвертируем защищенные и редкие форматы документов на Delphi

2009/29программирование
Наверняка каждый из нас сталкивался с проблемой, когда позарез нужно достать текст из PDF-документа, а он защищен от копирования. Или вьювер djvu не поддерживает экспорт отдельных страниц. Или вам принесли текст в редком формате, который воспроизводит только специальная программа, и вы оттуда тоже ничего не можете скопировать или экспортировать. Сегодня мы напишем утилиту, которая будет спасать нас в таких ситуациях. А идея очень простая – ... подробнее

Легко и просто: графики и диаграммы на веб-страницах. Часть 2

2009/29программирование
Я продолжаю начатый в прошлой статье рассказ о том, как с помощью javascript без использования “тяжелых” серверных скриптов на php или flash- роликов создавать и внедрять в html-странички картинки диаграмм и графиков. Сегодня я завершу повествование об основных функциях библиотеки flot и посвящу материал всевозможным “красивостям”, т.е. тому, как можно управлять внешним видом серий данных на диаграмме, настраивать внешний вид легенды диаграммы ... подробнее

Популярно об ИИ

2009/28программирование
Недавно, подходя к мосту через Свислочь по ныне названному проспекту Машерова, заметил удивительную вещь. Деревья посажены прямо под воздушной линией электропередач. Вот она, преемственность поколений! То есть мое или предыдущее моему позаботилось, чтобы следующим было не скучно в жизни, чтобы и они нашли, чем заняться. Например, спиливать деревья, дабы те не повреждали ЛЭП по мере своего роста. Многие, возможно, подумали, что ваш покорный ... подробнее

Управление сборкой проектов вместе с teamcity. Часть 3

2009/27программирование
Эта статья завершит серию материалов, посвященных рассказу о том, как teamcity помогает управлять проектами разработки программного обеспечения и, в частности, автоматизирует процесс сборки проекта, запуска тестов и интегрирует эти шаги в жизненный цикл разработки приложения. Прошлые две статьи были посвящены рассказу о том, какое место занимают в ходе разработки программного обеспечения продукты класса “build management and continuous ... подробнее

Популярно об ИИ

2009/27программирование
М-да, вообще, наша жизнь по мере своего развития — это процесс преобразования дерева поиска в граф:), в котором есть частые повторения ситуаций, но при этом к одной и той же ситуации можно прийти совершенно различными путями. На этом философские возлияния закончим. Включаем деструктор и… С интересным алгоритмом я недавно столкнулся. Он может работать только при условии 0/0=1, x/0=+бесконечность, -x/0=-бесконечность, то есть вписано условие ... подробнее

Жажда скорости: GRID-вычисления

2009/26программирование
Окончание, начало в №24 В первой части статьи мы познакомились с GRID-вычислениями, а именно с принципами построения таких вычислительных сетей и некоторыми проектами, которые реализуют распределенные вычисления. Во второй части статьи мы рассмотрим то, с какими проблемами придется столкнуться разработчику при реализации системы GRID-вычислений, причем практическую реализацию этого вы можете посмотреть на уже готовом небольшом демонстрационном ... подробнее

Ликбез по программированию

2009/26программирование
Нас читает много студентов… Действительно, и вопросов по программированию от них стало приходить немало. В основном спрашивают по С/С++, потому как эти языки наиболее часто преподаются в вузах. Многие вопросы являются простыми, но, как показывает практика, далеко не все могут быстро найти на них ответы. Поэтому постараемся восполнить эти пробелы. Со своей стороны я бы выделил сначала топ-10 ошибок начинающих программистов, с которыми можно ... подробнее

Управление сборкой проектов вместе с teamcity. Часть 2

2009/26программирование
Я продолжаю рассказ о teamcity и о том, как с его помощью мы можем вывести процесс управления разработкой программного обеспечения на новый уровень. Технически teamcity относится к классу продуктов build management and continuous integration. Такие инструменты используются отделом управления качеством и предназначены для того, чтобы извлечь из cvs/svn-репозитория последнюю версию исходников проекта и собрать проект (билд). Затем билд будет ... подробнее

Управление сборкой проектов вместе с teamcity. Часть 1

2009/25программирование
В последнее время я написал несколько серий статей, посвященных различным аспектам управления процессом разработки программного обеспечения. Мы научились использовать maven для унифицированного представления проекта, а для хранения перечня всех заданий, возникающих в ходе разработки, мы использовали mantis. Сегодня пришло время рассказать еще об одной важной сфере в профессиональной разработке программного обеспечения – создании ... подробнее

Mantis: Охотник на BUG-и. Часть 2

2009/23программирование
Я продолжаю и завершаю рассказ о Mantis – популярном средстве управления проектом разработки программного обеспечения. Сфера компетенции mantis – это ведение единой базы данных, в которой хранится вся история разработки проекта, список всех выданных заданий (как багов, так и фич). Каждому заданию соответствует карточка учета, благодаря которой всегда можно узнать, как и кем было выдано задание, кто отвечал за его реализацию, кто проверил ... подробнее

Разрабатываем компьютерные игры. Практика. Часть 1

2009/23программирование
У некоторых медиков есть так называемое «правило зебры», то есть если вы слышите топот копыт, то нужно представлять самое очевидное — лошадь, а не думать о зебрах и т.п. Другими словами, по симптомам и анализам нужно искать известное заболевание, а не что-то экзотическое. Это можно перенести и на отечественный рынок игровых разработок. Считается, что у нас много профессионалов, при этом терпеть не могут перфекционистов (они же максималисты и ... подробнее

Mantis: Охотник на BUG-и. Часть 1

2009/23программирование
В разработке программного обеспечения важнейшую часть занимает вопрос координации усилий всех участников, вопрос обмена ими информацией, учета и планирования работ. Не секрет, что хороший продукт создается, прежде всего, не индивидуальным мастерством отдельных программистов, а четкой последовательностью шагов, начиная от сбора требований заказчиков и анализа, далее к построению архитектуры приложения, собственно, программированию и завершающим ... подробнее

PersistJS + TaffyDB: Как поселить почти настоящую базу данных в браузер. Часть 3

2009/22программирование
Эта статья завершит собой серию материалов, рассказывающих о том, как можно внутри обычного браузера “поселить” базу данных. “Браузерная” СУБД должна содержать две функции: сохранение данных и операции над ними (поиск, редактирование). В прошлых двух статьях я рассказывал о том, как библиотека persistjs позволяет организовать унифицированное хранение информации независимо от версии используемого браузера. Сегодня мы поговорим о том, что мы ... подробнее

Lua для игр и не только. Часть 6

2009/21программирование
Итак, сегодня у нас практическое занятие, потому как от формальных выкладок пользы на самом деле мало. Мы будем решать задачу с восемью ферзями, которые нужно расположить на шахматной доске таким образом, чтобы ни один из них не оказался под атакой другого. Напомним, что все у нас практически бесплатно, то есть пользуемся программой SciTE ( сайт , 1,2 Мб), язык Lua изучаем пока в автономном виде, то есть без привязки к какому-нибудь ... подробнее

PersistJS + TaffyDB: Как поселить почти настоящую базу данных в браузер. Часть 2

2009/20программирование
Ключевой частью любого приложения, и веб-приложение не исключение, является хранение данных. Помимо того, что данные нужно сохранять между перезапусками браузера или компьютера клиента, не менее важным является наличие средств быстрого и удобного поиска информации. И эти средства есть. Есть средства, предусмотренные стандартом html5, пусть и не поддерживаемые пока всеми браузерами. Есть средства, созданные как несовместимые расширения, ... подробнее

Lua для игр и не только. Часть 5

2009/20программирование
Взяв какую-нибудь книгу по разработке компьютерных игр, в 99 случаях из 100 вы там не встретите упоминания о Lua, хотя использование этого языка является технологическим стандартом, причем в рамках современных реалий оно оптимально. За кажущейся простотой Lua скрывается огромная мощь. Этим языком заинтересовались не только разработчики игр, но и девелоперы кроссплатформенных решений. На Lua очень удобно реализовывать всю внутреннюю обработку ... подробнее

PersistJS + TaffyDB: Как поселить почти настоящую базу данных в браузер. Часть 1

2009/19программирование
Хм, база данных в браузере, да еще и "почти настоящая", как это и, самое главное, кому это нужно? Не было бы ничего более простого, чем начать эту статью со стандартных фраз, вроде следующей: "За последние годы все более и более выраженной становится тенденция наделения веб-приложений чертами своих старших "настольных" собратьев". И под этим "соусом" обосновать необходимость для веб-приложения хранить данные не только на веб- сервере, но и на ... подробнее

Lua для игр и не только. Часть 4

2009/19программирование
На вопрос: "что такое хлеб", можно ответить по-разному. Например, "хлеб является продуктом питания, рецептура приготовления которого включает…". Можно и более пафосно: "хлеб — всему голова". В первом случае нам будет все понятно, второе объяснение может поставить в тупик. Именно такую же параллель можно провести с объяснением базовых принципов ООП (объектно-ориентированного программирования) и понятия классов. Говоря в первой части материала, ... подробнее

Наводим порядок в разработке ПО вместе с maven. Часть 8

2009/18программирование
Этой статьей я завершаю рассказ о maven и о том, как он позволяет управлять проектами разработки программного обеспечения. Сегодня мы поговорим о том, как выполнить подготовку разработанного вами проекта к поставке заказчику. Тема эта сложна и включает в себя множество аспектов. Начинается все с подготовки исполнимого файла приложения со всеми нужными для его работы ресурсами и библиотеками. Затем нужно подготовить документацию, создать ... подробнее

Lua для игр и не только. Часть 3

2009/18программирование
Беря все лучшее из обоих миров Мартин Страйчер, главный редактор Linux Magazine о Lua Сегодня мы подробно остановимся на принадлежности языка Lua, а также на некоторых его особенностях. Многие его называют процедурным, это и так и не так одновременно. А для начала нам нужно разобраться с тем, что же подразумевается под современным понятием высокоуровневых языков, где слабые места в принятых соглашениях. Основную разницу между компилируемыми ... подробнее

Недостатки форматной строки

2009/18программирование
Строка форматирования в языке С++ и ему подобных используется множеством программистов по всему миру, вообще, это одно из самых удобных средств форматирования выводимых данных, но за удобство приходится платить. Как и все остальное, это решение придумано и реализовано человеком, а посему не лишено недостатков (как сказали в одном фильме, «Наше совершенство в нашем несовершенстве»). Printf ( сайт - обобщенное название семейства функций или ... подробнее

Наводим порядок в разработке ПО вместе с maven. Часть 7

2009/16программирование
Одним из самых важных характеристик любого программного продукта, технологии или языка программирования является его "кривая изучения". По оси OX этого воображаемого графика вы откладываете временные затраты на изучение технологии, а по оси OY - сложность тех задач, которые вы сможете решать, потратив заданное время на обучение. Так вот, хороший продукт характеризуется плавным возрастанием "кривой изучения". То есть вы можете делать простые ... подробнее

Lua для игр и не только. Часть 1

2009/16программирование
Если вы не любите кошек, значит, вы не умеете их готовить. Если что-то должно быть сделано, то нужно это сделать качественно. О языке Lua написать должно, потому как он сопровождает мировые технологии топ-класса, а насчет качества… не хочется уподобляться быстрому обзору в стиле "я знаю Lua" или "Lua как явление с точки зрения профи", а хотелось бы объяснить суть процессов, связанных с этим языком, так чтобы было понятно, и вы смогли бы на ... подробнее

Наводим порядок в разработке ПО вместе с maven. Часть 6

2009/15программирование
Я продолжаю начатый в прошлой статье рассказ о том, как maven умеет работать с многомодульными проектами. В качестве примера я создам enterprise- приложение на java, состоящее из трех модулей: business-logic (логика работы приложения), web-interface (пользовательский интерфейс) и собирающий предыдущие две части в единое целое модуль application. Обсуждаемый пример демонстрирует парочку полезных приемов, которые пригодятся любому, кто ... подробнее

Наводим порядок в разработке ПО вместе с maven. Часть 5

2009/14программирование
Я продолжаю рассказ о maven и о том, как он упрощает разработку программных продуктов, задавая четкий ритм и последовательность шагов, через которые проходит жизненный цикл проекта. В прошлый раз мы завершили рассказ о самой большой и известной части maven – управлении зависимостями. Сегодня нас ждет продолжение, и мы поговорим о создании многомодульных проектов. Но перед тем как мы начнем рассматривать методики разделения больших проектов на ... подробнее

Наводим порядок в разработке ПО вместе с maven. Часть 4

2009/12программирование
Одна из самых широко разрекламированных и приятных возможностей maven – это управление зависимостями. Описав в файле pom.xml список артефактов, нужных для работы проекта, мы перекладываем на maven все заботы, связанные с загрузкой библиотек из Интернета, разрешение транзитивных зависимостей. И можем сосредоточиться на, собственно, разработке проекта, написании кода. Увы, но задачу разрешения зависимостей не всегда можно выполнить ... подробнее

Наводим порядок в разработке ПО вместе с maven. Часть 3

2009/11программирование
Я продолжаю рассказ о maven – инструменте, с помощью которого мы можем организовать унифицированное, не зависящее от конкретной среды разработки (IDE) представление проекта java. В прошлых двух статьях я пробежался по основным "вкусностям" maven: управление зависимостями проекта, способности maven загружать из Интернета и сохранять в локальном репозитории артефакты. Также я рассказал о жизненном цикле maven, о том, из каких фаз он состоит, и ... подробнее

Наводим порядок в разработке ПО вместе с maven. Часть 2

2009/10программирование
Я продолжаю рассказ о maven – инструменте управления проектом, составляющих его модулях, зависимостях модулей от различных библиотек-артефактов и многом другом. Maven имеет несколько "лиц" или областей применения, которые будут раскрываться перед вами по мере изучения maven, плагинов для maven и смежных инструментов. Сегодня я продолжаю рассказ о начатом в прошлой статье примере создания проекта maven, его настройке. Так, разобравшись с ... подробнее

Assembler под Windows для чайников. Часть 23

2009/10программирование
В прошлый раз мы приступили к написанию простого графического редактора, который для начала должен хотя бы предоставлять возможность открывать графический файл для просмотра. Общую часть мы достаточно подробно изучили. Детально описали структуру файлового формата BMP. Теперь мы готовы приступить к текущей основе нашей программы – процедуре открытия файла. Выбор пункта меню "Открыть" или нажатие комбинации "Ctrl+O" приводит к получению ... подробнее

Ассемблер под Windows для чайников. Часть 22

2009/09программирование
Если вы помните, в последних выпусках по ассемблеру (см. КГ №47 за 2008 год), мы изучали разные оконные и графические функции Windows: отображали картинку из ресурсов в окне программы, осуществляли поочередное воспроизведение кадров для реализации анимации, создавали окна нестандартной формы. Чтобы покончить с азами графики, нам осталось написать собственный графический редактор. Редактор, естественно, будет простеньким, и на первых порах даже ... подробнее

Наводим порядок в разработке ПО вместе с maven. Часть 1

2009/08программирование
Разработка программного обеспечения — не самая простая наука. В общем объеме времени, отданного на создание продукта, написание непосредственно программного кода занимает далеко не самую большую долю. По мере увеличения сложности создаваемого продукта, финансовых и временных затрат, опережающими темпами растут затраты на анализ требований, планирование и организацию коллективной работы, на повышение качества. Почти год назад я написал ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 20

2009/07программирование
Эта статья завершит рассказ о компоненте TreeView. С его помощью мы можем отображать на веб-странице иерархическую информацию в форме дерева. Для простеньких сайтов мы вполне можем обойтись загрузкой информации из статического источника данных, т.е. данные встроены в саму веб-страницу. А вот для серьезных приложений, работающих с большими объемами информации, такая методика не подойдет: данные должны загружаться динамически, по мере ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 19

2009/06программирование
Эта статья начнет рассказ о последнем из больших и сложных компонентов YUI – TreeView. Разрабатывая с помощью YUI "богатые" пользовательские интерфейсы для веб-приложений, мы нуждаемся не только в средствах удобного отображения табличной информации (DataTable), но еще и в информации иерархической (например, структура организации или категории товаров). Тема сегодняшней статьи – компонент TreeView – как раз и предназначен для того, чтобы ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 18

2009/04программирование
Эта статья завершит рассказ об одном из самых "больших" и полезных компонентов в библиотеке Yahoo UI - компоненте DataTable. DataTable служит для отображения на веб-страницах информации в форме таблиц. В последних двух статьях я рассказал почти обо всех возможностях DataTable. Остались нераскрытыми только те функции DataTable, которые связаны с редактированием содержимого таблицы. В прошлой статье я рассказывал, как можно настроить правила ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 17

2009/02программирование
Эта статья продолжает рассказ об одном из самых частоиспользуемых и сложных компонентов YUI — DataTable. Сегодня я расскажу о том, как загружать данные для DataTable с сервера с поддержкой paging'а, как сделать табличку более дружественной к пользователю, как работать с моделями выделения строк. В прошлый раз я остановился на том, что показал, как DataTable интегрируется с компонентом Paginator для отображения большого объема информации ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 16

2009/01программирование
Я продолжаю рассказ об одном из наиболее полезных и сложных компонентов в библиотеке Yahoo UI. В прошлый раз я показал самые основы работы с компонентом DataTable: мы научились размещать его на странице и наполнять данными из javascript-массива. Также познакомились с методиками настройки внешнего вида колонок таблицы и отдельных ячеек (formatter'ы). Сегодняшняя статья покажет, как загружать данные для DataTable с сервера (ajax), как ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 15

2008/48программирование
В своеобразный "джентльменский набор" любой javascript-библиотеки, предназначенной для проектирования "богатых" пользовательских интерфейсов, входят компоненты для отображения табличных данных. Конечно, для большинства "домашних" сайтов нет необходимости отображать большие объемы информации в виде таблиц. Но для бизнес-приложений (учет товаров и их движения, кадровый учет…) таблицы обязательны. И не просто таблицы, а таблицы удобные: с ... подробнее

Ассемблер под Windows для чайников. Часть 21

2008/47программирование
Сегодня мы продолжим изучение основных графических функций Windows и их использование в программах, написанных для компилятора FASM. Чаще всего в Windows-приложениях используются стандартные окна. Но иногда программисты, желая выделиться оригинальностью интерфейса программы, прибегают к использованию нестандартных форм окошек. Об этих "наворотах" мы сегодня и поговорим. Сразу скажу, что я не являюсь профессиональным дизайнером, поэтому прошу ... подробнее

Ассемблер под Windows для чайников. Часть 20

2008/46программирование
Продолжим знакомиться с азами воспроизведения картинок в окошках. В прошлый раз мы сумели загрузить картинку из ресурсов во вторичный буфер в памяти и скопировать ее в первичный буфер. Не надо пугаться двойной буферизации, ведь она присутствует повсюду, даже в смывном бачке, простите за ассоциацию. Это вполне естественно: аккуратно вырезать печать, а потом — бах, бах — и надпись с рисунком уже на бумаге. В программе нам даже не надо ничего ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 14

2008/46программирование
Сегодняшняя статья лишь формально продолжает серию, рассказывающую о библиотеке jаvаsсript-компонентов Yаhoo UI. Разработка сложного интерфейса веб-страницы, активно использующего идеи аjаx, поднимает вопрос о том, как визуализировать данные, загруженные с сервера. В отдельных ситуациях можно обойтись подходом, когда на стороне сервера формируется полный фрагмент html-представления страницы. В других случаях YUI-компоненты диктуют правила, как ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 14

2008/46программирование
Сегодняшняя статья лишь формально продолжает серию, рассказывающую о библиотеке javascript-компонентов Yahoo UI. Разработка сложного интерфейса веб-страницы, активно использующего идеи ajax, поднимает вопрос о том, как визуализировать данные, загруженные с сервера. В отдельных ситуациях можно обойтись подходом, когда на стороне сервера формируется полный фрагмент html-представления страницы. В других случаях YUI-компоненты диктуют правила, как ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 13

2008/44программирование
В прошлой статье серии я закончил рассказ о таком визуальном элементе в библиотеке Yahoo UI, как colorpicker (окошко для выбора цвета). Сегодня мы продолжим изучать другие визуальные компоненты: нас ждет знакомство с carousel и slider. Что такое carousel? С английского это слово переводится как "карусель". И в полном соответствии со своим названием этот элемент управления представляет собой набор закладок (т.е. чем-то похож на знакомый уже ... подробнее

Ассемблер под Windows для чайников. Часть 19

2008/43программирование
В прошлый раз мы научились выводить bitmap в качестве фона диалогового окна. Сегодня продолжим разговор об использовании графических элементов в окне программы. Рассмотрим отображение графики в обычном окне. Этот способ несколько сложнее, чем отображение картинки в диалоговом окне, ввиду того, что некоторые вещи, которые выполнялись системой автоматически, нам придется выполнить самостоятельно. Зато мы сможем более подробно рассмотреть ... подробнее

Ассемблер под Windows для чайников. Часть 18

2008/42программирование
Приветствую начинающих и продолжающих изучение ассемблера! Когда-то давно люди даже не мечтали о том, что компьютер будет способен выводить на дисплей какую-либо графическую информацию, кроме букв и цифр. Сегодня же большинство людей просто не умеют работать вне графического интерфейса операционной системы. Поэтому современные программы для более удобного и приятного восприятия пользователем повсеместно снабжаются всевозможными графическими ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 12

2008/42программирование
Я продолжаю серию материалов, рассказывающих про javascript-библиотеку Yahoo UI. Прошлая статья была посвящена такому элементу управления, как календарь (группа календарей). Мы научились внедрять его в html-страницу, управлять параметрами внешнего вида, выполнять интернализацию интерфейса. Сегодня я завершу рассказ о календаре и перейду к рассмотрению других элементов управления. В прошлый раз мы остановились на том, что я показал, как можно ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 11

2008/41программирование
Я продолжаю рассказ о библиотеке Yahoo UI. В прошлой статье серии я рассказывал о компоненте TabView (наборе закладок). Сегодня продолжу рассмотрение возможностей YUI именно в области построения пользовательских интерфейсов и начну рассказ про один из наиболее часто используемых элементов интерфейса — календарь. Элемент управления calendar нам пригодится в тех случаях, когда пользователь должен указать дату в одном из полей формы на сайте. ... подробнее

Ассемблер под Windows для чайников. Часть 17

2008/41программирование
В предыдущей части мы познакомились с основными функциями для работы с реестром Windows. Сегодня научимся их использовать на примерах простейших программ. Не забывайте, что реестр — достаточно серьезная вещь, поэтому будьте предельно внимательны: ошибка при работе с реестром может привести к отказу всей операционной системы. Тем не менее, волков бояться — в лес не ходить. Так что приступим! Для начала создадим ключ реестра в ветке ... подробнее

Защита приложений на платформе Eclipse RCP

2008/40программирование
Наконец наступил момент, когда вы готовы показать ваше творение миру. И если это коммерческое приложение, то желательно сразу же позаботиться о защите программного кода от взлома злоумышленниками. Для написанных на языке java программ это существенная проблема, так как существует несколько программ, которые позволяют декомпилировать java-байт-код обратно в тестовый формат java-файлов проекта. Одним из наиболее известных и популярных ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 10

2008/40программирование
Новые версии для рассматриваемой в этой серии статей javascript-библиотеки Yahoo UI появляются не слишком быстро. Так, первые строки, рассказывающие про YUI, были написаны еще в июле и на примере версии 2.5.2. Буквально пару дней назад вышла следующая версия — 2.6. Количество нововведений не слишком велико: два новых компонента, с десяток улучшений в работе существующих и почти три сотни исправлений ошибок. Тем не менее, на вопрос, переходить ... подробнее

Ассемблер под Windows для чайников. Часть 16

2008/39программирование
Привет, сегодня мы немного отойдем от сложных математических расчетов и изучим основные функции работы с реестром Windows. Обычно реестр Windows или системный реестр используется для хранения информации и настроек оборудования или программного обеспечения. Надеюсь, вы уже имеете представление о реестре и знакомы с программой regedit.exe. Если нет, то советую вам почитать об этих вещах в интернете или учебниках, прежде чем приступать к ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 9

2008/39программирование
Я продолжаю рассказ о возможностях javascript-библиотеки Yahoo UI. Несколько прошлых статей были посвящены различным аспектам работы с ajax: работа с формами, отправка на сервер файлов, решение проблемы crossdomain-запросов. Сегодня я возвращаюсь к рассмотрению визуальных элементов управления, хотя это не означает, что про ajax больше не будет сказано ни слова: многие сложные визуальные элементы YUI открываются во всей своей красе только если ... подробнее

Ассемблер под Windows для чайников. Часть 15

2008/38программирование
Сегодня мы попробуем закончить с азами управления массивами, а также познакомимся поближе с методикой выделения памяти в славном семействе Windows NT/2K/XP/Vista. В предыдущих примерах наш массив располагался в секции данных исполняемого модуля. Такой подход вполне удобен при работе со статическим массивом. Но статические массивы используются достаточно редко. Чаще возникает необходимость использования динамического массива, количество ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 8

2008/38программирование
Современную ajax-библиотеку невозможно представить без поддержки загрузки файлов. И Yahoo UI — не исключение: загрузка файлов выполняется с помощью специального flash-ролика, который мы должны предварительно внедрить в веб-страницу. Минусы, вызванные необходимостью поддержки браузером клиента нужной версии flash player'а, почти не заметны. А вот появление в списке дополнительных возможностей средств мониторинга за тем процентом выполнения ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 7

2008/37программирование
Я продолжаю рассказ о возможностях Yahoo UI — как возможностях в построении красивых и удобных интерфейсов пользователей, так и возможностях YUI в "общении" с сервером (ajax). Прошлая статья носила достаточно теоретический характер: я рассуждал об основных проблемах построения приложений на ajax-платформе. Проблемах, характерных не только для YUI, но и для любой другой javascript-библиотеки. Сегодня я расскажу еще несколько "баек" о том, как ... подробнее

Ассемблер под Windows для чайников. Часть 14

2008/37программирование
Массивы, массивы, кругом одни массивы. Понимаю, как вы устали их учить, но позже, оглядываясь назад, вы не сможете недооценить важность этой темы. Не зря же говорят: тяжело в учении — легко в бою. Ни одна серьезная программа на сегодняшний день не обходится без функций обработки массивов. Конечно, для использования этих функций вам, скорее всего, не понадобится каждый раз писать их самостоятельно. В интернете вы всегда сможете найти готовые ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 6

2008/36программирование
YUI — известная javascript-библиотека для построения "богатых" пользовательских интерфейсов веб-страниц. Однако ее изобразительные средства были бы малополезны, если бы в состав YUI не входили специальные модули, позволяющие загружать в html-страницу информацию с сервера. Так, в прошлый я начал рассказ о том, как YUI поддерживает идеи ajax. Мы научились загружать и отправлять на сервер информацию в различных форматах (text, xml, json) и даже ... подробнее

Ассемблер под Windows для чайников. Часть 13

2008/35программирование
В прошлый раз мы познакомились с массивами и научились выводить простейший одномерный массив в окне программы. Сегодня — научимся производить поиск в массиве и сортировку элементов по их значению.  Сортировка элементов массива — достаточно сложная тема даже если речь идет о высокоуровневом языке. А уж если говорить об ассемблере, то здесь новички боятся сортировки как огня. Но лишь в самом начале. Потом приходит понимание вопроса, и ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 5

2008/35программирование
Назначение (YUI) Yahoo User Interface — создание "серьезных и больших" веб-приложений. Этого невозможно достичь только используя визуальные элементы управления (тема предыдущих статей). Кнопки, закладки, таблички и менюшки, — все это хорошо и красиво, но главный вопрос остался открытым. Где взять данные для отображения в той таблице, как обработать и сохранить информацию, введенную пользователем в форму? Сегодня мы начинаем знакомиться с тем, ... подробнее

Визуализация размещения SWT-компонент

2008/34программирование
В процессе работы над проектами на платформе Eclipse Rich Client Platform (RCP) нередко возникают проблемы некорректного размещения компонент на формах. Для того, чтобы оперативно выявить источник проблемы, можно воспользоваться новым подключаевым модулем Picasso, который позволяет визуализировать размещение SWT компонент на формах. Рис. 1. Визуализация размещения SWT-компонент с помощью плагина Picassa Проект еще находится в стадии ... подробнее

Сложные интерфейсы на javascript вместе c Yahoo UI. Часть 4

2008/34программирование
YUI по праву заслужила право называться одной из самых лучших javascript-библиотек. Она отлично подходит в том случае, если вам нужно создать сложный интерфейс веб-страницы: мы можем проектировать внешний вид приложения из таких "кубиков", как меню, таблицы, деревья, наборы закладок. Внешний вид интерфейса получается унифицированным с тем, к которому привык пользователь, работая с windows, а стилевые возможности css позволяют придать ... подробнее

Ассемблер под Windows для чайников. Часть 12

2008/34программирование
Сегодня мы поговорим о массивах данных. Работая за компьютером, с массивами данных мы сталкиваемся практически повсеместно: сортировка файлов, индексированный поиск, электронные таблицы, списки и многое, многое другое. Теперь, когда мы изучили столько важных команд ассемблера, можем всерьез заняться изучением алгоритмов работы с массивами. Тема эта весьма сложная, но без умения управляться с массивами данных нельзя далеко продвинуться в ... подробнее

Сложные интерфейсы на javascript вместе. Yahoo UI. Часть 3

2008/33программирование
Сегодня я продолжаю рассказывать об одной из лучших javascriрt-библиотек для построения сложных и богатых пользовательских интерфейсов — yui (yahoo user interface). В прошлых двух статьях мы изучили модули dom, selector, events, animation, logger и тем самым заложили хороший фундамент для перехода к изучению, нет, не более сложной, но более интересной темы — работы с компонентами пользовательского интерфейса. Вот перечень модулей yui, ... подробнее

Ассемблер под Windows для чайников. Часть 11

2008/33программирование
Продолжим изучение наидревнейшего и бессменного языка электронных машин. Сегодня пришла пора познакомиться поближе с командами обработки строк. Эти команды также обычно называют цепочечными командами, потому что с их помощью можно обрабатывать не только строки символов, но и цепочки любых данных. Цепочечные команды незаменимы при работе с массивами. Несмотря на их кажущуюся ограниченность, большинство высокоуровневых функций обработки массивов ... подробнее

Ассемблер под Windows для чайников. Часть 10

2008/32программирование
Сегодня мы продолжим знакомство с основными командами ассемблера. Программирование под Windows — это, конечно, замечательно, но чтобы программировать на ассемблере, необходимо знать команды ассемблера. Те, кому не по душе теория, могут не волноваться: она скоро закончится, и мы снова вернемся к практике. Помню, как мне не нравилась вся эта скучная теория, особенно когда самые непонятные моменты приходилось читать на английском. Но искусство ... подробнее

Сложные интерфейсы на javascript вместе. Yahoo UI. Часть 2

2008/32программирование
Я продолжаю начатый в предыдущей статье (см. КГ №28) рассказ об известной javascript-библиотеке yui (yahoo user interface). В прошлый раз я поверхностно прошелся по модулям, из которых состоит yui, рассказал о ее истории, лицензировании. Завершив рассмотрение модуля Selector, отвечавшего за решение задач поиска в исходном дереве html-страницы некоторых узлов по условию, мы научились выполнять простейшие операции над DOM-структурой ... подробнее

Ассемблер под Windows для чайников. Часть 9

2008/30программирование
Приветствую постоянных читателей, а также тех, кто только решил влиться в ряды изучающих ассемблер под Windows. Сегодня весьма полезная тема и для первых, и для вторых. Потому что сегодня мы подробно рассмотрим основные команды ассемблера в теории. Обычно я строил наши занятия по большей части с практическим уклоном. Но теперь, когда вы уже получили достаточно примеров использования тех или иных команд ассемблера, пришла пора четко и безо ... подробнее

Ассемблер под Windows для чайников. Часть 8

2008/29программирование
Доброго вам здравия, о покорители оконного ассемблера! Надеюсь, вы уже разобрались с пройденным материалом и готовы к очередному занятию. В шестой части я обещал вам подробнее рассказать о применении диалоговых окон. О них сегодня и пойдет речь. Напишем простейший шифровальщик данных на основе диалогового окна. Прошу заметить, что "простейший" не всегда означает "быстрейший". Ввиду этого наша сегодняшняя программа вряд ли претендует на роль в ... подробнее

Сложные интерфейсы на javascript вместе Yahoo UI. Часть 1

2008/28программирование
Сегодняшняя статья будет посвящена разработке с помощью javascript сложных и визуально богатых веб-приложений. Нет, даже не так: очень сложных и очень визуально богатых веб-приложений. Современный посетитель сайта уже привык к тому, что на практически каждом посещаемом им сайте активно используются идеи ajax, когда часть содержимого страницы меняется без перезагрузки всей страницы. Привык к тому, что активно используются всплывающие подсказки, ... подробнее

Пишем и тестируем код, работающий с БД, вместе с DBUnit & LiquiBase. Часть 2

2008/27программирование
Я продолжаю рассказ о двух полезных для любого java- (а может, и не только) программиста или тестировщика утилитах: dbunit и liquibase. В прошлый раз я начал рассказ о том, как с помощью dbunit можно создать тестовый набор данных в формате xml. Сегодня же нам нужно разобраться с тем, как импортировать эти данные в БД при запуске тестов, и как интегрировать dbUnit и jUnit. Однако перед этим я сделаю небольшое отступление и закрою вопрос ... подробнее

Ассемблер под Windows для чайников. Часть 7

2008/26программирование
Заждались, наверное, продолжения? Что ж, ожидание только усиливает радость встречи. На сегодня у нас запланирован выход бета-версии 0.2 нашего первого текстового редактора. Он, к сожалению, по возможностям пока что немного уступает даже стандартному "Блокноту", но это ведь только во благо вашему обучению. В дальнейшем у вас будет шанс для усовершенствования программы в меру своих возможностей и, самое главное, знаний. Вы же не ждете, что я всю ... подробнее

Пишем и тестируем код, работающий с БД, вместе с DBUnit & LiquiBase. Часть 1

2008/25программирование
Уверен, что никто не будет спорить с тем, что при разработке программного продукта одним из важнейших моментов является оценка его качества. Наличие даже самых небольших ошибок или несоответствий техническому заданию могут стать камнем преткновения и, если мы говорим о разработке коммерческого ПО, могут привести к убыткам, штрафам и закрытию проекта вообще. Частью процесса оценки качества является тестирование. Я уже поднимал этот вопрос в ... подробнее

Perforce: еще одна система управления версиями

2008/24программирование
Эта статья является логическим продолжением серии материалов под заголовком "Системы управления версиями для программистов и не только" (см. КГ №№ 12-16). Тогда я рассказывал об идеях, легших в основу систем управления версиями (СУВ), и почему они так важны. Не забыл я и о практике, рассказав об одной из известнейших СУВ — svn. Сегодня я продолжаю рассказ об СУВ и посвящаю его еще одному известному продукту — Perforce. Нельзя сказать, что ... подробнее

JIRA: Все, что пожелаешь, Хозяин. Часть 4

2008/23программирование
Сегодня я завершаю рассказ о JIRA — системе управления проектами, задачами не только в сфере разработки ПО, но и во многих других областях. Основное внимание сегодня будет посвящено интеграции JIRA с системами управления версиями файлов и мониторингу выполняемой работы, оценке трудозатрат и планированию. Прошлая статья была посвящена методике применения JIRA для моделирования бизнес-процессов строительной организации. Сегодня забудьте об ... подробнее

Ассемблер под Windows для чайников. Часть 6

2008/22программирование
Итак, дорогие друзья, вы уже знаете многое, но от этого область вашего невежества становится лишь все больше и больше. Так уж устроен мир: пока мы не задумываемся о принципах существования или устройства того или иного объекта, мы имеем пробел лишь в одной области — области этого объекта, однако стоит лишь начать изучать этот объект, как оказывается, что список связанных с ним неизвестных нам доселе объектов уходит за горизонт нашего ... подробнее

Ассемблер под Windows для чайников. Часть 5

2008/21программирование
Итак, основная задача на сегодня — меню. Второстепенные задачи будем привинчивать к основному коду. Меню — это достаточно важный компонент окна. Просмотрев пункты меню какой-нибудь новой или малоизвестной программы, пользователь должен иметь возможность получить общее представление о назначении программы и ее функционале. Чтобы меню было интуитивно понятно пользователю, программисту необходимо придерживаться негласного стандарта расположения ... подробнее

JIRA: Все, что пожелаешь, Хозяин. Часть 3

2008/21программирование
JIRA — это не просто система управления проектами, журнал учета обнаруженных ошибок, контроля за выполнением работ и средство для общения предприятия с клиентами — это настоящий конструктор, позволяющий создать приложение, пусть не вашей мечты, но близкое к тому бизнес-процессу, который есть у вас. Основной акцент я делаю на применении JIRA в сфере разработки ПО. Но с таким же успехом можно применить JIRA и для управления другими видами ... подробнее

JIRA: Все, что пожелаешь, Хозяин. Часть 2

2008/20программирование
Я продолжаю рассказ об JIRA. Управление процессом разработки ПО, ведение журнала пожеланий, задач, обнаруженных багов, — все это сфера применения JIRA. В прошлый раз я показал, как установить JIRA у себя на компьютере, рассказал о политике безопасности. Теперь самое время создать проект, разобраться в его составляющих, попробовать пройтись по шагам Жизненного Цикла. Для создания проекта вам нужно войти в JIRA от имени администратора, затем ... подробнее

Ассемблер под Windows для чайников. Часть 4

2008/20программирование
В прошлый раз мы научились создавать окно с кнопкой. Сегодня продолжим тему про окна: будем учиться навешивать на окно другие элементы. Заодно и разберем основы ввода и вывода данных в окнах. В большинстве программ необходимо обеспечивать ввод и вывод данных. То есть то, что вы набрали на клавиатуре, должно каким-то образом попадать в память для последующей обработки, а также данные из памяти необходимо выводить на экран. Windows ... подробнее

Ассемблер под Windows для чайников. Часть 3

2008/19программирование
Сегодня мы научимся создавать окно. Окно — это достаточно сложная, но в то же время очень важная штуковина в Windows. Windows (от англ.: окна) потому так и называется, что большинство операций в ней производится с окнами программ. Так удобнее всего работать с множеством приложений. Может быть, когда-нибудь на смену окнам придут кубики или шарики, но на современных компьютерах пользователю удобнее всего работать с окнами. Вывод: для создания ... подробнее

JIRA: Все, что пожелаешь, Хозяин. Часть 1

2008/18программирование
Управление проектами — не простая наука, для этого нужны знания (и еще больше — опыт) во множестве сфер, связанных и с социальными, и с техническими, и с экономическими технологиями. Я ставлю перед собой более простую задачу: рассказать об "управлении желаниями" и программными продуктами, которые могут вам помочь вести учет пожеланий клиентов, контролировать их выполнение в сфере разработки ПО. На рынке множество программных продуктов, ... подробнее

Ассемблер под Windows для чайников. Часть 2

2008/18программирование
В прошлый раз мы познакомились с компилятором FASM для Windows — рассмотрели основы его синтаксиса и написали нашу первую программу. Самые любопытные уже, наверное, заглянули в папку EXAMPLES и обнаружили там с дюжину готовых примеров различного уровня сложности. Если вы еще не сделали этого — быстренько открывайте ..\FASM\EXAMPLES\ и изучайте — даю вам 5 минут на это! Время пошло. Ну что же, теперь мы можем приступать к очередной тренировке ... подробнее

Ассемблер под Windows для чайников

2008/17программирование
На сегодняшний день существует огромное количество языков программирования высокого уровня. На их фоне программирование на низкоуровневом языке — ассемблере — может на первый взгляд показаться чем-то устаревшим и нерациональным. Однако это только кажется. Следует признать, что ассемблер фактически является языком процессора, а значит, без него не обойтись, пока существуют процессоры. Основными достоинствами программирования на ассемблере ... подробнее

Системы управления версиями для программистов и не только. Часть 5

2008/16программирование
Сегодня я завершаю рассказ об SVN. В прошлой статье я начал рассказ о средствах работы с SVN без командной строки — с помощью графического интерфейса (программы TortoiseSVN и SmartSVN). После того, как мы научились в TortoiseSVN вести проект, помещать и извлекать его из хранилища, добавлять/удалять файлы, нам осталось только разобраться с ветками, слияниями и разрешениями конфликтов. Напомню, что под "ветками" я понимаю направление развития ... подробнее

Системы управления версиями для программистов и не только. Часть 4

2008/15программирование
Сегодня я продолжу рассказ об SVN. Управление версиями документов является важной задачей, нужной почти для каждого, кто работает в сфере IT. Самое главное — чтобы сложности, возникающие на этапе "понять и привыкнуть", не помешали вам научиться хранить документы в SVN, видеть историю изменений и оценивать ход работы. Поэтому наличие удобных графических средств является ключевым фактором для того, чтобы сделать быстрый старт и не отпугнуть от ... подробнее

Системы управления версиями для программистов, и не только. Часть 3

2008/14программирование
Продолжу рассказ о системах управления версиями файлов (далее СУВ). Сегодня я завершу рассказ об основных понятиях СУВ: мы поработаем с ветвями и тегами. Попробуем создать репозиторий, доступный для коллективной работы, и настроить политику безопасности. Кто такие "ветки" и "теги" в терминологии SVN? Рассмотрим небольшой сценарий: вы завершили разработку некоторой программы, отдали ее заказчику, затем решили начать разработку версии 2, в ... подробнее

Системы управления версиями для программистов, и не только. Часть 2

2008/13программирование
Я продолжаю рассказ о системах управления версиями файлов (далее СУВ). В прошлый раз я сделал введение в суть проблемы, описал, кто такие СУВ, и какие задачи они решают. Сегодняшний материал будет сугубо практический и продолжит рассмотрение методик работы с репозиторием и помещенным в него проектом. В прошлый раз мы остановились на том, что создали репозиторий, поместили в него (с помощью команды import) каталог с проектом и выучили, что ... подробнее

Phys2D: физика & java

2008/12программирование
Эта статья является логическим продолжением ранее опубликованной серии, посвященной 2d-физике для flash-разработчиков. Сегодня я продолжу рассказ о методах "плоской" физической симуляции, вот только язык программирования будет java. Сравнивать эти две платформы (java и flash) практически невозможно: отличаются и технические средства языка, и цели, которые ставят перед собой идеологи java и flash. Основная сфера применения java — "большие" ... подробнее

Системы управления версиями для программистов, и не только. Часть 1

2008/12программирование
Я полагаю, что многие из тех, кто занят в сфере информационных технологий, слышали про системы управления версиями. Вот только список тех, кто активно использует эту технологию в своей практике, гораздо короче. Часто говорят, что системы управления версиями (далее СУВ) нужны только программистам, и только тем из них, кто работает в команде. Т.е. когда кодом владеет не один "избранный", а любой программист в команде может взять и внести в него ... подробнее

FOAM: физика & actionscript 3. Часть 1

2008/10программирование
Почти год назад я написал серию из трех статей, посвященных основным физическим законам и их практическому применению при разработке flash- приложений (см. КГ №№ 14, 16, 19 за 2007 год). Тогда фокус внимания был посвящен flash 8, а код писался на actionscript2. Несколько раз я порывался написать статью, посвященную физике и flash, но использующую не "собственные поделки", а flade (известный и, по сути, единственный качественный) физический ... подробнее

TDD. Базовые приемы для начинающих

2008/05программирование
Предисловие В освоении любой технологии очень важно хорошо ухватиться за саму суть. Ведь неверная интерпретация основополагающих техник вредит вашим проектам, например, сказываясь на скорости разработки и удобстве последующей поддержки кода. Многие разработчики любят разбрасываться красноречивыми лозунгами, хотя на деле все у них не так радужно. Так в свое время было с ООП, так сейчас происходит с TDD. Сколько органичного и ажурного ... подробнее

Анимация и эффекты в javascript с помощью mootools. Часть 2

2008/02программирование
Сегодня я продолжу рассказ о библиотеке mootols. Это одна из наиболее известных javascript-библиотек, позволяющих внедрить на веб-страницу немножко эффектов и чуть-чуть анимации. Сегодня мы завершим знакомство с обязательной частью mootols и попробуем создавать всплывающие подсказки, управлять перемещением элементов, эффектами перехода одного изображения в другое. В прошлый раз мы остановились на изучении методов поиска html-элементов на ... подробнее

Анимация и эффекты в javascript с помощью mootools

2008/01программирование
Эта статья начнет небольшую серию материалов, посвященных анимации в javascript. Тема статьи подсказана вами, уважаемые читатели. В последнее время мне пришло несколько писем с вопросами, как сделать с помощью javascript так, чтобы "блестело, вертелось, двигалось". По-правде говоря, javascript для этого совсем не предназначен, но если подумать, то… Подтверждаю: да, исторически javascript не имеет поддержки анимации, эффектов. В то время, ... подробнее

Добавление "операций" на панель "Проводника"

2008/01программирование
Следующим этапом в соответствии с первоначальной версией документа дизайна интерфейса пользователя будет добавление кнопок файловых операций (Copy to (Копировать в...), Move to (Переместить в...), Delete (Удалить) и Properties (Свойства объекта) на панель файлового менеджера. Открываем файл манифеста и в закладке Extensions создаем расширение для точки расширения "org.eclipse.ui.viewActions" при помощи мастера выбора точки расширения (см. рис. ... подробнее

Разрушая велосипедные фабрики: доступ к базам данных из PHP. Часть 8

2007/47программирование
Это последняя часть в серии, посвященной методам работы с базами данных из рhр. В прошлый раз я начал рассказ о библиотеке рroрel и паттерне Data Maррer. Я рассказал о слабых и сильных сторонах этого подхода, описал модель базы данных (таблицы и их связи), на которой мы будем практиковаться, так что осталось завершить пример и немного попрограммировать: попробовать искать записи на основании сложных и не очень условий, добавлять новые, ... подробнее

Разрушая велосипедные фабрики: доступ к базам данных из PHP. Часть 7

2007/46программирование
В прошлый раз я обещал начать рассказ о паттерне Data Maррer и поддерживающей его библиотеке рroрel. Эта библиотека будет последней, которую мы рассмотрим в рамках серии, посвященной доступу к БД из рhр. Естественно, заслуживающих внимание библиотек еще очень много, но все базовые идеи (паттерны), которые лежат в их основе, мы уже прошли, разобрали наиболее ярких представителей каждого из подходов, так что пора завершать. Если вы пишете на ... подробнее

Разрушая велосипедные фабрики: доступ к базам данных из PHP. Часть 6

2007/45программирование
В прошлый раз я начал рассказ о паттернах Aсtive Reсord и Row Data Gateway. Сегодня мы продолжим и завершим рассмотрение возможностей библиотеки adodb (ставшей стандартом де-факто и применяемой в разработке множества известных и не очень веб-приложений: рostnuke, xaraya, moodle) — библиотеки, которая позволяет нам писать код быстрее и с меньшим числом ошибок. Я также уделю внимание вопросу оценки производительности вашего sql-кода. Прошлую ... подробнее

Информационная емкость позиционных систем счисления

2007/45программирование
Исторически сложилось так, что наиболее распространенной системой счисления является десятичная. Это, вероятнее всего, связано с количеством пальцев на руках, которые изначально применялись для простейших математических вычислений. Данная система счисления является позиционной, то есть системой, в которой один и тот же знак имеет различные значения в зависимости от места, где он расположен. В компьютерной среде наибольшее распространение ... подробнее

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

2007/44программирование
Сегодня мы продолжим знакомство с передовыми методиками доступа к базам данных. На очереди рассмотрение паттернов Aсtive Reсord и Row Data Gateway. Также я расскажу о новой библиотеке adodb. Чем отличаются паттерны Aсtive Reсord и Row Data Gateway от рассмотренного в прошлых статьях Table Data Gateway (шлюза таблицы данных)? Шлюз таблицы говорил нам: "давайте отделим и обособим sql-код, обращающийся к БД от остальных частей программы, ... подробнее

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

2007/43программирование
Сегодня мы продолжим и завершим знакомство с библиотекой dbSimрle. Мне осталось закончить начатый в прошлой статье рассказ о кэшировании, показать пару фокусов с преобразованием результата запроса в привычные для рhр массивы. Также я скажу пару слов о memсaсhed. Напоминаю, что в прошлый раз мы остановились на создании запросов с помощью dbSimрle (dklab.ru). Мы писали текст запроса, содержащий специальные символы — рlaсeholder'ы, вместо ... подробнее

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

2007/42программирование
Сегодня мы продолжим знакомство с паттернами доступа к данным и библиотеками рhр, реализующими эти паттерны или просто помогающими нам делать меньше ошибок. В прошлый раз я начал рассказывать о библиотеке dbSimрle (httр://dklab.ru), сегодня мы продолжим ее рассмотрение и поднимем еще парочку интересных вопросов "качественного доступа к СУБД". Полагаю, что вы уже загрузили библиотеку по адресу: httр://dklab.ru/lib/DbSimрle/demo.ziр . Первое, ... подробнее

Проект EclipseLink

2007/42программирование
В марте 2007 г., на конференции EclipseCon представители корпорации Oracle анонсировали предложение о создании в сообществе Eclipse открытого (Open Source) проекта подсистемы хранения (Open Source Eclipse Persistence Project) по свободной лицензии Eclipse Public License (EPL), которая позволяет создавать коммерческие продукты. В дополнении к этому предложению корпорация Oracle преподнесла очередной подарок передав хорошо известный java ... подробнее

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

2007/41программирование
Сегодня мы продолжим разговор о различных методиках организации доступа к базам данных из php. Основной акцент я уделю не используемому языку, и даже не библиотекам (стандартным или сделанным сторонними компаниями или энтузиастами), а прежде всего сложившимся и зарекомендовавшим себя подходам, алгоритмам успеха применяя которые, в типовых ситуациях можно избежать типовых и (столь привычных) для новичков ошибок. Пару лет назад считалось ... подробнее

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

2007/40программирование
Сегодня мы поговорим о методиках доступа к базам данных из php. Я хочу написать небольшую серию статей, посвященных тому, как можно получить доступ к хранящейся в базе информации, как искать информацию, как выполнять запросы на модификацию данных. Фокус внимания будет уделен различным библиотекам, которые являются стандартами пусть не де-юре, так де-факто. Сегодня я начну с философских размышлений, почему так много библиотек, решающих сходные ... подробнее

Графики, диаграммы, графы… и все это в Веб? Часть 2

2007/39программирование
Сегодня мы продолжим и завершим рассмотрение вопроса о разработке внедренных в сайт графиков и диаграмм. В прошлый раз я рассказывал об общих методиках, плюсах и минусах основных подходов: генерация статического изображения, использование flash, работа с сanvas и svg, — а рассказав о трех библиотеках для рhр, которые генерируют статические картинки, умолчал о паре не менее интересных библиотек. Сегодня же расскажу о средствах, которые есть в ... подробнее

Графики, диаграммы, графы… и все это в Веб? Часть 1

2007/38программирование
Хотя в своей повседневной работе я часто сталкиваюсь с необходимостью программировать всевозможные отчеты, диаграммы, графики, но до недавних пор сфера моих интересов была смещена в сторону desktoр standalone приложений. В редких случаях, когда возникала потребность в разработке программок, работающих в браузере, я обходился встроенным в состав flex компонентом "графики", исходные данные задавались в формате xml, визуализация была приятная и ... подробнее

Ajax: прошлое, настоящее, будущее. Часть 3

2007/37программирование
Сегодня мы продолжаем и заканчиваем знакомство с технологией асинхронных вызовов — ajax. В прошлый раз я рассказал о том, что html-страница может подгружать данные с сервера в различных форматах: xml — мы говорим об ajax, в формате json — мы говорим об ajaj. Я рассказал о возможностях, которые представляет библиотека jquery, позволяя нам загружать асинхронно информацию, управлять форматом принимаемых данных, обрабатывать ошибки. Сегодня я ... подробнее

Фильтр-генератор случайных чисел

2007/36программирование
Задача генерации последовательности случайных чисел заданного распределения и в заданном диапазоне по-прежнему остается нетривиальной, несмотря на достаточное количество исследований, посвященных данной теме. Проблема, в основном, заключается в том, что трудно построить универсальный генератор, подходящий для решения всех задач. Для каждого случая применение уже существующих алгоритмов генерации случайных чисел возможно лишь с некоторыми ... подробнее

Ajax: прошлое, настоящее, будущее. Часть 2

2007/36программирование
Продолжаем серию статей, посвященных технологии ajax. В прошлый раз (см. КГ №35) я рассказал об истории развития ajax, о том, как поддержка методов подзагрузки информации в страницу проделала путь от специфической технологии, поддерживаемой только internet explorer, до общепризнанного стандарта в Web. Я рассказал о старых методиках, применявшихся до того, как поддержка ajax добавилась в opera9 и firefox. Я упомянул о существовании библиотеки Д. ... подробнее

Ajax: прошлое, настоящее, будущее. Часть 1

2007/35программирование
Сегодня я начну серию материалов, посвященных технологии ajax — средству, позволяющему строить сложные веб-приложения и отойти от традиционной модели "на каждое действие пользователя — загрузка новой страницы". Расшифровывается ajax как asynchronous javascript and xml. Широко о методах ajax заговорили года два назад, однако первые технические средства, позволяющие подзагружать в веб-страницу, данные с сервера, появились еще раньше — лет восемь ... подробнее

JQuery: Быстрый старт в мире JavaScript. Часть 2

2007/32программирование
Сегодня мы продолжаем знакомство с jquery — библиотекой, позволяющей автоматизировать и ускорить разработку javascript-решений. В прошлый раз мы разобрали одну из ключевых особенностей jquery — Selectors — механизм, позволяющий адресовать элементы дерева DOM с помощью css/xpath-подобной нотации. Сегодня мы рассмотрим специальные функции traversal, механизмы определения возможностей браузера, события. Начнем мы с traversal. Что это такое, и ... подробнее

Эффективное программирование 3d-приложений с помощью Irrlicht и Jython. Часть 13

2007/30программирование
Сегодня мы поговорим о шейдерах. Кто такие шейдеры, зачем они нужны, какое у них прошлое и будущее. Начну я с давней истории о том, как появились первые микропроцессоры. Давным-давно (тогда, в 1971 г., микропроцессоры еще не были изобретены) компания intel получила заказ на разработку микросхемы калькулятора для какой-то японской компании. В принципе, калькулятор — это очень простая вещь: 2 числа, 4 операции, так что можно полагать, что intel ... подробнее

Об организации резервного копирования информации

2007/29программирование
Использование компьютерных систем стало непременным атрибутом ведения дел даже в небольших организациях. Отредактированные договоры, отлаженные калькуляции, наработанные в результате многомесячного труда базы данных со временем скрывают рутину монотонных операций, предоставляя возможность творческого подхода к работе. Тем труднее смириться с тем, что в один "прекрасный" момент размеренный рабочий ритм может нарушиться или даже полностью ... подробнее

Дорога из желтого кирпича: Flash 8 & SWX & PHP & MYSQL

2007/29программирование
Я продолжаю знакомить вас с различными технологиями в мире flash, позволяющими быстрее и проще (без глупых ошибок) создавать сложные приложения. Тема сегодняшнего материала — организация взаимодействия между flash и серверными скриптами, написанными на php. Самое сложное в написании статьи — доказать читателю, зачем я выношу на его суд ту или иную технологию. Почему я решил рассказать о библиотеке X, а не Y? Большей частью этот выбор ... подробнее

Дорога из желтого кирпича: строим пользовательские интерфейсы вместе с Flash 9 & ASWing. Часть 4

2007/28программирование
Сегодня мы закончим знакомство с библиотекой визуальных элементов управления ASWing3. Нам осталось только научиться работать с таким сложным элементом управления, как дерево. Также я покажу, как пользоваться в ASwing методами DnD и создавать для своих компонентов всплывающие подсказки (tooltiр). Последний сложный компонент, с которым мы познакомимся, — это дерево, или JTree. Вы знаете, что деревья служат для отображения иерархической ... подробнее

Дорога из желтого кирпича: строим пользовательские интерфейсы вместе с Flash 9 & ASWing. Часть 3

2007/27программирование
Сегодня мы продолжим знакомство с библиотекой визуальных элементов управления ASWing3. Мы научимся работать со сложными элементами — такими, как падающие списки, таблицы. Также мы на примерах разберем концепцию MVC, с использованием которой и построена данная библиотека. Что такое MVC? Вкратце это технология проектирования/программирования, продолжающая идею "Разделяй и властвуй". Сделав части программы максимально независимыми друг от друга ... подробнее

Дорога из желтого кирпича: строим пользовательские интерфейсы вместе с Flash 9 & ASWing. Часть 2

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

Дорога из желтого кирпича: строим пользовательские интерфейсы вместе с Flash 9 & ASWing. Часть 1

2007/24программирование
Вот и вышел новый flash cs3. Почти два года разработки, покупка macromedia компанией adobe, множество обещаний при разработке следующей версии учесть пожелания, как программистов, так и дизайнеров, и все это закончилось грандиозным ничем. Эта статья начнет серию материалов, в которых я буду рассказывать про хорошие идеи хороших людей, которые не ждут манны небесной от adobe, а создают библиотеки, языки и методики программирования на ... подробнее

Эффективное программирование 3D-приложений с помощью Irrlicht и Jython. Часть 12

2007/23программирование
Эта статья будет несколько необычной. Если вы уже привыкли к моему стилю с множеством текста, примеров исходного кода программ и пары маленьких картинок, то самое время что-нибудь поменять. Сегодня мы работаем с программой irrEdit. Это стандартный для irrlicht визуальный редактор 3d- окружения. Находится он в папке E:\Program_Files_2\irrlicht-1.3\tools\irrEdit. Если там вы его не нашли (что вполне реально, т.к. комплектация дистрибутива ... подробнее

Flash 8 & Sandy 3D. Советы и трюки

2007/22программирование
В прошлый раз мы рассмотрели приемы, позволяющие работать с 3d-моделями как с множеством составляющих их граней и вершин. Научились выполнять индивидуальную настройку граней, создавая обработчики событий и настраивая отдельные текстурные скины. Также мы рассмотрели основные проблемы, возникающие из-за отсутствия в sandy 3d "настоящего" z-buffer. Сегодня мы завершаем изучение возможностей sandy. Изложение материала будет построено в стиле ... подробнее

Flash 8 & Sandy 3D. Модели, грани, вершины и все, все, все

2007/21программирование
Сегодня мы продолжим изучение возможностей библиотеки Sandy 3d. В прошлый раз мы рассмотрели концепцию "мира" состоящего из различных видов узлов, научились создавать геометрические примитивы (цилиндр, параллелепипед), рассмотрели основные приемы работы с текстурами, а также методы преобразования узлов (перемещение, вращение, масштабирование). Сегодня пройдемся по этим вопросам еще раз, но на более глубоком уровне, показав не только ... подробнее

Flash 8 & Sandy 3D. Третье измерение в мире Flash стало доступным

2007/20программирование
Этот материал начнет серию статей, посвященных созданию 3d-приложений с помощью flash 8. Сегодня мы будем изучать возможности библиотеки Sandy 3d (ее домашний сайт сайт ). Библиотек или 3d-движков под flash откровенно мало, причиной этого может служить, разумеется, отсутствие возможности взаимодействия со средствами операционной системы (directx, opengl). А на пути software эмуляции этих функций стоит, во-первых, низкая производительность ... подробнее

Эффективное программирование 3D-приложений с помощью Irrlicht и Jython. Часть 11

2007/18программирование
В прошлый раз мы научились проектировать интерфейс приложения, используя стандартные компонентов GUI: кнопки, списки, диалоговые окна. Сегодня мы завершаем эту тему. Нам осталось рассмотреть методику обработки событий от этих компонентов, а кроме того попробуем загрузить в среду irrlicht уровень от quake3. Напоминаю: очень-очень важно при проектировании интерфейса дать всем используемым компонентам уникальные идентификаторы. В противном ... подробнее

Эффективное программирование 3D-приложений с помощью Irrlicht и Jython. Часть 10

2007/17программирование
В прошлый раз мы начали знакомство с реализацией ООП в python|jython и использовали полученные знания для организации самого простого взаимодействия irrlicht с пользователем — реакции на события клавиатуры. Сегодня продолжим эту тему и разберем, как обрабатывать события мыши, а также попробуем спроектировать интерфейс приложения с помощью стандартных компонентов GUI: кнопки, списки, диалоговые окна. Первое задание сегодняшнего дня — ... подробнее

Flash 8 & Физика. Столкновение точки со стеной

2007/16программирование
Сегодня мы продолжаем начатый в прошлый раз (см. КГ №14) рассказ о методах интеграции физики во flash. В прошлый раз мы рассмотрели основы векторной математики. Мы узнали, что такое вектор, что такое длина вектора и нормаль к нему и что такое нормализованный вектор. Поняли, как векторы преобразуются в углы, и какой смысл несет скалярное произведение двух векторов. Сегодня мы завершаем рассмотрение этой темы. Нам осталось разобраться с понятием ... подробнее

Навигация по "родительским" папкам

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

Что за зверь Ruby, и с чем его едят? Основы Ruby

2007/15программирование
Продолжение. Начало в КГ №13 Пришло время познакомиться с Ruby поближе, узнать его сильные стороны и научиться их применять. Сегодняшняя статья — это не краткий курс языка Ruby, а лишь демонстрация его возможностей в сравнении с другими популярными языками (C++, Java, C#, Perl). Всем, кому потребуется более подробное описание Ruby, советую обратиться к учебникам на wikipedia.org, а также к классической книге "Programming Ruby. The Pragmatic ... подробнее

Flash 8 & Физика. Введение

2007/14программирование
Для меня большой интерес представляет наблюдать за тем, что происходит на стыке двух разных технологий, и чем более разные и непохожие эти подходы, тем более интересные могут получаться результаты. Сегодня мы попробуем смешать средства flash 8 и несколько простых законов физики. Тема сегодняшнего материала более ориентирована на разработчиков flash-игр, но базовые идеи могут быть применены и для смежных задач — например, создание обучающих ... подробнее

Использование Hibernate Java Persistence

2007/13программирование
Не секрет, что данные являются основой практически для любого проекта. На основе требований к программной системе строится модель данных. В дальнейшем именно с данной моделью работает программа, вводится некоторая информация, производятся вычисления, формируются отчеты и т.д. В процессе развития программных систем проектировались и используются различные системы управления базами данных (СУБД): иерархические, реляционные, объектные и др. На ... подробнее

Что за зверь Ruby, и с чем его едят?

2007/13программирование
Руби (англ. Ruby — "Рубин") — интерпретируемый язык программирования высокого уровня. Обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, "сборщиком мусора" и многими другими возможностями, поддерживающими много разных парадигм программирования — прежде всего, объектную. Руби был задуман в 1993 году японцем Юкихиро Мацумото (по прозвищу Мац), стремившимся создать язык, совмещающий все ... подробнее

Эффективное программирование 3D-приложений с помощью Irrlicht и Jython. Часть 7

2007/11программирование
Сегодня мы продолжаем знакомиться со средствами irrlicht. Пока мы работаем только с 2d-графикой. На этот раз научимся выводить на экран текстовые надписи, разумеется, с русскими буквами. Также разберем возможности модуля string, содержащего функции работы со строками. Почти все 3d-движки, и irrlicht — не исключение, перед выводом текста требуют подготовительной работы. Необходимо создать файл, в котором находятся нарисованные буквы. Алгоритм ... подробнее

Навигация по дочерним папкам

2007/10программирование
Для навигации по дочерним папкам в проводнике можно использовать дерево папок, но при этом, если в созданной нами панели проводника оно будет в свернутом состоянии, то получить доступ к дочерним папкам будет невозможно. В аналогичных программных продуктах — например, в Windows Explorer — данную операцию можно выполнить либо по нажатию некоторой кнопки (для платформы Windows это обычно Enter), либо двойным щелчком (кликом) мыши. Навигация ... подробнее

Эффективное программирование 3D-приложений с помощью Irrlicht и Jython. Часть 5

2007/09программирование
Весь предыдущий материал подготавливал нас к этой главе. Сегодня мы попробуем применить полученные нами знания в языке python, вызывая графические функции irrlicht. Сначала займемся настройкой и установкой. Аккуратно пройдите все шаги. 1. Вы скачали с сайта sun инсталляционный пакет jdk и установили его. Предположим, что, как и у меня на компьютере, это папка E:\Program_Files_2\j2dk1.6.0. 2. Вы скачали с сайта jython.org инсталляционный ... подробнее

Opera widgets. Сделай сам

2007/08программирование
В этой статье я расскажу и покажу приемы, позволяющие создавать ваши собственные "расширения" возможностей браузера opera. Почти год назад вышла очередная версия этого браузера под номером 9. Среди множества изменений, направленных на улучшение скорости и удобства работы, особняком стоят widget'ы. До этого момента opera неизменно проигрывала firefox долю на рынке за счет того, что для последнего существует множество расширений/плагинов, ... подробнее

Обработка исключений и Perl

2007/07программирование
Ничто не должно отвлекать программиста от написания основной логики программы. Вся обработка ошибок должна происходить далеко (и в смысле исходного кода, и в смысле загруженной в память программы) от работы этой логики. Эти принципы лежат в основе современной концепции обработки исключений. Если программа работает с объектами классов, без такой обработки не обойтись. При разговоре о современной концепции обработки исключений прежде всего ... подробнее

Эффективное программирование 3D-приложений с помощью Irrlicht и Jython. Часть 4

2007/07программирование
Продолжим начатое в предыдущей статье серии рассмотрение возможностей python. В прошлый раз мы дошли только до условного оператора, позволяющего делать выбор из некоторого количества альтернатив развития алгоритма. На основании определенного условия мы совершаем одно действие, если условие выполнилось или истинно, и другое — если это не так. Итак, давайте рассмотрим более сложный пример — это будет игра "угадай число". В ней машина ... подробнее

JUnit 4. Перезагрузка

2007/06программирование
JUnit – это самый популярный в настоящее время инструмент модульного тестирования приложений в мире Java. Существует ряд других достаточно мощных инструментов, например, TestNG, но надо признать, что им пока не удалось достигнуть такой широкой популярности у разработчиков, как JUnit. С выходом четвертой версии, Кент Бэк (Kent Beck) и Эрик Гамма (Eric Gamma) впервые за последние несколько лет представили значительные изменения программного ... подробнее

Эффективное программирование 3D-приложений с помощью Irrlicht и jython. Часть 2

2007/05программирование
В прошлый раз мы остановились на выборе 3D-движка, который будем использовать для этой серии уроков. В качестве основы был использован ресурс сайт . Если вы открыли и внимательно его изучили, то нашли три интересные колонки, в которых перечислены "самые- самые" рейтинга 3D-движков. Первая из них — самые популярные или лучшие (мне трудно выделить какое-либо из этих двух слов) движки на лицензии open source (упрощенно говоря, с открытым ... подробнее

Эффективное программирование 3D-приложений с помощью Irrlicht и jython. Часть 1

2007/04программирование
Эта статья начнет серию материалов, посвященных разработке 3D-приложений. Будут рассмотрены общие методики проектирования и программирования, которые могут быть применены как для разработки игр, так и для более серьезных приложений — например, задач визуализации каких-либо физических или химических процессов, создания моделей интерьера или графического изображения поверхностей, задаваемых некоторыми математическими функциями — в общем, всего, ... подробнее

Проект Rich Ajax Platform (RAP)

2007/03программирование
Прошедший год преподнес нам много подарков от сообщества разработчиков Eclipse. Наряду с рассмотренным ранее проектом eRCP для разработки мобильных приложений появился еще один перспективный проект Rich Ajax Platform (RAP), предназначенный для расширения технологии Eclipse RCP и разработки не менее популярных web-приложений. Хотя данный проект еще окончательно не утвержден, уже можно ознакомиться с предварительными наработками. Цель проекта ... подробнее

Заставка к программе

2007/02программирование
К сожалению, время загрузки программ не мгновенно и составляет несколько секунд, а при загрузке из Сети может быть еще больше. Для того, чтобы пользователи видели, что программа запущена и идет процесс ее инициализации, обычно на экране показывается диалог заставки (Splash screen). Специальные исследования по эргономике программного обеспечения показали, что при выводе заставки пользователи не так сильно замечают длительность процесса ... подробнее

Первая белорусская олимпиада по прикладному программированию прошла успешно!

2006/48программирование
Накануне 5-летия своей деятельности Ассоциация "Инфопарк" совместно с факультетом прикладной математики и информатики БГУ выступила инициатором проведения первой Олимпиады по прикладному программированию. К участию в олимпиаде приглашались все желающие, единственным критерием отбора был возраст — не старше 25 лет. Следует подчеркнуть, что это была первая попытка проведения в Беларуси конкурса по прикладному (некоторые организаторы ... подробнее

Диалог "О программе"

2006/48программирование
Хорошей практикой создания программного обеспечения является предоставление пользователю возможности вызова диалога с краткой информацией о назначении программы, версии, лицензии, ссылки на web-сайт данного программного продукта, откуда можно получить свежую информацию и т.д. Платформа Eclipse RCP не запрещает создавать собственные версии диалогов "О программе", но так как данный диалог является типовым элементом современного приложения, то ... подробнее

Миграция данных

2006/47программирование
Казалось бы, наличие уже существующей информационной системы (ИС) должно упростить и ускорить разработку новой ИС на основе старой, но на практике все обычно происходит с точностью до наоборот. Во-первых, так как возникла необходимость в создании новой ИС, это чаще всего означает, что ранее созданная ИС была создана с существенными изъянами и изобилует разнообразными ошибками. Обычно это ИС, которая писалась на протяжении многих лет ... подробнее

Неформальное введение в конечные автоматы: пишем свой калькулятор на Perl

2006/46программирование
Тем, кто часто пользуется стандартным калькулятором Windows, не раз, вероятно, хотелось закрыть его и сдуть пыль с его старого аппаратного собрата. Намного проще было бы записать все действия, как в школьной тетради, в командной строке и получить результат. В UNIX-системах есть утилита dc, которая работает подобным образом. Но если в Windows подобной нет, что нам мешает написать ее? Эта статья не только для поклонников Perl и любителей все ... подробнее

Embedded Rich Client Platform (eRCP)

2006/45программирование
Развитие технологий вносит коррективы в планы по разработке продуктов. В данном случае хочется обратить внимание на недавно вышедший первый релиз платформы Embedded Rich Client Platform (eRCP). Многие заметили, что требования по объему типового приложения на платформе Eclipse RCP составляют порядка 20-30 Мб, что порой неприемлемо для распространяемых через Internet простых приложений. Версия eRCP для мобильных приложений позволяет создавать ... подробнее

Связка навигатор — панель проводника

2006/43программирование
Следующей задачей будет связывание модели списка файловых систем и панелей проводников, а также возможности смены выбранной файловой системы для текущего проводника при помощи созданной ранее панели выбора файловых систем. Требования: . Разработать способ хранения списка файловых систем. . При создании новой панели навигатора создавать привязанный к ней объект, который будет содержать информацию о выбранной файловой системе. Данный объект ... подробнее

Панель файловых систем

2006/42программирование
Для удобства выбора ресурсов файловой системы (логического диска, закладки, ftp-ресурса и т.д.) создадим панель быстрого выбора одного из данных ресурсов. Изначально для этой панели планировалось использовать компонент TreeView, но в состав графической библиотеки SWT начиная с версии 3.2 eclipse был добавлен новый компонент ExpandBar, который позволяет создавать проверенную временем панель выбора элементов в стиле Microsoft Outlook. Попробуем ... подробнее

Сортировка и фильтрация данных

2006/41программирование
Как было запланировано в предварительном документе дизайна, в дереве объектов файловой системы по умолчанию должны показываться только каталоги. Данную задачу можно решить как на уровне запроса к объектам, так и с помощью фильтрации элементов. Рассмотрим возможность автоматической фильтрации, что позволит в дальнейшем гибко управлять форматом вывода объектов. Визуализация типов объектов Для удобства визуального тестирования данной ... подробнее

Создание инсталлятора

2006/40программирование
Практика разработки коммерческого программного обеспечения показывает, что далеко не все пользователи умеют работать с архивами. Поэтому программы рекомендуется поставлять в виде исполняемых файлов, которые автоматически создают необходимые папки в файловой системе, копируют туда файлы программы, создают необходимые файлы настроек или ключи в реестре, а также пункты меню запуска программы и ярлыки на рабочем столе. Для упрощения создания ... подробнее

Сборка продукта

2006/39программирование
Создаваемое приложение приходится запускать из среды разработки eclipse, но наша конечная цель состоит в создании автономного приложения, которое можно будет реально использовать. Для решения данной задачи (создания автономных приложений) можно создать продукт, который является расширением точки расширения "org.eclipse.core.runtime.products". Основная цель понятия продукта в eclipse заключается в формировании настроек брэндинга, специфичных ... подробнее

Отображаем данные в табличной форме

2006/37программирование
Для представления табличных данных в навигаторе файлов используется jface TableViewer. Многие задаются вопросом, зачем разделять провайдеры контента и меток? Разработчики библиотеки jface решили, что это позволяет повторно использовать программный код, так как провайдер контента обычно имеет аналогичную реализацию для разных вьюверов. Рис. 1. Схема связи модели и представления Реализация интерфейса ITableContentProvider Следующим ... подробнее

Связывание представления с данными

2006/36программирование
Просто вывод на экран панели не представляет особого интереса. Наша основная цель — показать пользователю данные о файлах и папках выбранной файловой системы. Ограничимся для начала отображением фиксированного пользовательского каталога (выбор нужной файловой системы и ресурсов для просмотра оставим на будущее). Создание модуля расширения eclipse на основе jar-архивов К сожалению, проект Commons VFS не содержит готового подключаемого модуля ... подробнее

Шаблон проектирования Model-View-Controller

2006/35программирование
В процессе эволюции процесса разработки программного обеспечения у каждого разработчика накапливается типовой набор решений на все случаи жизни. Но мы не единственные в этом мире, и можно воспользоваться проверенными временем, хорошо зарекомендовавшими себя общедоступными решениями. В общем случае шаблоны, или паттерны (pattern), не зависят от языка программирования, а просто описывают технологию, модель или последовательность действий ... подробнее

5 навыков высокоэффективных разработчиков программного обеспечения

2006/35программирование
Сегодня время очень высокого спроса на разработчиков программного обеспечения, которые способны быстро и качественно создавать и поддерживать ПО и при этом органично работать в команде. Это связано в том числе с сегодняшним экономным отношением к новым технологиям. Проблемой номер один, с которой сталкиваются разработчики, работающие в команде, является умение читать и понимать исходный код проектов и их частей, написанных другими ... подробнее

Виртуальная файловая система Apache Commons VFS

2006/34программирование
Для упрощения работы и гибкой возможности расширения функциональных возможностей файлового менеджера не будем ограничиваться прямым доступом к файлам операционной системы. Чтобы унифицировать доступ к файловым ресурсам, воспользуемся готовыми библиотеками свободного проекта виртуальной файловой системы Apache Commons Virtual File System (VFS). Целью данного проекта является создание единого интерфейса (application programming interface — API) ... подробнее

Создание интерфейса пользователя с использованием визуального редактора Eclipse VE

2006/32программирование
Среди множества расширений платформы eclipse хочется отметить проект визуального редактора Visual Editor (VE). Для его установки необходимо скачать и установить модули следующих проектов: . Visual Editor Project (VEP). . Eclipse Modeling Framework (EMF). . Graphical Editing Framework (GEF). Данный редактор относится к так называемым WYSIWYG (What You See Is What You Get) редакторам. Данный термин означает способность редактора к ... подробнее

Автоматизация процесса разработки Java–приложений с помощью Maven 2

2006/31программирование
Вероятно самое сложное в процессе разработки Java–приложений — это начать. Необходимо принять множество важных решений. Где будет храниться исходный код? Где разместить unit–тесты? Где хранить необходимые jar–библиотеки? Каким образом проект будет собираться, тестироваться, документироваться и развертываться? От этих решений зависит весь остальной процесс разработки приложения — насколько он будет удобным и не будет ли отнимать слишком много ... подробнее

Создание прототипов экранных форм

2006/30программирование
Немаловажным моментом при формировании проектной документации является прототипирование экранных форм разрабатываемого приложения. Предварительный дизайн можно делать и на бумаге, но это усложняет процесс модификации прототипов. Бумажную версию приходится многократно перерисовывать заново в соответствии с пожеланиями заказчика. Для автоматизации данного процесса наиболее часто используют специализированные программы Microsoft Visio, Adobe ... подробнее

Использование Subversion для командной разработки

2006/29программирование
Большинство современных проектов не пишутся в одиночку, и перед разработчиками встает проблема совместного владения кодом и другими артефактами проекта. Даже если над проектом работает всего несколько человек, объединение внесенных изменений в общую версию может занимать много времени. Для решения данной задачи используют системы управления версиями (от англ. Version Control System (VCS) или Revision Control System), которые позволяют хранить ... подробнее

Использование DocBook для написания документации

2006/26программирование
Уже на протяжении многих лет, XML–формат DocBook стал стандартом де–факто для разработки технической документации (в большинстве Linux–проектов применяется именно DocBook). Несмотря на наличие большого количества текстовых редакторов (Open Office Writer, Microsoft Word и т.д.), позволяющих комфортно создавать сложные текстовые документы с возможностью форматирования и интегрирования медиаресурсов, практика создания документации, написания ... подробнее

Добавление панели (View)

2006/20программирование
Кроме стандартных действий (Actions), можно создавать и свои (Custom) действия. Создадим действие, по которому будут добавляться панели (Views) разрабатываемого проводника файлов. Для вызова данного действия добавим кнопку быстрого запуска, а также пункт системного меню. В результате мы должны получить показанное на рис. 1 приложение. Рис. 1. Аранжировщик файлов. Добавление панелей Для создания панели в редакторе манифеста откроем ... подробнее

RCP файловый менеджер. Действия (Actions) системного меню

2006/19программирование
Действия (Actions) представляют собой различные реализации интерфейса IAction. Это команды, которые обычно инициализируются визуальными элементами пользовательского интерфейса — такими, как кнопки, элементы меню, кнопки панелей инструментов и др. При активизации конечным пользователем элементов пользовательского интерфейса вызывается метод IAction.run(), в котором выполняется некоторая связанная с действием единица работы. Действия включают ... подробнее

Аранжировщик файлов. Hello, world

2006/18программирование
До окончательной проработки дизайна разрабатываемого приложения можно уже начинать создавать костяк проекта, на который будет постепенно наращиваться "мясо". На основе базового шаблона Hello world создадим простейшее eclipse RCP приложение. Данный шаблон генерирует минимум классов, которые необходимы для создания простейшего приложения. Этот шаблон выбран для того, чтобы постепенно изучать все возможности, которые предоставляет нам платформа ... подробнее

Eclipse RCP проект за пять минут

2006/16программирование
Данный материал написан в ответ на скептические отзывы по поводу целесообразности использования языка программирования Java и в частности платформы RCP. Основным аргументом приводится медлительность и требовательность к системным ресурсам. Автором предлагается попробовать создать простейшее RCP-приложение и протестировать его на быстродействие и требовательность к ресурсам. Выводы каждый для себя делает сам. Прошло сравнительно немного ... подробнее

RCP файловый менеджер. Высокоуровневый дизайн интерфейса пользователя

2006/15программирование
Одним из первых документов при создании программных продуктов по процессу разработки программного обеспечения (ПО) методологии Rational Unified Process (RUP) является документ "Видение", шаблоны которого общедоступны. Он обобщает все требования, "видение" заказчиком продукта. Обычно данный документ ссылается на внешние документы для упрощения работы над проектом. Одним из основных таких документов является тот, который ... подробнее

Настройка Eclipse IDE для разработки модульных приложений

2006/14программирование
Хочется обратить внимание на то, как происходит отладка приложений, которые включают модули расширений платформы Eclipse и RCP-приложений. При запуске среды разработки (Eclipse IDE) создается статический экземпляр рабочей среды, в котором пишется программный код, производится отладка и выполняются другие задачи производственного процесса. Когда же мы запускаем на тестирование разрабатываемое приложение, то создается динамический экземпляр ... подробнее

Основные задачи файлового менеджера

2006/13программирование
Процесс анализа и моделирования системы обычно начинается с создания UML (Unified Modeling Language) диаграмм вариантов использования (Use Case diagram). Обычно создается несколько диаграмм для функционально различных модулей системы (подсистем). На диаграмме вариантов использования показывают основные требования, которые заказчик предъявляет к системе. Данная диаграмма не затрагивает способы реализации требуемой функциональности. На данном ... подробнее

Основные компоненты приложений, построенных на платформе Eclipse RCP

2006/12программирование
Структура рабочей среды . Рабочая среда (1) . Окно (0-N) . Страница (0-1) . Проекция (0-N), активной может быть только одна . Редактор (0-N) . Панель (0-N) Рабочая среда (Workbench) Рабочая среда — это графическая среда разработки, представляющая собой инфраструктуру для управления ресурсами рабочей области и навигации по ресурсам. Окно (Window) Рабочая среда может включать одно или несколько окон, которые, в свою очередь, могут ... подробнее

Eclipse RCP. Файловый менеджер

2006/11программирование
1 Введение Данный материал — это попытка рассказать о методологии разработки коммерческих профессиональных программ на основе личного опыта и предпочтений автора. Автор не претендует на полное и единственно правильное освещение данной темы. Существует огромное количество технологий и методологий разработки. Можно долго спорить о преимуществах той или иной технологии, того или иного языка программирования. Все они имеют право на жизнь, а ... подробнее

Использование Wizard API

2006/10программирование
В этой статье речь пойдет о таких сложных компонентах пользовательского интерфейса, как визарды (wizards, от англ. — "специалист своего дела", "волшебник"). Многие из вас почти наверняка сталкиваются с ними чуть ли не каждый день, а то и много раз в день. При этом не может не радовать тот факт, что сейчас мы без особых усилий можем использовать эти компоненты в наших Java-приожениях. Визарды помогают решать ряд общих задач — мы используем их, ... подробнее

Создание web-приложений в среде Eclipse WTP

2006/09программирование
Общие сведения Платформа Eclipse является удобным средством разработки программных продуктов с использованием разнообразных технологий. Параллельно ведется разработка ряда специализированных продуктов для решения определенных задач. Одним из таких проектов является Web Tools Project (WTP). Он включает в себя модули для разработки как простых статических web-проектов, так и сложных динамических J2EE-приложений. Проект WTP состоит из двух ... подробнее

Пробираясь сквозь корни и ветви…

2006/08программирование
Одной из характерных отличительных особенностей среды программирования Borland Delphi является возможность построения программ из компонентов. Компоненты выступают в роли строительного материала приложения — кирпичиков, представляющих как визуальные (формы, кнопки, поля ввода), так и невизуальные (источники данных, интернет-подключения) объекты. Такая архитектура среды разработки позволяет создавать вполне функциональные программы с минимальным ... подробнее

Macromedia Flash: Импорт данных

2006/07программирование
Не секрет, что Macromedia Flash отличается от прочих сред программирования своей строгой web-ориентированностью, а это, в свою очередь, налагает существенные ограничения на его возможности в целях безопасности для конечного пользователя. В этой статье мне бы хотелось описать способы, с помощью которых можно передать во Flash-объект необходимую информацию для отображения новостей, названий меню и прочего подобного применения. Думаю, это будет ... подробнее

Программирование на .NET в Linux

2006/06программирование
Часть 4. Элементы Gtk# в примерах Библиотека Gtk содержит множество тонкостей, которые отличают ее от аналогичных библиотек UI. Взять, к примеру, способ расположения виджетов в окне. Те, у кого есть опыт программирования в Windows, наверняка не сомневаются, что где виджет "поставишь", там он и будет держаться. Отсюда следует проблема: при изменении размеров окна виджеты тоже нужно пропорционально изменить и передвинуть. Библиотека Gtk решает ... подробнее

Программирование на .NET в Linux

2006/05программирование
Часть 3. Оконное приложение на GTK# "Дружественные" GUI-интерфейсы других операционных систем имеют свои собственные проблемы. Поиски необходимых кнопок подобны игре в Adventure: интерфейсы в этих системах настолько же трудны, насколько любой интерфейс командной строки в Unix, за исключением того, что пользователь теоретически может "найти сокровища" после достаточного исследования. В Unix пользователю необходимо руководство. Брайан ... подробнее

Создаем автозапуск своими руками

2006/04программирование
Сегодня мы с вами займемся созданием своего собственного автозапуска для CD. На сегодняшний день существует множество специализированных программ для эффективного создания autorun'ов, например, ISDemo и пр., однако, при всех их очевидных плюсах есть один существенный минус — созданный таким образом автозапуск не будет уникален, ведь набор готовых шаблонов обычно не очень большой. Конечно, здесь можно поспорить, ведь во многих программах для ... подробнее

Программирование на .NET в Linux

2006/04программирование
Часть 2. Первое приложение на Mono C# Перейдем от теории к практике. Во-первых, нам нужна сама платформа mono (11 января 2006 г. вышла версия 1.1.13, скачать ее можно здесь: сайт ). Во-вторых, ее нужно установить. Если вы не являетесь счастливым обладателем SuSE Linux, куда входит стабильная и настроенная версия Mono, то установка будет не совсем тривиальной. Но обо всем по порядку. Бинарный инсталлятор нужно запускать, разумеется, под ... подробнее

Программирование на .NET в Linux

2006/03программирование
Часть 1. Обзор возможностей В последние годы здорово набирает популярность новая технология программирования от Microsoft, названная .NET. И несмотря на то, что в ней нет ничего революционного по сравнению с другими технологиями (взять хоть бы те же Java, Ruby, Perl и пр.), все же это немалый шаг вперед. Неудивительно, что программистам всего мира так понравились новые возможности, предложенные Microsoft. Каждый, кто пишет программу, должен ... подробнее

Java Language Convertion Assistant 3.0. Портируем Java на C#

2005/30программирование
Введение Зачастую задачи, с которыми приходится сталкиваться программистам, не уникальны. На сегодняшний день поговорка "все уже написано до нас" действительно имеет место: достаточно заглянуть на такой небезызвестный ресурс, как SourceForge.net сайт , который взял под крыло большинство open source разработок. Казалось бы, дело за малым: нужно всего лишь адаптировать имеющийся исходный код под свои нужды. Но вот именно сам процесс ... подробнее

©1997-2022 Компьютерная газета