De Devschuur Coffee Corner Overzicht Volgende deel Laatste deel

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

Pagina: 1 ... 90 ... 201 Laatste
Acties:
  • 852.779 views

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 23-12 16:00

Sebazzz

3dp

Verwijderd schreef op donderdag 16 december 2010 @ 08:39:
Niet SQL Server afstraffen omdat MySQL het fout doet :P
Trollface (IE)

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 08:53

Matis

Rubber Rocket

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


  • defcon84
  • Registratie: September 2009
  • Laatst online: 14:47

defcon84

Multipass?


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 08:53

Matis

Rubber Rocket

No need, XP doet het al best aardig en onze printer doet dat helemaal goed. Het ziet er spot-on uit :*)

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


  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 12-12 21:27
Verwijderd schreef op donderdag 16 december 2010 @ 00:38:
[...]

Je kan toch ook gewoon events aan SP hangen? Zodra er een item bijkomt, geupdate wordt etc, dan je eigen data bijwerken?
Klopt, dat is een mogelijkheid die we gaan bekijken. Alleen moeten we dan nog iets vinden zodat op alle web frontend servers de cache wordt geleegd/bijgewerkt, daar hebben we nu nog geen oplossing voor.

We are shaping the future


  • Devilly
  • Registratie: Januari 2009
  • Niet online
Chrome for a Cause

Ik vind het een mooi initiatief en wilde het jullie daarom niet onthouden. :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:41
Matis schreef op donderdag 16 december 2010 @ 08:35:
[...]

:X :'(

Ik heb laatst een inhouse website/overzicht gemaakt waarin ik vanuit PHP moest communiceren met een MSSQL database (2008). Wat werd ik daar verdrietig van. GROUP BY werkt niet zoals ik gehoopd/verwacht had vanuit mijn MySQL verleden en ook zijn er een groot aantal verschillen die ik niet positief vind.
Idd. GROUP BY werkt in SQL Server zoals het hoort. :)

https://fgheysels.github.io/


  • defcon84
  • Registratie: September 2009
  • Laatst online: 14:47

defcon84

Multipass?

Matis schreef op donderdag 16 december 2010 @ 09:12:
[...]

No need, XP doet het al best aardig en onze printer doet dat helemaal goed. Het ziet er spot-on uit :*)
haha ok :-)

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 17-10 16:43
Matis schreef op donderdag 16 december 2010 @ 08:35:
[...]

:X :'(

Ik heb laatst een inhouse website/overzicht gemaakt waarin ik vanuit PHP moest communiceren met een MSSQL database (2008). Wat werd ik daar verdrietig van. GROUP BY werkt niet zoals ik gehoopd/verwacht had vanuit mijn MySQL verleden en ook zijn er een groot aantal verschillen die ik niet positief vind.

In PHP moet je weer opzoek naar de DLL's om PDO te kunnen laten babbelen met MSSQL en dan is het ook nog de kunst om het geoptimaliseerd te krijgen.

* Matis zou dat niet als upgrade zien.
Ik vind dit echt een geweldige opmerking :D. Jaren lang hoor ik in #prog mensen zeuren over de vage Group By in MySQL, maar nu voor het eerste hoor ik het andersom :).

~ Mijn prog blog!


  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Matis schreef op donderdag 16 december 2010 @ 08:35:
[...]
Wat werd ik daar verdrietig van. GROUP BY werkt niet zoals ik gehoopd/verwacht had vanuit mijn MySQL verleden en ook zijn er een groot aantal verschillen die ik niet positief vind.
Wat verwacht je dan van een GROUP BY? En welke andere verschillen ben je tegengekomen?

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 15:02
Ik kan zo snel de link even niet vinden .Alleen wat Mysql doet is dat 't zich aan een wat oudere ISO standaard houdt (wat dit betreft), en daar wat intelligents bovenop verzonnen heeft. Dat laatste komt niet helemaal overeen met de meest recente ISO SQL standaard, en dus zeggen veel mensen dat 't zich niet aan "de standaard" houdt.

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 08:53

Matis

Rubber Rocket

Meh, wat ik vreemd/anders vind van MySQL naar MSSQL is het feit dat je GROUP BY moet doen op kolommen die je wilt selecteren.

Met andere woorden, als ik in een tabel de eerste voornamen van unieke achternamen van collega's wil weten kon ik in MySQL doen:
SQL:
1
SELECT voornaam FROM medewerkers GROUP BY achternaam

Dan zou MySQL mij het gewenste resultaat teruggeven. Terwijl MSSQL gaat lopen bitchen over het feit dat voornaam niet in de GROUP BY clausule zit.

Nu zal er hoogstwaarschijnlijk een goede reden voor zijn en een mogelijkheid om het toch werkend te krijgen voor mij, maar ik heb het nog niet voor elkaar :P
Ik ben ook al vanaf vanochtend bezig om in PDO een variable kolomnaam toe te kunnen voegen in mijn statement; Iets in de trant van
PHP:
1
2
3
4
$sth = $this->_dbh->prepare('SELECT * FROM dbo._CrossTable ORDER BY :OrderColumn :AscDesc');
$sth->setFetchMode(PDO::FETCH_ASSOC);
$sth->bindValue(':OrderColumn', 'SpfTimestamp', PDO::PARAM_STR);
$sth->bindValue(':AscDesc', 'DESC', PDO::PARAM_STR);

Maar ook daar gaat het weer eens fout; Wat ik in feite probeer te doen is het volgende: http://databases.aspfaq.c...n-an-order-by-clause.html

Maar dan met PDO :)

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


  • Haan
  • Registratie: Februari 2004
  • Laatst online: 23-12 13:22

Haan

dotnetter

Devilly schreef op donderdag 16 december 2010 @ 10:06:
Chrome for a Cause

Ik vind het een mooi initiatief en wilde het jullie daarom niet onthouden. :)
Ook even geïnstalleerd, kleine moeite om te doen :)

Kater? Eerst water, de rest komt later


Verwijderd

Matis schreef op donderdag 16 december 2010 @ 11:20:
Dan zou MySQL mij het gewenste resultaat teruggeven. Terwijl MSSQL gaat lopen bitchen over het feit dat voornaam niet in de GROUP BY clausule zit.
Ik heb het altijd logisch gevonden: Je kan niet groeperen op data die je niet geselecteerd hebt. Dat MySQL de data stiekem TOCH selecteert is een ander verhaal :p

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:23

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik heb het altijd logisch gevonden: Je kan niet groeperen op data die je niet geselecteerd hebt
Wat is de logica daarachter dan? Je kunt toch ook filteren op data die je niet geselecteerd hebt? Ik denk dat je er verkeerd tegenaan kijkt. Het is niet "pak deze velden en doe daar wat mee". Het is "arrangeer de data van deze tabellen op deze manier, en geef vervolgens deze velden terug". Wellicht dat LINQ meer volgens jouw intuitie werkt, daar staat de SELECT achteraan ipv vooraan, en begin je dus met de FROM.

Bovendien gaat het daar niet eens om, het is andersom: het gaat om kolommen selecteren (zonder aggregates) die niet in de group by zitten (je mag namelijk gewoon groeperen op data die je niet selecteert). En volgens de SQL standaard mag dat ook gewoon in bepaalde situaties (volgens mij als elke tuple van de kolom in de groep dezelfde waarde heeft oid). MySQL is hierin wat losser dan noodzakelijk, en die geeft gewoon een willekeurige tuple terug. SQL Server daarentegen is juist weer wat stricter, daar mag je sowieso niet zo'n kolom selecteren. MySQL is het meest compliant wat dat punt betreft.

[ Voor 57% gewijzigd door .oisyn op 16-12-2010 11:36 ]

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.


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16:19

Janoz

Moderator Devschuur®

!litemod

Matis schreef op donderdag 16 december 2010 @ 11:20:
Meh, wat ik vreemd/anders vind van MySQL naar MSSQL is het feit dat je GROUP BY moet doen op kolommen die je wilt selecteren.

Met andere woorden, als ik in een tabel de eerste een willekeurige voornaam per unieke achternamen van collega's wil weten kon ik in MySQL doen:
SQL:
1
SELECT voornaam FROM medewerkers GROUP BY achternaam

Dan zou MySQL mij het gewenste resultaat teruggeven. Terwijl MSSQL gaat lopen bitchen over het feit dat voornaam niet in de GROUP BY clausule zit.
Daar, gefixed.

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


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:41
Matis schreef op donderdag 16 december 2010 @ 11:20:
Meh, wat ik vreemd/anders vind van MySQL naar MSSQL is het feit dat je GROUP BY moet doen op kolommen die je wilt selecteren.
GROUP BY moet je enkel gebruiken als je een aggregate gebruikt. Jouw voorbeeld is dus niet correct; daar moet je geen group by gebruiken.
Als je gewoon een lijst van unieke achternamen wilt weten, dan gebruik je DISTINCT:
code:
1
SELECT DISTINCT achternaam FROM medewerkers.

En ja, dat werkt op de gereturnde resultset.
Met andere woorden, als ik in een tabel de eerste voornamen van unieke achternamen van collega's wil weten kon ik in MySQL doen:
SQL:
1
SELECT voornaam FROM medewerkers GROUP BY achternaam

Dan zou MySQL mij het gewenste resultaat teruggeven. Terwijl MSSQL gaat lopen bitchen over het feit dat voornaam niet in de GROUP BY clausule zit.

Nu zal er hoogstwaarschijnlijk een goede reden voor zijn
De reden is simpel:
Gegeven volgende medewerkers:

pietje puk
jantje puk

Wat moet de DB dan teruggeven in dit geval ? Wil je pietje of wil je jantje ?
Op basis van wat moet de DB daar een beslissing in nemen ?

https://fgheysels.github.io/


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 08:53

Matis

Rubber Rocket

Misschien had ik idd de omschrijving eerste beter had weg kunnen laten en kunnen vervangen door willekeurige.
Verder ben ik het eens met wat .oisyn zegt.

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


  • Haan
  • Registratie: Februari 2004
  • Laatst online: 23-12 13:22

Haan

dotnetter

Waarom zou je in vredesnaam een willekeurig record uit de database willen halen?

Kater? Eerst water, de rest komt later


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:23

.oisyn

Moderator Devschuur®

Demotivational Speaker

whoami schreef op donderdag 16 december 2010 @ 12:19:
Op basis van wat moet de DB daar een beslissing in nemen ?
Op basis van de stand van de maan natuurlijk, duh!

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.


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Matis schreef op donderdag 16 december 2010 @ 12:32:
Misschien had ik idd de omschrijving eerste beter had weg kunnen laten en kunnen vervangen door willekeurige.
Verder ben ik het eens met wat .oisyn zegt.
Maar vervang de query dan gewoon voor
SQL:
1
SELECT max(voornaam) FROM medewerkers GROUP BY achternaam

Dan is tenminste duidelijk wat je doet. Bij de "willekeurige" optie kunnen mensen er op een gegeven moment op gaan vertrouwen dat bijvoorbeeld het record die als inserted is terug gegeven word, terwijl dat gedrag bij een andere engine of versie best weer anders kan zijn, en dus bugs introduceert.

“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.”


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 08:53

Matis

Rubber Rocket

Wat ik dus wilde zeggen, was het feit dat MySQL IMHO logischer met queries omgaat dan dat MSSQL dat doet.
Waarschijnlijk heeft dat te maken met het feit dat ik altijd met MySQL heb gewerkt en het daarom als standaard ben gaan zien, maar de overstap naar MSSQL was toch een stuk groter dan verwacht.

En aangezien dat ik als autist verandering als iets slechts zie, is MSSQL itt MySQL iij slecht :+

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


  • OnTracK
  • Registratie: Oktober 2002
  • Laatst online: 13:29
Het zou mooi zijn als er een ANY(field) en RANDOM(field) aggregrate functies zouden komen. Dan kan je lekker expliciteren dat het je geen flikker uitmaakt welke je wil terughebben.

Het verschil tussen deze twee zou zijn dat ANY geoptimaliseerd kan worden, en altijd degene mag teruggeven die hij zelf wil (altijd dezelfde, of soms ineens een andere). RANDOM daarentegen geeft een echt willekeurige terug.

Maargoed, tegenwoordig ben ik enorm fan van PostgreSQL, en deed ik geen vage dingen met MySQL dus heb ik ook geen last van vage verschillen.

Not everybody wins, and certainly not everybody wins all the time.
But once you get into your boat, push off and tie into your shoes.
Then you have indeed won far more than those who have never tried.


  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

whoami schreef op donderdag 16 december 2010 @ 12:19:
De reden is simpel:
Gegeven volgende medewerkers:

pietje puk
jantje puk

Wat moet de DB dan teruggeven in dit geval ? Wil je pietje of wil je jantje ?
Op basis van wat moet de DB daar een beslissing in nemen ?
Dat argument gaat net zo goed op bij de query:
SQL:
1
SELECT voornaam, achternaam FROM medewerkers GROUP BY achternaam

En ik vermoed dat die het wel gewoon doet. Dus dat zal de reden niet zijn :)

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 23-12 13:22

Haan

dotnetter

eamelink schreef op donderdag 16 december 2010 @ 14:46:
[...]


Dat argument gaat net zo goed op bij de query:
SQL:
1
SELECT voornaam, achternaam FROM medewerkers GROUP BY achternaam

En ik vermoed dat die het wel gewoon doet. Dus dat zal de reden niet zijn :)
Assumption is the mother of...
SQL:
1
select firstname, lastname from contact group by lastname
Msg 8120, Level 16, State 1, Line 1
Column 'contact.FirstName' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
@ hieronder: ik was lekker eerder! *O*

Kater? Eerst water, de rest komt later


  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Matis schreef op donderdag 16 december 2010 @ 14:25:
Wat ik dus wilde zeggen, was het feit dat MySQL IMHO logischer met queries omgaat dan dat MSSQL dat doet.
Met GROUP BY is MySQL niet logischer want je kan queries schrijven waarvan je het resultaat niet kan voorspellen.
OnTracK schreef op donderdag 16 december 2010 @ 14:41:
Het zou mooi zijn als er een ANY(field) en RANDOM(field) aggregrate functies zouden komen. Dan kan je lekker expliciteren dat het je geen flikker uitmaakt welke je wil terughebben.
Ik kan geen use case verzinnen waarneer je dat zou willen bij een GROUP BY, als je al zoiets zo willen zijn er denk ik betere methodes te verzinnen.
eamelink schreef op donderdag 16 december 2010 @ 14:46:
[...]


Dat argument gaat net zo goed op bij de query:
SQL:
1
SELECT voornaam, achternaam FROM medewerkers GROUP BY achternaam

En ik vermoed dat die het wel gewoon doet. Dus dat zal de reden niet zijn :)
Nee hoor, MS SQL (en Oracle volgens mij ook) accepteren de query niet. Of er moet een aggregate functie gebruikt worden of het veld moet in de GROUP BY clause staan.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
eamelink schreef op donderdag 16 december 2010 @ 14:46:
[...]
Dat argument gaat net zo goed op bij de query:
SQL:
1
SELECT voornaam, achternaam FROM medewerkers GROUP BY achternaam

