abonnement Unibet Coolblue
pi_181733078


Welkom in het Algemene Dev Topic! *O*
Gezien er veel losse topics liepen over programmeren hebben we besloten verder te gaan met één generiek topic. Je kunt hier gezellig ouwehoeren over projecten waar je mee bezig bent, het gereedschap dat je hiervoor gebruikt, vragen stellen, en ga zo maar door!

De vaste users in dit topic beschikken over een enorme dosis kennis en kunnen je, wanneer je ergens niet uit komt, met van alles helpen. Probeer alleen wel eerst zelf een oplossing te vinden voor je probleem, want zo leer je natuurlijk het meest!

Daarnaast er zijn meer dan genoeg meetups.com te vinden waar je kan leren programmeren. Zoveel doelen / mensen , vertel je project! Deel je smaad en problemen. Doel is om constructief te wezen en naar oplossingen te zoeken.

DevFreak Tutorials (te vinden bij de sticky topics van DIG):
DIG / [tutorial] Hoe configureer je een nieuwe Linux-server?

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
*O* Wees welkom! *O*

[ Bericht 7% gewijzigd door cablegunmaster op 06-09-2018 19:45:31 ]
Redacted
  donderdag 6 september 2018 @ 19:50:28 #2
370352 I
Eye for an I
pi_181733364
quote:
0s.gif Op donderdag 6 september 2018 19:33 schreef cablegunmaster het volgende:

[..]

Goed werk. Ga je bootstrap er bij pakken of zelf iets maken?

Kijk eens hiernaar voor je Tables, dit werkt ideaal, met JSON je tables vullen in plaats van HTML elke keer in te tikken voor "standaard" tables.

http://bootstrap-table.wenzhixin.net.cn/
Het originele design zit vol bootstrap, dus denk wel dat ik dat er in ga houden. :Y Dat ziet er idd wel nice uit! Was sowieso idd wel van plan om de table-data om te gooien naar json inderdaad. Maakt het een stuk dynamischer en sneller. Ik heb 'm gebookmarked. :P
pi_181734031
Het is weer een reeks :)
  donderdag 6 september 2018 @ 20:19:02 #4
370352 I
Eye for an I
pi_181734069
quote:
0s.gif Op donderdag 6 september 2018 20:17 schreef Vanillekwark het volgende:
Het is weer een reeks :)
14.gif Thanks!
pi_181734112
quote:
0s.gif Op donderdag 6 september 2018 20:17 schreef Vanillekwark het volgende:
Het is weer een reeks :)
Thanks vk

Klopt het dat die wel uit mijn myat is daardoor? Nou ja tot deze reactie zeg maar.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181734143
quote:
1s.gif Op donderdag 6 september 2018 20:21 schreef FlippingCoin het volgende:

[..]

Thanks vk

Klopt het dat die wel uit mijn myat is daardoor? Nou ja tot deze reactie zeg maar.
Ik zou het je niet kunnen zeggen :@ klinkt wel vreemd ja.
pi_181734161
quote:
0s.gif Op donderdag 6 september 2018 20:22 schreef Vanillekwark het volgende:

[..]

Ik zou het je niet kunnen zeggen :@ klinkt wel vreemd ja.
Oké hoop dat de rest hem ook weer kan vinden. :P


Anders lokquote ik ze wel een keer.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181734175
quote:
1s.gif Op donderdag 6 september 2018 20:23 schreef FlippingCoin het volgende:

[..]

Oké hoop dat de rest hem ook weer kan vinden. :P

Anders lokquote ik ze wel een keer.
gewoon doen ^O^
pi_181738233
Onze helden:
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Hier weer verder. O+
Redacted
pi_181738920
quote:
10s.gif Op donderdag 6 september 2018 22:33 schreef cablegunmaster het volgende:
Onze helden:
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Hier weer verder. O+
Niiiiice thanks. :D
_O_
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181738960
Zal morgen even posten waar ik mee bezig was met screenshots. :P
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181739047
quote:
10s.gif Op donderdag 6 september 2018 22:33 schreef cablegunmaster het volgende:
Onze helden:
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Hier weer verder. O+
toppertje ^O^
pi_181739753
:P Nou zal ik dan maar wat posten anders is cablegun ook voor niets druk geweest.

Ik ben op dit moment op het werk bezig applicatie tussen onze voorraad (groothandel) en een kassasysteem dat door een aanzienlijk deel van onze klanten gebruikt wordt. Zodat wij altijd weten wat de klant nog op voorraad heeft met als vervolg stap dat wij hun voorraad beheer gaan overnemen. Ze hebben zelf geen publieke api maar hun hele website is rest :)

Daarnaast ben ik bezig met een systeem dat geautomatiseerd producten en printbestanden (pdfjes, spotkleuren, maskers) kan generen op basis van png afbeeldingen en automatisch optimale printopdrachten maakt o.b.v. openstaande orders en minimale voorraad instellingen.
pi_181743618
quote:
10s.gif Op donderdag 6 september 2018 22:33 schreef cablegunmaster het volgende:
Onze helden:
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Hier weer verder. O+
:W
  vrijdag 7 september 2018 @ 13:34:35 #15
475897 ssjgoku
Ultra Instinct!
pi_181749563
quote:
10s.gif Op donderdag 6 september 2018 22:33 schreef cablegunmaster het volgende:
Onze helden:
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Hier weer verder. O+
Ik heb vakantie :D
Laatste dag :( Na het weekend weer beginnen, maar even kijken waaraan. Had alles netjes afgerond.
It is not a sin to fight for the right cause. There are those who words alone will not reach.
pi_181754406
Oké ik heb voor mijn app de tabs en menu gemaakt op een herbruikbare manier.

P.s. let niet op de buttons die ben ik aan het tweaken nu.





klik om te spelen

Hoe het werkt voor de tabs is dat het tabcomponent kijkt op welke route die zit (welke url er is bezocht) en a.d.h.v. uit de lijst hierboven kijkt of en welke tabs er op die pagina zijn, bij login zijn er geen tabs dus is het weg, en bij list staan er drie tabs.

Verder bezig met de desktopversie, zorgen dat het er enigszins netjes uitziet op grotere schermen.

Oh ja en de links in het menu worden weergeven a.d.h.v. de state, ingelogd, uitgelogd, premium, mobile et cetera.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181754498
quote:
19s.gif Op donderdag 6 september 2018 23:28 schreef TwenteFC het volgende:
:P Nou zal ik dan maar wat posten anders is cablegun ook voor niets druk geweest.

Ik ben op dit moment op het werk bezig applicatie tussen onze voorraad (groothandel) en een kassasysteem dat door een aanzienlijk deel van onze klanten gebruikt wordt. Zodat wij altijd weten wat de klant nog op voorraad heeft met als vervolg stap dat wij hun voorraad beheer gaan overnemen. Ze hebben zelf geen publieke api maar hun hele website is rest :)

Daarnaast ben ik bezig met een systeem dat geautomatiseerd producten en printbestanden (pdfjes, spotkleuren, maskers) kan generen op basis van png afbeeldingen en automatisch optimale printopdrachten maakt o.b.v. openstaande orders en minimale voorraad instellingen.
Gaaf, hoe werkt dat tweede systeem waar je mee bezig bent dat snap ik niet helemaal. :o

Klinkt wel vet. :P

కైండ్ గౌరవంతో Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181756949
Kan nergens in de OP vinden over welke talen dit topic/deze reeks gaat. Betekent dit automatisch alle talen?
ウプピエ 八十三 << u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_181756985
quote:
0s.gif Op vrijdag 7 september 2018 19:16 schreef uppie83 het volgende:
Kan nergens in de OP vinden over welke talen dit topic/deze reeks gaat. Betekent dit automatisch alle talen?
Zeker.
Alle talen en technieken zijn meer dan welkom, kleine hobby projecten, grote projecten, wordpress gewoon alles. :)

[ Bericht 0% gewijzigd door FlippingCoin op 07-09-2018 19:26:04 ]
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181757315
Ik ben bezig met een online cursus Java (betaald nog wel :{ ). Aan het einde van les 1 staat er dat ik de JDK moet installeren, dus dat heb ik netjes gedaan.

Vervolgens krijg ik 2 bestanden W1.java en Tijd.java. Deze heb ik gedownload en in mijn Java map/directory gezet. Uiteraard werkt compilen daar al niet standaard (wordt allemaal niet uitgelegd), dus ik heb via internet gevonden dat ik een omgevingsvariabele in windows moet toevoegen. Voila, het simpele "hello world" krijg ik netjes vanuit mijn Java map/directory gecompiled en gerund. Echter toen ik van deze 2 bestanden W1.java probeerde te compilen kreeg ik de volgende melding:

"W1.java:20: error: cannot find symbol
private Tijd tijd;

symbol: class Tijd
location: class Paneel
W1.java:27: error: cannot find symbol
tijd = new Tijd(22,55,43);

symbol: class Tijd
location: class Paneel
2 errors"

Hier snap ik niets van :P Heb deze vraag ook al gemaild naar de website, maar na 2 weken nog steeds geen antwoord :( Nu hoop ik hier antwoord te krijgen zodat ik in mijn laatste 2 weken nog mijn cursus af kan maken.
ウプピエ 八十三 << u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_181757535
quote:
0s.gif Op vrijdag 7 september 2018 19:36 schreef uppie83 het volgende:
Ik ben bezig met een online cursus Java (betaald nog wel :{ ). Aan het einde van les 1 staat er dat ik de JDK moet installeren, dus dat heb ik netjes gedaan.

Vervolgens krijg ik 2 bestanden W1.java en Tijd.java. Deze heb ik gedownload en in mijn Java map/directory gezet. Uiteraard werkt compilen daar al niet standaard (wordt allemaal niet uitgelegd), dus ik heb via internet gevonden dat ik een omgevingsvariabele in windows moet toevoegen. Voila, het simpele "hello world" krijg ik netjes vanuit mijn Java map/directory gecompiled en gerund. Echter toen ik van deze 2 bestanden W1.java probeerde te compilen kreeg ik de volgende melding:

"W1.java:20: error: cannot find symbol
private Tijd tijd;

symbol: class Tijd
location: class Paneel
W1.java:27: error: cannot find symbol
tijd = new Tijd(22,55,43);

symbol: class Tijd
location: class Paneel
2 errors"

Hier snap ik niets van :P Heb deze vraag ook al gemaild naar de website, maar na 2 weken nog steeds geen antwoord :( Nu hoop ik hier antwoord te krijgen zodat ik in mijn laatste 2 weken nog mijn cursus af kan maken.
Hmmm even denken hoe dat ook alweer zat, je kan ook een IDE gebruiken trouwens. Maar ik ga even kijken als ik klaar ben met eten.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181757630
quote:
0s.gif Op vrijdag 7 september 2018 19:36 schreef uppie83 het volgende:
Ik ben bezig met een online cursus Java (betaald nog wel :{ ). Aan het einde van les 1 staat er dat ik de JDK moet installeren, dus dat heb ik netjes gedaan.

Vervolgens krijg ik 2 bestanden W1.java en Tijd.java. Deze heb ik gedownload en in mijn Java map/directory gezet. Uiteraard werkt compilen daar al niet standaard (wordt allemaal niet uitgelegd), dus ik heb via internet gevonden dat ik een omgevingsvariabele in windows moet toevoegen. Voila, het simpele "hello world" krijg ik netjes vanuit mijn Java map/directory gecompiled en gerund. Echter toen ik van deze 2 bestanden W1.java probeerde te compilen kreeg ik de volgende melding:

"W1.java:20: error: cannot find symbol
private Tijd tijd;

symbol: class Tijd
location: class Paneel
W1.java:27: error: cannot find symbol
tijd = new Tijd(22,55,43);

symbol: class Tijd
location: class Paneel
2 errors"

Hier snap ik niets van :P Heb deze vraag ook al gemaild naar de website, maar na 2 weken nog steeds geen antwoord :( Nu hoop ik hier antwoord te krijgen zodat ik in mijn laatste 2 weken nog mijn cursus af kan maken.
Oké kan je proberen:
1javac file1.java file2.java

?

Het probleem was iig dat de compiler de klasse Tijd niet kon vinden omdat je de compiler maar een bestand aangeeft maar dat wist je misschien al.

Concerne kalite Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181757756
Ja dat werkt inderdaad. Het compilen is gelukt!

Maar nu de volgende :@
Nu ik java W1 doe om de boel te draaien krijg ik het volgende:

"Error: Could not find or load main class W1
Caused by: java.lang.NoClassDefFoudError: w1/W1 (wrong name: W1)
ウプピエ 八十三 << u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_181757843
quote:
0s.gif Op vrijdag 7 september 2018 19:58 schreef uppie83 het volgende:
Ja dat werkt inderdaad. Het compilen is gelukt!

Maar nu de volgende :@
Nu ik java W1 doe om de boel te draaien krijg ik het volgende:

"Error: Could not find or load main class W1
Caused by: java.lang.NoClassDefFoudError: w1/W1 (wrong name: W1)
Heb je een public static main method?


Vänliga Hälsningar Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181758184
Volgens mij had ik al een keer eerder neergezet hier maar als jullie nog een youtube channel willen die veel diverse en goede tech talks online gooit:

https://www.youtube.com/channel/UCtxCXg-UvSnTKPOzLH4wJaQ/videos





Kijk er zelf iedere week wel een paar.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181758380
quote:
16s.gif Op vrijdag 7 september 2018 20:03 schreef FlippingCoin het volgende:

[..]

Heb je een public static main method?

Vänliga Hälsningar Flip.
Heb de code niet zelf geschreven, maar gedownload uit de cursus. Het is grotendeels nog abracadabra :p

Dit staat er
1
2
public class W1 extends JFrame {
  public static void main( String args[] ) {
ウプピエ 八十三 << u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_181758406
quote:
0s.gif Op vrijdag 7 september 2018 20:37 schreef uppie83 het volgende:

[..]

Heb de code niet zelf geschreven, maar gedownload uit de cursus. Het is grotendeels nog abracadabra :p

Dit staat er
[ code verwijderd ]

Oké public static main method heb je wel dat is het beginpunt van je programma. Hmmmm

Бо эҳтиром Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181758449
Kijk eens in die folder, wat is de exacte naam van het gecompileerde bestand? Ben je ook in de juiste folder als je het java commando uitvoert?

мэндчилсэн Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181758829
quote:
16s.gif Op vrijdag 7 september 2018 20:40 schreef FlippingCoin het volgende:
Kijk eens in die folder, wat is de exacte naam van het gecompileerde bestand? Ben je ook in de juiste folder als je het java commando uitvoert?

мэндчилсэн Flip.
Er staan nu een W1.class en Tijd.class bij. Ja ik riep het java W1 aan vanuit de directory waar deze beide bestanden staan.
ウプピエ 八十三 << u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_181758838
quote:
0s.gif Op vrijdag 7 september 2018 20:57 schreef uppie83 het volgende:

[..]

Er staan nu een W1.class en Tijd.class bij. Ja ik riep het java W1 aan vanuit de directory waar deze beide bestanden staan.
En in de W1.java staat de main methode?

S přátelským pozdravem Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181758959
quote:
16s.gif Op vrijdag 7 september 2018 20:58 schreef FlippingCoin het volgende:

[..]

En in de W1.java staat de main methode?

S přátelským pozdravem Flip.
correct
ウプピエ 八十三 << u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_181759009
quote:
0s.gif Op vrijdag 7 september 2018 21:03 schreef uppie83 het volgende:

[..]

correct
https://stackoverflow.com(...)-class-mean/32134203

Persoonlijk zou ik gewoon een IDE downloaden zoals daar ook onderaan staat. Eclipse is wel een aardige gratis beginner IDE.

Die regelt o.a. het compileren voor je.

با احترام Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  vrijdag 7 september 2018 @ 21:18:03 #33
436847 embedguy
Embedded in your genius dreams
pi_181759300
quote:
16s.gif Op vrijdag 7 september 2018 21:05 schreef FlippingCoin het volgende:

[..]

https://stackoverflow.com(...)-class-mean/32134203

Persoonlijk zou ik gewoon een IDE downloaden zoals daar ook onderaan staat. Eclipse is wel een aardige gratis beginner IDE.

Die regelt o.a. het compileren voor je.

با احترام Flip.
IntelliJ ^O^
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_181759333
quote:
1s.gif Op vrijdag 7 september 2018 21:18 schreef embedguy het volgende:

[..]

IntelliJ ^O^
Gebruik ik zelf ook ja, maar misschien iets uitgebreider en geen idee of die een student is voor een gratis versie. :P


Mahadsanidin Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  vrijdag 7 september 2018 @ 21:27:58 #35
436847 embedguy
Embedded in your genius dreams
pi_181759473
quote:
16s.gif Op vrijdag 7 september 2018 21:19 schreef FlippingCoin het volgende:

[..]

Gebruik ik zelf ook ja, maar misschien iets uitgebreider en geen idee of die een student is voor een gratis versie. :P


Mahadsanidin Flip.
Free communitie versie is prima toch?
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_181759480
quote:
1s.gif Op vrijdag 7 september 2018 21:27 schreef embedguy het volgende:

[..]

Free communitie versie is prima toch?
Ahh oké ja dat is ook meer dan prima inderdaad.

Përshëndetje të përzemërta Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181759642
Mij is juist verteld dat ik moet leren Java programmeren vanuit Notepad zodat je alles van het begin af aan begrijpt en geen IDE heeft die dingen van je overneemt.
ウプピエ 八十三 << u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_181759743
quote:
0s.gif Op vrijdag 7 september 2018 21:36 schreef uppie83 het volgende:
Mij is juist verteld dat ik moet leren Java programmeren vanuit Notepad zodat je alles van het begin af aan begrijpt en geen IDE heeft die dingen van je overneemt.
Door wie?

Wij hadden destijds de eerste les al in Eclipse in de inleidende course Java. Je moet het idee achter compilen wel begrijpen inderdaad, en een hello world in notepad is mss leuk maar het kost ook meer tijd die je ook kon gebruiken om te leren programmeren.

Genus ipsum Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181759809
Kort gezegd door degene die mij begeleid naar mijn OCA toe :P
ウプピエ 八十三 << u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_181759844
quote:
0s.gif Op vrijdag 7 september 2018 21:42 schreef uppie83 het volgende:
Kort gezegd door degene die mij begeleid naar mijn OCA toe :P
Oké. :)

Heb zelf wel een tijdje geprogrammeerd in notepad++ toen ik begon met C++ voor ik begon met mijn studie, maar toen ook redelijk snel overgestapt op een IDE gelukkig. :P

Tislijiet Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181771635
Jemig, ik wist niet eens dat dit topic bestond.

Eventjes: ik ben opgeleid tot mainframeprogrammeur: Cobol, JSP, Pascal, Fortran, Codasyl databases.
Ik werk nu niet meer als programmeur.. helaas, maar hobby wel:

Basic, 6510 assembler en ben Java aan het leren.
Dag jongens tot ziens, tot in betere tijden.
pi_181771893
quote:
0s.gif Op zaterdag 8 september 2018 14:23 schreef Sigaartje het volgende:
Jemig, ik wist niet eens dat dit topic bestond.

Eventjes: ik ben opgeleid tot mainframeprogrammeur: Cobol, JSP, Pascal, Fortran, Codasyl databases.
Ik werk nu niet meer als programmeur.. helaas, maar hobby wel:

Basic, 6510 assembler en ben Java aan het leren.
Gaaf hoe gaat het met het leren van Java? Eerste object oriented taal?
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181771986
quote:
10s.gif Op donderdag 6 september 2018 22:33 schreef cablegunmaster het volgende:
Onze helden:
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Hier weer verder. O+
Wat denk jij trouwens van functioneel programmeren in javascript? Gister een talk van gezien en de verbeterde testbaarheid en geclaimde vermindering van bugs klonk wel gaaf. :o

Vind dat ook wel een groot nadeel van Golang dat je de mogelijkheid van function chaining mist.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181772110
quote:
1s.gif Op zaterdag 8 september 2018 14:38 schreef FlippingCoin het volgende:

[..]

Gaaf hoe gaat het met het leren van Java? Eerste object oriented taal?
Gaat goed, maar ben een beginner. Totaal anders dan Pascal en Cobol.
Ik ben begonnen met BlueJ, gratis down te loaden en heb er een boek bij gekocht. -Programmeren in Java met Bluej-, een HBO leerboek.
Nog niet toe gekomen aan eigen projecten, ben nog aan het leren.

Wel in Basic, adventuregames en boekhoudprogramma’s.
Was verslaafd aan de Commodore 64.
Die kende ik uit mijn hoofd, memorymap, assembler, ingebouwde routines. Dat ben ik nu weer aan het opfrissen, was alweer 35 jaar geleden ongeveer.
Dag jongens tot ziens, tot in betere tijden.
pi_181772188
quote:
16s.gif Op vrijdag 7 september 2018 17:18 schreef FlippingCoin het volgende:

[..]

Gaaf, hoe werkt dat tweede systeem waar je mee bezig bent dat snap ik niet helemaal. :o

Klinkt wel vet. :P

కైండ్ గౌరవంతో Flip.
Wij hebben een batterij aan UV printers waarmee je accessoires en dergelijke kan beprinten. Die printer eet PDF bestanden wat vaak lagen zijn, zo heb je een laag met wit, een laag met kleur en een laag met extra's zoals bijvoorbeeld glossy of relief.

Eerdere versies van de printers die wij gebruikten konden zelf geen witlagen toevoegen dus moest een designer dat handmatig doen, dat kan met de nieuwe printers die wij hebben wel. Maar het probleem is dus dat producten met een handmatige printlaag niet tergelijk geprint kunnen worden met producten waar de printer de witlaag toevoegt.

Dat ben ik eigenlijk gelijk aan het trekken, met een systeem ervoor dat de designers niets anders hoeven te doen dan afbeeldingen in bepaalde afmetingen in een bepaalde mappen structuur hoeven te gooien waarna het systeem zelf de producten aanmaakt en print klaar maakt. ( Juiste maskers er overheen). En die stap kunnen de designers weer automatiseren binnen illustrator. En vervolgens meteen productafbeeldingen maakt met meerdere hoeken, met verschillende kleuren van die accessoire.

En op basis van orders worden printopdrachten straks automatisch gecombineerd waar nu alleen 1 type product tergelijk geprint kan worden, wat inefficient is als dat geen volle printplaat oplevert.

Er zitten nog wat slimmigheden in die erbij moeten maar ik mag niet alles vertellen.
pi_181772222
quote:
1s.gif Op zaterdag 8 september 2018 14:54 schreef Sigaartje het volgende:

[..]

Gaat goed, maar ben een beginner. Totaal anders dan Pascal en Cobol.
Ik ben begonnen met BlueJ, gratis down te loaden en heb er een boek bij gekocht. -Programmeren in Java met Bluej-, een HBO leerboek.
Nog niet toe gekomen aan eigen projecten, ben nog aan het leren.

Wel in Basic, adventuregames en boekhoudprogramma’s.
Was verslaafd aan de Commodore 64.
Die kende ik uit mijn hoofd, memorymap, assembler, ingebouwde routines. Dat ben ik nu weer aan het opfrissen, was alweer 35 jaar geleden ongeveer.
Ah gaaf, een docent van mij heeft eens een college zijn huiswerk meegenomen van toe hij nog studeerde, assembly op papier. Echt gaaf hoe veel het verandert is in zo'n korte tijd. _O_

Vind zelf Java wel een fijne taal om in te programmeren maar komt ook omdat bij mijn studie we werkten met java en python.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181772268
quote:
19s.gif Op zaterdag 8 september 2018 14:59 schreef TwenteFC het volgende:

[..]

Wij hebben een batterij aan UV printers waarmee je accessoires en dergelijke kan beprinten. Die printer eet PDF bestanden wat vaak lagen zijn, zo heb je een laag met wit, een laag met kleur en een laag met extra's zoals bijvoorbeeld glossy of relief.

Eerdere versies van de printers die wij gebruikten konden zelf geen witlagen toevoegen dus moest een designer dat handmatig doen, dat kan met de nieuwe printers die wij hebben wel. Maar het probleem is dus dat producten met een handmatige printlaag niet tergelijk geprint kunnen worden met producten waar de printer de witlaag toevoegt.

Dat ben ik eigenlijk gelijk aan het trekken, met een systeem ervoor dat de designers niets anders hoeven te doen dan afbeeldingen in bepaalde afmetingen in een bepaalde mappen structuur hoeven te gooien waarna het systeem zelf de producten aanmaakt en print klaar maakt. ( Juiste maskers er overheen). En die stap kunnen de designers weer automatiseren binnen illustrator. En vervolgens meteen productafbeeldingen maakt met meerdere hoeken, met verschillende kleuren van die accessoire.

En op basis van orders worden printopdrachten straks automatisch gecombineerd waar nu alleen 1 type product tergelijk geprint kan worden, wat inefficient is als dat geen volle printplaat oplevert.

Er zitten nog wat slimmigheden in die erbij moeten maar ik mag niet alles vertellen.
Oh dat glinkt wel als een erg gaaf project. :o _O_ En ook wel iets waarmee je goed resultaat kan zien.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181772314
quote:
1s.gif Op zaterdag 8 september 2018 15:06 schreef FlippingCoin het volgende:

[..]

Oh dat glinkt wel als een erg gaaf project. :o _O_ En ook wel iets waarmee je goed resultaat kan zien.
:D Voor de verandering een keer iets waar inderdaad ook een fysiek resultaat uitkomt. Komt ook vaak genoeg voor dat ik weken bezig ben aan iets en voor de buitenwereld is alles nog hetzelfde.
pi_181772426
quote:
1s.gif Op zaterdag 8 september 2018 15:02 schreef FlippingCoin het volgende:

[..]

Ah gaaf, een docent van mij heeft eens een college zijn huiswerk meegenomen van toe hij nog studeerde, assembly op papier. Echt gaaf hoe veel het verandert is in zo'n korte tijd. _O_

Vind zelf Java wel een fijne taal om in te programmeren maar komt ook omdat bij mijn studie we werkten met java en python.
Machinetaal van de pc durf ik niet aan, die van de 6510-chip is vrij simpel en heeft zelfs een decimale mode. Maar als ik een assemblerprogramma van nu bekijk van de chips inde huidige pc’s wordt ik duizelig.

Java is een leuke taal, met klassen en objecten. Met bluej kun je eerst de structuur uittekenen op het scherm en daarna programmeren. Ik kom binnenkort wel met dingetjes daarvan hier.
Dag jongens tot ziens, tot in betere tijden.
pi_181772464
quote:
19s.gif Op zaterdag 8 september 2018 15:08 schreef TwenteFC het volgende:

[..]

:D Voor de verandering een keer iets waar inderdaad ook een fysiek resultaat uitkomt. Komt ook vaak genoeg voor dat ik weken bezig ben aan iets en voor de buitenwereld is alles nog hetzelfde.
Ja daarom wel leuk lijkt mij. _O_
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181772485
quote:
1s.gif Op zaterdag 8 september 2018 15:15 schreef Sigaartje het volgende:

[..]

Machinetaal van de pc durf ik niet aan, die van de 6510-chip is vrij simpel en heeft zelfs een decimale mode. Maar als ik een assemblerprogramma van nu bekijk van de chips inde huidige pc’s wordt ik duizelig.

Java is een leuke taal, met klassen en objecten. Met bluej kun je eerst de structuur uittekenen op het scherm en daarna programmeren. Ik kom binnenkort wel met dingetjes daarvan hier.
Cool ben benieuwd had nog nooit van bluej gehoord verder.

Enige nadeel is dat Java weer een beetje doorslaat met het OO paradigma maar daar hoef je je voorlopig niet druk om te maken en is voor beginners in de taal juist fijn.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181772508
quote:
1s.gif Op zaterdag 8 september 2018 15:20 schreef FlippingCoin het volgende:

[..]

Cool ben benieuwd had nog nooit van bluej gehoord verder.

Enige nadeel is dat Java weer een beetje doorslaat met het OO paradigma maar daar hoef je je voorlopig niet druk om te maken en is voor beginners in de taal juist fijn.
https://www.bluej.org
Dag jongens tot ziens, tot in betere tijden.
pi_181772732
Ben blij dat dit topic er is. Ik voelde me zo’n eenling in mijn programmeerhobby. Ik ken verder niemand die het ook doet en men kijkt mij een beetje smalend en lachwekkend aan als ik erover begin.
Dag jongens tot ziens, tot in betere tijden.
pi_181790739
Zo ziet BleuJ eruit. Dit is een voorbeeld uit het lesboek.

De hokjes zijn Klassen die je definieert in coding. Dat ze schuin-gestreept zijn betekent dat ze zijn gecompileerd. De coding van een klasse zie je ernaast (deze is van Triangle).
Vanuit de hokjes kun je objecten maken en apart weer methodes. Ik heb er een leerboek bij van krap 700 pagina's dik. Werkt erg leuk.

Dag jongens tot ziens, tot in betere tijden.
pi_181791960
quote:
1s.gif Op zaterdag 8 september 2018 14:44 schreef FlippingCoin het volgende:

[..]

Wat denk jij trouwens van functioneel programmeren in javascript? Gister een talk van gezien en de verbeterde testbaarheid en geclaimde vermindering van bugs klonk wel gaaf. :o

Vind dat ook wel een groot nadeel van Golang dat je de mogelijkheid van function chaining mist.
Het kan nuttig zijn maar dan alleen voor oneliners voor grote lappen zou ik het niet gebruiken.
Zelf gebruik ik de laatste tijd Typescript. Ik heb react native gebruikt maar het is zo "bloated" , veels te veel extra regels en extra "= " tekens het maakt het voor mij onleesbaar. Ik hou van code die ik door kan kijken en meteen kan begrijpen en bevatten.

Als ik dit zou doen met functioneel programmeren ben ik snel bang dat ik het overzicht verlies.
Redacted
pi_181791990
quote:
19s.gif Op zaterdag 8 september 2018 15:08 schreef TwenteFC het volgende:

[..]

:D Voor de verandering een keer iets waar inderdaad ook een fysiek resultaat uitkomt. Komt ook vaak genoeg voor dat ik weken bezig ben aan iets en voor de buitenwereld is alles nog hetzelfde.
Heb ik nu ook Back-end Developer werk . :D .
Redacted
pi_181792022
quote:
0s.gif Op zondag 9 september 2018 08:28 schreef Sigaartje het volgende:
Zo ziet BleuJ eruit. Dit is een voorbeeld uit het lesboek.

De hokjes zijn Klassen die je definieert in coding. Dat ze schuin-gestreept zijn betekent dat ze zijn gecompileerd. De coding van een klasse zie je ernaast (deze is van Triangle).
Vanuit de hokjes kun je objecten maken en apart weer methodes. Ik heb er een leerboek bij van krap 700 pagina's dik. Werkt erg leuk.

[ afbeelding ]
Ga hierna als je wat dieper in het boek in gaat met Intellij verder . O+
Bluej laat je heel goed zien hoe "klassen" en objecten initialiseren werkt. :9
Als je dit begrijpt, laat het me dan weten. :9
Redacted
pi_181794243
quote:
0s.gif Op zondag 9 september 2018 09:56 schreef cablegunmaster het volgende:

[..]

Het kan nuttig zijn maar dan alleen voor oneliners voor grote lappen zou ik het niet gebruiken.
Zelf gebruik ik de laatste tijd Typescript. Ik heb react native gebruikt maar het is zo "bloated" , veels te veel extra regels en extra "= " tekens het maakt het voor mij onleesbaar. Ik hou van code die ik door kan kijken en meteen kan begrijpen en bevatten.

Als ik dit zou doen met functioneel programmeren ben ik snel bang dat ik het overzicht verlies.
Ah oké cool, terwijl react wel een hele grote speler is toch? Ik wil het inderdaad een beetje meer gaan toepassen zodat ik wat makkelijker unit tests kan schrijven. Gebruik ook typescript wel gelukkig, dat is de standaard in Angular.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181795909
quote:
1s.gif Op zondag 9 september 2018 11:58 schreef FlippingCoin het volgende:

[..]

Ah oké cool, terwijl react wel een hele grote speler is toch? Ik wil het inderdaad een beetje meer gaan toepassen zodat ik wat makkelijker unit tests kan schrijven. Gebruik ook typescript wel gelukkig, dat is de standaard in Angular.
mwhoah ik heb het toen met ecmascript een applicatie geschreven.
Als ik het opnieuw zou doen, zou ik in plaats van Ecmascript , Typescript nemen. Het lijkt een klein verschil maar het is een gigantisch verschil voor mijn gevoel in leesbaarheid.
Redacted
pi_181795943
quote:
11s.gif Op zondag 9 september 2018 13:27 schreef cablegunmaster het volgende:

[..]

mwhoah ik heb het toen met ecmascript een applicatie geschreven.
Als ik het opnieuw zou doen, zou ik in plaats van Ecmascript , Typescript nemen. Het lijkt een klein verschil maar het is een gigantisch verschil voor mijn gevoel in leesbaarheid.
Maar react kan roch met emcascript typescript en purescript? En typescript en het functionele paradigma hoeven elkaar toch niet uit te sluiten?
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181795996
quote:
1s.gif Op zondag 9 september 2018 13:29 schreef FlippingCoin het volgende:

[..]

Maar react kan roch met emcascript typescript en purescript? En typescript en het functionele paradigma hoeven elkaar toch niet uit te sluiten?
Correct, natuurlijk kan het allemaal maar het is wat je zelf prefereert,
ik prefereer leesbaarheid, daarmee kan ik beter m'n code onderhouden.
Redacted
pi_181796048
quote:
0s.gif Op zondag 9 september 2018 13:31 schreef cablegunmaster het volgende:

[..]

Correct, natuurlijk kan het allemaal maar het is wat je zelf prefereert,
ik prefereer leesbaarheid, daarmee kan ik beter m'n code onderhouden.
Ja dat begrijp ik wel is ook erg belangrijk.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181797257
quote:
0s.gif Op zondag 9 september 2018 09:59 schreef cablegunmaster het volgende:

[..]

Ga hierna als je wat dieper in het boek in gaat met Intellij verder . O+
Bluej laat je heel goed zien hoe "klassen" en objecten initialiseren werkt. :9
Als je dit begrijpt, laat het me dan weten. :9
Ik heb al een beetje zitten kijken naar Intellij. Wat ik belangrijk vind is dat als ik Java eenmaal wat onder de knie heb, ook met SQL kan gaan werken. Met SQL weet ik ook nog niet alles, met SQL-server en zo, maar first things first, eerst even gewoon Java onder de knie krijgen. :)
Dag jongens tot ziens, tot in betere tijden.
pi_181797524
Ik zat net te lezen over javascript closures, en dat werkte toch iets anders dan ik verwacht had eigenlijk, zijn er meer programmeertalen waarin je bij het definiëren van een functie, er in de context van deze definitie van de functie wordt gekeken naar variabelen en deze is een closure bij de functie definitie worden opgeslagen?

Als in is dat redelijk voorkomend of echt een raar javascript dingetje?

SPOILER: artikel
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Speco salutoj Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181797717
quote:
16s.gif Op zondag 9 september 2018 15:20 schreef FlippingCoin het volgende:
Ik zat net te lezen over javascript closures, en dat werkte toch iets anders dan ik verwacht had eigenlijk, zijn er meer programmeertalen waarin je bij het definiëren van een functie, er in de context van deze definitie van de functie wordt gekeken naar variabelen en deze is een closure bij de functie definitie worden opgeslagen?

Als in is dat redelijk voorkomend of echt een raar javascript dingetje?

SPOILER: artikel
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Speco salutoj Flip.
Ik snap niet echt wat er "speciaal " is aan closures?
Een functie die een functie teruggeeft?
Uiteindelijk krijg je daarvan een resultaat?
Ik begrijp niet wat er speciaal aan is, wat de "kracht" of voordelen ervan zijn.
Ik kan met een paar functies in Java precies hetzelfde doen maar dan wel met Objecten, object bevat alle variabelen zodat de "collectie" die "meegegeven" is kan gebruiken.
In dusverre zie ik er niks speciaals in.

Speco salutoj Cable
Redacted
pi_181797783
quote:
0s.gif Op zondag 9 september 2018 15:33 schreef cablegunmaster het volgende:

[..]

Ik snap niet echt wat er "speciaal " is aan closures?
Een functie die een functie teruggeeft?
Uiteindelijk krijg je daarvan een resultaat?
Ik begrijp niet wat er speciaal aan is, wat de "kracht" of voordelen ervan zijn.
Ik kan met een paar functies in Java precies hetzelfde doen maar dan wel met Objecten, object bevat alle variabelen zodat de "collectie" die "meegegeven" is kan gebruiken.
In dusverre zie ik er niks speciaals in.

Speco salutoj Cable
Hmm voor praktijkvoorbeelden moet ik mij nog wat verder verdiepen, ik ben nu bij dit triviale dingetje gekomen:


Hierin zit de constante x dus in de closure van de anonieme functie definitie die createAdder teruggeeft. Heb je in andere programmeertalen ook dat je op deze manier x kan gebruiken uit de closure?
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181797825
Verder weet ik dat het met currying gebruikt wordt, en dat wordt wel in veel javascript libraries gebruikt las ik, maar zo ver ben ik nog niet. :+

Med venlig hilsen Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  zondag 9 september 2018 @ 18:23:35 #68
436847 embedguy
Embedded in your genius dreams
pi_181800517
quote:
16s.gif Op zondag 9 september 2018 15:38 schreef FlippingCoin het volgende:

[..]

Hmm voor praktijkvoorbeelden moet ik mij nog wat verder verdiepen, ik ben nu bij dit triviale dingetje gekomen:
[ afbeelding ]

Hierin zit de constante x dus in de closure van de anonieme functie definitie die createAdder teruggeeft. Heb je in andere programmeertalen ook dat je op deze manier x kan gebruiken uit de closure?
Het unieke van JS is dat functies 'gewoon' objecten zijn en objecten aanroepbaar zijn. Dit maakt dit soort dingen mogelijk. Volgens mij is het wel redelijk uniek ja.
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
  zondag 9 september 2018 @ 18:28:52 #69
436847 embedguy
Embedded in your genius dreams
pi_181800623
quote:
1s.gif Op zaterdag 8 september 2018 14:44 schreef FlippingCoin het volgende:

[..]

Wat denk jij trouwens van functioneel programmeren in javascript? Gister een talk van gezien en de verbeterde testbaarheid en geclaimde vermindering van bugs klonk wel gaaf. :o

Vind dat ook wel een groot nadeel van Golang dat je de mogelijkheid van function chaining mist.
Over het algemeen is alleen maar functioneel programmeren niet echt aan te raden/handig afaik. Het kan wel handig zijn om bijv. OO af te wisselen met imperieel en weer een andere keer met functioneel, puur afhankelijk van wat op dat moment handig is.

Verder zijn map/reduce/etc methods vaak wel erg handig.

[ Bericht 3% gewijzigd door embedguy op 09-09-2018 18:54:03 ]
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_181801436
quote:
0s.gif Op zondag 9 september 2018 18:23 schreef embedguy het volgende:

[..]

Het unieke van JS is dat functies 'gewoon' objecten zijn en objecten aanroepbaar zijn. Dit maakt dit soort dingen mogelijk. Volgens mij is het wel redelijk uniek ja.
Ah oké thanks. Javascript is altijd wel een beetje raar. :P
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181801496
quote:
1s.gif Op zondag 9 september 2018 18:28 schreef embedguy het volgende:

[..]

Over het algemeen is alleen maar functioneel programmeren niet echt aan te raden/handig afaik. Het kan wel handig zijn om bijv. OO af te wisselen met imperieel en weer een andere keer met functioneel, puur afhankelijk van wat op dat moment handig is.

Verder zijn map/reduce/etc methods vaak wel erg handig.
Ja ik ken de map reduce en zo alleen nog van RxJs, functioneel programmeren is ook maar een college geweest tijdens mijn studie. :')

Maar de combinatie lijkt mij wel cool inderdaad zoals bij het filteren en zoals RxJs bij het subscriben waardoor je allemaal functionaliteiten kan chainen en zo.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181805535
quote:
1s.gif Op zondag 9 september 2018 19:10 schreef FlippingCoin het volgende:

[..]

Ah oké thanks. Javascript is altijd wel een beetje raar. :P
Welke taal is dan niet raar?
Heb ik een verkeerde keuze gemaakt?
Dag jongens tot ziens, tot in betere tijden.
pi_181810025
quote:
1s.gif Op zondag 9 september 2018 21:44 schreef Sigaartje het volgende:

[..]

Welke taal is dan niet raar?
Heb ik een verkeerde keuze gemaakt?
Oh nee hoor java en javascript zijn twee aparte talen, lijken zelfs niet eens heel erg op elkaar. Java is een prima taal. :)

En javascript kan je niet omheen als je web applicaties maakt. :P
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181810419
quote:
0s.gif Op zaterdag 8 september 2018 15:40 schreef Sigaartje het volgende:
Ben blij dat dit topic er is. Ik voelde me zo’n eenling in mijn programmeerhobby. Ik ken verder niemand die het ook doet en men kijkt mij een beetje smalend en lachwekkend aan als ik erover begin.
Smalend en lachwekkend? :PD :D
pi_181810969
quote:
0s.gif Op vrijdag 7 september 2018 19:58 schreef uppie83 het volgende:
Ja dat werkt inderdaad. Het compilen is gelukt!

Maar nu de volgende :@
Nu ik java W1 doe om de boel te draaien krijg ik het volgende:

"Error: Could not find or load main class W1
Caused by: java.lang.NoClassDefFoudError: w1/W1 (wrong name: W1)
Inmiddels misschien iemand aanwezig die weet hoe ik via de command line JDK aanroep zodat ik de boel kan draaien? O~)
ウプピエ 八十三 << u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_181811600
quote:
7s.gif Op maandag 10 september 2018 04:51 schreef DevFreak het volgende:

[..]

Smalend en lachwekkend? :PD :D
Ja echt. Zo vertelde ik een keer op het werk dat ik er plezier in schiep om een beetje te prutsen in machinetaal. Ik vind de uitdaging leuk. Hun reactie: waarom ga je niet fietsen?
Dag jongens tot ziens, tot in betere tijden.
pi_181811653
quote:
1s.gif Op maandag 10 september 2018 02:43 schreef FlippingCoin het volgende:

[..]

Oh nee hoor java en javascript zijn twee aparte talen, lijken zelfs niet eens heel erg op elkaar. Java is een prima taal. :)

En javascript kan je niet omheen als je web applicaties maakt. :P
Oh wist ik helemaal niet. Nee ik ben niet geïnteresseerd in het bouwen van websites.
Ik wil gewoon applicaties maken voor mezelf, pure hobby. Ik wilde weer eens een nieuwe taal leren die actueel is en veel wordt gebruikt. Na een beetje googelen kwam ik uit op Java en SQL als DBMS. En daar ben ik mee begonnen. Erg leuke hobby. Alleen de boeken kostten geld, maar alle ontwikkelsoftware staat gewoon gratis op internet.
Dag jongens tot ziens, tot in betere tijden.
pi_181811662
quote:
1s.gif Op maandag 10 september 2018 08:41 schreef Sigaartje het volgende:

[..]

Oh wist ik helemaal niet. Nee ik ben niet geïnteresseerd in het bouwen van websites.
Ik wil gewoon applicaties maken voor mezelf, pure hobby. Ik wilde weer eens een nieuwe taal leren die actueel is en veel wordt gebruikt. Ook als hersentraining. Na een beetje googelen kwam ik uit op Java en SQL als DBMS. En daar ben ik mee begonnen. Erg leuke hobby. Alleen de boeken kostten geld, maar alle ontwikkelsoftware staat gewoon gratis op internet.
Corrigeren van Posts zit me niet in het bloed :(
Dag jongens tot ziens, tot in betere tijden.
pi_181814495
quote:
1s.gif Op maandag 10 september 2018 08:41 schreef Sigaartje het volgende:

[..]

Oh wist ik helemaal niet. Nee ik ben niet geïnteresseerd in het bouwen van websites.
Ik wil gewoon applicaties maken voor mezelf, pure hobby. Ik wilde weer eens een nieuwe taal leren die actueel is en veel wordt gebruikt. Na een beetje googelen kwam ik uit op Java en SQL als DBMS. En daar ben ik mee begonnen. Erg leuke hobby. Alleen de boeken kostten geld, maar alle ontwikkelsoftware staat gewoon gratis op internet.
Ja er zijn wel gratis boeken online voor java, evenals courses op youtube en vaak ook 2e hands boeken op bol.com voor een grijpstuiver. :)
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181815626
quote:
0s.gif Op zaterdag 8 september 2018 15:40 schreef Sigaartje het volgende:
Ben blij dat dit topic er is. Ik voelde me zo’n eenling in mijn programmeerhobby. Ik ken verder niemand die het ook doet en men kijkt mij een beetje smalend en lachwekkend aan als ik erover begin.
Meetup.com naar kijken daar zijn genoeg mensen die als hobby proggrammatuur hebben en op meetings naar meer informatie zoeken en kijken. :D

Welke omgeving zit je ongeveer van het land? dan kan je in een straal van ongv 80 km wel een groepje vinden en informatie samen delen. :P

Bijv. Continuous integration praatje In Amsterdam:
https://www.meetup.com/Co(...)Q2LTRiNzM1OGU1NGEzYw

Of waar ik zelf morgen heenga:
http://meetu.ps/e/F3Ynf/wtYS5/f

Waar ik ook heen wilde maar niet kon:
http://meetu.ps/e/DVwch/wtYS5/f

[ Bericht 10% gewijzigd door cablegunmaster op 10-09-2018 13:45:33 ]
Redacted
pi_181816126
quote:
0s.gif Op maandag 10 september 2018 13:13 schreef cablegunmaster het volgende:

[..]

Meetup.com naar kijken daar zijn genoeg mensen die als hobby proggrammatuur hebben en op meetings naar meer informatie zoeken en kijken. :D

Welke omgeving zit je ongeveer van het land? dan kan je in een straal van ongv 80 km wel een groepje vinden en informatie samen delen. :P

Bijv. Continuous integration praatje In Amsterdam:
https://www.meetup.com/Co(...)Q2LTRiNzM1OGU1NGEzYw

Of waar ik zelf morgen heenga:
http://meetu.ps/e/F3Ynf/wtYS5/f

Waar ik ook heen wilde maar niet kon:
http://meetu.ps/e/DVwch/wtYS5/f
Zover ben ik nog niet. Ik ben alleen een erg ervaren programmeur in Cobol, Jackson Structural Programming, Telon, Codasyl databases, JCL mainframes Bull en IBM, Pascal.
(Is lange tijd mijn beroep geweest bij grote bedrijven), maar dat zijn allemaal lang vervlogen tijden, hele mooie tijden trouwens. Door lange afwezigheid in het buitenland miste ik alle nieuwe ontwikkelingen en had het lef niet meer om weer te solliciteren daarnaar. maar ik mis het nog steeds. Daarom is het mijn hobby. Java leer ik ook, mocht ik ooit weer eens aan de bak kunnen komen om ergens te programmeren.

De Java-benaderingmanier is totaal nieuw voor mij, maar wel erg verfrissend, maar beheers het nog onvoldoende om mee te kunnen praten.

[ Bericht 7% gewijzigd door Sigaartje op 10-09-2018 13:59:59 ]
Dag jongens tot ziens, tot in betere tijden.
pi_181816296
quote:
0s.gif Op maandag 10 september 2018 13:52 schreef Sigaartje het volgende:

[..]

Zover ben ik nog niet. Ik ben alleen een erg ervaren programmeur in Cobol, Jackson Structural Programming, Telon, Codasyl databases, JCL mainframes Bull en IBM, Pascal.
(Is lange tijd mijn beroep geweest bij grote bedrijven), maar dat zijn allemaal lang vervlogen tijden, hele mooie tijden trouwens. Door lange afwezigheid in het buitenland miste ik alle nieuwe ontwikkelingen en had het lef niet meer om weer te solliciteren daarnaar. maar ik mis het nog steeds. Daarom is het mijn hobby. Java leer ik ook, mocht ik ooit weer eens aan de bak kunnen komen om ergens te programmeren.

De Java-benaderingmanier is totaal nieuw voor mij, maar wel erg verfrissend, maar beheers het nog onvoldoende om mee te kunnen praten.
Andere insteek: "zover zou ik graag willen zijn en ik wil zien wat er allemaal is om me heen." O+ Het gaat er juist om nieuwe dingen te zien , ik ken het meeste wel maar het is JUIST bedoelt om je te verbreden.
Redacted
pi_181816454
quote:
0s.gif Op maandag 10 september 2018 14:03 schreef cablegunmaster het volgende:

[..]

Andere insteek: "zover zou ik graag willen zijn en ik wil zien wat er allemaal is om me heen." O+ Het gaat er juist om nieuwe dingen te zien , ik ken het meeste wel maar het is JUIST bedoelt om je te verbreden.
Ik vind Java juist heel goed, ik zie nu hoe het het ook anders kan. De talen van de jaren 60 en 70 waren vooral procedure-gericht, In de tijd dat ik met de opleiding begon was het voor de samenleving vrij nieuw en voelde je je soms een astronaut in wording. Nog nergens stonden computers op het bureau. Als programmeur werkte je in een zaal met tien man en stonden er ergens twee of drie terminals waar je je werk moest doen. De tussentijd besteedde je aan het doornemen van beschijvingen, systeemanalyses etc en stelde je testgegevens op van je eigen programma's en het schrijven van je programma's. Apart was dat je routines moest schrijven die zeer efficient met geheugenruimte om moesten gaan.
Als collega's hadden we een eigen hobbyclub van onze computers thuis (was meestal een C64). De werkgever was daarbij nog zo sociaal ook om onze groep een abonnement te geven op Compute! Gazette, het commodorelijfblad van toen. Waren mooie tijden.

(Het was de enige baan waarbij ik blij was dat het weekend voorbij was, dan kon ik weer naar de mainframe. In het weekend zat ik te stumpen op de 64, in Basic, Logo en assembler en proberen collega's te verslaan met Jumpman, Impossible Mission, adventures en dat spelletje met die helikopter die de grotten in moest, hoe heet dat ook alweer)

[ Bericht 7% gewijzigd door Sigaartje op 10-09-2018 14:23:21 ]
Dag jongens tot ziens, tot in betere tijden.
pi_181825381
quote:
16s.gif Op zondag 9 september 2018 15:38 schreef FlippingCoin het volgende:

[..]

Hmm voor praktijkvoorbeelden moet ik mij nog wat verder verdiepen, ik ben nu bij dit triviale dingetje gekomen:
[ afbeelding ]

Hierin zit de constante x dus in de closure van de anonieme functie definitie die createAdder teruggeeft. Heb je in andere programmeertalen ook dat je op deze manier x kan gebruiken uit de closure?
Ah dit was al currying. :@

Salutări calde Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181825906
quote:
16s.gif Op maandag 10 september 2018 21:09 schreef FlippingCoin het volgende:

[..]

Ah dit was al currying. :@

Salutări calde Flip.
Wat is currying? :P

[ Bericht 0% gewijzigd door cablegunmaster op 10-09-2018 21:33:58 ]
Redacted
pi_181825921
quote:
0s.gif Op zondag 9 september 2018 15:33 schreef cablegunmaster het volgende:

[..]

Ik snap niet echt wat er "speciaal " is aan closures?
Een functie die een functie teruggeeft?
Uiteindelijk krijg je daarvan een resultaat?
Ik begrijp niet wat er speciaal aan is, wat de "kracht" of voordelen ervan zijn.
Ik kan met een paar functies in Java precies hetzelfde doen maar dan wel met Objecten, object bevat alle variabelen zodat de "collectie" die "meegegeven" is kan gebruiken.
In dusverre zie ik er niks speciaals in.

Speco salutoj Cable
Heb nu een praktijkvoorbeeld gevonden voor Javascript en andere talen waarin je closures kan gebruiken. Je hebt in javascript de map functie op een array, deze kan je een functie meegeven die een argument accepteert, en die functie wordt dan aangeroepen met ieder element in die array. Met currying kan je dan een functie meegeven in die map die meerdere argumenten gebruikt:



De adder functie gebruikt twee argumenten en telt deze bij elkaar op, normaal gesproken heeft dat twee argumenten nodig, met currying kan je een argument meegeven en als het ware een deelfunctie terugkrijgen. :P

Nog steeds erg triviaal maar mocht je wat real-life voorbeelden willen is dit wel een aardige:
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
SPOILER: waarom een map?
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Ystävällisin terveisin Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181825966
quote:
16s.gif Op maandag 10 september 2018 21:27 schreef FlippingCoin het volgende:

[..]

Heb nu een praktijkvoorbeeld gevonden voor Javascript en andere talen waarin je closures kan gebruiken. Je hebt in javascript de map functie op een array, deze kan je een functie meegeven die een argument accepteert, en die functie wordt dan aangeroepen met ieder element in die array. Met currying kan je dan een functie meegeven in die map die meerdere argumenten gebruikt:

[ afbeelding ]

De adder functie gebruikt twee argumenten en telt deze bij elkaar op, normaal gesproken heeft dat twee argumenten nodig, met currying kan je een argument meegeven en als het ware een deelfunctie terugkrijgen. :P

Nog steeds erg triviaal maar mocht je wat real-life voorbeelden willen is dit wel een aardige:
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Ystävällisin terveisin Flip.
Klinkt voor mij als ik dit zie een verkapte forloop op tel functie? Of recursieve functie? :P

[ Bericht 0% gewijzigd door cablegunmaster op 10-09-2018 21:33:52 ]
Redacted
pi_181825999
quote:
0s.gif Op maandag 10 september 2018 21:28 schreef cablegunmaster het volgende:

[..]

Klinkt voor mij als ik dit zie een verkapte forloop op tel functie? Of recursieve functie? :P
Damn net te laat. :P



Met dit triviale voorbeeld.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181826023
En dat tellen is alleen om een makkelijk voorbeeld te hebben dit kan ook met complexere objecten en zo. *O*

Ar cieņu Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181826027
quote:
16s.gif Op maandag 10 september 2018 21:29 schreef FlippingCoin het volgende:

[..]

Damn net te laat. :P

[ afbeelding ]

Met dit triviale voorbeeld.
voor mij is nummer 2 simpeler, omdat ik het ken, 1 moet ik nadenken, van goh wat doet map functie nou eigenlijk. :D Denk gelijk dat ik daar ook het probleem van dit soort functies te pakken heb. numbers.map zegt niks over wat het doet. terwijl een forloop direct verklaart wat het doet.
Redacted
pi_181826086
quote:
0s.gif Op maandag 10 september 2018 21:30 schreef cablegunmaster het volgende:

[..]

voor mij is nummer 2 simpeler, omdat ik het ken, 1 moet ik nadenken, van goh wat doet map functie nou eigenlijk. :D Denk gelijk dat ik daar ook het probleem van dit soort functies te pakken heb.
Ja dat had ik ook in begin, toen ik met RxJs begon omdat dit standaard in Angular zit had ik ook zo iets van wtf is een map en wat is een pipe. :?

Maar als je het gecombineerd ziet wordt het wel echt nice, ipv een nested loop, of een set loops na elkaar heb je het gewoon leesbaar (al moet je wel gewend zijn aan map en zo inderdaad) op een regel.

Hmmm dat laatste weet ik niet, is map niet gewoon een nieuwe begrip en zegt het wel een hoop? Dit heet ook map in de functionele talen en in andere talen.

Genus ipsum Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181826132
quote:
16s.gif Op maandag 10 september 2018 21:32 schreef FlippingCoin het volgende:
Hmmm dat laatste weet ik niet, is map niet gewoon een nieuwe begrip en zegt het wel een hoop? Dit heet ook map in de functionele talen en in andere talen.

Genus ipsum Flip.
Daarom zeg ik ook , ik ken het niet. :P Map in java is een <String, String > of String , Object of <String, int[]> maar altijd een combinatie.
Redacted
pi_181826146
quote:
0s.gif Op maandag 10 september 2018 21:34 schreef cablegunmaster het volgende:

[..]

Daarom zeg ik ook , ik ken het niet. :P
Ja is ook zo. :P

Maar als ik mij moet laten tegenhouden door wat ik wel en niet ken wordt het niet veel. :@

Ah ja je hebt ook map data structuren inderdaad.

aina upande Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181827028
quote:
16s.gif Op maandag 10 september 2018 21:35 schreef FlippingCoin het volgende:

[..]

Ja is ook zo. :P

Maar als ik mij moet laten tegenhouden door wat ik wel en niet ken wordt het niet veel. :@

Ah ja je hebt ook map data structuren inderdaad.

aina upande Flip.
Daarom ook, niet laten tegenhouden verkennen en kijken . :D je hebt gelijk . ^O^

[ Bericht 5% gewijzigd door cablegunmaster op 11-09-2018 09:17:21 ]
Redacted
pi_181837779
Als iemand je vraagt even werk van 1 maand in een week te doen filmpje van linkedin:

10 minuten vs 1 minute vs 10 seconds :D .
https://dms.licdn.com/pla(...)FZwvJ5kFe3I7_2gPhBgg
Redacted
pi_181838318
quote:
0s.gif Op dinsdag 11 september 2018 14:51 schreef cablegunmaster het volgende:
Als iemand je vraagt even werk van 1 maand in een week te doen filmpje van linkedin:

10 minuten vs 1 minute vs 10 seconds :D .
https://dms.licdn.com/pla(...)FZwvJ5kFe3I7_2gPhBgg
Damn die eerste was creepy. :@

Wel goed filmpje ja. :Y
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  dinsdag 11 september 2018 @ 21:37:44 #97
436847 embedguy
Embedded in your genius dreams
pi_181846142
quote:
0s.gif Op maandag 10 september 2018 21:34 schreef cablegunmaster het volgende:

[..]

Daarom zeg ik ook , ik ken het niet. :P Map in java is een <String, String > of String , Object of <String, int[]> maar altijd een combinatie.
Map object in de zin van een soort van dictionary? Die heb je in javascript ook nog *O*

Ik kon bijna niet geloven dat Java niet ook al ondertussen de map methods had overgenomen. Even opgezocht, en jawel hoor; https://dzone.com/article(...)-of-stream-in-java-8

Map reduce, filter, sort, etc methods kun je leuke dingen mee doen. Imho wel de moeite om te leren.
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_181853030
Weet iemand toevalling waar ik een goede online interactieve cursus in c# kan vinden?

Op codecademy staat niets helaas.
pi_181853764
quote:
0s.gif Op woensdag 12 september 2018 08:50 schreef Luppie0110 het volgende:
Weet iemand toevalling waar ik een goede online interactieve cursus in c# kan vinden?

Op codecademy staat niets helaas.
wat kan je al met programmeren?
Om in 1x C# te leren is best ingewikkeld, en heb je al gekeken op youtube? of daar cursussen zijn?
Hoeveel tijd wil je eraan besteden?
Redacted
pi_181854870
quote:
0s.gif Op woensdag 12 september 2018 08:50 schreef Luppie0110 het volgende:
Weet iemand toevalling waar ik een goede online interactieve cursus in c# kan vinden?

Op codecademy staat niets helaas.
Head First C# van O'reilly
pi_181854981
quote:
14s.gif Op woensdag 12 september 2018 11:11 schreef DevFreak het volgende:

[..]

Head First C# van O'reilly
Thanks. Zal even kijken!

quote:
0s.gif Op woensdag 12 september 2018 09:45 schreef cablegunmaster het volgende:

[..]

wat kan je al met programmeren?
Om in 1x C# te leren is best ingewikkeld, en heb je al gekeken op youtube? of daar cursussen zijn?
Hoeveel tijd wil je eraan besteden?
Tja, ik studeer informatica en we gaan in dit blok aan de slag met c#. Verder ken ik html, css, javascript, jquery.

Op Youtube is zat te vinden, alleen interactieve cursussen (zoals op Codecademy) werken voor mij erg prettig.
pi_181855251
quote:
0s.gif Op woensdag 12 september 2018 11:17 schreef Luppie0110 het volgende:

[..]

Thanks. Zal even kijken!

[..]

Tja, ik studeer informatica en we gaan in dit blok aan de slag met c#. Verder ken ik html, css, javascript, jquery.

Op Youtube is zat te vinden, alleen interactieve cursussen (zoals op Codecademy) werken voor mij erg prettig.
Als je wilt mag je hem overnemen van me, heb hem hier liggen. ;)
pi_181865295
quote:
1s.gif Op woensdag 12 september 2018 11:32 schreef DevFreak het volgende:

[..]

Als je wilt mag je hem overnemen van me, heb hem hier liggen. ;)
Heb hem zelf even als pdf gedownload. Toch bedankt!
pi_181865379
Gewoon een simpele console applicatie om seconden te converten in uren, minuten en seconden. Maar, hoezo werkt dit niet?

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
pi_181865679
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;

namespace Opdracht3_week2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Geef aantal seconden ");

            // 1 uur = 3600 sec 
            // 1 minuut = 60 sec

            string invoerSeconde = Console.ReadLine();
            int seconde = int.Parse(invoerSeconde);

            int uur = seconde / 3600;          // Geeft hier een invalid expression int aan??
            seconde = seconde % 3600;

            int minuten = seconde / 60;
            seconde = seconde % 60;

      

            Console.WriteLine("{0:0}{1:00}{2:00}", uur.ToString(), minuten.ToString(), seconde.ToString());

            Console.ReadKey();

        }
    }
}
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181865711
Als seconde 0 is toevallig?

Is makkelijker als je de foutmelding ook even copy paste.


Hmm ik weet niet hoe C# omgaat met afronden trouwens, in een integer past geen breuk.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181866638


In integer past geen breuk idd, maar c# zal bv 1.2 afronden naar 1.
pi_181867913
quote:
0s.gif Op woensdag 12 september 2018 20:28 schreef Luppie0110 het volgende:
[ afbeelding ]

In integer past geen breuk idd, maar c# zal bv 1.2 afronden naar 1.
Ik zou niet weten wat hier fout aan is. -O-

කාරුණික සුභ පැතීම Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181878086
In mijn Java cursus heb ik een opdracht gekregen. In de voorbeeldcode stond dat het volgende zou moeten werken:
1
2
3
4
5
6
7
8
9
10
11
class Paneel extends JPanel{
  int i = 0;

  public void paintComponent(Graphics g){
    super.paintComponent(g);
    while(i < 10){
      repaint();
      g.drawString("Het nummer is: "+i, 40, 40);
      i++;
    }
}

Voor mijn opdracht moest ik vervolgens het volgende maken (zie bovenste comments):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* Maak een programma dat de temperatuur bijhoudt en laat oplopen tot 30 graden. 
 * De temperatuur is in het begin 15 graden. Zolang de temperatuur onder de 24 graden 
 * is, krijg je de melding “Het is nu … graden”. Bij 24 graden begint het toch wel 
 * een beetje warm te worden en geeft het programma de melding “Het is boven de 24 graden!”. 
 * Maak uiteraard gebruik van de while-loop.
 */

//juiste import
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
 
 
//main class
public class w5d22 extends JFrame {
  public static void main( String args[] ) {
    JFrame frame = new w5d22();
    frame.setSize( 400, 200 );
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    frame.setTitle( "Oefening: temperaturen" );
    frame.setContentPane( new Paneel(15) );
    frame.setVisible( true );
  }
}

// Paneel
class Paneel extends JPanel {
  private int temperatuur;

  public Paneel(int t){
    temperatuur = t;
  }

  public void paintComponent(Graphics g){
    super.paintComponent(g);
    //Zet de waarden op het scherm:
    while(temperatuur < 30){

      if(temperatuur < 24){
        System.out.println("Het is nu " + temperatuur + " graden");
        repaint();
        g.drawString("Het is nu " + temperatuur + " graden", 40, 40);
      }
      else if(temperatuur <30){
        System.out.println("Het is boven de 24 graden!");
        repaint();
        g.drawString("Het is boven de 24 graden!", 40, 40);
      }
      else{
        System.out.println("Er gaat iets mis!");
        repaint();
        g.drawString("Er gaat iets mis!", 40, 40);
      }
      temperatuur++;
    }
  }
}

De System.out.println; statements heb ik zelf toegevoegd en die werken goed. Ik krijg echter niets te zien op mijn panel :?
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_181880094
quote:
0s.gif Op donderdag 13 september 2018 13:14 schreef uppie83 het volgende:
In mijn Java cursus heb ik een opdracht gekregen. In de voorbeeldcode stond dat het volgende zou moeten werken:
[ code verwijderd ]

Voor mijn opdracht moest ik vervolgens het volgende maken (zie bovenste comments):
[ code verwijderd ]

De System.out.println; statements heb ik zelf toegevoegd en die werken goed. Ik krijg echter niets te zien op mijn panel :?
Je hebt helemaal gelijk waar is je redraw / repaint() functie? :P
Voor elke wijziging moet je redraw uitvoeren.

[ Bericht 15% gewijzigd door cablegunmaster op 13-09-2018 15:18:29 ]
Redacted
pi_181881289
quote:
0s.gif Op donderdag 13 september 2018 15:13 schreef cablegunmaster het volgende:

[..]

Je hebt helemaal gelijk waar is je redraw / repaint() functie? :P
Voor elke wijziging moet je redraw uitvoeren.
Het eerste stuk code is alle uitleg die ik gekregen heb |:( Ook in eerdere stukken is er niets anders behandeld dan repaint() en g.drawString. En dan nog niets eens wat ze exact doen, of hoe je het verder gebruikt, maar meer als copy en paste code en ga er maar mee aan de slag.

Maar is repaint() geen functie die ik importeer? Moet ik die zelf nog schrijven?

[ Bericht 4% gewijzigd door uppie83 op 13-09-2018 16:44:32 ]
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_181882232
quote:
0s.gif Op donderdag 13 september 2018 16:17 schreef uppie83 het volgende:

[..]

Het eerste stuk code is alle uitleg die ik gekregen heb |:( Ook in eerdere stukken is er niets anders behandeld dan repaint() en g.drawString. En dan nog niets eens wat ze exact doen, of hoe je het verder gebruikt, maar meer als copy en paste code en ga er maar mee aan de slag.

Maar is repaint() geen functie die ik importeer? Moet ik die zelf nog schrijven?
https://docs.oracle.com/j(...)mponent.html#repaint(java.awt.Rectangle)

Het is een standaard functie van de Java Swing JComponent die JPanel kan gebruiken. dus gebruik je "this.repaint();" Zie de https://docs.oracle.com/javase/7/docs/api/javax/swing/JPanel.html documentatie functies die je direct kan gebruiken met JPanel, door de overervingen die JPanel zelf heeft.

Anders kan je het ook op je JFrame doen, door die te refreshen , of te "revalidate()" functie aan te roepen.

bijv na alle veranderingen onderaan in je while loop dit toe te voegen.
1
2
  this.validate();
  this.repaint();


[ Bericht 13% gewijzigd door cablegunmaster op 13-09-2018 17:12:15 ]
Redacted
pi_181885008
quote:
0s.gif Op donderdag 13 september 2018 17:06 schreef cablegunmaster het volgende:

[..]

https://docs.oracle.com/j(...)mponent.html#repaint(java.awt.Rectangle)

Het is een standaard functie van de Java Swing JComponent die JPanel kan gebruiken. dus gebruik je "this.repaint();" Zie de https://docs.oracle.com/javase/7/docs/api/javax/swing/JPanel.html documentatie functies die je direct kan gebruiken met JPanel, door de overervingen die JPanel zelf heeft.

Anders kan je het ook op je JFrame doen, door die te refreshen , of te "revalidate()" functie aan te roepen.

bijv na alle veranderingen onderaan in je while loop dit toe te voegen.
[ code verwijderd ]

Bedankt voor de uitgebreide uitleg. Als ik je goed begrijp kan ik dus repaint() aanroepen binnen mijn JPanel class. Volgens de links wordt het aangegeven deel overschreven (wederom als ik het goed begrijp :p ).

Maar nu heb ik na temperatuur++ in de while loop nog
this.validate();
this.repaint();
toegevoegd, maar het veranderd niets. Ik hou een leeg panel, terwijl op de console wel alle output goed loopt :?
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
  donderdag 13 september 2018 @ 21:34:00 #114
436847 embedguy
Embedded in your genius dreams
pi_181888031
quote:
0s.gif Op donderdag 13 september 2018 13:14 schreef uppie83 het volgende:
In mijn Java cursus heb ik een opdracht gekregen. In de voorbeeldcode stond dat het volgende zou moeten werken:
[ code verwijderd ]

Voor mijn opdracht moest ik vervolgens het volgende maken (zie bovenste comments):
[ code verwijderd ]

De System.out.println; statements heb ik zelf toegevoegd en die werken goed. Ik krijg echter niets te zien op mijn panel :?
Ik ken Java niet, en ik zit mobiel dus een beetje moeilijk op te zoeken maar ik geloof dat er dit gebeurt;
1. Paintcomponent wordt getriggerd
2. text wordt geprint
3. Vervolgens roep je repaint aan
4 Paintcomponent wordt hierdoor weer getriggered (nadat paintComponent klaar is met uitvoeren, dus gelukkig niet direct na het telkens aanroepen van repaint(). Als dat wel zo zou zijn, zou je een deadloop hebben gehad).
5. Je print de tweede keer dat paintcomponent wordt aangeroepen niets en dus is je scherm leeg.

Zoals gezegd; kan me vergissen, maar denk dat het dit is. Begin anders eens vanuit deze voorbeeldcode; http://www.java2s.com/Cod(...)tringstrintxinty.htm

[ Bericht 3% gewijzigd door embedguy op 13-09-2018 21:51:25 ]
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
  donderdag 13 september 2018 @ 21:41:24 #115
436847 embedguy
Embedded in your genius dreams
pi_181888263
Volgens mij klopt je logica ook niet helemaal. In de while loop staan allemaal repaints die niets doen en je print alle tekst op elkaar; al zou er iets geprint worden, dan zul je geen 15 regels tekst te zien krijgen. Dan krijg je waarschijnlijk maar één regel te zien waar niets van te lezen valt.

Volgens mij hoef je helemaal geen repaint() aan te roepen, niet in de paintComponent method iig.
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_181896062
quote:
1s.gif Op donderdag 13 september 2018 21:41 schreef embedguy het volgende:
Volgens mij klopt je logica ook niet helemaal. In de while loop staan allemaal repaints die niets doen en je print alle tekst op elkaar; al zou er iets geprint worden, dan zul je geen 15 regels tekst te zien krijgen. Dan krijg je waarschijnlijk maar één regel te zien waar niets van te lezen valt.

Volgens mij hoef je helemaal geen repaint() aan te roepen, niet in de paintComponent method iig.
https://stackoverflow.com(...)-paintcomponent-work

Dit legt het veel beter uit. :P komt erop neer dat het zou werken als je het uit je "Paint" functie haalt.

Main.java (starter)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import MainPanel;

import javax.swing.*;

public class Main {

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setSize(400, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("Oefening: temperaturen");
        MainPanel paneel = new MainPanel(0);
        frame.setContentPane(paneel);
        frame.setVisible(true);
        paneel.increaseTemperature();
    }
}

MainPanel.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import javax.swing.*;
import java.awt.*;

public class MainPanel extends JPanel {

    private int temp;
    private JLabel label = new JLabel("text");

    public MainPanel(int t) {
        temp = t;
        this.setLayout(new FlowLayout());
        this.add(label);
    }

    public void increaseTemperature(){
        while (temp < 30) {

            //wait 0.5 seconde (500 milliseconds)
            try{
                Thread.sleep(500);
            }catch(InterruptedException e) {

            }

            if (temp < 24) {
                System.out.println("Het is nu " + temp + " graden");
                label.setText("Het is nu " + temp + " graden");
            } else if (temp > 24) {
                System.out.println("Het is boven de 24 graden!");
                label.setText("Het is boven de 24 graden!");
            } else{
                System.out.println("Er gaat iets mis!");
                label.setText("Er gaat iets mis!");
            }
            temp++;
            repaint();
        }
    }

    //heb je niet nodig.
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        //Zet de waarden op het scherm:
    }
}

3 dingen die me opvallen ,

A Hoe ben je op het idee gekomen van Paint?
B Hoe kan dit ooit werken zonder een "wacht" functie? Als ik dit nu opstart op jou manier zou het al klaar zijn en zou je de "incrementele" functie niet eens zien.
C Welke opleidings niveau is dit? En waarom is er NL in je code? Dat is echt lelijk om te zien. (commentaar is 1 ding maar NL variabelen is gewoon stom. Ik zie het bij de belasting dienst nog wel gebeuren maar dat is gewoon brrr.. rillerig. :{

[ Bericht 9% gewijzigd door cablegunmaster op 14-09-2018 10:50:02 ]
Redacted
  vrijdag 14 september 2018 @ 18:20:07 #117
436847 embedguy
Embedded in your genius dreams
pi_181904030
quote:
0s.gif Op vrijdag 14 september 2018 10:19 schreef cablegunmaster het volgende:

[..]
waarom is er NL in je code? Dat is echt lelijk om te zien. (commentaar is 1 ding maar NL variabelen is gewoon stom. Ik zie het bij de belasting dienst nog wel gebeuren maar dat is gewoon brrr.. rillerig. :{
Maar net wat je aanhoudt toch? Persoonlijk vind ik nl comments minstens zo brrr... als nl variabele namen. Waarom zou het netter zijn om die twee stijlen te combineren? Doe dan alles in nl zoals uppie doet.

Edit; even nog eens de code van uppie bekeken, en ok; ik kan me vinden in je statement :) .

[ Bericht 3% gewijzigd door embedguy op 14-09-2018 18:28:14 ]
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
  vrijdag 14 september 2018 @ 18:21:43 #118
436847 embedguy
Embedded in your genius dreams
pi_181904051
quote:
0s.gif Op vrijdag 14 september 2018 10:19 schreef cablegunmaster het volgende:

[..]

https://stackoverflow.com(...)-paintcomponent-work

Dit legt het veel beter uit. :P komt erop neer dat het zou werken als je het uit je "Paint" functie haalt.

Main.java (starter)
[ code verwijderd ]

MainPanel.java
[ code verwijderd ]

3 dingen die me opvallen ,

A Hoe ben je op het idee gekomen van Paint?
B Hoe kan dit ooit werken zonder een "wacht" functie? Als ik dit nu opstart op jou manier zou het al klaar zijn en zou je de "incrementele" functie niet eens zien.
C Welke opleidings niveau is dit? En waarom is er NL in je code? Dat is echt lelijk om te zien. (commentaar is 1 ding maar NL variabelen is gewoon stom. Ik zie het bij de belasting dienst nog wel gebeuren maar dat is gewoon brrr.. rillerig. :{
En ow; je hebt door dat je nu zijn schoolopdracht hebt gemaakt zonder dat hij het hoefde te begrijpen :D?

En als je een exceptie krijgt tijdens het sleepen, wil je dan niet juist dat hij 'ontploft' ipv dat je de exceptie afvangt en ignored? Geen idee verder hoe dat in Java werkt, maar klinkt onlogisch. Ik zou minstens een return verwachten.
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_181910128
quote:
1s.gif Op vrijdag 14 september 2018 18:21 schreef embedguy het volgende:

[..]

En ow; je hebt door dat je nu zijn schoolopdracht hebt gemaakt zonder dat hij het hoefde te begrijpen :D?

En als je een exceptie krijgt tijdens het sleepen, wil je dan niet juist dat hij 'ontploft' ipv dat je de exceptie afvangt en ignored? Geen idee verder hoe dat in Java werkt, maar klinkt onlogisch. Ik zou minstens een return verwachten.
Mwhoah , dat is niet zo erg hij moet het daarna uitleggen wat het allemaal doet, en opzoeken waarom . Hij/zij zat al op de goede weg maar soms heb je een duwtje nodig in de goede weg, en dan helpt het om wat meer voorbeelden te zien.
Redacted
  zaterdag 15 september 2018 @ 12:40:34 #120
436847 embedguy
Embedded in your genius dreams
pi_181917967
quote:
0s.gif Op vrijdag 14 september 2018 23:15 schreef cablegunmaster het volgende:

[..]

Mwhoah , dat is niet zo erg hij moet het daarna uitleggen wat het allemaal doet, en opzoeken waarom . Hij/zij zat al op de goede weg maar soms heb je een duwtje nodig in de goede weg, en dan helpt het om wat meer voorbeelden te zien.
true 👍
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_181919913
quote:
0s.gif Op vrijdag 14 september 2018 10:19 schreef cablegunmaster het volgende:

[..]

https://stackoverflow.com(...)-paintcomponent-work

Dit legt het veel beter uit. :P komt erop neer dat het zou werken als je het uit je "Paint" functie haalt.

Main.java (starter)
[ code verwijderd ]

MainPanel.java
[ code verwijderd ]

3 dingen die me opvallen ,

A Hoe ben je op het idee gekomen van Paint?
B Hoe kan dit ooit werken zonder een "wacht" functie? Als ik dit nu opstart op jou manier zou het al klaar zijn en zou je de "incrementele" functie niet eens zien.
C Welke opleidings niveau is dit? En waarom is er NL in je code? Dat is echt lelijk om te zien. (commentaar is 1 ding maar NL variabelen is gewoon stom. Ik zie het bij de belasting dienst nog wel gebeuren maar dat is gewoon brrr.. rillerig. :{
Omdat ik voor 1 februari mijn OCA moet halen voor een nieuwe baan in een voor mij compleet nieuwe richting, ben ik begonnen met zelfstudie Java. Als eerste stap zag ik dat ze bij Online Academy een starterstraining Java aanbieden en ben deze gaan volgen.

Dit is echter een niet al te jofele training. Dag 1 kreeg ik al twee bestanden aangeleverd (zie mijn eerdere vraag hier) met als enige uitleg dat ik de JDK nodig heb om ze te compilen en te runnen. Dag 2 werd mij verteld dat ik Netbeans moest gaan installeren (echter werkt Netbeans niet goed meer sinds het uitkomen van Java 9 ben ik achter gekomen, en dat is al meer dan een jaar geleden). Maar goed, ik heb er voor betaald, dus ik wilde het geheel afmaken.

Na een paar dagen werden al gelijk concepten als JFrame, JPanel, JLabel e.d., maar ook paintComponent en repaint() in de voorbeeldcode gebruikt. Zonder dat dit echt werd uitgelegd. Bij de opdrachten gebruikte ik dus maar de stukken voorbeeldcode die ik te zien kreeg, niet wetende dat die voorbeeldcode helemaal niet zou werken als het gecompiled en gerund zou worden. Hoe het wel moet, moest ik dus dan maar zelf uitzoeken. Met Google en jullie hulp ben ik gelukkig al een heel eind gekomen.

Als dit klaar is ga ik verder met het boek Java - A Beginner's Guide 7th edition. Heb al begrepen dat het best pittig is om de OCA te behalen.

----- edit ------
Heb je code even doorgenomen en nog wat vragen (if you don't mind O~) )

- Ik zie dat je JFrame niet extend, waarom?

- Je maakt in je main class een object MainPanel (in mijn code Paneel), wat ik niet deed. Wat voor verschil maakt dit?

-Ik zie dat jij het geheel in een JLabel print. Terwijl ik met g.drawString maar ergens op het Paneel print. Klopt deze gedachte? Heeft jouw methode de voorkeur?

[ Bericht 8% gewijzigd door uppie83 op 15-09-2018 16:28:39 ]
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_181919994
quote:
0s.gif Op zaterdag 15 september 2018 15:03 schreef uppie83 het volgende:

[..]

Omdat ik voor 1 februari mijn OCA moet halen voor een nieuwe baan in een voor mij compleet nieuwe richting, ben ik begonnen met zelfstudie Java. Als eerste stap zag ik dat ze bij Online Academy een starterstraining Java aanbieden en ben deze gaan volgen.

Dit is echter een niet al te jofele training. Dag 1 kreeg ik al twee bestanden aangeleverd (zie mijn eerdere vraag hier) met als enige uitleg dat ik de JDK nodig heb om ze te compilen en te runnen. Dag 2 werd mij verteld dat ik Netbeans moest gaan installeren (echter werkt Netbeans niet goed meer sinds het uitkomen van Java 9 ben ik achter gekomen, en dat is al meer dan een jaar geleden). Maar goed, ik heb er voor betaald, dus ik wilde het geheel afmaken.

Na een paar dagen werden al gelijk concepten als JFrame, JPanel, JLabel e.d., maar ook paintComponent en repaint() in de voorbeeldcode gebruikt. Zonder dat dit echt werd uitgelegd. Bij de opdrachten gebruikte ik dus maar de stukken voorbeeldcode die ik te zien kreeg, niet wetende dat die voorbeeldcode helemaal niet zou werken als het gecompiled en gerund zou worden. Hoe het wel moet, moest ik dus dan maar zelf uitzoeken. Met Google en jullie hulp ben ik gelukkig al een heel eind gekomen.

Als dit klaar is ga ik verder met het boek Java - A Beginner's Guide 7th edition. Heb al begrepen dat het best pittig is om de OCA te behalen.
Van het boek dat wij gebruikten voor de eerste 2 courses programmeren in Java is het boek online te vinden, laat maar weten als je interesse hebt om die eens door te nemen. Was voor mijzelf een prima boek, iets meer wiskunde dan de meeste boeken wel maar prima door te komen.

Grafische libraries hebben wij alleen bijna niet doorgenomen, werken met GUI's kregen wij bij de html courses.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181921735
Ik zat zojuist even te kijken naar de nieuwere dingen in javascript (zijn er behoorlijk wat), maar wat is nou een toepassing van een proxy? Je kan toch ook gewoon de getters en setters gebruiken?

vennlig hilsen Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181922526
quote:
0s.gif Op zaterdag 15 september 2018 15:03 schreef uppie83 het volgende:

[..]

Omdat ik voor 1 februari mijn OCA moet halen voor een nieuwe baan in een voor mij compleet nieuwe richting, ben ik begonnen met zelfstudie Java. Als eerste stap zag ik dat ze bij Online Academy een starterstraining Java aanbieden en ben deze gaan volgen.

Dit is echter een niet al te jofele training. Dag 1 kreeg ik al twee bestanden aangeleverd (zie mijn eerdere vraag hier) met als enige uitleg dat ik de JDK nodig heb om ze te compilen en te runnen. Dag 2 werd mij verteld dat ik Netbeans moest gaan installeren (echter werkt Netbeans niet goed meer sinds het uitkomen van Java 9 ben ik achter gekomen, en dat is al meer dan een jaar geleden). Maar goed, ik heb er voor betaald, dus ik wilde het geheel afmaken.

Na een paar dagen werden al gelijk concepten als JFrame, JPanel, JLabel e.d., maar ook paintComponent en repaint() in de voorbeeldcode gebruikt. Zonder dat dit echt werd uitgelegd. Bij de opdrachten gebruikte ik dus maar de stukken voorbeeldcode die ik te zien kreeg, niet wetende dat die voorbeeldcode helemaal niet zou werken als het gecompiled en gerund zou worden. Hoe het wel moet, moest ik dus dan maar zelf uitzoeken. Met Google en jullie hulp ben ik gelukkig al een heel eind gekomen.

Als dit klaar is ga ik verder met het boek Java - A Beginner's Guide 7th edition. Heb al begrepen dat het best pittig is om de OCA te behalen.

----- edit ------
Heb je code even doorgenomen en nog wat vragen (if you don't mind O~) )

- Ik zie dat je JFrame niet extend, waarom?

- Je maakt in je main class een object MainPanel (in mijn code Paneel), wat ik niet deed. Wat voor verschil maakt dit?

-Ik zie dat jij het geheel in een JLabel print. Terwijl ik met g.drawString maar ergens op het Paneel print. Klopt deze gedachte? Heeft jouw methode de voorkeur?

1 Om je vraag beter te formuleren: "Wat is extenden en wanneer heb ik dit nodig, en wanneer niet?" want dat zit er achter je eerste vraag:"Wat je zelf doet met het extenden je maakt een object aan wanneer je het programma start dan "extend je van JFrame" en dan is er een object dat ook een JFrame Object is.

"Main object HEEFT een object dat een JFrame is" daarna toon ik het JFrame , het hoeft niet extended te zijn, ik kan hiermee meerdere JFrames opstarten als ik zou willen, of afsluiten en herstarten bijv.

2. Het verschil is de een start als MAIN object,en het is een andere manier van objecten gebruiken . Je moet Objecten aanmaken om ze te gebruiken. als ik het gewoon direct zeg Mainpaneel mainpaneel dan krijg ik nullpointers.

3.Ja ik gebruik geen g.drawstring omdat ik de paint component niet weet hoe die aangeroepen wordt.

Deze wordt altijd INDIRECT aangeroepen, en CONTINUE aangeroepen, zonder dat ik weet wanneer. dus wil ik het liever zelf beheersen, wanneer het veranderd wordt. Ook iets leuks om op te zoeken "wanneer wordt PAINT Component eigenlijk aangeroepen" ? hoe werkt dit?
Redacted
  zaterdag 15 september 2018 @ 18:24:05 #125
436847 embedguy
Embedded in your genius dreams
pi_181923081
quote:
16s.gif Op zaterdag 15 september 2018 16:59 schreef FlippingCoin het volgende:
Ik zat zojuist even te kijken naar de nieuwere dingen in javascript (zijn er behoorlijk wat), maar wat is nou een toepassing van een proxy? Je kan toch ook gewoon de getters en setters gebruiken?

vennlig hilsen Flip.
Een proxy is een proxy (ja echt :p). Maw, je laat het target object ongeroerd en je zet er gewoon iets er overheen (de proxy dus).

Ipv dit zou je ook gewoon zelf de proxy kunnen maken dus eigk geen idee wat die proxy toevoegt. Ik kende hem nog niet.

Hmmm, je maakt me nieuwsgierig; ik ga ook even kijken wat er allemaal bij is gekomen.
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_181923362
quote:
1s.gif Op zaterdag 15 september 2018 18:24 schreef embedguy het volgende:

[..]

Een proxy is een proxy (ja echt :p). Maw, je laat het target object ongeroerd en je zet er gewoon iets er overheen (de proxy dus).

Ipv dit zou je ook gewoon zelf de proxy kunnen maken dus eigk geen idee wat die proxy toevoegt. Ik kende hem nog niet.

Hmmm, je maakt me nieuwsgierig; ik ga ook even kijken wat er allemaal bij is gekomen.
Heb je toevallig een voorbeeldje waar je het voor zou gebruiken?

P.s. codecamp of free code camp of zo heeft een reeks videos van nieuwe features die heb ik gekeken.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181927164
quote:
0s.gif Op zaterdag 15 september 2018 17:50 schreef cablegunmaster het volgende:

[..]

1 Om je vraag beter te formuleren: "Wat is extenden en wanneer heb ik dit nodig, en wanneer niet?" want dat zit er achter je eerste vraag:"Wat je zelf doet met het extenden je maakt een object aan wanneer je het programma start dan "extend je van JFrame" en dan is er een object dat ook een JFrame Object is.

"Main object HEEFT een object dat een JFrame is" daarna toon ik het JFrame , het hoeft niet extended te zijn, ik kan hiermee meerdere JFrames opstarten als ik zou willen, of afsluiten en herstarten bijv.

2. Het verschil is de een start als MAIN object,en het is een andere manier van objecten gebruiken . Je moet Objecten aanmaken om ze te gebruiken. als ik het gewoon direct zeg Mainpaneel mainpaneel dan krijg ik nullpointers.

3.Ja ik gebruik geen g.drawstring omdat ik de paint component niet weet hoe die aangeroepen wordt.

Deze wordt altijd INDIRECT aangeroepen, en CONTINUE aangeroepen, zonder dat ik weet wanneer. dus wil ik het liever zelf beheersen, wanneer het veranderd wordt. Ook iets leuks om op te zoeken "wanneer wordt PAINT Component eigenlijk aangeroepen" ? hoe werkt dit?
1. Extend was overbodig want ik voegde niets toe. - is wat ik nu denk te begrijpen.
2. Ik had het object paneel niet netjes aangemaakt.
3. Wat ik er over lees is dat Java zelf bepaald wanneer dat component wordt aangeroepen.

Anyway, ik heb mijn code een soort van werkend!!!!! Volgens mij zorgde repaint() ervoor dat wat g.drawString net getekent had, weer verdween. Nu print ik de boel netjes onder elkaar... maar het is nog niet zo dat een vorige regel die getekent is weer wordt weggehaald om de volgende te tekenen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/* Maak een programma dat de temperatuur bijhoudt en laat oplopen tot 30 graden.
 * De temperatuur is in het begin 15 graden. Zolang de temperatuur onder de 24 graden
 * is, krijg je de melding “Het is nu … graden”. Bij 24 graden begint het toch wel
 * een beetje warm te worden en geeft het programma de melding “Het is boven de 24 graden!”.
 * Maak uiteraard gebruik van de while-loop.
 */

//juiste import
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;

//main class
public class w5d22 extends JFrame {
  public static void main( String args[] ) {
    JFrame frame = new w5d22();
    frame.setSize( 800, 400 );
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    frame.setTitle( "Oefening: temperaturen" );
    Paneel paneel = new Paneel(15);
    frame.setContentPane( paneel );
    frame.setVisible( true );
  }
}

// Paneel
class Paneel extends JPanel {
  private int temperatuur;

  public Paneel(int t){
    temperatuur = t;
  }

  public void paintComponent(Graphics g){
    super.paintComponent(g);
    int x = 40;
    //Zet de waarden op het scherm:
    while(temperatuur < 30){
      if(temperatuur < 24){
        System.out.println("Het is nu " + temperatuur + " graden");
        g.drawString("Het is nu " + temperatuur + " graden", 40, x);
      }
      else if(temperatuur <30){
        System.out.println("Het is boven de 24 graden!");
        g.drawString("Het is boven de 24 graden!", 40, x);
      }
      else{
        System.out.println("Er gaat iets mis!");
        g.drawString("Er gaat iets mis!", 40, x);
      }
      temperatuur++;
      x += 20;
    }
  }
}
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_181927994
quote:
0s.gif Op zaterdag 15 september 2018 21:20 schreef uppie83 het volgende:

[..]

1. Extend was overbodig want ik voegde niets toe. - is wat ik nu denk te begrijpen.
2. Ik had het object paneel niet netjes aangemaakt.
3. Wat ik er over lees is dat Java zelf bepaald wanneer dat component wordt aangeroepen.

Anyway, ik heb mijn code een soort van werkend!!!!! Volgens mij zorgde repaint() ervoor dat wat g.drawString net getekent had, weer verdween. Nu print ik de boel netjes onder elkaar... maar het is nog niet zo dat een vorige regel die getekent is weer wordt weggehaald om de volgende te tekenen.
[ code verwijderd ]

Die laatste else is unreachable, die kan je schrappen als ik het goed heb.

Ізгі тілектер Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  zondag 16 september 2018 @ 11:49:14 #129
436847 embedguy
Embedded in your genius dreams
pi_181938156
quote:
1s.gif Op zaterdag 15 september 2018 18:40 schreef FlippingCoin het volgende:

[..]

Heb je toevallig een voorbeeldje waar je het voor zou gebruiken?

P.s. codecamp of free code camp of zo heeft een reeks videos van nieuwe features die heb ik gekeken.
Zelf zal ik Proxy wss nooit gaan gebruiken :+.

MDN heeft wel een aantal mooie voorbeelden; https://developer.mozilla(...)Global_Objects/Proxy

Even de veranderingen bekeken in de EcmaScript standaard waarvan ik nog niet vanaf wist. ES2018 heeft wel leuke toevoegingen wb regular expressions.
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
  zondag 16 september 2018 @ 11:52:23 #130
436847 embedguy
Embedded in your genius dreams
pi_181938198
quote:
16s.gif Op zaterdag 15 september 2018 21:53 schreef FlippingCoin het volgende:

[..]

Die laatste else is unreachable, die kan je schrappen als ik het goed heb.

Ізгі тілектер Flip.
Niet heel ongebruikelijk om hem toch te definiëren. Als er een keer een foutje erin sluipt, dan merk je dat ten minste.
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_181938366
quote:
99s.gif Op zondag 16 september 2018 11:52 schreef embedguy het volgende:

[..]

Niet heel ongebruikelijk om hem toch te definiëren. Als er een keer een foutje erin sluipt, dan merk je dat ten minste.
Als er een foutje in je code sluipt? Want die while en else if omvatten een gelijk univerdum toch?
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181938383
quote:
11s.gif Op zondag 16 september 2018 11:49 schreef embedguy het volgende:

[..]

Zelf zal ik Proxy wss nooit gaan gebruiken :+.

MDN heeft wel een aantal mooie voorbeelden; https://developer.mozilla(...)Global_Objects/Proxy

Even de veranderingen bekeken in de EcmaScript standaard waarvan ik nog niet vanaf wist. ES2018 heeft wel leuke toevoegingen wb regular expressions.
Proxy, symbol en yield kende ik o.a. nog niet in javascript. :P
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  zondag 16 september 2018 @ 12:17:54 #133
436847 embedguy
Embedded in your genius dreams
pi_181938530
quote:
1s.gif Op zondag 16 september 2018 12:08 schreef FlippingCoin het volgende:

[..]

Als er een foutje in je code sluipt? Want die while en else if omvatten een gelijk univerdum toch?
Klopt, ik bedoel voor als je dingen in de toekomst gaat aanpassen en je ziet bijv een keer wat over het hoofd. Of als het complexer wordt. Je wilt niet weten hoe vaak er perongeluk ergens bijv. '<' gebruikt ipv '<='. Dan kan zo'n else nog wel eens handig zijn.

Op zich heb je gelijk. Zelf krijg ik altijd de kriebels van een onafgehandelde staat though :p. In dit geval zou ik overigens gewoon de else if veranderen naar een else.
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_181938667
quote:
1s.gif Op zondag 16 september 2018 12:17 schreef embedguy het volgende:

[..]

Klopt, ik bedoel voor als je dingen in de toekomst gaat aanpassen en je ziet bijv een keer wat over het hoofd. Of als het complexer wordt. Je wilt niet weten hoe vaak er perongeluk ergens bijv. '<' gebruikt ipv '<='. Dan kan zo'n else nog wel eens handig zijn.

Op zich heb je gelijk. Zelf krijg ik altijd de kriebels van een onafgehandelde staat though :p. In dit geval zou ik overigens gewoon de else if veranderen naar een else.
Ah oké. Ik zou denk ik gewoon een unit test schrijven voor zo iets. Maar je hebt gelijk voor komemde wijzigingen zou dit handig kunnen zijn alleen dat die wel weet dat in dit geval iig die else nooit bereikt gaat worden dan. :P
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181941563
code]
public class w5d22 extends JFrame {
public static void main( String args[] ) {
JFrame frame = new w5d22();
[/code]

Deze 3 regels struikel ik over,

1. je maakt via public void main een new w5d22(); object aan,
ik zou hetzelf apart houden, een Main klasse maken die het object / View aanmaakt. zoals het voorbeeld.
quote:
0s.gif Op zaterdag 15 september 2018 21:20 schreef uppie83 het volgende:
Anyway, ik heb mijn code een soort van werkend!!!!! Volgens mij zorgde repaint() ervoor dat wat g.drawString net getekent had, weer verdween. Nu print ik de boel netjes onder elkaar... maar het is nog niet zo dat een vorige regel die getekent is weer wordt weggehaald om de volgende te tekenen.
Teken witte achtergrond,
Teken regel,
- wacht 1 -2 seconde? Thread sleep?
Vervolgens teken witte achtergrond,
Teken regel,
- wacht
Teken witte achtergrond.
Teken regel.
- wacht.

Anders is het wel heel snel voorbij je teller. :P

[ Bericht 6% gewijzigd door cablegunmaster op 17-09-2018 09:16:57 ]
Redacted
pi_181946014
quote:
1s.gif Op zondag 16 september 2018 12:17 schreef embedguy het volgende:

[..]

Klopt, ik bedoel voor als je dingen in de toekomst gaat aanpassen en je ziet bijv een keer wat over het hoofd. Of als het complexer wordt. Je wilt niet weten hoe vaak er perongeluk ergens bijv. '<' gebruikt ipv '<='. Dan kan zo'n else nog wel eens handig zijn.

Op zich heb je gelijk. Zelf krijg ik altijd de kriebels van een onafgehandelde staat though :p. In dit geval zou ik overigens gewoon de else if veranderen naar een else.


Mogelijk heb ik een toepassing voor een proxy gevonden, maar misschien zie ik wat dingen over het hoofd. Het kan trouwens wat netter qua code maar was even om te testen.

Stel je hebt een array in een service, en je hebt in wat controllers wat observers van deze array. Dan zou de proxy kunnen forceren dat bij iedere push naar de array alle observers die waarde toegestuurd krijgen.

Hörmətlə Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  zondag 16 september 2018 @ 20:35:34 #137
436847 embedguy
Embedded in your genius dreams
pi_181949316
quote:
16s.gif Op zondag 16 september 2018 18:27 schreef FlippingCoin het volgende:

[..]

[ afbeelding ]

Mogelijk heb ik een toepassing voor een proxy gevonden, maar misschien zie ik wat dingen over het hoofd. Het kan trouwens wat netter qua code maar was even om te testen.

Stel je hebt een array in een service, en je hebt in wat controllers wat observers van deze array. Dan zou de proxy kunnen forceren dat bij iedere push naar de array alle observers die waarde toegestuurd krijgen.

Hörmətlə Flip.
Aja, mooi voorbeeld. Zelf ook nog even nagedacht; wellicht dat ik hem zelf toch ook nog wel een keer ga gebruiken. Bijv met validatie functionaliteit. Dus dat je de proxy over een 3th party object heen zet en zo de mogelijkheid hebt om te controleren of er wel valide argumenten worden meegegeven aan de methods op dat object.

Even opgezocht hoe dat dan zou moeten met de proxy tussen methods:
http://2ality.com/2015/10/intercepting-method-calls.html
Jammer; toch nog een hoop boilerplate code nodig omzoiets te doen :/.
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_181956906
quote:
0s.gif Op zondag 16 september 2018 14:41 schreef cablegunmaster het volgende:
code]
public class w5d22 extends JFrame {
public static void main( String args[] ) {
JFrame frame = new w5d22();
[/code]

Deze 3 regels struikel ik over,

1. je maakt via public void main een new w5d22(); object aan,
ik zou hetzelf apart houden, een Main klasse maken die het object / View aanmaakt. zoals het voorbeeld.

[..]

Teken witte achtergrond,
Teken regel,
Vervolgens teken witte achtergrond,
Teken regel,
Teken witte achtergrond.
Helder, bedankt voor de assistentie!!!!
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_181957620
quote:
0s.gif Op maandag 17 september 2018 08:08 schreef uppie83 het volgende:

[..]

Helder, bedankt voor de assistentie!!!!
Vergeet er niet een soort van wacht in te zetten anders kan het heel snel zijn , als in flits ....eind resultaat.
Redacted
pi_182022621
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// use XOR to encode and decode a message

class Encode{
  public static void main(String[] args){
    String msg = "This is a test";
    String encMsg = "";
    String decMsg = "";
    String key = "AbCdEfGh";
    int j;
    
    System.out.print("Original message: ");
    System.out.println(msg);
    
    //encode the message
    j = 0;
    for(int i=0; i < msg.length(); i++){
      encMsg = encMsg + (char) (msg.charAt(i) ^ key.charAt(j));
      j++;
    }
    
    System.out.print("Encoded message: ");
    System.out.println(encMsg);
    
    //decode the message
    j = 0;
    for(int i=0; i < msg.length(); i++){
      decMsg = decMsg + (char) (encMsg.charAt(i) ^ key.charAt(j));
      j++;
    }
    
    System.out.print("Decoded message: ");
    System.out.println(decMsg);
  }
}

Ik zie even niet waarom int j er voor zorgt dat er een StringIndexOutOfBoundsException komt...

---------
Laat maar, gevonden |:(

String msg komt natuurlijk op een gegeven moment op index 8, welke niet bestaat bij String key.

[ Bericht 4% gewijzigd door uppie83 op 20-09-2018 11:13:40 ]
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_182026384
quote:
0s.gif Op donderdag 20 september 2018 10:46 schreef uppie83 het volgende:

[ code verwijderd ]

Ik zie even niet waarom int j er voor zorgt dat er een StringIndexOutOfBoundsException komt...

---------
Laat maar, gevonden |:(

String msg komt natuurlijk op een gegeven moment op index 8, welke niet bestaat bij String key.
Je kan de j variabele ook in de for constructie declareren naast i.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182027583
Ik zou trouwens ook vast wennen aan om je variabelen een wat beschrijvendere naam te geven. En dan niet i of j want dat is wel vrij ganbaar voor een iterator, maar key bijvoorbeeld.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182028018
quote:
1s.gif Op donderdag 20 september 2018 15:14 schreef FlippingCoin het volgende:
Ik zou trouwens ook vast wennen aan om je variabelen een wat beschrijvendere naam te geven. En dan niet i of j want dat is wel vrij ganbaar voor een iterator, maar key bijvoorbeeld.
encodeKey
decodeKey bv? :P
daarnaast 2x i zo dichtbij elkaar gebruiken is voor mij een riskant gevoel, error prone.
Redacted
pi_182028359
quote:
0s.gif Op donderdag 20 september 2018 15:32 schreef cablegunmaster het volgende:

[..]

encodeKey
decodeKey bv? :P
daarnaast 2x i zo dichtbij elkaar gebruiken is voor mij een riskant gevoel, error prone.
Ja, volgens clean code kan je beter een langere beschrijvende naam hebben dan een korte als key, key wordt op zoveel manieren gebuikt. Nu is dit een triviaal voorbeeld waardoor je maar een paar regels context hebt maar wel goed om aan te wennen denk ik. :P
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182030125
quote:
1s.gif Op donderdag 20 september 2018 15:49 schreef FlippingCoin het volgende:

[..]

Ja, volgens clean code kan je beter een langere beschrijvende naam hebben dan een korte als key, key wordt op zoveel manieren gebuikt. Nu is dit een triviaal voorbeeld waardoor je maar een paar regels context hebt maar wel goed om aan te wennen denk ik. :P
Daar kan ik helemaal mee eens zijn.
Maar dit leer je gaanderweg ook, als je door andermans code heen spit.
Redacted
pi_182033188
Ik neem de tips weer mee!
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
  donderdag 20 september 2018 @ 21:09:15 #147
436847 embedguy
Embedded in your genius dreams
pi_182034838
quote:
1s.gif Op donderdag 20 september 2018 14:05 schreef FlippingCoin het volgende:

[..]

Je kan de j variabele ook in de for constructie declareren naast i.
... En ook ophogen, naast het ophogen van i.

In fact heb je j niet eens nodig, aangezien hij gelijk is aan i. Of zie ik je keuze daarvoor over het hoofd? :@
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_182035192
quote:
7s.gif Op donderdag 20 september 2018 21:09 schreef embedguy het volgende:

[..]

... En ook ophogen, naast het ophogen van i.

In fact heb je j niet eens nodig, aangezien hij gelijk is aan i. Of zie ik je keuze daarvoor over het hoofd? :@
Ja dat bedoelde ik inderdaad, twee variabelen in de loop constructie. :@

Oh ja het voordeel hiervan is trouwens een verkleinde scope. :P
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182043579
quote:
1s.gif Op donderdag 20 september 2018 21:23 schreef FlippingCoin het volgende:

[..]

Ja dat bedoelde ik inderdaad, twee variabelen in de loop constructie. :@

Oh ja het voordeel hiervan is trouwens een verkleinde scope. :P
Ik ben inmiddels bekend met de term scope ;)
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_182044506
quote:
0s.gif Op vrijdag 21 september 2018 10:25 schreef uppie83 het volgende:

[..]

Ik ben inmiddels bekend met de term scope ;)
Mooi zo, en en ook al waarom een kleinere scope beter is? ^O^
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182044535
quote:
1s.gif Op vrijdag 21 september 2018 11:34 schreef FlippingCoin het volgende:

[..]

Mooi zo, en en ook al waarom een kleinere scope beter is? ^O^
Het staat er niet letterlijk, maar ik vermoed dat het gaat om de "veiligheid". Hoe kleiner de scope hoe minder methodes en expressies er bij de variabele kunnen en eventueel met de waarde kunnen knoeien.
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_182044718
quote:
0s.gif Op vrijdag 21 september 2018 11:37 schreef uppie83 het volgende:

[..]

Het staat er niet letterlijk, maar ik vermoed dat het gaat om de "veiligheid". Hoe kleiner de scope hoe minder methodes en expressies er bij de variabele kunnen en eventueel met de waarde kunnen knoeien.
Ja precies. _O_

Hoe kleiner de scope hoe kleiner de side effects. ^O^
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182053057
Even een ander soort vraag, wordt het bedenken en ontwerpen van een programma nog steeds gedaan in UML?
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_182053602
quote:
0s.gif Op vrijdag 21 september 2018 19:55 schreef uppie83 het volgende:
Even een ander soort vraag, wordt het bedenken en ontwerpen van een programma nog steeds gedaan in UML?
Waar ik stage liep wel. Maar niet alles.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  vrijdag 21 september 2018 @ 21:42:05 #155
436847 embedguy
Embedded in your genius dreams
pi_182055350
quote:
0s.gif Op vrijdag 21 september 2018 19:55 schreef uppie83 het volgende:
Even een ander soort vraag, wordt het bedenken en ontwerpen van een programma nog steeds gedaan in UML?
Sure, wellicht niet alles maar wrl veel. Is er een goed alternatief dan?
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_182089483
quote:
1s.gif Op vrijdag 21 september 2018 21:42 schreef embedguy het volgende:

[..]

Sure, wellicht niet alles maar wrl veel. Is er een goed alternatief dan?
Geen idee... ik ken alleen UML van lang lang lang geleden.

Ben trouwens weer een stukje verder. Nu kwam het stuk over recursieve methoden/functies. Die vind ik wel lastig. Ik snap dat het gaat over methoden die zichzelf aanroepen. Maar naar wat ik er tot nu toe van begrijp zijn het eigenlijk een soort fancy loop-methoden. Waarom zou je dit dan verkiezen boven iets als een for of while loop?
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
  zondag 23 september 2018 @ 23:07:11 #157
85514 ralfie
!Yvan eht nioj
pi_182094111
quote:
0s.gif Op zondag 23 september 2018 19:26 schreef uppie83 het volgende:

Ben trouwens weer een stukje verder. Nu kwam het stuk over recursieve methoden/functies. Die vind ik wel lastig. Ik snap dat het gaat over methoden die zichzelf aanroepen. Maar naar wat ik er tot nu toe van begrijp zijn het eigenlijk een soort fancy loop-methoden. Waarom zou je dit dan verkiezen boven iets als een for of while loop?
doorlopen van directories is veel makkelijker met een recursieve functie, vgl (pseudocode):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function listfiles(directory)
{
  foreach(file in directory)
  {
     if (file is a file)
        doe iets met file   
     if (file is a directory)
        listfiles(directory + file)
  }
}
//loop door directory
listfiles("C:\")

vs

function listfilesrecursive(directory)
{
  directorylist=[]
  directorylist.add(directory)

  while(directorylist.Count > 0)
  {
      var directory = directorylist.RemoveLast;
      foreach(file in directory)
      {
         if (file is a file)
            doe iets met file   
         if (file is a directory)
            directorylist.add(directory + file)
      }
  }
}

Recursieve functies zijn zo veel makkerlijker te schrijven, maar hebben ook beperkingen zoals dat sommige talen die diepte waarop je recursief functies kan blijven aanroepen beperkt is, en dat dit soms minder efficient is als met een list werken. Zelf gebruik ik het liefste optie 2, maar optie 1 is verreweg makkelijker te begrijpen en schrijven.
pi_182094393
quote:
0s.gif Op zondag 23 september 2018 19:26 schreef uppie83 het volgende:

[..]

Geen idee... ik ken alleen UML van lang lang lang geleden.

Ben trouwens weer een stukje verder. Nu kwam het stuk over recursieve methoden/functies. Die vind ik wel lastig. Ik snap dat het gaat over methoden die zichzelf aanroepen. Maar naar wat ik er tot nu toe van begrijp zijn het eigenlijk een soort fancy loop-methoden. Waarom zou je dit dan verkiezen boven iets als een for of while loop?
Heb je een vak data structuren en algoritmen of zo iets? Daar komt dit wel weer terug iig.

Maakt inderdaad het doorlopen van bomen een stuk makkelijker.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182094459
Het wordt trouwens in het functionele paradigma ook gebruikt i.p.v. de loops zoals jij ze kent. :P
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182098894
quote:
0s.gif Op zondag 23 september 2018 23:07 schreef ralfie het volgende:

[..]

doorlopen van directories is veel makkelijker met een recursieve functie, vgl (pseudocode):
[ code verwijderd ]

Recursieve functies zijn zo veel makkerlijker te schrijven, maar hebben ook beperkingen zoals dat sommige talen die diepte waarop je recursief functies kan blijven aanroepen beperkt is, en dat dit soms minder efficient is als met een list werken. Zelf gebruik ik het liefste optie 2, maar optie 1 is verreweg makkelijker te begrijpen en schrijven.
Is het dan toch ook een kwestie van 'smaak'?

quote:
1s.gif Op zondag 23 september 2018 23:22 schreef FlippingCoin het volgende:

[..]

Heb je een vak data structuren en algoritmen of zo iets? Daar komt dit wel weer terug iig.

Maakt inderdaad het doorlopen van bomen een stuk makkelijker.
Bomen ben ik nog niet, denk ook niet dat dit behandeld wordt in dit boek. Dit is hoofdstuk 6 van 'A Beginner's Guide'. Daarnaast heb ik geen vakken ;)
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_182099872
quote:
0s.gif Op maandag 24 september 2018 10:31 schreef uppie83 het volgende:

[..]

Is het dan toch ook een kwestie van 'smaak'?

[..]

Bomen ben ik nog niet, denk ook niet dat dit behandeld wordt in dit boek. Dit is hoofdstuk 6 van 'A Beginner's Guide'. Daarnaast heb ik geen vakken ;)
Ah excuus ik dacht dat jij ook een student was. Wat wel leuk is, eens een bepaalde boom structuur te programmeren en een zoek algoritme en jezelf daarin wat te verdiepen.

Recursie gaat wel wat verder dan een voorkeur iig, soms is het de beste oplossing.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182099908
quote:
1s.gif Op maandag 24 september 2018 11:33 schreef FlippingCoin het volgende:

[..]

Ah excuus ik dacht dat jij ook een student was. Wat wel leuk is, eens een bepaalde boom structuur te programmeren en een zoek algoritme en jezelf daarin wat te verdiepen.

Recursie gaat wel wat verder dan een voorkeur iig, soms is het de beste oplossing.
oh codinggame.com heeft daar een paar leuke opdrachten in. (online code schrijven, in ELKE taal die je leuk vindt) die ik zelf ook eens wil gaan maken. :*
Redacted
pi_182100040
quote:
0s.gif Op maandag 24 september 2018 11:35 schreef cablegunmaster het volgende:

[..]

oh codinggame.com heeft daar een paar leuke opdrachten in. (online code schrijven, in ELKE taal die je leuk vindt) die ik zelf ook eens wil gaan maken. :*
Klinkt goed ga ik ook eens proberen. :P _O_
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182101245
Ziet er zeker tof uit!
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_182112591
Hebben jullie ook vaak een idee, en dat je dan denkt dat je iets cools bedacht hebt en het al lang blijkt te bestaan? :')


Mahadsanidin Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182119477
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
       static void Main(string[] args)
        {
            Console.WriteLine("Enter Score: ");

            string invoerScore = Console.ReadLine();
            int score = int.Parse(invoerScore);

            if (score > 69)
            {
                Console.WriteLine("Course passed");
            }

            else
            {
                Console.WriteLine("Course not passed");
            }

            switch (score)
            {
                case 90 - 100:
                    Console.WriteLine("Grade A");
                    break;
                case 80 - 89:
                    Console.WriteLine("Grade B");
                    break;
                case 70 - 79:
                    Console.WriteLine("Grade C");
                    break;
                case 60 - 69:
                    Console.WriteLine("Grade D");
                    break;
                case 0 - 59: 
                    Console.WriteLine("Grade F");
                    break;
                default:
                    Console.WriteLine("Enter score between 0 and 100! ");
                    break;
                  }

            Console.ReadKey();
        }

Heren, even een vraag. Hoe kan ik ervoor zorgen dat de ingevoerde score in categorie Grade A/B/C/D/F valt?

Met andere woorden, wat moet ik achter de ''case'' zetten? 90 - 100 werkt bijvoorbeeld niet. Of zou ik alles met if/ else if moeten doen?

Overigens is dit in C#.

[ Bericht 0% gewijzigd door #ANONIEM op 25-09-2018 08:36:06 ]
pi_182120509
case > 90

case > 80

case > 70 et cetera

Of

case < 60

case < 70 ...
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182123334
quote:
0s.gif Op dinsdag 25 september 2018 08:35 schreef Luppie0110 het volgende:
Met andere woorden, wat moet ik achter de ''case'' zetten? 90 - 100 werkt bijvoorbeeld niet. Of zou ik alles met if/ else if moeten doen?
Switch is een grote IF ELSE statement. :P
Dus het meeste wat je met if else kan , kan je ook met een switch statement.
Redacted
pi_182123711
Vanavond verder met bitshiften en kijken hoe het werkt. *O* Ik voel me gelijk een jaren 1980 programmeur. Bitjes tellen en kijken of het klopt . :D
Redacted
pi_182125556
quote:
0s.gif Op dinsdag 25 september 2018 13:46 schreef cablegunmaster het volgende:
Vanavond verder met bitshiften en kijken hoe het werkt. *O* Ik voel me gelijk een jaren 1980 programmeur. Bitjes tellen en kijken of het klopt . :D
Ah daar zijn de bitwise operators weer (8>
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_182126400
quote:
0s.gif Op dinsdag 25 september 2018 13:46 schreef cablegunmaster het volgende:
Vanavond verder met bitshiften en kijken hoe het werkt. *O* Ik voel me gelijk een jaren 1980 programmeur. Bitjes tellen en kijken of het klopt . :D
Wat ga je er mee maken dan? :o
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182126752
quote:
1s.gif Op dinsdag 25 september 2018 16:45 schreef FlippingCoin het volgende:

[..]

Wat ga je er mee maken dan? :o
Websocket Exchanging data frames ben ik nu mee bezig.

Zie:
https://developer.mozilla(...)ng_WebSocket_servers
Redacted
pi_182128800
quote:
1s.gif Op dinsdag 25 september 2018 10:19 schreef FlippingCoin het volgende:
case > 90

case > 80

case > 70 et cetera

Of

case < 60

case < 70 ...
Hoe noteer ik het juist achter de case? Als ik noteer zoals jij dan werkt het niet.
  dinsdag 25 september 2018 @ 19:03:48 #174
85514 ralfie
!Yvan eht nioj
pi_182128883
quote:
0s.gif Op dinsdag 25 september 2018 08:35 schreef Luppie0110 het volgende:

[ code verwijderd ]

Heren, even een vraag. Hoe kan ik ervoor zorgen dat de ingevoerde score in categorie Grade A/B/C/D/F valt?

Met andere woorden, wat moet ik achter de ''case'' zetten? 90 - 100 werkt bijvoorbeeld niet. Of zou ik alles met if/ else if moeten doen?

Overigens is dit in C#.
score eerst door 10 delen. Integers worden standaard getruncated, dus werkt prima. C# ondersteunt geen ranges bij case statements.
pi_182128930
quote:
0s.gif Op dinsdag 25 september 2018 19:03 schreef ralfie het volgende:

[..]

score eerst door 10 delen. Integers worden standaard getruncated, dus werkt prima. C# ondersteunt geen ranges bij case statements.
Helder. Thanks!
pi_182128994
quote:
0s.gif Op dinsdag 25 september 2018 19:03 schreef ralfie het volgende:

[..]

score eerst door 10 delen. Integers worden standaard getruncated, dus werkt prima. C# ondersteunt geen ranges bij case statements.
Heeft C# een range operator op die manier? :o
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  dinsdag 25 september 2018 @ 19:10:15 #177
85514 ralfie
!Yvan eht nioj
pi_182129017
quote:
0s.gif Op dinsdag 25 september 2018 19:06 schreef Luppie0110 het volgende:

[..]

Helder. Thanks!
vanaf c# v 7 is er trouwens ook

case int x when x>0 && x < 9:

maar ik bel de politie als je dat gebruikt. Bovendien werkt dit maar 1 keer (case statements zijn mutually exclusive): https://docs.microsoft.co(...)ence/keywords/switch
  dinsdag 25 september 2018 @ 19:12:39 #178
85514 ralfie
!Yvan eht nioj
pi_182129071
quote:
1s.gif Op dinsdag 25 september 2018 19:09 schreef FlippingCoin het volgende:

[..]

Heeft C# een range operator op die manier? :o
100/10 -> 10
99/10 -> 9
92/10 -> 9
88/10 -> 8
etc.
pi_182129123
quote:
0s.gif Op dinsdag 25 september 2018 19:12 schreef ralfie het volgende:

[..]

100/10 -> 10
99/10 -> 9
92/10 -> 9
88/10 -> 8
etc.
Oh op die manier ik dacht al. :@ Maar waarom zou je dat verkiezen over de groter dan operator?
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  dinsdag 25 september 2018 @ 19:19:05 #180
85514 ralfie
!Yvan eht nioj
pi_182129192
quote:
1s.gif Op dinsdag 25 september 2018 19:15 schreef FlippingCoin het volgende:

[..]

Oh op die manier ik dacht al. :@ Maar waarom zou je dat verkiezen over de groter dan operator?
omdat case > 9 niet kan maar case 9 wel:

select (score/10)
{
case 10://100
case 9://99-90
etc
}
pi_182129462
quote:
0s.gif Op dinsdag 25 september 2018 19:19 schreef ralfie het volgende:

[..]

omdat case > 9 niet kan maar case 9 wel:

select (score/10)
{
case 10://100
case 9://99-90
etc
}
Oh oké dat wist ik niet dacht dat de switch case overal gelijk was. :o
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182152924
Momenteel in het hoofdstuk over interfaces. Van de volgende zin weet ik even niet exact wat er bedoeld wordt:

"If a class includes an interface but does not fully implement the methods defined by that interface, then that class must be declared as abstract."

Bedoelen ze hier de class die de interface implementeert? Of bedoelen ze hier een interface die genest is in een class? Misschien nog iets anders?
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_182158599
quote:
0s.gif Op woensdag 26 september 2018 21:31 schreef uppie83 het volgende:
Momenteel in het hoofdstuk over interfaces. Van de volgende zin weet ik even niet exact wat er bedoeld wordt:

"If a class includes an interface but does not fully implement the methods defined by that interface, then that class must be declared as abstract."

Bedoelen ze hier de class die de interface implementeert? Of bedoelen ze hier een interface die genest is in een class? Misschien nog iets anders?
Klasse die een interface implementeert.
Want een interface is een contract.

pseudo voorbeeld:
1
2
3
4
5
6
interface CleanUpProtocol {

removeStuff();

dustRoom();
}
Interface iCleanupProtocol met 2 functies. Wil je een cleanupProtocol implementen dan moet je allebei de methodes uitschrijven en gebruiken.
1
2
3
4
5
6
7
8
9
10
11
public class Cleaner implements iCleanupProtocol {

public void removeStuff(){
   //do stuff.
}

public void dustRoom(){
  //do dust.
}

}
Hier is een volledige "Cleaner" klasse die beide methode implementeert. Interfaces zijn als kleine contractjes.

Als het niet volledig implementeert en een functie vergeet dan is het een abstracte implementatie. want dan zijn er functies niet uitgeschreven. dan snapt dat object niet hoe die een functie moet uitvoeren.

Aantekening:
het zorgt ervoor dat ik functies ergens anders kan aanroepen die er ALTIJD zijn. Dan kan ik zeggen alle objecten die de interface "Cleaner" hebben doe "cleaner.dustroom();" Het kan een cleaner object zijn of een geheel ander object dat ook de Interface implementeert.

Aantekening:
"abstract" is een term voor niet geheel uitgeschreven functies, die uit een interface komen, maar die wel gebruik maken van interfaces. een halve interface met wat werkende code maar niet geheel.

Meer voorbeelden:
https://o7planning.org/en(...)nd-interface-in-java
Redacted
pi_182159670
quote:
0s.gif Op donderdag 27 september 2018 07:56 schreef cablegunmaster het volgende:

[..]

Klasse die een interface implementeert.
Want een interface is een contract.

...

Meer voorbeelden:
https://o7planning.org/en(...)nd-interface-in-java
Bedankt voor de uitleg, het is weer helder!
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_182180542
Zelf wil ik bitwise operators leren maar begrijp ik ze nog niet helemaal :o .
Redacted
pi_182186034
Iemand hier ervaring met functioneel programmeren?
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  zaterdag 29 september 2018 @ 13:34:54 #187
436847 embedguy
Embedded in your genius dreams
pi_182203888
quote:
0s.gif Op vrijdag 28 september 2018 09:49 schreef cablegunmaster het volgende:
Zelf wil ik bitwise operators leren maar begrijp ik ze nog niet helemaal :o .
Misschien eens spelen met een Arduino of iets vergelijkbaars. Dan leer je het snel zat.
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
  zaterdag 29 september 2018 @ 13:39:20 #188
436847 embedguy
Embedded in your genius dreams
pi_182203939
quote:
1s.gif Op vrijdag 28 september 2018 15:05 schreef FlippingCoin het volgende:
Iemand hier ervaring met functioneel programmeren?
Niemand echt denk ik, afaik wordt het alleen maar gebruikt op universiteiten. Nooit echt in het bedrijfsleven, behalve dan een beetje met JavaScript.

Zelf een beetje aan het hobbyen met React Redux (voor state management in React applicaties). Zitten ook wat functionele aspecten aan waar ze leuke voordelen uit weten te halen.
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_182204114
quote:
1s.gif Op zaterdag 29 september 2018 13:39 schreef embedguy het volgende:

[..]

Niemand echt denk ik, afaik wordt het alleen maar gebruikt op universiteiten. Nooit echt in het bedrijfsleven, behalve dan een beetje met JavaScript.

Zelf een beetje aan het hobbyen met React Redux (voor state management in React applicaties). Zitten ook wat functionele aspecten aan waar ze leuke voordelen uit weten te halen.
Ik zie er steeds meer talks over voorbij komen en vind de gedachte erachter niet verkeerd eigenlijk. Wel inderdaad aan de front-end allemaal. Vooral React gaat steeds meer funtioneel, zelfs tot purescript. Ik snap alleen niet als je bijvoorbeeld een wizard menu hebt, normaal maak je een object en die vul je gewoon in bijvoorbeeld in drie stappen aan.

Zou je volgens het functionele paradigma een map gebruiken in combinatie met gecurryde(? geen hoe je dat Nederlands schrijft) functies? :?
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  zaterdag 29 september 2018 @ 15:21:47 #190
436847 embedguy
Embedded in your genius dreams
pi_182205400
quote:
1s.gif Op zaterdag 29 september 2018 13:55 schreef FlippingCoin het volgende:

[..]

Ik zie er steeds meer talks over voorbij komen en vind de gedachte erachter niet verkeerd eigenlijk. Wel inderdaad aan de front-end allemaal. Vooral React gaat steeds meer funtioneel, zelfs tot purescript. Ik snap alleen niet als je bijvoorbeeld een wizard menu hebt, normaal maak je een object en die vul je gewoon in bijvoorbeeld in drie stappen aan.

Zou je volgens het functionele paradigma een map gebruiken in combinatie met gecurryde(? geen hoe je dat Nederlands schrijft) functies? :?
Hmmm, ik ben er ook nogal onbekend mee. Net even een presentatie bekeken van Purescript. Ik kende het niet eens.

Ik snap je vraag over de wizard menu niet helemaal. Bedoel je iets met React icm Purescript?

Wel interessante materie 😇
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_182205480
quote:
1s.gif Op zaterdag 29 september 2018 15:21 schreef embedguy het volgende:

[..]

Hmmm, ik ben er ook nogal onbekend mee. Net even een presentatie bekeken van Purescript. Ik kende het niet eens.

Ik snap je vraag over de wizard menu niet helemaal. Bedoel je iets met React icm Purescript?

Wel interessante materie 😇
Nou voor mijn app heb ik een menu verspreid over drie schermen, een soort wizard menu. Eerste scherm selecteer je een winkel, tweede scherm met wie je de lijst wil delen et cetera.

Normaal zou ik een Lijst object maken, en per scherm de attributen van dat object invoeren.

Volgens het functionele paradigma is een mutatie van state ongewenst, dan vraag ik mij af hoe je dit het beste aan kan pakken. Een oplossing zou zijn een curried function, waarbij je de argumenten in meerdere stappen kan geven en in de tussentijd de functies bewaart. Maar of dat de beste manier is weet ik niet echt.

Ізгі тілектер Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  zaterdag 29 september 2018 @ 21:10:05 #192
436847 embedguy
Embedded in your genius dreams
pi_182211544
quote:
16s.gif Op zaterdag 29 september 2018 15:27 schreef FlippingCoin het volgende:

[..]

Nou voor mijn app heb ik een menu verspreid over drie schermen, een soort wizard menu. Eerste scherm selecteer je een winkel, tweede scherm met wie je de lijst wil delen et cetera.

Normaal zou ik een Lijst object maken, en per scherm de attributen van dat object invoeren.

Volgens het functionele paradigma is een mutatie van state ongewenst, dan vraag ik mij af hoe je dit het beste aan kan pakken. Een oplossing zou zijn een curried function, waarbij je de argumenten in meerdere stappen kan geven en in de tussentijd de functies bewaart. Maar of dat de beste manier is weet ik niet echt.

Ізгі тілектер Flip.
Van welke stack maak je gebruik? React, Context API, TypeScript?

Wat ik zo snel bedenk;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
import React from "react";

interface Menu {
    options: string[];
    selected?: number;
 }
 interface MenuWizardResult {
    menus: Menu[];
 } 
 interface MenuWizardState extends MenuWizardResult{
    menuIndex: number;
 } 
 
 interface AppState {
    menuWizard: MenuWizardState;
    otherComponent: OtherComponentState;
    showWizard: boolean;
 } 
 
 class App extends React.Component<AppState> {
    constructor(props) {
        super(props);
        this.state = {
            menuWizard: {
                menus: [
                    { options: ["winkel 1", "winkel 2", "winkel 3"]},
                    { options: ["option 1", "option 2", "option 3"]},
                    { options: ["option 1", "option 2", "option 3"]},
                ],
                menuIndex = 0,
            },
            otherComponent: {}.
            showWizard: true, 
        };
    }
    
    render() {
        if (!this.state.showWizard) {
           return <OtherComponent options={this.state.otherComponent} setState={(newState) => this.setState(newState)} />;
        } else { 
            return <MenuWizard options={this.state.menuWizars} setState={(newState) => {
                const menuWizardFinished = newState.menuWizardState.menus.find((menu) => menu.selected === undefined) === undefined;
                if (menuWizardFinished) {
                    // handle results
                } 
                this.setState({
                    ...this.state,
                    showWizard: !menuWizardFinished, 
                    menuWizardState: newState
                });
            }} />;
        }
    }
}
const MenuWizard = ({options, setState}) => {
    return <StatelessMenuWindow options={options.menu[options.menuIndex]} selectOption={(index: number) => {
        const newState = {
            ...options,
            menuIndex: options.menuIndex+1,
        };
        newState.menus[options.menuIndex] = {
            ...newState.menus[options.menuIndex],
            selected: index
        }; 
        setState(newState);
    }} />; 
}

Disclaimer; op de mobiel getypt. En dit is hopeloos op een mobiel, dus nu ren ik even naar de pc om het netter te maken :+.

[ Bericht 13% gewijzigd door embedguy op 29-09-2018 22:21:56 ]
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_182211555
quote:
1s.gif Op zaterdag 29 september 2018 21:10 schreef embedguy het volgende:

[..]

Van welke stack maak je gebruik? React, Context API, TypeScript?

Wat ik zo snel bedenk;
[ code verwijderd ]

Disclaimer; op de mobiel getypt. En dit hopeloos op een mobiel, dus nu ren ik even naar de pc om het netter te maken :+.
TypeScript ja, even bekijken.

Z poważaniem Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  zaterdag 29 september 2018 @ 22:29:03 #194
436847 embedguy
Embedded in your genius dreams
pi_182213347
quote:
16s.gif Op zaterdag 29 september 2018 21:10 schreef FlippingCoin het volgende:

[..]

TypeScript ja, even bekijken.

Z poważaniem Flip.
Aja, heb de code wat netter gemaakt. Ik wist overigens niet zeker wat je bedoelde met de menuwizard. Ik hoop dat je zoiets bedoelde als in mijn voorbeeld. Zelf ook nog geen ervaring met die stateless functionele react componenten, wel interessant om even in te verdiepen :).
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_182213839
quote:
0s.gif Op zaterdag 29 september 2018 22:29 schreef embedguy het volgende:

[..]

Aja, heb de code wat netter gemaakt. Ik wist overigens niet zeker wat je bedoelde met de menuwizard. Ik hoop dat je zoiets bedoelde als in mijn voorbeeld. Zelf ook nog geen ervaring met die stateless functionele react componenten, wel interessant om even in te verdiepen :).
Thanks zal het morgen even rustig bekijken. ^O^

Heb net ook een boek gevonden over functioneel programmeren in ES6 van 180 bladzijden of zo. Ook maar eens doorlezen. :P
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182253114
quote:
1s.gif Op zaterdag 29 september 2018 22:44 schreef FlippingCoin het volgende:

[..]

Thanks zal het morgen even rustig bekijken. ^O^

Heb net ook een boek gevonden over functioneel programmeren in ES6 van 180 bladzijden of zo. Ook maar eens doorlezen. :P
Ga je met flux of redux werken?

Redux cartoon:
https://code-cartoons.com/a-cartoon-intro-to-redux-3afb775501a6

Flux cartoon:
https://code-cartoons.com/a-cartoon-guide-to-flux-6157355ab207

Werkt perfect de uitleg . :Y

React-native een Redux github repo een keer gemaakt om te kijken hoe het werkt:
https://github.com/cablegunmaster/Simple-Redux-Boilerplate

[ Bericht 4% gewijzigd door cablegunmaster op 01-10-2018 16:07:44 ]
Redacted
pi_182268874
Vrijdag ben ik achter gekomen hoe het werkt met het uitlezen van een reeks van bytes.
Elke byte heeft zijn eigen waarde en die moet ik uitlezen per bit. ik begrijp het bit lezen nog niet helemaal. als iemand een uitleg heeft hoe het lezen moet hiervoor? Want ik begrijp het nog maar half. (helft meer als ervoorheen). ;)

Ik doe het nu op de waarde van de bit als in Integer groter of gelijk aan 128 dan doe iets,
maar kan dit niet praktischer? Heeft iemand hier ervaring mee :)?

[ Bericht 21% gewijzigd door cablegunmaster op 02-10-2018 11:45:11 ]
Redacted
pi_182273180
Eindelijk een goed UML / diagam teken programma gevonden.

https://www.draw.io/ O+
Redacted
  dinsdag 2 oktober 2018 @ 21:17:15 #199
436847 embedguy
Embedded in your genius dreams
pi_182280877
quote:
10s.gif Op dinsdag 2 oktober 2018 14:25 schreef cablegunmaster het volgende:
Eindelijk een goed UML / diagam teken programma gevonden.

https://www.draw.io/ O+
Ziet er op het eerste gezicht wel handig eruit ja, ga ik onthouden al ben ik zelf niet zo van webbases apps. Zelf gebruik ik yEd, werkt wel aardig. Iig 100x beter dan Visio imho.
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_182281001
quote:
1s.gif Op dinsdag 2 oktober 2018 21:17 schreef embedguy het volgende:

[..]

Ziet er op het eerste gezicht wel handig eruit ja, ga ik onthouden al ben ik zelf niet zo van webbases apps. Zelf gebruik ik yEd, werkt wel aardig. Iig 100x beter dan Visio imho.
Opensource, download het als standalone app. :P
Redacted
  dinsdag 2 oktober 2018 @ 21:23:44 #201
436847 embedguy
Embedded in your genius dreams
pi_182281110
quote:
0s.gif Op dinsdag 2 oktober 2018 09:52 schreef cablegunmaster het volgende:
Vrijdag ben ik achter gekomen hoe het werkt met het uitlezen van een reeks van bytes.
Elke byte heeft zijn eigen waarde en die moet ik uitlezen per bit. ik begrijp het bit lezen nog niet helemaal. als iemand een uitleg heeft hoe het lezen moet hiervoor? Want ik begrijp het nog maar half. (helft meer als ervoorheen). ;)

Ik doe het nu op de waarde van de bit als in Integer groter of gelijk aan 128 dan doe iets,
maar kan dit niet praktischer? Heeft iemand hier ervaring mee :)?
In welke taal ben je bezig?

1<<7 == 128
1
2
3
4
5
6
7
 
if((value >> 7) & 0x01) {
    // the 8th bit was high

if((value >> 6) & 0x01){
    // the 7th bit was high
}
Of het zelfde;
1
2
3
4
5
6
7
 
if(value & (0x01 << 7)) {
    // the 8th bit was high

if(value & (0x01 << 6)){
    // the 7th bit was high
}
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
  dinsdag 2 oktober 2018 @ 21:25:30 #202
436847 embedguy
Embedded in your genius dreams
pi_182281166
quote:
0s.gif Op dinsdag 2 oktober 2018 21:21 schreef cablegunmaster het volgende:

[..]

Opensource, download het als standalone app. :P
Nice :D

Ga ik uitproberen, tnx voor de tip!
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_182288435
quote:
1s.gif Op dinsdag 2 oktober 2018 21:23 schreef embedguy het volgende:

[..]

In welke taal ben je bezig?

1<<7 == 128
[ code verwijderd ]

Of het zelfde;
[ code verwijderd ]

Ik ben bezig in Java. :P maar, ik ga eens kijken om er een paar mini programmaatjes te maken, zodat ik het voor mezelf helder heb. :Y . collega van me heeft snel Or en AND uitgelegd als binair operators. maar zit soms nog wel met hexadecimaal combinatie met bits en met andere cijfer waarde.

Waarom gebruiken ze zulke onleesbare waardes?
Als ze bezig gaan met bytes. :P

[ Bericht 15% gewijzigd door cablegunmaster op 03-10-2018 10:47:07 ]
Redacted
  woensdag 3 oktober 2018 @ 23:04:55 #204
436847 embedguy
Embedded in your genius dreams
pi_182306240
quote:
0s.gif Op woensdag 3 oktober 2018 09:47 schreef cablegunmaster het volgende:

[..]

Waarom gebruiken ze zulke onleesbare waardes?

Allemaal de schuld van die gene die dacht dat het decimale getallenstelsel handig was. Hoe een grote fout was dat zeg.
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_182314292
quote:
10s.gif Op woensdag 3 oktober 2018 23:04 schreef embedguy het volgende:

[..]

Allemaal de schuld van die gene die dacht dat het decimale getallenstelsel handig was. Hoe een grote fout was dat zeg.
:D
Redacted
pi_182358049
quote:
1s.gif Op dinsdag 2 oktober 2018 21:23 schreef embedguy het volgende:

[..]

In welke taal ben je bezig?

1<<7 == 128
[ code verwijderd ]

Of het zelfde;
[ code verwijderd ]

1
2
3
4
5
6
7
    /**
     * @param bitFromRight (0 - 7) is range.
     * @return
     */
    private Boolean checkBitActivated(int bitFromRight, int value){
        return ((value >> bitFromRight) & 0x01) == 1;
    }

Zo is het wel een stuk makkelijker :D Dankje!
Redacted
  zondag 7 oktober 2018 @ 00:09:31 #207
85514 ralfie
!Yvan eht nioj
pi_182361215
quote:
0s.gif Op woensdag 3 oktober 2018 09:47 schreef cablegunmaster het volgende:

[..]

Ik ben bezig in Java. :P maar, ik ga eens kijken om er een paar mini programmaatjes te maken, zodat ik het voor mezelf helder heb. :Y . collega van me heeft snel Or en AND uitgelegd als binair operators. maar zit soms nog wel met hexadecimaal combinatie met bits en met andere cijfer waarde.

Waarom gebruiken ze zulke onleesbare waardes?
Als ze bezig gaan met bytes. :P
de windows 10 calculator heeft een 'programmer' mode. Kan je helpen om lshift, rshift, and or xor etc wat beter te visualiseren door de visualisatie van dex of hex naar bin om te zetten of met de bit togging keypad te spelen
pi_182477879
quote:
0s.gif Op maandag 1 oktober 2018 14:30 schreef cablegunmaster het volgende:

[..]

Ga je met flux of redux werken?

Redux cartoon:
https://code-cartoons.com/a-cartoon-intro-to-redux-3afb775501a6

Flux cartoon:
https://code-cartoons.com/a-cartoon-guide-to-flux-6157355ab207

Werkt perfect de uitleg . :Y

React-native een Redux github repo een keer gemaakt om te kijken hoe het werkt:
https://github.com/cablegunmaster/Simple-Redux-Boilerplate
Ah fuck, hier vergeten op terug te komen. |:(

Saúdos Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182546576
Nog steeds bezig in Java! Inmiddels een stuk verder en bij enumerations beland. De uitleg over de methode valueOf() is mij echter niet helemaal duidelijk, mede doordat elke uitleg het anders brengt.

Ik weet dat je een enumeratie voorziet van constanten, waarbij de naam en de waarde volgens mij identiek zijn. De methode valueOf is als volgt: public static enum-type valueOf(String str). Een uitleg is dat de constante wordt terug gegeven waarvan de waarde gelijk is aan str. Maar een andere uitleg leek juist weer te zeggen dat je de constante opgeeft bij str en dan de waarde terugkrijgt. Ik weet het, het resultaat is hetzelfde aangezien waarde en naam gelijk zijn, maar het is toch handig om te weten.

Daarnaast...aangezien waarde en naam gelijk zijn, waarom wil je de ander hebben als je de een al weet? :?
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_182550457
quote:
0s.gif Op dinsdag 16 oktober 2018 10:19 schreef uppie83 het volgende:
Nog steeds bezig in Java! Inmiddels een stuk verder en bij enumerations beland. De uitleg over de methode valueOf() is mij echter niet helemaal duidelijk, mede doordat elke uitleg het anders brengt.

Ik weet dat je een enumeratie voorziet van constanten, waarbij de naam en de waarde volgens mij identiek zijn. De methode valueOf is als volgt: public static enum-type valueOf(String str). Een uitleg is dat de constante wordt terug gegeven waarvan de waarde gelijk is aan str. Maar een andere uitleg leek juist weer te zeggen dat je de constante opgeeft bij str en dan de waarde terugkrijgt. Ik weet het, het resultaat is hetzelfde aangezien waarde en naam gelijk zijn, maar het is toch handig om te weten.

Daarnaast...aangezien waarde en naam gelijk zijn, waarom wil je de ander hebben als je de een al weet? :?
Omdat je ook waardes en namen kunnen hebben die NIET gelijk zijn aan elkaar.

1
2
3
4
5
6
7
public enum AppleTreeTypes {
   ELSTAR("Lescus Applescusini"),
   COX("Appelicus Vagicus namus"),
   GALA("Namus Defticus");

    private final String description;
}

Waarde van de enum is in dit geval niet hetzelfde als de NAME van de enum.
Soms wil je namen opvragen met de sleutel, en soms wil je valueOf() de ENUM waarde ophalen op basis van een STRING, om deze verder te gebruiken om je applicatie te verhelderen.

Waarom is dit handig? Dan kan je een DB gebruiken om de ENUM waarde daarbij te zetten / op te halen. De applicatie kan dan alleen de waardes te accepteren die in de ENUM zitten en andere keihard te negeren.

De AppleTreeType.valueOf("FUJI") Appelsoort is onbekend en mag niet meedoen aan mijn persoonlijke appelsoorten, die ik verkoop. (bijv). en zou een "IllegalArgumentException" geven.

Ander voorbeeld met "rechten":
http://tutorials.jenkov.com/java/enums.html

Hopelijk verheldert dit iets wat.
Redacted
pi_182550506
quote:
16s.gif Op vrijdag 12 oktober 2018 20:04 schreef FlippingCoin het volgende:

[..]

Ah fuck, hier vergeten op terug te komen. |:(

Saúdos Flip.
en nu alweer :P
Redacted
pi_182556295
quote:
0s.gif Op maandag 1 oktober 2018 14:30 schreef cablegunmaster het volgende:

[..]

Ga je met flux of redux werken?

Redux cartoon:
https://code-cartoons.com/a-cartoon-intro-to-redux-3afb775501a6

Flux cartoon:
https://code-cartoons.com/a-cartoon-guide-to-flux-6157355ab207

Werkt perfect de uitleg . :Y

React-native een Redux github repo een keer gemaakt om te kijken hoe het werkt:
https://github.com/cablegunmaster/Simple-Redux-Boilerplate
Excuus voor de late reactie, was even op een lager pitje omwille van de studie die weer is gestart. Ik maak gebruikt van Typescript samen met Ramda (beginnend). Ik wil vooral het functionele paradigma zelf wat meer toepassen waar mogelijk om zo mijn code beter testbaar te maken en zonder minder bijeffecten.


Deze talk van de week gekeken en a.d.h.v. nog een hoop gelezen waardoor mijn kijk op het functionele paradigma wat verandert is. :P De vergelijking dat functioneel tijdloos is en o.a. OO niet, maar dat ze toch niet erg van elkaar verschillen is mij het meeste bijgebleven.

Ik stoei alleen nog een beetje met state, want met een form ontkom je daar niet aan. :P

S priateľským pozdravom Flip.

[ Bericht 12% gewijzigd door FlippingCoin op 16-10-2018 19:23:32 ]
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182557231
quote:
0s.gif Op dinsdag 16 oktober 2018 14:10 schreef cablegunmaster het volgende:

[..]

Omdat je ook waardes en namen kunnen hebben die NIET gelijk zijn aan elkaar.
[ code verwijderd ]

Waarde van de enum is in dit geval niet hetzelfde als de NAME van de enum.
Soms wil je namen opvragen met de sleutel, en soms wil je valueOf() de ENUM waarde ophalen op basis van een STRING, om deze verder te gebruiken om je applicatie te verhelderen.

Waarom is dit handig? Dan kan je een DB gebruiken om de ENUM waarde daarbij te zetten / op te halen. De applicatie kan dan alleen de waardes te accepteren die in de ENUM zitten en andere keihard te negeren.

De AppleTreeType.valueOf("FUJI") Appelsoort is onbekend en mag niet meedoen aan mijn persoonlijke appelsoorten, die ik verkoop. (bijv). en zou een "IllegalArgumentException" geven.

Ander voorbeeld met "rechten":
http://tutorials.jenkov.com/java/enums.html

Hopelijk verheldert dit iets wat.
Helder, dus de uitleg variant dat 'str' de naam van de constante is waarvan je de waarde wilt ophalen is toch de uitleg die correct is (gezien de naam van de functie had ik dit ook wel verwacht).
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
  dinsdag 16 oktober 2018 @ 22:04:52 #214
436847 embedguy
Embedded in your genius dreams
pi_182560408
quote:
16s.gif Op dinsdag 16 oktober 2018 19:11 schreef FlippingCoin het volgende:

[..]

Excuus voor de late reactie, was even op een lager pitje omwille van de studie die weer is gestart. Ik maak gebruikt van Typescript samen met Ramda (beginnend). Ik wil vooral het functionele paradigma zelf wat meer toepassen waar mogelijk om zo mijn code beter testbaar te maken en zonder minder bijeffecten.


Deze talk van de week gekeken en a.d.h.v. nog een hoop gelezen waardoor mijn kijk op het functionele paradigma wat verandert is. :P De vergelijking dat functioneel tijdloos is en o.a. OO niet, maar dat ze toch niet erg van elkaar verschillen is mij het meeste bijgebleven.

Ik stoei alleen nog een beetje met state, want met een form ontkom je daar niet aan. :P

S priateľským pozdravom Flip.
Zojuist heb ik die video ook bekeken. Ik merk dat ik steeds meer interesse krijg in dat functioneel programmeren. Misschien toch maar eens een keer een proefprojectje opstarten om het uit te proberen 🤔.

Ik vraag me af in hoeverre oo toch niet zo heel veel verschilt met functioneel. Inderdaad wel mooi gedaan hoe ze ze langs elkaar legde maar als het iets complexer wordt, kun je het volgens mij al niet meer voor elkaar krijgen om de programma's op elkaar te laten lijken.
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_182560628
quote:
1s.gif Op dinsdag 16 oktober 2018 22:04 schreef embedguy het volgende:

[..]

Zojuist heb ik die video ook bekeken. Ik merk dat ik steeds meer interesse krijg in dat functioneel programmeren. Misschien toch maar eens een keer een proefprojectje opstarten om het uit te proberen 🤔.

Ik vraag me af in hoeverre oo toch niet zo heel veel verschilt met functioneel. Inderdaad wel mooi gedaan hoe ze ze langs elkaar legde maar als het iets complexer wordt, kun je het volgens mij al niet meer voor elkaar krijgen om de programma's op elkaar te laten lijken.
Ik las vandaag een paper van Peter van Roy, en hierin schreef die dat er sowieso vier maten van OO zijn, ook stateless, die komt dan zeker erg in de buurt.

Maar volgens mij verschilt het in zekere zin niet super erg van elkaar omdat beide paradigma hetzelfde probleem willen oplossen itt sommige andere paradigma?

Ik moet nu een paper schrijven over een programmeertaal, en ik heb voor javascript gekozen omdat het een beetje raar is en meerdere paradigma's omvat. Dus ik hoop er nog wel een stuk meer over te leren. Vind sowieso paradigma's en ontwerppatronen wel erg boeiend allemaal.

https://en.wikipedia.org/wiki/Programming_paradigm

op deze wiki staan er rechts in het menu trouwens een hele hoop, en die chart komt uit de paper van van Roy die ik gelezen heb.

Prijazni pozdravi Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  woensdag 17 oktober 2018 @ 18:52:51 #216
436847 embedguy
Embedded in your genius dreams
pi_182576392
quote:
16s.gif Op dinsdag 16 oktober 2018 22:14 schreef FlippingCoin het volgende:

[..]

Ik las vandaag een paper van Peter van Roy, en hierin schreef die dat er sowieso vier maten van OO zijn, ook stateless, die komt dan zeker erg in de buurt.

Maar volgens mij verschilt het in zekere zin niet super erg van elkaar omdat beide paradigma hetzelfde probleem willen oplossen itt sommige andere paradigma?

Ik moet nu een paper schrijven over een programmeertaal, en ik heb voor javascript gekozen omdat het een beetje raar is en meerdere paradigma's omvat. Dus ik hoop er nog wel een stuk meer over te leren. Vind sowieso paradigma's en ontwerppatronen wel erg boeiend allemaal.

https://en.wikipedia.org/wiki/Programming_paradigm

op deze wiki staan er rechts in het menu trouwens een hele hoop, en die chart komt uit de paper van van Roy die ik gelezen heb.

Prijazni pozdravi Flip.
Ookal willen ze het zelfde probleem oplossen, dan nog kan het een wereld van een verschil zijn. Maar misschien dat stateles oo er wel dicht bij in de buurt komt ja.

Interessant allemaal, mocht je een keer leesvoer voor me hebben over dit onderwerp dan is dat meer dan welkom :). Die linkjes op de wiki page zal ik ook eens gaan bekijken.
Never allow waiting to become a habit.
Live your dreams and take risks.
Life is happening now.
pi_182576508
quote:
1s.gif Op woensdag 17 oktober 2018 18:52 schreef embedguy het volgende:

[..]

Ookal willen ze het zelfde probleem oplossen, dan nog kan het een wereld van een verschil zijn. Maar misschien dat stateles oo er wel dicht bij in de buurt komt ja.

Interessant allemaal, mocht je een keer leesvoer voor me hebben over dit onderwerp dan is dat meer dan welkom :). Die linkjes op de wiki page zal ik ook eens gaan bekijken.
Deze leek mij zelf wel interessant.

https://www.amazon.com/Peter-Van-Roy/e/B001IOHALO

Verder zag ik dat de programmeertaal Curry de functionele en logische paradigma samen gebruikt daar wou ik ook nog eens naar kijken.

Alleen over het logische paradigma is helemaal niet zo veel te vinden lijkt het, iig niet zoals OO en Functioneel op youtube. :P

בעסטע גרוסען Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182576941
quote:
2s.gif Op woensdag 17 oktober 2018 19:05 schreef Bosbeetle het volgende:

[..]

Goed bezig... ik ben benieuwd hoe lang ik deze blackberry kan volhouden :D
Jij was destijds bezig met iets wat je in een journal zou komen of zo toch?

Saúdos Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator woensdag 17 oktober 2018 @ 19:30:21 #219
27682 crew  Bosbeetle
terminaal verdwaald
pi_182577118
quote:
16s.gif Op woensdag 17 oktober 2018 19:22 schreef FlippingCoin het volgende:

[..]

Jij was destijds bezig met iets wat je in een journal zou komen of zo toch?

Saúdos Flip.
Heb de reactie op de peer-review maandag opgestuurd... nu is het wachten of ze het accepteren.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182577136
quote:
2s.gif Op woensdag 17 oktober 2018 19:30 schreef Bosbeetle het volgende:

[..]

Heb de reactie op de peer-review maandag opgestuurd... nu is het wachten of ze het accepteren.
Gaaf en spannend, hoe lang duurt dat voor je dat te horen krijgt?

آداب Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator woensdag 17 oktober 2018 @ 19:33:34 #221
27682 crew  Bosbeetle
terminaal verdwaald
pi_182577184
quote:
16s.gif Op woensdag 17 oktober 2018 19:30 schreef FlippingCoin het volgende:

[..]

Gaaf en spannend, hoe lang duurt dat voor je dat te horen krijgt?

آداب Flip.
Totdat de reviewers er klaar mee zijn. Geen idee we hebben het in augustus opgestuurd, reactie gekregen mid september, dus het kan best nog wel eens een maandje duren. maar het kan ook sneller gaan.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182708545
Hey hoe is het met jullie? O+

Ik heb nu wat tijd om me te verdiepen in C#. Ik kan alleen zo weinig duidelijke informatie vinden over opslagmethoden...

Wat voor manieren bestaan er om met databases om te gaan? Wat voor manieren heb je om op afstand te verbinden en DB's lokaal te gebruiken op bv. een server of mobiel apparaat?

Zelf kom ik echt uit de PHP-wereld en heb ik me altijd een beetje beperkt tot MySQL. Heb even een duw in de juiste richting nodig.

[ Bericht 11% gewijzigd door #ANONIEM op 24-10-2018 10:36:41 ]
pi_182708852
quote:
1s.gif Op woensdag 24 oktober 2018 10:24 schreef DevFreak het volgende:
Hey hoe is het met jullie? O+

Ik heb nu wat tijd om me te verdiepen in C#. Ik kan alleen zo weinig duidelijke informatie vinden over opslagmethoden...

Wat voor manieren bestaan er om met databases om te gaan? Wat voor manieren heb je om op afstand te verbinden en DB's lokaal te gebruiken op bv. een server of mobiel apparaat?

Zelf kom ik echt uit de PHP-wereld en heb ik me altijd een beetje beperkt tot MySQL. Heb even een duw in de juiste richting nodig.
Ik heb geen ervaring met C# maar ik denk dat voor alle grote spelere wel een C# API is. Dus Postgress en MySql et cetera.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182709737
quote:
1s.gif Op woensdag 24 oktober 2018 10:38 schreef FlippingCoin het volgende:

[..]

Ik heb geen ervaring met C# maar ik denk dat voor alle grote spelere wel een C# API is. Dus Postgress en MySql et cetera.
Ja oef, ik heb de Microsoft-documentatie altijd ervaren als pittige hap... :P

Maar wat ik tot nu toe begrijp is dat je...

- met de ADO.NET bibliotheken op basisniveau query's af kunt vuren op MS databases.
- Ik heb dus Entity Framework nodig en kan afhankelijk van de situatie de juiste bibliotheek kiezen.

Ik heb een paar maanden stil gezeten dus ik begin gewoon met wat simpele oefeningen, ben eigenlijk nog niet bij het hoofdstukje 'databases' aangeland :P

[ Bericht 2% gewijzigd door #ANONIEM op 24-10-2018 11:24:42 ]
pi_182709836
quote:
7s.gif Op woensdag 24 oktober 2018 11:24 schreef DevFreak het volgende:

[..]

Ja oef, ik heb de Microsoft-documentatie altijd ervaren als pittige hap... :P

Maar wat ik tot nu toe begrijp is dat je...

- met de ADO.NET bibliotheken op basisniveau query's af kunt vuren op MS databases.
- Ik heb dus Entity Framework nodig en kan afhankelijk van de situatie de juiste bibliotheek kiezen.

Ik heb een paar maanden stil gezeten dus ik begin gewoon met wat simpele oefeningen, ben eigenlijk nog niet bij het hoofdstukje 'databases' aangeland :P
In de C# libraries en frameworks ben ik totaal niet thuis. :@

Maar je zal toch geen framewoek nodig hebben om een database te kunnen gebruiken?
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182710038
quote:
1s.gif Op woensdag 24 oktober 2018 11:30 schreef FlippingCoin het volgende:

[..]

In de C# libraries en frameworks ben ik totaal niet thuis. :@

Maar je zal toch geen framewoek nodig hebben om een database te kunnen gebruiken?
In PHP zitten PDO en MySQL gewoon in de Standard PHP Libraries. In de context van C# zal dit wel op dezelfde manier gaan denk ik. :P Wat ik me dan wel afvraag is op ADO.NET ook beschikbaar is voor .NET Core.

Vroegah gebruikte ik onder PHP ook lange strings voor CRUD-acties maar het is gewoon achterhaald vind ik. Sommigen halen de argumenten dat het meer systeembronnen kost weleens van stal maar dat gaat in deze tijd niet echt meer op.

Volgens mij denk ik ook weer eens veel te ingewikkeld en zal ADO wel gewoon een naampje zijn voor het DB-onderdeel van .NET.

[ Bericht 4% gewijzigd door #ANONIEM op 24-10-2018 11:44:46 ]
pi_182710544
ADO.net is onderdeel van het .net 3.0 framework, getuige dit diagrammetje:
https://en.wikipedia.org/wiki/ADO.NET#/media/File:DotNet3.0.svg

https://www.c-sharpcorner(...)dia/what-is-ado-net/
pi_182711277
quote:
7s.gif Op woensdag 24 oktober 2018 11:39 schreef DevFreak het volgende:

[..]

In PHP zitten PDO en MySQL gewoon in de Standard PHP Libraries. In de context van C# zal dit wel op dezelfde manier gaan denk ik. :P Wat ik me dan wel afvraag is op ADO.NET ook beschikbaar is voor .NET Core.

Vroegah gebruikte ik onder PHP ook lange strings voor CRUD-acties maar het is gewoon achterhaald vind ik. Sommigen halen de argumenten dat het meer systeembronnen kost weleens van stal maar dat gaat in deze tijd niet echt meer op.

Volgens mij denk ik ook weer eens veel te ingewikkeld en zal ADO wel gewoon een naampje zijn voor het DB-onderdeel van .NET.
Ah oké, met Go moet je gewoon een library kiezen om met een DB te werken.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182711364
Nou ja of zelf wat maken. :D
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182711455
quote:
1s.gif Op woensdag 24 oktober 2018 12:50 schreef FlippingCoin het volgende:
Nou ja of zelf wat maken. :D
Ik heb ooit zelf een soort van ORM gemaakt in PHP :')
Ik was dat al snel beu.
pi_182711466
quote:
0s.gif Op woensdag 24 oktober 2018 12:04 schreef mschol het volgende:
ADO.net is onderdeel van het .net 3.0 framework, getuige dit diagrammetje:
https://en.wikipedia.org/wiki/ADO.NET#/media/File:DotNet3.0.svg

https://www.c-sharpcorner(...)dia/what-is-ado-net/
volgens mij is het nog steeds actueel en is Entity Framework een abstractielaag-saus tussen jou en ADO.
  woensdag 24 oktober 2018 @ 13:40:25 #232
85514 ralfie
!Yvan eht nioj
pi_182712456
quote:
1s.gif Op woensdag 24 oktober 2018 10:24 schreef DevFreak het volgende:
Hey hoe is het met jullie? O+

Ik heb nu wat tijd om me te verdiepen in C#. Ik kan alleen zo weinig duidelijke informatie vinden over opslagmethoden...

Wat voor manieren bestaan er om met databases om te gaan? Wat voor manieren heb je om op afstand te verbinden en DB's lokaal te gebruiken op bv. een server of mobiel apparaat?

Zelf kom ik echt uit de PHP-wereld en heb ik me altijd een beetje beperkt tot MySQL. Heb even een duw in de juiste richting nodig.
Voor C# is MsSQL wel echt een aanrader. De combinatie C#, visual studio, (T)sql en SQL Server Management Studio is allemaal gratis te downloaden en installeren en werkt heerlijk samen, zelfs (zeker) als je je beperkt tot entity framework (EF).

EF is inderdaad een abstractielaag die het makkelijk maakt om MVC-gericht te developen. Je bouwt je tabellen in sql, importeert deze richting visual studio en deze maakt dan default pages voor viewen, editen, toevoegen & deleten van rijen. EF maakt default gebruik van Linq queries die vertaalt worden naar sql zodra ze uitgevoerd moeten worden. EF werkt prima, totdat je bij grotere datasets uitkomt (miljoenen inserts), maar daarvoor kun je dan weer terugvallen op de onderliggende infrastructuur zoals ADO.net. vziw is EF niet beschikbaar voor .net core, maar dat kan ondertussen anders zijn.
pi_182733873
quote:
0s.gif Op woensdag 24 oktober 2018 13:40 schreef ralfie het volgende:

[..]

Voor C# is MsSQL wel echt een aanrader. De combinatie C#, visual studio, (T)sql en SQL Server Management Studio is allemaal gratis te downloaden en installeren en werkt heerlijk samen, zelfs (zeker) als je je beperkt tot entity framework (EF).

EF is inderdaad een abstractielaag die het makkelijk maakt om MVC-gericht te developen. Je bouwt je tabellen in sql, importeert deze richting visual studio en deze maakt dan default pages voor viewen, editen, toevoegen & deleten van rijen. EF maakt default gebruik van Linq queries die vertaalt worden naar sql zodra ze uitgevoerd moeten worden. EF werkt prima, totdat je bij grotere datasets uitkomt (miljoenen inserts), maar daarvoor kun je dan weer terugvallen op de onderliggende infrastructuur zoals ADO.net. vziw is EF niet beschikbaar voor .net core, maar dat kan ondertussen anders zijn.
Tnx voor je heldere antwoord. :)
pi_182751099
quote:
7s.gif Op woensdag 24 oktober 2018 12:56 schreef DevFreak het volgende:

[..]

Ik heb ooit zelf een soort van ORM gemaakt in PHP :')
Ik was dat al snel beu.
https://code.tutsplus.com(...)t-laravel--cms-27247

Eloquent lost dit op O+ , ipv zelfbouw.
Redacted
pi_182752443
quote:
0s.gif Op vrijdag 26 oktober 2018 11:06 schreef cablegunmaster het volgende:

[..]

https://code.tutsplus.com(...)t-laravel--cms-27247

Eloquent lost dit op O+ , ipv zelfbouw.
Nee weet ik, ik ben al een paar jaar met Laravel bezig geweest :)
pi_182789473
Wauw, frustrerend dit zeg. :{

Ik heb een goede video-tutorial gevonden waar je een P2P-programma maakt. Wat de gedachtegang is achter code wordt niet echt uitgelegd dus het voelt nogal als acacedabra. :+

De C#-impelementatie van repositories en WCF komen ook aan bod dus dat is een behoorlijk ppittige hap voor mij. Wat winden jullie, misschien eeen stapje terug doen voor nu?

[ Bericht 18% gewijzigd door #ANONIEM op 28-10-2018 11:32:16 ]
  zondag 28 oktober 2018 @ 18:58:13 #237
85514 ralfie
!Yvan eht nioj
pi_182798086
quote:
7s.gif Op zondag 28 oktober 2018 11:26 schreef DevFreak het volgende:
Wauw, frustrerend dit zeg. :{

Ik heb een goede video-tutorial gevonden waar je een P2P-programma maakt. Wat de gedachtegang is achter code wordt niet echt uitgelegd dus het voelt nogal als acacedabra. :+

De C#-impelementatie van repositories en WCF komen ook aan bod dus dat is een behoorlijk ppittige hap voor mij. Wat winden jullie, misschien eeen stapje terug doen voor nu?
C# repositories? Nuget?? of wat bedoel je
Je moet je inlezen in wat je nodig hebt of interessant vindt, niet meer niet minder. Als je met P2P wil beginnen zul je wat exotischere kanten van C# moeten exploreren. Geen idee of WCF daar de beste oplossing voor is, maar het lijkt een goede kanshebber.
pi_182802586
quote:
7s.gif Op zondag 28 oktober 2018 11:26 schreef DevFreak het volgende:
Wauw, frustrerend dit zeg. :{

Ik heb een goede video-tutorial gevonden waar je een P2P-programma maakt. Wat de gedachtegang is achter code wordt niet echt uitgelegd dus het voelt nogal als acacedabra. :+

De C#-impelementatie van repositories en WCF komen ook aan bod dus dat is een behoorlijk ppittige hap voor mij. Wat winden jullie, misschien eeen stapje terug doen voor nu?
Misschien pas verdergaan zodra je weer nuchter bent? B:)B
  maandag 29 oktober 2018 @ 10:32:59 #239
463823 Rodgrod
Lekker met vanillekwark
pi_182811424
quote:
7s.gif Op zondag 28 oktober 2018 11:26 schreef DevFreak het volgende:
Wauw, frustrerend dit zeg. :{

Ik heb een goede video-tutorial gevonden waar je een P2P-programma maakt. Wat de gedachtegang is achter code wordt niet echt uitgelegd dus het voelt nogal als acacedabra. :+

De C#-impelementatie van repositories en WCF komen ook aan bod dus dat is een behoorlijk ppittige hap voor mij. Wat winden jullie, misschien eeen stapje terug doen voor nu?
Bedoel je het repository pattern?
Dat is in het algemeen wel een nuttige om eens gedaan te hebben :)

En persoonlijk zal ik er mee door gaan, des te moeilijker des te meer voldoening en zelfvertrouwen het je geeft als het uiteindelijk is gelukt
❤️🐤🐤🐤🐤🐤🐤🐤🐤❤️
Doet rubber om staven
pi_182814581
Wederom een vraagje aan de Java kennert...

Ik zie in voorbeelden nog wel eens het volgende voorbij komen:

1
2
import java.awt.*;
import java.awt.event.*;

Nou begreep ik dat je met de eerste regel eigenlijk alles binnen java.awt al geimporteerd hebt. Waarom dan nog de tweede regel?
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_182820388
quote:
0s.gif Op zondag 28 oktober 2018 18:58 schreef ralfie het volgende:

[..]

C# repositories? Nuget?? of wat bedoel je
Je moet je inlezen in wat je nodig hebt of interessant vindt, niet meer niet minder. Als je met P2P wil beginnen zul je wat exotischere kanten van C# moeten exploreren. Geen idee of WCF daar de beste oplossing voor is, maar het lijkt een goede kanshebber.
quote:
12s.gif Op zondag 28 oktober 2018 21:14 schreef thabit het volgende:

[..]

Misschien pas verdergaan zodra je weer nuchter bent? B:)B
quote:
0s.gif Op maandag 29 oktober 2018 10:32 schreef Rodgrod het volgende:

[..]

Bedoel je het repository pattern?
Dat is in het algemeen wel een nuttige om eens gedaan te hebben :)

En persoonlijk zal ik er mee door gaan, des te moeilijker des te meer voldoening en zelfvertrouwen het je geeft als het uiteindelijk is gelukt
Ghehe, sorry voor de verwarring. Ik heb wel ervaring met dergelijke designpatronen hoor, begrijp me niet verkeerd. Ik had het idee te switchen richting de .NET wereld, maar ik weet niet of het nou zo mijn taal/omgeving is.
pi_182821882
Voor mijn studie moeten wij nu het boek Concepts of Programming Languages lezen, vind het wel een boeiend boek en het gaat ook over de werking van een compiler en de semantiek en syntax van een programmeertaal.

Heeft hier iemand ooit eens een compiler of interpreter gemaakt voor een zelfbedachte taal?

Pelu anu ni mo ki yin Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182821955
Ah ja en nog een leuk boek waar ik bezig ben is Exercises in Programming Style, boek gaat over een triviaal programma om de woorden in een tekst te tellen, en de 25 meestvoorkomende woorden te printen. Dit programma wordt vervolgens volgens 33 verschillende paradigma gemaakt.

Ystävällisin terveisin Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  maandag 29 oktober 2018 @ 20:56:58 #244
85514 ralfie
!Yvan eht nioj
pi_182823223
quote:
16s.gif Op maandag 29 oktober 2018 19:59 schreef FlippingCoin het volgende:
Voor mijn studie moeten wij nu het boek Concepts of Programming Languages lezen, vind het wel een boeiend boek en het gaat ook over de werking van een compiler en de semantiek en syntax van een programmeertaal.

Heeft hier iemand ooit eens een compiler of interpreter gemaakt voor een zelfbedachte taal?

Pelu anu ni mo ki yin Flip.
jaaren geleden ooit gepoogd in C++ een soort javascript achtige taal te bouwen. Parser en lexer zijn redelijk makkelijk te schrijven (en leuk als het dan eenmaal werkt), maar het implementeren van basislogica (o.m. standaard operators voor alle basis datatyes) is verschrikkelijk saai (en daar is het dus ook bij gebleven :)).
pi_182823296
quote:
0s.gif Op maandag 29 oktober 2018 20:56 schreef ralfie het volgende:

[..]

jaaren geleden ooit gepoogd in C++ een soort javascript achtige taal te bouwen. Parser en lexer zijn redelijk makkelijk te schrijven (en leuk als het dan eenmaal werkt), maar het implementeren van basislogica (o.m. standaard operators voor alle basis datatyes) is verschrikkelijk saai (en daar is het dus ook bij gebleven :)).
Ah ja dat kan ik mij redelijk voorstellen. :D

Cool. ^O^

Niet een klein stukje werkende taal gekregen? :P

दयालु सादर Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator dinsdag 30 oktober 2018 @ 11:06:47 #246
27682 crew  Bosbeetle
terminaal verdwaald
pi_182832048
Ik ontdek net pas de tenary operator dus

1int a = test ? b : c;

ipv

1
2
3
4
5
if(test){
     a = b;
} else{
     a = c;
}

had hem volgensmij al eens eerder gezien maar nog nooit gebruikt dus hij zit niet in mijn systeem...
Ben even opzoek gegaan in mijn code of ik wat kon vervangen maar ik gebruik het ook niet zo vaak :P
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator dinsdag 30 oktober 2018 @ 11:12:58 #247
27682 crew  Bosbeetle
terminaal verdwaald
pi_182832158
quote:
16s.gif Op maandag 29 oktober 2018 20:02 schreef FlippingCoin het volgende:
Ah ja en nog een leuk boek waar ik bezig ben is Exercises in Programming Style, boek gaat over een triviaal programma om de woorden in een tekst te tellen, en de 25 meestvoorkomende woorden te printen. Dit programma wordt vervolgens volgens 33 verschillende paradigma gemaakt.

Ystävällisin terveisin Flip.
het is wel ernstig heb nu dus een werkend R pakket, dat hopelijk snel gepubliceerd wordt en ik ben nu alweer bezig met een versie 2 ervan... ik wil zoveel dingen anders aanpakken.... volgensmij is dat ook iets wat je eindeloos kunt blijven doen. Tijdens het maken van software introduceer je ideeën die later wel of niet handig blijven.. nu begin ik opnieuw en denk ik alles glad te strijken, totdat er weer nieuwe ideeën komen :X
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182833013
quote:
2s.gif Op dinsdag 30 oktober 2018 11:06 schreef Bosbeetle het volgende:
Ik ontdek net pas de tenary operator dus
[ code verwijderd ]

ipv
[ code verwijderd ]

had hem volgensmij al eens eerder gezien maar nog nooit gebruikt dus hij zit niet in mijn systeem...
Ben even opzoek gegaan in mijn code of ik wat kon vervangen maar ik gebruik het ook niet zo vaak :P
Die is soms wel echt fijn ja, maar soms maakt die het alleen maar meer onleesbaar daar zou ik mee oppassen. :P

亲切的问候 Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182833041
quote:
2s.gif Op dinsdag 30 oktober 2018 11:12 schreef Bosbeetle het volgende:

[..]

het is wel ernstig heb nu dus een werkend R pakket, dat hopelijk snel gepubliceerd wordt en ik ben nu alweer bezig met een versie 2 ervan... ik wil zoveel dingen anders aanpakken.... volgensmij is dat ook iets wat je eindeloos kunt blijven doen. Tijdens het maken van software introduceer je ideeën die later wel of niet handig blijven.. nu begin ik opnieuw en denk ik alles glad te strijken, totdat er weer nieuwe ideeën komen :X
Ja dat zeker, dit boek behandelt vooral het perspectief van waaruit je naar een probleem kijkt. :P

Hom regards Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator dinsdag 30 oktober 2018 @ 12:00:56 #250
27682 crew  Bosbeetle
terminaal verdwaald
pi_182833081
quote:
16s.gif Op dinsdag 30 oktober 2018 11:59 schreef FlippingCoin het volgende:

[..]

Ja dat zeker, dit boek behandelt vooral het perspectief van waaruit je naar een probleem kijkt. :P

Hom regards Flip.
Wat bij mij het probleem is ik maak code omdat ik het gebruik... en waarvoor ik het gebruik komt op mijn pad tijdens het maken van de code... en dat blijft zo door loopen. Ik zit niet in de positie om goed af te bakenen wat moet die software nou eigenlijk kunnen, en dat wil ik ook eigenlijk niet :D
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182833111
quote:
2s.gif Op dinsdag 30 oktober 2018 12:00 schreef Bosbeetle het volgende:

[..]

Wat bij mij het probleem is ik maak code omdat ik het gebruik... en waarvoor ik het gebruik komt op mijn pad tijdens het maken van de code... en dat blijft zo door loopen. Ik zit niet in de positie om goed af te bakenen wat moet die software nou eigenlijk kunnen, en dat wil ik ook eigenlijk niet :D
Waarom wil je dat niet?

Ar cieņu Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator dinsdag 30 oktober 2018 @ 12:16:09 #252
27682 crew  Bosbeetle
terminaal verdwaald
pi_182833347
quote:
16s.gif Op dinsdag 30 oktober 2018 12:02 schreef FlippingCoin het volgende:

[..]

Waarom wil je dat niet?

Ar cieņu Flip.
Omdat ik altijd vind dat we meer moeten kunnen dan ik van te voren bedacht....

Meestal schrijf ik programma's om data heen, dus als de data iets interesants laat zien wat ik van te voren niet bedacht had dan moet de software ineens meer kunnen.... Als je alles netjes dichttimmert krijg je nooit nieuewe functionaliteit... :P

Laatste paar stukjes software die ik geschreven heb zijn nearest neighbour analyses (zowel tussen twee puntensets of binnen één, en zowel los (elk punt heeft een dichte buurman) als strikt (elk punt kan maar aan één paar toe behoren).... Heb dit eindelijk eens goed in elkaar gezet omdat ik al tig scripts had waarin ik dit ook deed maar nu heb ik gewoon een goed stukje snelle code :D

heb trouwens wel een vraagje aan jullie, hoe kan ik dit handiger aanpakken:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package Neigbours;

public class coordinates {

    double[] x,y,z,x2,y2,z2;
    double max;
    double[][] distmat;

    coordinates(double[] x, double[] y){
        this.x = x;
        this.y = y;
        MakeDistmat(x,y,null);
    }

    coordinates(double[] x, double[] y, double[] z){
        this.x = x;
        this.y = y;
        this.z = z;
        MakeDistmat(x,y,z);
    }

    coordinates(double[] x1, double[] y1, double[] x2, double[] y2){
        this.x = x1;
        this.y = y1;
        this.x2 = x2;
        this.y2 = y2;
        MakeDistmat(x1,y1,null,x2,y2,null);
    }

    coordinates(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){
        this.x = x1;
        this.y = y1;
        this.z = z1;
        this.x2 = x2;
        this.y2 = y2;
        this.z2 = z2;
        MakeDistmat(x1,y1,z1,x2,y2,z2);
    }

    private void MakeDistmat(double[] x, double[] y, double[] z){

        double[][] dmat = new double[x.length][x.length];

        if(z == null){
            z = new double[x.length];

            for(int i=0;i<z.length;i++){
                z[i] = 0;
            }

        }

        this.max = 0;

        for(int i=0;i<x.length;i++){
            for(int j=0;j<x.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x[i]-x[j],2) + Math.pow(y[i]-y[j],2) + Math.pow(z[i]-z[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

    private void MakeDistmat(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){

        double[][] dmat = new double[x1.length][x2.length];
        this.max = 0;

        if(z1 == null || z2 == null){

            z1 = new double[x1.length];
            z2 = new double[x2.length];

            for(int i=0;i<z1.length;i++){
                z1[i] = 0;

            }

            for(int i=0;i<z2.length;i++){
                z2[i] = 0;

            }


        }

        for(int i=0;i<x1.length;i++){
            for(int j=0;j<x2.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x1[i]-x2[j],2) + Math.pow(y1[i]-y2[j],2) + Math.pow(z1[i]-z2[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

}


Het probleem is ik heb dus datasets met een z coordinaat en zonder, en ik heb dus een distance matrix binnen 1 groep of tussen 2 groepen maar het voelt zo redundant.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182833379
quote:
2s.gif Op dinsdag 30 oktober 2018 12:16 schreef Bosbeetle het volgende:

[..]

Omdat ik altijd vind dat we meer moeten kunnen dan ik van te voren bedacht....

Meestal schrijf ik programma's om data heen, dus als de data iets interesants laat zien wat ik van te voren niet bedacht had dan moet de software ineens meer kunnen.... Als je alles netjes dichttimmert krijg je nooit nieuewe functionaliteit... :P

Laatste paar stukjes software die ik geschreven heb zijn nearest neighbour analyses (zowel tussen twee puntensets of binnen één, en zowel los (elk punt heeft een dichte buurman) als strikt (elk punt kan maar aan één paar toe behoren).... Heb dit eindelijk eens goed in elkaar gezet omdat ik al tig scripts had waarin ik dit ook deed maar nu heb ik gewoon een goed stukje snelle code :D
Maar je kan toch abstraheren en uitbreidbaar ontwerpen?

आपला आभारी Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator dinsdag 30 oktober 2018 @ 12:19:30 #254
27682 crew  Bosbeetle
terminaal verdwaald
pi_182833395
quote:
16s.gif Op dinsdag 30 oktober 2018 12:18 schreef FlippingCoin het volgende:

[..]

Maar je kan toch abstraheren en uitbreidbaar ontwerpen?

आपला आभारी Flip.
Ik ben ook geen programmeur, kun jij misschien naar mijn edit kijken of daar handiger op lossingen voor zijn....

Ik bedenk me dat ik die constructors voor data met alleen x en y weg zou kunnen laten en dan een null in z gooien maar dat ziet er dan weer lelijk uit als je het aanroept.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182833473
quote:
2s.gif Op dinsdag 30 oktober 2018 12:19 schreef Bosbeetle het volgende:

[..]

Ik ben ook geen programmeur, kun jij misschien naar mijn edit kijken of daar handiger op lossingen voor zijn....

Ik bedenk me dat ik die constructors voor data met alleen x en y weg zou kunnen laten en dan een null in z gooien maar dat ziet er dan weer lelijk uit als je het aanroept.
Constructor overloading en dan de constructor met minder argumenten de Z waarden op 0 zetten? Denk dat dat de Java manier is. :P

мэндчилсэн Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator dinsdag 30 oktober 2018 @ 12:26:21 #256
27682 crew  Bosbeetle
terminaal verdwaald
pi_182833515
quote:
16s.gif Op dinsdag 30 oktober 2018 12:23 schreef FlippingCoin het volgende:

[..]

Constructor overloading en dan de constructor met minder argumenten de Z waarden op 0 zetten? Denk dat dat de Java manier is. :P

мэндчилсэн Flip.
Ja ik zou liever één constructor hebben en één makedistmat... maar ik zie niet precies in hoe... En ik wil ook weer niet enorm gaan zitten iffen in de makedistmat... die 0 is gewoon een wiskundige truuk eigenlijk omdat je een 2d punt gewoon kun behandelen als een 3d punt met een z van 0.

Maarja dat krijg je als niet programmeurs gaan programmeren.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182833547
quote:
2s.gif Op dinsdag 30 oktober 2018 12:26 schreef Bosbeetle het volgende:

[..]

Ja ik zou liever één constructor hebben en één makedistmat... maar ik zie niet precies in hoe... En ik wil ook weer niet enorm gaan zitten iffen in de makedistmat... die 0 is gewoon een wiskundige truuk eigenlijk omdat je een 2d punt gewoon kun behandelen als een 3d punt met een z van 0.
Java is even geleden maar je kan toch vanuit de minst specifieke constructor de specifiekere constructor aanroepen zodat de minst specifieke louter de z waarden op 0 zet en dan de "normale" constructor aanroept?

Saludos cordiales Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator dinsdag 30 oktober 2018 @ 12:57:10 #258
27682 crew  Bosbeetle
terminaal verdwaald
pi_182834122
quote:
16s.gif Op dinsdag 30 oktober 2018 12:27 schreef FlippingCoin het volgende:

[..]

Java is even geleden maar je kan toch vanuit de minst specifieke constructor de specifiekere constructor aanroepen zodat de minst specifieke louter de z waarden op 0 zet en dan de "normale" constructor aanroept?

Saludos cordiales Flip.
dat is wel een slimme :) ga ik doen :) Dat doe ik nu in de makedistmat maar dat is logischer in de constructor inderdaad.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator dinsdag 30 oktober 2018 @ 13:03:33 #259
27682 crew  Bosbeetle
terminaal verdwaald
pi_182834221
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package Neigbours;

public class coordinates {

    double[] x,y,z,x2,y2,z2;
    double max;
    double[][] distmat;

    coordinates(double[] x, double[] y){
        
        double[] z_ = new double[x.length];

        for(int i=0;i<z.length;i++){
            z_ = 0;
        }

        this(x,y,z_);
    }

    coordinates(double[] x, double[] y, double[] z){
        this.x = x;
        this.y = y;
        this.z = z;
        MakeDistmat(x,y,z);
    }

    coordinates(double[] x1, double[] y1, double[] x2, double[] y2){
        double[] z_ = new double[x1.length];
        double[] z2_ = new double[x2.length];

        for(int i=0;i<x.length;i++){
            z_ = 0;
        }        

        for(int i=0;i<x2.length;i++){
            z2_ = 0;
        }

        this(x1,y1,z_,x2,y2,z2_);
    }

    coordinates(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){
        this.x = x1;
        this.y = y1;
        this.z = z1;
        this.x2 = x2;
        this.y2 = y2;
        this.z2 = z2;
        MakeDistmat(x1,y1,z1,x2,y2,z2);
    }

    private void MakeDistmat(double[] x, double[] y, double[] z){

        double[][] dmat = new double[x.length][x.length];

        this.max = 0;

        for(int i=0;i<x.length;i++){
            for(int j=0;j<x.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x[i]-x[j],2) + Math.pow(y[i]-y[j],2) + Math.pow(z[i]-z[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

    private void MakeDistmat(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){

        double[][] dmat = new double[x1.length][x2.length];
        this.max = 0;

        for(int i=0;i<x1.length;i++){
            for(int j=0;j<x2.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x1[i]-x2[j],2) + Math.pow(y1[i]-y2[j],2) + Math.pow(z1[i]-z2[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

}

Dit is al iets schoner :)

[ Bericht 4% gewijzigd door Bosbeetle op 30-10-2018 13:43:02 ]
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator dinsdag 30 oktober 2018 @ 13:44:07 #260
27682 crew  Bosbeetle
terminaal verdwaald
pi_182835043
Kak je mag this() alleen aaroepen als eerste ding in een constructor }:| dan wil dit dus niet... Het probleem is ik weet de lengte van z niet.... anders kon ik gewoon een array met 0's klaar hebben staan.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator dinsdag 30 oktober 2018 @ 13:50:41 #261
27682 crew  Bosbeetle
terminaal verdwaald
pi_182835217
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package Neigbours;

public class coordinates {

    double[] x,y,z,x2,y2,z2;
    double max;
    double[][] distmat;

    coordinates(double[] x, double[] y){
       
        this(x,y,null);
    }

    coordinates(double[] x, double[] y, double[] z){
        
        if(z==null){
            
            z = new double[x.length];

            for(int i=0;i<z.length;i++){
                z[i] = 0;
            }

        }
        
        
        this.x = x;
        this.y = y;
        this.z = z;
        MakeDistmat(x,y,z);
    }

    coordinates(double[] x1, double[] y1, double[] x2, double[] y2){
        
        this(x1,y1,null,x2,y2,null);
    }

    coordinates(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){
        if(z1==null || z2 == null){

            z1 = new double[x1.length];
            z2 = new double[x2.length];
            
            for(int i=0;i<z1.length;i++){
                z1[i] = 0;
            }

            for(int i=0;i<z2.length;i++){
                z2[i] = 0;
            }

        }
        
        this.x = x1;
        this.y = y1;
        this.z = z1;
        this.x2 = x2;
        this.y2 = y2;
        this.z2 = z2;
        MakeDistmat(x1,y1,z1,x2,y2,z2);
    }

    private void MakeDistmat(double[] x, double[] y, double[] z){

        double[][] dmat = new double[x.length][x.length];

        this.max = 0;

        for(int i=0;i<x.length;i++){
            for(int j=0;j<x.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x[i]-x[j],2) + Math.pow(y[i]-y[j],2) + Math.pow(z[i]-z[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

    private void MakeDistmat(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){

        double[][] dmat = new double[x1.length][x2.length];
        this.max = 0;

        for(int i=0;i<x1.length;i++){
            for(int j=0;j<x2.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x1[i]-x2[j],2) + Math.pow(y1[i]-y2[j],2) + Math.pow(z1[i]-z2[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

}

optie drie :P


nogsteeds vier constructors maar dan 2 roepen er 2 aan... ik kan nog naar één functionele constructor die dan door drie anderen wordt aangeroepen...

Maar ik begin me af te vragen of het duidelijker wordt.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator dinsdag 30 oktober 2018 @ 13:58:31 #262
27682 crew  Bosbeetle
terminaal verdwaald
pi_182835418
optie vier:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package Neigbours;

public class coordinates {

    double[] x,y,z,x2,y2,z2;
    double max;
    double[][] distmat;

    coordinates(double[] x, double[] y){

        this(x,y,null);
    }

    coordinates(double[] x, double[] y, double[] z){

        this(x,y,z,null,null,null);
    }

    coordinates(double[] x1, double[] y1, double[] x2, double[] y2){

        this(x1,y1,null,x2,y2,null);
    }

    coordinates(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){
        
        
        if(z1==null){
            z1 = new double[x1.length];
            
            for(int i=0;i<z1.length;i++){
                z1[i] = 0;
            }
        }

        if(z2==null && x2 != null){
            z2 = new double[x2.length];

            for(int i=0;i<z2.length;i++){
                z2[i] = 0;
            }
        }       

        this.x = x1;
        this.y = y1;
        this.z = z1;
        
        
        if(x2==null) {
            MakeDistmat(x1, y1, z1);
        }else{
            this.x2 = x2;
            this.y2 = y2;
            this.z2 = z2;
            MakeDistmat(x1, y1, z1, x2, y2, z2);
        }
    }

    private void MakeDistmat(double[] x, double[] y, double[] z){

        double[][] dmat = new double[x.length][x.length];

        this.max = 0;

        for(int i=0;i<x.length;i++){
            for(int j=0;j<x.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x[i]-x[j],2) + Math.pow(y[i]-y[j],2) + Math.pow(z[i]-z[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

    private void MakeDistmat(double[] x1, double[] y1, double[] z1, double[] x2, double[] y2, double[] z2){

        double[][] dmat = new double[x1.length][x2.length];
        this.max = 0;

        for(int i=0;i<x1.length;i++){
            for(int j=0;j<x2.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x1[i]-x2[j],2) + Math.pow(y1[i]-y2[j],2) + Math.pow(z1[i]-z2[j],2)  );

                if(dmat[i][j]>max){
                    this.max=dmat[i][j];
                }
            }
        }

        this.distmat = dmat;
    }

}

hehe sorry voor de spam, nu de vraag welke zouden jullie gebruiken?
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182836796
Kijk er vanavond even naar Bos, op mobiel beetje vervelend. :P

Su pagarba Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  dinsdag 30 oktober 2018 @ 19:20:55 #264
85514 ralfie
!Yvan eht nioj
pi_182842662
quote:
2s.gif Op dinsdag 30 oktober 2018 13:58 schreef Bosbeetle het volgende:
optie vier:
[ code verwijderd ]

hehe sorry voor de spam, nu de vraag welke zouden jullie gebruiken?
Ik moet moeite doen om je code te volgen, en dat is iha een teken dat je code te chaotisch is.

Code die specifiek is voor het aantal meegegeven argumenten aan een constructor zet je in de specifieke constructor, de rest prop je in een initialize methode. Dat this() is zoo lelijk, maar goed, ik heb een java-allergie :) Het gevaar zie je in je code. Als je de eerste constructor gebruikt (ctor(double[], double[])), moet je vier(!) constructors doorploegen voordat je weet wat je code doet...
  Moderator dinsdag 30 oktober 2018 @ 19:25:25 #265
27682 crew  Bosbeetle
terminaal verdwaald
pi_182842792
quote:
0s.gif Op dinsdag 30 oktober 2018 19:20 schreef ralfie het volgende:

[..]

Ik moet moeite doen om je code te volgen, en dat is iha een teken dat je code te chaotisch is.

Code die specifiek is voor het aantal meegegeven argumenten aan een constructor zet je in de specifieke constructor, de rest prop je in een initialize methode. Dat this() is zoo lelijk, maar goed, ik heb een java-allergie :) Het gevaar zie je in je code. Als je de eerste constructor gebruikt (ctor(double[], double[])), moet je vier(!) constructors doorploegen voordat je weet wat je code doet...
Ja dat versie 1 dus niet maar daar zit dan weer heel veel duplicatie in.

Is er een elegantere oplossing hiervoor?

Hoe zou je het bijvoorbeeld doen zonder die methode? Elke constructor zelf een matrix laten berekenen?

Zoals ik zeg ik heb nooit leren programmeren ik doe maar wat :D
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  dinsdag 30 oktober 2018 @ 20:43:25 #266
85514 ralfie
!Yvan eht nioj
pi_182844790
quote:
1s.gif Op dinsdag 30 oktober 2018 19:25 schreef Bosbeetle het volgende:

[..]

Ja dat versie 1 dus niet maar daar zit dan weer heel veel duplicatie in.

Is er een elegantere oplossing hiervoor?

Hoe zou je het bijvoorbeeld doen zonder die methode? Elke constructor zelf een matrix laten berekenen?

Zoals ik zeg ik heb nooit leren programmeren ik doe maar wat :D
Tuurlijk heb je leren programmeren anders had je dit niet al gehad :) Ik ben zelf nu fullstack developer maar heb ook maar medische wetenschappen gestudeerd. De rest is hobby -->> werk

Om met het meest obvious antwoord te komen: je bent bezig met vectoren en daar zijn in Java standaard classes voor: Vector2D en Vector3D in java. (even snel gegoogled: https://docs.oracle.com/c(...)ecmath/Vector2d.html, geen idee of het wat is, heb nog nooit iets in Java gedaan). De standaard classes hebben standaard properties zoals length, wat feitelijk is wat je berekend. In jouw geval zou je twee arrays van vectoren doorlopen om de max length van elk item te bepalen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
class DistanceMatrix2D
{
  double[,] distances;
  double maxLength = 0;

  constructor(Vector2D[] points)
  {
    //OF this(points, points)
    distances= new double[points.length, points.length];
    for(int x=0;x<points.length;x++)
    {
        for(int y=0;y<points.length;y++)
        {
            this.distances[x,y] = (points[x] - points[y]).length();
            this.maxLength = Math.max(this.distances[x,y], this.maxLength);
        }
    }
  }
  constructor(Vector2D[] points1, Vector2D[] points 2)
  {
    distances= new double[points1.length, points2.length];

    for(int x=0;x<points1.length;x++)
    {
        for(int y=0;y<points2.length;y++)
        {
            this.distances[x,y] = (points1[x] - points2[y]).length();
            this.maxLength = Math.max(this.distances[x,y], this.maxLength);
        }
    }
  }
}
class DistanceMatrix3D
{
  double[,] distances;
  double maxLength = 0;

  constructor(Vector3D[] points)
  {
    //OF this(points, points)
    this.distances= new double[points.length, points.length];
    for(int x=0;x<points.length;x++)
    {
        for(int y=0;y<points.length;y++)
        {
            this.distances[x,y] = (points[x] - points[y]).length();
            this.maxLength = Math.max(this.distances[x,y], this.maxLength);
        }
    }
  }
  constructor(Vector3D[] points1, Vector2D[] points 2)
  {
    this.distances= new double[points1.length, points2.length];

    for(int x=0;x<points1.length;x++)
    {
        for(int y=0;y<points2.length;y++)
        {
            this.distances[x,y] = (points1[x] - points2[y]).length();
            this.maxLength = Math.max(this.distances[x,y], this.maxLength);
        }
    }
  }
}
(code geschreven in fok! 'IDE' en met 0 ervaring in Java, dus mogelijk vol met fouten (en ook mogelijk niet wat je bedoeling was). Maar je snapt het idee neem ik aan?

De code laat ook goed zien dat jouw code feitelijk uit twee distincte scenarios bestaat: 2d en 3d, met daarbinnen de mogelijkheid een array met zichzelf of met een andere array te vergelijken. Vandaar dat ik dit in twee classes zou doen. Leest net wat makkelijker.

Mocht je geen zin hebben in vectoren blijft de code qua structuur hetzelfde, alleen zit er iets meer wiskunde in sommige regels.
  Moderator dinsdag 30 oktober 2018 @ 23:16:41 #267
27682 crew  Bosbeetle
terminaal verdwaald
pi_182848066
quote:
0s.gif Op dinsdag 30 oktober 2018 20:43 schreef ralfie het volgende:

[..]

Tuurlijk heb je leren programmeren anders had je dit niet al gehad :) Ik ben zelf nu fullstack developer maar heb ook maar medische wetenschappen gestudeerd. De rest is hobby -->> werk

Om met het meest obvious antwoord te komen: je bent bezig met vectoren en daar zijn in Java standaard classes voor: Vector2D en Vector3D in java. (even snel gegoogled: https://docs.oracle.com/c(...)ecmath/Vector2d.html, geen idee of het wat is, heb nog nooit iets in Java gedaan). De standaard classes hebben standaard properties zoals length, wat feitelijk is wat je berekend. In jouw geval zou je twee arrays van vectoren doorlopen om de max length van elk item te bepalen.
[ code verwijderd ]

(code geschreven in fok! 'IDE' en met 0 ervaring in Java, dus mogelijk vol met fouten (en ook mogelijk niet wat je bedoeling was). Maar je snapt het idee neem ik aan?

De code laat ook goed zien dat jouw code feitelijk uit twee distincte scenarios bestaat: 2d en 3d, met daarbinnen de mogelijkheid een array met zichzelf of met een andere array te vergelijken. Vandaar dat ik dit in twee classes zou doen. Leest net wat makkelijker.

Mocht je geen zin hebben in vectoren blijft de code qua structuur hetzelfde, alleen zit er iets meer wiskunde in sommige regels.
Ah okay dit snap ik maar als wetenschapper heb ik liever toegang tot mijn eigen methodes :P een cartesian coordinaten paar behandelen als een vector zou ik niet doen, dan val te snel in valkuilen als length zien als een afstand terwijl dat in deze de lengte van de vector is wat voor coördinaten niet echt iets betekend. Een extra klasse maken voor 3d ten opzichte van 2D zorgt dat ik in de bovenliggende code veel meer moet gaan testen en aanroepen.

Wel tof om code van iemand anders te zien, ga wel een keer puzzelen om dit beter te krijgen.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator dinsdag 30 oktober 2018 @ 23:22:41 #268
27682 crew  Bosbeetle
terminaal verdwaald
pi_182848136
Ik heb helaas wel geleerd om zo min mogelijk van externe pakketen of functies afhankelijk te zijn omdat ze die nog wel eens willen veranderen.

:X hoevaak ik wel niet normalisatie functies heb gezien die echt rare dingen met je data doen, terwijl zo makkelijk zelf te schrijven zijn.... :X
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator woensdag 31 oktober 2018 @ 06:53:31 #269
27682 crew  Bosbeetle
terminaal verdwaald
pi_182850444
Opzich zou het misschien nog wel wat zijn om hier een klasse van te maken met twee subklassen voor 2 of 3D zodat ik bovenliggend met de super kan werken... Dat ga ik vandaag eens in elkaar zetten...
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator woensdag 31 oktober 2018 @ 09:13:19 #270
27682 crew  Bosbeetle
terminaal verdwaald
pi_182851394
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package Neigbours;

public class coordinates {

    double[] x,y,x2,y2;
    double max;
    double[][] distmat;

    coordinates(double[] x, double[] y){

        this.x = x;
        this.y = y;

        MakeDistmat(x,y,x,y);

    }

    coordinates(double[] x1, double[] y1,double[] x1, double[] y1){

        this.x = x1;
        this.y = y1;
        this.x2 = x2;
        this.y2 = y2;

        MakeDistmat(x1,y1,x2,y2);

    }


    private void MakeDistmat(double[] x1, double[] y1, double[] x2, double[] y2){

        double[][] dmat = new double[x1.length][x2.length];
        this.max = 0;

        for(int i=0;i<x1.length;i++){
            for(int j=0;j<x2.length;j++){
                dmat[i][j] = Math.sqrt( Math.pow(x1[i]-x2[j],2) + Math.pow(y1[i]-y2[j],2) );

                this.max = Math.max(dmat[i][j],this.max);
            }
        }

        this.distmat = dmat;
    }

}

public class coordinates3D extends coordinates {

    double[] z,z2;

    coordinates3D(double[] x, double[] y, double[] z){

        super(x,y);
        this.z = z;
        addZdist(z,z);


    }

    coordinates3D(double[] x1, double[] y1,double[] z1, double[] x2, double[] y2, double[] z2){

        super(x1,y1,x2,y2);
        this.z = z1;
        this.z2 = z2;
        addZdist(z1,z2);

    }

    private void addZdist(double[] z1, double[] z2 ){

        super.max=0;

        for(int i=0;i<super.distmat.length;i++){
            for(int j=0;j<super.distmat[0].length;j++){
                super.distmat[i][j] = Math.sqrt( Math.pow(super.distmat[i][j],2) + Math.pow(z1[i]-z2[j],2) );
                super.max = Math.max(super.distmat[i][j],super.max);
            }
        }
    }

}

zo dan 2 klasses 1 voor 2D en een extend naar 3D, de construct method voor de matrix gereduceerd naar 1 method per klasse... en dus geen gedoe meer met de z naar 0 zetten...

Het enige wat ik me nu afvraag of ik bij de x en y cooordinaten kan vanuit de coordinates3D via this.x of this.y of dat ik daar nu getters voor moet schrijven die super.x kunnen returnen?
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182854716
quote:
1s.gif Op dinsdag 30 oktober 2018 23:22 schreef Bosbeetle het volgende:
Ik heb helaas wel geleerd om zo min mogelijk van externe pakketen of functies afhankelijk te zijn omdat ze die nog wel eens willen veranderen.

:X hoevaak ik wel niet normalisatie functies heb gezien die echt rare dingen met je data doen, terwijl zo makkelijk zelf te schrijven zijn.... :X
De gebruikte versie van je library kan je vastzetten, vrijwel alle grote systemen gebruiken libraries.

Ezgu tilaklar ila Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182854781
quote:
2s.gif Op woensdag 31 oktober 2018 09:13 schreef Bosbeetle het volgende:

[ code verwijderd ]

zo dan 2 klasses 1 voor 2D en een extend naar 3D, de construct method voor de matrix gereduceerd naar 1 method per klasse... en dus geen gedoe meer met de z naar 0 zetten...

Het enige wat ik me nu afvraag of ik bij de x en y cooordinaten kan vanuit de coordinates3D via this.x of this.y of dat ik daar nu getters voor moet schrijven die super.x kunnen returnen?

Als je een attribuut of methode protected maak dan kan je erbij vanuit het package en subclasses, by default zijn attributen in java private dacht ik.

Ar cieņu Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator woensdag 31 oktober 2018 @ 13:03:48 #273
27682 crew  Bosbeetle
terminaal verdwaald
pi_182855023
quote:
16s.gif Op woensdag 31 oktober 2018 12:45 schreef FlippingCoin het volgende:

[..]

De gebruikte versie van je library kan je vastzetten, vrijwel alle grote systemen gebruiken libraries.

Ezgu tilaklar ila Flip.
Snap ik ik werk nu met imagej dus ik zit ook al aan een api/library vast :P
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator woensdag 31 oktober 2018 @ 13:08:07 #274
27682 crew  Bosbeetle
terminaal verdwaald
pi_182855113
quote:
16s.gif Op woensdag 31 oktober 2018 12:49 schreef FlippingCoin het volgende:

[..]

Als je een attribuut of methode protected maak dan kan je erbij vanuit het package en subclasses, by default zijn attributen in java private dacht ik.

Ar cieņu Flip.
Iets duidelijker gezegd ik heb dus class1 met x en y, en die wordt geextend naar class2 met een z.
Als ik dan class1 object = new class2(); doe kan ik dan vervolgens object.x doen (ik denk het wel) en ook object.z m.a.w. heeft het object de fields van zowel zijn eigen klasse als zijn superklasse.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class1{
int a = 6;
    class1(){
    }

}

class2 extends class1{
   int b = 7;
   class2(){
       super(); //niet nodig persee
   }
}

en dan ergens de code

class1 obj = new class2();
system.out.println("a: "+obj.a);
system.out.println("b: "+obj.b);

werkt dat?
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182855307
quote:
2s.gif Op woensdag 31 oktober 2018 13:08 schreef Bosbeetle het volgende:

[..]

Iets duidelijker gezegd ik heb dus class1 met x en y, en die wordt geextend naar class2 met een z.
Als ik dan class1 object = new class2(); doe kan ik dan vervolgens object.x doen (ik denk het wel) en ook object.z m.a.w. heeft het object de fields van zowel zijn eigen klasse als zijn superklasse.
[ code verwijderd ]

werkt dat?
Zoals in jouw voorbeeld, zou je attribuut a moeten opnemen als:
1protected int a = 6;

En vanwege polymorfisme zou je daarna je object naar class2 moeten casten om attribuut b uit te kunnen printen. Dus als je attribuut a protected maakt kan je dit attribuut in class2 gebruiken.

Niet zoals in je print lines omdat je daar private attributen benaderd vanbuiten de class en dat kan niet.

أطيب التحيات Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator woensdag 31 oktober 2018 @ 13:20:06 #276
27682 crew  Bosbeetle
terminaal verdwaald
pi_182855347
quote:
16s.gif Op woensdag 31 oktober 2018 13:17 schreef FlippingCoin het volgende:

[..]

Zoals in jouw voorbeeld, zou je attribuut a moeten opnemen als:
[ code verwijderd ]

En vanwege polymorfisme zou je daarna je object naar class2 moeten casten om attribuut b uit te kunnen printen. Dus als je attribuut a protected maakt kan je dit attribuut in class2 gebruiken.

Niet zoals in je print lines omdat je daar private attributen benaderd vanbuiten de class en dat kan niet.

أطيب التحيات Flip.
Jup net getest en dat kan, of public... maar protected is beter.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182855389
quote:
2s.gif Op woensdag 31 oktober 2018 13:20 schreef Bosbeetle het volgende:

[..]

Jup net getest en dat kan, of public... maar protected is beter.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class1 {
    protected int a = 6;
    public printA() {
        system.out.println(this.a);
    }
}

class2 {
    int b = 3;
    public printAB() {
        system.out.println(this.a, this.b);
    }
}
class1 obj = new class2();
obj.printA();
(class2) obj.printAB();

zo ongeveer, hoop ik, java is even geleden. :@

Հարգանքներով Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator woensdag 31 oktober 2018 @ 13:45:45 #278
27682 crew  Bosbeetle
terminaal verdwaald
pi_182855876
quote:
16s.gif Op woensdag 31 oktober 2018 13:21 schreef FlippingCoin het volgende:

[..]
[ code verwijderd ]

zo ongeveer, hoop ik, java is even geleden. :@

Հարգանքներով Flip.
ja iets dergelijks werkt wel... :P Ben vooral blij dat ik nu van al die duplicatie af ben, nu kan ik één ding aanpassen en hoef ik niet alles bij langs :)

Ik leer het wel ooit....
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182856777
quote:
14s.gif Op woensdag 31 oktober 2018 13:45 schreef Bosbeetle het volgende:

[..]

ja iets dergelijks werkt wel... :P Ben vooral blij dat ik nu van al die duplicatie af ben, nu kan ik één ding aanpassen en hoef ik niet alles bij langs :)

Ik leer het wel ooit....
Ja het tegengaan van redundancy is sowieso een hoeksteen van betere code, dat en leesbaarheid. :P

S přátelským pozdravem Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182877095
Ben nu bezig met een tweede boek met een iets andere benadering. In het hoofdstuk waar ik nu zit, kwam ik de volgende vragen tegen:

What are the fundamental things you need to think about when you design a Java class?

What are the questions you need to ask yourself?

If you could design a checklist to use when you're designing a class, what would be on the checklist?

Maar er wordt niet echt ingegaan op het beantwoorden hiervan. Aangezien ik het wel interessante vragen vind, wat zouden jullie antwoorden?

ps nee, nog steeds geen huiswerk
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_182877162
quote:
0s.gif Op donderdag 1 november 2018 14:11 schreef uppie83 het volgende:
Ben nu bezig met een tweede boek met een iets andere benadering. In het hoofdstuk waar ik nu zit, kwam ik de volgende vragen tegen:

What are the fundamental things you need to think about when you design a Java class?

What are the questions you need to ask yourself?

If you could design a checklist to use when you're designing a class, what would be on the checklist?

Maar er wordt niet echt ingegaan op het beantwoorden hiervan. Aangezien ik het wel interessante vragen vind, wat zouden jullie antwoorden?

ps nee, nog steeds geen huiswerk
SOLID principles. :)
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator donderdag 1 november 2018 @ 14:53:20 #282
27682 crew  Bosbeetle
terminaal verdwaald
pi_182878011
Ik zie een programma nog veel te veel als een soort parametrische/procedurele benadering van wiskunde.

Simpelweg is voor mij een programma altijd het volgende data -> wiskundige bewerking in korte stappen -> resultaten. Daarom moet voor mij een klasse vaak één van de volgende dingen, iets zeggen over data, een bewerking doen op data, het beter hanteerbaar maken van data.... En ik ben er nog niet over uit of ik binnen een klasse veel methodes maak die dingen met data doen en de data erin hang of dat ik een losse klasse maak voor de data zelf.

Maar ik programmeer vaak met beelden dus de data is meestal vier dimensionaal en gequantificeerd in voxels, dus dat is ietsje lastiger dan linieare data...

Het probleem waar ik wel tegenaan loop is dat ik eigenlijk nooit iets maak wat gewoon iets moet kunnen maar dat ik de code ook altijd exploratief gebruik. Ik werk echt zelden met statische gegevens die telkens hetzelfde zijn, en merk ook dat mijn toolbox daarvoor minder goed gevuld is.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182879233
quote:
2s.gif Op donderdag 1 november 2018 14:53 schreef Bosbeetle het volgende:
Ik zie een programma nog veel te veel als een soort parametrische/procedurele benadering van wiskunde.

Simpelweg is voor mij een programma altijd het volgende data -> wiskundige bewerking in korte stappen -> resultaten. Daarom moet voor mij een klasse vaak één van de volgende dingen, iets zeggen over data, een bewerking doen op data, het beter hanteerbaar maken van data.... En ik ben er nog niet over uit of ik binnen een klasse veel methodes maak die dingen met data doen en de data erin hang of dat ik een losse klasse maak voor de data zelf.

Maar ik programmeer vaak met beelden dus de data is meestal vier dimensionaal en gequantificeerd in voxels, dus dat is ietsje lastiger dan linieare data...

Het probleem waar ik wel tegenaan loop is dat ik eigenlijk nooit iets maak wat gewoon iets moet kunnen maar dat ik de code ook altijd exploratief gebruik. Ik werk echt zelden met statische gegevens die telkens hetzelfde zijn, en merk ook dat mijn toolbox daarvoor minder goed gevuld is.
Lijkt erop als java niet dé taal is voor jou, kijk eens naar het functionele paradigma.

Daarmee laat je als het ware een bak data door een set functies stromen, en dan kan je die set functies veranderen voor andere resultaten.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator donderdag 1 november 2018 @ 15:43:30 #284
27682 crew  Bosbeetle
terminaal verdwaald
pi_182879265
quote:
1s.gif Op donderdag 1 november 2018 15:42 schreef FlippingCoin het volgende:

[..]

Lijkt erop als java niet dé taal is voor jou, kijk eens naar het functionele paradigma.
Ik gebruik ook voornamelijk R wat functioneel is.
Java gebruik ik omdat ik dank kan werken met het programma imagej/fiji en voor de snelheid. Ook schrijf ik veel macros in imagej maar die zijn dan weer sloom.
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
pi_182879333
quote:
2s.gif Op donderdag 1 november 2018 15:43 schreef Bosbeetle het volgende:

[..]

Ik gebruik ook voornamelijk R wat functioneel is.
Java gebruik ik omdat ik dank kan werken met het programma imagej/fiji en voor de snelheid. Ook schrijf ik veel macros in imagej maar die zijn dan weer sloom.
Ah ja R is een stuk beter daarvoor ja.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
  Moderator donderdag 1 november 2018 @ 15:49:02 #286
27682 crew  Bosbeetle
terminaal verdwaald
pi_182879430
quote:
1s.gif Op donderdag 1 november 2018 15:45 schreef FlippingCoin het volgende:

[..]

Ah ja R is een stuk beter daarvoor ja.
maar R is weer een stuk slechter in beelden... en soms plak ik toch weer c++ in r dmv rccp :P

Achja zo heeft alles wat :P

Ik hou er wel van om zo te werken gewoon doelgericht iets voor elkaar zien te krijgen... als het werkt dan werkt het. :D

Ik zou wel graag wat beter fourier transformaties onder de knie hebben, ik weet wat het is en hoe het werkt maar op de fijne details gaat het mis. Daar kun je zoveel leuke image of muziek dingen mee doen als je het goed begrijpt....


Vandaag nog overleg gehad met een klininsch lab waar ze macro's van mij gebruiken. Het is soms wel grappig om te zien hoe mensen reageren als je alleen maar een programmatje structuurtjes laat tellen... ze kijken je soms echt aan alsof je magie doet :P Ikzelf heb een bloedhekel aan telkens hetzelfde doen dus als ik drie keer achter elkaar hetzelfde riedeltje moet doorlopen dan schrijf ik daar wel iets voor, dit zijn mensen die al jaren lang honderden structuurtjes met de hand tellen :o :X (als ik daar gewerkt had had ik dat al veel eerder anders aangepakt)
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  donderdag 1 november 2018 @ 18:56:58 #287
85514 ralfie
!Yvan eht nioj
pi_182883464
quote:
2s.gif Op donderdag 1 november 2018 15:43 schreef Bosbeetle het volgende:

[..]

Ik gebruik ook voornamelijk R wat functioneel is.
Java gebruik ik omdat ik dank kan werken met het programma imagej/fiji en voor de snelheid. Ook schrijf ik veel macros in imagej maar die zijn dan weer sloom.
R functioneel? Procedureel, zeker. object-oriented: ook wel, maar functioneel?

Als je R-achtige bewerkingen met images wil doen kun je het beste beginnen met Python. Praktisch alle zelf-geschreven code in het academisch onderzoek betreffende images wordt in Python gedaan met uitstapjes naar C/C++ als het meer performant moet zijn.
  Moderator donderdag 1 november 2018 @ 18:59:30 #288
27682 crew  Bosbeetle
terminaal verdwaald
pi_182883536
quote:
0s.gif Op donderdag 1 november 2018 18:56 schreef ralfie het volgende:

[..]

R functioneel? Procedureel, zeker. object-oriented: ook wel, maar functioneel?

Als je R-achtige bewerkingen met images wil doen kun je het beste beginnen met Python. Praktisch alle zelf-geschreven code in het academisch onderzoek betreffende images wordt in Python gedaan met uitstapjes naar C/C++ als het meer performant moet zijn.
Dan onderschat je de imagej/cellprofiler community bijna alle microscopie analyse loopt daarop (en dus op Java) en als goede tweede matlab voor de wat meer natuurkundigen.
Er zijn ook wel wat python pakketten maar voor microscopie zit de de cutting edge op matlab.

Ik heb trouwens een verkeerd beeld van functionele talen wat is wel een functionele taal? LISP?
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  Moderator donderdag 1 november 2018 @ 19:04:04 #289
27682 crew  Bosbeetle
terminaal verdwaald
pi_182883623
quote:
0s.gif Op donderdag 1 november 2018 18:56 schreef ralfie het volgende:

[..]

R functioneel? Procedureel, zeker. object-oriented: ook wel, maar functioneel?

Als je R-achtige bewerkingen met images wil doen kun je het beste beginnen met Python. Praktisch alle zelf-geschreven code in het academisch onderzoek betreffende images wordt in Python gedaan met uitstapjes naar C/C++ als het meer performant moet zijn.
Wat vind je trouwens van mijn laatste versie van dat stukje code?
En mochten we vallen dan is het omhoog. - Krang (uit: Pantani)
My favourite music is the music I haven't yet heard - John Cage
Water: ijskoud de hardste - Gehenna
  donderdag 1 november 2018 @ 19:07:00 #290
85514 ralfie
!Yvan eht nioj
pi_182883688
quote:
1s.gif Op donderdag 1 november 2018 18:59 schreef Bosbeetle het volgende:

[..]

Dan onderschat je de imagej/cellprofiler community bijna alle microscopie analyse loopt daarop (en dus op Java) en als goede tweede matlab voor de wat meer natuurkundigen.

Ik heb trouwens een verkeerd beeld van functionele talen wat is wel een functionele taal? LISP?
Sorry, had moeten zeggen medische (radiology) images. Je hebt helemaal gelijk dat microscopie-achtige bewerkingen vaak met java gedaan worden (volgens mij volledig vanwege imagej :) ) en inderdaad matlab was ik even vergeten.

Het verschil tussen functioneel en procedureel is lastig uit te leggen zonder een zooi voorbeelden, dus laat ik dat mooi aan wikipedia over: https://en.wikipedia.org/wiki/Functional_programming

Lisp is idd een voorbeeld, hoewel ik zelf alleen F# en Haskell ken (maar zeer zelden gebruik).
  donderdag 1 november 2018 @ 19:13:08 #291
85514 ralfie
!Yvan eht nioj
pi_182883807
quote:
1s.gif Op donderdag 1 november 2018 19:04 schreef Bosbeetle het volgende:

[..]

Wat vind je trouwens van mijn laatste versie van dat stukje code?
Een stuk duidelijker (zul je zelf ook wel gemerkt hebben?) hoewel ik persoonlijk toch eerder vector2d/vector3d zou gebruiken. Dat is geen exotische code :) vectoren vormen de basis voor alle 2d en 3d coordinate berekeningen in elke programmeer taal, en werken goed samen met matrixvermenigvuldigingen, opengl/directx etc. Wat je doet is niet verkeerd, maar werkt fouten in de hand wanneer je dingen zelf gaat schrijven die al bestaan.
pi_182924581
Hmm de volgende Java code gaat compleet fout (4 foutmeldingen met compilen).... maar waarom :?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class booleanTest{
  public static void main(String[] args){
    int x = 2;

    public boolean method(){
      if(x==3){
        return true;
      }
      return false;
    }

    System.out.print(method());
  }
}
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
  zaterdag 3 november 2018 @ 20:58:17 #293
463823 Rodgrod
Lekker met vanillekwark
pi_182924751
quote:
0s.gif Op zaterdag 3 november 2018 20:48 schreef uppie83 het volgende:
Hmm de volgende Java code gaat compleet fout (4 foutmeldingen met compilen).... maar waarom :?
[ code verwijderd ]

Omdat je een methode definieert in je main methode. Zet hem er buiten en hij werkt, mits het een static methode is.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Main {

    public static void main(String[] args){
        int x = 2;
        System.out.print(method(2));
    }

    public static boolean method(int x){
        if(x==3){
            return true;
        }
        return false;
    }
}
❤️🐤🐤🐤🐤🐤🐤🐤🐤❤️
Doet rubber om staven
pi_182925188
quote:
12s.gif Op zaterdag 3 november 2018 20:58 schreef Rodgrod het volgende:

[..]

Omdat je een methode definieert in je main methode. Zet hem er buiten en hij werkt, mits het een static methode is.
[ code verwijderd ]

oh zo simpel... ok :)
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_182925238
quote:
0s.gif Op zaterdag 3 november 2018 20:48 schreef uppie83 het volgende:
Hmm de volgende Java code gaat compleet fout (4 foutmeldingen met compilen).... maar waarom :?
[ code verwijderd ]

Dat herinner ik mij ook nog wel. :@

Mit freundlichen Grüßen Flip.
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_182935127
ZOooooo, eindelijk mijn eerste 'echte' oefening... het befaamde Tic Tac Toe. Om een beetje te oefenen met het framewerk van de toekomst wilde ik het in JavaFX maken. Het laatste hoofdstuk van het boek ging hier over, al was het niet zo uitgebreid. Tot nu toe heb ik alle compile errors en runtime exceptions volgens mij verholpen. Bij het opstarten blijft het geheel echter hangen. Wie kan mij verder helpen? Aub rekening houdend dat ik net begonnen ben met Java O-)

ps. Ja ik heb heel veel op internet gekeken, maar iedereen heeft een andere benadering, waardoor de code dusdanig anders is dat ik het dan compleet moet kopieren om er wat mee te kunnen.

ps 2. toch wel trots op mijzelf dat ik al zover kom zonder ook maar iets af te kijken :Y

cell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import javafx.scene.control.Button;

public class cell extends Button{
  //int length;                //length of all sides
  String state;              // X, O, or unset ""
  
  //constructor
  public cell(String s){
    state = s;
    //standard length
    //length = 100;
  }

  public boolean isSet(){
    if(!state.equals("")){
      return true;
    }
    return false;
  }

  public void setState(String x){
    state = x;
  }

  public String getState(){
    return state;
  }
}

board
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
public class board{
  public cell[][] board;

  //constructor
  public board(){
    board = new cell[3][3];
    for(int x = 0; x<3; x++){
      for(int y = 0; y<3; y++){
        //creates 9 cells with empty states
        board[x][y]= new cell("");
      }
    }
  }

  // checks if cells at row Y have the same state
  boolean checkRow(int y){
    //isSet check for all cells
    for(int x = 0; x<3; x++){
      if(!board[x][y].isSet()){
        return false;
      }
    }
    //if all cells are set, check for win-condition
    if(  board[0][y].getState().equals( board[1][y].getState() ) && board[1][y].getState().equals(board[2][y].getState())    ){
      return true;
    }
    return false;
  }

  // checks if cells at column X have the same state
  boolean checkColumn(int x){
    //isSet check for all cells
    for(int y = 0; y<3; y++){
      if(!board[x][y].isSet()){
        return false;
      }
    }
    //if all cells are set, check for win-condition
    if(  board[x][0].getState().equals( board[x][1].getState() ) && board[x][1].getState().equals(board[x][2].getState())    ){
      return true;
    }
    return false;
  }

  boolean checkDiagonals(){
    boolean check1 = true;
    boolean check2 = true;
    // diagonal 1 (top left, bottom right) isSet check
    for(int i = 0; i<3; i++){
      if(!board[i][i].isSet()){
        check1 = false;
      }
    }
    //if all cells are set, check for win-condition
    if(check1){
      if( board[0][0].getState().equals( board[1][1].getState() ) && board[1][1].getState().equals(board[2][2].getState())    ){
        return check1;
      }
    }
    // diagonal 2 (bottom left, top right) isSet check (only if diagonal 1 didn't have the win-condition
    for(int i = 0; i<3; i++){
      for(int j = 2; j>=0; j--){
        if(!board[i][j].isSet()){
          check2 = false;
        }
      }
    }
    //if all cells are set, check for win-condition
    if(check2){
      if( board[0][2].getState().equals( board[1][1].getState() ) && board[1][1].getState().equals(board[2][0].getState())    ){
        return check2;
      }
    }
    // no diagonal had a win-condition
    return false;
  }

  public boolean checkBoard(){
    if(checkRow(0) || checkRow(1) || checkRow(2) || checkColumn(0) || checkColumn(1) || checkColumn(2) || checkDiagonals()){
      return true;
    }
    return false;
  }
}

player
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class player{
 int number;
 String userSymbol;
 
 public player(String u){
   userSymbol = u;
 }

 public void setNumber(int n){
   number = n;
 }
 public int getNumber(){
   return number;
 }
 public void setUserSymbol(String s){
   userSymbol = s;
 }
 public String getUserSymbol(){
   return userSymbol;
 }
}

game
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/* My own Tic-Tac-Toe game.
 */
 
import javafx.application.*;
import javafx.scene.*;
import javafx.stage.*;
import javafx.scene.layout.*;
import javafx.scene.control.*;
import javafx.event.*;
import javafx.geometry.*;

public class game extends Application{

  
  public static void main(String[] args){

    //start the JavaFX application by calling launch()
    launch(args);
  }
  
  // override the start() method
  public void start(Stage myStage){
    board gameBoard = new board();
    player player1 = new player("X");
    player player2 = new player("O");
    player currentPlayer;
    boolean isPlayer1 = true;
    boolean finished = false;
    
    if(isPlayer1){
      currentPlayer = player1;
    }
    else{
      currentPlayer = player2;
    }
    
    // give the stage a title
    myStage.setTitle("Tic-Tac-Toe");
    // use a flowpane for the root node. In this case,
    // vertical and horizontal gaps of 10
    GridPane rootNode = new GridPane();

    // center the controls in the scene
    rootNode.setAlignment(Pos.CENTER);
    // create a scene
    Scene myScene = new Scene(rootNode, 340, 340);
    // set the scene on the stage
    myStage.setScene(myScene);

    // handle the action events for the cell-buttons
      gameBoard.board[0][0].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          gameBoard.board[0][0].setText(currentPlayer.getUserSymbol());
        }
      });
      gameBoard.board[0][1].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          gameBoard.board[0][1].setText(currentPlayer.getUserSymbol());
        }
      });
      gameBoard.board[0][2].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          gameBoard.board[0][2].setText(currentPlayer.getUserSymbol());
        }
      });
      gameBoard.board[1][0].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          gameBoard.board[1][0].setText(currentPlayer.getUserSymbol());
        }
      });
      gameBoard.board[1][1].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          gameBoard.board[1][1].setText(currentPlayer.getUserSymbol());
        }
      });
      gameBoard.board[1][2].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          gameBoard.board[1][2].setText(currentPlayer.getUserSymbol());
        }
      });
      gameBoard.board[2][0].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          gameBoard.board[2][0].setText(currentPlayer.getUserSymbol());
        }
      });
      gameBoard.board[2][1].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          gameBoard.board[2][1].setText(currentPlayer.getUserSymbol());
        }
      });
      gameBoard.board[2][2].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          gameBoard.board[2][2].setText(currentPlayer.getUserSymbol());
        }
      });

    // add the label and buttons to the scene graph
    rootNode.getChildren().addAll(gameBoard.board[0][0], gameBoard.board[0][1], gameBoard.board[0][2], gameBoard.board[1][0], gameBoard.board[1][1], gameBoard.board[1][2], gameBoard.board[2][0], gameBoard.board[2][1], gameBoard.board[2][2]);
    
    //show the stage and its scene
    myStage.show();

    //game
    while(!finished){
     //game on!
     isPlayer1 = !isPlayer1;
     finished = gameBoard.checkBoard();
    }
  }
}
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
  zondag 4 november 2018 @ 13:06:59 #297
85514 ralfie
!Yvan eht nioj
pi_182935864
quote:
0s.gif Op zondag 4 november 2018 12:19 schreef uppie83 het volgende:
ZOooooo, eindelijk mijn eerste 'echte' oefening... het befaamde Tic Tac Toe. Om een beetje te oefenen met het framewerk van de toekomst wilde ik het in JavaFX maken. Het laatste hoofdstuk van het boek ging hier over, al was het niet zo uitgebreid. Tot nu toe heb ik alle compile errors en runtime exceptions volgens mij verholpen. Bij het opstarten blijft het geheel echter hangen. Wie kan mij verder helpen? Aub rekening houdend dat ik net begonnen ben met Java O-)

ps. Ja ik heb heel veel op internet gekeken, maar iedereen heeft een andere benadering, waardoor de code dusdanig anders is dat ik het dan compleet moet kopieren om er wat mee te kunnen.

ps 2. toch wel trots op mijzelf dat ik al zover kom zonder ook maar iets af te kijken :Y

cell
[ code verwijderd ]

board
[ code verwijderd ]

player
[ code verwijderd ]

game
[ code verwijderd ]

Je logica onder 'game' klopt voor geen meter.

-Je checkt alleen aan het begin van het spel wiens beurt het is, en thats it
-Je controleert of iemand gewonnen heeft xduizend keer per seconde waardoor het allemaal vast loopt.

Beurtwissel en winstcondities moet je controleren nadat iemand ergens op geklikt heeft, in de eventhandlers dus. Niet aan het begin van het snel (wordt niet meer geupdate) en ook niet in een loopje aan het eind (loopt de zaak van vast).

Heb je geen fatsoenlijke IDE om je code te debuggen?
pi_182937061
quote:
0s.gif Op zondag 4 november 2018 13:06 schreef ralfie het volgende:

[..]

Je logica onder 'game' klopt voor geen meter.

-Je checkt alleen aan het begin van het spel wiens beurt het is, en thats it
-Je controleert of iemand gewonnen heeft xduizend keer per seconde waardoor het allemaal vast loopt.

Beurtwissel en winstcondities moet je controleren nadat iemand ergens op geklikt heeft, in de eventhandlers dus. Niet aan het begin van het snel (wordt niet meer geupdate) en ook niet in een loopje aan het eind (loopt de zaak van vast).

Heb je geen fatsoenlijke IDE om je code te debuggen?
Context, http://www.contexteditor.org/index.php, is de BOM!!!!

Ik had in mijn boek begrepen dat je je eventhandlers juist zo kort en licht mogelijk moet houden. Vandaar dat ik de checks daar niet in wilde zetten. Wanneer het spel enkel in de console gespeeld zou worden dan zou het naar mijn idee een while(!wincondition) zijn. Maar nu ik het geheel ook nog in JavaFX moet plaatsen heb ik even geen idee hoe dat werkt.
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
  zondag 4 november 2018 @ 15:58:24 #299
463823 Rodgrod
Lekker met vanillekwark
pi_182938669
quote:
0s.gif Op zondag 4 november 2018 14:18 schreef uppie83 het volgende:

[..]

Context, http://www.contexteditor.org/index.php, is de BOM!!!!

Ik had in mijn boek begrepen dat je je eventhandlers juist zo kort en licht mogelijk moet houden. Vandaar dat ik de checks daar niet in wilde zetten. Wanneer het spel enkel in de console gespeeld zou worden dan zou het naar mijn idee een while(!wincondition) zijn. Maar nu ik het geheel ook nog in JavaFX moet plaatsen heb ik even geen idee hoe dat werkt.
Je wilt je eventhandlers zo logisch mogelijk houden. Het is naar mijn mening best logisch dat bij een zet event er wordt gecontroleerd of er sprake is van winst en de speler wordt omgedraaid. Oftewel roep bij een zet iets van een methode aan genaamd ProcessTurn()

De while loop wordt constant uit gevoerd tot er voldaan is aan de conditie van de loop. Dat betekent dat je momenteel giga vaak in een seconde van speler wisselt en checkt of er sprake is van winst. Waarschijnlijk de reden dat de boel hangt. Als ik jou was zou ik de hele loop verwijderen.
❤️🐤🐤🐤🐤🐤🐤🐤🐤❤️
Doet rubber om staven
pi_182938977
Goed, naar aanleiding van jullie feedback ben ik al een heel stuk verder gekomen O+ Geen errors, exceptions of vastlopende dingen. Ook kan ik nu op de buttons klikken en komt er een X te staan. Helaas blijft het daar echter nog bij.

Update game
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
/* My own Tic-Tac-Toe game.
 */
 
import javafx.application.*;
import javafx.scene.*;
import javafx.stage.*;
import javafx.scene.layout.*;
import javafx.scene.control.*;
import javafx.event.*;
import javafx.geometry.*;

public class game extends Application{
  boolean isPlayer1 = true;
  boolean finished = false;
  
  public static void main(String[] args){

    //start the JavaFX application by calling launch()
    launch(args);
  }
  
  // override the start() method
  public void start(Stage myStage){
    board gameBoard = new board();
    player player1 = new player("X");
    player player2 = new player("O");
    player currentPlayer;

    if(isPlayer1){
      currentPlayer = player1;
    }
    else{
      currentPlayer = player2;
    }
    
    // give the stage a title
    myStage.setTitle("Tic-Tac-Toe");
    // use a flowpane for the root node. In this case,
    // vertical and horizontal gaps of 10
    GridPane rootNode = new GridPane();

    // center the controls in the scene
    rootNode.setAlignment(Pos.CENTER);
    // create a scene
    Scene myScene = new Scene(rootNode, 340, 340);
    // set the scene on the stage
    myStage.setScene(myScene);

    // handle the action events for the cell-buttons
      gameBoard.board[0][0].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          if(!finished){
            gameBoard.board[0][0].setText(currentPlayer.getUserSymbol());
            gameBoard.board[0][0].setText(currentPlayer.getUserSymbol());
            if(gameBoard.checkBoard()){
              finished = true;
              System.out.print(currentPlayer.getUserSymbol() + " has won!");
            }
            else{
              isPlayer1 = !isPlayer1;
            }
          }
        }
      });
      gameBoard.board[0][1].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          if(!finished){
            gameBoard.board[0][1].setText(currentPlayer.getUserSymbol());
            gameBoard.board[0][1].setText(currentPlayer.getUserSymbol());
            if(gameBoard.checkBoard()){
              finished = true;
              System.out.print(currentPlayer.getUserSymbol() + " has won!");
            }
            else{
              isPlayer1 = !isPlayer1;
            }
          }
        }
      });
      gameBoard.board[0][2].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          if(!finished){
            gameBoard.board[0][2].setText(currentPlayer.getUserSymbol());
            gameBoard.board[0][2].setText(currentPlayer.getUserSymbol());
            if(gameBoard.checkBoard()){
              finished = true;
              System.out.print(currentPlayer.getUserSymbol() + " has won!");
            }
            else{
              isPlayer1 = !isPlayer1;
            }
          }
        }
      });
      gameBoard.board[1][0].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          if(!finished){
            gameBoard.board[1][0].setText(currentPlayer.getUserSymbol());
            gameBoard.board[1][0].setText(currentPlayer.getUserSymbol());
            if(gameBoard.checkBoard()){
              finished = true;
              System.out.print(currentPlayer.getUserSymbol() + " has won!");
            }
            else{
              isPlayer1 = !isPlayer1;
            }
          }
        }
      });
      gameBoard.board[1][1].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          if(!finished){
            gameBoard.board[1][1].setText(currentPlayer.getUserSymbol());
            gameBoard.board[1][1].setText(currentPlayer.getUserSymbol());
            if(gameBoard.checkBoard()){
              finished = true;
              System.out.print(currentPlayer.getUserSymbol() + " has won!");
            }
            else{
              isPlayer1 = !isPlayer1;
            }
          }
        }
      });
      gameBoard.board[1][2].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          if(!finished){
            gameBoard.board[1][2].setText(currentPlayer.getUserSymbol());
            gameBoard.board[1][2].setText(currentPlayer.getUserSymbol());
            if(gameBoard.checkBoard()){
              finished = true;
              System.out.print(currentPlayer.getUserSymbol() + " has won!");
            }
            else{
              isPlayer1 = !isPlayer1;
            }
          }
        }
      });
      gameBoard.board[2][0].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          if(!finished){
            gameBoard.board[2][0].setText(currentPlayer.getUserSymbol());
            gameBoard.board[2][0].setText(currentPlayer.getUserSymbol());
            if(gameBoard.checkBoard()){
              finished = true;
              System.out.print(currentPlayer.getUserSymbol() + " has won!");
            }
            else{
              isPlayer1 = !isPlayer1;
            }
          }
        }
      });
      gameBoard.board[2][1].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          if(!finished){
            gameBoard.board[2][1].setText(currentPlayer.getUserSymbol());
            gameBoard.board[2][1].setState(currentPlayer.getUserSymbol());
            if(gameBoard.checkBoard()){
              finished = true;
              System.out.print(currentPlayer.getUserSymbol() + " has won!");
            }
            else{
              isPlayer1 = !isPlayer1;
            }
          }
        }
      });
      gameBoard.board[2][2].setOnAction(new EventHandler<ActionEvent>(){
        public void handle(ActionEvent ae){
          if(!finished){
            gameBoard.board[2][2].setText(currentPlayer.getUserSymbol());
            gameBoard.board[2][2].setText(currentPlayer.getUserSymbol());
            if(gameBoard.checkBoard()){
              finished = true;
              System.out.print(currentPlayer.getUserSymbol() + " has won!");
            }
            else{
              isPlayer1 = !isPlayer1;
            }
          }
        }
      });

    // add the label and buttons to the scene graph
    rootNode.add(gameBoard.board[0][0],0, 0, 1, 1);
    rootNode.add(gameBoard.board[0][1],0, 1, 1, 1);
    rootNode.add(gameBoard.board[0][2],0, 2, 1, 1);
    rootNode.add(gameBoard.board[1][0],1, 0, 1, 1);
    rootNode.add(gameBoard.board[1][1],1, 1, 1, 1);
    rootNode.add(gameBoard.board[1][2],1, 2, 1, 1);
    rootNode.add(gameBoard.board[2][0],2, 0, 1, 1);
    rootNode.add(gameBoard.board[2][1],2, 1, 1, 1);
    rootNode.add(gameBoard.board[2][2],2, 2, 1, 1);

    //show the stage and its scene
    myStage.show();

    /*game
    while(!finished){
     //game on!
     isPlayer1 = !isPlayer1;
     finished = gameBoard.checkBoard();
    } */
  }
}
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_182985102
Ik heb de tic tac toe helemaal af en werkend. Is er ook een manier om de boel zelfstandig te draaien? Zonder dat ik .class bestanden met de jvm moet aanroepen....iets executables, of in de browser draaibaars...
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')