De Devschuur Coffee Corner - Iteratie ⓬ Vorige deel Overzicht Laatste deel

Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.

Pagina: 1 ... 21 ... 102 Laatste
Acties:
  • 585.863 views

Acties:
  • +5 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

"Why async is hard", kittens edition: https://twitter.com/MayaLekova/status/1102660367371640832, spot on!

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 00:16

Matis

Rubber Rocket

Ik weet niet of het komt door mijn verminderde alertheid ivm Carnaval, maar ik moest echt twee keer kijken voordat ik het door hand :o _O_

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


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Oh ja, ass is een vies woord.

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


Acties:
  • 0 Henk 'm!

  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

occasionally schrijf je dat net iets anders ;) maar dat is inderdaad wel een beetje erg streng. Zal wel automagisch zijn gedaan.

Maar vinden jullie Assassins Creed ook zo'n vies spel?

Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Gropah schreef op dinsdag 5 maart 2019 @ 15:38:
[...]


occasionally schrijf je dat net iets anders ;) maar dat is inderdaad wel een beetje erg streng. Zal wel automagisch zijn gedaan.

Maar vinden jullie Assassins Creed ook zo'n vies spel?
It is the butt of a few jokes. :)

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 19:53

RayNbow

Kirika <3

Hmm... Microsoft heeft de source van calc online gezet?

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Die stond toch al online? >:)

Ik heb eens wat door ratpak gebrowsed tijdens de development van m'n arbitrary precision arithmetic lib. Zit blijkbaar dus nog steeds in de moderne Calc :)

[ Voor 61% gewijzigd door .oisyn op 06-03-2019 20:59 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 19:53

RayNbow

Kirika <3

Is niet de meest recente. ;) Denk niet als ik voor die oude repo PRs aanmaak, dat dat invloed zal hebben op de gebruikerservaring van de huidige Win10 gebruikers. :p

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 23:03
RayNbow schreef op donderdag 7 maart 2019 @ 09:17:
[...]


Is niet de meest recente. ;) Denk niet als ik voor die oude repo PRs aanmaak, dat dat invloed zal hebben op de gebruikerservaring van de huidige Win10 gebruikers. :p
Ach. Windows blijft Windows. Zelfs in Windows 10 zitten nog schermen met een Windows 95 look-and-feel, inclusief 8-bit kleuren icoontjes.

Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 19:53

RayNbow

Kirika <3

Hmm... ben je wat bezig geweest met het schetsen van wat templated C++-klassen... besef je opeens dat de boel ook nog ge(de)serialiseerd moet worden. :X

* RayNbow gaat eens kijken hoe ie dit gaat oplossen. 🤔
ThomasG schreef op donderdag 7 maart 2019 @ 12:27:
[...]
Ach. Windows blijft Windows. Zelfs in Windows 10 zitten nog schermen met een Windows 95 look-and-feel, inclusief 8-bit kleuren icoontjes.
En wat heeft dat te maken met het wel of niet kunnen bijdragen aan een stuk software? ;)

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 23:03
RayNbow schreef op donderdag 7 maart 2019 @ 19:48:
Hmm... ben je wat bezig geweest met het schetsen van wat templated C++-klassen... besef je opeens dat de boel ook nog ge(de)serialiseerd moet worden. :X

* RayNbow gaat eens kijken hoe ie dit gaat oplossen. 🤔


[...]

En wat heeft dat te maken met het wel of niet kunnen bijdragen aan een stuk software? ;)
Jjij doet net alsof dat niet zou kunnen omdat we nu bij Windows 10 zitten. In die repository zit bijvoorbeeld ook de broncode van notepad, en dat zit er in Windows 10 nog steeds in. En als je bang bent dat de look-and-feel van die applicaties verouderd zijn, zit Windows 10 daar ook nog vol mee. Dus er is eigenlijk geen reden waarom het niet zou kunnen.

Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 18-09 22:08
ThomasG schreef op donderdag 7 maart 2019 @ 12:27:
[...]
Ach. Windows blijft Windows. Zelfs in Windows 10 zitten nog schermen met een Windows 95 look-and-feel, inclusief 8-bit kleuren icoontjes.
Gelukkig wel .. nog regelmatig die "oude" (en krachtigere / lowlevel) tools nodig om dingen vlot te trekken waar geen "hippe materialized" variant van bestaat.
Bijvb het oer oude "Post" icoontje met de toolmeuk er achter, om een semi vernaggelde Outlook met gepast geweld weer terug in het hok te krijgen.

Acties:
  • +1 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 19:53

RayNbow

Kirika <3

ThomasG schreef op donderdag 7 maart 2019 @ 22:39:
[...]
Jjij doet net alsof dat niet zou kunnen omdat we nu bij Windows 10 zitten.
Het verschil is het volgende:
  • Ik maak een PR aan voor Microsofts repository. PR wordt geaccepteerd. Mijn bijdrage wordt uitgerold aan iedereen die Windows 10 gebruikt.
  • Ik maak een PR aan voor de repo die .oisyn in "De Devschuur Coffee Corner - Iteratie ⓬" linkte. PR wordt geaccepteerd. Vrijwel niemand zal deze bijdrage zien.

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • +4 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

https://www.hanselman.com...RunNETCoreOnOpenFaas.aspx

Met een paar dagen de spulletjes in huis. :)

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • kevintjeb
  • Registratie: Juli 2013
  • Laatst online: 10-01 14:42
Heel leuk om te doen, ik heb zelf ook een keer een rpi toren gemaakt voor kubernetes :)

Acties:
  • +1 Henk 'm!

  • Merethil
  • Registratie: December 2008
  • Laatst online: 19-09 10:24
Leuk spul! Ik ben aan de slag gegaan met Docker Swarm en een Raspberry Pi clusterhat, was ook een leuk dingetje. Op gekomen om dat te doen na het lezen van een blogpost erover van @Hydra .

Acties:
  • +1 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Vet! Ik wil hier ook weer een keer mee verder gaan. Die Clusterhat van me (blog post) is lastig te combineren met Kubernetes en aangezien ik nu als ZZPer werk, kan ik die dingen gewoon zakelijk boeken.

Edit: Gah, tempting... Heb je trouwens de nieuwe 3B+ gekocht? Veel snellere ethernet.

[ Voor 7% gewijzigd door Hydra op 08-03-2019 11:25 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Oe die clusterhat is ook wel tof. Ik had ook nog gekeken naar die compute modules maar heb toch voor deze gekozen. Niet echt met een specifieke reden ofzo. Had ook nog gekeken naar een POE switch maar die POE hat heeft issues met USB en ik las dat sommige injectors weer problemen hebben met een 3B+ ( te weinig voltage enzo). Nu dus maar gewoon een Anker USB charger genomen. Er zijn al variabelen genoeg zo. :)