En ik vermoed dat die het wel gewoon doet. Dus dat zal de reden niet zijn :)
Die zal op MSSQL ook terrecht niet werken, aangezien er op voornaam geen aggregate function is toegepast en hij ook niet in de GROUP BY voorkomt. De regel is gewoon heel simpel: Als er een GROUP BY clause is, dan moeten alle velden in de GROUP BY clause komen OF i.c.m. een aggregate function gebruikt worden.

Dat is ook logisch aangezien je bij die velden een set terug krijgt, en op de een of andere manier moet er daar een uit gekozen worden.

Alleen zou het zo kunnen zijn dat je bijvoorbeeld op een ID groepeert, waardoor het overbodig kan zijn om op de andere velden te groeperen die bij dat ID horen ( aangezien die toch altijd gelijk zijn ). Dat is ook de reden dat je bij MySQL niet alle velden hoeft op te geven.

MS-SQL is daar dus iets te strict in, echter MySQL is weer te vrij in het toestaan van velden waar geen aggregate over heen gegaan is.

“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.”


  • OnTracK
  • Registratie: Oktober 2002
  • Laatst online: 13:29
PolarBear schreef op donderdag 16 december 2010 @ 14:55:
[...]

Ik kan geen use case verzinnen waarneer je dat zou willen bij een GROUP BY, als je al zoiets zo willen zijn er denk ik betere methodes te verzinnen.
Nee, voor ANY waarschijnlijk niet, ik kom ook nooit een situatie tegen waarin ik ANY nodig zou hebben. Het is meer een gedachte om mensen GROUP BY uit te leggen en wat ze nou eigenlijk aan het doen zijn. RANDOM lijkt me soms best handig: "selecteer albums en een willekeurige foto per foto-album". Ookal kan je het ook anders oplossen.

Ook kan je hierdoor wel de GROUP BY strict maken en toch een makkelijke oplossing bieden aan alle niet werkende queries zodat mensen gaan nadenken over wat ze nou eigenlijk aan het SELECT'en zijn.

[ Voor 7% gewijzigd door OnTracK op 16-12-2010 15:02 ]

Not everybody wins, and certainly not everybody wins all the time.
But once you get into your boat, push off and tie into your shoes.
Then you have indeed won far more than those who have never tried.


  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Woy schreef op donderdag 16 december 2010 @ 14:56:
[...]
MS-SQL is daar dus iets te strict in, echter MySQL is weer te vrij in het toestaan van velden waar geen aggregate over heen gegaan is.
De manier waarom MS SQL Server het doet heeft wel als consequentie dat de resultset altijd hetzelfde zal zijn of in iedergeval voorspelbaar. Bij MySQL is dat niet het geval en dat is toch een min punt voor een database.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
PolarBear schreef op donderdag 16 december 2010 @ 15:01:
[...]

De manier waarom MS SQL Server het doet heeft wel als consequentie dat de resultset altijd hetzelfde zal zijn of in iedergeval voorspelbaar. Bij MySQL is dat niet het geval en dat is toch een min punt voor een database.
De manier waarop het in de standaard toegestaan is om niet alle velden in een aggregate of group by op te nemen, levert ook altijd een consequent resultaat op.

Het punt is dat MySQL ruimer is dan de standaard, en daarom in sommige gevallen "Undefined" behavior heeft MS-Sql beperkt de gebruiker dan weer enigsinds

SQL:
1
2
3
4
5
SELECT MAX(Voornaam), Achternaam, MAX(OrderID), OrderNaam
FROM Personen
INNER JOIN Orders
  on Orders.PersoonId = Personen.PersoonId
GROUP BY Achternaam

Iets in die trend zou volgens de standaard mogen, maar is in MS-SQL niet toegestaan, maar wel in MySql

“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.”


  • OnTracK
  • Registratie: Oktober 2002
  • Laatst online: 13:29
Zou dat volgens de standaard de OrderNaam opleveren die bij MAX(OrderID) hoort? En doet dat het ook altijd in mySQL? Ik dacht dat dat onderdeel was van undefined behaviour en over het algemeen goed uitkwam omdat die rij inderdaad al bekeken werd.

Not everybody wins, and certainly not everybody wins all the time.
But once you get into your boat, push off and tie into your shoes.
Then you have indeed won far more than those who have never tried.


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
OnTracK schreef op donderdag 16 december 2010 @ 15:12:
Zou dat volgens de standaard de OrderNaam opleveren die bij MAX(OrderID) hoort? En doet dat het ook altijd in mySQL? Ik dacht dat dat onderdeel was van undefined behaviour en over het algemeen goed uitkwam omdat die rij inderdaad al bekeken werd.
Volgens mij wel, al moet ik zeggen dat ik dat ook niet 100% zeker weet.

“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.”


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:23

.oisyn

Moderator Devschuur®

Demotivational Speaker

Volgens mij klopt die query niet, aangezien je meestal meerdere orders hebt per persoon (en niet andersom). OrderNaam is daarom ambigu.

SQL:
1
2
3
4
5
SELECT voornaam, achternaam, COUNT(o.order_id)
FROM personen p
LEFT JOIN orders o
    ON o.persoon_id = p.persoon_id
GROUP BY p.id

Met deze query selecteer de namen van alle mensen en hoeveel orders er zijn. Dit mag niet volgens MS SQL, terwijl het nogal duidelijk is dat er maar 1 voornaam en achternaam is per persoon_id.

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.


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je hebt gelijk. Als je op een veld groepeert hoef je niet op de daarbij behorende velden te groeperen ( Aangezien die altijd gelijk zijn. Ik was even in de war

Echter haalt dat ook weer niet zoveel, aangezien voornaam, achternaam bij je group by erbij zetten exact hetzelfde resultaat bied.

[ Voor 3% gewijzigd door Woy op 16-12-2010 15:25 ]

“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.”


  • defcon84
  • Registratie: September 2009
  • Laatst online: 14:47

defcon84

Multipass?

wat een gegroepeer hier :)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16:19

Janoz

Moderator Devschuur®

!litemod

OnTracK schreef op donderdag 16 december 2010 @ 15:12:
Zou dat volgens de standaard de OrderNaam opleveren die bij MAX(OrderID) hoort? En doet dat het ook altijd in mySQL? Ik dacht dat dat onderdeel was van undefined behaviour en over het algemeen goed uitkwam omdat die rij inderdaad al bekeken werd.
Nee, en dat is precies de meest gemaakte denkfout, veroorzaakt door dit ietwat lakse gedrag van MySQL.

Het punt is dat een aggregerende functie een functie is waar een aantal gegevens ingaan en waar vervolgens 1 gegeven uitkomt. Het is een wiskundige bewerking die meerdere dingen terugbrengt naar 1. De denkfout is dat die ene waarde een referentie is naar 1 van de records die er in gegaan zijn, dat is het niet. Bij AVG, maar vooral SUM is het veel duidelijker dat er helemaal geen koppeling is tussen het resultaat en een bepaald record.

Breiden we het voorbeeld uit:

jan,jansma,1
jan,jansma,2
piet,jansma,3

Zou je nu de max van voornaam nemen en grouperen op achternaam. Welk cijfer moet de database nu pakken dan?

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


  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 23-12 16:00

Sebazzz

3dp

Dingen in hokjes stoppen is iets wat je tegenwoordig niet meer dient te doen inderdaad :p

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ik wilde ff de spec erbij pakken (want ik vind de MSSQL ook de meest logische :P), maar waarom staat MSDN ineens bovenaan als je zoekt op T-SQL * :?

Zijn ze bezig met een PR offensief? Normaliter had je toch die oude bijna text only website?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 15:02
Maar, als het echt zo'n probleem is, dan zet je toch je mode op ONLY_FULL_GROUP_BY ? Gedraagt het zich hetzelfde als mssql afaik.

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 23-12 20:07
Vergeet niet dat het een VM was met beperkte ram :P (en vele features werden pas voor de eerste keer aangeroepen waardoor er nog niets in de cache zat).

  • hostname
  • Registratie: April 2009
  • Laatst online: 14:02
Freeaqingme schreef op donderdag 16 december 2010 @ 17:19:
Maar, als het echt zo'n probleem is, dan zet je toch je mode op ONLY_FULL_GROUP_BY ? Gedraagt het zich hetzelfde als mssql afaik.
Het is sowieso aan te raden om (i.i.g. in development) je SQL mode op iets als
code:
1
NO_ENGINE_SUBSTITUTION,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES

te zetten. Dan is MySQL nog best een redelijke RDMBS naar mijn mening.

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 23-12 16:00

Sebazzz

3dp

Zo, mijn Das Keyboard is binnen, wat een plezier is het toch om hierop te typen :)

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Verwijderd

Sebazzz schreef op donderdag 16 december 2010 @ 17:52:
Zo, mijn Das Keyboard is binnen, wat een plezier is het toch om hierop te typen :)
En wat is het voordeel van dit keyboard?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:23

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dat je portemonnee na aanschaf een stuk lichter is.

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.


  • Haan
  • Registratie: Februari 2004
  • Laatst online: 23-12 13:22

Haan

dotnetter

BtM909 schreef op donderdag 16 december 2010 @ 17:13:
Ik wilde ff de spec erbij pakken (want ik vind de MSSQL ook de meest logische :P), maar waarom staat MSDN ineens bovenaan als je zoekt op T-SQL * :?

Zijn ze bezig met een PR offensief? Normaliter had je toch die oude bijna text only website?
Maar MS SQL ís toch ook T-SQL? Dus dan is het toch logisch als MSDN ook hoog in de zoekresultaten staat? Bij mij is de eerste hit trouwens van Wikipedia.

Kater? Eerst water, de rest komt later


  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 15:02
hostname schreef op donderdag 16 december 2010 @ 17:40:
[...]

Het is sowieso aan te raden om (i.i.g. in development) je SQL mode op iets als
code:
1
NO_ENGINE_SUBSTITUTION,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES

te zetten. Dan is MySQL nog best een redelijke RDMBS naar mijn mening.
Mee eens, alleen die ONLY_FULL_GROUP heb ik er uitgehaald toen ik deze query had:
code:
1
 SELECT count(t1.some_col), t2.* FROM t1 join t2 ON t1.some_col = t2.pk_col GROUP BY t1.some_col


En t2 is een view van >35 cols (die ik nodig had), en toen fijntjes mocht gaan uittypen.

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


Verwijderd

Sebazzz schreef op donderdag 16 december 2010 @ 17:52:
Zo, mijn Das Keyboard is binnen, wat een plezier is het toch om hierop te typen :)
Welke heb je?
De ultimate of de ultimate silent?

Verwijderd

Verwijderd schreef op donderdag 16 december 2010 @ 18:35:
[...]

Welke heb je?
De ultimate of de ultimate silent?
Of de professional ...

  • Hillie
  • Registratie: Januari 2000
  • Laatst online: 16:09

Hillie

Poepen = ultieme ontspanning

Ik ben met een schuin oog naar een Maltron aan het kijken. Stevig aan de prijs moet ik zeggen, maar weer een stapje comfortabeler dan een natural. :)

Liefhebber van schieten en schijten. Ouwehoer en niet-evangelisch atheist.

Daniel36: Dat zeg ik(?) Nee, dat zeg ik niet, je hebt gelijk.


Verwijderd

.oisyn schreef op donderdag 16 december 2010 @ 18:06:
Dat je portemonnee na aanschaf een stuk lichter is.
Wij hebben er meer verstand van. Voor 15 euro heb je een geweldig fijn toetsenbord!
UltraX!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 23-12 16:00

Sebazzz

3dp

Die ja, de normale, niet de silent.

Ik vind het een geweldig toetsenbord. Goede aanslag ook, erg fijn. Beter dan de UltraX, die ik overigens ook in bezit heb.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Verwijderd

Heb ook nog een Logitech G-nogiets, met van die macro toetsen, die ik nooit gebruikt heb. Bij m'n vorige werkgever kreeg ik zo'n UltraX en vond het maar een pauper ding... 9 maanden later wilde ik er niet meer vanaf en vind ik die G-nogiets kut. Type er nu ook echt moeilijk op.

  • Jan_V
  • Registratie: Maart 2002
  • Laatst online: 11:38
Vandaag druk bezig geweest met een wp7 app met het MVVM pattern in een n-layer omgeving.
Was wel even wennen om er achter te komen dat -alles- asynchroon werkt.

Had namelijk een methode gemaakt in de business laag als
code:
1
public string GetCurrentCity(GeoPosition<GeoCoordinate> position)

Waarschijnlijk kan dit prima zo, maar kreeg het niet voor elkaar.
Nu heb ik het maar zo opgelost:
C#:
1
public string GetCurrentCity(GeoPosition<GeoCoordinate> position, Action<string> respCallback)

met
C#:
1
2
3
4
5
6
7
8
9
10
11
12
private void LocationHasChanged(GeoPosition<GeoCoordinate> position)
{
    Location lb = new Business.Location();
    CurrentCity = lb.GetCurrentCity(position, UpdateCurrentCity);
}
private void UpdateCurrentCity(string newCity)
{
    Deployment.Current.Dispatcher.BeginInvoke(() =>
    {
        CurrentCity = newCity;
    });
}

De eerste keer dat ik nuttig gebruik kon maken van een Action<T>. Was er helemaal trots op.
Of dit echt best-practice is weet ik niet, dat moet nog eens even worden uitgezocht.
Voor nu was ik al lang blij dat ik een opgehaalde waarde in de view kon weergeven en dat niet alles crashte of ergens bleef hangen.
Begon wel moedeloos te worden. Dacht dat ik toch redelijk kon programmeren, maar nu ik hiermee aan de slag moest was het net alsof ik weer in de 1e klas van Informatica zat. Ach, zal na verloop van tijd wel beter worden :)

Battle.net - Jandev#2601 / XBOX: VriesDeJ


  • Ryur
  • Registratie: December 2007
  • Laatst online: 10:41
Ik ga binnenkort de Microsoft Ergonomic Natural 4000 kopen.
Wilde hem laatst al halen, maar Mediamarkt Enschede had hem niet.

Dus nu moet ik mijn vader lief aankijken om naar Mediamarkt Hengelo te gaan.
Of weet iemand of hij in de buurt van Goor in de winkels ligt?

Verwijderd

Verwijderd schreef op donderdag 16 december 2010 @ 19:59:
Heb ook nog een Logitech G-nogiets, met van die macro toetsen, die ik nooit gebruikt heb. Bij m'n vorige werkgever kreeg ik zo'n UltraX en vond het maar een pauper ding... 9 maanden later wilde ik er niet meer vanaf en vind ik die G-nogiets kut. Type er nu ook echt moeilijk op.
Ik heb de G15 en gebruik de macro toetsen wel. Als ik gewoon bezig ben heeft elke macro-toets een shortcut naar een programma (calculator, notepad, snipping tool, ...).

