Toon posts:

[Alg] Welke tools heb jij gemaakt? - deel IV Vorige deelOverzicht

Pagina: 1 ... 49 50 51 Laatste
Acties:

Onderwerpen


Acties:
  • 0Henk 'm!

  • mathias82
  • Registratie: April 2017
  • Laatst online: 26-03 09:47
Zeehond schreef op maandag 24 mei 2021 @ 13:02:
Op bricklink heb je wel ook overzichten staan van kleuren die te koop zijn of, bekend zijn. Geen idee overigens waarom er minder kleuren bekend zijn, dan in de price-guide staan :P.

Zie bijvoorbeeld https://www.bricklink.com...talogitem.page?P=3024#T=C
Ik ben niet zo bekend met het bestellen van losse onderdelen, maar het lijkt mij nogal complex. Ik heb momenteel deze kleuren in mijn programma gebruikt: https://www.bricklink.com...rs.asp?utm_content=subnav (enkel de solid colors), maar deze zijn dus niet allemaal verkrijgbaar.

Misschien een domme vraag, maar kan je geen onderdelen bij Lego rechtstreeks bestellen?

Acties:
  • +1Henk 'm!

  • Zeehond
  • Registratie: Juni 2015
  • Niet online

Zeehond

Frontpage Admin & PowerMod / Mod W&M

Seal with it!

Nee, die zul je niet allemaal krijgen inderdaad. Je kunt rechtstreeks bij lego bestellen, maar ze hebben niet een heel uitgebreide keuze. Je kunt eens kijken maar ben bang dat je niet alles gaat vinden vwat je zoekt bij hen. https://www.lego.com/nl-nl/page/static/pick-a-brick

Select * from fish


Acties:
  • 0Henk 'm!

  • mathias82
  • Registratie: April 2017
  • Laatst online: 26-03 09:47
Zeehond schreef op maandag 24 mei 2021 @ 14:24:
Nee, die zul je niet allemaal krijgen inderdaad. Je kunt rechtstreeks bij lego bestellen, maar ze hebben niet een heel uitgebreide keuze. Je kunt eens kijken maar ben bang dat je niet alles gaat vinden vwat je zoekt bij hen. https://www.lego.com/nl-nl/page/static/pick-a-brick
Bedankt, die had ik ook gevonden. De keuze is inderdaad erg beperkt. Ik dacht dat je bij Lego elk blokje in het assortiment kon bestellen. Weer een illusie armer ;)

Acties:
  • +1Henk 'm!

  • Outerspace
  • Registratie: Februari 2002
  • Laatst online: 04:24

Outerspace

Moderator General Chat / Wonen & Mobiliteit

AFX Ghey Edition by HlpDsK

Jack of all trades | Screener | Tweakers Gallery | Spotify!
Zoekt nieuwe collega's in omgeving Twente


Acties:
  • +1Henk 'm!

  • Jogai
  • Registratie: Juni 2004
  • Laatst online: 30-03 14:04
Dacht dat ik je post op reddit zag, maar dat was een andere: https://old.reddit.com/r/...d_use_it_to_generate_any/
Misschien nog interesant als je inspiratie zoekt ;)

Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.


Acties:
  • 0Henk 'm!

  • mathias82
  • Registratie: April 2017
  • Laatst online: 26-03 09:47
Jogai schreef op donderdag 27 mei 2021 @ 21:37:
Dacht dat ik je post op reddit zag, maar dat was een andere: https://old.reddit.com/r/...d_use_it_to_generate_any/
Misschien nog interesant als je inspiratie zoekt ;)
Ja er zijn er blijkbaar nog een paar :)

Verschil met mijn applicatie is dat die van mij ook instructies en een partlist genereert.

Het zwakke punt blijft toch de beschikbaarheid van blokjes. Lego heeft vele kleuren, maar er is geen eenvoudige manier om deze los te bestellen.

@Outerspace Ik begrijp dat je geen reclame mag maken voor je eigen product of dienst, maar de link die je verwijderd hebt was gewoon een link naar Google Drive waar mijn (gratis) programma op staat. Mag dat ook niet?

Acties:
  • 0Henk 'm!

  • Jogai
  • Registratie: Juni 2004
  • Laatst online: 30-03 14:04
@mathias82 Als je toch code wil delen, zou ik het met git doen, evt via github/gitlab.

Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.


Acties:
  • +1Henk 'm!

  • mathias82
  • Registratie: April 2017
  • Laatst online: 26-03 09:47
Jogai schreef op vrijdag 28 mei 2021 @ 21:42:
@mathias82 Als je toch code wil delen, zou ik het met git doen, evt via github/gitlab.
De link die ik had gedeeld was van de gecompileerde code. De source moet nog wat opgekuist worden voor ik ze aan de wereld durf tonen ;)

Het is wel een Java progje, dus de source heb je direct als je wilt. En ik snap niet wat verschil het nu maakt of het op GitHub of GoogleDrive staat. Van de kant van @Outerspace blijft het ook stil :)

Acties:
  • +1Henk 'm!

  • Outerspace
  • Registratie: Februari 2002
  • Laatst online: 04:24

Outerspace

Moderator General Chat / Wonen & Mobiliteit

AFX Ghey Edition by HlpDsK

mathias82 schreef op zondag 30 mei 2021 @ 15:26:
[...]


De link die ik had gedeeld was van de gecompileerde code. De source moet nog wat opgekuist worden voor ik ze aan de wereld durf tonen ;)

Het is wel een Java progje, dus de source heb je direct als je wilt. En ik snap niet wat verschil het nu maakt of het op GitHub of GoogleDrive staat. Van de kant van @Outerspace blijft het ook stil :)
Oh, dat was de wens van de admin van de Devschuur :) Misschien dat je wel het eea kunt showen. Maar voor meer info moet je echt bij de mods van Devschuur zijn, ik 'beheer' het General Chat deel.

Jack of all trades | Screener | Tweakers Gallery | Spotify!
Zoekt nieuwe collega's in omgeving Twente


Acties:
  • +1Henk 'm!

  • Jogai
  • Registratie: Juni 2004
  • Laatst online: 30-03 14:04
mathias82 schreef op zondag 30 mei 2021 @ 15:26:
[...]


De link die ik had gedeeld was van de gecompileerde code. De source moet nog wat opgekuist worden voor ik ze aan de wereld durf tonen ;)

Het is wel een Java progje, dus de source heb je direct als je wilt. En ik snap niet wat verschil het nu maakt of het op GitHub of GoogleDrive staat. Van de kant van @Outerspace blijft het ook stil :)
Github maakt het online browsen door de code makkelijk, en git is standaard developer workflow. Ik gebruik het ook voor mijn prive code waar ik alleen aan werk.

Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.


Acties:
  • 0Henk 'm!

  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 30-03 14:28

Knutselsmurf

LED's make things better

mathias82 schreef op maandag 24 mei 2021 @ 12:35:
Ik maak dit topic even aan om te vermijden dat ik Het Grote Lego Topic spam.

Ik ben momenteel een programma aan het schrijven dat een willekeurige foto omzet in Lego mozaïek. Het is erg vergelijkbaar met https://lego-art-remix.debkbanerji.com/ maar momenteel nog minder geavanceerd. Het grootste verschil is dat ik gebruik maak van CIELAB dE kleurvergelijking, wat een beter resultaat geeft dan wat op voorgenoemde website gebruikt wordt.

Momenteel genereert het programma altijd een 48x48 mozaïek (bij een vierkante foto). Het is mogelijk aan te geven of je met ronde of vierkante Lego tiles gaat werken, en het programma kan ook een Bricklink XML en instructies genereren.

Het grootste probleem waar ik momenteel tegenaan loop is de beschikbaarheid van de tiles: toen ik op Bricklink tiles wou bestellen, kon ik maar 700 van de +2000 tiles die ik nodig had bestellen bij Europese shops. Ik zal dus wat moeten snoeien in de tiles die mijn programma gebruikt. Weet er iemand waar je een overzicht kan vinden van welke kleuren courant verkrijgbaar zijn?

[mbr]Het promoten van je eigen dienst/website wordt niet toegestaan[/]
Als je zorgt dat je alle beschikbare kleur-codes in je applicatie hebt zitten, kun je daarna de gebruiker toch een selectie van te gebruiken tiles laten maken? Eventueel een een selecties als preset

- This line is intentionally left blank -


Acties:
  • +3Henk 'm!

  • citizen2x
  • Registratie: Juni 2021
  • Laatst online: 12-07-2022
"nieuwe" (begin Juni, Beta) eigen tool, srnames - scriptable, cmd-line search&replace in file/directory names.

Waarom: ontevreden met bestaande tools en zoals elders in deze thread gezegd, "scratching the itch".

Platforms: Mac,Windows,Linux,Dos.

License: MIT

.

Acties:
  • 0Henk 'm!

  • mathias82
  • Registratie: April 2017
  • Laatst online: 26-03 09:47
Knutselsmurf schreef op dinsdag 8 juni 2021 @ 16:27:
[...]


Als je zorgt dat je alle beschikbare kleur-codes in je applicatie hebt zitten, kun je daarna de gebruiker toch een selectie van te gebruiken tiles laten maken? Eventueel een een selecties als preset
Ja dat zou ik inderdaad kunnen toevoegen. Maar dan moet de gebruiker eerst op bricklink gaan kijken welke kleuren beschikbaar zijn. Hij moet dan ook kijken naar kleuren die passen bij de afbeelding die hij/zij wilt renderen. Het zou handiger zijn als alle kleuren gewoon bestelbaar waren :)

Momenteel kan de gebruiker na het renderen kiezen om bepaalde kleuren niet te gebruiken, die worden dan vervangen door andere kleuren.

Acties:
  • +4Henk 'm!

  • Sikerdebaard
  • Registratie: Juli 2008
  • Laatst online: 25-03-2022
Hi mede tweakers,

Ik heb een tooltje in elkaar gezet om de Nationale QR Code van coronacheck.nl the valideren en converteren van/naar QR / RAW / ASN1 DER / JSON. Met deze tool is het erg makkelijk om inzicht te krijgen in wat voor data je in de QR vindt, of je bepaalde velden in de QR kunt fuzzen maar ook om zelf een validator in elkaar te zetten. Dan kan je bijvoorbeeld je deurbel de QR code laten valideren voor je iemand binnen laat om maar iets te noemen. LET OP: dit werkt niet op de Europese / Internationale QR code.

Je kan de tool hier vinden: https://github.com/Sikerdebaard/coronacheck-tools.

Het CLI component van de tool kan je via docker draaien.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 Running the tool through docker is quite easy.
# Just docker run sikerdebaard/coronacheck-tools:latest
# Optional: add --user `id -u` to change the uid/group of output files to the current user

# Example: dumping QR code data to JSON
> docker run --rm -v /path/to/your/data:/data sikerdebaard/coronacheck-tools:latest dump json /data/qrcode.jpg /data

# Example: validate QR Code
> docker run --rm -v /path/to/your/data:/data sikerdebaard/coronacheck-tools:latest verify qr /data/qrcode.jpg

# Example: convert QR to ASN1 DER
> docker run --rm -v /path/to/your/data:/data sikerdebaard/coronacheck-tools:latest convert qr /data/qrcode.jpg asn1 /data

# Example: convert ASN1 DER to QR
> docker run --rm -v /path/to/your/data:/data sikerdebaard/coronacheck-tools:latest convert asn1 /data/asn1.der qr /data


Eventueel kan de tool ook via pip geïnstalleerd worden (Python >= 3.6): pip install coronacheck-tools. Je kan hem dan als CLI tool gebruiken maar je kan de tool ook via de python API aanroepen.
Voor de afficionados onder ons hier enkele voorbeeld scripts: https://github.com/Sikerd...-tools/tree/main/examples

De validator gebruikt een thin-wrapper rond de mobilecore library die de coronacheck scanner app gebruikt voor Android en iOS. Hierdoor kan het boeltje als c-shared lib gebuild worden. Ik heb de library gecrosscompiled zodat die op de meeste systemen wel zou moeten werken. Alleen darwin-arm64 ontbreekt nog, het crosscompilen van GoLang naar dit platform blijkt een hoofdpijndossier.

  • Anthirian
  • Registratie: April 2009
  • Laatst online: 29-03 18:48

Anthirian

In Trance We Trust

Niet zozeer een showcase van mijn kant (zover is het nog lang niet), maar ik ben bezig met het maken van een Kubernetes cluster met daarin een aantal misconfiguraties en andere soorten kwetsbaarheden, bedoeld als labomgeving voor het leren uitvoeren van securityonderzoek. Ik zag toevallig dat het hier onlangs over licenties en dergelijke gaat. Op termijn wil ik het gaan verkopen aan een derde partij, misschien zelfs mijn werkgever, dus ik bouw het allemaal in eigen tijd en op eigen hardware. Welke soort licentie zou je hier aan moeten knopen? Geen idee of dit tever off-topic gaat overigens.

Mijn Films en TV Series, Games en Muziek.


Acties:
  • +1Henk 'm!

  • Beneveerg
  • Registratie: Augustus 2011
  • Laatst online: 18:37
Anthirian schreef op vrijdag 30 juli 2021 @ 12:58:
Niet zozeer een showcase van mijn kant (zover is het nog lang niet), maar ik ben bezig met het maken van een Kubernetes cluster met daarin een aantal misconfiguraties en andere soorten kwetsbaarheden, bedoeld als labomgeving voor het leren uitvoeren van securityonderzoek. Ik zag toevallig dat het hier onlangs over licenties en dergelijke gaat. Op termijn wil ik het gaan verkopen aan een derde partij, misschien zelfs mijn werkgever, dus ik bouw het allemaal in eigen tijd en op eigen hardware. Welke soort licentie zou je hier aan moeten knopen? Geen idee of dit tever off-topic gaat overigens.
Totaal offtopic reactie, misschien is een eigen topic beter. Bij mijn weten kan software die je maakt in eigen tijd en op eigen hardware toch (deels) eigendom zijn van je werkgever als het relatie heeft met je werkt

Het leven is te kort om te testen


Acties:
  • +1Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 30-03 16:27

Matis

Rubber Rocket

Beneveerg schreef op vrijdag 30 juli 2021 @ 14:17:
Totaal offtopic reactie, misschien is een eigen topic beter. Bij mijn weten kan software die je maakt in eigen tijd en op eigen hardware toch (deels) eigendom zijn van je werkgever als het relatie heeft met je werkt
Dit is exact waar ik ook als eerste aan dacht en dit is beginsel ook het geval.
Heeft met IP te maken. Zie ook https://juridox.nl/blog/i...en-te-claimen-bij-je-baas

If money talks then I'm a mime
If time is money then I'm out of time


  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Beneveerg schreef op vrijdag 30 juli 2021 @ 14:17:
[...]


Totaal offtopic reactie, misschien is een eigen topic beter. Bij mijn weten kan software die je maakt in eigen tijd en op eigen hardware toch (deels) eigendom zijn van je werkgever als het relatie heeft met je werkt
Jup, want je dienstverband houd niet op als je 's avonds je laptop dichtklapt en begint niet weer de volgende dag. Ik heb dat tot nu toe afgedekt met side letters bij mijn arbeidscontracten waarin staat dat alles wat ik doe in eigen tijd op eigen hardware met eigen software van mij is, zolang het niet concurreert met mijn werkgever. Tot nu toe leverde dat nergens een discussie op en het voorkomt veel potentiele ellende. Zeker als je actief bent in OSS of van plan bent je spullen commercieel uit te baten wil je niet in het mijnenveld van een conflict met je werkgever trappen. En, reken maar dat die gelijk krijgt bij de rechter.

12x360Wp = 4320 Wp @ Growatt 4200TL-XL. Zuid met helling 13° op plat dak.


  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 21:14
Eind vorig jaar werd Garmin gehakt. Aangezien ik nogal veel gebruik maak van mijn garmin account (icm een Edge 520 en Vivo active 3) was dat best wel een vervelende situatie. Vanaf dat moment wilde ik eigenlijk alles kunnen backuppen.

Afgelopen week eindelijk de tijd gehad om het scriptje dat ik geschreven heb om dit te kunnen doen op github te knallen. Het is een php symfony command line command waarmee je diverse zaken kan exporteren. Het is een w.i.p maar het exporteren van segmenten en activiteiten werkt al.

Volgende versie zal worden dat je een config bestandje kan aanmaken zodat je niet elke keer de username/password hoeft op te geven zodat je het ook daadwerkelijk gescheduled kunt laten draaien

(ik wil dit projectje ook een keer gaan herschrijven in Python om zo mijzelf die taal een beetje aan te leren)

aanroep php bin/console garminexportcommand <username> <password>

en dan simpelweg de vragen beantwoorden

[Voor 3% gewijzigd door Webgnome op 09-08-2021 13:49]

Strava, Twitter


  • switchboy
  • Registratie: September 2002
  • Laatst online: 29-03 21:51

switchboy

-ruimte te huur-

Ik ben persoonlijke financien belangrijk gaan vinden en heb er veel over gelezen de afgelopen weken. Hierdoor geïnspireerd heb ik een klein console programmatje geschreven wat het effect van rente op rente en inflatie berekend.

Dit maakt mooi inzichtelijk hoe hard je afgestraft wordt voor geld gewoon op de spaarreking te laten staan!

https://github.com/switch...estCalculator/tree/master

My Steam Profile (Name Switch) Worth: 889€ (225€ with sales)Games owned: 83


  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 21:14
Nieuwe versie zojuist geuploaded. Het is mogelijk om een config file weg te schrijven en unattended mode is toegevoegd.

Strava, Twitter


  • switchboy
  • Registratie: September 2002
  • Laatst online: 29-03 21:51

switchboy

-ruimte te huur-

Ben bezig met een push voor multiplayer in mijn RTS

Dat valt nog niet mee. Er zijn teveel dingen om alles te synchroniseren. Dus synchroniseer ik de commando's en moet er dan verder voor zorgen dat die exact op hetzelfde ingame moment op alle clients uitgevoerd worden. Zodat er hetzelfde gebeurd. Verder moet alle ingame logica deterministisch zijn. Dezelfde input moet altijd dezelfde output geven. Dat valt nog niet mee!



Ik heb nu net een protoype werkend om commando's van de andere client te ontvangen en verwerken

My Steam Profile (Name Switch) Worth: 889€ (225€ with sales)Games owned: 83


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 30-03 16:27

Matis

Rubber Rocket

Afgelopen weken bezig geweest met een Microsoft Power Automate flow genaamd AutoffOffice.
Microsoft Power Automate scheduled cloud flow to automatically set Automatic Replies in case of Out of Office.
Niet echt een tool, maar meer een drag-and-dropje dat controleert of dat je (aan de hand van je Outlook kalender) afwezig bent en zodoende het automatisch antwoord aanzet.
Tevens wordt dynamisch, aan de hand van de duur van de afwezigheid, de einddatum in de email vermeld.

If money talks then I'm a mime
If time is money then I'm out of time


  • citizen2x
  • Registratie: Juni 2021
  • Laatst online: 12-07-2022
Geen echte tool maar een zogenoemde header-only C++ library:

Custom directory selection dialog' for win32 (native) apps.
https://github.com/citizenTwice/dirdlg/

Acties:
  • +6Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

.NET's UseWindowsService() is broken: het rapporteert fouten tijdens runtime niet goed terug naar de Service Control Manager, waardoor die niet weet dat je Windows Service gecrasht is en hem niet opnieuw start, en het laat ook je host-applicatie doorlopen wanneer de service-start mislukt (bijvoorbeeld door ongeldige serviceconfiguratie).

Daarnaast wil je op consumenten-OSes mogelijk ook op de hoogte gesteld worden van het afsluiten en opstarten van de machine (semi-hibernate, services blijven runnen) en het aan- en afmelden van gebruikers.

Mijn vandaag naar v3.0.1 geüpdatete library lost dat allemaal op: https://github.com/CodeCasterNL/WindowsServiceExtensions 8)

Tevens gespeeld met GitHub Pages voor de documentatie.

Depdendency Injection:
C#:
1
2
3
4
5
6
7
8
9
var hostBuilder = new HostBuilder()
    .ConfigureLogging(l => l.AddConsole())
    .ConfigureServices((s) =>
    {
        // Add our IHostedService
        s.AddHostedService<MyCoolBackgroundService>();
    })
    // instead of .UseWindowsService():    
    .UseWindowsServiceExtensions();


Usage:
C#:
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
public class MyCoolBackgroundService : WindowsServiceBackgroundService
{
    public MyCoolBackgroundService(
        ILogger<MyCoolBackgroundService> logger,
        IHostLifetime hostLifetime
    )
        : base(logger, hostLifetime)
    {
    }

    // This still runs your long-running background job
    protected override async Task TryExecuteAsync(CancellationToken stoppingToken)
    {
        // Do your continuous or periodic background work.
        await SomeLongRunningTaskAsync();

        // This will report to the SCM that your service failed.
        throw new Exception("Foo");
    }

    // This one tells you when we're shutting down or resuming from semi-hibernation
    public override void OnPowerEvent(PowerBroadcastStatus powerStatus)
    {
        // The lifetime will log "OnPowerEvent: {powerStatus}"

        if (powerStatus == PowerBroadcastStatus.Suspend)
        {
            // Cancel a request, flush a cache, ...
            _thingYoureRunning.Suspend();
        }

        if (powerStatus.In(PowerBroadcastStatus.ResumeSuspend, PowerBroadcastStatus.ResumeAutomatic))
        {
            // Trigger some tokens to continue work...
            _thingYoureRunning.Resume();
        }
    }

    // React to logon/logoff/...
    public override void OnSessionChange(SessionChangeDescription changeDescription)
    {
        // The lifetime will log "OnSessionChange: {changeDescription.SessionId}, {changeDescription.Reason}"

        if (changeDescription.Reason == SessionChangeReason.SessionLogon)
        {
            // Send a message to our notifier...
            _thingYoureRunning.TryToNotifyUserApp();
        }
    }
}


Nu nog een PR maken voor de MS Docs, sinds de merge van Platform Extensions zijn hun docs niet meer bijgewerkt naar v5, v6 en v7...

[Voor 6% gewijzigd door CodeCaster op 25-04-2022 17:09]

https://oneerlijkewoz.nl
I have these thoughts / so often I ought / to replace that slot / with what I once bought / 'cause somebody stole my car radio / and now I just sit in silence


Acties:
  • +18Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 02:57

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Backstory:

Paar dagen geleden ging IlseIII naar de schuur om daar de frituurpan aan te zetten om friet (ja, friet, ja, geen patat!) te gaan bakken. Toen bleek de frituurpan dus al / nog aan te staan van een paar dagen eerder die week toen één van de kinderen besloten had frikandellen te bakken voor zichzelf + vriendjes. En dus vergeten was om de frituurpan uit te zetten... 😱

Anyhoe, van 't een komt 't ander en voor je 't weet bestel je wat hardware zodat je frituurpan zéker uit gaat na X tijd. Helaas heeft onze frituurpan (ongeveer zoiets) namelijk geen tijdschakelaar. Deze plug heeft daar gewoon een instelling voor: na X tijd uitschakelen. Ook leuk is dat die plug een REST API heeft zodat je de status (aan/uit) kunt uitlezen, het huidige verbruik in Watt's etc. etc. En integratie met de betere home-automation platformen out-of-the-box. Wat wil je nog meer. Je kunt zelfs je eigen firmware flashen (is gewoon een ESP8266).

We zijn een "Alexa huishuiden" - heel de tent hangt vol met Echo Dot'jes (2e en 3e generatie) en daar had ik er dus nog een paar, wat oudere maar nog prima bruikbaar, van op de plank liggen. Enfin, je kent 't wel, zo'n balletje begint te rollen en voor je 't weet heb je een voice controlled intelligente frituurpan...

En dat resulteert dan weer in: https://staatdefrietpanaanbij.robiii.nl :+
En natuurlijk een read-only :> REST FAPI (Frietpan API): https://staatdefrietpanaanbij.robiii.nl/api/status

Ik moet even wat frotten maar bookmark deze post als je 't resultaat wil zien; ik zal later vanavond even wat filmpjes hier in editten.
Fuck it, ik had een wat slicke(re) edit willen maken, maar geen zin in...

Wee degene die begint over m'n stonecoal english :+ Ik articuleer wat overdreven, de Echo Dot hangt nog (tijdelijk) achter de koelkast dus die hoort niet goed :P

Overigens krijg ik ook netjes een notificatie op mijn telefoon bij in/uitschakelen. Mocht ik niet thuis zijn kan ik alvast m'n bestelling doorgeven en dan in de auto springen :+

[Voor 12% gewijzigd door RobIII op 22-06-2022 21:29]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


Acties:
  • +1Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 21:14
toch wel jammer dat je api read only is.. ;)

Strava, Twitter


Acties:
  • +1Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 02:57

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Webgnome schreef op woensdag 22 juni 2022 @ 21:27:
toch wel jammer dat je api read only is.. ;)
Ja he? Leek me wel verstandig :P

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


Acties:
  • +2Henk 'm!

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Jammer, leek me een leuk artikel, maar je was me na de eerste zin kwijt.

Oops! Google Chrome could not find www.rijks%20museum.nl


Acties:
  • +1Henk 'm!

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
P_de_B schreef op woensdag 22 juni 2022 @ 21:32:
Jammer, leek me een leuk artikel, maar je was me na de eerste zin kwijt.
En hetzelfde bij het filmpje :>

Oops! Google Chrome could not find www.rijks%20museum.nl


Acties:
  • +8Henk 'm!

  • MichielPH
  • Registratie: Februari 2005
  • Laatst online: 18-03 11:16
Binnenkort zijn overheden en banken wettelijk verplicht om websites en apps toegankelijk te maken voor oa. blinden en slechtzienden. Als Android ontwikkelaar heb ik hierdoor vrij regelmatig TalkBack ingeschakeld, waardoor m'n telefoon elk element voor mij voorleest. Dit voorlezen is erg langdradig. Ook kan je niet meer zoals gebruikelijk scrollen en navigeren, omdat TalkBack deze aanrakingen vervangt met andere gestures.

Hierom heb ik een eerste poging gewacht om TalkBack te vervangen, voor een service die hetzelfde doet voor mensen die kunnen zien: AccessibilityTester!



Deze app tekent een overlay met all elementen die voorgelezen kunnen worden, laat zien in welke volgorde dit gebeurt en toont ook veelvoorkomende fouten, zoals knoppen die te klein zijn om ingedrukt te worden.

Acties:
  • +6Henk 'm!

  • Ossebol
  • Registratie: Juni 2010
  • Laatst online: 23-03 22:28
Omdat de javascriptwereld nog niet genoeg frontendframeworks kent, heb ik er ook maar eentje gebouwd (in TypeScript) ;)

Mijn frameworkje heet Vienna en is voor mij een manier om te ontdekken hoe frameworks zoals Angular en Vue onder water werken. Daarnaast vind ik het wel interessant om te zien welke uitdagingen de makers hadden en hoe ze die hebben opgelost.

Het mooie aan Vienna is dat het in theorie overal is in te pluggen. Als programmeur werk je jouw componenten gewoon typesafe in TypeScript uit. Vervolgens bakt het framework hier uiteindelijk webcomponents van die vervolgens als custom elements worden geregistreerd.

Wie Angular een beetje kent, zal vermoedelijk snel kunnen starten met Vienna. Dit is ook niet vreemd, want Angular ken ik redelijk, en dat framework zorgt dus voor enige conceptuele houvast. Niettemin heb ik de vrijheid genomen om gaandeweg wat zaken anders op te zetten. De conditional segments zijn hier een mooi voorbeeld van.

Momenteel werk ik op onregelmatige tijden aan Vienna. Het verbeteren van het frameworkje is voor mij een manier van ontspanning (naast mijn andere hobbies, natuurlijk). Perfect is het zeker niet en er zijn plekken in de source waar het nog erger ruikt dan het kluisje van een gemiddelde middelbare scholier. Maar zo is het leven: je probeert iets uit, je valt een keer, en dan probeer je het opnieuw.

Vienna bevindt zich dus, samenvattend, in alfa. Desondanks heb ik geprobeerd zo transparant mogelijk te werken, zodat anderen er eventueel ook iets aan hebben. De documentatie is up-to-date (inclusief known issues), en ik heb daarnaast een demo-app gemaakt om geïnteresseerden te laten zien hoe ze met Vienna uit de voeten kunnen.

Voordat ik met Vienna begon, las ik verschillende blogposts waarin programmeurs schreven dat er geen beter leerproces is dan zelf een framework in elkaar te zetten - en het vooral daarna nooit in productie te gebruiken. Ik denk dat ze gelijk hebben... >:)

[Voor 6% gewijzigd door Ossebol op 19-07-2022 22:29]

"One day, someone showed me a glass of water that was half full. And he said: 'Is it half full or half empty?' So I drank the water. No more problem." - Alexander Jodorowsky


  • Jogai
  • Registratie: Juni 2004
  • Laatst online: 30-03 14:04
@Ossebol Respect! Met deze hitte kom ik even niet verder als een duimpje, maar zal later nog eens verder kijken. Ken je ook SolidJs en Svelte?

Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.


  • Ossebol
  • Registratie: Juni 2010
  • Laatst online: 23-03 22:28
Jogai schreef op dinsdag 19 juli 2022 @ 23:08:
@Ossebol Respect! Met deze hitte kom ik even niet verder als een duimpje, maar zal later nog eens verder kijken. Ken je ook SolidJs en Svelte?
@Jogai Beide van naam, maar nog niet inhoudelijk naar gekeken. Ga ik doen, thanks!

Overigens ben ik wel ook enigszins bekend met Stencil, waarmee ook custom elements kunnen worden gecompileerd. Misschien voor jou ook nog interessant :)

"One day, someone showed me a glass of water that was half full. And he said: 'Is it half full or half empty?' So I drank the water. No more problem." - Alexander Jodorowsky


Acties:
  • +5Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 29-03 17:59
Een cross post: de afgelopen maanden heb ik, met hulp van de leden van de Dutch Power Cows (topic), alle 401.567.166.000 stellingen van het bordspel Push Fight doorgerekend.

Het resultaat is dat ik voor elke mogelijke stelling kan bepalen wie er wint, en welke zetten optimaal zijn. Om dat inzichtelijk te maken heb ik ook een webpagina gemaakt waar je stellingen kunt analyseren, en tegen een AI kunt spelen: https://styx.verver.ch/pushfight/.

Het ziet er ongeveer zo uit:



De broncode staat hier: https://github.com/maksverver/pushfight, inclusief een writeup met meer informatie over hoe ik het spel heb geanalyzeerd.

Acties:
  • +1Henk 'm!

  • robinsane
  • Registratie: December 2017
  • Laatst online: 19-01 20:16
Ik maakte een personal finance programma om alle mogelijke uitkomsten van een investeringsplan te genereren:

https://projub.com/compound_interest_calculator/

  • Lethalis
  • Registratie: April 2002
  • Niet online
Eigenlijk best lastig om zelf iets te verzinnen. Ik werk al 20 jaar als developer, maar (behalve tools voor mijn werk) privé eigenlijk weinig inspiratie.

Ik wil wel iets maken. Eventueel ook om te kunnen laten zien. Maar wat :P

Normaal gesproken is de stelling andersom. Je hebt een probleem dat je wil oplossen en er komt een tool uit voort. Ik wil een tool maken maar geen idee waarvoor 8)7

Komt deels ook omdat ik thuis dingen juist simpel hou. Ik ben ooit met domotica begonnen, maar dat spul is inmiddels weer opgeborgen in een doos. Ik had ooit een hele zelfbouw server, maar die is vervangen door een Synology. Weinig omkijken naar, goede backup software. Hoef ik het zelf niet te doen. Enzovoorts.

Soms denk ik na over bepaalde developer tools die code genereren. Of ook iets waarmee ik mijn bankafschriften kan analyseren. Heb ooit de "MoneyTracker" tool gemaakt. Je leest de bankafschriften in en hij poept netjes per maand een overzicht er uit.

Lekker beperkte scope, maar je moet wel de "rules" specificeren. De rule engine schrijven was leuk, de rules maken is doodsaai rotwerk :P Tot zover die tool etc ;)

Het wil niet echt nog.

Ik ben ook nog steeds bezig met mijn eigen website... staat ook al 20 jaar under construction _O- Ik vind het echt knap als mensen een heel blog bijhouden. Waar haal je die discipline vandaan.

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


  • Jogai
  • Registratie: Juni 2004
  • Laatst online: 30-03 14:04
Ik heb juist ideeen, en weinig tijd. Welke talen/omgevingen ken je?

Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.


  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 21:14
Lethalis schreef op donderdag 28 juli 2022 @ 11:01:
Eigenlijk best lastig om zelf iets te verzinnen. Ik werk al 20 jaar als developer, maar (behalve tools voor mijn werk) privé eigenlijk weinig inspiratie.

Ik wil wel iets maken. Eventueel ook om te kunnen laten zien. Maar wat :P

Normaal gesproken is de stelling andersom. Je hebt een probleem dat je wil oplossen en er komt een tool uit voort. Ik wil een tool maken maar geen idee waarvoor 8)7

Komt deels ook omdat ik thuis dingen juist simpel hou. Ik ben ooit met domotica begonnen, maar dat spul is inmiddels weer opgeborgen in een doos. Ik had ooit een hele zelfbouw server, maar die is vervangen door een Synology. Weinig omkijken naar, goede backup software. Hoef ik het zelf niet te doen. Enzovoorts.

Soms denk ik na over bepaalde developer tools die code genereren. Of ook iets waarmee ik mijn bankafschriften kan analyseren. Heb ooit de "MoneyTracker" tool gemaakt. Je leest de bankafschriften in en hij poept netjes per maand een overzicht er uit.

Lekker beperkte scope, maar je moet wel de "rules" specificeren. De rule engine schrijven was leuk, de rules maken is doodsaai rotwerk :P Tot zover die tool etc ;)

Het wil niet echt nog.

Ik ben ook nog steeds bezig met mijn eigen website... staat ook al 20 jaar under construction _O- Ik vind het echt knap als mensen een heel blog bijhouden. Waar haal je die discipline vandaan.
Herkenbaar probleem. Ik schrijf zo nu en dan wel eens dingen op waar ik mij aan irriteer in huis en dan als ik een keer zin heb om iets nieuws te leren dan pak ik dat lijstje erbij en kijk ik of ik snel even iets in elkaar kan zetten. Maar meestal komt het er niet van want je bent toch al 8~10 uur per dag met code bezig dan wil je in je vrije tijd wel eens iets anders.

Strava, Twitter


Acties:
  • +2Henk 'm!

  • Furion2000
  • Registratie: September 2017
  • Laatst online: 30-03 09:47
@Lethalis Een wederhelft die het lieftst 'saaie' programma's kijkt 's avonds, een mooie laptopstandaard (tegen opwarming van je edele delen), toetsenbord op schoot en goan ;)

Wat bij mij momenteel werkt is vooral snel tot die mvp van je idee komen en toch behapbare duidelijke userstories op een trello bordje geklad. Heel cliche maar als je het voor jezelf doet kan het zonder al die scrum bloat haha. Veel geleerd en inspiratie opgedaan van het boek 'Zero to Sold'.

[Voor 3% gewijzigd door Furion2000 op 29-07-2022 10:54]


Acties:
  • +1Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Lethalis schreef op donderdag 28 juli 2022 @ 11:01:
Eigenlijk best lastig om zelf iets te verzinnen. Ik werk al 20 jaar als developer, maar (behalve tools voor mijn werk) privé eigenlijk weinig inspiratie.

Ik wil wel iets maken. Eventueel ook om te kunnen laten zien. Maar wat :P

Normaal gesproken is de stelling andersom. Je hebt een probleem dat je wil oplossen en er komt een tool uit voort. Ik wil een tool maken maar geen idee waarvoor 8)7

Komt deels ook omdat ik thuis dingen juist simpel hou. Ik ben ooit met domotica begonnen, maar dat spul is inmiddels weer opgeborgen in een doos. Ik had ooit een hele zelfbouw server, maar die is vervangen door een Synology. Weinig omkijken naar, goede backup software. Hoef ik het zelf niet te doen. Enzovoorts.

Soms denk ik na over bepaalde developer tools die code genereren. Of ook iets waarmee ik mijn bankafschriften kan analyseren. Heb ooit de "MoneyTracker" tool gemaakt. Je leest de bankafschriften in en hij poept netjes per maand een overzicht er uit.

Lekker beperkte scope, maar je moet wel de "rules" specificeren. De rule engine schrijven was leuk, de rules maken is doodsaai rotwerk :P Tot zover die tool etc ;)

Het wil niet echt nog.

Ik ben ook nog steeds bezig met mijn eigen website... staat ook al 20 jaar under construction _O- Ik vind het echt knap als mensen een heel blog bijhouden. Waar haal je die discipline vandaan.
Ik kom meestal tijd te kort. :)

Less alienation, more cooperation.


Acties:
  • +4Henk 'm!

  • Emiel L
  • Registratie: Februari 2014
  • Laatst online: 17:57
Voor mijn eigen freelance werkzaamheden een tooltje gemaakt om mijn uren bij te houden. Het is nog heel pril en bare bones, maar ik gebruik het al met veel plezier. Ook was het voor mij een uitdaging om eens te kijken of ik een app kon maken die niet triviaal is, 100% in SwiftUI. Dat was even wennen, om het vriendelijk te zeggen, maar het doet inmiddels wat het moet doen zonder al te erge bugs.



iOS only, te vinden in de App Store: https://apps.apple.com/nl...618775105?platform=iphone

(Nog) niet open source. Ik weet nog niet helemaal wat ik er uiteindelijk mee wil, maar ik durf de code nu nog niet openbaar te maken.

http://emiellensink.nl


Acties:
  • +1Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Als je een F# naar Erlang transpiler maakt ben ik je eeuwig dankbaar. :) hahaha

Less alienation, more cooperation.


Acties:
  • +1Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Sandor_Clegane schreef op vrijdag 29 juli 2022 @ 15:29:
[...]
Als je een F# naar Erlang transpiler maakt ben ik je eeuwig dankbaar. :) hahaha
Ik heb op mijn werk ooit uit nood een VbScript naar JavaScript transpiler gemaakt _O-

F# toch ingeruild? :P

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


Acties:
  • +1Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Lethalis schreef op vrijdag 29 juli 2022 @ 16:54:
[...]

Ik heb op mijn werk ooit uit nood een VbScript naar JavaScript transpiler gemaakt _O-

F# toch ingeruild? :P
Zeker niet! Ben lekker aan het werk in Fable op het moment. :)

Less alienation, more cooperation.


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

-

[Voor 115% gewijzigd door CodeCaster op 29-07-2022 17:35. Reden: Niet zo grappig noch constructief als bedoeld]

https://oneerlijkewoz.nl
I have these thoughts / so often I ought / to replace that slot / with what I once bought / 'cause somebody stole my car radio / and now I just sit in silence


  • Giant_Panda
  • Registratie: Maart 2009
  • Laatst online: 30-03 15:53
Ken je het dat je een (groot) aantal gelikete liedjes op Spotify hebt die je graag allemaal wil horen? Maar dat het random afspelen van Spotify vaak dezelfde liedjes kiest?
Daar had ik ook flink last van, en dan ga je daar iets op bedenken...
Dat resulteerde in een stukje code wat een afspeellijst beheert en daar de afgespeelde liedjes uit verwijdert.

En omdat ik hier Home Assistant gebruik, heb ik er meteen een addon voor gemaakt. Maar je kan de Typescript code ook gewoon los draaien.

https://github.com/SLG/ho.../tree/master/spotify-sync


  • Giant_Panda
  • Registratie: Maart 2009
  • Laatst online: 30-03 15:53
Ander ding wat ik recentelijk heb gemaakt, een MQTT servertje op onze LG C1 tv, die doorgeeft of er iets speelt. Dit zodat je bijvoorbeeld de lichten kan doven als de film speelt.

https://github.com/SLG/tv-service

  • Chip.
  • Registratie: Mei 2006
  • Niet online
Nice dat probleem loste ik op door mijn liked songs in een andere afspeellijst te zetten. Die te shuffelen en die vervolgens op volgorde af te spelen. Waarna ik de liedjes zelf na een sessie verwijderde met de hand.

Zou helemaal optimaal zijn als t ergens automatisch in de cloud zou werken en dan onafhankelijk van waar je muziek afspeelt, auto, thuis, werk, etc de liedjes zou verwijderen

[Voor 20% gewijzigd door Chip. op 05-08-2022 18:45]


  • Giant_Panda
  • Registratie: Maart 2009
  • Laatst online: 30-03 15:53
Chip. schreef op vrijdag 5 augustus 2022 @ 18:44:
[...]

Nice dat probleem loste ik op door mijn liked songs in een andere afspeellijst te zetten. Die te shuffelen en die vervolgens op volgorde af te spelen. Waarna ik de liedjes zelf na een sessie verwijderde met de hand.

Zou helemaal optimaal zijn als t ergens automatisch in de cloud zou werken en dan onafhankelijk van waar je muziek afspeelt, auto, thuis, werk, etc de liedjes zou verwijderen
Haha, zo deed ik het eerst inderdaad ook. Maar als je dan ff wat anders wil luisteren ben je de positie weer kwijt....
Het vraagt bij Spotify op welke liedjes je hebt afgespeeld, dus het werkt overal. Je moet het wel regelmatig draaien, want meer dan 50 recente liedjes kan je niet ophalen. Dus vandaar dat ik het elk uur laat draaien, dan zit je safe (met zo'n 20-30 liedjes).

  • ZeroXT
  • Registratie: December 2007
  • Laatst online: 29-03 15:18
Ik heb een standalone PHP validation library ontwikkeld en zou graag feedback daarover krijgen :)

De library heeft meer dan 80 vooraf gedefinieerde regels (en er komen meer). En je kan ook je eigen regels definiëren middels closures of classes. Er zitten 15+ standaard middleware regels in en ook dit kan uitgebreid worden door eigen code toe te voegen.

Validator blueprints zorgen ervoor dat je alle regels, middleware, error messages, etc. makkelijk kan hergebruiken ter behoeve van de DRY method. En daarnaast kunnen ook meerdere velden als één gecombineerd worden voor single validation.

Na de validatie kan de gevalideerde data opgehaald worden zodat deze bijvoorbeeld als entity opgeslagen kunnen worden in een database.

Hier is een simpele voorbeeld:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$data = [
    'programmers' => [
        'name' => 'Morris',
        'email' => 'morris@domain.com'
    ],
    'developers' => [
        'name' => 'Smith',
        'email' => '  SMITH@domain.com '
    ]
];

$validator = new Validator($data);
$validator->field('*.email')->required()->email()->lengthMax(50);
$validator->middleware('*.email')->trim()->toLowercase();

if($validator->passes()) {
    
    //array('morris@domain.com', 'smith@domain.com')
    $validator->validatedData()->pluck('*.email')->toArray();
}


Of:
PHP:
1
2
3
$validator->validatedData()->not('programmers.*')->toArray();

// array('developers' => array('email' => 'smith@domain.com'));


En een leuk feit, op dit moment heeft het meer dan 550 unit tests en 2100+ assertions en een code coverage van meer dan 99%.

https://github.com/kris-kuiper/Validator

Zoals ik al zei, hoor graag feedback! Mag in elke vorm zoals code reviews, tips, advies of nieuwe ideeën.

  • DaFeliX
  • Registratie: December 2002
  • Laatst online: 30-03 12:39

DaFeliX

Tnet Devver
ZeroXT schreef op woensdag 7 september 2022 @ 01:04:
[...]

Hier is een simpele voorbeeld:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$data = [
    'programmers' => [
        'name' => 'Morris',
        'email' => 'morris@domain.com'
    ],
    'developers' => [
        'name' => 'Smith',
        'email' => '  SMITH@domain.com '
    ]
];

$validator = new Validator($data);
$validator->field('*.email')->required()->email()->lengthMax(50);
$validator->middleware('*.email')->trim()->toLowercase();

if($validator->passes()) {
    
    //array('morris@domain.com', 'smith@domain.com')
    $validator->validatedData()->pluck('*.email')->toArray();
}


[...]

Zoals ik al zei, hoor graag feedback! Mag in elke vorm zoals code reviews, tips, advies of nieuwe ideeën.
Ik zou allereerst beginnen met echte simpele voorbeelden, ipv als eerste voorbeeld nested array met wildcards. Als lezer die jouw library nog nooit eerder heeft gezien is er in die code snippet zoveel te zien, dat ik niet goed weet waar ik op moet letten. Je zou wildcard en nested arrays uiteraard wel mooi als tweede voorbeeld kunnen opnemen om aan te tonen dat het ook 'complexer' kan.

De README.md begin met "Validating incoming data or array's [...] should not be hard.". Daarna volgt een gigantische lange tekst, wat toch doet vermoeden dat het complexer is dan je claimt. Ik denk dat je in de README teveel probeert te vertellen. Je zou ze kunnen uitsplitsen naar aparte MD's om het wat overzichtelijker te maken. Zo zou ik in de README wel een lijst van alle validation rules noemen, maar elke rule beschrijven in een andere MD. Ik zou in de README wel vertellen dat je eigen regels kunt maken, en de gebruiker dan naar een andere MD verwijzen hoe je dat doet. Dat maakt de README kleiner en overzichtelijker. En dat is voor je visitekaartje volgens mij wel goed :)

Bij het gebruik van je library geef je als eerste aan dat je de composer.json kunt aanpassen, pas daarna geef je het composer-commando. Ik denk dat de meeste mensen juist composer aanroepen op de CLI, dus ik zou die ook als eerste noemen.

Overigens geef je hier en in je repo voorbeelden van het gebruik van toLowercase die je op e-mail velden toepast. Daar geef je volgens mij wel het verkeerde voorbeeld, want het lokale gedeelte (voor de @) is case-sensitive. In de praktijk zal het zelden problemen geven, maar het kán wel. Mooier was geweest als je juist een middleware aanbiedt die het lokale deel met rust laat, en alleen het domain lowercase'd.

Dat in elk geval mijn feedback van iemand die de library nog niet kent. Ik ga er nog wel 'ns dieper naar kijken want ik vind hem wel interessant :)

Einstein: Mijn vrouw begrijpt me niet


  • ZeroXT
  • Registratie: December 2007
  • Laatst online: 29-03 15:18
DaFeliX schreef op woensdag 7 september 2022 @ 07:54:
Ik zou allereerst beginnen met echte simpele voorbeelden, ipv als eerste voorbeeld nested array met wildcards. Als lezer die jouw library nog nooit eerder heeft gezien is er in die code snippet zoveel te zien, dat ik niet goed weet waar ik op moet letten.
Eens.. ik heb de README daarop aangepast en een simpelere voorbeeld neergezet.
DaFeliX schreef op woensdag 7 september 2022 @ 07:54:
Bij het gebruik van je library geef je als eerste aan dat je de composer.json kunt aanpassen, pas daarna geef je het composer-commando. Ik denk dat de meeste mensen juist composer aanroepen op de CLI, dus ik zou die ook als eerste noemen.
Goede tip, is aangepast! :)
DaFeliX schreef op woensdag 7 september 2022 @ 07:54:
Overigens geef je hier en in je repo voorbeelden van het gebruik van toLowercase die je op e-mail velden toepast. Daar geef je volgens mij wel het verkeerde voorbeeld, want het lokale gedeelte (voor de @) is case-sensitive. In de praktijk zal het zelden problemen geven, maar het kán wel. Mooier was geweest als je juist een middleware aanbiedt die het lokale deel met rust laat, en alleen het domain lowercase'd.
In theorie heb je gelijk, maar ik vond hier een antwoord waarop ik vind dat het voorbeeld niet perse aangepast hoeft te worden. Ik wil je vriendelijk bedanken voor je input. Ik ga nog eens goed nadenken over hoe ik de README.md ga invullen. Goede tips in ieder geval! En bedankt voor je PR ;)

Zijn er nog andere tips of adviezen? Of als ik zo brutaal mag zijn; (kleine) code reviews? 8)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 00:32

Janoz

Moderator Devschuur®

!litemod

ZeroXT schreef op woensdag 7 september 2022 @ 22:55:
Zijn er nog andere tips of adviezen? Of als ik zo brutaal mag zijn; (kleine) code reviews? 8)
Het is 'length' ;)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • ZeroXT
  • Registratie: December 2007
  • Laatst online: 29-03 15:18
Ik zie even niet waar ik dit verkeerd heb geschreven :P

  • Cartman!
  • Registratie: April 2000
  • Niet online
ZeroXT schreef op woensdag 7 september 2022 @ 01:04:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$data = [
    'programmers' => [
        'name' => 'Morris',
        'email' => 'morris@domain.com'
    ],
    'developers' => [
        'name' => 'Smith',
        'email' => '  SMITH@domain.com '
    ]
];

$validator = new Validator($data);
$validator->field('*.email')->required()->email()->lengthMax(50);
$validator->middleware('*.email')->trim()->toLowercase();

if($validator->passes()) {
    
    //array('morris@domain.com', 'smith@domain.com')
    $validator->validatedData()->pluck('*.email')->toArray();
}


Zoals ik al zei, hoor graag feedback! Mag in elke vorm zoals code reviews, tips, advies of nieuwe ideeën.
Persoonlijk zou ik $data meegeven aan passes() ipv in de construct van de class, dan kun je meerdere keren validatie doen op dezelfde configuratie.

Wat is eigenlijk je motivatie om dit te maken als er al veel hele goede libraries zijn die dit doen (zoals bijv Symfony Validator)?

  • ZeroXT
  • Registratie: December 2007
  • Laatst online: 29-03 15:18
Cartman! schreef op donderdag 8 september 2022 @ 18:38:
Persoonlijk zou ik $data meegeven aan passes() ipv in de construct van de class, dan kun je meerdere keren validatie doen op dezelfde configuratie.
Daar is al een mogelijkheid in de library voor genaamd blueprints:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$blueprint = new Blueprint();
$blueprint->field('name')->lengthBetween(2, 30)->required();
$blueprint->field('role')->in(['admin', 'moderator', 'user'])->required();

$data = [
    'name' => 'Morris',
    'role' => 'moderator',
    'email' => 'morris@email.com'
];

$validator = new Validator($data);
$validator->loadBlueprint($blueprint); 

//Add extra rules that extend the blueprint
$validator
    ->field('email')
    ->email()
    ->lengthBetween(5, 50);

if($validator->passes()) {
    //Validation passes
}


Toegegeven dat jouw manier sneller zal zijn en wellicht het gehele blueprint idee overbodig maakt. Ik ga er eens over nadenken, thanks.
Cartman! schreef op donderdag 8 september 2022 @ 18:38:
Wat is eigenlijk je motivatie om dit te maken als er al veel hele goede libraries zijn die dit doen (zoals bijv Symfony Validator)?
Ik heb al eerder met Symfony Validator gewerkt, maar ik vind het geen fijne validator. Het lijkt alsof deze validator te moeilijk doet voor wat het moet doen. Bovendien maakt Symfony veelvuldig gebruik van PHP annotations, waar ik persoonlijk geen fan van ben. Daarnaast miste ik de flexibiliteit van het ophalen van de gevalideerde data en kan ik (voor zover ik weet) niet meerdere inputs combineren voor single validation. (Custom) middleware miste ik ook maar dat is wederom iets dat wellicht gewoon bestaat in Symfony validator.

Laravel Validator vind ik minder netjes geschreven doordat regels als strings worden geschreven met een eigen syntax. Er is een mogelijkheid om dit met objecten te doen, maar het komt allemaal in een grote array wat een stuk minder strikt en foutgevoelig is. Geen auto completion van je editor hiervoor out of the box. Wederom hier het gemis van middleware en meerdere inputs combineren.

Maar wellicht nog het meest voor de hand liggend is dat het een erg leuk project is en ik er veel plezier uit heb gehaald om het te schrijven. :)

  • WernerL
  • Registratie: December 2006
  • Laatst online: 21:47
Ik heb besloten een oud project te herschrijven. Flinke tijd terug in Scala een tool geschreven om ondertitels te downloaden van opensubtitles.org. Nu dat er steeds meer streaming-services komen ben ik wel eens piraat dus de behoefte om makkelijk ondertitels te downloaden is weer wat groter.

Dit keer nieuwe API van opensubtitles.com gebruikt
Geschreven in TypeScript/NodeJS
Te activeren via contextmenu

Het is een allereerste versie. Geen installatiescript, geen unittests, code is niet perfect. Maar het eerste begin is er. :)

Source: https://github.com/WernerLDev/subtitleFetcher
Screenshots:





Misschien dat ik nog een mooie UI ga maken met Ink Een library om React te gebruiken voor command line interfaces. Ik ben benieuwd hoe dat werkt. Voor nu mega saai en simpel gehouden.

[Voor 19% gewijzigd door WernerL op 12-09-2022 19:02]


  • DaFeliX
  • Registratie: December 2002
  • Laatst online: 30-03 12:39

DaFeliX

Tnet Devver
ZeroXT schreef op woensdag 7 september 2022 @ 22:55:
[...]

Zijn er nog andere tips of adviezen? Of als ik zo brutaal mag zijn; (kleine) code reviews? 8)
Ik heb even rondgekeken, en in grote lijnen ziet het er wel goed uit. Ik zie in elk geval duidelijk abstracties, mooie kleine files dus dat maakt mij in elk geval blij. Ik heb niet elke code in detail gezien, maar her-en-der wel wat ingezoomd.

Ik zou zelf wel een aantal dingen wat anders doen, maar dat is uiteraard aan jou of je hier wat mee doet :)
  • Ik zou zelf geen foutmeldingen in 't Engels opnemen, dat maakt localisation lastig. Focus je op 1 ding, en dat is het valideren. Laat het tonen van foutmeldingen maar aan de developer zelf over Nu is het een Error object, dus het is geen groot probleem natuurlijk
  • Voor IP filters zou ik filter_var($INPUT, FILTER_VALIDATE_IP) gebruiken ipv je eigen reguliere expressies
  • Idem bij URL, gebruik filter_var($INPUT, FILTER_VALIDATE_URL) :)
  • In AlphaNumeric zou ik ctype_alnum() gebruiken
  • Gebruik je bewust strtoupper(), of zou mb_strtoupper() (en de rest van de mb_ familie) hier beter zijn? Uiteraard dan wel mbstring opnemen in de composer.json.
  • Let er verder op dat je best wel aannames doet, zonder dat deze voor de lezer heel duidelijk zijn. "Is een valide IP adres" is in de ene context wat anders dan een andere (tbh had ik verwacht dat 127.1 best wel 'ns valide zou kunnen zijn). Wellicht goed om de rules dan dan ook van PHP docs te voorzien met een korte omschrijving per Rule, in plaats van het moeten kijken naar de tests die bij een Rule horen
  • Over tests gesproken, je kunt wellicht beter dataProviders gebruiken ipv foreach() binnen een test. Dus:
    PHP:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    <?php
    //snip
    
    final class ToUppercaseTest extends TestCase
    {
        /**
         * @throws ValidatorException
         */
        public function testShouldPassValidationWhenUsingNonStringValues(): void
        {
            foreach ([null, [], (object) [], 2552, true, [1, 2], ['a', 'b'], ['foo' => 'bar']] as $data) {
                $validator = new Validator(['field' => $data]);
                $validator->middleware('field')->toUppercase();
                $this->assertTrue($validator->execute());
            }
        }
    }


    Zou ik als volgt doen:

    PHP:
    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
    
    <?php
    //snip
    
    final class ToUppercaseTest extends TestCase
    {
        /**
         * @dataProvider nonStringValues
         * @throws ValidatorException
         */
        public function testShouldPassValidationWhenUsingNonStringValues(mixed $fieldValue): void
        {
            $validator = new Validator(['field' => $fieldValue]);
            $validator->middleware('field')->toUppercase();
            $this->assertTrue($validator->execute());
        }
    
        public function nonStringValues(): array
        {
            return [
                [null],
                [[]],
                [(object) []],
                [2552],
                [true],
                [[1, 2]],
                [['a', 'b']],
                [['foo' => 'bar']],
            ];
        }
    }


    Dit maakt het uitbreiden van test-cases eenvoudiger
  • Je zou nog 'ns kunnen kijken wat je van psalm kunt leren

Einstein: Mijn vrouw begrijpt me niet


  • ZeroXT
  • Registratie: December 2007
  • Laatst online: 29-03 15:18
DaFeliX schreef op maandag 12 september 2022 @ 20:13:
Ik zou zelf geen foutmeldingen in 't Engels opnemen, dat maakt localisation lastig. Focus je op 1 ding, en dat is het valideren. Laat het tonen van foutmeldingen maar aan de developer zelf over Nu is het een Error object, dus het is geen groot probleem natuurlijk
Ik begrijp je standpunt. Toch is het niet moeilijk om localisation toe te voegen als developer. Voor elke regel en zelfs optioneel per veldnaam kan je een vertaling toevoegen.
DaFeliX schreef op maandag 12 september 2022 @ 20:13:
Voor IP filters zou ik filter_var($INPUT, FILTER_VALIDATE_IP) gebruiken ipv je eigen reguliere expressies
Idem bij URL, gebruik filter_var($INPUT, FILTER_VALIDATE_URL) :)
Goeie tip, IP is verwerkt, URL ga ik nog naar kijken!
DaFeliX schreef op maandag 12 september 2022 @ 20:13:
In AlphaNumeric zou ik ctype_alnum() gebruiken
Is ook verwerkt!
DaFeliX schreef op maandag 12 september 2022 @ 20:13:
Gebruik je bewust strtoupper(), of zou mb_strtoupper() (en de rest van de mb_ familie) hier beter zijn? Uiteraard dan wel mbstring opnemen in de composer.json.
Yep, je hebt helemaal gelijk. Is ook aangepast :)
DaFeliX schreef op maandag 12 september 2022 @ 20:13:
Over tests gesproken, je kunt wellicht beter dataProviders gebruiken ipv foreach() binnen een test.
[...]
Dit maakt het uitbreiden van test-cases eenvoudiger
Hier heb ik al eerder over nagedacht, alleen zijn de test erg specifiek en zijn deze data providers niet snel te hergebruiken. Als ik dit zou toepassen, dan zal dat op dit moment enkel resulteren in een grote file. Hoewel het wel netter gescheiden is en mocht een test falen, beter inzichtelijk zijn waarop deze faalt.
DaFeliX schreef op maandag 12 september 2022 @ 20:13:
Je zou nog 'ns kunnen kijken wat je van psalm kunt leren
Ik had er al eens van gehoord en zit inmiddels in de laatste release verwerkt. Mooie tool!

Al met al, erg bedankt voor de opbouwende kritiek en tips! 8)

  • flo12392
  • Registratie: December 2013
  • Laatst online: 21:50
Ik had recent een Python project met een vrij lange lijst aan dependencies, waarvan ik zeker wist dat minstens de helft inmiddels overbodig was. Ik kon alleen niet echt een goede manier of tool vinden om erachter te komen welke dependencies overbodig waren. Ik had natuurlijk tien minuten kunnen besteden aan wat CTRL+F'en en één voor één dependencies verwijderen om te kijken of de unit tests nog zonder problemen draaiden.

Maar ik kan er natuurlijk ook even snel een programmaatje voor schrijven...

Afijn, twee weken verder:


Ik sta zeer open voor feedback, dus mocht je het zelf willen gebruiken maar tegen bugs aanlopen, of bepaalde features missen, laat het me vooral weten.

  • DaFeliX
  • Registratie: December 2002
  • Laatst online: 30-03 12:39

DaFeliX

Tnet Devver
ZeroXT schreef op woensdag 14 september 2022 @ 10:19:
[...]

Hier heb ik al eerder over nagedacht, alleen zijn de test erg specifiek en zijn deze data providers niet snel te hergebruiken. Als ik dit zou toepassen, dan zal dat op dit moment enkel resulteren in een grote file. Hoewel het wel netter gescheiden is en mocht een test falen, beter inzichtelijk zijn waarop deze faalt.

[...]
Ik kan zelf ook zelden dataProviders hergebruiken, daarvoor moet je volgens mij ook geen dataProviders willen gebruiken.
Maar voor het beheren van je tests werkt 't wel heel fijn als je dat in een aparte methode zet. Het maakt het uitbreiden van tests zoveel eenvoudiger. Daarnaast kun je op de command-line filters gebruiken zodat je 1 item uit die dataProvider gebruikt. Je kunt overigens de keys gebruiken om je data een naam te geven:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
    public function urlValues() array
    {
        return [
            'simple url' => [
                'http://example.com',
            ],
            'URL with query' => [
                'http://example.com/?hello=world',
            ],
            'URL hash' => [
                'http://example.com/myplace#world',
            ],
    }


Als de test dan faalt, zie je ook beter wat er dan precies mis gaat. Dat maakt het voor mij het wel waard dat het bestand daardoor een paar regels langer wordt.
ZeroXT schreef op woensdag 14 september 2022 @ 10:19:

[...]

Ik had er al eens van gehoord en zit inmiddels in de laatste release verwerkt. Mooie tool!

Al met al, erg bedankt voor de opbouwende kritiek en tips! 8)
Graag gedaan, leuk om te doen :)

Einstein: Mijn vrouw begrijpt me niet


  • ZeroXT
  • Registratie: December 2007
  • Laatst online: 29-03 15:18
DaFeliX schreef op woensdag 7 september 2022 @ 07:54:
De README.md begin met "Validating incoming data or array's [...] should not be hard.". Daarna volgt een gigantische lange tekst, wat toch doet vermoeden dat het complexer is dan je claimt. Ik denk dat je in de README teveel probeert te vertellen. Je zou ze kunnen uitsplitsen naar aparte MD's om het wat overzichtelijker te maken. Zo zou ik in de README wel een lijst van alle validation rules noemen, maar elke rule beschrijven in een andere MD. Ik zou in de README wel vertellen dat je eigen regels kunt maken, en de gebruiker dan naar een andere MD verwijzen hoe je dat doet. Dat maakt de README kleiner en overzichtelijker. En dat is voor je visitekaartje volgens mij wel goed :)
Nou, het is eindelijk zover. Naar mate er meer functionaliteit werd toegevoegd, werd de documentatie ook steeds groter en begreep ik steeds meer je punt. Dus bij dezen, de documentatie is aangepast naar een betere structuur.

Ik zat eerder nog te denken om dit in de Wiki van Github te verwerken, maar ik vind het een fijner idee dat de documentatie in de broncode verwerkt is. Ik was er overigens al wel mee begonnen om het in de Wiki te plaatsen, alleen krijg ik enkel de eerste pagina niet meer verwijderd. :')

Hier in elk geval de link naar de repository om de nieuwe README.md te bekijken
https://github.com/kris-kuiper/Validator

Documentatie is hier te vinden:
https://github.com/kris-kuiper/Validator/tree/master/docs

  • MatthewBuchanan
  • Registratie: Oktober 2022
  • Laatst online: 26-01 15:55
Hallo tweakers , mijn tweede topic op tweakers! :)

Beste tweakers ik presenteer aan jullie:

"The voice of pinocchio (of pinocchia)"

Een script waarmee een supersterk wachtwoord te genereren is.

Mét speciaal karakter
Mét minimaal één kleine letter
Mét minimaal één hoofdletter

Een enkele keer verschijnt er geen van de voor moderne wachtwoorden vereiste karakters, vaker bij de wat kortere wachtwoorden, dat is dan weer een feature want wachtwoorden moeten toch langer zijn. Ha!

Het resultaat kan ook base64 encode worden.

De tweakers website meldt bij het invoeren dat het langste wachtwoord Supersterk! is.

https://github.com/MatthewBuchananAstley/vop


mvg,
Matthew

  • switchboy
  • Registratie: September 2002
  • Laatst online: 29-03 21:51

switchboy

-ruimte te huur-

Op het werk maakt één van de collega’s het rooster. Met de hand. In Excel. Een andere collega controleert dit en samen zijn zij een jaar lang verantwoordelijk voor deze taak. Naast alle andere werkzaamheden. Verzoeken gaan via email. Het werkt allemaal wel en het is altijd zo gedaan, maar het is wel een boel monnikenwerk (in een sector waar al standaard overgewerkt wordt en er geen geld is voor een secretaresse die dit doet). Aankomend jaar ben ik waarschijnlijk de gelukkige voor deze oneigenlijke taak.



Needless to say dat ik in al dat handwerk niet echt zin heb. Op het eerste gezicht is de taak van een rooster bouwen niet zo heel ingewikkeld. Je verdeelt de poppetjes die er zijn op basis van wat voorkeuren en met wat voorwaarden om de continuïteit van zorg te borgen. Er zijn wat regeltjes om met tekorten om te gaan, wat in de zorg eerder regel dan uitzondering is. Huidige regels omtrent vakanties geïmplementeerd niet meer dan twee tegelijk op één dag en wie het eerst komt wie het eerst maalt. Huidige voorkeur systeem voor feestdagen geimplementeerd.



Lang verhaal kort: een rooster voor een kwartaal plannen kost nu luttele seconden nadat alle gebruikers hun voorkeuren op tijd in het programma hebben gezet in plaats van uren vrije tijd. En mochten er handmatige aanpassingen nodig zijn is die flexibiliteit er nog steeds. Daarnaast is een algoritme minder susceptibel voor nepotisme of juist zelfopoffering voor de kutdiensten.



Ik weet eigenlijk niet of dit minder werk was dan gewoon op de oude manier het rooster maken. Het projectje had namelijk nogal last van feature creep... :X Gebruikers kunnen elkaar nu zelfs onderling ruilvoorstellen doen. Maar het was wel een stuk leuker!

Het tooltje is trouwens helemaal in te stellen wat taken, stages, dienstblokken en vakantieregels betreft. Dus als een andere afdeling interesse heeft is het zo te implementeren. Dus misschien hebben we er jaren plezier van.

[Voor 3% gewijzigd door switchboy op 12-10-2022 11:15]

My Steam Profile (Name Switch) Worth: 889€ (225€ with sales)Games owned: 83


  • Jogai
  • Registratie: Juni 2004
  • Laatst online: 30-03 14:04
@switchboy Is het opensource?

Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.


  • switchboy
  • Registratie: September 2002
  • Laatst online: 29-03 21:51

switchboy

-ruimte te huur-

Nou ik moet dat eigenlijk even uitzoeken hoe het daarmee precies zit. Ik heb dit helemaal zelf en in eigen tijd ontwikkeld. Maar wel met 'kennis van de roostermaak structuren' die we op de afdeling hanteren en in eerste instantie hierop toegesplitst.

Omdat ik arts en geen ontwikkelaar ben is er niks wat betreft IPhiervoor geregeld in mijn contract voor zover ik weet. Voor onderzoek enzo zijn namelijk wél dingen omtrend IP vastgelegd. Dus ik denk dat gezien alles in eigen tijd is gemaakt het IP gewoon bij mij ligt, maar weet dit nog niet zeker. En dan zou ik dat zeker willen. Maar hou het nog even closed tot ik dit zeker weet.

My Steam Profile (Name Switch) Worth: 889€ (225€ with sales)Games owned: 83


  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 21:14
switchboy schreef op woensdag 12 oktober 2022 @ 13:02:
Nou ik moet dat eigenlijk even uitzoeken hoe het daarmee precies zit. Ik heb dit helemaal zelf en in eigen tijd ontwikkeld. Maar wel met 'kennis van de roostermaak structuren' die we op de afdeling hanteren en in eerste instantie hierop toegesplitst.

Omdat ik arts en geen ontwikkelaar ben is er niks wat betreft IPhiervoor geregeld in mijn contract voor zover ik weet. Voor onderzoek enzo zijn namelijk wél dingen omtrend IP vastgelegd. Dus ik denk dat gezien alles in eigen tijd is gemaakt het IP gewoon bij mij ligt, maar weet dit nog niet zeker. En dan zou ik dat zeker willen. Maar hou het nog even closed tot ik dit zeker weet.
Daar zou je je nog wel eens in kunnen vergissen. Het is namelijk voor je werk. Of dat in eigen tijd is of niet. Lijkt mij goed om het even closed te houden tot nader order ;)

Strava, Twitter


  • Chip.
  • Registratie: Mei 2006
  • Niet online
@switchboy mag hopen dat je baas je een bonus geeft... en anders laat ze er een maandje van genieten en dan haal je het offline 😈

  • Sito
  • Registratie: Augustus 2009
  • Laatst online: 23:18
Webgnome schreef op woensdag 12 oktober 2022 @ 13:38:
[...]


Daar zou je je nog wel eens in kunnen vergissen. Het is namelijk voor je werk. Of dat in eigen tijd is of niet. Lijkt mij goed om het even closed te houden tot nader order ;)
Ligt er vaak aan op welke machine het gebouwd is. Heb je het op je eigen laptop gebouwd, ligt het IP gewoon bij jou lijkt me.

  • RobIII
  • Registratie: December 2001
  • Laatst online: 02:57

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Sito schreef op donderdag 13 oktober 2022 @ 16:28:
Ligt er vaak aan op welke machine het gebouwd is.
Ik kan me geen situatie voorstellen waarbij de machine waarop 't gebouwd is relevant is; het gaat er om in wiens tijd en wat er in je arbeidscontract staat. Mag ik vragen waar je deze wijsheid vandaan hebt?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • Sito
  • Registratie: Augustus 2009
  • Laatst online: 23:18
RobIII schreef op donderdag 13 oktober 2022 @ 16:29:
[...]

Ik kan me geen situatie voorstellen waarbij de machine waarop 't gebouwd is relevant is; het gaat er om in wiens tijd en wat er in je arbeidscontract staat. Mag ik vragen waar je deze wijsheid vandaan hebt?
In mijn vorige arbeidscontract had ik die passage inderdaad staan :D Alles wat op machine van de werkgever was gebouwd, was van de werkgever. Wat het ook was.

Maar ik besef me ook dat, als dat niet in je contract staat, dat helemaal niet van toepassing is natuurlijk.

  • RobIII
  • Registratie: December 2001
  • Laatst online: 02:57

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Ik heb de Unify framework discussie afgesplitst naar hier: Unify framework

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • Oon
  • Registratie: Juni 2019
  • Niet online
switchboy schreef op woensdag 12 oktober 2022 @ 13:02:
Nou ik moet dat eigenlijk even uitzoeken hoe het daarmee precies zit. Ik heb dit helemaal zelf en in eigen tijd ontwikkeld. Maar wel met 'kennis van de roostermaak structuren' die we op de afdeling hanteren en in eerste instantie hierop toegesplitst.

Omdat ik arts en geen ontwikkelaar ben is er niks wat betreft IPhiervoor geregeld in mijn contract voor zover ik weet. Voor onderzoek enzo zijn namelijk wél dingen omtrend IP vastgelegd. Dus ik denk dat gezien alles in eigen tijd is gemaakt het IP gewoon bij mij ligt, maar weet dit nog niet zeker. En dan zou ik dat zeker willen. Maar hou het nog even closed tot ik dit zeker weet.
Over het algemeen staat er gewoon in de AVR of een ander intern reglement waarmee iedereen bij je werkgever akkoord is gegaan dat alle ontwikkelingen onder werktijd of met gebruik van kennis of voorzieningen van je werk eigendom zijn van de werkgever. Zou er dus vanuit gaan dat dit ook gewoon van je werkgever is, tenzij je op papier kunt krijgen dat je het open source mag maken.

  • RobIII
  • Registratie: December 2001
  • Laatst online: 02:57

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Eindelijk eens een keer iets gedaan met een domeintje dat ik nog had liggen :P

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • Stukfruit
  • Registratie: Oktober 2007
  • Niet online

_@/' _@/' _@/' _@/' _@/' _@/' _@/' _@/' _@/' _@/' _@/' _@/' _@/'? '\@_


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 02:15

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

Woohoo I'm special *O*

If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"


  • RobIII
  • Registratie: December 2001
  • Laatst online: 02:57

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Always have been :>

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 02:15

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

Je had een tijdje terug zo'n webgame, volgens mij gemaakt in Flash, waarbij je een grid had waarop je lopende banden en andere componenten kon zetten, en een robotje ging daar dan overheen. Verder had je een soort "tape" met verschillende symbolen (rood, blauw, groen en geel), en dan was het de bedoeling om bepaalde input te accepteren. In de latere levels moest je zelfs een binaire optelling doen.

De naam had iets weg van "machinarium" of "factorio" (maar dat zijn andere games :P, maar het was zoiets)

Iemand een idee?

.edit: ah Manufactoria :D

.edit2: Waaaaat?!
https://store.steampowere...276070/Manufactoria_2022/ *O*

[Voor 10% gewijzigd door .oisyn op 28-10-2022 14:40]

If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"


  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 21:50
Hulde!

1 vraag: waarom werkt .oisyn niet? Iets als:

PHP:
1
2
3
4
5
<?php
$user = $_SERVER['PATH_INFO'];
$url = "https://tweakers.net/gallery$user";

header("Location: $url");

PV Output


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 02:15

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

Nou ja, .oisyn.tweaker.me is natuurlijk geen geldige domeinnaam. Maar tweaker.me/.oisyn is idd wel een geldige URL.

If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"


  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 21:50
.oisyn schreef op vrijdag 28 oktober 2022 @ 14:47:
Nou ja, .oisyn.tweaker.me is natuurlijk geen geldige domeinnaam. Maar tweaker.me/.oisyn is idd wel een geldige URL.
Zelfs https://www.punycoder.com/ doet geen .oisyn (voor Internationalized Domain Names)

PV Output


  • Sircuri
  • Registratie: Oktober 2001
  • Niet online

Sircuri

Volledig Appelig

Moet vooral lachen om de tekst. Dank!! en dat op een vrijdag. Kan ik goed mijn weekend in.

Signature van nature


  • RobIII
  • Registratie: December 2001
  • Laatst online: 02:57

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Kalentum schreef op vrijdag 28 oktober 2022 @ 14:45:
1 vraag: waarom werkt .oisyn niet? Iets als:
Geen idee; nginx blijft een 403 gooien op alles wat met een . begint; een . aan het eind of ergens anders werkt wel. Als je 't weet hoor ik 't graag :P


Edit 1: D'oh... Ik heb denk ik wel een idee waar 't zit. Moment :P

Edit 2:
code:
1
2
3
4
5
6
# Prevent clients from accessing hidden files (starting with a dot)
# This is particularly important if you store .htpasswd files in the site hierarchy
# Access to `/.well-known/` is allowed.
location ~* /\.(?!well-known\/) {
    deny all;
}

Ergens diep in een include van een include van een include :P

Fix0red :Y)

[Voor 42% gewijzigd door RobIII op 28-10-2022 16:30]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • Jogai
  • Registratie: Juni 2004
  • Laatst online: 30-03 14:04
Had even hoop dat het voortzetting van tweakblogs was ;)

Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.


  • RobIII
  • Registratie: December 2001
  • Laatst online: 02:57

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Jogai schreef op vrijdag 28 oktober 2022 @ 17:22:
[...]

Had even hoop dat het voortzetting van tweakblogs was ;)
Hee, een *.blogs.tweaker.me kan altijd nog O-) ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 30-03 16:27

Matis

Rubber Rocket

.oisyn schreef op vrijdag 28 oktober 2022 @ 14:37:
Je had een tijdje terug zo'n webgame, volgens mij gemaakt in Flash, waarbij je een grid had waarop je lopende banden en andere componenten kon zetten, en een robotje ging daar dan overheen. Verder had je een soort "tape" met verschillende symbolen (rood, blauw, groen en geel), en dan was het de bedoeling om bepaalde input te accepteren. In de latere levels moest je zelfs een binaire optelling doen.

De naam had iets weg van "machinarium" of "factorio" (maar dat zijn andere games :P, maar het was zoiets)

Iemand een idee?

.edit: ah Manufactoria :D

.edit2: Waaaaat?!
https://store.steampowere...276070/Manufactoria_2022/ *O*
Verkeerde topic?

[Centraal] Het 'Ik zoek de naam van een spel' topic - Deel 5

If money talks then I'm a mime
If time is money then I'm out of time


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 02:15

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

Het is een programmeer-achtige game die hier weleens langs is gekomen, dus vandaar dat ik het hier vroeg :)

If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"


  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 21:14
Lijkt een beetje op de boardgame roborally :)

Strava, Twitter


  • REDSD
  • Registratie: Maart 2004
  • Laatst online: 30-03 15:04
Ik was opzoek naar een timer voor in de douche, maar de meeste doen het niet goed of gaan snel kapot... Dus toen dacht ik, dan maak ik een simpele no nonsense app die het ook kan.

De app geeft verschillende geluidssignalen, na 2.5, 4 en 5 minuten(de streeftijd) en daarna hoor je elke minuut een kort signaal.

Gemaakt voor ios en Android, mocht iemand hem willen proberen/gebruiken zou ik dat erg leuk vinden.

https://play.google.com/s...om.bitstroom.douche_timer

https://apps.apple.com/us...443748611?platform=iphone

  • Siebsel
  • Registratie: November 2004
  • Laatst online: 24-03 16:13
REDSD schreef op zaterdag 29 oktober 2022 @ 22:53:
Ik was opzoek naar een timer voor in de douche, maar de meeste doen het niet goed of gaan snel kapot... Dus toen dacht ik, dan maak ik een simpele no nonsense app die het ook kan.

De app geeft verschillende geluidssignalen, na 2.5, 4 en 5 minuten(de streeftijd) en daarna hoor je elke minuut een kort signaal.

Gemaakt voor ios en Android, mocht iemand hem willen proberen/gebruiken zou ik dat erg leuk vinden.

https://play.google.com/s...om.bitstroom.douche_timer

https://apps.apple.com/us...443748611?platform=iphone
Leuk idee, maar qua app-privacy een draak. Waarom alles gekoppeld/traceerbaar? (En überhaupt, waarom heb je al die data nodig voor een timer?)

  • REDSD
  • Registratie: Maart 2004
  • Laatst online: 30-03 15:04
Siebsel schreef op maandag 31 oktober 2022 @ 15:19:
[...]


Leuk idee, maar qua app-privacy een draak. Waarom alles gekoppeld/traceerbaar? (En überhaupt, waarom heb je al die data nodig voor een timer?)
Helaas heb ik al die gegevens niet nodig, maar omdat er admob (google ads) inzit worden toch deze gegevens uitgelezen.

Ik vond het een lastige keus, ik heb de afgelopen jaren meerdere apps gemaakt altijd geprobeerd een versie zonder ads te leveren, maar dat heeft nooit iets opgeleverd... of eigenlijk heeft het mij alleen geld gekost...

  • MatthewBuchanan
  • Registratie: Oktober 2022
  • Laatst online: 26-01 15:55
Hallo tweakers!

Tweede post van mij, ik heb mijn persoonlijke linuxhowto collectie gepubliceerd op readthedocs.org.

https://linuxhowto.readthedocs.io/en/latest/

Ik gebruik dat om af en toe op te zoeken hoe dat ook alweer ging mysql passwords resetten enzo.

Ook beschrijf ik daar applicaties die ik heb geschreven zoals "pr-wk" waarmee een overzicht van de Linux computer uptime te genereren is.

https://github.com/MatthewBuchananAstley/pr-wk

Ook heb ik sinds mijn eerste post, waarin ik "The voice of Pinocchio or Pinocchia" password generator presenteerde, de password generator aangepast zodat het altijd tenminste één hoofletter heeft, één kleine letter en één speciaal karakter.

het wachtwoord wat er gegenereerd wordt is er dan een in de

echo "64^77" | bc -l
11908525658859223294760121268437066290850060053501019099651935423375\
59409644991157577631417489430225814753315399706505926303091308322252\
3904

mogelijkheden. Supersterk!

Matthew

  • sebasd
  • Registratie: Juli 2008
  • Laatst online: 23:58

sebasd

loopt op espresso

Als test automation engineer ben ik wel fan van libraries als REST Assured, om het schrijven van tests voor HTTP APIs in Java wat makkelijker te maken. Voor C# was dat er nog niet. Nou ja, je hebt wel RestSharp maar dat is niet per se voor het schrijven van tests, al kan het daar natuurlijk wel voor worden gebruikt.

Combineer dat met het feit dat ik nog een leuk hobbyproject zocht, en RestAssured.Net is geboren: https://github.com/basdijkstra/rest-assured-net

De dekking qua tests is wel aardig volgens mij, de code zelf heeft hier en daar nog wel wat ruimte voor verbetering, dus kom maar door met dat commentaar. Daar leer ik ook weer van.

  • 2mb
  • Registratie: Mei 2004
  • Laatst online: 22:07
Ik ben al een aantal jaren bezig met het bouwen / verbeteren van een online versie van het Brabantse kaartspel rikken :)

Ik ben ermee begonnen tijdens de coronaperiode omdat ik wilde oefenen met het spel maar ik geen goede online game kon vinden. Inmiddels is het redelijk 'volwassen', in de zin dat ik tevreden ben met hoe het nu werkt qua spellogica en UI. Ik dacht dat het wel leuk was om hier te delen hoe het ontwikkelproces is verlopen :)

Dit was een van de eerste versies:



Zoals je ziet helemaal kaal qua layout maar je ziet wel de tafel, spelers en kaarten. Het spel draait volledig in de browser en is gemaakt met Angular (TypeScript) en gestyled met behulp van Tailwind CSS. Verder is het gewoon een static site dus host ik het in een S3 bucket met CloudFront ervoor bij Amazon Web Services.

De kaarten worden intern bijgehouden met de Engelse notatie (Qd is bijvoorbeeld de ruiten vrouw). Ik wilde eerst kijken of ik de spellogica uberhaupt kon programmeren in TypeScript, rikken is een nogal ingewikkeld spel namelijk met veel spelvarianten. En in die tijd was ik het zelf ook nog aan het leren spelen (met hulp van mijn Brabantse schoonouders).



Deze versie is van wat later, je ziet dat de kaarten op tafel inmiddels wat meer op echte kaarten lijken. Alle graphics zijn SVG's of emoji's. Dit gaf wel wat problemen qua cross-platform (emoji's op Windows 10 zijn lang niet zo mooi als op Mac / iOs imo).



Inmiddels is er ook een mobiele versie van het spel en heeft de desktop UI mooie animaties, geluidjes en (ik hoop) fijne gameplay met computertegenstanders die niet slecht spelen maar ook niet supergoed zijn. De AI is bijvoorbeeld niet alwetend (hoewel de computer natuurlijk altijd van iedereen de kaarten kent) maar moet het met puur zijn eigen kaarten doen, net als een echte speler.

Op dit moment staat mijn spel op plaats 1 van Google als je zoekt op 'online rikken' (wat overigens niet betekent dat ik superveel bezoekers heb hoor, normaal zo'n 80 per dag). En ik krijg regelmatig leuke mailtjes met bugs, suggesties of gewoon bedankjes van mensen die het tof vinden.

Mijn muziek op SoundCloud - Speel online rikken


  • spoonman
  • Registratie: Januari 2002
  • Laatst online: 30-03 09:28
Ik snap niet wat er gebeurt, maar het ziet er wel goed uit ;)
[b]2mb in "[Alg] Welke tools heb jij gemaakt? - deel IV"
Verder is het gewoon een static site dus host ik het in een S3 bucket met CloudFront ervoor bij Amazon Web Services.
Bekijk aws amplify eens, is ideaal voor dat soort appstjes. Appje aanmaken, github repo linken, klein build scriptmaken en klaar is kees (als je wil geef ik je mijn build script voor angular apps). Het doet eigenlijk exact hetzelfde als wat jij manueel doet, maar op een eenvoudigere manier. Ik heb de voorbije 2 jaar iets van een 60 cent betaald voor de 4 websites die daar op draaien ...

Azure heeft iets vergelijkbaar, eveneens quasi-gratis, en dat heet "azure static web apps".

Ik heb recent deze online gezet, omdat ik vond dat de wereld NOG een kleurcode calculator nodig had! :+
https://www.resistorcolors.com/

Layout moet nog wat getweaked worden, maar dat is niet mijn sterke kant :X

[Voor 12% gewijzigd door spoonman op 05-12-2022 08:59]

https://free-sudoku-puzzle.net - http://chordoracle.com - https://resistorcolors.com


  • IStealYourGun
  • Registratie: November 2003
  • Laatst online: 29-03 22:32

IStealYourGun

Доверяй, но проверяй

♥ Under Construction ♦ © 1985 - 2013 and counting. ♣ Born to be Root ★ In the end, we are all communists ♠ Please, don't feed me meat


  • Muna34
  • Registratie: December 2009
  • Laatst online: 14-03 08:39
ZeroXT schreef op woensdag 7 september 2022 @ 01:04:
Ik heb een standalone PHP validation library ontwikkeld en zou graag feedback daarover krijgen :)
Allereerst, mooie lib! De validators van Laminas en Symfony zijn trouwens ook los te gebruiken. Beide frameworks zijn loosly coupled. Over stijl zie ik dat je al een bepaalde richting hebt en dat is prima. Hieronder een kijkje bij de buren :) Altijd leuk om verschillende approaches naast elkaar te leggen.

Laravel:
https://laravel.com/docs/9.x/validation
https://laravel-livewire.com/docs/2.x/input-validation
https://github.com/kalfheim/sanitizer

Symfony:
https://symfony.com/doc/current/validation.html

Laminas/Zend2:
https://docs.laminas.dev/laminas-validator/
https://docs.laminas.dev/laminas-inputfilter/intro/

--

De feedback die ik je mee zou geven is voornamelijk subjectief.
  • Fluent interface - In dit geval vind ik dat dit weinig toegevoegde waarde heeft. Ik zou dit liever in de vorm van config willen geven. Zo hoef ik niets te weten over de interface en laat ik de validator dit intern regelen. Daarnaast kunnen de individuele validators config krijgen op een eenduidige manier. Dit is meer inlijn met hoe Zend/Laminas dit aanpakt (daarmee zal mijn mening bias zijn) :D Bijkomend voordeel is dat ik de config kan plaatsen waar ik wil en houdt daarmee de functionele code gescheiden van de config.

    Mijn punt is, ik weet op face value niet wat er achter de fluent interface gaande is. Marco Pivetta heeft hier een vrij leuke blog over geschreven om wat verdere verdieping op dit onderwerp te geven. En ironisch genoeg is Doctrine hier wel schuldig aan (Marco werkt aan Doctrine)

    code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    // Huidig
    $validator->field('programmer.email')->required()->email()->lengthMax(50);
    
    // Voorstel
    $validator = new Validator([
       'field' => 'programmer.email',
       'required' => true,
       'validators' => [
          RequiredValidator::class,
          EmailValidator::class => [
             'dnsCheck' => false
          ],
          LengthMaxValidator::class => [
             'length' => 50
          ]
       ]
    ]);
    
    // of alternatief
    $validator = new Validator(config('forms.validators.programmer.email'));
    
    $isValid = $validator->validate($data);
  • Als je kiest voor een config appoach kan een-of-meerdere validaties in een keer heel makkelijk worden. Dit voor jouw als ontwikkelaar maar ook voor implementatie als gebruiker. Ook hier kijk ik weer een beetje af bij implementatie van Laminas :9

    Verschil met de huidige implementatie is dat je een doelbewuste class hebt hiervoor. Zo kun je de classes wat cleaner houden. Single Responsibility principe.

    code:
    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
    
    // Huidig
    $validator = new Validator($data);
    $validator->field('department', 'color')->required(false)->isString()->lengthBetween(5, 20);
    $validator->field('programmer.email')->required()->email()->lengthMax(50);
    $isValid = $validator->passes();
    
    // Voorstel
    $validatorChain = new ValidatorChain([
       [
          'field' => 'department',
          'required' => false,
          'validators' => [
             IsStringValidator::class,
             LengthBetweenValidator::class => [
                'start' => 5,
                'end' => 20,
             ]
       ],
       [
          'field' => 'programmer.email',
          'required' => true,
          'validators' => [
             RequiredValidator::class,
             EmailValidator::class => [
                'dnsCheck' => false
             ],
             LengthMaxValidator::class => [
                'length' => 50
             ]
       ],
    ]);
    
    $isValid = $validatorChain->validate($data);
  • Input Filtering - Het concept van Input Filtering is iets wat ik sterk vond aan hoe Laminas hier mee omgaat. Deze filteren de input voor het de validator ingaat. Als voorbeeld: Waarde '1', gepost door checkbox, wordt 'true' bool door een InputFilter. Het zorgt ervoor dat alle validators erna compleet strongly typed kunnen zijn. Nu zijn al je validators al strongly typed, dus dat is verder heel netjes opgelost _/-\o_
  • Misschien glance ik eroverheen - een oplossing voor collection validation? Ik kan bijv. forms renderen aan de hand van een collection op mijn entity. Deze zou ik op een eenduidige manier willen validaten. Hiervoor kennen frameworks een collection validator die simpelweg de objecten als collectie validate en op deze manier de berichten kan terug geven. Een vaag voorbeeldje bijvoorbeeld:

    code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    // Je post: addresses[]
    $collectionValidator = new CollectionValidator([
       [
          'field' => 'street',
          'required' => true,
          'validators' => [
             IsStringValidator::class,
       ],
       [
          'field' => 'housenumber',
          'required' => true,
          'validators' => [
             IsIntValidator::class,
       ],
       // enz...
    ]);
    
    $isValid = $collectionValidator->validate($data);


    Het verschil tussen een collection validator en een validator chain is dat een validator chain uit verschillende velden bestaat die 1 voor 1 behandeld worden; een collection is een array van dezelfde velden die als 1 validator gezien worden.
--

Nogmaals. het is heel subjectief en heb een redelijke bias aan het jarenlang gebruik van Zend2 en Laminas overgehouden zelfs wanneer ik vrijwel niets meer met dit framework doe :+ De concepten van deze validators hebben destijds in de projecten waar ik aan werkte duidelijk voor een sterkere validatie gezorgd.

Daarmee, mocht ik ooit een standalone validator lib op gaan pakken boven een framework's eigen oplossing dan zou dit een totaal pakketje moeten worden voor me. Neemt niet weg dat wat je gemaakt hebt erg netjes is :D

[Voor 3% gewijzigd door Muna34 op 06-12-2022 15:10]


  • smeerbartje
  • Registratie: September 2006
  • Laatst online: 30-03 07:35
Hier een shameless plug voor een website die ik samen met een vriend heb gemaakt: https://www.playlist-exchange.com. Ik erger me namelijk blauw aan het feit dat iedereen spotify playlist links rondstuurt, terwijl ik (happy) gebruiker ben van apple music. Nu hebben we dus als hobby-bob-project deze site gemaakt. Je pleurt er ofwel een spotify ofwel een apple-music public playlist in en je krijgt automatisch de vice-versa variant.

Super handig en ik gebruik het zelf ook vaak. Ik hoor graag jullie reacties! Het is tevens mogelijk om playlists te importeren. Dus een spotify playlisy importeren in je apple-music account en andersom.

Features op de roadmap:
  • Party mode - voor op een feestje. Maak een lijst, deel QR code en iedereen kan nummers toevoegen, ongeacht de music streaming dienst die ze gebruiken
  • Shoot!!! laat maar weten!

[Voor 14% gewijzigd door smeerbartje op 06-12-2022 21:54]


  • dimmak
  • Registratie: December 2006
  • Laatst online: 27-03 08:29
smeerbartje schreef op dinsdag 6 december 2022 @ 21:19:
Hier een shameless plug voor een website die ik samen met een vriend heb gemaakt: https://www.playlist-exchange.com. Ik erger me namelijk blauw aan het feit dat iedereen spotify playlist links rondstuurt, terwijl ik (happy) gebruiker ben van apple music. Nu hebben we dus als hobby-bob-project deze site gemaakt. Je pleurt er ofwel een spotify ofwel een apple-music public playlist in en je krijgt automatisch de vice-versa variant.

Super handig en ik gebruik het zelf ook vaak. Ik hoor graag jullie reacties! Het is tevens mogelijk om playlists te importeren. Dus een spotify playlisy importeren in je apple-music account en andersom.

Features op de roadmap:
  • Party mode - voor op een feestje. Maak een lijst, deel QR code en iedereen kan nummers toevoegen, ongeacht de music streaming dienst die ze gebruiken
  • Shoot!!! laat maar weten!
Nu nog Tidal support erbij. :D
Pagina: 1 ... 49 50 51 Laatste

Let op:
Dit topic is alleen bedoeld om zelfgemaakte tools te showen en te bespreken. Net als in de rest van Programming is het hier dus ook niet toegestaan om 'even te vragen of iemand iets kan maken'. Dit is een forum over zelf programmeren, geen McDonalds afhaalbalie voor lappen code of software.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee