FOK!forum / Digital Corner / [development topic] #3 Don't tap on glass, you'll scare the devs!
cablegunmaster
donderdag 6 september 2018 @ 19:36
Welkom in het Algemene Dev Topic! 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.
Het originele design zit vol bootstrap, dus denk wel dat ik dat er in ga houden. 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.
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.
Ik heb vakantie Laatste dag Na het weekend weer beginnen, maar even kijken waaraan. Had alles netjes afgerond.
FlippingCoin
vrijdag 7 september 2018 @ 17:15
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.
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.
Klinkt wel vet.
కైండ్ గౌరవంతో Flip.
uppie83
vrijdag 7 september 2018 @ 19:16
Kan nergens in de OP vinden over welke talen dit topic/deze reeks gaat. Betekent dit automatisch alle talen?
FlippingCoin
vrijdag 7 september 2018 @ 19:18
quote:
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 ]
uppie83
vrijdag 7 september 2018 @ 19:36
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 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.
FlippingCoin
vrijdag 7 september 2018 @ 19:48
quote:
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 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.
FlippingCoin
vrijdag 7 september 2018 @ 19:53
quote:
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 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:
1
javac 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.
uppie83
vrijdag 7 september 2018 @ 19:58
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 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.
FlippingCoin
vrijdag 7 september 2018 @ 20:40
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.
uppie83
vrijdag 7 september 2018 @ 20:57
quote:
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.
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.
FlippingCoin
vrijdag 7 september 2018 @ 21:40
quote:
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.
uppie83
vrijdag 7 september 2018 @ 21:42
Kort gezegd door degene die mij begeleid naar mijn OCA toe
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.
Tislijiet Flip.
Sigaartje
zaterdag 8 september 2018 @ 14:23
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:
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?
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.
Vind dat ook wel een groot nadeel van Golang dat je de mogelijkheid van function chaining mist.
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.
Gaaf, hoe werkt dat tweede systeem waar je mee bezig bent dat snap ik niet helemaal.
Klinkt wel vet.
కైండ్ గౌరవంతో 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.
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.
Vind zelf Java wel een fijne taal om in te programmeren maar komt ook omdat bij mijn studie we werkten met java en python.
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. En ook wel iets waarmee je goed resultaat kan zien.
Oh dat glinkt wel als een erg gaaf project. En ook wel iets waarmee je goed resultaat kan zien.
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.
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.
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.
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.
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.
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.
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.
Sigaartje
zondag 9 september 2018 @ 08:28
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.
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.
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.
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.
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.
Ga hierna als je wat dieper in het boek in gaat met Intellij verder . Bluej laat je heel goed zien hoe "klassen" en objecten initialiseren werkt. Als je dit begrijpt, laat het me dan weten.
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.
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.
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?
Ga hierna als je wat dieper in het boek in gaat met Intellij verder . Bluej laat je heel goed zien hoe "klassen" en objecten initialiseren werkt. Als je dit begrijpt, laat het me dan weten.
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.
FlippingCoin
zondag 9 september 2018 @ 15:20
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?
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?
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.
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?
FlippingCoin
zondag 9 september 2018 @ 15:41
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.
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.
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.
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 ]
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.
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.
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.
#ANONIEM
maandag 10 september 2018 @ 04:51
quote:
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.
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?
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.
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.
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.
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.
cablegunmaster
maandag 10 september 2018 @ 13:13
quote:
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.
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.
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 ]
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." Het gaat er juist om nieuwe dingen te zien , ik ken het meeste wel maar het is JUIST bedoelt om je te verbreden.
Andere insteek: "zover zou ik graag willen zijn en ik wil zien wat er allemaal is om me heen." 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 ]
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?
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.
Nog steeds erg triviaal maar mocht je wat real-life voorbeelden willen is dit wel een aardige:
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.
Nog steeds erg triviaal maar mocht je wat real-life voorbeelden willen is dit wel een aardige:
voor mij is nummer 2 simpeler, omdat ik het ken, 1 moet ik nadenken, van goh wat doet map functie nou eigenlijk. 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.
voor mij is nummer 2 simpeler, omdat ik het ken, 1 moet ik nadenken, van goh wat doet map functie nou eigenlijk. 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.
cablegunmaster
maandag 10 september 2018 @ 21:34
quote:
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. Map in java is een <String, String > of String , Object of <String, int[]> maar altijd een combinatie.
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?
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.
/* 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. */
//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
cablegunmaster
donderdag 13 september 2018 @ 15:13
quote:
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? Voor elke wijziging moet je redraw uitvoeren.
[ Bericht 15% gewijzigd door cablegunmaster op 13-09-2018 15:18:29 ]
Je hebt helemaal gelijk waar is je redraw / repaint() functie? 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 ]
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?
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 ]
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
embedguy
donderdag 13 september 2018 @ 21:34
quote:
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.
[ Bericht 3% gewijzigd door embedguy op 13-09-2018 21:51:25 ]
embedguy
donderdag 13 september 2018 @ 21:41
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.
cablegunmaster
vrijdag 14 september 2018 @ 10:19
quote:
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.
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 ]
[..] 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 ]
Dit legt het veel beter uit. 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 ?
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.
En ow; je hebt door dat je nu zijn schoolopdracht hebt gemaakt zonder dat hij het hoefde te begrijpen ?
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.
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.
Dit legt het veel beter uit. 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 )
- 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 ]
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.
FlippingCoin
zaterdag 15 september 2018 @ 16:59
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?
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 )
- 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?
embedguy
zaterdag 15 september 2018 @ 18:24
quote:
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.
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.
/* 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. */
//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; } } }
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.
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.
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.
cablegunmaster
zondag 16 september 2018 @ 14:41
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:
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.
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.
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.
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.
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.
FlippingCoin
donderdag 20 september 2018 @ 15:14
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.
cablegunmaster
donderdag 20 september 2018 @ 15:32
quote:
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? daarnaast 2x i zo dichtbij elkaar gebruiken is voor mij een riskant gevoel, error prone.
encodeKey decodeKey bv? 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.
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.
Daar kan ik helemaal mee eens zijn. Maar dit leer je gaanderweg ook, als je door andermans code heen spit.
Mooi zo, en en ook al waarom een kleinere scope beter is?
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.
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.
Hoe kleiner de scope hoe kleiner de side effects.
uppie83
vrijdag 21 september 2018 @ 19:55
Even een ander soort vraag, wordt het bedenken en ontwerpen van een programma nog steeds gedaan in UML?
FlippingCoin
vrijdag 21 september 2018 @ 20:17
quote:
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.
embedguy
vrijdag 21 september 2018 @ 21:42
quote:
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?
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?
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):
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.
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.
FlippingCoin
zondag 23 september 2018 @ 23:28
Het wordt trouwens in het functionele paradigma ook gebruikt i.p.v. de loops zoals jij ze kent.
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.
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.
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.
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.
uppie83
maandag 24 september 2018 @ 12:37
Ziet er zeker tof uit!
FlippingCoin
maandag 24 september 2018 @ 21:06
Hebben jullie ook vaak een idee, en dat je dan denkt dat je iets cools bedacht hebt en het al lang blijkt te bestaan?
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 ]
FlippingCoin
dinsdag 25 september 2018 @ 10:19
case > 90
case > 80
case > 70 et cetera
Of
case < 60
case < 70 ...
cablegunmaster
dinsdag 25 september 2018 @ 13:23
quote:
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. Dus het meeste wat je met if else kan , kan je ook met een switch statement.
cablegunmaster
dinsdag 25 september 2018 @ 13:46
Vanavond verder met bitshiften en kijken hoe het werkt. Ik voel me gelijk een jaren 1980 programmeur. Bitjes tellen en kijken of het klopt .
uppie83
dinsdag 25 september 2018 @ 16:02
quote:
Op dinsdag 25 september 2018 13:46 schreef cablegunmaster het volgende: Vanavond verder met bitshiften en kijken hoe het werkt. Ik voel me gelijk een jaren 1980 programmeur. Bitjes tellen en kijken of het klopt .
Ah daar zijn de bitwise operators weer
FlippingCoin
dinsdag 25 september 2018 @ 16:45
quote:
Op dinsdag 25 september 2018 13:46 schreef cablegunmaster het volgende: Vanavond verder met bitshiften en kijken hoe het werkt. Ik voel me gelijk een jaren 1980 programmeur. Bitjes tellen en kijken of het klopt .
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.
uppie83
woensdag 26 september 2018 @ 21:31
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?
cablegunmaster
donderdag 27 september 2018 @ 07:56
quote:
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.
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.
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?
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?
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.
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?
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 .
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.
Heb net ook een boek gevonden over functioneel programmeren in ES6 van 180 bladzijden of zo. Ook maar eens doorlezen.
[ Bericht 4% gewijzigd door cablegunmaster op 01-10-2018 16:07:44 ]
cablegunmaster
dinsdag 2 oktober 2018 @ 09:52
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 ]
cablegunmaster
dinsdag 2 oktober 2018 @ 14:25
Eindelijk een goed UML / diagam teken programma gevonden.
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.
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.
embedguy
dinsdag 2 oktober 2018 @ 21:23
quote:
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 }
Ik ben bezig in Java. maar, ik ga eens kijken om er een paar mini programmaatjes te maken, zodat ik het voor mezelf helder heb. . 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.
[ Bericht 15% gewijzigd door cablegunmaster op 03-10-2018 10:47:07 ]
Ik ben bezig in Java. maar, ik ga eens kijken om er een paar mini programmaatjes te maken, zodat ik het voor mezelf helder heb. . 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.
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
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?
cablegunmaster
dinsdag 16 oktober 2018 @ 14:10
quote:
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.
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.
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. 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.
S priateľským pozdravom Flip.
[ Bericht 12% gewijzigd door FlippingCoin op 16-10-2018 19:23:32 ]
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.
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).
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. 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.
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.
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.
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.
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.
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.
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.
#ANONIEM
woensdag 24 oktober 2018 @ 10:24
Hey hoe is het met jullie?
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 ]
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.
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...
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
[ Bericht 2% gewijzigd door #ANONIEM op 24-10-2018 11:24:42 ]
Ja oef, ik heb de Microsoft-documentatie altijd ervaren als pittige hap...
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
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 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. 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 ]
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. 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.
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.
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.
Nee weet ik, ik ben al een paar jaar met Laravel bezig geweest
#ANONIEM
zondag 28 oktober 2018 @ 11:26
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 ]
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.
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?
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
uppie83
maandag 29 oktober 2018 @ 14:07
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?
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.
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.
FlippingCoin
maandag 29 oktober 2018 @ 19:59
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.
FlippingCoin
maandag 29 oktober 2018 @ 20:02
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.
ralfie
maandag 29 oktober 2018 @ 20:56
quote:
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 ).
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.
Cool.
Niet een klein stukje werkende taal gekregen?
दयालु सादर Flip.
Bosbeetle
dinsdag 30 oktober 2018 @ 11:06
Ik ontdek net pas de tenary operator dus
1
int 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
Bosbeetle
dinsdag 30 oktober 2018 @ 11:12
quote:
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
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
Die is soms wel echt fijn ja, maar soms maakt die het alleen maar meer onleesbaar daar zou ik mee oppassen.
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
Ja dat zeker, dit boek behandelt vooral het perspectief van waaruit je naar een probleem kijkt.
Ja dat zeker, dit boek behandelt vooral het perspectief van waaruit je naar een probleem kijkt.
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
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
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...
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
heb trouwens wel een vraagje aan jullie, hoe kan ik dit handiger aanpakken:
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.
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...
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
Maar je kan toch abstraheren en uitbreidbaar ontwerpen?
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.
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.
Constructor overloading en dan de constructor met minder argumenten de Z waarden op 0 zetten? Denk dat dat de Java manier is.
мэндчилсэн 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.
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?
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.
[ Bericht 4% gewijzigd door Bosbeetle op 30-10-2018 13:43:02 ]
Bosbeetle
dinsdag 30 oktober 2018 @ 13:44
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.
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...
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
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
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 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.
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 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.
Bosbeetle
dinsdag 30 oktober 2018 @ 23:22
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.
hoevaak ik wel niet normalisatie functies heb gezien die echt rare dingen met je data doen, terwijl zo makkelijk zelf te schrijven zijn....
Bosbeetle
woensdag 31 oktober 2018 @ 06:53
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...
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?
FlippingCoin
woensdag 31 oktober 2018 @ 12:45
quote:
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.
hoevaak ik wel niet normalisatie functies heb gezien die echt rare dingen met je data doen, terwijl zo makkelijk zelf te schrijven zijn....
De gebruikte versie van je library kan je vastzetten, vrijwel alle grote systemen gebruiken libraries.
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.
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);
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:
1
protected 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.
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.
ja iets dergelijks werkt wel... 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.
S přátelským pozdravem Flip.
uppie83
donderdag 1 november 2018 @ 14:11
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
FlippingCoin
donderdag 1 november 2018 @ 14:14
quote:
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.
Bosbeetle
donderdag 1 november 2018 @ 14:53
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.
FlippingCoin
donderdag 1 november 2018 @ 15:42
quote:
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.
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.
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.
maar R is weer een stuk slechter in beelden... en soms plak ik toch weer c++ in r dmv rccp
Achja zo heeft alles wat
Ik hou er wel van om zo te werken gewoon doelgericht iets voor elkaar zien te krijgen... als het werkt dan werkt het.
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 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 (als ik daar gewerkt had had ik dat al veel eerder anders aangepakt)
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.
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?
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?
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.
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.
uppie83
zaterdag 3 november 2018 @ 20:48
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()); } }
Rodgrod
zaterdag 3 november 2018 @ 20:58
quote:
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)); }
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
FlippingCoin
zaterdag 3 november 2018 @ 21:21
quote:
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.
uppie83
zondag 4 november 2018 @ 12:19
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
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
//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 void setNumber(int n){ number = n; } public int getNumber(){ return number; } public void setUserSymbol(String s){ userSymbol = s; } public String getUserSymbol(){ return userSymbol; } }
//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;
// 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]);
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
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
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?
-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?
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.
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.
uppie83
zondag 4 november 2018 @ 16:15
Goed, naar aanleiding van jullie feedback ben ik al een heel stuk verder gekomen 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.
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;
// 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);
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...