mboost-dp1

Java: OCR - Opfølgning.


Gå til bund
Gravatar #1 - tazimn
28. jun. 2010 19:42
Hej Newz'ere..

Jeg har været borte fra disse gemakker i en rum tid nu, da jeg har haft snuden begravet i skoleopgaver.

Jeg har i dag været til eksamen i vores Synopsis, hvor jeg skulle forsvare mit valg af synopsis, samt demonstrere hvordan det virkede.

Da jeg kan huske at der var et par stykker herinde som var interesserede i problemstillingen, poster jeg derfor dette link til rapporten jeg afleverede, samt følgende link til et program som demonstrerer udbyttet.

Den kan have lidt problemer med 5-taller, hvis de afviger alt for meget for dem som er gengivet i rapporten.

*.rar-filen indeholder en *.jar fil samt 2 filer: 1 træningsæt, så i kan se hvordan det er lavet, samt et objekt af et neuralt netværk, som applikationen henter ind ved initialisering.

I får ikke programmet, som kører den Genetiske Algoritme og finder frem til et godt Neuralt netværk, da GUI'en både er grim og uoverskuelig.

/Kenn
Gravatar #2 - markjensen
28. jun. 2010 20:25
Nu har jeg kun lige skimmet den igennem, men hvorfor har du taget screenshot af kildekode? Der må da være en bedre måde i Word
Gravatar #3 - tazimn
28. jun. 2010 20:35
Det har jeg gjort fordi det var en nem og hurtigt måde at vise kildekoden, så der stadig var lidt farve.. Plus det faktum at hvis jeg ikke havde gjort det, havde jeg overskredet mine 22000 tegn med endnu mere.. Rapporten er lige nu på 26000...
Gravatar #4 - markjensen
28. jun. 2010 20:38
Okay :) fair nok. Kildekode plejer da ellers ikke tælle med i den slags. Kan man forstå rapporten uden at vide noget om emnet på forhånd? I så fald vil jeg læse den lidt senere.
Gravatar #5 - tazimn
28. jun. 2010 20:40
Det håber jeg er muligt.
Det er i hvert fald det der er meningen.
Vi kunne ikke vide om censoren, havde kendskab til Neurale Netværk eller ej.
Gravatar #6 - Windcape
28. jun. 2010 20:55
#5

Du skal jo bedømmes på standard-krav, så det handler ikke om dit emne, men om programmeringen du har brugt.

Derudover hvorfor brugte du ikke threading til din GUI? :P
Gravatar #7 - tazimn
28. jun. 2010 21:02
En synopsis handler netop om, hvorvidt vi er i stand til at tilegne os ny viden, på egen hånd. Af samme årsag, skulle vi ikke aflevere kildekoden sammen med rapporten, men udelukkende kunne vise vores program til eksamen.

Og vi bliver nødt til at forklare grundpriciperne bag vores valgte emne, for at censor skal kunne have en chance for at sætte sig ordenligt ind i det..

Hvad ville du have at jeg havde thread'et ud..?

Kan ikke se hvad der ville give mening at threade på i det jeg har linket til Jer.

I den GUI, jeg lavede til at monitere forløbet og tilstanden i den Genetiske Algoritme, smed jeg selvfølgelig den Genetiske Algoritme ud i en tråde for sig selv.

Men "inlighten-me".. Hvad ville du have trådet..?
Gravatar #8 - Windcape
28. jun. 2010 21:04
#7

Din kode of course. Du risikere UI lockup i de kode-eksempler der er i din rapport.

Har i slet ikke lært om UI threading overhovedet?
Gravatar #9 - tazimn
28. jun. 2010 21:06
Du har ikke en eneste linie kode fra min GUI i denne rapport..

Hver gerne lidt mere explicit..
Gravatar #10 - Windcape
28. jun. 2010 21:11
#9

Side 13.

Vil anbefale at læse http://java.sun.com/docs/books/tutorial/uiswing/co...

Derudover så burde du også have fuldt standard coding-conventions, og exposed dine ui elementer med getters/setters, eller bedre, custom setter metoder.

Du skal ikke kun vurderes ud fra om du har kodet noget sejt, kvalitet af hvad du har kodet er ligeså vigtig i et fag der handler om programmering.

Og hvis censor ikke har kendskab til neurale netværk, skal du forventet at blive slagtet på detaljerne omkring alt andet ;)
Gravatar #11 - tazimn
28. jun. 2010 21:25
#10

Jeg kan følge dig så langt at det strider mod konventionerne.

Men for mig er det ligemeget om jeg kalder en statisk metode eller om jeg manipulerer en statisk variabel.

Men som sagt kan jeg godt følge dig, i lige præcis det.

Men vi er enige om, at denne kode IKKE giver GUI-lockups!

Men hey.. hvis det er det værste du kan finde, så er jeg godt tilfreds, når man tænker på hvilek krakiler du er, overfor hvad andre mennesker laver.. ;-)

BTW, så handler "faget" (eksamen) ikke om programmering. Men om synopsen som helhed. Jeg kunne have valgt at skrive om FDD eller en anden agil metode, for den sags skyld.
Gravatar #12 - arne_v
28. jun. 2010 21:28
Windcape (6) skrev:
Derudover hvorfor brugte du ikke threading til din GUI?


Windcape (8) skrev:
#7

Din kode of course. Du risikere UI lockup i de kode-eksempler der er i din rapport.

Har i slet ikke lært om UI threading overhovedet?


Windcape (10) skrev:
Side 13.


