Waarin is het geschreven? Toch niet een "eigen" php framework? want dan kan je de hele zooi wegtiefen en iemand anders vragen etc.quote:Op woensdag 25 mei 2016 23:05 schreef djkoelkast het volgende:
Omdat het topic bijna vol was nog geen reacties op mijn oproep, dus nog een poging:
Ik ben al een hele tijd bezig een systeem van de grond te krijgen waar ik als verzamelaar van oude tv-beelden samen met een groepje collegaverzamelaars onze collectie kan bijhouden.
De basis van het systeem is door iemand gebouwd, die later van de radar is verdwenen helaas.
Vervolgens was er iemand anders die het zou oppakken, maar die had ook minder tijd dan verwacht.
Ik weet wat ik vraag, het is hobby, dus ik heb geen budget. Ik kan wel in ruil iets doen waar ik goed in ben: video digitaliseren, videobewerking, voice-overwerk, mixen/remixen dat soort dingen.
Hier zijn wat plaatjes van hoe het nu is:
[ afbeelding ]
[ afbeelding ]
Het werkt alleen nog niet helemaal en het is nog lang niet af. Ik hoop dat iemand zin heeft hier in te helpen. Uiteraard mag je het systeem meenemen in je portfolio.
php/mysql/smartyquote:Op donderdag 26 mei 2016 11:43 schreef cablegunmaster het volgende:
[..]
Waarin is het geschreven? Toch niet een "eigen" php framework? want dan kan je de hele zooi wegtiefen en iemand anders vragen etc.
DIG / [HTML, CSS, JS] Frontend #45: topic nummer++quote:Op donderdag 26 mei 2016 11:43 schreef cablegunmaster het volgende:
Daarnaast is er nog een JS topic of is dat ook al helemaal weg? ik zag het laatste deel 11 was maar geen animo meer.
Doe eens een printscreen van de root dir van het project?quote:Op donderdag 26 mei 2016 12:22 schreef djkoelkast het volgende:
[..]
php/mysql/smarty
Of er verder nog iets is gebruikt weet ik niet, dan moet je even zeggen hoe ik dat vind.
quote:Op donderdag 26 mei 2016 13:54 schreef Sitethief het volgende:
[..]
Doe eens een printscreen van de root dir van het project?
Er is geen jullie, er is alleen ik.quote:Op donderdag 26 mei 2016 16:21 schreef ViPeRII het volgende:
En hebben jullie al duidelijk dan wat het zou moeten kunnen en waar dat afwijkt met wat het nu kan?
Plaatje van de root geeft niet veel hoop aangezien er geen framework gebruikt is maar dat het zelf geschreven is
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 | <?php $band_id = (isset($_GET["band_id"])) ? $_GET["band_id"] : 0; if($band_id > 0){ $band_fragmenten = $fragmenten->getFragmenten($band_id); //Aanvullen tot eventueel 10 rijen for($i=count($band_fragmenten);$i < 10; $i++){ $band_fragmenten[$i] = array(); $band_fragmenten[$i]["fragment_id"] = ""; $band_fragmenten[$i]["band_id"] = 14; $band_fragmenten[$i]["start"] = ""; $band_fragmenten[$i]["einde"] = ""; $band_fragmenten[$i]["omschrijving"] = ""; $band_fragmenten[$i]["is_compleet"] = 0; $band_fragmenten[$i]["is_gecapt"] = 0; $band_fragmenten[$i]["is_stereo"] = 0; $band_fragmenten[$i]["komt_onder"] = 0; $band_fragmenten[$i]["is_onkijkbaar"] = 0; $band_fragmenten[$i]["is_storing"] = 0; } $smarty->assign("band_fragmenten", $band_fragmenten); } ?> |
Ja de anderen die er gebruik van gaan maken hebben alleen verder geen input (over het bouwen, natuurlijk wel data die ze gaan vullen), die mogen het systeem ook gebruikenquote:Op donderdag 26 mei 2016 16:43 schreef ViPeRII het volgende:
JE had het over collega verzamelaars die ook bijdrage moeten kunnen leveren, vandaar dat ik de vraag stelde of er een pakket van eisen is.
Aan de hand van het stukje code kan ik in ieder geval vaststellen dat het niet fantastisch in elkaar gezet is, maar goed..
Omschrijf eens heel duidelijk in één post en desnoods met zelf getekende schermontwerpen wat je wil bereiken wel welke regels waar van kracht zijn. (Zoals wat je bijvoorbeeld over de gast/gebruiker/admin beschreef)quote:Op donderdag 26 mei 2016 16:31 schreef djkoelkast het volgende:
[..]
Er is geen jullie, er is alleen ik.
Ik weet precies waar het heen moetm het is al een heel eind, alleen nog niet af. Van wat ik heb gehoord zit het wel goed in elkaar.
Ik heb wel basiskennis php maar zoiets maken gaat mijn pet ruim teboven.
Stukje uit de code van videoband.php
[ code verwijderd ]
Ik vind het ook leuk om dit te leren, dus als er iemand is die zegt: laten we het helemaal opnieuw maken in een framework, dan leer je daar meteen van; dat zou ook tof zijn.
Misschien handig als ik je een inlog geef, dan heb je een idee van de feel.quote:Op donderdag 26 mei 2016 20:42 schreef TwenteFC het volgende:
[..]
Omschrijf eens heel duidelijk in één post en desnoods met zelf getekende schermontwerpen wat je wil bereiken wel welke regels waar van kracht zijn. (Zoals wat je bijvoorbeeld over de gast/gebruiker/admin beschreef)
Ik heb nog wel eens momentjes dat ik mij kapot verveel en dan maar random dingen ga programmeren.
Het gaat mij vooral om bepaalde regels, ik lees dit bijvoorbeeld als:quote:Op donderdag 26 mei 2016 21:19 schreef djkoelkast het volgende:
[..]
Misschien handig als ik je een inlog geef, dan heb je een idee van de feel.
Ook heb ik het ooit uitgeschreven (dit loopt al van 2014, dus ik moet e.e.a. even terug opzoeken).
Wat we nu hebben is:
videoband > post-itje in de hoes
Ja dat deelt ook lastig, als ik moet vragen hey heb jij dat en dat programma? oh even al mijn hoezen openen en op de post-itjes lezen
Een gast in jouw bewoording moet nog steeds account hebben. Als jij nog meer van dit soort verassingen hebt dan is het handig om deze vooraf te wetenquote:Gast met account kan alleen kaarten inzien
Gast zonder account kan niks
auw mijn ogen nederlands gebruiken in programmeren is best wel slecht.quote:Op donderdag 26 mei 2016 16:31 schreef djkoelkast het volgende:
[..]
Er is geen jullie, er is alleen ik.
Ik weet precies waar het heen moetm het is al een heel eind, alleen nog niet af. Van wat ik heb gehoord zit het wel goed in elkaar.
Ik heb wel basiskennis php maar zoiets maken gaat mijn pet ruim teboven.
Stukje uit de code van videoband.php
[ code verwijderd ]
Ik vind het ook leuk om dit te leren, dus als er iemand is die zegt: laten we het helemaal opnieuw maken in een framework, dan leer je daar meteen van; dat zou ook tof zijn.
Het is wel meteen duidelijk wat de functie doet natuurlijkquote:Op vrijdag 27 mei 2016 05:11 schreef totalvamp het volgende:
[..]
auw mijn ogen nederlands gebruiken in programmeren is best wel slecht.
ik zou voor dit een klein framework nemen, al zou je het ook wel met een aantal classes kunnen oplossen.
Ik zie geen functiequote:Op vrijdag 27 mei 2016 12:38 schreef djkoelkast het volgende:
[..]
Het is wel meteen duidelijk wat de functie doet natuurlijk
Site is alleen toegankelijk met een account. Geen account is geen toegang.quote:Op donderdag 26 mei 2016 21:28 schreef TwenteFC het volgende:
[..]
Het gaat mij vooral om bepaalde regels, ik lees dit bijvoorbeeld als:
[..]
Een gast in jouw bewoording moet nog steeds account hebben. Als jij nog meer van dit soort verassingen hebt dan is het handig om deze vooraf te weten
Voor de rest heb je wel gelijk, het is niet super ingewikkeld in het kort;
Een gebruiker met de juiste rechten klikt op maak nieuwe video.
Gebruiker krijgt een formulier, en vult deze in.
Gebruiker vult een aantal regels in.
Gebruiker klikt op opslaan, en afhankelijk van "is openbaar" kan de rest deze bekijken vanuit een lijst?
Zelf kan de gebruiker hieraan wijzigingen aanbrengen, en een admin kan dat ook.
Weet alleen niet of bandnummer een verplicht veld is, en wat locatie precies betekent in deze context. En of jij die afbeeldingen waar jij het eerder over had bij een video of bij een fragment wil opslaan.
Mis ik dan verder nog iets?
is_onkijkbaar of is_unwatchable, ik weet niet, ik vind zelf in dit geval NL geen probleem, maar ik heb het niet geschreven. Wel geholpen met welke velden er moesten komen en die zullen vast door mijn schuld zo zijn genoemdquote:Op vrijdag 27 mei 2016 12:42 schreef totalvamp het volgende:
[..]
Ik zie geen functie
Ik begon zelf ook in het Nederlands, maar na een echte baan te hebben heb ik dat maar snel afgeleerd.
Ik zou dan altijd gaan voor een naam die als uitgangspunt heeft dat je iets wel mag, dus is_watchable (of is_kijkbaar, als je toch Nederlands wilt). Dat maakt het redeneren als je de code later terugleest veel makkelijker.quote:Op vrijdag 27 mei 2016 12:48 schreef djkoelkast het volgende:
[..]
is_onkijkbaar of is_unwatchable, ik weet niet, ik vind zelf in dit geval NL geen probleem, maar ik heb het niet geschreven. Wel geholpen met welke velden er moesten komen en die zullen vast door mijn schuld zo zijn genoemd
Het invulveld heeft een vinkje voor een fragment wat onkijkbaar is. Dus aangevinkt betekent: dit fragment is onkijkbaar. Als je dat in de db gaat omdraaien is dat wellicht niet handig. Maar ik ben geen programmeurquote:Op vrijdag 27 mei 2016 12:57 schreef Light het volgende:
[..]
Ik zou dan altijd gaan voor een naam die als uitgangspunt heeft dat je iets wel mag, dus is_watchable (of is_kijkbaar, als je toch Nederlands wilt). Dat maakt het redeneren als je de code later terugleest veel makkelijker.
Als ik het goed interpreteer is de videoband niet te bekijken. Hidden lijkt me dan niet de juiste term.quote:Op vrijdag 27 mei 2016 16:39 schreef KomtTijd... het volgende:
Unwatchable, srsly? Is "hidden" geen betere term?
Klopt, te veel storing bijvoorbeeld. Niet om aan te zienquote:Op vrijdag 27 mei 2016 16:42 schreef Monolith het volgende:
[..]
Als ik het goed interpreteer is de videoband niet te bekijken. Hidden lijkt me dan niet de juiste term.
Ik ben ook altijd gewend geweest om alles in het Engels te doen, maar ik doe nu een groot project waarbij echt alle specs (als in honderden pagina's aan BRD / FO / TO, vele modellen, enzovoort) in het Nederlands is, waardoor het nauwelijks nog te doen is om geen Nederlands te gebruiken in de code aangezien terminologie nogal door elkaar loopt en dan helemaal niet meer te herleiden is.quote:Op vrijdag 27 mei 2016 17:57 schreef djkoelkast het volgende:
[..]
Klopt, te veel storing bijvoorbeeld. Niet om aan te zien
Maar de databasevelden zijn wellicht mede daarom gewoon NL gehouden. Mij stoort het niet.
Iemand heeft zijn werk dan niet goed gedaanquote:Op vrijdag 27 mei 2016 18:13 schreef Monolith het volgende:
[..]
Ik ben ook altijd gewend geweest om alles in het Engels te doen, maar ik doe nu een groot project waarbij echt alle specs (als in honderden pagina's aan BRD / FO / TO, vele modellen, enzovoort) in het Nederlands is, waardoor het nauwelijks nog te doen is om geen Nederlands te gebruiken in de code aangezien terminologie nogal door elkaar loopt en dan helemaal niet meer te herleiden is.
Dat is een feit. Ik zit aan alle kanten opgescheept met conflicterende specs waar ik weer achteraan kan jagen.quote:Op vrijdag 27 mei 2016 18:26 schreef totalvamp het volgende:
[..]
Iemand heeft zijn werk dan niet goed gedaan
Ik had koppig geweest en alles Engels gemaaktquote:Op vrijdag 27 mei 2016 18:32 schreef Monolith het volgende:
[..]
Dat is een feit. Ik zit aan alle kanten opgescheept met conflicterende specs waar ik weer achteraan kan jagen.
Maar goed, het is ook wel weer een prachtig AINO / Water-scrum-fall project.
Als het gaat om terminologie zoals een voorbereidingsbesluit zodat geen omgevingsvergunning kan worden afgegeven overeenkomstig het bestemmingsplan zolang dat nog niet conform het tracébesluit is aangepast, dan kun je dat helemaal niet naar het Engels vertalen.quote:Op vrijdag 27 mei 2016 18:50 schreef totalvamp het volgende:
[..]
Ik had koppig geweest en alles Engels gemaakt
Specs in NL kan wel, maar niks in de database/code zou NL moeten zijn.
Dat voegt in dit geval juist heel veel extra complexiteit toe. Juist omdat er op veel vlakken nog onduidelijkheid is over domeinobjecten en hun eigenschappen maken vertalingen het nog lastiger communiceren. Ik merk al dat een aantal andere leveranciers allen weer hun eigen Engelse vertaling hebben gemaakt die onderling weer verschillen, wat weer veel meer uitzoekwerk vergt.quote:Op vrijdag 27 mei 2016 18:50 schreef totalvamp het volgende:
[..]
Ik had koppig geweest en alles Engels gemaakt
Specs in NL kan wel, maar niks in de database/code zou NL moeten zijn.
Achja als puntje bij paaltje komt; Als het maar consistent gebeurt.quote:Op vrijdag 27 mei 2016 19:01 schreef Igen het volgende:
[..]
Als het gaat om terminologie zoals een voorbereidingsbesluit zodat geen omgevingsvergunning kan worden afgegeven overeenkomstig het bestemmingsplan zolang dat nog niet conform het tracébesluit is aangepast, dan kun je dat helemaal niet naar het Engels vertalen.
En als dat niet kan, waarom zou je dan andere termen waarvoor er wel een Engelse vertaling is dan wel vertalen?
Wat dat betreft is het voor mijn werkgever niet ongunstig dat de terminologie in het Nederlands is. De software is formeel eigendom van de klant ondanks dat hij door ons wordt ontwikkeld en beheerd, dus dat maakt de boel offshoren een stuk lastiger.quote:Op vrijdag 27 mei 2016 19:20 schreef TwenteFC het volgende:
[..]
Achja als puntje bij paaltje komt; Als het maar consistent gebeurt.
Maar als ik ooit in een codebase moet duiden waar alles in het Tsjechisch is geschreven dan ben ik wel fucked.
Dit beaam ik.quote:Op donderdag 26 mei 2016 16:43 schreef ViPeRII het volgende:
JE had het over collega verzamelaars die ook bijdrage moeten kunnen leveren, vandaar dat ik de vraag stelde of er een pakket van eisen is.
Aan de hand van het stukje code kan ik in ieder geval vaststellen dat het niet fantastisch in elkaar gezet is, maar goed..
Ik wil best wel een keer een opzet maken, maar dan eerst een opzet qua documenten (inzicht van database en schermpjes. Zelf werk ik redelijk snel met dit soort projecten , vraag is wat is de vergoeding? Uurloon ? (ben bijna student af) maar, heb best zin in een side project.quote:Op vrijdag 27 mei 2016 17:57 schreef djkoelkast het volgende:
[..]
Klopt, te veel storing bijvoorbeeld. Niet om aan te zien
Maar de databasevelden zijn wellicht mede daarom gewoon NL gehouden. Mij stoort het niet.
In een eerder bericht stond dat hij video's kan digitaliseren etc.quote:Op maandag 30 mei 2016 09:27 schreef cablegunmaster het volgende:
[..]
Ik wil best wel een keer een opzet maken, maar dan eerst een opzet qua documenten (inzicht van database en schermpjes. Zelf werk ik redelijk snel met dit soort projecten , vraag is wat is de vergoeding? Uurloon ? (ben bijna student af) maar, heb best zin in een side project.
Dan gooi ik alles overhoop en herschrijf ik het in laravel met een bootstrap uiterlijk (netjes en overzichtelijk) . Alleen dan is de vraag wat is de vergoeding die er tegenoverstaat ten opzichte van het werk?
Ik doe wel alles in engels.
PM DM etc.. dan kunnen we zien of er een mouw aan te passen is.
Geweldig, simplistisch en het is naar mijn weten sneller te leren dan Zend, vanwege laracast (de hoeveelheid filmpjes die je snel de tutorials door nemen) Grote hoeveelheid documentatie , en een grote hoeveelheid voorbeelden.quote:Op maandag 30 mei 2016 09:36 schreef totalvamp het volgende:
[..]
In een eerder bericht stond dat hij video's kan digitaliseren etc.
Is Laravel nog een beetje handig? Al tijden geen PHP meer gedaan (alles is JS tegenwoordig).
Vergoeding is een wederdienst en mijn eeuwige dank, niet iets financiëels. Het wordt een reclamevrij, inkomstenvrij hobbyproject onder een aantal gekke verzamelaars van oude videobeelden. Omdat Beeld & Geluid (het instituut wat bedoeld is om beelden te bewaren) vaak genoeg doodleuk dingen kwijtraakt, niet heeft, of als het door derden wordt aangeboden niet nodig acht want "we hebben hier al genoeg van".quote:Op maandag 30 mei 2016 09:27 schreef cablegunmaster het volgende:
[..]
Ik wil best wel een keer een opzet maken, maar dan eerst een opzet qua documenten (inzicht van database en schermpjes. Zelf werk ik redelijk snel met dit soort projecten , vraag is wat is de vergoeding? Uurloon ? (ben bijna student af) maar, heb best zin in een side project.
Dan gooi ik alles overhoop en herschrijf ik het in laravel met een bootstrap uiterlijk (netjes en overzichtelijk) . Alleen dan is de vraag wat is de vergoeding die er tegenoverstaat ten opzichte van het werk?
Ik doe wel alles in engels.
PM DM etc.. dan kunnen we zien of er een mouw aan te passen is.
Eigenlijk geldt voor elk framework in een OO-taal wel dat er een zekere leercurve is. Zeker als je niet al te bekend bent met design patterns en OO-concepten. Java stacktraces zijn ook notoir intimiderend voor de beginnende ontwikkelaar, zeker als je b.v. ook nog eens Java EE gebruikt.quote:Op maandag 30 mei 2016 10:14 schreef Sitethief het volgende:
Het enige negatieve wat ik soms met Laravel ondervind is dat vanwege al het weg abstracten van code het soms lastig is te achterhalen waarom dingen soms fout gaan. Maar dat is ook een stukje gebrek aan ervaring omdat ik pas een paar maanden met Laravel bezig ben.
Het klinkt als een tof project, ergens vind ik het wel leuk om te doen, twijfel vanwege tijd en de weinige financiële vergoeding. Ik zal iets moeten hebben om van te leven als bijbaan. dan is dit project helaas nietvoor mij maar ik blijf het interessant vinden . Vanwege dat ik nog een projectje zoek om aan te klieren en dingen te maken.quote:Op maandag 30 mei 2016 10:21 schreef djkoelkast het volgende:
[..]
Vergoeding is een wederdienst en mijn eeuwige dank, niet iets financiëels. Het wordt een reclamevrij, inkomstenvrij hobbyproject onder een aantal gekke verzamelaars van oude videobeelden. Omdat Beeld & Geluid (het instituut wat bedoeld is om beelden te bewaren) vaak genoeg doodleuk dingen kwijtraakt, niet heeft, of als het door derden wordt aangeboden niet nodig acht want "we hebben hier al genoeg van".
Jup , daarbij heeft het mij geholpen om software patterns op te zoeken. Hoe dit zit in combinatie met laravel (laracasts had er een filmpje over) ik kende de huidige software patterns al maar toepassen op laravel vond ik nog wat lastig.quote:Op maandag 30 mei 2016 10:25 schreef Monolith het volgende:
[..]
Eigenlijk geldt voor elk framework in een OO-taal wel dat er een zekere leercurve is. Zeker als je niet al te bekend bent met design patterns en OO-concepten. Java stacktraces zijn ook notoir intimiderend voor de beginnende ontwikkelaar, zeker als je b.v. ook nog eens Java EE gebruikt.
Een goed framework abstraheert ook veel van die patronen gewoon weg. Binnen Java EE kun je bijvoorbeeld simpelweg van een class een singleton maken met een @Singleton annotatie, een Interceptor met een @Interceptor annotatie, observers zijn simpelweg een kwestie van een methode maken die een Event parameter heeft met @Observes, ORM is een kwestie van @Entity annotaties met wat extra annotaties voor verdere configuratie, enzovoort.quote:Op maandag 30 mei 2016 10:26 schreef cablegunmaster het volgende:
Jup , daarbij heeft het mij geholpen om software patterns op te zoeken. Hoe dit zit in combinatie met laravel (laracasts had er een filmpje over) ik kende de huidige software patterns al maar toepassen op laravel vond ik nog wat lastig.
Meh. schets een use class diagram of schrijf het hele verhaal op hoe het inelkaar steekt screenshots erbij hoe het eruit moet komen te zien en ik zal eens iets inelkaar flatsen.quote:Op maandag 30 mei 2016 10:21 schreef djkoelkast het volgende:
[..]
Vergoeding is een wederdienst en mijn eeuwige dank, niet iets financiëels. Het wordt een reclamevrij, inkomstenvrij hobbyproject onder een aantal gekke verzamelaars van oude videobeelden. Omdat Beeld & Geluid (het instituut wat bedoeld is om beelden te bewaren) vaak genoeg doodleuk dingen kwijtraakt, niet heeft, of als het door derden wordt aangeboden niet nodig acht want "we hebben hier al genoeg van".
3 maand?! Ik heb het al bijna af.quote:Op maandag 30 mei 2016 20:31 schreef cablegunmaster het volgende:
[..]
Meh. schets een use class diagram of schrijf het hele verhaal op hoe het inelkaar steekt screenshots erbij hoe het eruit moet komen te zien en ik zal eens iets inelkaar flatsen.
Kost wel tijd, kan drie maanden ongeveer duren max maar dan is het er wel
Oh nou afmaken die hap . mwhoah , dan moet het ook online komen te staan, ik zit met rijlessen, vriendin en thesis.quote:
Ik maak het tussen het gamen en series kijken door. Ben overdag ook al 8 uur bezig met webapps bouwen vandaar dat ik ook nog niks had gezegd om geen loze beloftes te doen.quote:Op maandag 30 mei 2016 21:36 schreef cablegunmaster het volgende:
[..]
Oh nou afmaken die hap . mwhoah , dan moet het ook online komen te staan, ik zit met rijlessen, vriendin en thesis.
Nee begrijpelijk, dat is ook niet het idee. Zolang al die 6 klanten niks willen is het ok , maar als ze allemaal watwillen dan ben je 24/7 bezig .quote:Op maandag 30 mei 2016 21:42 schreef TwenteFC het volgende:
[..]
Ik maak het tussen het gamen en series kijken door. Ben overdag ook al 8 uur bezig met webapps bouwen vandaar dat ik ook nog niks had gezegd om geen loze beloftes te doen.
Maar niet dat je straks 6 sites hebt om het bij te houden.
Oh is de huidige implementatie van jou? Of bouw je zelf een systeem ernaast? Naar aanleiding van de gegeven gegevens op dit topic?quote:
obv wat hier gepost, mijn voornaamste reden om dit te maken is omdat ik een excuus zoek om Algolia ( https://www.algolia.com/ ) eens te proberen.quote:Op dinsdag 31 mei 2016 12:55 schreef cablegunmaster het volgende:
[..]
Oh is de huidige implementatie van jou? Of bouw je zelf een systeem ernaast? Naar aanleiding van de gegeven gegevens op dit topic?
Hoe bevalt Algolia tot nu toe?quote:Op dinsdag 31 mei 2016 18:14 schreef TwenteFC het volgende:
[..]
obv wat hier gepost, mijn voornaamste reden om dit te maken is omdat ik een excuus zoek om Algolia ( https://www.algolia.com/ ) eens te proberen.
Ik werk tegenwoordig bijna alleen nog maar met Laravel.
Ben eerst het "saaie" spul aan het maken, anders gaat het project /dev/null nadat ik met de search klaar ben. Zal wanneer het af is 't project wel op github gooien en dan kan djkoelkast het gebruiken en anderen verbeteringen pushen.quote:
Ziet er leuk uit , beetje overkill denk ik?quote:Op dinsdag 31 mei 2016 18:14 schreef TwenteFC het volgende:
[..]
obv wat hier gepost, mijn voornaamste reden om dit te maken is omdat ik een excuus zoek om Algolia ( https://www.algolia.com/ ) eens te proberen.
Ik werk tegenwoordig bijna alleen nog maar met Laravel.
Volstrekte overkill natuurlijk, maar het is ook meer een PoCje voor zover ik begrijp. Iets dergelijks wordt pas echt interessant als je wat grotere en diverse collecties documenten / objecten krijgt.quote:Op woensdag 1 juni 2016 14:42 schreef cablegunmaster het volgende:
[..]
Ziet er leuk uit , beetje overkill denk ik?
Dat is altijd leuk . Vroeg me al af wat voor servers eigenlijk gebruik van maken, zie google zoiets al weg gebruiken maar op welk niveau je zoiets nodig zou moeten hebben weet ik niet. (aangezien de kosten).quote:Op woensdag 1 juni 2016 15:01 schreef Monolith het volgende:
[..]
Volstrekte overkill natuurlijk, maar het is ook meer een PoCje voor zover ik begrijp. Iets dergelijks wordt pas echt interessant als je wat grotere en diverse collecties documenten / objecten krijgt.
Al is het natuurlijk wel aardig dat er wat basale correctie op de zoekinput zit, ongetwijfeld zaken als stemfiltering, edit distance, synonyms, stopwords etcetera waardoor het nog net wat meer functionaliteit biedt dan een simpele 'LIKE' in MySQL.
Search technologie wordt wel redelijk breed ingezet. Meestal iets Lucene based zoals ElasticSearch of SOLR.quote:Op woensdag 1 juni 2016 17:09 schreef cablegunmaster het volgende:
[..]
Dat is altijd leuk . Vroeg me al af wat voor servers eigenlijk gebruik van maken, zie google zoiets al weg gebruiken maar op welk niveau je zoiets nodig zou moeten hebben weet ik niet. (aangezien de kosten).
Ik werk inderdaad bij een groothandel met een zakelijke webshop, de voornaamste punten waarom ik Algolia interessant vind.quote:Op woensdag 1 juni 2016 17:14 schreef Monolith het volgende:
[..]
Search technologie wordt wel redelijk breed ingezet. Meestal iets Lucene based zoals ElasticSearch of SOLR.
Bij een beetje webshop met een flink assortiment wil je bijvoorbeeld natuurlijk de optie bieden om makkelijk te zoeken naar producten. Aan die producten zitten een hoop aspecten (naam, omschrijving, categorie met eventueel subcategorieën, maten, merk, enzovoort). Je wilt dan zoekresultaten geven die eigenlijk zoeken in al dat soort aspecten, maar daarbij wel weer relevantiescores kunnen hanteren zodat je bijvoorbeeld een match op productnaam zwaarder kunt wegen dan op productomschrijving. Ook allerhande zaken die ik aanhaalde als spelcorrectie / suggestie, stemming waardoor het niet uitmaakt of je bijvoorbeeld op 'fiets' of 'fietsen' zoekt, enzovoort zijn dan handig.
Voor dat soort zaken is SQL fulltext search niet echt geschikt.
Het lijkt inderdaad wel een leuke dienst, al denk ik toch wel dat je het nodige zult moeten ontwikkelen qua feeding en later eventueel allerhande optimalisatie / customization. ElasticSearch en SOLR werken ook wel vrij eenvoudig out of the box als je er kennis van hebt, hoewel dat voor veel mensen wel even een zekere leercurve zal zijn.quote:Op woensdag 1 juni 2016 18:13 schreef TwenteFC het volgende:
[..]
Ik werk inderdaad bij een groothandel met een zakelijke webshop, de voornaamste punten waarom ik Algolia interessant vind.
- Geen ontwikkelingskosten naast de implementatie
- Faceted & fuzzy search
1 2 3 4 5 | <tr id="CF-7-ShowRow"> <td class="label">Some text</td> <td class="value"> Dit is wat ik eruit wil halen</td> </tr> |
Waarom zou je hier een regex willen gebruiken? Html is nou niet bepaald regulier. Met DOMDocument moet je meer kunnen doen, die is speciaal ontwikkeld om met xml en html om te kunnen gaan.quote:Op maandag 6 juni 2016 16:05 schreef xaban06 het volgende:
Ik heb een stukje HTML, waar ik bepaalde informatie uit wil halen. Zie de HTML code hieronder en zie ook wat ik er uit wil halen.
Dit zou met regular expressions kunnen, maar ik heb er zoveel over gelezen, maar ik kan gewoon geen reg exp maken, helaas.
Dus los ik het op met explode op <tr id="CF-7-ShowRow">, vervolgens een explode op <td class="value">, etc.
Zou iemand mij willen helpen
[ code verwijderd ]
Yup.quote:Op maandag 6 juni 2016 20:41 schreef Light het volgende:
[..]
Waarom zou je hier een regex willen gebruiken? Html is nou niet bepaald regulier. Met DOMDocument moet je meer kunnen doen, die is speciaal ontwikkeld om met xml en html om te kunnen gaan.
Dat is een feature!quote:Op maandag 13 juni 2016 18:25 schreef d4v1d het volgende:
Mijn Python begint opeens PHP te schrijven? Is dit een bug?
[ afbeelding ]
Als je dan echt flauwe Pythongrappen wil maken is het eigelijk 'begint plots PHP te schrijven'.quote:Op maandag 13 juni 2016 18:25 schreef d4v1d het volgende:
Mijn Python begint opeens PHP te schrijven? Is dit een bug?
[ afbeelding ]
ECMAScript is de standaard voor een paar talen, JavaScript, JScript en ActionScript. Dit is een blauwdruk met een hele set aan afspraken over hoe de taal moet werken. JavaScript is dus een implementatie van de regels van ECMAScript, net als JScript en ActionScript.quote:Op maandag 20 juni 2016 14:37 schreef cablegunmaster het volgende:
Vraagje is Ecmascript een subset van Javascript? De uitleg van Wikipedia vond ik verwarrend.
Iets met eerst was het Javascript conform naar Ecma script en dan weer conform de regels van Ecmascript is javascipt een subset taal gebaseerd op Ecmascript (ECMA-262?)
*verwart*
Bedankt ! dit verheldert een hele hoop.quote:
Ik weet dat in ieder geval in WordPress er een aparte functie is om te kijken of een folder onder windows schrijfbaar is: https://developer.wordpre(...)ons/win_is_writable/quote:Op vrijdag 9 september 2016 09:32 schreef Darkomen het volgende:
*kuch* STOF *kuch*
Where my PHPeeps at?!
Bij een klant van mij heb ik het probleem dat is_writeable() aangeeft dat een folder niet schrijfbaar is, maar ik kan wel nieuwe bestanden in de folders plaatsen?
IIS users hebben volledige rechten op de folders, iemand een idee?
PHP Version 5.5.34
Windows Server 2012 R2 Datacenter Edition i586
Ik doe iets vergelijkbaars, ik kijk eerst of de directory schrijfbaar is, zo ja, prima.quote:Op vrijdag 9 september 2016 09:53 schreef Rockfire het volgende:
[..]
Ik weet dat in ieder geval in WordPress er een aparte functie is om te kijken of een folder onder windows schrijfbaar is: https://developer.wordpre(...)ons/win_is_writable/
Altijd een goede oplossing,echter had deze client een eigen windows server. (van vroeger)quote:
weet je ook zeker dat php rechten heeft op die folder?quote:Op vrijdag 9 september 2016 09:32 schreef Darkomen het volgende:
*kuch* STOF *kuch*
Where my PHPeeps at?!
Bij een klant van mij heb ik het probleem dat is_writeable() aangeeft dat een folder niet schrijfbaar is, maar ik kan wel nieuwe bestanden in de folders plaatsen?
IIS users hebben volledige rechten op de folders, iemand een idee?
PHP Version 5.5.34
Windows Server 2012 R2 Datacenter Edition i586
weet je ook zeker dat php onder iis users valt en niet zijn eigen user is?quote:Op dinsdag 13 september 2016 08:27 schreef Darkomen het volgende:
Yup, voor zover ik van dit van iis weet.
Alle users in de groep iis_users hebben volledige rechten tot de folder.
En, is die al resistent tegen golunksi's exploit of brengen ze hem gewoon uit met known zero-days die ze in oktober misschien een keer gaan patchen?quote:Op donderdag 15 september 2016 09:21 schreef Aether het volgende:
The MySQL 8.0.0 Milestone Release is available.
Dit is geen productieversiequote:Op vrijdag 16 september 2016 09:30 schreef KomtTijd... het volgende:
[..]
En, is die al resistent tegen golunksi's exploit of brengen ze hem gewoon uit met known zero-days die ze in oktober misschien een keer gaan patchen?
quote:https://news.ycombinator.com/item?id=12481348
• morgo 3 days ago
Product Manager for the MySQL Server here. Happy to answer questions!
• hdjjhhvvhga 3 days ago
Does this release have the recent SQL code execution bug patched?
• morgo 3 days ago
No.
quote:• v64 3 days ago
The latest stable release of MySQL is 5.7, no? Why the jump to 8.0?
• morgo 3 days ago
6.0 was a canceled release. 7.x. is used by Cluster. 8.0 makes it easy to follow as "it just drops the 5".
Ik zie geen straatnaam/huisnummer los van elkaar staan in de demo die je daar geeft.quote:Op maandag 5 december 2016 18:29 schreef TwenteFC het volgende:
Topic weer even tot leven wekken omdat het kan.
Waarom maken (grote) bedrijven api's die gewoon debiel werken?
https://scm.commerceinterface.com/api-doc/v3/#endpoint
Heb het genot om hier mee te werken en dan krijg je een adres i.t.t. de demo terug als "Straatnaam huisnummer" in één veld terwijl je het later voor de adreslabel weer uit elkaar mag trekken.. sommige mensen.. kunnen wij adressen straks alsnog handmatig gaan controleren als er weer een "2e Straatnaam 1944 13-A 3e verdieping van onder" tussenzit. fml.
Dat is nog het ergste, in de demo niet nee. Bij hen in productie wel.quote:Op dinsdag 6 december 2016 08:58 schreef Scarlet_Dragonfly het volgende:
[..]
Ik zie geen straatnaam/huisnummer los van elkaar staan in de demo die je daar geeft.
Daarnaast vraag ik me af waarom je ze weer los van elkaar wilt trekken? Hoe/waar ga je dat voor gebruiken? Ga je dan zelf ook rekening houden met adressen waar het huisnummer vóór de straatnaam staat (zoals in de VS)?
Ze geven aan dat er 2 regels voor het adres beschikbaar zijn, address1 en address2. Dat in de ene in het voorbeeld alleen het huisnummer staat en in de andere de straatnaam, lijkt me toeval. Ze moeten toch iets om in het voorbeeld beide adresregels te gebruiken.quote:Op maandag 5 december 2016 18:29 schreef TwenteFC het volgende:
Topic weer even tot leven wekken omdat het kan.
Waarom maken (grote) bedrijven api's die gewoon debiel werken?
https://scm.commerceinterface.com/api-doc/v3/#endpoint
Heb het genot om hier mee te werken en dan krijg je een adres i.t.t. de demo terug als "Straatnaam huisnummer" in één veld terwijl je het later voor de adreslabel weer uit elkaar mag trekken.. sommige mensen.. kunnen wij adressen straks alsnog handmatig gaan controleren als er weer een "2e Straatnaam 1944 13-A 3e verdieping van onder" tussenzit. fml.
Ze doen ook wel iets, address1 op "Straatnaam 11a" zetten en address2 op null zetten.quote:Op woensdag 7 december 2016 21:21 schreef Light het volgende:
[..]
Ze geven aan dat er 2 regels voor het adres beschikbaar zijn, address1 en address2. Dat in de ene in het voorbeeld alleen het huisnummer staat en in de andere de straatnaam, lijkt me toeval. Ze moeten toch iets om in het voorbeeld beide adresregels te gebruiken.
Ik heb geen idee wat ze doen, en of ze überhaupt om verschillende velden vragen. Maar je zou natuurlijk bij de aanbieder van de API kunnen informeren of ze huisnummer apart hebben en kunnen aanleveren. Het kan als extra veld, dus dat zou verder geen impact mogen hebben.quote:Op donderdag 8 december 2016 18:20 schreef TwenteFC het volgende:
[..]
Ze doen ook wel iets, address1 op "Straatnaam 11a" zetten en address2 op null zetten.
Vandaar ook dat het mij irriteert, en wat het erger maakt is dat ik 100% zeker weet dat ze het zelf los opslaan ergens.
Een regex is vrij simpel, gewoon .+quote:Op donderdag 8 december 2016 18:41 schreef Nattekat het volgende:
Ik heb ooit een regex mogen maken die rekening moest houden met alle uitzonderingen die er zijn. Nog steeds glipt er af en toe een hele rare doorheen
Nou scheelt het gelukkig dat 99% van de adressen gewoon "straatnaam huisnummer toevoeging" zijn.
quote:Op donderdag 8 december 2016 18:48 schreef Monolith het volgende:
[..]
Een regex is vrij simpel, gewoon .+
Spelfouten zijn niet zo erg. Het is onderdeel van een systeem dat gegevens uit een lijst met verpakte orders haalt en vervolgens op de site van de vervoerder alle velden invult. Die site filtert de eventuele stijlfouten er wel uit, en dan moet het ook nog door en persoon daadwerkelijk verzonden worden.quote:Voor validatie of extractie lijkt een regex mij nou niet bepaald de meest geschikte optie.
Als je wilt weten of iets een geldig adres is of er onderdelen uit wilt extraheren, dan kun je beter iets van een search engine of iets dergelijks gebruiken. Ook i.v.m. spelfouten en dergelijke.
Bezig met een gelijksoortig iets, van de api die ik hierboven postte direct door naar de CIF Api van PostNL.Ik zie dat ze sinds kort een nieuw veld hebben "StreetHouseNrExt" dus ik speel hem gewoon direct door nu. Af en toe een boete vanwege een incorrect adres is goedkoper dan alles controleren.quote:Op donderdag 8 december 2016 18:55 schreef Nattekat het volgende:
[..]
[..]
Spelfouten zijn niet zo erg. Het is onderdeel van een systeem dat gegevens uit een lijst met verpakte orders haalt en vervolgens op de site van de vervoerder alle velden invult. Die site filtert de eventuele stijlfouten er wel uit, en dan moet het ook nog door en persoon daadwerkelijk verzonden worden.
Voor wat het moet doen, werkt het perfect.
Al gedaan maar was "technisch niet mogelijk" (wat ik altijd een onzin antwoord vind), maarja dan houdt het op.quote:Op donderdag 8 december 2016 18:25 schreef Light het volgende:
[..]
Ik heb geen idee wat ze doen, en of ze überhaupt om verschillende velden vragen. Maar je zou natuurlijk bij de aanbieder van de API kunnen informeren of ze huisnummer apart hebben en kunnen aanleveren. Het kan als extra veld, dus dat zou verder geen impact mogen hebben.
Als het doet wat het moet doen is het prima natuurlijk.quote:Op donderdag 8 december 2016 18:55 schreef Nattekat het volgende:
[..]
[..]
Spelfouten zijn niet zo erg. Het is onderdeel van een systeem dat gegevens uit een lijst met verpakte orders haalt en vervolgens op de site van de vervoerder alle velden invult. Die site filtert de eventuele stijlfouten er wel uit, en dan moet het ook nog door en persoon daadwerkelijk verzonden worden.
Voor wat het moet doen, werkt het perfect.
Die regex moet de staat, huisnummer en toevoeging onderscheiden. Dat lijkt me wel een belangrijke eerste stap voor je het in wat voor api dan ook gaat gooien.quote:Op donderdag 8 december 2016 19:06 schreef Monolith het volgende:
[..]
Als het doet wat het moet doen is het prima natuurlijk.
Vaak zie je bij adressen echter dat het belangrijk is om ook te controleren of het een bestaand adres is en / of wat de bijbehorende locatie / postcode is. Dan is een regex doorgaans niet het juiste middel.
Dat is gewoon marketingjargon voor "we willen het niet of we kunnen het niet" jaquote:Op donderdag 8 december 2016 19:04 schreef TwenteFC het volgende:
[..]
Al gedaan maar was "technisch niet mogelijk" (wat ik altijd een onzin antwoord vind), maarja dan houdt het op.
Dat kan, maar als je de boel ik een Lucene index gooit en bijvoorbeeld kijkt naar de Levenshtein distance, dan kun je wel matchen en het daadwerkelijke adres achterhalen. Kun je ook nog allerhande andere tokenization hanteren voor meer opties.quote:Op donderdag 8 december 2016 19:09 schreef Nattekat het volgende:
[..]
Die regex moet de staat, huisnummer en toevoeging onderscheiden. Dat lijkt me wel een belangrijke eerste stap voor je het in wat voor api dan ook gaat gooien.
Aan de andere kant heb je te maken met een Amerikaanse(?) organisatie die waarschijnlijk de hele wereld als marktgebied wil. Waarom zou je dan een apart veld maken voor huisnummer? En, zoals ik al aangaf, ik heb geen idee hoe ze het adres aan de (Nederlandse) bezoekers vragen. Als ze gewoon invulveldjes hebben voor 2 adresregels, dan hebben ze de data niet gescheiden.quote:Op donderdag 8 december 2016 19:04 schreef TwenteFC het volgende:
[..]
Bezig met een gelijksoortig iets, van de api die ik hierboven postte direct door naar de CIF Api van PostNL.Ik zie dat ze sinds kort een nieuw veld hebben "StreetHouseNrExt" dus ik speel hem gewoon direct door nu. Af en toe een boete vanwege een incorrect adres is goedkoper dan alles controleren.
Maar ik blijf het raar vinden want dit is ook niet het eerste bedrijf dat dit flikt.
[..]
Al gedaan maar was "technisch niet mogelijk" (wat ik altijd een onzin antwoord vind), maarja dan houdt het op.
quote:Op donderdag 8 december 2016 20:58 schreef Light het volgende:
[..]
Aan de andere kant heb je te maken met een Amerikaanse(?) organisatie die waarschijnlijk de hele wereld als marktgebied wil. Waarom zou je dan een apart veld maken voor huisnummer? En, zoals ik al aangaf, ik heb geen idee hoe ze het adres aan de (Nederlandse) bezoekers vragen. Als ze gewoon invulveldjes hebben voor 2 adresregels, dan hebben ze de data niet gescheiden.
Dan lijkt het er idd op dat ze straat en huisnummer apart opslaan. En dan moeten ze het ook apart kunnen aanleveren.quote:
Er is een aparte invoer. Zegt niet direct iets over de de opslag.quote:Op donderdag 8 december 2016 21:09 schreef Light het volgende:
[..]
Dan lijkt het er idd op dat ze straat en huisnummer apart opslaan. En dan moeten ze het ook apart kunnen aanleveren.
True. Dan moet je eigenlijk bekijken hoe het eruit ziet als je de adresgegevens gaat bewerken.quote:Op donderdag 8 december 2016 21:13 schreef Monolith het volgende:
[..]
Er is een aparte invoer. Zegt niet direct iets over de de opslag.
Er is niks lelijk aan exploden op spatie en vervolgens het 1e en 4e element te pakken, hoor. Dat is in feite hetzelfde als wat je met awk doet.quote:Op woensdag 28 december 2016 11:01 schreef xaban06 het volgende:
Ik heb de volgende string: " 84331 GB / 88282 GB avail"
Daaruit wil ik de 2 getallen uit halen. Met awk in bash is dat simpel (awk {'print $1 $4'}), maar PHP kent helaas geen awk. Wat is een (simpele) alternatief, behalve exploden op spaties (kan wel, maar lelijk).
1 2 3 4 5 6 7 8 9 | <?php if(isset($_GET['id'])){ if(isset($_COOKIE['tijden'])){ setcookie("tijden", $_COOKIE['tijden']."s".$_GET['id']."-".time(), time()+(60*60*30)); }else{ setcookie("tijden", $_GET['id']."-".time(), time()+(60*60*30)); } include('incl.php'); echo json_encode(array($d[0][0], $d[0][1], $d[0][4])); } ?> |
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 | <?php $mysqli = new mysqli("localhost","root","","r"); if ($mysqli->connect_errno) echo "Error - Failed to connect to MySQL: " . $mysqli->connect_error; $r = $mysqli->query("SELECT * FROM f ORDER BY s DESC"); $d = array(); while($row = mysqli_fetch_array($r)) { $d[$row[0]] = array($row[0], $row[1], $row[2], $row[3], $row[4]); } mysqli_close ($mysqli); if(isset($_COOKIE['tijden'])){ $a = explode('s', $_COOKIE['tijden']); $z = ""; foreach($a as $b){ $c = explode('-', $b); $x = $d[$c[0]][4]; if(($c[1]+$x) > time()){ unset($d[$c[0]]); $z .= $b."s"; } } $z = substr($z, 0, -1); if($z != ""){ setcookie("tijden", $z, time()+(60*60*30)); }else{ setcookie("tijden", "", 1); }; } $d = array_values($d); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php if(isset($_GET['id'])){ if(isset($_COOKIE['tijden'])){ $cookie = $_COOKIE['tijden']."s".$_GET['id']."-".time(); }else{ $cookie = $_GET['id']."-".time(); } } include('incl.php'); echo json_encode(array($d[0][0], $d[0][1], $d[0][4])); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php const COOKIE_NAME = 'tijden'; const THIRTY_MINUTES = 60 * 60 * 30; if (isset($_GET['id'])) { $newEntry = $_GET['id'] . "-" . time(); $prepend = isset($_COOKIE[COOKIE_NAME]) ? $_COOKIE[COOKIE_NAME] . 's' : ''; $expiryTime = time() + THIRTY_MINUTES; setcookie(COOKIE_NAME, $prepend . $newEntry, $expiryTime); include('incl.php'); echo json_encode(array($data[0][0], $data[0][1], $data[0][4])); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <?php $mysqli = new mysqli('localhost', 'root', '', 'r'); if ($mysqli->connect_errno) { echo "Error - Failed to connect to MySQL: " . $mysqli->connect_error; } $result = $mysqli->query('SELECT * FROM f ORDER BY s DESC'); $data = array(); while($row = mysqli_fetch_array($result)) { $data[$row[0]] = array($row[0], $row[1], $row[2], $row[3], $row[4]); } mysqli_close ($mysqli); if(isset($_COOKIE[COOKIE_NAME])){ $entries = explode('s', $_COOKIE[COOKIE_NAME]); $newCookie = ''; foreach($entries as $entry){ list($id, $time) = explode('-', $entry); $seconds = $data[$id][4]; if (($time + $seconds) > time()) { unset($data[$id]); $newCookie .= $entry . 's'; } } // remove last s from newCookie $newCookie = substr($newCookie, 0, -1); if ($newCookie != '') { setcookie(COOKIE_NAME, $newCookie, time() + THIRTY_MINUTES); } else { // unset cookie setcookie(COOKIE_NAME, '', 1); } } $data = array_values($data); |
bedankt, dit was het, hiermee is het opgelost, klinkt logisch al verwachtte ik dat het script wel zou weten dat het veranderd zou moeten zijn omdat ie dat zelf gedaan heeft, misschien als ik $_COOKIE['tijden'] had gebruikt om de waarde aan te passen, had ie dat wel geweten ga ik vanuit, niet geprobeert, dan kan je alleen de verlooptijd niet instellen ga ik vanuit, maar dat gebeurde dan verderop wanneer de cookie weer geset werd, maarja $cookie werkt prima.quote:Op zondag 1 januari 2017 15:42 schreef H.Witkamp het volgende:
Je gebruikt setcookie in het bestand incl.php. De setcookie die je voor include('incl.php') gebruikt wordt dan overschreven.
De cookie die je met setcookie zet wordt pas met de volgende request meegestuurd dus de inhoud van $_COOKIE['tijden'] veranderd niet gelijk na setcookie.
Wat je zou kunnen doen is
[ code verwijderd ]
en dan in incl.php $cookie gebruiken ipv $_COOKIE['tijden'].
Ja ik weet het, mijn autistische hoofd blokkeert als ik een naam moet bedenken voor zo'n ding dus gebruik ik gewoon een random letter uit het alfabet, zodat ik door kan, meestal beginnende bij abcd en als ik niet meer weet wat de laatste letter was gebruik ik zxy etc. of ga ik 2 letters gebruiken, heb er persoonlijk niet al teveel last van maar kan me voorstellen dat als iemand anders kijkt ie denkt wat heb jij er nou weer neergekwakt, alleen als ik oude scipts van mezelf van jaren terug bekijk snap ik er niet direct veel van, maar of dat met fatsonelijke benamingen veel zou schelen betwijfel ik, want ik begrijp ze nog altijd sneller als het gemiddelde door iemand anders gemaakte script, omdat het toch nog ergens in mn geheugen zit, maar ik zal eraan proberen te werken.quote:Op zondag 1 januari 2017 15:57 schreef Alfje het volgende:
Sorry als mijn post wat negatief overkwam, ik heb je code een beetje herschreven als voorbeeld hoe je dingen leesbaarder kunt maken en makkelijker fouten op kan sporen. Leer jezelf dit aan en je gaat enorm veel tijd en frustratie besparen op langere termijn.
Overigens niet getest:
[ code verwijderd ]
[ code verwijderd ]
Ik hoop dat je inziet dat het nu al een stuk duidelijker is wat er gebeurt. In php hoef je de afsluit tag niet te gebruiken, het is verstandig dit ook niet te doen, kan rare fouten opleveren als je er per ongeluk een spatie of enter achter hebt staan.
Waar het mis gaat is wat H. Witkamp al aangeeft. Als je setcookie doet dat veranderd dat niet je $_COOKIE array zolang je script nog loopt. Als het script bij de if op regel 17 aankomt is deze dus nog zo als die was aan het begin van je script.
Als je headers mee wilt sturen met je response moet je die headers altijd sturen voordat je andere output genereert anders krijg je een foutmelding. Als je in bestanden die verder geen html ofzo bevatten een afsluittag zet en daarachter per ongeluk een spatie of enter dan ga je al output genereren. Als je dan heel ergens anders verderop een header wilt sturen krijg je een fout en die is verdomd lastig op te sporen.quote:Dat van de afsluittag wist ik niet, hoezo zou je fouten krijgen als je er een spatie of enter achter hebt staan? je kunt toch gewoon php afsluiten en dan html erachter poten en eventueel later weer php openen. ik weet niet wat voor een fouten daardoor moeten komen.
Dat zou je met de volgende paar regels kunnen doen.quote:Op zaterdag 18 februari 2017 21:40 schreef snorvanJohanDerksen het volgende:
Zouden jullie mij kunnen helpen? Ik wil een functie programmeren die de eerste circa 150 woorden van een artikel op de home pagina zet (à la GeenStijl). Hoe pak ik dit aan?
1 2 3 4 5 6 7 8 9 10 11 | function limitWords($text, $limit) { //Breek de tekst in array van woorden $words = explode(" ", $text); //Pak de woorden vanaf het begin van de tekst tot aan het limiet $words = array_slice($words, 0, $limit); //Plak de overgebleven woorden weer aan elkaar tot een tekst. return implode(" ", $words); } |
Met als je de OO principes nog niet snapt, zou ik beginnen met de basis van datastructuren et cetera, dit hoeft niet lang te duren maar dan snap je tenminste wat je doet.quote:Op zaterdag 18 februari 2017 23:55 schreef Skunk-m het volgende:
Ik kan niet zo snel een java topic vinden, maar waarom is java zo belachelijk ingewikkeld vergeleken met php/mysql/html/javascript.
Ik wou java gaan leren om beetje te kloten met het maken van android apps, ben nou een of andere tutorial van tweakers aan het volgen, maar het ziet er ten eerste allemaal onnodig ingewikkeld uit en bij die tweakers zo nu en dan challenges (dat hoort erbij) die echt totaal niks te maken hebben met wat je al gedaan hebt, en het grootste probleem nu even, is dat de code die hij krijgt als ie een standaard layout ding kiest totaal anders is als wat ik krijg (ziet er bij hem in mijn ogen stuk simpeler uit, maar uiteraard nog steeds ingewikkeld wat inherent is aan java in mijn noob-ogen) maar daar schiet ik dus verder niet heel veel mee op.
Maar heeft iemand een fatsoenlijke java/android tutorial? ik heb in php ook nog nooit OOP gedaan.
Het liefst zoals vroeger op school dat je wat lesmateriaal krijgt en tussendoor wat opdrachtjes, maar die moeten dan wel te maken hebben met wat je tot dan toe hebt geleerd uiteraard.
kheb paar weken terug tutorialtje gevolgd voor oop met php, in php weet ik wel hoe ik een class gebruik enzo, maar classes maken en de reden ervoor enzo dat begrijp ik niet helemaal ofzo, kan ik mn hersens nog niet omheen binden of hoe zeg je dat. maar ik heb nou een torrentje gedownload genaamd: intro to java programming by udacityquote:Op zondag 19 februari 2017 00:00 schreef FlippingCoin het volgende:
[..]
Met als je de OO principes nog niet snapt, zou ik beginnen met de basis van datastructuren et cetera, dit hoeft niet lang te duren maar dan snap je tenminste wat je doet.
Als je dat niet begrijpt, weet je ook nog niet hoe je het gebruikt.quote:Op zondag 19 februari 2017 00:03 schreef Skunk-m het volgende:
[..]
kheb paar weken terug tutorialtje gevolgd voor oop met php, in php weet ik wel hoe ik een class gebruik enzo, maar classes maken en de reden ervoor enzo dat begrijp ik niet helemaal ofzo, kan ik mn hersens nog niet omheen binden of hoe zeg je dat.
Zelf leer ik het liefst uit een boek, maar dat is compleet persoonlijk.quote:Op zondag 19 februari 2017 00:03 schreef Skunk-m het volgende:
[..]
kheb paar weken terug tutorialtje gevolgd voor oop met php, in php weet ik wel hoe ik een class gebruik enzo, maar classes maken en de reden ervoor enzo dat begrijp ik niet helemaal ofzo, kan ik mn hersens nog niet omheen binden of hoe zeg je dat. maar ik heb nou een torrentje gedownload genaamd: intro to java programming by udacity
ff kijken of dat wat is.
EDIT: zie nu een andere torrent met tutorial, ook van udacity genaamd developing android apps.. misschien is dat een betere voor mijn doeleinden.
Waarom gebruik je de limit parameter van explode niet? Dan krijg je een kleinere array terug, heb je splice ook niet meer nodig.quote:Op zaterdag 18 februari 2017 22:23 schreef BrainOverfloW het volgende:
[..]
Dat zou je met de volgende paar regels kunnen doen.
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php /** * @param string $text * @param int $limit * @return string */ function limitWords($text, $limit) { // Breek de tekst in array met $limit woorden (+ 1 voor de rest van de woorden in $text) $words = explode(' ', $text, $limit + 1); // Gooi de rest van de tekst weg, zodat er maximaal $limit woorden over blijven. // Dit gaat ook goed als $text minder dan $limit woorden bevat. unset($words[$limit]); //Plak de overgebleven woorden weer aan elkaar tot een tekst. return implode(' ', $words); } ?> |
Daar heb je dan weer interfaces voor.quote:Op zondag 19 februari 2017 01:52 schreef FlippingCoin het volgende:
Verder heeft een klasse voor een beginnend programmeur twee doelen, enerzijds fungeert het als een blauwdruk en anderzijds als een logische afscheiding.
Een interface is in mijn belevenis weer meer een contract waarin je afspreekt wat iets doet en wat het teruggeeft en nodig heeft, maar het niet boeit hoe het gebeurt.quote:Op zondag 19 februari 2017 08:11 schreef mstx het volgende:
[..]
Daar heb je dan weer interfaces voor.
De klasse ís de blauwdruk. Interfaces zijn net als overerving, traits, etc onderdelen van die blauwdruk.quote:Op zondag 19 februari 2017 08:11 schreef mstx het volgende:
[..]
Daar heb je dan weer interfaces voor.
Bedankt heldquote:Op zaterdag 18 februari 2017 22:23 schreef BrainOverfloW het volgende:
[..]
Dat zou je met de volgende paar regels kunnen doen.
[ code verwijderd ]
Omdat ik daar simpelweg niet aan gedacht heb. Zoals altijd zijn er meerdere manieren om probleem op te lossen.quote:Op zondag 19 februari 2017 02:10 schreef Light het volgende:
[..]
Waarom gebruik je de limit parameter van explode niet? Dan krijg je een kleinere array terug, heb je splice ook niet meer nodig.
[ code verwijderd ]
Heb ik toch niet goed genoeg opgeletquote:Op zondag 19 februari 2017 16:21 schreef BrainOverfloW het volgende:
[..]
Omdat ik daar simpelweg niet aan gedacht heb. Zoals altijd zijn er meerdere manieren om probleem op te lossen.
Echter zou ik zelf toch voor mijn oplossing blijven kiezen. Want hoewel je geen splice nodig hebt, heb je wel die unset nodig, dus qua regels code levert het je geen voordeel op.
Je krijgt er echter wel de onhandigheid voor terug dat arrays op positie 0 beginnen, terwijl de limit parameter vanaf 1 telt. Hierdoor moet je met '$limit + 1' gaan klooien om de juiste limiet te krijgen.
Je moet er dan echter wel weer bij stil staan dat door de 0 telling van de array het element met de af te knippen tekst een key heeft gelijk aan '$limit', niet aan '$limit + 1'. Anders word de rest van de tekst er weer vrolijk aangeplakt. Iets wat in jouw voorbeeld dus gebeurt is
Als het gaat om de complete werken van Shakespeare zou ik niet gaan afkappen op een aantal woorden, maar op een aantal letters (en dan terugzoeken naar de laatste spatie).quote:De mogelijkheid dat $words minder elementen heeft dan de $limit is geen issue aangezien array_slice dan gewoon alle elementen terug geeft.
Dat je zonder limiet op je explode een grotere array terug krijgt lijkt me ook niet echt een issue als je de overbodige elementen er de volgende regel toch uit gooit en tenzij je de complete werken van Shakespear wil gaan exploden zal het qua performance ook geen merkbaar verschil hebben schat ik zo in.
https://dev.mysql.com/doc(...)unction_group-concatquote:Op donderdag 9 maart 2017 10:47 schreef EDMAN- het volgende:
MySQL n00b hier met een vraagje.
Ik heb 1 tabel 'Verpakkingen' met 60,000 artikelen. Één artikelnummer kan verschillende verpakkingen hebben uiteraard:
Artikel nummer 1. Artikelverpakking: Doos, Container, Fles, Box
D.w.z.: 4 regels met hetzelfde nummer.
Hoe kan ik hier 1 regel van maken?
Artikelnummer 1 - Doos, Container, Fles, Box
Artikelnummer 2 - Fles, Doos
etc.
Dank alvast
Thanks! Daar heb ik ook zitten kijken, maar kwam er niet helemaal uit. Nu een halfbakken oplossing (alles in 1 veld met scheidingsteken) naar de collega gestuurd. In excel kan hij er wel losse velden van maken.quote:Op donderdag 9 maart 2017 12:33 schreef mstx het volgende:
[..]
https://dev.mysql.com/doc(...)unction_group-concat
Zo te zien is dit MS SQL? Dan is het niet zo gek dat MySQL functies niet werken.quote:Op donderdag 9 maart 2017 13:27 schreef EDMAN- het volgende:
[..]
Thanks! Daar heb ik ook zitten kijken, maar kwam er niet helemaal uit. Nu een halfbakken oplossing (alles in 1 veld met scheidingsteken) naar de collega gestuurd. In excel kan hij er wel losse velden van maken.
Vraag:
Klant wil 1 artikelnummer per regel, met daarachter de gegevens
Eerst function aangemaakt: ArtVerpList
Go
ALTER Function dbo.ArtVerpList(@Artikelnummer as varchar(25))
RETURNS varchar(MAX)
AS
BEGIN
DECLARE @List varchar(100)
SELECT @List = COALESCE(@List + ' | ', '') +
CAST(Verpakking AS varchar(15)) + ', ' + CAST(Gewicht as varchar(20)) + ', ' + CAST(Factor as varchar(20))
FROM ArtikelVerpakkingen
WHERE Artikelnummer=@Artikelnummer
ORDER BY Verpakking
RETURN @List
END
GO
SELECT Artikelnummer, Verpakkingen=dbo.ArtVerpList(Artikelnummer)
FROM ArtikelVerpakkingen
GROUP BY Artikelnummer
ORDER BY Artikelnummer
Uitkomst:
Artikelnummer Verpakkingen
000001 ST, 0.00, 1.00
000002 M2, 213.00, 1.00 | ST, 213.00, 1.00
000003 ST, 600.00, 1.00
000004 LG, 108.00, 60.00 | M2, 135.00, 76.00 | PAK, 1080.00, 600.00 | ST, 1.80, 1.00
Zoals gezegd, ben een n00b. Ik dacht dat hetzelfde wasquote:Op donderdag 9 maart 2017 15:09 schreef mstx het volgende:
[..]
Zo te zien is dit MS SQL? Dan is het niet zo gek dat MySQL functies niet werken.
Nee de basis SQL-functies zoals SELECT/UPDATE/INSERT zijn vaak het zelfde, maar daar houden de overeenkomsten tussen de verschillende implementaties (MySQL/MSSQL/Postgres etc) wel ongeveer opquote:Op donderdag 9 maart 2017 15:14 schreef EDMAN- het volgende:
[..]
Zoals gezegd, ben een n00b. Ik dacht dat hetzelfde was
1 | git push |
1 | git push --set-upstream origin <branchName> |
Je kan toch gewoon git checkout -b branchnaam doen en deze dan pushen naar origin?quote:Op vrijdag 28 april 2017 15:28 schreef BrainOverfloW het volgende:
Even een vraagje over het gebruik van Git. Hoewel dat hier een beetje off-topic ligt, gok ik er op dat er hier wel ontwikkelaars tussen zitten die ook Git gebruiken.
Als ik in een bestaande branch werk kan ik mijn update naar remote sturen met
[ code verwijderd ]
werk ik echter in een nieuwe branch die nog nooit naar remote gestuurd is moet ik deze aanmaken met:
[ code verwijderd ]
Bestaat er een enkel commando dat zegt, push naar brach, als deze niet bestaat, maak de branch automatisch aan?
Als ik dat doe met een branch die nog niet bestaat op origin, krijg ik een melding dat ik die branch via de set-upstream aan moet maken op origin.quote:Op zaterdag 29 april 2017 00:20 schreef FlippingCoin het volgende:
[..]
Je kan toch gewoon git checkout -b branchnaam doen en deze dan pushen naar origin?
Die lijkt sowieso wel handig en leuk gevonden.quote:Op zaterdag 29 april 2017 00:17 schreef KomtTijd... het volgende:
Die ken ik niet. Maar thefuck komt er aardig in de buurt: https://github.com/nvbn/thefuck
Lijkt mij veel moeit voor weinig, zo vaak maak je nou ook weer niet een branch aan, en het scheelt een commando.quote:Op zaterdag 29 april 2017 00:41 schreef BrainOverfloW het volgende:
[..]
Als ik dat doe met een branch die nog niet bestaat op origin, krijg ik een melding dat ik die branch via de set-upstream aan moet maken op origin.
Het leek mij handig om één commando onder mijn alias te hebben die pushed ongeacht of die branch die ik wil pushen al bestaat op origin of nog aangemaakt moet worden.
Ik vind het interessant om mijn workflow zo vloeiend mogelijk te krijgen. Als er zo'n commando geweest zou zijn had ik die in mijn aliasses om kunnen wisselen en was ik weer een stap kwijt juist zonder veel moeite te hoeven doen.quote:Op zaterdag 29 april 2017 00:45 schreef FlippingCoin het volgende:
[..]
Lijkt mij veel moeit voor weinig, zo vaak maak je nou ook weer niet een branch aan, en het scheelt een commando.
Ja ik werk ook vaak met verschillende branches, en een workflow optimaliseren is wel cool inderdaad. Heb je al automated building en testing et cetera?quote:Op zaterdag 29 april 2017 01:13 schreef BrainOverfloW het volgende:
[..]
Ik vind het interessant om mijn workflow zo vloeiend mogelijk te krijgen. Als er zo'n commando geweest zou zijn had ik die in mijn aliasses om kunnen wisselen en was ik weer een stap kwijt juist zonder veel moeite te hoeven doen.
Sowieso ligt je hoeveelheid nieuwe branches ook maar net aan je werkwijze. Ik heb vaak een grotere feature waar ik enkele dagen/weken aan werk. In de tussentijd komen er dan kleinere features, wijzigingen en bugfixes voorbij die ik dan in losse branches bouw en naar de server push. Dus ik zit makkelijk op meerdere branches per week.
Losse bugfixes, aanpassingen en nieuwe kleine features waar ik
Ja we hebben al scripts via Gulp en Webpack draaien die alle asset afhandeling doet en zo. Momenteel ben ik nog bezig om testing goed onder de knie te krijgen.quote:Op zaterdag 29 april 2017 01:14 schreef FlippingCoin het volgende:
[..]
Ja ik werk ook vaak met verschillende branches, en een workflow optimaliseren is wel cool inderdaad. Heb je al automated building en testing et cetera?
Ah, ik laat nu het compilen, testen en deployen door Jenkins regelen, verder nog niet veel gekeken wat er nog meer mogelijk is.quote:Op zaterdag 29 april 2017 01:18 schreef BrainOverfloW het volgende:
[..]
Ja we hebben al scripts via Gulp en Webpack draaien die alle asset afhandeling doet en zo. Momenteel ben ik nog bezig om testing goed onder de knie te krijgen.
Jenkins en build tools als gulp en webpack vullen elkaar aan.quote:Op zaterdag 29 april 2017 01:27 schreef FlippingCoin het volgende:
[..]
Ah, ik laat nu het compilen, testen en deployen door Jenkins regelen, verder nog niet veel gekeken wat er nog meer mogelijk is.
Gebruik maken van url encoding.quote:Op zaterdag 20 mei 2017 16:15 schreef Chandler het volgende:
Hey all, alweer een tijdje geleden dat ik een vraagje had maar nu heb ik er weer 1
Ik gebruik deze regex voor urls parsen
RewriteRule ^huisje/([^/.]+)/([^/.]+)/([^/.]+)?.html$
de eerste regex is voor provincie
2e is voor stad
3e is voor de naam.
Echter komt er in de stad wel eens een slash (/) voor, hoe moet ik hier mee omgaan? want de URL's werken niet met deze regex en logisch gezien ook niet anders... Hoe zouden jullie dit aanpakken?
Een plaatsnaam met een slash? Hebben we die in Nederland?quote:Op zaterdag 20 mei 2017 16:15 schreef Chandler het volgende:
Hey all, alweer een tijdje geleden dat ik een vraagje had maar nu heb ik er weer 1
Ik gebruik deze regex voor urls parsen
RewriteRule ^huisje/([^/.]+)/([^/.]+)/([^/.]+)?.html$
de eerste regex is voor provincie
2e is voor stad
3e is voor de naam.
Echter komt er in de stad wel eens een slash (/) voor, hoe moet ik hier mee omgaan? want de URL's werken niet met deze regex en logisch gezien ook niet anders... Hoe zouden jullie dit aanpakken?
Dat doe ik reeds, maar helaas geeft dat niet de oplossing.quote:
Misschien loop je hier tegenaan mbt encoded slashes.quote:Op zaterdag 20 mei 2017 16:15 schreef Chandler het volgende:
Hey all, alweer een tijdje geleden dat ik een vraagje had maar nu heb ik er weer 1
Ik gebruik deze regex voor urls parsen
RewriteRule ^huisje/([^/.]+)/([^/.]+)/([^/.]+)?.html$
de eerste regex is voor provincie
2e is voor stad
3e is voor de naam.
Echter komt er in de stad wel eens een slash (/) voor, hoe moet ik hier mee omgaan? want de URL's werken niet met deze regex en logisch gezien ook niet anders... Hoe zouden jullie dit aanpakken?
ik heb dat nog nooit voorbij zien komen, heb je een voorbeeldje?quote:Op zondag 21 mei 2017 09:59 schreef Chandler het volgende:
[..]
Dat doe ik reeds, maar helaas geeft dat niet de oplossing.
@Light: blijkbaar in Duitsland...
Dat is inderdaad het probleem!! en daarvoor moet ik dus een 'oplossing' zoeken...quote:Op zondag 21 mei 2017 10:14 schreef zoem het volgende:
Misschien loop je hier tegenaan mbt encoded slashes.
Lanitz-Hassel-Tal / Spielberg is een voorbeeld naam... en idd ik denk dat ik die naam maar moet veranderen....quote:Op zondag 21 mei 2017 10:18 schreef mschol het volgende:
ik heb dat nog nooit voorbij zien komen, heb je een voorbeeldje?
kan je de / niet vervangen door een -?
Ah, daar wel, bijvoorbeeld Frankfurt/Main en Frankfurt/Oder.quote:Op zondag 21 mei 2017 09:59 schreef Chandler het volgende:
[..]
Dat doe ik reeds, maar helaas geeft dat niet de oplossing.
@Light: blijkbaar in Duitsland...
Een ander teken gebruiken lijkt me niet handig, dat zorgt voor verwarring bij de gebruikers. Wat zoem verder voorstelde, de afhandeling (grotendeels) naar php verplaatsen, lijkt me handiger.quote:Op zondag 21 mei 2017 10:46 schreef Chandler het volgende:
[..]
Dat is inderdaad het probleem!! en daarvoor moet ik dus een 'oplossing' zoeken...
Wat is nu wijsheid.... database aanpassen mbt / (kan ik natuurlijk bij opbouw van deze database vervangen door een andere teken) of.....
[..]
Lanitz-Hassel-Tal / Spielberg is een voorbeeld naam... en idd ik denk dat ik die naam maar moet veranderen....
Dat of even aan de slag met de allowencodedslashes in mod rewrite inderdaad. Volgens mij heb ik dat een jaar geleden ook nog een keer op die manier opgelost.quote:Op zondag 21 mei 2017 10:54 schreef Light het volgende:
[..]
Een ander teken gebruiken lijkt me niet handig, dat zorgt voor verwarring bij de gebruikers. Wat zoem verder voorstelde, de afhandeling (grotendeels) naar php verplaatsen, lijkt me handiger.
dat lijkt gemeente / plaatsnaam te zijn...quote:Op zondag 21 mei 2017 10:46 schreef Chandler het volgende:
[..]
Dat is inderdaad het probleem!! en daarvoor moet ik dus een 'oplossing' zoeken...
Wat is nu wijsheid.... database aanpassen mbt / (kan ik natuurlijk bij opbouw van deze database vervangen door een andere teken) of.....
[..]
Lanitz-Hassel-Tal / Spielberg is een voorbeeld naam... en idd ik denk dat ik die naam maar moet veranderen....
Gemakkelijker om drop table te zeggen dan de selectie die net dood is een query voor te schrijven.quote:
NodeJS is geen taal. JavaScript is de taal, NodeJS is een runtime.quote:Op vrijdag 7 juli 2017 19:04 schreef DevFreak het volgende:
Wtf. Iedereen over op speelgoedtaal NodeJS ofzo?
Anyway, voor degenen die dit lezen,
Ik ben bezig met een nieuw framework en ben nu bezig met een nieuwe implementatie van een authenticatiesysteem.
iknow, ik mag wel wat preciezer zijnquote:Op vrijdag 7 juli 2017 19:08 schreef Monolith het volgende:
[..]
NodeJS is geen taal. JavaScript is de taal, NodeJS is een runtime.
Overigens is speelgoedtaal ook hoe de gemiddelde ontwikkelaar in een wat serieuzere taal over PHP denkt.
Ligt eraan wat je met een taal doet natuurlijkquote:Overigens is speelgoedtaal ook hoe de gemiddelde ontwikkelaar in een wat serieuzere taal over PHP denkt.
Afgezien van het beperkte toepassingsgebied van een taal als PHP is het grootste manco van de taal net als bij JavaScript gewoon dat er heel veel mis is met het fundament. Het is en blijft een laagdrempelig mengelmoesje van een niet al te consistente C wrapper en een halfbakken poging om OO principes uit Java over te nemen.quote:Op vrijdag 7 juli 2017 19:35 schreef DevFreak het volgende:
[..]
iknow, ik mag wel wat preciezer zijn
[..]
Ligt eraan wat je met een taal doet natuurlijk
De meeste webdevelopers die in C# schrijven hebben ooit PHP 5.x aangeraakt en ja, in vergelijking met PHP 7.x zit daar een wereld van verschil. Als ze vervolgens zeggen dat het geen multithreading/websockets ondersteund begin ik al hard te lachen.
Ik zie gebrek aan kennis toch wel als een bedreiging voor de PHP community. Daardoor zitten we nu opgezadeld met troep zoals NodeJS.
Wat wil je bereiken?quote:Op vrijdag 28 april 2017 15:28 schreef BrainOverfloW het volgende:
Even een vraagje over het gebruik van Git. Hoewel dat hier een beetje off-topic ligt, gok ik er op dat er hier wel ontwikkelaars tussen zitten die ook Git gebruiken.
Als ik in een bestaande branch werk kan ik mijn update naar remote sturen met
[ code verwijderd ]
werk ik echter in een nieuwe branch die nog nooit naar remote gestuurd is moet ik deze aanmaken met:
[ code verwijderd ]
Bestaat er een enkel commando dat zegt, push naar brach, als deze niet bestaat, maak de branch automatisch aan?
1 2 3 4 5 6 7 8 | git checkout -t upstream/mainline -b naam-van-de-tak git push origin naam-van-de-tak:naam-van-de-tak # fiddle fiddle git add foo/bar git commit -m "Mooie commit message" git push origin naam-van-de-tak:naam-van-de-tak |
Wat ik, inmiddels succesvol, wou bereiken is dat ik zonder nadenken commando's af kan vuren in mijn terminal om dingen van/naar git te sturen.quote:Op vrijdag 14 juli 2017 13:30 schreef slacker_nl het volgende:
[..]
Wat wil je bereiken?
Ik heb zelf de volgende workflow, upstream is de upstream repo, origin is m'n eigen repo
[ code verwijderd ]
Ik snap niet waarom je --set-upstream in je push gooit. Dat is (volgens mij) alleen nodig om de branch te tracken, maw, als je een git pull doet dat je van die specifieke remote die specifieke branch bij pulled.
Ik gebruik tracking branches om zo de upstream variant te kunnen volgen en net voor m'n final MR een rebase te kunnen uitvoeren waardoor de tree schoon blijft van merges.
1 2 3 4 5 6 7 8 9 10 11 12 | # Ik zit in een up-to-date master gcb newFeature # git checkout -b newFeature # Werk aan de feature gac "Feature doet dit & dat" # git commit -am "Feature doet dit & dat" gps # git push # Hier gaat Git, als het de eerste push is, zeuren dat ik # 'git push --set-upstream origin newFeature' moet gebruiken fuck # Git pushed als nog met de upstream. |
Ja die werkt prima, dank voor de tip .quote:Op vrijdag 14 juli 2017 17:20 schreef KomtTijd... het volgende:
Ja lekker is die he? Daar gebruik ik fuck ook het meest voor.
Ik moet ook nog eens wat handige aliases voor git commando's invoeren. -am gebruik ik nooit meer trouwens, dat heeft me iets te vaak in de kont gebeten met onbedoelde diffs.
Sorry, ik ben een aantal dagen "off the line" geweest.quote:Op vrijdag 7 juli 2017 19:57 schreef Monolith het volgende:
[..]
Afgezien van het beperkte toepassingsgebied van een taal als PHP is het grootste manco van de taal net als bij JavaScript gewoon dat er heel veel mis is met het fundament. Het is en blijft een laagdrempelig mengelmoesje van een niet al te consistente C wrapper en een halfbakken poging om OO principes uit Java over te nemen.
Net als bij JavaScript zijn er wel heel wat frameworks en libraries die de problemen met het fundament repareren, maar het laat zo veel ruimte over voor enorm slechte code dat dat in de praktijk ook erg gebruikelijk is.
Ik heb er zelf ook al tijden niets meer mee gedaan, maar als ik zo even zoek op multithreading in PHP kom ik uit op pthreads. Als ik dat lees dan komt dat in de verste verte niet in de buurt bij wat volwassen talen als C# en Java bieden. Dit is echt de minimale implementatie die 20 jaar geleden al in Java zat.
C# had ik overigens ook al een jaar of acht niet meer gedaan, maar recentelijk weer een project mee gedaan en die taal heeft echt wel flinke stappen gemaakt.
Java is wat conservatiever qua ontwikkeling ook ivm backwards compatibility, maar de kracht van de JVM is dan weer dat je er ook gewoon andere talen op kunt bouwen die de gigantische diversiteit aan Java libraries kunnen gebruiken, dus als Java als taal je niet bevalt pak je Scala of Kotlin.
Gewoon de Javascript client van SignalR gebruiken in je PHP applicatie als je staat op PHP.quote:Op zondag 16 juli 2017 16:24 schreef DevFreak het volgende:
[..]
Sorry, ik ben een aantal dagen "off the line" geweest.
C# heeft zeker grote stappen gemaakt. Kijk alleen al hoe gemakkelijk MS het heeft gemaakt om asynchroom te programmeren.
Ik zit er over na te denken een klein spelletje o.i.d. te maken en zou graag een combinatie willen zien van PHP en SignalR (webpagina's serven en authenticatie etc. met PHP, en SignalR integreren). Ik zou ook over kunnen gaan op ASP.NET, maar ik blijf liever gebruik maken van PHP.
Ik denk dat het technisch wel mogelijk zou moeten zijn maar heb op het moment nog geen idee hoe dit vorm zou kunnen geven.
Ik zit te denken aan iets heel simpels zoals boter-kaas en eieren spelletje of een chatprogramma, zodat ik mezelf eindelijk eens bekend kan maken met SignalR. Heb er al veel over gelezen en gehoord en heb het ook al in actie gezien. Ik kan er behoorlijk enthausiast van worden.quote:Op zondag 16 juli 2017 16:55 schreef Monolith het volgende:
[..]
Gewoon de Javascript client van SignalR gebruiken in je PHP applicatie als je staat op PHP.
Of simpelweg gewoon zelf websockets gebruiken. Ik weet niet wat je precies wilt gaan doen verder, maar er zijn vast de nodige PHP libraries te vinden die daarvoor al wat basisfunctionaliteit bieden.
Er is geloof ik ook een .Net Core variant van SignalR, dus die is dan cross platform en niet afhankelijk van een Windows server.quote:Op zondag 16 juli 2017 17:09 schreef DevFreak het volgende:
[..]
Ik zit te denken aan iets heel simpels zoals boter-kaas en eieren spelletje of een chatprogramma, zodat ik mezelf eindelijk eens bekend kan maken met SignalR. Heb er al veel over gelezen en gehoord en heb het ook al in actie gezien. Ik kan er behoorlijk enthausiast van worden.
Mijn kennis van ASP.NET is echter beperkt dus daarom blijf ik voor simpele dingen als het serveren van webpagina's en inloggen liever nog even hangen op PHP. Maar dan is dus de vraag hoe je het C# programma beveiligd. Ik moet nog even uitzoeken hoe dit allemaal zit. Op basis van wat ik tot nu toe gezien heb, heb je sowieso IIS/Azure nodig.
Laravel REST en dan is het verder weinig boeiend wat voor frontend er tegenaan babbelt. Zou zelf voor React gaan. Veel mooier in de zin hoe het omgaat met verschillende statussen waar je applicatie zich bevindt,quote:Op zondag 16 juli 2017 17:29 schreef Monolith het volgende:
[..]
Er is geloof ik ook een .Net Core variant van SignalR, dus die is dan cross platform en niet afhankelijk van een Windows server.
Als je toch met SignalR aan de slag gaat zou ik eerlijk gezegd PHP er toch echt wel tussenuit knikkeren. Als je in PHP fatsoenlijke applicaties bouwt met bijvoorbeeld een MVC structuur, dan is dat in C# niet heel anders. Bouw je front-end in iets als Angular en bouw back-end services gewoon als REST.
Ja, maar het gaat hier om het gebruik maken van SignalR. Dan moet je toch is C# gaan ontwikkelen en is een PHP laagje voor andere zaken eigenlijk loze ballast.quote:Op zondag 16 juli 2017 17:56 schreef Boze_Appel het volgende:
[..]
Laravel REST en dan is het verder weinig boeiend wat voor frontend er tegenaan babbelt. Zou zelf voor React gaan. Veel mooier in de zin hoe het omgaat met verschillende statussen waar je applicatie zich bevindt,
Oh, sorry, my bad, ik dacht dat ik in het PHP/MySQL-topic zat.quote:Op zondag 16 juli 2017 18:00 schreef Monolith het volgende:
[..]
Ja, maar het gaat hier om het gebruik maken van SignalR. Dan moet je toch is C# gaan ontwikkelen en is een PHP laagje voor andere zaken eigenlijk loze ballast.
Ik zou eens kijken naar zoiets:
https://docs.microsoft.co(...)cations-with-signalr
Het afraden van PHP past ook prima in zo'n topic.quote:Op zondag 16 juli 2017 18:01 schreef Boze_Appel het volgende:
[..]
Oh, sorry, my bad, ik dacht dat ik in het PHP/MySQL-topic zat.
Jaja, Bart.quote:Op zondag 16 juli 2017 18:03 schreef Monolith het volgende:
[..]
Het afraden van PHP past ook prima in zo'n topic.
Omtrent React speelt overigens wat gedoe met licensing.quote:Op zondag 16 juli 2017 17:56 schreef Boze_Appel het volgende:
[..]
Laravel REST en dan is het verder weinig boeiend wat voor frontend er tegenaan babbelt. Zou zelf voor React gaan. Veel mooier in de zin hoe het omgaat met verschillende statussen waar je applicatie zich bevindt,
Ja, ze zijn aan het zijkwijven, dat weet ik. Denk niet dat het ergens heen gaat. Het is spierballen laten zien.quote:Op maandag 17 juli 2017 18:09 schreef Monolith het volgende:
[..]
Omtrent React speelt overigens wat gedoe met licensing.
Ik heb voor het up-to-date houden van m'n master niks nodig, ik fetch gewoon 1x per dag m'n upstream en dan ben ik "bij", voordat ik m'n code aanbied rebase ik en dan is het klaar.quote:Op vrijdag 14 juli 2017 14:31 schreef BrainOverfloW het volgende:
[..]
Wat ik, inmiddels succesvol, wou bereiken is dat ik zonder nadenken commando's af kan vuren in mijn terminal om dingen van/naar git te sturen.
Die upstream melding onderbrak dat steeds omdat Git dan zeurt dat de stream niet bestaat. Dan moet ik met de cursor de suggestie selecteren en plakken om door te kunnen.
Nu met de suggestie van KomtTijd... kan ik voor iedere branch de zelfde serie commando's door blijven typen tot het gepushed is.
Wat ik nu doe, met zelfgemaakte shortcodes, is
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | nr FOO-XXXXX Dit is mijn vet kekke feature of bug branch # vim vim vim git gui # dit werkt zoveel fijner dan git add -p # Dit kan je automaten, maar .. meh. git co sprint git reset --hard upstream/sprint git merge - git push upstream sprint:sprint # Rinse repeat nr FOO-XXXXX Nog meer dingen |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | nr=alias new_repo upstream/master new_repo () { if [ $# -lt 3 ] then echo "Empty branch, ticket or name" >&2 return 1 fi local branch=$1 local ticket=$2 shift shift local name=$(echo $@ | sed -e 's/ \+/_/g') ticket=$(echo $ticket | sed -e 's/^FOO\-\?//i') local br="FOO-$ticket-$name" git co -t $branch -b "$br" if [ $? -eq 0 ] then git push origin "$br:$br" fi } |
Het klinkt alsof je een query uitvoert waar je geen goede indexes voor hebt. Dan moet MySQL een full table scan doen, en met 120 miljoen rijen duurt dat even. Ik zou beginnen met een EXPLAIN SELECT voor die zware query om te zien waar de verbeteringen kunnen worden gedaan.quote:Op zaterdag 2 september 2017 10:28 schreef bondage het volgende:
Iemand hier een idee of een MyISAM tabel gebruik kan maken van meerdere threads? Ik kan er bijzonder weinig over vinden en het meeste is oude meuk. Wat ik wel kan vinden is dat het beter is over stappen op InnoDB, deze engine zou dat wel moeten kunnen.
Ik vraag dit omdat mij opvalt dat MySQL maar een enkele core gebruikt als ik een zware query uitvoer, het doorzoeken van een DB met 120.000.000 records duurt dan ook onnodig lang.
[ afbeelding ]
Voordat ik de tabel om ga zetten (tijdrovende klus) wil ik echter zeker weten of het gaat helpen of dat het eventueel toch mogelijk is met MyISAM.
De serverversie die ik gebruik is: 5.7.19-0ubuntu0.16.04.1
Er zit een index op het veld waar ik op query. Ik heb een hele simpele uitgevoerd, dit duurt ongeveer een halve minuut om weer te geven...quote:Op zondag 3 september 2017 09:50 schreef Light het volgende:
[..]
Het klinkt alsof je een query uitvoert waar je geen goede indexes voor hebt. Dan moet MySQL een full table scan doen, en met 120 miljoen rijen duurt dat even. Ik zou beginnen met een EXPLAIN SELECT voor die zware query om te zien waar de verbeteringen kunnen worden gedaan.
1 2 | id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE fok_post NULL ref year year 2 const 12029801 100.00 NULL |
Gewoon, zo: SELECT * FROM `fok_post` WHERE `year` = 2012quote:Op zondag 3 september 2017 10:23 schreef zoem het volgende:
In de EXPLAIN kun je zien dat MySQL 12M rows moet doorzoeken, dus dat is niet efficient. Hoe ziet de query eruit? Overigens kan een index op jaartal relatief inefficiënt zijn door de lage selectiviteit.
1 | SELECT * FROM fok_post WHERE year = 2012 |
1 | SELECT * FROM fok_post WHERE id < 12000000 |
Als hij een full scan doet lijkt me het nog redelijk snel... Op zich maakt het niet zoveel uit dat het 30 sec. duurt voordat Sphinx de resultaten heeft, het viel me gewoon op dat ik weinig verschil merk ten opzichte van mijn vorige server en dat er slechts één core wordt gebruikt als ik de query uitvoer.quote:Op zondag 3 september 2017 10:52 schreef zoem het volgende:
Id's zijn uniek, dus logisch dat je vrijwel instant resultaat hebt. Bij de jaartallen zijn er waarschijnlijk ~20 unieke waardes, dus het kan zijn dat de optimizer kiest voor een full table scan. Gezien filtered op 100% staat lijkt dat ook het geval te zijn.
quote:Op zondag 3 september 2017 10:57 schreef Light het volgende:
Sowieso zou ik de snelheden van queries als
[ code verwijderd ]
[ code verwijderd ]
Dan neem ik aan dat je in beide gevallen ongeveer evenveel records terugkrijgt. (Dat kun je nog vergelijken met een SELECT COUNT(*))
Data transfer bij zulke aantallen rijen is ook een belangrijke factor.
1 | SELECT * FROM fok_post WHERE id < 12000000 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | root@thuisserver:~# hdparm -Tt /dev/sda /dev/sda: Timing cached reads: 16568 MB in 2.00 seconds = 8291.40 MB/sec Timing buffered disk reads: 594 MB in 3.00 seconds = 197.76 MB/sec root@thuisserver:~# time sh -c "dd if=/dev/zero of=testfile bs=100k count=1k && sync" 1024+0 records in 1024+0 records out 104857600 bytes (105 MB, 100 MiB) copied, 0.0728517 s, 1.4 GB/s real 0m0.774s user 0m0.008s sys 0m0.072s |
Ik ga een kopie van de tabel maken en hem omzetten, kan ik eea testen. Het omzetten gaat een middagje duren denk ik...quote:Op zondag 3 september 2017 11:31 schreef zoem het volgende:
Naar InnoDB converteren zou ik zelf wel gedaan hebben. MyISAM wordt niet echt meer doorontwikkeld en in MySQL 5.6+ kent MyISAM amper nog voordelen boven InnoDB.
Ik vrees dat je deze query met de huidige dataset niet kan versnellen. Wellicht valt de data anders op te vragen (in batches met year=A and id BETWEEN x AND y) of kijken of partitioning iets kan betekenen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | object(InstagramAPI\Response\DirectInboxResponse)#637 (3) { ["httpResponse"]=> object(GuzzleHttp\Psr7\Response)#645 (6) {*knip*} ["_compiledPropertyMapLink":"LazyJsonMapper\LazyJsonMapper":private]=> &array(9) {*knip*} ["_objectData":"LazyJsonMapper\LazyJsonMapper":private]=> array(5) { ["inbox"]=> array(5) { ["threads"]=> array(20) { array(27) { ["thread_id"]=> string(39) "340282366841710300949128162281775301401" ["users"]=> array(1) { [0]=> array(9) { ["pk"]=> int(12345678) *knip* } } } |
Als ik moet gokken $test->getInbox()->getThreads()quote:Op dinsdag 20 februari 2018 22:47 schreef qu63 het volgende:
Topic is al wat langer stil, maar ik hoop toch dat jullie me kunnen helpen..
Uit een var_dump($test) komt het volgende naar voren:
[ code verwijderd ]
Hoe kan ik die 20 arrays in 'threads' nu benaderen?
print_r($test->inbox->threads) geeft geen resultaat..
Ik vermoed zelf dat het het te maken heeft met die ':private', maar hoe ik daar omheen kan werken.....
Na de threads array komen nog 4 arrays, deze weggelaten omdat deze niet relevant zijn. De code hier is dus niet volledig, maar dat maakt niet uit voor hoe ik die array wil benaderen.
Ja, dat dacht ik dus ook.....quote:Op dinsdag 20 februari 2018 22:58 schreef WyriHaximus het volgende:
[..]
Als ik moet gokken $test->getInbox()->getThreads()
https://github.com/mgp25/(...)nboxResponse.php#L10
https://github.com/mgp25/(...)/DirectInbox.php#L12
1 | AH01071: Got error 'PHP message: PHP Fatal error: Uncaught LazyJsonMapper\\Exception\\LazyJsonMapperException: Unknown function "getThreads". in *bla*/LazyJsonMapper.php:2099\nStack trace:\n#0 *bla*.php(134): LazyJsonMapper\\LazyJsonMapper->__call('getThreads', Array)\n#1 {main}\n thrown in*bla*LazyJsonMapper.php on line 2099\n' |
Ok maar wat geeft var_dump($test->getInbox()); dan als class terug?quote:Op dinsdag 20 februari 2018 23:01 schreef qu63 het volgende:
[..]
Ja, dat dacht ik dus ook.....
[ code verwijderd ]
var_dump($test->getInbox()->getThreads()); geeft:quote:Op dinsdag 20 februari 2018 23:03 schreef WyriHaximus het volgende:
[..]
Ok maar wat geeft var_dump($test->getInbox()); dan als class terug?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | array(20) { [0]=> object(InstagramAPI\Response\Model\DirectThread)#637 (2) { ["_compiledPropertyMapLink":"LazyJsonMapper\LazyJsonMapper":private]=> &array(29) { *blablabullshit* } ["_objectData":"LazyJsonMapper\LazyJsonMapper":private]=> array(27) { ["thread_id"]=> string(39) "123456789123456789123456789123456789123456" ["users"]=> array(1) {} *etc etc etc* } } } En dan nog 19 andere arrays met dezelfde opmaak... |
Je hebt 20 instances van DirectThread in je array zitten. Dus foreach (test->getInbox()->getThreads() as $thread) {$thread->method()} en je kunt $thread aanspreken.quote:Op dinsdag 20 februari 2018 23:14 schreef qu63 het volgende:
[..]
var_dump($test->getInbox()->getThreads()); geeft:
[ code verwijderd ]
quote:Op dinsdag 20 februari 2018 23:18 schreef WyriHaximus het volgende:
[..]
Je hebt 20 instances van DirectThread in je array zitten. Dus foreach (test->getInbox()->getThreads() as $thread) {$thread->method()} en je kunt $thread aanspreken.
1 2 3 4 | foreach ($test->getInbox()->getThreads() as $thread123) { $thread123->method(); } |
1 | AH01071: Got error 'PHP message: PHP Fatal error: Uncaught LazyJsonMapper\\Exception\\LazyJsonMapperException: Unknown function "method". in blabla.php |
Hij bedoelde de method die je wil gebruiken. Nu heb ik de voorgeschiedenis niet gelezen,maar ik denk dat je de inhoud wil zien?quote:Op dinsdag 20 februari 2018 23:34 schreef qu63 het volgende:
[..]
[ code verwijderd ]
[ code verwijderd ]
T irritante is dat ik wéét dat ik dichtbij zit, maar het werkt dus net niet.. In een var_dump komt alle info voorbij die ik wil hebben, ik kan deze alleen neit direct benaderen omdat ze dus in een "["_objectData":"LazyJsonMapper\LazyJsonMapper":private]" array zitten..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | /** * DirectThreadItem. * * @method ActionLog getActionLog() * @method string getClientContext() * @method DirectExpiringSummary getExpiringMediaActionSummary() * @method mixed getHideInThread() * @method string getItemId() * @method mixed getItemType() * @method mixed getLike() * @method DirectLink getLink() * @method mixed getLiveVideoShare() * @method Location getLocation() * @method DirectThreadItemMedia getMedia() * @method Item getMediaShare() * @method Placeholder getPlaceholder() * @method Item[] getPreviewMedias() * @method User getProfile() * @method Item getRavenMedia() * @method DirectReactions getReactions() * @method ReelShare getReelShare() * @method string[] getSeenUserIds() * @method StoryShare getStoryShare() * @method string getText() * @method mixed getTimestamp() * @method string getUserId() * @method bool isActionLog() * @method bool isClientContext() * @method bool isExpiringMediaActionSummary() * @method bool isHideInThread() * @method bool isItemId() * @method bool isItemType() * @method bool isLike() * @method bool isLink() * @method bool isLiveVideoShare() * @method bool isLocation() * @method bool isMedia() * @method bool isMediaShare() * @method bool isPlaceholder() * @method bool isPreviewMedias() * @method bool isProfile() * @method bool isRavenMedia() * @method bool isReactions() * @method bool isReelShare() * @method bool isSeenUserIds() * @method bool isStoryShare() * @method bool isText() * @method bool isTimestamp() * @method bool isUserId() * @method $this setActionLog(ActionLog $value) * @method $this setClientContext(string $value) * @method $this setExpiringMediaActionSummary(DirectExpiringSummary $value) * @method $this setHideInThread(mixed $value) * @method $this setItemId(string $value) * @method $this setItemType(mixed $value) * @method $this setLike(mixed $value) * @method $this setLink(DirectLink $value) * @method $this setLiveVideoShare(mixed $value) * @method $this setLocation(Location $value) * @method $this setMedia(DirectThreadItemMedia $value) * @method $this setMediaShare(Item $value) * @method $this setPlaceholder(Placeholder $value) * @method $this setPreviewMedias(Item[] $value) * @method $this setProfile(User $value) * @method $this setRavenMedia(Item $value) * @method $this setReactions(DirectReactions $value) * @method $this setReelShare(ReelShare $value) * @method $this setSeenUserIds(string[] $value) * @method $this setStoryShare(StoryShare $value) * @method $this setText(string $value) * @method $this setTimestamp(mixed $value) * @method $this setUserId(string $value) * @method $this unsetActionLog() * @method $this unsetClientContext() * @method $this unsetExpiringMediaActionSummary() * @method $this unsetHideInThread() * @method $this unsetItemId() * @method $this unsetItemType() * @method $this unsetLike() * @method $this unsetLink() * @method $this unsetLiveVideoShare() * @method $this unsetLocation() * @method $this unsetMedia() * @method $this unsetMediaShare() * @method $this unsetPlaceholder() * @method $this unsetPreviewMedias() * @method $this unsetProfile() * @method $this unsetRavenMedia() * @method $this unsetReactions() * @method $this unsetReelShare() * @method $this unsetSeenUserIds() * @method $this unsetStoryShare() * @method $this unsetText() * @method $this unsetTimestamp() * @method $this unsetUserId() |
Ah, natuurlijk.quote:Op woensdag 21 februari 2018 00:00 schreef ViPeRII het volgende:
[..]
Hij bedoelde de method die je wil gebruiken. Nu heb ik de voorgeschiedenis niet gelezen,maar ik denk dat je de inhoud wil zien?
Dan kan je een van de volgende methods gebruiken:
[ code verwijderd ]
In jouw geval $thread123->getText(); ?
Een Thread bevat ThreadItems, die zul je eerst moeten ophalen voordat je ze kunt gebruiken. Dan wordt het zoiets:quote:Op woensdag 21 februari 2018 08:09 schreef qu63 het volgende:
[..]
Ah, natuurlijk.
Helaas krijg ik dan een "Unknown function "getText"" terug.
Vanavond maar weer verder klooien..
1 2 3 4 5 6 7 8 9 | <?php foreach ($test->getInbox()->getThreads() as $thread123) { $items = $thread123->getItems(); foreach($items as $item) { echo $item->getText(); } } ?> |
Die echo was alleen om wat output te zienquote:Op woensdag 21 februari 2018 22:51 schreef Light het volgende:
[..]
Een Thread bevat ThreadItems, die zul je eerst moeten ophalen voordat je ze kunt gebruiken. Dan wordt het zoiets:
[ code verwijderd ]
En natuurlijk kun je ook andere dingen doen in plaats van echo.
coolquote:Op zaterdag 2 juni 2018 12:26 schreef ursel het volgende:
Ik zit eigenlijk volledig in CakePHP de laatste 2/3 jaar. Mee begonnen omdat ze het hier op het werk hebben. Cake2 is een drama. 3 is eigenlijk best wel leuk.
Daarom eigenlijk nooit de moeite genomen om in de hype van Laravel te stappen.
Ben momenteel met een projectje bezig om de scores van het klaverjassen bij te kunnen houden.
Cake? Daar hoor ik ook weinig meer over, is dat nog steeds een ding?quote:Op zaterdag 2 juni 2018 12:26 schreef ursel het volgende:
Ik zit eigenlijk volledig in CakePHP de laatste 2/3 jaar. Mee begonnen omdat ze het hier op het werk hebben. Cake2 is een drama. 3 is eigenlijk best wel leuk.
Daarom eigenlijk nooit de moeite genomen om in de hype van Laravel te stappen.
Ben momenteel met een projectje bezig om de scores van het klaverjassen bij te kunnen houden.
PHP al jaren niet meer aangeraakt. Enkel nog Java / Scala / C# / F# / Python en als het echt moet JavaScript.quote:
ik vind PHP leuker en mooier dan Pythonquote:Op zaterdag 2 juni 2018 12:56 schreef Monolith het volgende:
[..]
PHP al jaren niet meer aangeraakt. Enkel nog Java / Scala / C# / F# / Python en als het echt moet JavaScript.
Ik zou dan eens kijken naar PHP 7.x om de veranderingen en nieuwe features te bekijken.quote:Op zaterdag 2 juni 2018 12:56 schreef Monolith het volgende:
[..]
PHP al jaren niet meer aangeraakt. Enkel nog Java / Scala / C# / F# / Python en als het echt moet JavaScript.
Ik heb niet zo veel met Python als taal an sich (indentations als language construct ), maar het is wel leuk voor even wat snelle data sciencey REPL dingetjes met visualisaties in Jupyter notebooks.quote:Op woensdag 6 juni 2018 08:47 schreef DevFreak het volgende:
[..]
ik vind PHP leuker en mooier dan Python
Ik weet wel dat het minder beroerd is dan een jaar of wat geleden hoor, maar het blijft echt volkomen inferieur aan talen die van meet af aan goed zijn opgezet. PHP is ook een stuk beperkter in haar toepassingsgebieden. Het blijft een back-endtaaltje. Serieuze middlewaretoepassingen gaan mensen er hopelijk niet mee schrijven.quote:Op woensdag 6 juni 2018 09:26 schreef Aether het volgende:
[..]
Ik zou dan eens kijken naar PHP 7.x om de veranderingen en nieuwe features te bekijken.
Bijvoorbeeld hier: PHP 5.6 to PHP 7.0 (plus de guides voor hogere versies).
Ligt er maar aan hoe de taal gebruikt wordt en niet iedere taal is inderdaad handig voor elke toepassing.quote:Op woensdag 6 juni 2018 10:35 schreef Monolith het volgende:
Ik weet wel dat het minder beroerd is dan een jaar of wat geleden hoor, maar het blijft echt volkomen inferieur aan talen die van meet af aan goed zijn opgezet. PHP is ook een stuk beperkter in haar toepassingsgebieden. Het blijft een back-endtaaltje. Serieuze middlewaretoepassingen gaan mensen er hopelijk niet mee schrijven.
Python is toch wel heerlijk als je snel even wat moet neerzetten.quote:Op woensdag 6 juni 2018 08:47 schreef DevFreak het volgende:
[..]
ik vind PHP leuker en mooier dan Python
nee, is misschien wel een idee om een keer naar te kijkenquote:Op woensdag 6 juni 2018 11:26 schreef FlippingCoin het volgende:
[..]
Python is toch wel heerlijk als je snel even wat moet neerzetten.
Verder ook erg veel goed libraries voor, dingen als TensorFlow et cetera.
Is er geen algemren dev topic?
Dat eerste vind ik altijd maar een beetje een non-argument. Als iets in de basis niet goed is, dan is het dat niet.quote:Op woensdag 6 juni 2018 11:01 schreef Aether het volgende:
[..]
Ligt er maar aan hoe de taal gebruikt wordt en niet iedere taal is inderdaad handig voor elke toepassing.
Pussy. Brainfuck of Assembly.quote:Op woensdag 6 juni 2018 17:46 schreef Boze_Appel het volgende:
Elke fatsoenlijke programmeur gebruikt natuurlijk Piet.
Tjah niet echt rare dingen die ze stellen maar ja, elk bedrijf en persoon heeft zo zijn eigen kleine aanpassingen. Zelf ben ik er wel voorstander ervan om als ik { } gebruik dit op nieuwe regels te doen ja. Bij dingen zoals css niet omdat je/ik dat niet zovaak hoeft te veranderen dus dat mag best wat compact (en zijn ook geen tig regels dus ja).quote:
Ik vind het vooral een totaal irrelevante discussie. Indentation als code construct zoals in Python daarentegen is echt één van de domste ideeën ooit.quote:Op donderdag 7 juni 2018 16:40 schreef DevFreak het volgende:
Wat vinden we van de PSR-2 coding standard?
Ik heb iets tegen brackets die niet o pde volgende lijn staan. C# stijl.
Vind het even wennen maar niet vervelend werken. Het switchen wel, mis dan steeds brackets en haakjes rond if statement.quote:Op donderdag 7 juni 2018 19:15 schreef Monolith het volgende:
[..]
Ik vind het vooral een totaal irrelevante discussie. Indentation als code construct zoals in Python daarentegen is echt één van de domste ideeën ooit.
Nou ja vooral dat. Maar sowieso zou het best overzichtelijk kunnen zijn als je de CC laag houdt. Maar ja, dan krijg je code geschreven door de gemiddelde hobbyist voor je kiezen...quote:Op donderdag 7 juni 2018 19:23 schreef FlippingCoin het volgende:
[..]
Vind het even wennen maar niet vervelend werken. Het switchen wel, mis dan steeds brackets en haakjes rond if statement.
Is ook wel aardig makkelijk om Python beetje aan te beunen ja.quote:Op donderdag 7 juni 2018 19:28 schreef Monolith het volgende:
[..]
Nou ja vooral dat. Maar sowieso zou het best overzichtelijk kunnen zijn als je de CC laag houdt. Maar ja, dan krijg je code geschreven door de gemiddelde hobbyist voor je kiezen...
Het belangrijkste is overigens niet zozeer wélke standaard, maar wel dat je één standaard hanteert. Dit maakt het makkelijker om overzicht in de code te houden en het straalt rust uit. Zeker als je met een team binnen hetzelfde project werkt wil je niet allerlei dingen door elkaar.quote:Op donderdag 7 juni 2018 16:40 schreef DevFreak het volgende:
Wat vinden we van de PSR-2 coding standard?
Ik heb iets tegen brackets die niet o pde volgende lijn staan. C# stijl.
De vraag in exact die vorm is inderdaad irrelevant. Het gebruik van een standaard daarentegen niet.quote:Op donderdag 7 juni 2018 19:15 schreef Monolith het volgende:
[..]
Ik vind het vooral een totaal irrelevante discussie. Indentation als code construct zoals in Python daarentegen is echt één van de domste ideeën ooit.
Zoals ik in een eerdere post al aangaf is het echt ideaal om even snel wat verkennende data science te doen, maar ik moet er toch niet aan denken om er een serieuze applicatie in te schrijven. Helemaal niet samen met een paar matige developers.quote:Op donderdag 7 juni 2018 19:45 schreef FlippingCoin het volgende:
[..]
Is ook wel aardig makkelijk om Python beetje aan te beunen ja.
toch is het wel een taal met bizar veel goede libraries, in AI ook een veelgebruikte taal naast C++.quote:Op donderdag 7 juni 2018 20:26 schreef Monolith het volgende:
[..]
Zoals ik in een eerdere post al aangaf is het echt ideaal om even snel wat verkennende data science te doen, maar ik moet er toch niet aan denken om er een serieuze applicatie in te schrijven. Helemaal niet samen met een paar matige developers.
@zoem, YAML vind ik nog net wat minder erg aangezien je er geen volledige applicaties in schrijft. Al kunnen docker files ook best onoverzichtelijk worden.
Python? Ja dat zeg ik. Samen met R het meest gebruikt voor data science. Numpy / SciPy / Seaborn / etcetera zijn ideaal voor data science.quote:Op donderdag 7 juni 2018 20:31 schreef FlippingCoin het volgende:
[..]
toch is het wel een taal met bizar veel goede libraries, in AI ook een veelgebruikte taal naast C++.
1 2 3 4 5 6 7 8 9 | if (isset($_POST['input'])) { $txt = $_POST['input']; $myfile = fopen("output.txt", "w") or die("Unable to open file!"); fwrite($myfile, $txt); fclose($myfile); } ?> |
Lijkt alsof er magic quotes aanstaan. Welke versie van php gaat dit om?quote:Op maandag 4 maart 2019 11:03 schreef webbyplus het volgende:
Hi,
Een irritant probleempje; ik heb in een form een textarea. De inhoud van deze textarea verstuur ik middels een post naar een PHP-pagina die de inhoud opslaat in een textfile;
[ code verwijderd ]
Echter bij het opslaan in de file wordt de text gemanipuleerd opgeslagen.
Een aanhalingsteken (") wordt bijvoorbeeld opgeslagen met een slash ervoor (\").
Ik wil echter dat er geen manipulatie plaats vindt. Iemand een tip hoe ik dit kan voorkomen?
bvd,
Webster
Ah.... hij stond nog op een oude versie van php (5), na aanpassing naar 7 draait hij wel :-) thxquote:Op maandag 4 maart 2019 11:09 schreef Faux. het volgende:
[..]
Lijkt alsof er magic quotes aanstaan. Welke versie van php gaat dit om?
Npquote:Op maandag 4 maart 2019 11:17 schreef webbyplus het volgende:
[..]
Ah.... hij stond nog op een oude versie van php (5), na aanpassing naar 7 draait hij wel :-) thx
1 2 3 4 5 | <?php $data = $_POST['xtrainfo'] . "\r\n"; $ret = file_put_contents('data.txt', $data, FILE_APPEND | LOCK_EX); ?> |
1 2 3 4 5 | <?php $inhoud = file_get_contents('./data.txt', FILE_USE_INCLUDE_PATH); echo $inhoud; ?> |
1 2 3 4 | <?php header('content-type: text/plain'); echo $inhoud; ?> |
1 2 3 | <?php echo nl2br($inhoud); ?> |
Dankjewel. Dat was simpel Ik ben voor de laatste optie gegaan en het werkt!quote:Op donderdag 14 maart 2019 11:31 schreef Tijn het volgende:
Dit gebeurt omdat de output als HTML wordt gezien en daarin betekent een linebreak niks.
Een manier om dit op te lossen is door de output als tekst te presenteren. Dat kan door een “content-type” aan de header mee te geven:
[ code verwijderd ]
Een andere oplossing is door de linebreaks om te zetten naar <br> elementen. Daar is een ingebouwde functie voor aanwezig, genaamd nl2br:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | namespace App { require 'vendor/autoload.php'; use Psr\Http\Message\ServerRequestInterface; use React\EventLoop\Factory; use React\Http\Response; use React\Http\Server; /** * Class Program * [nosml]@package[/nosml] App */ final class Program { /** * @vAr string */ private static $_uri; /** * [nosml]@return[/nosml] void */ public static function main(): void { self::$_uri = '192.168.10.10:80'; $loop = Factory::create(); $webServer = new Server(function(ServerRequestInterface $request) { return new Response( \Illuminate\Http\Response::HTTP_OK, [ 'Content-Type:' => 'text/plain' ], "Hello!" ); }); $socket = new \React\Socket\Server(self::$_uri, $loop); $webServer->listen($socket); $webServer->on('connection', function() { echo 'browser' . PHP_EOL; }); echo "Listening on " . self::$_uri . "..." . PHP_EOL; $loop->run(); } } Program::main(); } |
Zo spannend is dit niet tochquote:Op zondag 17 maart 2019 19:54 schreef DevFreak het volgende:
[ code verwijderd ]
* DevFreak doet niet aan simpel
valt mee, maar ik probeer de webserver ertussenuit te slopenquote:
Webserver? Nginx/apache bedoel je? Dan is dat wel een stuk makkelijker dan dit ja met php. Ben zelf eigenlijk niet anders gewend, tja; nodejs :pquote:Op zondag 17 maart 2019 21:35 schreef DevFreak het volgende:
[..]
valt mee, maar ik probeer de webserver ertussenuit te slopen
Waarom?quote:Op zondag 17 maart 2019 21:35 schreef DevFreak het volgende:
[..]
valt mee, maar ik probeer de webserver ertussenuit te slopen
Ghehe. Volgens mij is het in NodeJS heus niet gemakkelijker dan in PHP.quote:Op zondag 17 maart 2019 21:54 schreef embedguy het volgende:
[..]
Webserver? Nginx/apache bedoel je? Dan is dat wel een stuk makkelijker dan dit ja met php. Ben zelf eigenlijk niet anders gewend, tja; nodejs :p
Wat is dat [nosml] gebeuren eigk voor?
Omdat webservers als jaren absolete zijn. Door zelf met sockets te werken hoef je slechts één instance van Laravel te starten en daarmee per server tot 50.000 clients verwerken, inclusief shared resources.quote:
Nope, hetzelfde idee als dit. Maar ik bedoelde dat de 'normale php' manier makkelijker is. Tja, dan heb je de voordelen ook niet.quote:Op maandag 18 maart 2019 11:39 schreef DevFreak het volgende:
[..]
Ghehe. Volgens mij is het in NodeJS heus niet gemakkelijker dan in PHP.
NodeJS is ook geen taal, maar een platform.quote:Op maandag 18 maart 2019 11:39 schreef DevFreak het volgende:
Verder is PHP als taal natuurlijk een heel stuk volwassener en meer gebruikt dan NodeJS.
Beide zijn rottalen.quote:Op maandag 18 maart 2019 22:59 schreef Monolith het volgende:
[..]
NodeJS is ook geen taal, maar een platform.
JavaScript is verder ook niet meer of minder volwassen dan PHP in mijn ogen.
Ben maar begonnen met C leren, dat is pas een leuke taal Hoi slakquote:
Vind je?quote:Op woensdag 20 maart 2019 22:38 schreef WyriHaximus het volgende:
[..]
Ben maar begonnen met C leren, dat is pas een leuke taal Hoi slak
Pak dan gewoon gelijk Rust.quote:Op woensdag 20 maart 2019 22:38 schreef WyriHaximus het volgende:
[..]
Ben maar begonnen met C leren, dat is pas een leuke taal Hoi slak
Daar ben ik nu ook soort van mee bezig. Ik wil iets in git krijgen en doe soms wat met de lastpass cli client. Beide zijn geschreven in C. Best leukquote:Op woensdag 20 maart 2019 22:38 schreef WyriHaximus het volgende:
[..]
Ben maar begonnen met C leren, dat is pas een leuke taal Hoi slak
Hmm, PHP is met 7.3 toch wel volwassener en beter dan je denkt...quote:Op maandag 18 maart 2019 22:59 schreef Monolith het volgende:
[..]
NodeJS is ook geen taal, maar een platform.
JavaScript is verder ook niet meer of minder volwassen dan PHP in mijn ogen.
Hoe weet je dat? Ik vergelijk PHP en JavaScript.quote:Op donderdag 21 maart 2019 09:43 schreef DevFreak het volgende:
[..]
Hmm, PHP is met 7.3 toch wel volwassener en beter dan je denkt...
7.4 komt er ook aan en brengt nog veel meer verbeteringen met zich mee.
Ach, kom... het zijn twee totaal verschillende talen met verschillende doeleinden.quote:Op donderdag 21 maart 2019 09:45 schreef Monolith het volgende:
[..]
Hoe weet je dat? Ik vergelijk PHP en JavaScript.
Klopt, ik vind het allebei niets.quote:Op donderdag 21 maart 2019 09:47 schreef DevFreak het volgende:
[..]
Ach, kom... het zijn twee totaal verschillende talen met verschillende doeleinden.
Ik vind PHP zelf eigenlijk een vrij robuuste taal. Wat me derhalve wel stoort zijn de frameworks. Ze zuigen állemaal. Je moet goed bij blijven omdat migreren anders bijna niet te doen is.quote:Op donderdag 21 maart 2019 09:48 schreef Monolith het volgende:
[..]
Klopt, ik vind het allebei niets.
Maar dat doet niets af aan het feit dat de één niet meer of minder volwassen is dan de ander.
Doe mij maar gewoon Java of C# in een enterprise omgeving, iets als Haskell voor nichetoepassingen en van die wat hippere dingetjes als Go, Kotlin en Rust om een beetje mee aan te klooien vooralsnog.quote:Op donderdag 21 maart 2019 09:53 schreef DevFreak het volgende:
[..]
Ik vind PHP zelf eigenlijk een vrij robuuste taal. Wat me derhalve wel stoort zijn de frameworks. Ze zuigen állemaal. Je moet goed bij blijven omdat migreren anders bijna niet te doen is.
Ik zit opm ijn werk nu ook met een groot Laravel 4.2 platform, dat ze willen migreren naar 5.8. Nu is het sowieso wel kut geschreven allemaal, maar ik verwacht dat ik de komende 6 maanden nog bezig ben met dit grapje.
Welk vak?quote:Op woensdag 20 maart 2019 22:44 schreef FlippingCoin het volgende:
[..]
Vind je?
Moet nu voor een vak met sensoren werken met C maar vind het meegeven van arrays en itereren over verzamelingen en zo maar een gekut vergeleken met een taal als Go.
Oh voor studie.quote:
Laravel 4.2, die is bijna prehistorisch! Er is heel veel gebeurd sinds de pakweg 5 jaar dus upgraden zal best een klus zijn inderdaad. Ik werk inmiddels al een jaar bijna uitsluitend met laravel en vind het op zich best goed, zeker voor niet al te grote sites. Bij echt grote complexe applicaties loop je toch uiteindelijk tegen de beperkingen aan, en al die magic die er onder de motorkap gebruikt wordt daar word ik ook steeds minder fan van.quote:Op donderdag 21 maart 2019 09:53 schreef DevFreak het volgende:
[..]
Ik vind PHP zelf eigenlijk een vrij robuuste taal. Wat me derhalve wel stoort zijn de frameworks. Ze zuigen állemaal. Je moet goed bij blijven omdat migreren anders bijna niet te doen is.
Ik zit opm ijn werk nu ook met een groot Laravel 4.2 platform, dat ze willen migreren naar 5.8. Nu is het sowieso wel kut geschreven allemaal, maar ik verwacht dat ik de komende 6 maanden nog bezig ben met dit grapje.
Ja I know. Ze snappen het ook gewoon echt niet hier dat het migreren weleens langer dan 4 maanden kan duren, zeker met die belachelijke kutcode waar het nu uit bestaat...quote:Op donderdag 21 maart 2019 10:43 schreef Farenji het volgende:
[..]
Laravel 4.2, die is bijna prehistorisch! Er is heel veel gebeurd sinds de pakweg 5 jaar dus upgraden zal best een klus zijn inderdaad. Ik werk inmiddels al een jaar bijna uitsluitend met laravel en vind het op zich best goed, zeker voor niet al te grote sites. Bij echt grote complexe applicaties loop je toch uiteindelijk tegen de beperkingen aan, en al die magic die er onder de motorkap gebruikt wordt daar word ik ook steeds minder fan van.
Maar dat php een robuuste taal is, daar ben ik het echt niet mee eens. Dankzij het dikke tapijt van laravel is het te doen maar plain php blijft een gammele bende vol pitfalls. De nieuwere versies voegen wel wat leuke dingen toe maar de basis verandert niet echt en daar loop ik nog steeds wel eens tegenaan. Wat dat betreft liever python of perl, daar is beduidend beter over nagedacht.
Maar wacht even...quote:Op donderdag 21 maart 2019 10:43 schreef Farenji het volgende:
[..]
Laravel 4.2, die is bijna prehistorisch! Er is heel veel gebeurd sinds de pakweg 5 jaar dus upgraden zal best een klus zijn inderdaad. Ik werk inmiddels al een jaar bijna uitsluitend met laravel en vind het op zich best goed, zeker voor niet al te grote sites. Bij echt grote complexe applicaties loop je toch uiteindelijk tegen de beperkingen aan, en al die magic die er onder de motorkap gebruikt wordt daar word ik ook steeds minder fan van.
Maar dat php een robuuste taal is, daar ben ik het echt niet mee eens. Dankzij het dikke tapijt van laravel is het te doen maar plain php blijft een gammele bende vol pitfalls. De nieuwere versies voegen wel wat leuke dingen toe maar de basis verandert niet echt en daar loop ik nog steeds wel eens tegenaan. Wat dat betreft liever python of perl, daar is beduidend beter over nagedacht.
Het gaat al mis bij de implementatie van basale data structures.quote:Op donderdag 21 maart 2019 13:45 schreef DevFreak het volgende:
[..]
Maar wacht even...
Wanneer je tien jaar geleden had gezegd dat PHP een bende is vol pitfalls had ik het met je eens geweest. Ben je wel goed op de hoogte van alle ontwikkelingen en verbeteringen die PHP 7+ gebracht heeft? Ik zou graag een concreet voorbeeld willen zien van dingen waar je tegenaan loopt t.o.v. Python, want ik vind het erg meevallen.
Ik vind vooral de variable scope van php superkut. In php zijn alle variabelen vanzelf global dus als je binnen een block (bijv een loop) een variabele zet dan is ie buiten dat block opeens ook gezet. Dat is gaar. Maar functies hebben dan opeens weer een eigen scope, waardoor je overal met "function ($foo) use ($bar)" moet werken. Geen enkele andere taal die ik ken doet dat zo. Daardoor is het ook onmogelijk om bijv een "strict pragma" te hebben wat je in perl hebt. Dan word je gedwongen om alle variabelen te instantieren voordat je ze gebruikt en compileert je applicatie niet eens meer als je bijv ergens een tikfout in een variabelenaam hebt. PHP geeft minder fucks hierom en dan zou je onvoorspelbare resultaten kunnen krijgen.quote:Op donderdag 21 maart 2019 13:45 schreef DevFreak het volgende:
[..]
Maar wacht even...
Wanneer je tien jaar geleden had gezegd dat PHP een bende is vol pitfalls had ik het met je eens geweest. Ben je wel goed op de hoogte van alle ontwikkelingen en verbeteringen die PHP 7+ gebracht heeft? Ik zou graag een concreet voorbeeld willen zien van dingen waar je tegenaan loopt t.o.v. Python, want ik vind het erg meevallen.
1 | function (Foo $foo) {} |
1 | function (string $i) {} |
1 2 3 4 5 6 7 8 | <?php $vorigedag = date('d-m-Y',strtotime("-1 days")); // 20-03-2019 $vorigejaar =date("Y",$vorigedag); // 2019 $vorigemaand =date("m",$vorigedag); // 03 $vorigeday=date("d",$vorigedag); // 20 $vorigeNaamvanDag = date("l", mktime(0,0,0,$vorigemaand,$vorigeday,$vorigejaar)); $vorigedagTXT ='./'.$vorigejaar.'/'.$vorigemaand.'/'.$vorigedag.'.txt'; // 2019/03/21-03-2019.txt ?> |
1 | 1970/01/21-03-2019.txt |
1 | 2019/03/21-03-2019.txt |
1 2 3 | <?php $vorigedagTXT = ". /". date("Y/m/d-m-Y", strtotime("-1 day")). ".txt" ; ?> |
Inhoudelijk heb je deels zeker gelijk, maar het andere deel klopt niet. Ik kom hier later nog op terug.quote:Op donderdag 21 maart 2019 16:33 schreef Farenji het volgende:
[..]
Ik vind vooral de variable scope van php superkut. In php zijn alle variabelen vanzelf global dus als je binnen een block (bijv een loop) een variabele zet dan is ie buiten dat block opeens ook gezet. Dat is gaar. Maar functies hebben dan opeens weer een eigen scope, waardoor je overal met "function ($foo) use ($bar)" moet werken. Geen enkele andere taal die ik ken doet dat zo. Daardoor is het ook onmogelijk om bijv een "strict pragma" te hebben wat je in perl hebt. Dan word je gedwongen om alle variabelen te instantieren voordat je ze gebruikt en compileert je applicatie niet eens meer als je bijv ergens een tikfout in een variabelenaam hebt. PHP geeft minder fucks hierom en dan zou je onvoorspelbare resultaten kunnen krijgen.
Verder vind ik het kut dat php geen aparte types voor hash (dictionary) en array heeft. Dit zijn heel andere types met andere werking maar in php is het allemaal hetzelfde, een "associative hash". Die numerieke keys kan hebben of string keys, met allemaal pitfalls. En dan heb je ook nog de StdClass objecten. Verwarrend en irritant.
En dan iets wat php nog steeds heeft is die shitload aan inconsequente functies allemaal binnen de core. Tig verschillende sort functies waar 1 had volstaan, functie argumenten die anders zijn, de ene keer $needle, $haystack en de andere keer $haystack, $needle, bijvoorbeeld. Je hebt "str_replace" maar ook "strcomp", zonder underscore opeens.
En dan de type hinting die op zich nice is, maar ook inconsequent is. Doe je:
[ code verwijderd ]
En je geeft daar een Bar instance aan mee borkt ie, terecht. Maar doe je:
[ code verwijderd ]
En je geeft daar een int aan mee, dan borkt ie niet maar cast ie je int gewoon stilletjes naar string. Het is het allemaal gewoon net niet.
Just a note;quote:Op vrijdag 22 maart 2019 14:02 schreef NoXia het volgende:
Iemand die mij kan helpen?
[ code verwijderd ]
Output:
[ code verwijderd ]
in plaats van
[ code verwijderd ]
Wat doe ik fout?
Wanneer ongeveer? :p Ben wel benieuwd.quote:Op vrijdag 22 maart 2019 16:38 schreef DevFreak het volgende:
[..]
Inhoudelijk heb je deels zeker gelijk, maar het andere deel klopt niet. Ik kom hier later nog op terug.
Of een library gebruiken die daar rekening mee houdt.quote:Op maandag 25 maart 2019 09:32 schreef slacker_nl het volgende:
Als je gaat rekenen met tijd moet je altijd de tijd converten naar UTC dan de berekening doen en daarna weer terug naat je lokale tijdzone. Dan ben je in 99,999999% van de tijd veilig.
Rekenen met tijd is echt kut door alle tijdzones, daglichtspaartijden, veranderingen van bovengenoemde op willekeurige momenten (google op Amsterdamse tijd en eventueel op 1mei 1940 voor als je met software werkt waarbij je software potentieel met bejaarden werkt).
Dit klopt deels. Je refereert nu waarschijnlijk naar procedureel geschreven PHP-code, waarbij dit in ieder geval het standaardgedrag was onder versie 5.x. Ik ken echter geen enkele programmeur die hedendaags nog procedurele PHP-code schrijft. Tegenwoordig is het object-georiënteerd programmeren actueel, waarbij je dan werkt met classes, properties en functies met hun eigen visibility levels.quote:Op donderdag 21 maart 2019 16:33 schreef Farenji het volgende:
[..]
Ik vind vooral de variable scope van php superkut. In php zijn alle variabelen vanzelf global dus als je binnen een block (bijv een loop) een variabele zet dan is ie buiten dat block opeens ook gezet. Dat is gaar. Maar functies hebben dan opeens weer een eigen scope, waardoor je overal met "function ($foo) use ($bar)" moet werken. Geen enkele andere taal die ik ken doet dat zo. Daardoor is het ook onmogelijk om bijv een "strict pragma" te hebben wat je in perl hebt. Dan word je gedwongen om alle variabelen te instantieren voordat je ze gebruikt en compileert je applicatie niet eens meer als je bijv ergens een tikfout in een variabelenaam hebt. PHP geeft minder fucks hierom en dan zou je onvoorspelbare resultaten kunnen krijgen.
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 | namespace TCPChat { use React\EventLoop\Factory; use React\Socket\ConnectionInterface; use React\Socket\Server; /** * Class Application * @package TCPChat */ final class Application { /** * @return void */ public static function main(): void { // Je code hier } } Application::main(); } |
Dit is volstrekte nonsens. De Zend-engine biedt ons verscheidene datastructuren aan, zoals je hier kunt lezen:quote:Verder vind ik het kut dat php geen aparte types voor hash (dictionary) en array heeft. Dit zijn heel andere types met andere werking maar in php is het allemaal hetzelfde, een "associative hash". Die numerieke keys kan hebben of string keys, met allemaal pitfalls. En dan heb je ook nog de StdClass objecten. Verwarrend en irritant.
Dit gedrag is in PHP >7.0 allang aangepast en dus niet meer van toepassing. In PHP 7.4 wordt het zelfs allemaal nog veel mooier, met onder andere static typed class properties. Ik kan niet wachten tot december.quote:En dan iets wat php nog steeds heeft is die shitload aan inconsequente functies allemaal binnen de core. Tig verschillende sort functies waar 1 had volstaan, functie argumenten die anders zijn, de ene keer $needle, $haystack en de andere keer $haystack, $needle, bijvoorbeeld. Je hebt "str_replace" maar ook "strcomp", zonder underscore opeens.
En dan de type hinting die op zich nice is, maar ook inconsequent is. Doe je:
[ code verwijderd ]
En je geeft daar een Bar instance aan mee borkt ie, terecht. Maar doe je:
[ code verwijderd ]
En je geeft daar een int aan mee, dan borkt ie niet maar cast ie je int gewoon stilletjes naar string. Het is het allemaal gewoon net niet.
^ zie hierquote:Op dinsdag 26 maart 2019 20:44 schreef bloemetjeklaver het volgende:
[..]
Wanneer ongeveer? :p Ben wel benieuwd.
Bedoel zelf heb ik het idee dat hij gelijk heeft in wat hij zegt maar dat hij gewoon de voorkeur voor strict heeft om het zo maar te zeggen. PHP is wat losjes, dat weet iedereen, om dan te gaan zeggen dat je dat persoonlijk helemaal niet fijn vindt, tjah oke. Is je eigen voorkeur/mening. Voor mij werkt het prima, niet omdat ik niet precies genoeg werk, misschien wel juist omdat ik precies genoeg werk met een taal waarbij dat niet nodig is waardoor het niet helemaal haywire gaat.
Als je moeite hebt met scope etc van een taal omdat deze afwijkt van een andere taal dan tjah.. superkut dan voor hemzelf zoals hij al zegt
1 | select * from ip_database where IP = 'ip adres hier'' |
Nee door ''' i.p.v. ''quote:Op vrijdag 29 maart 2019 09:33 schreef NoXia het volgende:
SQL hell!
Gaat hij over zijn nek door de puntjes?
quote:
1 | SELECT * FROM `ip_database` WHERE IP = "8.8.8.8" |
Lijkt me dat er een bepaalde omzetting nodig is, cast ofzo om het overeen te laten komen.quote:Op vrijdag 29 maart 2019 10:26 schreef NoXia het volgende:
[..]
[ code verwijderd ]
levert ook niets op terwijl de row wel gewoon in de database staat.
Thanks. Ik had deze ook op varchar staan maar die kreeg ik er ook niet uit gepompt. Daarna veranderd naar varbinary. Maar dit werkte ook niet.quote:Op vrijdag 29 maart 2019 10:41 schreef phoenyx het volgende:
[..]
Lijkt me dat er een bepaalde omzetting nodig is, cast ofzo om het overeen te laten komen.
Bedoel als je in de database kijkt met phpmyadmin of een workbench kan het best zo zijn dat je 8.8.8.8 ziet omdat die het omzetten naar iets leesbaars. Zij weten immers dat het varbinary is dus zetten 0x5468697320697320612074657374 om naar 8.8.8.8 of wat dan ook.
Dus je moet de 8.8.8.8 converten of casten ofzo naar varbinary voordat je vergelijking iets op gaat leveren. Sla zelf ook ip's op maar gewoon als varchar, nooit echt aan binary gedacht om zoiets mee op te slaan
1 | SELECT * FROM `ip_database` WHERE `IP` LIKE "%8.8.8.8%" |
Oke misschien spaties die hij dan meeneemt in de vergelijking?quote:Op vrijdag 29 maart 2019 13:46 schreef NoXia het volgende:
Als ik
[ code verwijderd ]
doe krijg ik hem wel
Deze kon ik niet. Hier ga ik naar kijken.quote:Op vrijdag 29 maart 2019 13:56 schreef zoem het volgende:
Had je al gekeken naar inet_pton() en inet_ntop()? Dan kun je ipv4/6 converteren van/naar binary. Voor ipv4 only kun je kijken naar int in combinatie met inet_ntoa() en inet_aton().
Leek mij inderdaad ook logisch. Maar heb geen spatie kunnen ontdekken. Vaag hoor.quote:Op vrijdag 29 maart 2019 13:57 schreef phoenyx het volgende:
[..]
Oke misschien spaties die hij dan meeneemt in de vergelijking?
1 | UPDATE ip_database SET IP = LTRIM(RTRIM(IP)) |
ja ik was aan het werk of factorio aan het spelen laatst Factorio (vervolg op openttd) maar dan machinaal.quote:
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.Werkt Perfect (althans single threaded getest als ik meerdere connecties heb moet ik nog eens kijken of ik alle variabelen goed gezet heb maar meerdere berichten achter elkaar kan het versturen en ontvangen .
[ Bericht 44% gewijzigd door cablegunmaster op 20-06-2019 11:03:24 ]Redacted
Meer Composer: https://getcomposer.org/quote:Op zondag 19 april 2020 18:25 schreef slacker_nl het volgende:
Vroegah, had PHP Pear voor als een repository voor packages, waarbij men modules en zulks kon delen. Is dat nog steeds een ding of is het inmiddels iets anders geworden?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |