[alg] Slechtste programmeervoorbeelden deel 4 Vorige deel Overzicht Laatste deel

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

Pagina: 1 ... 70 ... 103 Laatste
Acties:
  • 993.631 views

Acties:
  • 0 Henk 'm!

Verwijderd

OkkE schreef op maandag 12 september 2011 @ 15:13:
Als je er over nadenkt zijn handtekeningen eigenlijk ook ontzettend onveilig en is het best gek dat zoiets nog steeds als wettig beschouwd wordt. Ieder dat zo makkelijk te vervalsen is en zo veel afwijking kan bevatten, zou in de computer wereld toch nooit in gebruik worden genomen. Heel vreemd.
Ik heb datzelfde idee dus ook, al jaren. Met name omdat ik er net zo een ben, mijn handtekening zijn ook geen twee opeenvolgende malen hetzelfde.

Wat natuurlijk het vervalsen ervan zowel gemakkelijker als moeilijker maakt. ;) Een handtekening met een RNG factor... *grin*

Enfin, ik zou er dus niet om treuren als dat systeem voorbij werd gestreefd door iets dat betrouwbaarder en consistenter is.

Acties:
  • 0 Henk 'm!

  • twiFight
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op maandag 12 september 2011 @ 15:16:
[...]
Enfin, ik zou er dus niet om treuren als dat systeem voorbij werd gestreefd door iets dat betrouwbaarder en consistenter is.
Vingerafdrukken, maar als je dat oppert staat gelijk heel tweakers op zijn achterste poten :D

Acties:
  • 0 Henk 'm!

  • graceful
  • Registratie: Maart 2008
  • Niet online
Gomez12 schreef op maandag 12 september 2011 @ 15:14:
[...]

Ach, handtekeningen zijn toch overrated. Ik heb daar nooit de toegevoegde waarde van gezien zolang er niet ergens een centrale registratie is.

Dan kan je bij TNT / UPS een handtekening opvragen en dan zie ik enkel dat het een onbekende handtekening is (like duh, ik weet dat ik het pakketje niet onvangen heb)
TNT heeft die van mij al eens vervalst om een pakketje af te kunnen leveren, maar niet aan de deur te hoeven komen (deur <-> brievenbus is vrij ver bij ons). Achteraf zie je dan je naam voluit geschreven met een mooi krabbeltje erdoorheen. Tja.. thats not even like mine 8)7

Acties:
  • 0 Henk 'm!

  • Aloys
  • Registratie: Juni 2005
  • Niet online
Iedereen met de post een unieke RFID-tag sturen en die hang je dan in de meterkast. Pakketje aan de deur? Even bliepen in de meterkast ofzo (of ergens anders bewaren). Mja minstens zo makkelijk te vervalsen :P .

Acties:
  • 0 Henk 'm!

  • Dragor
  • Registratie: Juni 2003
  • Laatst online: 08-02 11:04
Dan vind ik nieuws: Amazon wil 'afhaalkluisjes' in Europese winkelstraten installeren toch een beter idee (vooral omdat ik nooit thuis ben als de post alles komt brengen) :9

Acties:
  • 0 Henk 'm!

  • Aloys
  • Registratie: Juni 2005
  • Niet online
Of bij het versturen van een pakketje de mogelijkheid geven om een soort wachtwoord op te geven. Indien correct ingevoerd in de terminal van de bezorger mag het pakketje pas afgegeven worden. Dat kunnen ze toch niet zomaar raden, wel vervelend als je de code vergeet: :+ .

Dit zou overigens best kunnen werken met webshops die jou naast de T&T-code sturen ook een wachtwoord sturen om je pakketje te ontvangen :) .

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Nu online

Janoz

Moderator Devschuur®

!litemod

Wat een pracht idee. Misschien kunnen ze het nog wel verder doorvoeren en een wat grotere voorraad aanleggen zodat je niet perse van te voren, maar gewoon bij de kluisjes zelf kunt bestellen...

oh wacht..

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!

  • 418O2
  • Registratie: November 2001
  • Laatst online: 28-09 13:58
Afbeeldingslocatie: http://tweakers.net/ext/f/ng5BeBx7ZSXYGsgDuhebEDVc/full.png

Hmm....

Acties:
  • 0 Henk 'm!

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 28-09 15:26
Je hoort toch duidelijk wat hij/zij zegt? :+

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Wie zoekt er dan ook een BMW 3 serie :+
* RobIII rent




http://thedailywtf.com/Ar...dable-Encryption-Key.aspx
:F 8)7 Seriously... :F

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


Acties:
  • 0 Henk 'm!

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 25-09 15:59
Ik vraag me af hoe ze dit voor elkaar hebben gekregen:

The Daily WTF:
Afbeeldingslocatie: http://img.thedailywtf.com/images/201109/errr/Pic2.jpg

Ze hebben zeker code die van mogelijke antwoorden kijkt of het een datum (01-04, 05-09, 10-49) is en de datum toont :?

[ Voor 21% gewijzigd door urk_forever op 13-09-2011 17:39 ]

Hail to the king baby!


Acties:
  • 0 Henk 'm!

  • Nactive
  • Registratie: Juni 2011
  • Niet online
Doet mij denken aan excel die ook veel te veel getallen converteert naar datums.

Acties:
  • 0 Henk 'm!

Verwijderd

urk_forever schreef op dinsdag 13 september 2011 @ 17:37:
Ze hebben zeker code die van mogelijke antwoorden kijkt of het een datum (01-04, 05-09, 10-49) is en de datum toont :?
Nee, het is gewoon een 1 april (01-04) grap. ;)

Acties:
  • 0 Henk 'm!

  • Bv202
  • Registratie: Oktober 2006
  • Laatst online: 14-11-2021
Van de Telenet-website:
Afbeeldingslocatie: http://img718.imageshack.us/img718/2258/passwordc.png

Wat is het nut van de gebruiker te limiteren tot "een wachtwoord van 6 tot 8 tekens"? Ik gebruik, na het Tweakers-artikel van vanochtend, LastPass en wil dit ook graag voor de Telenet-website instellen. Dit systeem slaat helemaal nergens op; het is alleen maar verschrikkelijk irritant voor de gebruiker en technisch zie ik er ook het nut niet van in: het wordt (of zou toch moeten) als een hash opgeslagen welke een vast aantal tekens heeft. Leg dan een limiet van 20-30 tekens op ofzo :s

Dit probleem doet zich trouwens op wel meer websites voor. Verschrikkelijk irritant...

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Bv202 schreef op dinsdag 13 september 2011 @ 22:31:
Wat is het nut van de gebruiker te limiteren tot "een wachtwoord van 6 tot 8 tekens"?
Die 8 tekens zijn voldoende voor een HEULE DIKKE alarmbel die bij mij gaat rinkelen (en is nog erger dan alleen maar een MD5($password)). Ik kan helaas 't originele artikel waar ik eigenlijk naar had willen linken niet zo snel vinden.

[ Voor 16% gewijzigd door RobIII op 13-09-2011 22:43 ]

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


Acties:
  • 0 Henk 'm!

  • Bv202
  • Registratie: Oktober 2006
  • Laatst online: 14-11-2021
RobIII schreef op dinsdag 13 september 2011 @ 22:37:
[...]

Die 8 tekens zijn voldoende voor een HEULE DIKKE alarmbel die bij mij gaat rinkelen (en is nog erger dan alleen maar een MD5($password)). Ik kan helaas 't originele artikel waar ik eigenlijk naar had willen linken niet zo snel vinden.
Ik ben wel geïnteresseerd in het artikel, dus als je het nog vindt... ;)

Het zou me in ieder geval niets verbazen; die Telenet-website heeft me wel eerder WTF-momenten bezorgd. Stelletje amateurs daar, zoiets hoort echt niet voor een ISP.

Acties:
  • 0 Henk 'm!

  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

ReneDx schreef op maandag 12 september 2011 @ 15:34:
TNT heeft die van mij al eens vervalst om een pakketje af te kunnen leveren, maar niet aan de deur te hoeven komen (deur <-> brievenbus is vrij ver bij ons). Achteraf zie je dan je naam voluit geschreven met een mooi krabbeltje erdoorheen. Tja.. thats not even like mine 8)7
offtopic:
Klacht indienen, bezorger probleem wegens valsheid in geschrifte, foei!

Heeft geen speciale krachten en is daar erg boos over.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Bv202 schreef op dinsdag 13 september 2011 @ 22:46:
[...]


Ik ben wel geïnteresseerd in het artikel, dus als je het nog vindt... ;)
Als ik 't tegenkom hoor je 't ;)
Maar 't is ook redelijk simpel bij elkaar te redeneren: als je een dergelijk (6-8) tekens tellend wachtwoord wil bruteforcen heb je in ieder geval al een paar gegevens:
* < 6 tekens hoef je niet te proberen
* > 8 tekens hoef je niet te proberen
* minimaal 1 letter en 1 cijfer dus weer vallen er mogelijkheden af
* 99 v/d 100 mensen zal enkel A-Za-z0-9 gebruiken, hooguit nog een !, @ of ? erin

Dat beperkt de mogelijkheden aanzienlijk.Verder had 't (volgens mij) te maken met een of andere crypt functie die niet helemaal jofel geïmplementeerd was in PHP/MySQL of iets dergelijks en 't scheen nogal veel gebruikt te worden (mede doordat er nog allerlei "tutorials" uit het jaar knoop op internet rondzwerven die iedereen doodleuk copy/paste). Anyway; zo'n wachtwoord was (meen ik) bijna "net zo makkelijk" terug te herleiden als een ROT13 (d.m.v. gebruik van de juiste tools natuurlijk die 't échte rekenwerk/bruteforce dan deden)

[ Voor 12% gewijzigd door RobIII op 13-09-2011 23:56 ]

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


  • Wijnbo
  • Registratie: December 2002
  • Laatst online: 22-09 14:46

Wijnbo

Electronica werkt op rook.

urk_forever schreef op dinsdag 13 september 2011 @ 17:37:
Ik vraag me af hoe ze dit voor elkaar hebben gekregen:

The Daily WTF:
[afbeelding]

Ze hebben zeker code die van mogelijke antwoorden kijkt of het een datum (01-04, 05-09, 10-49) is en de datum toont :?
Een andere faal hierin: If you don't know, give the best estimate... blabla.

En dan nog "don't know" als optie geven :')

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:44

.oisyn

Moderator Devschuur®

Demotivational Speaker

RobIII schreef op dinsdag 13 september 2011 @ 23:52:
* < 6 tekens hoef je niet te proberen
Maar dat is een niet zo boeiende optimalisatie. Het aantal mogelijke wachtwoorden van minder dan 8 tekens is slechts een fractie van het aantal mogelijke wachtwoorden van 8 tekens (ongeveer 1/(a-1), met a het aantal verschillende tekens dat je in kunt voeren).

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.


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Nog een leuke in de categorie "wtf betekent die naam":

C#:
1
2
3
4
public List<ValidDuringType> GetCurrentActiveValidDuringTypes()
{
   ...
}


Een ValidDuringType blijkt dus het dagdeel te zijn waaronder een voorstelling valt. :s

[ Voor 3% gewijzigd door Grijze Vos op 14-09-2011 15:09 ]

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


  • HeSitated
  • Registratie: April 2009
  • Laatst online: 03-12-2024
RobIII schreef op dinsdag 13 september 2011 @ 23:52:
Maar 't is ook redelijk simpel bij elkaar te redeneren: als je een dergelijk (6-8) tekens tellend wachtwoord wil bruteforcen heb je in ieder geval al een paar gegevens:
* < 6 tekens hoef je niet te proberen
* > 8 tekens hoef je niet te proberen
* minimaal 1 letter en 1 cijfer dus weer vallen er mogelijkheden af
* 99 v/d 100 mensen zal enkel A-Za-z0-9 gebruiken, hooguit nog een !, @ of ? erin
Hmm, ik heb vorige week ontdekt dat Telfort niet alleen het wachtwoord limiteert tot 5-8 letters en cijfers....

Maar ook nog eens dat het wachtwoord van het hoofdemail adres én MijnTelfort gebruikt mogen worden om in te loggen op MijnTelfort.

Dus een zwak wachtwoord en ook nog eens twee kansen voor een hacker.... 8)7

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:44

.oisyn

Moderator Devschuur®

Demotivational Speaker

Lol, dan maak je het dus sterker als je overal hetzelfde wachtwoord gebruikt :+

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.


  • pythagorasABC
  • Registratie: Maart 2008
  • Laatst online: 21-09 15:59

pythagorasABC

A²+B²=C²

RobIII schreef op dinsdag 13 september 2011 @ 23:52:
[...]

Als ik 't tegenkom hoor je 't ;)
Maar 't is ook redelijk simpel bij elkaar te redeneren: als je een dergelijk (6-8) tekens tellend wachtwoord wil bruteforcen heb je in ieder geval al een paar gegevens:
* < 6 tekens hoef je niet te proberen
* > 8 tekens hoef je niet te proberen
* minimaal 1 letter en 1 cijfer dus weer vallen er mogelijkheden af
* 99 v/d 100 mensen zal enkel A-Za-z0-9 gebruiken, hooguit nog een !, @ of ? erin

Dat beperkt de mogelijkheden aanzienlijk.Verder had 't (volgens mij) te maken met een of andere crypt functie die niet helemaal jofel geïmplementeerd was in PHP/MySQL of iets dergelijks en 't scheen nogal veel gebruikt te worden (mede doordat er nog allerlei "tutorials" uit het jaar knoop op internet rondzwerven die iedereen doodleuk copy/paste). Anyway; zo'n wachtwoord was (meen ik) bijna "net zo makkelijk" terug te herleiden als een ROT13 (d.m.v. gebruik van de juiste tools natuurlijk die 't échte rekenwerk/bruteforce dan deden)
Dat komt neer op 2 uur, en je hebt alle wachtwoorden :X |:(
Mits ze md5 gehashed zijn dus, wat ik niet verwacht als ze een maximumlengte van 8 instellen.

Silence is better than unmeaning words. ~Pythagoras


  • xehbit
  • Registratie: Februari 2009
  • Laatst online: 26-08 22:19

xehbit

pythagorasABC schreef op woensdag 14 september 2011 @ 21:50:
[...]

Dat komt neer op 2 uur, en je hebt alle wachtwoorden :X |:(
Mits ze md5 gehashed zijn dus, wat ik niet verwacht als ze een maximumlengte van 8 instellen.
2 uurtjes maar ? Laatst toen ik een wachtwoord vergeten was van een backupje in een rar bestand. Had er een wachtwoord op staan. Denk ik even lekker eenbrute forcer er overheen te halen, waren iets van max 6 tekens wist ik. Stond er: Reterende tijd: 200 years. Daar ga ik dus niet op wachten hea 8)7

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Dragon707 schreef op donderdag 15 september 2011 @ 07:31:
2 uurtjes maar ? Laatst toen ik een wachtwoord vergeten was van een backupje in een rar bestand. Had er een wachtwoord op staan. Denk ik even lekker eenbrute forcer er overheen te halen, waren iets van max 6 tekens wist ik. Stond er: Reterende tijd: 200 years. Daar ga ik dus niet op wachten hea 8)7
Het grote probleem met MD5 als hash voor wachtwoorden is dat het snel is: "An NVIDIA GeForce 8800 Ultra can calculate more than 200 million hashes per second.": Wikipedia: MD5

Vervolgens heb je voor het wachtwoord (10 (>=1 cijfer) * 52 (>=1 letter) * 63^2 (letter/cijfer/geen teken (vor 6/7/8 tekens)) * 62^4 (resterende letters)) = 3.5E13 mogelijkheden. Deel dat door 200 miljoen en je komt op ongeveer 150000 seconden = 1.75 dag

Als je een cluster hebt staan dan is het inderdaad goed in 2 uur te doen.

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Grijze Vos schreef op woensdag 14 september 2011 @ 15:08:
Nog een leuke in de categorie "wtf betekent die naam":

C#:
1
2
3
4
public List<ValidDuringType> GetCurrentActiveValidDuringTypes()
{
   ...
}


Een ValidDuringType blijkt dus het dagdeel te zijn waaronder een voorstelling valt. :s
Naamgeving is serious business :p. Ik geloof dat het in dit geval met opzet kort gehouden is, anders krijg je zo'n lange naam.

Nu kun je natuurlijk ook beargumenteren dat het ValidDuringType type gewoon een slecht ontwerp is - ik bedoel, wat is het? een dagdeel? een container voor een dagdeel?

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Het is een vrij in te vullen dagdeel. In de UI wordt het voorstellingstype genoemd. (Avond, Matinee, etc..) Helaas werd "ShowType" als ergens voor gebruikt in de code, dus hebben ze maar een ander "type" verzonnen, die echt nergens op slaat.

Het BL object laat ik nog even zo staan, maar de functie heb ik al omgedoopt naar GetTimeSlot()

[ Voor 17% gewijzigd door Grijze Vos op 15-09-2011 09:13 ]

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


  • Haan
  • Registratie: Februari 2004
  • Laatst online: 07:08

Haan

dotnetter

Ik kom net weer een leuke tegen:
C#:
1
2
3
4
5
internal class Program
{
     // hele lijst public fields..
     public static string strLog;
}


En dan steeds 'Program.strLog += "foo" ' doen om iets te loggen.
O ja, en de rest van de 1500 regels code zit ook in Program.cs |:(

O en wat nog leuker is, het is een console programma dat iedere nacht wordt gescheduled op een server om een XML file te genereren, en de foutafhandeling wordt naar de Console geschreven die niemand dus ooit zal zien 8)7

[ Voor 28% gewijzigd door Haan op 15-09-2011 09:15 ]

Kater? Eerst water, de rest komt later


Verwijderd

Ik zie het al staan, uw wachtwoord moet aan de volgende eisen voldoen:

- Minimaal 5 kleine letters (a-z)
- Minimaal 5 hoofdletters (A-Z)
- Minimaal 5 getallen (0-9)
- Minimaal 5 speciale tekens (!-=)
- Minimaal 5 Griekse letters (Α-Ω)
- Minimaal 5 Cyrillische letters (Ж...)
- Minimaal 5 Hebreeuwse letters (ל...)
- Minimaal 5 Arabische letters (څ...)
- Minimaal 5 Chinese symbolen
- En nog 5 zelfgetekende symbolen die u met behulp van een touchpad in dient te voeren
Doet me altijd weer denken aan Dilbert:

Afbeeldingslocatie: http://upload.wikimedia.org/wikipedia/en/f/f3/Dilbert-20050910.png

  • xehbit
  • Registratie: Februari 2009
  • Laatst online: 26-08 22:19

xehbit

ValHallASW schreef op donderdag 15 september 2011 @ 08:23:
[...]

Het grote probleem met MD5 als hash voor wachtwoorden is dat het snel is: "An NVIDIA GeForce 8800 Ultra can calculate more than 200 million hashes per second.": Wikipedia: MD5

Vervolgens heb je voor het wachtwoord (10 (>=1 cijfer) * 52 (>=1 letter) * 63^2 (letter/cijfer/geen teken (vor 6/7/8 tekens)) * 62^4 (resterende letters)) = 3.5E13 mogelijkheden. Deel dat door 200 miljoen en je komt op ongeveer 150000 seconden = 1.75 dag

Als je een cluster hebt staan dan is het inderdaad goed in 2 uur te doen.
Oke, dus een brute forcer die werkt op de gpu? Hoe kan je eigenlijk applicaties in cpp op de GPU laten draaien? Of is wat ik nu zeg totaal onogelijk |:( ?

edit:

Ik heb zo iets ooit eerder gezien op de site met bitcoins, mining?

[ Voor 4% gewijzigd door xehbit op 15-09-2011 15:29 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:24

Creepy

Tactical Espionage Splatterer

Dragon707: CUDA of OpenCL. Google ze ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • HeSitated
  • Registratie: April 2009
  • Laatst online: 03-12-2024
Hoe bedenk je het....

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
    'Area vullen
    Dim intTeller As Integer
    Dim strSQL As String
    
    intTeller = SelectWhere_Int("PAI", "Filiaal_Area", "Count(*)", "Fil_nr", """" & Trim(Nz(Me.naam, "")) & """")
    If Nz(intTeller, 0) = 0 Then
        'Record toevoegen
        strSQL = "INSERT INTO dbo_Filiaal_Area (Fil_nr) VALUES ('" & Me.naam & "')"
        CurrentDb.Execute strSQL, dbSeeChanges
        Me.subArea.Form.Requery
    End If



SQL:
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
CREATE PROCEDURE dbo.sp_Select_Where_Int 
                (
                @strTable varchar(100),
                @strField varchar(100),
                @strSearchField varchar(100),
                @SearchValue varchar(1000),                   
                @@intResult int OUTPUT,
                @@ErrorCode int OUTPUT
                )
AS
                DECLARE @SQL_Statement nvarchar(2000)
                DECLARE @Parameters nvarchar(500)

                SET @SQL_Statement = N'SELECT @intResult = ' + @strField + ' FROM ' + @strTable + ' WHERE ' + @strSearchField + ' = ' + @SearchValue

                print @SQL_Statement

                SET @Parameters = N'@intResult int OUTPUT'
                EXEC sp_Executesql @SQL_Statement, @Parameters, @intResult = @@intResult OUTPUT
                
                IF @@ERROR <> 0
                BEGIN
                               SET @@ErrorCode = @@ERROR
                               RETURN
                END
GO

  • PiepPiep
  • Registratie: Maart 2002
  • Laatst online: 18-01-2023
HeSitated schreef op woensdag 14 september 2011 @ 21:28:
[...]
Hmm, ik heb vorige week ontdekt dat Telfort niet alleen het wachtwoord limiteert tot 5-8 letters en cijfers....
Dat klopt niet, de mijne is 11 tekens lang en zonder de laatste 3 voldoet hij niet aan de regels.
Er stond namelijk
- minimaal 8 tekens lang
- minimaal 2 nummers
Volgens mij voldoen 4 letters met 4 cijfers dan, maar dan krijg je opeens de foutmelding dat je minimaal 6 letters erin moet hebben 8)7

486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22


  • HeSitated
  • Registratie: April 2009
  • Laatst online: 03-12-2024
PiepPiep schreef op donderdag 15 september 2011 @ 20:45:
[...]

Dat klopt niet, de mijne is 11 tekens lang en zonder de laatste 3 voldoet hij niet aan de regels.
Er stond namelijk
- minimaal 8 tekens lang
- minimaal 2 nummers
Volgens mij voldoen 4 letters met 4 cijfers dan, maar dan krijg je opeens de foutmelding dat je minimaal 6 letters erin moet hebben 8)7
Hmm...

Afbeeldingslocatie: http://imageshare.web.id/images/o1cgk24fyy06120rypx.png

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
Grijze Vos schreef op donderdag 15 september 2011 @ 09:12:
Het BL object laat ik nog even zo staan, maar de functie heb ik al omgedoopt naar GetTimeSlot()
Wil al zeggen; dit klinkt toch echt als iets wat je in het engels een 'TimeSlot' zou noemen. Wellicht zou je dat BL object een 'PerformanceTimeSlot' kunnen noemen?

Acties:
  • 0 Henk 'm!

Verwijderd

Bv202 schreef op dinsdag 13 september 2011 @ 22:31:
Van de Telenet-website:
[afbeelding]

Wat is het nut van de gebruiker te limiteren tot "een wachtwoord van 6 tot 8 tekens"? Ik gebruik, na het Tweakers-artikel van vanochtend, LastPass en wil dit ook graag voor de Telenet-website instellen. Dit systeem slaat helemaal nergens op; het is alleen maar verschrikkelijk irritant voor de gebruiker en technisch zie ik er ook het nut niet van in: het wordt (of zou toch moeten) als een hash opgeslagen welke een vast aantal tekens heeft. Leg dan een limiet van 20-30 tekens op ofzo :s

Dit probleem doet zich trouwens op wel meer websites voor. Verschrikkelijk irritant...
Weet je wat het grappigste is... Hij kijkt gewoon naar de eerste 8 tekens van je wachtwoord.

Deze bug heb ik een jaar geleden ontdekt. passwoord is iets in de zin van 8letters en x aantal cijfers (niet mijn wachtwoord), maar omdat mijn numlock niet aanstond typte ik dus alleen de letters in. En toch kon ik inloggen. Nadien nog eens getest en nog steeds kon ik inloggen met de letters alleen. 5letters daarintegen geeft een foutmelding.

Ik heb dit probleem aangeklaagt bij telenet helpdesk, maar na een telefoontje snapte die persoon er niets van (hij dacht dat ik mijn wachtwoord wou veranderen, wtf). Ik heb dan maar gezegd dat hij het mailtje door moest sturen naar iemand van de webafdeling of security. Tot vandaag is deze bug nog steeds niet gefixed.

EDIT:
Net wat RobIII zei dus.
RobIII schreef op dinsdag 13 september 2011 @ 22:37:
[...]

Die 8 tekens zijn voldoende voor een HEULE DIKKE alarmbel die bij mij gaat rinkelen (en is nog erger dan alleen maar een MD5($password)). Ik kan helaas 't originele artikel waar ik eigenlijk naar had willen linken niet zo snel vinden.

[ Voor 13% gewijzigd door Verwijderd op 16-09-2011 01:36 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
.oisyn schreef op woensdag 14 september 2011 @ 12:58:
[...]

Maar dat is een niet zo boeiende optimalisatie.
Maar 't is er wel één :P Ik zou ze niet graag met de hand uitschrijven :+

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


Acties:
  • 0 Henk 'm!

  • PiepPiep
  • Registratie: Maart 2002
  • Laatst online: 18-01-2023
Ah wat mooi en vast ook super handig voor de helpdesk, bij telfort mobiel zijn andere password voorwaarden dan bij telfort internet :P

486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
R4gnax schreef op donderdag 15 september 2011 @ 21:20:
[...]


Wil al zeggen; dit klinkt toch echt als iets wat je in het engels een 'TimeSlot' zou noemen. Wellicht zou je dat BL object een 'PerformanceTimeSlot' kunnen noemen?
Ik ben 1/3e (ernstig brakke gedeelte) van de applicatie aan het herschrijven, de andere semi-brakke 2/3e gebruikt dezelfde BL. ;) Dus ik kan niet zomaar aan mijn domain model gaan sleutelen op het moment.

(Heb sowieso nu 3 weken (naja, 5 manweken, collega schrijft de XAML) om een applicatie van een half manjaar werk te herbouwen. Jeuj.)

[ Voor 20% gewijzigd door Grijze Vos op 16-09-2011 11:04 ]

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


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 28-09 16:46
Ach, met een goeie DSL moet dat toch wel lukken? :+

Acties:
  • 0 Henk 'm!

  • Sv3n
  • Registratie: Mei 2002
  • Laatst online: 28-09 12:11
ActiveX, een grote faal. Code die wel werkt in IE9 maar niet blijkt te werken in IE8 (heel IE crasht), waardoor je dit soort prachtige code moet produceren:

JavaScript:
1
2
3
//Hier zit een timeout op omdat er in IE8 een timing issue speelt bij het sluiten van de viewer
//Haal deze timeout weg en de viewer crasht bij het sluiten in IE8
setTimeout("getISiteFrame().reset()",10);


Helaas is er geen alternatief en moet ik met het ActiveX component werken, leuke bijkomstigheid is dat de release cycle van het ActiveX component zo lang is dat om fixes vragen in het ActiveX component zinloos is :|

Last.fm
Films!


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
MBV schreef op vrijdag 16 september 2011 @ 09:58:
Ach, met een goeie DSL moet dat toch wel lukken? :+
Ja, die heet XAML. :P

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


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 28-09 16:46
Ik neem aan dat je je afstudeerproject ook nog steeds gebruikt?

Acties:
  • 0 Henk 'm!

  • Noxious
  • Registratie: Juli 2002
  • Laatst online: 27-09 14:27
Haan schreef op donderdag 15 september 2011 @ 09:13:
Ik kom net weer een leuke tegen:
C#:
1
2
3
4
5
internal class Program
{
     // hele lijst public fields..
     public static string strLog;
}


En dan steeds 'Program.strLog += "foo" ' doen om iets te loggen.
O ja, en de rest van de 1500 regels code zit ook in Program.cs |:(

O en wat nog leuker is, het is een console programma dat iedere nacht wordt gescheduled op een server om een XML file te genereren, en de foutafhandeling wordt naar de Console geschreven die niemand dus ooit zal zien 8)7
Dat heb ik wel eens gedaan :$
Ik had een stukje testcode :P wat per ongeluk in het definitieve project was gekomen :+
Vrijdagmiddag geinstalleerd op de productieomgeving.
In het weekend mezelf bedenken dat dat er mogelijk nog in zat (zo'n log-string).
Maandagmorgen direct checken, machine op 99% van z'n RAM, swap vol en cpu over de 40% :') woeps :+

Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Breek me de bek niet open over DSLs :/. Scala library ontwikkelaars geilen er helemaal op om een of andere reden, waardoor je baksels als Scalaquery krijgt.

Scala:
1
2
3
4
5
6
7
8
9
10
11
12
13
  def receive {
    case FetchNotificationPlan(id) => {
      databaseConnection withSession { session: Session =>
        val query = for {u <- SystemStatePersister.NotificationPlans if ( u.notificationPlanId is id) } yield u
        
          val resultList = query.list() (session) map { 
          case (id, deviceId, fromStation, toStation, viaStation, plannedDeparture, plannedDepartureFirstStation, plannedArrival, schedulingTime, minutesBeforeDeparture, guard, minutesBeforeArrival, checkoutWarning, repeatOnDays) => {
                    NotificationPlan(id, deviceId, fromStation, toStation, viaStation, plannedDeparture, plannedDepartureFirstStation, plannedArrival, schedulingTime, minutesBeforeDeparture, guard, minutesBeforeArrival, checkoutWarning, repeatOnDays)
          }
        }
        self.channel ! resultList.head
    }
  }


Ik weet niet helemaal wat er gebeurt. Blijkbaar, om een query te schrijven, maak je eerst een loop die over alle records heen gaat en de voorwaarden definieert. Als een record aan de voorwaarden voldoet, geef je het ID ervan terug (dmv Yield). Vervolgens voer je dat uit en doe je iets met pattern matching (:s) om een rij eruit te halen.

Alsof je met een query verschillende datatypes / rijen terugkrijgt... Ik begrijp het gewoon niet, laten we het daar maar op houden.

Wat wel leuk is: implicit conversions. Maak een functie met magische keywords en je kunt zo een JodaTime DateTime omzetten naar een java.sql.Timestamp dmv een cast:

Scala:
1
2
3
4
5
6
7
8
  //implicit conversion from joda DateTime to SQL Timestamp
  implicit def dateTime2Timestamp(date: DateTime) : Timestamp = {
    new java.sql.Timestamp(date.getMillis)
  }

// gebruik:
val now = DateTime.now()
val timestamp = now : DateTime // met een cast dus

Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 28-09 16:46
YopY schreef op vrijdag 16 september 2011 @ 20:31:
Breek me de bek niet open over DSLs :/.
Goh, iemand hier heeft het volgende op z'n linkedin staan:
Particularly interested in employing code generation and domain specific languages to improve code quality and reduce the development duration. Generally choosing for quality as opposed to quantity.
* MBV rent :+

Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 07:15

RayNbow

Kirika <3

YopY schreef op vrijdag 16 september 2011 @ 20:31:
Breek me de bek niet open over DSLs :/. Scala library ontwikkelaars geilen er helemaal op om een of andere reden, waardoor je baksels als Scalaquery krijgt.

[...]

Ik weet niet helemaal wat er gebeurt. Blijkbaar, om een query te schrijven, maak je eerst een loop [...]
Heb je misschien RayNbow in "De Devschuur Coffee Corner" gemist? :p
Het is geen loop, het is een query. Het lijkt alleen op een loop omdat het toevallig het woordje "for" gebruikt. ;)

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
MBV schreef op vrijdag 16 september 2011 @ 11:14:
[...]

Ik neem aan dat je je afstudeerproject ook nog steeds gebruikt?
Alleen de theorie, niet de tooling. De tooling is vreselijk. Krijg je met die academische rommel. :P

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


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 28-09 16:46
Grijze Vos schreef op zaterdag 17 september 2011 @ 13:12:
[...]

Alleen de theorie, niet de tooling. De tooling is vreselijk. Krijg je met die academische rommel. :P
Ik ben ook nog altijd heel blij dat ik voor mijn afstuderen niet ASF+SDF heb gebruikt, maar een normale parser-generator :X

edit:
Oh wacht, niet de koffie-corner. ASF+SDF is een slecht programmeervoorbeeld ;)

[ Voor 11% gewijzigd door MBV op 17-09-2011 17:00 ]


Acties:
  • 0 Henk 'm!

Verwijderd

YopY schreef op vrijdag 16 september 2011 @ 20:31:
Breek me de bek niet open over DSLs :/. Scala library ontwikkelaars geilen er helemaal op om een of andere reden, waardoor je baksels als Scalaquery krijgt.
DSL's bouwen betekent natuurlijk nog niet direct dat de output ook goed is ;)

Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
RayNbow schreef op vrijdag 16 september 2011 @ 22:31:
[...]

Heb je misschien RayNbow in "De Devschuur Coffee Corner" gemist? :p
Het is geen loop, het is een query. Het lijkt alleen op een loop omdat het toevallig het woordje "for" gebruikt. ;)
In Progress is het allebei, dan doe je gewoon
OpenEdge ABL:
1
2
3
4
5
6
FOR EACH tabel NO-LOCK
  WHERE tabel.veld = "iets":

  ASSIGN tabel.anderveld = "aep".

END.


Van alle negatieve dingen die je over deze taal kunt zeggen, is de handige database integratie er niet één van, zolang de database ook van Progress is natuurlijk...; :9

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Zojuist dit tegengekomen in een class:

C#:
1
if(cloned.someProperty != original.someProperty) insertAudit(username, itemId, "CHANGE", "someProperty", original.someProperty, cloned.someProperty);


Maar dan voor iedere property van desbetreffende klasse. En er zitten iets van 250 properties in.

|:(

We are shaping the future


Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Alex) schreef op maandag 19 september 2011 @ 15:11:
Zojuist dit tegengekomen in een class:

C#:
1
if(cloned.someProperty != original.someProperty) insertAudit(username, itemId, "CHANGE", "someProperty", original.someProperty, cloned.someProperty);


Maar dan voor iedere property van desbetreffende klasse. En er zitten iets van 250 properties in.

|:(
Wij moeten dit soort dingen juist doen vanwege SarBox requirements, zij het wel iets eleganter.

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Ik snap het principe achter auditing, en ik support het ook, maar handmatig iedere property gaan vergelijken is gewoon ranzig. Dat kan veel beter met Reflection: het levert schonere, beter begrijpbare code op die ook nog eens minder error-prone is: na het toevoegen van een nieuwe property wordt hij automatisch mee opgepakt bij de vergelijking.

Oh, dit gebeurde trouwens in de user interface.

We are shaping the future


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Als die validatie code gewoon gegenereerd kan worden geef ik daar de voorkeur aan boven reflection.

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


Acties:
  • 0 Henk 'm!

  • FreakyFries
  • Registratie: November 2006
  • Laatst online: 27-01-2021
PHP:
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; // Sluit alle vergeten niet afgesloten functies af


:?

Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 00:17
:D

Acties:
  • 0 Henk 'm!

  • spleethoven
  • Registratie: Oktober 2010
  • Laatst online: 24-01-2024
FreakyFries schreef op maandag 19 september 2011 @ 16:27:
PHP:
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; // Sluit alle vergeten niet afgesloten functies af


:?
Een van de betere in dit topic :P

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
FreakyFries schreef op maandag 19 september 2011 @ 16:27:
PHP:
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; // Sluit alle vergeten niet afgesloten functies af


:?
LOL, dat moet natuurlijk dit zijn:

PHP:
1
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} // Sluit alle vergeten niet afgesloten functies af


8)7

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 23:53

AW_Bos

Liefhebber van nostalgie... 🕰️

Leuke die ik tegen kwam:

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
    if((function_exists("get_magic_quotes_gpc") && get_magic_quotes_gpc())    || (ini_get('magic_quotes_sybase') && (strtolower(ini_get('magic_quotes_sybase'))!="off")) ){ 
        stripslashes_deep($_GET); 
        stripslashes_deep($_POST); 
        stripslashes_deep($_COOKIE); 
    } 
    
      $locatie = $_SERVER['REQUEST_URI'];
$array = Array();
$array[] = "mysql";
$array[] = "query";
$array[] = ";";
$array[] = "}";
$array[] = "INSERT";
$array[] = "%40";
$array[] = "DROPTABLE";
$array[] = "TRUNCATE";
$array[] = "UPDATE";
$array[] = "DELETE";
$array[] = "WHERE";
foreach($array As $foutbezig)
{
    if(eregi($foutbezig,$locatie))
    {
        echo "Waarschijnlijke SQL injectie! Probeer opnieuw.";
        exit();
    }
}

Dit was bedoeld voor een stationsdatabase van iemand. Laat er toevallig ook een station bestaan wat Purmerend OverWHERE heet ;).. Daar hang je dan.

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


Acties:
  • 0 Henk 'm!

  • Kanarie
  • Registratie: Oktober 2000
  • Laatst online: 07:48

Kanarie

תֹ֙הוּ֙ וָבֹ֔הוּ

code:
1
2
3
def self.used
  where(:in_use => false)
end


:'(

We're trapped in the belly of this horrible machine. And the machine is bleeding to death.


Acties:
  • 0 Henk 'm!

  • bindsa
  • Registratie: Juli 2009
  • Niet online
AW_Bos schreef op maandag 19 september 2011 @ 22:04:
Leuke die ik tegen kwam:

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
    if((function_exists("get_magic_quotes_gpc") && get_magic_quotes_gpc())    || (ini_get('magic_quotes_sybase') && (strtolower(ini_get('magic_quotes_sybase'))!="off")) ){ 
        stripslashes_deep($_GET); 
        stripslashes_deep($_POST); 
        stripslashes_deep($_COOKIE); 
    } 
    
      $locatie = $_SERVER['REQUEST_URI'];
$array = Array();
$array[] = "mysql";
$array[] = "query";
$array[] = ";";
$array[] = "}";
$array[] = "INSERT";
$array[] = "%40";
$array[] = "DROPTABLE";
$array[] = "TRUNCATE";
$array[] = "UPDATE";
$array[] = "DELETE";
$array[] = "WHERE";
foreach($array As $foutbezig)
{
    if(eregi($foutbezig,$locatie))
    {
        echo "Waarschijnlijke SQL injectie! Probeer opnieuw.";
        exit();
    }
}

Dit was bedoeld voor een stationsdatabase van iemand. Laat er toevallig ook een station bestaan wat Purmerend OverWHERE heet ;).. Daar hang je dan.
Met zulke code ben je sowieso fout bezig. Een paar CHAR() functies en UNION, CONCATS en je bent binnen. En dan vergeet ik de tig andere commando's die de developer (Welke developer kent nou alle MySQL commando's en weet ook nog alle URL encodings te omzeilen en byte codes etc.) ook vergeet. Beter controleer je gewoon je data formaat (integer verwacht -> check dit dan of cast impliciet, string verwacht met alleen a-z, check dit dan). En parametrized queries of course.

[ Voor 12% gewijzigd door bindsa op 19-09-2011 22:27 ]


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
T.H. Lassche schreef op maandag 19 september 2011 @ 22:17:
[...]

Met zulke code ben je sowieso fout bezig. Een paar CHAR() functies en UNION, CONCATS en je bent binnen. En dan vergeet ik de tig andere commando's die de developer ook vergeet. Beter controleer je gewoon je data formaat (integer verwacht -> check dit dan of cast impliciet, string verwacht met alleen a-z, check dit dan). En parametrized queries of course.
het idee uberhaupt dat je sql injectie zou moeten detecteren... |:(

gewoon parameters gebruiken..
http://www.php.net/manual/en/mysqli-stmt.bind-param.php

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • Phoenix1337
  • Registratie: April 2009
  • Laatst online: 21:38
En anders nog altijd mysql_real_escape_string :)

Acties:
  • 0 Henk 'm!

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 28-09 15:26
Phoenix1337 schreef op maandag 19 september 2011 @ 22:28:
En anders nog altijd mysql_real_escape_string :)
Gebeurt automagisch als je prepared statements gebruikt.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:44

.oisyn

Moderator Devschuur®

Demotivational Speaker

Daarom zei ie ook "en anders..." ;)

[ Voor 4% gewijzigd door .oisyn op 19-09-2011 23:04 ]

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!

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 28-09 15:26
.oisyn schreef op maandag 19 september 2011 @ 23:04:
Daarom zei ie ook "en anders..." ;)
Had de "anders" niet gelezen. :+ Mijn excuses.

Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 28-09 19:02
M'n eigen crap waar ik nu doorheen worstel, geen commentaar van wat wat doet en niet bepaald descriptieve variabele namen :')

Een stukje:
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
foreach($results as $result) {
         
         $i++;

         if($current !== $result['A']) {
            $temp = 0;
            for($x = 0; $x<$result['hits']; $x++) {
               $temp += $x + $i;
            }

            $value = $temp / $result['hits'];

            $current = $result['A'];
         }
         
         //Colors should start at the first part (everything below 0 is white)
         $percent = ($value - 1) / $length * 100;
         //Invert
         $percent = 100 - $percent;
         $colorKey = floor($percent / 100 * $nrColors);
         $color = $colors[$colorKey];

         $table->insertResult($result['RI'], $result['FRI'], $value, $color);
      }


Jep, een echte WTF.

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Iemand die de output kan verklaren bij de volgende code? (PHP 5.3.3):

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
function bar(&$var) {
    $var = function() {
        print 'bar';
    };
}
function foo(&$var) {
    $var = function() use($var) {
        print 'foo';
    };
}
function foobar(&$var) {
    $tmp = $var;
    $var = function() use($tmp) {
        print 'foobar';
    };
}

$a = function() {
    print 'a';
};
$b = function() {
    print 'b';
};
$c = function() {
    print 'b';
};

bar($a);
$a();

print ' ';

foo($b);
$b();

print ' ';

foobar($c);
$c();

// Output:
// bar b foobar


Ik snap er niet zoveel van. :P

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:44

.oisyn

Moderator Devschuur®

Demotivational Speaker

Het is niet heel logisch. Maar ik gok dat als je een bug submit doet dat er dan een een of andere verklaring komt die zegt dat het eigenlijk heel logisch is omdat ze het geïmplementeerd hebben op manier X.

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!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Hmm heb het even getest in 5.3.8 (windows binary) en daar lijkt het wel goed te gaan. Zal wel een bug zijn geweest die inmiddels gepatched is.

Dus.. nothing to see here, move along please... ;)

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 28-09 08:13
Tja die output is een vreemde mengelmoes van call-by-reference waarbij een printfunctie die in een variabele is opgeslagen in een andere functie overschreven wordt met een functie die iets anders print.

Het use() gebeuren zorgt er verder voor dat de ene keer de globale namespace gepakt wordt (van de call-by-reference variabele) of de lokale namespace (van de $tmp kopie).

Ziet er verder uit als een potje PHP prutsen voor gevorderden, maar hopelijk heeft iemand er iets van geleerd :P

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Nou dit is een versimpelde case van wat ik wel voor een web applicatie gebruik. Daarin wordt via een soort DSL een multidimensionale associatieve array opgebouwd. Bepaalde waarden daarvan zijn callbacks. Die array wordt door een aantal filters (functies) gehaald die de kans krijgen om wijzigingen aan te brengen.

In één van die filters wordt een callback overschreven via een closure. Echter is binnen die closure info uit de array zelf nodig, dus vandaar die use(). Dus zo gek is het imo niet.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • SPee
  • Registratie: Oktober 2001
  • Laatst online: 23:59
Lijkt mij dat in foobar() de variabele $tmp niet meer een waarde heeft en dus de default gebruikt wordt.
In Java moet je dan de final keyword voor gebruiken.

let the past be the past.


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
In foobar() gaat (ging) het juist wel goed. $tmp heeft dan gewoon de originele functie die aan $c wordt toegekend. In foo() lijkt het erop dat de gehele assignment geskipt wordt.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • yade
  • Registratie: Mei 2002
  • Laatst online: 16-07 13:47
Michali schreef op dinsdag 20 september 2011 @ 16:31:
In foobar() gaat (ging) het juist wel goed. $tmp heeft dan gewoon de originele functie die aan $c wordt toegekend. In foo() lijkt het erop dat de gehele assignment geskipt wordt.
https://bugs.php.net/bug.php?id=53958 ?

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Had ik idd. ook gezien. Of het is deze bug: https://bugs.php.net/bug.php?id=54358. Een van die twee heeft deze situatie iig ook verholpen. Ik kon namelijk geen bug vinden die dit precies zo beschreef.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:44

.oisyn

Moderator Devschuur®

Demotivational Speaker

Morrar schreef op dinsdag 20 september 2011 @ 16:00:
Het use() gebeuren zorgt er verder voor dat de ene keer de globale namespace gepakt wordt (van de call-by-reference variabele) of de lokale namespace (van de $tmp kopie).
Use doet niets met namespaces. Het zorgt er louter voor dat de closure de variabele kan zien (door een kopie te maken danwel een reference te tracken). In het voorbeeld zou er gewoon een kopie gemaakt moeten worden van $var, voordat $var overschreven wordt met een nieuwe waarde.
Ziet er verder uit als een potje PHP prutsen voor gevorderden, maar hopelijk heeft iemand er iets van geleerd :P
Bottom line is dat het gedrag gewoon niet klopt. Of jij de code mooi vindt of niet is daarbij compleet irrelevant.

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!

  • yade
  • Registratie: Mei 2002
  • Laatst online: 16-07 13:47
Ja, één van die inderdaad. Ik krijg er wel kriebels van, van dit soort bugs. Bij een klant van me gebruiken ze ook nog een encoder, IonCube. En ja, die kan ook dit soort rare bugs introduceren. :(

  • Wijnbo
  • Registratie: December 2002
  • Laatst online: 22-09 14:46

Wijnbo

Electronica werkt op rook.

Soms hoop je gewoon op een slecht programmeervoorbeeld...

Afbeeldingslocatie: http://www.acartoofar.co.uk/wp-content/uploads/2010/03/SQL_Injection_-License_Plate.jpg

[ Voor 5% gewijzigd door Wijnbo op 22-09-2011 08:45 ]


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
DIt is ook een leuke:

(XAML)
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<ControlTemplate x:Key="CashierShowSeatTemplate" TargetType="{x:Type UserControls:CashierShowSeat}">
        <ControlTemplate.Triggers>
            <Trigger Property="TypePlacing" Value="0">
                <Setter Property="Background" Value="{DynamicResource SeatAvailable}" />
            </Trigger>
            <Trigger Property="TypePlacing" Value="1">
                <Setter Property="Background" Value="{DynamicResource SeatTaken}" />
            </Trigger>
            <Trigger Property="TypePlacing" Value="2">
                <Setter Property="Background" Value="{DynamicResource SeatTaken}" />
            </Trigger>
            <Trigger Property="TypePlacing" Value="5">
                <Setter Property="Background" Value="{DynamicResource SeatBlocked}" />
            </Trigger>
            <Trigger Property="TypePlacing" Value="6">
                <Setter Property="Background" Value="{DynamicResource SeatPlaceByHand}" />
            </Trigger>
            <Trigger Property="TypePlacing" Value="7">
                <Setter Property="Background" Value="{DynamicResource NotPayedReservation}" />
            </Trigger>
            <Trigger Property="TypePlacing" Value="9">
                <Setter Property="Background" Value="{DynamicResource SeatBlocked}" />
            </Trigger>
            <!--10-20 typeplacings reserved for 10 clients--> 
            <Trigger Property="TypePlacing" Value="10">
                <Setter Property="Background" Value="{DynamicResource SeatAvailable}" />
            </Trigger>
            
            [..]

            <Trigger Property="TypePlacing" Value="20">
                <Setter Property="Background" Value="{DynamicResource SeatAvailable}" />
            </Trigger>
            <!--100-120 typeplacings reserved for 10 clients for the selected seat-->
            <Trigger Property="TypePlacing" Value="100">
                <Setter Property="Background" Value="{DynamicResource SelectedSeat}" />
            </Trigger>
            
            [..]
            <Trigger Property="TypePlacing" Value="120">
                <Setter Property="Background" Value="{DynamicResource SelectedSeat}" />
            </Trigger>
            <Trigger Property="IsChair" Value="True">
                <Setter Property="Background" Value="{DynamicResource IsChair}" />
            </Trigger>
        </ControlTemplate.Triggers>


Niet alleen zijn deze 40 triggers te herschrijven tot 1 regel XAML en een value converter, daarnaast is deze "TypePlacing" variabele ook nog eens zo'n geweldig magische integer met allemaal vage properties. Waarom willen beginnende programmeurs toch altijd besparen op variabelen. :/

----
Oh, en nog eentje die ik jullie niet kan onthouden, ik mis alleen de optie BestandNietGevonden:

C#:
1
2
3
4
5
    public enum TrueFalseEnum
    {
        Ja,
        Nee
    }

[ Voor 3% gewijzigd door Grijze Vos op 22-09-2011 09:58 ]

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


  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Phoenix1337 schreef op maandag 19 september 2011 @ 22:28:
En anders nog altijd mysql_real_escape_string :)
Pardon, 'en anders'? Als je van het bestaan van prepared statements weet heb je geen excuus meer om nog die bracque hack te gebruiken, :p.

  • Cartman!
  • Registratie: April 2000
  • Niet online
YopY schreef op donderdag 22 september 2011 @ 10:42:
[...]


Pardon, 'en anders'? Als je van het bestaan van prepared statements weet heb je geen excuus meer om nog die bracque hack te gebruiken, :p.
QFT :)

  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 24-09 13:50

Armageddon_2k

Trotse eigenaar: Yamaha R6

Heerlijk, we hebben hier een programmatje draaien dat gebruik maakt van wat extrene prorgamma's.
Deze programma's hebben we in de root van onze app staan zodat bij het verplaatsen van deze folder, het allemaal blijft werken.
Laatst is er iemand geweest die een uitbreiding heeft gedaan op de code, de uitbreiding zit in de actie: send email.

Zoek de verschillen:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
            Select Case Action
                Case "robocopy"
                    process.StartInfo.FileName = AppPath & "robocopy.exe"
                Case "delete"
                    process.StartInfo.FileName = AppPath & "sdelete.exe"
                Case "rename"
                    process.StartInfo.FileName = AppPath & "renamer.exe"
                Case "sendEmail"
                    process.StartInfo.FileName = "D:\Tools\Email\sendEmail.bat"
            End Select

  • Phoenix1337
  • Registratie: April 2009
  • Laatst online: 21:38
YopY schreef op donderdag 22 september 2011 @ 10:42:
[...]


Pardon, 'en anders'? Als je van het bestaan van prepared statements weet heb je geen excuus meer om nog die bracque hack te gebruiken, :p.
Mocht je met iets nieuws beginnen dan ben ik het daar absoluut mee eens. Maar als de bestaande codebase nog geen gebruik maakt van PDO of MySQLi dan moet je soms wat he.

  • bindsa
  • Registratie: Juli 2009
  • Niet online
Phoenix1337 schreef op donderdag 22 september 2011 @ 16:18:
[...]


Mocht je met iets nieuws beginnen dan ben ik het daar absoluut mee eens. Maar als de bestaande codebase nog geen gebruik maakt van PDO of MySQLi dan moet je soms wat he.
Inderdaad, de codebase herschrijven ;)

  • Phoenix1337
  • Registratie: April 2009
  • Laatst online: 21:38
T.H. Lassche schreef op donderdag 22 september 2011 @ 16:39:
[...]

Inderdaad, de codebase herschrijven ;)
Ooit :)

  • Patriot
  • Registratie: December 2004
  • Laatst online: 27-09 13:00

Patriot

Fulltime #whatpulsert

.oisyn schreef op dinsdag 20 september 2011 @ 15:34:
Het is niet heel logisch. Maar ik gok dat als je een bug submit doet dat er dan een een of andere verklaring komt die zegt dat het eigenlijk heel logisch is omdat ze het geïmplementeerd hebben op manier X.
Mogen ze met wel héél mooie argumenten komen waarom het logisch is dat een closure dingen gaat veranderen die buiten zijn scope vallen :+

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Phoenix1337 schreef op donderdag 22 september 2011 @ 16:18:
[...]


Mocht je met iets nieuws beginnen dan ben ik het daar absoluut mee eens. Maar als de bestaande codebase nog geen gebruik maakt van PDO of MySQLi dan moet je soms wat he.
Ja, klagen en als eerste de PHP versie upgraden en als tweede langzaamaan gaan refactoren :p. Natuurlijk zonder hier toestemming voor te vragen van wie dan ook. Herschrijven is iets extreems wat waarschijnlijk nooit gaat gebeuren (ga daar maar van uit). Je moet eigenlijk nooit gaan denken 'Ja, daar kom ik later wel aan toe', want in de praktijk kom je daar niet aan toe (spreekt uit ervaring / confrontatie met een //TODO: do error handling :+)

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 28-09 01:17

alienfruit

the alien you never expected

Gewoon een slomere computer nemen zodat je muis happert wanneer je VMWare Player hebt draaien met Windows :+

  • B-Man
  • Registratie: Februari 2000
  • Niet online
Hmmm, kreeg de vraag om naar een trage server van een klant te kijken. Wat zie je dan: een mysql server die een quadcore opteron voltrekt met een paar procent disk utilization.
Dus de slow query log maar eens aangezet. En dat was even schrikken:

SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
SELECT
    res.bedr_id,
    SUM(res.amount) as score,
    bedrijf.*
FROM (SELECT bedr_id, MATCH (bedr_naam, bedr_titel, bedr_beschrijving) AGAINST ('delfstoffenwinning') as amount FROM bedrijf WHERE MATCH (bedr_naam, bedr_titel, bedr_beschrijving) AGAINST ('delfstoffenwinning')
    UNION ALL
    SELECT nws_bedr_id as bedr_id, MATCH (nws_titel, nws_subtitel, nws_tekst) AGAINST ('delfstoffenwinning') as amount FROM nieuws WHERE MATCH (nws_titel, nws_subtitel, nws_tekst) AGAINST ('delfstoffenwinning')
    UNION ALL
    SELECT key_bedr_id as bedr_id, MATCH (key_woord) AGAINST ('delfstoffenwinning') as amount FROM keywords WHERE MATCH (key_woord) AGAINST ('delfstoffenwinning')
    UNION ALL
    SELECT adv_bedr_id as bedr_id, MATCH (adv_titel, adv_subtitel, adv_tekst) AGAINST ('delfstoffenwinning') as amount FROM advertenties WHERE MATCH (adv_titel, adv_subtitel, adv_tekst) AGAINST ('delfstoffenwinning')
    UNION ALL
    SELECT bs_bedr_id AS bedr_id, 1 AS amount FROM subrubrieken JOIN bedrijf_subrubriek ON subr_id = bs_subr_id WHERE MATCH (subr_naam)AGAINST ('delfstoffenwinning')
    UNION ALL
    SELECT bedr_id, 1 as amount FROM bedrijf WHERE bedr_rubr_id IN(SELECT rubr_id FROM rubrieken WHERE MATCH (rubr_naam) AGAINST ('delfstoffenwinning')) UNION ALL SELECT bedr_id, MATCH (bedr_naam, bedr_titel, bedr_beschrijving) AGAINST ('en') as amount FROM bedrijf WHERE MATCH (bedr_naam, bedr_titel, bedr_beschrijving) AGAINST ('en')
    UNION ALL
    SELECT nws_bedr_id as bedr_id, MATCH (nws_titel, nws_subtitel, nws_tekst) AGAINST ('en') as amount FROM nieuws WHERE MATCH (nws_titel, nws_subtitel, nws_tekst) AGAINST ('en')
    UNION ALL
    SELECT key_bedr_id as bedr_id, MATCH (key_woord) AGAINST ('en') as amount FROM keywords WHERE MATCH (key_woord) AGAINST ('en')
    UNION ALL
    SELECT adv_bedr_id as bedr_id, MATCH (adv_titel, adv_subtitel, adv_tekst) AGAINST ('en') as amount FROM advertenties WHERE MATCH (adv_titel, adv_subtitel, adv_tekst) AGAINST ('en')
    UNION ALL
    SELECT bs_bedr_id AS bedr_id, 1 AS amount FROM subrubrieken JOIN bedrijf_subrubriek ON subr_id = bs_subr_id WHERE MATCH (subr_naam)AGAINST ('en')
    UNION ALL
    SELECT bedr_id, 1 as amount FROM bedrijf WHERE bedr_rubr_id IN(SELECT rubr_id FROM rubrieken WHERE MATCH (rubr_naam) AGAINST ('en')) UNION ALL SELECT bedr_id, MATCH (bedr_naam, bedr_titel, bedr_beschrijving) AGAINST ('delfstoffen') as amount FROM bedrijf WHERE MATCH (bedr_naam, bedr_titel, bedr_beschrijving) AGAINST ('delfstoffen')
    UNION ALL
    SELECT nws_bedr_id as bedr_id, MATCH (nws_titel, nws_subtitel, nws_tekst) AGAINST ('delfstoffen') as amount FROM nieuws WHERE MATCH (nws_titel, nws_subtitel, nws_tekst) AGAINST ('delfstoffen')
    UNION ALL
    SELECT key_bedr_id as bedr_id, MATCH (key_woord) AGAINST ('delfstoffen') as amount FROM keywords WHERE MATCH (key_woord) AGAINST ('delfstoffen')
    UNION ALL
    SELECT adv_bedr_id as bedr_id, MATCH (adv_titel, adv_subtitel, adv_tekst) AGAINST ('delfstoffen') as amount FROM advertenties WHERE MATCH (adv_titel, adv_subtitel, adv_tekst) AGAINST ('delfstoffen')
    UNION ALL
    SELECT bs_bedr_id AS bedr_id, 1 AS amount FROM subrubrieken JOIN bedrijf_subrubriek ON subr_id = bs_subr_id WHERE MATCH (subr_naam)AGAINST ('delfstoffen')
    UNION ALL
    SELECT bedr_id, 1 as amount FROM bedrijf WHERE bedr_rubr_id IN(SELECT rubr_id FROM rubrieken WHERE MATCH (rubr_naam) AGAINST ('delfstoffen'))) as res
JOIN
    bedrijf ON res.bedr_id = bedrijf.bedr_id JOIN gebruikers ON bedrijf.bedr_id = geb_bedr_id   WHERE bedr_active = 1 AND bedr_rubr_id = '272'
GROUP BY
    res.bedr_id
ORDER BY geb_type DESC, score DESC;


En dat continue, over in totaal (product van de unions) 25mln rijen. Ja hola! geen wonder dat het traag is.
Major wtf: ipv de fulltext search zijn werk te laten doen door op een bepaalde string te zoeken, de string in delen knippen en per term zoeken. Op drukke momenten staat mysql rustig 30 seconden te rekenen op het resultaat van 1 zo'n query.

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 28-09 08:13
Wauw mooi stukje SQL proza! Best "knap" als je dat er zo even uitgooit :)

Misschien ook leuk voor een SQL cursus / tentamen: probeer uit te vogelen wat de neuk hier gebeurt :)

  • B-Man
  • Registratie: Februari 2000
  • Niet online
Morrar schreef op donderdag 22 september 2011 @ 23:08:
Wauw mooi stukje SQL proza! Best knap als je dat er zo even uitgooit :)

Misschien ook leuk voor een SQL cursus / tentamen: probeer uit te vogelen wat de neuk hier gebeurt :)
Ja precies. Dit hoor natuurlijk niet thuis achter een redelijk druk bezochte website.

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 28-09 08:13
B-Man schreef op donderdag 22 september 2011 @ 23:11:
[...]

Ja precies. Dit hoor natuurlijk niet thuis achter een redelijk druk bezochte website.
Voor een database stresstest aan de andere kant .... :+

Acties:
  • 0 Henk 'm!

  • B-Man
  • Registratie: Februari 2000
  • Niet online
Morrar schreef op donderdag 22 september 2011 @ 23:14:
[...]


Voor een database stresstest aan de andere kant .... :+
Net wat zitten debuggen, en het grootste probleem is dat mysql een independent subquery als dependent subquery behandelt. Dus voor miljoenen rijen een subquery uitvoeren die altijd hetzelfde resultaat geeft.
Uiteraard is hier simpel omheen te werken door een join te gebruiken. Gevalletje programmeur die queries niet door de query analyzer haalt.

Zojuist ff de meest problematische query van een dependent subquery naar een join omgezet, en tadaa, van vier cores op 100% naar eentje op 30%.

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 26-09 19:17

Matis

Rubber Rocket

Dat is neg steeds behoorlijk, maar een winst van factor 13 :)

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


Acties:
  • 0 Henk 'm!

  • B-Man
  • Registratie: Februari 2000
  • Niet online
Matis schreef op vrijdag 23 september 2011 @ 00:37:
Dat is neg steeds behoorlijk, maar een winst van factor 13 :)
Volgende pijnpunt is dat er vanwege de UNION ALL statements voor sommige zoekopdrachten door miljoenen records gefietst wordt. De UNION ALL i.c.m. de GROUP BY en ORDER BY zorgt namelijk voor een tmp table op disk. Een LIMIT op de buitenste query doet hier niet veel aan, aangezien die pas na de merge zijn werk doet, en dan is het al te laat. De binnenste queries hebben dan immers al alle matching records uitgelezen voor de tmp table en sort pass.

Kortom: dit is veel sneller door alle inner queries een limit mee te geven, maar dan kun je niet gepagineerd door het totaalresultaat. Morgen maar eens een topic over openen in programming. Heb al wel wat ideeen hoe dit op te lossen, maar wat feedback kan nooit kwaad.

Acties:
  • 0 Henk 'm!

  • Phoenix1337
  • Registratie: April 2009
  • Laatst online: 21:38
YopY schreef op donderdag 22 september 2011 @ 17:05:
[...]


Ja, klagen en als eerste de PHP versie upgraden en als tweede langzaamaan gaan refactoren :p. Natuurlijk zonder hier toestemming voor te vragen van wie dan ook. Herschrijven is iets extreems wat waarschijnlijk nooit gaat gebeuren (ga daar maar van uit). Je moet eigenlijk nooit gaan denken 'Ja, daar kom ik later wel aan toe', want in de praktijk kom je daar niet aan toe (spreekt uit ervaring / confrontatie met een //TODO: do error handling :+)
Het gaat wel gebeuren :) ik heb in januari nog een afstudeerproject nodig.

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 26-09 19:17

Matis

Rubber Rocket

B-Man schreef op vrijdag 23 september 2011 @ 01:44:
Volgende pijnpunt is dat er vanwege de UNION ALL statements voor sommige zoekopdrachten door miljoenen records gefietst wordt. De UNION ALL i.c.m. de GROUP BY en ORDER BY zorgt namelijk voor een tmp table op disk. Een LIMIT op de buitenste query doet hier niet veel aan, aangezien die pas na de merge zijn werk doet, en dan is het al te laat. De binnenste queries hebben dan immers al alle matching records uitgelezen voor de tmp table en sort pass.
Je was me na de eerste zin al kwijt. Ik geloof best dat het een behoorlijke query is. De meest complexe queries die ik ooit geschreven heb is in de vorm select ... where in/= (...) group by .. order by ... en dat op een databaseje van 1000 rijen ofzo :P

[ Voor 14% gewijzigd door Matis op 23-09-2011 09:03 ]

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

Pagina: 1 ... 70 ... 103 Laatste

Dit topic is gesloten.

Let op:
Uiteraard is het in dit topic niet de bedoeling dat andere users en/of topics aangehaald worden om ze voor gek te zetten. Lachen om je eigen code, of over dingen die je "wel eens tegengekomen bent" is prima, maar hou het onderling netjes. :)