If money talks then I'm a mime
If time is money then I'm out of time
Eigenaar/brouwer Milky Road Brewery
Nothing to see here!
Rutix schreef op dinsdag 11 oktober 2011 @ 13:43:
[...]
ik vind 65 minuten best meevallenmaar rijd die Fyra nog een beetje lekker of is het vaak druk?
Ik heb ook wel eens +70 meegemaakt met de Fyra, we waren toen terechtgekomen achter een gestrande trein die geëvacueerd werd, en we konden niet meer van de HSL af. Ook wel eens +20 gehad omdat de treindienstleider een fout maakte en de Fyra in de richting van Roosendaal stuurde ipv Rotterdam.Matis schreef op dinsdag 11 oktober 2011 @ 13:43:
[...]
ALS de Fyra rijdt en ALS hij op volle snelheid rijdt is het prima vertoeven. Laatst de Fyra van Breda naar Amsterdam, uiteindelijk bijna net zo lang over gedaan als dat we over Den Bosch waren gegaan.
Maar over het algemeen rijdt hij goed door, en ik heb ook altijd een zitplek
We are shaping the future
Staat het vinkje 'Allow this property to be used in scopes' op de managed property uit

Nu nog even een powershell scriptje om dat te fixen
Nothing to see here!
Dit zijn idd echt precies de dingen in SharePoint waar je helemaal simpel van wordt. Eerst de hele refinements definitie in xml uitspitten e.d. en dan is het zoiets waar je overheen kijkt...Rutix schreef op dinsdag 11 oktober 2011 @ 14:20:
Poor Hoogie :< . Suckt altijd als het zulke stomme kleine dingetjes zijn.
1 voordeel, volgende keer dat het niet werkt, is dit het eerste wat je kijkt
The best way to learn is the hard wayHoogie2004 schreef op dinsdag 11 oktober 2011 @ 14:25:
[...]
Dit zijn idd echt precies de dingen in SharePoint waar je helemaal simpel van wordt. Eerst de hele refinements definitie in xml uitspitten e.d. en dan is het zoiets waar je overheen kijkt...
1 voordeel, volgende keer dat het niet werkt, is dit het eerste wat je kijkt
Nothing to see here!
Dat is een mooie, die kan ik mooi gebruiken in mijn overdracht naar een collega
Daarnaast kan ik hem ook introduceren in de schone kunst der software-archeologie
Die opmerking komt ook hier vandaan
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.

Gefeliciteerd
Intel i7-12700KF/Giga-Byte B760I Aorus Pro DDR4/MSI Geforce 1080Ti 11Gb/Corsair 2x16.384MB DDR4-3200/Samsung SSD 980 Pro 1 Tb/Crucial MX500 1 Tb/Seagate 1 Tb
.Gertjan.: Er is maar een goede Mac en dat is die gele M langs de snelweg :D
Ondanks dat je je afspraak hebt gemist?
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
92kilometer... enkele reisRutix schreef op dinsdag 11 oktober 2011 @ 13:55:
Ik reis elke dag 62 km. Prima te doen imo. Amersfoort -> Amsterdam. A1 Is veel beter geworden sinds ze die spitsstrook hebben.
Tja, nadeel van detachering, maar ik vind het wel prima. Vind autorijden niet vervelend, en kan lekker vroeg beginnen (6:25 loop ik meestal kantoor binnen). Verder is het een erg leuke klant, leuke projecten, dus vermaak me hier prima.
's Ochtends meestal 55 minuten onderweg, 's middags meestal rond de 60. Prima te doen. Heb het idee dat ik hier ook nog wel even zit (werd van de week al geinformeerd of we het een probleem zouden vinden om na nieuwjaar nog wat langer te blijven).
Over het zzp'en: heb er wel eens aan zitten denken, maar denk dat ik dat voorlopig nog even voor me uit schuif. Komende tijd nog meer dan genoeg te leren, en ik zie mezelf nog niet zo netwerken om aan werk te komen. Al is het wel tikje zuur als je je bedenkt wat de klant per uur voor me betaald, en wat ik er netto zelf aan overhoud
[ Voor 18% gewijzigd door BM op 11-10-2011 15:42 ]
Xbox
Even the dark has a silver lining | I'm all you can imagine times infinity, times three
Bij mij, volgens GoogleMaps: 2,0 km, 5 min. (enkele reis).
Oude kantoor was ook ±800 meter van mijn huis.ZaZ schreef op dinsdag 11 oktober 2011 @ 15:55:
Sinds vorige week (verhuisd) is het nog maar 800 meter naar mijn werk.
Yay
[ Voor 35% gewijzigd door OkkE op 11-10-2011 16:01 ]
“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.
Yay
Lekker op de bank
Ik wist niet dat je crap code produceerde.Gertjan. schreef op dinsdag 11 oktober 2011 @ 15:01:
[...]
Dat is een mooie, die kan ik mooi gebruiken in mijn overdracht naar een collega
Daarnaast kan ik hem ook introduceren in de schone kunst der software-archeologie
Die opmerking komt ook hier vandaan
Nothing to see here!
1
| rm -rf / |
KUT! . vergeten!
*hoopt hard dat niets verwijderd is*
*wilde huidige map verwijderen*

#fail
edit2:
Ja tuurlijk, maak nog een keer de exact zelfde fout
[ Voor 80% gewijzigd door Gamebuster op 11-10-2011 16:58 ]
Let op: Mijn post bevat meningen, aannames of onwaarheden
edit: lopend dus...
[ Voor 21% gewijzigd door Cartman! op 11-10-2011 16:54 ]
Your fail saved youGamebuster schreef op dinsdag 11 oktober 2011 @ 16:51:
code:
1 rm -rf /
KUT! . vergeten!
*hoopt hard dat niets verwijderd is*
*wilde huidige map verwijderen*
[afbeelding]
#fail
Nothing to see here!
Afspraken bedoel jeCodeCaster schreef op dinsdag 11 oktober 2011 @ 15:30:
[...]
Ondanks dat je je afspraak hebt gemist?
Pro tip: geen e-mails naar YopY sturen
Dat is ook niet gek. Damn wat is die meerprijs op die kaartjes onrechtvaardig hoog. Het was dat ik voor de zaak met de trein moest en dus het kaartje kon declareren, anders was ik NO WAY met de Fyra gegaan, maar gewoon tussen het normale (niet denigrerend bedoeld) volk gaan zitten.
If money talks then I'm a mime
If time is money then I'm out of time
€ 70 voor een maandtoeslagabonnement vind ik vrij schappelijk, het scheelt (t.o.v. de andere treinen) 80 minuten reistijd per dag.Matis schreef op dinsdag 11 oktober 2011 @ 17:16:
[...]
Dat is ook niet gek. Damn wat is die meerprijs op die kaartjes onrechtvaardig hoog. Het was dat ik voor de zaak met de trein moest en dus het kaartje kon declareren, anders was ik NO WAY met de Fyra gegaan, maar gewoon tussen het normale (niet denigrerend bedoeld) volk gaan zitten.
De eerdere prijzen (zegmaar, prijspeil 2010) waren inderdaad veel te hoog. Sinds de toeslagen met 70% verlaagd zijn is de hoeveelheid reizigers met 300% toegenomen.
Tegenwoordig zijn er in de Fyra staanplaatsen. 6 rijtuigen tijdens de spits is echt niet meer genoeg
Edit: er zit een onhandige tekortkoming in de NS-site: ik heb een maandabonnement Altijd Vrij op m'n OV-chipkaart, met einddatum vandaag. Nu wilde ik vandaag een nieuw abonnement aanschaffen met ingangsdatum morgen, maar dat mag niet, omdat er al een product op m'n OV-chipkaart staat. Dat wordt na middernacht aanschaffen dus

[ Voor 24% gewijzigd door Alex) op 11-10-2011 18:05 ]
We are shaping the future
Ik krijg ook wel eens een bestaand project onder mijn handen

Mijn "hoofdproject" is een project waarvoor de vorige ICT leverancier de tent is uitgejaagd

Daarbij is het AX welke redelijk beperkt is qua development en waarin men nogal snel hoeken afsnijdt om maar snel op te leveren. Binnen AX zie je vaak: "Het werkt functioneel, dus het zal wel goed zijn".Laat je kampeerplek schoner achter dan je hem aantrof
Code die ik helemaal naar smaak mag opzetten is natuurlijk perfect

The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Ben nu build script aan het schrijven met powershell/psake. Wat een verademing na al dat msbuild gepiel. Ben blij dat ik van die 'angle bracket tax' af ben.
[ Voor 68% gewijzigd door alwinuzz op 11-10-2011 20:45 ]
Mwa over smaak valt te discussiëren, echter zijn er ook gewoon dingen die absoluut fout zijnalwinuzz schreef op dinsdag 11 oktober 2011 @ 20:44:
Implying dat jij goede smaak hebt?
Ben nu build script aan het schrijven met powershell/psake. Wat een verademing na al dat msbuild gepiel. Ben blij dat ik van die 'angle bracket tax' af ben.
Ook zaken als zoveel mogelijk in de sessions en viewstate gooien zijn dingen waarbij ik direct alert ben.
Ik wil niet zeggen dat mijn visie altijd de beste is, maar sommige dingen kunnen gewoon niet meer door de beugel. Je ziet ook direct in de code of een ontwikkelaar ervaren is en of deze "het denken van een ontwikkelaar" bezitten.
Maar nee, ik voel me niet perfect ofzo hoor
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Gelukkig kan ik nu de laatste dingen afhandelen vanaf kantoor (~ 5 minuten fietsen).
Evilbee schreef op woensdag 12 oktober 2011 @ 09:46:
Ik heb afgelopen weken bij een klant in Foxhol gezeten. Ook leuk als je daar om 9 uur moet zijn en je woont in Haarlem. Dat zijn 215 kilometers, dus om half 7 weg
Gelukkig kan ik nu de laatste dingen afhandelen vanaf kantoor (~ 5 minuten fietsen).

Compensatie noemt men dat
Ach, voor een ander project moet ik naar Zwitserland, Noorwegen, Zweden, etc.
Dus een project in Nederland is ook wel eens leuk
Elke dag op en neer naar Zwitserland, Noorwegen, Zweden, etc. is ook geen pretjeEvilbee schreef op woensdag 12 oktober 2011 @ 09:57:
[...]
Ach, voor een ander project moet ik naar Zwitserland, Noorwegen, Zweden, etc.

Als ze maar niet bij ons komen zeiken als ze straks niet meer gevonden worden in Google.
Glass Eye Photography | Zelfbouw wireless fightstick | Mijn puzzel site
Gewoon die mail-conversatie opslaan en nogmaals het risico aangeven? Dat ze komen zeuren staat vast, de vraag is alleen hoe snel.Acid_Burn schreef op woensdag 12 oktober 2011 @ 10:21:
Zucht.. een klant wil verborgen teksten op zijn zijn speciaal voor Google. Nu heb ik em er op gewezen dat Google daar niet van houdt en zelfs zijn ranking negatief kan beinvloeden. Ook Bing wil dat niet hebben. Nee, toch moet die tekst er op in een div met display:none![]()
Als ze maar niet bij ons komen zeiken als ze straks niet meer gevonden worden in Google.
[ Voor 5% gewijzigd door Hoogie2004 op 12-10-2011 10:25 ]
Gewoon niet doen, en tegen de klant zeggen dat je de tekst zo ontzettend hidden hebt gemaakt, dat je het zelfs in de bron niet kan zien!Acid_Burn schreef op woensdag 12 oktober 2011 @ 10:21:
Zucht.. een klant wil verborgen teksten op zijn zijn speciaal voor Google. Nu heb ik em er op gewezen dat Google daar niet van houdt en zelfs zijn ranking negatief kan beinvloeden. Ook Bing wil dat niet hebben. Nee, toch moet die tekst er op in een div met display:none![]()
Als ze maar niet bij ons komen zeiken als ze straks niet meer gevonden worden in Google.

Ben ik wel benieuwd waarom die klant dat wil...Acid_Burn schreef op woensdag 12 oktober 2011 @ 10:21:
Zucht.. een klant wil verborgen teksten op zijn zijn speciaal voor Google. Nu heb ik em er op gewezen dat Google daar niet van houdt en zelfs zijn ranking negatief kan beinvloeden. Ook Bing wil dat niet hebben. Nee, toch moet die tekst er op in een div met display:none![]()
Als ze maar niet bij ons komen zeiken als ze straks niet meer gevonden worden in Google.
Beste is inderdaad de mail-conversatie opslaan (of zelfs document laten tekenen). Of je doet het gewoon niet. Ik vind dat je als developer soms dingen (zoals dit) moet weigeren.
[ Voor 4% gewijzigd door OkkE op 12-10-2011 10:28 ]
“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.
Als de klant retarded software wilt, kunnen ze dat krijgen. Natuurlijk kan je ze wijzen op het feit dat het wellicht niet de beste keuze is, maar als ze dit per se willen, en er voor betalen kan je het toch moeilijk weigeren?
Mail conversaties worden uiteraard gearchiveerd. Dat doe ik standaard (mijn baas trouwens ook).
Glass Eye Photography | Zelfbouw wireless fightstick | Mijn puzzel site
Vind ik niet.TJHeuvel schreef op woensdag 12 oktober 2011 @ 10:35:
Waarom zou je als developer de vraag van een klant weigeren?
Als de klant retarded software wilt, kunnen ze dat krijgen. Natuurlijk kan je ze wijzen op het feit dat het wellicht niet de beste keuze is, maar als ze dit per se willen, en er voor betalen kan je het toch moeilijk weigeren?
Natuurlijk hangt het van het project, de klant en de wens af. Vaak kom je met de vraag "Waarom?" wel achter de bedoeling van de klant en kan je samen een betere oplossing vinden. Maar ik vind dat je bepaalde wensen best mag weigeren, als ze echt stom/slecht zijn.
Nu is dit misschien niet het goede voorbeeld; tekst op display: none is vooral een probleem voor de klant. Maar er zijn best situaties te bedenken, bijvoorbeeld met privacy van bezoekers, of beveiliging van NAW gegevens, waarbij ik vind dat je soms nee moet zeggen tegen een klant. Ondanks dat hij betaalt.
Sja, als je de klant zelfs links en uitleg hebt gestuurd en hij/zij wil nog steeds zoiets, dan is het misschien wel beter gewoon te zeggen "prima, doen we".Acid_Burn schreef op woensdag 12 oktober 2011 @ 10:42:
De klant is er van overtuigd dat dit de vindbaarheid in Google ten goede zal komen. Ondanks dat ik hem heb verteld dat dit niet zo is inclusief links naar de dev pagina's van Google zelf (en Bing) wil hij dat er toch in hebben. Mijn baas zegt dan weer, bouw maar in, dan ik ik niet zeggen dat doe ik niet. Dus ik bouw dat gewoon lekker in.
Mail conversaties worden uiteraard gearchiveerd. Dat doe ik standaard (mijn baas trouwens ook).
“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.
Wat ik vaker heb gezien is dat ik het persoonlijk bijvoorbeeld qua user-interactie er niet mee eens bent wat de klant wilt, maar uiteindelijk er toch maar bij neerleg omdat hij er helemaal van overtuigd is.
Dus inderdaad goed al die mails e.d. bewaren
Toch wel grappig hoe een bedrijf dan een specialist in armen neemt om hun website te realiseren, om vervolgens niet te luisteren naar het SEO-advies.
Eigenaar/brouwer Milky Road Brewery
Klopt, dat gebeurd mij ook nog wel eens. Soms kun je de klant gewoon niet overtuigen. Dan is het helemaal geen probleem om "het gewoon te doen, de klant betaalt".TJHeuvel schreef op woensdag 12 oktober 2011 @ 10:54:
Daar heb je zeker een punt Okke, op punten waar wij de experts in zijn moet je inderdaad wel je grenzen leggen.
Wat ik vaker heb gezien is dat ik het persoonlijk bijvoorbeeld qua user-interactie er niet mee eens bent wat de klant wilt, maar uiteindelijk er toch maar bij neerleg omdat hij er helemaal van overtuigd is.
Van die dingen als Google/Bing bedriegen vind ik een lastig punt. Aan de ene kant vind ik het de klant zijn probleem. Aan de andere kant, hangt wel (direct, of indirect) je naam er aan en vind ik dat je zulke shady-praktijken gewoon niet moet doen. Punt.
Gelukkig hebben wij dat nog nooit meegemaakt. Wij hebben wel af en toe klanten die benaderd worden door van die "speciale SEO bedrijfjes", gelukkig vertrouwen ze ons eigenlijk altijd meer; wij komen met links en uitleg ipv die buzz-word bingo.Ram0n schreef op woensdag 12 oktober 2011 @ 10:57:
Toch wel grappig hoe een bedrijf dan een specialist in armen neemt om hun website te realiseren, om vervolgens niet te luisteren naar het SEO-advies.
[ Voor 22% gewijzigd door OkkE op 12-10-2011 11:03 ]
“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.
Nothing to see here!
Idem. COBOL kan me echt niet boeienRutix schreef op woensdag 12 oktober 2011 @ 11:20:
blablabla. Bah ik heb echt geen zin vandaag :<.


"Maar in 2000 deden we dat ook"Ram0n schreef op woensdag 12 oktober 2011 @ 10:57:
Toch wel grappig hoe een bedrijf dan een specialist in armen neemt om hun website te realiseren, om vervolgens niet te luisteren naar het SEO-advies.
Ik heb wel vaker opmerkingen van deze klant gekregen die ze duidelijk van een neefje-dat-ook-wel-eens-met-frontpage-aan-de-gang-is-geweest hebben gehad.
Maar goed, ik heb het net ingebouwd. Gemeld dat het er inzit met onderstreept nogmaals dat het de ranking kan beïnvloeden... Meer kan ik niet doen.
Glass Eye Photography | Zelfbouw wireless fightstick | Mijn puzzel site
Dat is altijd verschrikkelijk ja. Gelukkig hebben wij alleen klanten die uiteindelijk toch ons meer geloven dan "dat neefje".Acid_Burn schreef op woensdag 12 oktober 2011 @ 11:44:
"Maar in 2000 deden we dat ook"![]()
Ik heb wel vaker opmerkingen van deze klant gekregen die ze duidelijk van een neefje-dat-ook-wel-eens-met-frontpage-aan-de-gang-is-geweest hebben gehad.
Waar ik dan weer wel benieuwd naar ben: hoe lang het uiteindelijk duurt voor ze een penalty krijgen en hoe ver hun rank zakt.Maar goed, ik heb het net ingebouwd. Gemeld dat het er inzit met onderstreept nogmaals dat het de ranking kan beïnvloeden... Meer kan ik niet doen.
“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.
Glass Eye Photography | Zelfbouw wireless fightstick | Mijn puzzel site
I know.Acid_Burn schreef op woensdag 12 oktober 2011 @ 11:51:
Ligt een beetje aan de algoritmen van de zoekmachines denk ik.. Wordt het opgepikt en zo ja, wordt je dan ook direct gestraft. Voor hetzelfde geld gebeurt er niets... of over een half jaar zijn ze ineens niet meer te vinden ofzo. Daarom zeg ik in de mails ook niet dat het absoluut de ranking zal beïnvloeden, maar dat het goed mogelijk is dat etc etc.100% zeker kan je niet zijn. Ik heb ze alleen op de richtlijnen gewezen.
Ik bedoelde ook, ben benieuwd hoe het in dit geval gaat. Elke website is anders, maar interessant om cijfers uit de praktijk te weten ipv altijd maar te speculeren.
“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.
Going for adventure, lots of sun and a convertible! | GMT-8
wat lukt er niet dan?JohnBQ schreef op woensdag 12 oktober 2011 @ 14:50:
Pff weer eens veel moeite met WPF vandaag zeg, steeds vaker dat het erg lastig is om dingen niet lekker snel en simpel in de code te willen doen maar in redelijk onbekend XAML
Nu met Land Rover Series 3 en Defender 90
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