En in-game hebben ze ook hun functie. Het fijne aan de G15 is de display waar er verschillende apps voor bestaan.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Haan schreef op donderdag 16 december 2010 @ 18:25:
[...]

Maar MS SQL ís toch ook T-SQL? Dus dan is het toch logisch als MSDN ook hoog in de zoekresultaten staat? Bij mij is de eerste hit trouwens van Wikipedia.
Ik bedoelde eigenlijk... Vroeger kon je zoeken op bijv:

T-SQL insert
T-SQL delete
T-SQL where
T-SQL group by
catch my drift ;)

Daar kwam vroeger altijd een redelijk basic website naar voren (misschien wel van Oracle) waarbij het betreffende statement volledig werd beschreven... Nou staat overal MSDN en Technet nu ineens dik bovenaan en is die referentie site verdwenen :?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:23

.oisyn

Moderator Devschuur®

Demotivational Speaker

Jan_V schreef op donderdag 16 december 2010 @ 20:50:
Vandaag druk bezig geweest met een wp7 app met het MVVM pattern in een n-layer omgeving.
Was wel even wennen om er achter te komen dat -alles- asynchroon werkt.
Ik vind het wel jammer dat de wat geavanceerdere dingen die WPF juist zo cool maken (triggers, automatische datatemplates op basis van type) dan weer niet beschikbaar zijn in Silverlight. De viewmodel en codebehind is wat dat betreft in Silverlight veel belangrijker omdat je code moet gebruiken om de state van de View weer te geven, terwijl in WPF je de view met XAML bijna direct aan het model kunt koppelen.

Als voorbeeld bijvoorbeeld de Freecell clone waar ik mee bezig ben. Ik heb een simpele struct Card met daarin de properties Suit en Rank. In WPF zou ik met XAML alleen de graphics van een Card kunnen definieren. De kleur zou ik dan met een data trigger en een setter in kunnen stellen, maar in Silverlight heb je alleen de keuze tussen value converters en een binding met een viewmodel van Card om de kleur #FF000000 danwel #FFFF0000 te laten zijn. Ik heb hier voor de wat pragmatischere oplossing gekozen om een Card een property Color te geven die de kleurcode teruggeeft op basis van z'n Suit, maar vanuit een puristisch oogpunt natuurlijk niet helemaal netjes. Maar ik vind het wat overkill om een viewmodel representatie van Card te maken.

.edit: maar nu ik een beetje zit in te lezen in value converters (dat had ik nog niet gedaan :$) besef ik me dat ik dat beter had kunnen gebruiken :P

[ Voor 36% gewijzigd door .oisyn op 16-12-2010 22:37 ]

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.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Stuff here...

int maxretries = 3;
int tries = 0;

StatusResponse sr = null;
do
{
    try {
        sr = TheBigBadInternetConnectionSometimesB0rks.GetStatusResponse(foo);
    } catch {
        if (tries++ > maxretries)
            throw; //Bubble up
    }
} while (sr == null);

//Do stuff with sr here


Ik kan er maar niet over uit of ik dit nou een acceptabele oplossing vind of niet... Iemand wel eens een dergelijke "lus" toegepast?

[ Voor 4% gewijzigd door RobIII op 16-12-2010 23:22 ]

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

Je eigen tweaker.me redirect

Over mij


  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 11:20
RobIII schreef op donderdag 16 december 2010 @ 23:21:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Stuff here...

int maxretries = 3;
int tries = 0;

StatusResponse sr = null;
do
{
    try {
        sr = TheBigBadInternetConnectionSometimesB0rks.GetStatusResponse(foo);
    } catch {
        if (tries++ > maxretries)
            throw; //Bubble up
    }
} while (sr == null);

//Do stuff with sr here


Ik kan er maar niet over uit of ik dit nou een acceptabele oplossing vind of niet... Iemand wel eens een dergelijke "lus" toegepast?
Voor zover ik kan zien is het niet fout of niet netjes, maar ik zou het dan zo doen:

C#:
1
2
3
4
5
6
7
8
int maxTries = 3;
StatusResponse sr = null;

for (int i = 0; i < maxTries; i++) {
    try { sr = TheBigBadInternetConnectionSometimesB0rks.GetStatusResponse(foo); }
    catch (Exception e)
    if ( sr != null) break; // of i = maxTries;
}


Waarbij je evt. nog iets kunt doen met de Exception. Overigens heb ik deze code niet getest, maar even on the top of my head geschreven ;).

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:23

.oisyn

Moderator Devschuur®

Demotivational Speaker

Je mist de rethrow. Dat vereist dus weer een sr == null check na de for-loop, waarbij de originele exception overigens ook al niet meer bestaat. Of je moet in de catch dus alsnog de if (i == 2) throw; doen.

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.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
alex3305 schreef op vrijdag 17 december 2010 @ 00:01:
[...]

Voor zover ik kan zien is het niet fout of niet netjes, maar ik zou het dan zo doen:

C#:
1
2
3
4
5
6
7
8
int maxTries = 3;
StatusResponse sr = null;

for (int i = 0; i < maxTries; i++) {
    try { sr = TheBigBadInternetConnectionSometimesB0rks.GetStatusResponse(foo); }
    catch (Exception e)
    if ( sr != null) break; // of i = maxTries;
}


Waarbij je evt. nog iets kunt doen met de Exception. Overigens heb ik deze code niet getest, maar even on the top of my head geschreven ;).
Je hebt kans dat, na je for loop, sr null is ;) En ik mis de exception die bubbelt :Y)
.oisyn schreef op vrijdag 17 december 2010 @ 00:06:
Je mist de rethrow. Dat vereist dus weer een sr == null check na de for-loop, waarbij de originele exception overigens ook al niet meer bestaat. Of je moet in de catch dus alsnog de if (i == 2) throw; doen.
Psies. Je was me (again, as usual, weer) voor :P

-edit-
Ik heb 't!

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
    try {
        sr = TheBigBadInternetConnectionSometimesB0rks.GetStatusResponse(foo);
    } catch {
        try {
            sr = TheBigBadInternetConnectionSometimesB0rks.GetStatusResponse(foo);
        } catch {
            try {
                sr = TheBigBadInternetConnectionSometimesB0rks.GetStatusResponse(foo);
            } catch {
                throw;
            } 
        } 
    } 

:+

[ Voor 46% gewijzigd door RobIII op 17-12-2010 00:23 ]

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

Je eigen tweaker.me redirect

Over mij


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23-12 22:52
Is het trouwens opzettelijk dat je de operatie maximaal vijf keer probeert terwijl maxRetries drie is? Vier zou ik nog kunnen begrijpen (1 try en 3 retries) maar vijf lijkt me enigzins tegenintuïtief en wellicht niet de bedoeling.

Persoonlijk zou ik dan ook liever voor de variant gaan waarbij je gewoon het maximaal aantal pogingen specificeert, à la alex3305 maar zonder de bugs:
Java:
1
2
3
4
5
6
7
8
9
int tries = maxTries;
while (tries-- > 0) {
    try {
        sr = TheBigBadInternetConnectionSometimesB0rks.GetStatusResponse(foo);
        break;
    } catch {
        if (tries == 0) throw;
    }
}


edit:
Trouwens, helpdesken in de coffee corner? Foei!

[ Voor 9% gewijzigd door Soultaker op 17-12-2010 00:34 ]


Verwijderd

Verwijderd schreef op donderdag 16 december 2010 @ 21:47:
[...]


Ik heb de G15 en gebruik de macro toetsen wel. Als ik gewoon bezig ben heeft elke macro-toets een shortcut naar een programma (calculator, notepad, snipping tool, ...).

En in-game hebben ze ook hun functie. Het fijne aan de G15 is de display waar er verschillende apps voor bestaan.
Oh, ik bedoel ook zeker niet te zeggen dat ze onhandig zouden zijn! Het is gewoon zo'n goody waar ik nooit aan toe ben gekomen :p

Even een vraagje, ik wil graag het interne geheugen in m'n pc (Corsair Dominator CM2X2048-8500C5D) uitbreiden van 4 gig naar 8. Nou lijkt het me verstandig om het geheugen zoveel mogelijk overeen te laten komen. Gelukkig vond ik in de pricewatch het volgende: pricewatch: Corsair Dominator TWIN2X4096-8500C5D Het lijkt op het eerste gezicht exact overeen te komen. De naam is iets anders, maar de specs hetzelfde.
Echter, als ik naar de site van een leverancier surf zie ik bij (die van DataByte) de volgende vermelding: DOMINATOR, DDR2-8500, 4GB, 5-5-5-18, 240pin DIMM, terwijl er op mijn DIMM's 5-5-5-15 vermeld staat.
Zou dit problemen op kunnen leveren?
Wat als ik deze reepjes: http://www.alternate.nl/h..._GB_DDR2-1066_Kit/206223/? van een ander merk, maar met exact dezelfde specificaties er naast zet?

[ Voor 6% gewijzigd door Verwijderd op 17-12-2010 00:34 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Soultaker schreef op vrijdag 17 december 2010 @ 00:28:
Is het trouwens opzettelijk dat je de operatie maximaal vijf keer probeert terwijl maxRetries drie is?
Euh, nee :+ Het moest >= zijn inderdaad. My bad. (Feitelijk is een == al voldoende; maar daar ben ik te 'defensive' voor in mijn devstijl :P Je weet nooit of iemand op 't idee komt om ergens anders nog eens de counter op te hogen :+ )
Soultaker schreef op vrijdag 17 december 2010 @ 00:28:
Trouwens, helpdesken in de coffee corner? Foei!
Ik helpdesk niet; ik zwengel een discussie aan of iets dergelijks nou wel of niet "mooi" is ;)
Verwijderd schreef op vrijdag 17 december 2010 @ 00:29:
Even een vraagje, ik wil graag het interne geheugen in m'n pc (Corsair Dominator CM2X2048-8500C5D) uitbreiden van 4 gig naar 8.
Da's sterk; ik was vanmiddag aan 't googlen/pricewatchen geslagen om m'n werkstation thuis + op 't werk (XW4600) te upgraden van 4->8 Gb. Het zure is dat er 4x1Gb in zit en maar 4 reepjes in passen. Dus ik kan (voor 2 stations) 8x1Gb wegmikkeren :(
Maar ik kwam op bedragen rondom de 200 euro... per station. Volgens de manual gaan er maar reepjes in van max 2Gb en met 4 slots moet ik dan automatisch 4x2Gb hebben.

[ Voor 48% gewijzigd door RobIII op 17-12-2010 00:52 ]

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

Je eigen tweaker.me redirect

Over mij


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23-12 22:52
@ctor:
Je moederbord werkt maar met één set timings (denk ik tenminste?) dus als je het iets tragere 5-5-5-18 geheugen combineert met 5-5-5-15 geheugen, dan autoconfigureert het moederbord zich waarschijnlijk op 5-5-5-18 voor alle geheugen. Merk je waarschijnlijk weinig van. Overigens wil geheugen nog wel eens werken op andere timings dan waar het officieel voor geschikt is. Je kunt dus proberen om alles op 5-5-5-15 te laten werken.

Anderzijds is het waarschijnlijk het makkelijkste om met geheugen met dezelfde timings te beginnen, als het voor de prijs niet uitmaakt, dan zit je zeker goed. Verschillend merk maakt daarbij helemaal niets uit.

Verwijderd

Heb die winkel maar even een mailtje gestuurd, volgens mij hebben ze het gewoon fout op de site staan. Ze adverteren met de Dominator C5D serie, die zijn allemaal geklokt op 5-5-5-15, de C5C is wel wat langzamer, geen 5-5-5-18, maar zelfs trager.
Het verbaast me eerlijk gezegd wel dat dat geheugen nog net zo duur is als 2 jaar geleden.
Verschillend merk maakt daarbij helemaal niets uit.
Ok, dat is alvast mooi. GeiL heeft dezelfde specs, maar is veel goedkoper. Is het toevallig een RuK-merk?

[ Voor 23% gewijzigd door Verwijderd op 17-12-2010 00:49 ]


  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 23-12 15:42
Ok, dat is alvast mooi. GeiL heeft dezelfde specs, maar is veel goedkoper. Is het toevallig een RuK-merk?
:X

Verwijderd

Sorry, flauw, maar met zo'n merknaam en mijn kindergenen vraag je er om. Neemt niet weg dat de essentie van de vraag wel serieus is ;) Kon weer eens niet slapen... Had zoveel ideeen in m'n hoofd :p en maar even gaan werken aan de inleveropdracht voor morgen. Het is zo heerlijk rustig werken, echt fijn. Ik ga voortaan gewoon overdag slapen, want ik ben duidelijk echt een nachtmens :P

[ Voor 78% gewijzigd door Verwijderd op 17-12-2010 04:18 ]


  • defcon84
  • Registratie: September 2009
  • Laatst online: 14:47

defcon84

Multipass?

Sebazzz schreef op donderdag 16 december 2010 @ 16:16:
[...]

Dingen in hokjes stoppen is iets wat je tegenwoordig niet meer dient te doen inderdaad :p
hah toevallig dat je het zegt!
ik ga binnenkort samenhokken met men vriendin :)
wat een gedoe zeg met al die hypotheken, kosten koper, belastingsvoordeel hier en daar, ... 7(8)7
Verwijderd schreef op vrijdag 17 december 2010 @ 00:43:
Ok, dat is alvast mooi. GeiL heeft dezelfde specs, maar is veel goedkoper. Is het toevallig een RuK-merk?
GeiL is gewon een A-merk voor geheugen hoor :)

  • defcon84
  • Registratie: September 2009
  • Laatst online: 14:47

defcon84

Multipass?

RobIII schreef op donderdag 16 december 2010 @ 23:21:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Stuff here...

int maxretries = 3;
int tries = 0;

StatusResponse sr = null;
do
{
    try {
        sr = TheBigBadInternetConnectionSometimesB0rks.GetStatusResponse(foo);
    } catch {
        if (tries++ > maxretries)
            throw; //Bubble up
    }
} while (sr == null);

//Do stuff with sr here


Ik kan er maar niet over uit of ik dit nou een acceptabele oplossing vind of niet... Iemand wel eens een dergelijke "lus" toegepast?
Dit "Stability Pattern" noemen ze de Circuit Breaker :9~
Afbeeldingslocatie: http://i.imgur.com/7fEWp.jpg
Bron: screenshot uit het boek "Release It" (boek dat elke programmeur gelezen moet hebben!!!)

altijd fan van geweest _/-\o_

Verwijderd

defcon84 schreef op vrijdag 17 december 2010 @ 07:58:

GeiL is gewon een A-merk voor geheugen hoor :)
Ah, ok, houd me er niet echt mee bezig, dus vandaar!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:23

.oisyn

Moderator Devschuur®

Demotivational Speaker

