Foonsearch

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);
       }
   }

Hoi Weerman,

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

Doet mij denken aan de BBC-Acorn van vroeger.

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

Op zich leuk deze hardware.Niet al te duur en doet mij denken aan mijn MTS-Elektrotechniek opleiding.

Apple zit ook in “kastjes”, echter (volgens RTL-Z toekomstvoorspellers) worden die nagemaakt door Chinese hardware fabrikanten. De toekomst voor Apple zou in de Cloud liggen?

Ik heb ook weer naar Flex/Bison gekeken:

Win flex-bison is a windows port the Flex (the fast lexical analyser) and Bison (GNU parser generator). win_flex based on Flex version 2.6.3 source code and win_bison based on Bison version 2.7 and they depend on system libraries only.

Compileert en linkt goed :slight_smile:

Een ander project dat ik gedownload heb “cppcheck” haalt de syntax fouten er niet uit, zoals AspectC dat wel doet. Het kan m.i. wel aanvulling op AspectC worden gezien.

De hartelijke groet Jan Marco

Hoi Weerman,

Vandaag/vannacht Virtualbox proberen aan het installeren. :slight_smile: Op Windows ppc ging het direct goed.Geeft aan dat Windows toch gebruikersvriendelijker is dan Linux.

Op Linux is wel een kleine uitdaging (voor mij).

Eerst had ik het probleem met de ssd disk en de 8 T schijf. Als je importing appliance in Virtualbox doet loopt /home directory vol op de kleine ssd-disk. Later root op 8 T en swap op ssd laten ‘zitten’, echter dan kreeg ik opstart grup melding. Dat hij masterboot record niet kan vinden o.i.d., dus kabel van ssd afgehaald en opnieuw default Ubuntu 12.04 geïnstalleerd.

Hierna virtualbox geïnstalleerd met:

$Sudo apt-get install virtualbox-qt

Virtualbox werkt niet bij mij op Ubuntu 12.04, dus Ubuntu laten upgraden naar Ubuntu 14.04. Waarna het blijkbaar wel werkt.

Tip: Je moet niet eerst gaan upgraden van Ubuntu 12.04 naar Ubuntu 14.04 en daarna Virtualbox installeren, want dan krijg je foutmelding dat niet werkt en dat je het zelf mag gaan uitzoeken hoe je het “werkend kan krijgen”.

Ik zie ook dat je een testversie virtualmachine Win7 kan scoren op link. Ik heb ook naar achtergrond info op link gekeken.

Ik ben voorstander om zo veel mogelijk van opensource stack te gebruiken, dus verkies ik Virtualbox boven Vmware. Laatst zal m.i. wel beter/meer functionaliteit bezitten. Ik kies dus voor iets minder functionaliteit maar wel opensource. In toekomst zal (hoop ik) open source wel beter dan proprietary software gaan worden.

Misschien kan je steeds weer met nieuwe test Windows virtual machine (=client) gaan werken. Het uitrollen van virtual machine wil ik automatiseren. Liefst geen handmatige handelingen uitvoeren.

De hartelijke groet Jan Marco

P.S. Ik weet nu hoe ik mijn andere drie Linux Servers kan installeren met VirtualBox. Weerman, Nog erg bedankt voor de tip over test virtualmachines.:slight_smile: Ik kan nu gaan beginnen met alles te configureren.

Nooit in handen gehad maar wat ze in scholen gebruiken om de rotjochies tegen te houden:

Faronics Deep Freeze makes PCs Indestructible

Deep Freeze provides the ultimate workstation protection by preserving your desired computer configuration. A simple Reboot restores the computer.

Freeze and Restore - Freeze your endpoints to the desired state. Restore from any unexpected changes with a simple reboot.

Standard version - Bulletproof disk protection for computing environments with 5 or less workstations.

Hele dag aan gewerkt en weg, jammer? Ze hebben ook Ontdooi software:

Faronics Data Igloo

- Enables users to seamlessly and efficiently retain user data on machines protected by Deep Freeze. Organizations are able to ensure 100% integrity and reliability of machines and provide flexibility to save user settings, files and documents without any negative impact on user experience.

