private static void AppStart(EventArgs args)
    {
        var security = App.Security as BasicUserSecurity;
        if (security.FindUser("admin", out var user))
        {
            user.Active = false;
            security.ModifyUser(user);
        }
        security.AddUser("anthony", "challenge-24", "admin,user");
        security.AddUser("cathy", "seventy-sixers", "user");
        security.AddUser("dublin", "logmein.now", "user");
        security.AddUser("tester", "testing123", "user");
        security.AddUser("guest", "homeward", "guest");
    }

    public static void Main(string[] args)
    {
        Task.Run(ParsingTask);
        App.OnStart += AppStart;
        App.UseSecurity(new BasicUserSecurity());
        App.Run(args);
    }


drop table if exists customers;

create table customers (
	customer_id integer primary key not null,
	first_name nvarchar(100),
	last_name nvarchar(100),
	email nvarchar(100),
	phone nvarchar(100),
	street nvarchar(100),
	city nvarchar(100),
	zip char(10),
	state char(2),
	created char(30),
	enabled char(1)
);

drop table if exists preferences;

create table preferences (
	preference_id integer primary key not null,
	short_name nvarchar(100),
	description text,
	enabled char(1)
);

drop table if exists customer_preferences;

create table customer_preferences (
	customer_id integer,
	preference_id integer,
	enabled char(1)
);

drop table if exists raffles;

create table raffles (
	raffle_id integer primary key not null,
	short_name nvarchar(100),
	description text,
	legal text,
	url nvarchar(100),
	start_date char(30),
	end_date char(30),
	created char(30),
	enabled char(1)
);

drop table if exists raffle_tickets;

create table raffle_tickets (
	raffle_ticket_id integer primary key not null,
	raffle_id integer,
	customer_id integer,
	origin nvarchar(100), 
	created char(30),
	enabled char(1)
);

drop table if exists projects;

create table projects (
	project_id integer primary key not null,
	object_id integer,
	object_name nvarchar(100),
	short_name nvarchar(100),
	description text,
	created char(30),
	enabled char(1)
);

drop table if exists transactions;

create table transactions (
	transaction_id identity primary key,
	customer_id integer,
	project_id integer,
	project varchar(100), 
	created char(30),
	starts char(30),
	completes char(30)
);

drop table if exists payments;

create table payments (
	payment_id integer primary key not null,
	transaction_id integer,
	amount double,
	origin nvarchar(100), 
	created char(30),
	enabled char(1)
);

-- data to be pupulated

select * from raffles

insert into raffles (
	short_name,
	description,
	legal,
	url,
	start_date,
	end_date,
	enabled
) values (
	'Summer 2024 Raffle',
	'A raffle to benefit a charity',
	'legal notice goes here',
	'https://woodriverstudio.com',
	date('now', 'start of month'),
	date('now', 'end of month'),
	'Y'
);

insert into projects (
	object_id,
	object_name
) values (
	1,
	'raffles'
);

select * from raffles where raffle_id = 1;


-- SELECT DATE('now', 'start of month');

sudo apt-get install libgtk2.0-dev libcairo2-dev libpango1.0-dev libgdk-pixbuf2.0-dev libatk1.0-dev libghc-x11-dev


type
  TVector = record
    X, Y: Double;
  end;

function Distance(P1, P2: TVector): Double;
begin
  Distance := Sqrt(Sqr(P2.X - P1.X) + Sqr(P2.Y - P1.Y));
end;

function Normalize(V: TVector): TVector;
var
  Magnitude: Double;
begin
  Magnitude := Sqrt(Sqr(V.X) + Sqr(V.Y));
  if Magnitude <> 0 then
  begin
    Normalize.X := V.X / Magnitude;
    Normalize.Y := V.Y / Magnitude;
  end
  else
  begin
    Normalize.X := 0;
    Normalize.Y := 0;
  end;
end;

function Scale(V: TVector; Factor: Double): TVector;
begin
  Scale.X := V.X * Factor;
  Scale.Y := V.Y * Factor;
end;

function WillCollide(A, D, V: TVector; var C: TVector): Boolean;
const
  BallRadius = 1.125; // 2.25 / 2
var
  Dir: TVector;
  Dist: Double;
begin
  // Normalize the direction vector
  Dir := Normalize(V);

  // Calculate the distance between the cue ball and the object ball
  Dist := Distance(A, D);

  // Check if the balls are already colliding
  if Dist <= 2 * BallRadius then
  begin
    C := A; // Already colliding
    WillCollide := True;
  end
  else
  begin
    // Calculate the point where the center of the cue ball will be at impact
    C := Scale(Dir, Dist - 2 * BallRadius);
    C.X := A.X + C.X;
    C.Y := A.Y + C.Y;

    // Check if the calculated position C is close enough to the object ball
    if Distance(C, D) <= 2 * BallRadius then
      WillCollide := True
    else
      WillCollide := False;
  end;
end;

var
  A, D, V, C: TVector;
  Collision: Boolean;
begin
  // Example usage
  A.X := 0; A.Y := 0;     // Cue ball's initial position
  D.X := 5; D.Y := 5;     // Object ball's position
  V.X := 1; V.Y := 1;     // Cue ball's velocity vector

  Collision := WillCollide(A, D, V, C);

  if Collision then
    WriteLn('Collision will occur at (', C.X:0:2, ', ', C.Y:0:2, ')')
  else
    WriteLn('No collision will occur.');
end.


https://docs.docker.com/config/containers/start-containers-automatically/
https://docs.docker.com/engine/reference/commandline/logs/
https://stackoverflow.com/questions/56445209/run-sqlcmd-in-dockerfile
https://www.sqlshack.com/pagination-in-sql-server/
https://learn.microsoft.com/en-us/sql/azure-data-studio/extensions/sql-server-profiler-extension?view=sql-server-ver16

if you use .Where(x => x.StringProp.Contains("bla")) // you get `LIKE %bla%` similiar as when you use StartsWith / EndsWith where you get 'bla%' and '%bla'
you can also use `.Where(x => SqlFunctions.Like(x.StringProp, "%bla%")
when using SQL Server, you can use the SQL Server Profiler that is included with the SSMS installation to view all statements fired against your server in realtime or you can use like `optionsBuilder.EnableSensitiveDataLogging(); optionsBuilder.LogTo(x => Debug.WriteLine(x)/*, (eventId, logLevel) => eventId == RelationalEventId.CommandExecuted*/);`to enable logging in code
var results = context.order_status.Select(x => new { x.order_status_id, x.name }).OrderBy(x => x.name).ToList();
var results = context.order_status.Select(x => new { x.order_status_id, x.name, customerName = x.customer.name }).OrderBy(x => x.name).ToListAsync();
 if order_status.customer is marked as required, the column is not null and you get an inner join, otherwise it's nullable and you get a left join, meaning customerName would be possibly null in that query, the fact that customer.name would yield a NRE in C# is skipped over here and you get the sql semantics
var query = context.order_status.AsQueryable(); if (category != null) { query = query.Where(x => x.category == category); } query.ToListAsync();
var users = context.users.Where(x => x.age > 21); var orders = context.order_status.Where(x => users.Contains(x.user));

var res = connection.Query("SELECT a, b FROM c"); JsonConvert.SerializeObject(res); // [{"a": "a value", "b": "b value"}]
public IQueryable GetOrdersForCustomer(User u) => context.Orders.Where(x => whatever permissions need to be checked);
GetOrdersForCustomer(user).Where(x => ...).ToListAsync();`


3 tablespoons ghee or olive oil
1 medium yellow onion (8 ounces), diced
3/4 cup (5 ounces) green or brown lentils
1/2 cup (3 1/2 ounces) uncooked basmati rice
1 (6-ounce) can tomato paste
1 teaspoon ground cumin
1 teaspoon dried mint leaves (optional)
1/2 teaspoon fine salt, plus more as needed
1/4 teaspoon freshly ground black pepper
1/4 teaspoon ground cinnamon
6 cups low-sodium vegetable or chicken broth, divided
1/2 bunch (2 ounces) fresh parsley, preferably curly, leaves and tender stems, finely chopped and divided, plus more for serving
1/4 cup fresh lemon juice (from 2 large lemons), plus more to taste
Fresh herb sprigs, such as parsley, scallions, tarragon and/or dill, for serving, as desired (optional)
6 ounces feta, for serving (optional)



#version 120

#define PI 3.1415926538

// Input vertex attributes (from vertex shader)
varying vec2 fragTexCoord;
varying vec4 fragColor;

// Input uniform values
uniform sampler2D texture0;
uniform vec4 colDiffuse;

// NOTE: Add here your custom variables

