Projekty programistyczne ======================== 2014/2015 --------- 1. Sieciowa gra MUD. Do serwera łączą się klienci GUI lub TUI. Na plus rysowanie mapy i edycja własnych pokoi, inteligentny engine fabuł. 2. Program wykonujący komendę na X komputerach równolegle, topologia płaska oraz drzewiasta. 3. Stupid TOR. Komputery komunikują się w sieci, która za każdym razem wybiera losowo trasę. 4. Dowolna usługa zgodna z RFC. 5. Usługa typu Dropbox. Klient ma listę serwerów, łączy się do jednego z nich i posyła plik. Serwer potem plik replikuje do innych serwerów. 6. Rozproszony system plików, dostep do pliku utrwala go, starsze pliki znikają (zgodnie z rozkładem wykładniczym lub inną miarą). 7. Pseudo-TCP na UDP. Zaprojektowanie własnego protokołu połączeniowego na UDP, kanały niezawodne FIFO. 8. Serwer memcached. Klient prosi o cos serwer, serwer oddaje z cache jak ma, jesli nie ma zapisuje i oddaje. 9. Edytor tekstu dla X osob w konsoli. Użytkownicy łączą sie do sesji, kazdy widzi ruchy innego i edycję. Jak w google docs. 10. System monitorowania. Klient łączy się, dodaje hosta, widzi inne hosty (czy działają). Serwer monitoruje pingiem. 11. Sieć aktywna. Pakiet przechodzi przez N węzłów, gdy reguła dopasuje sie do IP hosta, wykonywany jest kod przenoszony przez pakiet na danym hoście. * 12. Map-reduce dla wybranego problemu. 13. Steganograficzny komunikator internetowy, wiadomośc w nagłowkach zdjecia lub sprytnie w tekście. 14. Równoważenie obciążeń na X węzłach. Klient wysyła job (np. skrypt pythona, exec itd) i przydziela do serwera, który najmniej jest zajęty. Należy wymyślić miarę potencjaly serwera i jego obciążenia. oraz zwizualiwać aktywne joby. 15. Sieciowa gra zuzel dla 2 osob. 16. Rozproszony twitter. 17. Resource SQL. Klient ma listę hostów, przyjmuje kwerendy o zasoby. np. select * from hosts where ram > 2G. Serwery zwracają te które spełniają warunek. select * from hosts where process:apache:running; select * from hosts where disk("/"):free > 20048783; exec ls on hosts where ram < 1G;