Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

De Devschuur Coffee Corner - Iteratie ⓬ Vorige deelOverzicht

Pagina: 1 2 3 ... 13
Acties:

  • downtime
  • Registratie: januari 2000
  • Niet online

downtime

Everybody lies

Lethalis schreef op woensdag 19 september 2018 @ 10:55:
[...]

Dus in plaats van te zeggen dat iemand zijn ouders beter een abortus hadden kunnen plegen, gewoon melden dat je die kernel patch niet accepteert, omdat hij bijvoorbeeld teveel syscalls teweeg brengt.
Het probleem is dat er wat meer verwacht wordt van de communicatieskills van iemand die als boegbeeld van “Linux” gezien wordt. Hij moet een team bij elkaar (helpen) houden en zijn “product” op een goeie manier promoten. Er komt wat meer bij kijken dan af en toe een mailtje naar het handjevol mensen die aan de kernel contributen. Dat is de incrowd die in eigen kring wel wat autisme gewend zijn. Als die nu al aan de bel trekken dan is er wel wat aan de hand.

  • Hydra
  • Registratie: september 2000
  • Laatst online: 17:18
LOL: Do you need a blockchain
Geef eens een alternatief? Onderhoud configs liever in YAML dan in JSON of XML.

[Voor 15% gewijzigd door Hydra op 19-09-2018 16:47]

https://niels.nu


  • Sandor_Clegane
  • Registratie: januari 2012
  • Laatst online: 10:25

Sandor_Clegane

Fancy plans and pants to match

Hydra schreef op woensdag 19 september 2018 @ 16:46:
LOL: Do you need a blockchain


[...]


Geef eens een alternatief? Onderhoud configs liever in YAML dan in JSON of XML.
ini files.

  • .oisyn
  • Registratie: september 2000
  • Laatst online: 17:03

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

Hydra schreef op woensdag 19 september 2018 @ 21:15:


Dat jij 't op voorhand niks zou vinden is wel duidelijk hoor :(:)
Oh ik ben het grotendeel eens met de chart zelf, hoor. Het is ook niet bepaald origineel. Hij kan trouwens veel simpeler:
https://i.redd.it/sx8jqorpxkzz.jpg

In ander nieuws, AH gebruikt blockchain om sinaasappels te volgen |:(
https://www.ad.nl/economi...fles-jus-volgen~a7f7ad97/

[Voor 18% gewijzigd door .oisyn op 20-09-2018 10:19]

Call me cocky, but if there's an alien out there I can't kill I haven't met him and killed him yet. But I can't go in alone. That's why I'm ordering every available ship to report for duty. Anyone else should secure a weapon and fire wildly into the air.


  • Tjolk
  • Registratie: juni 2007
  • Laatst online: 03-04 16:52

Tjolk

FP ProMod
8)7

Ten eerste is de blockchain niet onlosmakelijk met iedere vezel c.q. druppel van de sinaasappel verbonden, dus er kan heel gemakkelijk het een en ander per ongeluk/expres verwisseld worden.
En ten tweede kun je nu uiteindelijk niets meer dan wat je met een barcode ook al zou kunnen: barcode X hoort bij boom Y.

Maar ja, dat is vast niet hip genoeg ofzo :z

Tjolk is lekker. overal en altijd.


  • DevWouter
  • Registratie: februari 2016
  • Laatst online: 16:12
Antrax schreef op donderdag 20 september 2018 @ 11:07:
[...]

Zijn er echt hippies die de zuurtegraad van hun sinaasappels willen weten. :/
Nee, maar tijdens de verscheping (een reis van die 2 maanden kan duren) verandert de kwaliteit van de sinaasappels en dus worden sinaasappels bedoeld voor de verkoop heringedeeld om er sap van te maken. Sommige sinaasappels gaan omhoog in kwaliteit omdat ze rijper worden terwijl andere juist "vlekjes" ontwikkelen die kopers "vies" vinden.

Overigens twijfel ik of dit echt een blockchain is. Wat ze beschrijven klinkt bij mij als event sourcing.

Misschien dat er een AH-developer is die hier met een AH-momentje kan inspringen? Dat zou ik best AHrdig vinden. :+

We doen niet grappig over grappen, grappen maken is bloedserieus werk


  • bwerg
  • Registratie: januari 2009
  • Niet online

bwerg

Internettrol

Sinaasappels, jeetje. Alleen maar sinaasappels. De AH loopt wel achter, zeg.

Je moet gewoon het betalingsverkeer met klanten via de blockchain doen, natuurlijk, zoals het hoort. Dan kan iedereen je betalingsverkeer controleren omdat iedereen je blockchain kan inzien. Dat is ook privacyvriendelijker, als je blockchain ten minste afschermt, zodat niet iedereen je blockchain kan inzien.
Reizigers maken daarbij gebruik van verschillende partijen die maatwerk bieden, met name voor het eerste en laatste stukje van hun reis. Dan gaat het bijvoorbeeld om een deelfiets of een taxi van Uber om van het station naar huis te komen. Met een uniform betaalsysteem worden deze opties veel aantrekkelijker.
Contant geld bestaat pas een paar duizend jaar...

[Voor 71% gewijzigd door bwerg op 20-09-2018 11:51]

Heeft geen speciale krachten en is daar erg boos over.


  • ThomasG
  • Registratie: juni 2006
  • Laatst online: 16:46
gekkie schreef op donderdag 20 september 2018 @ 12:46:
[...]

Zijn we wel van die bonnetjes vragers bij de supermarkt af van een of ander schimmig onderzoeksbureau (van de concurrent waarschijnlijk).
Voor het binnen gaan al,
"Meneer .. vraagt u wel om een bonnetje ?"
"Errrr say what ?"
"Ja ik wil graag uw bonnetje !"
En nagenoeg iedereen die het ook nog braaf doet ook.
Dat is een beetje hetzelfde als in de trein waar regelmatig mensen van Ipsos (oid.) rondlopen om kaartjes te controllere. Wat ze eigenlijk doen is statistieken verzamelen, begin station, reizen op abbonement/saldo, e.d. En iedereen geeft braaf hun ov-chipkaart af. (Want als je dat weigert komt de conducteur dreigen dat je anders een boete krijgt voor niet tonen van een geldig vervoersbewijs :F)

  • Koenvh
  • Registratie: december 2011
  • Laatst online: 17:04

Koenvh

Hier tekenen: ______

.oisyn schreef op donderdag 20 september 2018 @ 09:12:
[...]

Oh ik ben het grotendeel eens met de chart zelf, hoor. Het is ook niet bepaald origineel. Hij kan trouwens veel simpeler:
[Afbeelding]

In ander nieuws, AH gebruikt blockchain om sinaasappels te volgen |:(
https://www.ad.nl/economi...fles-jus-volgen~a7f7ad97/
Pfft.. Ik neem alleen jus van home grown artisan oranges van een lokale food artist. Na dat chemische spul van de AH heb ik echt een detox nodig /s :+

Waarom vandaag doen wat je morgen ook kunt uitstellen?


  • Sandor_Clegane
  • Registratie: januari 2012
  • Laatst online: 10:25

Sandor_Clegane

Fancy plans and pants to match

Lethalis schreef op vrijdag 21 september 2018 @ 23:45:
[...]

Ik werd hier vanavond nog een beetje gek van. Versie 2.1.4 van de SDK was bij mij geïnstalleerd op Fedora, maar ik kon niet netcoreapp2.1 targetten.

Pas toen ik 2.1 installeerde, wat dus 2.1.402 is, mocht ik netcoreapp2.1 targetten. Dit omdat je minimaal versie 2.1.300 nodig hebt om netcoreapp2.1 te kunnen targetten.

Microsoft en versienummers 8)7 Je verwacht dat alles vanaf 2.1.0 genoeg zou moeten zijn...

Nu ik overigens meer met Kotlin heb gespeeld, voelt C# inferieur... Ga binnenkort toch ook eens echt iets met F# proberen te bouwen.
Ik had hetzelfde en wat blijkt, 2.1 is een verzamelnaam voor meerdere versies maar vanaf 2.1.300 is het versie 2.1 die je in veel documentatie tegenkomt. Echt he? Hoe krijg je het voor elkaar.

En .Net was altijd redelijk overzichtelijk.

  • RobertMe
  • Registratie: maart 2009
  • Laatst online: 16:38
ThomasG schreef op maandag 24 september 2018 @ 09:42:
[...]
Door het configuratie bestand buiten de publieke webroot te zetten, is de applicatie niet ineens veilig. Bij veel applicaties wordt het wachtwoord namelijk niet uit het geheugen gehaalt nadat er verbinding is gemaakt met bijvoorbeeld de database. Dan is het in principe gewoon uit te lezen (weliswaar niet geheel eenvoudig), totdat bijvoorbeeld de garbage collector zijn werk heeft gedaan. Daarom altijd het geheugen (bijv. de variable) waarin o.a. het wachtwoord stond explicit leegmaken wanneer het niet meer nodig is. En niet alleen bij wachtwoorden uit configuratie bestanden, maar ook op login pagina's, e.d.
Jij hebt het over "hacken" om stukjes geheugen/variabelen uit te lezen. Anderen hier hadden het over het simpelweg openen van http://example.com/config.yaml waar dan plaintext het wachtwoord in staat :P

Door alle code, en vooral de configuratie bestanden, buiten de webroot te plaatsen weet je in ieder geval zeker dat het bestand nooit opgevraagd kan worden en de inhoud dus ook niet zichtbaar kan worden.

  • DevWouter
  • Registratie: februari 2016
  • Laatst online: 16:12
@RobertMe en @ThomasG, waarom configureer jullie de webserver niet zodat dit afgevangen wordt door request-filtering? Lijkt me een stuk simpeler en een stuk veiliger dan proberen je configuratie bestanden te verbergen.

We doen niet grappig over grappen, grappen maken is bloedserieus werk


  • mcDavid
  • Registratie: april 2008
  • Laatst online: 17:16
Ik heb CMS'en meegemaakt die ieder PHP-bestand begonnen met `if (!isset($some_session_var)) {exit;}` en in alle directories een lege index.html file hadden, om te voorkomen dat er informatie zou lekken.

Behalve dat dat natuurlijk een hoop onnodige troep geeft, is op die manier een foutje ook snel gemaakt. Het maakt gewoon geen sense om wat dan ook in een publieke webdir te zetten als het niet direct publiek toegankelijk dient te zijn. En het is eigenlijk bizar dat we hier een naam voor zouden moeten hebben, het zou gewoon common sense moeten zijn.

Waarschijnlijk is het ooit in de mode geraakt dankzij brakke webhosting pakketjes waarbij je alleen naar de webroot kon uploaden, en is men daarna vergeten er verder over na te denken (waarom zou je immers als het zo ook werkt?)

en @ThomasG @RobertMe Niets is inherent veilig, informatiebeveiliging is altijd het toepassen van meerdere lagen. Dat één zo'n laag geen garantie geeft voor 100% veiligheid betekent niet dat je die laag daarom maar weg moet laten.

zcflevo.nl


  • Harrie_
  • Registratie: juli 2003
  • Niet online

Harrie_

▫️ 🔴 🔴 🔴 🔴 🔴 ▫️

DevWouter schreef op maandag 24 september 2018 @ 10:25:
@RobertMe en @ThomasG, waarom configureer jullie de webserver niet zodat dit afgevangen wordt door request-filtering? Lijkt me een stuk simpeler en een stuk veiliger dan proberen je configuratie bestanden te verbergen.
mcDavid schreef op maandag 24 september 2018 @ 10:33:
Waarschijnlijk is het ooit in de mode geraakt dankzij brakke webhosting pakketjes waarbij je alleen naar de webroot kon uploaden, en is men daarna vergeten er verder over na te denken (waarom zou je immers als het zo ook werkt?)
Ik heb helaas nog steeds veel te maken met hostingproviders die geen toegang geven buiten de webroot. Ik probeer dan door de hostingprovider te benaderen het voor elkaar te krijgen dat ik een config bestand buiten de webroot geplaatst krijg. Verder (zoals Wouter hierboven aangeeft) met een .htaccess afdwingen dat alle requests via de index.php in de webroot lopen; uitzondering is dan een directory 'media' oid waar alle img's, css, js inzit.

  • mcDavid
  • Registratie: april 2008
  • Laatst online: 17:16
Ik zou in zo'n geval gewoon een andere hostingprovider opzoeken :+

zcflevo.nl


  • wackmaniac
  • Registratie: februari 2004
  • Laatst online: 03-04 09:33
In het leeuwendeel van de gevallen ben ik het met je eens @Harrie_, maar je moet in mijn ogen ook ergens een lijn trekken. En voor mij persoonlijk is "vast zitten" aan een hostingpartij waarbij je alleen in de webroot kan peuteren al een paar stappen voorbij die lijn. Maar dat is persoonlijk en daarom dat ik ook niet graag opmerkingen als mijn eerdere doe, maar soms meen ik dat het nodig is her en der wat common sense proberen te brengen.

Read the code, write the code, be the code!


  • Hydra
  • Registratie: september 2000
  • Laatst online: 17:18
Harrie_ schreef op maandag 24 september 2018 @ 13:43:
Nee klopt. Maar zoals ik ook al zeg: iedere casus is anders. In een van mijn eerdere posts gaf ik al aan dat je soms 'buiten de gebaande wegen om' een config bestand buiten de webroot kunt zetten i.s.m. zo'n hostingprovider. Als je dan vervolgens maatregelen instelt dat individuele bestanden niet zomaar te benaderen/executen zijn dan zit de boel een heel eind dicht.
Totdat 'ie door een update of een menselijke fout ofzo weer openstaat.

Het hele programmeermodel van 'files' die je benaderd vanuit een browser request is volledig outdated m.i. Je wil niet dat er 'plain source' files ergens in je web root staat die, in het geval van fuckups, danwel geoutput worden danwel uitgevoerd worden. Een 'normale' web applicatie heeft geen enkele notie van de onderliggende sourcefiles.

https://niels.nu


  • Tjolk
  • Registratie: juni 2007
  • Laatst online: 03-04 16:52

Tjolk

FP ProMod
Met @Harrie_ hier. Het maakt nogal uit wat voor site je aan het bouwen bent. Het digitale visitekaartje met de openingstijden voor Klaas Koekenbakker uit Drollendorp waarbij het grootste risico is dat Simon Scriptkiddie er een fotootje van zijn eigen hard gebakken baguette erop zet heeft nou eenmaal een andere kosten/baten analyse dan een applicatie die vol staat met bedrijfs- danwel persoonsgegevens. Beiden willen bedient worden en beiden hebben een andere manier van aanvliegen.

Ter vergelijking: mijn achtertuin en schuur kun je binnenkomen met een leuke schroevendraaier. Grootste risico is dat er een paar fietsen gejat worden die gedekt zijn door de verzekering. Mijn huis daarentegen heeft sloten met keurmerk en certificaat en een lamp naast de deur die reageert op beweging; een steen door de raam is de meest reële point of entry. Immers zijn daar meer dingen met persoonlijke waarde te vinden, slapen wijzelf en geeft het nu eenmaal een hoop meer troep als er ingebroken wordt.

Elk gebouw met stenen en een deur domweg op dezelfde manier beveiligen met bijkomende kosten, puur omdat het de best denkbare beveiliging is, is gewoon dom. En datzelfde geldt voor elke via de browser benaderbare domeinnaam. Dat het toevallig op PHP draait wil niet zeggen dat het dezelfde waarde, bedreigingen en oplossingen nodig heeft.

Tjolk is lekker. overal en altijd.


  • Tjolk
  • Registratie: juni 2007
  • Laatst online: 03-04 16:52

Tjolk

FP ProMod
Die kans is nihil, aangezien de schuur meerdere keren per dag gebruikt wordt en ook dermate klein is dat het direct zou opvallen.

En ja, natuurlijk kun je allerlei scenario's bedenken dat dit niet zomaar zou opvallen op een websitetje dat onderdeel wordt van een botnet o.i.d., echter zie ik dat met een simpel CMS gewoon niet zo snel gebeuren. Tuurlijk wel als je er Wordpress of Joomla oid tegenaan gooit, maar dan ben je ook gewoon niet capabel bezig voor zo'n vrijwel statisch gebeuren. Teveel points of entry en sowieso veel teveel code en functionaliteit die niet nodig is voor je doel. Je maakt dan enkel een stukje waar contactgegevens en openingstijden worden aangepast en ergens waar de aanbiedingen en/of nieuws geplaatst kunnen worden. Dat achter een goede login en vanuit de front-end ditch je alle requests die niet simpelweg een pagina opvragen.

Je zorgt er dus effectief voor dat er maar van 1 ingang CUD acties uitgevoerd kunnen worden. Die ingang voorzie je van een slot in de vorm van een degelijke inlog (.htaccess desnoods) etc en ik wens je veel succes met je XTC labje.
Mocht iemand dat alsnog voor elkaar krijgen dan heb je als het goed is een host die doorheeft dat er opvallende activiteit plaatsvindt.

Nogmaals: het is een kwestie van afwegen. Als je voor een bepaald project niet de ideale wereld voor je hebt en de omstandigheden dat ook niet toelaten resten je 2 opties: accepteren met bepaalde voorbehouden of weglopen. Als je direct zonder enig onderzoek maar meteen wegloopt vind ik dat ook een zwaktebod, zeker als het feitelijk om een projectje van niets gaat.

Tjolk is lekker. overal en altijd.


  • Harrie_
  • Registratie: juli 2003
  • Niet online

Harrie_

▫️ 🔴 🔴 🔴 🔴 🔴 ▫️

Tjolk schreef op maandag 24 september 2018 @ 15:05:
Nogmaals: het is een kwestie van afwegen. Als je voor een bepaald project niet de ideale wereld voor je hebt en de omstandigheden dat ook niet toelaten resten je 2 opties: accepteren met bepaalde voorbehouden of weglopen. Als je direct zonder enig onderzoek maar meteen wegloopt vind ik dat ook een zwaktebod, zeker als het feitelijk om een projectje van niets gaat.
Dit dus. We kunnen er natuurlijk allerlei metaforen tegenaan blijven gooien en dan krijgen we weer allerlei metaforen terug (XTC-lab in de schuur). Feit is gewoon dat iedere situatie weer anders is en dat je in die specifieke situatie kijkt naar een passende oplossing en daarbij uiteraard veiligheid in het oog houdt. En veiligheid houdt niet in dat je een standaard set rules volgt. Het is juist de truc om een succesvolle risico-analyse te maken waarbij je de oplossing afzet tegen de context. En op het moment dat de server ingezet kan worden in een botnet is dat toch ècht een probleem dat code-overstijgend is en bij de hostingprovider ligt en niet bij de dev van een website/webapplicatie.

Verder gewoon common sense, evt. risico's met elkaar bespreken en dus ook verantwoordelijkheid bij de klant leggen. En inderdaad: als er onoverkomelijke risico's zijn waar de klant geen concessies in wil doen dan houdt het gewoon op, dat is niet meer dan logisch. Maar we moeten het ook niet spannender maken dan het is. Het kan tenslotte altijd beter en veiliger, vraag is inderdaad (zoals @wackmaniac) zegt waar je de lijn trekt. En wáár je die lijn trekt is toch echt situationeel afhankelijk. Sommige veiligheidsmaatregelen zijn in de ene situatie een must-have en in een andere situatie een should-have en weer ergens anders een like-to-have...

  • Tjolk
  • Registratie: juni 2007
  • Laatst online: 03-04 16:52

Tjolk

FP ProMod
Herinnert u zich deze nog?

Inmiddels met die kerel gebabbeld. Een paar quotes:
Oh, zit er geen inlog meer op dan? Ik dacht dat je gewoon het jaartal moest intypen
Voor backups heb ik natuurlijk alle code, en jullie hebben toch alles wat je erop hebt gezet?
Ja, ik heb wel eens gekeken in het adminpanel, maar dat snap ik niet helemaal. Je kunt dan als backup iets van een gtz bestand downloaden (Tjolk: je bedoelt tgz?) - ja die - maar ik weet niet wat ik daarmee moet
CKEditor? Nee, nooit van gehoord. TinyMCE? Wat is dat? Ja ik gebruik de laatste versie van Innova. Daar kan ik echter niets meer aan veranderen want die wordt nu een jaar of vijf niet meer onderhouden
Ja ik heb er wel bootstrap opzitten maar dat werkt niet helemaal lekker met de rest van de layout dus meestal gebruik ik maar gewoon een tabel dan weet ik wat ik kan verwachten
And the list goes on and on and on and on....


Dat soort mensen is de reden dat freelance webdevelopers dus af en toe een slechte naam hebben. De enige reden dat ik hem met een A4 vol huiswerk nog een kans geef is dat hij het al jaren gratis doet en ook de hosting gratis regelt. En dat het grootste risico wat we lopen is dat we het ooit eens opnieuw moeten opzetten. Maar man, man man... :X

Tjolk is lekker. overal en altijd.


  • Tjolk
  • Registratie: juni 2007
  • Laatst online: 03-04 16:52

Tjolk

FP ProMod
Dat is mijn lange termijn strategie ook wel. Maar in een dorp waar je elkaar nogal snel weer tegenkomt en er veel vriendendiensten geleverd worden (dit is ook al een 6 jaar durende vriendendienst) moet je niet als een olifant door de porseleinkast gaan denderen. Zeker niet als nieuwkomer.

Hij heeft ook echt wel intenties om het allemaal goed te doen en heeft dezelfde avond nog zijn inlogmethode hersteld waarbij ik een sterker wachtwoord heb afgedwongen. Niet zoals ik het graag zou zien, maar het is beter dan het open-deuren beleid wat er voorheen was.
Verder heeft hij al mijn adviezen ter harte genomen en beloofd ermee aan de slag te gaan. Die kans moet ik hem geven vind ik. Zoals gezegd, het afbreukrisico is beperkt dus ik vind het niet erg om er wat tijd in te steken om alle relaties goed te houden. Niet zozeer tussen hem en mij, maar ook met de rest van de vereniging. Iets met stroop en azijn.

Tjolk is lekker. overal en altijd.


  • Tjolk
  • Registratie: juni 2007
  • Laatst online: 03-04 16:52

Tjolk

FP ProMod
@ThomasG ik denk dat je daarin gelijk hebt inderdaad. Maar ik ga hem niet helemaal opleiden natuurlijk, ik beperk mijn focus tot onze eigen site. En als dat niet goed komt, even goede vrienden maar dan zoeken we een andere oplossing.

@chaorick Triple monitor lijkt mij geen meerwaarde, althans niet voor mijn setup. Ik heb nu 2x 25" Ultrasharp. Met goed window management mis ik daar niets aan. Sterker nog; ik denk dat ik met nog een derde monitor een te brede werkomgeving zou hebben voor het prettige.
Of curved standaard is geworden betwijfel ik. Ik heb het wel eens gezien, maar het gros wat ik tegenkom is toch dual monitor; een enkeling heeft er 3 of nog meer (maar dat is vaak een specialistische niche).

Tjolk is lekker. overal en altijd.


  • Hydra
  • Registratie: september 2000
  • Laatst online: 17:18
@Tjolk je moet het maar willen. Ga ik als vrijwilligerswerk liever pannekoeken bakken voor een lokaal dorpsfeest. Ik zou het niet kunnen :)

https://niels.nu


  • Sandor_Clegane
  • Registratie: januari 2012
  • Laatst online: 10:25

Sandor_Clegane

Fancy plans and pants to match

Uit principe gebruik ik Edge niet. Zelfde reden dat Chrome er ook niet in komt. Fool me once enzo.

  • wackmaniac
  • Registratie: februari 2004
  • Laatst online: 03-04 09:33
XWB schreef op woensdag 26 september 2018 @ 12:13:
[...]

De engine van Edge is oké, maar ook niet meer dan dat. Nu heeft geen enkele browser volledige HTML5 en CSS3 ondersteuning, maar Edge loopt op dit gebied net achter Firefox aan, en een flink stuk achter Chrome.
Heeft dat er niet meer mee te maken dat Google zaken inbouwt alvorens deze als standaard zijn geaccepteerd en daarom voor lijkt te lopen op de rest?

Read the code, write the code, be the code!


  • Mugwump
  • Registratie: mei 2017
  • Laatst online: 12:29
ThomasG schreef op woensdag 26 september 2018 @ 10:39:
[...]
En toch doet Edge het op gebied van resource gebruik en privacy het beter dan Chrome :') Ook doet Edge het qua render niet slechter dan Firefox, Chrome, e.d.
Ja, maar er is één ding wat ze bij Microsoft nooit lijken te snappen en dat is UX. Nog afgezien van het feit dat het ze driehondermiljoen jaar heeft gekost voordat ze eindelijk tabs introduceren, is Edge toch altijd quirky. Als je zoals ik snel na opstarten snel een url in de adresbalk plakt, dan wordt dat bijvoorbeeld gelijk daarna weer teruggezet naar de startpagina die Edge aan het laden was. Klein detail, maar een gigantische bron van irritatie in mijn geval.
User interfaces van Microsoft zijn altijd net even niet intuïtief.

"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim"


  • bwerg
  • Registratie: januari 2009
  • Niet online

bwerg

Internettrol

Mugwump schreef op woensdag 26 september 2018 @ 13:31:
Nog afgezien van het feit dat het ze driehondermiljoen jaar heeft gekost voordat ze eindelijk tabs introduceren
In de tijd dat ik op tabs in file explorer zit te wachten, is de GUI van windows vele malen veranderd (aero, metro, ik weet niet hoe het nu heet), maar steeds als ik 3 windows naast elkaar zet voel ik me weer in het jaar 2000. :P

Heeft geen speciale krachten en is daar erg boos over.


  • gekkie
  • Registratie: april 2000
  • Laatst online: 15:16
Alex) schreef op woensdag 26 september 2018 @ 23:03:
[...]
En dan zit jij met popcorn de commentswar in het PR door te lezen? :P
Doe maar een lekker pintje, ben niet zo van de popcorn :9.
En dan nog te bedenken dat ik een donker gesminkte about:white heb ook :X.
(stelt het moment van die enorme bak met licht toch nog even uit van het browser openen naar het openen van de gemiddelde site (en scheelt wel voor m'n eigen privé meuk die doorgaans donker qua thema is.))

  • Harrie_
  • Registratie: juli 2003
  • Niet online

Harrie_

▫️ 🔴 🔴 🔴 🔴 🔴 ▫️

Dat klopt niet
Je hebt het mis
Dat is niet waar
Skyaero schreef op vrijdag 28 september 2018 @ 12:21:
[...]
Of je lult even niet uit je nek.
Of je reageert even gewoon normaal.

Edit:
Ik had dus mis inderdaad maar zit wel een kern van waarheid in want dat ging dus om openbare SharePoint-sites en daar heb ik vroeger zat mee te maken gehad.

[Voor 34% gewijzigd door Harrie_ op 28-09-2018 13:38]


  • Hydra
  • Registratie: september 2000
  • Laatst online: 17:18
EddoH schreef op zaterdag 29 september 2018 @ 12:37:
Wat een slimme mensjes bij dat ING clubje dan zeg. Had iedereen maar het voorrecht om voor zo'n fantastisch bedrijf te mogen werken :+
Tja. Zo sla je een interessante discussie wel compleet dood natuurlijk. Wat zijn volgens jou dan precies de voordelen van het zo dichttimmeren van eigen machines? Want de nadelen zijn duidelijk. Waarom zou een developer niet de tools mogen gebruiken die hem het meest productief maken? Hoe is jullie policy ten opzichte van bijvoorbeeld Spotify?

Aan andere kant; welke problemen voorkom je hierdoor? Je beschermt niet tegen virussen e.d.; da's normaliter het doel niet. Wat zou men volgens jou precies kunnen installeren dat schade doet? Als het puur gaat om je werk; dat is natuurlijk altijd central gebackupt. Heck, al m'n persoonlijke trash projectjes staan in bitbucket danwel githuhub. Al m'n documenten staan op google drive. En 'n foto's staan op S3.

Ik zie dit wel vaker bij bedrijven, je krijgt een Windows laptop die volledig dichtgetimmerd is, en daar moet je het dan maar mee doen. En dan gaan ze bij ING mobiel bijvoorbeeld maar voor een nog ergere oplossing waarbij je het development werk via remote desktop op Linux doet, omdat men ook wel inzien dat die Windows laptops volkomen kut zijn. Maarja, policy.

Zogauw policies het doel voorbij schieten dan moeten ze m.i. herzien worden. Mijn ervaring is eigenlijk altijd dat er beter ontwikkeld wordt bij bedrijven waar ze hun talentvolle mensen zelf hun ding laten doen (met hulp/sturing) dan bij bedrijven waar een 'systeembeheer' clubje vooral als doel heeft die nare developers maar onder de duim te houden. Want dat is wel vaak waar het op neer komt. "Nee IntelliJ staat niet op onze lijst, tough luck" heb ik wel eens moeten horen.
ThomasG schreef op zaterdag 29 september 2018 @ 12:42:
Het niet hebben van root/admin rechten op je werkstation is als deeloper gewoon een groot nadeel. Daaruit maak ik op dat je dus ook geen keuze hebt over je eigen operating system. Je bent voor je werkzaamheden dus voor zo'n 50% afhankelijk van de systeembeheerders. Dat is voor mij, en waarschijnlijke vele andere, een onwerkbare situatie. Al is dat maar omdat de ontwikkelingen op gebied van de tools die je gebruikt sneller gaan dan dat een systeembeheerder bereid is te updaten.
Ja, ik doe het ook niet meer. Ik ontwikkel niet onder Windows, punt. Ik ontwikkel niet op een Java versie pre 8. Punt. Door dat soort eigen te stellen vooral scheid ik al een hoop kaf van koren wat opdrachten betreft.

[Voor 18% gewijzigd door Hydra op 29-09-2018 12:46]

https://niels.nu


  • EddoH
  • Registratie: maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Hydra schreef op zaterdag 29 september 2018 @ 16:12:
@EddoH Waarvoor gebruiken jullie docker dan precies? In zowel m'n huidige project als m'n vorige project packagen we services als docker containers die daarna in een K8s of ECS cluster landen. Maar dat gebeurt in de CI/CD pipeline, de meeste devs gebruiken docker zelf eigenlijk niet. Ik weer wel omdat ik nu de huidige versie van de pipeline gebouwd heb, maar de gemiddelde dev heeft 't niet nodig.
Exact hetzelfde als het voorbeeld wat je aangeeft. Maar ook om snel lokaal te prototypen en dan een aantal services direct de lucht in te kunnen sturen.
Het is hier nog een beetje aftasten welke problemen het echt voor ons oplost en waar we kunnen winnen in tests en CI. We hebben veel verschillende target platforms, en dan is Docker handig om de verschillende platforms te testen.

  • .oisyn
  • Registratie: september 2000
  • Laatst online: 17:03

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

Hydra schreef op zaterdag 29 september 2018 @ 15:30:
[...]


Misschien een idee @.oisyn weg te automatiseren? :P
Maar ik ben al een AI :P

Call me cocky, but if there's an alien out there I can't kill I haven't met him and killed him yet. But I can't go in alone. That's why I'm ordering every available ship to report for duty. Anyone else should secure a weapon and fire wildly into the air.


  • EddoH
  • Registratie: maart 2009
  • Niet online

EddoH

Backpfeifengesicht

.aisyn?

  • Merethil
  • Registratie: december 2008
  • Laatst online: 16:16
ThomasG schreef op maandag 1 oktober 2018 @ 09:20:
[...]
Dat kun je zelf testen. Open YouTube maar eens in Chrome en een willekeurige andere browser.
Net getest in Firefox 59 , Chrome 69, Internet Explorer 11 en Safari 11.1.2.
Alles op een Windows machine met i5 en 16 GB DDR3, en een SSD, behalve Safari:

Firefox: 5,1 seconden voor alles was ingeladen volgens Network tab
Chrome: 4,9 seconden voor alles was ingeladen volgens Network tab
Internet Explorer 11: 5,2 seconden voor alles was ingeladen volgens Network tab
Safari (Mac OS High Sierra op een MBP 15" 2017): 7 seconden voor alles was ingeladen volgens Network tab.

Ik zie niet bizar veel verschil imo... Heb alles in een incognito tab gedaan, meerdere malen geprobeerd, kwamen deze gemiddelden uit.
IE 11 kreeg inderdaad wel een oudere site, maar de bruikbaarheid van de website is gelijk voor zover ik kon zien.

[Voor 12% gewijzigd door Merethil op 01-10-2018 09:58]


  • kenneth
  • Registratie: september 2001
  • Niet online

kenneth

achter de duinen

wb9688 schreef op maandag 1 oktober 2018 @ 09:50:
[...]


Ze gebruiken expres een oude beta versie van een API, die dus alleen door Chrome wordt ondersteund (de andere browsers ondersteunen overigens wel de niet-beta versie).
Yup, Polymer.

Ik was een beetje verbaasd dat Google zo'n streek uithaalde, maar ook weer niet heel erg.

Ik gebruik Firefox al sinds 1.0 maar dat is een principekwestie. Snelheid vind ik ondergeschikt. Die Polymer-streek bewijst mijn gelijk maar weer. De browsermarkt heeft sterke concurrentie nodig zonder 'definitieve' winnaar zoals IE6 en nu schijnbaar Chrome ...

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • ThomasG
  • Registratie: juni 2006
  • Laatst online: 16:46
XWB schreef op maandag 1 oktober 2018 @ 11:34:
[...]


Dan gebruik je toch simpelweg Chrome geen Google producten, dan heb je dat probleem niet? >:)
FTFY }:O

  • XWB
  • Registratie: januari 2002
  • Niet online

XWB

Run

It takes two fools to argue.


  • kenneth
  • Registratie: september 2001
  • Niet online

kenneth

achter de duinen

Mugwump schreef op dinsdag 2 oktober 2018 @ 13:47:
[...]


Zo dramatisch is Utrecht - Delft toch ook weer niet?
Ik rijd de laatste weken elke dag over de A13 en dat stuk alleen al vind ik een reden om op zoek te gaan naar een scooter ipv een auto. Maar goed, hoe dramatisch/vervelend forenzen is verschilt erg per persoon. Ik beschouw reistijd als de ergste tijdverspilling van m'n dagelijks leven dus alles langer dan een kwartier fietsen zie ik al tegenop.
alienfruit schreef op dinsdag 2 oktober 2018 @ 14:09:
Maar goed, ik heb tegen de resource manager gezegd dat ik deze reiskosten niet kan betalen en zien hoe ze daar op reageren.

Verder mooie radiostilte van de baas kant over mijn vraag over mijn salaris al besproken is 🤣
Kijk je al met een schuin oog naar ander werk? Het lijkt me in deze situatie prettig om een batna te hebben om het gesprek wat steviger aan te gaan. Vind het erg merkwaardige gang van zaken. Vind jij het ook raar of is dit iets Angelsaksisch?

[Voor 38% gewijzigd door kenneth op 02-10-2018 14:13]

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • .oisyn
  • Registratie: september 2000
  • Laatst online: 17:03

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

Ik zit vooral op mijn werk om het gezinsleven te verwerken :+

Call me cocky, but if there's an alien out there I can't kill I haven't met him and killed him yet. But I can't go in alone. That's why I'm ordering every available ship to report for duty. Anyone else should secure a weapon and fire wildly into the air.


  • Matis
  • Registratie: januari 2007
  • Laatst online: 16:29

Matis

Rubber Rocket

.oisyn schreef op dinsdag 2 oktober 2018 @ 18:58:
Ik zit vooral op mijn werk om het gezinsleven te verwerken :+
Ja, van maandag tot en met vrijdag lekker bijkomen van het weekend :P

Edit; Woeps, dat had wel bij de vorige post gekund / gemoeten...

[Voor 14% gewijzigd door Matis op 02-10-2018 18:59]

If money talks then I'm a mime
If time is money then I'm out of time


  • gekkie
  • Registratie: april 2000
  • Laatst online: 15:16
Mugwump schreef op dinsdag 2 oktober 2018 @ 19:07:
[...]
Ik heb ook geen enkele moeite met een stukje forenzen. De klaagzang op de NS, veelal van mensen die zelf nooit met de trein gaan snap ik ook niet zo. Als je een rechtstreekse intercityverbinding hebt, dan is het echt heerlijk reizen en qua vertraging / uitval valt het reuze mee.
Ze hebben in m'n studententijd genoeg anti-reclame gemaakt om een leven lang op te kunnen teren.
Daarnaast als je eenmaal een auto hebt die er toch staat, dan vallen de meerkosten van die gewoon gebruiken ipv het OV ook wel mee, of zijn negatief (zeker als je wel moet overstappen dan wel een aan/af traject hebt met ander OV). Dus voor de binnenstad van Adam, prima, nagenoeg al het andere, doe de brommobiel maar.

  • gekkie
  • Registratie: april 2000
  • Laatst online: 15:16
Mugwump schreef op dinsdag 2 oktober 2018 @ 20:01:
[...]
Nou ja, ik woon in Utrecht pal naast het station. Dan zijn veel plekken in Amsterdam, Rotterdam, Den Haag, Amersfoort, Den Bosch en Eindhoven eigenlijk gewoon prima te doen met de trein.
Ik reis zakelijk bovendien gewoon eersteklas, dus dan kun je ook gewoon fatsoenlijk werken tijdens het reizen.
En eerlijk gezegd hoor ik op mijn huidige werkplek vaker "ik ben een half uur / uur later vanwege file" dan "ik ben een half uur / uur later vanwege problemen met de trein".
Als ik met het OV naar het station zou willen ben ik zo 20/30 minuten verder, sowieso maar een halfuurs-dienst at best (in dat half uur kan ik het overigens ook bijna lopend halen ...).
Daar meestal een matige aansluiting op de trein, is zo nog eens 10 minuten.
Dus ja als er goede verbinding zijn dan kan het prima opschieten, als die er niet zijn wordt het al gauw hopeloos.
In de stad hier doe ik het meestal op het fietsje (ook nog een beetje workout) en anders wordt het al gauw de auto, met uitzondering van centra grote steden met een fatsoenlijke verbinding en als dat het enige is waar ik heen moet, dan wegen moeite en parkeerkosten vaak niet op tegen OV.

  • RayNbow
  • Registratie: maart 2003
  • Laatst online: 16:25

RayNbow

Kirika <3

ThomasG schreef op dinsdag 2 oktober 2018 @ 12:56:
[...]
Dat mag ook wel, want in Waddinxveen zelf is weinig te beleven :+
https://pbs.twimg.com/media/DcX35v8WkAAQQdd.jpg:large
.oisyn schreef op dinsdag 2 oktober 2018 @ 14:25:
Geen idee waar het bedrijf ligt in Delft
Naast het Prinsenhof. :p


Niet dat ik het OV gebruik om naar Delft te gaan. Dat is vanuit W'veen een uur reistijd, terwijl het met de auto in een half uur te doen is.

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


  • Harrie_
  • Registratie: juli 2003
  • Niet online

Harrie_

▫️ 🔴 🔴 🔴 🔴 🔴 ▫️

mcDavid schreef op woensdag 3 oktober 2018 @ 09:53:
[...]
Dat is gewoon een recursive symlink lijkt me? Minstens zo bloedirritant, daar niet van :P
[...]
Het plaatje en de opmerking waren niet echt gerelateerd. Bij brakke directorystructuren denk ik al snel aan:

code:
1
2
3
4
5
6
7
8
9
10
 - Project X
 - Project X_2018-04-10
   - Def
   - Def2
   - DefFinal
   - DefFinalMaster
 - Temp
 - Final
 - Definitief
 - Definitief_v2


Dat soort shit :/

  • ThomasG
  • Registratie: juni 2006
  • Laatst online: 16:46
Harrie_ schreef op woensdag 3 oktober 2018 @ 10:05:
[...]


Het plaatje en de opmerking waren niet echt gerelateerd. Bij brakke directorystructuren denk ik al snel aan:

code:
1
2
3
4
5
6
7
8
9
10
 - Project X
 - Project X_2018-04-10
   - Def
   - Def2
   - DefFinal
   - DefFinalMaster
 - Temp
 - Final
 - Definitief
 - Definitief_v2


Dat soort shit :/
https://petapixel.com/assets/uploads/2015/07/psdrevisioning.jpg

  • mcDavid
  • Registratie: april 2008
  • Laatst online: 17:16
waarom stressen als je er 3 of 4 kunt missen en nog steeds eerder op je bestemming bent? :+

zcflevo.nl


  • Merethil
  • Registratie: december 2008
  • Laatst online: 16:16
TheNephilim schreef op woensdag 3 oktober 2018 @ 11:32:
Pffff, een XML-feed zonder XML-doctypes etc... het begint letterlijk met...


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<publicaties>
    <publicatie>
    <code>201812345</code>
    <status>
        <naam>Gepubliceerd</naam>
        <code>GEP</code>
    </status>
    <begindatum>2018-10-02 12:00:00</begindatum>
    <einddatum>2018-10-09 12:00:00</einddatum>
    <eenheden>
        <eenheid>
            <id>12345</id>
            [...]



Hoe lees je zoiets nou weer fatsoenlijk in :/

code:
1
2
var xmlMetDocType = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>" + xmlZonderDocType;
// ...Parse xmlMetDocType...



:+

  • .oisyn
  • Registratie: september 2000
  • Laatst online: 17:03

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

Alex) schreef op woensdag 3 oktober 2018 @ 19:08:
[...]