void main()
{
    vec2 center = vec2(0.5, 0.5);
    float d = distance(center, fragTexCoord) / 0.5;
    float a = d > 0.98 ? 1.0 - smoothstep(0.98, 1.0, d) : 1.0;
    float x = (fragTexCoord.x - 0.5) * 2.0;
    x = sin(x * PI / 2.0);
    float y = (fragTexCoord.y - 0.5) * 2.0;
    y = sin(y * PI / 2.0);
    float z = distance(center, fragTexCoord) / 0.5;
    z = cos(z * PI / 2.0);
    vec3 n = vec3(x, y, z);
    vec3 light = vec3(-8.0, -10.0, 30.0);
    light = normalize(light);
    float intensity = dot(light, n);
    gl_FragColor = vec4(clamp(intensity, 0.2, 1.0), 0.0, 0.0, a);
}


testchipmunk.lpr(75,1) Error: Undefined symbol: __imp___acrt_iob_func (first seen in libchipmunk.a(cpSpace.o))
testchipmunk.lpr(75,1) Error: Undefined symbol: calloc (first seen in libchipmunk.a(cpSpace.o))
testchipmunk.lpr(75,1) Error: Undefined symbol: memcpy (first seen in libchipmunk.a(cpSpace.o))
testchipmunk.lpr(75,1) Error: Undefined symbol: free (first seen in libchipmunk.a(cpSpace.o))
testchipmunk.lpr(75,1) Error: Undefined symbol: abort (first seen in libchipmunk.a(cpSpace.o))
testchipmunk.lpr(75,1) Error: Undefined symbol: qsort (first seen in libchipmunk.a(cpBBTree.o))
testchipmunk.lpr(75,1) Error: Undefined symbol: realloc (first seen in libchipmunk.a(cpArray.o))

ThreadProc
pthread_cond_broadcast
pthread_cond_destroy
pthread_cond_init
pthread_cond_signal
pthread_cond_wait
pthread_create
pthread_join
pthread_mutex_destroy
pthread_mutex_init
pthread_mutex_lock
pthread_mutex_unlock


Debug: /x86_64-win64/ld: C:\Development\Pascal\Projects\physics\lib\x86_64-win64\Physics.obj: could not read symbols: file in wrong format

Compile Project, Target: Physics.exe: Exit code 1, Errors: 5, Hints: 2
Hint: Start of reading config file C:\Development\Pascal\fpc\bin\x86_64-win64\fpc.cfg
Hint: End of reading config file C:\Development\Pascal\fpc\bin\x86_64-win64\fpc.cfg
Verbose: Free Pascal Compiler version 3.2.2-rrelease_3_2_2-0-g0d122c4953 [2022/08/05] for x86_64
Verbose: Copyright (c) 1993-2021 by Florian Klaempfl and others
Verbose: Target OS: Win64 for x64
Verbose: Compiling Physics.lpr
Verbose: Compiling simulate.pas
Physics.lpr(13,16) Verbose: Unit "Simulate" not used in Physics
Verbose: Compiling resource C:\Development\Pascal\Projects\physics\lib\x86_64-win64\Physics.obj
Verbose: Linking C:\Development\Pascal\Projects\physics\Physics.exe
Physics.lpr(30,1) Error: Undefined symbol: ___chkstk_ms
Physics.lpr(30,1) Error: Undefined symbol: __mingw_raise_matherr
Physics.lpr(30,1) Error: Undefined symbol: __imp_WideCharToMultiByte
Physics.lpr(30,1) Error: Undefined symbol: __imp_IsDBCSLeadByteEx
Physics.lpr(30,1) Error: Undefined symbol: __imp_MultiByteToWideChar
Physics.lpr(30,1) Verbose: There were 5 errors compiling module, stopping
Verbose: Compilation aborted
Verbose: C:\Development\Pascal\fpc\bin\x86_64-win64\ppcx64.exe returned an error exitcode


#!/bin/bash

rm *.o
rm *.a
rm *.dll
gcc -c nanovg_gl3.c
ar rcv libnanovg-gl3-linux.a nanovg_gl3.o
gcc -c nanovg_gles2.c
ar rcv libnanovg-gles2-linux.a nanovg_gles2.o
x86_64-w64-mingw32-gcc-win32 -shared -static -static-libgcc nanovg_gl3.c -o nanovg-gl3.dll 
x86_64-w64-mingw32-gcc-win32 -shared -static -static-libgcc nanovg_gles2.c -o nanovg-gles2.dll 
cp *.a ../src/libs/
cp *.dll ../src/libs/
rm *.o
rm *.a
rm *.dll


windows static build chipmunk

x86_64-w64-mingw32-gcc-win32 -static -static-libgcc -std=gnu99 -ffast-math src/*.c -Iinclude -c
x86_64-w64-mingw32-ar rcs libchipmunk-win.a *.o

windows dll build chipmunk

x86_64-w64-mingw32-gcc-win32 -static -shared -static-libgcc -std=gnu99 -ffast-math src/*.c -Iinclude -o libchipmunk.dll

/* gcc this.c -lGL -lX11 */

#include 
#include 
#include 
#include 
#include 
#include 

/*
    License: Public domain

    Contents
    --------
    - Create_display_and_window
    - Create_the_modern_OpenGL_context
    - Show_the_window
    - Application_loop
*/

int errorHandler(Display * d, XErrorEvent * e)
{
	printf("errorHandler");
	return 0;
}

int ioHandler(Display * d)
{
	printf("ioHandler");
	return 0;
}

typedef GLXContext (*glXCreateContextAttribsARBProc)
    (Display*, GLXFBConfig, GLXContext, Bool, const int*);

int main()
{
    Display* disp = 0;
    Window win = 0;

    /* Create_display_and_window */
    disp = XOpenDisplay(0);
	XSetErrorHandler(errorHandler);
	XSetIOErrorHandler(ioHandler);
    win = XCreateSimpleWindow(disp, DefaultRootWindow(disp),
                              10, 10,   /* x, y */
                              800, 600, /* width, height */
                              0, 0,     /* border_width, border */
                              0);       /* background */

    /* Create_the_modern_OpenGL_context */
    static int visual_attribs[] = {
        GLX_RENDER_TYPE, GLX_RGBA_BIT,
        GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT,
        GLX_DOUBLEBUFFER, true,
        GLX_RED_SIZE, 8,
        GLX_GREEN_SIZE, 8,
        GLX_BLUE_SIZE, 8,
        GLX_SAMPLE_BUFFERS, 1,
        GLX_SAMPLES, 4,
        0
    };

    int num_fbc = 0;
    GLXFBConfig *fbc = glXChooseFBConfig(disp,
                                         DefaultScreen(disp),
                                         visual_attribs, &num_fbc);
    if (!fbc) {
        printf("glXChooseFBConfig() failed\n");
        exit(1);
    }

    /* If we were on Windows (i.e. WGL), we would need to create an old
       dummy OpenGL context here, before calling GetProcAddress(). This is
       unnecessary on Linux (GLX).

       For details, refer to the spec
       (https://www.khronos.org/registry/OpenGL/extensions/ARB/GLX_ARB_get_proc_address.txt)
       which says:
           > Are function pointers context-independent? Yes. The pointer to an
           > extension function can be used with any context [...]

       This is in direct contrast to WGL's wglGetProcAddress. */

    glXCreateContextAttribsARBProc glXCreateContextAttribsARB = 0;
    glXCreateContextAttribsARB =
        (glXCreateContextAttribsARBProc)
        glXGetProcAddress((const GLubyte*)"glXCreateContextAttribsARB");

    /* If we were on Winows, we would destroy the dummy context here. Again,
       this is unnecessary on Linux.*/

    if (!glXCreateContextAttribsARB) {
        printf("glXCreateContextAttribsARB() not found\n");
        exit(1);
    }

    /* Set desired minimum OpenGL version */
    static int context_attribs[] = {
        GLX_CONTEXT_MAJOR_VERSION_ARB, 4,
        GLX_CONTEXT_MINOR_VERSION_ARB, 6,
        0
    };
    /* Create modern OpenGL context */
    GLXContext ctx = glXCreateContextAttribsARB(disp, fbc[0], NULL, true,
                                                context_attribs);
	printf("sizeof(ctx) = %ld\n", sizeof(ctx));
    if (!ctx) {
        printf("Failed to create OpenGL context. Exiting.\n");
        exit(1);
    }

	void* p;
    /* Show_the_window */
    printf("sizeof(void*) = %ld\n", sizeof(p));
    printf("sizeof(disp) = %ld\n", sizeof(disp));
    //XMapWindow(disp, win);
    glXMakeCurrent(disp, win, ctx);
    printf("sizeof(win) = %ld\n", sizeof(win));

    int major = 0, minor = 0;
    glGetIntegerv(GL_MAJOR_VERSION, &major);
    glGetIntegerv(GL_MINOR_VERSION, &minor);
    printf("OpenGL context created.\nVersion min.maj %d.%d\nVersion %s\nVendor %s\nRenderer %s\n",
           major, minor,
           glGetString(GL_VERSION),
           glGetString(GL_VENDOR),
           glGetString(GL_RENDERER));

	Window rr;
	int xr, yr, wr, hr, bw, dr;
	int w = 0, h = 0;
	glClearColor(0, 0, 1, 0);
	
    /* Application_loop */
	
    while(1) {
		glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
		glXSwapBuffers(disp, win);
		
		Status s = XGetGeometry(disp, win, &rr, &xr, &yr, &wr, &hr, &bw, &dr);
		if (s == BadWindow) {
			printf("Window closed\n");
			break;
		}
		if (w != wr || h != hr) {
			w = wr;
			h = hr;
			printf("Window sized width %d height %d\n", w, h);
		}
	}

    return 0;
}