- Allows Deep Freeze users to exempt specified data folders, entire user profiles, or even registry keys from being Frozen by redirecting them to a Thawed partition (or ThawSpace), while keeping the operating system partition completely protected.

“Freeware” alternatief:

Reboot Restore Rx

Reboot Restore Rx is a non-restrictive hard drive restore product designed for public access PC management. The PC users feel as though they have complete control over the PC. But regardless of what they do, including erasing files, installing software or even hacking the system registry, Reboot Restore Rx will automatically restore the PC to a predefined baseline – every time the workstation is restarted, or turned on. Making the workstations perfectly configured and available for the next user.

Als vanouds het bloed kruipt waar het niet gaan kan:

Faronics Deep Freeze Enterprise v8.22.220.4800

Cracked by....:  KaiZer SoZe       Release-Name..:  CR-T9AR_.ZIP
Supplied......:  CORE              Release-Date..:  2015/03/29  
Packaged......:  Neurotika         Release-Type..:  Util        
Protection....:  Serial            OS............:  Windows     
Crack/SN......:  Keymaker          Language......:  English     
Rating........:  [You decide!]     Disks.........:  9

Hoi Weerman,

Ik wil graag remote destop naar mijn systemen hebben. Mijn ogen zijn gevallen op Freerdp. Ik zou graag script draaien en in log zien het werkt. Maar dat is niet zo. Ik moet maar zien of het werkt, dus eerst weer gaan bestuderen wat de bedoeling is.

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Enjoy the freedom of using your software wherever you want, the way you want it, in a world where interoperability can finally liberate your computing experience.

Eerst proberen om het op Ubuntu-Linux te installeren. Blijkbaar vindt Ubuntu niet op key “freerdp-nightly” intoetsen.

Onderstaande commando’s van deze link ‘gepikt’:

$ wget -O - http://pub.freerdp.com/repositories/ADD6BF6D97CE5D8D.asc | sudo apt-key add -
$ sudo sh -c ‘echo “deb http://pub.freerdp.com/repositories/deb/$(lsb_release -cs)/ freerdp-nightly main” >> /etc/apt/sources.list.d/freerdp-nightly.list’
$ sudo apt-get update
$ sudo apt-get install -y freerdp-nightly

Pakketlijsten worden ingelezen… Klaar
Boom van vereisten wordt opgebouwd
De status informatie wordt gelezen… Klaar
U wilt waarschijnlijk ‘apt-get -f install’ uitvoeren om volgende op te lossen:
De volgende pakketten hebben niet-voldane vereisten:
freerdp-nightly : Vereisten: libavcodec54 (>= 6:9.1-1) maar het zal niet geïnstalleerd worden of
libavcodec-extra-54 (>= 6:9.11) maar het zal niet geïnstalleerd worden
Vereisten: libavutil52 (>= 6:9.1-1) maar het zal niet geïnstalleerd worden
Vereisten: libgsm1 (>= 1.0.13) maar het zal niet geïnstalleerd worden
ubuntu-defaults-nl : Vereisten: ubuntu-defaults-nl-nl maar het zal niet geïnstalleerd worden
E: Er zijn niet-voldane vereisten. U kunt best ‘apt-get -f install’ uitvoeren zonder pakketten op te geven, (of u kunt zelf een oplossing specificeren).

/* dit stelt Ubuntu voor, dus maar doen, gooit o.a. ubuntu-defaults-nl-nl weg */
$ sudo apt-get -f install

/* even kijken wat je terugkrijgt als je commando nog een keer uitvoert */
$ sudo apt-get install -y freerdp-nightly

Pakketlijsten worden ingelezen… Klaar

Boom van vereisten wordt opgebouwd

De status informatie wordt gelezen… Klaar

freerdp-nightly is al de nieuwste versie.

De volgende pakketten zijn automatisch geïnstalleerd en zijn niet langer nodig:

libdee-qt5-3 libgsoap1 libu1db-qt5-3 linux-headers-3.2.0-30

