[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 ... 27 ... 103 Laatste
Acties:
  • 993.642 views

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 28-09 19:33

Sebazzz

3dp

Steffannnn schreef op dinsdag 13 juli 2010 @ 16:00:
Standaard? De commentaar-/documentatiestijl die je in je team hebt afgesproken is de standaard.. heb je niks afgesproken dan is er geen standaard :P
Nee, maar voor iedere taal of framework is er wel een conventie, iets wat vaak wordt gebruikt. ;)

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


Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Sebazzz schreef op dinsdag 13 juli 2010 @ 16:01:
[...]

Nee, maar voor iedere taal of framework is er wel een conventie, iets wat vaak wordt gebruikt. ;)
Ja, die het makkelijk maakt op de automatische piloot documentatie te laten genereren.

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 28-09 19:33

Sebazzz

3dp

Davio schreef op dinsdag 13 juli 2010 @ 17:07:
[...]

Ja, die het makkelijk maakt op de automatische piloot documentatie te laten genereren.
Precies, en IDE's zoals Zend doen dat in Javadoc stijl.

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


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Handige shortcut in Visual Studio voor het genereren van xmlDoc-tags: ///.

Nog handiger: dit doen bij interfaces, en dan waar je die interface implementeert op de method name klikken en dan in het ReSharper-menu kiezen voor "Copy comment from base" :)

[ Voor 7% gewijzigd door Alex) op 13-07-2010 18:22 ]

We are shaping the future


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 28-09 19:33

Sebazzz

3dp

Alex) schreef op dinsdag 13 juli 2010 @ 18:21:
Handige shortcut in Visual Studio voor het genereren van xmlDoc-tags: ///.

Nog handiger: dit doen bij interfaces, en dan waar je die interface implementeert op de method name klikken en dan in het ReSharper-menu kiezen voor "Copy comment from base" :)
Dat soort dingen hoor je gewoon te weten als je VS en R# gebruikt :p
Overigens nog handiger: Ghostdoc!
Wel opletten dat je comments goed uitbreidt, uitkijken dat je niet de neiging krijgt om lui te worden.

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


Acties:
  • 0 Henk 'm!

  • HMS
  • Registratie: Januari 2004
  • Laatst online: 21-08 23:06

HMS

GhostDoc ziet er wel nice uit :). Maar eens even testen dan.

Acties:
  • 0 Henk 'm!

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

Matis

Rubber Rocket

Ziet er net zo uit als DoxyGen, daar deden wij meestal onze documentatie mee.

Ow, wacht, deze tool genereert het commentaar :o dat is helemaal makkelijk :)

[ Voor 34% gewijzigd door Matis op 13-07-2010 21:53 ]

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


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 28-09 19:33

Sebazzz

3dp

Matis schreef op dinsdag 13 juli 2010 @ 21:51:
Ziet er net zo uit als DoxyGen, daar deden wij meestal onze documentatie mee.
Doxygen is om documentatiebestanden te genereren, niet om automatisch documentatie te maken toch?

edit: Ja editen he :p

[ Voor 4% gewijzigd door Sebazzz op 13-07-2010 21:57 ]

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


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:21
GhostDoc lijkt me precies verkeerd om. De tool die HTML (of whatever) documentatie genereert uit sourcecode kan wel slim documentatie genereren op basis van context/overridden members e.d., maar de sourcecode moet je juist niet automatisch laten genereren, want dat heeft alleen maar nadelen: extra redundante documentatie, als (bijvoorbeeld) de documentatie van de baseclass verandert wordt de gegenereerde documentatie niet meer geüpdatet, als programmeur weet je niet meer welke code handgeschreven (en dus accuraat) is en welke auto-gegenereert (en dus suspect) is.

Naar mijn idee is zo'n tool dus vooral symptoombestrijding bij een code policy waarbij je élke methode verplicht móet becommentariëren, ook implementeer je bijvoorbeeld een interface letterlijk zoals bedoeld en heb je dus feitelijk niets toe te voegen. In dat geval is de policy eigenlijk verkeerd, en kun je die beter veranderen dan dat je het probleem omzeilt door nutteloze troep in te laten voegen in je broncode.

Acties:
  • 0 Henk 'm!

Verwijderd

Ik doe het nog altijd gewoon met de hand :+

Acties:
  • 0 Henk 'm!

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

Matis

Rubber Rocket

Verwijderd schreef op dinsdag 13 juli 2010 @ 22:23:
Ik doe het nog altijd gewoon met de hand :+
En dat zit dan in de automatisering :F :+

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


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01-10 23:36

.oisyn

Moderator Devschuur®

Demotivational Speaker

Idd. Als ik naar mezelf kijk, dan neig ik er al snel naar om een tool te schrijven voor bepaalde repetitive tasks die even moeten gebeuren. Waardoor ik uiteindelijk meer tijd bezig ben met de tool dan als ik het even met de hand zou doen, maar daar ben je een engineer voor :P

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


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Michali schreef op dinsdag 13 juli 2010 @ 15:22:
Ik ben onderhoud aan het doen aan een website. Echt een genot, ik kwam net deze functie tegen:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Return hele string (voor zoeken)

function GetFullString($fullstring,$text)
{
        if (!(stristr ($fullstring, $text) === FALSE))
        {
            $result = "$fullstring";
        }
        
        if ($fullstring == "")
        {
            $result = " ";
        }
        
        if (empty($fullstring))
        {
            $result = " ";
        }
    
        return $result;
    
}
Nog leuk om het volgende te vermelden. Deze functie wordt (werd) op de volgende manier gebruikt:

PHP:
1
2
if (GetFullString($title, $waarde) == $title) {
  ...


Het wordt dus gebruikt om te controleren of $waarde in $title voorkomt, hoofdletter ongevoelig. Waar die &nsbp; voor zijn is me een raadsel.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Michali schreef op woensdag 14 juli 2010 @ 11:22:
[...]


Nog leuk om het volgende te vermelden. Deze functie wordt (werd) op de volgende manier gebruikt:

PHP:
1
2
if (GetFullString($title, $waarde) == $title) {
  ...


Het wordt dus gebruikt om te controleren of $waarde in $title voorkomt, hoofdletter ongevoelig. Waar die &nsbp; voor zijn is me een raadsel.
Ik hoop dat het juist in die nbsp; zit dat deze functie bestaat. De programmeur kent stristr ( alhoewel hij imho een rare manier heeft om True te bepalen ) enkel die nbsp rechtvaardigt het bestaan van de functie nog...

Acties:
  • 0 Henk 'm!

Verwijderd

Gomez12 schreef op woensdag 14 juli 2010 @ 19:38:
[...]

Ik hoop dat het juist in die nbsp; zit dat deze functie bestaat. De programmeur kent stristr ( alhoewel hij imho een rare manier heeft om True te bepalen ) enkel die nbsp rechtvaardigt het bestaan van de functie nog...
Volgens mij rechtvaardigt de   het ook niet hoor, die functie is gewoon bagger... Dat hij stristr kent zegt niks, hij 'kent' empty ook, moet je eens kijken hoe hij het gebruikt haha. :')

Acties:
  • 0 Henk 'm!

  • Gamebuster
  • Registratie: Juli 2007
  • Laatst online: 27-09 22:01
Verwijderd schreef op donderdag 15 juli 2010 @ 22:02:
[...]

Volgens mij rechtvaardigt de   het ook niet hoor, die functie is gewoon bagger... Dat hij stristr kent zegt niks, hij 'kent' empty ook, moet je eens kijken hoe hij het gebruikt haha. :')
Ja, eerst kijken of de string gelijk is aan een lege string ($str == "") en dan nog eens controleren (en vooral geen elseif gebruiken) of de string leeg is. (empty($str))

En kan iemand me de humor van dit uitleggen:
!(stristr ($fullstring, $text) === FALSE)

if( ! ($bool===FALSE) ) { ... }

Yeah... right :P

[ Voor 13% gewijzigd door Gamebuster op 16-07-2010 06:13 ]

Let op: Mijn post bevat meningen, aannames of onwaarheden


Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 00:48
Stristr returned net zoals zowat alle PHP string functies niet altijd een boolean - als een string niet gevonden wordt wel, maar anders returned het een string. Ergo, in theorie zou het voor kunnen komen dat de gevonden string evalueert als false, beetje vreemd maar dan is die check op boolean false nog wel enigzins begrijpelijk.

Voorbeeld:
PHP:
1
2
3
4
5
6
$haystack = '43210';
$needle   = '0';
$found    = stristr($haystack, $needle);

echo $found              ? 'true' : 'false';  // echo's false.
echo !($found === false) ? 'true' : 'false';  // echo's true.

[ Voor 225% gewijzigd door FragFrog op 16-07-2010 07:49 ]

[ Site ] [ twitch ] [ jijbuis ]


Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Ja, dat krijg je met loosetype programmeertalen, moet je af en toe nog eens extra checken.

Want de string 'aep' is dan hetzelfde als de boolean true.

Acties:
  • 0 Henk 'm!

Verwijderd

Ik kom zo nu en dan in de codebase hier juweeltjes van bad practices en vreemde werkwijzen tegen.

Bijvoorbeeld:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
class TransactionController {
    public static function begin() {
        pg_query('BEGIN');
    }

    public static function commit() {
        pg_query('COMMIT');
    }
}

class Transaction extends TransactionController {}


Wat is hier nou allemaal mis? :-)
  • Het is een klasse bestaande uit een paar statische methoden die direct de pg_query-functies aanroepen in plaats van onze DAL. Hoe dit was uitgedacht weet ik niet maar het zijn dus gewoon queries die je zelf ook kunt uitvoeren.
  • De gehele klasse wordt ge-extend omdat Transaction korter typen is, gok ik? Ik weet het niet precies, niemand hier weet het eigenlijk.
Zo zijn er wel meer juweeltjes van bad practices in al die code hier, maar dit vind ik het vermelden wel waard.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01-10 23:36

.oisyn

Moderator Devschuur®

Demotivational Speaker

Davio schreef op vrijdag 16 juli 2010 @ 09:17:
Want de string 'aep' is dan hetzelfde als de boolean true.
Eigenlijk is dat hetzelfde als de boolean false. Maar dat ligt aan PHP, niet aan loose typed programmeertalen. In zo'n beetje iedere andere loose typed programmeertaal is "aep" niet gelijk aan false (of aan true)

[ Voor 7% gewijzigd door .oisyn op 16-07-2010 13:05 ]

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!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
.oisyn schreef op vrijdag 16 juli 2010 @ 13:03:
[...]

Eigenlijk is dat hetzelfde als de boolean false. Maar dat ligt aan PHP, niet aan loose typed programmeertalen. In zo'n beetje iedere andere loose typed programmeertaal is "aep" niet gelijk aan false (of aan true)
Javascript toch wel? Moet je ook === gebruiken ipv ==.

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 28-09 19:33

Sebazzz

3dp

Davio schreef op vrijdag 16 juli 2010 @ 13:26:
[...]

Javascript toch wel? Moet je ook === gebruiken ipv ==.
Probeer maar eens in een javascript shell.
"aep" == true
false
"1" == true
true
"1" === true
false
1 === true
false
1 == true
true
"aep" == false
false
"aep" != false
true

[ Voor 5% gewijzigd door Sebazzz op 16-07-2010 13:32 . Reden: Ik edit omdat ik edit 8) ]

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


Acties:
  • 0 Henk 'm!

Verwijderd

Davio schreef op vrijdag 16 juli 2010 @ 13:26:
[...]

Javascript toch wel? Moet je ook === gebruiken ipv ==.
JavaScript heeft bijna nog vreemdere regels voor typeconversie dan PHP. Zo levert bijvoobeeld (' \r\n\t ' == false) true op.

Bijna alle loosely typed talen hebben dit soort conversies, maar bij de meeste talen zitten er betere regels aan.

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 28-09 19:33

Sebazzz

3dp

Verwijderd schreef op vrijdag 16 juli 2010 @ 13:34:
[...]

JavaScript heeft bijna nog vreemdere regels voor typeconversie dan PHP. Zo levert bijvoobeeld (' \r\n\t ' == false) true op.
Waarschijnlijk omdat dat control characters en whitespace zijn, maar die regels zijn wel degelijk opgesteld en gedocumenteerd in ECMA.

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


Acties:
  • 0 Henk 'm!

Verwijderd

Sebazzz schreef op vrijdag 16 juli 2010 @ 13:37:
[...]

Waarschijnlijk omdat dat control characters en whitespace zijn, maar die regels zijn wel degelijk opgesteld en gedocumenteerd in ECMA.
Ik heb nergens gezegd dat het ongedocumenteerd is, ik vind het zelf alleen bizar. :-)

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 28-09 19:33

Sebazzz

3dp

Verwijderd schreef op vrijdag 16 juli 2010 @ 13:38:
[...]

Ik heb nergens gezegd dat het ongedocumenteerd is, ik vind het zelf alleen bizar. :-)
Waarom is dat raar als ik vragen mag? :)

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


Acties:
  • 0 Henk 'm!

Verwijderd

Gamebuster schreef op vrijdag 16 juli 2010 @ 06:11:
[...]

Ja, eerst kijken of de string gelijk is aan een lege string ($str == "") en dan nog eens controleren (en vooral geen elseif gebruiken) of de string leeg is. (empty($str))

En kan iemand me de humor van dit uitleggen:
!(stristr ($fullstring, $text) === FALSE)

if( ! ($bool===FALSE) ) { ... }

Yeah... right :P
Lees die eerste zin van je nog eens, is "" niet leeg dan? :+ Volgens http://nl3.php.net/empty wel. ;)

Acties:
  • 0 Henk 'm!

  • Shagura
  • Registratie: Augustus 2001
  • Laatst online: 25-09 06:34
Sebazzz schreef op vrijdag 16 juli 2010 @ 13:42:
[...]

Waarom is dat raar als ik vragen mag? :)
JavaScript:
1
2
3
4
5
6
7
8
9
''        ==   '0'           //false
0         ==   ''            //true
0         ==   '0'           //true
false     ==   'false'       //false
false     ==   '0'           //true
false     ==   undefined     //false
false     ==   null          //false
null      ==   undefined     //true
" \t\r\n" ==   0             //true


Leuk hoor.

Acties:
  • 0 Henk 'm!

Verwijderd

Sebazzz schreef op vrijdag 16 juli 2010 @ 13:42:
[...]

Waarom is dat raar als ik vragen mag? :)
Ik vind het raar omdat in mijn gedachtenwereld alleen de lege string zou moeten mogen evalueren naar false. Ik zeg overigens ook niet dat het raar *is*, alleen dat ik het vind. :-)

Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 02-10 16:55
quote: jexus
Ik weet het niet precies, niemand hier weet het eigenlijk.
"Ik weet niet waarom dat zo is", is dat niet een code smell? :+ Als het jullie code is, schroom niet om het keihard te refactoren.

Sterker nog... refactor het, ik smeek je, :'(. if ($vaag) { refactor(Time::NOW); }.

En eigenlijk zijn loose typed talen allemaal raar, stiekem, ;). Het is makkelijker om te voorkomen dat je ooit whitespace als boolean evalueert dan om te leren hoe een taal daar precies mee omgaat.

Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Ja, het is ook niet echt logisch met die impliciete conversie. Leuk als je een nummertje als een string wil printen, maar met booleans is het toch echt vaagheid troef.

Het worden dan bijna filosofische kwesties.

Acties:
  • 0 Henk 'm!

Verwijderd

YopY schreef op vrijdag 16 juli 2010 @ 14:43:
[...]


"Ik weet niet waarom dat zo is", is dat niet een code smell? :+ Als het jullie code is, schroom niet om het keihard te refactoren.

Sterker nog... refactor het, ik smeek je, :'(. if ($vaag) { refactor(Time::NOW); }.
Geloof me, ik ga het refactoren. :-) Maar nu is er de tijd nog niet voor, we zijn druk bezig met een aantal side-projects die nog enkele weken tijd kosten. Daarna gaan we de bestaande codebase onder de loep nemen en verbeteren.

N.b.: deze code is niet ons eigen werk geweest, dit is van enkele programmeurs die hier voor mij en m'n collega's werkten. Mag je eens raden waarom ze ontslagen zijn. ;)

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01-10 23:36

.oisyn

Moderator Devschuur®

Demotivational Speaker

Davio schreef op vrijdag 16 juli 2010 @ 13:26:
[...]

Javascript toch wel? Moet je ook === gebruiken ipv ==.
De fout die PHP maakt is dat als er bij de == een van de twee operanden een nummer is, dan wordt de andere operand ook geconverteerd naar een nummer, en als dat niet lukt dan wordt het een 0. Daarom is "aap" == 0 in PHP gelijk aan true.

In Javascript en Python e.d. echter, wordt er niet gewoon maar geconverteerd en daarna vergeleken, maar wordt er ook gekeken of de conversie lukt. Een string als "aap" is niet naar een int te converteren, dus een vergelijking met een int zal ook altijd false opleveren.

De uitzondering die javascript overigens maakt is dat een lege string (sowieso altijd na stripping van leading en trailing whitespaces) wel te converteren is naar een int, waar 0 uitkomt. Questionable als je het mij vraagt, maar nog niet zo fout dat elke string dat geen int is gelijk is aan 0.
Shagura schreef op vrijdag 16 juli 2010 @ 14:11:
[...]

JavaScript:
1
2
3
4
5
6
7
8
9
''        ==   '0'           //false
0         ==   ''            //true
0         ==   '0'           //true
false     ==   'false'       //false
false     ==   '0'           //true
false     ==   undefined     //false
false     ==   null          //false
null      ==   undefined     //true
" \t\r\n" ==   0             //true


Leuk hoor.
Afgezien van de laatste statement zie ik daar niet heel veel mis mee.

[ Voor 3% gewijzigd door .oisyn op 16-07-2010 15:45 ]

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


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Leuk, een collega heeft een HttpModule geschreven die bij alle requests die binnenkomen verifieert of de bijbehorende Sharepoint-site wel een bepaalde property heeft in z'n property bag. Zo niet, dan wordt er geredirect naar een settingspagina waar eerst die property moet worden ingegeven.

Echter: iedere request werd geredirect, dus ook requests voor plaatjes e.d., waardoor styling op die settingspagina ook volledig fubar was. "Ja, ik zag dat ook maar ik dacht dat dat met m'n cache te maken had."

Ik heb 't nu aangepast zodat alléén .aspx-pagina's worden geredirect en de rest met rust wordt gelaten. :)

We are shaping the future


Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Dan dit.

Wij maken gebruik van een database waar plaatjes in opgeslagen worden (als CLOBs of BLOBs).
Via een agent (gewoon een .exe process) wordt er een script (net zoiets als php, maar dan anders) uitgevoerd die van het plaatje uit de database een response maakt met een goede header, waardoor de browser het ziet als een plaatje.

Maar soms worden er 600 thumbnails geladen in een div met een scrollbar en dan worden er dus 600 agents gestart en gestopt, niet echt fijn. Ik zat te denken om gewoon één agent te laten runnen die alle plaatjes in een temp-map aanmaakt en dan die in de img src te gooien.

Een ander idee leek me om de plaatjes te lazy loaden. Hiervoor hebruik ik een Lazy Load plug-in voor JQuery. Op zich aardig, maar het werkt niet fijn met Backbase, wat wij ook gebruiken. Ik heb namelijk een window (soort popup, gewoon een overlay op het scherm) open waar die div inzit en hij laad alleen de bovenste twee plaatjes, terwijl er ruimte is voor meer.

Dus dit wordt nog sleutelen.

Maar alles beter dan 600 processen starten en stoppen.

Acties:
  • 0 Henk 'm!

  • analog_
  • Registratie: Januari 2004
  • Niet online
Davio schreef op vrijdag 16 juli 2010 @ 16:54:
Dan dit.

