LINUX.ORG.RU
ФорумTalks

[студентота][программинг] Выбор темы диплома

 


0

3

Лор, помоги определиться с темой диплома.

Специальность - «Компьютерные системы и сети», однако я работаю программистом и хочу что-нибудь напрогать из софта (на кафедре не против).

Из своих навыков: Java (Hibernate, Guice, Jersey, java.util.concurrency, Hadoop, Cascading), Ruby (мелочи для веба на Sinatra и небольшие скриптики для автоматизации рутины), Python (совсем чуть-чуть писал на Tornado), некоторые приблуды вроде memcached, немного знаком со всякой эзотерикой (haskell, scheme, clojure)

Чем интересуюсь: параллельное и распределенное программирование, серверные веб технологии.

Придлагайте темы. Хотел вот было написать распределенную субд, но понял, что не потяну, да и riak не переплюнуть все равно.

★★★★★

Напиши еще 1 плеер сам знаешь для какой ОС

roman77 ★★★★★
()
Ответ на: гугель лето кода от init_6

>гугель лето кода

он как бы прямо намекает тебе… поиспользуй свой шанс


календарь как бы прямо намекает, что лето уже кончилось

nu11 ★★★★★
()

Специалисты с такими вопросами не нужны. Сделай вдоль :}

Andru ★★★★
()

>я работаю программистом

всякой эзотерикой (haskell, scheme, clojure)


Мда. Ещё один дипломированый быдлокодер на подходе.

kranky ★★★★★
()

эзотерикой (haskell, scheme, clojure)

эзотерикой

haskell, scheme, clojure

Пожалуйста, скажи, что это такая грубая опечатка.

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

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

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

Это у меня чувство юмора такое. А языки вроде Java я называю эмпирическими =)

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

Демотивирует, что Cascading и так чертовски хорош, это все равно, что садиться и пытаться сделать свой gcc

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

Иногда, если хорошие отношения с преподавателем, можно предложить свою тему, и если она окажется годной, её утвердят. Ну во всяком случае у нас так (БГУИР)

koirn
()

Рекомендую выбрать тему, связанную с декларативным программированием. Расширяет кругозор и позволяет по-новому смотреть на вещи, даже если непосредственно декларативные языки не применять. Выводит сознание на более высокий уровень. :)

Relan ★★★★★
()

Тема: «Внедрения линуксе в серверную вебтехнологию посредством распределенного программирования на Java, Ruby и Python.»

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

а че это последнее лето было? <посмотрел на календарь> так вроде еще не 2012 г.

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

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

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

Хорошая, годная тулза. Только это не релевантно моей специализации. А ради «изучить что-то новое» мне не охота браца. Надоело вечно учиться, хочу уже что-то забабахать.

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

> Специальность - «Компьютерные системы и сети», однако я работаю программистом и хочу что-нибудь напрогать из софта (на кафедре не против).

Повезло, что на кафедре не против. Я в этом году защитил бакалавра по этой специальности, так хоть и на заочке, но все-равно требовали именно железно-программную тему делать. Типа «Разработка компьютерной системы...» и дальше что придумаешь, лишь бы не слишком просто было.

А вообще ты, похоже, немного ошибся выбором специальности обучения, раз хочешь быть программистом :)

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

но все-равно требовали именно железно-программную тему делать

Эх, были бы вы моим дипломником, я бы вам 60 тем придумал (как раз по «железно-программной» части) :)

Eddy_Em ☆☆☆☆☆
()

Сделай веб-сервер с нанопотоками на ucontext (сотни тысяч переключений контекстов в секунду). Занимательно и апликабельно. Позволяет скрестить эффективность event-driven подхода с простотой програмирования модели 1:1.

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

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

По всей видимости, вы из курса декларативного программирования ничего не поняли. :|

Relan ★★★★★
()

Сделай JUD с хранением в Zodb и админством BlueBream. Я тебе рубликов 150 Яндекс денгов дам.

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

А вообще ты, похоже, немного ошибся выбором специальности обучения, раз хочешь быть программистом :)

Да, ошибся. Ни то, что бы я хочу стать программистом. Я уже 4-й год и так работаю и притом на достаточно сложных проектах. Но хочется совместить приятное с полезным и делать _свой_ проект, а не участвовать в чужом.

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

Хм... Я потому спрашивал, что у нас в универе точно такое название специальности есть. А по знаниям вы очевидно не в Мухосранске учитесь. Москва, Питер, Киев. Ну еще может быть Харьков.

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

По всей видимости, вы из курса декларативного программирования ничего не поняли. :|

Толсто. Но не хочу затевать очередной ФП-срачь. Повторю: наелся я уже всего этого.

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

Система бекапа или интерфейс к существующей.
--------------------------------------------
Отличие от остальных:
«Путешествия» назад во времени, подобные Apple Time Machine или модифицированному Nautilus'у из Solaris'а. Главное не красота (Apple), а удобство.
Надо чтобы это было абсолютно прозрачно для всех программ.
Я предполагаю, что это можно реализовать с использованием FUSE (или написать свой драйвер для ядра).
Суть в следующем: FUSE драйвер (или драйвер ядра) определяет PID процесса который получает доступ к ФС и формирует содержимое каталога, отдает нужные файлы и т.п.

Поясню:
Главная идея в прозрачности для всех программ. Есть разные системы для Linux (и не только), но они не прозрачны. Например, есть реализации в виде специальных файловых менеджеров, но это плохо, т.к. плохая интеграция с окружением (можно открыть документ из бекапа через специальный файловый менеджер, но это не получится сделать из диалога открытия файлов). Другой пример: модифицированный Nautilus в солярке, проблемы те же что и в предыдущем случае, кроме того там еще и пути в строке адреса получаются кривыми (точно не помню, но что-то вроде /home/pupkin/Desktop/.backup/2009-2-4/ вместо просто /home/pupkin/Desktop/).

По моему это должно быть незаметно. Например у нас настроена система бекапа для каталога /home/pupkin/Desktop. Вне зависимости от того, обращается пользователь к текущему состоянию каталога или к бекапу путь должен оставаться таким же, т.е. /home/pupkin/Desktop.

За счет чего это достигается? Система делится на пользовательский интерфейс, драйвер файловой системы (не важно FUSE или нет) и систему бекапа. Система бекапа делает бекапы :). В данном случае не важно как, можно взять любую готовую систему или написать свою, это может быть отдельный сервис или снимки файловой системы. Пользовательский интерфейс может быть интегрирован в файловый менеджер, диалоги выбора файлов (для начала для одного тулкита) и представлять собой ползунок «прошлое<---->настоящее» или может быть отдельным приложением, типа того как регулируется звук в отдельных приложениях. Драйвер файловой системы получает данные от пользовательского интерфейса, определяет какой процесс обращается к файловой системе и выдает нужное содержимое.

Пример:
Пользователь открыл /home/pupkin/Desktop в файловом менеджере. Для данного каталога настроен бекап. У пользователя есть ползунок «прошлое-настоящее» (не важно как он реализован). Пользователю надо посмотреть бекап за прошлый год, он двигает ползунок или вводит дату. Часть системы, которая ответственна за пользовательский интерфейс получает pid процесса(ов) для которого надо изменить содержимое каталога, отправляет сообщение драйверу ФС (например через D-Bus). Теперь драйвер знает, что данному процессу надо выдавать другое содержимое, не то что сейчас, а то что было год назад. Чтобы процесс узнал об изменениях генерируется событие inotify. Когда процесс читает содержимое каталога или читает файл то драйвер файловой системы выдает нужное содержимое из прошлого. Конечно надо учесть много всяких моментов, например нельзя «перемещаться во времени» для этого процесса, если этот процесс открыл какие-то файлы, а то будет х.з. чего.
Также «ползунок» может быть интегрирован в диалог открытия файлов. При открытии файла можно будет «вернуться в прошлое"и взять фал из бекапа.
При этом:
- каждый процесс может видеть свое состояние каталога
- пути остаются нормальными, типа /home/pupkin/Desktop
- это прозрачно для приложений, т.е. возможно надо будет допилить диалоги, но не больше....

Конечно надо еще все продумать.... FUSE модули можно писать на питоне. Можно сделать прототип системы.

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

[O_o]

Да батенька , не кисло вы накатали Т.З.

интерфейс к существующей.
ТС, сделай то что ls-h написал для NILFS.
Реально полезная тема.

KosmiK ★★
()
Ответ на: [O_o] от KosmiK

Зато реально полезная вещь будет, а не так просто чтобы сдать...

ls-h ★★★★★
()
Ответ на: [O_o] от KosmiK

Не, лучше для btrfs - более актуально.

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