Консультации по курсу СВП 2012

Задавайте здесь свои вопросы

Модератор: Преподаватели

Консультации по курсу СВП 2012

Сообщение Telnov » 15 авг 2012, 16:00

Учебные материалы, задания и литературу по курсу "Специальные вопросы программирования" смотрите на сервисе Учебные материалы. Недостающие лекции будут появляться в течение семестра.

На этом форуме можно задавать вопросы и обмениваться мнениями. По мере сил буду отвечать.
Приступая к работе, студентам рекомендуется посетить раздел форума Эффективное web-программирование: Ajax и Dojo и пройти по имеющимся там ссылкам.

Обратите внимание: в расписании занятий этот курс пока присутствует под названием "Программные средства САПР".
В.Тельнов
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

О проектных заданиях по курсу СВП

Сообщение Telnov » 15 авг 2012, 16:05



Рекомендованная тематика курсовых работ:

    Информационно-обзорные и новостные web-ресурсы (предложите оригинальные решения);
    Специализированные тематические сайты (наука, искусство, спорт, хобби, и т.д.);
    Образовательные web-ресурсы (помогите вашей кафедре);
    Корпоративные порталы (предложите нечто новенькое, познакомившись с Dojo);
    Системы управления контентом (улучшите и «оживите» существующие CMS);
    Удаленные хранилища данных и облачные сервисы (учимся работать с деревьями, с JSON и XML).
Данный список является открытым – студенты могут предлагать собственные темы курсовых работ.
Детальные проектные задания по курсовой работе формулируются индивидуально, в зависимости от конкретной выбранной темы проекта.
Весьма желательно, чтобы проектные группы самостоятельно обдумали, обсудили и предложили тему своего проекта, исходя из рекомендованной тематики.
Если это не получится – конкретная тема будет предложена преподавателем.

11010910810710610510410310210110099
В.Тельнов
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

Коллеги: такое предложение ...

Сообщение Telnov » 05 сен 2012, 01:03

Виктор Кулагин предложил сделать сайт об истории IT.
Моё вам предложение в качестве дискуссии:

Делаем 3 (три) сайта:
1. История и развитие IT в древнем мире
2. IT в средние века, и до ХХ века.
3. IT в 20-м веке и в наши дни.

Что скажете?
В.Тельнов
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

Re: Консультации по курсу СВП 2012

Сообщение Sater » 10 сен 2012, 03:12

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

Ну так предлагайте же нечто конкретное. Был оговорен срок - конец истекшей недели.
Три сайта по истории IT, объединенные общим порталом и выполненные в единой стилистике - это вполне логично.
Что-то вроде томов энциклопедических изданий. Вот пример удачного проекта - Математические этюды.

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

В.Тельнов
Аватар пользователя
Sater
Студент
 
Сообщений: 1
Зарегистрирован: 07 дек 2011, 18:54
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Консультации по курсу СВП 2012

Сообщение AFomin » 10 сен 2012, 11:06

Доброго дня, прикладываю набросок проектного задания своей группы (Фомин, Лактионов, Белоусов, Шубенков) http://rusfolder.com/32547270

Посмотрел ваш набросок. "Ленивая" загрузка фото - это правильно, именно так и делают, но для курсовой работы этого крайне мало.
Пожалуйста, пройдите по этим ссылкам:
http://dojocampus.com/explorer/#Dojox_Image, http://www.flashxml.net/flash-galleries// и ознакомьтесь с тем, что имеется по вашей теме.
Существует великое множество галерей, их сделаны тысячи. В чем будет заключаться "изюминка" вашей работы? Что нового вы предлагаете?
В вашем проекте должен быть креатив, элементы новизны. Подумайте над этим.

В.Тельнов
Аватар пользователя
AFomin
Студент
 
Сообщений: 4
Зарегистрирован: 07 сен 2012, 20:03
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Консультации по курсу СВП 2012

Сообщение AFomin » 12 сен 2012, 20:47

Доброго времени суток!
Предлагаю к рассмотрению требования к созданию сайта на тему ретро авто http://rusfolder.com/32598315
Аватар пользователя
AFomin
Студент
 
Сообщений: 4
Зарегистрирован: 07 сен 2012, 20:03
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Консультации по курсу СВП 2012

Сообщение OneTwo » 13 сен 2012, 19:36

Добрый вечер! Прилагаю к своему сообщению требования для сайта, проектной группы(Козлов, Петричка, Кузнецов).
Требования к сайту.docx [12.24 KiB]
Скачиваний: 565


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

В.Тельнов
Аватар пользователя
OneTwo
Студент
 
Сообщений: 1
Зарегистрирован: 07 сен 2012, 18:51
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Полезные ссылки по теме Google API и смежным вопросам

Сообщение Telnov » 16 сен 2012, 12:54

Сформулированы окончательные версии проектных заданий, смотрите "Учебные материалы"
В помощь проектным группам, выкладываю полезные ссылки по теме Google API и смежным вопросам.

Как работать с поиском:
API и сервисы и Google. Инструментарий разработчика
Google AJAX Search API: тонкая настройка поиска
Использование Google Ajax Search API
Google AJAX Search API. Руководство.
Поиск по сайту с использованием API Google AJAX Search
Системы пользовательского поиска Google.
Связанные системы пользовательского поиска
Осваиваем Google AJAX Search API
Google Web Search API (Deprecated) - устаревший инструмент

Как работать с Picasa, Youtube, Map, Console:
API и инструменты YouTube
Веб-альбомы Picasa
API Карт Google
APIs Console
API для виджетов типа "рыбий глаз"

На профессиональных блогах и форумах самостоятельно находите и изучайте соответствующие примеры.
В.Тельнов
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

Re: Консультации по курсу СВП 2012

Сообщение AFomin » 18 сен 2012, 10:21

Я предлагаю провести занятия в четверг в 15 00

Благодарю вас. Договорились - в четверг в 15 00.
Пожалуйста, сообщите остальным студентам.

В.Тельнов
Аватар пользователя
AFomin
Студент
 
Сообщений: 4
Зарегистрирован: 07 сен 2012, 20:03
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

О компактном размещении контента

Сообщение Telnov » 01 окт 2012, 17:42

В проектных заданиях всех трех групп требуется "Найденный и отобранный контент компактно отображать на сайте, с возможностью его просмотра (воспроизведения) в полном объеме".

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

Вам предлагается найти некое среднее, более изощренное решение, применив на практике изучаемые технологии.

Здесь будут уместны различные компоновочные решения со вкладками, "гармошками", изменяемыми панелями из Layout with Dijit. Смотрим, пробуем, выбираем и динамически генерируем меню в стиле ComboButton, в стиле DropDownButton, в стиле MenuBar, в стиле DropDownMenu.

Согласно проектным заданиям, на ваших сайтах требуется выдавать контент трех видов: документы, изображения, видео. Что касается изображений и видео, на форуме Вопросы программирования описан API для виджетов типа "рыбий глаз". Соответствующий софт можно взять из файла, прикрепленного к этому посту, если это окажется для кого-то полезным. На мой взгляд, проще использовать готовый API. Вот пример использования данного API, когда виджеты находятся в потоке произвольного контента.

Что касается текстового контента и вообще web-документов, то для их компактного отображения можно применить аналогичные виджеты, и сделать это несложно. Простейшее решение - просто использовать iframe, не мудрствуя лукаво. Например, как это сделано здесь: jQuery ColorBox. Кстати, весь jQuery ColorBox в полном объеме входит в состав софта "рыбий глаз" и работает с ним в паре.

Обсуждаемый подход, когда контент подается в стиле Lightbox, при всём его изяществе, имеет существенный недостаток. Пользователь, который привык к навигации при помощи стандартных кнопочек браузера, здесь не будет иметь такой возможности. Однако, это общий недостаток всех Ajax-решений.
Вложения
fisheye_light.zip [30.58 KiB]
Скачиваний: 579
В.Тельнов
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

В помощь Терешину и другим студентам

Сообщение Telnov » 09 окт 2012, 22:07

Как обещал, выкладываю примеры кросс-доменных Ajax-запросов к облачным сервисам Googlа, выполненные на jQuery.
Полностью эти примеры вы сможете посмотреть и разобрать, скачав код, прикрепленный к предыдущему посту: fisheye_light.zip.
Там смотрите строки кода 1067, 1181 - работа с Picasa; строки кода 1357, 1403 (и вообще функции $.fn.light_youtube, $.fn.one_youtube) - работа с Youtubом.

Итак, используется jQuery-функция $.getJSON(url, function(response){ ... });

Код: выделить все
// Запрос к Picasa для получения миниатюр фотоальбомов
$.getJSON('http://picasaweb.google.com/data/feed/api/user/'
        + user + '?kind=album&access=visible' + authkey
        + '&alt=json-in-script&thumbsize=' + meta_opts.size + 'c&callback=?',
        renderAlbumList);