Doet me denken aan een codebase waar ik onlangs mee heb gewerkt, daar werd op die manier JSON gebouwd ;(
Don't get me started. Wij gebruiken bepaalde middleware (ik zal geen namen noemen) die ook wat json moet parsen. Die functies stonden bovenaan de performance profiles op de Xbox 360 destijds. We hadden gestripte sourcecode, dus konden wel debuggen maar niet recompilen.

De JSON werd dus geparsed naar losse objecten (je had dus een Number en een String en een Object, etc), maar elk van die objecten hadden naast de native waarde ook de json string-representatie. In plaats van dat ze die direct kopieerde uit de input-buffer, werd de string de hele tijd opnieuw opgebouwd met string concats.

Dus elke keer dat de parser een member van een object tegenkwam, dan voegde hij die member toe aan het Object wat hij aan het opbouwen was, en dus werd de string opnieuw opgebouwd. En alsof dat nog niet erg genoeg was, waren alle string appends van de vorm "Alloceer nieuwe buffer van N+M bytes, kopieer N bytes van de vorige string, kopieer M bytes voor de append, gooi oude buffer weg". Elke keer dus een volledig nieuwe alloc, ipv een buffer reserveren oid |:(

Call me cocky, but if there's an alien out there I can't kill I haven't met him and killed him yet. But I can't go in alone. That's why I'm ordering every available ship to report for duty. Anyone else should secure a weapon and fire wildly into the air.


  • RobIII
  • Registratie: december 2001
  • Laatst online: 15:51

RobIII

Admin Devschuur®

^ Romeinse 3 ja!

WindowsKey + .

https://tweakers.net/ext/f/wzyYPGIMps81TrnKzQqbtl1Y/full.gif

Ik ging altijd naar https://emojipedia.org om daar te copy/pasten :X |:(

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • Antrax
  • Registratie: april 2012
  • Laatst online: 15:05

Antrax

Pixelated '-')/

Topicstarter
RobIII schreef:
Ik ging altijd naar https://emojipedia.org om daar te copy/pasten :X |:(
Op de Mac is dat control + command + spatiebalk. Kwam ik ook pas laatst achter :+

.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


  • Scott
  • Registratie: december 2004
  • Laatst online: 08:25

Scott

Ik ben, dus ik tweak

Antrax schreef op donderdag 4 oktober 2018 @ 07:55:
[...]

Op de Mac is dat control + option + spatiebalk. Kwam ik ook pas laatst achter :+
Control + command + spatiebalk ;)

  • kenneth
  • Registratie: september 2001
  • Niet online

kenneth

achter de duinen

Werkt niet :{ Maar ik zie dat het in de Fall Creators Update is gekomen. Voordat anderen teleurgesteld raken :P

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • Lethalis
  • Registratie: april 2002
  • Niet online
Wat vinden jullie van railway oriented programming?

https://fsharpforfunandprofit.com/rop/

Het is met wat extension methods in C# redelijk na te bootsen:

C#:
1
2
3
4
5
6
using LanguageExt; // Functional library voor C#

ValidateRequest(request)
  .Bind(UpdateDb)
  .Bind(SendEmail)
  .Match(LogSuccess, LogError);


Waarbij elke functie een Either<L, R> teruggeeft. Met implicit cast operators kun je dan vrij eenvoudig een type van L of R teruggeven. Dus als een functiesignatuur Request -> Either<Error, Request> is, kun je zowel een Error als een Request instantie returnen vanuit deze functie. Higher order functions zoals Bind voeren dan alleen de meegegeven functie uit als je geen Error hebt. Bij een error geven ze deze alleen door, zodat je die op het eind met Match kunt afhandelen.

Dus je hebt een "happy path" en een secundair pad voor als er iets fout gegaan is.

Anyways, ik ben dus benieuwd of hier meer mensen ervaring mee hebben en het ook toepassen :)

Even a broken clock is right twice a day.


  • ThomasG
  • Registratie: juni 2006
  • Laatst online: 16:46
Lethalis schreef op donderdag 4 oktober 2018 @ 16:04:
[...]

Specifiek dit paradigma toepassen in C# :)

De richtlijn voor exceptions is in principe dat exceptions "exceptions" moeten zijn. Het liefste heb je helemaal geen exceptions, omdat dit eigenlijk als een "go to" statement wordt gezien die een onverwachte sprong op de call stack maakt. Exceptions zijn dan dus puur voor de situaties die je als ontwikkelaar zelf niet voorzien hebt.

Je gooit dus zelf helemaal geen exceptions meer, maar geeft specifieke errors terug die overerven van Error (ValidationError, CustomerNotFoundError, enzovoorts).

Bijvoorbeeld: Either<Error, Customer> FindCustomerById(int customerId)

Omdat een functie bij voorkeur "eerlijk" is, zou de signatuur alle mogelijke uitkomsten moeten beschrijven. In dit geval krijg je dus altijd een Customer of een Error terug. Een Exception hoort daar niet bij.

Wel kun je framework exceptions opvangen met een Try<T> functie in de LanguageExt library:

https://github.com/louthy...ures#signatures-that-talk
Dit klinkt mij meer als een gevalletje: je gebruikt de verkeerde programmeertaal.

  • Lethalis
  • Registratie: april 2002
  • Niet online
ThomasG schreef op donderdag 4 oktober 2018 @ 16:28:
[...]
Dit klinkt mij meer als een gevalletje: je gebruikt de verkeerde programmeertaal.
De auteur van LanguageExt krijgt die opmerking ook vaak:

https://github.com/louthy...t-you-just-use-F%23%3F%22

En ik kan mij helemaal vinden in zijn reactie. Ook ik zit in een groot .NET project en kan niet zomaar delen gaan herschrijven naar een andere taal.

Even a broken clock is right twice a day.


  • Lethalis
  • Registratie: april 2002
  • Niet online
ThomasG schreef op donderdag 4 oktober 2018 @ 16:53:
[...]
Het argument is dus eigelijk: ik wil taal X gebruiken, maar ik kan niet over. Dus ik ga rare truukjes uithalen in taal Y, zodat het op taal X lijkt. En dat vind ik dus totaal niet ok.
Zulke rare trucjes zijn het niet. Je past gewoon bepaalde principes uit het functionele programmeren in een taal als C# toe.

Naar mijn mening is het een mixed bag. Gebruik wat handig is, laat staan wat minder handig is. Tegen de Option<T> kijk ik bijvoorbeeld iets voorzichtiger aan, omdat die via een omweg beperkingen van het C# type system probeert te omzeilen (je zou dit ook met code contracts kunnen oplossen).

