Weerman,
Ik denk dat MFC goede framework is GUI programma in op te hangen. De compacte variant van MFC “WIN32GUI” laat zien dat je bij elke window een andere thread kan koppelen. Heb wel ergens gelezen dat MFC dat niet zo goed zou kunnen . Ligt natuurlijk aan de onderliggende structuur van MFC. MFC heeft het concept om documenten (objecten) in Windows-frames te hangen. Ik denk dat je dat in database zou behoren te doen. In het verkregen framework kan je database en netwerk initialiseren. Het thread gedeelte van MFC zouden we kunnen verbeteren door code te mergen met “Process Hacker”. Process Hacker haakt diep in Windows aan.
In mijn beeld zouden we naar platform moeten toewerken. Eigen stap verder denken dan het huidige GIT concept. Ik momenteel zo het totaal plaatje zo:
Ik zou het beetje willen vergelijken met het (chef)kok concept. Je hebt ingrediënten (de source code van verschillende projecten) en recepten om de source code te compileren en te linken . Daarnaast heb je recepten/werkwijzen om het mooi op het bord te presenteren. Denk hierbij aan de NSIS files om een installer programma’s voor de eindgebruikers te maken.
Hoe zie ik het voor mij?
Je start het GUI-programma op en je kan uit een lijst programma’s of soorten programma’s kiezen. Bijvoorbeeld kies ik grid distributies en geeft ook aan of het ook productie, acceptatie of test moet zijn en/of ze moeten kunnen compileren en linken.
Het programma (onderdeel NPackd) kijkt eerst welke (windows) updates en SDK’s je nodig hebt en gaat deze automatisch op je pc uitrollen.
Hierna gaat het programma opzoek naar de source code. Denk hierbij aan tabel in MySQL met Git URL’s. Het programma gaat daarna automatisch de source source downloaden (met Wget).
In een andere tabel dan de make files die de distributies nodig hebben. Het programma (onderdeel Ultimate++) gaat automatisch de Grid-distributies compileren en linken en als je wilt ook executeren.
N.B. De huidige make files zou je kunnen vertalen als recepten voor chef-koks. Hierin staat de volgorde van ingrediënten en hoeveel heden van producten. Je moet heel veel ervaring hebben om het te kunnen laten werken. Mijn moeder en broer haken direct af als ze fout melding zien op het scherm.
In mijn beeld zou naast aspecten soort ingrediënten en hoeveelheden ook de identificatie van het ingrediënt “Hash code” moeten staan. Je bent als het ware veel meer een “chef kok” bij Mac Donalds. ik denk persoonlijk dat deze standaardisatie een boost zou kunnen geven bij de ontwikkeling. Ik ben momenteel veel met zaken bezig die ook geautomatiseerd zou kunnen worden.
De make file zou zo “onafhankelijk” moeten zijn dat je distributie zou kunnen compileren en linken door alle files te gaan downloaden van de make file genoemde hashes.
Nog iets specifieker uitgelegd: Iemand heeft de make file gemaakt die mysql compileert en linkt. Deze kan in de vorm van GIT (of Fossil) benaderbaar zijn van Internet.
Stel het programma download de Mysql distributie. Door het uitvoeren van door iemand gemaakt “MySQL make file” komt programma er achter dat in een distributie één file ontbreekt die voor compileren en linken noodzakelijk is, dan probeert het programma de file te vinden op internet (via Bittorrent of je Vrienden-netwerk) om hierna de “compilatie/link”-activiteit te vervolgen.
Hoe zie ik de relatie tussen het programma en Github?
Ik zie dat alle (belangrijke) projecten naar Github gaan. Vaak zie ik dat ze gaan migreren van bijvoorbeeld google of sourceforge naar Github.
Ik zie Github als algemeen opslag systeem van source code van projecten. N.B. Als ik alle files van Github lokaal zou willen hebben, zou ik enorm veel harddisken moeten kopen. Lijkt mij niet zo verstandig. Het verzamelen van meta data van Github-distributies is denk ik wel behapbaar.
Om het programma goed te maken zou je als moderator van een distributie ook de wijzigingen ook weer gemakkelijk moeten kunnen pushen naar je Github project(en).
De hartelijke groet Jan Marco
Beoogde functionaliteit:
-
Bijwerken van het telefoonboekje in Excelgrid achtige programma, inclusief het uitgeven en bewerken van certificaten;
-
Automatisch uitrollen van noodzakelijke software/omgevingen die nodig zijn voor het compileren, linken of runnen van een project;
-
Automatisch ophalen source coce en kunnen compileren en linken van projecten in een IDE omgeving;
-
Signen van documenten en executables met eigen (aangemaakte) certificaten;
-
Verie controle van documenten. Het saven van document in IDE-programma doet “fossil add file…” in Fossil.
-
KeyPass tabel in MySQL aanmaken;
-
Blockchain (Bitcoins) implementatie;
-
virus scannen van documenten;
-
Firewall (Peerblock);
-
Bellen vanuit het telefoonboekje met SIP;
-
Webbrowser en PDF-viewer inbouwen;
-
Sftp inbouwen soortgelijk als Swish.
-
Static code analyse tools inbouwen.
-
Makefile maken die Chrome kan compileren.
-
Chrome aanpassen, zodanig dat men ing.nl/particulier lezen en de records in MySQL kan opslaan.