Foonsearch

Nee, even maar, ik hou mijn jas aan alleen zag ik dit voor je:

List of languages that compile to JS

C/C++

Name - Emscripten

Description - LLVM to JavaScript compiler. LLVM is “an aggressive open-source compiler for C and C++,” as well as other languages.

Opgezocht wat LLVM is:

LLVM is a compiler infrastructure designed to allow optimization of programs written in arbitrary programming languages.

Naar de website:

Emscripten

Emscripten is an LLVM-based project that compiles C and C++ into highly-optimizable JavaScript in asm.js format. This lets you run C and C++ on the web at near-native speed, without plugins.

About page zegt: for demos, see the list on the wiki. Kijken wat het kan:

Emulators

Geen kattepis, werkend, met Solitaire en al, gewoon in de browser. Alleen moet dat Chrome zijn.

Hoi Weerman,

LLVM is a compiler infrastructure designed to allow optimization of programs written in arbitrary programming languages.

LLVM zit ook in ClamAV. Het bevat 500.000 regels C++ source code. Is denk ik maar een deel van het LLVM project.

De hartelijke groet Jan Marco

Hoi Weerman,

Ik heb nu twee weken vrij genomen. Het is mij net gelukt om TortoiseGit en GIT in Visual Studio te compileren. Voor GIT moet je `Checking out vs/master´ branch intoetsen. Recursive is vaak ook handig. Zoek hij soms onderliggende projecten zelf op:

Net Win32-OpenSSH gecompileerd. Je moet sshd_config file bij executable zetten en ik zie hier dat ik met script programma kan installeren.

Normaal ga ik op zoek naar een installer programma, maar zo kan het dus ook. :slight_smile:

De hartelijke groet Jan Marco

Hoi Weerman,

Ik ben al hele week bezig om Explorer++ aan de praat te krijgen. Ik wil Explorer++ als paraplus programma gebruiken. Vandaag wil ik kijken of ik VeraCrypt kan compileren. VeraCrypt natuurlijk ook in de Explorer++ hangen. Ook de VPN verbindingen naar je vrienden in Explorer++ laten zien. Het is handig om in zelfde “Windows habitat” te blijven. Kan ik mijn moeder uitleggen wat ze moet doen. :smile:

Explorer++ wordt niet meer onderhouden:


In mijn beeld kan je zulke programma’s gemakkelijk ‘up to date houden’ in een goede versiebeheertool.

Ik heb de source code uit originele project getrokken en in een tiental files ondergebracht:

Een uitdaging is om files te gaan mappen op beschrijving_bestandsnaam. Wat ik weer willen mappen op een MySQL tabel:


Lijkt mij leuk om de attributen verder uit te werken. Wat is de “stemming” (engels mood) van een bestand (kan ook foto of video zijn)? Je zou attribuut ‘nepnieuws’ kunnen maken. In mijn beeld zou je van inverse uit moeten gaan.

Een Auteur heeft bepaalde betrouwbaarheid (image, sociale status, etc.) en elke artikel/post van een Auteur heeft ook weer bepaalde betrouwbaarheid. In Cdfoon worden bijvoorbeeld de NRC auteurs opgenomen. De artikels/post van de NRC auteurs hebben bepaalde betrouwbaarheid. Het zou vreemd zijn als artikel van NRC auteur “nepnieuw” zou zijn. N.B. Tweede kamerleden kunnen ook auteurs van moties zijn. Hebben m.i. een hoge betrouwbaarheid.

De hartelijke groet Jan Marco

P.S. Het duurde lang dat ik Explorer++ aan de praat kreeg omdat hij blijkbaar een dll voor taalconversie verwacht en hij checkt op versie van executable. Ik heb even deze check op originele executable gezet en dan loopt hij door. Even uitzoeken wat ik moeten aanpassen dat hij mijn eigen gecompileerde executable ‘pakt’. N.B. Ik ben niet gelukkig met dll’s voor elke land 1. Ik stop liever de vertaling van Explorer++ in MySQL.

Links ‘mijn’ versie, rechts orgineel:

Hoi Weerman,

Ik zie in Explorer++ dat ze de versies van de dll en executable met elkaar vergelijken. Indien versies verschillen gaat programma stuk. Ik heb deze check er nu uitgehaald. Ik ben nu aan het kijken of ik de language dll er ook uit kan halen. Voor elk programma geldt dat ze afhankelijk van het land (taal) ze andere strings tonen. Eigenlijk wil ik voor een oplossing gaan die ik generiek kan inzetten.

Om deze puzzel op te lossen wil ik kijken naar Wikipedia MySQL structuur en de Fossil (versiebeheer) artefact structuur.

“Tabelstructuur” waar in nu aan denk:
Hash_Artefact, Hash_Language, Unicode_Text, LinkToWikiPedia
Hash(”Add Bookmark”), Hash(Engels), L”Add Bookmark”,
Hash(”Add Bookmark”), Hash(Nederland), L”Favoriet Toevoegen”,

Je zou in WikiPedia page structuur uitleggen wat “Favoriet Toevoegen” inhoudt.

Als je naar de source code kijkt heb je verwijzingen naar de resource file:

Ik denk meer om dit te automatiseren, dus door de resource structuur te vertalen op de Ultimate++ (pop-up) menu structuren.

ExplorerPIN (mijn nieuwe naam voor Explorer++) gebruikt ExplorerPINNL.dll voor de taalconversie:

Het programma ResFile.exe is van UltimateToolbox:

Je kan de verschillende onderdelen selecteren van een resource gedeelten van exe- en dll files.

Net als je op map file kan verder selecteren, zou je ook op een dll of exe file verdere virtuele selectie kunnen maken. N.B. Dubbel klikken blijft natuurlijk wel opstarten van een executable.

De hartelijke groet Jan Marco

Hoi Weerman,

Vanmorgen 68 databases MySQL databases aangemaakt. Ik wil koppeling met opencat- en wiki-database maken:




Ik heb alle code om op deze databases structuur filters te gaan bouwen. Sommige database zijn specifiek voor MySQL en zouden onder generieke database (infrabase o.i.d) gegroepeerd kunnen worden. Indien je op deze infrabase klikt zie je een groep met (infra) databases. N.B. Elke persoon kan eigen filters definiëren (is de bedoeling).

Bijvoorbeeld je hebt vacature sites. “jobbird” en “monsterboard” zitten in dezelfde categorie in database opencat. Als je een ‘database’ uit een bepaald categorie selecteert, zou je ook meest gebruikte database kunnen laten selecteren.

Eigenlijk heb je met tabellen zelfde taal-puzzel als met de resource-strings. Bijvoorbeeld huisarts is Nederlands. Ik denk dat ik voor generieke hash(“docter”) ga. In Engeland kan je bij deze hash “general practitioner” beter plaatsen. Deze term wordt geloof ik meer gebruikt in Engeland. Het is m.i. erg belangrijk om goede omschrijving per land te krijgen. Omdat je met een generieke hash en een specifieke hash, kan je dit m.i. laagdrempelig laten aanpassen. Beetje de wiki pagina revisie methode daarbij gaan gebruiken:

Nu ik uurtje heb nadacht is docter eigenlijk generiek (net als productsoort) en huisarts een versie van productsoort, naast chirurg, internist, etc.

Ik ga deze week veel met de MySQL database structuur aan de gang. :slight_smile:

De hartelijke groet Jan Marco

Hoi Weerman,

Vandaag aan het zoeken naar SQL code om tabellen te maken van projecten zoals Crowdfunding. Ik liep tegen afkorting ‘ETL’ aan, had ik nog nooit van gehoord. Het is blijkbaar al wel oud concept:

ETL stands for extract, transform and load, the processes that enable companies to move data from multiple sources, reformat and cleanse it, and load it into another database, a data mart or a data warehouse for analysis, or on another operational system to support a business process.

Ik ben meer voorstander van decentrale databases. Indien je Kvk nummer hebt dan met online koppeling met Kvk-site record checken.

Ik vond ook WhereHows architectuur van LinkedIn:

In one sentence, WhereHows collects metadata from various sources, standardizes and models it together, and serves as an integrated metadata repository for many analytical purposes.

The name WhereHows combines two important points for your data: WHERE is the data, and HOW is it produced/consumed.

Four data components:
• Datasets: Dataset schema, comments, sample data…
• Operational data: flow group, flow, job, job dependency, execution, id map tables (helper tables to generate unique IDs)
• Lineage data: input and output of jobs, dependency, partition, high watermark
• WhereHows ETL and Web UI/Service: configurations

The datasets and Operation data are just like two endpoints, and the lineage data is the bridge that connects the two nodes. In this way, a user can either start from a dataset to explore which jobs produce or consume it, or start from a job to check what datasets it reads from or writes to.

One key point of the design of the data model is we want to keep it as general as possible, so datasets, operation data, and lineage data from different system can fit in the same schema, and query by the same strategy.

Overview alleen als achtergrond informatie/inspiratie bedoeld:

Ze hebben veel interessante tabellen in WhereHows bijvoorbeeld git_metadata.sql.

Eergisteren ook naar SQL tabel voor Logging gekeken. Ik vond eventdb. In mijn beeld kan volgend plaatje veel beter gemaakt worden:

Nxlog die leest eventlog van Windows systeem uit. Met de WIn32-ssh (server) kan je de logging weer raadplegen. Ook zou je met gepatchte ssh-server applicaties/databases (met versiebeheer) kunnen uitrollen met ("Nullsoft_installer-, Npackd-, Fossil- en Git- commando’s).

De hartelijke groet Jan Marco

Hoi Weerman,

Ben weer met wegsegment bezig. Issue wat ik heb is dat een kolom een numerieke waarde heeft en overeen komt met een beperkte set attributen. Ik zie nu dat je in SQL deze oplossing ook kan aangeven. In de client SqlYog is ook geprogrammeerd dat hij deze selectie weer laat zien.

Je kan drie manieren ‘oplossen’:

  1. de enum (‘string1’, ‘string2’, etc) oplossing van SQL gebruiken. Ik denk wel dat de stings in tabel komen, dus database veel groter wordt dan als je alleen een getal opslaat.

  2. de numerieke waarde in tabel opslaan en zelf de attributen in SQLyog programmeren.

  3. de attributen (“string”) in wegsegment opnemen. Wat neer komt op het ‘vertalen’ van de integer in overeenkomstige tekstwaarden. Nadeel is dat je ook andere niet relevante waarden in veld kan krijgen.

Weerman, Heb jij advies wat beste is? N.B. Zie wel veel wegsegmenten records.Daarbij heb je issue van taal. “Autoweg” ipv “Motorway”. Je zou het zo moeten maken dat elke land eigen taal-view heeft. Denk zelf aan om alle attributen in de database-bron te vertalen in substring(hash(engelse term=bijv “Motorway”), 1, 5), dan in SqlYog afhankelijk van taal deze hash in Nederlandse attribuut “Autoweg”. Beetje zelfde als met de categorie-en discussie. Nadeel is dat je hash strings ipv ‘human readable strings’ ziet in de database-bron indien je een niet gepatchte database viewer gebruikt. We kunnen altijd nieuwe standaard definiëren, waarop anderen zich kunnen aansluiten.:heart:

De hartelijke groet Jan Marco

Appendix A: Deel van de SQL:

Appendix B: SQL selectie scherm:

Dacht aan ‘nodes’ => ‘edges’ => ‘graph’:

Does it Make Sense to Map a Graph Data-structure into a Relational Database?

It’s pretty straightforward to store a graph in a database: you have a table for nodes, and a table for edges, which acts as a many-to-many relationship table between the nodes table and itself. Like this:

create table node (
  id integer primary key
);

create table edge (
  start_id integer references node,
  end_id integer references node,
  primary key (start_id, end_id)
);

However, there are a couple of sticky points about storing a graph this way.

Meer antwoorden op deze vraag bij Stackoverflow:

  • It’s an acceptable approach. You need to consider how that information will be manipulated. More than likely you’ll need a language separate from your database to do the kinds graph related computations this type of data implies. Skiena’s Algorithm Design Manual has an extensive section graph data structures and their manipulation.
  • Without considering what types of queries you might execute, start with two tables vertices and edges. Vertices are simple, an identifier and a name. Edges are complex given the multigraph. Edges should be uniquely identified by a combination two vertices (i.e. foreign keys) and some additional information. The additional information is dependent on the problem you’re solving. For instance, if flight information, the departure and arrival times and airline. Furthermore you’ll need to decide if the edge is directed (i.e. one way) or not and keep track if that information as well.
  • Consider how Facebook might implement the social graph in their database. They might have a table for people and another table for friendships. The friendships table has at least two columns, each being foreign keys to the table of people.

    Since friendship is symmetric (on Facebook) they might ensure that the ID for the first foreign key is always less than the ID for the second foreign key. Twitter has a directed graph for its social network, so it wouldn’t use a canonical representation like that.

Als je dat spoor volgt blijkt er van alles te bestaan, bijv. Graph Engine (GE) van Microsoft:

Getting Started

Before we can ingest data to the system, we need to first describe the schema of the data to the system so that the system can parse the data. There are many ways to model a data set, from easy to hard. Let us illustrate this using an example:

Leonhard Euler    Born          April 15, 1707
Leonhard Euler    Age           76
Leonhard Euler    Education     University of Basel
Leonhard Euler    Book          Elements of Algebra
Leonhard Euler    Son           Johann Euler
Johann Euler      Born          Nov 27, 1734
Johann Euler      Daughter      Charlotte Euler

Zelf niet gekeken maar ze beloven dat je vervolgens snel en efficiënt relaties kan afvragen.

Meer in jouw straatje, segmenten? Demo application:

Single Source Shortest Paths - Source Code on GitHub

A sample output of executing SSSP.exe -q 123:

Current vertex is 123, the distance to the source vertex is 3.
Current vertex is 1001, the distance to the source vertex is 2.
Current vertex is 2432, the distance to the source vertex is 1.
Current vertex is 1, the distance to the source vertex is 0.

En:

Graph Engine VSExtension

We briefly introduce the usage of Graph Engine Visual Studio Extension in this chapter.

We usually start with creating a Graph Engine Data Modeling Project. In the Visual Studio New Project dialog, select Graph Engine Data Modeling Project project template, make sure .NET Framework 4.5 is chosen, and provide a project name.

Hoi Weerman,

Dacht aan ‘nodes’ => ‘edges’ => ‘graph’:

Lijkt mij heel goed plan. :slight_smile:

Ik ga eerst de data in wegsegment database “dumpen”. Waarna ga ik kijken of ik de visual basic dumper op laatste cdfoon kan zetten. Waarna ik ga kijken of ik installer van kan maken die ook de dll gaat ‘registeren’ in Windows. Mogelijk dat ik tegen 64-bits/32 bits probleem aan loop.

Met de command line parameter maak je in dosbox database aan of verwijder je hem weer. Ook kan je de tabellen aanmaken en met ander command line parameter kan je de data ‘inserten’. Van weekend ga ik verder hiermee. Ik wil het programma als test case in de ssh daemon inbouwen. Met putty client “dezelfde” command line parameters intoetsen nadat je aangelogt hebt met Putty’s ssh.

De hartelijke groet Jan Marco

Hoi Weerman,

8cc. A Small C Compiler

Gisteren de hele dag met 8cc bezig geweest. Gaat mij niet om het compileren van C naar assember, maar om het parsen van de logica van C programma´s.

Ga straks verder kijken hoe ik het aan de praat krijg.

Vanmorgen ook naar andere C compiler neatcc gekeken. Loopt wel door main programma heen, echter zie nog niets op het scherm. In dit project zitten zelfde structuren als Tokens als 8cc.

Vanmorgen vond ik ook veel completere open source C compiler, namelijk Orange C.

The Orange C compiler is going to be a retargetable optimizing compiler and toolchain. Work over the last few years has resulted in an optimizing compiler than generates working WIN32 programs. The optimizations in the compiler follow some of the standard optimizations, and also perform some optimizations from the literature.
This compiler comes in an install package with an IDE suitable for developing WIN32 programs.

Help files are included; the source format for the help files is HELPSCRIBBLE’s HSC format.

The compiler can be built with various C++11 compilers, however, by default it is configured to use the Visual Studio 2015 community edition.

Ziet er wel mooi uit. Het programma compileert en linkt zonder fouten bij mij, zie je niet zo vaak.:wink:

De hartelijke groet Jan Marco

P.S. Ik heb veel test source code van mijn ppc afgegooid, om QT te kunnen installeren. QT is 6,3 gigabyte groot. Boost is bij mijn ppc nog verdeeld over twee directories 4,3 plus 2,8 is 7,1 gigabyte. Ik wil alle source code in 1 directory plaatsen. Kan je met Fossil versiebeheertool alle source bereiken.

Hoi Weerman,

Vanmorgen op zoek naar C++ syntax compilers. Ik vond wel leuk concept, namelijk Aspect Georienteerd Programmeren.

The success of Aspect-Oriented Software Development rises and falls with user-friendly tool support. With AspectJ® ¹ the first complete and powerful language extension for AOP has been created. With the AspectC++ project we extend the AspectJ approach to C/C++. It is a set of C++ language extensions to facilitate aspect-oriented programming with C/C++.

Plaatje op bladzij 6 zier er m.i. wel goed uit:


AspectC++ Quick Reference geeft aan welke commando je hebt.

4.2.3 MS VC++
The ac++ parser aims at being compatible with Microsoft Visual C++ 7 and later.
This compiler comes with a large number of non-standard language extensions.
To enable support for these extensions in the ac++ parser the command line
option --vc must be provided either on the command line or in your configuration
file

Prachtig, Het werkt dus ook met Visual Studio. :heart: Dus g++ in bovenstaande plaatje kan je vervangen door “Visual Studio 2015”.

De hartelijke groet Jan Marco

Hoi Weerman,

Ben nu bezig om mijn nieuwe laptop uit te rollen. Heb net een goede backup gemaakt van initiële systeem. Moest wel dual layer DVD9 kopen omdat 1 van de 5 backup disken blijkbaar een andere formaat nodig heeft.

AspectC bestaat uit twee programma’s ag.exe en ac.exe. Zie ook bovenstaand plaatje. Bij programma ag.exe moet ik nog 9 “unresolved externals” oplossen.

Bij programma ac.exe ben ik vast gelopen in de Clang-LLVM code, dus ga ac.exe weer opbouwen waarbij ik alle Clang-LLVM code er uit haal. Daarnaast ga ik Clang-LLVM compileren via voorschrift op mijn Windows10 omgeving. Waarna ik ag.exe code weer kan koppelen indien ik wel Clang-LLVM wil gebruiken als compileromgeving (ipv Visual Studio C++ omgeving).

Het concept van aspectprogrammeren vind ik heel goed. Alleen wil ik code van het project AspectC eerst gebruiken om code ” voor te compileren” om de logica van de code bloot te leggen. Omdat ik een versiebeheertool (Fossil) ga gebruiken, voorkom ik dat ik andere filenamen hoef te gebruiken. Wat weer de complexiteit reduceert.

De hartelijke groet Jan Marco

Een ppc?

Aha, een ppc is een portable personal computer? Aantal machines bij jou kwam daarmee op zes?

Dan ben je goed bezig, anderen moeten bij hun energiebedrijf aankloppen:

Gratis restwarmte

Start-up Nerdalize en duurzaam energiebedrijf Eneco breiden hun samenwerking uit met als doel een cloud te bouwen die Nederlandse huishoudens van duurzame restwarmte voorziet.

De cloud woont in dure datacenters en die vreten energie. Nerdalize heeft een product ontwikkeld waarmee de restwarmte van een cloudserver direct een gratis bijdrage kan leveren aan het warmte-systeem van een huis, zodat zowel huishoudens als professionele cloudgebruikers geld en energie besparen. De Nerdalize cloudgebruikers besparen al snel 50% op hun cloudkosten doordat ze niet langer betalen voor een gekoeld en duur datacenter.

Of het 28 januari is of 1 april:

Frequently Asked Questions about Nerdalize

• Can I really heat my home for free with your Heater?
Amazingly, yes! The Heater measures how much energy it uses to heat your home and you’ll get fully reimbursed for the cost of this energy. This means that with our Heater you’re heating your home for free!

• What type of internet connection do I need?
Currently we work with fibre optic connections.

• How much heat does the Nerdalize Heater generate?
Currently the Nerdalize Heater can produce 1 kw. And in the unlikely event that a user needs heat but the internet is down and the radiator has nothing to work on, it starts performing dummy equations.

• Will the Nerdalize Heater work during the summer?
Yes. Our Heater can expel excess heat to the outside when the homeowner does not require heating. This way we can compute at full capacity during winter and summer utilizing our hardware optimally.

• How are your Heaters physically secured?
Our Heaters are secured against tampering both in software and hardware. If tampering with the device is detected it will immediately halt operations and wipe its contents. We can also remote-wipe a Nerdalize Heater if there are signs of tampering.

Dat worden dus 25 van die Eneco eRadiatoren?

Capaciteit cv ketel berekenen voor een tussenwoning (slecht geïsoleerd):

7,00 x 5,00 x 2,50 x 85 = 7437 Watt (woonkamer)
2,00 x 1,00 x 2,50 x 70 =  350 Watt (hal voordeur)
1,50 x 1,00 x 2,50 x 70 =  262 Watt (wc)
3,00 x 2,50 x 2,50 x 77 = 1443 Watt (keuken)
2,00 x 1,00 x 2,50 x 70 =  350 Watt (hal achterdeur)
2,00 x 1,00 x 2,50 x 70 =  350 Watt (trap)
2,00 x 1,00 x 2,50 x 70 =  350 Watt (hal eerste verdieping)
3,00 x 2,80 x 2,50 x 93 = 1953 Watt (badkamer)
4,00 x 3,50 x 2,50 x 70 = 2450 Watt (slaapkamer 1)
4,00 x 3,50 x 2,50 x 70 = 2450 Watt (slaapkamer 2)
4,00 x 2,00 x 2,50 x 70 = 1400 Watt (slaapkamer 3)

18795 (totaal) x 1,15 (slecht geisoleerd) x 1,15 (extra capaciteit) : 1000 = 24.9 kW

Nerdalize zal toch wel op een jong en enthousiast Team leunen? Zeker en niemand heeft geen baard:

Aanbevolen verzorgingsproducten voor deze (stoppel-)baard:
• Tondeuse: Philips StyleXpert 9000
• Schaar: Tweezerman Spirit 2000 Styling
• Vochtinbrengende crème: Shiseido Men Hydrating Lotion

Nerds, dan weet je het wel, interne tegenspraak:

     

Green energy is the future

Readaar developed a smart way to analyze aerial imagery and LiDAR data (height information) in order to find different kinds of information on rooftops. The YES!Delft startup, Solar Monkey uses this data to design the best configuration for solar panel installations. A problem both companies run into is that the coordinates of the height information don’t match the coordinates of the aerial imagery. Readaar has built an algorithm to match the aerial imagery with the LiDAR data.

These algorithms are very compute intensive, thereby requiring vast amounts of computing power. Readaar was looking for a cloud provider for doing their analysis. Of course the well-known cloud computing platforms of Google and AWS are available to them, but instead they chose to use our servers. We offered a more affordable solution, but Readaar was especially charmed by our sustainable approach.

Hoi Weerman,

Aha, een ppc is een portable personal computer? Aantal machines bij jou kwam daarmee op zes?

Ik heb met mediamarkt btw-actie ook twee nieuwe 4-k monitoren gekocht. Leuk te zien nieuwe technologie. Geen VGA aansluiting meer. Drie browsers naast elkaar op één scherm:

Mijn oude ppc (van vier jaar geleden denk ik) kan deze monitoren niet aansturen op maximale resolutie. Ik kan deze ppc in nabije toekomst meer als thin cliënt gaan inzetten.

De soure code stack en alle tools zet ik op mijn nieuwe ppc op

D:\pinnode

Fossil kan geen files buiten deze root directory includen.

Je hebt in mijn beeld heel veel distributies van programma´s. Sommige files komen in meerdere distributies voor. Stel 1 gemeenschappelijk file komt in Mysql en in LibreOffice voor. Bij compileren van MySql komt deze file dan in distributie van MySql voor. Hetzelfde geldt als ik LibreOffice compileer. Bij het backuppen in Fossil van MySQL komt deze file in de MySql zip file voor. Het zelfde geldt als ik LibreOffcie backup in Fossil, dan pas de gemodificeerde file in distributie opnemen. Dit voorkomt dat de (bijgevoegde) source files anderen zijn dan die gebruikt zijn bij compileren/linken.

Stel ik modificeer gezamenlijke file en ik compileer MySql dan komt deze gemodificeerd file bij Fossil/backup in distributie van zip van MySql, maar niet zit nog niet in de distributie van LibreOffice, dit gebeurt pas als ik LibreOffice compileer en daarna een Fossil/backup.

De gecompileerde versie van de code op:
C:\Program Files (x86) \ pinnode
C:\Program Files \ pinnode \

Een applicatie distributie bevat m.i. alle source code, het recept om de source te compileren en de gecompileerde/gelinkte dll/exe programma´s. Met de Nullsoft installer kan je ook voor gaan om alleen de binaries te installeren op je pc. Indien je niet het vertrouwt kan je ook de source code zelf gaan compileren/linken. Heel veel mensen willen alleen het resultaat gebruiken. Kort samengevat je meer dan strikt noodzakelijk is, echter omdat je ook alle source code hebt kan je proberen te voorkomen dat executabel malware is.

Ik wil Visualstudio (VS2015) in andere directory installeren, dus geuninstalled. Wat mij opvalt is dat vorige install directory niet leeg is. Daarnaast kan je bij het opnieuw installeren geen nieuwe install directory meer kiezen, dus ppc weer aan het schoon ‘poetsen’.

De hartelijke groet Jan Marco

Microsoft staat achter je en zegt, waarom niet onder Hyper-V:

Ready-to-run Windows 10 virtual machines for developers

Want to kick the tires on Windows 10 developers’ tools without the headache of building a separate test machine? The most tedious part of trying out a new software development environment is downloading and installing all the different tools. To remove that hurdle, Microsoft offers free virtual machines with a full suite of development tools already installed.

The most recent releases of these preconfigured VMs are available on the Windows Dev Center in packages built for four popular virtualization platforms: VMware, Parallels, VirtualBox, and Microsoft’s own Hyper-V.

Windows 10 Professional (Licensed - Build 201612) 20 GB download

This VM install requires a Windows 10 Pro license (EN-US only). This licensed virtual machine includes:

• Windows 10 Pro, Version 1607
• Visual Studio 2015 Community Update 3 (Build 14.0.25425.01)
• Windows developer SDK and tools (Build 14393)
• Microsoft Azure SDK for .NET (Build 2.9.6)
• Windows Bridge for iOS (Build 0.2.161107)
• Windows UWP samples (November 2016 Update)
• Windows Bridge for iOS samples
• Bash on Ubuntu on Windows

Each VM also has the Windows IoT Core SDK for Raspberry Pi 2 (Build 10586.0.151029-1700), along with Windows IoT Core project templates (Version 1.0).

Before you click that download button, one caution: These are very large files. The Hyper-V virtual machine, which runs on Windows 8.1 and Windows 10 Pro/Enterprise as well as current Windows Server editions, is the smallest of the bunch at 18.3 GB. The Parallels and VirtualBox VMs are 18.9 and 19.0 GB, respectively, and the VMware version is largest of all, at 20.3 GB.

Als je geen MSDN-klant bent werkt de evaluatie-versie tot augustus dit jaar. En anders 200 dollar bovenop de rest van je aanschaf tot nu toe?

Hoi Weerman,

Erg bedankt voor de tip. Ik ga voor Microsoft image op Virtualbox op Linux (Ubuntu).

De hartelijke groet Jan Marco

Hoi Weerman,

Net gelukt (compileren en linken) om AspectC om te zetten naar Visual Studio.Nu bezig om het ook functioneel werkend te krijgen.

AspectC gebruikt bijgeleverde programma Lemon.c om de ontbrekende C/C++ lexer code te maken uit grammatica die in drie bijgeleverde bestanden staat. Ik zie dat Lemon.c zelfde code oplevert als Sqlite gebruikt, dus dezelfde lexer methode wordt gebruikt.

Ik heb nu alle header files uit de AspectC files gehaald en zijn nu eenmalig in mijn gemeenschappelijke header file opgenomen. N.B. Waardoor je met compileren hoef je minder header files te openen. De volgorde van inladen van header files is belangrijk voor wel of niet kunnen compileren van source code.

Normaal zet ik alles van 1 project in 1 source file. Bij AspectC maar even verschillende (bovengenoemde) files gebruikt om beter te kunnen ‘aanhaken’. Nu laadt ik alle 18 source files in het hoofdprogramma.

Heb gisteren ook zitten te zoeken naar bovenkant. Ik vond verouderde ClassBuilder programma:

ClassBuilder is freeware CASE tool targeted at the C++ developer, running on Win2K/XP/Vista/7. It lets you create, manipulate and navigate classes, class relations, class members and class methods at a high level of abstraction through a graphical user interface.

Ik heb nog niet zo veel kennis parate kennis van het object gedeelte (objecten, reference, virtuals, operators, etc). Maar kan wel veel van leren.

Ik vond wel goed project OovAide. Gui is wel de (verouderde) GTK, maar gebruikt wel Clang compiler. Zit er erg mooi uit. Ik ga eerst kijken of ik het in habitat kan bouwen en mogelijk wel ga omzetten in mijn habitat. Ik ben nog zoekende, mogelijk vind ik nog een betere project. Vooralsnog zie ik OovAide als zeer goed begin oplossing.

The OovAide project is a C++ or Java analysis IDE for Windows or Linux with an automated multi-tasking build system, cross compiler support, an analysis tool based on CLang that creates UML class, component, sequence as well as zone and portion diagrams from C++ or Java source, static analysis and test coverage. The diagrams allow navigation through the source code, and can be edited manually and saved as .SVG files. It creates CMake files and can be built using Eclipse or CMake. Export to SQLite is supported.

Oovaide bevat best wel mooie onderwerpen, waar ik interesse in heb:

The Oovaide program allows exporting to an sqlite database. The database schema looks like the following: The Oovaide program’s main purpose is to find all related classes, so it does not contain all code information.

Je kan ook view van classes projecteren:

Viewing a Class for Composition
Sometimes a class grows too large, and needs to be refactored. In some cases, it can be difficult to determine what will result in a clean separation of multiple classes.
The Oovaide program can display all of the data members and functions of a class and show how they are related. The C++ code is parsed and the diagrams are created automatically. The following shows a class portion diagram in the Oovaide program, and shows an example “Package” class. The data members are shown in rectangles, and the member functions are shown in ellipses. The arrows show the direction of the dependency.

De hartelijke groet Jan Marco

Hoi Weerman,

Met Ac++.exe ga je source code scannen/parsen en aanvullen. De code die er uit komt is moeilijk te lezen. Mogelijk een oplossing als je bepaalde source code liever niet publiceert, maar toch open source zou ‘moeten’ publiceren.

Ik zie dat je met Ag++.exe de compiler in command line aanroept om source code te compileren. Bij mij werkt het niet omdat ik een andere compiler heb dan “g++.exe”.

Visual studio MSbuild.exe gebruikt ook de methode om op de user local temp directories aan te maken met build-files er in.

Ik ben toch bezig met het automatisch compileren m.b.v. Ultimate++ routines, dus ag++.exe heeft wel overlap hiermee.

Cppcheck is a static analysis tool for C/C++ code. Unlike C/C++ compilers and many other analysis tools it does not detect syntax errors in the code. Cppcheck primarily detects the types of bugs that the compilers normally do not detect. The goal is to detect only real errors in the code (i.e. have zero false positives).

Lijkt mij wel wel dat er overlap zit in de Cppcheck en AspectC code.

Ik heb even wat plaatjes gemaakt document van het bedrijf dat aspectC zou gebruiken:

Onderstaand zou een (initieel) proces kunnen zijn:

Ik stel de relatie tussen de componenten zo voor:

Bovenstaande sluit ook aan (denk ik) bij hoe ik de projecten wil ‘categoriseren’. Projecten bestaan uit legoblokjes, en een legoblokje bestaat weer uit andere (kleinere) legoblokjes, etc.

Weerman, Ik hoor wel als jij het anders ziet,:smile:

De hartelijke groet Jan Marco

Nee, niet. Naar de speelgoedwinkel dan maar:

The BBC Micro:bit Is An Mbed Device In C/C++

ARM announce mbed, an attempt to capture the IoT market, last year and made the software available recently. The idea is that you can install mbed on any of a large range of single board computers (SBC) running ARM Cortex-M chips.

The BBC Micro:bit is based on mbed and software developed by the University of Lancaster. The University created a DAL - Device Abstraction Layer - complete with drivers for everything the Micro:bit offers - AtoD, LED display, buttons etc.

Lancaster University has open sourced the DAL and provided quite a lot of documentation, which makes it possible to program the Micro:bit as a generic mbed device in C/C++. This opens up new possibilities for both the Micro:bit and mbed.

As one million Micro:bits are now in the hands of 11 year olds, and perhaps more importantly all of the grown ups aiming to teach them programming, suddenly mbed has a huge potential user base. Add to this the fact that when the Micro:bit goes on sale to the IoT community mbed will almost certainly have a hit on its hands. Suddenly mbed no longer looks like a late starter but a big player.

The Micro:bit is a very capable IoT device - it has sufficient GPIO pins, AtoD, DtoA, I2C, SPI, PWM and so on to be interfaced to almost anything. Programming it in C/C++ means it can be fast and the operating system doesn’t get in the way. There is no Linux lurking on the Micro:bit so realtime programming should be possible.

An example of how to use the micro:bit DAL’s accelerometer abstraction:

   #include "MicroBit.h"
   
   MicroBit uBit;
    
   //
   // Scales the given value that is in the -1024 to 1024 range
   // int a value between 0 and 4.
   //
   int pixel_from_g(int value)
   {
       int x = 0;
    
       if (value -750)
           x++;
       if (value -250)
           x++;
       if (value 250)
           x++;
       if (value 750)
           x++;
    
       return x;
   }

Main:

   int main()
   {
       // Initialise the micro:bit runtime.
       uBit.init();
    
       //
       // Periodically read the accelerometer x and y values, and plot a 
       // scaled version of this ont the display. 
       //
       while(1)
       {
           int x = pixel_from_g(uBit.accelerometer.getX());
           int y = pixel_from_g(uBit.accelerometer.getY());
    
           uBit.display.image.clear();
           uBit.display.image.setPixelValue(x, y, 255);
           
           uBit.sleep(100);
       }
   }