Het toepassen van generieke higher order functions zoals Bind en Match in combinatie met een Either<T> class, doet echter weinig qua trucjes. Het zijn simpelweg generic extension methods waar je weer andere functies aan doorgeeft.

In zekere zin is het principe van HOF's toepassen al "normaal" in de .NET ontwikkeling geworden. Kijk maar naar frameworks als NancyFX (alle handlers en middleware functies) en zelfs ASP.NET Core (configuration functies).

C# wordt dan ook als een hybride taal gezien die in de toekomst nog meer functionele aspecten zal krijgen (immutable data records, non-nullable reference types, etc).

[Voor 7% gewijzigd door Lethalis op 04-10-2018 17:06]

Even a broken clock is right twice a day.


  • kenneth
  • Registratie: september 2001
  • Niet online

kenneth

achter de duinen

Als je het zo bekijkt zijn de developers van C# continu rare trucjes aan het uithalen want een flink deel van de features in C# 7 en 8 zijn gewoon F#-features :p

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • bwerg
  • Registratie: januari 2009
  • Niet online

bwerg

Internettrol

ThomasG schreef op donderdag 4 oktober 2018 @ 16:53:
[...]
Het argument is dus eigelijk: ik wil taal X gebruiken, maar ik kan niet over. Dus ik ga rare truukjes uithalen in taal Y, zodat het op taal X lijkt. En dat vind ik dus totaal niet ok.
Dus als je wél een request wil valideren, een database wil updaten, een mail wil sturen en afhankelijk van of het lukt of niet op een bepaalde manier loggen, dan moet je dat per sé met verbose if-else-statements afhandelen, omdat als je die if-else-statements wegstopt in een functioneel geinspireerde library, je het paradigma van je oorspronkelijke taal niet meer ziet?

De functionele aanpak (of 'railway oriented programming' - ik had die term nog niet gehoord) abstraheert zaken weg waar je niet over wil nadenken. Of je nou wegabstraheert met een taalkeuze of met een library, ik zie het probleem niet zo, zolang je geen concrete nadelen kan opnoemen.

Heeft geen speciale krachten en is daar erg boos over.


  • Hydra
  • Registratie: september 2000
  • Laatst online: 17:18
ThomasG schreef op donderdag 4 oktober 2018 @ 18:12:
[...]
Nee, niks if-statements, want daar heb je juist exceptions voor! Je hebt een try statement, en daarin validateer je input, update je de database, en stuur je een email. Mislukt het updaten? Dan throwt die methode een exception, zodat het stukje van email versturen niet wordt uitgevoerd.
Dat zijn twee compleet verschillende zaken die je hier op 1 hoop gooit. Het accessen van een database zou altijd moeten werken. Als dat niet kan, is er iets stuk. Dat is een uitzondering, een exception dus. Input valideren van een gebruiker daarentegen is gewoon je normale flow. En dat een gebruiker daarin een fout maakt, is iets wat ook te verwachten is.

Nu kom je hiermee snel in een grijs gebied; als je een service hebt die aangeroepen wordt door een client die zelf input valideert, valideer je het aan de server kant omdat je de client niet vertrouwt. Maar verkeerde input is daar wel weer een uitzondering; dan loopt iemand te klooien.

Database access waarbij een record niet aanwezig is, kan zowel een foutsituatie zijn (door een programmeurfout is een record niet aangemaakt) of gewoon een normale situatie (je doet een GET op een resource die niet bestaat). Dit zijn andere situaties en hiervoor heb je dus verschillende mechanismen.

Libraries gebruiken om op een meer functionele manier die tweede manier (dus niet exceptions) is de normaalste zaak van de wereld. Ik vind het volslagen onzin om dan te stellen dat je maar een andere taal had moeten gebruiken; zo werkt de wereld niet. En dat weet je volgens mij best ;)

https://niels.nu


  • Hydra
  • Registratie: september 2000
  • Laatst online: 17:18
Lethalis schreef op donderdag 4 oktober 2018 @ 19:18:
Wat vind je precies kut aan Hibernate?
9 van de 10 keer doet 't wel wat 't moet doen, maar die 1 van de 10 keer krijg je vaak rare queries. En vooral met complexe joins op composite keys moet je zoveel (dmv annotations e.d.) aan het framework vertellen dat je er, samen met het debuggen van rare queries, eigenlijk alleen maar meer tijd mee kwijt bent.

Daarnaast; dergelijke ORMs zijn gebaseerd op het inmiddels verouderde idee dat je een applicatie hebt met een in-memory object-boom, een enkele waarheid, die naar een zooi tabellen gemapt wordt. Vooral heden ten dage waarbij je vaak met REST API's werkt, werk je vooral met projecties op die data. Dus je bent al snel veel complexe entity modellen aan het optuigen.

Gewoon zelf de SQL queries schrijven (er is niks meer expressief dan een declarative taal IMHO) en met een simpele objectmapper deze resultsets naar objecten mappen werkt m.i. vele malen efficienter.

Last but not least; er zijn gewoon te veel slechte developers en die checken uberhaupt niet wat Hibernate e.d. uitvoeren. In een pull request zie ik tenminste in hun SQL queries dat ze rare shit uitspoken ;)

TLDR: SQL: > hibernate
In de .NET wereld is NHibernate namelijk een verademing als je het vergelijkt met een ORM als Entity Framework, zeker in "Database First" scenario's.
Nooit met EF gewerkt (ik doe niet aan windows/microsoft als 't even te vermijden is ;)) maar als het nog slechter is dan Hibernate; damn 8)7

[Voor 11% gewijzigd door Hydra op 04-10-2018 19:31]

https://niels.nu


  • Sandor_Clegane
  • Registratie: januari 2012
  • Laatst online: 10:25

Sandor_Clegane

Fancy plans and pants to match

Ze hadden beter die energie kunnen steken in het helpen van de nHibernate jongens. Denk een gevalletje van NIH syndroom.

  • Alex)
  • Registratie: juni 2003
  • Laatst online: 05:07
Één van de nadelen aan Entity Framework vind ik dat het van Microsoft zelf is, en dat het in vrijwel alle voorbeelden en templates gebruikt wordt. Er is amper aandacht voor alternatieven, terwijl er ook niet wordt ingegaan op wat er 'under the hood' gebeurt.

EF wordt dermate veel door Microsoft gepushed dat het als best practice wordt gezien, er is inmiddels een hele schare developers die niet eens beter weet dan dat je EF gebruikt voor data access. Of die van mening zijn dat "alles wat niet EF is, ouderwets is" en dat je "maar eens met je tijd moet meegaan" als je nog zelf SQL schrijft, of kiest voor iets wat geen EF is.

Sla er maar eens een willekeurige "getting started with ASP.NET MVC"-guide op na: er wordt meteen EF code first gebruikt, er wordt terloops genoemd dat de data in 'een SQL-database belandt' (wat dat is moet je zelf maar uitzoeken) en er is ook geen aandacht voor alternatieven (zoals SQL statements, of NHibernate/Dapper/...).

Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

We are shaping the future


  • Lethalis
  • Registratie: april 2002
  • Niet online
Alex) schreef op vrijdag 5 oktober 2018 @ 00:53:
EF wordt dermate veel door Microsoft gepushed dat het als best practice wordt gezien, er is inmiddels een hele schare developers die niet eens beter weet dan dat je EF gebruikt voor data access. Of die van mening zijn dat "alles wat niet EF is, ouderwets is" en dat je "maar eens met je tijd moet meegaan" als je nog zelf SQL schrijft, of kiest voor iets wat geen EF is.
Mja, dat zijn dezelfde mensen die je een stored procedure kunt laten zien van 25 regels die hetzelfde doet als hun programma van 100+ regels, maar dan zonder kostbare round trips.

Ik heb op mijn vorige baan met precies die actie iemand kwaad laten weglopen. Hij kon het niet handelen. Want ja, hij was 45 ofzo en wist alles beter.

Even a broken clock is right twice a day.


  • Hydra
  • Registratie: september 2000
  • Laatst online: 17:18
Alex) schreef op vrijdag 5 oktober 2018 @ 00:53:
EF wordt dermate veel door Microsoft gepushed dat het als best practice wordt gezien
Dit raakt m.i. ook een van de wat mij betreft grootste issues van het .Net ecosysteem; de community. Als voorbeeld; ik heb nog steeds van vroeger een oud studiegenoot die self proclaimed microsoft fan is en Linux maar te veel gedoe vindt met lastige command line commando's (heeft 'ie onlangs op LinkedIn gepost, dapper :)). En zulke types zie je wel meer. Hij is ook eigenlijk altijd van mening dat als het van Microsoft komt goed is, en de rest kut is.

Als we die mentaliteit hadden gehad in Java land, hadden we nog steeds met z'n allen Java EE zitten doen op grote application servers. Juist die concurrentie tussen op source libraries en de 'officiele' libraries zorgen voor innovatie.

Ik weet wel dat veel C# devs niet zo zijn, maar dat gekwijl naar Microsoft toe zie je daar wel enorm veel meer. Als je de gemiddelde Java dev naar z'n mening over Oracle vraagt is die waarschijnlijk niet echt positief :)

https://niels.nu


  • Sandor_Clegane
  • Registratie: januari 2012
  • Laatst online: 10:25

Sandor_Clegane

Fancy plans and pants to match

Hydra schreef op vrijdag 5 oktober 2018 @ 07:50:
[...]


Dit raakt m.i. ook een van de wat mij betreft grootste issues van het .Net ecosysteem; de community. Als voorbeeld; ik heb nog steeds van vroeger een oud studiegenoot die self proclaimed microsoft fan is en Linux maar te veel gedoe vindt met lastige command line commando's (heeft 'ie onlangs op LinkedIn gepost, dapper :)). En zulke types zie je wel meer. Hij is ook eigenlijk altijd van mening dat als het van Microsoft komt goed is, en de rest kut is.

Als we die mentaliteit hadden gehad in Java land, hadden we nog steeds met z'n allen Java EE zitten doen op grote application servers. Juist die concurrentie tussen op source libraries en de 'officiele' libraries zorgen voor innovatie.

Ik weet wel dat veel C# devs niet zo zijn, maar dat gekwijl naar Microsoft toe zie je daar wel enorm veel meer. Als je de gemiddelde Java dev naar z'n mening over Oracle vraagt is die waarschijnlijk niet echt positief :)
Ligt eraan in welk deel je zit. In F# land zijn ze lekker tegendraads. Type providers, Fake, Paket, Fable etc. etc. :)

  • Hydra
  • Registratie: september 2000
  • Laatst online: 17:18
Lethalis schreef op vrijdag 5 oktober 2018 @ 08:55:
Tsja, vanuit management bestaat de sterke wil om volledige controle te hebben over de hardware en software.
Hardware is duur en mensen zijn goedkoop.

Je managers zijn idioten maar dat wist je vast al.

https://niels.nu


  • EddoH
  • Registratie: maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Hydra schreef op vrijdag 5 oktober 2018 @ 10:37:
[...]


Hardware is duur en mensen zijn goedkoop.

Je managers zijn idioten maar dat wist je vast al.
Doe nou toch eens een beetje verder kijken dan alleen jouw wereldje. Er zijn wellicht 100 reden te verzinnen, exotisch of niet, waarom een bedrijf controle wil hebben over de hardware waar de software op draait.

Nee, voor een simpele generieke webservice ga je niet zelf je hardware beheren, en ook voor de kosten hoef je het niet te doen, maar er kunnen zoveel meer aspecten aan een beslissing zitten.

Om gelijk mensen (helemaal als je ze niet kent) als idioot te bestempelen is gewoon respectloos en komt heel betweterig over to be honest. Ook al heb je veel kennis van zaken, je kunt niet alles weten.

  • Hydra
  • Registratie: september 2000
  • Laatst online: 17:18
EddoH schreef op vrijdag 5 oktober 2018 @ 11:18:
Om gelijk mensen (helemaal als je ze niet kent) als idioot te bestempelen is gewoon respectloos en komt heel betweterig over to be honest. Ook al heb je veel kennis van zaken, je kunt niet alles weten.
Joh, stel je niet aan. Het is gewoon een gechargeerde opmerking omdat ik nogal veel ervaring heb met bedrijven die vinden dat ze het in eigen beheer moeten doen en het eigenlijk gewoon altijd misgaat. Ik heb hier vaak discussies met managers over juist om ze richting PaaS te bewegen en dan ga ik heus niet in zo'n meeting verkondigen dat het idioten zijn.

Op m'n huidige project hebben ze nog een AS/400. Dat je die niet ff afneemt bij Google snap ik heus wel.
Lethalis schreef op vrijdag 5 oktober 2018 @ 11:22:
Vanuit management is bij ons besloten dat punt 2 belangrijker is dan punt 1.

Voor wat context: het gaat om een bedrijfskritische portal die er absoluut niet uit mag liggen. Hij wordt letterlijk door duizenden mensen gebruikt elke dag en elke minuut dat hij offline is, kost dat onze klanten direct geld.
De kans dat er bij Google of AWS een hele region uitflikkert is extreem veel kleiner dan dat je lokaal gemanagde serverparkje er een keer helemaal uitligt. Alleen het verschil in kwaliteit van mensen dat een Google weet aan te trekken versus dat de gemiddelde hostingclub hier in Nederland heeft lopen is al immens.

Dit is dus precies wat ik (nogal gechargeerd) bedoel; je managers maken, op basis van wat ik hier lees (kijk @EddoH , ik kan het heus wel!) volslagen verkeerde keuzes.

Ik zie het bij meerdere klanten van ons. Zelf maar Kubernetes clustertjes op gaan tuigen op eigen hardware omdat ze 'controle' willen. Okay. Je hebt dus eigen hardware, eigen netwerken, en dan ook nog een eigen platform infra daarboven op. Je hebt een zooi Ops mensen lopen die dit in elkaar gehobbied hebben. Als nu twee services in je kubernetes clustertje hoge latency hebben af en toe, waar in die hele stack zit het probleem dan?

Dat is letterlijk waar ik bij een vorige klant (ING, eigen datacenter gebouwd in Polen dat bestierd wordt door mensen die niet echt de top waren kwa skills, maar wel lekker goedkoop) tegenaan gelopen ben. En dat is een van de vele problemen die we daar hadden. Je wil een database? Sure; data pleuren we op een SAN. Geen probleem toch? Ugh.

Als datacenters bouwen niet je core business is; doe het gewoon niet.

https://niels.nu


  • Giesber
  • Registratie: juni 2005
  • Laatst online: 03-04 22:14
Hydra schreef op vrijdag 5 oktober 2018 @ 11:34:
Dit is dus precies wat ik (nogal gechargeerd) bedoel; je managers maken, op basis van wat ik hier lees (kijk @EddoH , ik kan het heus wel!) volslagen verkeerde keuzes.
Als je op basis van wat je hier leest die managers idioten noemt, ben je volgens mij inderdaad betweterig en respectoos ja. Je neigt zelf al naar de conclusie dat je dat eigenlijk helemaal niet kan concluderen met de beterkte informatie die je hebt.

Ik heb er geen problemen mee dat je wat chargeert in een topic als de Devschuur (moest dat wel zijn, had ik waarschijnlijk al RSI gehad van op de rapporteer knop te klikken :P ), maar als je dan vervolgens iemand die daarop reageert een aansteller noemt komt dat wel nogal kinderachtig over naar mij.

Maar ja, nu ben ik mij aan het aanstellen :) .

  • Sandor_Clegane
  • Registratie: januari 2012
  • Laatst online: 10:25

Sandor_Clegane

Fancy plans and pants to match

Can't we all just get along?

  • Stoelpoot
  • Registratie: september 2012
  • Niet online
Hydra schreef op vrijdag 5 oktober 2018 @ 14:08:
[...]


Ligt eraan. Emacs of VIM?
Als jullie dat lekker uitvechten, gebruik ik VSCode wel...

  • Lethalis
  • Registratie: april 2002
  • Niet online
Hydra schreef op vrijdag 5 oktober 2018 @ 16:10:
[...]
Zou kunnen dat ze niet de waarheid heeft verteld, maar dat kwam wel vaker voor :)
Nu we weten wie je bedoelt, ik was degene die op een regenachtige avond een vriend verdrietig aantrof in zijn appartement. Ik kwam daar gewoon niets vermoedend om Visual Studio te kopieren van hem.

Misschien was het wel een teken van het universum dat ik geen .NET had moeten leren _O-

Even a broken clock is right twice a day.


Acties:
  • +1Henk 'm!

  • Firesphere
  • Registratie: september 2010
  • Laatst online: 11:46

Firesphere

Yoshis before Hoshis

* Firesphere in huidige discussie

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!


Acties:
  • +2Henk 'm!

  • Alex)
  • Registratie: juni 2003
  • Laatst online: 05:07
Op een vorig project heb ik Azure gebruikt, maar eigenlijk alleen als hostingplatform (web apps, blob storage, SQL). Ik ben er eigenlijk wel tevreden mee: het gemak van shared hosting ("gooi je files in een folder en het werkt") met de wetenschap dat er een ervaren partij achter zit die alles beheert en onderhoudt (Microsoft), in combinatie met flinke schaalbaarheid in zowel de hoogte als de breedte.

Het is misschien wat duurder dan een VPS of een dedicated machine, maar je wordt flink ontzorgd. Bij ijzer in eigen beheer moet je ook alles zelf updaten, patchen en testen wat a) niet leuk is en b) tijdrovend. Bij Azure heb je daar gewoon geen omkijken meer naar.

[Voor 29% gewijzigd door Alex) op 07-10-2018 17:34]

We are shaping the future


Acties:
  • +1Henk 'm!

  • Mugwump
  • Registratie: mei 2017
  • Laatst online: 12:29
Lethalis schreef op zondag 7 oktober 2018 @ 15:59:
[...]

Ik had ook ff zoiets van "waar gaat dit over" :) Maar dat is dus ruim 15 jaar geleden.

Inmiddels is iedereen verder gegaan met zijn leven en heeft kinderen etc (de mannen iig wel, hoe het met haar is afgelopen weet ik niet).

Ik vind de discussie over wel of geen cloud hosting een stuk interessanter. Ben ook benieuwd wie er hier met Azure werkt en wat de bevindingen daarvan zijn.

Lees namelijk meerdere ervaringen van mensen waar het behoorlijk duur is uitgepakt en die uiteindelijk weer ermee zijn gestopt.

Op zich begrijp ik wel dat je ook de kosten van het personeel moet meenemen. Twee keer zelfs, 1 keer voor het werk dat je aan het beheer kwijt bent, en 1 keer voor de inkomsten die je misloopt als diezelfde mensen ander nuttig werk zouden doen.

De vraag blijft natuurlijk ook of die garanties die je krijgt wel voor alle projecten nodig zijn.

Ik heb ook een narrowcasting project waarbij alle clients content cachen. Als daar de server er eens een dag uitligt, merken mensen het niet eens. Ondanks dat er ruim 300 clients zijn.
Ik werk zelf wel redelijk wat met Azure, veelal bij wat grotere klanten die niet echt om geld verlegen zitten.
Daarbij heb ik als developer wel behoorlijke vrijheid om zelf aan te maken wat ik nodig heb. Dat is echt wel ideaal werken. Gewoon infra as code en je tuigt zonder enige moeite nieuwe omgevingen op.

In sommige gevallen kun je zo optimaliseren dat het erg kosteneffectief kan zijn, maar als je gewoon componenten "always on" hebt staan voor een maandelijkse fee, dan zal het niet goedkoper zijn dan de boel zelf regelen.

Ik denk dat je het ook niet puur voor het kostenplaatje doet, maar ook voor zaken als time-to-market, gebruikersgemak en alle zaken als scaling, monitoring, integratie met VSTS en ga zo maar door.

"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim"


Acties:
  • +1Henk 'm!

  • whoami
  • Registratie: december 2000
  • Laatst online: 06:40
Lethalis schreef op zondag 7 oktober 2018 @ 15:59:
[...]

Ik vind de discussie over wel of geen cloud hosting een stuk interessanter. Ben ook benieuwd wie er hier met Azure werkt en wat de bevindingen daarvan zijn.
Alle projecten die wij doen (of toch die waar ik aan werk), hebben ergens wel iets met Azure te maken. (Op een project werk ik met Service Fabric, ServiceBus, een ander project maakt gebruik van AKS, ServiceBus, IoT-hub, .... ).
Ik maak dus eerder gebruik van de Paas offerings, en niet zozeer IaaS.
Allemaal heel leuk en interessant, je hebt iets nodigs, provisioned dat en het werkt gewoon. Met PaaS heb je dan nog eens het voordeel dat je je niet hoeft bezig te houden met de infrastructuur. De servers waar je applicatie op runt hoef je niet te onderhouden, dat doet iemand anders voor je. Je kan je gewoon meer concentreren en bezig houden met wat er voor jou van belang is: ontwikkelen.
Lees namelijk meerdere ervaringen van mensen waar het behoorlijk duur is uitgepakt en die uiteindelijk weer ermee zijn gestopt.
De kosten kunnen snel oplopen; ik denk niet dat je de KMO van om de hoek op Azure moet zetten. Volgens mij is het vooral interessant voor grote projecten.

Acties:
  • +1Henk 'm!

  • Alex)
  • Registratie: juni 2003
  • Laatst online: 05:07
Helemaal mee eens.

Het is van belang om van tevoren te bepalen wat je wilt doen en wat je daarvoor nodig hebt, en daar je infrastructuur op af te stemmen. Als je al toe kunt met shared hosting, waarom zou je dan Azure nemen? :)

We are shaping the future


  • Skyaero
  • Registratie: juli 2005
  • Niet online
whoami schreef op zondag 7 oktober 2018 @ 18:33:
De kosten kunnen snel oplopen; ik denk niet dat je de KMO van om de hoek op Azure moet zetten. Volgens mij is het vooral interessant voor grote projecten.
Kleine onderneming (< 10 mensen) hier. Wij doen alles in Azure. In het verleden wel eigen servers gehad, maar menselijke capaciteit (en expertise) om deze te beheren is een behoorlijke kostenpost. Daarnaast remt het de schaalbaarheid enorm.

Daar komt bij dat je als je met .Net en/of Azure werkt, je ook als ISV (Independent Software Vendor) partner van Microsoft kunt worden. Levert (zeker voor een klein bedrijf) toch best wat financiële en in-kind voordelen op. De ISV meetings zijn erg interessant.

  • Koetjeboe
  • Registratie: maart 2002
  • Laatst online: 17:01

Koetjeboe

Boe, zegt de koe

Wij zitten sinds een paar jaar bij AWS, en voor ons zit de meerwaarde juist in de schaalbaarheid en randzaken. We hebben nu loadbalancers die automatisch meeschalen met de drukte, webservers die automatisch meeschalen en zichzelf vervangen als ze stuk zijn, databaseservers die automatisch opschalen. Daarnaast bied AWS ook veel extra diensten wat allemaal heel makkelijk integreert. Bijvoorbeeld als iemand een video upload in ons systeem wordt deze via een AWS dienst in 3 formaten getranscode. Je betaald daar puur voor wat je gebruikt, dus die feature kost ons een paar dollar per maand en dan werkt het gewoon altijd goed, ongeacht het formaat van het bronbestand. AWS heeft een email verzend dienst die we gebruiken die automatisch alles signed en bounces e.d. opvangt en naar ons doorstuurt. CDN, certificaten, deployen van code, cacheservers, elastic search, etc. Kun je allemaal zelf regelen, is vast kwa hosting en hardware goedkoper, maar nu is het gewoon geregeld en werkt het altijd. En, mocht er een keer iets mis gaan of als we hulp nodig hebben, de support (ja, waar je ook weer voor betaald) is van een heel hoog niveau. Goede, inhoudelijke antwoorden, snel, meedenkend, etc.

We komen van een paar grote nederlandse hosters af (zeker geen budget hosters), en dat was echt een heel ander verhaal. De fuckups die we daar elk jaar meemaakten...

Hondenlosloopgebieden ||| Lekkere recepten ||| Online ondernemen?


  • Gropah
  • Registratie: december 2007
  • Laatst online: 14:55

Gropah

Moderator Spielerij

Oompa-Loompa 💩

Wij hebben recentelijk bij de startup waar ik werk de belangrijkste REST API vervangen. We zijn van .NET/Mono naar Go gegaan. De API is qua architectuur ongeveer 1 op 1 overgenomen (en dus bijna zeer zeker geen idiomatic Go) en het heeft er zijn denk ik in het totaal 6 manweken in gestopt waarbij het het eerste project van de developers was wat ze in Go deden. Bij initiele tests was de Go API 5x zo snel als de mono API, was de gemiddelde replytijd lager en werden alle requests goed afgehandeld, waarde Mono API dat niet had.

Naast dat het sneller is, was de vorige Mono API ook in een framework geschreven wat intern geschreven was en eigenlijk maar door 1 persoon gesnapt werd. Al met al genoeg reden om compleet over te gaan naar Go voor ons.

En ja, Go is redelijk basaal in language features, maar dat zorgt er juist voor dat het makkelijk is voor iemand om op te pakken. En standaard word er wel veel meegeleverd in de standaard library. Enige wat mistte was de mogelijkheid om variabelen of regex'en in paden van de API te gooien, maar daar zijn genoeg libraries voor. Sommige maken het nog sneller dan het al is.

edit: nog even om te verduidelijken, het is niet de silver bullet, maar voor onze usecase is het een goede fit.

[Voor 4% gewijzigd door Gropah op 08-10-2018 11:19]


  • Hydra
  • Registratie: september 2000
  • Laatst online: 17:18
Laat ik voorop stellen dan m'n 'enthusiasme' tegen Go niks met jou persoonlijk te maken heeft!
Gropah schreef op maandag 8 oktober 2018 @ 14:08:
Sinds een maand of 2 is er in de standaard toolchain een package manager ingebouwd die het mogelijk maakt om semver tags van een gitrepo te gebruiken voor dependency management, maar daarvoor was het voor mij ook een reden om Go links te laten liggen.
In het Node.js ecosysteem waren ze er een tijdje geleden al achter dat Bower een enorm slecht idee was. Zegmaar een jaar of 4 terug. Dus dat zegt nogal wat over de Go maintainers.
Geen inheritence is gedeeltelijk waar, het is mogelijk mbv composition.
Go's interface zijn een vorm van duck-typing en daarom enorm gevaarlijk. Als ik een interface implementeer met dezelfde vorm 'is' het opeens een interface die past. Dit is een domme workaround voor het gebrek aan bijvoorbeeld generics.

Go heeft geen inheritance. Een interface is een contract. Marker interfaces bijvoorbeeld zijn in Go niet mogelijk.
En het is mogelijk om interfaces te beschrijven welke objecten kunnen implementeren waardoor er toch een soort van generics mogelijk is.
Go heeft intern voor z'n eigen API generics omdat ze het teveel werk vonden voor alle verschillende types de collections opnieuw te bouwen. Alleen is dit nooit geexposed in de taal. En collections bouwen zoals je in C# kan voor een willekeurige <T> kan Go gewoon echt niet.

Ik heb zelf best veel met Go gedaan, command line tools en een paar REST services. En vooral bij die laatste valt op dat, t.o.v. de standaard Java frameworks, Go echt ronduit een kuttaal is. Ik programmeer liever een Node.js back-end service dan een Go service. Alle gebreken van Go hinderen code reuse enorm (kijk in de standaard API maar naar hoe je een string-split; geen overloads dus overal kopieen) en dat zie je terug in Go projecten; copy-paste based development.

En dat Go geen exceptions kent is te bizar voor woorden. Als je een standaard service maakt, met een controller, service en repository laag, dan zit je in elke laag in iedere functie te kijken of er een error optreedt en dit dan door te sturen.

Ik heb meerdere malen discussies gehad met mensen die me Go proberen te verkopen, en dit zijn altijd of Ops mensen, of developers die nog nooit een enigzins complexe service in Go gebouwd hebben. En vooral die eerste categorie heb ik ronduit een hekel aan gekregen; iets te veel discussies met Ops types gehad die gaan lopen verkondigen dat Exceptions evil zijn, Generics evil zijn, Java kut is, etc. Dat is het rotte aan het Go ecosysteem vooral; de mensen.

Ik kan het nogal fel op reageren omdat het precies zo goed weergeeft wat er mis is met veel hedentendaagse developers. De reden dat iets als Maven niet rechtstreeks van Github trekt is niet omdat ze het perse moeilijk willen doen, het is omdat het een fucking slecht idee is. De reden dat moderne talen neigen naar een combinatie van OO en functionele talen is niet omdat we graag stoffige oude zooi produceren, het is omdat abstracties bouwen noodzakelijk is om complexe shit begrijpelijk te houden. De volgende opser die me meldt dat exceptions en generics evil zijn gaat 't raam uit.

Zo.

https://niels.nu


  • Koenvh
  • Registratie: december 2011
  • Laatst online: 17:04

Koenvh

Hier tekenen: ______

Klinkt als koffietijd :+

Waarom vandaag doen wat je morgen ook kunt uitstellen?


  • Sandor_Clegane
  • Registratie: januari 2012
  • Laatst online: 10:25

Sandor_Clegane

Fancy plans and pants to match

Dat spreek ik ook niet tegen maar de timing was te mooi :P

  • Mercatres
  • Registratie: september 2009
  • Laatst online: 14:13
Haha, hier was het ook even een lichte paniek.
Mugwump schreef op maandag 8 oktober 2018 @ 16:43:
Hier nergens last van met DevOps overigens.
Het is inmiddels ook opgelost bij ons. Geen idee wat ze aan 't uitspoken zijn daar.

Wel gerelateerd aan 't hele DevOps gebeuren: nog anderen aanwezig geweest op TechoramaNL vorige week?

[Voor 40% gewijzigd door Mercatres op 08-10-2018 16:54]


  • Gropah
  • Registratie: december 2007
  • Laatst online: 14:55

Gropah

Moderator Spielerij

Oompa-Loompa 💩

Hydra schreef op maandag 8 oktober 2018 @ 14:26:
Laat ik voorop stellen dan m'n 'enthusiasme' tegen Go niks met jou persoonlijk te maken heeft!


[...]
I know :>

En zoals ik al zei, Go is echt niet de silver bullet. Het heeft zijn beperkingen en die weet je aan te stippen. Maar met elke versie word het weer beter en een flink aantal van de punten die je noemt worden bij versie 2 van Go aangepakt. Ik ben er op dit moment wel enthousiast over en ben dan ook benieuwd hoe het er allemaal mee verder gaat.
Hydra schreef op maandag 8 oktober 2018 @ 16:58:
[...]


Wat klopt er van het verhaal dat het trager is dan Go dan? Want dat verbaast me nogal. Go zit ongeveer op 't niveau van Java code tegenwoordig (blijft een managed taal in wezen), en ik dacht altijd dat C# vrijwel net zo 'snel' was. Dat 'iets' drie keer zo traag is, lijkt me eerder een implementatiekwestie te zijn. Maar ik heb geen ervaring met .Net core.

Go vs Java: https://benchmarksgame-te...hmarksgame/faster/go.html

(niet dat die benchmarks iets zeggen, maargoed)
AFAIK kan Java heel snel zijn, het heeft alleen een spinup time en een memory overhead. En wat me ook opvalt aan die benchmarks is dat er geen netwerk spul in lijkt te zitten. Als je naar deze willekeurig gevonden benchmark kijkt dan blijkt wel daar wel punten scoort.

Overigens is hier een benchmark van Go VS .NET core waarin Go het ook wint in de gemeette metrics.

  • Sandor_Clegane
  • Registratie: januari 2012
  • Laatst online: 10:25

Sandor_Clegane

Fancy plans and pants to match