linux-headers-3.2.0-30-generic qtdeclarative5-friends0.2

qtdeclarative5-u1db1.0 qtdeclarative5-ubuntu-settings-components

qtdeclarative5-ubuntu-settings-components-assets

Use ‘apt-get autoremove’ to remove them.

0 pakketten opgewaardeerd, 0 pakketten nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.

De hartelijke groet Jan Marco

P.s. Ga nu Freerdp installeren op mijn Windows-ppc. Even kijken hoe het op Windows werkt. Ik wil vanaf Windows mijn Linux servers gaan beheren, is de bedoeling (als het lukt natuurlijk).

Hoi Weerman,

Ik heb nog niet goed overview hoe beste remotebeheer in te richten is. Het moet veilig via SSH.

De keuze die je hebt is RDP van windows en meer generieke VNC. Ik denk dan aan tightvnc. Ik zag dat datum van Linux source code van Tighvnc wel oud is. Het liefst heb ik onderhouden source code.

Mijn poort Linux-systeem staat (in DMZ) bij mij en GUID/ public key ga ik gewoon in de Cdfoon tabel zetten.

Conclusies:

  1. I would not view TightVNC over SSH as a terminal server solution for supporting lots of clients, there are better ways to do that.
  1. TightVNC really shines as a tool for system administrators and network engineers; that is where I would use it.

Mijn idee is om RDP of VNC in de SSH commando’s onder te brengen. Dus met gepatchte SSH-server kan je remote server besturen, maar ook de database benaderen. Alles natuurlijk wel goed gemonitoord en alleen mogelijk als je de rechten natuurlijk hebt.

Ik heb op mijn Linux test server packet geïnstalleerd zonder te weten wat het doet. Nu heb ik ergens anders concrete commando’s gevonden hoe ik Freerdp op Linux kan installeren. Als het lukt, probeer ik het in een script onder te brengen.

Freerdp op windows doet (zo ver ik kan zien) nog niks bij mij. Kan aan virusscanneer of het programma zelf liggen.

Ik vond hier een beter recept op internet om freerdp op Linux te installeren, dus meer commando’s minder klikken op scripts/programma’s.

Listed are the steps to install xfreerdp as a server in a linux machine. Using this, you can remotely connect to your linux machine. NOTE: freerdp server is still in experimental stage and has several bugs once you get connected. It is no where near production.

  1. Download the latest git master. Stable 1.1 has bugs related to freerdp-server.
    git clone GitHub - FreeRDP/FreeRDP: FreeRDP is a free remote desktop protocol library and clients
  2. Install suggested dependencies: sudo apt-get install build-essential git-core cmake libssl-dev libx11-dev libxext-dev libxinerama-dev \ libxcursor-dev libxdamage-dev libxv-dev libxkbfile-dev libasound2-dev libcups2-dev libxml2 libxml2-dev \ libxrandr-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libxi-dev
  3. cd FreeRDP
  4. cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSE2=ON -DWITH_SERVER=ON (see Home · FreeRDP/FreeRDP Wiki · GitHub for additional build options)
  5. make
  6. sudo make install
  7. Go to linux home directory
  8. cd etc/ld.conf.d
  9. create a file called freerdp.conf and insert in it: usr/local/lib/freerdp depending on OS dist may also have to add: /usr/local/lib
  10. sudo ldconfig
  11. cd ~/Desktop/FreeRDP
  12. sudo /sbin/ldconfig
  13. check installation using which xfreerdp NOTE: A file of known hosts is located at ~/.config/freerdp ABOVE STEPS ALSO APPLY FOR INSTALLING freerdp client
  14. copy server/X11/server.crt and server.key to ~/.config/freerdp/server/
  15. Now you need to generate a hash of the User account of your computer in which the freerdp-server will run. freerdp contains a hash tool to do this.
    cd ~/Desktop/FreeRDP/winpr/tools/hash if your account username is USER and password is PASSWD and domain is DOMAIN (omit
    domain if N/A), then run the hash script as: ./winpr-hash -d DOMAIN -u USER -p PASSWD The script will output a hash value
  16. cd /etc/winpr (if dir does not exist then mkdir /etc/winpr) NOTE: you will need to have admin rights to access /etc
  17. In /etc/winpr create a file named SAM and copy the generated hash value in it
  18. run freerdp server with command freerdp-shadow-cli (old command xfreerdp-server)
    NOTE: If you get an error and freerdp stops, saying bind: address already in use it means another
    TCP/IP process is using the same port address that freerdp-shadow-cli is trying to access. Check running processes with command netstat-tulpn. NOTE: Connect to server using a client which has RemoteFX enabled, otherwise connection fails

Een ander Linux programma m.b.t. RDP wat ik hier vond:

==========================================
rdesktop: A Remote Desktop Protocol client

rdesktop is an open source client for Microsoft’s RDP protocol. It is
known to work with Windows versions ranging from NT 4 Terminal Server
to Windows 2012r2 RDS. rdesktop currently implements the RDP version 4
and 5 protocols.

De hartelijke groet Jan Marco

Hoi Weerman,

Gisteren de hele dag met FreeRDP bezig geweest. Het is mij net gelukt om alle projecten van FreeRDP te compileren en te linken.

Om de *.sln Visual Studio project files van FreeRDP aan te maken, moet je command “Cmake . “ geven in de source directory van FreeRDP. N.B. Ik liep gisteren tegen aan dat Cmake Openssl libraries niet kon vinden, dit had te maken dat ik een afwijkend path in “–prefix=” had opgegeven. Je kan beter naar de ‘OpenSSL root directory’ opgeven.

Ik ga nu proberen om eerst FreeRDP op een windows machine te zetten. Daarna op Ubuntu machine, door xrdp of rdesktop te installeren op Linux Ubuntu.

De hartelijke groet Jan Marco

P.S. Had gisteren eerst andere versie openssl-1.1.0e.tar.gz gedownload, echter in de ms en util directory zitten niet alle script om de visual studio project files te genereren.

Appendix A: System paths:

OPENSSL_CONF
C:\dev\persinfonet\openssl-1.0.2k\ssl\openssl.cfg
OPENSSL_INCLUDE_DIR
C:\dev\persinfonet\openssl-1.0.2k\include
OPENSSL_LIBRARIES
C:\dev\persinfonet\openssl-1.0.2k\lib
OPENSSL_ROOT_DIR
C:\dev\persinfonet\openssl-1.0.2k

Appendix B: Perl code om Openssl te compileren:
perl Configure no-asm VC-WIN32 --prefix=C:\dev\persinfonet\openssl-1.0.2k
.\ms\do_ms.bat
nmake -f ms\nt.mak
nmake -f ms\nt.mak install

Hoi Weerman,
Gisteren een nieuwe 4k webcam (foscam) gekocht. Heb spanning op gezet. Nu gaat hij elke x minuten krijsen “ready for wifi configuratiion”. Eigenlijk wel weer volgende stap in de ontwikkeling dat een device mondelinge advies geeft wat je moet gaan doen.

Gisteren begonnen om Asterisk om te zetten naar Windows platform en uiteindelijk wil ik het onder mijn sourcestack zetten.

Asterisk Architeture, the Big Picure van 2014:

Zaken die ik nog mis in plaatje:
1: Virtualisatie;
2: Blockchain;
3: Encryptie van harddisk/database data.
4: Tor;
5: MaidSafe platform.

De Asterisk code is m.i. makkelijk om te zetten. Wat ik mooi van Asterisk vind is dat ze ook applicaties er in hebben gedefineerd. Ook hebben ze veel commando’s geprogrammeerd, die ik liever in rpclib achtige omgeving in ssh ingebouwd zou willen zien, als dat natuurlijk wel kan. Asterisk hebben zelf het probleem om het totaal van het project te overzien.

Ik probeer ook landschap te schetsen aan hand van paar plaatjes. Is wel een beetje een zoektocht, maar wel leuk.Ik vond plaatje van de concurrent van Asterisk (van 2010) wel wat completer beeld schetsen:

Kamailio® (successor of former OpenSER and SER) is an Open Source SIP Server released under GPL, able to handle thousands of call setups per second. Kamailio can be used to build large platforms for VoIP and realtime communications – presence, WebRTC, Instant messaging and other applications. Moreover, it can be easily used for scaling up SIP-to-PSTN gateways, PBX systems or media servers like Asterisk™, FreeSWITCH™ or SEMS.

In bovenstaande tekst geeft Kamailio aan dat ze veel verbindingen kunnen opzetten. :slight_smile:

Wat ik vond in mijn zoektocht is OSv een OS (uitgeklede Linux), die je in open source Hypervisor (VirtualBox) kan draaien. Mijn benaming was “VirtualApp”. Ik vind nu implementatie hiervan.

OSv is the open source operating system designed for the cloud. Built from the ground up for effortless deployment and management, with superior performance.

The language runtime, OS and hypervisor all provide protection and abstraction. OSv minimizes the redundancy in these layers by simplifying the OS.

In MIKELANGELO document staan verschillende architectuur plaatjes, deze heb ik gekozen:

Cliënt (C source code) van Symmetric-ds heb ik al onder mijn source stack zitten. Database synchronisatie (Symmetric-ds-Cliënt) in een virutalApp laten draaien. Daarbij de master-/slave-node standaard op een tor hidden services laten draaien.

Ik vind op voorhand niet dat de masternode 1 bedrijf of server is (zoals Facebook, LinkedIn, Twitter, Google. KvK, Kadaster, MedischPatientenDossier het wel zo zien/vormgeven), maar elke node op onze platform kan een masternode of cliëntnode zijn. In mijn beeld bevat de masternode en de slave (bijvoorbeeld Store 001) in de meeste gevallen voor 99% dezelfde data.

Het gaat voornamelijk om de verschil records tussen die beiden nodes. Denk hierbij aan de miljoenen subscriber records van de Cdfoon. Indien ik 25 ‘vrienden’ van mij toevoeg aan de subscriber tabel, dan wil ik natuurlijk niet alle records ‘over de lijn trekken’. Autheursrecht op telefoonboek is er geloof ik niet meer, maar als het technisch beter opgelost kan worden ben ik daar voor.

Oplossing is om alleen (deel van) de hashes naar de master node te sturen. De master node stuurt ook (deel van) de hashes terug die hij heeft. Uit de hashes kan je de verschilrecords bepalen en feitelijk (ge-encrypt) over de lijn sturen. N.B. Mocht de ander persoon (“aan de andere kant van de lijn”) van Brein of ECD zijn dan kan hij mij alleen aanspreken op het verspreiden van 25 subscriber records, die ook nog door mijzelf zijn ingevoerd.

Symmetric-ds heeft massale updates wel goed geprogrammeerd. Symmetric-ds heeft erg uitgebreide documentatie gemaakt.

De hartelijke groet Jan Marco

Dat wat ook wel een ‘Unikernel’ genoemd wordt?

OSv

OSv is a new open-source operating system for virtual-machines. OSv was designed from the ground up to execute a single application on top of a hypervisor, resulting in superior performance and effortless management when compared to traditional operating systems which were designed for a vast range of physical machines.

Zoja, déjà vu, een jaar geleden hebben wij al eventjes aan ‘Unikernels’ geroken.

Het betreffende Wikipedia-artikel had midden 2015:

Modern implementations

There are a number of new approaches to constructing unikernels, which are at varying degrees of maturity. In alphabetical order:

1 ClickOS
2 Clive
3 Drawbridge
4 HaLVM
5 LING
6 MirageOS
7 OSv
8 Rump kernels

Nu zegt het:

Modern implementations

There are a number of new approaches to constructing unikernels, which are at varying degrees of maturity.

1 ClickOS
2 Clive
3 Drawbridge
4 Graphene
5 HaLVM
6 HermitCore
7 IncludeOS
8 LING
9 MirageOS
10 OSv
11 Rumprun
12 Runtime.js