De volgende stap is Hadoop, Kafka en Spark er op te zetten. Openfaas ziet er ook wel goed uit, in combinatie met F# zal dat vast wel mogelijkheden bieden. :) Een brave new world.

4 x een 3B+ en 32GB kaartjes en zo'n toren: https://www.amazon.com/IL...r-Raspberry/dp/B0768DDTKD

Plus nog wat kabeltjes enzo.

[ Voor 11% gewijzigd door Sandor_Clegane op 08-03-2019 12:16 ]

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
@Sandor_Clegane ik kan die clusterhat afraden hoor. An sich werkt het leuk maar er zitten nogal wat haken en ogen aan omdat je netwerkt via 'gadget mode'. Dat moet aanstaan in de kernel (je kunt geen willekeurige rasbian erop zetten zonder enorm te sleutelen) en je zit met IP tables gedoe. 'Gewoon' die dingen aansluiten op een switch is makkelijker. Overigens; met een zwik Zero W's zou je het zonder die gadget mode kunnen doen, die hebben wifi. Dan gebruik je die hat alleen voor power.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

@Hydra Goed om te weten. Ik ben niet zo van de Wifi. :)

Gewoon een kabeltje, kan weer een stuk minder mis gaan.

Less alienation, more cooperation.


Acties:
  • +3 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 19-09 08:51

Janoz

Moderator Devschuur®

!litemod

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Firesphere schreef op maandag 4 maart 2019 @ 04:39:
[...]

Hier wordt regelmatig geroepen "Yes, thingy is totally a legit technical term!"
Ach, ik heb een keer code mogen fixen waarin de betreffende developer alles op deze manier had genamed:

code:
1
var fooThingy = new FooManager();


En dan letterlijke -elke- class heette manager, en -elke- instantie van een class heette thingy.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • +1 Henk 'm!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19-09 18:29

Crazy D

I think we should take a look.

Grijze Vos schreef op zaterdag 9 maart 2019 @ 12:12:
En dan letterlijke -elke- class heette manager, en -elke- instantie van een class heette thingy.
Consequent zijn is belangrijk :P

Exact expert nodig?


Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Heeft iemand een idee voor een fijne zelf hostbare ide (a la eclipse CHE?) voor op een raspberry pi met python support? CHE werkt wel, maar daar is weer geen goede plugin voor ARM voor Python beschikbaar.

Ik zit wat development op een pi te doen en merk dat alle alternatieven net-niet zijn (pycharm community editie doet geen remote interpreter, een NFS mount waar je code op de pi staat en je IDE Op je desktop betekent een SSH sessie en telkens met de hand dingen starten, geen idee en puur vi gaat wel maar word je na een tijdje ook verdrietig van).

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Een echte IDE op iets wat minder power heeft dan je telefoon? Je moet 't maar willen.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Hydra schreef op woensdag 13 maart 2019 @ 15:10:
Een echte IDE op iets wat minder power heeft dan je telefoon? Je moet 't maar willen.
CHE schijnt best okay te werken voor C-ontwikkeling. En ja het is niet extreem snel enzo, maar daar ben ik me van bewust. Een pi3B is trouwens een redelijk competent apparaat ;).

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 20:45
Boudewijn schreef op woensdag 13 maart 2019 @ 14:59:
een NFS mount waar je code op de pi staat en je IDE Op je desktop betekent een SSH sessie en telkens met de hand dingen starten
Die snap ik niet. NFS staat los van ssh en dingen met de hand starten kun je automatiseren toch?

Wat je ook nog kan doen: er zijn ssh clients die bestanden vanaf je desktop 'on save' kunnen synced naar je PI, werkt misschien ook wel handig.

Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

rutgerw schreef op woensdag 13 maart 2019 @ 15:44:
[...]


Die snap ik niet. NFS staat los van ssh en dingen met de hand starten kun je automatiseren toch?
Tuurlijk, ik vroeg me alleen af of het ook webbased kan. Hoef je het niet te automatiseren.
Wat je ook nog kan doen: er zijn ssh clients die bestanden vanaf je desktop 'on save' kunnen synced naar je PI, werkt misschien ook wel handig.
Dat is wel een aardige, ik heb nu gewoon een sshfs mount waar pycharm zijn spullen naartoe schrijft en een losse SSH sessie waar ik de scriptjes op de pi draai. Het was mooi geweest als het allemaal net zo makkelijk was al lokaal.

i3 + moederbord + geheugen kopen?


Acties:
  • +2 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Zo, na bijna 4 maanden heb ik eindelijk een replacement voor mijn kapotte pricewatch: Philips BDM4037UW/00 Zilver @ work :Z

Ding viel gewoon nog onder de fabrieksgarantie, maar denk maar niet dat Philips dat binnen een redelijke termijn oplost. Sowieso had onze office manager te maken met iemand met het IQ van een aardappel aan de andere kant van de lijn. Eerst konden ze geen vervangend exemplaar vinden. Toen moest hij uit Duitsland komen. Toen moest hij toch uit Engeland komen. Goed, eindelijk opgestuurd, kregen we een Track&Trace code van 10 cijfers - dat moest 14 cijfers zijn. Ja maar dit was echt het goede nummer (was het niet), en na 2 dagen zouden we het ontvangen (niets ontvangen na 2 dagen). Oh ja maar nu echt na 2 dagen (nog steeds niets). En ja dat nummer klopt echt, ik heb het zelf gecontroleerd (DPD gebeld, nummer klopt niet). Oh misschien is het dan toch dit nummer (you think?!). DPD weer gebeld, bleek dat dat een pakket was zonder bezorgadres dus ze wisten daar ook niet wat ze ermee moesten |:(

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
.oisyn schreef op woensdag 13 maart 2019 @ 15:54:
DPD weer gebeld, bleek dat dat een pakket was zonder bezorgadres dus ze wisten daar ook niet wat ze ermee moesten
:D

"Blij dat je belt, dat ding ligt hier al zo lang en wij weten hier ook niet wat we ermee aan moeten. Waar moet het heen?"?

Zo had ik ooit iets met een PostNL-pakket. Ik was niet thuis, en had ervoor gekozen om het te laten afleveren bij de pakketautomaat. In de PostNL-app verscheen op een gegeven moment de melding 'afgeleverd bij ophaalpunt', maar de code die ik via sms zou krijgen om 'm af te kunnen halen kwam maar niet.

Contact gezocht met de klantenservice van PostNL, en ook van de afzender. Niemand kon iets doen, "hij zou er moeten zijn" en "de code zou per sms moeten komen". Na 4 werkdagen kwam iemand tot de ontdekking "Misschien ligt hij bij het postpunt bij de Bruna, vlakbij"... waar mijn pakket inderdaad al een week bleek te liggen. Maar dat meldde de PostNL-app dus niet... 8)7

