De Devschuur Coffee Corner - Iteratie ⓬ Vorige deel Overzicht Laatste deel

Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.

Pagina: 1 ... 19 ... 102 Laatste
Acties:
  • 585.858 views

Acties:
  • 0 Henk 'm!

  • DeluxZ
  • Registratie: Augustus 2003
  • Laatst online: 15-09 11:49

DeluxZ

Livin' the good life

gekkie schreef op maandag 11 februari 2019 @ 22:45:
Hmmm iedereen druk z'n docker, kubernetes of andere container meuk aan het patchen, voordat ze overboord gaan slaan, dat het hier zo rustig is :p
Dadelijk spoelen alle containers aan op Terschelling :9

]|[ Apple Macbook Pro Retina 13" ]|[


Acties:
  • +1 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 18-09 22:08
DeluxZ schreef op dinsdag 12 februari 2019 @ 10:34:
[...]
Dadelijk spoelen alle containers aan op Terschelling :9
Hmm op zich zou dat in dit geval nog niet de slechtste uitkomst zijn:
https://seclists.org/oss-sec/2019/q1/119

Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

gekkie schreef op dinsdag 12 februari 2019 @ 10:36:
[...]

Hmm op zich zou dat in dit geval nog niet de slechtste uitkomst zijn:
https://seclists.org/oss-sec/2019/q1/119
Ha! Ik dacht al dat het om een recent ontdekt lek ging, maar dat is ook echt zo dus. Het was net iets te random als grapje :+

Acties:
  • +1 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 18-09 22:08
TheNephilim schreef op dinsdag 12 februari 2019 @ 10:47:
[...]
Ha! Ik dacht al dat het om een recent ontdekt lek ging, maar dat is ook echt zo dus. Het was net iets te random als grapje :+
Ach bij mij weet je maar nooit, maar meestal is er inderdaad wel ergens een connectie met enige actualiteit te vinden :+

Achja voor de liefhebbers van overal maar prebuild docker meuk van laten downloaden .. tis zo makkelijk, maar toch een beetje oppassen dus. Op zich weinig nieuws onder de zon, maar goed het wil wel eens versloffen onder het mom van "gemak" in combinatie met "het zit toch in een container".

Valt me overigens tegen dat het nog niet op tweakers vermeld staat, elke Apple scheet, kleur verandering in een subbutton op feestboek wordt nagenoeg instant gemeld ...
Maar goed ze zullen wel druk zijn met hun development summit ding.

[ Voor 27% gewijzigd door gekkie op 12-02-2019 10:55 ]


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

gekkie schreef op dinsdag 12 februari 2019 @ 10:51:
[...]

Ach bij mij weet je maar nooit, maar meestal is er inderdaad wel ergens een connectie met enige actualiteit te vinden :+

Achja voor de liefhebbers van overal maar prebuild docker meuk van laten downloaden .. tis zo makkelijk, maar toch een beetje oppassen dus. Op zich weinig nieuws onder de zon, maar goed het wil wel eens versloffen onder het mom van "gemak" in combinatie met "het zit toch in een container".
Heeeeeeeul toevallig gisteren zelf voor het eerst eens iets met Docker gedaan. Ik wilde toch thuis weer eens wat kunnen klooien met code, in plaats van steeds naar kantoor te moeten fietsen. Maar om nu weer een hele VirtualBox+Vagrant+etc. te gaan installeren was ik toch eens benieuwd naar Docker.

Eerst Windows 10 Home geüpgrade naar Pro, docker geïnstalleerd en twee opties geprobeerd; https://github.com/laradock/laradock en https://github.com/shipping-docker/vessel. Die laatste heeft het overigens met gemak gewonnen, maar dat terzijde.

In mijn geval dus in gebruik als development omgeving. Voor productie vind ik het iets teveel 'magic' allemaal, kan me voorstellen dat het lastig debuggen is en dat je verdwaald in alle YAML files.
Valt me overigens tegen dat het nog niet op tweakers vermeld staat, elke Apple scheet, kleur verandering in een subbutton op feestboek wordt nagenoeg instant gemeld ...
Maar goed ze zullen wel druk zijn met hun development summit ding.
Yup, zou graag ook meer van dergelijk nieuws zien, maarja :X

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
TheNephilim schreef op dinsdag 12 februari 2019 @ 11:02:
In mijn geval dus in gebruik als development omgeving. Voor productie vind ik het iets teveel 'magic' allemaal, kan me voorstellen dat het lastig debuggen is en dat je verdwaald in alle YAML files.
Hoe bedoel je? Je proces draait gewoon in een 'jail' in die docker container. Je hebt in princiepe niks te maken met Yaml files voor debuggen, productie of niet.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 18-09 22:08
TheNephilim schreef op dinsdag 12 februari 2019 @ 11:02:
Heeeeeeeul toevallig gisteren zelf voor het eerst eens iets met Docker gedaan. Ik wilde toch thuis weer eens wat kunnen klooien met code, in plaats van steeds naar kantoor te moeten fietsen. Maar om nu weer een hele VirtualBox+Vagrant+etc. te gaan installeren was ik toch eens benieuwd naar Docker.
Achja ook in virtualisatie oplossingen komen nog genoeg bugs voor, daar niet van.
Eerst Windows 10 Home geüpgrade naar Pro, docker geïnstalleerd en twee opties geprobeerd; https://github.com/laradock/laradock en https://github.com/shipping-docker/vessel. Die laatste heeft het overigens met gemak gewonnen, maar dat terzijde.

In mijn geval dus in gebruik als development omgeving. Voor productie vind ik het iets teveel 'magic' allemaal, kan me voorstellen dat het lastig debuggen is en dat je verdwaald in alle YAML files.

Yup, zou graag ook meer van dergelijk nieuws zien, maarja :X
Mjah ben er zelf ook nog niet echt uit, alles heeft z'n voor en nadelen.
Kan nog niet echt wennen aan de tooling en commandline options van docker en co.

Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

Hydra schreef op dinsdag 12 februari 2019 @ 11:08:
[...]


Hoe bedoel je? Je proces draait gewoon in een 'jail' in die docker container. Je hebt in princiepe niks te maken met Yaml files voor debuggen, productie of niet.
Niet met betrekking met de applicatie die je erop draait, maar met Docker zelf. Hoe je productie-omgeving eruit ziet staat in docker-compose.yml toch? Ik heb nu een kant-en-klare oplossing gepakt, maar voor productie zul vaak zelf iets in elkaar zetten, dan ben je een YAML file aan het editen toch?

Ik kom net kijken overigens, heb er al eens wat over gelezen, maar past gisteren serieus wat mee gedaan en dan nog zonder daadwerkelijk iets in elkaar te zetten. Dus dit verhaal vertegenwoordigd mijn huidige indruk O-)

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 15-09 05:50

Douweegbertje

Wat kinderachtig.. godverdomme

Het is sowieso even wennen, al die containers. Het is ook een mindset switch. Ik zit nu vooral met kubernetes te spelen en dan moet je echt even af van "fysieke servers".

Uiteindelijk gaat er dan een wereld voor je open. Ik heb nu voor mijzelf prive een cluster draaien met diverse docker containers, nginx loadbalancer en een service voor letsencrypt voor TLS.

Als je dan ziet dat je zo tof rolling updates kan uitvoeren en op diverse manieren kan schalen.. holy moly.

Acties:
  • +1 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
TheNephilim schreef op dinsdag 12 februari 2019 @ 11:14:
Niet met betrekking met de applicatie die je erop draait, maar met Docker zelf. Hoe je productie-omgeving eruit ziet staat in docker-compose.yml toch?
Docker-compose wordt niet echt gebruikt voor productie omgevingen in grote systemen. Het is meer bedoeld als 'handigheidje' om ff snel een stel containers die afhankelijk van elkaar zijn op te spinnen. Het kan wel natuurlijk; ik gebruik 't voor m'n blog (Nginx container met statische site, Jenkins container voor CI/CD, en Traefik, een docker-aware reverse proxy) (blog post hierover).

In 'echte' systemen deploy je meestal docker containers in een container orchestrator cluster. Kubernetes is de meest populaire maar je hebt ook docker swarm, marathon/mesos en AWS ECS.

Ik werk al een jaar of drie met Docker en Kubernetes (enzo) dus als je vragen hebt, let me know :) Docker zelf is wel iets wat w.m.b. iedere dev mee aan de gang zou moeten. Niks van containers weten is anno 2019 niet de beste strategie carriere-technisch ;)
Douweegbertje schreef op dinsdag 12 februari 2019 @ 11:36:
Uiteindelijk gaat er dan een wereld voor je open. Ik heb nu voor mijzelf prive een cluster draaien met diverse docker containers, nginx loadbalancer en een service voor letsencrypt voor TLS.
Kan je aanraden eens naar Traefik te kijken i.p.v. Nginx.

[ Voor 25% gewijzigd door Hydra op 12-02-2019 12:03 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 15-09 05:50

Douweegbertje

Wat kinderachtig.. godverdomme

Hydra schreef op dinsdag 12 februari 2019 @ 12:01:
[...]


[...]


Kan je aanraden eens naar Traefik te kijken i.p.v. Nginx.
Ik heb het gecheckt maar mijn persoonlijke ervaring ligt meer bij nginx. Ik moet zeggen dat ik bij de wat grotere organisaties vooral Traefik zie. Gewoon voor mijn web-based meuk is nginx dan prima. Iets sneller en efficiënter. Niet dat het zo relevant is voor mijn load :)

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Douweegbertje schreef op dinsdag 12 februari 2019 @ 12:16:
Ik heb het gecheckt maar mijn persoonlijke ervaring ligt meer bij nginx. Ik moet zeggen dat ik bij de wat grotere organisaties vooral Traefik zie. Gewoon voor mijn web-based meuk is nginx dan prima. Iets sneller en efficiënter. Niet dat het zo relevant is voor mijn load :)
Ging me vooral om de automatische integratie met Docker en Let's Encrypt.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

Hydra schreef op dinsdag 12 februari 2019 @ 12:01:
[...]


Docker-compose wordt niet echt gebruikt voor productie omgevingen in grote systemen. Het is meer bedoeld als 'handigheidje' om ff snel een stel containers die afhankelijk van elkaar zijn op te spinnen. Het kan wel natuurlijk; ik gebruik 't voor m'n blog (Nginx container met statische site, Jenkins container voor CI/CD, en Traefik, een docker-aware reverse proxy) (blog post hierover).

In 'echte' systemen deploy je meestal docker containers in een container orchestrator cluster. Kubernetes is de meest populaire maar je hebt ook docker swarm, marathon/mesos en AWS ECS.

Ik werk al een jaar of drie met Docker en Kubernetes (enzo) dus als je vragen hebt, let me know :) Docker zelf is wel iets wat w.m.b. iedere dev mee aan de gang zou moeten. Niks van containers weten is anno 2019 niet de beste strategie carriere-technisch ;)


[...]


Kan je aanraden eens naar Traefik te kijken i.p.v. Nginx.
Bedankt voor de toelichting! :D Het is nogal aardige hoeveelheid nieuwe informatie, maar vindt het wel leuk om uit te zoeken hoe zoiets werkt. Zal er thuis sowieso eens mee aan de slag gaan. Eigenlijk wil ik mijn losse services ook graag in containers hebben; nu heb ik een losse VPS voor TeamSpeak en nog een losse VPS die dienst doet als Unifi controller en webserver. Als je dat middels containerization bij mekaar kunt halen terwijl het toch los van elkaar draait dan is dat ook wel mooi.

Kubernetes wilde ik nog eens bekijken, heb namelijk een accountje bij DigitalOcean en die bieden dit tegenwoordig ook aan: https://blog.digitalocean...eleases-k8s-as-a-service/.

Dat klopt, maar het is als developer soms wel een beetje kiezen waar je wel meteen in duikt en waarin niet. Het hele container gebeuren heb ik toch een beetje afgewacht, omdat er nog zoveel veranderde. Daarnaast is er altijd wel wat om in te duiken natuurlijk.

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 15-09 05:50

Douweegbertje

Wat kinderachtig.. godverdomme

Hydra schreef op dinsdag 12 februari 2019 @ 12:22:
[...]


Ging me vooral om de automatische integratie met Docker en Let's Encrypt.
Ah, ik gebruik ingress-nginx met cert-manager, dus uiteindelijk kom je volgens mij op hetzelfde uit! :)
Gewoon een kwestie van een domain defineren in mn spec/tls/hosts en een rule per host opgeven naar welke service hij moet gaan.

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Douweegbertje schreef op dinsdag 12 februari 2019 @ 12:27:
Ah, ik gebruik ingress-nginx met cert-manager, dus uiteindelijk kom je volgens mij op hetzelfde uit! :)
Gewoon een kwestie van een domain defineren in mn spec/tls/hosts en een rule per host opgeven naar welke service hij moet gaan.
Ja, da's dus het punt: je hoeft geen aparte configs bij te houden in Traefik. Die doet dat dus automatisch voor je. Maar als je liever in je comfort zone blijft; prima :)

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 15-09 05:50

Douweegbertje

Wat kinderachtig.. godverdomme

Hydra schreef op dinsdag 12 februari 2019 @ 12:29:
[...]


Ja, da's dus het punt: je hoeft geen aparte configs bij te houden in Traefik. Die doet dat dus automatisch voor je. Maar als je liever in je comfort zone blijft; prima :)
aha, dat wist ik niet. Dan is het wel interessant om dat even beter te checken :D Thanks

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Zie m'n blog post ;)

https://niels.nu


Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 20:19
Je moet er wel rekening mee houden dat Nginx een webserver is, en Traefik niet. Je kunt beiden gebruikt als reverse proxy, maar als je custom error pagina's als de geproxyde site offline is of eventueel andere webpagina's wilt serveren heb je daar met Traefik nog een extra webserver voor nodig. Voor een kleine infrastructuur is Nginx dan ook vaak een gemakkelijkere (maar niet perse betere) oplossing.

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Hydra schreef op dinsdag 12 februari 2019 @ 12:01:
[...]
Ik werk al een jaar of drie met Docker en Kubernetes (enzo) dus als je vragen hebt, let me know :) Docker zelf is wel iets wat w.m.b. iedere dev mee aan de gang zou moeten. Niks van containers weten is anno 2019 niet de beste strategie carriere-technisch ;)
Wat doen jullie met databases zoals Postgres (en SQL Server) ?

Ik ben geneigd deze niet te dockerizen, omdat ze anders schalen dan applicaties (je wil liever meer databases op 1 instance, dan meerdere database servers voor elke app). Maar ook omdat ik het qua security lastiger vind te configureren dan simpelweg installeren (user remapping in Docker vs default install onder de juiste Linux accounts).

Dit komt deels omdat Microsoft SQL Server images standaard als root draaien |:( Dus ik zou dan met user remapping aan de slag moeten om alles een beetje in goede banen te leiden, of zelfs custom images moeten maken ervan. Dit heb ik overigens al geprobeerd en kan ook werken, maar dan moet ik allerlei mappen van tevoren aanmaken omdat SQL Server er anders over struikelt.

Een Postgres image kun je met wat environment variabelen vertellen dat hij onder user X moet draaien, dus dat valt nog mee.

Voor de rest ben ik wel ermee bezig overigens. Heb nginx draaien en meerdere containers voor allerlei zaken (portainer, pgadmin4, eigen applicaties etc).

Ik ben ook een beetje in de techniek erachter gedoken (Linux kernel namespaces voor pid, mnt, etc). Uitgezocht wat bind mounts (en volumes) zijn etc.

Verder heb ik nog nooit een Kubernetes cluster gezien ofzo, maar ja... daar is het bedrijf waarvoor ik werk ook te klein voor. Ik speel vooral met Docker zodat ik de boot qua kennis niet teveel mis, en omdat ik wat voordelen zie in het managen van meerdere versies van applicaties en hun dependencies.

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Lethalis schreef op dinsdag 12 februari 2019 @ 13:50:
Wat doen jullie met databases zoals Postgres (en SQL Server) ?
Databases in Docker is prima (je mount gewoon een volume). Alleen databases en orchestrators als k8s is geen goeie fit. Als je images op een specifieke node moeten landen kun je vaak beter gaan orchestrator gebruiken.

Maar het is vaak ook een non-issue. Als je bij GCP of AWS zit, wil je toch niet je eigen databases gaan beheren. Meestal geen enkele reden dat te doen.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 18-09 22:08
Lethalis schreef op dinsdag 12 februari 2019 @ 13:50:
[...]

Wat doen jullie met databases zoals Postgres (en SQL Server) ?

Ik ben geneigd deze niet te dockerizen, omdat ze anders schalen dan applicaties (je wil liever meer databases op 1 instance, dan meerdere database servers voor elke app). Maar ook omdat ik het qua security lastiger vind te configureren dan simpelweg installeren (user remapping in Docker vs default install onder de juiste Linux accounts).
Op https://planet.postgresql.org/ komen wel eens wat posts voorbij over het opzetten van een Postgres kubernetes cluster. Maar zoals met alles .. met de non-silver-bullet kun je je zelf toch nog prima in de voeten schieten.

Ik heb me er ook nog niet aan gewaagd en zie zo 123 ook de meerwaarde niet tov VM's en replicatie over meerdere hosts. Zoals je als zegt het is een hele andere workload. Containers en kubernetes is meer leuk voor dingen waarvan het ansich niet heel erg is dat ze ploffen en weer gelijk opnieuw gestart worden.Wat dus leuk is voor (semi-)stateless spul, maar ja dat is nu niet echt het nummer 1 kenmerk van de meeste (non-in-memory-only) databases, al leken de ontwikkelaars van mongodb daar ooit anders over te denken ;)

Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 20:45
Hydra schreef op dinsdag 12 februari 2019 @ 13:52:
[...]


Databases in Docker is prima (je mount gewoon een volume). Alleen databases en orchestrators als k8s is geen goeie fit. Als je images op een specifieke node moeten landen kun je vaak beter gaan orchestrator gebruiken.
Hoe doe je dat dan met je database backups? Voor elke container een eigen backup? Ik heb nu al mijn applicaties in 1 PostgreSQL cluster zitten en hoef dus maar 1 database server te backuppen. Als ik een nieuwe database aanmaak wordt die automatisch ook gebackupt. Hoe ga je daar mee om als elke database instance in zijn eigen container draait?

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 15-09 05:50

Douweegbertje

Wat kinderachtig.. godverdomme

rutgerw schreef op dinsdag 12 februari 2019 @ 14:27:
[...]


Hoe doe je dat dan met je database backups? Voor elke container een eigen backup? Ik heb nu al mijn applicaties in 1 PostgreSQL cluster zitten en hoef dus maar 1 database server te backuppen. Als ik een nieuwe database aanmaak wordt die automatisch ook gebackupt. Hoe ga je daar mee om als elke database instance in zijn eigen container draait?
Daar kan je natuurlijk van alles voor verzinnen. Uiteindelijk heb je persistent storge benodigd, dus je zou daar gewoon een snapshot van kunnen nemen. Kill de pod, backup, respawn.
Ik draai zelf galera cluster, dan wel buiten containers om maar wat ik doe is dat ik een node uit het cluster haal en hem dan backup en weer terug in het cluster plaats. Dit om deadlocks e.d. te voorkomen. Dit process zou je ook net zo goed binnen containers kunnen onderbrengen.

Persoonlijk zou ik zelf geen db in containers draaien. Nog los van de performance loss die hebt, is het principe van containerization niet echt van toepassing op iets wat je juist niet zo wilt draaien.

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
rutgerw schreef op dinsdag 12 februari 2019 @ 14:27:

Hoe doe je dat dan met je database backups? Voor elke container een eigen backup? Ik heb nu al mijn applicaties in 1 PostgreSQL cluster zitten en hoef dus maar 1 database server te backuppen. Als ik een nieuwe database aanmaak wordt die automatisch ook gebackupt. Hoe ga je daar mee om als elke database instance in zijn eigen container draait?
Wat is het verschil tussen verschillende database processen op een host versus verschillende processen in containers dan? Ik zie het verschil niet.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 20:45
Hydra schreef op dinsdag 12 februari 2019 @ 14:34:
[...]


Wat is het verschil tussen verschillende database processen op een host versus verschillende processen in containers dan? Ik zie het verschil niet.
PostgreSQL is 1 cluster met meerdere databases. Dus op 1 VM draait 1 instance met meerdere databases die dus allemaal in 1 backup procedure lopen.

Terwijl, als je ook je database in een container hebt zitten, samen met je applicatie, je dus voor elke app een aparte database hebt die apart gebackupt moet worden. Dus ik was benieuwd hoe je daar mee om gaat.

Acties:
  • +1 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
rutgerw schreef op dinsdag 12 februari 2019 @ 14:38:
Terwijl, als je ook je database in een container hebt zitten, samen met je applicatie, je dus voor elke app een aparte database hebt die apart gebackupt moet worden. Dus ik was benieuwd hoe je daar mee om gaat.
Oh, zo. Da's niet hoe ik het tot nu toe gezien heb. Sowieso draai je per container maar 1 proces, dus de applicatie. En die praat dan gewoon tegen een database. Container of niet.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Hydra schreef op dinsdag 12 februari 2019 @ 14:34:
[...]
Wat is het verschil tussen verschillende database processen op een host versus verschillende processen in containers dan? Ik zie het verschil niet.
Als het goed is, draait het in een andere pid en mnt - en liefst ook usr - namespace :P

sudo ps -o pidns,userns,mntns,pid,cmd ax

Ik vind alleen de user remapping met Docker nog wat verwarrend. Een user 999 in container X hoeft van mij niet hetzelfde te zijn als user 999 in container Y en ik zou ze dus graag naar verschillende users willen mappen.

[ Voor 22% gewijzigd door Lethalis op 12-02-2019 15:12 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Lethalis schreef op dinsdag 12 februari 2019 @ 15:06:
[...]

Als het goed is, draait het in een andere pid en mnt - en liefst ook usr - namespace :P
Dat is geen verschil tussen docker en niet-docker. Sowieso is docker containers niet als root draaien een best-practice.

https://niels.nu


Acties:
  • +2 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 20:19
Hydra schreef op dinsdag 12 februari 2019 @ 15:22:
[...]


Dat is geen verschil tussen docker en niet-docker. Sowieso is docker containers niet niets, tenzij strict noodzakelijk, als root draaien een best-practice.
FTFY.

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Dat vind ik ook het gekke van Linux namespaces.

Waarom al die moeite doen als je processen ook gewoon onder een user met weinig privileges kunt draaien?

En de processen die als root draaien, maken vaak al gebruik van het droppen van root en escaleren alleen wanneer dat nodig is (openen van een privileged port e.d.).

[ Voor 22% gewijzigd door Lethalis op 12-02-2019 15:57 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 18-09 22:08
Lethalis schreef op dinsdag 12 februari 2019 @ 15:52:
[...]

Dat vind ik ook het gekke van Linux namespaces.

Waarom al die moeite doen als je processen ook gewoon onder een user met weinig privileges kunt draaien?

En de processen die als root draaien, maken vaak al gebruik van het droppen van root en escaleren alleen wanneer dat nodig is (openen van een privileged port e.d.).
Denk dat het nut los staande niet zo heel groot is.
Meer als prerequisite om er containers mee te kunnen draaien te samen met cgroups voor het limiteren van de resources van de namespaces.
rutgerw schreef op dinsdag 12 februari 2019 @ 14:27:
[...]
Hoe doe je dat dan met je database backups? Voor elke container een eigen backup? Ik heb nu al mijn applicaties in 1 PostgreSQL cluster zitten en hoef dus maar 1 database server te backuppen. Als ik een nieuwe database aanmaak wordt die automatisch ook gebackupt. Hoe ga je daar mee om als elke database instance in zijn eigen container draait?
Master slave danwel multiple master achtige setup van knutselen (met failover gefrunnik) ?
(of hoe heet dat tegenwoordig politiek correct ? .. blankewitte databases en zwartegekleurde databases ?)

Maar goed ik acht de kans dat dingen falen door de toegenomen complexiteit en de toegenomen kans dat je data verliest door cornercases niet onaanzienlijk zijn. En dat voor een DB die je normaal gesproken moeilijk plat krijgt.

[ Voor 42% gewijzigd door gekkie op 12-02-2019 16:34 ]


Acties:
  • +1 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
gekkie schreef op dinsdag 12 februari 2019 @ 16:29:
[...]
Maar goed ik acht de kans dat dingen falen door de toegenomen complexiteit en de toegenomen kans dat je data verliest door cornercases niet onaanzienlijk zijn. En dat voor een DB die je normaal gesproken moeilijk plat krijgt.
Mja daarom heb ik een soort risk assessment gedaan en een hoop onderzoek naar hoe het nou eigenlijk werkt. Wel draai ik dus 1 Postgres (en SQL Server) container en niet een instantie voor elke app. En gebruik ik ook geen orchestration tools die instanties automatisch aanmaken / verwijderen.

Ten eerste is een container gewoon een proces op de host als elk ander proces. Er is geen enorm verschil tussen SQL Server of Postgres draaien op Ubuntu of hetzelfde draaien in een Docker container op Ubuntu.

Het zijn exact dezelfde processen die op dezelfde kernel draaien. Enige verschil is dat ze in het geval van de container in een andere namespace draaien. Kort samengevat:
- pidns: het proces kan geen andere processen zien op de host
- mntns: het proces kan alleen bij de delen van het filesysteem dat hij toegewezen krijgt

Draai je een containerized proces op Linux met een bind mount voor zijn gegevens, dan is ook de toegang tot de bestanden exact hetzelfde dan wanneer het proces niet containerized is (de bind mount is een feature van de Linux kernel). Deze bind mount is wel essentieel, zodat gegevens een container herstart overleven en om te voorkomen dat je met OverlayFS te maken krijgt.

Enige edge case is de mogelijk afwijkende process termination. In die zin dat een docker pause commando cgroups freezer gebruikt, waardoor het kan voorkomen dat het proces wordt beëindigd zonder hiervan op de hoogte te worden gesteld.

Bij een normale docker stop wordt echter wel gewoon een signaal naar het proces gestuurd voor een nette shutdown.

Kortom, het is eigenlijk hetzelfde... zolang je op Linux draait en een bind mount gebruikt (op Windows en de Mac is het een heel ander verhaal, met virtuele machines en CIFS mounts, en dan wordt het een heel andere situatie).

Ik vroeg me een aantal weken terug hetzelfde af en ben serieus gaan lezen ;)

PS
Ik heb een startup script voor SQL Server gemaakt, om hem in een aparte user te draaien ipv root.
Python:
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
import os
import pwd
import random
import string

#
# Configuration
#

name = "mssql"
path = "/srv/mssql"
user_name = "mssql"

#
# Functions
#

def create_directory(path, user):
    if not os.path.exists(path): os.makedirs(path)
    result = os.system("chown -R {1}:{2} {0}".format(path, user.pw_uid, user.pw_gid))
    if result != 0:
        raise Exception("Error setting owner of {}".format(path))

def get_random_password():
    return ''.join(random.SystemRandom().choice(string.ascii_uppercase + string.digits) for _ in range(10))

def get_password_from_file(path, user):
    password_file = os.path.join(path, "password")
    password = None

    if os.path.isfile(password_file):
        with open(password_file, "r") as pwf:
            password = pwf.readline()
    else:
        password = get_random_password()
        with open(password_file, "w") as pwf:
            pwf.write(password)
    
        result = os.system("chown -R {1}:{2} {0}".format(password_file, user.pw_uid, user.pw_gid))
        if result != 0:
            raise Exception("Error setting owner of {}".format(password_file))

        result = os.system("chmod 600 {0}".format(password_file))
        if result != 0:
            raise Exception("Error setting rights of {}".format(password_file))

    return password

def get_user(user_name):
    try:
        return pwd.getpwnam(user_name)
    except KeyError:
        raise Exception("User {} does not exist!".format(user_name))

#
# Main script
#

try:
    # Find user on host system
    user = get_user(user_name)

    # Ensure data path
    data_path = os.path.join(path, "data")
    create_directory(data_path, user)

    # Ensure backup path
    backup_path = os.path.join(path, "backup")
    create_directory(backup_path, user)

    # Get password from file
    password = get_password_from_file(path, user)

    # Run docker container
    cmd = """docker run \
        -e 'ACCEPT_EULA=Y' \
        -e 'SA_PASSWORD={5}' \
        -e 'MSSQL_PID=Express' \
        -p 1433:1433 \
        -v {3}:/var/opt/mssql \
        -v {4}:/backup \
        --user {0}:{1} \
        --name {2} \
        -d \
        mcr.microsoft.com/mssql/server:2017-latest""".format(user.pw_uid, user.pw_gid, name, data_path, backup_path, password)

    os.system(cmd)

except Exception as ex:
    print(ex)
    exit(1)

[ Voor 67% gewijzigd door Lethalis op 12-02-2019 23:17 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • +1 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Sinds 1 januari zit ik nu ook in de software ontwikkeling! Ben dus geen lurker meer die iets anders doet, maar kan nu ook meepraten. :o Na 8 jaar productontwikkeling bij de grote blauwe reus kleine blauwe dwerg tijd voor wat anders. En het bevalt erg goed.

Mijn rol is de ontwikkeling van een SaaS pakket in goede banen leiden. Oftewel programmeurs aansturen, zelf e.e.a. meeontwikkelingen, en proberen de obstakels voor de programmeurs zo veel mogelijk weg te nemen. Ook veel met klanten praten, en prototypes maken voor nieuwe features. Erg leuk en divers :-).

Uiteraard heb ik ook een stukje legacy en gister had ik er toch een.....
Een wijziging aan onze server-API zorgde ervoor dat een applicatie van ons in enkele gevallen een fout gaf. No biggie. In de server-logs stond duidelijk dat er een request header mistte. Ik pakte het zelf eventjes op, want dan kan ik de codebase een beetje doorgronden. Dit was een staaltje zelfgefabriceerde framework in PHP, met eigen templating engine. Het zij zo, 7 jaar oud en in 7 jaar is er een hoop gebeurt in software-land. Altijd makkelijk om met een beschuldigend vingertje te wijzen dus dat ga ik niet doen. Even de logs checken en waarrempel, alle curl-request worden gelogd. Maar de juiste header staat er gewoon in? Dieper en dieper graven. Blijkt dat er een curl-wrapper gemaakt is die de headers zet, en 1 regels boven execute() deze logt. Echter, in execute zit een routine die alles vervolgens omschrijft naar een file_get_contents i.p.v. curl_exec en handmatig alle headers daar nogmaals gezet worden en die ene header ontbrak natuurlijk. :X. Reden.... joost mag het weten.

Maar supertof om je request te loggen en hem daarna aan te passen. :o

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • Ryur
  • Registratie: December 2007
  • Laatst online: 19:50
armageddon_2k1 schreef op dinsdag 12 februari 2019 @ 21:19:
Sinds 1 januari zit ik nu ook in de software ontwikkeling! Ben dus geen lurker meer die iets anders doet, maar kan nu ook meepraten. :o Na 8 jaar productontwikkeling bij de grote blauwe reus tijd voor wat anders. En het bevalt erg goed.
Wat deed jij hiervoor dan bij de grote blauwe reus? :)

Wel leuk dat je mee kan praten! Gefeliciteerd met je nieuwe baan/ervaring.

Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Ryur schreef op dinsdag 12 februari 2019 @ 22:12:
[...]

Wat deed jij hiervoor dan bij de grote blauwe reus? :)

Wel leuk dat je mee kan praten! Gefeliciteerd met je nieuwe baan/ervaring.
Ik heb voornamelijk gewerkt als Function Developer en later als Architect bij Innovation Site Eindhoven. Aan medische productjes. Laatste 2 jaar vooral documentatie FDA-proof maken en dat was niet echt super.

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Nu online
armageddon_2k1 schreef op woensdag 13 februari 2019 @ 08:18:
[...]


Ik heb voornamelijk gewerkt als Function Developer en later als Architect bij Innovation Site Eindhoven. Aan medische productjes. Laatste 2 jaar vooral documentatie FDA-proof maken en dat was niet echt super.
Eh, als jij zegt grote blauwe reus denk ik aan Big Blue = IBM.
Maar met bovenstaande post denk ik dan aan Philips ?

https://fgheysels.github.io/


Acties:
  • +2 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 13:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik ken eigenlijk alleen Witte Reus.

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


Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
whoami schreef op woensdag 13 februari 2019 @ 10:51:
[...]

Eh, als jij zegt grote blauwe reus denk ik aan Big Blue = IBM.
Maar met bovenstaande post denk ik dan aan Philips ?
Zo had ik het nooit gezien. Ik was altijd gewend dat men het 'in deze contreien' als Philips zag.
Maar vergeleken met IBM is het maar een dwerg.

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

armageddon_2k1 schreef op woensdag 13 februari 2019 @ 11:06:
[...]


Zo had ik het nooit gezien. Ik was altijd gewend dat men het 'in deze contreien' als Philips zag.
Maar vergeleken met IBM is het maar een dwerg.
Ah, ik dacht misschien Bol.com, maar Philips was m'n tweede gok :+

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Nu online
armageddon_2k1 schreef op woensdag 13 februari 2019 @ 11:06:
[...]


Zo had ik het nooit gezien. Ik was altijd gewend dat men het 'in deze contreien' als Philips zag.
Maar vergeleken met IBM is het maar een dwerg.
Rode dwergen ken ik dan weer wel :P

https://fgheysels.github.io/


Acties:
  • +1 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 13:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

Blauwe dwergen ook, dat zijn smurfen. Eigenlijk is Philips dus een smurf?

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


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

Wanneer de poep de ventilator raakt: https://arstechnica.com/i...most-two-decades-of-data/.

Acties:
  • 0 Henk 'm!

  • DevWouter
  • Registratie: Februari 2016
  • Laatst online: 11:02

DevWouter

Creator of Todo2d.com

Jezus, wat een verhaal. Maar zo'n hack doe je niet even. Blijkbaar kende de aanvaller het systeem want zomaar het "systeem formateren" is vaak niet zo makkelijk, zeker niet als je meerdere machines moet hebben.

Ik ben heel benieuwd wat voor policy dat bedrijf had op het gebied van security.

"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel


Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Ik zeg pissed off ex werknemer.

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Gelukkig hebben ze offsite backups van de data, toch?

March of the Eagles


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Ik heb op de dag dat ik naar Win10 ging Focus Assist aangezet zodat die notifications niet de hele tijd in m'n gezicht verschijnen.

Krijg ik sinds een paar maanden om de haverklap een melding van Focus Assist dat Focus Assist ervoor zorgt dat ik niet gestoord word 8)7

Goed, zo'n wit icoontje rechtsonderin is minder irritant dan een tile maar het is weer iets dat aandacht trekt }:|


edit:
Yay, uitgezet

[ Voor 15% gewijzigd door kenneth op 13-02-2019 18:44 ]

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • Koenvh
  • Registratie: December 2011
  • Laatst online: 18-09 00:57

Koenvh

Hier tekenen: ______

kenneth schreef op woensdag 13 februari 2019 @ 18:43:
Ik heb op de dag dat ik naar Win10 ging Focus Assist aangezet zodat die notifications niet de hele tijd in m'n gezicht verschijnen.

Krijg ik sinds een paar maanden om de haverklap een melding van Focus Assist dat Focus Assist ervoor zorgt dat ik niet gestoord word 8)7

Goed, zo'n wit icoontje rechtsonderin is minder irritant dan een tile maar het is weer iets dat aandacht trekt }:|


edit:
Yay, uitgezet
En, ben je nog gefocust? :+ O-)

🠕 This side up


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Afbeeldingslocatie: https://i.ibb.co/KDRxQn3/Screenshot-20190213-193447-2.png

:{ :P

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 20:19
kenneth schreef op woensdag 13 februari 2019 @ 18:43:
Ik heb op de dag dat ik naar Win10 ging Focus Assist aangezet zodat die notifications niet de hele tijd in m'n gezicht verschijnen.

Krijg ik sinds een paar maanden om de haverklap een melding van Focus Assist dat Focus Assist ervoor zorgt dat ik niet gestoord word 8)7

Goed, zo'n wit icoontje rechtsonderin is minder irritant dan een tile maar het is weer iets dat aandacht trekt }:|


edit:
Yay, uitgezet
De "Game Mode" van Windows 10 in combinatie met notifications zijn pas irritant. Als je een spel speelt schakelt Windows automatisch naar game mode, en verbergt het alle notifications. Maar iedere keer dat je dan alt-tab doet om bijvoorbeeld even wat op te zoeken, gaat Windows uit game mode, en krijg je *pling* een notificatie dat er (mogelijk) notificaties zijn.

Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

ThomasG schreef op woensdag 13 februari 2019 @ 19:52:
[...]
De "Game Mode" van Windows 10 in combinatie met notifications zijn pas irritant. Als je een spel speelt schakelt Windows automatisch naar game mode, en verbergt het alle notifications. Maar iedere keer dat je dan alt-tab doet om bijvoorbeeld even wat op te zoeken, gaat Windows uit game mode, en krijg je *pling* een notificatie dat er (mogelijk) notificaties zijn.
Dit is echt Microsoft ten voeten uit. Gebruiksvriendelijkheid snappen ze niet echt.

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Interessante video over de Mars Rover en zijn software, maar wat is de spreker :O om naar te luisteren.

March of the Eagles


Acties:
  • +2 Henk 'm!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 18:29

Crazy D

I think we should take a look.

XWB schreef op woensdag 13 februari 2019 @ 18:28:
[...]


Gelukkig hebben ze offsite backups van de data, toch?
Yesterday,
All those backups seemed a waste of pay.
Now my database has gone away.
Oh I believe in yesterday.

Suddenly,
There's not half the files there used to be,
And there's a milestone hanging over me
The system crashed so suddenly.

I pushed something wrong

What it was I could not say.
Now all my data's gone
and I long for yesterday-ay-ay-ay.

Yesterday,
The need for back-ups seemed so far away.
I knew my data was all here to stay,
Now I believe in yesterday.

Exact expert nodig?


Acties:
  • +3 Henk 'm!

  • Ed Vertijsment
  • Registratie: Juli 2014
  • Laatst online: 20:59
GRR, weer zo'n aanvraag om de rechtermuisknop uit te schakelen om afbeeldingen te beschermen vandaag.

Nee.

https://kilianvalkhof.com...-js-how-to-be-an-asshole/

Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

Wat een stilte hier! Heeft iemand hier nog gewerkt aan een leuk hobbyprojectje afgelopen weekend? 8)

Acties:
  • +2 Henk 'm!

  • Hipska
  • Registratie: Mei 2008
  • Laatst online: 15-09 21:08
Ik heb een gat in de muur gemaakt voor een kattenluik, maar dat is vast niet het soort projecten dat je verwachtte? :+

Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 20:19
Hipska schreef op dinsdag 19 februari 2019 @ 09:58:
Ik heb een gat in de muur gemaakt voor een kattenluik, maar dat is vast niet het soort projecten dat je verwachtte? :+
Is dat niet zonde van de muur? Een deur kun je zo vervangen als er geen kattenluikje meer wilt, bij een muur is dat een stuk lastiger. Ik zou er bijvoorbeeld als koper van een huis niet blij mee zijn als er een gat in de muur zit.

Acties:
  • 0 Henk 'm!

  • Hipska
  • Registratie: Mei 2008
  • Laatst online: 15-09 21:08
ThomasG schreef op dinsdag 19 februari 2019 @ 10:08:
[...]
Is dat niet zonde van de muur? Een deur kun je zo vervangen als er geen kattenluikje meer wilt, bij een muur is dat een stuk lastiger. Ik zou er bijvoorbeeld als koper van een huis niet blij mee zijn als er een gat in de muur zit.
Het is naar de garage toe, enige alternatief was in de sectionaalpoort. Je kan er later nog altijd een ventilatierooster van maken.

Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

Hipska schreef op dinsdag 19 februari 2019 @ 09:58:
Ik heb een gat in de muur gemaakt voor een kattenluik, maar dat is vast niet het soort projecten dat je verwachtte? :+
Niet helemaal, maar een projectje is een projectje hè :+

Moet ik ook nog steeds regelen; een kattenluik van de woonkamer naar de bijkeuken. Had m'n zinnen gezet op een mooi kattenluik in de deur, geen plastic ding, maar echt erin gezaagd/timmert/etc. Moet nog steeds gebeuren overigens.

Acties:
  • +1 Henk 'm!

  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

Heb hier van het weekend een klein projectje in go gestart om redirects voor go imports te doen, beetje a la go.uber.org.

Reden was dat er bij ons bedrijf op phabricator word gewerkt wat go imports niet direct ondersteunt, waardoor de packakge import moet eindigen op .git. Niet zo mooi. Daarnaast draait phabricator ook op een interessant domein. Ook niet zo mooi. Dus heb nu een package geschreven die we op een beter domein kunnen laten draaien en dat de importpaden ook wat netter zijn. Nu alleen nog testen op een manier :P

Maar het was wel een leuke manier om eens wat met HTML templating in Go te doen.

[ Voor 7% gewijzigd door Gropah op 19-02-2019 10:29 ]


Acties:
  • +1 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Nu online
TheNephilim schreef op dinsdag 19 februari 2019 @ 09:29:
Wat een stilte hier! Heeft iemand hier nog gewerkt aan een leuk hobbyprojectje afgelopen weekend? 8)
Beetje bezig geweest met een raspberry Pi met temperatuur-sensors. Op de Pi draait Azure IoT Edge met een module die de sensoren uitleest, en de boel naar IoT hub stuurt. Bedoeling is dan om te visualiseren met Timeseries Insights.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 16:47
Oef, ik ben nu tegen een api aan het programmeren:
-In het ene request krijg je xml terug, in een andere weer json
-GET requests gebruiken om items aan te maken
-Ze hebben hun datumformaat gespecifieerd als: yyyymmdd|hh:mm:ss. Ok, apart. Waarom wel ":" maar dan geen "-"? Nou ja het zal wel. Wat krijg je dan terug:
DateTime="2019-02-19|09^49"
:X 8)7

Roomba E5 te koop


Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
Watvoor data je terugkrijgt zou je zelf moeten kunnen kiezen dmv de Accept header toch?

Maar klinkt wel een beetje of hier iemand zijn 15-jarige neefje heeft ingeschakeld om in een paar uur een API te maken.

Acties:
  • 0 Henk 'm!

  • bauke1994
  • Registratie: Maart 2011
  • Laatst online: 18:00
mcDavid schreef op dinsdag 19 februari 2019 @ 11:21:
Watvoor data je terugkrijgt zou je zelf moeten kunnen kiezen dmv de Accept header toch?

Maar klinkt wel een beetje of hier iemand zijn 15-jarige neefje heeft ingeschakeld om in een paar uur een API te maken.
Als de server kant de Accept header uitleest en daarop inspeelt wel, maar als iemands 15-jarig neefje dit in elkaar heeft geknutseld zal dat wel niet.

Acties:
  • 0 Henk 'm!

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 16:47
Nee accept headers doen ze niet aan. De documentatie is ook geweldig:
Response JSON:
<Response>
<ResponseDetails>Bla</ResponseDetails>
</Response>

Roomba E5 te koop


Acties:
  • 0 Henk 'm!

  • Koenvh
  • Registratie: December 2011
  • Laatst online: 18-09 00:57

Koenvh

Hier tekenen: ______

mcDavid schreef op dinsdag 19 februari 2019 @ 11:21:
Watvoor data je terugkrijgt zou je zelf moeten kunnen kiezen dmv de Accept header toch?

Maar klinkt wel een beetje of hier iemand zijn 15-jarige neefje heeft ingeschakeld om in een paar uur een API te maken.
Dan zou ik dat nog niet zo'n probleem vinden. Ik heb in het verleden ook wel "interessante" trucs uitgehaald, en zolang het werkt... :+ Maar als dit een professionele API is, dan vraag ik me toch wel af of je met zo'n bedrijf in zee moet gaan :X

🠕 This side up


Acties:
  • +1 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 20:19
sig69 schreef op dinsdag 19 februari 2019 @ 12:56:
Nee accept headers doen ze niet aan. De documentatie is ook geweldig:

[...]
Dat is natuurlijk volgens het Just Some Obscure Notation formaat :')

Acties:
  • 0 Henk 'm!

  • dev10
  • Registratie: April 2005
  • Laatst online: 18-09 19:18
Koenvh schreef op dinsdag 19 februari 2019 @ 13:15:
[...]

Maar als dit een professionele API is, dan vraag ik me toch wel af of je met zo'n bedrijf in zee moet gaan :X
Als de kwaliteit van de API nou eens de doorslag zou moeten geven daarvoor, man, wat zou dat fijn zijn. Om de een of andere reden presteren boekhoudpakketten het om een API aan te bieden, die je aan je ergste vijand nog niet toe zou wensen. Exact Globe is wat dat betreft het allerergste, maar die wint nipt van Afas Profit.

Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

dev10 schreef op dinsdag 19 februari 2019 @ 13:50:
[...]


Als de kwaliteit van de API nou eens de doorslag zou moeten geven daarvoor, man, wat zou dat fijn zijn. Om de een of andere reden presteren boekhoudpakketten het om een API aan te bieden, die je aan je ergste vijand nog niet toe zou wensen. Exact Globe is wat dat betreft het allerergste, maar die wint nipt van Afas Profit.
In het geval van AFAS winnen de mooie afkortingen het: "SoQu" :o

Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 20:19
dev10 schreef op dinsdag 19 februari 2019 @ 13:50:
[...]


Als de kwaliteit van de API nou eens de doorslag zou moeten geven daarvoor, man, wat zou dat fijn zijn. Om de een of andere reden presteren boekhoudpakketten het om een API aan te bieden, die je aan je ergste vijand nog niet toe zou wensen. Exact Globe is wat dat betreft het allerergste, maar die wint nipt van Afas Profit.
Banken kunnen er pas wat van. Bij zakelijke rekeningen kun je de transacties exporteren. Er zijn banken die geven netjes een identifier bij de transacties, zodat je dat kunt matchen als de dezelfde transactie al dan niet per ongeluk meerdere keren geimporteert wordt. Maar er is een grote bank in Nederland die doet dat niet, dan heb je alleen de twee rekening nummers, datum zonder tijd, bedrag en eventueel een omschrijving. Vogel dan maar uit of het dezelfde transactie is, of dat er op die dag twee dezelfde transacties zijn geweest (wat regelmatig voor komt) in verschillende exports. Als gebruikers dan perongeluk een overlappende export inladen: problemen. Dat is niet te automatiseren, en als je dan klaagt bij de bank zeggen ze: helaas, we doen al jaren zo.

Acties:
  • +1 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 13:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

TheNephilim schreef op dinsdag 19 februari 2019 @ 09:29:
Wat een stilte hier! Heeft iemand hier nog gewerkt aan een leuk hobbyprojectje afgelopen weekend? 8)
M'n nieuwe rekenmachine slash programmeertaal begint aardige vormen aan te nemen

Afbeeldingslocatie: https://i.imgur.com/OzhKgEh.png
(Hier staat versie 2, laatst geüpdatet in 2010, source kwijt sinds 2013 ;))

De taal zelf heeft wel wat weg van javascript. En het gebruikt m'n eigen arbitrary precision arithmetic lib.

Ik wil nu even toewerken naar een bruikbare release. Eigenlijk ben ik er al redelijk, er moeten nog wat puntjes op de i.
• Het opslaan van state zodat je definities niet weg zijn zodra je het afsluit
• Een eigen icoontje ipv het standaard new-project-cadeautje wat VS je geeft :P
• Minimalisatie naar de notification area.
• Instellingen

Op de korte termijnplanning staan verder:
• Ondersteuning voor andere talstelsels
• Selectie van tekst
• Sowieso het niet als tekst behandelen van alle output, zodat resultaten in de output gewoon in andere talstelsels weergegeven kunnen worden
• Betere weergave van hele grote/kleine getallen (scientific notation)
• Rationele getaltype om breuken (en dus ook decimaal ingevoerde getallen) exact te kunnen representeren

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


Acties:
  • 0 Henk 'm!

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 16:47
Koenvh schreef op dinsdag 19 februari 2019 @ 13:15:
[...]

Dan zou ik dat nog niet zo'n probleem vinden. Ik heb in het verleden ook wel "interessante" trucs uitgehaald, en zolang het werkt... :+ Maar als dit een professionele API is, dan vraag ik me toch wel af of je met zo'n bedrijf in zee moet gaan :X
Tsja, wordt door een partner van ons door de strot gedrukt dus kan het niet tegenhouden helaas. Ach, ik maak het en vergeet het daarna weer snel..

Roomba E5 te koop


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

.oisyn schreef op dinsdag 19 februari 2019 @ 14:07:
[...]


M'n nieuwe rekenmachine slash programmeertaal begint aardige vormen aan te nemen

[Afbeelding]
(Hier staat versie 2, laatst geüpdatet in 2010, source kwijt sinds 2013 ;))

De taal zelf heeft wel wat weg van javascript. En het gebruikt m'n eigen arbitrary precision arithmetic lib
Keurig! De term Arbitrary-precision arithmetic moest ik al even opzoeken. Is het just-for-fun, of heb je er een toepassing voor? 8)

Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
Sja, laatst ook zitten worstelen met een API die op random tijdstippen 404's teruggeeft, als je JSON invalid is is dat reden om een 500 terug te geven en als je een 503 terugkrijgt dan weet je dat hetgeen je wilde uitvoeren in een concept-fase is blijven hangen.

Daarnaast bevat het endpoint een id (zeg, een account id) die je moet meegeven. Maakt niet uit wat je daar invult, de wijzigingen worden toch altijd op de account behorende bij de api-token gedaan.

Maar ja, uiteindelijk moet je het er maar mee doen, want het alternatief is al die handelingen handmatig uitvoeren en dat wil je natuurlijk ook niet :')

Acties:
  • 0 Henk 'm!

  • dev10
  • Registratie: April 2005
  • Laatst online: 18-09 19:18
TheNephilim schreef op dinsdag 19 februari 2019 @ 13:57:
[...]


In het geval van AFAS winnen de mooie afkortingen het: "SoQu" :o
Wacht maar tot er custom velden gebruikt gaan worden. Dan krijg je veldnamen als U2724C64B49EF3748368BBFB465B425DF waarbij niemand ooit meer weet wat daar ook al weer in moet komen.
ThomasG schreef op dinsdag 19 februari 2019 @ 14:04:
[...]
Banken kunnen er pas wat van.
Oh ja, breek me de bek niet los. Incassobatchbestanden voor de Rabobank zijn bestanden in XML formaat volgens de pain.008.001.02 en, geloof me, die naam is niet toevallig gekozen. Er zit geen enkele logica in hoe de XML-tags hun naam hebben gekregen. Voorbeeldje:

- BatchBooking -> BtchBookg
- NumberOfTransactions -> NbOfTxs
- RequestedCollectionDate -> ReqdColltnDt
- Mandate Idenfication -> MndtId
- Proprietary -> Prtry
- DateAndPlaceOfBirth -> DtAndPlcOfBirth

Er kunnen maar twee logische verklaringen zijn hoe deze XML-tags tot stand gekomen zijn: degene die ze uit moest typen was dringend toe aan een nieuw toetsenbord of hij was stomdronken.

Of allebei natuurlijk.

Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

dev10 schreef op dinsdag 19 februari 2019 @ 14:37:
[...]


Wacht maar tot er custom velden gebruikt gaan worden. Dan krijg je veldnamen als U2724C64B49EF3748368BBFB465B425DF waarbij niemand ooit meer weet wat daar ook al weer in moet komen.
Ja die heb ik hier ook al! :p Gelukkig heb ik wel toegang tot een test-administratie, dus ik kan een heleboel opzoeken in de AFAS boekhoudsoftware zelf. Natuurlijk nog steeds niet dé manier, maar je moet wat.

Probleem is gewoon dat de administraties niet volgens één standaard formaat werken maar aangepast worden aan de klant. Dus de oplossing die ze bedacht hebben is een laag er tussen gooien die de vertaalslag maakt (Connectors) waarin je eigenlijk zelf een API in elkaar kan klikken.

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 15-09 05:50

Douweegbertje

Wat kinderachtig.. godverdomme

Of een API die maar 200 requests per uur accepteert ? :)

Acties:
  • 0 Henk 'm!

  • dev10
  • Registratie: April 2005
  • Laatst online: 18-09 19:18
TheNephilim schreef op dinsdag 19 februari 2019 @ 14:41:
[...]

Probleem is gewoon dat de administraties niet volgens één standaard formaat werken maar aangepast worden aan de klant. Dus de oplossing die ze bedacht hebben is een laag er tussen gooien die de vertaalslag maakt (Connectors) waarin je eigenlijk zelf een API in elkaar kan klikken.
Ja, de beruchte get- en updateconnectoren. Waarbij je dus als je een verkooprelatie aan wil maken door middel van de update connector, je direct erna een get connector moet aanroepen om het ID van de net aangemaakte verkooprelatie op moet halen, omdat de update connector deze niet teruggeeft.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 13:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

TheNephilim schreef op dinsdag 19 februari 2019 @ 14:18:
[...]


Keurig! De term Arbitrary-precision arithmetic moest ik al even opzoeken. Is het just-for-fun, of heb je er een toepassing voor? 8)
Allebei wel een beetje. Mijn "Kol Q l8or 2" gebruik ik dagelijks ter ondersteuning van mijn werkzaamheden, maar die heeft wat tekortkomingen. Hij kon eigenlijk alleen overweg met getallen, en vectoren heb ik er op een later moment een beetje ingehackt. Ik wilde vooral functies als extra primitieve, zodat je er op een functionele taal-achtige manier mee kon programmeren. En omdat ik de source kwijt was moest het sowieso from scratch.

Deze nieuwe KolQ volgt meer een javascript-achtige approach. Een variabele kan de volgende typen aannemen: null, number, string, closure en object. En hij ondersteunt statements, dus je kunt gewoon een functie maken met een for-loop oid. Wat die objecten betreft, het is een beetje een mengelmoesje van javascript's prototypes en een wat meer klassieker klassesysteem. Een object kan een member "class" hebben, die verwijst naar een ander object dat die klasse representeert. Members van die class object, geprefixed met @, zijn dan weer beschikbaar in instanties van de klasse. Verder kan de klasse een member 'base' hebben, waardoor je een hele class hierarchy kan bouwen (die ook gewoon live aan te passen is).

En daardoor kun je dus ook dit soort dingen doen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>>> "aap".times(3)
Runtime error: Member not found: 'times'
>>> String.@times := (n) { local r:=""; for(i:1..n) r := r + this; return r; }
<function>
>>> "aap".times(3)
aapaapaap
>>> Outputtable := new { @out : () => print(this); }
<StdObject>
{
    @out: <function>
}
>>> String.base := Outputtable
<StdObject>
{
    @out: <function>
}
>>> "aap" is Outputtable
true
>>> "aap".out()
aap


Een ander heikel punt van Kol Q l8or 2 is dat het gewoon de double gebruikt als onderliggende type. Die bignum lib was ik al heel lang geleden begonnen, puur voor de lol. Het was de bedoeling om die ook te gebruiken in Kol Q l8or 2 maar toen was die nog niet productierijp (heel langzaam en nog vol met bugs). Die lib (wat uit een enkele sourcefile bestaat) heb ik zowaar kunnen recoveren uit de hdd crash (een 2-disk raid 0 array waarvan 1 disk ermee ophield), daar was ik wel blij mee *O*. Inmiddels heb ik alle gebruikelijke wiskundige functies ervoor geïmplementeerd (met uitzondering van de hyperbolische trigonometrische functies, maar volgens mij zijn die allemaal te schrijven in termen van sin en cos). En onlangs Knuth's division geïmplementeerd, alsmede wat andere optimalisaties, waardoor veel van die functies een factor 100 sneller werden.

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


Acties:
  • +1 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 19:53

RayNbow

Kirika <3

.oisyn schreef op dinsdag 19 februari 2019 @ 14:07:
[...]


M'n nieuwe rekenmachine slash programmeertaal begint aardige vormen aan te nemen

[Afbeelding]
Hmm, ter opfrissing van m'n Haskell skills heb ik gekeken of ik bovenstaande kon repliceren...

$ ghci

Prelude> :set prompt "ghci> "
ghci> import Control.Monad
ghci> import Data.Number.CReal {-- cabal install numbers --}
ghci> let f x = sin (x / pi) * log x
ghci> showCReal 100 $ f 34
"-3.4736986197926355799049147287709793871639192761704195171159824845778007063582777142263271852354565636"
ghci> let (@@) = (sum .) . zipWith (*)
ghci> [1..3] @@ [4..6]
32
ghci> map (join (*)) [1..4]
[1,4,9,16]
ghci> filter (>5) . map (join (*)) $ [1..4]
[9,16]
ghci> reverse . filter (>5) . map (join (*)) $ [1..4]
[16,9]


Bovenstaande mist natuurlijk allerlei nice-to-have features.

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

Douweegbertje schreef op dinsdag 19 februari 2019 @ 14:44:
Of een API die maar 200 requests per uur accepteert ? :)
Dat is niet veel, maar als zoiets netjes met response headers wordt aangegeven, dan kun je er nog wat mee.
dev10 schreef op dinsdag 19 februari 2019 @ 14:46:
[...]


Ja, de beruchte get- en updateconnectoren. Waarbij je dus als je een verkooprelatie aan wil maken door middel van de update connector, je direct erna een get connector moet aanroepen om het ID van de net aangemaakte verkooprelatie op moet halen, omdat de update connector deze niet teruggeeft.
Bij het aanmaken van een verkooporder krijg ik wel netjes het ordernummer terug. Verkooprelaties aanmaken heb ik nog niet gedaan, maar zou het niet aan de UpdateConnector liggen?
.oisyn schreef op dinsdag 19 februari 2019 @ 14:47:
[...]


Allebei wel een beetje. Mijn "Kol Q l8or 2" gebruik ik dagelijks ter ondersteuning van mijn werkzaamheden, maar die heeft wat tekortkomingen. Hij kon eigenlijk alleen overweg met getallen, en vectoren heb ik er op een later moment een beetje ingehackt. Ik wilde vooral functies als extra primitieve, zodat je er op een functionele taal-achtige manier mee kon programmeren. En omdat ik de source kwijt was moest het sowieso from scratch.

Deze nieuwe KolQ volgt meer een javascript-achtige approach. Een variabele kan de volgende typen aannemen: null, number, string, closure en object. En hij ondersteunt statements, dus je kunt gewoon een functie maken met een for-loop oid. Wat die objecten betreft, het is een beetje een mengelmoesje van javascript's prototypes en een wat meer klassieker klassesysteem. Een object kan een member "class" hebben, die verwijst naar een ander object dat die klasse representeert. Members van die class object, geprefixed met @, zijn dan weer beschikbaar in instanties van de klasse. Verder kan de klasse een member 'base' hebben, waardoor je een hele class hierarchy kan bouwen (die ook gewoon live aan te passen is).

En daardoor kun je dus ook dit soort dingen doen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>>> "aap".times(3)
Runtime error: Member not found: 'times'
>>> String.@times := (n) { local r:=""; for(i:1..n) r := r + this; return r; }
<function>
>>> "aap".times(3)
aapaapaap
>>> Outputtable := new { @out : () => print(this); }
<StdObject>
{
    @out: <function>
}
>>> String.base := Outputtable
<StdObject>
{
    @out: <function>
}
>>> "aap" is Outputtable
true
>>> "aap".out()
aap


Een ander heikel punt van Kol Q l8or 2 is dat het gewoon de double gebruikt als onderliggende type. Die bignum lib was ik al heel lang geleden begonnen, puur voor de lol. Het was de bedoeling om die ook te gebruiken in Kol Q l8or 2 maar toen was die nog niet productierijp (heel langzaam en nog vol met bugs). Die lib (wat uit een enkele sourcefile bestaat) heb ik zowaar kunnen recoveren uit de hdd crash (een 2-disk raid 0 array waarvan 1 disk ermee ophield), daar was ik wel blij mee *O*. Inmiddels heb ik alle gebruikelijke wiskundige functies ervoor geïmplementeerd (met uitzondering van de hyperbolische trigonometrische functies, maar volgens mij zijn die allemaal te schrijven in termen van sin en cos). En onlangs Knuth's division geïmplementeerd, alsmede wat andere optimalisaties, waardoor veel van die functies een factor 100 sneller werden.
Het gaat mij echt de pet te boven, ik ben op wiskundig gebied absoluut geen ster. Ik gok dat je dit voor je werk als gamedeveloper (?) nodig hebt. Tenminste; qua geometrie kan ik me daar wel iets bij voorstellen. Persoonlijk zou ik echt zo enorm balen als ik de code kwijtgeraakt was, dat ik er waarschijnlijk nooit weer aan begonnen was :+. Dat lijkt me echt enorm balen zeg! :o

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 13:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

TheNephilim schreef op dinsdag 19 februari 2019 @ 14:57:
Het gaat mij echt de pet te boven, ik ben op wiskundig gebied absoluut geen ster. Ik gok dat je dit voor je werk als gamedeveloper (?) nodig hebt. Tenminste; qua geometrie kan ik me daar wel iets bij voorstellen.
Nou ja, ik reken meerdere keren per dag wel *iets* uit. Dat hoeft natuurlijk niet veel meer te zijn dan een enkele vermenigvuldiging of wat bitwise operaties oid, maar hoe dan ook vind ik het wel fijn als ik gewoon een expressie in kan typen en dingen kan toekennen aan variabelen of functies voor als ik meerdere dingen uit wil rekenen, en voor dat doeleinde voldoet calc.exe niet :)
Persoonlijk zou ik echt zo enorm balen als ik de code kwijtgeraakt was, dat ik er waarschijnlijk nooit weer aan begonnen was :+. Dat lijkt me echt enorm balen zeg! :o
Ja, ach, die bignum lib was eigenlijk het meest belangrijk. Kol Q l8or 2 gebruikte een parser generator, dat wilde ik sowieso al eens vervangen voor een handgeschreven parser. En als je daar een beetje handig mee bent is dat echt zo gepiept. Verder deed ik de evaluatie ervan direct in de AST (de Expression class had gewoon een Eval() method die door alle subclasses geimplementeerd werd), en daar wilde ik ook al vanaf. En de UI stelde ook niet zoveel voor, gewoon een window met 2 edit controls.

Nu heb ik gewoon een complete VM :). De code wordt gecompileerd naar een soort IL en vervolgens geinterpreteerd. De UI zelf was ook nog een beetje een horde die ik moest nemen. Ik heb verschillende dingen geprobeerd - van zowel WPF als Chrome embedded framework werd ik uiteindelijk niet vrolijk want mijn eis is dat het wel ontzettend lightweight blijft, maar eigen rendering in win32 had ik ook niet zoveel zin in. Maar uiteindelijk toch de stoute schoenen aangetrokken om dat laatste te doen.

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


Acties:
  • 0 Henk 'm!

  • bauke1994
  • Registratie: Maart 2011
  • Laatst online: 18:00
dev10 schreef op dinsdag 19 februari 2019 @ 14:37:

Oh ja, breek me de bek niet los. Incassobatchbestanden voor de Rabobank zijn bestanden in XML formaat volgens de pain.008.001.02 en, geloof me, die naam is niet toevallig gekozen. Er zit geen enkele logica in hoe de XML-tags hun naam hebben gekregen. Voorbeeldje:

- BatchBooking -> BtchBookg
- NumberOfTransactions -> NbOfTxs
- RequestedCollectionDate -> ReqdColltnDt
- Mandate Idenfication -> MndtId
- Proprietary -> Prtry
- DateAndPlaceOfBirth -> DtAndPlcOfBirth

Er kunnen maar twee logische verklaringen zijn hoe deze XML-tags tot stand gekomen zijn: degene die ze uit moest typen was dringend toe aan een nieuw toetsenbord of hij was stomdronken.

Of allebei natuurlijk.
Ja daar heb ik ook een keer mee mogen werken, ging mijn export netjes door de test tool heen maar de bank accepteerde hem niet. Ergens een hoofdlettertje mis 8)7 en dat met zulke tag namen maar eens zien te vinden.

Ik heb dat in mijn onkunde dan weer in een html template gegoten ipv netjes SimpleXML(PHP) te gebruiken :+

Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 18-09 20:54
dev10 schreef op dinsdag 19 februari 2019 @ 14:37:
[...]


Wacht maar tot er custom velden gebruikt gaan worden. Dan krijg je veldnamen als U2724C64B49EF3748368BBFB465B425DF waarbij niemand ooit meer weet wat daar ook al weer in moet komen.


[...]


Oh ja, breek me de bek niet los. Incassobatchbestanden voor de Rabobank zijn bestanden in XML formaat volgens de pain.008.001.02 en, geloof me, die naam is niet toevallig gekozen. Er zit geen enkele logica in hoe de XML-tags hun naam hebben gekregen. Voorbeeldje:

- BatchBooking -> BtchBookg
- NumberOfTransactions -> NbOfTxs
- RequestedCollectionDate -> ReqdColltnDt
- Mandate Idenfication -> MndtId
- Proprietary -> Prtry
- DateAndPlaceOfBirth -> DtAndPlcOfBirth

Er kunnen maar twee logische verklaringen zijn hoe deze XML-tags tot stand gekomen zijn: degene die ze uit moest typen was dringend toe aan een nieuw toetsenbord of hij was stomdronken.

Of allebei natuurlijk.
Dat soort geneuzel zie je ook vaak. "Laten we XML gebruiken, dat is lekker zelfbeschrijvend.', "Hmm nu is het wel heel verbose, laten we gewoon de helft van de letters wegflikkeren. Dan is het niet meer zelfbeschrijven, maar wel nog een stuk verboser dan een simpel structured format'. :')

"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra


Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
Douweegbertje schreef op dinsdag 19 februari 2019 @ 14:44:
Of een API die maar 200 requests per uur accepteert ? :)
Zonder context zegt dat niet zoveel. Als het een API is om, roep eens wat, een spoorwegovergang te openen/sluiten, dan is 200 requests per uur al behoorlijk veel denk ik :7

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 15-09 05:50

Douweegbertje

Wat kinderachtig.. godverdomme

mcDavid schreef op dinsdag 19 februari 2019 @ 15:29:
[...]

Zonder context zegt dat niet zoveel. Als het een API is om, roep eens wat, een spoorwegovergang te openen/sluiten, dan is 200 requests per uur al behoorlijk veel denk ik :7
Boekhoudpakket.

Doel is dat ze graag batches willen ontvangen in plaats van dat je dus 1 voor 1 aan updates doorstuurt. Prima casus maar wel rete vervelend om tegen aan te ontwikkelen :)

Acties:
  • 0 Henk 'm!

  • BladeSlayer1000
  • Registratie: April 2013
  • Laatst online: 17-09 20:36
TheNephilim schreef op dinsdag 19 februari 2019 @ 09:29:
Wat een stilte hier! Heeft iemand hier nog gewerkt aan een leuk hobbyprojectje afgelopen weekend? 8)
Ik ben wel met een project bezig, maar niet echt vooruit gekomen :X

Wat blijf ik een UI maken lastig vinden, ookal is het voor privé projecten...

Edit; Ik vind het maken van een UI wel leuk, en daarom kies ik niet voor een standaard oplossing als bootstrap etc..

[ Voor 14% gewijzigd door BladeSlayer1000 op 19-02-2019 17:46 ]


Acties:
  • 0 Henk 'm!

  • NMH
  • Registratie: Oktober 2015
  • Nu online

NMH

Moderator General Chat
Koenvh schreef op dinsdag 19 februari 2019 @ 13:15:
Dan zou ik dat nog niet zo'n probleem vinden. Ik heb in het verleden ook wel "interessante" trucs uitgehaald, en zolang het werkt... :+ Maar als dit een professionele API is, dan vraag ik me toch wel af of je met zo'n bedrijf in zee moet gaan :X
Ik had vroeger, toen ik net aan het werk was, de illusie dat professionele bedrijven hun zaakjes goed voor elkaar hadden. Daar ben ik vlot van genezen destijds. :+ Paar voorbeeldjes van API-dingen die ik langs heb zien komen over de jaren:
  • Een bedrijf dat met ons wou integreren. Wij moesten een API bouwen die zij zouden aanroepen, dus zij sturen netjes een spec op van de API die ze graag wouden zien. Er was een apart document gewijd aan hoe zij zich zouden authenticaten bij ons (in de basis username/password). Aldus gebouwd. Integratie wordt getest. "Wat is dit voor inlogsysteem, daar doen wij niet helemaal niet aan? Zet maar een IP whitelist er op." 8)7 Ik bedoel, IP whitelist is prima, maar stuur dan niet de spec van een authenticatiesysteem dat je niet gebruikt. Heel wat uurtjes door het putje.
  • Een bedrijf dat post namens ons verstuurd. Wil je een linefeed in de brief? Zet de magische string NEWLINE in de tekst op die plek. Volgens mij was er geen manier om het te escapen als je ooit een keer letterlijk die string in je brief wou hebben.
  • Grote financiele instellingen waarvan je zou verwachten dat die hun zaakjes wel op orde hebben op integratie-gebied. Valt tegen. :)
Mugwump schreef op dinsdag 19 februari 2019 @ 15:23:
Dat soort geneuzel zie je ook vaak. "Laten we XML gebruiken, dat is lekker zelfbeschrijvend.', "Hmm nu is het wel heel verbose, laten we gewoon de helft van de letters wegflikkeren.
Ik heb een keer creatief gebruikt gemaakt van de verbosity van XML. Een van onze partners die XML naar een API van ons stuurde had een keer een bugje waarbij ze even waren vergeten dat bij unicode het aantal characters niet gelijk is aan het aantal bytes. Gevolg was dat bij XML die unicode bevatte er een paar bytes aan het eind misten omdat het aan hun kant getruncate werd. Gelukkig ging er alleen een stuk van de sluittag van het root element verloren, dus toen heb ik een preprocessor voor de XML parser gehackt die als het probleem zich voordeed de sluittag repareerde aan de hand van de openingstag. Redundantie FTW. :+

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17:16

Creepy

Tactical Espionage Splatterer

dev10 schreef op dinsdag 19 februari 2019 @ 13:50:
[...]
Exact Globe is wat dat betreft het allerergste, maar die wint nipt van Afas Profit.
Wait what?! Erger nog dan Profit? O wow.....

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • BertS
  • Registratie: September 2004
  • Laatst online: 14-04 17:14
NMH schreef op dinsdag 19 februari 2019 @ 20:01:
[...]

Ik had vroeger, toen ik net aan het werk was, de illusie dat professionele bedrijven hun zaakjes goed voor elkaar hadden.
Hoezo illusie?
Blijkbaar heb je jouw definitie van professioneel dan aangepast (om te voorkomen dat je geen enkel bedrijf met professioneel kon noemen? ;)).

Acties:
  • 0 Henk 'm!

  • Koenvh
  • Registratie: December 2011
  • Laatst online: 18-09 00:57

Koenvh

Hier tekenen: ______

BertS schreef op dinsdag 19 februari 2019 @ 20:19:
[...]

Hoezo illusie?
Blijkbaar heb je jouw definitie van professioneel dan aangepast (om te voorkomen dat je geen enkel bedrijf met professioneel kon noemen? ;)).
Volgens mij wordt hier professioneel gebruikt als "beroepsmatig" (dat is ook hoe ik het woord gebruikte in ieder geval). Als je het echter als "kundig" definieert krijg je inderdaad een andere uitkomst :+

🠕 This side up


Acties:
  • 0 Henk 'm!

  • NMH
  • Registratie: Oktober 2015
  • Nu online

NMH

Moderator General Chat
Ik had het inderdaad wat beter kunnen formuleren. :)

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 15-09 05:50

Douweegbertje

Wat kinderachtig.. godverdomme

NMH schreef op dinsdag 19 februari 2019 @ 20:34:
Ik had het inderdaad wat beter kunnen formuleren. :)
Desalniettemin deel ik je mening :)

Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Afas profit, the gift that keeps on giving. Wat een draak is dat.

Gelukkig ben ik de rest van de tijd bezig geweest met Raspberry Pi's, servo's en F#. Wat een verademing. :)

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 16-09 09:06

Firesphere

Yoshis before Hoshis

Een soort van reclame, maar ik hoop dat het op de grens is :)

Ik heb al lange tijd het idee gehad om m'n open source werk te verkopen, niet als in Patreon, maar als een solide platform waar ik m'n werk kan verkopen op een subscription of one-off basis.

Mijn goede vriend Yoshi had hetzelfde idee als ik, met het verschil dat hij het ook echt heeft uitgevoerd.

Nu vraag ik me af, hoeveel belangstelling voor een dergelijke service er is hier?

I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


Acties:
  • 0 Henk 'm!

  • Pizzalucht
  • Registratie: Januari 2011
  • Laatst online: 20:45

Pizzalucht

Snotneus.

dev10 schreef op dinsdag 19 februari 2019 @ 14:37:
[...]


Wacht maar tot er custom velden gebruikt gaan worden. Dan krijg je veldnamen als U2724C64B49EF3748368BBFB465B425DF waarbij niemand ooit meer weet wat daar ook al weer in moet komen.
Als het goed is komen de veldnamen terug in de WSDL comments.
Heb ooit een koppeling gemaakt waarbij de klant zelf formulieren kon koppelen aan UpdateConnectors en GetConnectors en daarbij zelf ook de velden kon mappen, daar heb ik toen die WSDL comments voor gebruikt 8)

Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 18-09 21:53

Tux

dev10 schreef op dinsdag 19 februari 2019 @ 14:37:
Oh ja, breek me de bek niet los. Incassobatchbestanden voor de Rabobank zijn bestanden in XML formaat volgens de pain.008.001.02 en, geloof me, die naam is niet toevallig gekozen. Er zit geen enkele logica in hoe de XML-tags hun naam hebben gekregen. Voorbeeldje:

- BatchBooking -> BtchBookg
- NumberOfTransactions -> NbOfTxs
- RequestedCollectionDate -> ReqdColltnDt
- Mandate Idenfication -> MndtId
- Proprietary -> Prtry
- DateAndPlaceOfBirth -> DtAndPlcOfBirth

Er kunnen maar twee logische verklaringen zijn hoe deze XML-tags tot stand gekomen zijn: degene die ze uit moest typen was dringend toe aan een nieuw toetsenbord of hij was stomdronken.

Of allebei natuurlijk.
Die XML moet natuurlijk zo klein mogelijk zijn, anders moet zo'n bank nog TCP-packets bijkopen bij hun mainframe vendor om het bestand te kunnen ontvangen. En disk space is natuurlijk super duur. :+

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

Firesphere schreef op woensdag 20 februari 2019 @ 07:51:
Een soort van reclame, maar ik hoop dat het op de grens is :)

Ik heb al lange tijd het idee gehad om m'n open source werk te verkopen, niet als in Patreon, maar als een solide platform waar ik m'n werk kan verkopen op een subscription of one-off basis.

Mijn goede vriend Yoshi had hetzelfde idee als ik, met het verschil dat hij het ook echt heeft uitgevoerd.

Nu vraag ik me af, hoeveel belangstelling voor een dergelijke service er is hier?
Zoiets is er al: https://gitstore.app/, tenminste dit is waar ik aan dacht bij je beschrijving.

Acties:
  • 0 Henk 'm!

  • dev10
  • Registratie: April 2005
  • Laatst online: 18-09 19:18
Creepy schreef op dinsdag 19 februari 2019 @ 20:07:
[...]

Wait what?! Erger nog dan Profit? O wow.....
De laatste keer dat ik iets aan Exact Globe heb moeten koppelen, ging dat door middel van XML bestanden die via FTP moesten worden overgezet. Via de scheduld task runner op die server, moest dan AsImport gedraaid worden om die XML bestanden te verwerken. Oftewel: geen enkele feedback of de import gelukt was.

Het exporteren van data uit Exact Globe was helemaal een drama. Voor deze case moest de voorraad van de producten geëxporteerd worden en om een of andere specifieke reden die ik niet meer precies weet was dat niet mogelijk via de exportfunctionaliteit van Exact. De oplossing die ik kreeg van Exact zelf was om dan maar rechtstreeks de onderliggende SQL server aan te spreken om een XML bestand te bouwen. Ik kreeg van Exact zelfs de exacte, pun intended, query aangeleverd hoe het gedaan moest worden, want het was een vraag die veel vaker voorkwam. Uiteindelijk heb ik dit toen in C# een console applicatie gemaakt die een query uitvoerde en een XML bestand wegschreef. Vervolgens moest via FTP het bestand opgehaald worden en verwerkt in de applicatie.

Toen de installatie van Exact verhuisde van server zonder dat ik het wist, werkte de koppeling natuurlijk niet meer en had ik een klant aan de telefoon die vond dat we waardeloze software maakten als het van de een op de andere dag zomaar omviel.

Ik word gewoon weer opgefokt als ik uit zit te typen. :(
Pizzalucht schreef op woensdag 20 februari 2019 @ 09:20:
[...]


Als het goed is komen de veldnamen terug in de WSDL comments.
Heb ooit een koppeling gemaakt waarbij de klant zelf formulieren kon koppelen aan UpdateConnectors en GetConnectors en daarbij zelf ook de velden kon mappen, daar heb ik toen die WSDL comments voor gebruikt 8)
Dat zou heel goed kunnen, maar ik doelde meer in de code zelf. Onderstaande code is een voorbeeld wat ik ooit tegengekomen ben. De oorspronkelijke programmeur werkte er niet meer en er was niemand die het fijne er van wist. Ga dan maar eens uitzoeken over het hoe en wat. :P

PHP:
1
2
3
4
5
6
7
8
9
<?php

$request =  [
    'U9513ABBF496A199AFE0143A0BEA40962' => '1',
    'UC72D43E84CC55889C4C3A09380B5701D' => '0',
    'U77D6DF9D4AE343E9FEC08D83F44453B0' => '1',
    'U6F50894643E9B6FD2AC38FA9F5D47C63' => '1',
    'U6280571D4AFB1764B27B9BBDCA9419E7' => '1',
]

Acties:
  • 0 Henk 'm!

  • Pizzalucht
  • Registratie: Januari 2011
  • Laatst online: 20:45

Pizzalucht

Snotneus.

dev10 schreef op woensdag 20 februari 2019 @ 09:55:
[...]

Dat zou heel goed kunnen, maar ik doelde meer in de code zelf. Onderstaande code is een voorbeeld wat ik ooit tegengekomen ben. De oorspronkelijke programmeur werkte er niet meer en er was niemand die het fijne er van wist. Ga dan maar eens uitzoeken over het hoe en wat. :P

PHP:
1
2
3
4
5
6
7
8
9
<?php

$request =  [
    'U9513ABBF496A199AFE0143A0BEA40962' => '1',
    'UC72D43E84CC55889C4C3A09380B5701D' => '0',
    'U77D6DF9D4AE343E9FEC08D83F44453B0' => '1',
    'U6F50894643E9B6FD2AC38FA9F5D47C63' => '1',
    'U6280571D4AFB1764B27B9BBDCA9419E7' => '1',
]
Ah, ja, herkenbaar. Ik plaatste de veldnamen er altijd bij in de comments.
Misschien alsnog doen? WSDL ophalen en de veldnamen erbij zoeken en alsnog als comment erbij zetten.

Acties:
  • 0 Henk 'm!

  • dev10
  • Registratie: April 2005
  • Laatst online: 18-09 19:18
Pizzalucht schreef op woensdag 20 februari 2019 @ 09:58:
[...]


Ah, ja, herkenbaar. Ik plaatste de veldnamen er altijd bij in de comments.
Misschien alsnog doen? WSDL ophalen en de veldnamen erbij zoeken en alsnog als comment erbij zetten.
Bij de koppeling die ik nu onder m'n hoede heb, is dat inderdaad gedaan, maar ik ben toch echt van mening dat dat niet nodig zou moeten zijn. :+

Gelukkig nog een paar maanden en dan kunnen we deze koppeling uitfaseren.
Pagina: 1 ... 19 ... 102 Laatste

Dit topic is gesloten.

Let op:
Dit topic is niet de plaats om te lopen helpdesken. De Coffee Corner is primair bedoeld als uitlaatklep voor iedereen in de Devschuur® en niet als vraagbaak.