// Запрос к Picasa для получения изображений размером до 800px
$.getJSON('http://picasaweb.google.com/data/feed/api/user/'
        + user + '/albumid/'
        + album + '?kind=photo&access=visible' + authkey + '&alt=json-in-script&thumbsize='+meta_opts.size+'c&imgmax=800&callback=?',
        renderAlbum);

// Запрос к Youtube для получения наименований и описаний видеороликов, vid есть короткий адрес видеоролика
var url, title, description;
var item = dojo.query('a.youtube_anchor')[0];
url = 'http://gdata.youtube.com/feeds/api/videos?q=' + vid + '&max-results=1&v=2&alt=jsonc&callback=?';
$.getJSON(url, function(response){
        var info = null;
        if(response && response.data && response.data.items) info = response.data.items[0];
        if(info) {
                title = info.title;
                description = info.description;
                if(description) item.setAttribute('title', description);
                else item.setAttribute('title', title);
        }
});

// См. также строки 1338, 1340 указанного кода в качестве примеров внедрения проигрывателя Youtubа и получения фото-миниатюр для видеороликов

Как видите, url для этих запросов формируется динамически. Как именно - описано в соответствующих Google API. Смотрите пост Полезные ссылки по теме Google API и смежным вопросам в этой ветке. Анализируйте рекомендованный код. Ищите и изучайте другие примеры.

Разобравшись с данной темой, применяйте в вашей работе аналогичные запросы, но используйте функции из Dojo Toolkit.
Успехов.
В.Тельнов
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

Совместная работа Picasы и компонентов FlashXML.net

Сообщение Telnov » 17 окт 2012, 09:00

В помощь Балакину и другим студентам. Задача: запитать компонент FlashXML.net изображениями с Picasы. Решение посмотрим на примере flash-компонента Banner Rotator FX. Для показа будут выбраны все изображения из альбома smile_2012.
Последовательность действий по шагам:
  1. Идем на сайт FlashXML.net, выбираем там понравившуюся галерею или другой flash-компонент, настраиваем его по своему вкусу и скачиваем. Настроить компонент можно и после скачивания, в файлах типа settings.xml. Допустим, мы выбрали и скачали компонент Banner Rotator FX.
  2. В скачанной папке смотрим на файл images.xml. В этом файле видим теги <photo>, а в тегах видим ссылки на изображения из папки image и настройки визуальных эффектов.
  3. Файл images.xml использовать не будем. Вместо него мы динамически сгенерируем свои теги <photo>, в которых будут ссылки на нужные нам изображения из альбомов Picasы, и желаемые визуальные эффекты.
  4. Открываем файл settings.xml, и в третьей строке сверху заменяем текст imagesXML="images.xml" на текст imagesXML="images.php". Файл images.php мы создаем сами, и в этом файле лежит серверный php-скрипт, который и занимается генераций нужных тегов, каждый раз создавая файл типа images.xml "на лету", предварительно причитав нужные фиды с Picasы.
  5. Пример файла images.php для компонента Banner Rotator FX смотрите ниже в этом посте.
  6. Модифицированную папку с нашим компонентом FlashXML.net заливаем на сервер (в автономном режиме серверный скрипт работать не будет!), пробуем и отлаживаем. Получившийся продукт интегрируем в своё web-приложение. Всё.
  7. Итоговый результат в действии смотрите здесь. Можете скачать его в конце поста или с хостинга vt.obninsk.ru (папка banner_rotator).
Код: выделить все
<?php
   // Скрипт занимается генераций xml-тегов, при каждом обращении динамически создавая файл images.xml для компонента Banner Rotator FX
    $userid = 'telnov11';
    $album = 'smile_2012_youras';
   // набор визуальных эффектов
    $options = array ('effect="zoom" zoompercent="150" direction="out" hzoompos="left" vzoompos="right"',
        'effect="zoom" zoompercent="150" direction="out" hzoompos="center" vzoompos="center"',
        'effect="kenburns" direction="right"',
        'effect="kenburns" direction="top"',
        'effect="kenburns" direction="bottom"',
        'effect="zoom" zoompercent="150" direction="out" hzoompos="right" vzoompos="left"');
    // URL для чтения фидов с Picasы
     $feedURL = "http://picasaweb.google.com/data/feed/api/user/$userid/album/$album?kind=photo&imgmax=800";
    // Читаем фиды в объект SimpleXML object
    $sxml = simplexml_load_file($feedURL);
    echo "<slideshow>\n";
    $n = 0;
   // в цикле ходим по объекту SimpleXML и генерируем нужные теги для компонента FlashXML.net
    foreach ($sxml->entry as $entry) {
      $title = $entry->title;
      $summary = $entry->summary;
      $gphoto = $entry->children('http://schemas.google.com/photos/2007');
      $size = $gphoto->size;
      $height = $gphoto->height;
      $width = $gphoto->width;
      $media = $entry->children('http://search.yahoo.com/mrss/');
      $thumbnail = $media->group->thumbnail[2];
      $content = $media->group->content;
      $tags = $media->group->keywords;
      echo "<photo image=\"";
      // генерируем xml-теги photo с 6 разными визуальными эффектами, чтобы скормить их banner_rotator
      echo $content->attributes()->{'url'};
      echo "\" duration=\"8\" ";
                echo "$options[$n]";
      echo "><![CDATA[<head>";
      echo $summary ;
      echo "</head><body>";
                echo $title ;
      echo "</body>]]>";
      echo "</photo>";
      echo "\n";
                if($n < 5) $n++; else $n = 0;
    }
    echo "</slideshow>";
?>

:geek: Итоговый результат онлайн.

Ещё примеры flash-компонентов, которые берут изображения с облачного сервиса Picasa и подают их различными способами: tiltviewer, page_flip, elite_gallery, photo_gallery, scrolling_gallery.

Аналогичная работа была успешно выполнена в прошлом году студентами 5-го курса: vt.obninsk.ru/project_1/picasa/, vt.obninsk.ru/project_1/Public1/.

В случае затруднений, задавайте вопросы.
Вложения
banner_rotator.zip [78.58 KiB]
Скачиваний: 585
В.Тельнов
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

30 октября - контрольная точка проекта

Сообщение Telnov » 24 окт 2012, 10:47

Господа студенты, напоминаю вам, что 30 октября - контрольная точка проекта.

102101100
Согласно проектным заданиям, на ноябрь месяц запланировано тестирование софта.
Соответственно, к 30 октября ваше web-приложение должно быть создано в полном объеме и развернуто на сервере (действующий прототип 2).


В связи с крайне неблагополучным положением дел в проектных группах:
  1. 30 октября будет проведено компьютерное тестирование знаний студентов по изученному материалу.
  2. Проектные группы, не справившиеся с первыми двумя этапами проекта, будут расформированы.
  3. Студенты из расформированных групп получат индивидуальные задания.
Прошу подготовиться.
В.Тельнов
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

Ссылки для тестирования по JavaScript

Сообщение Telnov » 06 ноя 2012, 12:30

Ссылки для тестирования по JavaScript:

http://www.wisdomweb.ru/JS/jstest.php
http://wb0.ru/test/javascript.php
В.Тельнов
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

Дискуссионный доклад: "Веб 2 против Веб 1"

Сообщение Telnov » 15 ноя 2012, 13:07

Коллеги, есть такое предложение.
От студентов вашей специализации - подготовить и сделать в декабре доклад-дискуссию. Тема доклада примерно следующая "Веб 2 против Веб 1" (подумать над названием).
На дискуссию пригласить преподавателей нашей и смежных кафедр + студентов младших курсов, особенно 3 курса.
Такой доклад будет зачтен как часть курсовой работы по СВП. Например, докладчики освобождаются от этапов тестирования и рефакторинга софта.
Содержательный доклад и аргументированная дискуссия обеспечат заинтересованным студентам высокий бонус к оценке за курсовую работу по СВП.

Исходные данные, суть дискуссии и первоначальные соображения (ориентировочно).


Про Веб 1 (он же классический, традиционный веб).
  • Рассмотрим, например, требования Google к сайтам. Занимаясь в последнее время вопросами оптимизации web-ресурсов кафедры (инструмент Google Analytics), обратил внимание на следующие обстоятельства. "Руководство для веб-мастеров" в целом поощряет Веб 1, поскольку такой сайт легко обнаружить, просканировать и проиндексировать. Хороший сайт обладает четкой иерархией и снабжен статическими текстовыми ссылками. Имеется карта сайта, которая помогает пользователям и поисковым роботам ориентироваться в контенте. Вроде бы, очень разумные требования.
  • Пример статического сайта в стиле Веб 1: Контент и аксессуары к мобильным телефонам . Смотрим код этого сайта. Видим блочную верстку и немного JavaScript-кода (в основном, для показа рекламы и сбора статистики). Но, о боже: новости, "юмор", и вообще весь контент "зашит" в разметку страниц. Это означает, что контент-менеджер должен править код сайта каждый раз, когда ему нужно обновить информацию. CMS (системы управления контентом) отдыхают. Навигация по сайту осуществляется методом "листания" статических web-страниц. Ajax как бы не существует. Зато есть четкая карта сайта и поисковым роботам хорошо.
  • Примеры продвинутых сайтов в стиле Веб 1 с применением CMS Drupal: сайт ВМК МГУ, сайт ИАТЭ НИЯУ МИФИ. Основной источник контента - редакция сайта.
  • Пример продвинутого сайта в стиле Веб 1 с применением CMS TYPO3: Газпром в вопросах и ответах. Источник контента - редакция сайта.
  • Пример продвинутого сайта в стиле Веб 1 с применением Ajax: основной сайт Газпрома. Работу Ajax можно наблюдать в отладчике браузера.
Про Веб 2 (CMS, Ajax + облачные сервисы и тому подобные вещи).
  • Контент создается и компонуется динамически. Источники контента: сам web-ресурс с его редакцией и администрацией, посетители страниц, удаленные хранилища, облачные сервисы, просто весь Интернет. Учебные проекты такого рода вы реализуете в курсовой работе по СВП. По этому же направлению сейчас развиваются web-ресурсы кафедры КССТ. Практика показывает, что пока они весьма неплохо индексируются роботами Googla, чуть хуже Яндексом и ему подобными. Работа с таким вебом может быть гораздо полезнее и приятнее. При условии, что его быстродействие не страдает, а дизайн и юзабилити удачны.
  • Первый вопрос дискуссионного плана: преимущества и недостатки Веба 2 по сравнению с Вебом 1, области их применения и перспективы.
  • Второй вопрос практического плана: в каком направлении следует развивать наши кафедральные web-ресурсы? Учитывая тот факт, что они являются своего рода полигоном для студенческих работ и для обкатки новых web-технологий, которые преподаются на кафедре.
Релевантные ссылки по теме легко найдете сами, вот несколько штук навскидку: ссылка1, ссылка2, ссылка3, ссылка4.

Прошу вас подумать над этим предложением и на ближайшем занятии (20 ноября 2012г.) высказаться.
Ещё лучше - обозначить ваше отношение к данному вопросу здесь на форуме, не дожидаясь занятия.
В.Тельнов
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

Про паттерны, JavaScript и web-дизайн

Сообщение Telnov » 15 ноя 2012, 20:23

В помощь Кузнецову. Если решите делать реферат на тему паттернов - эта статья может быть полезной:
Слабое связывание компонентов в JavaScript. Посмотрим в сторону паттернов.

Для всех студентов: занимательное и поучительное чтение про web-дизайн.
В.Тельнов
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

Когнитивные технологии и проекты в курсе СВП

Сообщение Telnov » 24 ноя 2012, 23:12

Данная заметка посвящена одному из направлений работ на нашей кафедре - "когнитивным технологиям".
Проектные задания, которые студенты получили в курсе СВП, имеют отношение к данной тематике. Сейчас станет ясно, почему.

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

Пять проблем поисковых машин, о которых Гугл с Яндексом ничего вам не скажут, но которые вам известны:

  1. Чрезмерное количество результатов поиска, в том числе не соответствующих запросу. Вы тратите много времени и сил, просматривая первые страницы результатов, и вам не хватает терпения перейти к оставшимся ссылкам.
  2. Документы ранжируются поисковой машиной в соответствии с её внутренним алгоритмом, который далеко не всегда отвечает вашим интересам.
  3. Коммерческие результаты поиска получают больший рейтинг по сравнению с некоммерческими.
  4. Отсутствует возможность управлять семантическим контекстом поискового запроса. Нет ни удобных средств, ни подсказок для уточнения направления поиска.
  5. Web-интерфейс поисковых машин мало изменился с прошлого века.
В данной ситуации, мог бы помочь хороший web-гид. Или, хотя бы поисковая машина чуть поумнее. Что-то из такого, например: Нигма, Quintura, Clusty.

Рассмотренная проблема поиска знаний относится к области когнитивных технологий. Вот пара пояснений на эту тему:

  • "Когнитивный" указывает на отношение к знаниям ("cognoscere" в переводе с латыни - "знать, узнавать"), а говоря определеннее, к способам получения знаний человеком и способам их сохранения в его сознании.
  • Когнитивные технологии – это изучение, исследование и разработка математических моделей и методов, обеспечивающих наполнение компьютерных систем функциями анализа и интеллектуальной обработки больших массивов данных, функциями принятия решений. Это относится к таким темам, как цифровая обработка изображений и сигналов, распознавание образов, классификация данных, техническое зрение, анализ текстов и к другим областям искусственного интеллекта. Плюс, создание соответствующего софта. Ссылка: кафедра «Когнитивные технологии» МФТИ
Студентам специализации, которые вдруг почувствуют интерес к работе в области когнитивных технологий (модели, методы, софт), следует как-то заявить об этом на кафедре.

В заключение, хочется выразить благодарность доценту Мышеву А.В. за плодотворные дискуссии по данной теме.
В.Тельнов

За это сообщение автора Telnov поблагодарил:
Manager (08 янв 2013, 11:38)
Рейтинг: 25%
 
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

О надежности работы облачных сервисов

Сообщение Telnov » 26 ноя 2012, 15:26

С 24 по 26 ноября 2012г. практически "упал" сервис web-альбомы Picasa. На жалобы обескураженных пользователей администрация сервиса никак не реагировала. Гугл всё сильнее разочаровывает. Сейчас Picasa вновь начал работу. Будем надеяться, стабильно.

Поскольку в проектах по курсу СВП используется данный web-сервис, привожу сведения о полноценной альтернативе: Flickr from Yahoo!. Схема работы такая же: получаем аккаунт Yahoo!, идем на Flickr и заливаем туда наши альбомы.

Пример работы с Flickr API можно посмотреть здесь: плагин jQuery для слайдшоу фотографий с сайта Flickr. Пример взят отсюда.

Студентам пока беспокоиться и что-то переделывать не надо. Эта заметка носит информационный характер. Однако, если проблемы с Гуглом будут повторяться, придется дублировать его web-сервисы, или вообще отказываться от них. Не хотелось бы.
В.Тельнов
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

Вопрос студента

Сообщение Tutor » 26 ноя 2012, 18:06

Здравствуйте, Виктор Петрович, прошу Вашей помощи в поиске изображений в пикасе и отображения их во flashxml.
Всё делал как вы и говорили, взяв за основу Ваш скрипт написанный на php. Пытаюсь с помощью ajax передавать туда значение из поля запроса, вроде передается, но в галерее не отображается. вот скрипт:

Код: выделить все
<?php
// Скрипт занимается генераций xml-тегов, при каждом обращении динамически создавая файл images.xml для компонента Banner Rotator FX
$userid = $_REQUEST['string'];
// набор визуальных эффектов
$options = array ('effect="zoom" zoompercent="150" direction="out" hzoompos="left" vzoompos="right"',
'effect="zoom" zoompercent="150" direction="out" hzoompos="center" vzoompos="center"',
'effect="kenburns" direction="right"',
'effect="kenburns" direction="top"',
'effect="kenburns" direction="bottom"',
'effect="zoom" zoompercent="150" direction="out" hzoompos="right" vzoompos="left"');
// URL для чтения фидов с Picasы
$feedURL = "http://picasaweb.google.com/data/feed/api/all?q=$string";
// Читаем фиды в объект SimpleXML object
$sxml = simplexml_load_file($feedURL);
echo "<slideshow>\n";
$n = 0;
// в цикле ходим по объекту SimpleXML и генерируем нужные теги для компонента FlashXML.net
foreach ($sxml->entry as $entry) {
$title = $entry->title;
$summary = $entry->summary;
$gphoto = $entry->children('http://schemas.google.com/photos/2007');
$size = $gphoto->size;
$height = $gphoto->height;
$width = $gphoto->width;
$media = $entry->children('http://search.yahoo.com/mrss/');
$thumbnail = $media->group->thumbnail[2];
$content = $media->group->content;
$tags = $media->group->keywords;
echo "<photo image=\"";
// генерируем xml-теги photo с 6 разными визуальными эффектами, чтобы скормить их banner_rotator
echo $content->attributes()->{'url'};
echo "\" duration=\"8\" ";
echo "$options[$n]";
echo "><![CDATA[<head>";
echo $summary ;
echo "</head><body>";
echo $title ;
echo "</body>]]>";
echo "</photo>";
echo "\n";
if($n < 5) $n++; else $n = 0;
}
echo "</slideshow>";
?>

Но если вместо строчки $userid = $_REQUEST['string']; написать что-то конкретное : $userid ="computer", например, то всё прекрасно отображается. Пока что удалось решить задачу в плеере uppod.
Заранее спасибо.
С уважением Балакин С. О.
Аватар пользователя
Tutor
Ассистент
 
Сообщений: 20
Изображения: 82
Зарегистрирован: 05 сен 2011, 12:06
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: отправка данных php-скрипту по протоколу HTTP

Сообщение Telnov » 26 ноя 2012, 19:08

На мой взгляд, причин неудачи может быть несколько.
Первое, самое элементарное: правильная кодировка (у вас всюду UTF8 ?) и лишние слэши (о них см. пример ниже).
Далее вспоминаем, что глобальный php-массив $_REQUEST объединяет в себе массивы $_GET, $_POST и $_COOKIE. Нам нужно что-то одно. Если отправляем данные из формы, тогда, очевидно, используется метод POST, и будем работать с массивом $_POST.
В помощь вам, приведу два рабочих примера решения этой задачи из кода web-ресурсов нашей кафедры.

Пример 1. Отправка почты (обратная связь) со страницы сайта. Нажмите на маленький синий глобус, который вращается в правом нижнем углу на вашем экране. Появится форма обратной связи. Данные из формы уйдут на сервер POST-запросом, но не напрямую, а через обработчик события на кнопке "Отправить сообщение".

Разметка для формы (обратите внимание: onsubmit="return false" - отключаем стандартную реакцию браузера)
Код: выделить все
<form id="_footer_form_to_post" name="_footer_form_to_post" onsubmit="return false" >
                <center><div id="_footer_form_posted" align="center"></div></center>
                <div id="_footer_anything">Обратная связь - пишите пожалуйста</div>
                <table id="_footer_callback_tab" cellpadding="0"  cellspacing="3">
                    <tr id="_footer_tr1"><td id="_footer_tr11" valign="top"><strong id="_footer_text_0">Тема сообщения:</strong></td>
                        <td id="_footer_tr12"><select name="_footer_topic" id="_footer_topic" class="_footer_input_form">
                        <option class="_footer_option" value="Не выбрана" selected>- Выберите тему сообщения ...</option>
                        <option class="_footer_option" value="Нашел ошибку!">- Нашел ошибку!</option>
                        <option class="_footer_option" value="Предлагаю ...">- Предлагаю ...</option>
                        <option class="_footer_option" value="Желаю ...">- Желаю ...</option>
                        <option class="_footer_option" value="Помогите ...">- Помогите ...</option>
                        <option class="_footer_option" value="Привет!">- Привет!</option>
                        <option class="_footer_option" value="А вы кто?">- А вы кто?</option>
                        <option class="_footer_option" value="Разное">- Разное</option>
                        </select></td>
                </tr>
                <tr id="_footer_tr2">
                    <td id="_footer_tr21" valign="top"><strong id="_footer_text_1" class="ftopic">Ваше сообщение<br>для администрации web-ресурсов кафедры КССТ:</strong></td>
                    <td id="_footer_tr22"><textarea id="_footer_textarea" name="_footer_textarea" class="_footer_input_form" rows="5">Введите текст ...</textarea></td>
                </tr>
                <tr id="_footer_tr3"><td id="_footer_tr31" valign="top"><strong id="_footer_text_2">Ваше имя или ник:</strong></td>
                    <td id="_footer_tr32"><input type="text" required="true" name="_footer_name" id="_footer_name" class="_footer_input_form" placeholder="Имя, ник или что-нибудь еще ..."/></td>
                </tr>
                <tr id="_footer_tr4">
                    <td id="_footer_tr41" valign="top"><strong id="_footer_text_3">Ваш e-mail:</strong></td>
                    <td id="_footer_tr42"><input type="text" name="_footer_email" id="_footer_email" class="_footer_input_form" placeholder="Укажите e-mail, чтобы получить ответ."/></td>
                </tr>
            </table>
                <center>
                    <input id="_footer_form_submit" class="_footer_btn_form" type="submit" value="Отправить сообщение">
                    <input id="_footer_form_refresh" class="_footer_btn_form" type="button" value="Очистить"/>
                    <input id="_footer_form_close" class="_footer_btn_form" type="button" value="Закрыть"/>
                </center>
</form>

Обработчик события на кнопке "Отправить сообщение" (JavaScript-код)
Код: выделить все
.....................
dojo.connect( dojo.byId("_footer_form_submit"), "onmouseup", null, mail_to);   // цепляем обработчик события
.......................
// сам обработчик события
var mail_to = function() {
    if( document._footer_form_to_post._footer_name.value.length == 0 ) {
        show_message(mail_no);     // форма должна быть заполнена!
        return false;
    }
    else {
        dojo.xhrPost({
            url: "x_forum_footer/footer_mail_to.php",    // php-скрипт, которому уйдет запрос
            form: dojo.byId("_footer_form_to_post"),         // данные берем из этой формы
            handleAs: "text",                                              // обрабатывать как текст
            load: function(data) {                                       // успешная отправка данных по сети
                show_message(mail_yes);
                clear_callback();
                return false;
            },
            error: function(error){alert("Ошибка dojo.xhrPost: " + error); return false;}  // какие-то проблемы
        });
        return false;
    }
}

И, наконец, сам серверный php-скрипт, который получит данные из формы и отправит e-mail
Код: выделить все
<?php
if (isset($_POST['_footer_topic'])) {$topic= $_POST['_footer_topic'];}
if (isset($_POST['_footer_textarea'])) {$text = $_POST['_footer_textarea'];}
if (isset($_POST['_footer_name'])) {$name = $_POST['_footer_name'];}
if (isset($_POST['_footer_email'])) {$email = $_POST['_footer_email'];}
$to = "telnov@bk.ru";
$headers = "Content-type: text/plain; charset = UTF-8";
$subject = "Сообщение с главной страницы КССТ";
$message = "Тема сообщения: $topic \nТекст сообщения: $text \nИмя пославшего сообщение: $name \nЕго email: $email";
$send = mail ($to, $subject, $message, $headers);
?>

Пример 2. Кусок кода из сервиса "Учебные материалы". Отправка на сервер обновленных данных в формате JSON и запись их в файл на сервере.

Отправка данных на сервер:
Код: выделить все
// серверному скрипту отправляем POST-запрос с данными из переменной newFileContentString
dojo.xhrPost({
    url: "http://swim.obninsk.ru/dojo_tree_test/json/lib_json_write.php",
    content: {name: newFileContentString},
    load: function(data){ alert("xhrPost: OK"); },
    error: function(error){ alert(ajaxError + error); }
 });

Получение и обработка данных на сервере:
Код: выделить все
<?php
// этот серверный скрипт лежит по адресу http://swim.obninsk.ru/dojo_tree_test/json/lib_json_write.php
function clean_slashes(&$value,$name) {
// уберем мусорные слэши, если они есть
    if(is_array($value)) {
        foreach($value as $k => $v) {
            if($k != trim($name)) {
            clean_slashes($value[$k],$name);
            }
        }     
    } else {
        $value = stripslashes($value);
    }
}   
if(true == (get_magic_quotes_gpc())) { clean_slashes($_POST,"_POST"); }
// в файл lib.json запишем всё, что придет в ассоциативном массиве POST-запроса
$fp = fopen("./lib.json","w+");      // открываем файл для записи
foreach($_POST as $key => $value) { fwrite($fp, $value); }   // всё, что пришло в массиве POST-запроса, пишем в файл
fclose($fp);      // закрываем файл
?>

В заключение, несколько ссылок по теме: $_REQUEST, $_POST, $_GET, простые примеры.

Желаю удачи.
В.Тельнов
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

Опубликован актуализированный список вопросов к зачету

Сообщение Telnov » 28 ноя 2012, 20:52

Господа студенты, на сервисе Учебные материалы опубликован актуализированный список вопросов к зачету по курсу СВП.

Зачет (в форме защиты курсовых работ) запланирован на 25 декабря.
Вопрос допуска/недопуска к зачету будет решаться 18 декабря.
К этой дате работа должна быть выполнена на 100%, все отчетные материалы готовы.
В последнюю неделю будет возможно лишь устранение мелких технических погрешностей.

Прошу вас отнестись к этому вопросу вполне серьезно.
В.Тельнов
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

Дополнительные вопросы в ходе защиты

Сообщение Telnov » 24 дек 2012, 11:13

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

Каждому из защищающихся студентов будет задано 3 вопроса (или около того).
Качество ответов на вопросы влияет на итоговою оценку. Будьте к этому готовы.

Порядок защиты предлагаю такой:
1. Группа Фомина (4 чел.)
2. Кузнецов

Перерыв

3. Кулагин с докладом + остальные студенты, у которых будет допуск.

На текущий момент допуска однозначно нет у Балакина и Терешина.
В.Тельнов
Аватар пользователя
Telnov
Преподаватель
 
Сообщений: 324
Изображения: 5
Зарегистрирован: 05 сен 2011, 00:19
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

Re: Консультации по курсу СВП 2012

Сообщение AFomin » 24 дек 2012, 12:51

спасибо

О результатах защиты читайте здесь и здесь.
Аватар пользователя
AFomin
Студент
 
Сообщений: 4
Зарегистрирован: 07 сен 2012, 20:03
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.


Вернуться в Консультации онлайн

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0