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.
Zit tegenwoordig ook deels in C#. pattern matching met switch-statements. Enige jammere is dat er niet een compiler-optie is om te forceren dat je exhaustive pattern matching wilt hebben.farlane schreef op donderdag 29 juni 2017 @ 17:25:
[...]
Ik vind dieKotlin:vet.
1 2 3 when (x) { ... }
Helemaal mee eens. We hebben het er hier wel eens over gehad om als 'proef' maar een van de nieuwe REST services in Kotlin te doen. Maar daar willen we onze vingers toch nog niet helemaal aan branden. Ik vind Scala ook erg leuk, maar dat integreert weer een stuk minder met onze huidige spullen.P1nGu1n schreef op donderdag 29 juni 2017 @ 14:45:
Ik ben recentelijk begonnen met Kotlin, dat is ook een prachtig taaltje
https://niels.nu
Ook mooi is dat when en if expressions zijn: je kan de return value in een variabele stoppen:farlane schreef op donderdag 29 juni 2017 @ 17:25:
[...]
Ik vind dieKotlin:vet.
1 2 3 when (x) { ... }
1
2
3
4
5
| val x = if (a > b) { doSomethingA() } else { doSomethingB() } |
[ Voor 17% gewijzigd door P1nGu1n op 30-06-2017 08:54 ]
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
Ik moet zeggen dat ik de huidige implementatie van pattern matching in C# eigenlijk nogal vind tegen vallen.Caelorum schreef op donderdag 29 juni 2017 @ 17:35:
[...]
Zit tegenwoordig ook deels in C#. pattern matching met switch-statements. Enige jammere is dat er niet een compiler-optie is om te forceren dat je exhaustive pattern matching wilt hebben.
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Ontzettend veel eerlijk gezegd. Maar routes plannen en markers zetten zijn mijn topprioriteiten.RagingPenguin schreef op donderdag 29 juni 2017 @ 15:58:
[...]
Ik weet niet wat je met Google Maps wil doen maar als het niet te complex is ben je waarschijnlijk even goed af met de API's van Google zelf.
Tja, het blijft gehack achteraf natuurlijk. Net zoals het voorstel om null uit te bannen en dus een eerste stap te zetten naar opt-in nullable variabelen.Woy schreef op vrijdag 30 juni 2017 @ 09:29:
[...]
Ik moet zeggen dat ik de huidige implementatie van pattern matching in C# eigenlijk nogal vind tegen vallen.
Op zich hadden ze al een veel volledigere specificatie van pattern matching, die heef het helaas niet gehaald voor C# 7.0Caelorum schreef op vrijdag 30 juni 2017 @ 11:02:
[...]
Tja, het blijft gehack achteraf natuurlijk. Net zoals het voorstel om null uit te bannen en dus een eerste stap te zetten naar opt-in nullable variabelen.
Op zich vind ik het voorstel voor explicite non-nullable's ook wel aardig. Natuurlijk zou je het anders aanpakken als je het vanaf scratch af aan zou doen, maar daar heb ik niet zo'n moeite mee.
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
[ Voor 15% gewijzigd door .oisyn op 30-06-2017 11:19 ]
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.
Ik had liever OnlyFortyTwoable's gehad.oisyn schreef op vrijdag 30 juni 2017 @ 11:18:
Ik wou dat er ints waren die niet 5 konden zijn. Nonfivable ints.
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Je bedoelt gewoon dit?P1nGu1n schreef op vrijdag 30 juni 2017 @ 08:52:
[...]
Ook mooi is dat when en if expressions zijn: je kan de return value in een variabele stoppen:
Kotlin:
1 2 3 4 5 val x = if (a > b) { doSomethingA() } else { doSomethingB() }
1
2
3
| Something x = a > b ? doSomethingA() : doSomethingB(); |
Edit:
Ook die val vind ik best wel ondoorzichtig. Dan is het type vaak helemaal niet duidelijk. Het met een fatsoenlijke IDE hoef je die niet eens zelf te typen, die kan ook voor je afgeleid worden.
Helemaal als je bedenkt dat je vaak liever bijvoorbeeld een Map ipv HashMap wil definiëren, zodat je later makkelijker van implementatie type kunt wijzigen.
[ Voor 31% gewijzigd door Marcj op 30-06-2017 11:37 ]
Dit was natuurlijk een extreem simpel voorbeeld...Marcj schreef op vrijdag 30 juni 2017 @ 11:31:
[...]
Je bedoelt gewoon dit?
Java:
1 Something x = a > b ? doSomethingA() : doSomethingB;
Met meer conditions wordt het al nuttiger:
1
2
3
4
5
6
7
8
9
| val x = if (a > b) { doSomethingA() } else if (a < b) { doSomethingB() } else if (a == 0) { doSomethingC() } else { doSomethingD() } |
Dat is leesbaarder dan
1
| Something x = a > b ? doSomethingA() : a < b ? doSomethingB() : a == 0 ? doSomethingC() : doSomethingD(); |
Of met langere statements die je niet samen op één regel wil plaatsen, en bij een when natuurlijk
1
2
3
4
5
| val result = when (unixFile) { is UnixFile.RegularFile -> unixFile.content is UnixFile.Directory -> unixFile.children.map { it.getFileType() }.joinToString(", ") is UnixFile.SymbolicLink -> unixFile.originalFile.getFileType() } |
Voorbeeld gejat van: http://www.baeldung.com/kotlin-when
[ Voor 20% gewijzigd door P1nGu1n op 30-06-2017 11:50 ]
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
Zoiets?P1nGu1n schreef op vrijdag 30 juni 2017 @ 11:43:
Kotlin:
1 Something x = a > b ? doSomethingA() : a < b ? doSomethingB() : a == 0 ? doSomethingC() : doSomethingD();
1
2
3
4
5
| Something x = a > b ? doSomethingA() : a < b ? doSomethingB() : a == 0 ? doSomethingC() : doSomethingD(); |
Olaf van der Spek schreef op vrijdag 30 juni 2017 @ 12:17:
[...]
Zoiets?
Kotlin:
1 2 3 4 5 Something x = a > b ? doSomethingA() : a < b ? doSomethingB() : a == 0 ? doSomethingC() : doSomethingD();


Nee. Gewoon nee.
[ Voor 3% gewijzigd door P1nGu1n op 30-06-2017 12:19 ]
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
Door een Facebook werknemer als ik het goed begrijp, maar dajumn wat een boel informatie!
Als ik '/me/posts' call, krijg ik:
1
2
3
4
5
6
7
8
9
10
| { "data": [ [...] { "id": "10210701878086875_1871509751258", "created_time": "2008-01-01T08:00:00+0000", "story": "MichielPH added a life event from 2008: Graduated from Hanzehogeschool Groningen \u2014 in Groningen.", }, [...] } |
Als ik '/10210701878086875_1871509751258' call, dus enkel die post, krijg ik:
1
2
3
4
5
| { "created_time": "2011-03-01T01:00:44+0000", "story": "MichielPH added education to his Timeline — in Groningen.", "id": "10210701878086875_1871509751258" } |
Dat het veld story niet overeenkomt is al irritant, maar 1 jan 2008 vs 1 maart 2011? Doe nou niet zo vervelend.
Het lijkt eerder alsof de bovenste de inhoud van de post weergeeft terwijl de onderste de aanmaakdatum en type post weergeeft.MichielPH schreef op zondag 2 juli 2017 @ 13:27:
Grmlb, Facebook Graph Api.
Als ik '/me/posts' call, krijg ik:
JSON:
1 2 3 4 5 6 7 8 9 10 { "data": [ [...] { "id": "10210701878086875_1871509751258", "created_time": "2008-01-01T08:00:00+0000", "story": "MichielPH added a life event from 2008: Graduated from Hanzehogeschool Groningen \u2014 in Groningen.", }, [...] }
Als ik '/10210701878086875_1871509751258' call, dus enkel die post, krijg ik:
JSON:
1 2 3 4 5 { "created_time": "2011-03-01T01:00:44+0000", "story": "MichielPH added education to his Timeline — in Groningen.", "id": "10210701878086875_1871509751258" }
Dat het veld story niet overeenkomt is al irritant, maar 1 jan 2008 vs 1 maart 2011? Doe nou niet zo vervelend.
Ik zou het leuk vinden om met Python Android-apps te maken.kenneth schreef op woensdag 28 juni 2017 @ 14:29:
Wat is Java toch een verschrikkelijke taal
Prachtig ecosysteem, dat dan weer wel.
Verwijderd
Hoe zie je dat dan voor je?Ofyles2 schreef op zondag 2 juli 2017 @ 16:25:
[...]
Ik zou het leuk vinden om met Python Android-apps te maken.
Lijkt het inderdaad op, maar dan blijft het toch raar dat ze hetzelfde id delen?DynaSpan schreef op zondag 2 juli 2017 @ 13:57:
[...]
Het lijkt eerder alsof de bovenste de inhoud van de post weergeeft terwijl de onderste de aanmaakdatum en type post weergeeft.
Ik ook inderdaad.Ofyles2 schreef op zondag 2 juli 2017 @ 16:25:
[...]
Ik zou het leuk vinden om met Python Android-apps te maken.
De wet van Murphy: Alles wat fout kan gaan zal fout gaan.
Dat is bewust. De redenering van Apple is dat een app geen recht heeft op aandacht tenzij de gebruiker het actief en bewust gebruikt. Mocht er een bewuste reden zijn waarom het wel nodig is aanwezig zijn dan moet je dat aangeven (bron: https://developer.apple.c...c/uid/TP40007072-CH4-SW23 )diabolofan schreef op zondag 2 juli 2017 @ 16:04:
Zo, ben er inmiddels wel beetje klaar mee: al een week aan het klooien om een batterijzuinige achtergrond taak te laten draaien in een iOS app, die elke 5 minuten (oid, 15 minuten is ook goed) de huidige bluetooh beacons detecteert die in de buurt zijn.. Streng gelimiteerd dat achtergrond gebruik (wat opzich goed is), maar ook geen normale manier om dus bijvoorbeeld elke bepaalde tijdsinterval een update te krijgen...
"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
Die permissie moet je inderdaad aanvragen, wat ik uiteraard ook gedaan heb. Maar je kan dus niet (makkelijk) zeggen dat je bijvoorbeeld elke 5 minuten een update wilt van de beacons die in range zijn. Met GPS locatie is dit wel beter te doen door gebruikt te maken van deferred location updates, maar met beacons krijg ik dit op geen enkele manier werkend.DevWouter schreef op maandag 3 juli 2017 @ 08:47:
[...]
Dat is bewust. De redenering van Apple is dat een app geen recht heeft op aandacht tenzij de gebruiker het actief en bewust gebruikt. Mocht er een bewuste reden zijn waarom het wel nodig is aanwezig zijn dan moet je dat aangeven (bron: https://developer.apple.c...c/uid/TP40007072-CH4-SW23 )
Je kunt dus wel de achtergrond constant locatie updates blijven krijgen, maar dan krijg je elke seconde een nieuwe update door, wat de batterij binnen de kortste keren leeg trekt
Ah, op die manier en het OS staat niet toe taken met een korte interval te schedulen als een wakeup schedule.diabolofan schreef op maandag 3 juli 2017 @ 09:20:
[...]
Je kunt dus wel de achtergrond constant locatie updates blijven krijgen, maar dan krijg je elke seconde een nieuwe update door, wat de batterij binnen de kortste keren leeg trekt
De enige oplossing die ik zo weet is dat je met elke device een Bluethooth LE sessie opbouwt zodat het scannen (wat volgens mij altijd behoorlijk wat energie kost), niet nodig is. Maar iets zeg me dat jij daar al aangedacht heb
"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
Hoe je normaal hoort te werken met iBeacons op iOS is dat je een serie UUID's registreerd (max 20 dacht ik) waar het OS op monitored. Dan krijg je events binnen wanneer 1 van die iBeacons binnen bereik komt of verdwijnt (enterRegion / exitRegion). Hopelijk kun je hier wat mee, maar zelf monitoren kan niet op iOS.diabolofan schreef op maandag 3 juli 2017 @ 09:20:
[...]
Die permissie moet je inderdaad aanvragen, wat ik uiteraard ook gedaan heb. Maar je kan dus niet (makkelijk) zeggen dat je bijvoorbeeld elke 5 minuten een update wilt van de beacons die in range zijn. Met GPS locatie is dit wel beter te doen door gebruikt te maken van deferred location updates, maar met beacons krijg ik dit op geen enkele manier werkend.
Je kunt dus wel de achtergrond constant locatie updates blijven krijgen, maar dan krijg je elke seconde een nieuwe update door, wat de batterij binnen de kortste keren leeg trekt
Trouwens, het registreren van de events kan pas als de app een keer boot. Helaas is er in iOS ook geen event op tijdens boot iets te doen

Sneller een app kunnen neerschrijven.
Maar papier en praktijk zijn nooit hetzelfde...
Uhm... Sneller een app kunnen maken klinkt in mijn oren als een slecht idee tenzij je weet dat je aan het einde van het project vertrekt naar een andere partij.Ofyles2 schreef op maandag 3 juli 2017 @ 17:44:
[...]
Sneller een app kunnen neerschrijven.
Maar papier en praktijk zijn nooit hetzelfde...

"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
Klopt, dat is inderdaad de limiet. Gelukkig weet ik precies welke beacons ik op een bepaald moment wil zien, dus die kan ik dan expliciet monitoren op uuid:major:minor combinatie, waardoor de enterRegion/exitRegion eigenlijk gewoon beacon discovered/beacon lost wordt, welke ik dan kan doorsturen naar de API.Marcj schreef op maandag 3 juli 2017 @ 16:25:
[...]
Hoe je normaal hoort te werken met iBeacons op iOS is dat je een serie UUID's registreerd (max 20 dacht ik) waar het OS op monitored. Dan krijg je events binnen wanneer 1 van die iBeacons binnen bereik komt of verdwijnt (enterRegion / exitRegion). Hopelijk kun je hier wat mee, maar zelf monitoren kan niet op iOS.
Trouwens, het registreren van de events kan pas als de app een keer boot. Helaas is er in iOS ook geen event op tijdens boot iets te doen
Simplistische workflow wordt dan zo:
1. Monitor region op UUID (hele gebouw in mijn geval)
2. Vraag beacon uuid:major:minor op die actueel zijn bij enter van deze region en start voor deze beacons een monitoring
3. Geef elke enterRegion van deze specifieke beacon door aan de api
Dit is denk ik één van de betere manieren om low energy op de achtergrond te kunnen tracken. Hopelijk komt dit door het review proces
Als je meer dan 20 regions/beacon-regions op die manier in de gaten wilt houden voor je use-case dan ben je de sjaak, want dit kan naar mijn idee dus niet op een niet-energie-slurpende manier.
Als je trouwens die monitoring aan hebt gezet, dan onthoudt iOS dit voor je, ook al wordt het device gereboot / wordt de app handmatig gekilled. Als je dan dus een region binnenloopt wordt je app gestart (in de achtergrond) en heb je even de tijd om hier iets mee te doen.
Wat in mijn geval ook nog zou kunnen is een Push Notification sturen elke 4 uur, die dan de beacon-regions doorgeeft die op dat moment actueel zijn, nadeel hiervan is dat na het handmatig killen van een app (wat ik regelmatig doe en vele met mij denk ik) Push Notifications niet meer doorkomen.. Dus voorlopig maar de hierboven beschreven manier uitwerken en door het review proces krijgen
Ik zie mezelf dan ook niet als een broodprogrammeur, maar als een hobbyist die door omstandigheden programmeren leuk is gaan vinden.DevWouter schreef op maandag 3 juli 2017 @ 18:35:
[...]
Uhm... Sneller een app kunnen maken klinkt in mijn oren als een slecht idee tenzij je weet dat je aan het einde van het project vertrekt naar een andere partij.
Daarnaast ook nog eens hyper (geen ADHD), ik schijn nooit een project af te maken en daar baal ik van. Probeer er nog steeds aan te werken...
Daar heeft iedereen last van. Het is makkelijker om een project te starten dan om het af te ronden.Ofyles2 schreef op maandag 3 juli 2017 @ 20:59:
[...]
Ik zie mezelf dan ook niet als een broodprogrammeur, maar als een hobbyist die door omstandigheden programmeren leuk is gaan vinden.
Members only:ik schijn nooit een project af te maken en daar baal ik van. Probeer er nog steeds aan te werken...
Alleen zichtbaar voor ingelogde gebruikers. Inloggen
Als het je echt dwars zit raad ik je aan om mega kleine projecten te doen van een paar uur. Dan kan je die in een avond afronden. Dit geeft een goed gevoel en geeft meer ervaring dan projecten die je niet afrond.
Uiteindelijk ga je vanzelf projecten draaien die meerdere avonden kosten of zelfs hele dagen.
Ik raad elke ontwikkelaar ook aan om aan Ludum Dare mee te doen waar je 48/72 uur de tijd hebt om een spel te maken. Als je dan een game oplevert dan voelt het heel goed om te weten dat het gebruikt wordt.
"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
Dat heeft bijna iedere dev. Als je eenmaal weet hoe iets werkt is de uitdaging weg, en dan ga je op zoek naar de volgende. Ik probeer dat te ondervangen door er een blog post over te gaan schrijven; dan moet ik 't wel netjes afronden.Ofyles2 schreef op maandag 3 juli 2017 @ 20:59:
Daarnaast ook nog eens hyper (geen ADHD), ik schijn nooit een project af te maken en daar baal ik van. Probeer er nog steeds aan te werken...
https://niels.nu
Dit inderdaad, behalve wanneer je iets maakt waar je echt een doel voor ziet. Ik probeer altijd projectjes op te pakken waar ik zelf iets mee zou doen (of waarvan ik hoop dat ik er iets mee ga doenHydra schreef op dinsdag 4 juli 2017 @ 07:57:
[...]
Dat heeft bijna iedere dev. Als je eenmaal weet hoe iets werkt is de uitdaging weg, en dan ga je op zoek naar de volgende. Ik probeer dat te ondervangen door er een blog post over te gaan schrijven; dan moet ik 't wel netjes afronden.
Ik kan wel redenen bedenken waarom je dit zou willen, maar ik vind dat toch eerlijk gezegd vaag.P1nGu1n schreef op vrijdag 30 juni 2017 @ 08:52:
[...]
Ook mooi is dat when en if expressions zijn: je kan de return value in een variabele stoppen:
Kotlin:
1 2 3 4 5 val x = if (a > b) { doSomethingA() } else { doSomethingB() }
Kan me ook voorstellen dat het niet echt leesbaar wordt als je eens een if hebt met nogal wat statements in de then/else.
Een reguliere ternary expression vind ik dan beter eigenlijk
https://fgheysels.github.io/
Wil je in dat geval niet gewoon een strategy-achtig iets ?P1nGu1n schreef op vrijdag 30 juni 2017 @ 11:43:
[...]
Dit was natuurlijk een extreem simpel voorbeeld...
Met meer conditions wordt het al nuttiger:
Kotlin:
1 2 3 4 5 6 7 8 9 val x = if (a > b) { doSomethingA() } else if (a < b) { doSomethingB() } else if (a == 0) { doSomethingC() } else { doSomethingD() }
Dat is leesbaarder dan:
https://fgheysels.github.io/
Je kunt wel meer dan 20 beacons monitoren, als de UUID's gaat hergebruiken (met een andere major/minor code om ze uit elkaar te houden). Als je deze goed verspreidt dan krijg je waarschijnlijk regelmatig een nieuwe enterRegion event en kun je dan in de app kijken welke precies in de buurt is. Zo zou je toch lokalisatie binnen een gebouw kunnen doen (elke kamer een iBeacon?).diabolofan schreef op maandag 3 juli 2017 @ 20:12:
[...]
Klopt, dat is inderdaad de limiet. Gelukkig weet ik precies welke beacons ik op een bepaald moment wil zien, dus die kan ik dan expliciet monitoren op uuid:major:minor combinatie, waardoor de enterRegion/exitRegion eigenlijk gewoon beacon discovered/beacon lost wordt, welke ik dan kan doorsturen naar de API.
Simplistische workflow wordt dan zo:
1. Monitor region op UUID (hele gebouw in mijn geval)
2. Vraag beacon uuid:major:minor op die actueel zijn bij enter van deze region en start voor deze beacons een monitoring
3. Geef elke enterRegion van deze specifieke beacon door aan de api
Dit is denk ik één van de betere manieren om low energy op de achtergrond te kunnen tracken. Hopelijk komt dit door het review proces![]()
Als je meer dan 20 regions/beacon-regions op die manier in de gaten wilt houden voor je use-case dan ben je de sjaak, want dit kan naar mijn idee dus niet op een niet-energie-slurpende manier.
Als je trouwens die monitoring aan hebt gezet, dan onthoudt iOS dit voor je, ook al wordt het device gereboot / wordt de app handmatig gekilled. Als je dan dus een region binnenloopt wordt je app gestart (in de achtergrond) en heb je even de tijd om hier iets mee te doen.
Wat in mijn geval ook nog zou kunnen is een Push Notification sturen elke 4 uur, die dan de beacon-regions doorgeeft die op dat moment actueel zijn, nadeel hiervan is dat na het handmatig killen van een app (wat ik regelmatig doe en vele met mij denk ik) Push Notifications niet meer doorkomen.. Dus voorlopig maar de hierboven beschreven manier uitwerken en door het review proces krijgen
ps. Ik heb zitten testen met de rebooten van iOS, maar hij pakte mijn test beacon niet opnieuw op. Pas toen ik de app weer opstartte kwam het event langs.

[ Voor 3% gewijzigd door Marcj op 04-07-2017 10:04 ]
Ik probeer dit soort 'ternary constructies' alleen toe te passen als er geen side-effects optreden omdat (in C) shortcuts worden genomen bij evaluaties van boolean expressies en dus de secundaire tak mogelijk niet wordt uitgevoerd. Je program flow/logica wordt er niet duidelijker op in dat geval.whoami schreef op dinsdag 4 juli 2017 @ 09:31:
[...]
Ik kan wel redenen bedenken waarom je dit zou willen, maar ik vind dat toch eerlijk gezegd vaag.
Kan me ook voorstellen dat het niet echt leesbaar wordt als je eens een if hebt met nogal wat statements in de then/else.
Een reguliere ternary expression vind ik dan beter eigenlijk
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.
Nog een reden voor mij om die ad-blockers meldingen boven de topic gewoon te negeren.Laurens-R schreef op dinsdag 4 juli 2017 @ 10:21:
Interessant; de tweakers homepage gooit m'n chrome CPU utilization naar 98% ... ik zie een hoop geanimeerde ads... nog een reden om een abbo te namen voor add-free tweakers.net
https://niels.nu
Of neem een een abboHydra schreef op dinsdag 4 juli 2017 @ 13:25:
[...]
Nog een reden voor mij om die ad-blockers meldingen boven de topic gewoon te negeren.
Wat @Skyaero zegt, voor een euro per maand ben je al verlost van alle reclame tegenwoordigHydra schreef op dinsdag 4 juli 2017 @ 13:25:
[...]
Nog een reden voor mij om die ad-blockers meldingen boven de topic gewoon te negeren.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
Het is een forum. Als ik gecompenseerd wordt voor alle content die ik produceer t.o.v. de content die ik consumeer zal ik 't in overweging nemen. Ik gebruik alleen GoT en de pricewatch en die laatste heeft een prima verdienmodel.P1nGu1n schreef op dinsdag 4 juli 2017 @ 16:49:
Wat @Skyaero zegt, voor een euro per maand ben je al verlost van alle reclame tegenwoordig
https://niels.nu
Dat shortcutten heb je ook in andere talen en ook bij andere statements (if / while / ... ). Ik zie dus niet direct het extra probleem daarvan mbt de ternary operator ?farlane schreef op dinsdag 4 juli 2017 @ 10:33:
[...]
Ik probeer dit soort 'ternary constructies' alleen toe te passen als er geen side-effects optreden omdat (in C) shortcuts worden genomen bij evaluaties van boolean expressies en dus de secundaire tak mogelijk niet wordt uitgevoerd. Je program flow/logica wordt er niet duidelijker op in dat geval.
https://fgheysels.github.io/
Fun fact: dit werkt dus niet in PHP omdat ze een fuckup hebben gemaakt bij de de associativity van de ?: operatorOlaf van der Spek schreef op vrijdag 30 juni 2017 @ 12:17:
[...]
Zoiets?
Kotlin:
1 2 3 4 5 Something x = a > b ? doSomethingA() : a < b ? doSomethingB() : a == 0 ? doSomethingC() : doSomethingD();

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.
https://niels.nu

Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag
Of gewoon versioning control gebruiken?Damic schreef op dinsdag 4 juli 2017 @ 19:51:
Mmmh wat heb ik nu weer kapot gemaaktProgramma start op maar laat geen hoofd form zien, al de rest werkt en reageert
* Damic moet echt eens leren goede (gedeelde) backups te maken.
Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag
Des te meer reden om 't te gebruiken
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Een if is een control flow statement en valt dus op als zodanig. De ternary *operator* is een assignment die je kunt misbruiken als zodanig. 'Tis een persoonlijke voorkeur om die tweede niet als control flow stetement te gebruiken, indien mogelijk.whoami schreef op dinsdag 4 juli 2017 @ 17:29:
[...]
Dat shortcutten heb je ook in andere talen en ook bij andere statements (if / while / ... ). Ik zie dus niet direct het extra probleem daarvan mbt de ternary operator ?
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 gooi echt alles in een git repo. Ik snap niet dat er nog devs zonder source-control werken. Ik heb geloof ik sinds m'n eerste stage in 2000 ofzo eigenlijk elk 'werk' project in sourcecontrol gehad.Megamind schreef op dinsdag 4 juli 2017 @ 20:07:
Of gewoon versioning control gebruiken?
https://niels.nu
Nouja, dan moet je het nog wel gebruiken.Hydra schreef op woensdag 5 juli 2017 @ 08:24:
[...]
Ik gooi echt alles in een git repo. Ik snap niet dat er nog devs zonder source-control werken. Ik heb geloof ik sinds m'n eerste stage in 2000 ofzo eigenlijk elk 'werk' project in sourcecontrol gehad.
Ik zie bij sommige collega's van mij dat ze het alleen gebruiken om óf aan het eind van de dag een backup te hebben óf pas als ze een grote feature af hebben.
Ze kennen het principe niet van tussendoor lokaal committen zodat je tijdens ontwikkeling nog terugkan gaan, i.p.v. veel met Ctrl-Z (of Cmd-Z in ons geval) te doen.
We are shaping the future
Dat zie je op Github bij beginners ook veel. Die doen pas 1 grote commit als het 'af' is om het op Github te gooien. Dan heb je het niet helemaal begrepen.Ryur schreef op woensdag 5 juli 2017 @ 08:38:
Nouja, dan moet je het nog wel gebruiken.
Ik zie bij sommige collega's van mij dat ze het alleen gebruiken om óf aan het eind van de dag een backup te hebben óf pas als ze een grote feature af hebben.
Ik commit iedere keer als ik een mentale mijlpaal bereikt heb; dus een stukje code 'af'.
https://niels.nu
Mss dat zij ook de commits plat slaan voor het pushen. Verder is het vooral een kwestie van persoonlijke voorkeur. Ik commit ook veel en vaak, maar collega's van me doen het minder vaak. Zolang je je werk naar behoren doet vind ik het allemaal prima.Hydra schreef op woensdag 5 juli 2017 @ 08:52:
[...]
Dat zie je op Github bij beginners ook veel. Die doen pas 1 grote commit als het 'af' is om het op Github te gooien. Dan heb je het niet helemaal begrepen.
Ik commit iedere keer als ik een mentale mijlpaal bereikt heb; dus een stukje code 'af'.
Read the code, write the code, be the code!
Je commits platslaan naar 1 huge commit voor de hele applicatie?wackmaniac schreef op woensdag 5 juli 2017 @ 08:55:
Mss dat zij ook de commits plat slaan voor het pushen.
https://niels.nu
Ik had niet echt een contextHydra schreef op woensdag 5 juli 2017 @ 08:59:
[...]
Je commits platslaan naar 1 huge commit voor de hele applicatie?
Read the code, write the code, be the code!
Zo fun vond ik dat niet toen ik daar achter kwam.. is zeker nog steeds niet gefixed?.oisyn schreef op dinsdag 4 juli 2017 @ 17:38:
[...]
Fun fact: dit werkt dus niet in PHP omdat ze een fuckup hebben gemaakt bij de de associativity van de ?: operator
ik denk eerder dat, PHP community kennende, het niet gefixed gaat worden omdat backwards compatability. Something something escape functieOlaf van der Spek schreef op woensdag 5 juli 2017 @ 10:42:
[...]
Zo fun vond ik dat niet toen ik daar achter kwam.. is zeker nog steeds niet gefixed?
Nah, mijn initial commit is altijd gitignore.Mercatres schreef op woensdag 5 juli 2017 @ 09:32:
En uiteraard altijd "Initial commit" met 20k aan files
Mijn tweede commit is 40k aan files
En mijn derde commit is een aangepast gitignore file en 20k aan bestanden die geignored had moeten worden.
"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
En waarschijnlijk iets als: het is geen bug want de parser zit nou eenmaal zo in elkaarGropah schreef op woensdag 5 juli 2017 @ 10:44:
[...]
ik denk eerder dat, PHP community kennende, het niet gefixed gaat worden omdat backwards compatability. Something something escape functie
Deze hele issue vind ik tekenend voor het devteam. Compleet ignorant op het gebied van compilerbouw functionaliteit implementeren, zonder je eerst even in de zaak te verdiepen. Zo'n beetje elke taal definieert zijn associativity, daar kijk je dan toch naar als je een dergelijke operator overneemt?
De docs erover kloppen overigens ook niet.
"this is because ternary expressions are evaluated from left to right"PHP:
1 2 3 4 5 6 7 8 9 10 11 12 // on first glance, the following appears to output 'true' echo (true?'true':false?'t':'f'); // however, the actual output of the above is 't' // this is because ternary expressions are evaluated from left to right // the following is a more obvious version of the same code as above echo ((true ? 'true' : false) ? 't' : 'f'); // here, you can see that the first expression is evaluated to 'true', which // in turn evaluates to (bool)true, thus returning the true branch of the // second ternary expression.
Helemaal niet, evaluation order heeft niets met associativity te maken

[ Voor 63% gewijzigd door .oisyn op 05-07-2017 11:16 ]
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.
Precies. En git init is zo getikt. Meestal denk ik dat het eigenlijk niet nodig is tot ik na een uur besef dat ik gelukkig nog git reset kan doen als ik weer iets heb verprutst.Hydra schreef op woensdag 5 juli 2017 @ 08:24:
[...]
Ik gooi echt alles in een git repo. Ik snap niet dat er nog devs zonder source-control werken. Ik heb geloof ik sinds m'n eerste stage in 2000 ofzo eigenlijk elk 'werk' project in sourcecontrol gehad.
Check deze prutser, een initial commit with 1244 additions. Tsk.Mercatres schreef op woensdag 5 juli 2017 @ 09:32:
En uiteraard altijd "Initial commit" met 20k aan files
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
Ik heb git-commits voor die datumkenneth schreef op woensdag 5 juli 2017 @ 12:58:
[...]
Check deze prutser, een initial commit with 1244 additions. Tsk.
"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
Mwah, als ik een PR review wil ik wel graag de commit history zien, zeker als het een wat grotere PR is. De losse commits zijn een stuk beter te reviewen dan een grote bak code waar van alles door elkaar gebeurt.wackmaniac schreef op woensdag 5 juli 2017 @ 08:55:
[...]
Mss dat zij ook de commits plat slaan voor het pushen. Verder is het vooral een kwestie van persoonlijke voorkeur. Ik commit ook veel en vaak, maar collega's van me doen het minder vaak. Zolang je je werk naar behoren doet vind ik het allemaal prima.
[ Voor 10% gewijzigd door Bosmonster op 05-07-2017 23:17 ]
Ik zie het al voor me bij release. Eén grote release per jaar met alle commit squashed naar 1 commit met de commit message "Version $year"Hydra schreef op woensdag 5 juli 2017 @ 08:59:
[...]
Je commits platslaan naar 1 huge commit voor de hele applicatie?
In gebruik het zelf best vaak in een feature branch om 'noise' commits te squashen (b.v. ergens console.log laten staan). Dan rebase ik het op de main branch waarna ik terugmerge (met no-FF). Vind ik altijd wel clean en ook fijn bij code reviews. Hoewel de meeste Git hosting clients die ik ken bij PR's ook gewoon een 'squashed' view kunnen laten zien van het eindresultaat.Bosmonster schreef op woensdag 5 juli 2017 @ 23:15:
[...]
Mwah, als ik een PR review wil ik wel graag de commit history zien, zeker als het een wat grotere PR is. De losse commits zijn een stuk beter te reviewen dan een grote bak code waar van alles door elkaar gebeurt.
[ Voor 52% gewijzigd door Down op 06-07-2017 00:05 ]
Mother north, how can they sleep while their beds are burning?
De wet van Murphy: Alles wat fout kan gaan zal fout gaan.
Sssstttt......
]|[ Apple Macbook Pro Retina 13" ]|[
Ik slaap nog...
Without nipples, boobs are pointless - 365 project - In mijn hoofd is het alle dagen Kerstmis - What type of bees make milk? Boobies! - What type of bees are scary? BoooOOOOOooobeees! - Cactusliefhebster
Meetings op maandag ochtend is ook vragen om problemenElkeBxl schreef op maandag 10 juli 2017 @ 10:24:
[...]
Ik slaap nog...Ik moet echt moeite doen om wakker te blijven tijdens meetings omdat ik zo gefeest had en weinig geslapen heb
Tot nu toe 3 PR's gemaakt waarvan 2 geaccepteerd en de derde eerder vanavond, dus die wordt morgen door de mangel gehaald. Plus een Native React dingetje gebouwd omdat ik niets beters te doen had, m'n Python skills even bijgeschaafd en begonnen aan een cursus Machine Learning.
Heerlijk, even een weekje geen werk
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!

Zie #TeamTweakers heeft jullie nodig
Alvast supersnel dank!
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
Time for the backups dan maar.
Nou maar hopen dat die niet versleuteld zijn met een wachtwoord dat in je Keepass-file staathackerhater schreef op maandag 10 juli 2017 @ 22:59:
Time for the backups dan maar.
We are shaping the future
Neuh. Alleen lijkt deja-dup niet graag 1 map terug te willen zettenAlex) schreef op maandag 10 juli 2017 @ 23:04:
Nou maar hopen dat die niet versleuteld zijn met een wachtwoord dat in je Keepass-file staat
[update]
En weer terug. Lang leven backups

[/update]
[ Voor 10% gewijzigd door hackerhater op 10-07-2017 23:13 ]
Leve de aanvoegende wijs!
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
Klinkt inderdaad best wel slim, maar ik had bij Android 6 het probleem dat ik opeens gebruikers toestemming moest vragen om locatie gegevens zodra ze naar bluetooth devices wilden zoeken. Dat is toch iets lastiger uit te leggen.diabolofan schreef op donderdag 6 juli 2017 @ 16:33:
Must-read om mensen je permissies te laten accepteren in je app: https://techcrunch.com/20...sers-for-ios-permissions/
Welkom, maar... let op met kijken! Als je het aanraakt dan is het jouw bugAapO schreef op dinsdag 11 juli 2017 @ 11:55:
Goedemiddag, ik ben amper actief geweest op tweakers, maar ga daar proberen verandering in te brengenik weet niet of ik hier op de juiste plek ben, maar ik werk nu zon 7-8 jaar als allround developer en ik dacht ik kom eens hier een kijkje nemen
"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
Dat zeg je verkeerdDevWouter schreef op dinsdag 11 juli 2017 @ 12:52:
[...]
Welkom, maar... let op met kijken! Als je het aanraakt dan is het jouw bug
Op het moment dat jij een bug constateert, heb jij een nieuwe bug veroorzaakt. Daarvoor bestond hij namelijk nog niet.
edit: en wel.
[ Voor 3% gewijzigd door BastiaanCM op 11-07-2017 15:25 ]
Daarom typ ik altijd "blind"BastiaanCM schreef op dinsdag 11 juli 2017 @ 13:01:
[...]
Dat zeg je verkeerd![]()
Op het moment dat jij een bug constateert, heb jij een nieuwe bug veroorzaakt. Daarvoor bestond hij namelijk nog niet.
"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel
Waarom had je het nodig dan?Jeroen Sack schreef op dinsdag 11 juli 2017 @ 11:15:
[...]
Klinkt inderdaad best wel slim, maar ik had bij Android 6 het probleem dat ik opeens gebruikers toestemming moest vragen om locatie gegevens zodra ze naar bluetooth devices wilden zoeken. Dat is toch iets lastiger uit te leggen.
Heisenbug.Mercatres schreef op dinsdag 11 juli 2017 @ 13:20:
Da's een soort van Schrödingers bug?
Ship it!
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
Nee, een Heisenbug is een bug die zich niet laat debuggen. Nu gaat het over een bug die pas bestaat als hij gevonden wordt.
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.
Die van gedrag verandert als hij geobserveerd wordt om precies te zijn. Ik weet dat 't wat anders is, maar vond 't wel grappig/toepasselijk..oisyn schreef op dinsdag 11 juli 2017 @ 17:19:
Nee, een Heisenbug is een bug die zich niet laat debuggen.
https://niels.nu
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.