Golden Emperor International Ltd.
Soultaker schreef op vrijdag 17 december 2010 @ 00:28:
Is het trouwens opzettelijk dat je de operatie maximaal vijf keer probeert terwijl maxRetries drie is? Persoonlijk zou ik dan ook liever voor de variant gaan waarbij je gewoon het maximaal aantal pogingen specificeert, à la alex3305 maar zonder de bugs:
Java:
1
2
3
4
5
6
7
8
9
int tries = maxTries;
while (tries-- > 0) {
    try {
        sr = TheBigBadInternetConnectionSometimesB0rks.GetStatusResponse(foo);
        break;
    } catch {
        if (tries == 0) throw;
    }
}
Dan vind ik die conditie in de while een beetje suf, aangezien die nooit false zal zijn.
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int tries = maxTries;
while (true)
{
    try
    {
        sr = TheBigBadInternetConnectionSometimesB0rks.GetStatusResponse(foo);
        break;
    }
    catch
    {
        if (--tries == 0)
            throw;
    }
}

En dan begint het al behoorlijk op Rob's code te lijken.

[ Voor 105% gewijzigd door .oisyn op 17-12-2010 09:19 ]

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


  • Hillie
  • Registratie: Januari 2000
  • Laatst online: 16:09

Hillie

Poepen = ultieme ontspanning

Zo, het is middernacht geweest hier, net m'n laatste frutsels voor het eerst sinds tijden weer door 100% pass rate in een kleine random regressie gekregen, dus tijd voor pils!

Liefhebber van schieten en schijten. Ouwehoer en niet-evangelisch atheist.

Daniel36: Dat zeg ik(?) Nee, dat zeg ik niet, je hebt gelijk.


  • YopY
  • Registratie: September 2003
  • Laatst online: 06-11 13:47
Jan_V schreef op donderdag 16 december 2010 @ 20:50:
Vandaag druk bezig geweest met een wp7 app met het MVVM pattern in een n-layer omgeving.
Was wel even wennen om er achter te komen dat -alles- asynchroon werkt.
Doet me idd denken aan Android, daar werkt het ook ongeveer zo. Je laat een popup zien en moet de functie die de popup dan toont beëindigen oid, want je krijgt niet een resultaat oid terug vanuit de popup, de popup roept een callback aan zodra de gebruiker er iets mee doet. In Android moet je ook aannemen dat een scherm dat niet meer actief is (zoals je hoofdscherm als er een nieuw dialoogscherm getoond wordt) zomaar gerecycled kan worden.

Niet dat ik veel in Android gedaan heb, :+.
quote: robIII
Euh, nee Het moest >= zijn inderdaad. My bad. (Feitelijk is een == al voldoende; maar daar ben ik te 'defensive' voor in mijn devstijl Je weet nooit of iemand op 't idee komt om ergens anders nog eens de counter op te hogen )
Dan moet je je code beter dichtspijkeren, :+. Scope zo klein mogelijk houden enzo, functie maken die alleen dit bevat, en een unit test erbij die specifiek test of de GetStatusResponse functie precies maxRetries keer aangeroepen wordt na maxRetries - 1 keer een fail terug te geven. Unit testje heb je binnen een paar minuutjes geschreven, kleine moeite, groot plezier, en minder kans op bugjes ivm verkeerder operators voor het geval dat iemand je variabele toch aanpast :+.

  • defcon84
  • Registratie: September 2009
  • Laatst online: 14:47

defcon84

Multipass?

Hillie schreef op vrijdag 17 december 2010 @ 09:26:
Zo, het is middernacht geweest hier, net m'n laatste frutsels voor het eerst sinds tijden weer door 100% pass rate in een kleine random regressie gekregen, dus tijd voor pils!
hoe is het weer in Cali?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
YopY schreef op vrijdag 17 december 2010 @ 09:38:
Dan moet je je code beter dichtspijkeren, :+. Scope zo klein mogelijk houden enzo, functie maken die alleen dit bevat, en een unit test erbij die specifiek test of de GetStatusResponse functie precies maxRetries keer aangeroepen wordt na maxRetries - 1 keer een fail terug te geven. Unit testje heb je binnen een paar minuutjes geschreven, kleine moeite, groot plezier, en minder kans op bugjes ivm verkeerder operators voor het geval dat iemand je variabele toch aanpast :+.
Helemaal eensch; dat "defensieve" heb ik dan ook vooral over gehouden aan de oertijd toen men nog deed unittesten met knuppels van mammoetbeenderen :+ Het is een soort "best practice" (ik doel dan, in dit geval, op >= i.p.v. == dus) die ik mezelf in die tijd heb eigen gemaakt en, ach, ik zie geen probleem er in om deze te blijven hanteren. Het kan geen kwaad :Y)

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

Je eigen tweaker.me redirect

Over mij


  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 23-12 22:39
.oisyn schreef op vrijdag 17 december 2010 @ 09:16:
Golden Emperor International Ltd.
Dan vind ik die conditie in de while een beetje suf, aangezien die nooit false zal zijn.
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int tries = maxTries;
while (true)
{
    try
    {
        sr = TheBigBadInternetConnectionSometimesB0rks.GetStatusResponse(foo);
        break;
    }
    catch
    {
        if (--tries == 0)
            throw;
    }
}

En dan begint het al behoorlijk op Rob's code te lijken.
Een retry zonder goto is geen retry: http://glamour.tweakblogs.net/blog/5764/generic-retry.html

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

I O+ windbg. Het kost wat moeite maar ik heb er een mooi memoryleak mee kunnen debuggen.

Sole survivor of the Chicxulub asteroid impact.


  • YopY
  • Registratie: September 2003
  • Laatst online: 06-11 13:47
RobIII schreef op vrijdag 17 december 2010 @ 10:33:
[...]

Helemaal eensch; dat "defensieve" heb ik dan ook vooral over gehouden aan de oertijd toen men nog deed unittesten met knuppels van mammoetbeenderen :+ Het is een soort "best practice" (ik doel dan, in dit geval, op >= i.p.v. == dus) die ik mezelf in die tijd heb eigen gemaakt en, ach, ik zie geen probleem er in om deze te blijven hanteren. Het kan geen kwaad :Y)
idd, kan geen kwaad. Het wordt op laatst alleen lichtelijk storend als je in het begin van bijna elke functie eerst controles in gaat bouwen van is deze parameter null of niet, is deze waarde >0, dat soort dingen.

@thread, den vrijdagsverveling na een grote release is goed te verdoen door het bijhouden van Man Points. Met een kater op het werk komen: +3 points. Stom idee hebben: -2 punten. Van je oma houden: +2. etc :+