Al een tijdje aan het klooien met het binden van dependency properties in custom controls, in het ene (test)project wel (bijna)werkend maar in het andere (main)project zit het niet goed. Geen errors of meldingen e.d. maar ook geen weergave
Het is alleen wel flink wennen en zoeken, er zijn ook al regelmatig "oow, is dat alles 8)7" langsgekomen maar het vergt wel een stuk meer tijd dan ff snel in code(-behind) bezig te gaan.oisyn schreef op woensdag 12 oktober 2011 @ 15:05:
XAML is op zich vrij simpel, het enige wat het doet is het instantieren van classes (de tags) en het zetten van properties (de attributen)
Check nog even of je alles goed instantieert en declareert.JohnBQ schreef op woensdag 12 oktober 2011 @ 15:25:
Al een tijdje aan het klooien met het binden van dependency properties in custom controls, in het ene (test)project wel (bijna)werkend maar in het andere (main)project zit het niet goed. Geen errors of meldingen e.d. maar ook geen weergave
Applications = Code + Markup van Charles Petzold heb ik altijd wel een handig boek gevondenHet is alleen wel flink wennen en zoeken, er zijn ook al regelmatig "oow, is dat alles 8)7" langsgekomen maar het vergt wel een stuk meer tijd dan ff snel in code(-behind) bezig te gaan
Nu met Land Rover Series 3 en Defender 90
Zal er eens naar kijken, bedankt voor de tip!MTWZZ schreef op woensdag 12 oktober 2011 @ 15:37:
[...]
Check nog even of je alles goed instantieert en declareert.
[...]
Applications = Code + Markup van Charles Petzold heb ik altijd wel een handig boek gevonden
Vooral als anderen eraan hebben gezeten: ja, non-stop.st0p schreef op woensdag 12 oktober 2011 @ 17:16:
Kennen jullie het gevoel dat je na 2 maanden werk aan een proejct (wat overigens alle kentekens heeft van een falend it project, belabberde functionele omschrijving, gebrek aan sturing etc etc), je alle code weg wil gooien en overnieuw wil beginnen?
Nou dit is 50% mijn eigen code, maar in retroperspectief had ik een aantal zaken fundamenteel anders aangepakt.Megamind schreef op woensdag 12 oktober 2011 @ 17:37:
[...]
Vooral als anderen eraan hebben gezeten: ja, non-stop.
Ik heb namelijk nog steeds geen benul hoe je animaties/banners unit test. Ik heb de klasses die de data ophalen wel getest. Maar de weergave er van niet...
[ Voor 22% gewijzigd door alienfruit op 12-10-2011 18:28 ]
[ Voor 25% gewijzigd door CodeCaster op 12-10-2011 18:51 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Als je een goede reden hebt om de code te herschrijven en het zorgt voor een korter project zie ik persoonlijk geen probleem
We are shaping the future
Als ik geen enorm dwingende deadline had gehad had ik het gedaan. Het probleem is dat we extern gecertificeerd moeten worden (het gaat om een SOAP koppeling) en dat het aanvragen van een nieuw certificatie slot weken zoniet maanden gaat duren.Caelorum schreef op woensdag 12 oktober 2011 @ 19:31:
Gehad tijdens afstuderen. Heb zonder overleg +- 8 weken aan code weggegooid om het in een week opnieuw te schrijven in beter onderhoudbare vorm.
Als je een goede reden hebt om de code te herschrijven en het zorgt voor een korter project zie ik persoonlijk geen probleem(Al zou ik als niet-afstudeerder wel eerst even vragen om toestemming ^^)
Oh, en ik heb een vakantie gepland 2 weken na de deadline. In eerste instantie was de deadline heilig en kon niet overschreden worden, ondertussen ligt de deadline vast omdat ik twee weken erna op vakantie ga. Raaaaaarrrrrrrrrr. Daar ga ik morgen nog wel even wat over zeggen.
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
13 jaar oud, grotendeels in Perl, en langzaam ge-evolueerd. En guess what? Het zit gewoon prima in elkaar
Overigens zijn we nu wel langzaam aan het migreren naar een architectuur op basis van Java en Scala, maar dat komt vooral doordat mijn overige collega's en ikzelf de afgelopen vijf tot tien jaar voor het laatst een regel Perl hebben geschreven en de continuïteit een beetje in het geding begint te komen
Ik sta overigens wel verbaasd van de eerste wijziging die hij voorstelt: gebruik geen explicite types voor lokale variabele, maar gebruik var
1
2
| var myList = new List<string>(); //Dit wijst zichzelf omdat je bij de new kunt zien wat er gebeurt var myList = GetSomethingFromSomewhere(); //Dit is wat lastiger omdat je aan de functie niet altijd direct kunt zien wat er terug komt |
Mijn eerste reactie op het voorstel was dan ook: "Ow...

Overigens is de collection initializer optie dan wel weer grappig
Overigens vind ik het ook wel leuk om te zien dat hij de kleurtjes toont als je een kleurcode ergens gebruikt.
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Gerelateerde discussie?.Gertjan. schreef op donderdag 13 oktober 2011 @ 07:20:
Ik sta overigens wel verbaasd van de eerste wijziging die hij voorstelt: gebruik geen explicite types voor lokale variabele, maar gebruik var
\[C#][discussie] Lekker veel var gebruiken?
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
RayNbow schreef op donderdag 13 oktober 2011 @ 07:42:
[...]
Gerelateerde discussie?
\[C#][discussie] Lekker veel var gebruiken?
Var is voor javascript en daar zou het moeten blijven
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Daar ben ik niet mee eens..Gertjan. schreef op donderdag 13 oktober 2011 @ 07:47:
[...]
Gelukkig ben ik dus niet de enige die var niet zo leuk vind
Var is voor javascript en daar zou het moeten blijven
En om even terug te komen op je codevoorbeeld:
Het is overduidelijk dat je op de 2e regel een Something terugkrijgt. Dat vertelt immers de naam van de methode je..Gertjan. schreef op donderdag 13 oktober 2011 @ 07:20:
C#:
1 2 var myList = new List<string>(); //Dit wijst zichzelf omdat je bij de new kunt zien wat er gebeurt var myList = GetSomethingFromSomewhere(); //Dit is wat lastiger omdat je aan de functie niet altijd direct kunt zien wat er terug komt
(Mocht de methode geen Something retourneren, dan heb je een groter probleem. Ga eens snel de naam van de methode fixen!
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Of je altijd het returntype in je functienaam moet gebruiken is ook iets wat aan smaak onderhevig is en waar volgens mij ook diverse discussies over gevoerd kunnen worden. Kijk een functie als GetUser() zal allicht een user teruggeven, maar een functie GetUsers(), tja die geeft Users terug, maar hoe?RayNbow schreef op donderdag 13 oktober 2011 @ 07:56:
(Mocht de methode geen Something retourneren, dan heb je een groter probleem. Ga eens snel de naam van de methode fixen!)
Een functie als GetUsers kan een list, array of andere verzameling teruggeven. Hij kan zelfs een custom object teruggeven.
Als ik wil weten wat voor type een bepaalde variabele is ben ik gewend om links van de variabele naam te kjken naar de definitie. Als ik dan een var tegenkom moet ik dus even verder zoeken. Misschien een kwestie van gewenning, maar ik ben er geen fan van
Met al die mooie autocompletes in de IDE is het "extra typen" ook geen argument meer
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Maar stel nou dát je inderdaad die methode refactored en je geen Something meer terugkrijgt, dan gaat er toch iets breken in deze methode. En het is dan niet meteen duidelijk wat er mis gaat, want op line twee stop je je ding in een var, en als je hem pas op regel elf gebruikt en er een methode van Something op wil aanroepen, krijg je daar je fout.RayNbow schreef op donderdag 13 oktober 2011 @ 07:56:
Het is overduidelijk dat je op de 2e regel een Something terugkrijgt. Dat vertelt immers de naam van de methode je.
(Mocht de methode geen Something retourneren, dan heb je een groter probleem. Ga eens snel de naam van de methode fixen!)
Als je een type had gebruikt in plaats van var, dan krijg je de foutmelding meteen bij de assignment en is de oorzaak van het probleem ook direct veel zichtbaarder en duidelijker
In talen als Haskell en Scala is het wat fraaier opgelost, omdat je daar een type annotatie echt als extraatje kan toevoegen aan je code en het wat makkelijker ook weer is te verwijderen. In C# moet je zo te zien code wijzigen om dat te doen.
[ Voor 11% gewijzigd door eamelink op 13-10-2011 08:21 ]
Als je zodanig gaat refactoren dat je returntype veranderd moet toch ook je functie renameneamelink schreef op donderdag 13 oktober 2011 @ 08:19:
[...]
Maar stel nou dát je inderdaad die methode refactored en je geen Something meer terugkrijgt, dan gaat er toch iets breken in deze methode. En het is dan niet meteen duidelijk wat er mis gaat, want op line twee stop je je ding in een var, en als je hem pas op regel elf gebruikt en er een methode van Something op wil aanroepen, krijg je daar je fout.
Sowieso is wijzigingen in de "fingerprint" van je functie (returntype en parameters) iets waar je erg mee moet opletten. Zeker als je componenten schrijft die gebruikt worden in meerdere projecten. Wanneer je je interface publiceert moet je eigenlijk van de fingerprint van je functies afblijven. Nadeel is wel dat je dan volgnummers in je objecten en functies moet gebruiken (zie de libraries van Office
Dat is inderdaad een goed argument.Als je een type had gebruikt in plaats van var, dan krijg je de foutmelding meteen bij de assignment en is de oorzaak van het probleem ook direct veel zichtbaarder en duidelijker
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Ik vind dat je dat dan duidelijk moet maken in de functienaam. Als we nu toch over "leesbaarheid" gaan hebben dan moet je ook dat ook doen in je methods namen. Voordat je GetUsers gaat gebruiken moet je toch ook eerst kijken wat het nou terug geeft? Als je duidelijk was in je method naam dan hoefde je dat ook niet. Dan was het bijvoorbeeld GetUsersList of iets dergelijks. Daar komt bij dat als je muis op de 'var' of method naam houd je kan zien wat het terug geeft..Gertjan. schreef op donderdag 13 oktober 2011 @ 08:03:
[...]
Of je altijd het returntype in je functienaam moet gebruiken is ook iets wat aan smaak onderhevig is en waar volgens mij ook diverse discussies over gevoerd kunnen worden. Kijk een functie als GetUser() zal allicht een user teruggeven, maar een functie GetUsers(), tja die geeft Users terug, maar hoe?
Een functie als GetUsers kan een list, array of andere verzameling teruggeven. Hij kan zelfs een custom object teruggeven.
Als ik wil weten wat voor type een bepaalde variabele is ben ik gewend om links van de variabele naam te kjken naar de definitie. Als ik dan een var tegenkom moet ik dus even verder zoeken. Misschien een kwestie van gewenning, maar ik ben er geen fan van
Ja dat kan. Cursor op die var -> alt+enter en dan staat het er.Gertjan. schreef op donderdag 13 oktober 2011 @ 08:03:
Met al die mooie autocompletes in de IDE is het "extra typen" ook geen argument meerZou resharper het ook andersom kunnen doen? Dus var's omzetten in "echte" types?
Refactor argument gaat hier ook niet helemaal op. Resharper geeft netjes aan als je een method refactored dat er dingen zijn veranderd en vaak ook nog waar het dan fout gaat
[ Voor 12% gewijzigd door Rutix op 13-10-2011 08:30 ]
Nothing to see here!
Als ik een var zou gebruiken zou ik toch ook enige kennis van het return object moeten hebbenRutix schreef op donderdag 13 oktober 2011 @ 08:26:
Voordat je GetUsers gaat gebruiken moet je toch ook eerst kijken wat het nou terug geeft?
Mijn probleem met var zit meer in het "teruglezen". Zodra ik code schrijf weet ik meestal wat mijn variabele voor type is, ik heb hem tenslotte aangemaakt en heb een bepaald doel met dat ding voor ogen. Echter wanneer ik code van enkele maanden oud terug lees (of van een andere developer) kan een var als ruis werken.
Dat zelfde heb ik ook bij nested for lusjes. Tijdens het schrijven zijn int i, j en k duidelijk, maar lees je het later terug dan is het meestal toch wel:
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Leuk, een topic van de GoT begraafplaats opgravenD-Raven schreef op donderdag 13 oktober 2011 @ 08:42:
Gaan we nou echt _weer_ die var discussie hebbendoe dat lekker in het var-ranting topic
\[C#][discussie] Lekker veel var gebruiken?
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Als ik zou lezen: var users = GetUsersList(); dan denk ik al van "Hé! Dat is een lijst met users!".Gertjan. schreef op donderdag 13 oktober 2011 @ 08:30:
[...]
Als ik een var zou gebruiken zou ik toch ook enige kennis van het return object moeten hebbenAnders weet ik later nog niet wat ik er mee kan
Mijn probleem met var zit meer in het "teruglezen". Zodra ik code schrijf weet ik meestal wat mijn variabele voor type is, ik heb hem tenslotte aangemaakt en heb een bepaald doel met dat ding voor ogen. Echter wanneer ik code van enkele maanden oud terug lees (of van een andere developer) kan een var als ruis werken.
Dat zelfde heb ik ook bij nested for lusjes. Tijdens het schrijven zijn int i, j en k duidelijk, maar lees je het later terug dan is het meestal toch wel:![]()
Hier een voorbeeld die al op eerdere blogs is gebruikt.
1
2
3
4
| var procs = from p in ServiceController.GetServices() where p.Status == ServiceControllerStatus.Running select p; procs.ToList().ForEach(p=> Console.WriteLine(p.ServiceName)); |
procs is zeker een IEnumberable maar dat boeit helemaal niet. Wat mij zou boeien is dat ik weet dat het procs een list is en dat de items een property ServiceName hebben.
Ik vind deze comment wel een mooie:
The underlying type is important to the compiler, but the people that have to read code aren’t compilers right?
Nothing to see here!
Dit probleem heb je ook in Haskell.eamelink schreef op donderdag 13 oktober 2011 @ 08:19:
[...]
Maar stel nou dát je inderdaad die methode refactored en je geen Something meer terugkrijgt, dan gaat er toch iets breken in deze methode. En het is dan niet meteen duidelijk wat er mis gaat, want op line twee stop je je ding in een var, en als je hem pas op regel elf gebruikt en er een methode van Something op wil aanroepen, krijg je daar je fout.
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Sterker nog, ik schrijf dergelijke methodes tegenwoordig vaak zo:
1
2
3
4
5
6
7
8
9
| public IEnumerable<User> GetUsers() { var users = Dal.GetUsers(); foreach(var user in users) { yield return ConvertDalToUser(user); } } |
We are shaping the future
En toen wilde je weten hoeveel items erin zaten... Ehm was dat nou Count of LengthAlex) schreef op donderdag 13 oktober 2011 @ 09:02:
Mij maakt het niet uit bij GetUsers of ik nou een List, Array of zelfs iets anders terugkrijg. Zolang het maar IEnumerable implementeert zal het me verder een rotzorg zijn.
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Linq's extensie .Count() werkt op beide.Gertjan. schreef op donderdag 13 oktober 2011 @ 09:06:
[...]
En toen wilde je weten hoeveel items erin zaten... Ehm was dat nou Count of LengthTja dan moet je wel weten of het een List of Array is
In jouw geval is het inderdaad niet nodig, maar zodra je ook zaken gaat toevoegen is het zeker nuttig om te weten of je een lijst of array hebt
Hoogie2004 schreef op donderdag 13 oktober 2011 @ 09:07:
[...]
Linq's extensie .Count() werkt op beide
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.

Overigens geen idee of het veel scheelt qua performance tussen Linq's Count() en de standaard count op lists/arrays
MSDN: Enumerable.Count Method (System.Linq).Gertjan. schreef op donderdag 13 oktober 2011 @ 09:06:
[...]
En toen wilde je weten hoeveel items erin zaten... Ehm was dat nou Count of LengthTja dan moet je wel weten of het een List of Array is
Ok, bij toevoegen is het inderdaad een ander verhaal. Daarvoor heb ik altijd IList<T>'s of ICollection<T>'s. Maar veel operaties hebben alleen maar te maken met retrievalIn jouw geval is het inderdaad niet nodig, maar zodra je ook zaken gaat toevoegen is het zeker nuttig om te weten of je een lijst of array hebt
We are shaping the future
Waarom nietAlex) schreef op donderdag 13 oktober 2011 @ 09:02:
Mij maakt het niet uit bij GetUsers of ik nou een List, Array of zelfs iets anders terugkrijg. Zolang het maar IEnumerable<T> implementeert zal het me verder een rotzorg zijn.
Sterker nog, ik schrijf dergelijke methodes tegenwoordig vaak zo:
C#:
1 2 3 4 5 6 7 8 9 public IEnumerable<User> GetUsers() { var users = Dal.GetUsers(); foreach(var user in users) { yield return ConvertDalToUser(user); } }
1
2
3
4
5
| public IEnumerable<User> GetUsers() { return from user in Dal.GetUsers() select ConvertDalToUser(user); } |
of
1
2
3
4
| public IEnumerable<User> GetUsers() { return Dal.GetUsers().Select(ConvertDalToUser); } |
?
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Jeeej weer iemand die zich gewonnen geeft \o/. Ben laatste tijd wel on de roll kwa resharper
Nothing to see here!
Daar is geen reden voor eigenlijk, gewoon gewenningRayNbow schreef op donderdag 13 oktober 2011 @ 09:15:
[...]
Waarom niet
C#:
1 2 3 4 5 public IEnumerable<User> GetUsers() { return from user in Dal.GetUsers() select ConvertDalToUser(user); }
of
C#:
1 2 3 4 public IEnumerable<User> GetUsers() { return Dal.GetUsers().Select(ConvertDalToUser); }
?
ReSharper stelt wel vaak voor om mijn code te rewriten naar wat jij voorstelt
We are shaping the future
Bijzonder stukje code.... heb wel eens de yield langs zien komen, maar nooit echt bekeken wat dit doet....[b]Hoogie2004 schreef op donderdag 13 oktober 2011 @ 09:11:
C#:
1 2 3 4 5 6 7 8 9 public IEnumerable GetUsers() { var users = Dal.GetUsers(); foreach(var user in users) { yield return ConvertDalToUser(user); } }
Klopt het dat de yield return de IEnumerable vult? Dit zou in ieder geval het aanmaken van een list en het toevoegen daaraan overbodig maken...
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
.Gertjan. schreef op donderdag 13 oktober 2011 @ 09:18:
[...]
Bijzonder stukje code.... heb wel eens de yield langs zien komen, maar nooit echt bekeken wat dit doet....
Klopt het dat de yield return de IEnumerable vult? Dit zou in ieder geval het aanmaken van een list en het toevoegen daaraan overbodig maken...
enThe yield keyword signals to the compiler that the method in which it appears is an iterator block. The compiler generates a class to implement the behavior that is expressed in the iterator block. In the iterator block, the yield keyword is used together with the return keyword to provide a value to the enumerator object. This is the value that is returned, for example, in each loop of a foreach statement. The yield keyword is also used with break to signal the end of iteration.
In a yield return statement, expression is evaluated and returned as a value to the enumerator object; expression has to be implicitly convertible to the yield type of the iterator.
[ Voor 11% gewijzigd door Rutix op 13-10-2011 09:21 ]
Nothing to see here!
Net als het stukje:
1
2
3
4
| public IEnumerable<User> GetUsers() { return Dal.GetUsers().Select(ConvertDalToUser); } |
Ik zit echt te weinig in .NET... Dit zijn mooie dingetjes die ik vaak zelf probeer op te lossen met for/while/etc... Type mezelf een RSI terwijl het dus makkelijker kan
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Resharper geeft gewoon aan dat je het daarin kunt maken.Gertjan. schreef op donderdag 13 oktober 2011 @ 09:29:
Potverdorie, dat mooi
Net als het stukje:
C#:
1 2 3 4 public IEnumerable<User> GetUsers() { return Dal.GetUsers().Select(ConvertDalToUser); }
Ik zit echt te weinig in .NET... Dit zijn mooie dingetjes die ik vaak zelf probeer op te lossen met for/while/etc... Type mezelf een RSI terwijl het dus makkelijker kan
Jemig lijkt wel of ik reclame maak voor resharper ofzo :<
Nothing to see here!
Sta je dan met je i5
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.
Oh dat valt nog mee, dan heb je misschien nog de indruk dat het niet op te lossen is. Vervelender is als een van de reacties van de vrager is met de mededeling: "Never mind, already fixed it"OkkE schreef op donderdag 13 oktober 2011 @ 09:46:
Zo irritant altijd, heb je een vraag; na lang zoeken vind je dan eindelijk iemand anders met het zelfde probleem; alleen maar reacties van andere met het zelfde, niemand met een oplossing.
Y U NO SHARE YOUR SOLUTION

The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Mwa, da's eerder een symptoom van een bracque / inconsistente API dan van het gebruik van var..Gertjan. schreef op donderdag 13 oktober 2011 @ 09:06:
[...]
En toen wilde je weten hoeveel items erin zaten... Ehm was dat nou Count of LengthTja dan moet je wel weten of het een List of Array is
In jouw geval is het inderdaad niet nodig, maar zodra je ook zaken gaat toevoegen is het zeker nuttig om te weten of je een lijst of array hebt
Ik heb er iig geen moeite mee dat mijn vars / vals (in Scala) geen type erbij hebben staan - sterker nog, de enige keren dat ik moet kijken wat iets teruggeeft is als ik een Java API aanroep (aangezien dat een Java list ipv een Scala list teruggeeft. Nu zijn die twee wel door elkaar heen te gebruiken natuurlijk).
* YopY verder in Objective-C prutsen gaat met 'top secret' project
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.