Pomysł na prace inzynierska

0

Witam, stoję przed dylematem wyboru tematu pracy inzynierskiej. Póki co mam zdefiniowany stack - spring + angular, ewentualnie do tego jeszcze Hadoop+spark.
Chcialbym zrobic cos ciekawego, a nie kolejnego CMS-a czy bloga.

Ma ktos moze jakies ciekawe pomysly?

0

pomyśl sam, nikt ci nie powie co może być ciekawego dla ciebie, ewentualnie pogadaj z promotorem. Ja na inżyniera zrobiłem jeden z projektów który miałem zapisany w swoim notesie "pomysłów, które mogą wypalić" w trochę zmienionej formie :)

0
Krzywy Lew napisał(a):

Witam, stoję przed dylematem wyboru tematu pracy inzynierskiej. Póki co mam zdefiniowany stack - spring + angular, ewentualnie do tego jeszcze Hadoop+spark.
Chcialbym zrobic cos ciekawego, a nie kolejnego CMS-a czy bloga.

Ma ktos moze jakies ciekawe pomysly?

Wszystko co zrobisz będzie kolejnym czymś tam...

Czy to kolejny blog, cms, czy gra online. Jeśli sam nie masz pomysłu na coś, co Ci potrzeba, czy na coś, co Cię interesuje, to lepiej idź po linii najmniejszego oporu.

1

Póki co mam zdefiniowany stack - spring + angular, ewentualnie do tego jeszcze Hadoop+spark.
Chcialbym zrobic cos ciekawego, a nie kolejnego CMS-a czy bloga.

Tak się nie robi. To podchodzenie od d**y strony. Chcesz coś ciekawego? To zacznij od zastanowienia się, co by cię interesowało. Jeśli nie wiesz, to możesz spróbować określić choćby w przybliżeniu działkę, która by cię interesowała (Jakaś gra? Jakaś aplikacja internetowa? Coś z internet of things? Virtual reality? itp.) i na tym etapie mógłbyś faktycznie zakładać wątek z pytaniem o poradę np. "fajnie byłoby zrobić jakiś projekt związany z virtual reality, ale nie mam pomysłu, co by to mogło być konkretnie". Wtedy, po ustaleniu co to by miało być, można by pomyśleć o wyborze technologii do konkretnego projektu (innych technologii użyjesz, jak chcesz napisać grę 3D a innych jak mobilną aplikację randkową itp.)

A ty:

  • ani nie wykazałeś się choć odrobiną inicjatywy, tylko chcesz, żeby ci ktoś nakreślił od a do z co masz robić (robisz tę pracę inżynierską na studiach czy w podstawówce?)
  • dobierasz technologie na zapas, zanim w ogóle określisz, co chcesz robić. Trochę jakby ta cała praca inżynierska była tylko pretekstem, żeby przerobić tutorial z Angulara czy Hadoopa. Trochę to niepoważne.
0

Napisz CRUDa, przyzwyczaisz się do przyszłej pracy :>

0
LukeJL napisał(a):

Póki co mam zdefiniowany stack - spring + angular, ewentualnie do tego jeszcze Hadoop+spark.
Chcialbym zrobic cos ciekawego, a nie kolejnego CMS-a czy bloga.

Tak się nie robi. To podchodzenie od d**y strony. Chcesz coś ciekawego? To zacznij od zastanowienia się, co by cię interesowało. Jeśli nie wiesz, to możesz spróbować określić choćby w przybliżeniu działkę, która by cię interesowała (Jakaś gra? Jakaś aplikacja internetowa? Coś z internet of things? Virtual reality? itp.) i na tym etapie mógłbyś faktycznie zakładać wątek z pytaniem o poradę np. "fajnie byłoby zrobić jakiś projekt związany z virtual reality, ale nie mam pomysłu, co by to mogło być konkretnie". Wtedy, po ustaleniu co to by miało być, można by pomyśleć o wyborze technologii do konkretnego projektu (innych technologii użyjesz, jak chcesz napisać grę 3D a innych jak mobilną aplikację randkową itp.)

A ty:

  • ani nie wykazałeś się choć odrobiną inicjatywy, tylko chcesz, żeby ci ktoś nakreślił od a do z co masz robić (robisz tę pracę inżynierską na studiach czy w podstawówce?)
  • dobierasz technologie na zapas, zanim w ogóle określisz, co chcesz robić. Trochę jakby ta cała praca inżynierska była tylko pretekstem, żeby przerobić tutorial z Angulara czy Hadoopa. Trochę to niepoważne.

Pracuję w tych technologiach, konkretniej data warehousing/ business intelligence. Doświadczenie w tym mam, nie chce przerabiać tutoriali. Po prostu może ktoś ma jakiś ciekawy pomysł, który pomoże mi zrobic ciekawy projekt, a nie kolejny CRUD. Chciałbym zrobić ciekawa aplikacje internetowa, najlepiej mikroserwisy w chmurze :)

0

Na pewno słuszna jest rada, żeby nie dobierać stacku przed rozpoczęciem projektu, aczkolwiek to podejście jest usprawiedliwiony. To sposób uczenia i kształt rynku prowadzi do takich zachowań. Trochę wyrozumiałości. Ile każdemu wyjadaczowi zajęło do tej podstawowej prawdy, że język i biblioteki dobiera się pod projekt, a nie na odwrót? Ile języków trzeba poznać, żeby zrozumieć, że to nie jest tak, że jeden jest lepszy, a drugi gorszy tylko, że każdy ma swoje cechy, które czynią go bardziej użytecznym w konkretnym zadaniu.

To teraz do rzeczy, widzę, że celujesz w aplikację webową. Mam dla ciebie pomysł, który może pomóc wielu nerdom, a może nie tylko nerdom i jeśli zrobicie to dobrze nawet mogę być pierwszym klientem. Mianowicie chodzi o sprawę designu w sieci. Oczywiście są ładnie złożone strony, które się świetnie czyta, ale większość to jest totalna padaka. Jeden nawet się nie zastanowi nad tym, może nie zauważy, ale dla wielu (łącznie ze mną) to jest kwestia czytać albo nie czytać. Dlatego powstają wtyczki dla przeglądarek, ale jakoś rewolucji jak nie było tak nie ma (albo są kijowe, albo nie radzą sobie z niektórymi stronami). Dla swoich potrzeb mam rozwiązanie klasy duct tape:

#!/bin/sh

# download page and make it more readable

url="$1"
name="$2.html"

if [[ -z "$1" ]]; then
    echo "Usage: readabilize url [name]"
    echo
    echo "downloads site from url to READABILIZE_DIR and"
    echo "inject readabilize.css to it's code. File can"
    echo "be found with used font in extas/readabilize."
    echo "It (or your version) should be placed in READABILIZE_DIR"
    echo "If given name, file will be stored ass \$name.html"
    echo "In the end page is run in browser of choice"
fi

if [[ -z "$READABILIZE_DIR" ]] || [[ -z "$BROWSER" ]]; then
    echo "please make sure that following evironment values are set
    READABILIZE_DIR – directory where documents are downloaded to
        and where style data is stored.
    BROWSER – command used to run web browser"
    
    exit 1
fi

if [[ -z "$2" ]]; then
    name=$(echo $url | sed 's#^.*/##')
fi

head_regx='</head'
css_include='<link rel="stylesheet" type="text/css" href="readabilize.css">'

curl "$1" \
    | sed -e 's#<link[^>]+rel="stylesheet"[^>]\+>##' \
          -e "s#$head_regx#$css_include$head_regx#" \
    > "$READABILIZE_DIR/$name"

$BROWSER "$READABILIZE_DIR/$name" &

jest ono wysoce niedoskonałe, ale robi robotę: mogę poczytać stronę w idealnej kolumnie tekstu o szerokości 60 znaków, z ulubioną czcionką w jasnym kolorze na ciemnym tle, itd, a przy okazji automatycznie ściągają mi się ciekawe teksty na później. Gdyby rozwinąć koncepcję, żęby poradziło sobie to z każdą stroną, radziło sobie z obrazkami, które zwykle mają adresy relatywne (tak wiem, wget jest lepszy do tego, ale jeszcze nie chciało mi się tego poprawić). A gdyby udało wam się zrobić, żeby dało się oglądać w taki sposób dynamiczne strony to już w ogóle bajer. A to może być dopiero początek ;)

Tylko obawiam się, że w postaci aplikacji webowej byłoby to legalne. W zasadzie nie wiem na ile w ogóle jest to legalne.;p

0

@elwis, też myślałem o czymś takim, ale to raczej powinno być na poziomie rozszerzenia do przeglądarki, która dodawałaby własne style. W zasadzie jakoś nie widzę tego jako pracy inżynierskiej, bo to jest robota na nie więcej niż weekend. A być może dałoby się 15 minut rozwiązać https://www.google.pl/search?q=chrome+user+style bo coś tam Google pokazuje, jakieś wyniki.

Chyba, że nie zrozumiałem problemu, o którym piszesz / rozwiązania, które proponujesz. Czy to, co proponujesz zawiera w sobie jakąś funkcjonalność, której nie dałoby się osiągnąć za pomocą rozszerzenia przeglądarki?

1
LukeJL napisał(a):

@elwis, też myślałem o czymś takim, ale to raczej powinno być na poziomie rozszerzenia do przeglądarki, która dodawałaby własne style. W zasadzie jakoś nie widzę tego jako pracy inżynierskiej, bo to jest robota na nie więcej niż weekend. A być może dałoby się 15 minut rozwiązać https://www.google.pl/search?q=chrome+user+style bo coś tam Google pokazuje, jakieś wyniki.

Chyba, że nie zrozumiałem problemu, o którym piszesz / rozwiązania, które proponujesz. Czy to, co proponujesz zawiera w sobie jakąś funkcjonalność, której nie dałoby się osiągnąć za pomocą rozszerzenia przeglądarki?

Mam taką jedną zainstalowaną i na przykład jak użyję  jej na facebooku to nic się nie stanie, to forum też wygląda tragicznie jak się ją włączy. Są to bardzo tymczasowe rozwiązania, fajne bez dwóch zdań, ale ja widzę w tym temacie znacznie więcej. Teoretycznie mogłoby to wyewolułować do strony, która stałaby się takim pulpitem i stanowiła interfejs do wszystkich innych stron. Powysysała z fejsbuków, for i innych stron wszystko co jest tak naprawdę potrzebne i podała w prostej, konfigurowalnej formie i ewentualnie w jakiś cywilizowany sposób powyświetlała reklamy, żeby nie było, że kogoś okradamy. Wręcz pokazujemy światu, że zamiast wpychać reklamę w środek tekstu, czy zapychać nimi całą stronę można po prostu przestać na siłę pobudzać użytkownika i manipulować jego uwagą można zbudować interfejs prosty, uspokajający, który wyświetli ci w 20 minut dajmy na to wszystko co byś przeglądał przez 2 godziny prokrastynacji i dalej pisze: to wszystko dotarło do ciebie dzięki czyjejś pracy, daj mu zarobić, przejrzyj te reklamy, może coś ci się przyda? Albo jeszcze lepiej robimy zrzutę dla nich, dajmy im więcej niż google za reklamy, stać nas na to!

Bardzo możliwe, że wizja którą opisuję jest za trudna, nierealna czy po prostu nieciekawa dla Krzywego Lwa. Jednak wiem, że garść wizji na temat świata IT z punktu widzenia, gościa który siedzi w nim dłuższą chwilę może być niezwykle cenna, może pobudzić jego wyobbraźnie. Daj Boże wybije go z błądzenia myślami wokoło technologii, których się dotąd uczył i choć trochę przybliży się do stanu umysłu w którym widzi, że komputery mają setki jak nie tysiące razy większy potencjał niż ktokolwiek na ziemii przypuszcza i pewnie dotyczyłoby to już komputerów sprzed kilku–kilkunastu lat. Że jako programiści mamy realną szansę zmieniać świat i wcale nie musimy tak bardzo uginać się pod widzimisię marketingu i biznesmenów. Zwłaszcza jeśli zrozumiemy, że do ludzkiej głowy włamać się znacznie łatwiej niż do komputera z IE. :)

0

Aha, czyli w sumie masz taki pomysł jak mi chodzi od jakiegoś czasu, tylko raczej że "fajniej jakby ktoś coś takiego zrobił" (mi się nie chce). Bo wkurza mnie design na większości stron i fajnie jakby było coś, co pokazywało by jakoś ładniej internet, wyłapywało semantyczne informacje. Po prostu inny interfejs dla tych samych treści (i BTW dlatego ważny jest semantyczny HTML - żeby potem ktoś mógł zrobić narzędzie, które wyłapie samą treść, a pokaże to w innej, bardziej przejrzystej formie)

Chociaż czasem wyłączenie styli CSS pomaga - wiele stron staje się bardziej przejrzyste po wyłączeniu styli. Problem tylko, że wiele stron po wyłączeniu styli będzie się rozjeżdżać. Choć czasem można przełączyć na mobilną wersję albo wersję do druku - też często są bardziej przejrzyste (chociaż nie zawsze).

No i niektórzy robią też dedykowane rozwiązania dla konkretnych stron - np. dla strony Hacker News powstało już ileś alternatywnych interfejsów, które korzystają z ich API, ale pokazują to w inny sposób (chociaż też nie powalają).

Teoretycznie mogłoby to wyewolułować do strony, która stałaby się takim pulpitem i stanowiła interfejs do wszystkich innych stron.

Tylko, że to się nazywa wtedy "przeglądarka" :) I jest to możliwe, żeby zrobić własną przeglądarkę - chociaż raczej należałoby ją oprzeć na istniejącym silniku (można by i Electrona użyć, on ma Chromium pod spodem). Zresztą powstają od czasu do czasu nowe przeglądarki (choćby Brave, nad którym pracuje sam twórca JavaScriptu).

Z drugiej strony należałoby się zastanowić czy jest to wystarczający powód, żeby robić własną przeglądarkę, bo może można byłoby to jednak rozwiązać rozszerzeniem? Albo np. serwerem proxy? (np. serwer, który działa na localhost i który robi to, co powiedziałeś, ale który zwraca wynik w postaci HTMLa dalej. Wtedy wystarczyłoby napisać backend, który wyszukuje i transformuje treści, a potem mógłbyś ten "specjalnie spreparowany" internet przeglądać sobie w dowolnej innej przeglądarce). Tylko jeszcze ten proxy musiałby jakoś w transparentny sposób umożliwiać interakcję w drugą stronę - przesyłać dane z przeglądarki na oryginalny serwer (np. pozwalać na wysłanie formularza albo danych AJAXem).

No i też warto by się zorientować w scenie open source, bo może coś już podobnego ktoś robi, może można by się dołączyć do istniejącego projektu.

0

Nie no przeglądarka to przesada. Bardziej to proxy do mnie przemawia, albo zwykła aplikacja internetowa, wpisywałbyś w konfiguracji strony, których używasz, pewnie jakiś interfejs do zarządzana wyjątkami (takimi elementami stron, których system jeszcze nie poznał) i tyle. Choć oczywiście zrobienie tego w postaci odrębnej aplikacji też by miało swój urok, można byłoby się trochę uniezależnić od zawirowań wokoło kompatybilności HTMLa/JSa/CSSa od różnych przeglądarek.

Ja nawet i chętnie bym się tym zajął, ale chilowo mam taki niskopoziomowy projekcik związany z reverse engineeringiem. Jak go skończę będę miał lepsze narzędzia do takiego zadania.

0

Jak pracujesz już i nie przykładasz uwagi do pracy inżynierskiej to nie wysilaj się i zrób pracę inżynierską po najniższej linii oporu. Jeżeli jeszcze nie pracujesz to możesz wybrać temat pracy, który może być związany potencjalnie z Twoją przyszłą pracą. Chcesz pracować w banku zrób jako pracę inżynierską jakiś prosty system scoringowy do kredytów, chcesz pracować w firmie telekomunikacyjnej zrób jakiś prosty system bilingowy, itd. Tu masz naprawdę szerokie pole do manewru:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1