[ Voor 48% gewijzigd door Alex) op 13-03-2019 17:16 ]

We are shaping the future


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Zo zijn er ook eens een stapeltje Xbox One X prototype devkits bij de Mediamarkt afgeleverd :X. Als je de expeditieruimte onder ons toenmalige gebouw helemaal uitreed kwam je bij het laadgedeelte van de MediaMarkt. UPC had ons pakket gemarkeerd als afgeleverd, inclusief handtekening, maar wij hadden niets ontvangen. Volgens de GPS van de chauffeur was het wel ergens in die straat (die verder is afgesloten van het publiek). Dus ik met een collega door die straat, even wezen vragen bij de beveiliging of parkeerbeheer of hij misschien daar was afgeleverd. Toen zag ik de laaddeur van de MM. Het zal toch niet? Wij daar aanbellen, bleken zij inderdaad een pallet hebben ontvangen die niet voor hun was. Ze hadden al contact opgenomen met UPC om 'm weer op te komen halen 8)7

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
@.oisyn Ex-Philips werknemer hier. Ze hebben een jaar of wat geleden besloten het hele bestelsysteem om te pleuren. Werkt allemaal nog steeds niet, ook voor interne werknemers niet. Na de omzetting waren al je oude orders weg, dus toen een apparaat van mij stuk ging kon ik geen oude factuur vinden. Nabellen met de directe collega's gaf aan dat als ik het factuurnummer, transactiedatum, bedraf en afleveradres gaf ze het wel konden vinden....... toen maar een AVG verzoekje gedaan, maar toen kwam de manager bij me langs en was ie boos.

Oftewel, ze zijn heel veel oude facturen kwijt...

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • +1 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Oeps, lol.

Ik dacht slim te zijn in m'n code generator. Ik had nog geen ondersteuning voor read-modify-write assignments zoals de += operator, en die dacht ik even heel snel toe te kunnen voegen door x += y te transformeren maar x = x + y.

Even niet bij stilgestaan dat x een expressie met side-effects kan zijn. Ik zat me al af te vragen waarom a[i++] += 10 niet goed werkte :D

Dat werd dus a[i++] = a[i++] + 10 :P

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • +4 Henk 'm!

  • Koenvh
  • Registratie: December 2011
  • Laatst online: 18-09 00:57

Koenvh

Hier tekenen: ______

.oisyn schreef op woensdag 13 maart 2019 @ 19:45:
Oeps, lol.

Ik dacht slim te zijn in m'n code generator. Ik had nog geen ondersteuning voor read-modify-write assignments zoals de += operator, en die dacht ik even heel snel toe te kunnen voegen door x += y te transformeren maar x = x + y.

Even niet bij stilgestaan dat x een expressie met side-effects kan zijn. Ik zat me al af te vragen waarom a[i++] += 10 niet goed werkte :D

Dat werd dus a[i++] = a[i++] + 10 :P
Ik zie het probleem niet, dat doet Java ook :+

🠕 This side up


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

:D

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

* bwerg mompelt iets over functionele talen. :P
Auw.

Heeft geen speciale krachten en is daar erg boos over.


Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 23:03
Maar wel enkel bij strings. Tot JDK 9 gebruikte Java compiler stiekem een StringBuilder als je a += "b"; deed. Sinds JDK 9 doen ze dat echter op de @.oisyn manier :+

Acties:
  • +2 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 15-09 05:50

Douweegbertje

Wat kinderachtig.. godverdomme

Ik ben nu voor het eerst bezig met Go. Een basis tooltje aan het maken om open ports te discoveren en dan met chromeheadless hier screenshots van te maken :)

Het is toch wel even wennen, echter een hele toffe taal (imo).

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

ThomasG schreef op donderdag 14 maart 2019 @ 14:32:
[...]
Maar wel enkel bij strings. Tot JDK 9 gebruikte Java compiler stiekem een StringBuilder als je a += "b"; deed.
Ik mag hopen van niet? Lijkt me een beetje zinloos. Het datatype van het ding waar je += op aanroept is een String. Het eindresultaat moet dan ook een string zijn. Je concatenate bovendien maar 2 strings. Wat voor nut is het dan om eerst een Stringbuffer te constructen? Die is pas echt nuttig bij meer dan 2 concatenaties.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 23:03
.oisyn schreef op donderdag 14 maart 2019 @ 22:23:
[...]

Ik mag hopen van niet? Lijkt me een beetje zinloos. Het datatype van het ding waar je += op aanroept is een String. Het eindresultaat moet dan ook een string zijn. Je concatenate bovendien maar 2 strings. Wat voor nut is het dan om eerst een Stringbuffer te constructen? Die is pas echt nuttig bij meer dan 2 concatenaties.
Hoe raar dat ook klinkt, is dat toch echt zo. Dit is de code hoe de javac/jvm string concatenaties afhandeld. De standaard manier was tot JDK 9 "inline", wat stiekem een StringBuilder is. Sinds JDK 9 is het geloof ik "indyWithConstants", waar de bug in zat.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

ThomasG schreef op vrijdag 15 maart 2019 @ 10:14:
[...]
Hoe raar dat ook klinkt, is dat toch echt zo.
Ik kan niet zoveel met die code, maar ik denk toch echt dat je in de war bent. Maar mijn ervaring met Java gaat tot versie 4 ofzo, dus wellicht heb ik het mis ;)

Dit zijn StringBuilder appends:
Java:
1
String s = "aap" + noot + mies() + "vis";

Hier worden geen StringBuilders gemaakt
Java:
1
2
3
String s = "aap";
s += noot;
s += mies();


Daarom was de performance van het tweede stukje vaak ook slechter bij veel concatenaties. Maar de code per statement omschrijven naar een StringBuilder is nog veel inefficienter.

.edit: I stand corrected:
Java:
1
2
3
4
5
6
7
8
9
10
class Test
{
        public static void main(String[] args)
        {
                String s = "aap";
                s += "noot";
                s += args[0];
                System.out.println(s);
        }
}

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
Compiled from "Test.java"
class Test {
  Test();
    Code:
       0: aload_0
       1: invokespecial #1                  // Method java/lang/Object."<init>":()V
       4: return

  public static void main(java.lang.String[]);
    Code:
       0: ldc           #2                  // String aap
       2: astore_1
       3: new           #3                  // class java/lang/StringBuilder
       6: dup
       7: invokespecial #4                  // Method java/lang/StringBuilder."<init>":()V
      10: aload_1
      11: invokevirtual #5                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      14: ldc           #6                  // String noot
      16: invokevirtual #5                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      19: invokevirtual #7                  // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      22: astore_1
      23: new           #3                  // class java/lang/StringBuilder
      26: dup
      27: invokespecial #4                  // Method java/lang/StringBuilder."<init>":()V
      30: aload_1
      31: invokevirtual #5                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      34: aload_0
      35: iconst_0
      36: aaload
      37: invokevirtual #5                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      40: invokevirtual #7                  // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      43: astore_1
      44: getstatic     #8                  // Field java/lang/System.out:Ljava/io/PrintStream;
      47: aload_1
      48: invokevirtual #9                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
      51: return
}

|:(
Java 8 btw.

Oftewel, dit is wat hij ervan maakt:
Java:
1
2
3
4
5
6
7
8
9
10
class Test
{
        public static void main(String[] args)
        {
                String s = "aap";
                s = new StringBuilder().append(s).append("noot").toString();   // s += "noot"
                s = new StringBuilder().append(s).append(args[0]).toString();  // s += args[0]
                System.out.println(s);
        }
}

Waanzin.

Maar wacht, Mike, er is meer!

De StringBuilder default constructor reserveert altijd een buffer van 16 characters. De constructor met een String argument reserveert de lengte van die string + 16 charakters. Het zou dus efficienter zijn om new StringBuffer(s) te doen ipv new StringBuffer().append(s), want als 's' langer is dan 16 tekens dan is de initiele buffer voor niets gealloceerd.

[ Voor 73% gewijzigd door .oisyn op 15-03-2019 10:53 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • +1 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Het valt mij voor java (EE) nog mee dat er niet een abstract factory pattern gebruikt wordt om de stringbuilder aan te maken ;)

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
De Java compiler is te stom op te poepen. Da's met opzet; de intelligentie zit in de JIT compiler in de JVM. De Java compiler doet vrijwel niks anders dan je Java code 1 op 1 vertalen naar bytecode.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hydra schreef op vrijdag 15 maart 2019 @ 10:57:
De Java compiler is te stom op te poepen. Da's met opzet; de intelligentie zit in de JIT compiler in de JVM. De Java compiler doet vrijwel niks anders dan je Java code 1 op 1 vertalen naar bytecode.
Niet dus, hij loopt er rare StringBuffer constructies van te maken. Dat had de JITer natuurlijk ook prima zelf kunnen doen.

[ Voor 6% gewijzigd door .oisyn op 15-03-2019 11:14 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
.oisyn schreef op vrijdag 15 maart 2019 @ 11:14:
Niet dus, hij loopt er rare StringBuffer constructies van te maken.
Dat bedoel ik niet. Concatenaties van Strings worden omgezet in StringBuilder aanroepen ja, maar die hele bende wordt uiteindelijk door de JIT compiler alsnog omgezet. Dus het heeft weinig zin om hier iets over te zeggen. Wat wel zo is dat als je in een loop dingen gaat concatten je beter wel zelf met een StringBuilder aan de slag kan gaan. Het gaat me er vooral om dat JavaC eigenlijk vrijwel geen optimalisaties doet. Dit concatenation stukje is vooral omdat de + operator voor Strings puur syntactic sugar is.

Als je echt de impact at runtime wil zien moet je echt met JMH aan de slag.

[ Voor 6% gewijzigd door Hydra op 15-03-2019 11:17 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Grrr, stroomstoring hier. Net nadat ik bedacht dat ik mijn oplader van mijn laptop even moest pakken omdat de accu bijna leeg is :(

@Hydra maar dan is het toch juist stom dat de compiler dat probeert te optimaliseren. Nu moet de JIT nog weer moeite gaan doen om het terug te optimaliseren.

[ Voor 38% gewijzigd door Woy op 15-03-2019 11:20 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hydra schreef op vrijdag 15 maart 2019 @ 11:17:
[...]


Dat bedoel ik niet. Concatenaties van Strings worden omgezet in StringBuilder aanroepen ja, maar die hele bende wordt uiteindelijk door de JIT compiler alsnog omgezet.
I know, mijn beef is met het feit dat de compiler hier dus alsnog iets anders van maakt dan een s = s.concat("noot");. Blijkbaar vinden ze het in dit geval dus wel nodig om een "optimalisatie" te doen door StringBuilder te gebruiken, wat ik een gekke keuze vind.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Woy schreef op vrijdag 15 maart 2019 @ 11:18:
@Hydra maar dan is het toch juist stom dat de compiler dat probeert te optimaliseren. Nu moet de JIT nog weer moeite gaan doen om het terug te optimaliseren.
Misschien komt 't omdat ik nogal in die Java wereld zit, maar het is niet bedoeld als optimalisatie. Het aanelkaar concatten van Strings gaat in code meestal zo:

code:
1
String s = "Of our " + numberOfRecords + " records we found " + records.size() + " matching your query";


Aangezien Strings gewoon objecten zijn moet die + om een of andere manier omgezet worden door javac. Daarin hadden ze twee keuzes. String.concat of StringBuilder. De keuze voor StringBuilder is simpel te verklaren; Strings zijn immutable in Java en je zou in bovenstaand voorbeeld dus een hoop objecten op de heap maken terwijl je er uiteindelijk maar 1 over wil houden.

Het is in die twee mogelijkheden gewoon de beste keuze. Het is niet bedoeld als optimalisatie voor string concatenaties; javac kijkt niet naar meerdere regels en dit is ook basis Java kennis voor developers dat je als je meer doet dan bovenstaande gewoon zelf een StringBuilder moet gebruiken. Helemaal in een for-loop.
.oisyn schreef op vrijdag 15 maart 2019 @ 11:21:
I know, mijn beef is met het feit dat de compiler hier dus alsnog iets anders van maakt dan een s = s.concat("noot");. Blijkbaar vinden ze het in dit geval dus wel nodig om een "optimalisatie" te doen door StringBuilder te gebruiken, wat ik een gekke keuze vind.
Zie hierboven. Strings in Java zijn immutable (concat() levert een nieuwe string op) en het is kwa oplossingsrichting gewoon de meest logische om te voorkomen dat je meer op de heap alloceert dan nodig is.

[ Voor 19% gewijzigd door Hydra op 15-03-2019 11:35 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hydra schreef op vrijdag 15 maart 2019 @ 11:34:
De keuze voor StringBuilder is simpel te verklaren; Strings zijn immutable in Java en je zou in bovenstaand voorbeeld dus een hoop objecten op de heap maken terwijl je er uiteindelijk maar 1 over wil houden.
Die keuze ís toch een optimalisatie? En het is niet alsof StringBuffer die allocaties op de heap intern niet doet. De constructor doet gewoon een new char[16], die vervolgens weggegooid wordt als de eerste string groter is dan 16 characters. Kun je beter een StringBuffer constructen met direct de eerste string.

[ Voor 29% gewijzigd door .oisyn op 15-03-2019 11:46 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
.oisyn schreef op vrijdag 15 maart 2019 @ 11:36:
Die keuze ís toch een optimalisatie?
Jawel, maar ik probeer de intentie hiervan uit te leggen. Voor mensen die 't eventueel interessant vinden. Ik probeer vooral uit te leggen dat javac op geen manier te vergelijken is met bijvoorbeeld een C++ compiler. Niet helemaal 't zelfde soort optimalisaties dus :)

https://niels.nu


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hydra schreef op vrijdag 15 maart 2019 @ 12:13:
[...]


Jawel, maar ik probeer de intentie hiervan uit te leggen.
Maar je bent tegenstrijdig in je uitleg ;). Javac doet niet aan optimalisaties, maar blijkbaar wil het wel zo min mogelijk heap objecten constructen, terwijl er een heel voordehandliggende constructie bestaat die veel meer overeenkomt met de code (String.concat), en daarnaast dus alsnog niet de beste keuze maakt om dat doel (minder heap objecten) te bewerkstelligen.
Ik probeer vooral uit te leggen dat javac op geen manier te vergelijken is met bijvoorbeeld een C++ compiler. Niet helemaal 't zelfde soort optimalisaties dus :)
I know ;)

Overigens denk ik dat ik de daadwerkelijke reden wel snap. StringBuffer.append() accepteert meerdere types, String.concat() alleen Strings.

[ Voor 9% gewijzigd door .oisyn op 15-03-2019 12:24 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
.oisyn schreef op vrijdag 15 maart 2019 @ 12:18:
Maar je bent tegenstrijdig in je uitleg ;). Javac doet niet aan optimalisaties, maar blijkbaar wil het wel zo min mogelijk heap objecten constructen, terwijl er een heel voordehandliggende constructie bestaat die veel meer overeenkomt met de code (String.concat), en daarnaast dus alsnog niet de beste keuze maakt om dat doel (minder heap objecten) te bewerkstelligen.
Dit snap ik niet. In het voorbeeld dat ik gaf had de concat optie meer objecten (string kopieen) opgeleverd dan de stringbuilder versie.
.oisyn schreef op vrijdag 15 maart 2019 @ 12:18:
Overigens denk ik dat ik de daadwerkelijke reden wel snap. StringBuffer.append() accepteert meerdere types, String.concat() alleen Strings.
Nee, de reden is vooral dat strings immutable zijn. Ze hadden prima overloads voor andere types kunnen maken voor String concat.

[ Voor 45% gewijzigd door Hydra op 15-03-2019 12:29 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hydra schreef op vrijdag 15 maart 2019 @ 12:28:
[...]


Dit snap ik niet. In het voorbeeld dat ik gaf had de concat optie meer objecten (string kopieen) opgeleverd dan de stringbuilder versie.
Elke keer dat een string niet in de buffer van een StringBuilder past moet de interne array ook opnieuw worden aangemaakt. Dat zijn net zo goed heap objecten. Als wat jij zegt idd een reden is, dan hadden ze de eerste string wel aan de constructor van de StringBuilder gegeven.
Nee, de reden is vooral dat strings immutable zijn.
Dat is waarom StringBuffer bestaat ja.
Ze hadden prima overloads voor andere types kunnen maken voor String concat.
Dat had ook gekund, maar een beetje DRY als je al die code ook al moet intypen voor StringBuilder.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
.oisyn schreef op vrijdag 15 maart 2019 @ 12:40:
Elke keer dat een string niet in de buffer van een StringBuffer past moet de interne array ook opnieuw worden aangemaakt. Dat zijn net zo goed heap objecten. Als wat jij zegt idd een reden is, dan hadden ze de eerste string wel aan de constructor van de StringBuffer gegeven.
StringBuilder, StringBuffer is de thread-safe versie.

En had gekund. Die interne array wordt overigens elke keer verdubbeld als ik 't me goed herinner. Daarnaast wordt er onderwater bij array-copies het OS gebruikt, die dat best efficient doet. Anyway; ze hebben hiervoor gekozen omdat het gemiddeld een prima keuze is. Voor niet gemiddelde zaken (dus appends in een for loop) moet je het als developer zelf implementeren.
Dat had ook gekund, maar een beetje DRY als je al die code ook al moet intypen voor StringBuffer.
Ik denk niet dat dat de voornaamste beweging is. Maar Stuart Marks reageert op Twitter meestal wel vlot op dit soort vragen als je echt de originele beweegredenen wil weten ;)

https://niels.nu


Acties:
  • 0 Henk 'm!

  • NMH
  • Registratie: Oktober 2015
  • Laatst online: 01:03

NMH

Moderator General Chat
.oisyn schreef op woensdag 13 maart 2019 @ 19:45:
Oeps, lol.

Ik dacht slim te zijn in m'n code generator. Ik had nog geen ondersteuning voor read-modify-write assignments zoals de += operator, en die dacht ik even heel snel toe te kunnen voegen door x += y te transformeren maar x = x + y.

Even niet bij stilgestaan dat x een expressie met side-effects kan zijn. Ik zat me al af te vragen waarom a[i++] += 10 niet goed werkte :D

Dat werd dus a[i++] = a[i++] + 10 :P
Heh, dat doet me denken aan toen ik vele jaren geleden een parser/interpreter voor een eigen taaltje in elkaar kluste. Ik weet de details niet meer, maar if expressies handelde ik in eerste instantie af door zowel de then en de else tak te evalueren en vervolgens aan de hand van de boolean expressie te kiezen welke tak gebruikt werd. Dat werkte spectaculair slecht voor recursieve functies. ;)

Acties:
  • +2 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
En developer bij ons gaat er prat op dat ie self-taught is, wat natuurlijk prima is, dat ben ik ook. Ik heb alleen wel een sterke wiskunde basis vanuit mijn opleiding en heb dingen als Algorithms van Sedgewick gelezen. Hij heeft zoiets: "Waarom het wiel opnieuw uitvinden als je gewoon libraries kan gebruiken, stuk efficienter".

Nou, meneer had een A* algoritme gepakt voor een module die lijnen moet tekenen tussen verschillende elementen in een canvas. Voor 10 elementen ging het best prima, maar op de test-server ging ie op z'n plaat bij 100 elementen.

Inspecteer ik de code van het A* algoritme, en staat er letterlijk dat er een priority-queue o.i.d. gebruikt moet worden in het commentaar van de code die gecopy-paste is. Kijk ik welke collectie er gebruikt is is het gewoon een mutable List die elke keer gesorteerd wordt....... Op de vraag waarom ie dat gedaan heeft was het antwoord dat het toch niet uitmaakt wanneer ie gesorteerd wordt. Gesorteerd = gesorteerd. En PriorityQueue is echt weer zo'n "bloated java-dingetje". :'(

java.util.PriorityQueue erin geplakt en voila....

Hem toch maar duidelijk aangegeven dat data-structures redelijk belangrijk zijn en zich maar moet gaan inlezen.

Pluspunt: fijn om de code 100x sneller te laten lopen met praktisch 1 wijziging.

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

@armageddon_2k1 Dat is wel de enige manier waarop dat soort figuren leren - door keihard op hun bek te gaan :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

armageddon_2k1 schreef op dinsdag 19 maart 2019 @ 09:55:
En PriorityQueue is echt weer zo'n "bloated java-dingetje". :'(
Wat zei hij toen je vroeg wat er bloated aan was?

Goed bezig trouwens. Hopelijk heeft hij er wat van geleerd.

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


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
@armageddon_2k1 brute force developers: shit copy-pasten van SO, dat enigzins werkend krijgen, melden dat het 'af' is, en dan anderen hun problemen op laten lossen. Zou er vrij chagerijnig van worden op den duur. Niks mis met weinig ervaring als je maar de juiste instelling hebt.

https://niels.nu


Acties:
  • +1 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
@kenneth Heb ik niet gevraagd, want ik weet dat het iemand is die Java nou eenmaal bloated vind. Dat is een discussie die nergens heen gaat. Zelf vind ik Java helemaal prima voor sommige taken. Performant genoeg.

Overigens is het vaak wel een vrij effectieve developer op frontend, maar ik ga hem niet meer op kritische stukken zetten voordat ie datastructuren wat meer onder de knie heeft.

Noem me een nerd, maar ik vond het juist superleuk om zelf een hele lading datastructures na te bouwen in Java. Niet voor productie, maar voor de hobby om te leren. Super leerzaam. Barnes-Hut Tree was een hele leuke om te doen.

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Ja precies. Iemand kan je honderd keer uitleggen hoe quicksort werkt maar een keer zelf implementeren en het kwartje landt gelijk. Je snapt de afwegingen en de voor- en nadelen sneller. Heb nog een paar boeken over algoritmes op m'n leeslijst staan waar ik gauw aan toe hoop te komen. CLRS en een boek van Jeff Erickson. Die van jou zegt me niets, even kijken wat te verschillen zijn en welke de beste reviews heeft :)

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


Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
kenneth schreef op dinsdag 19 maart 2019 @ 10:49:
Ja precies. Iemand kan je honderd keer uitleggen hoe quicksort werkt maar een keer zelf implementeren en het kwartje landt gelijk. Je snapt de afwegingen en de voor- en nadelen sneller. Heb nog een paar boeken over algoritmes op m'n leeslijst staan waar ik gauw aan toe hoop te komen. CLRS en een boek van Jeff Erickson. Die van jou zegt me niets, even kijken wat te verschillen zijn en welke de beste reviews heeft :)
Heb de Coursera cursus Algorithms I en II gedaan. De instructor is Robert Sedgewick en die heeft een boek daarover. Geen idee of het een standaardwerk is, maar vond het wel een prima boek.

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

Iets wat je in een lijst gooit zou je 'listable' kunnen noemen, maar hoe noem je iets waar een lijst in zit? :o

Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

armageddon_2k1 schreef op dinsdag 19 maart 2019 @ 10:53:
[...]


Heb de Coursera cursus Algorithms I en II gedaan. De instructor is Robert Sedgewick en die heeft een boek daarover. Geen idee of het een standaardwerk is, maar vond het wel een prima boek.
Het beeld dat ik krijg van de recensies op Goodreads is dat het boek van Sedgewick beter en toegankelijker is dan het CLRS-boek. Beiden worden veel gebruikt op universiteiten en die van Sedgewick inderdaad ook op Coursera. Ik ga voor die van Sedgewick, thanks!
TheNephilim schreef op dinsdag 19 maart 2019 @ 10:58:
Iets wat je in een lijst gooit zou je 'listable' kunnen noemen, maar hoe noem je iets waar een lijst in zit? :o
Container? Enumerable? Iterable?

[ Voor 16% gewijzigd door kenneth op 19-03-2019 11:12 ]

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


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

kenneth schreef op dinsdag 19 maart 2019 @ 11:10:

[...]

Container? Enumerable? Iterable?
Neuj, het gaat meer om een visuele lijst, denk aan Trello. Voorlopig maar even met 'subject' verder :+

Acties:
  • +2 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Ik zou gaan voor AbstractMarshallingListContainerAwareFactory

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
.oisyn schreef op dinsdag 19 maart 2019 @ 10:06:
@armageddon_2k1 Dat is wel de enige manier waarop dat soort figuren leren - door keihard op hun bek te gaan :)
Niet altijd hoor...

Een paar jaar geleden had ik te maken met iemand die bij hoog en bij laag bleef volhouden dat zijn oplossing de beste was, een bepaald stuk functionaliteit moest en zou op zijn manier geïmplementeerd worden.

Er was al een proof-of-concept-implementatie die voldeed aan de requirements, maar volgens hem was dat 'niet goed genoeg'. Die persoon kon echter niet onderbouwen waarom zijn oplossing beter zou zijn en advies van mijn kant ('doe eens een test om te zien hoe je oplossing presteert') werd genegeerd.

Uiteindelijk had hij het op zijn manier gebouwd en over de heg gegooid: "het is klaar!". Toen ik het testte werkte het niet: het compileerde, maar gaf exceptions bij het uitvoeren. Ook was de performance om te huilen, iets wat in de POC in 5 minuten gedaan was duurde in de 'veel betere' oplossing 3 uur.

Hiervan leerde hij echter niet, hij bleef eigenwijs volhouden dat zijn oplossingen de beste waren. Dit zorgde later nog voor de nodige spanningen.

We are shaping the future


Acties:
  • +4 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
.oisyn zegt ook niet dat deze manier ervoor zorgt dat ze er altijd van leren. Hij zegt alleen dat de enige manier dat dat soort gasten kunnen leren is als ze op hun bek gaan. Dat sluit niet uit dat er mensen niet leren ook al gaan ze op hun bek ;)

</pedantmodus>

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • +1 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dat wilde ik idd ook typen :P

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Koenvh
  • Registratie: December 2011
  • Laatst online: 18-09 00:57

Koenvh

Hier tekenen: ______

.oisyn schreef op dinsdag 19 maart 2019 @ 10:06:
@armageddon_2k1 Dat is wel de enige manier waarop dat soort figuren leren - door keihard op hun bek te gaan :)
Kun je ze niet een handje helpen? :+

🠕 This side up


Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 15-09 05:50

Douweegbertje

Wat kinderachtig.. godverdomme

armageddon_2k1 schreef op dinsdag 19 maart 2019 @ 14:05:
.oisyn zegt ook niet dat deze manier ervoor zorgt dat ze er altijd van leren. Hij zegt alleen dat de enige manier dat dat soort gasten kunnen leren is als ze op hun bek gaan. Dat sluit niet uit dat er mensen niet leren ook al gaan ze op hun bek ;)

</pedantmodus>
Ik moet alleen zeggen dat we het veel over de "mensen" hebben terwijl het onderliggende probleem vaak bij de organisatie zelf ligt. Bij een vroegere baan heb ik mijzelf ook betrapt om een eigenwijze prick te zijn. Uiteindelijk opgelost door van baan te switchen.
Stiekem door de spanningen, stress, deadlines en weinig ondersteuning en innovatie vanuit de organisatie werd ik dus tamelijk vervelend om mee te werken.

Nu jaren later zie ik ook dat als je mensen de ruimte geeft en beter ondersteund dat ze ook kunnen gaan floreren. Gegeven is dat je zelf ook wel een beetje inzicht en motivatie moet hebben om zoiets te kunnen doorbreken.

Nu ik gedetacheerd word en aan diverse opdrachten werk zie en ervaar ik steeds meer bedrijven en teams. Het blijft nog steeds het moeilijkste om veranderingen binnen een organisatie te brengen. Het is echter wel mogelijk en dan zie je die bepaalde types ook opeens bijdraaien :)

