Het is in ieder geval vakantie, dus dat is mooi.
Java Swing? You better start running.....Martindo schreef op vrijdag 18 oktober 2013 @ 13:07:
Sinds een paar dagen Java Swing ontdekt, binnenkort maar eens mee gaan kloten, kunnen vast wel wat nuttige appjes uit komen.
Het is in ieder geval vakantie, dus dat is mooi.
Blegh, Swing is echt een gedrocht naar mijn mening
Verwijderd
Zou je in de plaats niet kijken naar Java FX?Martindo schreef op vrijdag 18 oktober 2013 @ 13:07:
Sinds een paar dagen Java Swing ontdekt, binnenkort maar eens mee gaan kloten, kunnen vast wel wat nuttige appjes uit komen.
Het is in ieder geval vakantie, dus dat is mooi.
Vakantie zal grotendeels toch wel met me tentamens bezig zijn.
* Firesphere sluit het koffie infuus aan.pdebie schreef op vrijdag 18 oktober 2013 @ 13:55:
pffffff vrijdagmiddag dip hier. Heeft er iemand koffie?!
I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
Verwijderd
Nog 3 uurtjes wachten hierEalanrian schreef op vrijdag 18 oktober 2013 @ 14:07:
* Ealanrian sluit het alcohol infuus er bij aan
Hier ook vrijdagmiddagdip. Dus maar energiedrank + goede muziek!pdebie schreef op vrijdag 18 oktober 2013 @ 13:55:
pffffff vrijdagmiddag dip hier. Heeft er iemand koffie?!
RUN FOR YOUR LIFE!Martindo schreef op vrijdag 18 oktober 2013 @ 13:07:
Sinds een paar dagen Java Swing ontdekt, binnenkort maar eens mee gaan kloten, kunnen vast wel wat nuttige appjes uit komen.
Het is in ieder geval vakantie, dus dat is mooi.
Misschien zouden ze ook gewoon een switch kunnen maken bij de opties?
EDIT: Ter verduidelijking, die switch was niet de compiler switch, maar een of ander veld om de indexer ermee werkend te krijgen. De compiler switch had ik wel een half jaar geleden al gevonden natuurlijk
[ Voor 18% gewijzigd door Robbiedobbie op 18-10-2013 14:13 ]
Verwijderd
Dat laatste kan ik je al aanbieden, dan hoef je niet verder te zoeken:Ryur schreef op vrijdag 18 oktober 2013 @ 14:07:
[...]
Hier ook vrijdagmiddagdip. Dus maar energiedrank + goede muziek!
Wat een optreden
[ Voor 4% gewijzigd door Verwijderd op 18-10-2013 14:36 ]
Eens.Robbiedobbie schreef op vrijdag 18 oktober 2013 @ 13:08:
[...]
Java Swing? You better start running.....
Blegh, Swing is echt een gedrocht naar mijn mening
Als je toch iets met Java en UI wil doen kan ik je SWT aanraden. Een keertje ook een projectje erin gedaan. Ziet er allemaal lekker native uit en verder zou je eigenlijk bijna niet denken dat het onder water gewoon Java is. Al was dat al enkele jaren terug. Hoop dat dat nog steeds zo is.
AWT/Swing is een draak van een UI omgeving mijns inziens.
[ Voor 113% gewijzigd door CodeCaster op 18-10-2013 15:28 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Nothing to see here!
Verwijderd
Rutix schreef op vrijdag 18 oktober 2013 @ 14:39:
Ok mensen. Ik ga op vakantie ^__^ dus tot over twee weken! Curacao here i come
Geniet er van!
elke functie opsplitsen in subfuncties van 54 regelsEalanrian schreef op vrijdag 18 oktober 2013 @ 14:50:
Ik lees net in een artikel, Secure Software Development by Example, dat een ontwikkelaar 1 bug per 55 regels introduceert. Zorg er dus voor dat je applicaties 54 regels max is en je heb bug vrije code
Elke 54 regels een nieuwe file includenxandie schreef op vrijdag 18 oktober 2013 @ 14:54:
[...]
elke functie opsplitsen in subfuncties van 54 regels
Verwijderd
Daarmee los je het probleem niet op. Je schrijft in die applicatie nog steeds meer dan 54 regels code...xandie schreef op vrijdag 18 oktober 2013 @ 14:54:
[...]
elke functie opsplitsen in subfuncties van 54 regels
Verwijderd
Alles packen in libs die maximaal 54 regels code zijnVerwijderd schreef op vrijdag 18 oktober 2013 @ 15:12:
[...]
Daarmee los je het probleem niet op. Je schrijft in die applicatie nog steeds meer dan 54 regels code...
* Firesphere gaat refactoren.
I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
Wel in mijn huidige codebase ja.
Geen unittesting en alles hangt aan elkaar vast. Dus als je een refactoring maakt, weet je bijna zeker dat je lang niet alles getest krijgt of de refactoring gelukt is.
Als er een goede code coverage is, vind ik het juist heerlijk om te refactoren.
Ja dat lijkt me ook deels logisch en verkapt dubbelzinnig.Ryur schreef op vrijdag 18 oktober 2013 @ 15:21:
[...]
Wel in mijn huidige codebase ja.
Geen unittesting en alles hangt aan elkaar vast. Dus als je een refactoring maakt, weet je bijna zeker dat je lang niet alles getest krijgt of de refactoring gelukt is.
Als er een goede code coverage is, vind ik het juist heerlijk om te refactoren.
Als de code verder in orde is en logisch opgebouwd e.d. is het natuurlijk rete simpel om te gaan refactoren. In feite is het dan al gerefactored (sort of).
Nah hoeft niet hoor. Ik heb wel een project gehad waar netjes unittests voor werden gemaakt (vooral omdat het "moest"). Maar qua opbouw verder niet zo netjes, veel in dezelfde classes enz.douweegbertje schreef op vrijdag 18 oktober 2013 @ 15:24:
[...]
Ja dat lijkt me ook deels logisch en verkapt dubbelzinnig.
Als de code verder in orde is en logisch opgebouwd e.d. is het natuurlijk rete simpel om te gaan refactoren. In feite is het dan al gerefactored (sort of).
Dus ondanks dat er testen waren, was de code niet netjes
Zo zag ik toch bevestigd dat als ik één keer een path teken en dan door middel van rotatie en path stroke daar vervolgens mee werk de CPU niet meer belast wordt na de initialisatie. Sowieso denk ik dat doordat Objective-C wat meer low level is en Apple simpelweg wat meer let op performance iOS wat meer snappy aan voelt dan Android, ik denk dat dit daar ook weer bij gaat helpen.
iOS developer
Ik vind niet dat Objective-C low level is, denk dat het ongeveer gelijk is aan Java wat dat betreft. Dan heb ik het dus niet over libraries die C functions gebruiken, maar echt pure Objective-C.BikkelZ schreef op vrijdag 18 oktober 2013 @ 16:05:
Gisteren weer even met de nieuwe XCode aan de slag geweest. Toch een goede zet van Apple om het geheugen en CPU gebruik van je applicatie zo pontificaal in beeld te brengen, je gaat onbewust toch opletten of je CPU spikes ziet bij dingen die je doet of het RAM gebruik langzaam of snel toeneemt.
Zo zag ik toch bevestigd dat als ik één keer een path teken en dan door middel van rotatie en path stroke daar vervolgens mee werk de CPU niet meer belast wordt na de initialisatie. Sowieso denk ik dat doordat Objective-C wat meer low level is en Apple simpelweg wat meer let op performance iOS wat meer snappy aan voelt dan Android, ik denk dat dit daar ook weer bij gaat helpen.
Overigens vond ik dit een heel interessant artikel dat heel diep ingaat op de snappiness van beide platformen. Is hier al eens voorbij gekomen geloof ik.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
[ Voor 16% gewijzigd door mbarie op 18-10-2013 16:29 ]
Oeh, jeugdsentimentVerwijderd schreef op vrijdag 18 oktober 2013 @ 14:35:
[...]
Dat laatste kan ik je al aanbieden, dan hoef je niet verder te zoeken:
[video]
Wat een optreden
- This line is intentionally left blank -
'ff een git commit schedulen in een cronjob
Dan kan je zelfs aantonen dat je er nog was
Let op: Mijn post bevat meningen, aannames of onwaarheden
Ctrl-z Ctrl-z Ctrl-z Ctrl-z Ctrl-z Ctrl-z Ctrl-z Ctrl-z Ctrl-z Ctrl-z fuck fuck fuck Ctrl-z Ctrl-z Ctrl-z Ctrl-z Ctrl-z Ctrl-z Ctrl-z
Voor zover ik het begrepen heb worden Objective-C objecten omgezet naar C structs en dan als C gecompileerd met de standaard compiler. Maar ik ben nog niet door mijn boek heenScott schreef op vrijdag 18 oktober 2013 @ 16:20:
[...]
Ik vind niet dat Objective-C low level is, denk dat het ongeveer gelijk is aan Java wat dat betreft. Dan heb ik het dus niet over libraries die C functions gebruiken, maar echt pure Objective-C.
Overigens vond ik dit een heel interessant artikel dat heel diep ingaat op de snappiness van beide platformen. Is hier al eens voorbij gekomen geloof ik.
Ik ben de laatste om te zeggen dat je gratis precies C performance krijgt ondanks dat je objecten en key value based dingen gebruikt. Daar zitten altijd kosten aan vast.
Maar het punt van mijn betoog was met name dat puur het aanwezig zijn van zo'n metertje je meer gevoelig maakt voor de performance van je code. Stel dat je iets nieuws code waarbij je je layouts handmatig managed en je ziet ineens overal CPU spikes opduiken, dan ga je toch nadenken.
[ Voor 13% gewijzigd door BikkelZ op 18-10-2013 16:51 ]
iOS developer
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
'Import' en 'left join'... does not compute. Bedoel je een export vanuit een database naar een CSV?Struikrover schreef op vrijdag 18 oktober 2013 @ 16:55:
W00t! CSV import van 2 tabellen met plm 350.000 records, en een left join gebeurt nu in ruwweg een minuut. Nette performance boost en weg problematiek
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Legendarisch even ...
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.
Ik ga een druk weekend tegemoet
We are shaping the future
Verwijderd
Ik heb wat in elkaar lopen flansen, en het werkt voor...25% misschien
Ook hier een druk weekend, want snap er geen hol van als naab
[ Voor 4% gewijzigd door mbarie op 18-10-2013 17:34 ]
En over een week denk je.. Waarom heb ik ook alweer niets gedaan aan mijn hobbyprojecten? ^^mbarie schreef op vrijdag 18 oktober 2013 @ 17:33:
Vriendin is net vertrokken naar een ver land voor een week. Geekweekend aanstaande met wat vrienden t/m maandag. Ongegeneerd feesten en zuipen, spelletjes spelen en soms wat hobbyprogrammeren. Zin in.
Als ik dat maar doe met een lach, ben ik daar helemaal ok meeCaelorum schreef op vrijdag 18 oktober 2013 @ 17:35:
[...]
En over een week denk je.. Waarom heb ik ook alweer niets gedaan aan mijn hobbyprojecten? ^^
Ik snap wat je bedoelt. Vanwege een gebrek aan C-kennis weet ik er het fijne ook niet van, maar Objective-C is een dynamische taal, wat zoveel betekent dat pas als de code wordt uitgevoerd, de conversie van Objective-C naar C (method call -> objc_sendMsg()) wordt gemaakt. De Objective-C objecten bestaan dan ook nog.BikkelZ schreef op vrijdag 18 oktober 2013 @ 16:49:
[...]
Voor zover ik het begrepen heb worden Objective-C objecten omgezet naar C structs en dan als C gecompileerd met de standaard compiler. Maar ik ben nog niet door mijn boek heen
Ik ben de laatste om te zeggen dat je gratis precies C performance krijgt ondanks dat je objecten en key value based dingen gebruikt. Daar zitten altijd kosten aan vast.
Maar het punt van mijn betoog was met name dat puur het aanwezig zijn van zo'n metertje je meer gevoelig maakt voor de performance van je code. Stel dat je iets nieuws code waarbij je je layouts handmatig managed en je ziet ineens overal CPU spikes opduiken, dan ga je toch nadenken.
Maar, je hebt wel gelijk. Een metertje, of zelfs maar een indicator hoeveel je gebruikt, herinnert je er in ieder geval aan dat je te maken hebt met gelimiteerde technologie. Als jij een simpele app schrijft die 100MB geheugen gebruikt, dan wordt het misschien toch eens tijd om Instruments er bij te pakken.
HetScott schreef op vrijdag 18 oktober 2013 @ 18:02:
[...]
Ik snap wat je bedoelt. Vanwege een gebrek aan C-kennis weet ik er het fijne ook niet van, maar Objective-C is een dynamische taal, wat zoveel betekent dat pas als de code wordt uitgevoerd, de conversie van Objective-C naar C (method call -> objc_sendMsg()) wordt gemaakt. De Objective-C objecten bestaan dan ook nog.
Maar, je hebt wel gelijk. Een metertje, of zelfs maar een indicator hoeveel je gebruikt, herinnert je er in ieder geval aan dat je te maken hebt met gelimiteerde technologie. Als jij een simpele app schrijft die 100MB geheugen gebruikt, dan wordt het misschien toch eens tijd om Instruments er bij te pakken.
1
| [foo doeIetsAwesomeMet:eenString]; |
omzetten naar
1
| objc_msgSend(foo, @selector(doeIetsAwesomeMet:), eenString); |
lijkt me juist iets wat compile time geregeld kan worden.
De selectors krijgen allemaal een unieke ID voor een signature en dat ID verwijst naar een bepaalde functie, het "dynamische" gedeelte zit hem er volgens mij in dat de "methode signatuur (selector)" niet "in code gelinkt is aan de objecten" maar @ runtime wordt gekeken welk "ID" bij welke selector hoort en welke functie dus moet worden aangeroepen.
De objecten bestaan inderdaad, maar dat zijn volgens mij "dictionarys" met een lijstje van welke selectors (methodes) het op reageerd en een lijstje van verwijzingen naar variabelen welke bij de betreffende instance e.d horen.
Dat is allemaal maar een vrij dun laagje en zeker niet vergelijkbaar met de complete Java Runtime.
[ Voor 11% gewijzigd door ZpAz op 18-10-2013 18:41 ]
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
Zover ik het volgde en hem een tip gaf;Korben schreef op vrijdag 18 oktober 2013 @ 17:04:
[...]
'Import' en 'left join'... does not compute. Bedoel je een export vanuit een database naar een CSV?
2 CSV bestanden die hij in één table moest zetten maar de CSV bestanden verschilde van elkaar en er moest data van het één naar de anders als het in de eerste niet zat etc.
Daarbij gaf ik de tip om elk CSV bestand in een (tijdelijke) table te zetten en vervolgens middels een left join de data in een nieuwe table te gooien.
* Firesphere krijgt terug "associated array, string or int"
Dus ik gooi blij een assoc-array naar de api, krijg ik terug
<query type="string">Array</query>
Zeg dan niet dat je arrays ondersteund!
[ Voor 11% gewijzigd door Firesphere op 18-10-2013 18:45 ]
I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
Verwijderd
Nu heb ik 2 problemen.
Ik probeer het even uit mijn blote hoofd nu: als je zaken niet definieert in je .m file maar wel in je .h dan compileert het wel maar krijg je een unknown selector error. Je kunt geloof ik wel zo'n call opvangen en er dan alsnog iets nuttigs mee doen maar het is vrij beperkt.ZpAz schreef op vrijdag 18 oktober 2013 @ 18:35:
[...]
Het
C:
1 [foo doeIetsAwesomeMet:eenString];
omzetten naar
C:
1 objc_msgSend(foo, @selector(doeIetsAwesomeMet:), eenString);
lijkt me juist iets wat compile time geregeld kan worden.
De selectors krijgen allemaal een unieke ID voor een signature en dat ID verwijst naar een bepaalde functie, het "dynamische" gedeelte zit hem er volgens mij in dat de "methode signatuur (selector)" niet "in code gelinkt is aan de objecten" maar @ runtime wordt gekeken welk "ID" bij welke selector hoort en welke functie dus moet worden aangeroepen.
De objecten bestaan inderdaad, maar dat zijn volgens mij "dictionarys" met een lijstje van welke selectors (methodes) het op reageerd en een lijstje van verwijzingen naar variabelen welke bij de betreffende instance e.d horen.
Dat is allemaal maar een vrij dun laagje en zeker niet vergelijkbaar met de complete Java Runtime.
Ik zou liever een compile error krijgen op zo'n moment. Volgens mij kan dat ook maar ik ben nog niet zo handig met de settings binnen XCode.
iOS developer
Dat is niet helemaal correct. De .h file is zeg maar je beschrijving van de "API" van het object naar de buitenwereld, andere objecten. Zeg maar de equivalent van public methodes in Java. Declareer / implementeer je ze enkel in de .m file zijn het "protected" methodes.BikkelZ schreef op vrijdag 18 oktober 2013 @ 19:13:
[...]
Ik probeer het even uit mijn blote hoofd nu: als je zaken niet definieert in je .m file maar wel in je .h dan compileert het wel maar krijg je een unknown selector error. Je kunt geloof ik wel zo'n call opvangen en er dan alsnog iets nuttigs mee doen maar het is vrij beperkt.
Je krijgt dan inderdaad een warning, maar hij crashed er niet op want de selector bestaat wel voor het object. Er is niet echt een notie van "public en protected / private" in Objective-C. De voorgaande beschrijving is het dichtste bij wat je daar bij komt.
Hier in XCode 5 krijg ik wel een error en gaat hij niet verder, ik dacht dat het altijd een warning was.
Via "dynamic method resolution" zou je dynamisch methodes kunnen laden voor een selector die niet gevonden kan worden. Hiermee zijn vergelijkbare constructies als __call in php.
[ Voor 20% gewijzigd door ZpAz op 18-10-2013 19:43 ]
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
Verwijderd
Fuck it. Ik gebruik mijn eigen reference counter wel.Verwijderd schreef op vrijdag 18 oktober 2013 @ 18:58:
Ik had een probleem met dynamische object lifeline over meerdere threads, dus ik gebruikte std::shared ptr.
Nu heb ik 2 problemen.
Nee dat klopt dat gebruik ik ook uitgebreid om mijn objecten niet te veel clutter te geven naar andere objecten maar een niet geimplementeerde methode compiled wel maar werkt eigenlijk nooit.ZpAz schreef op vrijdag 18 oktober 2013 @ 19:29:
[...]
Dat is niet helemaal correct. De .h file is zeg maar je beschrijving van de "API" van het object naar de buitenwereld, andere objecten. Zeg maar de equivalent van public methodes in Java.
Declareer je ze enkel in de .m file zijn het "protected" methodes. Je krijgt dan inderdaad een warning, maar hij crashed er niet op want de selector bestaat wel voor het object. Er is niet echt een notie van "public en protected / private" in Objective-C. De voorgaande beschrijving is het dichtste bij wat je daar bij komt.
Via "dynamic method resolution" zou je dynamisch methodes kunnen laden voor een selector die niet gevonden kan worden. Hiermee zijn vergelijkbare constructies als __call in php.
iOS developer
Heb een wijziging in mijn bericht geplaatst, maar in dit bericht lijkt het alsof je wel iets in de .h hebt staan maar deze niet hebt geïmplementeerd in de .m. Nee dat werkt niet, je krijgt dan enkel een "incomplete implementation" warning. En bij het aanroepen van de methode zal hij wel crashen omdat hij niet bestaat.BikkelZ schreef op vrijdag 18 oktober 2013 @ 19:40:
[...]
Nee dat klopt dat gebruik ik ook uitgebreid om mijn objecten niet te veel clutter te geven naar andere objecten maar een niet geimplementeerde methode compiled wel maar werkt eigenlijk nooit.
In de .h zeg je alleen maar "ik ga dit implementeren". De implementatie moet dan uiteraard nog gedaan worden.
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
Ik weet eigenlijk niet eens hoe dat in C werkt. Loop je daar tegen het zelfde aan?ZpAz schreef op vrijdag 18 oktober 2013 @ 19:42:
[...]
In de .h zeg je alleen maar "ik ga dit implementeren". De implementatie moet dan uiteraard nog gedaan worden.
iOS developer
Twijfels. Android kloten, verder met ander project (C#) of een game spelen
2x ViewSonic VP-27885K | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI
Voor zo ver ik weet is het ook in C dat je in de .h zegt van "deze functies zijn er" en in de .m staat de daadwerkelijke implementatie. Volgens mij is daar de .h informatie voor de compiler. Als je in een bepaald bestand werkt (laten we die mijn.m noemen) en je roept een functie aan bijvoorbeeld max() dan moet je <Math.h> includen.BikkelZ schreef op vrijdag 18 oktober 2013 @ 20:06:
[...]
Ik weet eigenlijk niet eens hoe dat in C werkt. Loop je daar tegen het zelfde aan?
Tegen de compiler zeg je dan, wanneer je mijn stukje code in mijn.m compiled en je kent geen functie max() ga dan maar gewoon door want die zit in Math.m, die kom je later nog wel tegen. (In Math.h staan dan de functies die de compiler "tegen gaat komen").
In C moet namelijk de functie normaal in je code staan voordat je hem aanroept. Maar omdat dat niet overal handig is kan je zeggen in een .h bestand: "Deze functie komt nog wel, maak je geen zorgen."
In Objective-C maakt de volgorde van de functies niet zozeer uit en is de .h meer gewoon de "publieke beschrijving" van "deze methodes kunnen jullie aanroepen als buitenstaander op dit object". Vergelijkbaar met public in Java.
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
Ik geloof dat je inderdaad gelijk hebt.ZpAz schreef op vrijdag 18 oktober 2013 @ 18:35:
[...]
Het
C:
1 [foo doeIetsAwesomeMet:eenString];
omzetten naar
C:
1 objc_msgSend(foo, @selector(doeIetsAwesomeMet:), eenString);
lijkt me juist iets wat compile time geregeld kan worden.
De selectors krijgen allemaal een unieke ID voor een signature en dat ID verwijst naar een bepaalde functie, het "dynamische" gedeelte zit hem er volgens mij in dat de "methode signatuur (selector)" niet "in code gelinkt is aan de objecten" maar @ runtime wordt gekeken welk "ID" bij welke selector hoort en welke functie dus moet worden aangeroepen.
De objecten bestaan inderdaad, maar dat zijn volgens mij "dictionarys" met een lijstje van welke selectors (methodes) het op reageerd en een lijstje van verwijzingen naar variabelen welke bij de betreffende instance e.d horen.
Dat is allemaal maar een vrij dun laagje en zeker niet vergelijkbaar met de complete Java Runtime.
Klopt, dat hoor je normaal gesproken ook gewoon niet te doen. Aan de ene kant zeg je tegen anderen dat het object die methode implementeert, tegelijkertijd doe je dat niet. Dan moet je hem dus of implementeren, of niet zeggen dat je dat wel doet. Dynamig Method Resolution is een uitzondering, maar ik moet zeggen dat ik dat zelden gebruik.BikkelZ schreef op vrijdag 18 oktober 2013 @ 19:40:
[...]
Nee dat klopt dat gebruik ik ook uitgebreid om mijn objecten niet te veel clutter te geven naar andere objecten maar een niet geimplementeerde methode compiled wel maar werkt eigenlijk nooit.
Een functie declaren kan uiteraard ook in hetzelfde bestand. Of je het moet willen is een tweede maar ach, soms is het wel even makkelijkZpAz schreef op vrijdag 18 oktober 2013 @ 20:20:
[...] In C moet namelijk de functie normaal in je code staan voordat je hem aanroept. Maar omdat dat niet overal handig is kan je zeggen in een .h bestand: "Deze functie komt nog wel, maak je geen zorgen." [...]
VB als in VB6 of VBA of VB.NET?Verwijderd schreef op vrijdag 18 oktober 2013 @ 17:31:
Aaaaargh wat wordt ik gek van VB![]()
Ik heb wat in elkaar lopen flansen, en het werkt voor...25% misschien
Ook hier een druk weekend, want snap er geen hol van als naab
Indien de laatste optie, hou je aan de .NET zaken en gebruik niet de ranzige VB zaken ervan. Indien de overige 2 opties, I feel sorry for you.
Doe waar je zin in hebtF.West98 schreef op vrijdag 18 oktober 2013 @ 20:18:
Twijfels. Android kloten, verder met ander project (C#) of een game spelen
Right dus het is gewoon een stukje erfenis van C. Ik zou zeggen dat XCode daar ook wel een stukje in zou kunnen helpen, het overnemen van de zelfde regel code van .h naar .m is gewoon iedere keer handmatig een hoop werk doen. Lijkt mij dat het redelijk makkelijk in elkaar te vouwen is tot één file waarbij je simpelweg aangeeft bij een functie of hij wel of niet exposed is, of dat je (heel specifiek) hem wel in je .h wil hebben maar niet in je .m. Nu is het alleen maar een bron van fouten terwijl je 99% van de tijd niet gebruik maakt van iets wel in de .h hebben maar niet in de .m.ZpAz schreef op vrijdag 18 oktober 2013 @ 20:20:
[...]
Voor zo ver ik weet is het ook in C dat je in de .h zegt van "deze functies zijn er" en in de .m staat de daadwerkelijke implementatie. Volgens mij is daar de .h informatie voor de compiler. Als je in een bepaald bestand werkt (laten we die mijn.m noemen) en je roept een functie aan bijvoorbeeld max() dan moet je <Math.h> includen.
Ik heb er echt een tijdje over na zitten denken waar ik het nou praktisch voor zou kunnen gebruiken zonder dat ik het niet leesbaarder op een andere makkelijker manier zou kunnen implementeren en ik heb echt geen idee. Misschien dat NSNotificationManager intern op die manier werkt?Scott schreef op vrijdag 18 oktober 2013 @ 20:24:
[...]
Klopt, dat hoor je normaal gesproken ook gewoon niet te doen. Aan de ene kant zeg je tegen anderen dat het object die methode implementeert, tegelijkertijd doe je dat niet. Dan moet je hem dus of implementeren, of niet zeggen dat je dat wel doet. Dynamig Method Resolution is een uitzondering, maar ik moet zeggen dat ik dat zelden gebruik.
iOS developer
350.000 x2, dus ongeveer 700.000 records vanaf file inlezen. Vind het wel netjes. Kanook minder lang duren, ik heb het niet geklokt.oisyn schreef op vrijdag 18 oktober 2013 @ 17:01:
Dat klinkt nog best lang.
Verwijderd
Je kan ook gewoon alles in de (C) .c/cpp file gooien. Of je IDE met een shortcut de text laten kopieren.BikkelZ schreef op vrijdag 18 oktober 2013 @ 21:24:
het overnemen van de zelfde regel code van .h naar .m is gewoon iedere keer handmatig een hoop werk doen.
Mijn IDE houd gewoon een code model bij waar je met een shortcut een implementatie kunt aanmaken maken in de .cpp, of deze implementatie kan verplaatsen naar de .h (zowel in-class als buiten de class).
[ Voor 24% gewijzigd door Verwijderd op 18-10-2013 21:30 ]
Ik heb OpenCL werkend...
...met Java bindings (LWJGL)...
...in JRuby.
140 regels bagger, alleen om OpenCL code te compileren, te starten en het resultaat op te halen.
Mijn bevindingen zover:
Tijd nodig voor compileren en voorbereiden van de data: een eeuw
Tijd nodig voor de berekeningen op de videokaart: onmeetbaar snel
Toch maar mijn berekeningen complexer maken dan...
Volgende stap: Vertex objects in OpenGL manipuleren.
Uiteindelijk plan: Mini game maken met heel veel bewegende sprites waarvan vrijwel alle game logica in OpenCL draait en direct vertexes bewerkt in OpenGL met het resultaat om de beperking in drawcalls te omzeilen.
[ Voor 24% gewijzigd door Gamebuster op 18-10-2013 22:42 ]
Let op: Mijn post bevat meningen, aannames of onwaarheden
Ik ben het wel met je eens ja. Het simpelste op dit moment is een methode eerst toevoegen aan de interface (.h), en dan simpelweg de method signature beginnen te typen. Xcode zal hem dan automatisch voor je afmaken. Dat vind ik wel één van Xcode's sterke punten: autocompletion is echt super. VS heeft dat ook, maar die vind ik toch iets minder goed. Of misschien gebruik ik VS gewoon niet genoeg.BikkelZ schreef op vrijdag 18 oktober 2013 @ 21:24:
[...]
Right dus het is gewoon een stukje erfenis van C. Ik zou zeggen dat XCode daar ook wel een stukje in zou kunnen helpen, het overnemen van de zelfde regel code van .h naar .m is gewoon iedere keer handmatig een hoop werk doen. Lijkt mij dat het redelijk makkelijk in elkaar te vouwen is tot één file waarbij je simpelweg aangeeft bij een functie of hij wel of niet exposed is, of dat je (heel specifiek) hem wel in je .h wil hebben maar niet in je .m. Nu is het alleen maar een bron van fouten terwijl je 99% van de tijd niet gebruik maakt van iets wel in de .h hebben maar niet in de .m.
In onder andere Core Data wordt dat veel gebruikt. Kan me niet veel situaties bedenken waarbij je zegt "ik weet dat die methode niet bestaat, maar je kunt 'm toch messagen, komt goed bij runtime".Ik heb er echt een tijdje over na zitten denken waar ik het nou praktisch voor zou kunnen gebruiken zonder dat ik het niet leesbaarder op een andere makkelijker manier zou kunnen implementeren en ik heb echt geen idee. Misschien dat NSNotificationManager intern op die manier werkt?
Oh, en 't is NSNotificationCenter (op iOS althans)
Beste ADP: wat dacht je er van dat ik iedere week gewoon 40 uur werk behalve in de weekends en op feestdagen. Misschien dat ik daar heel uniek in ben en dat ik mezelf tot de standaard bombardeer maar ik heb zo'n donkerbruin vermoeden dat bij wel meer mensen hun werkweek er structureel het zelfde uit ziet. Ben ik een keer ziek of op vakantie? Werk ik over op uurtje factuurtje? Kom ik je met alle plezier invullen.
Ik denk dat VS sowieso beter is, maar het is lang geleden dat ik het zonder ReSharper gebruikt heb.Scott schreef op vrijdag 18 oktober 2013 @ 23:02:
[...]
VS heeft dat ook, maar die vind ik toch iets minder goed. Of misschien gebruik ik VS gewoon niet genoeg.
Zou zomaar kunnenScott schreef op vrijdag 18 oktober 2013 @ 23:02:
[...]
Oh, en 't is NSNotificationCenter (op iOS althans)
[ Voor 27% gewijzigd door BikkelZ op 18-10-2013 23:04 ]
iOS developer
Waarom niet gewoon modern doen en identity federation implementeren?
We are shaping the future
Way to go!
iOS developer
Volgens mij maakt NSNotificationCenter daar geen gebruik van. Want die doet niet meer dan registerForKey: en changeForKey: en iets in die trend.Scott schreef op vrijdag 18 oktober 2013 @ 23:02:
[...]
Oh, en 't is NSNotificationCenter (op iOS althans)
Dat lijkt me gewoon worden bijgehouden in een key value storage wie waarop geregistreerd is.
De KVO maakt er ook geen gebruik van Scott hierboven, die subclassed blijkbaar een object @ runtime als je naar key changes wil luisteren.
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
Stel 200 bytes per regel, dan is het dus 140MB. Dat lees je doorgaans in zo'n 2 tot 5 seconden. Waar het waarschijnlijk fout gaat is het inserten in een db voor je de join doet, kan waarchijnlijk veel sneller direct vanuit mem. Imho moet alles binnen 10s te doen zijnStruikrover schreef op vrijdag 18 oktober 2013 @ 21:28:
[...]
350.000 x2, dus ongeveer 700.000 records vanaf file inlezen. Vind het wel netjes. Kanook minder lang duren, ik heb het niet geklokt
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
We are shaping the future
anyways mijn punt; nog een domein naam gevonden die nog vrij was, ben er wel happy mee: devrant.com
Haha, ik had vannochtend juist devrants.nl besteld!douweegbertje schreef op vrijdag 18 oktober 2013 @ 23:42:
anyways mijn punt; nog een domein naam gevonden die nog vrij was, ben er wel happy mee: devrant.com
Ik ben wat met knockoutMVC aan het spelen geweest, en met m'n meest simpele usecase loop ik al tegen issues aan. Het "voelt" wat mij betreft nog niet heel volwassen aan, ik mis dingen
Verwijderd
Ik had vanmiddag veel moeite gedaan om ervoor te zorgen dat mijn job queue fatsoenlijk werkt en voor het grootste gedeelte lock free is.
Dus ik maak een loopje om het verhaal te benchmarken.. en ik krijg meteen heap corruption all over the place. En natuurlijk alleen in release mode.
Edit: dat komt dus doordat je een zware testcase in elkaar zet, en daarbij MAX_JOBS vergeet
[ Voor 14% gewijzigd door Verwijderd op 19-10-2013 00:56 ]
Ik bedoelde eigenlijk meer dat het niet NSNotificationManager, maar NSNotificationCenter is. Denk inderdaad niet dat die gebruik maakt van @dynamic, hoewel de callstack altijd wel interessant is om te zien als er een notificatie bij komt kijken.ZpAz schreef op vrijdag 18 oktober 2013 @ 23:18:
[...]
Volgens mij maakt NSNotificationCenter daar geen gebruik van. Want die doet niet meer dan registerForKey: en changeForKey: en iets in die trend.
Dat lijkt me gewoon worden bijgehouden in een key value storage wie waarop geregistreerd is.
De KVO maakt er ook geen gebruik van Scott hierboven, die subclassed blijkbaar een object @ runtime als je naar key changes wil luisteren.
Enlighten me, please? Hintje in de goede richting? Altijd geinteresseerd in snelheidswinst.oisyn schreef op vrijdag 18 oktober 2013 @ 23:24:
[...]
Stel 200 bytes per regel, dan is het dus 140MB. Dat lees je doorgaans in zo'n 2 tot 5 seconden. Waar het waarschijnlijk fout gaat is het inserten in een db voor je de join doet, kan waarchijnlijk veel sneller direct vanuit mem. Imho moet alles binnen 10s te doen zijn
EDIT: ik blijf het leuk vinden als mijn vriendin onze kat roept. "Django, kom dan!".
[ Voor 14% gewijzigd door Struikrover op 19-10-2013 10:16 ]
1
| BULK_INSERT_BUFFER_SIZE |
Dat lekker hoog zetten bij je insert (gewoon tegen je max van je geheugen aan). En vervolgens de "LOAD DATA" feature gebruiken. Grofweg gezien zou je dan inderdaad rond de 10 seconden moeten gaan zitten voor ongeveer 400k-500k records.
Verwijderd
1
2
3
4
5
6
7
8
9
| _particles.reserve( veel ); for( ;; ) { _particles.emplace_back( a, b, c ); _particles.emplace_back( a, b, c ); _particles.emplace_back( a, b, c ); _particles.emplace_back( a, b, c ); } |
150-160 fps.
1
2
3
4
5
6
7
8
9
| _particles.resize( veel ); // resize niet reserve for( ;; ) { _particles[i++] = Particle( a, b, c ); _particles[i++] = Particle( a, b, c ); _particles[i++] = Particle( a, b, c ); _particles[i++] = Particle( a, b, c ); } |
100-105 fps
HUH?
1
2
3
4
5
6
7
8
9
| _particles.resize( veel ); for( ;; ) { new (&_particles[i++]) Particle( a, b, c ); new (&_particles[i++]) Particle( a, b, c ); new (&_particles[i++]) Particle( a, b, c ); new (&_particles[i++]) Particle( a, b, c ); } |
170-180 fps
Nooit gedacht dat die lelijke placement new syntax nog ergens nuttig voor zou zijn. En belangrijker, dat de compiler die zinloze copy van trivial object met default-copy constructor niet wegoptimaliseert.
Edit: Die neem ik terug. Bij nader inzien blijkt het een non-trivial datatype te zijn.
[ Voor 8% gewijzigd door Verwijderd op 19-10-2013 14:29 ]
Ligt niet aan teamviewer. Ligt aan de verbinding, en de performance van de machine waarmee je verbind (in mindere mate).Ealanrian schreef op zaterdag 19 oktober 2013 @ 13:05:
O joy, via TeamViewer werken op een systeem wat een 100km verder op staat. Ik had ondertussen toch iets meer performance verwacht eigenlijk...
Dan heb je waarschijnlijk ook nog nooit met eigen allocators gewerktVerwijderd schreef op zaterdag 19 oktober 2013 @ 10:58:
Nooit gedacht dat die lelijke placement new syntax nog ergens nuttig voor zou zijn.
En je code is conceptueel broken, afgezien van de compile error
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
|>
Verwijderd
Die = hoort daar niet te staan nee.. copy-paste fout..oisyn schreef op zaterdag 19 oktober 2013 @ 14:09:
[...]
En je code is conceptueel broken, afgezien van de compile error
Dit topic is gesloten.
![]()
Dit topic is niet de plaats om te lopen helpdesken. De Coffee Corner is primair bedoeld als uitlaatklep voor iedereen in de Devschuur® en niet als vraagbaak.