Wij maken gebruik van een database waar plaatjes in opgeslagen worden (als CLOBs of BLOBs).
Via een agent (gewoon een .exe process) wordt er een script (net zoiets als php, maar dan anders) uitgevoerd die van het plaatje uit de database een response maakt met een goede header, waardoor de browser het ziet als een plaatje.

Maar soms worden er 600 thumbnails geladen in een div met een scrollbar en dan worden er dus 600 agents gestart en gestopt, niet echt fijn. Ik zat te denken om gewoon één agent te laten runnen die alle plaatjes in een temp-map aanmaakt en dan die in de img src te gooien.

Een ander idee leek me om de plaatjes te lazy loaden. Hiervoor hebruik ik een Lazy Load plug-in voor JQuery. Op zich aardig, maar het werkt niet fijn met Backbase, wat wij ook gebruiken. Ik heb namelijk een window (soort popup, gewoon een overlay op het scherm) open waar die div inzit en hij laad alleen de bovenste twee plaatjes, terwijl er ruimte is voor meer.

Dus dit wordt nog sleutelen.

Maar alles beter dan 600 processen starten en stoppen.
Klinkt alsof je een vorm van reverse proxy kan gebruiken. Kijk eens naar varnish. Het lijkt me netter om bestaande software te gebruiken die daarnaast nog meer voordelen gaat opleveren ipv. een custom-ware oplossing.

Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 00:48
Davio schreef op vrijdag 16 juli 2010 @ 16:54:
Wij maken gebruik van een database waar plaatjes in opgeslagen worden (als CLOBs of BLOBs).
TRWTF :+

Niet al te serieus nemen, ik wil best geloven dat het in jullie situatie wel de beste oplossing is ;)

[ Voor 21% gewijzigd door FragFrog op 16-07-2010 17:31 ]

[ Site ] [ twitch ] [ jijbuis ]


Acties:
  • 0 Henk 'm!

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 08:59

AW_Bos

Liefhebber van nostalgie... 🕰️

PHP:
1
2
3
<div class="gallery">
        <a href=\"#\" onclick=\"watchvideo('$url','$title2');\ class="group left" rel="group">$title</a>
</div>

Dit stukje code kwam ik tegen op een forum. Erg leuk, maar als je een topic over jQuery en de Fancybox begint. Waarom gebruik je dan nog een onClick :P?

De escaping klopt ook niet helemaal, maar dat had niet met zijn probleem te maken. Selectief copy-paste naar een forumtopic doet zijn werk blijkbaar... ;)

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 28-09 19:33

Sebazzz

3dp

Je bent bekent met [code=HTML][/] ?

Overigens is een onclick helemaal niet zo erg hoor ;)

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


Acties:
  • 0 Henk 'm!

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 08:59

AW_Bos

Liefhebber van nostalgie... 🕰️

Sebazzz schreef op vrijdag 16 juli 2010 @ 18:53:
Je bent bekent met [code=HTML][/] ?

Overigens is een onclick helemaal niet zo erg hoor ;)
Check de escaping ;). Dit hoort me dan eerder bij PHP.

Maar met jQuery kan je ook prima kijken of er op een a-tag geklikt is. Dus een onClick event lijkt me dan erg overbodig.

[ Voor 19% gewijzigd door AW_Bos op 16-07-2010 19:14 ]

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


Acties:
  • 0 Henk 'm!

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

Matis

Rubber Rocket

AW_Bos schreef op vrijdag 16 juli 2010 @ 19:13:
[...]

Check de escaping ;). Dit hoort me dan eerder bij PHP.

Maar met jQuery kan je ook prima kijken of er op een a-tag geklikt is. Dus een onClick event lijkt me dan erg overbodig.
Hmm, ik kan bijna niet meer zonder het onClick="return jsFunction(this)", vooral omdat je met de return-value kunt bepalen of er naar de link gesprongen wordt of niet.
En om een heel framework te installeren / gebruiken om alleen de onClick af te vangen is over-engineering © NMe :+

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


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 28-09 19:33

Sebazzz

3dp

Volgens mij bedoeld ie <element onclick="someFunction(someValue);" /> vs $("#someElement").onClick(function() { someFunction(someValue); } ;)

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


Acties:
  • 0 Henk 'm!

  • RetroTycoon
  • Registratie: Juli 2008
  • Laatst online: 02-10 06:31
JavaScript:
1
2
document.getElementById('someElement').onclick = function() {
}

Acties:
  • 0 Henk 'm!

  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

Matis schreef op vrijdag 16 juli 2010 @ 19:31:
[...]

Hmm, ik kan bijna niet meer zonder het onClick="return jsFunction(this)", vooral omdat je met de return-value kunt bepalen of er naar de link gesprongen wordt of niet.
En om een heel framework te installeren / gebruiken om alleen de onClick af te vangen is over-engineering © NMe :+
Dat kan toch prima met een preventDefault() wanneer je gebruik maakt van event handlers? Dan blijft de (js) code netjes gescheiden van de HTML. Ook dan heb je geen framework nodig.

Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
FragFrog schreef op vrijdag 16 juli 2010 @ 17:28:
[...]

TRWTF :+

Niet al te serieus nemen, ik wil best geloven dat het in jullie situatie wel de beste oplossing is ;)
Ja, onze plaatjes worden ook nog eens geëncrypt voordat ze worden opgeslagen. Wij werken met gevoelige informatie, dus we moeten er alles aan doen om die informatie te beschermen. En in een database gaat dat prima.

Het is gewoon vervelend dat er 600x dit gebeurt:

- De img src = http://blabla/cgiip.exe?plaatje-id start de cgiip.exe agent
- De agent runt een procedure die het plaatje ophaalt uit de database, decrypt en omzet naar een normale HTTP response
- En dan sluit de agent weer

Het aantal agents dat tegelijk actief mag zijn, is echter beperkt (15 ofzo, misschien 30), dus als voor iemand 600 plaatjes tegelijk wordt opgehaald, is dat gewoon een tijdelijke DoS-attack.

Ik weet niet of Varnish hier tegen kan helpen, want het zijn vaak elke keer nieuwe plaatjes en die moeten toch opgehaald worden...

Ik probeer het toch met Lazy Loading, want niet alle plaatjes zijn tegelijk zichtbaar en zullen ook niet altijd allemaal bekeken worden.

Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 02-10 16:55
quote: Davio
Het is gewoon vervelend dat er 600x dit gebeurt:
Zomaar een idee: Is het echt nodig dat er 600 thumbnails weergegeven worden? En is het misschien een idee om die 600 afbeeldingen in een tijdelijke thumbnail map of cache op te slaan?
FragFrog schreef op maandag 19 juli 2010 @ 10:34:
[...]

Toevallig heb ik dat van de week nog lopen benchmarken (nav een andere opmerking hier), op mijn testserver is het grofweg een kwart sneller om filesystem te gebruiken dan een MySQL database (link). Wellicht dat er situaties zijn waar dit niet geldt, maar ik ben ze nog niet tegengekomen :)
Een kwart valt mee, als je die plaatjes ook nog eens encrypted opgeslagen hebt.

Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
YopY schreef op maandag 19 juli 2010 @ 11:51:
[...]


Zomaar een idee: Is het echt nodig dat er 600 thumbnails weergegeven worden? En is het misschien een idee om die 600 afbeeldingen in een tijdelijke thumbnail map of cache op te slaan?
Tja, het gaat om afbeeldingen die per persoon verschillen. Een tijdelijke thumbnail map of cache is dan wel leuk, maar er zal zelden een plaatje opnieuw worden opgevraagd.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 30-09 16:40

Janoz

Moderator Devschuur®

!litemod

YopY schreef op maandag 19 juli 2010 @ 11:51:
Zomaar een idee: Is het echt nodig dat er 600 thumbnails weergegeven worden? En is het misschien een idee om die 600 afbeeldingen in een tijdelijke thumbnail map of cache op te slaan?
Ik vermoed dat de kans bestaat dat de requirement die afdwingt dat encryptie nodig is er ook voor zorgt dat er geen thumbnails gecached zouden mogen worden.

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!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Janoz schreef op maandag 19 juli 2010 @ 12:09:
[...]

Ik vermoed dat de kans bestaat dat de requirement die afdwingt dat encryptie nodig is er ook voor zorgt dat er geen thumbnails gecached zouden mogen worden.
Tja, dat kan je nooit 100% voorkomen.

Het gaat er ook meer om dat de aanvankelijke requests geoptimaliseerd worden en niet de requests daarna.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 30-09 16:40

Janoz

Moderator Devschuur®

!litemod

Davio schreef op maandag 19 juli 2010 @ 13:11:
[...]

Tja, dat kan je nooit 100% voorkomen.

Het gaat er ook meer om dat de aanvankelijke requests geoptimaliseerd worden en niet de requests daarna.
In dat geval zou ik inderdaad eerst kijken of ik het aantal thumbnails terug zou kunnen brengen (alsof een gebruiker uberhaupt 600 thumbs in 1 keer gaat bekijken ;) )en daarna kijken of het decryptie proces nog wat efficienter gemaakt kan worden. (Door bijvoorbeeld een andere aanpak te kiezen waarbij de decryptie meer als een service draait ipv voor elk request opnieuw opgestart moet worden)

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!

  • YopY
  • Registratie: September 2003
  • Laatst online: 02-10 16:55
Wat paginering toevoegen aan die thumbnails zou al verschil uitmaken. Dat kun je heel leuk maken met Javascript enzo om het te laten lijken alsof ze allemaal tegelijk gezien worden. Dan nog een .exe die constant loopt ipv telkens opnieuw op te starten, en je bent al een heel eind.

In ieder geval. Slechte programmeervoobeelden svp, :+.

Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Ja, aan paginering zat ik ook al te denken.

Het is sowieso geen keus om de boel uit een db te halen, minder thumbs te laten zien, of de decryptie als een service te runnen, omdat er een bestaande functionaliteit is waar ik mee moet werken.

Ik doe momenteel zeg maar de 'voorkant' en alhoewel ik ook bij de achterkant kan en daar verstand van heb, wil ik er niet teveel mee rommelen ivm het spaghetti-probleem; dat je één klein dingetje verandert en dat ergens anders wat kapot gaat.

Edit: Bedankt voor jullie suggesties iig.

[ Voor 4% gewijzigd door Davio op 19-07-2010 13:46 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 30-09 16:40

Janoz

Moderator Devschuur®

!litemod

Topic over plaatjes in de database is trouwens afgesplitst naar [alg] Plaatjes in de database?

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!

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

Matis

Rubber Rocket

http://www.belcompany.nl/iphone4/Pages/AppleiPhone4.aspx

De site voor de voorverkoop van de nieuwe iPhone;
HTML:
1
<table style="display: none;">


Lekker geprogrammeerd :X Zet dan een PHP-pagina op welke de tijd checkt en indien die verstreken is, de pagina laat zien.

iPhone 4 voorverkoop
O-)

[ Voor 30% gewijzigd door Matis op 19-07-2010 22:11 ]

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


Acties:
  • 0 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Nu online

Reptile209

- gers -

@Matis: wat bezielt je überhaupt om daar naar op zoek te gaan (en het dan nog te vinden ook nog :X ) :D.
Ik bedoel: zit je altijd de source van pagina's te controleren om te kijken wat er nog aan hidden features in zitten?

[ Voor 36% gewijzigd door Reptile209 op 19-07-2010 22:15 ]

Zo scherp als een voetbal!


Acties:
  • 0 Henk 'm!

Verwijderd

Ik hoop dat die prijzen verkeerd geprogrammeerd zijn. :X

Acties:
  • 0 Henk 'm!

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

Matis

Rubber Rocket

Mwa, ik vind het prima dat ze er zoveel voor vragen, het bedrag kan IMO niet hoog genoeg zijn :P

@Reptile209, nieuws: Apple iPhone 4 bij T-Mobile 70 euro duurder dan 3GS stond vermeld dat het wel in de broncode stond. Dan is het voor mij niet veel werk om te zoeken waar de "display: none" staat ;)
Maar ik snuffel wel vaker door broncode's, voornamelijk of er grappige commentaarregels zijn opgenomen ofzo :$

Meestal staan die bij IE-gerelateerde CSS-eigenschappen >:)

[ Voor 17% gewijzigd door Matis op 19-07-2010 22:22 ]

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


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
HTML:
1
<!-- This seperates the head from the body -->


JavaScript:
1
// That's all folks!


Cascading Stylesheet:
1
/* HACK HACK HACK to get IE behaving properly */


Cascading Stylesheet:
1
/* Crappy IE once again refuses to honour standards. HACK!*/


Heerlijk is dat ja O+

We are shaping the future


Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 02-10 08:45
Alex) schreef op maandag 19 juli 2010 @ 22:51:
HTML:
1
<!-- This seperates the head from the body -->


JavaScript:
1
// That's all folks!


Cascading Stylesheet:
1
/* HACK HACK HACK to get IE behaving properly */


Cascading Stylesheet:
1
/* Crappy IE once again refuses to honour standards. HACK!*/


Heerlijk is dat ja O+
Die laatste 2 zijn geen programmeerfouten, dat is een schier noodzakelijke afreageermogelijkheid die voorkomt dat alle webdeveloppers zich na 3 dagen voor de trein zouden werpen. ;)

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 28-09 19:33

Sebazzz

3dp

mcDavid schreef op maandag 19 juli 2010 @ 23:43:
[...]


Die laatste 2 zijn geen programmeerfouten, dat is een schier noodzakelijke afreageermogelijkheid die voorkomt dat alle webdeveloppers zich na 3 dagen voor de trein zouden werpen. ;)
Ik denk altijd even terug aan Steve Ballmer, Developers, Developers, Developers :p

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


Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 30-09 23:08

CoolGamer

What is it? Dragons?

Sebazzz schreef op maandag 19 juli 2010 @ 23:45:
[...]

Ik denk altijd even terug aan Steve Ballmer, Developers, Developers, Developers :p
Naja, de nieuwe Internet Explorer wordt redelijk :P. 10 jaar wachten tot iedereen over is gestapt en dan zijn dit soort hacks niet meer nodig. :/ Kijk er al naar uit.

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 02-10 14:49
Muah, ik denk dat met Vista en Win7 IE9 best goed gepushed kan worden door Windows Update :) Dat was bij XP toch een stuk minder het geval volgens mij.

Overigens zullen hacks denk ik altijd wel nodig blijven... CSS3 staat ook weer voor de deur (al weet ik niet hoe (goed) de IE9 implementatie daarvan is).

[ Voor 34% gewijzigd door Avalaxy op 20-07-2010 01:46 ]


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Dat kun je zelf testen via www.ietestdrive.com :)

IE 9 is echt wel een enorme verbetering, ik had het eigenlijk niet verwacht van Microsoft. :')

We are shaping the future


Acties:
  • 0 Henk 'm!

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

Matis

Rubber Rocket

Avalaxy schreef op dinsdag 20 juli 2010 @ 01:45:
Muah, ik denk dat met Vista en Win7 IE9 best goed gepushed kan worden door Windows Update :) Dat was bij XP toch een stuk minder het geval volgens mij.

Overigens zullen hacks denk ik altijd wel nodig blijven... CSS3 staat ook weer voor de deur (al weet ik niet hoe (goed) de IE9 implementatie daarvan is).
Ik heb in sommige gevallen de indruk dat IE9 zelfs nog strikter is met CSS3 dan de andere browsers. Misschien willen ze vanuit Redmond het een en ander goedmaken voor het leed dat ze de webdevvers de afgelopen jaren hebben aangedaan :P

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


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 28-09 19:33

Sebazzz

3dp

Alex) schreef op dinsdag 20 juli 2010 @ 08:19:
IE 9 is echt wel een enorme verbetering, ik had het eigenlijk niet verwacht van Microsoft. :')
"If it sounds too good to be true..." :p
Microsoft heeft laten zien dat ze het kunnen, maar ze zullen voor IE9 wel weet een paar eigen quircks introduceren :p

[ Voor 19% gewijzigd door Sebazzz op 20-07-2010 09:11 ]

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


Acties:
  • 0 Henk 'm!

Verwijderd

IE 9 een enorme verbetering, wow! Daar was ook zo veel voor nodig he. ;)

Acties:
  • 0 Henk 'm!

  • basvd
  • Registratie: December 2007
  • Laatst online: 26-09 21:04
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$i=0;
foreach ($blokItems as $blokItem){
    $i++;
    if ($i<6) {
        $blokItemTitle = $blokItems[(($i-1)*2)];
        // cut title to proper size
        if (strlen($blokItemTitle)>29) {
            $blokItemTitle = neat_trim($blokItemTitle,28);
        }
        if ($nieuwsVolgorde[($i-1)] == "video") {
            $nieuwsType = "1";
        }
    print '<a href="'.$_SERVER['PHP_SELF'].'?id='.$nieuwsType.'&'.$nieuwsVolgorde[($i-1)].'=';
    print $blokItems[((($i-1)*2)+1)].'">'.strip_tags($blokItemTitle).'</a>';
    }
}


Extra uitleg lijkt mij overbodig ;)

Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 02-10 16:55
Vaag. Blokitemtitel voor blokitem 3 is blokitem 3-1 * 2 = blokitem 4.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01-10 23:36

.oisyn

Moderator Devschuur®

Demotivational Speaker

Die $i-1 is gewoon omdat ze bij 1 beginnen te tellen, en verder lijkt het alsof ze 2 titels per blok hebben, dus pakt ie ($i-1)*2.

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!

  • basvd
  • Registratie: December 2007
  • Laatst online: 26-09 21:04
Nou..., ergens bovenaan in het script staat dit:
PHP:
1
2
3
4
5
6
7
array_push($blokItems,$blokItems1[$x]['name'],$blokItems1[$x]['id']);

// Titel = even values
$blokItems[(($i-1)*2)]

// ID = oneven values
$blokItems[((($i-1)*2)+1)]

[ Voor 7% gewijzigd door basvd op 20-07-2010 12:58 ]


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Dan zou iedere iteratie gewoon $i += 2; aan het einde van de foreach moeten zijn, waarna dan $blokItems[$i] voor de titel en $blokItems[$i+1] voor de id gebruikt wordt. Code is dus niet alleen slecht maar ook fout. Die foreach is ook volledig overbodig.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01-10 23:36

.oisyn

Moderator Devschuur®

Demotivational Speaker

Nee, de code is niet fout. Hij is alleen slecht.

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
.oisyn schreef op dinsdag 20 juli 2010 @ 15:29:
Nee, de code is niet fout. Hij is alleen slecht.
Ja klopt, die berekening lijkt toch wel goed te gaan. Ik dacht dat het niet klopte.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 02-10 16:55
In dat geval...

PHP:
1
2
3
4
5
6
7
8
9
10
11
$blokitems1; // bevat name & id
for ($i = 0; $i < 6; $i++) {
        $blokItemTitle = strip_tags($blokItems1[$i]['name']);
        $blokItemTitle = (strlen($blokItemTitle) > 29) ? neat_trim($blokItemTitle,28) : $blokItemTitle;
        // daweeknie
        if ($nieuwsVolgorde[($i)] == "video") {
            $nieuwsType = "1";
        }
    print "<a href=\"{$_SERVER['PHP_SELF']}?id={$nieuwsType}&{$nieuwsVolgorde[$i]}={$blokItems1[$i]['id']}\">{$blokItemTitle}</a>";
    }
}


Niet optimaal qua netheid, maar het is toch beterder. Imho, natuurlijk, en liever zou ik het helemaal wegdoen ;p.

Acties:
  • 0 Henk 'm!

Verwijderd

Laatst moest ik een plaatjes carroussel aanpassen. Op elk ogenblik werd maar 1 plaatje getoond. Plaatje toevoegen leek een kwestie van iets toevoegen aan de HTML... totdat ik erachter kwam dat het een animated gif was met een 'delay' van 2 seconde ofzo... Toen maar aan Design afdeling gegeven.

Het doet wat het moet doen, maar geen handige oplossing als het later aangepast moet worden. Ik lag wel krom van het lachen trouwens.

Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 02-10 08:45
TheCoolGamer schreef op dinsdag 20 juli 2010 @ 00:37:
[...]

Naja, de nieuwe Internet Explorer wordt redelijk :P. 10 jaar wachten tot iedereen over is gestapt en dan zijn dit soort hacks niet meer nodig. :/ Kijk er al naar uit.
Over 10 jaar is de meute eindelijk overgestapt op een browser die al vóór zijn officiële release (dan 10 jaar geleden) als "redelijk" te boek stond. ;(

Acties:
  • 0 Henk 'm!

  • Nappa
  • Registratie: Februari 2001
  • Laatst online: 27-06 00:10

Nappa

The Barbaric Saiya-jin!

Iets gestripte versie en verduidelijkte versie van een sterk staaltje programmeerwerk dat ik juist tegenkwam.
C#:
1
2
3
4
5
6
7
8
9
10
public void btnOpen1_Click( object sender, EventArgs e )
{
    this.rdbCase1.Checked = true;
    Open();
}
public void btnOpen2_Click( object sender, EventArgs e )
{
    this.rdbCase2.Checked = true;
    Open();
}


Op die radiobuttons werd weer gereageerd:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public void rdbCase_CheckedChanged( object sender, EventArgs e )
{
    // ...
    if ( !rdbCase3.Checked )
    {
        RadioButton clicked = (RadioButton)sender;
        if ( ( rdbCase1.Checked && clicked.Text == "Case1" && this.CurrentCase == Case2 ) ||
             ( rdbCase2.Checked && clicked.Text == "Case2" && this.CurrentCase == Case1 ) )
        {                       
            if ( MessageBox.Show( "Weet u het zeker?", "", MessageBoxButtons.YesNo ) == DialogResult.No )
            {
                if ( rdbCase1.Checked )
                    rdbCase2.Checked = true;
                else
                    rdbCase1.Checked = true;
            }
        }
    }
}

C#:
1
2
3
4
5
6
7
8
9
private void Reopen()
{
    if ( this.SelectedX == null ||
        MessageBox.Show( "Andere X?", "", MessageBoxButtons.YesNo ) == DialogResult.Yes )
    {
        SelectX();
    }
    SelectY();
}

Waarin ook de SelectX() en SelectY() functies weer UI afhankelijk waren en bovendien ook nog beide geannuleerd konden worden. :F

Alles wat ik zeg kan en zal tegen u gebruikt worden
Scream! Suffer! Panic! | Dark-future Dawnbringer | Unofficial Mordor community


Acties:
  • 0 Henk 'm!

  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

Lijkt me een geval "ik heb nooit iets complexer gedaan dan sleuren en pleuren in designer view en heb nu voor het eerst zelf eens code achter al die knopjes gestoken" :X

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' - Pratchett.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01-10 23:36

.oisyn

Moderator Devschuur®

Demotivational Speaker

Idd, dat lijkt op code uit mijn VB3 tijd :P

Ja, ik geef het toe, ik had een VB3 tijd :X

[ Voor 43% gewijzigd door .oisyn op 23-07-2010 16:37 . Reden: Nee, het was toch 3 ]

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
.oisyn schreef op vrijdag 23 juli 2010 @ 16:31:
Idd, dat lijkt op code uit mijn VB3 tijd :P

Ja, ik geef het toe, ik had een VB3 tijd :X
Iedereen had een VB tijd. :P

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:11

Creepy

Tactical Espionage Splatterer

Michali schreef op vrijdag 23 juli 2010 @ 17:14:
[...]

Iedereen had een VB tijd. :P
Helaas ;)

"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


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 28-09 19:33

Sebazzz

3dp

Michali schreef op vrijdag 23 juli 2010 @ 17:14:
[...]

Iedereen had een VB tijd. :P
Zal wel aan het jaartal liggen dan. Ik begon met PHP, is dat erger? :p
Daarna iig C++, Java, C#.

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


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Michali schreef op vrijdag 23 juli 2010 @ 17:14:
[...]
Iedereen had een VB tijd. :P
Nee ik heb nooit echt een VB tijd gehad, wel een QBasic tijd :+

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


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Woy schreef op vrijdag 23 juli 2010 @ 18:53:
[...]

Nee ik heb nooit echt een VB tijd gehad, wel een QBasic tijd :+
Hmm, ja, GW-BASIC. :p

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 30-09 16:40

Janoz

Moderator Devschuur®

!litemod

msx basic, gevolgd door gw-basic. Maar daarna eigenlijk vooral turbo pascal.

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!

  • YopY
  • Registratie: September 2003
  • Laatst online: 02-10 16:55
De echten beginnen met ZZT. VB nooit gedaan (misschien was dat VB dat ik ooit probeerde over te nemen uit de Computer Totaal, maar ik bakte er niks van).

Acties:
  • 0 Henk 'm!

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

Matis

Rubber Rocket

Ik ben begonnen met programmeren op mijn TI-83 Silver Edition, dat was dus Basic waarin ik mijn eerste regeltjes code programmeerde :D

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


Acties:
  • 0 Henk 'm!

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
YopY schreef op dinsdag 20 juli 2010 @ 17:04:
In dat geval...

PHP:
1
2
3
4
5
6
7
8
9
10
11
$blokitems1; // bevat name & id
for ($i = 0; $i < 6; $i++) {
        $blokItemTitle = strip_tags($blokItems1[$i]['name']);
        $blokItemTitle = (strlen($blokItemTitle) > 29) ? neat_trim($blokItemTitle,28) : $blokItemTitle;
        // daweeknie
        if ($nieuwsVolgorde[($i)] == "video") {
            $nieuwsType = "1";
        }
    print "<a href=\"{$_SERVER['PHP_SELF']}?id={$nieuwsType}&{$nieuwsVolgorde[$i]}={$blokItems1[$i]['id']}\">{$blokItemTitle}</a>";
    }
}


Niet optimaal qua netheid, maar het is toch beterder. Imho, natuurlijk, en liever zou ik het helemaal wegdoen ;p.
Wat zou er gebeuren als ik /"><script>alert('test');</script><a href=" achter de url van dat script ingeef? Die php_self lijkt me ook iets om te vermijden, toch zonder een goede controle.

Verder, QBasic had leuke demo's! Maar veel verder ben ik nooit gekomen. Turbo pascal heb ik wel een aantal jaar geprogrammeerd. VBA heb ik ook ooit gedaan.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01-10 23:36

.oisyn

Moderator Devschuur®

Demotivational Speaker

In chronologische volgorde: GW-BASIC, QBasic/QuickBASIC, x86 ASM, Turbo Pascal, Turbo C, DJGPP (32 bits protected mode GCC C++ voor DOS), Visual Basic, Java, Visual C++, Perl, PHP, Javascript, C#.

En weleens wat dingetjes gedaan met Python en Haskell enzo maar dat mag geen naam hebben.

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!

  • Gwaihir
  • Registratie: December 2002
  • Niet online
Van de week gespot. Commentaar is natuurlijk zo'n beetje verplicht, dus los je dat zo op ;) :
Java:
1
2
3
4
/** @inheritDoc */
private void myCoolMethod() {
  [..]
}

Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 30-09 23:08

CoolGamer

What is it? Dragons?

Gwaihir schreef op zaterdag 24 juli 2010 @ 23:19:
Van de week gespot. Commentaar is natuurlijk zo'n beetje verplicht, dus los je dat zo op ;) :
Java:
1
2
3
4
/** @inheritDoc */
private void myCoolMethod() {
  [..]
}
inheritDoc op een private method? Er staat nu inderdaad wat, maar het lijkt me sterk dat dit bedoeld werd. myCoolMethod overrides geen functie uit een superclass of implementeert geen methode uit een interface.

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

  • Amras
  • Registratie: Januari 2003
  • Laatst online: 01-10 12:59
TheCoolGamer schreef op zaterdag 24 juli 2010 @ 23:53:
[...]

inheritDoc op een private method? Er staat nu inderdaad wat, maar het lijkt me sterk dat dit bedoeld werd. myCoolMethod overrides geen functie uit een superclass of implementeert geen methode uit een interface.
Kijk even goed in welk topic je zit. ;)

Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 30-09 23:08

CoolGamer

What is it? Dragons?

Amras schreef op zaterdag 24 juli 2010 @ 23:58:
[...]

Kijk even goed in welk topic je zit. ;)
Ik leg het even uit voor de niet JavaDoc-kenners. :P

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 00:20
TheCoolGamer schreef op zondag 25 juli 2010 @ 00:02:
[...]
Ik leg het even uit voor de niet JavaDoc-kenners. :P
Met dank daarvoor ^^
Ook al twijfelde ik aan dat commentaar, want zo'n woordje "inherit" staat er natuurlijk niet zomaar en als je dan nergens opgeeft wat die moet overnemen..

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Matis schreef op vrijdag 23 juli 2010 @ 21:16:
Ik ben begonnen met programmeren op mijn TI-83 Silver Edition, dat was dus Basic waarin ik mijn eerste regeltjes code programmeerde :D
Heh, als je zinnige dingen wilt doen op de TI-83+ kun je beter meteen assembly gaan programmeren.

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


Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Om even terug te komen op:
basvd schreef op dinsdag 20 juli 2010 @ 11:21:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$i=0;
foreach ($blokItems as $blokItem){
    $i++;
    if ($i<6) {
        $blokItemTitle = $blokItems[(($i-1)*2)];
        // cut title to proper size
        if (strlen($blokItemTitle)>29) {
            $blokItemTitle = neat_trim($blokItemTitle,28);
        }
        if ($nieuwsVolgorde[($i-1)] == "video") {
            $nieuwsType = "1";
        }
    print '<a href="'.$_SERVER['PHP_SELF'].'?id='.$nieuwsType.'&'.$nieuwsVolgorde[($i-1)].'=';
    print $blokItems[((($i-1)*2)+1)].'">'.strip_tags($blokItemTitle).'</a>';
    }
}


Extra uitleg lijkt mij overbodig ;)
basvd schreef op dinsdag 20 juli 2010 @ 12:56:
Nou..., ergens bovenaan in het script staat dit:
PHP:
1
2
3
4
5
6
7
array_push($blokItems,$blokItems1[$x]['name'],$blokItems1[$x]['id']);

// Titel = even values
$blokItems[(($i-1)*2)]

// ID = oneven values
$blokItems[((($i-1)*2)+1)]
.oisyn schreef op dinsdag 20 juli 2010 @ 15:29:
Nee, de code is niet fout. Hij is alleen slecht.
In php is het inderdaad een onlogische keuze. Dat neemt niet weg dat de constructie in o.a. lisp niet vreemd is: het heet daar een property list.

Acties:
  • 0 Henk 'm!

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

Matis

Rubber Rocket

Grijze Vos schreef op zondag 25 juli 2010 @ 11:38:
Heh, als je zinnige dingen wilt doen op de TI-83+ kun je beter meteen assembly gaan programmeren.
Hmm, mijn eerste applicatie was volgens mij de SOSCASTOA berekeningen, compleet met menu en hufter-proof :P
Of het was de ABC-formule, ik weet het niet meer, maar het werd in de klas iig gretig afgenomen O-)

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


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01-10 23:36

.oisyn

Moderator Devschuur®

Demotivational Speaker

ValHallASW schreef op zondag 25 juli 2010 @ 16:35:

In php is het inderdaad een onlogische keuze. Dat neemt niet weg dat de constructie in o.a. lisp niet vreemd is: het heet daar een property list.
Oh, dus in lisp is het gebruikelijk om een array te maken van n*m elementen als je n keer m properties wilt gebruiken, itt de link die je daar geeft waarbij je properties adhv hun naam op kunt vragen?

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!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
.oisyn schreef op zondag 25 juli 2010 @ 20:02:
[...]

Oh, dus in lisp is het gebruikelijk om een array te maken van n*m elementen als je n keer m properties wilt gebruiken, itt de link die je daar geeft waarbij je properties adhv hun naam op kunt vragen?
Het gaat hier om een array van 2*n elementen om n key:value-mappings op te slaan. En ja. Letterlijk uit de pagina waar ik naar link:
A property list is implemented as a memory cell containing a list with an even number (possibly zero) of elements. (Usually this memory cell is the property-list cell of a symbol, but any memory cell acceptable to setf can be used if getf and remf are used.) Each pair of elements in the list constitutes an entry; the first item is the indicator, and the second is the value.
Dat betekent dus bijvoorbeeld:
Common Lisp:
1
2
3
4
> (setf (symbol-plist 'clyde) '(a b c d))
(A B C D)
> (get 'clyde 'a)
B

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01-10 23:36

.oisyn

Moderator Devschuur®

Demotivational Speaker

Maar snap je dan echt niet dat er echt een gigantisch verschil zit tussen de implementatie van een map die gebruik maakt van een 1d array en een datastructuur met 2 properties die je sequentieel in een array opslaat waarbij je direct met die datastructuur werkt (ipv dat te abstraheren met 'get' en 'set' operaties)?

[ Voor 18% gewijzigd door .oisyn op 25-07-2010 22:29 ]

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.

Pagina: 1 ... 27 ... 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. :)