Full Name: Your Name
Registration Code: 12635-1266867

https://howtoautocad.com/an-introduction-to-vba-in-autocad/

#include 
#include 
#include 
#include 
#include 


int main ()
{
    Display* d = XOpenDisplay(NULL);
    Window root = DefaultRootWindow(d);
    Window curFocus;
    char buf[17];
    KeySym ks;
    XComposeStatus comp;
    int len;
    int revert;

    XGetInputFocus (d, &curFocus, &revert);
    XSelectInput(d, curFocus, KeyPressMask|KeyReleaseMask|FocusChangeMask);

    while (1)
    {
        XEvent ev;
        XNextEvent(d, &ev);
        switch (ev.type)
        {
            case FocusOut:
                printf ("Focus changed!\n");
                printf ("Old focus is %d\n", (int)curFocus);
                if (curFocus != root)
                    XSelectInput(d, curFocus, 0);
                XGetInputFocus (d, &curFocus, &revert);
                printf ("New focus is %d\n", (int)curFocus);
                if (curFocus == PointerRoot)
                    curFocus = root;
                XSelectInput(d, curFocus, KeyPressMask|KeyReleaseMask|FocusChangeMask);
                break;

            case KeyPress:
                printf ("Got key!\n");
                len = XLookupString(&ev.xkey, buf, 16, &ks, &comp);
                if (len > 0 && isprint(buf[0]))
                {
                    buf[len]=0;
                    printf("String is: %s\n", buf);
                }
                else
                {
                    printf ("Key is: %d\n", (int)ks);
                }
        }

    }
}

HOWTO: downgrade openssl on debian based linux machines, fixing Azure Data Studio

https://unix.stackexchange.com/questions/602233/sql-server-connection-failed-with-linux-mint-sql-server-2008-r2-using-any-clie

Below are the instructions to follow:

Open a terminal (Ctrl+Alt+t).
Fetch the tarball: wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
Unpack the tarball with tar -zxf openssl-1.1.1.tar.gz && cd openssl-1.1.1
Issue the command ./config.
sudo apt install make gcc
make
make test to check for possible errors.
Backup current openssl binary: sudo mv /usr/bin/openssl ~/tmp
Issue the command sudo make install.
sudo ln -s /usr/local/bin/openssl /usr/bin/openssl
Run the command sudo ldconfig to update symlinks and rebuild the library cache.

Assuming that there were no errors in executing steps 4 through 10, you should have successfully installed the new version of OpenSSL.

Again, from the terminal issue the command: openssl version

Your output should be as follows: OpenSSL 1.1.1  11 Sep 2018


using System.data;
using System.data.SqlClient;
using System.Linq;
using Dapper;

class Program
{
    static void Main()
    {
        string connectionString = "Data Source=www.codebot.org,1433;Initial Catalog=codebo;User id=sa;Password=qwe!!123;";
        using (IDbConnection data = new SqlConnection(connectionString))
        {
            data.Open();
            var tables = data.Query("select name from sysobjects where type = 'U' order by name");
            foreach (var item in tables)
                Console.WriteLine(item);
        }
    }
}


320 Sherwood  Ave
Satellite Beach, Fl  32937
Cell      321-266-4580
home   321-622-5193

You can see why I get confused...622 vs 266      Never could rote memorize but ask me where I sat in kinderfarten and I'm a whiz.     That was a typo, but think I'll leave it.

  145  sudo apt-get install qemu
  146  sudo apt-get install qemu-kvm 
  147  sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
  148  sudo apt-get install qemu-kvm libvirt-bin 
  149  sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
  150  sudo apt install virt-manager


  178  ls
  179  qemu-system-x86_64
  180  qemu-system-x86_64 -boot d -cdrom en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso -m 4G -hda windows.img
  181  ls ~/
  182  mkdir ~/Windows
  183  mv ~/windows.img ~/Windows/disk.img
  184  qemu-system-x86_64 -boot d -cdrom en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso -m 4G -hda ~/Windows/disk.img 
  185  qemu-system-x86_64 -enable-kvm -boot d -cdrom en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso -m 4G -hda ~/Windows/disk.img 
  186  qemu-system-x86_64 -enable-kvm -boot d -cdrom en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso -m 4G -smp 2 -hda ~/Windows/disk.img 
  187  qemu-system-x86_64 -enable-kvm -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -boot d -cdrom en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso -m 4G -smp 2 -hda ~/Windows/disk.img 
  188  qemu-system-x86_64 -enable-kvm -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -boot d -cdrom en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso -m 4096 -smp 2 -hda ~/Windows/disk.img 
  189  qemu-system-x86_64 -enable-kvm -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -vga -m 4096 -smp 2 -hda ~/Windows/disk.img 
  190  qemu-system-x86_64 -enable-kvm -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -boot d -cdrom en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso -vga -m 4096 -smp 2 -hda ~/Windows/disk.img 
  191  qemu-system-x86_64 -enable-kvm -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -boot d -cdrom en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso -m 4096 -smp 2 -hda ~/Windows/disk.img 
  192  qemu-img create disk.img 80G
  193  ls ~/Windows/
  194  rm ~/Windows/disk.img 
  195  mv disk.img ~/Windows/
  196  qemu-system-x86_64 -enable-kvm -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -boot d -cdrom en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso -m 4096 -smp 2 -vga -hda ~/Windows/disk.img 
  197  qemu-system-x86_64 -enable-kvm -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -boot d -cdrom en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso -m 4096 -smp 2 -hda ~/Windows/disk.img 
  198  qemu-system-x86_64 -vga -enable-kvm -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -boot d -cdrom en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso -m 4096 -smp 2 -hda ~/Windows/disk.img 
  199  qemu-system-x86_64 -vga -enable-kvm -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -boot d -cdrom en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso -m 4096 -smp 2 -vga std -hda ~/Windows/disk.img 
  200  qemu-system-x86_64 -vga std -enable-kvm -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -boot d -cdrom en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso -m 4096 -smp 2 -hda ~/Windows/disk.img 
  201  qemu-system-x86_64 -vga std -enable-kvm -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -m 4096 -smp 2 -hda ~/Windows/disk.img 
  202  qemu-system-x86_64 -vga std -enable-kvm -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -m 4096 -smp 2 -daemonize -hda ~/Windows/disk.img 
  203  windows
  204  touch ~/bin/windows
  205  chmod +x ~/bin/windows
  206  nano ~/bin/windows
  207  windows
  208  exit
  209  ls /etc/samba/smb.conf 
  210  cat /etc/samba/smb.conf 
  211  sudo nano /etc/samba/smb.conf 
  212  sudo service samba restart
  213  sudo service sambad restart
  214  /etc/init.d/samb
  215  sudo service smbd restart
  216  sudo ufw allow samba
  217  cat ~/bin/windows 


https://www.ebay.com/itm/373851355187?hash=item570b46f833:g:NbAAAOSwbKNh1KhY

This is from your old realtor (and I do mean ''old"), Mary Walter who remembers all your many kindnesses to  me. My telephone number is still the same 783-7860 and my e-mail marygwalter@gmail.com. should you want to reminisce or bring me up to date.
unit LibC;

{$i options.inc}

interface

implementation

{$ifdef linux}
  {$linklib c}
  {$linklib m}
{$endif}
{$ifdef windows}
  procedure {%H-}___chkstk_ms; public name '___chkstk_ms'; begin end;
  {$linklib libmsvcr120.a}
  {$linklib libmsvcr120_app.a}
{$endif}

end.    

af4a61e2-709a-44a8-a210-6957dd68d747

        // LibgpiodDriverEventHandler.cs
        public void Dispose()
        {
            _disposing = true;
            CancellationTokenSource.Cancel();
            try
            {
                _task?.Wait();
            }
            catch
            {
            
            }
            ValueRising = null;
            ValueFalling = null;
        }

https://cache.codebot.org/prints/usb-c-power-brick.jpg
https://cache.codebot.org/prints/power-supply.jpg
https://cache.codebot.org/prints/soldering-station.jpg

namespace Codebot.Web
{
    public class Templates
    {
        public static string TemplateFolder = "/Templates/";
        public static string TemplateExtension = ".template";

        public delegate string TemplateLoad(string fileName);
        private readonly TemplateLoad load;

        public Templates(TemplateLoad load)
        {
            this.load = load;
        }

        public string this[string key]
        {
            get
            {
                return load(TemplateFolder + key + TemplateExtension);
            }
        }
    }
}


https://news.ycombinator.com/item?id=25047409
https://www.reddit.com/r/programming/comments/jrnfzi/net_50_released/

function VerifyUnicodeCharsFPJson: Boolean;
const
  UnicodeChars = '{ "name": "Joe®Schmoe", "occupation": "bank teller \u00Ae " }';
var
  N: TJSONData;
begin
  N := GetJSON(UnicodeChars);
  Result := (N.Items[0].AsUnicodeString = 'Joe®Schmoe') and (N.Items[1].AsUnicodeString = 'bank teller ® ');
  N.Free;
end;

function VerifyUnicodeCharsJsonTools: Boolean;
const
  UnicodeChars = '{ "name": "Joe®Schmoe", "occupation": "bank teller \u00Ae " }';
var
  N: TJsonNode;
begin
  N := TJsonNode.Create;
  N.Parse(UnicodeChars);
  Result := (N.Child(0).AsString = 'Joe®Schmoe') and (N.Child(1).AsString = 'bank teller ® ');
  N.Free;
end;

begin
  WriteLn('Handles unicode characters correctly: ', VerifyUnicodeChars);
end.

combustion support
molten shell
ice golem
Diamond Flask

https://stackoverflow.com/questions/15853732/sending-keystroke-to-another-application-using-winapi

Vessel of Vinktar

Essence of Hysteria

Xoph's Blood

The Pandemonius Jade Amulet

Kaom's Heart Glorious Plate

Queen of the Forest Destiny Leather

//  javascript:(function(){Array.from(document.body.getElementsByTagName('*'), e => e.style.outline = '2px dotted orangered');})();


https://jan.newmarch.name/RPi/OpenVG/Text/

devscripts debhelper dh-autoreconf libasound2-dev libudev-dev libdbus-1-dev libx11-dev libxcursor-dev libxext-dev libxi-dev libxinerama-dev libxrandr-dev libxss-dev libxt-dev libxxf86vm-dev

dpkg --remove libsdl2

rm -rf /usr/local/bin/sdl2-config
find /usr/local/lib/ -name "libSDL2*" -delete
rm /usr/local/share/aclocal/sdl2.m4
rm /usr/local/lib/pkgconfig/sdl2.pc
rm libsdl2-2.0-0_2.0.3+1rpi_armhf.deb
wget -O libsdl2-2.0-0_2.0.3+1rpi_armhf.deb http://downloads.petrockblock.com/retropiebinaries/jessie/rpi2/libsdl2-2.0-0_2.0.3+1rpi_armhf.deb
dpkg -i libsdl2-2.0-0_2.0.3+1rpi_armhf.deb


//servername/sharename  /media/windowsshare  cifs  username=msusername,password=mspassword,iocharset=utf8,sec=ntlm  0  0

export CPPFLAGS=-I/opt/vc/include

../configure --host=armv7l-raspberry-linux-gnueabihf --disable-pulseaudio --disable-esd --disable-video-mir --disable-video-wayland --disable-video-x11 --disable-video-opengl

make -j 4
sudo make install

code stolen from openGL-RPi-tutorial-master

Vendor: Broadcom
Renderer: VideoCore IV HW
Renderer: OpenGL ES 2.0
Shading Language: OpenGL ES GLSL ES 1.00
Extensions: GL_OES_compressed_ETC1_RGB8_texture GL_OES_compressed_paletted_texture GL_OES_texture_npot GL_OES_depth24 GL_OES_vertex_half_float GL_OES_EGL_image GL_OES_EGL_image_external GL_EXT_discard_framebuffer GL_OES_rgb8_rgba8 GL_OES_depth32 GL_OES_mapbuffer GL_EXT_texture_format_BGRA8888 GL_APPLE_rgb_422 GL_EXT_debug_marker  

'attribute vec4 vPosition; '#10 +
'void main() '#10 +
'{ '#10 +
' gl_Position = vPosition; '#10 +
'} ';

'precision mediump float; '#10 +
'void main() '#10 +
'{ '#10 +
' gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); '#10 +
'} ';

style "MyStyle"
{
	font_name = "Ubuntu Condensed 11"
}

widget_class "*" style "MyStyle"
gtk-font-name = "Ubuntu Condensed 11"

Depends: libatk1.0-0 (>= 2.10.0), libgdk-pixbuf2.0-0 (>= 2.30.7), libglib2.0-0 (>= 2.40.2), libgtk2.0-0 (>= 2.24.23), libpango-1.0-0 (>= 1.36.3)

fpc -ic
ARMV3
ARMV4
ARMV4T
ARMV5
ARMV5T
ARMV5TE
ARMV5TEJ
ARMV6
ARMV6K
ARMV6T2
ARMV6Z
ARMV6M
ARMV7
ARMV7A
ARMV7R
ARMV7M
ARMV7EM


http://free-pascal-lazarus.989080.n3.nabble.com/Lazarus-ARMV7-td4031329.html


https://solarianprogrammer.com/2015/01/22/raspberry-pi-raspbian-getting-started-sdl-2/


http://stackoverflow.com/questions/28456652/how-to-get-opengl-es-working-on-raspberry-pi-with-sdl2

You want a config.site file. Try:

$ mkdir -p ~/local/share
$ cat << EOF > ~/local/share/config.site
CPPFLAGS=-I$HOME/local/include
LDFLAGS=-L$HOME/local/lib
...
EOF
Whenever you invoke an autoconf generated configure script with --prefix=$HOME/local, the config.site will be read and all the assignments will be made for you. CPPFLAGS and LDFLAGS should be all you need, but you can make any other desired assignments as well (hence the ... in the sample above). Note that -I flags belong in CPPFLAGS and not in CFLAGS, as -I is intended for the pre-processor and not the compiler.

tar cvzf tarballname.tar.gz itemtocompress
tar xvf tarballname.tar.gz 

http://svn.freepascal.org/svn/fpc/tags/release_3_0_0/

export PPC_CONFIG_PATH=$BASE/fpc-3.0.0/bin

make all OPT="-dFPC_ARMHF" && make install INSTALL_PREFIX=$BASE/fpc

cat packages.txt | xargs -I {} mv {} ../backup/


{ Contents of various files:

/proc/cpuinfo
-----
processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 16
model		: 5
model name	: AMD Athlon(tm) II X4 630 Processor
stepping	: 2
microcode	: 0x10000c6
cpu MHz		: 800.000
cache size	: 512 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 4

/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
-----
800000

/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
-----
2800000

/proc/stat
-----
cpu  528755 66117 132403 9907546 67604 20 8706 0 0 0
cpu0 132794 16744 32842 2484423 14577 0 754 0 0 0
cpu1 128018 18489 32075 2491808 11818 0 13 0 0 0
cpu2 129016 14810 33331 2484993 12281 12 45 0 0 0
cpu3 138926 16073 34154 2446320 28927 7 7893 0 0 0 }   �


procedure TLinuxMonitor.Initialize;
var
  Data: TLinuxCoreData;
  S: string;
  I: Integer;
begin
  S := FileReadStr('/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq').Trim;
  FSpeed := StrToIntDef(S, 0) div 1000;
  S := FileReadStr('/proc/cpuinfo');
  for S in S.Split(#10) do
    if S.BeginsWith('model name') then
      FModel := S.SecondOf(': ' );
  I := -1;
  for S in FileReadStr('/proc/stat').Split(#10) do
    if S.BeginsWith('cpu') then
    begin
      if I > -1 then
      begin
        IdParse(S);
        Data.Idle := IdIdle + IdIowait;
        Data.Total := Data.Idle + IdUser + IdNice + IdSystem + IdIrq + IdSoftirq + IdSteal;
        FCoreData.Push(Data);
      end;
      Inc(I);
    end
    else
      Break;
  while I > 0 do
  begin
    FCores.Push(TProcessorCore.Create);
    Dec(I);
  end;
  FUsage.Length := FCores.Length;
end;