Voor de gein eens een benchmark gedraaid:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
user@hephaestus:~/development/projects/server$ ab -n 100000 -c 50 http://server.domain.org:8181/static/login.html
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking server.domain.org (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        Microsoft-NetCore/2.0
Server Hostname:        server.domain.org
Server Port:            8181

Document Path:          /static/login.html
Document Length:        4089 bytes

Concurrency Level:      50
Time taken for tests:   16.056 seconds
Complete requests:      100000
Failed requests:        0
Total transferred:      422000000 bytes
HTML transferred:       408900000 bytes
Requests per second:    6228.03 [#/sec] (mean)
Time per request:       8.028 [ms] (mean)
Time per request:       0.161 [ms] (mean, across all concurrent requests)
Transfer rate:          25666.31 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.2      0       2
Processing:     1    8   4.1      7      41
Waiting:        1    8   4.1      7      41
Total:          1    8   4.1      7      41

Percentage of the requests served within a certain time (ms)
  50%      7
  66%      9
  75%      9
  80%     10
  90%     13
  95%     17
  98%     20
  99%     22
 100%     41 (longest request)



Is mijn eigen webservertje dat draait op .Net Core via de HTTP listener, nog niet zo efficiënt als zou kunnen daar hij nogal wat logged naar het console.

Load op de machine:

Apache

Niet heel erg gek dacht ik. Is met een daadwerkelijke pagina en niet even een 200OK.
Draait op KUbuntu 18 nog wat.

  • Gropah
  • Registratie: december 2007
  • Laatst online: 14:55

Gropah

Moderator Spielerij

Oompa-Loompa 💩

Sandor_Clegane schreef op maandag 8 oktober 2018 @ 21:03:
Voor de gein eens een benchmark gedraaid:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
user@hephaestus:~/development/projects/server$ ab -n 100000 -c 50 http://server.domain.org:8181/static/login.html
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking server.domain.org (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        Microsoft-NetCore/2.0
Server Hostname:        server.domain.org
Server Port:            8181

Document Path:          /static/login.html
Document Length:        4089 bytes

Concurrency Level:      50
Time taken for tests:   16.056 seconds
Complete requests:      100000
Failed requests:        0
Total transferred:      422000000 bytes
HTML transferred:       408900000 bytes
Requests per second:    6228.03 [#/sec] (mean)
Time per request:       8.028 ~~~[ms] (mean)
Time per request:       0.161 ~~~[ms] (mean, across all concurrent requests)
Transfer rate:          25666.31 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.2      0       2
Processing:     1    8   4.1      7      41
Waiting:        1    8   4.1      7      41
Total:          1    8   4.1      7      41

Percentage of the requests served within a certain time (ms)
  50%      7
  66%      9
  75%      9
  80%     10
  90%     13
  95%     17
  98%     20
  99%     22
 100%     41 (longest request)



Is mijn eigen webservertje dat draait op .Net Core via de HTTP listener, nog niet zo efficiënt als zou kunnen daar hij nogal wat logged naar het console.

Load op de machine:

[Afbeelding: Apache]

Niet heel erg gek dacht ik. Is met een daadwerkelijke pagina en niet even een 200OK.
Draait op KUbuntu 18 nog wat.
Kon het niet laten en heb een soortgelijke gedaan maar dan voor Go:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
ab -n 100000 -c 50 http://localhost:8085/
This is ApacheBench, Version 2.3 <$Revision: 1706008 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        
Server Hostname:        localhost
Server Port:            8085

Document Path:          /
Document Length:        103 bytes

Concurrency Level:      50
Time taken for tests:   4.576 seconds
Complete requests:      100000
Failed requests:        0
Total transferred:      22000000 bytes
HTML transferred:       10300000 bytes
Requests per second:    21851.17 [#/sec] (mean)
Time per request:       2.288 [ms] (mean)
Time per request:       0.046 [ms] (mean, across all concurrent requests)
Transfer rate:          4694.59 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   0.2      1       2
Processing:     0    1   0.3      1       7
Waiting:        0    1   0.4      1       5
Total:          0    2   0.3      2       8

Percentage of the requests served within a certain time (ms)
  50%      2
  66%      2
  75%      2
  80%      2
  90%      3
  95%      3
  98%      3
  99%      3
 100%      8 (longest request)


Jou pagina is iets groter, en weet niet of template of wat dan ook. Hier in ieder geval de code die ik heb gerund:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package main

import (
    "net/http"
    "fmt"
    "log"
)

var page = `<!DOCTYPE html>
<html>
<head>
<title>Basic Web Page</title>
</head>
<body>
Hello World!
</body>
</html>`

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, page)
    w.WriteHeader(200)
}

func main() {
    http.HandleFunc("/", handler)
    log.Fatal(http.ListenAndServe(":8085", nil))
}


Voor load
https://i.imgur.com/zzIapHf.png

op een i7-7700HQ (4 cores, 8 thread) met 16GB geheugen, ubuntu 16.04

edit: als je wat meer info geeft kunnen we wellicht meer apples to apples comparison doen?

  • ThomasG
  • Registratie: juni 2006
  • Laatst online: 16:46
Ik vind het toch wel intressant dat er zoveel Tweakers zijn die Go gebruiken. In mijn industrie/sector staat Go bekent als "de programmeertaal voor net afgestudeerde Google medewerkers die niet kunnen programmeren". No offense :+

Je kunt relatief snel leuke applicaties bouwen met Go. Er zitten - in ieder geval voor mijn sector - te veel nadelen (als in: features die missen, waardoor programmeerfouten [geen syntax fouten] er makkelijker insluipen) aan om het überhaupt te overwegen. Het kan zijn dat dát inmiddels deels achterhaalt is natuurlijk.

  • Sandor_Clegane
  • Registratie: januari 2012
  • Laatst online: 10:25

Sandor_Clegane

Fancy plans and pants to match

Na wat gestript te hebben, de complete server eigenlijk, kom ik tot deze:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// Learn more about F# at http://fsharp.org

open System
open System.Net
open System.Threading
open System.IO
open System.Text

let cts = new CancellationTokenSource()

let html = 
    """
    <!doctype html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
            <title>Hello World</title>
            <meta name="description" content="Setup">
            <meta name="author" content="Author"
        </head>

        <body>
            <h1>Hello World!</h1>
        </body>
    </html>
    """


let stream = new MemoryStream(Encoding.UTF8.GetBytes(html))

let processRequest (context:HttpListenerContext)=
    async{
            context.Response.StatusCode <- 200     
            stream.Position <- 0L       
            stream.CopyTo(context.Response.OutputStream)
            stream.Flush()
            context.Response.Close()
        }

let startUpServer token =

    let srv = new HttpListener()
    srv.Prefixes.Add("http://*:8080/")
    srv.Start()
    
    let rec listen(srv:HttpListener, token) =
       async {
           let! ctx = Async.FromBeginEnd(srv.BeginGetContext,srv.EndGetContext)
           Async.Start(processRequest ctx)
           return! listen(srv, token)
    }
    Async.Start(listen(srv, token))


[<EntryPoint>]
let main argv =
    printfn "Running....."
    startUpServer cts.Token
    Console.ReadLine() |> ignore
    0 // return an integer exit code



Deze doet het volgende:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
user@hephaestus:~/development/projects/server$ ab -n 100000 -c 50 http://localhost:8080/
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        Microsoft-NetCore/2.0
Server Hostname:        localhost
Server Port:            8080

Document Path:          /
Document Length:        346 bytes

Concurrency Level:      50
Time taken for tests:   7.561 seconds
Complete requests:      100000
Failed requests:        202
   (Connect: 0, Receive: 0, Length: 202, Exceptions: 0)
Total transferred:      45130108 bytes
HTML transferred:       34530108 bytes
Requests per second:    13225.42 [#/sec] (mean)
Time per request:       3.781 [ms] (mean)
Time per request:       0.076 [ms] (mean, across all concurrent requests)
Transfer rate:          5828.75 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   0.4      1       4
Processing:     0    3   2.0      2      16
Waiting:        0    2   2.0      1      15
Total:          0    4   1.9      3      17

Percentage of the requests served within a certain time (ms)
  50%      3
  66%      4
  75%      4
  80%      5
  90%      7
  95%      8
  98%     10
  99%     10



Hij gaat van 20MB naar 14MB. Het lijkt erop dat .Net een deel reserveert en dit dan weer teruggeeft.
Misschien kan het nog wat efficiënter, maar het is nu al zo barebones dat je er eigen weinig mee kunt.

Dit is op een ThreadRipper 1950X met 32GB RAM en KUbuntu.

Edit: Het viel me op dat er verbindingen werden gedropped, dus na wat aanpassingen in de main loop kom ik tot de volgende:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
let startUpServer token =

    let srv = new HttpListener()
    srv.Prefixes.Add("http://*:8080/")
    srv.Start()
    
    let rec listen(srv:HttpListener, token) =
       async {
           let! ctx = Async.FromBeginEnd(srv.BeginGetContext,srv.EndGetContext)
           do! processRequest ctx
           return! listen(srv, token)
    }
    Async.Start(listen(srv, token))



Deze doet:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
user@hephaestus:~/development/projects/server$ ab -n 100000 -c 50 http://localhost:8080/
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        Microsoft-NetCore/2.0
Server Hostname:        localhost
Server Port:            8080

Document Path:          /
Document Length:        346 bytes

Concurrency Level:      50
Time taken for tests:   10.065 seconds
Complete requests:      100000
Failed requests:        0
Total transferred:      45200000 bytes
HTML transferred:       34600000 bytes
Requests per second:    9935.55 [#/sec] (mean)
Time per request:       5.032 [ms] (mean)
Time per request:       0.101 [ms] (mean, across all concurrent requests)
Transfer rate:          4385.61 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       2
Processing:     1    5   2.5      4      20
Waiting:        1    5   2.5      4      20
Total:          2    5   2.5      4      20

Percentage of the requests served within a certain time (ms)
  50%      4
  66%      4
  75%      5
  80%      6
  90%      8
  95%     12
  98%     14
  99%     15
 100%     20 (longest request)



Deze dropt geen enkele request, maar is wel 3000 verbindingen trager. Denk dat het komt door ThreadPool exhaustion aangezien do! net iets anders werkt dan Async.Start onder de motorkap. Kan het niet echt onderbouwen, maar dat is het enige dat ik zo kan bedenken aangezien do! blocked en Async.Start fire en forget is.

[Voor 26% gewijzigd door Sandor_Clegane op 09-10-2018 11:32]


  • .oisyn
  • Registratie: september 2000
  • Laatst online: 17:03

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

RobIII schreef op woensdag 10 oktober 2018 @ 20:28:
Negen pagina's nieuw deel alweer? :X
Ja even wat Lorem Ipsum posts gegenereerd voor verse content.

Call me cocky, but if there's an alien out there I can't kill I haven't met him and killed him yet. But I can't go in alone. That's why I'm ordering every available ship to report for duty. Anyone else should secure a weapon and fire wildly into the air.


  • Antrax
  • Registratie: april 2012
  • Laatst online: 15:05

Antrax

Pixelated '-')/

Topicstarter
RayNbow schreef op donderdag 11 oktober 2018 @ 07:11:
[...]

Tijd om alle pagina's van deze topicreeks te scrapen, een NN trainen, botje scripten en dan op de volautomatische piloot dit topic volgooien met content. O-)
Ja joh, @Inspector, doet eens een aapje (api.tweakers.net) flansen voor ons! :Y

* Antrax gaat anders zelf wel even naar HQ.. :7

.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


  • .oisyn
  • Registratie: september 2000
  • Laatst online: 17:03

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

Ah, customized page toiletpapier. Handig!
DynaSpan schreef op donderdag 11 oktober 2018 @ 11:47:
[...]


Voor mij meer dan $100,- per jaar... Ik pas :D
He who what now? Ik kom op €13,nogwat per jaar (€9,nogwat eerste jaar) 8)7
Antrax schreef op donderdag 11 oktober 2018 @ 08:07:
[...]

Ja joh, @Inspector, doet eens een aapje (api.tweakers.net) flansen voor ons! :Y

* Antrax gaat anders zelf wel even naar HQ.. :7
t.net heeft al een API, het heet HTTP ;)

[Voor 68% gewijzigd door .oisyn op 11-10-2018 11:54]

Call me cocky, but if there's an alien out there I can't kill I haven't met him and killed him yet. But I can't go in alone. That's why I'm ordering every available ship to report for duty. Anyone else should secure a weapon and fire wildly into the air.


  • DynaSpan
  • Registratie: maart 2013
  • Laatst online: 13:19
@.oisyn mijn naam is blijkbaar 'premium'. Dat krijg je als je naar een Italiaanse stad bent vernoemd ;p (mijn naam is Milan).

  • EddoH
  • Registratie: maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Hoe langer ik in de IT werk, hoe meer ik besef dat met welke technologie of taal ik werk geen enkele invloed heeft op mijn werkgeluk.

Maar damn wat lopen er een debiele, stinkende, arrogante, irritante, luidruchtige mensen rond in de IT en wat kunnen die je humeur beïnvloeden.

Ik werk liever in VB met een paar normale weldenkende gemanierde teamgenoten dan dat ik cutting edge research bij Google kan doen met een stelletje nerds met bovenstaande eigenschappen.

Fijne vrijdag allemaal trouwens.

  • mcDavid
  • Registratie: april 2008
  • Laatst online: 17:16
.oisyn schreef op donderdag 11 oktober 2018 @ 12:18:
[...]


Dat was meer gewoon creatief met leestekens :P. Maar zou ik er dan niet juist blij mee moeten zijn? Want nu kan ik in theorie mijn eigen gTLD kopen :)
Heheh, ik zou dan eerder een mooi vrijstaand huis in de randstad kopen. Of een luxe jacht of zo.

zcflevo.nl


  • Alex)
  • Registratie: juni 2003
  • Laatst online: 05:07
EddoH schreef op vrijdag 12 oktober 2018 @ 10:14:
Hoe langer ik in de IT werk, hoe meer ik besef dat met welke technologie of taal ik werk geen enkele invloed heeft op mijn werkgeluk.

Maar damn wat lopen er een debiele, stinkende, arrogante, irritante, luidruchtige mensen rond in de IT en wat kunnen die je humeur beïnvloeden.
Lethalis schreef op vrijdag 12 oktober 2018 @ 10:54:
[...]

Maar goed, ik moet dan ook regelmatig aan VB.NET projecten werken. Met Windows.Forms.

Het lukt mij nauwelijks om daar - in technisch opzicht - iets leuks van te maken voor mezelf.
Je kunt altijd nog buschauffeur worden :P

We are shaping the future


  • Alex)
  • Registratie: juni 2003
  • Laatst online: 05:07
EddoH schreef op vrijdag 12 oktober 2018 @ 13:45:
[...]


Want in de bus zitten geen stinkende, asociale en irritante mensen? :P
Die zijn na 10 minuten weer opgerot, en daar hoef je verder niet naar te luisteren. :P

We are shaping the future


  • Sandor_Clegane
  • Registratie: januari 2012
  • Laatst online: 10:25

Sandor_Clegane

Fancy plans and pants to match

BladeSlayer1000 schreef op vrijdag 12 oktober 2018 @ 20:41:
[...]


Vue.js en native javascript ES6 (maakte hiervoor alleen gebruik van jquery). Ben ook sinds kort bezig met Laravel
Ah, dat is niet echt mijn ding om eerlijk te zijn, alhoewel voor javascript vind ik Leaflet wel leuk om te programmeren. Als dat je ding is tenminste. :)

Een ToDo lijstje! ;)

  • .oisyn
  • Registratie: september 2000
  • Laatst online: 17:03

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

Blijkbaar is iedereen die code kan compileren en uitvoeren geschikt voor de functie :)

[Voor 8% gewijzigd door .oisyn op 13-10-2018 12:19]

Call me cocky, but if there's an alien out there I can't kill I haven't met him and killed him yet. But I can't go in alone. That's why I'm ordering every available ship to report for duty. Anyone else should secure a weapon and fire wildly into the air.

Pagina: 1 2 3 ... 13


Apple iPhone 11 Microsoft Xbox Series X LG OLED C9 Google Pixel 4 CES 2020 Samsung Galaxy S20 4G Sony PlayStation 5 Nintendo Switch Lite

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2020 Hosting door True