LINUX.ORG.RU

Посоветуйте тему для бакалаврской работы


0

0

Всем привет,

В моей жизни настал сей радостный момент - встал вопрос о выборе темы для бакалаврской работы. Надо придумать и реализовать что-нибудь полезное и относительно объемное. Конечно, темы может подкинуть и кафедра, но там меня ждёт страшное и беспощадное УГ. Поэтому решил придумать сам.

  • Вариант #1. Сначала в голову пришла идея сделать аналог swank/slime для Smalltalk - чтобы можно было из Emacs коннектиться к удаленному образу и вносить изменения в рабочее приложение. Режим для emacs подразумевал под собой простой classbrowser, workspace и transcript. Вот тут уже обсудили. Эта штука весьма востребована смолтокерами, но нафиг не нужна нормальнымобычным людям (отсюда на защите мне придется немного сложнее :-))
  • Вариант #2. Потом голову посетила идея сделать GTK-привязку для Magritte. Для тех, кто в танке, поясню: Magritte - это мета-дескрипторный фреймворк (опять же для Smalltalk), который позволяет описывать элементы своей модели, а потом на базе этих описаний строить представления, отчёты, формы редактирования для использования их в:
    • ...компонент-ориентированных веб-фреймворках Seaside и Iliad
    • ...Morphic - «виджетсете» для Squeak
    При наличии gtk-биндинга в идеале можно будет любое (правильно написанное) десктопное приложение быстро превратить в web-* и наоборот. Опять же, кроме смолтокеров это никому не нужно (да и большей части смолтокеров - тоже), а жаль :)
  • Вариант #3. Написать систему рассчета автобусных маршрутов для произвольной сетки дорог (читайте - для произвольного города) с учетом имеющихся маршрутов и прочих данных, с красивой визуализацией и пр. Наглядно и практически полезно, но пахнет велосипедом.
  • Вариант #4. ИАД. Хоть какие-то базовые знания есть (реализовывал НС с визуализацией обучения). Но с конкретной темой определиться сложно (в общих чертах - система сбора каких-то данных и анализа чегото-там).
  • Вариант #5. Скриптуемый tcp/udp сервер. Я уже как-то написал нескриптуемый - там можно было просто отправлять произвольные пакеты в сокет подключившемуся клиенту (принимать от, ессно) + мониторить траффик сессии. Мы активно это используем на работе для эмуляции всяких серверов и девайсин, которых у нас нет (либо есть, но через свой велосипед легче воспроизвести злополучную ситуацию). Чтобы избавиться от рутинных операций, к этому делу можно прикрутить Lua (Scheme, Smalltalk, Python). Относительно полезно

Мне наиболее интересен четверый вариант. Поэтому, знающие люди, подскажите пожалуйста какие-нибудь направления и темы по ИАД, тянущие на бакалаврскую работу, чтобы они были более-менее приземленными и востребованными.

Ну, и любые другие варианты приветствуются :)

P.S. TTX: знаю C, C++, Smalltalk, Scheme (в какой-то степени), Python (в какой-то степени).
P.P.S. Всем спасибо, извините за неровный почерк

★★★★★

Меня сейчас очень интересует асинхронный HTTP-сервер для Common Lisp, в частности, оптимально было бы форкнуть Hunchentoot и переделать его на базе iolib. В итоге - очень полезная приземлённая работа, которая тянет на бакалаврскую. Может ну его этот Smalltalk?

archimag ★★★
()
Ответ на: комментарий от archimag

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

Сколько времени уйдет на осиливание тех 20% CL, которые нужны в 80% случаев?

yoghurt ★★★★★
() автор топика
Ответ на: комментарий от yoghurt

> Сколько времени уйдет на осиливание тех 20% CL, которые нужны в 80% случаев?

совсем немного на самом деле, PCL, OnLisp и, например, HyperSpec как справочник.

korvin_ ★★★★★
()
Ответ на: комментарий от archimag

И чем же это будет полезнее и оригинальнее для задачи «HTTP сервер» типа apache и nginx? Ещё предложи в качестве работы написать Блокнот на лиспе и хаскеле с прологом. Или лисперам главное чтобы на лиспе, а новизна-польза задач илите безразлична?

anonymous
()
Ответ на: комментарий от anonymous

> И чем же это будет полезнее и оригинальнее для задачи «HTTP сервер» типа apache и nginx? Ещё предложи в качестве работы написать Блокнот на лиспе и хаскеле с прологом. Или лисперам главное чтобы на лиспе, а новизна-польза задач илите безразлична?