Forsøger du at forklare ham at han ved opdatering af GUI skulle have brugt EventQueue.invokeLater for at få udført opdateringerne i event tråden fremfor beregnings tråden?
Gravatar #13 - Windcape
28. jun. 2010 21:29
#12

Ja.
Gravatar #14 - Windcape
28. jun. 2010 21:33
tazimn (11) skrev:
BTW, så handler "faget" (eksamen) ikke om programmering. Men om synopsen som helhed. Jeg kunne have valgt at skrive om FDD eller en anden agil metode, for den sags skyld.
Stk. 4. Valgdelen, der bygger på den obligatoriske del, består af:
1) Specialeforløb, der skal give den studerende mulighed for at kvalificere studie- og erhvervskompetencen gennem specialisering og perspektivering af emner, der bredt relaterer sig til IT-området. Specialeforløbet skal have et omfang svarende til 20 ECTS-point. Institutionen tilrettelægger forløbet ved at fastsætte og udbyde et antal forløb inden for uddannelsens overordnede formål.


Og de overordnede mål:

Formålet med erhvervsakademiuddannelsen inden for informationsteknologi er at kvalificere den uddannede til selvstændigt at kunne varetage arbejde med at analysere, planlægge og gennemføre løsninger, der vedrører nyudvikling, videreudvikling og integration af IT-systemer i private og offentlige virksomheder nationalt og internationalt.


Det varierer jo i praktis fra skole til skole, men just sayin', det er de krav du skal op i mod. Så du risikere altså at censor ar krakiler på alt andet end emnet i din rapport.

De oplevede vores årgang ihvertfald i foråret.
Gravatar #15 - D_V
28. jun. 2010 22:50
Utrolig spændende læsning, selvom jeg nok kun fattede halvdelen af de grundlæggende principper bag neurale netværk.

Er lidt nysgerrig efter hvad du får i karaktere for dette, samt om det er noget du har planer om at gå videre med efter uddanelsen.
Gravatar #16 - tazimn
29. jun. 2010 05:30
#12

Tak for den mere konkrete forklaring, Arne.
Dog er jeg stadig lidt i tvivl om hvordan det skulle have været implementeret..?

EventQueue.invokeLater, skal kaldes med et Runnable objekt..
Hvor dælen skulle dette implementeres? I GUI eller i algoritmen (som I har set koden til.)

Jeg har kun ét Runnable objekt, og det er algoritmen.

Jeg skal være ærlig at sige at vi aldrig har brugt EventQueue'en eller blevet fortalt hvordan vi skulle bruge den.

#15.

Det var en samlet karakter, hvor vi, ud over synopsen, også skulle eksamineres i ét af vores valgfag. Jeg trak RealtidsProgrammering.

Samlet karakter var 10.

Jeg har bestemt overvejet det, men det kræver at vores hovedopgave, på en eller anden måde kan få gavn af det.. Ellers bliver det noget fritidssysleri..
Gravatar #17 - mazing
29. jun. 2010 10:42
Windcape (14) skrev:
Så du risikere altså at censor ar krakiler på alt andet end emnet i din rapport.

De oplevede vores årgang ihvertfald i foråret.

Krakiler på kodningen? Kan da huske til mit afsluttende projekt at vi kunne se at lærer eller censor aldrig havde kørt vores program og tilsyneladende heller aldrig havet kigget nogen steder i koden.
Gravatar #18 - Windcape
29. jun. 2010 10:56
#17

Det afhænger af censor, vi havde en meget teknisk censor til at bedømme specialet, hvilket var meget rart da rapporten var dårlig.

Men det er hans 4. semester projekt han snakker om, ikke specialet :)
Gravatar #19 - arne_v
29. jun. 2010 13:11
tazimn (16) skrev:
#12

Tak for den mere konkrete forklaring, Arne.
Dog er jeg stadig lidt i tvivl om hvordan det skulle have været implementeret..?

EventQueue.invokeLater, skal kaldes med et Runnable objekt..
Hvor dælen skulle dette implementeres? I GUI eller i algoritmen (som I har set koden til.)

Jeg har kun ét Runnable objekt, og det er algoritmen.

Jeg skal være ærlig at sige at vi aldrig har brugt EventQueue'en eller blevet fortalt hvordan vi skulle bruge den.


Det er ret simpelt.


minlabel.setText("foobar");


skal laves som:


EventQueue.invokeLater(new Runnable() {
public void run() {
minlabel.setText("foobar");
}
});


Gravatar #20 - tazimn
29. jun. 2010 13:30
#19
Tak for info.

Ja.. det er egentlig simpelt.

Dvs at der bliver oprettet seperate tråde for hver gang der bliver skrevet til GUI..?

Eller rettere.. bliver lagt et Runnable objekt på køen..

Kald mig bare dum, men jeg kan stadig ikke se, hvad for nogle lockups som vi her undgår.. :-)
Gravatar #21 - arne_v
29. jun. 2010 13:32
#20

Der startes ikke en separat tråd.

Men den run bliver kørt i Swing tråden ikke i din tråd.
Gravatar #22 - arne_v
29. jun. 2010 13:34
#20

I det her tilfælde tror jeg ikke at der er risiko for lockup, men der er en vis risiko for samtidigheds problemer hvis både din tråd og Swing tråden opdaterer de samme GUI elementer samtidigt.
Gravatar #23 - tazimn
29. jun. 2010 16:41
#22

Ja, okay... det skulle lige være det..

Tak for informationen omkring EventQueue..

Rart at du tager dig tid til at uddybe..
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login