mkdir

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior/Senior Python developer (Django)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en werken ze met pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Er is een kwaliteitsfocus en dan biedt ruimte om verbeteringen echt door te voeren binnen de gehele

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 »

Lead Java Developer

Dit ga je doen Je taken bestaan onder andere uit: Het aansturen van een development team bestaande uit 8 collega's op technisch maar ook HR gebied; Het maken van strategische keuzes omtrent de (nieuw)bouw van deze applicatie; Het maken van technische ontwerpen; Hands-on mee ontwikkelen met het team (met o.a. Java, Spring, Angular, REST); Reviewen van code en feedback geven op collega developers. Hier ga je werken Als Lead Software Developer ben je verantwoordelijk voor één van de vier Agile Java ontwikkelteams die bouwen aan technologie die duizenden instanties wereldwijd verbindt. Dit Agile team, data Jira en Confluence gebruikt en

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 »

Dynamische Oracle/APEX Ontwikkelaar in de logistie

Bedrijfsomschrijving De organisatie in de regio Rotterdam is gespecialiseerd in het ontwikkelen van moderne webbased software voor de ERP branche. In totaal is er 20FTE aan specialisten actief binnen de organisatie. De ICT afdeling bestaat momenteel uit 15FTE. Ze groeien ontzettend hard en daarom zoeken zij een Oracle/APEX Developer die het reeds sterke team nog sterker komt maken. Hier werken ze op projectbasis voor verschillende grote organisaties in de logistieke sector. Het is een informele organisatie waarbinnen een fijne werksfeer heerst. Zoals aangegeven willen ze het team nog sterker maken en daarvoor zoeken ze bij voorkeur medior of senior Oracle/APEX

Bekijk vacature »

Teamlead PHP Developer

Functieomschrijving Voor een gewaardeerde werkgever in de buurt van Middelburg zijn wij op zoek naar een gemotiveerde teamlead PHP developer met affiniteit met Symfony/Laravel. Een enthousiast persoon die het ontwikkelteam komt versterken met het aanpakken van uitdagende projecten. Ben jij op zoek naar een uitdaging waar je de tijd en ruimte krijgt jezelf te ontwikkelen en je eigen IT-team aan te sturen? Lees dan snel verder! Die ga je doen: Bijdragen aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de PHP based applicaties; Ontwikkeling en beheer van de serviceportal in Symfony en de webshops in de tweede versie van

Bekijk vacature »

C# Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Wil jij graag aan de slag als C# ontwikkelaar en jouw skills verder ontwikkelen? Zoek niet verder! Als C# ontwikkelaar ga je aan de slag met de volgende taken: (verdere) ontwikkeling van de software voor de interne processen binnen een .net omgeving; optimaliseren van de dataprocessing; ontwerpen en implementeren van zowel desktop- als web-programmatuur; ontwikkeling van tools ten behoeve van consultants en klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Den Bosch. Zij ontwikkelen business intelligence software voor een specifieke branche. Dit houdt in dat zij dashboards ontwikkelen

Bekijk vacature »

IT Manager team PaaS

TenneT is hard groeiende om haar ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Lead PaaS die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je wordt de Teammanager (Lead) van een nieuw team binnen de afdeling Basic van Information Technology and Facilities (ITF) van TenneT. Het team heet Platform as a Service. Hier wordt elke dag in een goede sfeer met zijn allen hard gewerkt om vanuit IT

Bekijk vacature »

SQL Database Ontwikkelaar

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je houdt je bezig met het ontwerp en de ontwikkeling van MS SQL server databases, dit doe je met T-SQL als programmeer laag. De begeleiding van projecten van A tot Z, je zult aansluiten bij meetings met

Bekijk vacature »

C#.NET-developer - JUNIOR

Functie omschrijving Voor een leuke opdrachtgever in omgeving Brielle zijn wij op zoek naar een junior developer. Werk jij graag met de volgende tools & technieken? C#, .NET, ASP.NET, MVC en SQL? Kijk dan snel of dit iets voor jou is! Als programmeur bij een productiebedrijf zal je voornamelijk nieuwe software schrijven maar ook bestaande software verbeteren. Verder werk je veel samen in back end projecten met leuke collega's. Bedrijfsprofiel Met een team van ruim 130 personen staan ze elke dag weer klaar om IT en Business te combineren door het ontwikkelen van producten op maat. Er zijn 3 teams,

Bekijk vacature »

Machine Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Machine Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Machine Software Developer ben je verantwoordelijk voor: - Je ontwerpt, ontwikkelt en debugt software voor machinebesturingssystemen en complexe landbouwmachines; - Je stelt gebruikersinterfaces op (cabinedisplays); - Op termijn ga je softwareprojecten leiden voor specifieke machines; - Inclusief planning, documentatie en validatie; - Om specificaties te verifiëren

Bekijk vacature »

Medior/senior front end developer React Sportsoftw

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van onze stack; Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een gewaardeerde werkgever in regio Oosterhout zijn wij op zoek naar een back-end developer. Kennis of ervaring met C# & SQL is een must! Je bent verantwoordelijk voor de beheer en ontwikkeling van de software; Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; Je brengt de aanpassingssuggesties van klanten in kaart, om

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe stap? Voor een softwarebedrijf in regio Oosterhout zijn wij op zoek naar een back-end developer met kennis of ervaring met C# en SQL. Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je brengt de aanpassingssuggesties van klanten in kaart, om ze vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

TypeScript developer (tot € 6.000, - bruto pe

Functie Om bovenstaande ambities waar te kunnen maken zijn ze op zoek naar een ervaren Typecript developer die niet alleen zichzelf verder ontwikkelt, maar het ook leuk vinden om op termijn meer junior collega’s op pad te helpen. Je zult aan de slag gaan met het migreren van hun bestaande UI in Angular. Maar ook het ontwikkelen van een mobiele app. Hierbij hechten ze veel waarde aan User Experience en kiezen ze duidelijk voor kwaliteit i.p.v. snelheid. Je krijgt dus de ruimte om vanuit gedegen onderzoek te werk te gaan en het borgen van kwaliteit staat hoog in het vaandel.

Bekijk vacature »
Ozzie PHP

Ozzie PHP

25/12/2013 23:19:25
Quote Anchor link
Ola,

Een vraagje. Als het niet lukt om een directory aan te maken dan geeft mkdir false terug. Echter, de reden kan verschillend zijn. Het kan zijn dat de directory al bestaat, of dat de maprechten van de parent directory het niet toestaan. Nu kan ik eerst controleren of de directory al bestaat en zo niet, dan pas mkdir() uitvoeren. Dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

if (!is_dir('foo')) mkdir('foo');

?>

Nu is het zo dat PHP meerdere processen (requests) tegelijk uitvoert. Zou het nu kunnen dat proces A constateert dat directory "foo" niet bestaat, direct daarna proces B directory "foo" aanmaakt en proces A vervolgens de mkdir() zal uitvoeren wat resulteert in false omdat proces B zojuist de directory heeft aangemaakt? Anders gezegd, kan in de onderstaande regel op de plek van het sterretje * een ander proces de directory "foo" aanmaken?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

if (!is_dir('foo')) * mkdir('foo');

?>

Ik hoop dat mijn vraag duidelijk is. Zo niet, laat het dan even weten dan probeer ik het nog beter uit te leggen.
Gewijzigd op 25/12/2013 23:22:44 door Ozzie PHP
 
PHP hulp

PHP hulp

25/04/2024 21:03:51
 
Wouter J

Wouter J

25/12/2013 23:25:30
Quote Anchor link
Sinds wanneer kan php meerdere processen tegelijkertijd aan?
 
Mark Hogeveen

Mark Hogeveen

25/12/2013 23:33:25
Quote Anchor link
Bij multithreading zou je dit probleem kunnen hebben, maar voor zover ik weet gaat bij PHP alles echt achter elkaar. En als er überhaupt requests door elkaar worden uitgevoerd, dan is de tijd tussen 2 statements zo immens klein dat ook de kans op problemen hiermee extreem klein is, bij sommige programmeertalen, de vaag gezegd op aparte hardware worden uitgevoerd, wordt er gebruik gemaakt van synchronized functions, dat zijn opdrachten die echt alleen achter elkaar kunnen worden uitgevoerd. het nadeel van deze techniek is dat het iets trager kan worden. Maar we hebben het nu allang niet meer over PHP...
Sowieso zegt men altijd: een computer (processor) kan maar 1 ding tegelijk.
Deze vraag wordt ook wel eens gesteld met SQL queries, ook daar is hier rekening mee gehouden.
Gewijzigd op 25/12/2013 23:35:10 door Mark Hogeveen
 
Ozzie PHP

Ozzie PHP

25/12/2013 23:49:48
Quote Anchor link
>> Sinds wanneer kan php meerdere processen tegelijkertijd aan?

>> Bij multithreading zou je dit probleem kunnen hebben, maar voor zover ik weet gaat bij PHP alles echt achter elkaar.

Volgens anderen op het forum doet PHP wél aan multithreading.

Zie hier een antwoord op een eerdere vraag die ik hierover stelde:
http://www.phphulp.nl/php/forum/topic/processen/90311/#647988

Quote:
Ik denk dat het antwoord hierop volmondig ja moet zijn. Een webserver is een multithreaded omgeving dus die kan meerdere requests tegelijk aan. Uiteraard niet oneindig veel, maar zeker meer dan 1.
Dit kan je simpel zelf testen door van 1 device een aanvraag naar je server te doen die je in een lange (desnoods oneindige) loop laat komen en vanaf een andere device een pagina op te vragen. Die pagina krijg je vast te zien -> twee requests tegelijk uitgevoerd dus.

Hieruit leid ik af dat er meerdere requests tegelijkertijd kunnen worden afgehandeld. Of zie ik het verkeerd?
 
Dos Moonen

Dos Moonen

26/12/2013 01:09:39
Quote Anchor link
Je kunt PHP compilen met multithreading support geloof ik. Maar over het algemeen wordt dit niet gedaan maar spawnt een SAPI zoals Apache meerdere (single threaded) workers. Dat zijn van individuele processen die het OS in theorie precies op het sterretje zou kunnen onderbreken om een andere worker even aan de beurt te laten. In de praktijk

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
<?php

// 'foo' is geen bestand of map
if ( ! file_exists('foo'))
{

    // is_dir() wordt alleen uitgevoerd als mkdir mislukt
    if (mkdir('foo') OR is_dir('foo'))
    {

        // success, 'foo' is een map (ik negeer de mogelijke race conditie waar 'foo' tussen die twee checks verwijders is, anders blijven we bezig
    }
}

else
{
    // 'foo' bestaat al, geen idee of het een bestand of een map is
}

//

if (is_dir('foo') OR mkdir('foo'))
{

    // 'foo' is een map
}
?>
Gewijzigd op 26/12/2013 01:11:06 door Dos Moonen
 
Ozzie PHP

Ozzie PHP

26/12/2013 01:19:33
Quote Anchor link
Ah, thanks Dos. Ik moet dus wel rekening houden met de (zeer zeldzame) mogelijkheid dat op het punt van het sterretje proces B tussenbeide komt. Jouw oplossing lijkt me inderdaad een mooie! Die OR kun je die ook vervangen door || ?

Ik dacht ook nog eventueel aan deze oplossing:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if (!@mkdir($directory)) {
  if (is_dir($directory)) {
    // gooi exception dat directory al bestaat
  } else {
    // gooi exception dat directory niet kon worden aangemaakt
  }
}

?>

Hierbij probeer ik eerst zonder enige controle de directory aan te maken. Als het niet lukt ga ik kijken of dat komt omdat de directory al bestaat, of omdat de directory niet kon worden aangemaakt (wegens verkeerde maprechten).

Is mijn variant ook goed?

Nu ik nog even naar jouw variant kijk mis ik de optie om een exception te gooien als het misgaat.
Gewijzigd op 26/12/2013 01:23:38 door Ozzie PHP
 
Ivo P

Ivo P

26/12/2013 03:41:46
Quote Anchor link
Je zou een dir genaamd index.php kunnen willen aanmaken.

Er is gerede kans dat mkdir dan mislukt omdat er al een *file* is met die naam, maar is_dir() geeft dan warschijnlijk false....
 
Ozzie PHP

Ozzie PHP

26/12/2013 12:31:46
Quote Anchor link
>> Je zou een dir genaamd index.php kunnen willen aanmaken.

En waarom zou je een directory willen aanmaken die de naam van een bestand heeft? :-s

>> Er is gerede kans dat mkdir dan mislukt omdat er al een *file* is met die naam, maar is_dir() geeft dan warschijnlijk false....

Dat zal inderdaad false opleveren, maar met mijn code (zie hierboven) komt ie dan dus in de "else" terecht. Precies wat je zou willen lijkt mij.
 
Ozzie PHP

Ozzie PHP

03/01/2014 10:14:21
Quote Anchor link
Toch nog even terugkomend op dit verhaal.

Dos zegt hierboven "Dat zijn van individuele processen die het OS in theorie precies op het sterretje zou kunnen onderbreken om een andere worker even aan de beurt te laten."

Het kan volgens Dos dus zo zijn dat deze situatie optreedt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

$directory
= 'foo';

if (is_dir($directory)) {
 // code
 // code
 // code

 $this->rename($directory, 'bar');  // wieuw wieuw, alarmbellen, directory 'foo' bestaat niet. Gooi een exception!
}

?>

Kan de situatie zoals hierboven geschetst "in het echie" voorkomen? Dus dat je een if-statement hebt dat in true resulteert omdat een directory bestaat, en dat ondertussen terwijl het if-statement wordt uitgevoerd een andere proces de directory verwijdert, waardoor je binnen de if-statement ineens geen directory meer hebt? Als dit zo is, is het eigenlijk toch heel vreemd? Zou PHP zelf dan niet voorkomen dat tijdens de uitvoering van een if-statement het ene proces het andere proces niet kan onderbreken?

Eigenlijk kan ik mijn vraag nog iets ruimer stellen. Moet ik in het codeblok hierboven eenmalig controleren of de directory bestaat, of moet ik dubbel controleren?
 
Ivo P

Ivo P

03/01/2014 10:51:29
Quote Anchor link
die kans is natuurlijk altijd aanwezig.

Niet alleen als 2 php processen elkaar in de wielen rijden, maar ook als iemand via de command prompt de directory aanpast/verwijdert, of misschien wel de heel schijf unmount.

Hoe korter de tijd tussen regel 5 en 9 hoe kleiner de kans.
Als je eerst controleert of de dir bestaat en daarna op je gemak een pdf van 100 pagina's gaat bakken, dan kun je zo maar 1 of 2 minuten verder zijn.

Doe je niet heel veel tegen.
 
Ozzie PHP

Ozzie PHP

03/01/2014 11:02:23
Quote Anchor link
Ivo, dankjewel voor je reactie. Dan zal ik er toch maar rekening mee houden...
 



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.