В бакалаврском дипломе научная новизна не нужна.

anonymous
()
Ответ на: комментарий от anonymous

> написать Блокнот на лиспе

зачем, если есть emacs?

korvin_ ★★★★★
()
Ответ на: комментарий от anonymous

В бакалаврском дипломе научная новизна не нужна.

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

bibi
()
Ответ на: комментарий от bibi

> Ну хорошо, допустим, не нужна. Ну а хотя бы применимость работы в RL как-то оценивается? Ведь действительно, зачем тратить достаточно много времени на велосипед, который выкинут на задворки истории сразу же после сдачи? Должна же быть какая то польза от работы.

Ну вот человек как раз и предложил полезный проект.

anonymous
()
Ответ на: комментарий от anonymous

Что такого оригинального даст сервер на лиспе, чего не дают серверы apache и nginx? Он что, от лиспа станет в 10 раз бóльшую нагрузку держать? Всё упирается в ОС. Поэтому, если хочется в области серверов поработать, то лучше что-нибудь для ядра сделать что улучшит его сетевую производительность.

anonymous
()
Ответ на: комментарий от anonymous

> Что такого оригинального даст сервер на лиспе, чего не дают серверы apache и nginx?

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

anonymous
()
Ответ на: комментарий от anonymous

>Бакалаврский диплом должен показать, что ты можешь сделать хоть какой-то практически полезный проект.

Вот в моё время диплом (пятилетний) требовал оригинальности. Велосипедисты посылались на йух сразу.

anonymous
()
Ответ на: комментарий от anonymous

> Вот в моё время диплом (пятилетний) требовал оригинальности. Велосипедисты посылались на йух сразу.

Да, в выпускном дипломе должна быть оригинальность, в бакалаврском - нет.

anonymous
()
Ответ на: комментарий от anonymous

Ну вот человек как раз и предложил полезный проект.

HTTP сервер на <you name>? Да не смешно. Их и так уже вагон с маленькой тележкой. В чем польза от ещё одного?

bibi
()

Попробуй для нетфлов информации придумать OLAP куб. Отечество тебя не забудет :).

Вроде основные твои устремления вписываются полностью

psv1967 ★★★★★
()
Ответ на: комментарий от anonymous

Да, в выпускном дипломе должна быть оригинальность, в бакалаврском - нет.

Т.е. это что-то на уровне лабораторной работы получается? Если да, то конечно, тут уже все, что в голову придет - все съедят. Главное, чтобы лампочками моргало.

bibi
()

# Вариант #3. Написать систему рассчета автобусных маршрутов для произвольной сетки дорог (читайте - для произвольного города) с учетом имеющихся маршрутов и прочих данных, с красивой визуализацией и пр. Наглядно и практически полезно, но пахнет велосипедом.

Велосипедом говорите? Ну-ну ;)

bibi
()

# Вариант #5. Скриптуемый tcp/udp сервер. Я уже как-то написал нескриптуемый - там можно было просто отправлять произвольные пакеты в сокет подключившемуся клиенту (принимать от, ессно) + мониторить траффик сессии. Мы активно это используем на работе для эмуляции всяких серверов и девайсин, которых у нас нет (либо есть, но через свой велосипед легче воспроизвести злополучную ситуацию). Чтобы избавиться от рутинных операций, к этому делу можно прикрутить Lua (Scheme, Smalltalk, Python). Относительно полезно


$man nc
:)

bibi
()
Ответ на: комментарий от bibi

> HTTP сервер на <you name>? Да не смешно. Их и так уже вагон с маленькой тележкой. В чем польза от ещё одного?

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

anonymous
()
Ответ на: комментарий от bibi

> Т.е. это что-то на уровне лабораторной работы получается? Если да, то конечно, тут уже все, что в голову придет - все съедят. Главное, чтобы лампочками моргало.

Что-то наподобие большого курсового проекта. Тему да, можно брать практически любую.

anonymous
()
Ответ на: комментарий от bibi

Я знаю про nc. Он для наших целей не подошёл (ман я вроде до конца тогда дочитал).

Мой юз-кейс был такой:

  • Открыть сокет
  • Подождать, когда подключится клиент
  • Принять HTTP-запрос от клиента (неважно что там)
  • Послать клиенту заранее сформированный HTTP-ответ #1 (с бинарным пейлоадом) ...
  • Тут клиент переподключается и снова шлёт HTTP-запрос (и опять не важно что там)
  • Послать клиенту заранее сформированный HTTP-ответ #2 (с другим бинарным пейлоадом)

nc я к этому что-то не осилил приспособить. Если есть способ - дайте знать :)

yoghurt ★★★★★
() автор топика
Ответ на: комментарий от bibi

Vector network analysis довольно развитая вещь в ГИСах.

psv1967 ★★★★★
()
Ответ на: комментарий от bibi

>> # Вариант #3. Написать систему рассчета автобусных маршрутов для произвольной сетки дорог (читайте - для произвольного города) с учетом имеющихся маршрутов и прочих данных, с красивой визуализацией и пр. Наглядно и практически полезно, но пахнет велосипедом.

Велосипедом говорите? Ну-ну ;)

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

yoghurt ★★★★★
() автор топика
Ответ на: комментарий от anonymous

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

Человек на этом этапе должен IMHO рожать и воплощать что-то своё, собственное. Пусть аляповатое пусть глючное - не важно. Главное, чтобы своё. Благо, ему предоставлена возможность этим заниматься считай что нашару. Поковыряться же в чужих застарелых какашках, уверен, жизнь ему предоставит ещё массу возможностей. Боюсь даже через чур.

bibi
()
Ответ на: комментарий от yoghurt

* Открыть сокет
* Подождать, когда подключится клиент
* Принять HTTP-запрос от клиента (неважно что там)
* Послать клиенту заранее сформированный HTTP-ответ #1 (с бинарным пейлоадом) ...
* Тут клиент переподключается и снова шлёт HTTP-запрос (и опять не важно что там)
* Послать клиенту заранее сформированный HTTP-ответ #2 (с другим бинарным пейлоадом)

Смешно, но на всеми так яростно любимом PHP это пара десятков строк :) Ок, на перле или питоне - это не важно и уже по вкусу.

bibi
()
Ответ на: комментарий от anonymous

У нормальных людей (не у илитарных лиспо-маньяков) программы делаются для их практической эксплуатации. Пользователю создание 12304 по счёту сервера без принципиально новых идей и возможностей ничего не даст. А на язык, на котором написан сервер, все кладут большой прибор.

anonymous
()
Ответ на: комментарий от yoghurt

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

Упрощенное - это до какой степень упрощенное? Надеюсь, не до редактора таблички в базе куда вбивается 'расписание'? :)

bibi
()
Ответ на: комментарий от bibi

Какой редактор, какая табличка?

Большая куча фактов, набор правил да целевой запрос :)

yoghurt ★★★★★
() автор топика

Posix обзяка для l4, будет кулл...

erfea ★★★★★
()
Ответ на: комментарий от anonymous

> У нормальных людей (не у илитарных лиспо-маньяков)

программы делаются для их практической эксплуатации.


А речь и идёт о практическом использовании. Сейчас hunchentoot работает по схеме поток на соединение, что не очень хорошо для масштабируемости и производительности. Большинство web-приложений на CL, использующих hunchentoot, мало зависят от архитектуры обработки запросов, особенно это касается моего фрэймворка, так что можно существенно улучшить работу основного для CL веб-сервера так, что его пользователи этого почти не заметят.

Пользователю создание 12304 по счёту сервера без принципиально

новых идей и возможностей ничего не даст



Hunchentoot не является аналогом apache или nginx, он предназначен исключительно для разработки веб-приложений на Common Lisp и выполняют функцию, которые выше названные серверы обеспечить не могут. Соответственно, польза для разработчиков web-приложений на Common Lisp будет огромной.

Поковыряться же в чужих застарелых какашках


Это сказано явно не про hunchentoot

archimag ★★★
()

Илита не нужна (правда-правда - ты очень разочаруешься, когда до реального рынка труда доберешься). Smalltalk не нужен. Lisp тем более не нужен.

Пиши что нибудь полезное на PHP, и не сношай окружающим моск своей псевдоилитарностью и зазубренным списком умных слов типа «ИАД» или «НС» (знать не желаю даже, что это за кал такой).

anonymous
()
Ответ на: комментарий от archimag

Веб-приложения на лиспе оказываются требуют специального HTTP-сервера на лиспе. Я не удивлюсь, если им ещё надо спец. браузеры на лиспе и спец. ОС на лиспе со спец маршрутизаторами сети на лиспе. Однако мир лиспа - это даже не дипломная работа бакалавра. Это докторская диссертация по медицинским наукам.

anonymous
()
Ответ на: комментарий от anonymous

> Веб-приложения на лиспе оказываются требуют специального HTTP-сервера на лиспе.

Это то как раз нормально. Веб-приложения на Java ведь требуют специального сервера на Java.

anonymous
()
Ответ на: комментарий от archimag

Это сказано явно не про hunchentoot

Тогда зачем его форкать? AFAIU автор говорит, что версия 1.0.0 в процессе разработки. Было бы логичнее присоединиться к нему и внести свою лепту.

PS: Впрочем, мне почему то кажется, что доказать обоснованность и нужность этой работы топикастеру будет ни чуть не проще, чем п.1 или п.2 :)

bibi
()
Ответ на: комментарий от anonymous

>«ИАД» или «НС» (знать не желаю даже, что это за кал такой).

Интеллектуальный Анализ Данных

Нейронная Сеть

ты очень разочаруешься, когда до реального рынка труда доберешься

Полтора года работаю плюсатым састейнером.

yoghurt ★★★★★
() автор топика
Ответ на: комментарий от yoghurt

> (список лохов, которые это купили)

Ни одного лоха из СНГ. Так что учи 1С или PHP, и не рыпайся. «Илита» не нужна.

anonymous
()
Ответ на: комментарий от yoghurt

> Полтора года работаю плюсатым састейнером.

Я твоего рунглиша брайтонского не понимаю. Но подозреваю, что твоя работа никак не связана с Smalltalk или Lisp.

anonymous
()
Ответ на: комментарий от yoghurt

> Заморские-то куда вкуснее :)

И кому ты там нужен? Даже на мясо не возьмут, карантинные нормы не пройдешь.

anonymous
()
Ответ на: комментарий от archimag

Думаю, человеку лучше сделать что-то свое, чем усовершенствовать чужое. Да и лучшую оценку поставят ему.

dave ★★★★★
()
Ответ на: комментарий от yoghurt

http://www.cmsbox.com/en/cms

Сколько их этих CMS-ов плавает в Сети? Сотни? Тысячи?

http://www.cmsbox.com/en/cms/prices (Ъ - 990 евро на базовый комплект)

Since the formation of the company in spring 2007 we have realized over 100 cmsbox-websites with our partners. Among these projects, you can find unique and creative productions as well as clearly arranged company or academic websites.

990*100=99000/2 ~50k EUR/year. Умножим для порядку на 2 ~100kEUR/year

Прямо скажем не густо для конторы :)

http://www.cmsbox.com/en/cms/referenzen-webseite (список лохов, которые это купили)

Если честно, среди партнеров ни увидел ни одного знакомого названия чтобы было на слуху :)

PS: Хотя охотно верю, что вещь работает юзера счастливы и все в общем и целом хорошо.

bibi
()
Ответ на: комментарий от anonymous

Спасибо

>Даже на мясо не возьмут, карантинные нормы не пройдешь.

Классный оборот, возьму на заметку :)

yoghurt ★★★★★
() автор топика
Ответ на: комментарий от yoghurt

http://euroskate2011.com как вариант

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

bibi
()
Ответ на: комментарий от yoghurt

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

anonymous
()
Ответ на: комментарий от bibi

> Тогда зачем его форкать? AFAIU автор говорит, что версия 1.0.0 в

процессе разработки. Было бы логичнее присоединиться к нему и внести

свою лепту.



Текущая версия 1.1, основной поддерживаемой реализацией является коммерческий LispWorks, для которого используется родное API для работы с сокетами, для остальных реализаций используется библиотека usocket. Не знаю ничего про LispWorks, но usocket не поддерживает асинхронный ввод/вывод. Поддержка асинхронного ввода/вывода сейчас есть в iolib, которую я и предлагаю использовать. Насколько я понимаю, авторы задумаются об асинхронного вводе/выводе не раньше, чем его поддержка появится в LispWorks.

Поэтому и надо форкать и при этом делать упор не на LispWorks, а на свободные реализации: SBCL, Clozure CL и т.п.

archimag ★★★
()
Ответ на: комментарий от yoghurt

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

anonymous
()
Ответ на: комментарий от yoghurt

Дык вот ведь впарили же, обогнав пыхпыхкодеров и срубив бабок :)

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

bibi
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.