edit: grumf, denk je ik ga vrijdagmiddag vroeg naar huis, ineens sneeuwbui en alles ligt stil, :(. Verplicht naar de kroeg dan maar.

[ Voor 6% gewijzigd door YopY op 17-12-2010 13:32 ]


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23-12 22:52
.oisyn schreef op vrijdag 17 december 2010 @ 09:16:
Dan vind ik die conditie in de while een beetje suf, aangezien die nooit false zal zijn.
Mja, misschien als maxTries == 0, maar dat wil je toch niet, want dan zit je weer met sr == null buiten de loop.

Het lijkt er op dat dit een constructie is waarvan je denkt "dat moet beter kunnen" maar als je het daadwerkelijk probeert te coden, dan kom je ongeveer op hetzelfde uit. :P

  • Jan_V
  • Registratie: Maart 2002
  • Laatst online: 11:38
Zo, net even de Majestic HTML parser (http://www.majestic12.co.uk/projects/html_parser.php) compatibel gemaakt met WP7. Wilde eigenlijk de HTML Agility Pack gebruiken, maar die werkt niet met Silverlight 3. Kwam er tijdens het ombouwen van de Majestic parser achter dat er ook geen HashTable aanwezig is op de WP7 en er alleen maar Encoding.Unicode en UTF8 kan worden gekozen.
Ombouwen was niet enorm lastig en kan nu eindelijk de html (enigszins) fatsoenlijk doorlopen. Zodra de PoC af is moet er maar eens een webservice worden gemaakt om data op te halen van de website. Dan ga ik nu nog maar even snel bezig met screenscraping, hopelijk lukt het voor de borrel.

Battle.net - Jandev#2601 / XBOX: VriesDeJ


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Hoe fantastisch is het dat je in 2010 nog een browser uitsluit via je website :)

http://www.planethunters.org/

Wel grappige toepassing; draait een beetje traag in Chrome

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Ik kwam zo ook onlangs een soort van opensource facebook alternatief tegen dat IE8 en IE9 uitsloot. Dat zegt al veel over de intelligentie van de makers als je minstens 60% van je potentiele bezoekers gaat uitsluiten puur vanwege je eigen tunnelvisie 8)7

  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Als je IE9 uitsluit dan ben je toch echt bijna alleen bezig uit een soort haat voor Microsoft.

  • jip_86
  • Registratie: Juli 2004
  • Laatst online: 22-12 14:38
Of geen tijd/zin om je te richten op meerdere browsers in de eerste fase.

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 23-12 13:22

Haan

dotnetter

Hij was weer fijn, uit voorzorg maar wat eerder naar huis gegaan vanwege de sneeuw, toch nog 2 uur en kwartier over gedaan (Hilversum-Haarlem, zonder files ongeveer 40 minuten). En ik juist gisteren thuis gewerkt omdat er veel overlast door sneeuwval was voorspeld 8)7 |:(

[ Voor 6% gewijzigd door Haan op 17-12-2010 16:47 ]

Kater? Eerst water, de rest komt later


  • dev10
  • Registratie: April 2005
  • Laatst online: 11:57
Haan schreef op vrijdag 17 december 2010 @ 16:47:
Hij was weer fijn, uit voorzorg maar wat eerder naar huis gegaan vanwege de sneeuw, toch nog 2 uur en kwartier over gedaan (Hilversum-Haarlem, zonder files ongeveer 40 minuten). En ik juist gisteren thuis gewerkt omdat er veel overlast door sneeuwval was voorspeld 8)7 |:(
Ik zit al de hele dag te genieten van het weer. Nu mag ik er nog doorheenfietsen ook. :)

[/sarcasm]

  • Dutchmega
  • Registratie: September 2001
  • Niet online
Ach, als je eenmaal warm binnen zit, is het ideaal devweer. Ik heb alleen geen leuke projecten om aan te werken..

Verwijderd

D'r is wel echt een puist gevallen. Ik hou d'r wel van! Als het goed is gaat het zo weer sneeuwen dan ga ik even een blokje om :P

  • Hillie
  • Registratie: Januari 2000
  • Laatst online: 16:09

Hillie

Poepen = ultieme ontspanning

Beetje regenachtig, maar het is hier niet echt koud. Rest van de VS heeft het zwaarder, ik zag in Florida zelfs kou en sneeuw. :D Ik zit net in een goed stukje van het land. :)

Liefhebber van schieten en schijten. Ouwehoer en niet-evangelisch atheist.

Daniel36: Dat zeg ik(?) Nee, dat zeg ik niet, je hebt gelijk.


  • Hillie
  • Registratie: Januari 2000
  • Laatst online: 16:09

Hillie

Poepen = ultieme ontspanning

jip_86 schreef op vrijdag 17 december 2010 @ 15:18:
Of geen tijd/zin om je te richten op meerdere browsers in de eerste fase.
Een waarschuwingsbalkje "Hey, ik zie dat je IE8/9 gebruikt, maar vooralsnog op eigen risico, we hebben nog niet genoeg kunnen testen", is m.i. vriendelijker dan die waas die sommige OS'ers krijgen bij het zien van een grote bedrijfsnaam.

Liefhebber van schieten en schijten. Ouwehoer en niet-evangelisch atheist.

Daniel36: Dat zeg ik(?) Nee, dat zeg ik niet, je hebt gelijk.


  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 19-12 14:56
Joepie, C# 4.0 in a nutshell binnen :D Ervaringen anyone? :)

* Avalaxy heeft alleen geen tijd om te lezen, heb Code Complete 2 ook nog liggen en ik was nog bezig met GoF Design Patterns :(

  • Jan_V
  • Registratie: Maart 2002
  • Laatst online: 11:38
Heb hetzelfde probleem....hopelijk een kleine slag maken tijdens de kerstdagen, maar dat zal ook wel tegenvallen...

Battle.net - Jandev#2601 / XBOX: VriesDeJ


  • !GN!T!ON
  • Registratie: September 2006
  • Laatst online: 23-12 19:05
Hillie schreef op vrijdag 17 december 2010 @ 19:20:
[...]


Beetje regenachtig, maar het is hier niet echt koud. Rest van de VS heeft het zwaarder, ik zag in Florida zelfs kou en sneeuw. :D Ik zit net in een goed stukje van het land. :)
Washington is regen, regen, regen en dan nog wat sneeuw :Y)

  • Gamebuster
  • Registratie: Juli 2007
  • Laatst online: 22-12 13:11
code:
1
2
3
4
5
6
7
8
9
10
Fatal error: Uncaught exception 'PDOException' with message
  'SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
  in /var/www/*/settings/settings.php:12
Stack trace: 
#0 /var/www/*/settings/settings.php(12):
  PDO->__construct('mysql:dbname=...', 'root', 'WACHTWOORD', Array)
#1 /var/www/*/init/init-db.php(5): getPDO()
#2 /var/www/*/init/init.php(5): require_once('*')
#3 /var/www/*/index.php(2): require_once('*')
#4 {main} thrown in /var/www/*/settings/settings.php on line 12


Leuk, zo'n traceback :P

Let op: Mijn post bevat meningen, aannames of onwaarheden


  • FragFrog
  • Registratie: September 2001
  • Laatst online: 14:44
En dat is waarom error reporting altijd uitstaat in productie.. right? ;)

Om nog maar te zwijgen van de root account voor je database :X

[ Voor 34% gewijzigd door FragFrog op 17-12-2010 21:09 ]

[ Site ] [ twitch ] [ jijbuis ]


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 15:00
Zo na een heerlijk productieve dag (eindelijk er door gekregen dat we .Net 4 mogen gebruiken in productie, heerlijk zitten devven), borrel, proberen naar huis te gaan. Waar iedereen altijd zeikt op de ns ben ik gewoon blij dat er nog IETS rijdt. Als ik wat later thuis ben vind ik dat niet erg (zit met collega's en een aardige voorraad bier in de trein), als ik maar thuis kom. Dat was vorig jaar wel eens anders...

Roomba E5 te koop


Verwijderd

Na een dagje devven aan een java SSH parser volgens openSSH standaarden nog een werkje voor school gemaakt, waar ik stuite op een stom probleem, hier even op het forum gepost, niemand die een correct antwoord gaf omdat ze de vraag niet lazen, en nu nog wat verderwerken aan een client-server applicatie.
Denk dat ik even nog een dvd ga kijken aangezien ik ingesneeuwd zit :)
Pagina: 1 ... 90 ... 201 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, niet als vraagbaak