Архив

Архив раздела ‘Программирование’

“Ответы” - новый сервис для посетителей сайта www.devoid.com.ua

18 Май 2008

Здравствуйте. Хочу представить новый сервис для посетителей сайта http://devoid.com.ua/ - “Ответы“. Теперь любой программист, у которого возник вопрос по программированию и он не нашел ответ на сайте - может спросить у других посетителей сайта. Такое общение поможет новичкам находить ответы на свои вопросы, а профессионалам находить интересных собесседников и правильные решения сложных задач.
При добавлении вопроса можно воспользоваться удобным редактором, о котором я писал раньше. Пока “Ответы” работают в режиме тестирования, потому все замечания и пожелания будут учитываться. Подробное описание сервиса читайте в новостях сайта.
Очень надеюсь что аудитория сайта составит дружное сообщество где будет царить уважение и взаимопомощь.

admin Обо всем, Программирование, Разное , , ,

markItUp! - гибкий редактор, разработанный с использованием библиотеки jQuery

10 Май 2008

Хочу поговорить сегодня о неплохом редакторе, который написан с использованием библиотеки jQuery - markItUp! Этот редактор позволяет форматировать данные, которые вводит пользователь в виде HTML, BBcode, Wiki Syntax и т.д. Подключается и настраивается под свой проект очень легко - есть система скинов, разные настройки форматирования. Используя markItUp! в своем проекте, мне пришлось его немного подкорректировать и “обработать напильником”, но это не заняло много времени.
Смотрится редактор очень симпатично. Мне нужно было настроить нормальный визуальный редактор для форматирования BBcode - что собственно я и сделал с помощью markItUp!, а в связке с парсером BBcode - наладил нормальную обработку данных, которые вводит пользователь.
Читать далее…

admin ASP.NET, PHP , , ,

ICQ бот на PHP? Легко!

13 Апрель 2008

Привет. Вот всегда была интересна мне тема создания ICQ-ботов на PHP, и сегодня решил рассмотреть ее подробнее и поделиться с вами найденной информацией. Итак, задача: написать ICQ-бот на PHP. Что б реализовать запланированное, нам не нужно изучать протокол ICQ, а достаточно просто воспользоваться готовым РНР-классом для работы с протоколом аськи. Когда класс WebIcqLite.class.php скачан, можно приступать к первым попыткам его использовать.
Вот что дают разработчики в качестве примера использования класса:
Читать далее…

admin PHP , , ,

PHPLinq - аналог LINQ (Language Integrated Query) в C#3.0

6 Апрель 2008

Недавно, друг подсказал мне неплохое решение для работы с массивами в PHP. Это класс, который работает на подобии LINQ в C#3.0 и позволяет делать выборки из массивов с помощью конструкций, которые напоминают SQL. Вот небольшой пример, выборка слов, длина которых меньше 5 символов:

// Create data source
$names = array("John", "Peter", "Joe", "Patrick", "Donald", "Eric");

$result = from('$name')->in($names)
->where('$name => strlen($name) < 5')
->select(’$name’);

Следует отметить, что данное решение работает только с версией PHP 5.2 или выше.
Более подробная информацией по PHPLinq размещена на этом сайте.

admin C# (Csharp), PHP , , ,

Делаем Submit красивее или “Как отправить форму…”

30 Март 2008

Ко мне часто обращаются с различными вопросами. Вопросы касаются как статей размещенных на сайте, так и других, более отвлеченных тем. Так вот недавно проскочил один вопрос, который хочу раскрыть подробнее.
Итак, вопрос: Как отправить форму по нажатию на картинке?
Решение есть довольно простое и стандартное. Вот пример формы с одним текстовым полем, которая отправляет свое содержимое при нажатии на картинку:
Читать далее…

admin PHP , ,

И все-таки используем setlocale для правильного решения задачи с русским текстом

18 Март 2008

В предыдущем примере я предложил быстрое решение проблемы, при которой функции strtolower и strtoupper перестают работать с русским текстом. Это решало проблему, согласен, но настоящий программист должен уметь ПРАВИЛЬНО решать задачи. Для правильного решения задачи работы со строками в PHP, будем предварительно использовать функцию setlocale:

string setlocale ( mixed $category , string $locale [, string $... ] )

Вот как она выглядит в общем виде. setlocale явно указывает локаль, с которой будут работать функции. Параметр $category какраз и определяет, на какие функции будет распространяться установка локали, $category может быть:

  • LC_ALL - модифицировать все установки
  • LC_COLLATE - только сравнения строк, см. strcoll()
  • LC_CTYPE - классификация строк, например strtoupper()
  • LC_MONETARY - денежные значения
  • LC_NUMERIC - числовые значения
  • LC_TIME - значения даты/времени

Тоесть мы просто перед вызовами функций для работы со строками/датами/временем/денежными форматами и т.д. должны указать локаль, и дальше функции будут знать с каким текстом они работают:

setlocale(LC_ALL, ‘rus’);

Думаю такое решение задачи является более правильным и корректным.

admin PHP ,

Проблемы с русским текстом, strtolower и strtoupper?

17 Март 2008

Иногда случается так, что из-за проблем с локалями в PHP функции strtolower и strtoupper перестают работать с русским текстом. Если нет времени разбираться, а нужно быстро получить результат, можно воспользоваться таким кодом:

function toupper($content)
{
$content = strtr($content, “абвгдеёжзийклмнорпстуфхцчшщъьыэюя”,
“АБВГДЕЁЖЗИЙКЛМНОРПСТУФХЦЧШЩЪЬЫЭЮЯ”);
return strtoupper($content);
}

function tolower($content)
{
$content = strtr($content, “АБВГДЕЁЖЗИЙКЛМНОРПСТУФХЦЧШЩЪЬЫЭЮЯ”,
“абвгдеёжзийклмнорпстуфхцчшщъьыэюя”);
return strtolower($content);
}

Более подробную информацию всегда можно найти на сайте php.net. В поиске по функциям strtolower и strtoupper.

admin PHP , , , ,

Кодогенерация, как вариант избавления от рутинной работы

8 Март 2008

Хочу сегодня поговрить об очень перспективном направлении в программировании - кодогенерации.
Эти мысли пришли ко мне в голову после того, как я начал пректировать новую версию движка для сайта devoid.com.ua.
Для реализации выбрал популярный сейчас паттерн Model-View-Controller.
Используя такой подход, программисту необходимо реализовать “Model” - модель представления данных. Для этого чень полезной является реализация класса-оболочки для работы с Базой Данных, которая предоставляет механизмы извлечения данных, добавления, удаления и редактирования записей.
Если посмотреть немного дальше и представить что при каждом новом проекте нужно будет писать новый класс-оболочку для Баз Данных, который будет выполнять практически стандартные функции - становится как-то грустно, ведь всегда интереснее решать разнообразные задачи, а не писать по сути одинаковые классы, которые будут получать информацию с БД, добавлять, удалять и редактировать записи.
Именно здесь нам на помощь приходит кодогенерация, которая для реализации слоя доступа к данным (Data Access Layer) генерирует на основе описания таблиц БД класс, который содержит в себе необходимые функции для реализации Model из паттерна MVC.
Уже сейчас существует ряд готовых решений, которые предлагают вам создавать классы для работы с данными на основе описания структуры БД. Если вы хотите избавиться от рутинной работы создания классов для работы с БД - можете написать свой генератор или использовать уже имеющиеся (это могут быть и консольные решения, и Win-приложения и те же PHP-скрипты, кому как удобнее).
Все что необходимо генератору кода - это описание базы данных, выполненное в удобном формате (как вариант XML). В описании нужно указывать имена столбцов, тип данных, которые они содержат. Если вы сами пишете генератор, то позаботьтесь о том, что б он был безопасный к различным типам данных и имел достаточную функциональность.
Любому программисту будет удобнее выполнить простой код:

$user->create(”UserName”,”Mail”… остальные поля);

чем делать это вручную каждый раз. То же самое и с редактированием, удалением. Намного приятнее выполнить

$user->remove(’user_id’);

а все, остальное за вас сделает сгенерированный класс.
Здесь даже не столь важным является язык реализации, или конкретная База Данных. Основной изюминкой является реализация данного процесса, и избавление программиста от рутины. Один раз ГРАМОТНО написав генератор, вы получаете готовую модель работы с данными для каждого проекта, а сэкономленное время с удовольствием можно потратить на разработку новых интересных решений и сосредоточиться на реализации представления данных пользователю.
Надеюсь кое-как смог выразить свои мысли по этому поводу в данной заметке, и натолкнул вас на что-то новое и интересное в безграничном мире программирования :)

Да, и не забудьте поздравить женщин с их праздником сегодня…
Всех женщин поздравляю с праздником и желаю внимания, любви и удачи!

admin PHP, Программирование , , , , ,

Язык программирования - только инструмент, или откуда берутся холливары

27 Февраль 2008

Очень непростую тему хочу затронуть сегодня. Но начнем с определения в Википедии, которое мне очень нравится:

Программи́рование — процесс и искусство создания компьютерных программ с помощью языков программирования. Программирование сочетает в себе элементы искусства, науки, математики и инженерии.

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

Итак, что представляет собой язык программирования? По сути, это набор инструкций и команд, которые позволяют получить определенный результат и заставляют программу работать так, как того хочет программист. Глядя на бесконечные топики на различных форумах с названиями “C++ vs Delphi”, “C++ vs C#”, “На чем лучше писать?!” и так далее, появляются сомнения о том, что язык программирования лишь инструмент для программиста.

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

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

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

В заключение своей небольшой заметки хочу сказать, что холливары - результат детского максимализма новичков, намного полезнее было бы описывать плюсы языков программирования, и их минусы. Чтобы помочь программистам сразу понять достоинства и недостатки “инструментов” для разработчика. Очень хочется выслушать ваше мнение по данному вопросу :)

admin Программирование , , , ,

Получить RAD Studio 2007 у партнеров CodeGear бесплатно, реально?

16 Февраль 2008
RAD Studio 2007

В продолжение темы получения бесплатных дисков, стало интересно, можно ли получить RAD Studio 2007 у партнеров CodeGear бесплатно? Здесь нашел список партнеров CodeGear, которые должны предоставлять бесплатно всем желающим DVD c дистрибутивом CodeGear RAD Studio 2007. Городов в которых есть эти самые партнеры не так уж и много… моего города в списке не оказалось, потому проверить сам не могу, действительно ли дают диски бесплатно. На сайте есть вся контактная информация партнеров, кто получит диски - просьба отписаться. Ради интереса и пользы для остальных :)

admin Программирование , ,