tl;dr het ligt vaak niet 100% aan die persoon.

Acties:
  • 0 Henk 'm!

  • Antrax
  • Registratie: April 2012
  • Laatst online: 19-09 13:34
Oh man, epilepsie en een naderende sluitende sprint is geen pretje.. waarschijnlijk nachtje doortrekken :F

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


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Antrax schreef op woensdag 20 maart 2019 @ 14:40:
Oh man, epilepsie en een naderende sluitende sprint is geen pretje.. waarschijnlijk nachtje doortrekken :F
Ik mis natuurlijk een hoop context (en natuurlijk weerhoudt dat me er niet van te reageren :P) maar een sluitende sprint moet toch geen wissel trekken op je gezondheid?

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


Acties:
  • 0 Henk 'm!

  • Antrax
  • Registratie: April 2012
  • Laatst online: 19-09 13:34
kenneth schreef op woensdag 20 maart 2019 @ 14:42:
[...]

Ik mis natuurlijk een hoop context (en natuurlijk weerhoudt dat me er niet van te reageren :P) maar een sluitende sprint moet toch geen wissel trekken op je gezondheid?
Nee maar het werk blijft daardoor wel liggen ;)

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


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Antrax schreef op woensdag 20 maart 2019 @ 14:50:
[...]

Nee maar het werk blijft daardoor wel liggen ;)
Epilepsie bij teamgenoot waardoor anderen meer moeten werken ofzo?

