Dat bedoel ik Een timestamp is een fixed point in time, onafhankelijk van waar je op aarde staat.quote:
ja die strings in de eerste output die ik gaf klopte niet, maar de timestamps blijven hetzelfde en de volgorde ervan snap ik nog steeds niet helemaal. toen ik een unit test schreef ging ik er van uit dat amsterdam in het midden zou zitten qua timestamp voor "today", maar dat klopt dus nietquote:Op woensdag 22 oktober 2014 21:01 schreef Light het volgende:
[..]
Nee. Om te beginnen kloppen die strings niet. En het probleem met "today" is dat je niet weet welke dat je krijgt. In Australië is 23 oktober al begonnen, dus krijg je die datum als je "today" gebruikt. In de andere gebieden is dat niet het geval en krijg je 22 oktober.
int(1413950400)
2014-10-22 00:00:00-0400
int(1413928800)
2014-10-22 00:00:00+0200
int(1413982800)
2014-10-23 00:00:00+1100
Eigenlijk zoek je voor Sydney deze tijd:
int(1413896400)
2014-10-22 00:00:00+1100
Light gaf het al aan: timestamps gaan van UTC uit (tijdzone 0).quote:Op woensdag 22 oktober 2014 21:27 schreef wipes66 het volgende:
[..]
ja die strings in de eerste output die ik gaf klopte niet, maar de timestamps blijven hetzelfde en de volgorde ervan snap ik nog steeds niet helemaal. toen ik een unit test schreef ging ik er van uit dat amsterdam in het midden zou zitten qua timestamp voor "today", maar dat klopt dus niet
1 2 3 | 2014-10-22T04:00:00+00:00 New York 2014-10-21T22:00:00+00:00 Amsterdam 2014-10-22T13:00:00+00:00 Sydney |
Nee, Sydney is de kleinste, dan Nederland, en New York is de grootste. De reden dat het mis lijkt te gaan voor Sydney is dat het daar inmiddels 07:18 is op 23 oktober waar Nederland en New York nog in 22 oktober leven.quote:Op woensdag 22 oktober 2014 22:03 schreef Aether het volgende:
[..]
Light gaf het al aan: timestamps gaan van UTC uit (tijdzone 0).
Misschien dat het duidelijker is als UTC:
[ code verwijderd ]
Door zomertijd geldt voor Nederland tijdzone +02 t.o.v. UTC. Als het middernacht is, is het 22 uur 's avonds de vorige dag in UTC (tweede regel).
New York loopt 4 uur achter t.o.v. UTC. Als het daar middernacht is, is het 4 uur 's ochtends UTC.
Sydney loopt 11 uur voor op UTC. Als het daar middernacht is, is het 24 - 11 = 13 uur 's middags UTC (omdat het op het moment van meten al een dag later is in Australië).
Vanuit UTC gezien is Nederland de kleinste timestamp, daarna New York en dan Sydney.
Amsterdam zit in het midden als je het over dezelfde dag hebt. Maar 'today' is niet voor alle tijdzones hetzelfde. Als je het over een uur weer probeert, is de timestamp van Sydney voor 'today' wel kleiner dan die van Amsterdam voor 'today'.quote:Op woensdag 22 oktober 2014 21:27 schreef wipes66 het volgende:
[..]
ja die strings in de eerste output die ik gaf klopte niet, maar de timestamps blijven hetzelfde en de volgorde ervan snap ik nog steeds niet helemaal. toen ik een unit test schreef ging ik er van uit dat amsterdam in het midden zou zitten qua timestamp voor "today", maar dat klopt dus niet
En zowaar geschiedde:quote:Op woensdag 22 oktober 2014 23:04 schreef Light het volgende:
[..]
Amsterdam zit in het midden als je het over dezelfde dag hebt. Maar 'today' is niet voor alle tijdzones hetzelfde. Als je het over een uur weer probeert, is de timestamp van Sydney voor 'today' wel kleiner dan die van Amsterdam voor 'today'.
1 2 3 | string(31) "Thu, 23 Oct 2014 00:00:00 -0400" int(1414036800) string(31) "Thu, 23 Oct 2014 00:00:00 +0200" int(1414015200) string(31) "Thu, 23 Oct 2014 00:00:00 +1100" int(1413982800) |
Wat wil je eigenlijk bereiken, dit lijkt namelijk op een unittest van DateTime zelf..quote:Op woensdag 22 oktober 2014 19:45 schreef wipes66 het volgende:
heeft iemand verstand van timezones? ik probeer "today 00:00" om te zetten in een timestamp, maar wel afhankelijk van een tijdzone (via DateTime). in de unittest vergelijk ik new-york, amsterdam en die van sydney. maar die van amsterdam blijkt lager te zijn dan die van new-york?
een class testen, die inderdaad niet veel meer dan datetime gebruikt. maar goed, het komt wel vaker voor dat je dingen test die gebruik maken van iets dat op zichzelf ook al getest wordt tochquote:Op donderdag 23 oktober 2014 18:43 schreef slacker_nl het volgende:
[..]
Wat wil je eigenlijk bereiken, dit lijkt namelijk op een unittest van DateTime zelf..
Over het algemeen maak je dan gebruik van mocks. Die kun je namelijk configureren zodat ze precies doen wat je wilt en je niet afhankelijk bent van de interne werking van die class.quote:Op donderdag 23 oktober 2014 19:03 schreef wipes66 het volgende:
[..]
een class testen, die inderdaad niet veel meer dan datetime gebruikt. maar goed, het komt wel vaker voor dat je dingen test die gebruik maken van iets dat op zichzelf ook al getest wordt toch
Zoiets? http://sourceforge.net/projects/phpocr/quote:Op zaterdag 25 oktober 2014 17:53 schreef xaban06 het volgende:
Iemand bekend met text uitlezen uit foto's?
Rekening houdend met:
- Je weet van te voren niet hoe groot de plaatje dus, kan altijd verschillend zijn.
- Je weet wel de opbouw van de text, is altijd <xx> karakters lang.
- Je weet de kleur van de tekst (zwart, maar zal uiteraard altijd een ander tint zwart zijn, want foto's).
- Je weet de achtergrondkleur van de tekst.
Zijn hier libraries voor?
Daarmee kan je tekst uit screenshots lezen, ik heb het echt over foto's. Geen screenshots oid.quote:Op zaterdag 25 oktober 2014 18:05 schreef bondage het volgende:
[..]
Zoiets? http://sourceforge.net/projects/phpocr/
Nee, voor dat soort specifieke gevallen zijn geen libraries. Wat je natuurlijk zou kunnen doen is het voorbewerken van de afbeelding en dan een standaard OCR oplossing gebruiken.quote:Op zaterdag 25 oktober 2014 17:53 schreef xaban06 het volgende:
Iemand bekend met text uitlezen uit foto's?
Rekening houdend met:
- Je weet van te voren niet hoe groot de plaatje dus, kan altijd verschillend zijn.
- Je weet wel de opbouw van de text, is altijd <xx> karakters lang.
- Je weet de kleur van de tekst (zwart, maar zal uiteraard altijd een ander tint zwart zijn, want foto's).
- Je weet de achtergrondkleur van de tekst.
Zijn hier libraries voor?
1 | mysql -h localhost -uUSERNAME --password="PASSWORD" -e "SET @variable_file=123" < ./testSqlMetParamenter.sql |
1 2 | use hub_test; INSERT INTO mut_pcdata_results ( filename, starttime ) VALUES ( @variable_file, NOW() ); |
1 | mysql -h localhost -uUSERNAME --password="PASSWORD" -e "SET @variable_file=123; source ./testSqlMetParamenter.sql" |
Ken je dit al? https://www.cs.rochester.edu/~ferguson/poker/ipp.htmlquote:Op vrijdag 31 oktober 2014 00:56 schreef TwenteFC het volgende:
Een aantal jaar geleden al eens geprobeerd om te maken, destijds niet gelukt.
Nu in een uurtje dit er uit gerammeld, morgen maar eens kijken naar de winnaars berekening. En zorgen dat je/er ingezet wordt.
[ afbeelding ]
Wanneer het af is zal ik de code wel op github gooien.
Kende deze nog niet nee, ziet er wel handig uit.quote:Op vrijdag 31 oktober 2014 08:46 schreef slacker_nl het volgende:
[..]
Ken je dit al? https://www.cs.rochester.edu/~ferguson/poker/ipp.html
1 | SELECT `provincie`, `brandstof`, `gewichtStart`, `tarief` FROM `wegenbelasting` WHERE `brandstof` = 'diesel' AND `gewichtstart` < '1370' |
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 | provincie brandstof gewichtstart tarief Drenthe Diesel 1 93 Drenthe Diesel 551 113 Drenthe Diesel 651 133 Drenthe Diesel 751 160 Drenthe Diesel 851 196 Drenthe Diesel 951 232 Drenthe Diesel 1051 268 Drenthe Diesel 1151 305 Drenthe Diesel 1251 341 **Drenthe Diesel 1351 377 Noord-Holland Diesel 1 90 Noord-Holland Diesel 551 109 Noord-Holland Diesel 651 129 Noord-Holland Diesel 751 154 Noord-Holland Diesel 851 189 Noord-Holland Diesel 951 223 Noord-Holland Diesel 1051 257 Noord-Holland Diesel 1151 290 Noord-Holland Diesel 1251 324 **Noord-Holland Diesel 1351 358 Utrecht Diesel 1 91 Utrecht Diesel 551 110 Utrecht Diesel 651 130 Utrecht Diesel 751 156 Utrecht Diesel 851 190 Utrecht Diesel 951 225 Utrecht Diesel 1051 259 Utrecht Diesel 1151 294 Utrecht Diesel 1251 328 **Utrecht Diesel 1351 363 |
1 2 3 | Drenthe Diesel 1 93 Noord-Holland Diesel 1 90 Utrecht Diesel 1 91 |
1 2 3 4 5 6 7 8 9 10 | SELECT `provincie`, `brandstof`, `gewichtStart`, `tarief` FROM `wegenbelasting` WHERE `brandstof` = 'diesel' AND `gewichtstart` = ( SELECT gewichtstart FROM wegenbelasting WHERE gewichtstart < 1370 AND brandstof = 'diesel' ORDER BY gewichtstart DESC LIMIT 1 ) |
1 2 3 4 5 6 | select gewicht from wegenbelasting where gewicht = ( select max(gewicht) from wegenbelasting where gewicht < 1370) |
Zit nu mobiel, kan niet testen, maar ik wil de resultaat van ieder provincie. Dus niet alleen de duurste provincie.quote:Op zaterdag 1 november 2014 21:31 schreef slacker_nl het volgende:
Simplified:
[ code verwijderd ]
Mogelijk zou je het met een join kunnen doen. Maar dat laat ik aan jou over.
Die van slacker_nl is denk ik beter:quote:Op zaterdag 1 november 2014 21:38 schreef xaban06 het volgende:
[..]
Deze zou wel eens kunnen werken. Thanks!
1 2 3 4 5 6 7 8 9 | SELECT `provincie`, `brandstof`, `gewichtStart`, `tarief` FROM `wegenbelasting` WHERE `brandstof` = 'diesel' AND `gewichtstart` = ( SELECT MAX(gewichtstart) FROM wegenbelasting WHERE gewichtstart < 1370 AND brandstof = 'diesel' ) |
Eigenlijk wil je dit doen:quote:Op zaterdag 1 november 2014 21:38 schreef xaban06 het volgende:
[..]
Zit nu mobiel, kan niet testen, maar ik wil de resultaat van ieder provincie. Dus niet alleen de duurste provincie.
quote:Op zaterdag 1 november 2014 21:46 schreef Rockfire het volgende:
[..]
Die van slacker_nl is denk ik beter:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class voorbeeld { public function test() { try { echo "lala"; } // Echoët evt. foutmelding: catch(Exception $e) { echo "Functie test kon niet uitgevoerd worden: ". $e->getMessage(). "\n"; } } // Einde van scope test } |
throw gooit een exception naar de eerstvolgende errorhandler (een catch statement of een globale errorhandler). Zolang een exception niet gegooid wordt, zal er niks gevangen worden. Veel php function hebben de 'throw' ingebouwd. Mocht echo 'blah' een exception tegenkomen,creert deze een Exception() en throwt deze naar je catch statement. Jij hoeft dit niet expliciet te doen, tenzij je zelf de exception maakt:quote:Op zondag 9 november 2014 22:36 schreef Robuustheid het volgende:
Een vraag:
[ code verwijderd ]
Bij de exception ontbreekt de throw. Dan vraag ik mij af of de exception ook de string kan weergeven?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php class voorbeeld { public function test() { try { $exc = new Exception("lala wordt gewoon uitgevoerd, want deze exception wordt niet gegooid");//doet niks dus! echo "lala"; //wacht effe, hier gaat iets fout throw new Exception("klopt niet"); } // Echoët evt. foutmelding: catch(Exception $e) { echo "Functie test kon niet uitgevoerd worden: ". $e->getMessage(). "\n"; } } // Einde van scope test } ?> |
1 2 3 4 5 | function AutoloadVoorbeeld($voorbeeld) { $callback = __DIR__.'/includes/php/'. $voorbeeld.'.php'; require_once($voorbeeld); } spl_autoload_register('AutoloadVoorbeeld'); |
1 2 3 4 | function AutoloadVariable($variable) { $variable = new $variable; } spl_autoload_register('AutoloadVariable'); |
Niet echt. Als je probeert te schrijven naar een variabele die niet bestaat, wordt de variabele aangemaakt. Als je een niet-bestaande variabele wilt lezen, wordt een E_NOTICE melding getriggerd (maar dat is afhankelijk van je error_reporting() instellingen). Als zo'n melding komt, kun je dat nog wel als nette melding naar de gebruiker tonen maar heb je geen kans meer om gewoon verder te gaan.quote:Op maandag 10 november 2014 12:55 schreef Robuustheid het volgende:
Ah, dat verklaart! Dank.
Zijn er evt. nog alternatieven, om een variable volgens bepaalde methode te declareren indien deze nog niet gedeclareerd is?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | CREATE TABLE `test` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `Val1` varchar(255) NOT NULL, `Val2` varchar(255) NOT NULL, `Updated` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`Val1`), KEY `ID` (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Gegevens worden uitgevoerd voor tabel `test` -- INSERT INTO `test` (`ID`, `Val1`, `Val2`, `Updated`) VALUES (1, 'a', '29191', '2014-11-12 19:39:31'); |
1 2 3 | $sql = "INSERT INTO test (Val1, Val2) VALUES ('a','a') ON DUPLICATE KEY UPDATE Val2 = '".rand()."'"; $query = mysqli_query($con, $sql); echo mysqli_affected_rows($con); |
1 2 3 | $sql = "UPDATE test SET Val2 = '".rand()."' WHERE ID=1"; $query = mysqli_query($con, $sql); echo mysqli_affected_rows($con); |
Ah, de comments had ik niet bekeken. Thanks!quote:Op woensdag 12 november 2014 19:51 schreef mstx het volgende:
On duplicate key update geeft 2 terug als een waarde is geupdate, zie manual.
http://php.net/manual/en/mysqli.affected-rows.php
1e comment
1 2 3 4 | <?php $sql = "UPDATE test SET val1='a', val2='b', val3='c', val4='c' (etc) WHERE ID=0"; mysqli_query($con, $sql); ?> |
Tip: Maak de id-kolom unsigned. Dan kun je er 2 keer zoveel records in kwijt (een auto-increment levert altijd positieve getallen op). Niet dat ik verwacht dat je in de buurt van de grens van een signed kolom komt, maar tochquote:
Ik denk niet dat ik boven de 2147483647 id's uitkom jaquote:Op woensdag 12 november 2014 23:10 schreef Light het volgende:
[..]
Tip: Maak de id-kolom unsigned. Dan kun je er 2 keer zoveel records in kwijt (een auto-increment levert altijd positieve getallen op). Niet dat ik verwacht dat je in de buurt van de grens van een signed kolom komt, maar toch
Je zou het ID veld misschien ook wel compleet kunnen verwijderen.quote:Op woensdag 12 november 2014 23:23 schreef qu63 het volgende:
[..]
Ik denk niet dat ik boven de 2147483647 id's uitkom ja
Teller staat nu op 10.733 en zal niet veel meer stijgen
In dit voorbeeld wel jaquote:Op donderdag 13 november 2014 13:28 schreef TwenteFC het volgende:
[..]
Je zou het ID veld misschien ook wel compleet kunnen verwijderen.
quote:Op woensdag 12 november 2014 22:57 schreef qu63 het volgende:
Hoe kan ik beste achterhalen welke van de onderstaande kolommen een nieuwe waarde hebben gekregen door deze query?
[ code verwijderd ]
De wijzigingen kunnen alle kolommen beslaan, of juist geen. En alles er tussenin.
quote:Op woensdag 12 november 2014 22:57 schreef qu63 het volgende:
Hoe kan ik beste achterhalen welke van de onderstaande kolommen een nieuwe waarde hebben gekregen door deze query?
[ code verwijderd ]
De wijzigingen kunnen alle kolommen beslaan, of juist geen. En alles er tussenin.
1 | SELECT `val1` != 'a' AS val1_changed, `val2` != 'b' AS val2_changed |
En deze uitvoeren voor de UPDATE neem ik aan?quote:
Dan ga ik daar even mee puzzelenquote:
quote:
1 2 3 4 5 | <?php $sql = "SELECT `Val1` != 'a' AS Val1_changed, `Val2` != 'a' AS Val2_changed, `Val3` != 'b' AS Val3_changed, `Val4` != 'a' AS Val4_changed, `Val5` != 'a' AS Val5_changed, `Val6` != '' AS Val6_changed FROM `test` WHERE `ID`='1'" $result = mysqli_query($con, $sql); $test = mysqli_fetch_all($result); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | Array ( [0] => Array ( [0] => 0 [1] => 0 [2] => 1 [3] => 0 [4] => 0 [5] => 1 ) ) |
Duh..quote:
Heel beperkt icm Logstash en Kibana.quote:Op vrijdag 14 november 2014 18:27 schreef TwenteFC het volgende:
Heeft iemand hier toevallig ervaring met Elasticsearch?
Dan kan jij misschien mijn vraag beantwoorden;quote:Op vrijdag 14 november 2014 18:33 schreef Monolith het volgende:
[..]
Heel beperkt icm Logstash en Kibana.
Dit is inderdaad exact wat ik wil, thx.quote:Op vrijdag 14 november 2014 18:44 schreef Monolith het volgende:
Je zou ook kunnen kijken naar faceted search in SOLR. Volgens mij is dat zo ongeveer wat je wilt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?xml version="1.0" encoding="UTF-8"?> <mobile_orderdetail_ack xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <messagebody> <subscription> <products> <bundleproduct> <bundleproductid>114</bundleproductid> <bundleproductname>Managed Mobile Blue 1GB</bundleproductname> <startdate>2014-07-07</startdate> </bundleproduct> <bundleproduct> <bundleproductid>74</bundleproductid> <bundleproductname>Data Pack 1000 (Blue)</bundleproductname> <startdate>2014-07-07</startdate> </bundleproduct> <bundleproduct> <bundleproductid>46</bundleproductid> <bundleproductname>SMS Pack Unlimited</bundleproductname> <startdate>2014-07-07</startdate> </bundleproduct> </products> </subscription> </messagebody> </mobile_orderdetail_ack> |
1 2 3 4 5 6 7 8 9 10 | <?php $xml = new SimpleXMLElement ( $bericht ); foreach ( $xml->messagebody->subscription->products as $products ) { print_r ( $products ); } ?> |
quote:
1 2 3 4 5 6 7 8 9 10 | <?php foreach ( $xml->messagebody->subscription->products->bundleproduct as $bundleproducts ) { $products[] = get_object_vars ( $bundleproducts ); } print_r ( $products ); ?> |
1 2 3 4 5 | <?php $variables = array( 'Foo' => 'Bar', 'Baz' => 'Test' ); $json = new JsonModel( $variables ); return $json; ?> |
Gebruik de json view helper: http://framework.zend.com(...)ew.helpers.json.htmlquote:Op zondag 16 november 2014 16:13 schreef Pakspul het volgende:
Kan iemand mij uitleggen waarom ik een view bestand nodig heb wanneer ik JSON output genereer via JsonModel in Zend Framework 2? Ik heb een array en die gooi op eruit, de view voegt totaal niets toe
Gelukkig kan ik ook geen voorbeelden vinden hoe het wel moet. Overal zeggen ze: "gebruik dit en je bent klaar".
[ code verwijderd ]
Dit werkt niet! Nouja, het werkt wel. Hij toont de layout niet, maar de view mag ook optieven en hij moet mij Json string tonen.
1 2 3 | <?php $nextdate = strtotime(date("d-m-Y", strtotime("first ".$airday." of ".$date[0]." ".$date[1]))." ".$airtime." ".$timezone); ?> |
Veiligheid?quote:Op vrijdag 28 november 2014 15:55 schreef KomtTijd... het volgende:
Waarom zou je dat uberhaupt willen?
Het is wel mogelijk, maar dan moet je denk een veel te ingewikkelde regex schrijvenquote:Op vrijdag 28 november 2014 15:36 schreef boskameel het volgende:
Wat zouden de makkelijkste manier zijn wanneer je een website hebt met daarin 1000'en querys die nog met mysq_query opgemaakt zijn en je wilt naar pdo overgaan? Is hier een oplossing voor of ontkom je er niet aan alles te herschrijven?
Als je applicatie niet veilig is moet je het lek fixxen, niet rucksichtsloss je database driver vervangen. En functies worden júíst deprecated (ipv verwijderd) zodat bestaande applicaties niet aangepast hoeven worden.quote:
Als je overgaat op PDO moet je je queries ook parameteriseren. Althans, niet per se, maar als je dat niet doet heeft het écht geen enkele zin. En eigenlijk gewoon (zo veel mogelijk) OO gaan werken. Overgaan op PDO is dus veel ingrijpender dan alleen maar een andere database-connectie.quote:[..]
Het is wel mogelijk, maar dan moet je denk een veel te ingewikkelde regex schrijven
Zul je toch handmatig moeten doen.
Maar die oude mysql-functies worden wel degelijk verwijderd toch?quote:Op vrijdag 28 november 2014 18:00 schreef KomtTijd... het volgende:
[..]
Als je applicatie niet veilig is moet je het lek fixxen, niet rucksichtsloss je database driver vervangen. En functies worden júíst deprecated (ipv verwijderd) zodat bestaande applicaties niet aangepast hoeven worden.
Is het niet al weg in 5.6?quote:Op vrijdag 28 november 2014 21:50 schreef robin007bond het volgende:
[..]
Maar die oude mysql-functies worden wel degelijk verwijderd toch?
Dan is het toch niet deprecated meer maar echt weg? Kan me voorstellen dat je dan als bedrijf wilt switchen van mysql* naar PDO.quote:
Als het daar om gaat kun je gewoon alle mysql_* functies vervangen door mysqli_*.quote:Op vrijdag 28 november 2014 21:50 schreef robin007bond het volgende:
[..]
Maar die oude mysql-functies worden wel degelijk verwijderd toch?
Dat kan ook ja, maar ik kan me voorstellen dat mensen het dan gelijk helemaal goed willen doen.quote:Op vrijdag 28 november 2014 22:39 schreef mstx het volgende:
[..]
Als het daar om gaat kun je gewoon alle mysql_* functies vervangen door mysqli_*.
Onze klanten in ieder geval niet. Als ze kunnen kiezen tussen het vervangen door mysqli functies in 5 minuten of alle queries ombouwen naar pdo met parameters voor tientallen uren werk weet ik wel wat ze kiezen, want niemand ziet het verschil.quote:Op vrijdag 28 november 2014 22:39 schreef robin007bond het volgende:
[..]
Dat kan ook ja, maar ik kan me voorstellen dat mensen het dan gelijk helemaal goed willen doen.
quote:Op vrijdag 28 november 2014 22:41 schreef mstx het volgende:
[..]
Onze klanten in ieder geval niet. Als ze kunnen kiezen tussen het vervangen door mysqli functies in 5 minuten of alle queries ombouwen naar pdo met parameters voor tientallen uren werk weet ik wel wat ze kiezen, want niemand ziet het verschil.
Erm... Nee. Echt niemand gaat betalen voor het ombouwen van een applicatie die uiteindelijk precies hetzelfde kan als daarvoor.quote:Op vrijdag 28 november 2014 22:39 schreef robin007bond het volgende:
[..]
Dat kan ook ja, maar ik kan me voorstellen dat mensen het dan gelijk helemaal goed willen doen.
Je moest eens weten wat voor gedrochten er bestaan. Code die compleet onveilig is vanwege luiheid, tijdsgebrek, etc.quote:Op vrijdag 28 november 2014 23:35 schreef Monolith het volgende:
1000'en keren dergelijke functies gebruiken klinkt vooral als een heel erg slecht ontworpen applicatie.
Ik ben ermee bekend hoor. Doe zelf de laatste jaren gelukkig niets meer met PHP, maar ik weet wat voor een ellende daarmee geproduceerd wordt.quote:Op zaterdag 29 november 2014 01:50 schreef totalvamp het volgende:
[..]
Je moest eens weten wat voor gedrochten er bestaan. Code die compleet onveilig is vanwege luiheid, tijdsgebrek, etc.
Zeker met code die al verouderd is heb je vaak problemen of met slecht gebouwde CMS systemen (joomla).
Omdat er nog veel oude tutorials en dergelijke op internet circuleren denk ik.quote:Op zaterdag 29 november 2014 12:07 schreef slacker_nl het volgende:
Worden jullie PHP'ers niet gek van die comtinue discussie over PDO vs mysql*_-functies? Ik verbaas me echt continue dat er zoveel over gesproken moet worden. Gebruik PDO, 10 jaar geleden was dat het devies en nog steeds heb je idioten die het niet gebruiken. Waarom?
Goed punt inderdaad.quote:Op zaterdag 29 november 2014 12:09 schreef robin007bond het volgende:
[..]
Omdat er nog veel oude tutorials en dergelijke op internet circuleren denk ik.
Daarbij is PHP ook echt de taal bij uitstek waar veel mensen gewoon een beetje mee experimenteren. Ik heb het idee dat weinig mensen echt een serieus boek over PHP lezen.quote:
Dat is geen argument imo. Of... misschien ook wel. Ze hadden dus veeeeeeel eerder die mysql*_ meuk moeten deprecaten en verwijderen.quote:Op zaterdag 29 november 2014 12:09 schreef robin007bond het volgende:
[..]
Omdat er nog veel oude tutorials en dergelijke op internet circuleren denk ik.
Mee eens. Gewoon ter zelfbescherming voor de mensen die het anders fout zouden doen.quote:Op zaterdag 29 november 2014 12:22 schreef slacker_nl het volgende:
[..]
Dat is geen argument imo. Of... misschien ook wel. Ze hadden dus veeeeeeel eerder die mysql*_ meuk moeten deprecaten en verwijderen.
PDO heeft een iets hogere leercirve. Mysql_* is lekker makkelijk.quote:Op zaterdag 29 november 2014 12:07 schreef slacker_nl het volgende:
Worden jullie PHP'ers niet gek van die comtinue discussie over PDO vs mysql*_-functies? Ik verbaas me echt continue dat er zoveel over gesproken moet worden. Gebruik PDO, 10 jaar geleden was dat het devies en nog steeds heb je idioten die het niet gebruiken. Waarom?
Eigenlijk wel ja.quote:Op zaterdag 29 november 2014 12:27 schreef Monolith het volgende:
Probleem is dat de grootste kracht van PHP ook gelijk de grootste zwakte is, praktisch iedere idioot kan ermee aan de slag.
Hogere leercurve? Explain.quote:Op zaterdag 29 november 2014 12:29 schreef d4v1d het volgende:
[..]
PDO heeft een iets hogere leercirve. Mysql_* is lekker makkelijk.
Zelf vind ik PDO echt heel makkelijk in gebruik. Ik kan het me echt niet voorstellen dat mensen daar moeite mee hebben.quote:
Prepared statements en shit. En OO en classes begreep ik echt nog niet in het begin (toen ik nog mysql_* gebruikte)quote:
Ik word er niet gek van, want ik heb niks te maken met wat anderen doenquote:Op zaterdag 29 november 2014 12:07 schreef slacker_nl het volgende:
Worden jullie PHP'ers niet gek van die comtinue discussie over PDO vs mysql*_-functies? Ik verbaas me echt continue dat er zoveel over gesproken moet worden. Gebruik PDO, 10 jaar geleden was dat het devies en nog steeds heb je idioten die het niet gebruiken. Waarom?
Kwestie van vraag en aanbod. Als je iets kan dat weinig anderen kunnen, kun je een hoger salaris vragen. Scripten in PHP is niet een voorbeeld van zoietsquote:Op zaterdag 29 november 2014 12:52 schreef robin007bond het volgende:
Opvallend trouwens.
PHP-programmeurs verdienen gemiddeld minder:
http://tweakers.net/revie(...)erdienen-icters.html
Wellicht ja.quote:Op zaterdag 29 november 2014 13:10 schreef Tijn het volgende:
[..]
Kwestie van vraag en aanbod. Als je iets kan dat weinig anderen kunnen, kun je een hoger salaris vragen. Scripten in PHP is niet een voorbeeld van zoiets
"if it ain't broken, don't fix it" versus "if you stand still, you fall behind".quote:Op zaterdag 29 november 2014 15:03 schreef KomtTijd... het volgende:
Persoonlijk vind ik PDO ook makkelijker dan de oude database functies, en ik zou ook iedereen aanraden alleen nog pdo te gebruiken als een ORM class geen optie is.
Maar dat betekent niet dat je goedwerkende applicaties moet gaan ombouwen puur voor The sake of it. If it aint broken, don't fix it!
Ja geleidelijk inbrengen idd. En dan kom je op een gegeven moment op een punt dat je die laatste paar functies ook maar gaat refactoren. Maar dat is iets anders dan een hele applicatie omschrijven puur omdat het kan.quote:Op zaterdag 29 november 2014 15:07 schreef papernote het volgende:
[..]
"if it ain't broken, don't fix it" versus "if you stand still, you fall behind".
Persoonlijk ben ik vóór actief onderhoud aan applicaties, ook al zijn ze niet "broken". Updaten en het geleidelijk inbrengen van nieuwe technieken hoort daar bij, naar mijn mening.
Dat denk ik ook ja. Maar je hebt met PHP natuurlijk wel veel van die veredelde ammateurs (zoals ondergetekende ) die het gemiddelde omlaag halen.quote:Op zaterdag 29 november 2014 13:12 schreef robin007bond het volgende:
[..]
Wellicht ja.
Ik denk dat mensen die echt heel goed met bepaalde frameworks kunnen werken en echt goed OOP in PHP kunnen programmeren wel redelijk gelijklopen.
Punt is natuurlijk wel dat het toepassingsgebied relatief beperkt is. Je zult ook niet bepaald veel PHP-mensen tegenkomen die zich bezighouden net zaken als Enterprise architecture e.d.quote:Op zaterdag 29 november 2014 13:12 schreef robin007bond het volgende:
[..]
Wellicht ja.
Ik denk dat mensen die echt heel goed met bepaalde frameworks kunnen werken en echt goed OOP in PHP kunnen programmeren wel redelijk gelijklopen.
quote:Op zaterdag 29 november 2014 20:01 schreef totalvamp het volgende:
Owja nog iets leuks, mijn baas weigert php code op linux servers te draaien, omdat hij niet weet hoe hij deze moet instellen...
Nu constant problemen met rechten en bullshit.
Dat krijg je als een niet technisch persoon je baas is xDquote:Op zaterdag 29 november 2014 20:04 schreef Monolith het volgende:
Ik weet niet of ik daar heel hard om moet lachen of juist huilen.
Hier wordt je nog vredrietiger van:quote:
Hebben mijn collega's al jaren daarvoor gedaan, maar hij luistert nietquote:Op zaterdag 29 november 2014 20:36 schreef papernote het volgende:
Je baas moet zich, als niet-technisch persoon, daar niet mee bemoeien. En jij moet de ballen hebben om dat tegen 'm te zeggen.
Dan is hij geen baas, maar een schijt-irritante bemoeial die ontslagen moet worden. Een goede baas weet wanneer hij z'n bek moet houden. Zeker als er personeel met meer kennis rondloopt.quote:Op zaterdag 29 november 2014 20:38 schreef totalvamp het volgende:
[..]
Hebben mijn collega's al jaren daarvoor gedaan, maar hij luistert niet
Ik werk er pas 2 maanden xD
Ga maar vast leren in .net te programmeren.quote:Op zaterdag 29 november 2014 20:38 schreef totalvamp het volgende:
[..]
Hebben mijn collega's al jaren daarvoor gedaan, maar hij luistert niet
Ik werk er pas 2 maanden xD
Als je kunt programmeren, dan is de taal irrelevant.quote:Op zaterdag 29 november 2014 20:40 schreef bondage het volgende:
[..]
Ga maar vast leren in .net te programmeren.
Andere namen voor functies etc. Moet je toch ff leren.quote:Op zaterdag 29 november 2014 20:41 schreef papernote het volgende:
[..]
Als je kunt programmeren, dan is de taal irrelevant.
Het is zijn bedrijf, maar volgende week gaan we sowieso ff praten over wat dingen die niet echt kosten efficient zijn.quote:Op zaterdag 29 november 2014 20:40 schreef papernote het volgende:
[..]
Dan is hij geen baas, maar een schijt-irritante bemoeial die ontslagen moet worden. Een goede baas weet wanneer hij z'n bek moet houden. Zeker als er personeel met meer kennis rondloopt.
Maar hij is zeker zo'n baas die denkt alles zelf beter te weten en z'n werknemers meer als uitvoerende slaven ziet, dan als mensen die ook zelfstandig iets kunnen?
Ik zou maar vast uitkijken naar een nieuwe plek.
Daar zit er ook 1 van Die doet alleen maar .net, ik wil er niet aan beginnen omdat ik een hekel aan microsoft servers hebn.quote:Op zaterdag 29 november 2014 20:40 schreef bondage het volgende:
[..]
Ga maar vast leren in .net te programmeren.
Nouja ik vind serverbeheer niet erg om te doen, maar het moet gewoon goed werken.quote:Op zaterdag 29 november 2014 20:41 schreef KomtTijd... het volgende:
Daar zou je je zelfs als programmeur niet mee bezig hoeven houden. Regel een managed server als er geen server beheerder is.
Dat is de grap natuurlijk Gelukkig bepaal ik op het werk zelf wat voor OS er op de server komt te staan en kan ik tot in de kleinste details de uitbreidingen kiezen. Ik ben de klant, en de klant is koningquote:Op zaterdag 29 november 2014 20:44 schreef totalvamp het volgende:
[..]
Daar zit er ook 1 van Die doet alleen maar .net, ik wil er niet aan beginnen omdat ik een hekel aan microsoft servers hebn.
Als je enkel PHP kent gaan zaken als threading en concurrency je nog wel tegenvallen hoor.quote:Op zaterdag 29 november 2014 20:41 schreef papernote het volgende:
[..]
Als je kunt programmeren, dan is de taal irrelevant.
Ik ook niet, maar dan moet je er wel de tijd voor hebben/krijgen om er ook echt wat aan te doen zo af en toe. Kortom ik ben blij dat wij dat inmiddels allemaal uitbesteed hebben ondanks dat het wel eens lastig is dat je niet FF snel iets kunt installeren ofzo...quote:Op zaterdag 29 november 2014 20:44 schreef totalvamp het volgende:
[..]
Nouja ik vind serverbeheer niet erg om te doen, maar het moet gewoon goed werken.
Dan kun je dus niet programmeren.quote:Op zaterdag 29 november 2014 20:48 schreef Monolith het volgende:
[..]
Als je enkel PHP kent gaan zaken als threading en concurrency je nog wel tegenvallen hoor.
__.quote:Op zaterdag 29 november 2014 20:50 schreef papernote het volgende:
[..]
Dan kun je dus niet programmeren.
Prolog, Lisp, cobol kun je ook gewoon met enkel imperatieve ervaring?quote:Op zaterdag 29 november 2014 20:50 schreef papernote het volgende:
[..]
Dan kun je dus niet programmeren.
Denk dat het weinig zegt over hoe goed iemand kan programmeren. Het is maar net wat je gewend bent.quote:Op zaterdag 29 november 2014 20:50 schreef papernote het volgende:
[..]
Dan kun je dus niet programmeren.
Ahww dat valt bij jou toch reuze mee?quote:Op zaterdag 29 november 2014 17:51 schreef KomtTijd... het volgende:
[..]
Dat denk ik ook ja. Maar je hebt met PHP natuurlijk wel veel van die veredelde ammateurs (zoals ondergetekende ) die het gemiddelde omlaag halen.
quote:
Een goede opleiding bevat alle programmeerparadigma's. Een goede programmeur kent alle paradigma's, al zal door ervaring en gebruik het ene er wat beter in zitten dan het andere.quote:Op zaterdag 29 november 2014 20:52 schreef Monolith het volgende:
[..]
Prolog, Lisp, cobol kun je ook gewoon met enkel imperatieve ervaring?
.net is een framework, geen taal.quote:Op zaterdag 29 november 2014 21:05 schreef totalvamp het volgende:
Ik snap ook niet wat het voordeel van .net over andere talen zou moeten zijn...
Dat gaat dan over iemand met een goede opleiding. In principe kan iemand een prima programmeur zijn zonder formele opleiding. Bovendien raak je tijdens een opleiding echt nog maar de basis aan van veel zaken en leer je veel dingen pas in de praktijk. Simpelweg roepen dat een goede programmeur alles kan is was te kort door de bocht.quote:Op zaterdag 29 november 2014 21:07 schreef papernote het volgende:
[..]
[..]
Een goede opleiding bevat alle programmeerparadigma's. Een goede programmeur kent alle paradigma's, al zal door ervaring en gebruik het ene er wat beter in zitten dan het andere.
Maar iemand die zich "programmeur" noemt, maar nooit verder is gekomen dan in z'n vrije tijd wat html rondslepen in visuele editor van Frontpage zal daar inderdaad moeite mee hebben.
Ik heb zelf ook nog nooit een opleiding ervoor gedaan, sterker nog die was er gewoon niet.quote:Op zaterdag 29 november 2014 21:11 schreef Monolith het volgende:
[..]
Dat gaat dan over iemand met een goede opleiding. In principe kan iemand een prima programmeur zijn zonder formele opleiding. Bovendien raak je tijdens een opleiding echt nog maar de basis aan van veel zaken en leer je veel dingen pas in de praktijk. Simpelweg roepen dat een goede programmeur alles kan is was te kort door de bocht.
Wanneer kan je dan wel programmeren? Als je maar beheerst wat je nodig hebt voor je taak is t goed, toch? http://www.quora.com/How-(...)er/George-Gonzalez-5quote:Op zaterdag 29 november 2014 20:50 schreef papernote het volgende:
[..]
Dan kun je dus niet programmeren.
precies .. of het efficiënt, structureel en veilig is, om maar wat dingen te noemen, maakt dan ook niet uitquote:Op zaterdag 29 november 2014 21:56 schreef qu63 het volgende:
[..]
Wanneer kan je dan wel programmeren? Als je maar beheerst wat je nodig hebt voor je taak is t goed, toch? http://www.quora.com/How-(...)er/George-Gonzalez-5
Kom op KomtTijd. Je doet in heel DIG alsof je overal verstand van hebt...quote:Op vrijdag 28 november 2014 18:00 schreef KomtTijd... het volgende:
[..]
Als je applicatie niet veilig is moet je het lek fixxen, niet rucksichtsloss je database driver vervangen. En functies worden júíst deprecated (ipv verwijderd) zodat bestaande applicaties niet aangepast hoeven worden.
de mensen die nog echt PHP/MySQL hebben geleerd, zouden met PDO geen moeite moeten hebben. Vind het er allemaal juist makkelijker op geworden. Echter, doordat veel mensen zich een bepaald framework eigen maken en zich vervolgens tot PHP Programmeur bekronen, zijn er steeds minder mensen die nog standaard PHP en queries kunnen schrijven. Dat hebben we tijd terug gezien bij ons op het werk toen we een nieuwe developer zochten.quote:Op zaterdag 29 november 2014 12:32 schreef robin007bond het volgende:
[..]
Zelf vind ik PDO echt heel makkelijk in gebruik. Ik kan het me echt niet voorstellen dat mensen daar moeite mee hebben.
als je servers tot de belangrijkste onderdelen van je bedrijf behoren en je klanten afhankelijk zijn daarvan, neem je jezelf gewoon niet serieus als je dat zelf niet in beheer hebt. Als er een server uitligt, moet je vervolgens gaan wachten tot die andere partij het oplost. Zelf ff inloggen via SSH en een restart doen is paar seconden werk.quote:Op zaterdag 29 november 2014 20:48 schreef KomtTijd... het volgende:
[..]
Ik ook niet, maar dan moet je er wel de tijd voor hebben/krijgen om er ook echt wat aan te doen zo af en toe. Kortom ik ben blij dat wij dat inmiddels allemaal uitbesteed hebben ondanks dat het wel eens lastig is dat je niet FF snel iets kunt installeren ofzo...
Dat viel voor mij onder beheersenquote:Op zondag 30 november 2014 06:02 schreef remi1986 het volgende:
[..]
precies .. of het efficiënt, structureel en veilig is, om maar wat dingen te noemen, maakt dan ook niet uit
Sorry, maar dat is echt volstrekte kolder. Het is veel makkelijker om een gespecialiseerde externe partij te hebben met 24/7 ondersteuning, uptime garantie middels SLA's, enzovoort.quote:Op zondag 30 november 2014 07:13 schreef remi1986 het volgende:
[..]
als je servers tot de belangrijkste onderdelen van je bedrijf behoren en je klanten afhankelijk zijn daarvan, neem je jezelf gewoon niet serieus als je dat zelf niet in beheer hebt. Als er een server uitligt, moet je vervolgens gaan wachten tot die andere partij het oplost. Zelf ff inloggen via SSH en een restart doen is paar seconden werk.
En serverbeheer is helemaal niet moeilijk, en al helemaal niet als het allemaal goed gedocumenteerd is. Toen ik begon bij het bedrijf waar ik nu werk, kreeg ik een aparte pc en werd mij verplicht Gentoo te gaan leren en te gaan stoeien met dingen waar je dagelijks mee te maken kan krijgen.
We hebben weleens gehad dat de MySQL replica helemaal de mist in ging. Dan is het heerlijk als je dat zelf binnen een paar minuten hebt opgelost i.p.v. maar hopen dat die andere partij het doet.
Wij schieten gewoon een ticket in bij TRUE en het is sneller opgelost dan ik kan uitzoeken wat er allemaal precies mis is.quote:Op zondag 30 november 2014 07:13 schreef remi1986 het volgende:
[..]
als je servers tot de belangrijkste onderdelen van je bedrijf behoren en je klanten afhankelijk zijn daarvan, neem je jezelf gewoon niet serieus als je dat zelf niet in beheer hebt. Als er een server uitligt, moet je vervolgens gaan wachten tot die andere partij het oplost. Zelf ff inloggen via SSH en een restart doen is paar seconden werk.
En serverbeheer is helemaal niet moeilijk, en al helemaal niet als het allemaal goed gedocumenteerd is. Toen ik begon bij het bedrijf waar ik nu werk, kreeg ik een aparte pc en werd mij verplicht Gentoo te gaan leren en te gaan stoeien met dingen waar je dagelijks mee te maken kan krijgen.
We hebben weleens gehad dat de MySQL replica helemaal de mist in ging. Dan is het heerlijk als je dat zelf binnen een paar minuten hebt opgelost i.p.v. maar hopen dat die andere partij het doet.
Wij willen niet dat onze klanten de dupe worden van fouten van een derde partij. Onze klanten zijn afhankelijk van het systeem, anders kunnen die de dag naar huis. En als je zelf de expertise in huis hebt, waarom dan uitbesteden.quote:Op zondag 30 november 2014 15:55 schreef TwenteFC het volgende:
[..]
Wij schieten gewoon een ticket in bij TRUE en het is sneller opgelost dan ik kan uitzoeken wat er allemaal precies mis is.
Als je een partij hebt met professionals die dit 24/7 doen, dan moet je zelf niet gaan lopen aan kloten.
Monitoren jullie ook alles zelf dan? Wanneer er 4 uur s`nachts iets mis gaat.quote:Op zondag 30 november 2014 16:06 schreef remi1986 het volgende:
[..]
Wij willen niet dat onze klanten de dupe worden van fouten van een derde partij. Onze klanten zijn afhankelijk van het systeem, anders kunnen die de dag naar huis. En als je zelf de expertise in huis hebt, waarom dan uitbesteden.
En daarbij, vind ik het wel leuk om zo nu en dan met wat nieuwe dingen bezig te zijn. Hele dag code kloppen is ook niet alles
Wij monitoren inderdaad alles zelf. Tijdje terug nog om 01:30 in het datacenter gestaan. We kwamen er remote niet meer in. Die server was helemaal gecrashed, dus moesten we er heenquote:Op zondag 30 november 2014 16:15 schreef TwenteFC het volgende:
[..]
Monitoren jullie ook alles zelf dan? Wanneer er 4 uur s`nachts iets mis gaat.
En hoelang duurde het voordat jullie ter plaatse waren?quote:Op zondag 30 november 2014 16:22 schreef remi1986 het volgende:
[..]
Wij monitoren inderdaad alles zelf. Tijdje terug nog om 01:30 in het datacenter gestaan. We kwamen er remote niet meer in. Die server was helemaal gecrashed, dus moesten we er heen
20 min, half uurtje misschien? We hebben trouwens ook een Master-Slave systeem. Als er één server het begeeft, neemt de andere het over (die servers staan in weer een ander datacenter). De klant zou er dan ook helemaal niets van gemerkt hebben, want het verkeer werd al automatisch doorgeleid naar die andere server.quote:Op zondag 30 november 2014 16:23 schreef TwenteFC het volgende:
[..]
En hoelang duurde het voordat jullie ter plaatse waren?
Dat is niet zo, er zijn meerdere voorbeelden van functies die meerdere versies deprecated geweest zijn of nog steeds zijn. Ook de mysql_ functies die sinds 5.5 deprecated zijn, zitten er in 5.6 nog steeds in. Daarbij, zeker als je maatwerk producten draait, is het helemaal niet gek om gewoon een oudere PHP versie te blijven draaien als dat beter uitkomt.quote:Op zondag 30 november 2014 06:55 schreef remi1986 het volgende:
[..]
Kom op KomtTijd. Je doet in heel DIG alsof je overal verstand van hebt...
Deprecated betekent dat de functie in een volgende versie er niet meer is (ja verwijderd ja). Heb je een groot probleem als je alles met mysql_ hebt gemaakt en je host opeens aankondigt over te gaan op MySQL 5.5. Ik weet ook dat dit niet van de één op de andere dag gebeurt, maar vroeg of laat upgraden ze allemaal. Dan ben je dus te laat.
Zoals ik al zei, dat werkt alleen als je daar de capaciteiten toe hebt. Heel veel ontwikkelaars zullen zich niet met serverbeheer kunnen, willen of mogen bemoeien en lang niet alle softwareproducenten hebben een aparte server beheerder in dienst. En dan ben je echt beter af met een managed server van een hosting partner dan dat je zelf ergens een vergeten bak in een stoffige berging gooit waar nooit iemand naar omkijkt.quote:Op zondag 30 november 2014 07:13 schreef remi1986 het volgende:
[..]
als je servers tot de belangrijkste onderdelen van je bedrijf behoren en je klanten afhankelijk zijn daarvan, neem je jezelf gewoon niet serieus als je dat zelf niet in beheer hebt. Als er een server uitligt, moet je vervolgens gaan wachten tot die andere partij het oplost. Zelf ff inloggen via SSH en een restart doen is paar seconden werk.
En serverbeheer is helemaal niet moeilijk, en al helemaal niet als het allemaal goed gedocumenteerd is. Toen ik begon bij het bedrijf waar ik nu werk, kreeg ik een aparte pc en werd mij verplicht Gentoo te gaan leren en te gaan stoeien met dingen waar je dagelijks mee te maken kan krijgen.
We hebben weleens gehad dat de MySQL replica helemaal de mist in ging. Dan is het heerlijk als je dat zelf binnen een paar minuten hebt opgelost i.p.v. maar hopen dat die andere partij het doet.
Je beschrijft onze sbs server.quote:Op zondag 30 november 2014 21:00 schreef KomtTijd... het volgende:
[..]
dan dat je zelf ergens een vergeten bak in een stoffige berging gooit waar nooit iemand naar omkijkt.
Lijkt me dat je dat in je code wilt oplossen en niet in de DB. In de DB blijven ID's (normaliter) gewoon uniek.quote:Op maandag 1 december 2014 17:14 schreef Nattekat het volgende:
Ik ben een site aan het maken waarbij het de bedoeling is om iedere keer als de zoveelste rij erbij komt de eerste rij te verwijderen. Nou is dit al werkend gekregen, maar ik kom er maar niet uit hoe ik de IDs weer opnieuw kan rangschrikken, want nu begint de eerste rij met 2 ipv 1.
Is er een manier om dit voor elkaar te krijgen?
Definieer rangschikken. Je kunt natuurlijk vrij eenvoudig gewoon "UPDATE table SET id=id-1" doen na het verwijderen van de eerste en toevoegen van de nieuwe rij, maar doorgaans is het niet zo bijster handig om op een dergelijke manier met IDs te gaan lopen klooien.quote:Op maandag 1 december 2014 17:14 schreef Nattekat het volgende:
Ik ben een site aan het maken waarbij het de bedoeling is om iedere keer als de zoveelste rij erbij komt de eerste rij te verwijderen. Nou is dit al werkend gekregen, maar ik kom er maar niet uit hoe ik de IDs weer opnieuw kan rangschrikken, want nu begint de eerste rij met 2 ipv 1.
Is er een manier om dit voor elkaar te krijgen?
Was ik al bang voor.quote:Op maandag 1 december 2014 17:18 schreef KomtTijd... het volgende:
[..]
Lijkt me dat je dat in je code wilt oplossen en niet in de DB. In de DB blijven ID's (normaliter) gewoon uniek.
Je wilt dus gewoon 'de eerste 100' hebben?quote:Op maandag 1 december 2014 17:21 schreef Nattekat het volgende:
[..]
Was ik al bang voor.
Heb wel wat gelezen over het herschrikken, maar niks gevonden dat werkt.
Om het simpel te houden was het idee een enkele query te hebben om ipv id 2 tot 101 id 1 tot 100 te hebben, dat wil ik ook bereiken.
En een ORDER BY ID voor het geval dat niet de default is.quote:Op maandag 1 december 2014 17:24 schreef KomtTijd... het volgende:
als je gewoon een query maakt met LIMIT(0,100), dan heb je dat toch?
quote:Op maandag 1 december 2014 17:24 schreef Monolith het volgende:
[..]
Je wilt dus gewoon 'de eerste 100' hebben?
Het probleem daarmee is dat er dan onnodige gegevens behouden blijven, en dat is niet wat ik wil bereiken.quote:Op maandag 1 december 2014 17:24 schreef KomtTijd... het volgende:
als je gewoon een query maakt met LIMIT(0,100), dan heb je dat toch?
Welke onnodige gegevens blijven er behouden?quote:Op maandag 1 december 2014 17:27 schreef Nattekat het volgende:
[..]
[..]
Het probleem daarmee is dat er dan onnodige gegevens behouden blijven, en dat is niet wat ik wil bereiken.
Inderdaad.quote:Op maandag 1 december 2014 17:28 schreef KomtTijd... het volgende:
Ik ben altijd groot voorstander van het zoveel mogelijk bewaren van (onnodige) gegevens. Waarom weggooien als je er geen last van hebt.
Ik ben altijd wel blij als het zo iets banaals is, klik klik klik, klaar.quote:Op maandag 1 december 2014 17:14 schreef KomtTijd... het volgende:
Goftedomme zeg. Moet ineens hals over kop wat klussen aan een oude applicatie (die er over een paar maanden hopelijk uit gaat), blijkt gewoon 3 kwart van de tabellen geen enkele index te hebben. Goh, dus daarom duren de queries een halve seconde
Je data kun je super makkelijk selecteren met query's, dus de hoeveelheid maakt niet zoveel uit.quote:Op maandag 1 december 2014 18:11 schreef Nattekat het volgende:
Denk dat ik die makkelijke oplossing van het niet verwijderen maar neem.
Voor mijn gevoel staat dat juist slordig, maar ik ben dan nog niet erg into de php/mysql.
Gewoon softdeleten, heeft bij mij vaak ook de voorkeur boven verwijderen.quote:Op maandag 1 december 2014 18:11 schreef Nattekat het volgende:
Denk dat ik die makkelijke oplossing van het niet verwijderen maar neem.
Voor mijn gevoel staat dat juist slordig, maar ik ben dan nog niet erg into de php/mysql.
Dat wel ja. Gelukkig loop ik nog tegen genoeg andere problemen aan om dat weer te compenserenquote:Op maandag 1 december 2014 18:09 schreef TwenteFC het volgende:
[..]
Ik ben altijd wel blij als het zo iets banaals is, klik klik klik, klaar.
Het is ook niet de bedoeling dat je dagelijks via database-management tools in de database gaat kijken of je data er niet slordig uit ziet. Databases zijn er niet om er netjes uit te zien, daar heb je je queries voor.quote:Op maandag 1 december 2014 18:11 schreef Nattekat het volgende:
Denk dat ik die makkelijke oplossing van het niet verwijderen maar neem.
Voor mijn gevoel staat dat juist slordig, maar ik ben dan nog niet erg into de php/mysql.
Nou ja, het kan natuurlijk wel degelijk voor traagheid zorgen wanneer overbodige data niet wordt opgeruimd.quote:Op maandag 1 december 2014 18:19 schreef KomtTijd... het volgende:
[..]
Dat wel ja. Gelukkig loop ik nog tegen genoeg andere problemen aan om dat weer te compenseren
[..]
Het is ook niet de bedoeling dat je dagelijks via database-management tools in de database gaat kijken of je data er niet slordig uit ziet. Databases zijn er niet om er netjes uit te zien, daar heb je je queries voor.
Dit moet ik mijn baas ook nog wel eens uitleggen
Gewoon MySQL workbench?quote:Op dinsdag 9 december 2014 15:20 schreef KomtTijd... het volgende:
Wat is nou een relaxte databasetool voor als je PHPMyAdmin zat begint te raken?
Webbased of linux, en een beetje eenvoudig en overzichtelijk. Heb wel eens wat met HeidiSql maar die vond ik ook irritant (en lelijk).
Alleen jammer dat het zo'n vreselijk trage en buggy applicatie is. Vind Sequel Pro ook wel fijn werkenquote:
Ik doe zelf eigenlijk erg weinig DBA werk de laatste jaren, zeker op SQL gebied. Hooguit wat met RoboMongo en dergelijke.quote:Op dinsdag 9 december 2014 16:31 schreef robin007bond het volgende:
[..]
Hier heeft het de bijnaam MySQL CrashBench gekregen.
Kun je wel mooie ERD's in maken.
Waarom ben je phpmyadmin zat dan?quote:Op dinsdag 9 december 2014 16:58 schreef KomtTijd... het volgende:
Ik hoef niets ingewikkelds, moet gewoon af en toe kunnen zien wat er in de database gebeurt als ik mijn code uitvoer. Of wat testrecords verwijderen ofzo.
Op zich is PhpStorm prima, maar het zit zó ongelooflijk vol met allerhande glitches... pfft je wordt er gewoon moe van.
Leuk dat je PHPStorm wegstreept, je kan in PHPStorm je database sources toevoegen en dan heb je daar ook een autocomplete op.quote:Op dinsdag 9 december 2014 16:58 schreef KomtTijd... het volgende:
Ik hoef niets ingewikkelds, moet gewoon af en toe kunnen zien wat er in de database gebeurt als ik mijn code uitvoer. Of wat testrecords verwijderen ofzo.
Op zich is PhpStormPhpMyAdmin prima, maar het zit zó ongelooflijk vol met allerhande glitches... pfft je wordt er gewoon moe van.
1 2 3 4 5 6 7 8 9 | <?php $dirname = "fotoalbum/fotoalbum/*/"; $images = glob($dirname."*.JPG"); foreach($images as $image) { if ($image == 0) { echo '<img src="'.$image.'" />'; } } ?> |
Je checkt niet op index.quote:Op maandag 29 december 2014 21:58 schreef MrNiles het volgende:
ik wil graag uit verschillende folders 1 image halen
heb nu dit, maar dan krijg ik toch alle foto's te zien
met toevoegen van => $value kom ik er ook niet aan uit
Hie kan ik dit het beste oplossen?
[ code verwijderd ]
Value is de index. Je wil altijd alleen de eerste index hebben, dus moet je value checken op 0.quote:Op maandag 29 december 2014 22:09 schreef MrNiles het volgende:
[..]
[ code verwijderd ]
iets in deze richting?
quote:Op maandag 29 december 2014 22:10 schreef Scorpie het volgende:
[..]
Value is de index. Je wil altijd alleen de eerste index hebben, dus moet je value checken op 0.
1 2 3 4 5 6 7 8 9 10 | <?php dan zou ik verwachten zoiets $dirname = "fotoalbum/fotoalbum/*/"; $images = glob($dirname."*.JPG"); foreach($images as $image => $value) { if ($value == 0) { echo '<img src="'.$image.'" />'; } } ?> |
1 2 3 4 | <?php if ($image == 0) { echo '<img src="'.$value.'" />'; ?> |
bijna een snelle edit gedaan...heb ik dus gedaanquote:Op maandag 29 december 2014 22:22 schreef Monolith het volgende:
value => image in plaats van andersom.
Laat TS ff lekker kutten met arrays, anders snapt hij het nooitquote:
dan moet je eerst een readdir doen van de root map, door de mappen loopen en per map de afbeeldingen ophalen en de eerste tonen.quote:Op maandag 29 december 2014 22:23 schreef MrNiles het volgende:
[..]
bijna een snelle edit gedaan...heb ik dus gedaan
maar dan krijg ik alleen de eerste foto van de eerste folder
Die had ik al eens geprobeerd, maar dan krijg ik een loop van foto1 uit folder1, geen andere foldersquote:
Zeker waarquote:Laat TS ff lekker kutten met arrays, anders snapt hij het nooit
https://github.com/fzaninotto/Fakerquote:Op maandag 12 januari 2015 11:44 schreef Aether het volgende:
Voor als iemand testgegevens nodig heeft:
http://www.generatedata.com/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | CREATE TABLE IF NOT EXISTS `videos` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `site_id` int(10) unsigned NOT NULL, `video_id` varchar(64) NOT NULL, `tags` varchar(255) NOT NULL, `uploaddate` datetime NOT NULL, `title` varchar(255) NOT NULL, `description` text NOT NULL, `thumbnail` varchar(255) NOT NULL, `url` varchar(255) NOT NULL, `embed` varchar(255) NOT NULL, `seconds` int(10) unsigned NOT NULL, `lastview` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `ratingcount` int(10) unsigned NOT NULL, `ratingtotal` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `site_id` (`site_id`), FULLTEXT KEY `tags` (`tags`), FULLTEXT KEY `title` (`title`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7217117 ; |
1 2 | SELECT COUNT( 1 ) FROM (SELECT * FROM `videos` WHERE `tags` LIKE '%home%') t |
Ik heb zelf slechte ervaringen met zoeken in grote tabellen, zowel MyISAM als InnoDB.quote:Op donderdag 15 januari 2015 10:14 schreef Chandler het volgende:
Korte vraag mbt zoeken op grote tabellen.
Voor een vriend mag ik een importeer scriptje schrijven voor het importeren van ruim 7 miljoen videos met oa de volgende gegevens titel, tags, duur
Nu heb ik al een scriptje geschreven die dit alles importeert in een database tabel waarbij ik titel, tags als fulltext indexeer en wil apart daarvan de duur (lengte van het filmpje) ook nog gaan indexeren (zodat de gebruiker daar ook op kan zoeken)
Nu heb ik net een query uitgevoerd op deze tabel en dat duurde echt erg lang
Tabel: 7,217,116 MyISAM latin1_swedish_ci 4,8 GiB
[ code verwijderd ]
Nu duurt de volgende query:
[ code verwijderd ]
erg lang (zo'n 10 seconden).
Met limit 0,30 duurt deze query 0.0240 secs
Is er een mogelijkheid om deze query sneller te maken? eventueel tags in een apart tabel?
Een tijd terug voor het eerst met ElasticSearch gewerkt gaat inderdaad écht bloedsnel. Automatisch aanvullen en suggesties geven snel.quote:Op donderdag 15 januari 2015 13:17 schreef Monolith het volgende:
Zoals echter al aangegeven kun je beter een search platform gebruiken als SOLR, ElasticSearch, Sphinx, etcetera.
Je kunt het iets beter krijgen door geen subquery te gebruiken:quote:Op donderdag 15 januari 2015 10:14 schreef Chandler het volgende:
Nu duurt de volgende query:
[ code verwijderd ]
erg lang (zo'n 10 seconden).
Met limit 0,30 duurt deze query 0.0240 secs
Is er een mogelijkheid om deze query sneller te maken? eventueel tags in een apart tabel?
1 | SELECT COUNT( * ) FROM `videos` WHERE `tags` LIKE '%home%' |
Da's zeker een optie die het overwegen waard is, helemaal omdat het over redelijk grote datasets gaat.quote:Op donderdag 15 januari 2015 13:17 schreef Monolith het volgende:
Zoals echter al aangegeven kun je beter een search platform gebruiken als SOLR, ElasticSearch, Sphinx, etcetera.
Die tags in een aparte tabel opslaan is alvast een stap, mits je de indexes goed zet en gebruikt.quote:Op vrijdag 16 januari 2015 08:05 schreef Chandler het volgende:
Klopt Light!
Echter heeft de hosting waar dit straks moet gaan draaien blijkbaar geen zoekplatformen of de mogelijkheid daarvoor, ik ga eerst eens spelen met tags en kijken hoe ik daar het meeste uit kan halen. Eventueel het tijdelijk opslaan van data sets... zodat hergebruik stukken sneller gaat...
Query:quote:MySQL gaf een lege resultatenset terug (0 rijen). (query duurde 157.0733 sec)
1 2 3 4 5 6 7 | SELECT b . * FROM video_tag_link bt, videos b, tags t WHERE bt.tag_id = t.tag_id AND (t.name IN ('home', 'video')) AND b.id = bt.video_id GROUP BY b.id HAVING COUNT( b.id ) =2 |
Dat kan sneller toch?quote:Showing rows 0 - 29 (213 total, query duurde 51.7825 sec)
Voer de query eens uit met EXPLAIN aan het begin.quote:Op maandag 19 januari 2015 12:08 schreef Chandler het volgende:
ff een queries gespeeld, is niet gemakkelijk zeg (zonder specifieke zoekplatformen, maar moet toch echt wel sneller kunnen).
Showing rows 0 - 29 (213 total, query duurde 51.7825 sec)
Dat kan sneller toch?
quote:Op maandag 19 januari 2015 12:21 schreef Aether het volgende:
[..]
Voer de query eens uit met EXPLAIN aan het begin.
Dan kun je zien waar het beste indices geplaatst kunnen worden.
1 2 3 | 1 SIMPLE t range PRIMARY,name,id name 34 NULL 2 Using index condition; Using temporary; using filesort 1 SIMPLE b ALL PRIMARY NULL NULL NULL 7158720 Using join buffer (Block Nested Loop) 1 SIMPLE bt eq_ref video_id video_id 8 a.b.id,a.t.tag_id 1 Using index |
Ik zal het eens bekijken en uitproberenquote:Op maandag 19 januari 2015 13:13 schreef Monolith het volgende:
Het ziet er in ieder geval uit als een hele kromme query. Gebruik je nou IN en HAVING om enerzijds te selecteren op twee tag names en anderzijds te checken of ze allebei gevonden worden? In dat geval zou ik eens kijken of je middels WHERE EXISTS niet sneller resultaat krijgt.
Bij dezequote:Verder valt er vrij weinig te zeggen over je query zonder de onderliggende db structuur te kennen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | CREATE TABLE IF NOT EXISTS `tags` ( `tag_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL, PRIMARY KEY (`tag_id`), UNIQUE KEY `name` (`name`), KEY `id` (`tag_id`,`name`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=200938 ; CREATE TABLE IF NOT EXISTS `videos` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `tags` varchar(255) NOT NULL, -- tijdelijk voor andere tests (zelfde inhoud als beide andere tabellen) `title` varchar(255) NOT NULL, PRIMARY KEY (`id`), FULLTEXT KEY `tags` (`tags`), FULLTEXT KEY `title` (`title`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7158721 ; CREATE TABLE IF NOT EXISTS `video_tag_link` ( `video_id` int(10) unsigned NOT NULL, `tag_id` int(10) unsigned NOT NULL, UNIQUE KEY `video_id` (`video_id`,`tag_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- 48miljoen records |
Je mist een index in je koppeltabelquote:Op maandag 19 januari 2015 17:09 schreef Chandler het volgende:
[..]
Ik zal het eens bekijken en uitproberen
[..]
Bij deze
[ code verwijderd ]
1 | ALTER TABLE `video_tag_links` ADD INDEX `tag_id` (`tag_id`); |
Er wordt een full table scan gedaan bij een query waar je dat niet verwacht, dus de indices staan niet goed. Dat die full table scan op de video's-tabel wordt gedaan en niet op de koppeltabel, komt omdat die laatste tabel veel groter is (7mln vs 48 mln rijen).quote:Op maandag 19 januari 2015 19:41 schreef Monolith het volgende:
Volgens mij doet hij altijd een query op beide velden in de index, dus zou dat op zich goed moeten gaan. Hoewel het lang geleden is dat ik me in detail met indices in MySQL heb beziggehouden.
Ah, ik had de explain even gemist.quote:Op maandag 19 januari 2015 19:49 schreef Light het volgende:
[..]
Er wordt een full table scan gedaan bij een query waar je dat niet verwacht, dus de indices staan niet goed. Dat die full table scan op de video's-tabel wordt gedaan en niet op de koppeltabel, komt omdat die laatste tabel veel groter is (7mln vs 48 mln rijen).
De tabel waar die regel in staat heeft een foreign key constraint met de unieke naam image_fk. De waarde in de kolom image_id verwijst naar een waarde in de kolom image_id in de tabel image. Je kunt dus geen waarde opslaan die niet ook in image.image_id staat.quote:Op maandag 19 januari 2015 20:18 schreef Chandler het volgende:
-- gelijk een vraagje
Kan iemand mij deze regel uitleggen?
CONSTRAINT `image_fk` FOREIGN KEY (`image_id`) REFERENCES `image` (`image_id`),
1 2 3 | 1 SIMPLE t range PRIMARY,name,id name 34 NULL 2 Using index condition; Using temporary; using filesort 1 SIMPLE bt ref PRIMARY,video_id video_id 4 asexfilmzoeker1.t.id 488020 Using index 1 SIMPLE b eq_ref PRIMARY PRIMARY 4 asexfilmzoeker1.bt.video_id 1 NULL |
1 2 3 4 5 | Actie Sleutelnaam Type Unieke waarde Gecomprimeerd Kolom Kardinaliteit Collatie Leeg Opmerking Wijzigen Wijzigen Verwijderen Verwijderen PRIMARY BTREE Ja Nee video_id A Nee tag_id 48802076 A Nee Wijzigen Wijzigen Verwijderen Verwijderen video_id BTREE Nee Nee tag_id A Nee video_id A Nee |
1 2 3 4 5 | Actie Sleutelnaam Type Unieke waarde Gecomprimeerd Kolom Kardinaliteit Collatie Leeg Opmerking Wijzigen Wijzigen Verwijderen Verwijderen PRIMARY BTREE Ja Nee id 44810 A Nee Wijzigen Wijzigen Verwijderen Verwijderen name BTREE Ja Nee name 44810 A Nee Wijzigen Wijzigen Verwijderen Verwijderen id BTREE Nee Nee id 44810 A Nee name 44810 A Nee |
1 2 3 4 5 | Actie Sleutelnaam Type Unieke waarde Gecomprimeerd Kolom Kardinaliteit Collatie Leeg Opmerking Wijzigen Wijzigen Verwijderen Verwijderen PRIMARY BTREE Ja Nee id 7158720 A Nee Wijzigen Wijzigen Verwijderen Verwijderen seconds BTREE Nee Nee seconds 73801 A Nee Wijzigen Wijzigen Verwijderen Verwijderen tags FULLTEXT Nee Nee tags 1 Nee Wijzigen Wijzigen Verwijderen Verwijderen title FULLTEXT Nee Nee title 1 Nee |
Die staat in mijn 1e quote.quote:Op vrijdag 23 januari 2015 18:47 schreef TwenteFC het volgende:
Een ander type database gebruiken?
Zou je ook eens een explain van je query kunnen posten?
Welke storage engine gebruik je? Heb je bijvoorbeeld al InnoDB geprobeerd?quote:Op vrijdag 23 januari 2015 19:47 schreef Chandler het volgende:
[..]
Die staat in mijn 1e quote.
Het rare is namelijk dat zoeken in tabel videos, veld tags (like %tag%) vele malen sneller is dan het uitlezen van tags tabellen (normaliseren). op dit moment geen mogelijkheid om een andere server/scripts te gebruiken anders dan MySQL.......
Wil wel even een dump maken hoor strip ik alle onnodige informatie, heb je een import sql bestand van 4GB
En waarom zou dat gaan helpen? Zoals al aangegeven is de beste optie om gewoon een fatsoenlijk zoekplatform te gebruiken, maar die mogelijkheid heeft hij niet.quote:Op zaterdag 24 januari 2015 11:47 schreef robin007bond het volgende:
Sowieso MariaDB in plaats van MySQL
Het was meer een zijspoor. Niet echt relevant aan zijn probleem.quote:Op zaterdag 24 januari 2015 11:58 schreef Monolith het volgende:
[..]
En waarom zou dat gaan helpen? Zoals al aangegeven is de beste optie om gewoon een fatsoenlijk zoekplatform te gebruiken, maar die mogelijkheid heeft hij niet.
1 2 3 4 5 6 7 8 | explain SELECT * FROM videos o LEFT OUTER JOIN video_tag_link ot ON ot.video_id = o.id LEFT OUTER JOIN tags t ON t.tag_id = ot.tag_id WHERE t.name IN ('home','alone') GROUP BY o.id HAVING COUNT(DISTINCT t.name) = 2 |
ook met SQL_NO_CACHE ?quote:Op zaterdag 24 januari 2015 13:28 schreef Chandler het volgende:
Jeej,
Volgende query doet het best
[ code verwijderd ]
Doet ook aan filesort maar vind in totaal 5638 resultaten in ruim 1 seconde...
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Just say hi!
Inmiddels een workaround gevonden, nu blijf ik weer hangen bij de melding "Notice: Array to string conversion". Als iemand dat bekend voor komt, laat even weten hoe je dat hebt opgelostquote:Op zondag 25 januari 2015 00:10 schreef henrivo het volgende:
Jeuw. Symfony2 kenners hier?
Wanneer ik form_row a en b oproep in een view, worden direct eronder ook meteen form_row c en d weergegeven. Terwijl ik die niet wil laten zien in die view.
{{ form_start(form) }}
{{ form_row(form.a) }}
{{ form_row(form.b) }}
{{ form_end(form) }}
Even als voorbeeldje hoe ik het heb
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
quote:Op zondag 25 januari 2015 11:09 schreef henrivo het volgende:
[..]
Inmiddels een workaround gevonden, nu blijf ik weer hangen bij de melding "Notice: Array to string conversion". Als iemand dat bekend voor komt, laat even weten hoe je dat hebt opgelostDat komt door de regel:SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.De documentatie schrijft voor:
1 {{ form_end{form) }} Array to string conversion notice komt simpelweg doordat je ergens een array als argument meegeeft terwijl er een string wordt verwacht (zonder code gaan wij niet kunnen uitvinden waar dat vandaan komt).quote:form_end()
Renders the end tag of the form and any fields that have not yet been rendered, in case you rendered each field yourself. This is useful for rendering hidden fields and taking advantage of the automatic CSRF Protection.
Helemaal overheen gelezen, domdomdomquote:Op zondag 25 januari 2015 17:59 schreef Diabox het volgende:
[..]
Dat komt door de regel:
[ code verwijderd ]
Zo ver was ik al Ik duik vanavond nog eens in de code, als ik er niet uit kom plemp ik de hele zooi hier evenquote:De documentatie schrijft voor:
[..]
Array to string conversion notice komt simpelweg doordat je ergens een array als argument meegeeft terwijl er een string wordt verwacht (zonder code gaan wij niet kunnen uitvinden waar dat vandaan komt).
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Nee, want MySQL is totaal niet de plaats om allerlei logica in te gaan dumpen.quote:Op donderdag 29 januari 2015 23:52 schreef TwenteFC het volgende:
Gewoon omdat ik het hier eigenlijk nooit voorbij zie komen,
maar wie hier gebruikt er wel eens op regelmatige basis triggers, functies en dergelijke in mysql?
Soms kan het vanuit performance oogpunt handig zijn. Zeker ORM is lang niet altijd optimaal efficiënt. Nou merk je dat bij een gemiddeld websiteje niet, maar als het om wat grootschaligere applicaties gaat, dan zijn dat soort zaken wat belangrijker.quote:Op vrijdag 30 januari 2015 13:16 schreef Intrepidity het volgende:
[..]
Nee, want MySQL is totaal niet de plaats om allerlei logica in te gaan dumpen.
15 is imo te weinig, ik zit daar een paar euro boven met 6 jaar ervaring. Het werk is op HBO niveau maar ik ben er tussen gerold met een MBO4 diploma.quote:Op zaterdag 31 januari 2015 01:43 schreef Diabox het volgende:
Botte vraag en niet geheel on-topic (maar hier redelijke kans op antwoorden): wat verdienen jullie ongeveer als webprogrammeur? Ik heb een salarisaanbod gekregen die ik maar moeilijk kan plaatsen. Ik heb bijna 4 jaar professionele werkervaring als web developer, en heb daarnaast een BSc en MSc (informatica en SE); 15 eu p/u. Leek mij niet in verhouding met mijn ervaring en opleidingen (werk momenteel daar op freelance basis voor een veelvoud van dat bedrag).
nou dat 'crisis'-verhaal gaat echt niet in elke sector op hoor. Ik ben twee jaar geleden geswitched van werkgever en had gewoon keuze... En wij willen op het werk al geruime tijd en goede programmeur erbij maar die zijn heel lastig te vindenquote:Op zaterdag 31 januari 2015 06:16 schreef Iwanius het volgende:
Anderzijds moet Diabox ook rekening houden dat in deze tijd het hebben van een vaste baan ook wel een lekker zekerheidje is want wil jij niet, dan neemt men met gemak (gezien het gigantische aanbod van werklozen in alle sectoren) een ander.
Mijn bijbaan als touringcarchauffeur op MBO4 niveau heeft dat zo ongeveer als minimum (bruto)quote:Op zaterdag 31 januari 2015 01:43 schreef Diabox het volgende:
Botte vraag en niet geheel on-topic (maar hier redelijke kans op antwoorden): wat verdienen jullie ongeveer als webprogrammeur? Ik heb een salarisaanbod gekregen die ik maar moeilijk kan plaatsen. Ik heb bijna 4 jaar professionele werkervaring als web developer, en heb daarnaast een BSc en MSc (informatica en SE); 15 eu p/u. Leek mij niet in verhouding met mijn ervaring en opleidingen (werk momenteel daar op freelance basis voor een veelvoud van dat bedrag).
Ik krijg toch echt wekelijks vele aanbiedingen. Dat is wel voornamelijk in de Java hoek.quote:Op zaterdag 31 januari 2015 06:16 schreef Iwanius het volgende:
Anderzijds moet Diabox ook rekening houden dat in deze tijd het hebben van een vaste baan ook wel een lekker zekerheidje is want wil jij niet, dan neemt men met gemak (gezien het gigantische aanbod van werklozen in alle sectoren) een ander.
Ik moet de eerste werkloze programmeur nog tegenkomen, hoor.quote:Op zaterdag 31 januari 2015 06:16 schreef Iwanius het volgende:
Anderzijds moet Diabox ook rekening houden dat in deze tijd het hebben van een vaste baan ook wel een lekker zekerheidje is want wil jij niet, dan neemt men met gemak (gezien het gigantische aanbod van werklozen in alle sectoren) een ander.
Ik zit met ~7 jaar (parttime @ ~20 uur per week) ervaring op ongeveer 13 euro per uur op 0 uren basis en zonder vakantiedagen ed.quote:Op zaterdag 31 januari 2015 02:04 schreef bondage het volgende:
15 is imo te weinig, ik zit daar een paar euro boven met 6 jaar ervaring. Het werk is op HBO niveau maar ik ben er tussen gerold met een MBO4 diploma.
Zijn dat vaste banen die je aangeboden krijgt?quote:Op zaterdag 31 januari 2015 10:52 schreef Monolith het volgende:
[..]
Ik krijg toch echt wekelijks vele aanbiedingen. Dat is wel voornamelijk in de Java hoek.
Yep. Dan moet je natuurlijk nog wel een sollicitatieprocedure door, maar toch.quote:Op zaterdag 31 januari 2015 11:23 schreef Robuustheid het volgende:
[..]
Zijn dat vaste banen die je aangeboden krijgt?
Die worden er tegenwoordig gelukkig wel vrij snel uitgegooid Heb bij het huidige bedrijf waar ik zit al een handvol programmeurs de proeftijd niet zien overleven omdat ze er niks van bakten of stukken script gingen copy-pasten van random sites .quote:Op zaterdag 31 januari 2015 11:53 schreef Tijn het volgende:
Er zijn misschien meer PHP en front-enders, maar een groot deel daarvan is tamelijk clueless en zijn eigenlijk meer hobbyisten dan serieuze programmeurs.
Inderdaad, de prutsers vallen toch vrij snel door de mand. Als wij bij de sollicitatie twijfelen over het niveau laten we ze een kleine opdracht doen. En anders heb je inderdaad de proeftijd nog...quote:Op zaterdag 31 januari 2015 11:57 schreef CrashO het volgende:
[..]
Die worden er tegenwoordig gelukkig wel vrij snel uitgegooid Heb bij het huidige bedrijf waar ik zit al een handvol programmeurs de proeftijd niet zien overleven omdat ze er niks van bakten of stukken script gingen copy-pasten van random sites .
Oh zeker, ik heb ook wel wat werk in die hoek gedaan en heel vaak was het echt huilen met de pet op. Het verschil tussen de Java community en de PHP community is qua professionaliteit sowieso wel aanzienlijk hoor.quote:Op zaterdag 31 januari 2015 11:53 schreef Tijn het volgende:
Er zijn misschien meer PHP en front-enders, maar een groot deel daarvan is tamelijk clueless en zijn eigenlijk meer hobbyisten dan serieuze programmeurs.
Dat is echt weinig Ik heb vorige week mijn beoordeling gehad en mijn manager zit eraan te denken om mij nog een schaal hoger te zetten. Voor 13 euro per uur zou ik het denk ik niet eens doen, tenzij ik echt desperate ben en niets anders kan vinden.quote:Op zaterdag 31 januari 2015 11:12 schreef CrashO het volgende:
[..]
Ik zit met ~7 jaar (parttime @ ~20 uur per week) ervaring op ongeveer 13 euro per uur op 0 uren basis en zonder vakantiedagen ed.
Toch maar eens babbelen met de baas
Nu ik erover nadenk, ik verdiende als systeembeheer-sjappie in 2007, 50 cent meer dan dat ik nu doe Als was dat (en is me huidige dat ook) wel een bijbaan.
Maar dat zorgt er dus ook wel voor dat de schaarste in die hoek groter is dan-ie lijkt. Een PHP'er vinden is niet zo'n probleem. Een goede vinden daarentegen...quote:Op zaterdag 31 januari 2015 12:04 schreef Monolith het volgende:
[..]
Oh zeker, ik heb ook wel wat werk in die hoek gedaan en heel vaak was het echt huilen met de pet op. Het verschil tussen de Java community en de PHP community is qua professionaliteit sowieso wel aanzienlijk hoor.
Nou, wat betalen jullie?quote:Op zaterdag 31 januari 2015 09:32 schreef Rockfire het volgende:
[..]
nou dat 'crisis'-verhaal gaat echt niet in elke sector op hoor. Ik ben twee jaar geleden geswitched van werkgever en had gewoon keuze... En wij willen op het werk al geruime tijd en goede programmeur erbij maar die zijn heel lastig te vinden
Echt veel is het niet inderdaad, maar reken ik het om naar fulltime dan kom je toch op zo'n 2200 euro per maand. Niet echt goed, maar het is geen minimumloon oid. Geld is geldquote:Op zaterdag 31 januari 2015 12:08 schreef bondage het volgende:
Voor 13 euro per uur zou ik het denk ik niet eens doen, tenzij ik echt desperate ben en niets anders kan vinden.
Ik verdien (met bijna 10 jaar werkervaring en HBO + WO opleiding) in ieder geval wel ruim meer dan die 15 euro per uur Maar woon je in de buurt van Hilversum? Dan zou een gesprek zeker tot de mogelijkheden behorenquote:
Mwoah, ook binnen die hoek is er een enorme differentiatie. Java kent ook een vele malen breder ecosysteem dan PHP, wat hoofdzakelijk web development is, met daardoor ook vele malen meer specialisaties als zoekplatformen, webapplicaties, ESBs, Android apps, enzovoort.quote:Op zaterdag 31 januari 2015 12:08 schreef Tijn het volgende:
[..]
Maar dat zorgt er dus ook wel voor dat de schaarste in die hoek groter is dan-ie lijkt. Een PHP'er vinden is niet zo'n probleem. Een goede vinden daarentegen...
Verschil is ook wel dat Java er bij iedere informatica opleiding ingebeukt wordt (de basis althans). En php alleen bij wat media-achtige opleidingen als soort van mini-cursus door een docent zonder enige vorm van kennis. Waardoor je bij php voornamelijk 2 groepen hebt, hobbyisten zonder diepe kennis die maar wat aankloten en de autodidacten die (fatsoenlijke) literatuur lezen en zichzelf naar knap niveau werken. En laat nou net die laatste groep relatief klein zijnquote:Op zaterdag 31 januari 2015 12:16 schreef Monolith het volgende:
Maar ik ben het inderdaad met je eens dat een goede PHP developer vinden vrij lastig is. In het gros van de gevallen ontbreekt ook gewoon het echte begrip van de taal. Iets dat zeker met de relatief beroerde implementatie van PHP vrij belangrijk is.
Heb je ook extra voordelen zoals een laptop en mobiel van de zaak?quote:Op zaterdag 31 januari 2015 12:13 schreef CrashO het volgende:
[..]
Echt veel is het niet inderdaad, maar reken ik het om naar fulltime dan kom je toch op zo'n 2200 euro per maand. Niet echt goed, maar het is geen minimumloon oid. Geld is geld
Er zijn helaas niet veel bedrijven die part-time programmeurs aannemen.
Nope, helemaal niks Lunch in eigen tijd, geen vakantiedagen en geen andere voordeeltjes.quote:Op zaterdag 31 januari 2015 12:27 schreef bondage het volgende:
Heb je ook extra voordelen zoals een laptop en mobiel van de zaak?
Mja, maar in principe stelt PHP met Java ervaring niet zo gek veel voor. Het hele OO-gedeelte is toch grotendeels gejat bij / geïnspireerd door Java. Ook veel PHP frameworks hebben wel aardig leentjebuur gespeeld bij Spring, Hibernate, enzovoort.quote:Op zaterdag 31 januari 2015 12:24 schreef CrashO het volgende:
[..]
Verschil is ook wel dat Java er bij iedere informatica opleiding ingebeukt wordt (de basis althans). En php alleen bij wat media-achtige opleidingen als soort van mini-cursus door een docent zonder enige vorm van kennis. Waardoor je bij php voornamelijk 2 groepen hebt, hobbyisten zonder diepe kennis die maar wat aankloten en de autodidacten die (fatsoenlijke) literatuur lezen en zichzelf naar knap niveau werken. En laat nou net die laatste groep relatief klein zijn
Dus eigenlijk mag je van geluk spreken dat je nog een baan hebt... Aan de andere kant, als je er inmiddels 4 jaar werkt mag je imo wel wat hoger zitten qua loon. Of je moet al een echte klaploper zijn die een beetje aan het knutselen is maar dat is waarschijnlijk niet het gevalquote:Op zaterdag 31 januari 2015 12:30 schreef CrashO het volgende:
[..]
Nope, helemaal niks Lunch in eigen tijd, geen vakantiedagen en geen andere voordeeltjes.
't is wel een klein bedrijfje trouwens. Toen ik er 4 jaar geleden begon was er de baas (zelf ook programmeur) en een designer. Dit heb ik sindsdien zien groeien naar zo'n 15 man totaal en weer zien krimpen tot de huidige situatie waarin ik de enige werknemer ben naast de baas Ik doe alles zelf, contact met klanten, ontwerp, uitrol, etc.
Zou kunnen, hehe. Maar nadat het bedrijf in november 2013 over de kop ging mocht ik als enige terug komen bij de nieuwe zaak. Dus ik denk dat ik iets goed doequote:Op zaterdag 31 januari 2015 12:36 schreef bondage het volgende:
Of je moet al een echte klaploper zijn die een beetje aan het knutselen is maar dat is waarschijnlijk niet het geval
Blijkbaar doe je het goed. Ik had ook niet verwacht dat mijn manager zo over mij te spreken zou zijn, is toch een mooi compliment en zet me aan om nog beter te worden.quote:Op zaterdag 31 januari 2015 12:38 schreef CrashO het volgende:
[..]
Zou kunnen, hehe. Maar nadat het bedrijf in november 2013 over de kop ging mocht ik als enige terug komen bij de nieuwe zaak. Dus ik denk dat ik iets goed doe
Maar inderdaad, een baan is een baan in deze tijden.
Nope, helaas wat te ver rijden.quote:Op zaterdag 31 januari 2015 12:15 schreef Rockfire het volgende:
[..]
Ik verdien (met bijna 10 jaar werkervaring en HBO + WO opleiding) in ieder geval wel ruim meer dan die 15 euro per uur Maar woon je in de buurt van Hilversum? Dan zou een gesprek zeker tot de mogelijkheden behoren
Ik ben momenteel bezig om de PHP codebase van het bedrijf in kwestie te refactoren. Alles is full-potato geprogrammeerd in gigantische bestanden met bergen if-statements en PHP, queries en HTML alles doorelkaar heen (>100k regels).quote:Op zaterdag 31 januari 2015 12:34 schreef Monolith het volgende:
[..]
Mja, maar in principe stelt PHP met Java ervaring niet zo gek veel voor. Het hele OO-gedeelte is toch grotendeels gejat bij / geïnspireerd door Java. Ook veel PHP frameworks hebben wel aardig leentjebuur gespeeld bij Spring, Hibernate, enzovoort.
Andersom wordt het een ander verhaal. Alleen al iets als basaals threading is vaak een hele pittige kluif voor mensen die die stap maken.
Ik ben het wel met je eens dat er veel baggeraanbod is op de PHP markt. Een collega van me mocht onlangs nog even de PHP codebase gaan doorspitten van de applicatie van een aangekocht bedrijfje. Daar kwam vrij veel gevloek bij kijken.
Zo erg was het ook weer niet. Maar als je professionele Enterprise architecturen gewend bent, is de gemiddelde PHP applicatie echt om te huilen.quote:Op zaterdag 31 januari 2015 14:02 schreef Diabox het volgende:
[..]
Nope, helaas wat te ver rijden.
[..]
Ik ben momenteel bezig om de PHP codebase van het bedrijf in kwestie te refactoren. Alles is full-potato geprogrammeerd in gigantische bestanden met bergen if-statements en PHP, queries en HTML alles doorelkaar heen (>100k regels).
Herkenbaarquote:Op zaterdag 31 januari 2015 14:02 schreef Diabox het volgende:
Ik ben momenteel bezig om de PHP codebase van het bedrijf in kwestie te refactoren. Alles is full-potato geprogrammeerd in gigantische bestanden met bergen if-statements en PHP, queries en HTML alles doorelkaar heen (>100k regels).
1 | $jh->execute->sendToFront->jquery()->('#targetDiv')->slideUp('slow'); |
1 | $jh->execute->sendToFront->jquery()->('#targetButton')->click(function() { alert('hoi'); }); |
Er zijn wel frameworks als GWT waarbij je enkel Java voor schrijft, ook voor het front end gedeelte. Wel XML templates voor de HTML. Vervolgens wordt de JS gewoon gegenereerd, evenals alle Ajax calls e.d.quote:Op zaterdag 31 januari 2015 15:31 schreef CrashO het volgende:
[..]
Herkenbaar
Al heb ik zelf ook een keer meegedaan. Leek toen der tijd een goed idee om alles overzichtelijk bij elkaar te houden in 1 taal. Dus had een helper geschreven zodat ik alle jquery kon produceren in php.. Nader inzien werd dat uiteraard 1 onleesbare lap code. Controllers vol met jquery in php.
[ code verwijderd ]
of gewoon een hele functie erin duwen
[ code verwijderd ]
Dat soort constructies werden mogelijk (stond een actieve thread op de voorkant te checken bij de server). Eigenlijk wel nekschot waardig
* Was voor een boekhoud ding die volledig in de front-end draaide. Alles werd zonder reloads ingeladen met een stel achtergrond threads. Dus dit "leek" een goed idee om dingen bij users die al 8 uur de boel open hadden staan aan te kunnen passen
- Encoding van het bestand: UTF-8 without BOM (Notepad++)quote:<meta charset="utf-8">
Dit toegevoegd aan 'new PDO()' en het werkt nu goed.quote:array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
Al een kijkje genomen in je locale van PHP?quote:Op zaterdag 31 januari 2015 18:14 schreef zarGon het volgende:
Hngg. Turkse karakters worden niet correct weergegeven in de browser...
- PHP-bestand met dit erin:
[..]
- Encoding van het bestand: UTF-8 without BOM (Notepad++)
- Collation van MariaDB-database en -tabellen: utf8_turkish_ci
- Browser: Firefox (/IE)
Ik krijg het gewoon niet voor elkaar om de Turkse karakters zoals ç en ş correct weer te geven... Iemand een idee waar ik moet kijken/wat ik moet veranderen?
Edit:
[..]
Dit toegevoegd aan 'new PDO()' en het werkt nu goed.
ik zou zorgen dat zowel php, mysql als de connectie tussen php<>mysql utf-8 als character set heeft.. dan kan je volgens mij gewoon die exacte naam in een insert query, zonder dingen als htmlspecialchars, gooien..quote:Op maandag 2 februari 2015 01:49 schreef qu63 het volgende:
Ok, echte Dummie-vraag:
Hoe sla ik een naam als "Lasse Hallström" het beste op in mijn database? htmlspecialchars()? htmlentities()?
En hoe geef ik het dan weer leesbaar weer? htmlspecialchars_decode()? Iets anders?
En hoe kan ik die naam invoegen in een url? dus "bla.php?search=Lasse Hallström"
Lasse Hallström
Ga ik daar eens naar kijkenquote:Op maandag 2 februari 2015 02:01 schreef mschol het volgende:
[..]
ik zou zorgen dat zowel php, mysql als de connectie tussen php<>mysql utf-8 als character set heeft.. dan kan je volgens mij gewoon die exacte naam in een insert query, zonder dingen als htmlspecialchars, gooien..
Gelukkig draait mijn host oude versie van zowel php als mysqlquote:maar het is nogal een tijd geleden dat ik gebruik heb gemaakt van php/mysql, dus wellicht zijn er weer wijzigingen geweest..
quote:Op maandag 2 februari 2015 09:11 schreef Intrepidity het volgende:
We kunnen allemaal wel haten op de API van PHP, maar toch mogen we van geluk spreken dat er ook nog front-enders zijn om de javascript te schrijven
[ afbeelding ]
1 2 3 4 5 | alert('' == '0'); //false alert(0 == ''); // true alert(0 =='0'); // true ~~4.5 = 4 |
Javascript is inderdaad zo ongeveer ook de enige taal die bijna net zo beroerd in elkaar steekt als PHP.quote:Op maandag 2 februari 2015 09:11 schreef Intrepidity het volgende:
We kunnen allemaal wel haten op de API van PHP, maar toch mogen we van geluk spreken dat er ook nog front-enders zijn om de javascript te schrijven
[ afbeelding ]
Uiteindelijk is Javascript de enige programmeertaal die je kunt gebruiken in de browser. Dus of je nou wil of niet, als je iets maakt dat in browsers moet draaien, kun je je maar beter in Javascript verdiepen.quote:Op maandag 2 februari 2015 11:29 schreef Monolith het volgende:
Je hebt ook ongeveer 0,0 serieuze alternatieven voor Javascript.
Het enige wat je nog kunt doen is gebruik maken van talen of Frameworks die compileren naar Javascript. Ik haalde eerder al GWT aan, waarbij je gewoon code in Java ontwikkelt (met alle voordelen van een fatsoenlijke taal) en die vervolgens gecompileerd wordt tot Javascript.quote:Op maandag 2 februari 2015 11:33 schreef Tijn het volgende:
[..]
Uiteindelijk is Javascript de enige programmeertaal die je kunt gebruiken in de browser. Dus of je nou wil of niet, als je iets maakt dat in browsers moet draaien, kun je je maar beter in Javascript verdiepen.
Iets waarvan veel programmeurs denken dat het niet nodig is trouwens, omdat ze denken dat ze de taal zo wel snappen omdat de syntax ze bekend voorkomt.
Hey, zit jij ook al op phpnl slack.?quote:Op maandag 2 februari 2015 09:11 schreef Intrepidity het volgende:
We kunnen allemaal wel haten op de API van PHP, maar toch mogen we van geluk spreken dat er ook nog front-enders zijn om de javascript te schrijven
[ afbeelding ]
Ja, je hebt wel meer van dat soort vertalers, ook voor andere talen zoals Perl, Ruby en C# (zelfs PHP trouwens ). Verder heb je nog nieuwe talen die compilen naar Javascript, zoals Coffeescript of Dart.quote:Op maandag 2 februari 2015 11:39 schreef Monolith het volgende:
[..]
Het enige wat je nog kunt doen is gebruik maken van talen of Frameworks die compileren naar Javascript. Ik haalde eerder al GWT aan, waarbij je gewoon code in Java ontwikkelt (met alle voordelen van een fatsoenlijke taal) en die vervolgens gecompileerd wordt tot Javascript.
Mja, er zitten wel behoorlijke voordelen aan hoor. GWT is best geavanceerd, dus je kunt ook echt je Java code (die eigenlijk naar Javascript gecompileerd is) debuggen in je IDE. Wat een heel stuk prettiger werkt dan JS debuggen in browsers en aanverwante tooltjes.quote:Op maandag 2 februari 2015 11:47 schreef Tijn het volgende:
[..]
Ja, je hebt wel meer van dat soort vertalers, ook voor andere talen zoals Perl, Ruby en C#. Verder heb je nog nieuwe talen die compilen naar Javascript, zoals Coffeescript of Dart.
Maar persoonlijk schrijf ik liever de code die daadwerkelijk bij de client wordt uitgevoerd dan het via zo'n vertalingslaag te doen.
Mja, ik ben meer een hacker dan een enterprise figuur. Ik zie niet echt het voordeel van strong typing om eerlijk te zijnquote:Op maandag 2 februari 2015 11:51 schreef Monolith het volgende:
[..]
Mja, er zitten wel behoorlijke voordelen aan hoor. GWT is best geavanceerd, dus je kunt ook echt je Java code (die eigenlijk naar Javascript gecompileerd is) debuggen in je IDE. Wat een heel stuk prettiger werkt dan JS debuggen in browsers en aanverwante tooltjes.
Daarnaast heb ik ook nog wel Google Closure gebruikt. Dan schrijf je nog wel steeds javascript, maar heb je wel allerhande annotations om private / public access te checken, 'strong typing' te hanteren, enzovoort.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var myObject = (function() { var privateVar = 'is een baas'; var privateMethod = function() { return 'super secret'; } return { publicVar: 'Tijn', publicMethod: function() { return this.publicVar + ' ' + privateVar; }, anotherMethod: function() { return 'The password is: ' + privateMethod(); } } }()); |
Een heel belangrijk voordeel van strong typing is dat je al die ellende met het optellen van strings en ints / doubles enzovoort door elkaar die hier net voorbij kwam niet hebt.quote:Op maandag 2 februari 2015 12:01 schreef Tijn het volgende:
[..]
Mja, ik ben meer een hacker dan een enterprise figuur. Ik zie niet echt het voordeel van strong typing om eerlijk te zijn
Ik weet dat het in Javascript kan hoor, maar het is omslachtig. Met @private / @public annotations is het een stuk eleganter. Belangrijker nog, vaak heb je door dat soort frameworks ook IDE ondersteuning (al dan niet via een plug-in) waarmee je terwijl je aan het developen bent al kunt zien of je ergens een fout maakt.quote:Private / public variabelen en methods kun je ook gewoon zo in Javascript maken, daar heb je niks speciaals voor nodig:
[ code verwijderd ]
Ik gebruik nu (voor kleinere projecten) af en toe TypeScript waarmee o.a. beter op typen kan worden gecontroleerd. Vooral de laatste versie 1.4 biedt veel nieuwe opties.quote:Op maandag 2 februari 2015 12:01 schreef Tijn het volgende:
[..]
Mja, ik ben meer een hacker dan een enterprise figuur. Ik zie niet echt het voordeel van strong typing om eerlijk te zijn
Private / public variabelen en methods kun je ook gewoon zo in Javascript maken, daar heb je niks speciaals voor nodig:
[ code verwijderd ]
1 2 3 4 5 6 | SELECT SQL_NO_CACHE `video_id` FROM `video_tag_link` WHERE `tag_id` IN ('2721','245') GROUP BY `video_id` HAVING COUNT(`video_id`) = 2 LIMIT 0, 20 |
1 2 3 4 5 6 7 8 9 10 | id = 1 select_type = SIMPLE table = video_tag_link type = range possible_keys = PRIMARY,video_id key = video_id key_len = 4 ref = NULL rows = 8903 exta = Using where; Using index; Using temporary; Using filesort |
Heb je een gecombineerde index op tag_id en video_id?quote:Op maandag 16 februari 2015 11:51 schreef Chandler het volgende:
Nee, maar ff geprobeerd en helaas, same result..
Mag ik vragen waarom je trouwens een group by video_id doet?quote:Op maandag 16 februari 2015 11:51 schreef Chandler het volgende:
Nee, maar ff geprobeerd en helaas, same result..
Een having clause zonder Group By wordt wat lastig. Zoals ik z'n query lees wil hij de ID's vinden van video's die beide tags uit de where clause hebben, vandaar de count=2.quote:Op maandag 16 februari 2015 13:24 schreef raptorix het volgende:
[..]
Mag ik vragen waarom je trouwens een group by video_id doet?
Doe je dit om er voor te zorgen dat je geen dubbele items krijgt?
Ja dat snap ikquote:Op maandag 16 februari 2015 14:32 schreef Monolith het volgende:
[..]
Een having clause zonder Group By wordt wat lastig. Zoals ik z'n query lees wil hij de ID's vinden van video's die beide tags uit de where clause hebben, vandaar de count=2.
Het zijn mij echter iets te veel fragmentjes informatie verspreid over deze reeks om nou echt een advies te kunnen geven over wat hij het best kan doen.
Misschien een hele domme tip, maar zou je eens voor de grap het IN statement voor een exacte match kunnen vervangen? "IN" kan soms nogal evil zijn. Ik ben geen MySql expert dus kan het mishebben.quote:Op maandag 16 februari 2015 11:51 schreef Chandler het volgende:
Nee, maar ff geprobeerd en helaas, same result..
Yup! en zelfs 1tje op video_id en tag_id.quote:Op maandag 16 februari 2015 12:27 schreef Aether het volgende:
Heb je een gecombineerde index op tag_id en video_id?
Preciesquote:Op maandag 16 februari 2015 14:32 schreef Monolith het volgende:
Een having clause zonder Group By wordt wat lastig. Zoals ik z'n query lees wil hij de ID's vinden van video's die beide tags uit de where clause hebben, vandaar de count=2.
Wat mis je dan aan informatie? mijn tabel opzet? video_id int, tag_id int en daarop een unique en 1 extra qua index voor tag_id/video_idquote:Het zijn mij echter iets te veel fragmentjes informatie verspreid over deze reeks om nou echt een advies te kunnen geven over wat hij het best kan doen.
Omdat ik er vanuit ging dat deze daar voor bedoeld waren.quote:Op maandag 16 februari 2015 14:46 schreef raptorix het volgende:
Ja dat snap ik
Bedoelde meer waarom hij daar een aggregate functie voor gebruikt, zijn over algemeen dure queries vandaar.
Klopt, heb nu even deze query getestquote:Op maandag 16 februari 2015 14:52 schreef raptorix het volgende:
Misschien een hele domme tip, maar zou je eens voor de grap het IN statement voor een exacte match kunnen vervangen? "IN" kan soms nogal evil zijn. Ik ben geen MySql expert dus kan het mishebben.
1 2 3 4 5 6 | explain SELECT SQL_NO_CACHE `video_id` FROM `video_tag_link` WHERE `tag_id` = 2721 OR `tag_id` = 245 GROUP BY `video_id` HAVING COUNT(`video_id`) = 2 LIMIT 0, 20 |
Nee ik heb geen index op video_id an sich... ga dat eens proberen..quote:Op maandag 16 februari 2015 16:26 schreef Monolith het volgende:
Als ik je goed begrijp heb je geen index op video_id an sich? Dat lijkt me dan sowieso een probleem aangezien je een group by op video_id hanteert.
Als je die wel hebt, dan kun je nog eens kijken of je met FORCE INDEX wel het gebruik kan forceren.
Het is een zeer variabel aantal, kan ook 1 zijn maar ook 8?!quote:Wat ik vooral bedoelde aan ontbrekende informatie is ook de use case. Je hebt hier nu bijvoorbeeld een voorbeeldje met twee tag_ids. Is dat altijd zo? Of is dat een variabel aantal?
Volgens mij heeft een index geen zin op een integer, maar daar twijfel ik even over, of dat puur op numeriek is of een autoID (bestaat dat in MySql?)quote:Op maandag 16 februari 2015 16:26 schreef Monolith het volgende:
Als ik je goed begrijp heb je geen index op video_id an sich? Dat lijkt me dan sowieso een probleem aangezien je een group by op video_id hanteert.
Als je die wel hebt, dan kun je nog eens kijken of je met FORCE INDEX wel het gebruik kan forceren.
Wat ik vooral bedoelde aan ontbrekende informatie is ook de use case. Je hebt hier nu bijvoorbeeld een voorbeeldje met twee tag_ids. Is dat altijd zo? Of is dat een variabel aantal?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |