Ja die party mode zou heel fijn zijn, doodziek word ik er van dat iedereen altijd de muziek over staat te nemen op feestjes. Gewoon nummers toevoegen en klaar. Zou fijn zijn als dit er is voor Oud & Nieuwsmeerbartje 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!
Owner of DBIT Consultancy | DJ BassBrewer
We hebben een github project, maar deze is nog private. Iets met secrets e.s. mee-committenWebgnome schreef op woensdag 7 december 2022 @ 08:35:
@smeerbartje leuk project! Ik ben wel benieuwd naar de techniek hier van. Heb je ergens een github / repository waar we kunnen zien hoe het werkt? Of zou je daar uitleg over willen geven?
In de toekomst gaan we het wel opengooien verwacht ik., Wat betreft de tech:
- Vrij recht-toe-recht aan opzet: een backend (python), een BFF en een frontend container. Allemaal docker images dus
- Alles draait in een VM, in verschillende containers dus
- Door ansible ge-provisionned
- Postgres als backend
- En in geval van drukte gebruiken we een rabbitmq als resilliency model. Ofwel iemand gooit er een playlist in, dan serveren wij gelijk een HTTP200 naar de frontend en wordt de queue gevuld. Deze kan lekker op z'n eigen tempo a-sync het zaakje gaan "matchen" tussen de streaming services
All-in-all leuk project inderdaad en we zijn nog lang niet klaar! Vooral de party-mode verwacht ik veel van, want hoe vet is het als je op een feestje met zijn allen de muziek kunt fixen??
Beantwoordt dit je vraag een beetje?
Ja toch!!!!! We gaan ermee aan de slag. Ik zal af en toe 'n update geven hier.DennusB schreef op woensdag 7 december 2022 @ 08:46:
[...]
Ja die party mode zou heel fijn zijn, doodziek word ik er van dat iedereen altijd de muziek over staat te nemen op feestjes. Gewoon nummers toevoegen en klaar. Zou fijn zijn als dit er is voor Oud & Nieuwhahaha
Thanks, mocht je hulp nodig hebben qua ontwikkeling of hosting : Je mag altijd DM'ensmeerbartje schreef op woensdag 7 december 2022 @ 08:52:
[...]
Ja toch!!!!! We gaan ermee aan de slag. Ik zal af en toe 'n update geven hier.
Owner of DBIT Consultancy | DJ BassBrewer
Erg nice, vooral party mode zou een handige zijn!smeerbartje schreef op dinsdag 6 december 2022 @ 21:19:
- 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
Een jaar of 15 geleden iets vergelijkbaars gemaakt met MP3tjes voor op LAN parties. Men kon MP3tjes uploaden naar een folder (SMB, FTP, DC++), deze werden automatisch opgepikt + ID3Tag uitgelezen en toegevoegd aan de database.
Vervolgens kwam het liedje in de web interface naar voren waarna er gestemd kon worden (eedereen maar 1 keer natuurlijk). Hoe meer stemmen, hoe hoger jouw nummer schoof in de queue en des te eerder je het nummer hoorde.
Zoiets zou natuurlijk ook tof zijn bij party mode
De boel staat op Github en is geprogrammeerd in Python. De code is vast ter verbetering vatbaar maar het is mijn eerste experiment met html parsing in Python. Was wel een boel security by obscurity...
Mocht je willen kijken: https://github.com/jkoeter/nexperia-guest-wifi
En als ik dan toch bezig ben; andere eigen gemaakte libraries die ik zelf veelvuldig gebruik zijn IClock en ITimer (allebei .Net abstracties om datum / tijd en timer gerelateerde zaken beter unittestable te maken) en TextTableBuilder (een .Net no-nonsense, opinionated, ASCII-tabel bouwerdingesgeval). En mijn populairste project TwoFactorAuth en de minder populaire TwoFactorAuth.Net (beiden een 2FA TOTP library in PHP en .Net resp.)
[ Voor 34% gewijzigd door RobIII op 19-12-2022 02:40 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Ik keek ter lering en vermaak in je TwoFactorAuth code er viel me wat op:
1
| public const string Base32Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"; |
Waarom ontbreken 1, 8 en 9 daar?
=edit= Ah: Base32 alphabet, maximaal 32 letters in het alfabet dus

Zie ook: Wikipedia: Base32
RFC 4648 Base32 alphabet
The most widely used Base32 alphabet is defined in RFC 4648. It uses an alphabet of A–Z, followed by 2–7. The digits 0, 1 and 8 are skipped due to their similarity with the letters O, I and B (thus "2" has a decimal value of 26).
[ Voor 36% gewijzigd door sopsop op 19-12-2022 08:12 ]
Heb je niet een eco-mode op dat ding dat de hele wifi uitschakeld op een tijd schema. Dan kan je zelf ook rustig slapenkeavis schreef op zondag 18 december 2022 @ 21:59:
Het is al weer een tijdje geleden maar ik heb een tool gemaakt om het gast-netwerk van de KPN Nexperia box aan en uit te zetten. Ik gebruik dit in om met Cron op een Raspbery Pi iedere dag het netwerk op vaste tijden aan en uit te zetten. Ik heb alle devices van de kinderen op het gast-netwerk gezet; op die manier hebben ze overdag toegang en kunnen ze snachts rustig slapen ;-).
De boel staat op Github en is geprogrammeerd in Python. De code is vast ter verbetering vatbaar maar het is mijn eerste experiment met html parsing in Python. Was wel een boel security by obscurity...
Mocht je willen kijken: https://github.com/jkoeter/nexperia-guest-wifi
Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.
• hash_equals() bestaat sinds PHP5.6 dus fallback kan weg gezien je 5.6 minimum eis.RobIII schreef op maandag 19 december 2022 @ 02:33:En mijn populairste project TwoFactorAuth en de minder populaire TwoFactorAuth.Net (beiden een 2FA TOTP library in PHP en .Net resp.)
• minimum naar 7.0 verhogen is anno nu nog steeds behoorlijk conservatief, maar dan zou je ook tenminste altijd random_bytes() kunnen doen. En PHP5 moet echt een keer klaar zijn.
(Of wil je een PR?)
{signature}
Hmm, dat is denk ik nog een restant van toen we 5.5 (en zelfs 5.3 ofzo nog?) ondersteunden.Voutloos schreef op maandag 19 december 2022 @ 12:37:
• hash_equals() bestaat sinds PHP5.6 dus fallback kan weg gezien je 5.6 minimum eis.
Daar wordt over gesproken en aan gewerktVoutloos schreef op maandag 19 december 2022 @ 12:37:
• minimum naar 7.0 verhogen is anno nu nog steeds behoorlijk conservatief, maar dan zou je ook tenminste altijd random_bytes() kunnen doen. En PHP5 moet echt een keer klaar zijn.
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Voor zover ik weet niet; en helaas valt dan denk ik ook het halve huis uit. Tegenwoordig hangt alles aan het internet…Jogai schreef op maandag 19 december 2022 @ 08:38:
[...]
Heb je niet een eco-mode op dat ding dat de hele wifi uitschakeld op een tijd schema. Dan kan je zelf ook rustig slapen
Een dashboard voor je thuis servertje met allerlei "widgets".
Veel verbeteringen doorgevoerd en enkele afhankelijkheden weggewerkt. Ook een nieuwe Sonos widget toegevoegd.
[YouTube: Chell PHP Portal Version 3 0 0]
Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.
Verwijderd
net een test gedaan met mijn parser en het werkt:
1
2
3
| {{R3M}} {{$method[server.url('...') + '.test']['test'] = terminal.readline('Method: ')}} {{dd('{{$this}}')}} |
[ Voor 33% gewijzigd door Verwijderd op 29-01-2023 21:34 ]
Tellertje: een heel simpele spreadsheetje (ook voor digibeten) om snel wat uit te rekenen:
https://www.mediafire.com...dx42f5/Tellertje.exe/file
Hoewel ik goed met Excel overweg kan, werk ik hier toch sneller mee om wat bedragen op te tellen.
Thexter: het zoveelste programma om tekst naar hexadecimaal om te zetten en omgekeerd.
https://www.mediafire.com...1q26kuy4/Thexter.exe/file
Wat Timesearch kan en Google standaard niet :
- op minuten zoeken
- gemakkelijk recente informatie zoeken in de afgelopen 10 minuten, 3 uur, 2 jaar. enz.
- favoriete zoekopdrachten en zoekinstellingen opslaan.
https://www.mediafire.com...wvqos/Timesearch.zip/file
Heel vaak gebruik ik het niet, maar soms is het handig. Misschien kan iemand anders er nog iets mooiers van maken.
IP checker.
Afgelopen week gebouwd. Ik kwam er achter dat soms de VPN op mijn router gedisabled werd en dat mijn echte IP ondanks de killswitch werd gebruikt. Dus een app gemaakt die om de paar seconden (instelbaar) mijn IP adres bepaalt en een notificatie toont als mijn echte IP wordt gebruikt, met een mooi status icoontje in de taakbalk en hij disabled de NIC die je vervolgens ook weer kan aanzetten zodra de VPN weer werkt.
Movie manager
Tooltje om alle films en series op mijn NAS te beheren, scant naar nieuwe bestanden en haalt de meta informatie op met afbeeldingen (via TMDb). Met filter opties op naam/rating/acteur/jaar/etc, per film/serie kan je notities vastleggen, gekeken ja/nee, eigen rating, etc. met een play en verwijder optie, daarnaast een knop die de ondertiteling download als die er niet is. (hij kijkt ook in de file zelf voor embedded ondertitelingen) Uiteraard moet je nog wel zelf controleren of het in sync is. Waarschijnlijk is er genoeg software beschikbaar die hetzelfde doet, maar ik verveelde me.
Veel gebruikers hier op het forum hebben allerlei logica in domotica oplossingen geschreven die ze vervolgens doorsturen naar de HeishaMon. Een warm huis en warm sanitair warm water is alleen wel iets dat je graag altijd wil laten werken. Dus allerlei afhankelijkheden van externe apparatuur en software is niet perse wenselijk. Het idee was dus om zoveel als kan de logica op de HeishaMon zelf te kunnen plaatsen.
ESPEasy is een bekend voorbeeld van een microcontroller OS met een eigen rules library (die overigens ook door Tasmota wordt gebruikt). Nadeel daarvan is (en dat zeggen de ontwikkelaars zelf ook) dat het geen library is die netjes is geprogrammeerd via een lexer en een parser e.d. en ook niet de daarvoor bekende ICT theorieën volgt. Hun library is daardoor niet echt een library maar erg vervlochten met de ESPEasy code, maar bovenal erg traag en geheugenintensief.
Ik had het vermoedde dat beter te kunnen
Ik heb dus een rules library gemaakt die al deze nadelen weer te pareren, super snel is en volledig modulair:A rule interpreter can be pretty easily built using a lexer and a parser with techniques like Shunting Yard, a Recursive Descent Parser, an Abstract syntax tree, Precedence climbing etc.
The downside of all these algoritms are that they - in their common implementation - require techniques not (easily) available on a microcontroller such as the ESP8266 (e.g., recursion, memory alignment), they either require too much memory, too much stack, or are too slow to parse / execute on a microcontroller. This library solves these issues by mixing the core aspects of the theories named above in a custom implementation that does run quickly on microcontollers, but is also very fast on regular enviroments.
https://github.com/CurlyMoo/rules
Een rules library die ondertussen succesvol is geïntegreerd in de HeishaMon, waardoor je nu één standalone apparaat hebt dat op basis van de parameters die de WP naar de HeishaMon stuurt beslissingen kan laten nemen.
Nog even de features uit de README:
Alhoewel ik veel weet van de theorieën van programmeertalen (dus lexer en parsers e.d.), weet ik natuurlijk niet alles. Dus ik ben ook wel benieuwd of er tweakers zijn hier die kunnen beoordelen in hoeverre de logica om tot deze library te komen enigszins vernieuwend is. Niet dat ik dat verwacht, maar je weet natuurlijk nooit. Zo niet, dan ben ik ook wel erg nieuwsgierig naar de theorieën die ik hier geïmplementeerd heb onwetend dat ze al bestonden.When properly configured the 2nd heap can give you 16KB mempool which can be fully used as dedicated memory for the rule parser. This leaves the normal memory for the core program. Because the 2nd heap is used as a mempool it also prevents memory fragmentation.
- No classic, but only tail recursion
- Mempool usage; minimal memory footprint and minimal fragmentation
- Unlimited number of if / else nesting
- Functions
- Operators (with respect of precedence and associativity)
- Variables
- Unlimited nesting of variables, functions, operators and parenthesis
- Unlimited calls to other code blocks
- Modular functions and operators
- Modular callbacks for e.g. implementing global variables
- Bytecode parsing
- ESP8266 and ESP32 ready
- ESP8266 runs in the 2nd heap (fast and safe mode)
Toekomstig idee is om deze library verder uit te breiden met allerlei functies om bijv. MQTT berichten te ontvangen en/of versturen, sensoren uit te lezen, mails te kunnen sturen etc. Een beetje als ESPEasy, maar dat 100% gebaseerd op deze rules library. Je configureert dan alles via de rules syntax en niet via een GUI. Daarmee wordt het alsof je zelf je firmware programmeert voor de ESP8266 zonder nog gebruik te hoeven maken van een IDE.
Sinds de 2 dagen regel reageer ik hier niet meer
Ik heb een ChatGPT Plus abbo, en ben met de hulp van ChatGPT aan de slag gegaan. Het heeft me uitgelegd hoe Python te installeren, het heeft stukken code geschreven, het heeft de debugging met mij gedaan (werkt super... "Ik krijg error: <...> " -> ChatGPT: "Je doet dit of dat fout, of de API kan zijn veranderd blah blah bla. Probeer dit-en-dan-dat, laat me weten als het niet werkt" -> "Werkt niet" -> "Dan gaan we de library opnieuw installeren. Voer volgende commandline uit <pip etc etc> en daarna <pip etc etc>").
Enfin, de code werkt als volgt.
Vereisten: OpenAI API-key, en een aangemaakte Telegram-bot (Google).
De code reageert zodra er een telegrambericht is ontvangen. Als dit in een private chat is, reageert hij sowieso. In een groepschat reageert hij alleen indien persoonlijk aangeschreven.
Als je een OpenAI API-call doet, weet hij uiteraard niets van je vorige calls. Oftewel: om de kracht van 'ChatGPT' echt te gebruiken, zul je elke keer de volledige chat mee moeten sturen. De code houdt voor elke gebruiker apart de chat bij, en maximeert de totale vraag+antwoord-geschiedenis om te voorkomen dat je boven de max size van OpenAI uitkomt (max = 4096 tokens in een request, vraag + antwoord tesamen; 4096 tokens = 6000 woorden = 12-15 A4tjes).
Problemen in de code: Hij houdt per gebruiker de chatgeschiedenis bij, en dumpt dit nooit. Als je 1.000 verschillende Telegram gebruikers met je bot laat praten, houdt hij al die chatgeschiedenissen in variabelen in geheugen bij. Kortom, geheugen loopt vol, en ergens ga je vast een keer tegen een limiet van aantal variabelen aanlopen. En python-crash / PC uit = geschiedenis weg. Oplossing? Wegschrijven naar schijf oid, indien >15 minuten inactief? Suggesties en het hoe-dan welkom! Zal het ook eens aan mijn nieuwe sidekick vragen

ACHTERGROND: Ik ben huisarts, en lever onder andere zorg voor een hoop Ukraïners. Ze komen vaak zonder tolk op het spreekuur, waarna het een beetje houtje-touwtje werk is met Google Translate. Met deze chatbot kunnen ze in elke taal coverseren, en hoeven ze alleen maar te eindigen met bijvoorbeeld "Thank you - now make a complete and precize summary of my complaint in Dutch". Droombeeld? Dit geïntegreerd in een mooi jasje, waarna ze een commando in een private chat geven aan de bot, of op een simpele knop drukken, waarna de samenvatting automatisch gevraagd wordt als "closing question" naar OpenAI, en naar mij gemaild wordt!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
| #************************************************** #Created by D. Schaap - march 2023 #Feel free to copy, change, etcetera - but keep this reference out of respect! #************************************************** import telegram import openai import signal import sys from telegram.ext import Updater, CommandHandler, MessageHandler, Filters #************************************************** #Settings #************************************************** #chat_wordlimit is the limit in words that the history of questions + responses can have #response_tokenlimit is the limit in tokensfor the respons of the API #If the cat_wordlimit is reached, the oldest question + answer-pair is removed, until we're onder this limit again. #1500 words equal about 2048 tokens. As of march 2023, this will cost anbout $0,0005 ($0,0002 per 1000 tokens). #Beware: the base prompt is not counted in this word limit. Furthermore, the total request can not take up more than 4096 tokens. #So: if you would sent a prompt to the API of 2500 words (about 3400 tokens), and allow the API to respond with max 1024 tokens, you would exceed the API-limit. #************************************************** chat_wordlimit = 1500 responsetokenlimit = 1024 openai.api_key = "XXXXXXXXXXXXXXX" telegram_token = "12345678901:abcdefghijklmnopqrstuvwxyz" bot_name = '@DokterDavid_bot' # Define a function to handle Telegram messages def handle_message(update, context): # Get user-specific variables user_data = context.user_data if 'Quest_answ' not in user_data: user_data['Quest_answ'] = [] if 'New_line' not in user_data: user_data['New_line'] = [] #First set the base message, and start "Chat" with the base message base_message = [{"role": "system", "content": "You are an AI-assisted doctor. You will ask many details, and answer as compact as possible."}] chat = base_message chat_id = update.message.chat_id chattype = update.message.chat.type print(f"Telegram type: {chattype}") if update.message.chat.type == 'private': # Handle private messages new_telegram = update.message.text print(f"Telegram received from {chat_id}: {new_telegram}") #Create / add the new Telegram to the user-specific Quest_answ variable New_line = [{"role": "user", "content": new_telegram}] user_data['Quest_answ'] += New_line #Now make sure we're not creating too large prompts toward OpenAI (either because it's expensive, or because of the openAI limit) while True: word_count = 0 for item in user_data['Quest_answ']: word_count += len(item['content'].split()) print(f"Quest_answ has {word_count} words.") if word_count <= chat_wordlimit: break del user_data['Quest_answ'][0:2] print("Removed the oldest question and answer, to make room for more") #Construct the "Messages" to add the user-specific Quest_answ to it chat = chat + user_data['Quest_answ'] #Tell Telegram we're typing something back context.bot.send_chat_action(chat_id=chat_id, action=telegram.ChatAction.TYPING) #Send the newly constructed "Chat" to OpenAI, and get the response response = generate_response(chat) #Send the answer to Telegram, and append it to the user-specific Quest_answ construct context.bot.send_message(chat_id=chat_id, text=response) New_line = [{"role": "assistant", "content": response}] user_data['Quest_answ'] += New_line elif bot_name in update.message.text: # Handle messages in a group, supergroup etcetera, where the bot is referenced specifically # Get the name of the person asking person_asking = update.message.from_user.username new_telegram = update.message.text.replace(bot_name, '').strip() print(f"Telegram in group received from {person_asking}: {new_telegram}") #Create / add the new Telegram to the user-specific Quest_answ variable New_line = [{"role": "user", "content": new_telegram}] user_data['Quest_answ'] += New_line #Now make sure we're not creating too large prompts toward OpenAI (either because it's expensive, or because of the openAI limit) while True: word_count = 0 for item in user_data['Quest_answ']: word_count += len(item['content'].split()) print(f"Quest_answ has {word_count} words.") if word_count <= chat_wordlimit: break del user_data['Quest_answ'][0:2] print("Removed the oldest question and answer, to make room for more") #Construct the "Messages" to add the user-specific Quest_answ to it chat = chat + user_data['Quest_answ'] #Tell Telegram we're typing something back context.bot.send_chat_action(chat_id=chat_id, action=telegram.ChatAction.TYPING) #Send the newly constructed "Chat" to OpenAI, and get the response response = generate_response(chat) New_line = [{"role": "assistant", "content": response}] user_data['Quest_answ'] += New_line # Add the name of the person asking to the response and send the answer to Telegram response = f"@{person_asking} {response}" context.bot.send_message(chat_id=chat_id, text=response) # Define a function to generate a response using ChatGPT def generate_response(chat): response = openai.ChatCompletion.create( model="gpt-3.5-turbo", temperature=0.5, max_tokens=responsetokenlimit, n=1, stop=None, frequency_penalty=0, presence_penalty=0, messages=chat ) if hasattr(response.choices[0], "text"): response_text = response.choices[0].text.strip() elif hasattr(response.choices[0], "message") and hasattr(response.choices[0].message, "content"): response_text = response.choices[0].message.content.strip() else: response_text = "" return response_text # Define a signal handler to gracefully exit the program def handle_exit(signal_number, frame): print("Exiting...") sys.exit(0) # Register the signal handler with SIGINT (Ctrl-C) signal.signal(signal.SIGINT, handle_exit) # Initialize the Telegram bot updater = Updater(token=telegram_token, use_context=True) dispatcher = updater.dispatcher # Register the message handler with the bot dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, handle_message)) # Start the Telegram bot and print a status message updater.start_polling() print("Initialized") # Loop indefinitely until the program is interrupted with SIGINT or "x" while True: user_input = input() if user_input == "x": break else: print("Waiting for Telegram-message") # Stop the Telegram bot and print a status message updater.stop() print("Exited") |
[ Voor 0% gewijzigd door RobIII op 04-03-2023 01:25 . Reden: Python syntax highlighting toegevoegd ]
Vooropgesteld: heel tof en gaaf! Creatief idee ook! Maar... OEF... ik weet niet hoe dit juridisch zit enzo en IANAL, maar... mensen hun hele medische mikmak aan een bot laten vertellen door een derde partij heen (Telegram) om het vervolgens naar een ándere derde partij te sluizen (OpenAI) en daarna per email door god-knows-hoeveel mailservers heen te slepen (in, waarschijnlijk, plain text)...icerunner schreef op vrijdag 3 maart 2023 @ 23:31:
ACHTERGROND: Ik ben huisarts, [...] Met deze chatbot kunnen ze in elke taal coverseren [...] Droombeeld? [...] commando in een private chat geven aan de bot, of op een simpele knop drukken, waarna de samenvatting automatisch gevraagd wordt als "closing question" naar OpenAI, en naar mij gemaild wordt!
Die gegevens komen dus allemaal bij OpenAI terecht - ik neem aan dat je daar geen afspraken mee hebt? Gaan die gesprekken überhaupt over een beveiligde verbinding? Hoe zeker ben je - en is dat geborgd - dat Telegram (of OpenAI of de email provider of...) niet 'meeleest'? Hoe is de opslag van die gegevens geregeld (bij OpenAI, maar ook bij jou/de ontvanger van die mail(s))? En zo kan ik nog wel even doorgaan... Zéker bij dit soort zwaar gevoelige gegevens moet daar echt wel HEUL erg goed naar gekeken worden en - again, IANAL - ik denk persoonlijk dat je je op héél glad ijs begeven hebt. Niks verder over het idee en de uitvoering - tof dat je mensen wil helpen enzo natuurlijk. Maar ik zou hier toch even iemand die hier (juridisch) verstand van heeft naar laten kijken. Op technisch vlak: ik geloof meteen dat je code (of eigenlijk: ChatGPT's code
Edit: En dan is er natuurlijk ook nog een stuk aansprakelijkheid; wat als er straks door (subtiele) vertalings"foutjes" een andere behandeling gekozen wordt dan wanneer die "foutjes" niet gemaakt zouden zijn of als er op een andere manier vervelende, of zelfs gevaarlijke of erger, gevolgen ontstaan door 't gebruik van ChatGPT?
En wat die 'copyright header' betreft: gebruik beter gewoon een gangbare license als MIT, Apache, LGPL, etc.
[ Voor 36% gewijzigd door RobIII op 04-03-2023 10:08 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Ik heb thuis een server draaien en daar heb ik o.a. een rabbitmq server en nog vele andere andere dingen draaien. De monitor service die ik heb gemaakt draait daar ook. Op alle clients heb ik een agent geinstalleerd. De service, die bestuurd wordt door een Blazor webpage stuurt een broadcast naar rabbitmq wie er allemaal online is en zo kan ik ook opvragen welke games actief zijn. Zo kan ik ook een bericht sturen en zelfs de activiteit killen om het e.e.a wat meer te dwingen. Het is nu alleen maar a.d.h.v filters bekende games opvragen en eventueel een proceslijst die ik kan beïnvloeden.
Todo is meerdere agents maken die ook op de telefoons zitten en zo ook daar de controle te krijgen. De architectuur leent zich er wel voor. Ik kan nu i.i.g vanaf mijn telefoon of whatever de boel 'managen'
Lekker op de bank
Dit, het is niet iets dat je gewoon even met een paar diensten aan elkaar wil klikken (terwijl dat technisch gezien dus gewoon kan )RobIII schreef op zaterdag 4 maart 2023 @ 01:22:
[...]
Vooropgesteld: heel tof en gaaf! Creatief idee ook! Maar... OEF... ik weet niet hoe dit juridisch zit enzo en IANAL, maar... mensen hun hele medische mikmak aan een bot laten vertellen door een derde partij heen (Telegram) om het vervolgens naar een ándere derde partij te sluizen (OpenAI) en daarna per email door god-knows-hoeveel mailservers heen te slepen (in, waarschijnlijk, plain text)...
Die gegevens komen dus allemaal bij OpenAI terecht - ik neem aan dat je daar geen afspraken mee hebt? Gaan die gesprekken überhaupt over een beveiligde verbinding? Hoe zeker ben je - en is dat geborgd - dat Telegram (of OpenAI of de email provider of...) niet 'meeleest'? Hoe is de opslag van die gegevens geregeld (bij OpenAI, maar ook bij jou/de ontvanger van die mail(s))? En zo kan ik nog wel even doorgaan... Zéker bij dit soort zwaar gevoelige gegevens moet daar echt wel HEUL erg goed naar gekeken worden en - again, IANAL - ik denk persoonlijk dat je je op héél glad ijs begeven hebt. Niks verder over het idee en de uitvoering - tof dat je mensen wil helpen enzo natuurlijk. Maar ik zou hier toch even iemand die hier (juridisch) verstand van heeft naar laten kijken. Op technisch vlak: ik geloof meteen dat je code (of eigenlijk: ChatGPT's code) functioneert, maar ook hier: als je er geen/weinig kaas van hebt gegeten zoals je zelf aangeeft dan neem je wel een behoorlijk risico. Wat nu als straks, vanwege een bug ofzo, heel de wereld met zo'n chat kan meelezen (ik verzin maar wat)? Ja, dit is allemaal een beetje doemdenken enzo, maar het is natuurlijk wel supergevoelige (medische notabene) informatie waarmee je werkt.
En wat die 'copyright header' betreft: gebruik beter gewoon een gangbare license als MIT, Apache, LGPL, etc.
Ik begin mij nu wel een beetje zorgen te maken over de wildgroei van dit soort 'experimentjes'die misschien zou kunnen gaan ontstaan
Ik ben gepositioneerd in Leusden, en de zorg voor de Ukraïners wordt deels gesupport door AFAS. Als ik dit redelijk functioneel krijg, heb ik een goed argument om hen te vragen het fatsoenlijker in elkaar te zetten. Zij kunnen op 'enterprise level ' bij OpenAI wel afspraken maken over datagebruik, die ik niet kan maken (zie OpenAI - Data Usage Policies).
OpenAI is nog NIET geschikt voor echt medisch gebruik in NL / Europa: Ze hebben alleen datacenters in de US. Echter, ze zijn al wel aan het timmeren aan dit soort eisen. Sinds 1 maart hebben ze een opt-in ipv een opt-out wat betreft gebruik van je data voor trainen van hun model. Verder houden ze standaard nog wel 30 dagen aan geschiedenis voor misbruik bij - maar kun je als enterprise-level klant die ook laten uitschakelen. In de US bieden ze ook al, op verzoek, HIPAA-compliance aan. Microsoft biedt voor Azure al wel aan dat je data binnen de EU blijft - goede kans dat ze dit voor OpenAI ook gaan bieden.
Wat medisch wel mogelijk is: communiceren mag, over onbeveiligde platforms, zolang er geen tot de persoon herleidbare data gebruikt wordt. Dit is fishy / met risico, maar als je bijvoorbeeld 1 algemene (niet persoonsgebonden) Telegram-account aanhoudt, welke op locatie beschikbaar is voor uitvragen van een klacht, zonder persoonsgegevens er aan te binden, dan zit je al op een ander vlak.
Maar meest belangrijke hinderpaal wellicht op dit moment: ChatGPT weet niet wanneer het zijn mond moet houden. Hoe hard je hem ook instrueert, hij blijft maar met adviezen komen, op een spastische manier, zodra het over medische zaken gaat :-) Hij wilt niet luisteren naar dingen als "Je houdt je mond, je vraagt alleen zaken uit en geeft samenvattingen. Geef NOOIT advies" (ja, al vele prompts geprobeerd... Veiligheidsdingetje bij OpenAI)
De bot gebruik ik op dit moment voor collega's om te tonen hoe ver eea al is. 'Wij dokters' voelen ons altijd onmisbaar - fysiek geheid nog wel een poos, maar als je kijkt naar het digitale uitdiepen van een vraag komt ChatGPT dus al best een eind.
De prompt is aan te passen naar hartelust, dus een prompt "You're an accountant with a niche expertise in medical practices. You are particulary focussed on general practitioners." zorgt er voor dat je met een bot eindigt die diverse vragen goed kan beantwoorden zoals "Wat verdient een waarnemer gemiddeld", "Hoe werkt het pensioenfonds".
Zou best kunnen zijn dat je verkeerde medische info krijgt aangereikt door ChatGPT in de vertaling.
Het is in ieder geval bekend dat het ding niet foutloos is (zelf al gezien) en het noodzakelijk is om te blijven controleren.
Wie du mir, so ich dir.
Sorry, kan het inderdaad niet laten zien, excuses.
[ Voor 87% gewijzigd door Daantje20 op 13-03-2023 13:32 ]
Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.
Een yaml bestand ziet er bijvoorbeeld zo uit:
1
2
3
4
5
6
7
| test: my-command: cmd: "echo Hello! My name is: $name. My favourite fruit is: $fruit" echo: false args: - name - fruit: apple |
Mocht iemand het willen proberen, ckit is te installeren met
1
2
| pip install ckit ckit init --download-global-defaults |
Voor meer informatie, zie GitHub of de documentatie.
Staat nog in de kinderschoenen dus elke vorm van feedback is welkom!
Interessant project! Binnen bash heb je natuurlijk al bash_completion tot je beschikking, dat werkt meestal best heel goed, maar werkt heel efficiënt als je al ongeveer weet wat je wilt doen.flo12392 schreef op dinsdag 28 maart 2023 @ 09:26:
Afgelopen tijd gewerkt aan een toolltje dat een gebruiker in staat stelt zelf een User Interface te maken voor zijn/haar meest gebruikte commands d.m.v. yaml files:
[center]
Ik heb het even geprobeerd, nog niet heel lang. Het volgende valt me op:
- in de commando history komt alleen ckit te staan. Hierbij verlies je dus belangrijke informatie van wat je gedaan hebt
- ervan uitgaande dat uitgebreide configuratie aanwezig is, dan zou ik het een plus vinden als er per commando ook een soort help bericht erbij gezet kan worden. Dit zou met name kunnen helpen voor beginners of voor als je de betreffende commando niet zo kent
- een beetje ambitieus, maar mooi zou zijn als de tool een soort autoconfiguratie mogelijkheid heeft. De informatie hiervan zou kunnen komen van de hiervoor genoemde bash_completion functie, de man pagina's of de help functie van het betreffende commando zelf.
- al genoemd, maar de history wordt niet goed bijgehouden. Wellicht is dit op te lossen met een soort wrapper functie. Hoe precies dit zou moeten werken weet ik ook niet zo. Wel weet ik dat fzf dit bijvoorbeeld ook doet.
[ Voor 0% gewijzigd door mcmd op 28-03-2023 22:13 . Reden: correctie op formulering ]
Bedankt dat je de tijd hebt genomen om het uit te proberen en je feedback te delen!mcmd schreef op dinsdag 28 maart 2023 @ 22:12:
[...]
Interessant project! Binnen bash heb je natuurlijk al bash_completion tot je beschikking, dat werkt meestal best heel goed, maar werkt heel efficiënt als je al ongeveer weet wat je wilt doen.
Ik heb het even geprobeerd, nog niet heel lang. Het volgende valt me op:Leuk om dit te zien!
- in de commando history komt alleen ckit te staan. Hierbij verlies je dus belangrijke informatie van wat je gedaan hebt
- ervan uitgaande dat uitgebreide configuratie aanwezig is, dan zou ik het een plus vinden als er per commando ook een soort help bericht erbij gezet kan worden. Dit zou met name kunnen helpen voor beginners of voor als je de betreffende commando niet zo kent
- een beetje ambitieus, maar mooi zou zijn als de tool een soort autoconfiguratie mogelijkheid heeft. De informatie hiervan zou kunnen komen van de hiervoor genoemde bash_completion functie, de man pagina's of de help functie van het betreffende commando zelf.
- al genoemd, maar de history wordt niet goed bijgehouden. Wellicht is dit op te lossen met een soort wrapper functie. Hoe precies dit zou moeten werken weet ik ook niet zo. Wel weet ik dat fzf dit bijvoorbeeld ook doet.
- Ik snap de tekortkoming van het niet opslaan van de uitgevoerde commando's in de geschiedenis, Ik zal eens moeten zien of ik de commando's aan de shell historie toe kan voegen. Ik gebruik de module `subprocess` om het commando te draaien, die doet dat standaard in ieder geval niet. Ik vermoed dat ik dit buiten deze module om moet doen of het commando aan moet passen, zie bijvoorbeeld hier. Nadeel daarvan is weer dat dit afhankelijk is van welke shell men gebruikt..
- Een help bericht of omschrijving lijkt me inderdaad een hele handige feature om toe te voegen! Ik zal hier gauw mee aan de slag gaan. Misschien kan ik als de gebruiker 'h' toetst de omschrijving en de achterliggende configuratie laten zien.
Heb voor beide punten een issue gemaakt op GitHub.
Uiteindelijk gaat dit natuurlijk op voor de meeste alternatieven. Het werken met patiënten welk de taal niet machtig zijn, blijft een ernstige beperking. Of er nu een familie lid bij aanwezig is welk wel het Nederlands spreekt, je Google translate gebruikt, DeepL, etc. Het is en blijft suboptimaal. Ook mijn ervaringen met de tolkentelefoon zijn zeer matig. Mogelijk eigenlijk nog wel het slechtst van allemaal.eheijnen schreef op zaterdag 4 maart 2023 @ 10:22:
Naast al het bovenstaande is het ook nog eens zo dat ChatGPT niet gegarandeerd 100% juiste informatie levert. Dus het ding kan het wel voor jou naar Nederlands vertalen maar aangezien jezelf geen Oekraïens spreekt kun je niet controleren of de vertaling ook juist is zelfs een andere medische interpretatie geeft.
Zou best kunnen zijn dat je verkeerde medische info krijgt aangereikt door ChatGPT in de vertaling.
Het is in ieder geval bekend dat het ding niet foutloos is (zelf al gezien) en het noodzakelijk is om te blijven controleren.
Ik denk persoonlijk dan ook niet dat dit juridisch echt een groot probleem zal vormen. Uiteindelijk is dit een stukje naar eer en geweten gehandeld te hebben.
Privacy technisch gezien is dit natuurlijk een draak van een systeem, zoals @RobIII dan ook terecht aangeeft.
:fill(white):strip_exif()/f/image/t9GcxdAoxdkC6Vn8dIX1nkbk.png?f=user_large)
Hey iedereen!
~6 jaar geleden ben ik afgestudeerd met het schrijven van die ai voor onze game Basher Beatdown. Destijds heb de GOAP (Goal Oriented Action Planner) opensource online gezet en die heeft door de jaren heen ruim 200 sterren verzameld.
Recentelijk ben ik weer begonnen met games maken en kwam ik in een situatie waar ik graag wederom GOAP wil gebruiken voor de AI. Vanzelfsprekend vond ik de versie van 6 jaar geleden niet meer voldoende, en ik ben dus al een aantal maanden bezig met een complete rebuild from scratch.
Vorige week heb ik versie 2.0.0 online gezet, en obv feedback die ik kreeg van gebruikers zit ik onderhand op versie 2.0.6.
Features:
- Multithreaded (Unity Job)
- GOAP visualisatie editor window
- Setup met config of code
- Meerdere example scenes
- De basis is getest met unit tests
- Uitgebreide documentatie dmv GitBook
Linkjes:
GitHub: https://github.com/crashkonijn/GOAP
Docs: https://goap.crashkonijn.com
Discord: https://discord.gg/dCPnHaYNrm
![]() | ![]() | ![]() |
![]() | ![]() |
Hierdoor heb ik de gegevens in Home Assistant (energie-dashboard) én kan ik de data ook op andere manieren gebruiken zonder dat die monitoring kapot gaat of ik te veel aan de HA-config hoef te prutsen.
Het draait bij mij in een Docker-container op een Raspberry Pi, maar zou ook prima "los" moeten werken, zo lang er Python is (niet getest op andere platformen dan Linux).
https://github.com/MartijnVdS/pv2mqtt
Vervolgens heb ik met Three.js en JavaScript er een browsergame / virtueele tour van gemaakt.
Je kunt door het gebouw en door Groningen heen lopen en de zichtbaarheid van sommige delen veranderen.
Het is niet helemaal accuraat omdat dat gewoon teveel tijd zou kosten en ik heb dan ook de echte bouwtekeningen nodig maar ik vond alsnog wel een tof projectje.
Ben benieuwd wat jullie ervan vinden.
Live versie: https://sam-3d.nl/webgames.html
Meer info: https://sam-3d.nl/recent.html#forumArticle
Voor de rest leuk gedaan, maar heel gemakkelijk om uit de map te vallen.

Tof projectje, wil zelf ook nog een keer aan de slag gaan met Three.js.
[ Voor 72% gewijzigd door D4NG3R op 09-05-2023 16:45 ]
Komt d'r in, dan kö-j d’r oet kieken
Ik heb vaak het idee dat we in NL het kleine beetje 'natuur' dat we nog hebben niet genoeg waarderen. Maar mensen die veel buiten wandelen lijken dat in elk geval meer te doen dan de mensen die dat niet doen. Dus heb ik gedaan wat elke mobiele PO zou doen: ik heb een appje gemaakt met als doel mensen het bos of veld in te krijgen.
Ik ben geen dev en had ook nog nooit in SwiftUI gewerkt. Wel wat eerdere projecten in PHP en javascript. Het resultaat is alleen beschikbaar op iPhone, en nog wekelijks in ontwikkeling. Maar toch al wel enigszins bruikbaar. Hier kan je m'n appje downloaden in de Apple App Store.
De app is in SwiftUI geschreven. Registratie en authenticatie doe ik via Firebase. Er draait ook een kleine database op Firestore die o.a. route beoordelingen bewaard.
Wat ik al weet:
- Performance van de map is slecht, vooral als je uitzoomt
- Sommige stukken NL hebben nog erg weinig routes
- Iets van gamification om te prikkelen om ook daadwerkelijk te wandelen zou mijn missie ondersteunen
- Routes kunnen foto's gebruiken om meer tot de verbeelding te spreken
Merk wel dat gratis blijven moeilijker wordt. De eu99 Apple Dev Fee vind ik niet zo erg, maar het dataverbruik van de app groeit gestaag. Stel dat ik ook foto's van routes wil kunnen tonen... Dan wordt het al snel erg kostbaar om de boel te draaien.
Ik vind het principe heel goed. Eigenlijk raar dat er geen database is waar alle rondwandelingen van bv staatsbosbeheer, natuurmonumenten en andere organisaties in staan... nu is het nogal versnipperd.murphsy schreef op woensdag 10 mei 2023 @ 15:02:
Ook maar eens mijn avonden-en-weekenden projectje tonen hier: de Paaltjesroutes app.
Ik heb vaak het idee dat we in NL het kleine beetje 'natuur' dat we nog hebben niet genoeg waarderen. Maar mensen die veel buiten wandelen lijken dat in elk geval meer te doen dan de mensen die dat niet doen. Dus heb ik gedaan wat elke mobiele PO zou doen: ik heb een appje gemaakt met als doel mensen het bos of veld in te krijgen.
Ik ben geen dev en had ook nog nooit in SwiftUI gewerkt. Wel wat eerdere projecten in PHP en javascript. Het resultaat is alleen beschikbaar op iPhone, en nog wekelijks in ontwikkeling. Maar toch al wel enigszins bruikbaar. Hier kan je m'n appje downloaden in de Apple App Store.
De app is in SwiftUI geschreven. Registratie en authenticatie doe ik via Firebase. Er draait ook een kleine database op Firestore die o.a. route beoordelingen bewaard.
Wat ik al weet:Feedback welkom!
- Performance van de map is slecht, vooral als je uitzoomt
- Sommige stukken NL hebben nog erg weinig routes
- Iets van gamification om te prikkelen om ook daadwerkelijk te wandelen zou mijn missie ondersteunen
- Routes kunnen foto's gebruiken om meer tot de verbeelding te spreken
Merk wel dat gratis blijven moeilijker wordt. De eu99 Apple Dev Fee vind ik niet zo erg, maar het dataverbruik van de app groeit gestaag. Stel dat ik ook foto's van routes wil kunnen tonen... Dan wordt het al snel erg kostbaar om de boel te draaien.
Helaas geen feedback: ik heb geen iPhone en ik kan de app ook niet installeren op mijn Mac (met veel iPhone apps kan dat tegenwoordig wel).
Nu nog multiplayer toevoegen, iedereen een paint-ball gun in de hand, en alles kan helemaal onder ge-splattered worden.sambcg schreef op dinsdag 9 mei 2023 @ 15:17:
Om mijn 3D portfolio wat op te peppen heb ik het Forum gebouw in Groningen nagemaakt in Blender.
Vervolgens heb ik met Three.js en JavaScript er een browsergame / virtueele tour van gemaakt.
Je kunt door het gebouw en door Groningen heen lopen en de zichtbaarheid van sommige delen veranderen.
Het is niet helemaal accuraat omdat dat gewoon teveel tijd zou kosten en ik heb dan ook de echte bouwtekeningen nodig maar ik vond alsnog wel een tof projectje.
Ben benieuwd wat jullie ervan vinden.
Live versie: https://sam-3d.nl/webgames.html
Meer info: https://sam-3d.nl/recent.html#forumArticle
[YouTube: Forum Groningen 3D game]
Dankjewel. Geen van de organisaties wil ook meewerken. Helaas allemaal alleen voor eigen gewinKalentum schreef op woensdag 10 mei 2023 @ 15:29:
[...]
Ik vind het principe heel goed. Eigenlijk raar dat er geen database is waar alle rondwandelingen van bv staatsbosbeheer, natuurmonumenten en andere organisaties in staan... nu is het nogal versnipperd.
Helaas geen feedback: ik heb geen iPhone en ik kan de app ook niet installeren op mijn Mac (met veel iPhone apps kan dat tegenwoordig wel).

Ondanks dat ik van LastPass af wil, ik zit er (nog) te diep in, heb ik een "LastPass desktop authenticator" (Win/Mac/Linux) geschreven. We hebben een LastPass family account, ik heb koppelingen met mensen zoals m'n vriendin en ouders dat wanneer hun iets overkomt ik nog bij hun accounts kan (en vice versa in sommige gevallen) en een onmeunige zwik accounts die ik allemaal wil nalopen / aanpassen wanneer ik (tzt) over ga naar een andere wachtwoordmanager.
Soms ben ik op mijn laptop of desktop bezig en heb ik een 2FA code nodig maar is mijn telefoon niet binnen bereik. Daar is deze tool voor; het downloadt je LastPass Authenticator "backup" en slaat dat lokaal (encrypted, uiteraard) op. Je master password wordt (logischerwijs) gebruikt om de "backup" te kunnen downloaden maar daarna kun je die "backup" (je lokale MFA kluis) beveiligen met een (ander!) wachtwoord. Vervolgens kun je een TOTP code berekenen waarna je om je kluis wachtwoord wordt gevraagd (telkens - want je wachtwoord wordt niet opgeslagen) en daarna krijg je je TOTP ("2FA") code. Dat scheelt vaak weer een keer traplopen of met je reet van de bank komen als je telefoon verderop op tafel ligt
Is dit dom / onveilig / PEEEEUW_DE_WERELD_VERGAAT? Misschien. Dan gebruik je 't niet. Simpel.
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Herkenbaar helaas. Heb je plannen voor een Android variant?murphsy schreef op woensdag 10 mei 2023 @ 19:43:
[...]
Dankjewel. Geen van de organisaties wil ook meewerken. Helaas allemaal alleen voor eigen gewin
Op termijn wel!Webgnome schreef op vrijdag 12 mei 2023 @ 06:28:
[...]
Herkenbaar helaas. Heb je plannen voor een Android variant?
Ik heb nog een stuk of tien ‘core’ features in mijn Asana staan om toe te voegen. Zo ben ik mijn database aan het verrijken en heb ik daar nog wat ideeen voor:
/f/image/mG51DVT1YHmknHgKOZxNfA8x.png?f=fotoalbum_large)
Met rijkere route informatie kan ik straks makkelijker een ‘gevulde’ launch op Android doen.
Ook het design wordt iteratief steeds iets beter, maar ik ben nog niet helemaal tevreden. Het oogt wel fris, maar ook best saai:
:strip_exif()/f/image/ZYH1WbVWCHRDICEquzTdn8Tr.jpg?f=fotoalbum_large)
En ik wil de performance van de map nog verbeteren. Maar zaken zoals clustering of ‘lazy loading’ zijn technisch heel uitdagend voor me.
/f/image/4hAekZ6AfDp5JVmGVeuYCWPZ.png?f=fotoalbum_large)
En dan ook nog wat leuks doen met het profiel, een beetje stats en/of achievements bijhouden bijvoorbeeld:
:strip_exif()/f/image/VuFNQu2Kvh9bjSsdPiRLC7GO.jpg?f=fotoalbum_large)
Ik release ongeveer eens in de twee a drie weken. Dus al deze grote stappen gaan mee in elk geval tot komende winter wel bezighouden met iOS.
Ik heb ook nog een offline processing tool geschreven toen ik er achter kwam dat mijn LogCenter database voor de Fritz!BOX stiekem gegroeid was naar meer dan 1GB. Deze tool kun je niet zomaar op de NAS draaien vanwege het geheugen gebruik, vandaar dat ik het maar in .NET heb geschreven. De .NET binaries voor OSX heb ik niet kunnen testen.
https://github.com/biocod...x-SynologyLogCenterDaemon
https://github.com/biocoder-frodo/LogCenterDbRewrite
De afgelopen jaren heb ik veel phishing websites bekeken en onderzocht. Wat mij hierbij opviel is dat organisaties waarvan de website gekopieerd wordt, grote moeite hebben om de phishing websites te lokaliseren. Dat terwijl er wel technieken bekend zijn om dit te doen, het vergt echter technische kennis om dit te implementeren. Het is wel belangrijk: want hoe eerder je weet waar de phishing site zich bevindt, hoe eerder je actie kan ondernemen. En hoe minder slachtoffers er voor vallen.
Om die reden heb ik een gratis tool gemaakt, genaamd Did someone clone me (DSCM). Deze tool geeft een notificatie op het moment dat je website gekopieerd wordt, en als deze in een phishing aanval gebruikt wordt. Zo kan je actie ondernemen, bijvoorbeeld een takedown uitvoeren op de phishing site, potentiele slachtoffers waarschuwen etc.
Hoe werkt het
- aanmelden kan via de website: hier dient de domeinnaam opgeven te worden van de te beschermen website en een emailadres voor notificaties
- de gebruiker krijgt een persoonlijke link, deze dient hij in zijn websites HTML-code te embedden. Hiervoor heb ik verschillende plugins gereleased (Wordpress, Drupal, Joomla, Google Tag Manager). Maar je kan deze link ook installeren dmv een simpele HTML-img tag of stukje JavaScript code.
- als een clone gedetecteerd wordt, ontvangt de gebruiker een notificatie per email, inclusief de locatie van de kopie
Hoe ziet dat eruit
Dit is de website, deze wordt gehost op Github Pages:
Dit is een voorbeeld van een email die verstuurd wordt als een malafide kopie gedetecteerd is:

Volledig cloudbased
Een uitdaging bij deze tool is het schaalbaar maken tegen redelijke kosten, zodat ik de tool gratis aan kan bieden. Dit is mij gelukt door veel clouddiensten te gebruiken:- Sendgrid: voor emails te versturen
- Azure Functions: voor API's etc en een function die ieder inkomend web request analyseerd
- Azure Storage (tables): voor de data
- Cloudflare: caching toepassen op inkomende requests, om de hits op de Azure Functions zo ver mogelijk te beperken
- Github Pages: hosting van de website
Links
De website URL van de dienst:https://didsomeoneclone.me/
Meer technische details over de implementatie:
https://forsec.nl/Building-did-someone-clone-me/
Als jullie feedback / opmerkingen hebben is dat van harte welkom. Ik ontwikkel nog actief aan deze dienst zodat zoveel mogelijk organisaties zich kunnen beschermen tegen phishing aanvallen.
Allereerst: Mooi project, mooi doel en mooi strevenwez3 schreef op woensdag 5 juli 2023 @ 21:57:
Als jullie feedback / opmerkingen hebben is dat van harte welkom.
Maar het is toch kinderspel om die image/JS uit een clone te slopen? Je houdt vast iemand tegen, maar iemand die een béétje weet waar 'ie mee bezig is... betwijfel ik.
Heb je al daadwerkelijke detecties? Misschien kun je (en wil je) cijfers met ons delen?
Dus €0.0015 ?wez3 schreef op woensdag 5 juli 2023 @ 21:57:
en de totale kosten zijn 0.15 euro cent per maand
Verder kreeg ik koppijn van de HTML op 0:41

Overigens; ik zie dat je de <img src="https://dscm.li/-382975673" style="display: none;" /> met een 200 OK en Content-type: text/plain; charset=utf-8 serveert. Dat is natuurlijk ook een dead giveaway; misschien beter een 404 returnen ofzo, of een daadwerkelijke 1x1 transparante PNG (zo'n 60-70 bytes) of 0x0 SVG ofzo.
[ Voor 32% gewijzigd door RobIII op 05-07-2023 22:26 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Dankje! Het klopt dat dit nooit 100% zal afvangen, als een aanvaller de link doorheeft kan hij deze inderdaad weghalen. Maar geen 1 security oplossing vangt alles 100% natuurlijkRobIII schreef op woensdag 5 juli 2023 @ 22:15:
[...]
Allereerst: Mooi project, mooi doel en mooi streven
Maar het is toch kinderspel om die image/JS uit een clone te slopen? Je houdt vast iemand tegen, maar iemand die een béétje weet waar 'ie mee bezig is... betwijfel ik.
Heb je al daadwerkelijke detecties? Misschien kun je (en wil je) cijfers met ons delen?
[...]
Dus €0.0015 ?Ik denk dat je 0.15 euro of €0.15 of 15 cent bedoelt
Verder kreeg ik koppijn van de HTML op 0:41Dergelijke bagger HTML zie je sinds Y2K zelfs niet meer, en ik heb toch heel wat ellende gezien door de jaren
Maar uiteindelijk pauzeerde ik dus om te kijken waar die link dan verstopt zat; die was natuurlijk nergens te bekennen (of, en dan neem ik mijn eerdere woorden terug, het is inderdaad heel goed verstopt
)
Overigens; ik zie dat je de <img src="https://dscm.li/-382975673" style="display: none;" /> met een 200 OK en Content-type: text/plain; charset=utf-8 serveert. Dat is natuurlijk ook een dead giveaway; misschien beter een 404 returnen ofzo, of een daadwerkelijke 1x1 transparante PNG (zo'n 60-70 bytes) of 0x0 SVG ofzo.
Daarnaast: je kan natuurlijk zo ver gaan als je wilt in het "verstoppen" van de link. Een beetje goed nesten maakt het al minder obvious. Via Google Tag Manager is het bijvoorbeeld al minder obvious. Daarbij heb ik nog tal van ideeen om de link beter te verbergen. Door bijvoorbeeld domeinnamen te gebruiken van bestaande clouddiensten (de welbekende links van Cloudflare, Azure, AWS etc). Dit wil ik in de toekomst verder verbeteren.
Dit levert zeker al detecties op. Laatst meldde een relatief grote website zich aan. Dat resulteerde in korte tijd in 6 phishing sites die triggerde. Zij hadden overduidelijk last van website clones
Je feedback mbt de response neem ik mee, thanks! En wat betreft de video: die heb ik op Fiverr laten maken. Niet zo'n invloed gehad op die HTML


Ik had altijd al het idee om iets met muziek in de browser te maken en heb een aantal maanden geleden browserdaw.com geregistreerd, dus dan moet je er ook wat mee doen
Het is een hobbyproject waar ik af en toe een beetje aan werk. Er zitten nu MIDI-tracks in met een synth en een sampler met wat drumsamples die ik van freesound.org heb gehaald. Het MVP is er nu wel zo'n beetje. Je kunt noten toevoegen, editen en deleten, het geluid van de synth aanpassen en je track opslaan.
Wat ik wel gemerkt heb ik dat het afhandelen van de interactie van de gebruiker de meest complexe is die ik ooit heb gebouwd. Je kan bijvoorbeeld op de rotary knoppen klikken en draggen, zowel horizontaal als verticaal om de waarde aan te passen. En je kan de parameters van de synth intypen of op het inputveld scrollen met je muiswiel. En ik wil ook nog (meer) keyboard shortcuts supporten
Tech stack is een Angular front-end met de Tone.js library die al het ingewikkelde audiowerk doet (geweldig), Supabase voor het opslaan in een Postgres database (maakt een unieke link aan als je op Save klikt). UI met TailwindCSS.
Ik heb de UI heerlijk afgekeken van Ableton Live (de DAW van mijn voorkeur). En ik houd ervan dat audiosoftware / VST plugins van die skeuomorfische knoppen en lampjes hebben, ook al is dat onzin en zou je ook gewoon een numeriek inputveld kunnen gebruiken. Dus dat probeer ik er ook in te stoppen, zodat het er een beetje gelikt uit komt te zien.
Mijn muziek op SoundCloud - Speel online rikken - Maak muziek in je browser
Ziet er leuk uit, maar ik krijg er geen geluid uit terwijl er wel een wav-bestandje lijkt te staan en ik ook met de knopjes heb zitten spelen. Wat doe ik verkeerd?2mb schreef op donderdag 6 juli 2023 @ 17:35:
Ik ben weer met een nieuw project bezig: een online digital audio workstation (zoals FL Studio, Ableton Live of Logic) welke draait in je browser. Je kan er muziek mee maken via synthesizers of samples, kort gezegd.
[Afbeelding]
Ik had altijd al het idee om iets met muziek in de browser te maken en heb een aantal maanden geleden browserdaw.com geregistreerd, dus dan moet je er ook wat mee doen
Het is een hobbyproject waar ik af en toe een beetje aan werk. Er zitten nu MIDI-tracks in met een synth en een sampler met wat drumsamples die ik van freesound.org heb gehaald. Het MVP is er nu wel zo'n beetje. Je kunt noten toevoegen, editen en deleten, het geluid van de synth aanpassen en je track opslaan.
Wat ik wel gemerkt heb ik dat het afhandelen van de interactie van de gebruiker de meest complexe is die ik ooit heb gebouwd. Je kan bijvoorbeeld op de rotary knoppen klikken en draggen, zowel horizontaal als verticaal om de waarde aan te passen. En je kan de parameters van de synth intypen of op het inputveld scrollen met je muiswiel. En ik wil ook nog (meer) keyboard shortcuts supporten
Tech stack is een Angular front-end met de Tone.js library die al het ingewikkelde audiowerk doet (geweldig), Supabase voor het opslaan in een Postgres database (maakt een unieke link aan als je op Save klikt). UI met TailwindCSS.
Ik heb de UI heerlijk afgekeken van Ableton Live (de DAW van mijn voorkeur). En ik houd ervan dat audiosoftware / VST plugins van die skeuomorfische knoppen en lampjes hebben, ook al is dat onzin en zou je ook gewoon een numeriek inputveld kunnen gebruiken. Dus dat probeer ik er ook in te stoppen, zodat het er een beetje gelikt uit komt te zien.
Ook na het maken van een clippie niet.
Dat zit wel Schnorr.
Voorbeeldje met kick en bass
[ Voor 12% gewijzigd door 2mb op 06-07-2023 20:34 ]
Mijn muziek op SoundCloud - Speel online rikken - Maak muziek in je browser
Ik ga hem downloaden en bekijken. Wij wandelen uitsluitend met/voor de hond en juist daarvoor is het lastig om routes te vinden: waar mag je uberhaupt een hond mee, waar mag de hond los. Wellicht kun je dat als filter toevoegen (geen hond/hond vast/hond los)? Ook andersom handig: mensen die geen (losse) honden tegen willen komen.murphsy schreef op woensdag 10 mei 2023 @ 15:02:
Ook maar eens mijn avonden-en-weekenden projectje tonen hier: de Paaltjesroutes app.
Ik heb vaak het idee dat we in NL het kleine beetje 'natuur' dat we nog hebben niet genoeg waarderen. Maar mensen die veel buiten wandelen lijken dat in elk geval meer te doen dan de mensen die dat niet doen. Dus heb ik gedaan wat elke mobiele PO zou doen: ik heb een appje gemaakt met als doel mensen het bos of veld in te krijgen.
Ik ben geen dev en had ook nog nooit in SwiftUI gewerkt. Wel wat eerdere projecten in PHP en javascript. Het resultaat is alleen beschikbaar op iPhone, en nog wekelijks in ontwikkeling. Maar toch al wel enigszins bruikbaar. Hier kan je m'n appje downloaden in de Apple App Store.
De app is in SwiftUI geschreven. Registratie en authenticatie doe ik via Firebase. Er draait ook een kleine database op Firestore die o.a. route beoordelingen bewaard.
Wat ik al weet:Feedback welkom!
- Performance van de map is slecht, vooral als je uitzoomt
- Sommige stukken NL hebben nog erg weinig routes
- Iets van gamification om te prikkelen om ook daadwerkelijk te wandelen zou mijn missie ondersteunen
- Routes kunnen foto's gebruiken om meer tot de verbeelding te spreken
Merk wel dat gratis blijven moeilijker wordt. De eu99 Apple Dev Fee vind ik niet zo erg, maar het dataverbruik van de app groeit gestaag. Stel dat ik ook foto's van routes wil kunnen tonen... Dan wordt het al snel erg kostbaar om de boel te draaien.
Die doet het inderdaad wel. Leuk spul2mb schreef op donderdag 6 juli 2023 @ 20:26:
Sorry, die sidebar doet nog niets inderdaad. In de drum track kun je samples afspelen door een noot te plaatsen op C4 tot A#4.
Voorbeeldje met kick en bass
Vanwaar de keuze om de app in de promotiepagina te stoppen? Toen ik de eerste keer keek dacht ik dat het een promotieafbeelding oid was totdat het opviel dat de knoppen echt waren

Dat zit wel Schnorr.
Verwijderd
Ik gebruik zelf renoise op een laptop tegenwoordig mooi spul! Maar ik doe echt basic trance / techno.2mb schreef op donderdag 6 juli 2023 @ 17:35:
Ik ben weer met een nieuw project bezig: een online digital audio workstation (zoals FL Studio, Ableton Live of Logic) welke draait in je browser. Je kan er muziek mee maken via synthesizers of samples, kort gezegd.
[Afbeelding]
Ik had altijd al het idee om iets met muziek in de browser te maken en heb een aantal maanden geleden browserdaw.com geregistreerd, dus dan moet je er ook wat mee doen
Het is een hobbyproject waar ik af en toe een beetje aan werk. Er zitten nu MIDI-tracks in met een synth en een sampler met wat drumsamples die ik van freesound.org heb gehaald. Het MVP is er nu wel zo'n beetje. Je kunt noten toevoegen, editen en deleten, het geluid van de synth aanpassen en je track opslaan.
Wat ik wel gemerkt heb ik dat het afhandelen van de interactie van de gebruiker de meest complexe is die ik ooit heb gebouwd. Je kan bijvoorbeeld op de rotary knoppen klikken en draggen, zowel horizontaal als verticaal om de waarde aan te passen. En je kan de parameters van de synth intypen of op het inputveld scrollen met je muiswiel. En ik wil ook nog (meer) keyboard shortcuts supporten
Tech stack is een Angular front-end met de Tone.js library die al het ingewikkelde audiowerk doet (geweldig), Supabase voor het opslaan in een Postgres database (maakt een unieke link aan als je op Save klikt). UI met TailwindCSS.
Ik heb de UI heerlijk afgekeken van Ableton Live (de DAW van mijn voorkeur). En ik houd ervan dat audiosoftware / VST plugins van die skeuomorfische knoppen en lampjes hebben, ook al is dat onzin en zou je ook gewoon een numeriek inputveld kunnen gebruiken. Dus dat probeer ik er ook in te stoppen, zodat het er een beetje gelikt uit komt te zien.
Ik had ooit ook al een vsti in de browser mogen testen. Gaat leuk en is echt de toekomst zodat je met je tablet dat kan gaan doen op de bank, op het strand.
Verwijderd
Kun je als je uitgerust bent eea misschien structureren? Of op zn minst wat links erbij geven?Verwijderd schreef op woensdag 2 augustus 2023 @ 21:19:
wall of text
Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.
:fill(white):strip_exif()/f/image/Gci1b89H3eT1xXKYe5Wjg0wP.png?f=user_large)
Simpel sudoku spel geschreven in golang
versie: beta1
Mogelijkheden:
1 Speler lokaal
2 Spelers lokaal (. = speler 1, : = speler 2 )
3 Spelbordinstellingen (S: 3x3, M: 6x6, L: 9x9)
2 Spelers online
Besturing:
W,A,S,D > Omhoog, omlaag, links, rechts
Pijltjes > Omhoog, omlaag, links, rechts (selecteert lege cel automatisch)
1,2,3,4,5,6,7,8,9 > Cel van waarde veranderen
Download:
https://github.com/brenre...udokumultiplayerbeta1.exe
of
https://www.mediafire.com...multiplayerbeta1.exe/file
Source:
https://github.com/brenre...main/sudokumultiplayer.go
https://github.com/brenre...lob/main/sudokuserver.php
https://github.com/brenre...udokumultiplayerbeta1.exe
:fill(white):strip_exif()/f/image/8GBPwSpQlywDjsfJsAKVmEY8.png?f=user_large)
[ Voor 55% gewijzigd door CodeCaster op 03-08-2023 11:50 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Verder denk ik dat de interesse naar 't downloaden van allerlei executables vrij laag zal zijn hier
Oh en lees je eens in wat SQL injection, ofwel little Bobby Tables, is (waar @CodeCaster naar hint). Dit, dit en dit zijn er namelijk een paar, de rest van je queries zijn ditto. Zie Over het gebruik van Parameterized Queries en deze hele jonge Tom Scott
[ Voor 91% gewijzigd door RobIII op 03-08-2023 12:28 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
/f/image/oB4HVGrAwfsrHnY2VIrzBekN.png?f=fotoalbum_large)
Er is nog een hoop te doen maar vooralsnog werkt alles, data word elke seconde bijgewerkt.
/f/image/3IUsZ6QfPhtybQXgaQytOAIT.png?f=fotoalbum_large)
En in de huiskamer heb ik een 5 kleuren e-ink display, ook hier zelf de software voor geschreven.
/f/image/et9H06q8IUz1CdoVU8Z2uxMi.png?f=fotoalbum_large)
Ik heb ook een client voor mijn iPhone, hiervoor heb ik gebruikt gemaakt van een Python backend tesamen met jQuery en Javascript, is ook via het internet te benaderen middels een reverse proxy (Nginx):
/f/image/lTbXvdqiny0Lei7UqSHZ3HrV.png?f=fotoalbum_large)
Ik wil hier nog een iPhone app voor maken maar ik moet eerst nog uitzoeken hoe dit in zijn werk gaat en mijzelf verdiepen in Swift en SwiftUI.
Al met al ben ik hier tussen de bedrijven door al een paar jaar mee bezig en het is eigenlijk nooit af.
[ Voor 62% gewijzigd door Martijn-V4 op 04-08-2023 13:27 ]
Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.
Verwijderd
Wat snap je niet dan, dan leg ik het uit...Jogai schreef op maandag 7 augustus 2023 @ 12:00:
Uh oh, @Verwijderd kon weer niet slapen ... (sorry, niet persoonlijk bedoeld, maar ik snap je posts gewoon niet)
Ik denk meer info? Admin scherm, voor wat, waarmee, waarom? Waarom vind je dit het delen waard?Verwijderd schreef op maandag 7 augustus 2023 @ 17:52:
[...]
Wat snap je niet dan, dan leg ik het uit...
nickdekruijk.nl Websites & Fotografie
Lees even kritisch je eigen posts. Er is geen context. Daardoor snap ik helemaal niets. Er is zo weinig context dat ik niet eens nuttige vragen kan stellen.Verwijderd schreef op maandag 7 augustus 2023 @ 17:52:
[...]
Wat snap je niet dan, dan leg ik het uit...
Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.
Verwijderd
Ik had inderdaad wat meer info moeten geven.amphora schreef op maandag 7 augustus 2023 @ 20:22:
[...]
Ik denk meer info? Admin scherm, voor wat, waarmee, waarom? Waarom vind je dit het delen waard?
Het admin scherm vond ik het delen waard, want het bevat nu applicaties. Die applicaties zijn op de host geïnstalleerd (nog niet geïmplementeerd). Welliswaar kunnen die applicaties alleen in mijn systeem leven, het is zo toch mooi modulair en upgradebaar. Ik heb momenteel enkele apps. Een muziekspeler, een filemanager en een editor. Ik heb nog een oudere versie waar ook een youtube-downloader in zit en een markdownviewer.
Ik ben van plan om meerdere applicaties toe te voegen om via die weg, een cms systeem te bouwen. Het wordt dus een lichte desktop environment ervaring voor de gebruiker. Waarin meerdere apps zitten om de content te beheren. Het moet ook mogelijk worden om de complete server te configureren via het admin systeem.
In mijn vorige post had ik het over events. Momenteel laadt het systeem (eigen framework) mijn events in 0,54 msec. Welliswaar zijn het er momenteel slechts 11, maar ik vond het: rete snel.
De filemanager heeft een file opener die per extensie kijkt welke apps geregistreerd staan om deze te kunnen openen. Zo kun je met de ace editor straks elk bestand openen op het systeem. Ace editor heb ik dus als app gemaakt in mijn systeem. De editor die ik dus gebruikt heb, kun je hier vinden: https://ace.c9.io/ .
Ik deel mijn code pas bij versie 1, daar zijn we nog niet want het is eigenlijk best een groot project geworden. Maarja het houdt je van de straat...
Het zeker een mooie leerschool maar wat is je doel hier mee? 0,54 msec voor 11 events zegt geen drol als we niet weten hoe die flow exact in elkaar zit. Nogmaals dit is een leuke leerschool maar er zijn al zoveel frameworks en op dit moment zijn er ook een boel gewoon standaarden voor php (dat was het toch?) Zoals symfony of Laravel.Verwijderd schreef op dinsdag 8 augustus 2023 @ 17:19:
[...]
Ik had inderdaad wat meer info moeten geven.
Het admin scherm vond ik het delen waard, want het bevat nu applicaties. Die applicaties zijn op de host geïnstalleerd (nog niet geïmplementeerd). Welliswaar kunnen die applicaties alleen in mijn systeem leven, het is zo toch mooi modulair en upgradebaar. Ik heb momenteel enkele apps. Een muziekspeler, een filemanager en een editor. Ik heb nog een oudere versie waar ook een youtube-downloader in zit en een markdownviewer.
Ik ben van plan om meerdere applicaties toe te voegen om via die weg, een cms systeem te bouwen. Het wordt dus een lichte desktop environment ervaring voor de gebruiker. Waarin meerdere apps zitten om de content te beheren. Het moet ook mogelijk worden om de complete server te configureren via het admin systeem.
In mijn vorige post had ik het over events. Momenteel laadt het systeem (eigen framework) mijn events in 0,54 msec. Welliswaar zijn het er momenteel slechts 11, maar ik vond het: rete snel.
De filemanager heeft een file opener die per extensie kijkt welke apps geregistreerd staan om deze te kunnen openen. Zo kun je met de ace editor straks elk bestand openen op het systeem. Ace editor heb ik dus als app gemaakt in mijn systeem. De editor die ik dus gebruikt heb, kun je hier vinden: https://ace.c9.io/ .
Ik deel mijn code pas bij versie 1, daar zijn we nog niet want het is eigenlijk best een groot project geworden. Maarja het houdt je van de straat...
Verwijderd
Je hebt ook saab, rijdt iemand dat nog, of wil je een Ferrari, bugatti?Webgnome schreef op dinsdag 8 augustus 2023 @ 20:23:
[...]
Het zeker een mooie leerschool maar wat is je doel hier mee? 0,54 msec voor 11 events zegt heen drol als we niet weten hoe die flow exact in elkaar zit. Nogmaals dit is een leuke leerschool maar er zijn al zoveel frameworks en op dit moment zijn er ook een boel gewoon standaarden voor php (dat was het toch?) Zoals symfony of Laravel.
Daarnaast heb ik in het bedrijfsleven met symfony gewerkt en werk nu met Laravel. Symfony heeft best veel deprecations gedurende de tijd vordert en ik vond het overal een paar goede dingen doen, maar sommige dingen ook onnodig complex maken.
Laravel werk ik net een paar maanden mee en ik meen dat ie is gebouwd op symfony ? Laravel heeft zn quirks en lijkt me meer gericht op website ontwikkeling. Symfony daarintegen meer applicatie ontwikkeling. De psr's zitten dan wel weer in symfony.
Wat ik bijvoorbeeld niet begrijp en mij aan erger is bijvoorbeeld: de dd methode. Standaard print het geen locatie van de dd plek in de code.
Bij Laravel doet ie dat wel. Bij mij momenteel niet, maar heb de ddd functie, want de dumper wordt middels doctrine ingeladen en vanwege autoloader voordeel (heb meerdere autoloaders) wordt dd van symfony eerder ingeladen.
Nu zal er wel een configuratie mogelijkheid zijn, maar toendertijd hielp een simpele zoektocht niet, de vraag bij symfony issues bleef onbeantwoord en nu ik weet dat Laravel het doet, kan ik daar een keer induiken.
Maar een wrapper om dd volstaat ook prima.
Bij symfony support is er maar 1 ding, en dat is symfony, als je die basis niet gebruikt willen ze niet supporten heb ik gemerkt.
Dingen als class_exists als feature request (mijn autoloader pikt hem op als de composer autoloader hem niet kan vinden) en mijn autoloader staat natuurlijk op een exception als die de class niet kan vinden.
Makkelijker debuggen. Oftewel ik ben verplicht het als feature te implementeren en raak mijn heldere exception zo kwijt -> logger.
Of ik moet empty feature classes maken.
Ik ben overigens al enige tijd bezig met mijn framework en ik ervaar het volgende: snellere programmering, minder code, snellere respons, debuggen makkelijker.
De basis is goed opgezet en alles heeft een logische plek. Ook als je meerdere domeinen / subdomeinen gebruikt, blijft de basis goed. Terwijl je bij de andere 2 (symfony, Laravel) vaak meerdere instanties per domein hebt.
Mijn parser wil ik intensiever gaan gebruiken en de requirement is het framework. Mijn parser kan zowel json/javascript als html parsen en straks ook afgeleide zoals yaml en xml.
Bij Laravel met blade, hoe doe je dat bijvoorbeeld om php variabelen/methoden/traits in json en javascript te hebben. Is dat mogelijk?
Het is een taal op zich en met wat de Europeesche unie wil met open source, zal bijna het einde van nodejs betekenen.
Ik denk dat je wellicht support kunt kopen bij symfony, maar ook Laravel ? Je moet je als bedrijf gaan verzekeren / indekken, mit license mag waarschijnlijk niet meer in Europa...
Ik heb straks mijn eigen pakket met heel weinig externe packages. Maar waar ik waarschijnlijk wel support op kan geven, we moeten het gaan zien...
[ Voor 72% gewijzigd door Verwijderd op 09-08-2023 21:48 . Reden: Toevoeging reden framework ]
stap 1: laden van tarieven via Enever (Cron job, elke week) ==> MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <? $link = mysqli_connect(xxx); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } mysqli_set_charset ( $link , 'utf8'); $data = file_get_contents("https://enever.nl/api/stroomprijs_laatste30dagen.php?token=XXXXXXX"); $array = json_decode($data, true); foreach ($array['data'] as &$value) { $datum = substr($value['datum'],0,10); $tijd = substr($value['datum'],11,2); $prijs = $value['prijsZP']; $query = "INSERT INTO stroom (datum, uur, prijs) VALUES ('$datum', '$tijd', '$prijs') ON DUPLICATE KEY UPDATE prijs='$prijs'"; $result = mysqli_query($GLOBALS['link'], $query) or die('Error running database query query '.$query."-".mysqli_error($GLOBALS['link'])); } ?> |
stap 2: laden opbrengst (vereist maandelijks uploaden csv export van panelen, maar vind ik acceptabel gezien het beperkte gebruik) ==> MySQL. Had str_getcsv werkte helaas niet, maar met parse_csv was het niet zo moeilijk meer (https://www.php.net/manual/en/function.str-getcsv.php#111665)
stap 3: weergeven, key is een join query
1
| $query = "SELECT stroom_opbrengst.datum, stroom_opbrengst.uur, stroom_opbrengst.opbrengst, stroom.prijs FROM stroom_opbrengst LEFT JOIN stroom ON stroom_opbrengst.datum = stroom.datum and stroom_opbrengst.uur = stroom.uur"; |
Allemaal geen rocket science, maar werkt als een speer. Werkelijk opbrengst wijkt een paar procent af van "gemiddelde terugleverprijs per maand" * "totale opbrengst per maand"
De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!
Let wel even op: je hebt vatbaar voor SQL-injectie. Misschien eens inlezen wat dat is want in theorie kan Enever.nl je database om zeep helpen.pietje63 schreef op maandag 4 september 2023 @ 13:57:
Ik heb een kleine "tool" gemaakt om de opbrengst van mijn zonnepanelen icm dynamisch contract te bepalen. Ik had in de ene app (panelen) de opbrengst in kwh, en in de andere (Zonneplan) de dynamische tarieven en het netto verbruik per uur.
stap 1: laden van tarieven via Enever (Cron job, elke week) ==> MySQL
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <? $link = mysqli_connect(xxx); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } mysqli_set_charset ( $link , 'utf8'); $data = file_get_contents("https://enever.nl/api/stroomprijs_laatste30dagen.php?token=XXXXXXX"); $array = json_decode($data, true); foreach ($array['data'] as &$value) { $datum = substr($value['datum'],0,10); $tijd = substr($value['datum'],11,2); $prijs = $value['prijsZP']; $query = "INSERT INTO stroom (datum, uur, prijs) VALUES ('$datum', '$tijd', '$prijs') ON DUPLICATE KEY UPDATE prijs='$prijs'"; $result = mysqli_query($GLOBALS['link'], $query) or die('Error running database query query '.$query."-".mysqli_error($GLOBALS['link'])); } ?>
stap 2: laden opbrengst (vereist maandelijks uploaden csv export van panelen, maar vind ik acceptabel gezien het beperkte gebruik) ==> MySQL. Had str_getcsv werkte helaas niet, maar met parse_csv was het niet zo moeilijk meer (https://www.php.net/manual/en/function.str-getcsv.php#111665)
stap 3: weergeven, key is een join query
code:
1 $query = "SELECT stroom_opbrengst.datum, stroom_opbrengst.uur, stroom_opbrengst.opbrengst, stroom.prijs FROM stroom_opbrengst LEFT JOIN stroom ON stroom_opbrengst.datum = stroom.datum and stroom_opbrengst.uur = stroom.uur";
Allemaal geen rocket science, maar werkt als een speer. Werkelijk opbrengst wijkt een paar procent af van "gemiddelde terugleverprijs per maand" * "totale opbrengst per maand"
Dank, eens. Heb een deel van de code niet mee geplakt, daar zit per variabele naast een echo (voor het testen) ook een mysqli_real_escape_string in voordat deze wordt verwerkt.
Begrijp dat prepared statements nog beter zijn, maar deze moet ik me nog een keer eigen maken, maar vooralsnog vind ik het zo veilig genoeg.
De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!
Is de code ergens te bekijken? Ben benieuwd hoe je te werk bent gegaan. De reden van mijn nieuwsgierigheid is omdat ik dagelijks bezig ben met applicaties en geografische data. Eigenlijk vooral geografische data en die applicaties zijn er de laatste jaren beetje bij gekomen.murphsy schreef op woensdag 10 mei 2023 @ 15:02:
Ook maar eens mijn avonden-en-weekenden projectje tonen hier: de Paaltjesroutes app.
Ik heb vaak het idee dat we in NL het kleine beetje 'natuur' dat we nog hebben niet genoeg waarderen. Maar mensen die veel buiten wandelen lijken dat in elk geval meer te doen dan de mensen die dat niet doen. Dus heb ik gedaan wat elke mobiele PO zou doen: ik heb een appje gemaakt met als doel mensen het bos of veld in te krijgen.
Ik ben geen dev en had ook nog nooit in SwiftUI gewerkt. Wel wat eerdere projecten in PHP en javascript. Het resultaat is alleen beschikbaar op iPhone, en nog wekelijks in ontwikkeling. Maar toch al wel enigszins bruikbaar. Hier kan je m'n appje downloaden in de Apple App Store.
De app is in SwiftUI geschreven. Registratie en authenticatie doe ik via Firebase. Er draait ook een kleine database op Firestore die o.a. route beoordelingen bewaard.
Wat ik al weet:Feedback welkom!
- Performance van de map is slecht, vooral als je uitzoomt
- Sommige stukken NL hebben nog erg weinig routes
- Iets van gamification om te prikkelen om ook daadwerkelijk te wandelen zou mijn missie ondersteunen
- Routes kunnen foto's gebruiken om meer tot de verbeelding te spreken
Merk wel dat gratis blijven moeilijker wordt. De eu99 Apple Dev Fee vind ik niet zo erg, maar het dataverbruik van de app groeit gestaag. Stel dat ik ook foto's van routes wil kunnen tonen... Dan wordt het al snel erg kostbaar om de boel te draaien.
Het is niet helemaal hetzelfde maar in Vlaanderen is er een Atlas der Buurtwegen van ergens halfweg de 19de eeuw. Die worden vaak gebruikt voor wandelroutes en zo. Maar jaren verwaarloosd. Dus eens een kleine PWA applicatie geschreven voor paar gemeentes in de buurt voor de inventarisatie en kwaliteitscontrole van deze paden. Frontend was enkel html en javascript (openlayers) met c# backend. Werkte eigenlijk wel goed. Controles werden gedaan door wandelverenigingen, MTB'ers en vrijwilligers.
Mag ik vragen waarom je een Apple specifiek platform als SwiftUI wilt gebruiken? Maakt het lastiger als je plannen hebt voor een Android versie.
Ik denk dat gratis blijven (behalde Apple dev) wel mogelijk moet blijven, hoewel ik ook nog op zoek ben hoe dat juist moet. Iedereen lijkt te weten hoe dat moet, behalve ikzelf (en jij blijkbaar
2x Marstek Venus E 5.12 v153 - CT003 V117 - BMS 213 en 215
[ Voor 13% gewijzigd door Plnda op 28-09-2023 16:47 ]
Initieel kan de script een config maken op de te checken situatie. Het is wel zaak om deze te bekijken en corrigeren! Bijvoorbeeld accepteer ik niet dat een .pdf document ook een text file kan zijn o.i.d.
Het ondersteunt ook uitzonderingen, alhoewel dat dan wel een uitzondering moet zijn.
Zie:
https://github.com/mcmd19...n/tools/check_file_magics
Uit nieuwsgierigheid: Waarom niet gewoon een MD5/SHA1/Whatever hash van je file trekken? Veel betrouwbaarder. En hoe vaak komt 't nou voor dat een textfile zich als MP3 voordoet (bij wijze van)?mcmd schreef op maandag 2 oktober 2023 @ 10:40:
Recentelijk heb ik een python script gemaakt met mijn doel om te checken of de Windows backup niet gecompromitteerd is.
[ Voor 59% gewijzigd door RobIII op 02-10-2023 11:32 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Mijn reden om dit te maken is om te detecteren of mijn backup gecompromitteerd is door malware. Dit is een van de maatregelen die ik genomen heb om dat te voorkomen.RobIII schreef op maandag 2 oktober 2023 @ 11:28:
[...]
Uit nieuwsgierigheid: Waarom niet gewoon een MD5/SHA1/Whatever hash van je file trekken? Veel betrouwbaarder. En hoe vaak komt 't nou voor dat een textfile zich als MP3 voordoet (bij wijze van)?
Waarom geen hashes? Omdat een deel van mijn documenten volatiel is, bijvoorbeeld een mailfile of een word document waaraan geregeld gewerkt wordt. Dan heb ik een mechanisme nodig om de hashes continue bij te houden. Nu kan ik het zo regelen dat de check geen enkele relatie heeft met mijn windows systeem en dus onderdeel kan zijn van een malware aanval.
Toevallig crashte mijn Windows systeem afgelopen zaterdag toen net de backup werd gemaakt. Met deze script kreeg ik vrijwel direct daarna de boodschap dat een aantal files niet goed overgekomen waren en kon ik direct corrigeren. Zonder dit mechanisme had ik dat nooit geweten.
[ Voor 14% gewijzigd door mcmd op 02-10-2023 12:52 ]
Ik mis nog steeds de use-case om eerlijk te zijn. Zoals ik het lees detecteer jij of een PDF niet 'spontaan' (door malware) in iets anders veranderd is (word document? executable? mp3?). Wanneer gebeurt dat nou?mcmd schreef op maandag 2 oktober 2023 @ 12:49:
Mijn reden om dit te maken is om te detecteren of mijn backup gecompromitteerd is door malware. Dit is een van de maatregelen die ik genomen heb om dat te voorkomen.
[...]
Met deze script kreeg ik vrijwel direct daarna de boodschap dat een aantal files niet goed overgekomen waren en kon ik direct corrigeren. Zonder dit mechanisme had ik dat nooit geweten.
Kun je concreet aangeven wat, in de door jou beschreven crash en daaropvolgende "detectie van niet goed overgekomen files" dan precies aan de hand was? M.a.w. heb je een concreet voorbeeld?
Zo'n "magic", zoals je het consequent noemt, doet ook niks anders dan van elke filetype een paar bytes bekijken en matchen tegen een database met bekende signaturen.Dat zijn een paar bytes in de meeste gevallen. Met een hash weet je van 100% van de file tot op de bit nauwkeurig of er een (al dan niet bewuste) mutatie op een file heeft plaatsgevonden. Wat let mij om een PDF te 'infecteren' maar nog steeds een PDF te laten zijn? Hoe pikt jouw script dat op?
Deze file, bijvoorbeeld, wordt door "libmagic" geheid herkend als JPG maar is gewoon een tekstfile met 4 gekke bytes aan 't begin
Begrijp me, en mijn kritische vragen, niet verkeerd alsjeblieft. Ik probeer duidelijk te krijgen voor mezelf (en wellicht anderen) wat precies het nut is.
[ Voor 11% gewijzigd door RobIII op 02-10-2023 14:11 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Zeker, hash is natuurlijk veel beter om te gebruiken in het geval je zeker weet dat de hash correct is en niet veranderd van een bestand. Dat laatste heb ik eerder proberen aan te geven, veel bestanden zullen op mijn Windows systeem continue wijzigen. Dan werkt het wat minder of moet je daar een oplossing voor vinden. Zodra malware je systeem overneemt, weet je al helemaal niet meer wat er precies gebeurt en dus ook niet zo goed met de hashes.RobIII schreef op maandag 2 oktober 2023 @ 13:34:
[...]
Ik mis nog steeds de use-case om eerlijk te zijn. Zoals ik het lees detecteer jij of een PDF niet 'spontaan' (door malware) in iets anders veranderd is (word document? executable? mp3?). Wanneer gebeurt dat nou?
Kun je concreet aangeven wat, in de door jou beschreven crash en daaropvolgende "detectie van niet goed overgekomen files" dan precies aan de hand was? M.a.w. heb je een concreet voorbeeld?
Zo'n "magic", zoals je het consequent noemt, doet ook niks anders dan van elke filetype een paar bytes bekijken en matchen tegen een database met bekende signaturen.Dat zijn een paar bytes in de meeste gevallen. Met een hash weet je van 100% van de file tot op de bit nauwkeurig of er een (al dan niet bewuste) mutatie op een file heeft plaatsgevonden. Wat let mij om een PDF te 'infecteren' maar nog steeds een PDF te laten zijn? Hoe pikt jouw script dat op?
Begrijp me, en mijn kritische vragen, niet verkeerd alsjeblieft. Ik probeer duidelijk te krijgen voor mezelf (en wellicht anderen) wat precies het nut is.
In het geval malware mijn bestanden compromitteert, dan ga ik ervan uit dat het "Magic" gebeuren niet meer zal functioneren (wellicht een verkeerde aanname, gezien inderdaad alleen de eerste paar bytes worden gebruikt voor Magic).
Mijn voorbeeld was dat mijn systeem crashte, maar in de backup wel bestanden stonden die net gewijzigd waren met de correcte grootte, maar gevuld met 0-en. Dat werd onmiddellijk opgemerkt door dit mechanisme. Backup software die ik gebruik zal kijken naar modificatie datum en grootte van bestand en had dus dit probleem ook niet opgemerkt (mijn systemen zijn niet zo snel dat het praktisch is om de hash hiervoor te gebruiken).
Laatste wat ik kan noemen is dat het berekenen van de hash (veel) meer tijd zal kosten dan het "Magic" gebeuren. Op mijn traag nuc systeem duurt het zo'n 20 minuten om door zo'n 100K files te gaan, dit zal waarschijnlijk vele malen trager zijn met berekenen van de hash. Dat is op zich logisch gezien de achterliggende mechanismen. Voorbeeld op mijn systeem met 4 bestanden met totaal grootte van 7.7GB kost de file Magic methode zo'n 0,11s en md5sum 21,11s.
Het is dus niet mijn bedoeling om te weten dat een bestand niet gewijzigd is (want dat wordt hij heus wel), maar wel om een idee te hebben dat het type bestand klopt. Bij ontwikkelen zag ik ook een voorbeeld dat bestanden met .jpg extensie toch echt .png files waren.
Je voorbeeld van zo'n test.jpg file, dat klopt inderdaad. In feite kun je oneindig veel variaties daarop bedenken, je hoeft alleen maar de eerst N bytes over te nemen en daarachter random data neerzetten.
En een infectie van een PDF of ander type document, zal het script ook goedvinden. Het is immers nog steeds een PDF document.
Hoe je het kunt plaatsen: voorheen creëerde ik een backup, transporteerde het naar een Linux systeem en dat was het. Nu heb ik in ieder geval een geautomatiseerde check die wat mij betreft me een beter gevoel geeft dat het allemaal nog klopt.
Het is een onderdeel van wat ik doe om mijn omgeving in controle te houden.
[ Voor 9% gewijzigd door mcmd op 02-10-2023 14:38 ]
Ja, maar dan wijzigt de hash van je backup dan toch net zo goed? Hash niet gelijk, bestand verschillend. Zo detecteer je dan toch of je backup in orde (of up-to-date) is, boeie welke bit er niet klopt?mcmd schreef op maandag 2 oktober 2023 @ 14:28:
[...]
Zeker, hash is natuurlijk veel beter om te gebruiken in het geval je zeker weet dat de hash correct is en niet veranderd van een bestand. Dat laatste heb ik eerder proberen aan te geven, veel bestanden zullen op mijn Windows systeem continue wijzigen.
Huh? In het geval malware je systeem over neemt verschilt (zo goed als) alles tov je backup, maar daar is je backup dan toch ook voor?mcmd schreef op maandag 2 oktober 2023 @ 14:28:
Dan werkt het wat minder of moet je daar een oplossing voor vinden. Zodra malware je systeem overneemt, weet je al helemaal niet meer wat er precies gebeurt en dus ook niet zo goed met de hashes.
Ja, dat vind ik dan dus een vrij gevaarlijke aanname. Bij een cryptolocker wordt vaak een compleet bestand gewijzigd (want versleuteld), maar bij een virus zal er meestal maar een deel van een bestand (meestal executable) veranderen en is het juist zaak dat de "magic header" in tact blijft.mcmd schreef op maandag 2 oktober 2023 @ 14:28:
In het geval malware mijn bestanden compromitteert, dan ga ik ervan uit dat het "Magic" gebeuren niet meer zal functioneren (wellicht een verkeerde aanname, gezien inderdaad alleen de eerste paar bytes worden gebruikt voor Magic).
Dat is héél vreemd tenzij je backup software bestanden pre-alloceert door ze te vullen met nullen wat ontieglijk inefficient is...mcmd schreef op maandag 2 oktober 2023 @ 14:28:
Mijn voorbeeld was dat mijn systeem crashte, maar in de backup wel bestanden stonden die net gewijzigd waren met de correcte grootte, maar gevuld met 0-en.
Ja, maar 't geeft wel met (veel) meer zekerheid, vele ordegroottes, aan of je backup in orde is. Een backup loopt meestal diep in de nacht; is het dan erg dat 't een paar uur duurt ipv een paar minuten?mcmd schreef op maandag 2 oktober 2023 @ 14:28:
Laatste wat ik kan noemen is dat het berekenen van de hash (veel) meer tijd zal kosten dan het "Magic" gebeuren.
Ja, maar wat ik me dus blijf afvragen: Wanneer verandert een type van het bestand? Dat heb ik in dik 35-40 jaar nog nooit van gehoord laat staan meegemaakt. Niet spontaan, noch door malware.mcmd schreef op maandag 2 oktober 2023 @ 14:28:
Het is dus niet mijn bedoeling om te weten dat een bestand niet gewijzigd is (want dat wordt hij heus wel), maar wel om een idee te hebben dat het type bestand klopt.
Het kan voorkomen dat iemand een bestand met een verkeerde extensie opslaat (bewust of onbewust), maar hoe is dat hier verder relevant?mcmd schreef op maandag 2 oktober 2023 @ 14:28:
Bij ontwikkelen zag ik ook een voorbeeld dat bestanden met .jpg extensie toch echt .png files waren.
Nogmaals, vergeef me mijn gezaag - als jij er blij mee bent is 't helemaal
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
https://github.com/hcfman/sbts-aru
Het is een geluidsrecorder gebouwd op een Pi die is geconfigureerd om de tijd tot op de microseconde nauwkeurig vast te houden.
Gebruiksscenario's omvatten bio-akoestisch onderzoek voor soortonderzoek tot hulp bij inspanningen tegen stropers.
Ik hoop hier automatische geweerschotdetectie aan toe te voegen.
Met wekelijks explosies van illegaal vuurwerk. In Nederland is een schat aan testdata beschikbaar.
Ik zou graag willen weten of dit mensen interesseert en of ze het proberen, hoe ze het vonden.
En dat vond ik een beetje niet zo grappig. Dus een Firefox extensie gemaakt die dat probleem verhelpt.
Andere trackers staan op de to-do lijst
https://addons.mozilla.or...efox/addon/untrack-links/
I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
Met de komst van het Black Friday kortingscode topic wilde ik graag notificaties als iemand een nieuw bericht plaats. GoT heeft zelf geen notificaties. Met deze Chrome extensie heb je ze wel!
:fill(white):strip_exif()/f/image/OpYhoQyLNJ07XKJWVZTM5zzz.png?f=user_large)
/f/image/6VbPcUQ7kM2plZ37WR6eAMDi.png?f=fotoalbum_large)
De source is hier beschikbaar https://github.com/matthijn/topic-tattle waar je ook een build kan downloaden.
Uiteraard werken de notificaties voor elk topic. Een klikje op de notificatie brengt je naar het bericht. Je moet wel de tab open hebben.
Is blijkbaar tegenwoordig een ingebouwde feature.

[ Voor 9% gewijzigd door ZpAz op 18-11-2023 14:40 ]
[ Voor 75% gewijzigd door Damic op 18-11-2023 12:25 ]
Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag
Wut. Nou ja zeg.

:fill(white):strip_exif()/f/image/oB8h6CwgTGNIFpxfLhuZLFcd.png?f=user_large)
:fill(white):strip_exif()/f/image/FqmYBzxqixBPIfS2kiDLTcbb.png?f=user_large)
en in Firefox als voorbeeld
:fill(white):strip_exif()/f/image/FOG4OFSuZE026jO5HEUFZNUr.png?f=user_large)
Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag
Dankje.Damic schreef op zaterdag 18 november 2023 @ 12:27:
[Afbeelding]
en in Firefox als voorbeeld
[Afbeelding]

Verwijderd
[ Voor 93% gewijzigd door Verwijderd op 27-11-2023 16:56 . Reden: Verhelderend ]
Sorry maar hier is echt geen touw aan vast te knopen. Als je een vraag hebt, open dan even een eigen topic (zie onze Quickstart). Dit topic gaat over, zie de topictitel en topicstart, tools die je zelf gemaakt hebt en is dus niet bedoeld om te mijmeren over dingen waar je mee bezig bent (geweest)Verwijderd schreef op zaterdag 25 november 2023 @ 21:40:
Zo, ben ik van de week ergens achter gekomen. [...]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
https://developer.android...oid-basics-compose/course
en hier is mijn 1e app: een kookboek met 4 recepten erin:
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/JeeV4Y7FEUAQw5mjsmtSVUYr.jpg?f=user_large)
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/QRAxXCu9uRK0lseNZJ5mCBfb.jpg?f=user_large)
Supersimpel appje natuurlijk want ik was pas bij unit 3 maar wel lekker en gezond.
[ Voor 5% gewijzigd door Salvatron op 16-12-2023 06:18 ]
Lucht en leegte, zegt Prediker, alles is leegte.
https://jobhunt.firesphere.dev
I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
In het verleden heb ik al eens terug gegrepen naar zo'n Kai-OS toestel. Maar dan mis je opnieuw heel veel zaken die wel handig en nuttig zijn. Wat ik persoonlijk wat wil onderdrukken is het doelloos "bezighouden". Terugdenkend aan mijn jonge jaren had ik ooit hetzelfde met "Patience" spelen. De manier waarop ik er vanaf geraakt ben toen, was door de snelkoppeling te verplaatsen. Onnozel, maar het was puur een "gewoonte".
Een tijdje geleden ontdekte ik "Netguard". Dit is een tool waarmee je apps de toegang tot het internet kunt ontzeggen. In mijn geval dus vooral Chromium. Dat werkt eigenlijk heel goed. Maar toch is het imho nog te gemakkelijk om de tool terug af te zetten.
Ik heb de tool nu wat aangepast, zodat je enkel kunt unlocken door een voorgeschreven zin over te typen. Ik hoop dat dit voldoende is om het impulsieve weg te werken, en toch alles beschikbaar te houden.
Voor wie eens wil proberen:
https://seniorfoon.be/apks/NetGuard.apk
Momenteel nog een niet gesignde debug versie => manueel te installeren
Om te unlocken dus gewoon het zinfragment over typen
Geef gerust feedback
Zo is het mij gelukt om de GameCube-versie van Twilight Princess geheel uit te spelen met de volgende bewegingen:
- Zwaai rechter joy-con om met je zwaard te slaan
- Zwaai linker joy-con om met je schild te stoten
- Houdt de SL knop ingedrukt en blijf zwaaien met de rechter joy-con om de spin attack op te laden''
https://github.com/Standi...Motion-Controls/tree/main
Op lange termijn zal ik ervoor zorgen dat het in alle PC games werkt die een Xbox controller accepteren, maar voor het zover is stap ik misschien wel over naar een nieuwe versie Joy-Cons, mits Nintendo die dit jaar uitbrengt.
Grote vraag is wel . Hoeveel heeft ChatGPT gedaan en hoeveel heb je zelf gedaan?NoThankYou schreef op vrijdag 12 januari 2024 @ 12:45:
Ik vind 'motion control' games oprecht leuk en wil meer staand en actief gamen in plaats van op de bank te zitten, dus heb ik (met ChatGPT) een tool gemaakt om bewegingen met Nintendo Joy-Cons om te zetten naar inputs. Momenteel is het enkel handig voor programma's die tegelijk meerdere inputs accepteren, zoals Dolphin (GameCube emulator).
Zo is het mij gelukt om de GameCube-versie van Twilight Princess geheel uit te spelen met de volgende bewegingen:
- Zwaai rechter joy-con om met je zwaard te slaan
- Zwaai linker joy-con om met je schild te stoten
- Houdt de SL knop ingedrukt en blijf zwaaien met de rechter joy-con om de spin attack op te laden''
https://github.com/Standi...Motion-Controls/tree/main
Op lange termijn zal ik ervoor zorgen dat het in alle PC games werkt die een Xbox controller accepteren, maar voor het zover is stap ik misschien wel over naar een nieuwe versie Joy-Cons, mits Nintendo die dit jaar uitbrengt.
Andere vraag is waarom je een Standie's Motion Controls v0.60.py en Standie's Motion Controls v0.80.py in een version control systeem hebt staanWebgnome schreef op vrijdag 12 januari 2024 @ 14:59:
[...]
Grote vraag is wel . Hoeveel heeft ChatGPT gedaan en hoeveel heb je zelf gedaan?
[ Voor 8% gewijzigd door RobIII op 12-01-2024 15:01 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Hoe heb je een gifje gemaakt van je opgenomen video?Eliaz schreef op zondag 19 november 2023 @ 15:20:
Hoewel het meer lijkt op een recruiting prijsvraag en ik niet perse op zoek ben naar een baan, op deze grijze zondag de chipsoft prijsvraag (tweakers advertorial) opgelost inclusief grafische interface (html + Canvas 2D API):
[Afbeelding]
Hoe heb je opgenomen wat voor tool gebruik je daarvoor?
Is daar nog verschil in tussen mac,linux of windows?
Dit topic is niet bedoeld voor dergelijke vragen (Daarbij: google gewoon even "video to gif", "record screen windows/max/linux" ofzo; stuk voor stuk simpel te beantwoorden met een voor de hand liggende google/bing/duckduckgo opdracht).R.G schreef op vrijdag 12 januari 2024 @ 15:02:
[...]
Hoe heb je een gifje gemaakt van je opgenomen video?
Hoe heb je opgenomen wat voor tool gebruik je daarvoor?
Is daar nog verschil in tussen mac,linux of windows?
[ Voor 21% gewijzigd door RobIII op 12-01-2024 15:07 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
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.