Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Nu online
@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?

Strava | AP | IP | AW


Acties:
  • +2 Henk 'm!

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

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

Features op de roadmap:
  • Party mode - voor op een feestje. Maak een lijst, deel QR code en iedereen kan nummers toevoegen, ongeacht de music streaming dienst die ze gebruiken
  • Shoot!!! laat maar weten!
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 & Nieuw :+ hahaha

Owner of DBIT Consultancy | DJ BassBrewer


Acties:
  • +2 Henk 'm!

  • smeerbartje
  • Registratie: September 2006
  • Laatst online: 15-09 20:48
Webgnome 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?
We hebben een github project, maar deze is nog private. Iets met secrets e.s. mee-committen :).
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
Voor de rest maken we gewoon gebruik van de APIs van de streaming services zelf. Dit zijn redelijk gedocumenteerd, maar af en toe echt wel buggy. Zou je overigens niet verwachten van partijen als Apple en Spotify :(. Inconsistentie in http responses, bijvoorbeeld idempotency issues.

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?

Acties:
  • +1 Henk 'm!

  • smeerbartje
  • Registratie: September 2006
  • Laatst online: 15-09 20:48
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 & Nieuw :+ hahaha
Ja toch!!!!! We gaan ermee aan de slag. Ik zal af en toe 'n update geven hier.

Acties:
  • +1 Henk 'm!

  • DennusB
  • Registratie: Mei 2006
  • Niet online
smeerbartje 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.
Thanks, mocht je hulp nodig hebben qua ontwikkeling of hosting : Je mag altijd DM'en :)

Owner of DBIT Consultancy | DJ BassBrewer


Acties:
  • +3 Henk 'm!

  • bluewalk
  • Registratie: Juli 2004
  • Niet online
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
Erg nice, vooral party mode zou een handige zijn!

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 _/-\o_

Acties:
  • +2 Henk 'm!

  • keavis
  • Registratie: Juli 2008
  • Laatst online: 15-09 22:22
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

Acties:
  • +6 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Naast de vrij successvolle IdGen (een .Net Twitter snowflake-alike ID generator) en NUlid (een .Net ULID implementatie) heb ik een paar maanden geleden ook veel plezier gehad met een paar contributors met 't bijschaven en verbeteren van HumanoID - een PHP library om een ID om te zetten in een aantal woorden en vice versa (bijvoorbeeld 96712 wordt sick-yellow-wolf en vice versa. Gek eigenlijk dat ik deze hier nog nooit gepost heb.

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


Acties:
  • +2 Henk 'm!

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 15-09 14:45

sopsop

[v] [;,,;] [v]

Ik keek ter lering en vermaak in je TwoFactorAuth code er viel me wat op:

code:
1
public const string Base32Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";


Waarom ontbreken 1, 8 en 9 daar?

=edit= Ah: Base32 alphabet, maximaal 32 letters in het alfabet dus 8)7
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 ]


Acties:
  • +1 Henk 'm!

  • Jogai
  • Registratie: Juni 2004
  • Laatst online: 08:34
keavis 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
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 ;)

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


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
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.)
• hash_equals() bestaat sinds PHP5.6 dus fallback kan weg gezien je 5.6 minimum eis.
• 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}


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
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.
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:
• 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. ;)
Daar wordt over gesproken en aan gewerkt ;)

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


Acties:
  • 0 Henk 'm!

  • keavis
  • Registratie: Juli 2008
  • Laatst online: 15-09 22:22
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 ;)
Voor zover ik weet niet; en helaas valt dan denk ik ook het halve huis uit. Tegenwoordig hangt alles aan het internet…

Acties:
  • +1 Henk 'm!

  • jozuf
  • Registratie: Augustus 2008
  • Laatst online: 02-09 11:06
Mijn projectje vandaag voorzien van een update naar versie 3..

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]

Acties:
  • +2 Henk 'm!

  • Jogai
  • Registratie: Juni 2004
  • Laatst online: 08:34
Cool, op r/selfhosted zijn ze helemaal wild van dashboards, als je nog wat aan promotie wil doen.

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


Acties:
  • +1 Henk 'm!

Verwijderd

Zo ben ik bezig met documenteren van mijn php framework, zal wel maart worden dat ik er klaar mee ben. Had gehoopt voor januari klaar te zijn maar ja. Als het af is mogen jullie er commentaar op geven.

net een test gedaan met mijn parser en het werkt:
code:
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 ]


Acties:
  • +4 Henk 'm!

  • Tweakersnetfan
  • Registratie: Oktober 2022
  • Laatst online: 25-03-2024
Met enige aarzeling vanwege het lage programmeerniveau plaats ik hier toch maar drie van mijn tools.

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.

Acties:
  • +1 Henk 'm!

  • w0rkw0rk
  • Registratie: Oktober 2022
  • Laatst online: 29-01-2024
Leuke thread! Wat ik de afgelopen maand heb gebouwd;

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. :9

Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 15-09 22:47
Een hele tijd terug heb ik een rules library gemaakt voor de ESP8266, maar die hoeft natuurlijk niet gebruikt te worden op een microcontroller. Al heb je voor reguliere omgeving het superieure LUA. De aanleiding was de HeishaMon. Een uitbreidingsbord voor een Panasonic warmtepomp gebaseerd op een ESP8266 die je in staat stelt de warmtepomp uit te lezen en via domotica te bedienen.

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 :) Toen kwam alleen het nadeel dat de mannen achter ESPEasy al veel langer door hadden. Een ESP8266 is niet zo makkelijk als het gaat om dit soort toepassingen. Ik leg het e.e.a. uit in de README van mijn eigen implementatie:
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.
Ik heb dus een rules library gemaakt die al deze nadelen weer te pareren, super snel is en volledig modulair:
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:
  • 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)
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.
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.




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


Acties:
  • +7 Henk 'm!

  • icerunner
  • Registratie: Augustus 2013
  • Laatst online: 10-05 18:17
Ik heb in 2 dagen een Telegram-ChatGPT chatbot geschreven. Vast normaal een eitje - maar: tot 3 dagen geleden had ik nog nooit Python geïnstalleerd - laat staan geschreven. Hoe dan? Met ChatGPT :*)

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 8)7

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!

Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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 ]


Acties:
  • +6 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
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!
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.

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


Acties:
  • 0 Henk 'm!

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 19-08 14:24

ZaZ

Tweakers abonnee

Ik heb 4 jongens die allemaal van gaming houden. Nu is het wel een beetje een uitdaging om ze hun huiswerk te laten maken. Steeds word ik gevraagd om te checken of ze niet op hun computers zitten te gamen ipv doen wat ze moeten doen. Na de duizendste razzia besloot ik om iets wat meer te automatiseren.
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


Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Nu online
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.
Dit, het is niet iets dat je gewoon even met een paar diensten aan elkaar wil klikken (terwijl dat technisch gezien dus gewoon kan )

offtopic:
Ik begin mij nu wel een beetje zorgen te maken over de wildgroei van dit soort 'experimentjes'die misschien zou kunnen gaan ontstaan

Strava | AP | IP | AW


Acties:
  • +3 Henk 'm!

  • icerunner
  • Registratie: Augustus 2013
  • Laatst online: 10-05 18:17
Wellicht ter geruststelling: Déze gaat niet gebruikt worden voor daadwerkelijke medische doeleinden. Maar je moet een beetje 'ahead of the game' blijven als je mee wilt blijven doen. Ik heb wat lopen proef draaien: hij komt eng ver met correct uitvragen en medische conclusies trekken. Vroeger of later zal mijn vak er erg anders uit gaan zien.

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".

Acties:
  • +2 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
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.

Wie du mir, so ich dir.


Acties:
  • 0 Henk 'm!

  • Daantje20
  • Registratie: Mei 2002
  • Laatst online: 21-08 14:41

Daantje20

Je moet leven om te leren.

(knip)

Sorry, kan het inderdaad niet laten zien, excuses.

[ Voor 87% gewijzigd door Daantje20 op 13-03-2023 13:32 ]


Acties:
  • +1 Henk 'm!

  • Jogai
  • Registratie: Juni 2004
  • Laatst online: 08:34
@Daantje20 Het doel van dit topic is 'showen' niet 'braggen'. (nofi)

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


Acties:
  • +8 Henk 'm!

  • flo12392
  • Registratie: December 2013
  • Nu online
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:


Een yaml bestand ziet er bijvoorbeeld zo uit:

YAML:
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

Bash:
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!

Acties:
  • +1 Henk 'm!

  • mcmd
  • Registratie: December 2004
  • Laatst online: 10:04
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]
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:
  • 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.
Leuk om dit te zien!

[ Voor 0% gewijzigd door mcmd op 28-03-2023 22:13 . Reden: correctie op formulering ]


Acties:
  • 0 Henk 'm!

  • flo12392
  • Registratie: December 2013
  • Nu online
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:
  • 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.
Leuk om dit te zien!
Bedankt dat je de tijd hebt genomen om het uit te proberen en je feedback te delen!

- 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.

Acties:
  • 0 Henk 'm!

  • psychodude
  • Registratie: Maart 2008
  • Laatst online: 06:50
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.
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.

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.

Acties:
  • +8 Henk 'm!

  • CrashKonijn
  • Registratie: Mei 2011
  • Laatst online: 25-07 15:20
Afbeeldingslocatie: https://tweakers.net/i/7iWUWWgttfs9DwtpZBs8z4exhA4=/full-fit-in/4000x4000/filters:no_upscale():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
Inmiddels heb ik meer dan 300 sterretjes op GitHub, en zijn er een paar mensen gejoined op Discord en actief bezig met GOAP implementeren in hub games.

Linkjes:
GitHub: https://github.com/crashkonijn/GOAP
Docs: https://goap.crashkonijn.com
Discord: https://discord.gg/dCPnHaYNrm

Afbeeldingslocatie: https://tweakers.net/i/7RRg_dYlReX4ANr6--s5SBcGh7k=/232x232/filters:strip_exif()/f/image/grydTjU5S0O4RoGKfru3IpDE.png?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/9-BMUgVbGaqmGo6vjV2DOJ-rlw4=/232x232/filters:strip_exif()/f/image/fnX7OOWtjlvBOOw3tuqCsbxa.png?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/j-mnehdwfSD8Qqx77CAtBtzwgso=/232x232/filters:strip_exif()/f/image/jrXLq800E23VbyoT0ouHERWz.png?f=fotoalbum_tile
Afbeeldingslocatie: https://tweakers.net/i/t2qIge-D9NKz2pjAtD3bLRvD7r0=/232x232/filters:strip_exif()/f/image/k17JtlabhHRiW0Kc6aI3ibnh.png?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/X3d1-T0fCbejgEoo51kDsjiDY30=/232x232/filters:strip_exif()/f/image/CGlQXvqfn1zVps72eTpgONBr.png?f=fotoalbum_tile

Acties:
  • +2 Henk 'm!

  • Treenaks
  • Registratie: April 2001
  • Laatst online: 15-09 08:22
Ik heb een tool gemaakt die de opwekgegevens van de inverters van mijn zonnepanelen uitleest, door middel van het SunSpec-protocol, 1x over Modbus-TCP en 1x over Modbus-RTU. Daarna publiceert het de gegevens via MQTT.

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

Acties:
  • +7 Henk 'm!

  • sambcg
  • Registratie: Oktober 2022
  • Laatst online: 09-06-2023
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


Acties:
  • +1 Henk 'm!

  • MrSenne
  • Registratie: Maart 2012
  • Laatst online: 15-09 14:18
Het kan aan mij liggen, maar bij "Doorzichtigheid" op 100 verwacht ik dat het doorzichtig is, niet omgekeerd. :)

Voor de rest leuk gedaan, maar heel gemakkelijk om uit de map te vallen. :+

Acties:
  • 0 Henk 'm!

  • sambcg
  • Registratie: Oktober 2022
  • Laatst online: 09-06-2023
Oh ja, ik maak vaak eerst alles in het Engels dus vanuit 'opacity' 100 was dat een vertaalfout.

Acties:
  • 0 Henk 'm!

  • D4NG3R
  • Registratie: Juli 2009
  • Nu online

D4NG3R

kiwi

:)

[knip] tijd voor meer koffie. O-)

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


Acties:
  • 0 Henk 'm!

  • sambcg
  • Registratie: Oktober 2022
  • Laatst online: 09-06-2023
Three.js is zeker leuk om dingen mee te maken, zolang het niet te complex is. We kunnen wel een Tweakers community game maken :)

Acties:
  • +3 Henk 'm!

  • murphsy
  • Registratie: Januari 2009
  • Laatst online: 15-09 12:40

murphsy

Product Monkey

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:
  1. Performance van de map is slecht, vooral als je uitzoomt
  2. Sommige stukken NL hebben nog erg weinig routes
  3. Iets van gamification om te prikkelen om ook daadwerkelijk te wandelen zou mijn missie ondersteunen
  4. Routes kunnen foto's gebruiken om meer tot de verbeelding te spreken
Feedback welkom!

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.

Acties:
  • +1 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 10:07
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:
  1. Performance van de map is slecht, vooral als je uitzoomt
  2. Sommige stukken NL hebben nog erg weinig routes
  3. Iets van gamification om te prikkelen om ook daadwerkelijk te wandelen zou mijn missie ondersteunen
  4. Routes kunnen foto's gebruiken om meer tot de verbeelding te spreken
Feedback welkom!

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.

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).

Acties:
  • +2 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 15-09 22:04
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]
Nu nog multiplayer toevoegen, iedereen een paint-ball gun in de hand, en alles kan helemaal onder ge-splattered worden. :)

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • +2 Henk 'm!

  • murphsy
  • Registratie: Januari 2009
  • Laatst online: 15-09 12:40

murphsy

Product Monkey

Kalentum 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).
Dankjewel. Geen van de organisaties wil ook meewerken. Helaas allemaal alleen voor eigen gewin |:(

Acties:
  • +4 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
LastPass 2FA CLI authenticator

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


Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Nu online
murphsy schreef op woensdag 10 mei 2023 @ 19:43:
[...]


Dankjewel. Geen van de organisaties wil ook meewerken. Helaas allemaal alleen voor eigen gewin |:(
Herkenbaar helaas. Heb je plannen voor een Android variant?

Strava | AP | IP | AW


Acties:
  • +2 Henk 'm!

  • murphsy
  • Registratie: Januari 2009
  • Laatst online: 15-09 12:40

murphsy

Product Monkey

Webgnome schreef op vrijdag 12 mei 2023 @ 06:28:
[...]


Herkenbaar helaas. Heb je plannen voor een Android variant?
Op termijn wel!

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:

Afbeeldingslocatie: https://tweakers.net/i/XlOK9_Dw8_db-JX3prCT_uIRxCM=/x800/filters:strip_exif()/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:

Afbeeldingslocatie: https://tweakers.net/i/ZX12hT8erb03JEHqaaJY-xlt_gY=/x800/filters:strip_icc():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.

Afbeeldingslocatie: https://tweakers.net/i/v5pl1ZYRNwMuUZO-3PdNJ9Sn6Mc=/x800/filters:strip_exif()/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:

Afbeeldingslocatie: https://tweakers.net/i/f6-w3AH57Kf8gcJgm2Y0GeLZu0U=/x800/filters:strip_icc():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.

Acties:
  • 0 Henk 'm!

  • Noxious
  • Registratie: Juli 2002
  • Laatst online: 10-09 14:45
Een simpele OpenAI ChatGPT chatbot voor Telegram:

Afbeeldingslocatie: https://github.com/DoogeJ/OpenAITelegramBot/raw/main/james.png

https://github.com/DoogeJ/OpenAITelegramBot :)

Acties:
  • 0 Henk 'm!

  • biomass
  • Registratie: Augustus 2004
  • Laatst online: 15-09 20:39
Voordat ik mijn DSL verbinding echt kwijt raak aan een nieuwe glasvezel heb ik mijn Fritz!BOX logging tool een flinke update gegeven. Zowel het nieuwe als oude eventlog formaat wordt ondersteund (mijn 7583 draait nu op FRITZ!OS 7.50) en de problemen met het opslaan van dubbele events zou nu een flink stuk minder moeten zijn.

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

Acties:
  • +10 Henk 'm!

  • wez3
  • Registratie: December 2016
  • Laatst online: 05-10-2024
Hi Tweakers,

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
  1. aanmelden kan via de website: hier dient de domeinnaam opgeven te worden van de te beschermen website en een emailadres voor notificaties
  2. 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.
  3. 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:
Afbeeldingslocatie: https://raw.githubusercontent.com/didsomeonecloneme/didsomeonecloneme.github.io/master/uploads/screenshot.png

Dit is een voorbeeld van een email die verstuurd wordt als een malafide kopie gedetecteerd is:
Afbeeldingslocatie: https://ps.w.org/did-someone-clone-me/assets/screenshot-1.png
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
Tot nu toe lukt het aardig om de kosten laag te houden. Het systeem heeft zo'n 11 miljoen HTTP verzoeken per maand te analyseren, en de totale kosten zijn 0.15 euro cent per maand :P. Dit is vooral dankzij Cloudflare mogelijk.
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.

Acties:
  • +3 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
wez3 schreef op woensdag 5 juli 2023 @ 21:57:
Als jullie feedback / opmerkingen hebben is dat van harte welkom.
Allereerst: Mooi project, mooi doel en mooi streven d:)b

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?
wez3 schreef op woensdag 5 juli 2023 @ 21:57:
en de totale kosten zijn 0.15 euro cent per maand
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:41 :X Dergelijke bagger HTML zie je sinds Y2K zelfs niet meer, en ik heb toch heel wat ellende gezien door de jaren :o 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 :P )

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


Acties:
  • 0 Henk 'm!

  • wez3
  • Registratie: December 2016
  • Laatst online: 05-10-2024
RobIII schreef op woensdag 5 juli 2023 @ 22:15:
[...]

Allereerst: Mooi project, mooi doel en mooi streven d:)b

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:41 :X Dergelijke bagger HTML zie je sinds Y2K zelfs niet meer, en ik heb toch heel wat ellende gezien door de jaren :o 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 :P )

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.
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% natuurlijk :). Mijn ervaring is wel dat de phishers hiervoor niet zoveel moeite doen. Zolang de layout goed is, wordt het gebruikt. Vaak laten ze referenties naar externe sites gewoon staan, externe IMG-links of hele Google Analytics JS-code bijvoorbeeld. Ze nemen het vaak niet zo nauw ;) Je zal het vaak toch moeten hebben van de "foutjes" die ze maken.

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 O-)

Acties:
  • +2 Henk 'm!

  • 2mb
  • Registratie: Mei 2004
  • Laatst online: 08:59

2mb

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.

Afbeeldingslocatie: https://browserdaw.com/assets/browserdaw-og.png

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


Acties:
  • 0 Henk 'm!

  • Stukfruit
  • Registratie: Oktober 2007
  • Niet online
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.
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? :P

Ook na het maken van een clippie niet.

Dat zit wel Schnorr.


Acties:
  • +1 Henk 'm!

  • 2mb
  • Registratie: Mei 2004
  • Laatst online: 08:59

2mb

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

[ Voor 12% gewijzigd door 2mb op 06-07-2023 20:34 ]

Mijn muziek op SoundCloud - Speel online rikken - Maak muziek in je browser


Acties:
  • +1 Henk 'm!

  • MASiR
  • Registratie: Oktober 2001
  • Laatst online: 09-08 10:13

MASiR

battlefield gameplay montages

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:
  1. Performance van de map is slecht, vooral als je uitzoomt
  2. Sommige stukken NL hebben nog erg weinig routes
  3. Iets van gamification om te prikkelen om ook daadwerkelijk te wandelen zou mijn missie ondersteunen
  4. Routes kunnen foto's gebruiken om meer tot de verbeelding te spreken
Feedback welkom!

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 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.

k0yagaming - battlefield gameplay


Acties:
  • 0 Henk 'm!

  • Stukfruit
  • Registratie: Oktober 2007
  • Niet online
2mb 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
Die doet het inderdaad wel. Leuk spul :)

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 :Y

Dat zit wel Schnorr.


Acties:
  • 0 Henk 'm!

Verwijderd

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 gebruik zelf renoise op een laptop tegenwoordig mooi spul! Maar ik doe echt basic trance / techno.

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.

Acties:
  • 0 Henk 'm!

Verwijderd

Zo doe ik ook maar ff een status update van mijn php framwork. Ik dacht in maart afgelopen jaar wel klaar te zijn met versie 1, maar helaas het heeft anders gelopen en ben momenteel bezig met een grote wijziging. Ik had al een jaar een idee om wat met json te doen, maar vond de requirements van mongo db te zwaar, toendertijd 4cores zoveel ram etc, mij te veel voor mijn doelgroep. Dus ben ik toch overstag gegaan en zelf wat in elkaar geflanst en heb het tot mijn 2e package gedropt voor mijn framework, maar verplicht gemaakt. Mijn 1e package is een javascript library. Het is een objects store geworden met binary search. Die binary search had ik eerst al json objecten, maar dat zat uiteindelijk toch een bug in bij 1 miljoen records listen. Ging mis bij item 282. Toen heb ik het herschreven na 2 type bestanden. Een zogenaamd connect en een gesorteerde lijst btree. Dit gaat nu allemaal goed en is uiteindelijk sneller, dan werken met objecten. Met cache erbij haalt ie nu soms 0,54 msec voor 11 event objects. Zodoende kan ik ook de config, routes ophalen etc. Zonder mysql, maar wel als data opslaan. Dit is ook voor mijn toekomstig cms wat ik op het framework wil bouwen handig, dan wordt sql (doctrine) optioneel.

Acties:
  • +1 Henk 'm!

  • Jogai
  • Registratie: Juni 2004
  • Laatst online: 08:34
Kun je als je uitgerust bent eea misschien structureren? Of op zn minst wat links erbij geven?

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


Acties:
  • 0 Henk 'm!

  • brenrecorder
  • Registratie: Augustus 2023
  • Laatst online: 14-05 10:58
Afbeeldingslocatie: https://tweakers.net/i/U-A3AqTpg9w2zLpIVHeJ9fvM06s=/full-fit-in/4000x4000/filters:no_upscale():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
Afbeeldingslocatie: https://tweakers.net/i/aduLYnMlMBUStq5DiVm_MaIwtak=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/8GBPwSpQlywDjsfJsAKVmEY8.png?f=user_large

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Wat is de bedoeling van je topic? Wil je een code review? Wil je dat we je database wissen?

[ 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...


Acties:
  • +3 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
@brenrecorder Ik heb je topic (Simpel sudoku spel - singleplayer & multiplayer) gemerged met dit topic ([Alg] Welke tools heb jij gemaakt? - deel IV).

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 :P

[ 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


Acties:
  • +6 Henk 'm!

  • Martijn-V4
  • Registratie: Januari 2007
  • Laatst online: 15-09 21:07
Ik heb voor een zelf ontworpen weerstation, inclusief de software, inmiddels ook een client gemaakt. Ik heb deze geschreven in Python met als gui library PyQt versie 6:

Afbeeldingslocatie: https://tweakers.net/i/dyH70quHBEmvNLMehDo3NyNBSME=/800x/filters:strip_exif()/f/image/oB4HVGrAwfsrHnY2VIrzBekN.png?f=fotoalbum_large

Er is nog een hoop te doen maar vooralsnog werkt alles, data word elke seconde bijgewerkt.

Afbeeldingslocatie: https://tweakers.net/i/Zznm7oIafj27bXD5wIG6Q9S8mPU=/x800/filters:strip_exif()/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.

Afbeeldingslocatie: https://tweakers.net/i/2y8PS0BeGdgyXsN4imU1bwy-bxI=/800x/filters:strip_exif()/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):

Afbeeldingslocatie: https://tweakers.net/i/Cotn2rqmtzSOeeOy8SfqhARQEJE=/x800/filters:strip_exif()/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 ]


Acties:
  • +1 Henk 'm!

Verwijderd

Afbeeldingslocatie: https://tweakers.net/i/KQJVaZT5Lem6qZ85rmo8PCyU1vc=/800x/filters:strip_exif()/f/image/YvrVaEUM8gtBOVJStgq7gzSF.png?f=fotoalbum_large

had eigenlijk iets anders gepost, maar dit is momenteel mijn admin scherm.... met file manager, ben nu bezig met het keyboard implementeren

Acties:
  • +4 Henk 'm!

  • Jogai
  • Registratie: Juni 2004
  • Laatst online: 08:34
Uh oh, @Verwijderd kon weer niet slapen ... (sorry, niet persoonlijk bedoeld, maar ik snap je posts gewoon niet)

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


Acties:
  • 0 Henk 'm!

Verwijderd

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)
Wat snap je niet dan, dan leg ik het uit...

Acties:
  • +7 Henk 'm!

  • amphora
  • Registratie: December 1999
  • Laatst online: 10:47

amphora

Websites & Fotografie

Verwijderd schreef op maandag 7 augustus 2023 @ 17:52:
[...]


Wat snap je niet dan, dan leg ik het uit...
Ik denk meer info? Admin scherm, voor wat, waarmee, waarom? Waarom vind je dit het delen waard?

nickdekruijk.nl Websites & Fotografie


Acties:
  • +4 Henk 'm!

  • Jogai
  • Registratie: Juni 2004
  • Laatst online: 08:34
Verwijderd schreef op maandag 7 augustus 2023 @ 17:52:
[...]


Wat snap je niet dan, dan leg ik het uit...
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.

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


Acties:
  • +1 Henk 'm!

Verwijderd

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

Acties:
  • +2 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Nu online
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...
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.

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

Verwijderd

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.
Je hebt ook saab, rijdt iemand dat nog, of wil je een Ferrari, bugatti? :+

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 ]


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 09:07

pietje63

RTFM

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"

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • +3 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 10:07
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"
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.

Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 09:07

pietje63

RTFM

@Kalentum
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!!


Acties:
  • 0 Henk 'm!

  • Kenhas
  • Registratie: Oktober 2006
  • Laatst online: 09:24
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:
  1. Performance van de map is slecht, vooral als je uitzoomt
  2. Sommige stukken NL hebben nog erg weinig routes
  3. Iets van gamification om te prikkelen om ook daadwerkelijk te wandelen zou mijn missie ondersteunen
  4. Routes kunnen foto's gebruiken om meer tot de verbeelding te spreken
Feedback welkom!

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.
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.

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 ;) ). Om eerlijk te zijn, wist ik ook niet van die FireStore. 1GB voor data is toch al redelijk ruim. Dan de foto's nog ergens kwijt geraken.

2x Marstek Venus E 5.12 v153 - CT003 V117 - BMS 213 en 215


Acties:
  • +12 Henk 'm!

  • Plnda
  • Registratie: Maart 2012
  • Laatst online: 04-08 13:09
Ik ben al een tijdje bezig (lees 6 maanden) met een SCIFI looter shooter, ben overdag een iOS / Unity developer maar in mijn vrije tijd maak ik graag games. Ik weet dat het niet echt een tool is maar wilde het toch even laten zien :)

[ Voor 13% gewijzigd door Plnda op 28-09-2023 16:47 ]


Acties:
  • +1 Henk 'm!

  • mcmd
  • Registratie: December 2004
  • Laatst online: 10:04
Recentelijk heb ik een python script gemaakt met mijn doel om te checken of de Windows backup niet gecompromitteerd is. Als achtergrond, backup van Windows komt op een Linux systeem terecht. Op het Linux systeem check ik met een script of de file magics kloppen met wat verwacht wordt. Dus dat een .pdf file een PDF document is etc. Als het niet klopt dan wordt het gerapporteerd.
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

Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
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.
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)?

[ 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


Acties:
  • 0 Henk 'm!

  • mcmd
  • Registratie: December 2004
  • Laatst online: 10:04
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)?
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.
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 ]


Acties:
  • +2 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
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.
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?
Deze file, bijvoorbeeld, wordt door "libmagic" geheid herkend als JPG maar is gewoon een tekstfile met 4 gekke bytes aan 't begin ;) Download 'm maar eens en kijk wat libmagic zegt (zelf niet geprobeerd, wel met file) en open 'm dan eens met notepad ofzo.

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


Acties:
  • 0 Henk 'm!

  • mcmd
  • Registratie: December 2004
  • Laatst online: 10:04
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.
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.

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 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
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.
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:
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.
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:
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).
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:
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 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:
Laatste wat ik kan noemen is dat het berekenen van de hash (veel) meer tijd zal kosten dan het "Magic" gebeuren.
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:
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.
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:
Bij ontwikkelen zag ik ook een voorbeeld dat bestanden met .jpg extensie toch echt .png files waren.
Het kan voorkomen dat iemand een bestand met een verkeerde extensie opslaat (bewust of onbewust), maar hoe is dat hier verder relevant?

Nogmaals, vergeef me mijn gezaag - als jij er blij mee bent is 't helemaal d:)b Ik zie zelf gewoon echt de usecase niet.

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


Acties:
  • +3 Henk 'm!

  • hcfman
  • Registratie: Oktober 2023
  • Laatst online: 23-06-2024
Hallo, ik heb onlangs de ontwikkeling van deze geluidslokalisator voor de Raspberry Pi afgerond.

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.

Acties:
  • +5 Henk 'm!

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

Firesphere

Yoshis before Hoshis

Ik zie steeds meer links in nieuws die via Google redirect gaan.
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!


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 15-09 22:04
Topic Tattle

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!

Afbeeldingslocatie: https://tweakers.net/i/5E5HTJZaUvXZR72qIA_cdQz7slo=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/OpYhoQyLNJ07XKJWVZTM5zzz.png?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/gFdNxyMFzkmUvdX0yKQgMDQLtn0=/800x/filters:strip_exif()/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. 8)7

[ Voor 9% gewijzigd door ZpAz op 18-11-2023 14:40 ]

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • Damic
  • Registratie: September 2003
  • Laatst online: 06:51

Damic

Tijd voor Jasmijn thee

@ZpAz Tweakers heeft wel notificaties. Onderaan klikken op Post reminder en dan dat vinkje afzetten. Ook zien dat tweakers in de browser notificaties mag tonen = klikken op de bel en dan Push notificaties aanzetten

[ 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


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 15-09 22:04
Wut. Nou ja zeg. 8)7 Hoe zet ik die aan dan? Het belletje hier verschijnt niet in mijn notification center?

Afbeeldingslocatie: https://tweakers.net/i/6wKs5MZ_8G9eqZE2NV7XaFxA4XM=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/oB8h6CwgTGNIFpxfLhuZLFcd.png?f=user_large

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • Damic
  • Registratie: September 2003
  • Laatst online: 06:51

Damic

Tijd voor Jasmijn thee

Afbeeldingslocatie: https://tweakers.net/i/eufJG8p2Rp-Zaf89z07b5bvsoBU=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/FqmYBzxqixBPIfS2kiDLTcbb.png?f=user_large
en in Firefox als voorbeeld
Afbeeldingslocatie: https://tweakers.net/i/DyTnadklF7f4eatz8nbeWOSzcQs=/full-fit-in/4000x4000/filters:no_upscale():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


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 15-09 22:04

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • +5 Henk 'm!

  • Eliaz
  • Registratie: Juli 2010
  • Laatst online: 09-09 15:42
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):

Afbeeldingslocatie: https://gcdnb.pbrd.co/images/P4wILVsVHg5A.gif

Acties:
  • 0 Henk 'm!

Verwijderd

Zo, ben ik van de week ergens achter gekomen. 2 maanden werk voor niets...

[ Voor 93% gewijzigd door Verwijderd op 27-11-2023 16:56 . Reden: Verhelderend ]


Acties:
  • +4 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op zaterdag 25 november 2023 @ 21:40:
Zo, ben ik van de week ergens achter gekomen. [...]
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) ;)

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


Acties:
  • +7 Henk 'm!

  • Salvatron
  • Registratie: April 2003
  • Niet online

Salvatron

Dispereert niet

Ik ben deze gratis cursus (Kotlin en Jetpack Compose) van Google aan het doen:

https://developer.android...oid-basics-compose/course


en hier is mijn 1e app: een kookboek met 4 recepten erin:

Afbeeldingslocatie: https://tweakers.net/i/v-Fro3R9EEAMMxWQn-wvV_KEdqU=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/JeeV4Y7FEUAQw5mjsmtSVUYr.jpg?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/SqFRYpVmCyDaqXaKmP4AomvtMnI=/full-fit-in/4920x3264/filters:max_bytes(3145728):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.


Acties:
  • +4 Henk 'm!

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

Firesphere

Yoshis before Hoshis

Aangezien ik gezellig werkloos ben momenteel, heb ik een online-tooltje gemaakt die me helpt bij te houden waar ik heb gesolliciteerd, wat de status is, etc.
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!


Acties:
  • +3 Henk 'm!

  • woutervh
  • Registratie: Mei 2006
  • Laatst online: 12-09 00:05
Reeds jaren erger ik me blauw aan mijn eigen smart phone gebruik. Vanaf ik eens 10 seconden "vrij" heb, komt deze uit de zak en wordt er wat gesurft. Niet alleen gaat er zo eigenlijk veel kostbare tijd verloren. Maar het is ook heel asociaal en eigenlijk voor niets goed. (In het extreme getrokken, maar daar komt het wel wat op neer).
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

Acties:
  • +1 Henk 'm!

  • NoThankYou
  • Registratie: Mei 2015
  • Laatst online: 09:00
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.

Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Nu online
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.
Grote vraag is wel . Hoeveel heeft ChatGPT gedaan en hoeveel heb je zelf gedaan? 8)

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Webgnome schreef op vrijdag 12 januari 2024 @ 14:59:
[...]

Grote vraag is wel . Hoeveel heeft ChatGPT gedaan en hoeveel heb je zelf gedaan? 8)
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 staan :P (Ja, wordt uitgelegd in de README)

[ 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


Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Nu online
Dat had ik nog niet eens gezien maar inderdaad. Dat is niet nodig. Toch benieuwd naar wat je er van hebt geleerd en of je met de kennis van nu het zonder gpt zou kunnen

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • R.G
  • Registratie: Januari 2009
  • Laatst online: 01:49

R.G

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

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
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?
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).

[ 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

Pagina: 1 ... 51 ... 54 Laatste

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