Arrays duplicates verwijderen case sensitive

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Software developer

Werkzaamheden voor jou als software developer Voor een goede relatie in de regio Zwolle (meerdere locaties) zoeken wij een software developer die betrokken is bij de ontwikkelcyclus en verantwoordelijk is voor het testen en keuren van nieuwe en geoptimaliseerde software. In deze functie ben je in de implementatiefase de persoon die risico's beoordeelt en intern oplossingen aanbrengt om risico's te verkleinen. Binnen het ontwikkelteam van de software ben je een belangrijke schakel waar je intensief meewerkt met scrum. Het voorkomen van bugs in de programma's en het bevorderen van gebruiksvriendelijkheid voor eindklanten zijn voor jou een uitdaging en geeft voldoening

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Java (Java EE) Developer

In het kort Werken als Java developer betekent werken aan complexe IT projecten bij onder meer een internationaal containeroverslag bedrijf. Zo sturen we apparaten en eindgebruikers aan d.m.v. onze custom-made software oplossing, die dagelijkse vele duizenden containers verwerkt. Denk aan systemen die volautomatische kranen aansturen en op afstand bedienen, de volledige afhandeling van containernummerherkenning bij het laden en lossen van zeeschepen of het tonen van instructies aan de chauffeurs van ruim 300 straddle carriers. En dat allemaal redundant, robuust en in een dynamische 24/7 omgeving! Jij versterkt ons ontwikkelteam en gaat aan de slag met oa. Java i.c.m. Spring (Boot),

Bekijk vacature »

.Net Ontwikkelaar

Dit ga je doen Het ontwerpen en ontwikkelen van software voor klanten; Het bijdragen van kennis en ervaring; Het integreren van van de software en afstemmen met klanten; Het functioneel testen van de ontwikkelde software. Hier ga je werken Voor onze relatie zijn wij momenteel op zoek naar een .Net Developer die wilt werken aan software die draait op machines wereldwijd. De organisatie produceert software voor applicaties die gebruikt worden in verschillende branches. De software wordt geleverd aan fabrikanten van verschillende robotica en machines. Als .Net ontwikkelaar ben je intern onderdeel van het team wat de applicatie omgevingen ontwikkeld en

Bekijk vacature »

PHP Developer - Draag bij aan de maatschappij!

Bedrijfsomschrijving Wil jij als applicatieontwikkelaar deel uitmaken van een gedreven ontwikkelteam en werken aan innovatieve producten? Dan hebben wij dé uitdaging voor jou! Wij zijn op zoek naar een enthousiaste collega die samen met ons de technische ondergrond van onze producten verder wil ontwikkelen met behulp van PHP. Met jouw expertise geef je de finishing touch aan onze producten om jezelf steeds opnieuw weer te verrassen. Functieomschrijving Bij ons staan innovatie en creativiteit centraal. Wij zijn op zoek naar een enthousiaste PHP ontwikkelaar die nieuwe ideeën en inzichten kan inbrengen en daarmee zichzelf en het team verder kan laten groeien.

Bekijk vacature »

Senior .Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

Web Developer

Bedrijfsomschrijving ENGIE Nederland is onderdeel van de beursgenoteerde ENGIE Groep. ENGIE is actief in 70 landen, met wereldwijd 150.000 medewerkers. Als groep is het de missie om bij te dragen aan de verduurzaming van de wereld. ENGIE Energie biedt energiediensten aan particulieren en grootzakelijk en gaat de uitdagingen van de energietransitie aan door het beschikbaar maken van duurzame energie, het streven de klimaatverandering tot een minimum te beperken, leveringszekerheid te bieden en zorg te dragen voor een verantwoord gebruik van de beschikbare resources. ENGIE Energie investeert daarom in hernieuwbare energiebronnen zoals zon, wind en bio-gas. Functieomschrijving Heb jij veel ervaring

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Implementatie specialist

Standplaats: Honselersdijk Aantal uren: 32 – 40 uur Opleidingsniveau: HBO werk- en denkniveau Ben jij de implementatie expert die onze klanten helpt bij het integreren van de Greencommerce software? Ben jij daarnaast communicatief sterk, denk jij graag in verbeteringen en heb je ervaring met ICT? Lees dan snel verder! Bedrijfsinformatie Jem-id is een grote speler op het gebied van software ontwikkeling. Zo zijn wij continu bezig met het ontwikkelen van de meest innovatieve software voor de AGF- en sierteeltsector. We creëren oplossingen die er toe doen en verbinden klanten niet alleen op technisch vlak, maar zoeken ook de verbinding in

Bekijk vacature »

Back end developer Onderwijssoftware

Functie Als back end developer kom jij terecht in een klein, maar hecht team bestaande uit 5 andere developers (waarvan 2 senioren, 2 medior en 1 junior). Met de gezamenlijke missie om “ieder kind te helpen met onze software” wordt er dagelijks gepassioneerd en hard gewerkt aan ons in-house ontwikkeld platform. Deze software is gebaseerd is op AI, machine Learning en wetenschappelijke inzichten. Dagelijks zul jij werken met onze high traffic webapplicatie. We hebben ruim 300.00 gebruikers en meer dan 2 miljard records waar je te maken mee krijgt! Verder zul jij je bezighouden met: – Het ontwikkelen van hoogwaardige

Bekijk vacature »

Trainee pega developer

Wil jij een mooie stap maken in jouw carrière? Mooi! Bij De Mandemakers Groep haal je binnen 6 maanden je CSA- en CSSA-certificaten, waarna jij aan de slag kan als Pega-developer in ons IT-team. Achter de schermen zorg jij ervoor dat collega’s efficiënt werken en klanten iedere dag beter geholpen worden. Wil jij daaraan bijdragen? En jouw ICT-skills ontwikkelen? Lees dan snel verder en solliciteer vandaag nog als trainee Pega-developer. Wat ga je doen? Als trainee Pega developer leiden wij je op tot gecertificeerd software developer voor het low-code platform PegaSystems. In de training ben je verantwoordelijk voor een te

Bekijk vacature »

Gezocht: .Net ontwikkelaars met een maatschappelij

Bedrijfsomschrijving Zoek jij als medior .Net ontwikkelaar een inspirerende werkplek bij een bedrijf met maatschappelijk verantwoordelijkheidsgevoel? Dan is deze vacature je op het lijf geschreven. De organisatie bestaat ruim 20 jaar en ze ontwikkelen in house applicaties waarmee de zorgsector enorm mee gebaat is. Jouw applicaties worden gebruikt door duizenden gebruikers waardoor je echt een waardevolle bijdrage kan leveren aan de maatschappij. Het bedrijf is zeer innovatief en vindt een goede werk/privé balans belangrijk. Je krijgt alle mogelijkheden om jezelf verder te ontwikkelen, je werktijden in te delen en daarnaast is het ook mogelijk om deels thuis te werken. Het

Bekijk vacature »

Applicatiebeheerder/ Ontwikkelaar

Dit ga je doen - Verantwoordelijkheid dragen voor het complexe applicatielandschap; - Schakelen met eindgebruikers en leveranciers; - Verdeling in werkzaamheden tussen dagelijks beheer ontwikkelen; - Het analyseren van de behoeften van gebruikers en het vertalen hiervan naar functionele specificaties voor de applicaties; - Actief bijdragen aan het leveren van passende oplossingen voor het applicatielandschap. Hier ga je werken Deze organisatie, gevestigd in de regio van Amsterdam is een van de meest toonaangevende mediaorganisaties in Nederland. Door de organisatiecultuur krijg jij veel ruimte om initiatief te nemen en zelfstandig aan het werk te gaan. Samen met het IT team zorg

Bekijk vacature »

Front-end Developer

Dit ga je doen Doorontwikkelen van software; Ontwikkelen en testen van nieuwe functionaliteiten; Implementaties van nieuwe functionaliteiten en updates; Verzorgen van technische migraties naar nieuwe frameworks; Verwerken van incidenten. Hier ga je werken Onze klant, gevestigd in de regio Amsterdam, draagt bij aan het verbeteren van de veiligheid en efficiëntie van de Nederlandse infrastructuur door het ontwikkelen van afgemeten software oplossingen. Zo passen zij location intelligence toe om onderhoud en reparaties efficiënt te laten verlopen. Verder zorgen deze systemen dat incidenten zo snel mogelijk worden opgelost. Als Front-end Developer ben jij samen met je team betrokken met het (door)ontwikkelen van

Bekijk vacature »
Hans De Ridder

Hans De Ridder

25/09/2017 23:29:49
Quote Anchor link
Idee:
Ik geef mijn leden de mogelijkheid om een persoonlijke youtube top 20 samen te stellen.
Daarvoor moet ik uit de samengestelde lijsten eerst de duplicate items te verwijderen.
Het lukt wel, maar als de lege plekken verwijderen, dan wordt niet meer gekeken naar de case sensitive.
Dat komt door het toepassen van array_splice.
Iemand een mogelijkheid om een bruikbare array te produceren, die ik weer verder kan gebruiken?
Dit was een testje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
$arr0 =  array("TIjE6RIAv2s","Q4xyiJkX4vw","_5BzyInFf5M","q4xyiJkX4vw","91EbIgyFA1Y");
$arr1 =  array("tIjE6RIAv2s","Q4xyiJkX4vw","_5BzyInFf5M","vdufteeVZyo","CqkpWByCzL4");
$arr2 =  array("Bn1rdYzv4qM","Q4xyiJkX4vw","_5BzyInFf5M","vdufteeVZyo","-dY3s415TP0");
$arr3 =  array("Bn1rdYzv4qM","tIjE6RIAv2s","Q4xyiJkX4vw","vdufteeVZyo","s9bXNR9hdIk");

$arr= array_unique(array_merge($arr0,$arr1,$arr2, $arr3));

if ($arr[$i] =='')
{
array_splice($arr, $i, 1);
}

//$arr_length = count($arr);
$arr_length = 20;

for($i=0;$i<$arr_length;$i++)
{
echo $arr[$i].'<br>';
}    

Zonder splice (11 stuks):

TIjE6RIAv2s
Q4xyiJkX4vw
_5BzyInFf5M
q4xyiJkX4vw
91EbIgyFA1Y
tIjE6RIAv2s


vdufteeVZyo
CqkpWByCzL4
Bn1rdYzv4qM



-dY3s415TP0




s9bXNR9hdIk

Met splice (10 stuks):

Q4xyiJkX4vw
_5BzyInFf5M
q4xyiJkX4vw
91EbIgyFA1Y
tIjE6RIAv2s
vdufteeVZyo
CqkpWByCzL4
Bn1rdYzv4qM
-dY3s415TP0
s9bXNR9hdIk
Gewijzigd op 25/09/2017 23:31:12 door Hans De Ridder
 
PHP hulp

PHP hulp

12/01/2025 11:12:26
 
Ben van Velzen

Ben van Velzen

26/09/2017 00:20:10
Quote Anchor link
Waarom gebruik je niet gewoon unset ipv array_splice om lege plekken uit de array te verwijderen?
 
Hans De Ridder

Hans De Ridder

26/09/2017 00:32:02
Quote Anchor link
Bedankt voor de snelle response Ben.
Ik heb unset geprobeerd, maar had dezelfde uitwerking als de lijst met de gaten.
Tenzij ik wat verkeerd heb gedaan natuurlijk.
 
- SanThe -

- SanThe -

26/09/2017 00:41:07
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$arr0
=  array("TIjE6RIAv2s","Q4xyiJkX4vw","_5BzyInFf5M","q4xyiJkX4vw","91EbIgyFA1Y");
$arr1 =  array("tIjE6RIAv2s","Q4xyiJkX4vw","_5BzyInFf5M","vdufteeVZyo","CqkpWByCzL4");
$arr2 =  array("Bn1rdYzv4qM","Q4xyiJkX4vw","_5BzyInFf5M","vdufteeVZyo","-dY3s415TP0");
$arr3 =  array("Bn1rdYzv4qM","tIjE6RIAv2s","Q4xyiJkX4vw","vdufteeVZyo","s9bXNR9hdIk");

$arr= array_unique(array_merge($arr0,$arr1,$arr2, $arr3));

foreach($arr as $k=>$v)
{

echo $k.' - '.$v.'<br>';
}

?>

0 - TIjE6RIAv2s
1 - Q4xyiJkX4vw
2 - _5BzyInFf5M
3 - q4xyiJkX4vw
4 - 91EbIgyFA1Y
5 - tIjE6RIAv2s
8 - vdufteeVZyo
9 - CqkpWByCzL4
10 - Bn1rdYzv4qM
14 - -dY3s415TP0
19 - s9bXNR9hdIk
Gewijzigd op 26/09/2017 00:41:40 door - SanThe -
 
Ben van Velzen

Ben van Velzen

26/09/2017 00:44:52
Quote Anchor link
Het enige probleem dat je krijgt is dat je keys niet meer corresponderen met de lengte. Kortgezegd kun je op deze manier niet langer met for door de array gaan. Dan zul je foreach moeten gebruiken.
Je kunt eventueel rond regel 12 dit toevoegen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$arr
= array_values($arr);
?>


Ook zou ik gewoon array_filter() gebruiken om je lege elementen uit je array te verwijderen.
Gewijzigd op 26/09/2017 00:47:53 door Ben van Velzen
 
Willem vp

Willem vp

26/09/2017 00:53:16
Quote Anchor link
Het probleem is niet dat array_splice de case vermangelt, maar dat je eerste element wordt genegeerd.

Wat ik zo machtig interessant vind, is regel 8 van je script. Je test daar $arr[$i], maar waar komt $i vandaan? Waarschijnlijk moet er nog een for-loopje omheen...
Gewijzigd op 26/09/2017 00:55:59 door Willem vp
 
Hans De Ridder

Hans De Ridder

26/09/2017 01:05:30
Quote Anchor link
Willem, je hebt gelijk...
Ik had het geplakt, maar verkeerd neergezet.
Het stond in de for loop.
 
Willem vp

Willem vp

26/09/2017 01:46:41
Quote Anchor link
Zelfs met een for-loop mis je een element, alleen dan een andere: vdufteeVZyo. Niet geheel toevallig het eerste element na het eerste gat.

Dat komt door de manier waarop array_splice werkt. Numerieke indices worden niet behouden. Sterker nog: wanneer je array_splice aanroept, hernummert hij de indices en dán pas gaat hij splicen. Dat verklaart dus waarom je een element kwijtraakt.

Maar nu we dit hebben ontdekt, kunnen we ook ge/misbruik maken van die eigenschap: als je array_splice aanroept en aangeeft dat je *niets* wilt verwijderen, krijg je een keurig nette array terug.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
print_r($arr);
array_splice($arr, 0, 0);
print_r($arr);

Voor:
Array
(
    [0] => TIjE6RIAv2s
    [1] => Q4xyiJkX4vw
    [2] => _5BzyInFf5M
    [3] => q4xyiJkX4vw
    [4] => 91EbIgyFA1Y
    [5] => tIjE6RIAv2s
    [8] => vdufteeVZyo
    [9] => CqkpWByCzL4
    [10] => Bn1rdYzv4qM
    [14] => -dY3s415TP0
    [19] => s9bXNR9hdIk
)

Na:
Array
(
    [0] => TIjE6RIAv2s
    [1] => Q4xyiJkX4vw
    [2] => _5BzyInFf5M
    [3] => q4xyiJkX4vw
    [4] => 91EbIgyFA1Y
    [5] => tIjE6RIAv2s
    [6] => vdufteeVZyo
    [7] => CqkpWByCzL4
    [8] => Bn1rdYzv4qM
    [9] => -dY3s415TP0
    [10] => s9bXNR9hdIk
)
 
Hans De Ridder

Hans De Ridder

26/09/2017 14:24:21
Quote Anchor link
Bedankt voor de reacties en oplossingen.
Ik werk met data opslag via IPTC (opslag in image)
Het is een experimentele website.
Met nadruk op promotie voor personen die iets met de artiestenwereld te maken hebben.

Ik heb voor dit probleem de oplossing gevonden in een groeiende string.
Hierbij wordt de groeistring bekeken op nieuwe in toe te voegen items van een string.
Uitsluitend nieuwe items worden toegevoegd aan de groeistring.
In de images staan de youtubes als volgt opgeslagen op locatie 2#115.
Opmerkingen en verbeteringen blijven uiteraard welkom...


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
TIjE6RIAv2s,Q4xyiJkX4vw,_5BzyInFf5M,q4xyiJkX4vw,91EbIgyFA1Y

tIjE6RIAv2s,Q4xyiJkX4vw,_5BzyInFf5M,vdufteeVZyo,CqkpWByCzL4

Bn1rdYzv4qM,Q4xyiJkX4vw,_5BzyInFf5M,vdufteeVZyo,-dY3s415TP0

Bn1rdYzv4qM,tIjE6RIAv2s,Q4xyiJkX4vw,vdufteeVZyo,s9bXNR9hdIk


$files = glob(realpath($_SERVER[ 'DOCUMENT_ROOT' ]) . "fotomap/*.{jpg}", GLOB_BRACE);

$dataT ='';

foreach($files as $file)
{
$r = output_iptc_data($file,'2#115');
if ($r !="")
{
$dataT = $dataT.','.$r;
$str = implode(',',array_unique(explode(',', $dataT)));
}
}

// verwijderen eerste komma
$str = substr($str, 1);

echo $str;
 
Thomas van den Heuvel

Thomas van den Heuvel

26/09/2017 16:55:04
Quote Anchor link
Ayyy.

Waarom splits je dit probleem niet op in deelproblemen?

Probleem #1: het (eenmalig) bijhouden van (unieke) video-id's.

Probleem #2: afspeellijsten van deze items in een specifieke volgorde (mogelijk gekoppeld aan personen).

En waarom ben je aan het modderen met arrays? Waarom sla je dit niet op in een database? Dan was je vrij snel tot een constructie gekomen waarbij je video's, gebruikers en afspeellijsten organiseert in (koppel)tabellen.

Het opslaan van data in afbeeldingen is een beetje vergezocht? Als je gestructureerd data wilt opslaan en je niet de beschikking hebt over een database lijken mij JSON of XML veel betere alternatieven? Maar niet een of andere zelf gebreide standaard :/.
 
Hans De Ridder

Hans De Ridder

26/09/2017 23:31:17
Quote Anchor link
Het is een experimentele site.
Dus zoek ook niet altijd vanzelfsprekende oplossingen.
Ik heb de beschikking over een database. (Gedeelde server).
Maar heb wat geexperimenteerd met opslag van gegevens in images.
Dat voldoet prima.
Makkelijk op te slaan en elke output is eenvoudig op te roepen.
Met een paar regels PHP heb ik het nu zo,
dat de positie op de individuele lijst bepalend is voor het aantal toegekende punten.
Die worden dan bij elkaar opgeteld.
En dat bepaalt weer uiteindelijk hoe de site stemlijst eruit ziet.
Er zijn al heel wat blokken gemaakt.
Website onderdelen, registratie/inlog,/wijzigingen, googlemaps,
Maar soms wel leuk om als afleiding even een optie te proberen.
Er zit geen druk op.
Gewoon hobby. Over poosje wellicht online.

De verschillende blokken van de website zijn zo goed als klaar.
Maar soms als afleiding is het wel leuk wat mogelijke opties te bestuderen.
En vast stuk uit te werken.
Er zit geen druk op.
Is gewoon voor mezelf.
En als ik het zinnig vind dan komt het online.
Vandaar dat ik ook als thema heb 'promotie artiestenwereld'.
Dat doel geeft genoeg creativiteit.

Ik creeer geen nieuwe standaard.
IPTC is gewoon opgenomen in PHP.
Maar vooral bedoeld om fotogegevens op te slaan.
Ik gebruik het wat anders.
Gewijzigd op 26/09/2017 23:35:57 door Hans De Ridder
 
Thomas van den Heuvel

Thomas van den Heuvel

27/09/2017 16:56:42
Quote Anchor link
Experimenteren en verkennen is goed, maar enig reflecteren op zijn tijd kan ook geen kwaad.

Er zullen momenten zijn (of komen) waarin je heroverweegt hoe je deze data gaat gebruiken.

Met de gekozen oplossing ben je nu al meteen je eigen informatie aan het repareren (wegfilteren van duplicaten), nog voordat je hier wat dan ook mee doet. Dit lijkt mij een indicatie dat dit anders en mogelijk beter kan. De data is niet direct "gebruiksklaar".

Nu zijn dit mogelijk nog persoonlijke top 20 afspeellijsten, maar misschien wil je op den duur wat statistieken introduceren (X gebruikers hebben video Y in hun afspeellijst staan), lijsten kunnen delen et cetera. Met de huidige opzet is dit een hels karwei, eerst moet je *alle* data uitpakken (en opschonen) voordat je uberhaupt kunt gaan meten en rekenen. Met de data valt niet (of in ieder geval niet makkelijk) te werken.

Andere programmeurs die je deze oplossing laat zien zullen waarschijnlijk hun wenkbrauwen fronsen, of het gemiddeld aantal wtf's per minuut doen laten stijgen. Bovenstaande code is ook niet voorzien van commentaarregels (geen annotatie). Meestal staat er in een verhaaltje kort uitgelegd wat alles doet en motiveert zijdelings ook WAAROM het op die manier gedaan is. Je zult dit op zijn minst naar jezelf toe moeten motiveren maar op dit moment is de code vanwege het ontbreken van commentaar niet erg leesbaar. Als iemand anders jouw werk om wat voor reden dan ook zou moeten inzien of zal moeten gebruiken heeft deze een dagtaak aan het reverse engineeren van wat er nu concreet gebeurt. Omgekeerd zou jij mogelijk ook ooit met code van anderen aan de slag moeten. Als er geen letter geannoteerd is is daar eigenlijk geen beginnen aan. Wat gij niet wilt dat u geschiedt... De code is niet transparant.

Even los van het feit dat IPTC bedoeld is voor het opslaan van metadata van afbeeldingen heeft deze waarschijnlijk limieten qua opslagruimte en/of de lengte van individuele velden. En mogelijk zul je ook character encoderingen in overweging moeten nemen. Deze dingen spelen nu mogelijk niet, maar wat als je iedereen een persoonlijke top 50 geeft en het dan niet past? Of dat je mogelijk exotische karakters gaat opslaan die vervolgens door de vleesmolen gaan. Mogelijk kom je dus in de knoei als je deze oplossing uitbouwt.

Bottom line is dat wat je gebruikt naar alle waarschijnlijkheid geen geschikt medium is voor wat je probeert te doen. Het is mede de verantwoordelijkheid van gebruikers van deze site ("vakgenoten") om je hier op te wijzen. Wat je hier vervolgens mee doet mag je zelf weten :).
 
Hans De Ridder

Hans De Ridder

27/09/2017 21:46:57
Quote Anchor link
Bedankt voor je reacties.

Het zijn niet mijn lijsten, maar van leden.
Die kunnen ook afgespeeld worden op de website.
De website top 20 wordt samengesteld uit deze lijsten.
Voor mij is het straks van belang bij hoeveel leden
ik beter weer kan overgaan naar de database.
Dat is in principe niet zo'n probleem.
De opdrachten zijn niet zo verschillend tov database.
Een image is 1 x 1 pixel in jpg. Ongeveer 400b.
Met alle persoonlijke info wordt het ongeveer 1,5kb.

Elk lid heeft een eigen image.
Daar staat alle persoonlijke data opgeslagen.

Alle documenten in pdf worden images van gemaakt.
Meeste is tijdelijk.
Daarom worden die gegevens voor de layout in de image geplaatst.
Wordt de image verwijderd, dan is de data ook weg.
Mag/moet ook.
Youtube kent een eigen mogelijkheid om images te plaatsen.
Originelen worden pas bekeken/beluisterd als er geklikt wordt.

De images zelf hebben 31 posities om data te plaatsen.
Dat mag ook komma gescheiden zijn.
Ik ben nog geen problemen tegen gekomen bij data tot 2000 characters per regel.

Is voor mij helemaal nieuw.
En er is naast de eenvoudige oproep- en plaatsen script weinig gedocumenteerd bij PHP.
Er zijn wel classes gemaakt.

Het heeft zeker ook nadelen.
Bij een wijziging moet alle data van een image worden gevraagd.
De wijziging(en) doorvoeren, en alles weer terugplaatsen.
Het vraagt ook oplettendheid mbt veiligheid.
Maar ik vind het leuk om die grenzen allemaal op te zoeken.
Ook benieuwd hoe dit doorwerkt op verwerkings snelheden.
En op het dataverkeer.
Gewijzigd op 27/09/2017 22:55:17 door Hans De Ridder
 
Willem vp

Willem vp

27/09/2017 23:50:21
Quote Anchor link
> Ook benieuwd hoe dit doorwerkt op verwerkings snelheden.
> En op het dataverkeer.

Als de gegevens op de server worden verwerkt, zal het dataverkeer niet hoger of lager zijn dan wanneer je de gegevens in een database hebt.

De verwerkingssnelheid zal allicht lager zijn dan bij een database, maar wanneer het om een beperkt aantal bestanden gaat, zul je dat niet echt merken. Vanaf een paar honderd bestanden (zo te zien staat alles in 1 directory) worden de toegangstijden wel steeds langer en ik verwacht dat je vanaf een paar duizend bestanden serieus rekening moet gaan houden met timeouts. Afhankelijk van je hardware misschien al eerder.

Een ander punt om in het achterhoofd te houden is concurrency. Wanneer een plaatje wordt herschreven, is het even niet beschikbaar. Als precies op dat moment een andere worker het plaatje wil inlezen, kan het misgaan. Onder meer om die reden slaan we op mijn werk bepaalde plaatjes op in een database. Dat zou in jouw geval ook nog een oplossing kunnen zijn: dan heb je én de voordelen van een database én je gegevens in IPTC. ;-)
 
Hans De Ridder

Hans De Ridder

28/09/2017 01:25:19
Quote Anchor link
Dank voor je opmerkingen.
Het grootste deel van het herschrijven zijn wijzigingen in de persoonlijke gegevens.
Dus dat is prive. En niet beschikbaar voor andere leden.
Dat geldt in principe ook voor flyers (jpg) en documenten (pdf).
In principe laat ik van elke soort document er telkens maar 1 toe.
Die kan dan onder dezelfde naam vervangen worden of aangevuld.
Daar kan inderdaad het probleem optreden van wijzigen en bekijken tegelijk.
Maar uitsluitend de eigenaar van de image/document kan wijzigingen aanbrengen.
Zijn documenten als aangeboden, gevraagd, gestolen.
Zal in principe niet veel meer aan gewijzigd worden.
Wel goed om me er op te attenderen.
Dat zijn bovendien documenten en flyers,, die een beperkte levensduur hebben (2 weken?)
Ik maak me meer zorgen over het opslaan van de originele documenten.
Dat gaat wellicht bij meer leden een opslagprobleem geven.
Ik zoek naar opslag op een cloud, waar vanaf de website, of rechstreeks via
de leden, bestanden op gezet kunnen worden.
Ben nog niks zinnigs tegen gekomen. Ook niet met API.
Maar het is allemaal uit te breiden.
Dus eerst vrolijk verder borduren op idee....
Gewijzigd op 28/09/2017 01:27:41 door Hans De Ridder
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.