Anyway, take care. Let op je lichamelijke en geestelijke gezondheid :)

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


Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 18-09 20:54
armageddon_2k1 schreef op dinsdag 19 maart 2019 @ 09:55:
En developer bij ons gaat er prat op dat ie self-taught is, wat natuurlijk prima is, dat ben ik ook. Ik heb alleen wel een sterke wiskunde basis vanuit mijn opleiding en heb dingen als Algorithms van Sedgewick gelezen. Hij heeft zoiets: "Waarom het wiel opnieuw uitvinden als je gewoon libraries kan gebruiken, stuk efficienter".

Nou, meneer had een A* algoritme gepakt voor een module die lijnen moet tekenen tussen verschillende elementen in een canvas. Voor 10 elementen ging het best prima, maar op de test-server ging ie op z'n plaat bij 100 elementen.

Inspecteer ik de code van het A* algoritme, en staat er letterlijk dat er een priority-queue o.i.d. gebruikt moet worden in het commentaar van de code die gecopy-paste is. Kijk ik welke collectie er gebruikt is is het gewoon een mutable List die elke keer gesorteerd wordt....... Op de vraag waarom ie dat gedaan heeft was het antwoord dat het toch niet uitmaakt wanneer ie gesorteerd wordt. Gesorteerd = gesorteerd. En PriorityQueue is echt weer zo'n "bloated java-dingetje". :'(

java.util.PriorityQueue erin geplakt en voila....

Hem toch maar duidelijk aangegeven dat data-structures redelijk belangrijk zijn en zich maar moet gaan inlezen.

Pluspunt: fijn om de code 100x sneller te laten lopen met praktisch 1 wijziging.
Ik zie het ook heel vaak in de praktijk helaas. Net als in jouw geval merk ik ook vaak dat het fron-enders zijn die niet zo heel erg thuis zijn in de wat meer fundamentele concepten uit de informatica. Kreeg laast nog weer de vraag 'wat is een set nou weer, waarom niet gewoon een array?' en dan krijg je een hele verbaasde blik als je het basisconcept van een set (verzameling unieke elementen zonder ordening) en de operaties op een set (union / complement / enz) uitlegt.

Gecompileerde talen met static typing zijn dan inderdaad al snel bloated of 'moeilijk', maar vaak betekent dat vooral dat men in dynamische talen werkt, iets een beetje werkend krijgt onder de juiste voorwaarden en vervolgens de boel heel vaak faalt als het in productie staat.
Ik zie ook vaak dat er even heel snel een mock-upje of dashboard in elkaar wordt gegooid en gepresenteerd bij de klant als 'proof of concept', terwijl hetgeen er in elkaar geknutseld is volkomen triviaal is en dus helemaal geen bewijs van het concept omdat het voorbij gaat aan de echte pijnpunten bij een serieuze implementatie van het concept. :P

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


Acties:
  • +1 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Antrax schreef op woensdag 20 maart 2019 @ 14:50:
[...]

Nee maar het werk blijft daardoor wel liggen ;)
Nou, dus? Als het team niet op 100% kan draaien om gezondheidsredenen betekent dat dat de normale velocity daardoor niet gehandhaafd kan blijven. Dan is er maar wat spill-over naar de volgende sprint.

Jammer joh, shit happens. :)

We are shaping the future


Acties:
  • 0 Henk 'm!

  • Hipska
  • Registratie: Mei 2008
  • Laatst online: 15-09 21:08
Waar kan je weer open data sets downloaden of verkrijgen?

Bv lijsten met Merknamen, Landen, Besturingssystemen, ...

Acties:
  • 0 Henk 'm!

  • tafkaw
  • Registratie: December 2002
  • Laatst online: 19-09 13:32
Hipska schreef op woensdag 20 maart 2019 @ 16:43:
Waar kan je weer open data sets downloaden of verkrijgen?

Bv lijsten met Merknamen, Landen, Besturingssystemen, ...
Zoiets? https://metacpan.org/release/JASONK/Data-Faker-0.07

Zijn ook wel ports van in andere talen.

Acties:
  • +1 Henk 'm!

  • ikvanwinsum
  • Registratie: Februari 2011
  • Laatst online: 19-09 17:10

ikvanwinsum

/dev/null

Hipska schreef op woensdag 20 maart 2019 @ 16:43:
Waar kan je weer open data sets downloaden of verkrijgen?

Bv lijsten met Merknamen, Landen, Besturingssystemen, ...
LMGTFY: https://github.com/awesomedata/awesome-public-datasets O-)

U zegt: ‘Alles is toegestaan.’ Zeker, maar niet alles is goed. Alles is toegestaan, maar niet alles is opbouwend.


Acties:
  • +4 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hipska schreef op woensdag 20 maart 2019 @ 16:43:
Waar kan je weer open data sets downloaden of verkrijgen?

Bv lijsten met Merknamen, Landen, Besturingssystemen, ...
Bij mij
  • Toyota
  • Siemens
  • McDonald's
  • Engeland
  • Frankrijk
  • Mongolië
  • Windows 95
  • Windows 98
  • Windows XP

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • +1 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 01:40

orf

.oisyn schreef op woensdag 20 maart 2019 @ 17:33:
[...]


Bij mij
  • Toyota
  • Siemens
  • McDonald's
  • Engeland
  • Frankrijk
  • Mongolië
  • Windows 95
  • Windows 98
  • Windows XP
Heb je ook nog een download linkje?

Acties:
  • +2 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • BladeSlayer1000
  • Registratie: April 2013
  • Laatst online: 17-09 20:36
@Antrax succes!

Vandaag mijn eindelijk mijn verjaardagscadeau binnen gekregen; het boek 'Eloquent javascript third edition'. Nu tijd zien te vinden om eraan te beginnen ;(

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22:02
BladeSlayer1000 schreef op woensdag 20 maart 2019 @ 19:18:
@Antrax succes!

Vandaag mijn eindelijk mijn verjaardagscadeau binnen gekregen; het boek 'Eloquent javascript third edition'. Nu tijd zien te vinden om eraan te beginnen ;(
"Eloquent"....tjee, kom ik aan met mijn pummelige C .... :/

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • BladeSlayer1000
  • Registratie: April 2013
  • Laatst online: 17-09 20:36
farlane schreef op woensdag 20 maart 2019 @ 19:59:
[...]


"Eloquent"....tjee, kom ik aan met mijn pummelige C .... :/
Ieder zijn eigen taal, en om eerlijk te zijn mijn javascript kennis is ook zeer triest te noemen :9

Acties:
  • +1 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

farlane schreef op woensdag 20 maart 2019 @ 19:59:
[...]


"Eloquent"....tjee, kom ik aan met mijn pummelige C .... :/
Het is terecht dat je je schaamt :+

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • +2 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 18-09 20:54
Eloquent JavaScript, Dat klinkt toch een beetje als vriendelijk Duits. :P

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


Acties:
  • +1 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22:02
Mugwump schreef op woensdag 20 maart 2019 @ 20:12:
Eloquent JavaScript, Dat klinkt toch een beetje als vriendelijk Duits. :P
WIE MEINEN SIE DAS KUMPEL?

Eloquent Duits is eigenlijk super gaaf, echt

[ Voor 12% gewijzigd door farlane op 20-03-2019 20:15 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • +1 Henk 'm!

  • Koenvh
  • Registratie: December 2011
  • Laatst online: 18-09 00:57

Koenvh

Hier tekenen: ______

Mugwump schreef op woensdag 20 maart 2019 @ 20:12:
Eloquent JavaScript, Dat klinkt toch een beetje als vriendelijk Duits. :P
Ik zal maar toehappen:

Was hast du gegen die schöne deutsche Sprache?

🠕 This side up


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22:02
Uebrigens: YouTube: Helene Fischer Meine Welt <3

Scarborough Fair is volgens mij 1 miljoen miljard keer gecovered ....

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Ed Vertijsment
  • Registratie: Juli 2014
  • Laatst online: 21:21
Ik word een beetje agressief van dit soort grappen: https://css-tricks.com/css-modules-part-1-need/

Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 23:03
Mugwump schreef op woensdag 20 maart 2019 @ 20:12:
Eloquent JavaScript, Dat klinkt toch een beetje als vriendelijk Duits. :P
Toch kinkt Nederlands voor buitenlanders veel onvriendelijker dan Duits :+ Vooral door onze unieke harde G-klant, die zelfs het Duits niet heeft.

Ja, als je gaat schreeuwen zijn ze aan elkaar gewaagd. Bij maar normaal praten klinkt Nederlands agresiever.

Acties:
  • +1 Henk 'm!

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 19-08 14:24

ZaZ

Tweakers abonnee

Lekker op de bank


Acties:
  • +2 Henk 'm!

  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

Het ziet er uit als een oplossing voor een probleem wat je niet zou moeten hebben...

Acties:
  • +1 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

In mijn ogen is dit een “oplossing” voor een “probleem” dat alleen mensen hebben die niet genoeg verstand van CSS hebben of niet genoeg tijd in een goede CSS opzet willen/kunnen steken.

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 18-09 20:54
ThomasG schreef op donderdag 21 maart 2019 @ 09:52:
[...]
Toch kinkt Nederlands voor buitenlanders veel onvriendelijker dan Duits :+ Vooral door onze unieke harde G-klant, die zelfs het Duits niet heeft.

Ja, als je gaat schreeuwen zijn ze aan elkaar gewaagd. Bij maar normaal praten klinkt Nederlands agresiever.
Belgen zijn ook helemaal niet dom en met de gierigheid van Nederlanders valt het ook wel mee. ;)

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


Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 23:03
Mugwump schreef op donderdag 21 maart 2019 @ 10:39:
[...]


Belgen zijn ook helemaal niet dom en met de gierigheid van Nederlanders valt het ook wel mee. ;)
Dat hangt er vanaf of ze uit Vlaanderen of Wallonië komen :+

Acties:
  • 0 Henk 'm!

  • BladeSlayer1000
  • Registratie: April 2013
  • Laatst online: 17-09 20:36
Een "oplossing" bedenken voor een probleem dat niet bestaat, waarom?!
Pagina: 1 ... 21 ... 102 Laatste

Dit topic is gesloten.

Let op:
Dit topic is niet de plaats om te lopen helpdesken. De Coffee Corner is primair bedoeld als uitlaatklep voor iedereen in de Devschuur® en niet als vraagbaak.