piano imagemap test

piano H-1 C0 CIS0 > D0 DIS0 E0 F0 FIS0 G0 GIS0 A0 B0 H0 C1 CIS1 D1 DIS1 E1 F1 FIS1 G1 GIS1 A1 B1 H1 C2 CIS2 D2 DIS2 E2 F2

Labels

Wirtschaft (156) Pressefreiheit (153) Österreich (125) IT (111) code (71) Staatsschulden (37) EZB (27) Pensionssystem (16) Geopolitik (13)
Posts mit dem Label code werden angezeigt. Alle Posts anzeigen
Posts mit dem Label code werden angezeigt. Alle Posts anzeigen

2025-12-12

DB scenarios with heavy load and a lot of idle time

When it comes to distributing the load between database and application server, web server, and internal report servers, often various approaches were discussed some purely by ideology driven.
Some realistic real world examples:

  1. Nearly all load should be in the memory of application and web servers
    with many dynamic objects, and almost NO load should hammer the database.
  2. Only Entity Framework Core
  3. No EFCore at all, because only Stroed Procedures can be administrated more secure. and last but not least can guarantee atomicity, fetch of reduced result sets, that you really need and NOT huge views from the entire database.
  4. Optimized stored procedures with execution plan sniffing will solve heavy load problem.
  5. Entity Framework Core with stored procedures is also must have for 4.
  6. EFCore SProcs is only a nuget package of unknown origin, I only trust Microsoft.
  7. Can you search git please: https://github.com/verdie-g/StoredProcedureEFCore
    Ah, origin seems to be very clear for me.
  8. This package is archived since 22.10. MS can do it directly:
    https://stackoverflow.com/questions/28599404/how-to-run-stored-procedures-in-entity-framework-core
  9. Reducing wait time of (dead-)locks in case of only read access
    by uncommittable reads, that totally avoid table and row locks
  10. Fast memcaches to partially buffer the database
    only write-through  works
    must implement lazy loading strategies
    clever buffering, instead fully write through 
  11. ...
To understand the situation better, I draw 2 different scenarios and you will immediately see why the database in Scenario 1 is always under heavy load and further load is critical,
while the database in Scenario 2 is almost always idle.


What I mean you really must take care to avoid any further huge db load in scenaria 1,
but not in scenario 2.

If you want for your external business application in a scenario 2 (most cloud databases are optimized on relational data and databases are stored often on a seperated optimized disk in raw format, so this is already a performance advantage to c:\*.mdf;*,ldf, where all windows services and system programs permantly have high IO, see https://youtu.be/ybNXf4t4zT4)
then contact cloud pilots to see your database in azured mediterranean sea or tech racer to get more amazon power, instead under heavy violent high-pressure thunderstorms.

If you like more european clouds, I found https://clouding.io/ in Barcelona and transfered Paris amazon locartion to it. Spanish cloud in Madrid and US in west virginia is still amazon.

You know why?

Because a lot of companies with 1-2 business application mostley hammer their own database from inside and produce them self a lot of traffic and database load, because they want to keep their business important. 
Moving an application and database to the cloud is truly truthfulness,
because it allows you to better understand attitudes of customers, internal users and bots, who visit your application. A realisitc view is better to plan for the future and rethink strategies of re-.growing your business.
If you want to grow, you can dynamically and quickly scale up CPUs, memory, and disk space in the cloud.

2025-10-20

Die Anzahl der Anordnungen der Elemente einer endlichen Menge

Prolog

Wenn Studenten im Sommersemster 1992 in der Vorlesung Graphentheorie und Kombinatorik von Prof. Gerd Baron lauter wurden, nebenbei am Laptop für andere Übungen zu koodieren begannen oder sich zu unterhalten oder zu Essen begannen, dann wiederholte Professor Baron mit lauter Stimme:

Wir haben hier ein Universum und es geht um 
die Anzahl der Anordnungen der Elemente einer endlichen Menge.

We have a universe here and 
it's all about of the number of combinations of items in a finite set.

Professor Baron war für die Entstehung der Vorlesung + Übung Graphentheorie und Kombinatorik als zusätliches Fach zu Analysis, Algebra und linearer Algebra  für Informatiker mitentscheidend. Prof. Baron war der Meinung, dass Graphentheorie (inklusive gewichteter Pfade + Adjazenzmatrix Darstellung) für Informatiker wegen Verständnis von Routing Tabellen ip routing graph und Suche nach dem kürzestem Routing Pfad und Algorithmen wie dem traveling salesmen essentliell seien und Kombinatorik für Informatiker wegen oft vieler fast gleichwertiger Lösungsmöglichkeiten essentiell sei:


In den Jahren 2021-2023 [ CV ] implementierte ich nach der Idea von Georg Toth mit ihm gemeinsam SUPU (SUdocu PUzzle). Für das Feature "Game Automation", wo der Computer die Hälte des Spielbretts automatisch vorlegt und der Spieler nur noch die obere Hälfte selbst setzen muss. brauchte ich eine heuristischen einfachen, aber genügend performanten Algorithmus mit lauter unterschiedlichen Kombinationen pro Durchlauf für den Computer und ich erinnerte mich an Professor Baron.


Nach einem Treffen mit meinem alten Freund, dem Mathematik- und Physikprofessor Michael F. (der ebenfalls im Finanzsektor in der Londoner City tätig war), und unserem Gespräch über invertierbare Matrizen, wurde ich nachts mit einigen technischen Hilfsmittlen penetriert und äußerte meine Idee laut. Anstatt die Information jedoch nur Unbekannten (vielleicht russischen oder rechtsextremen Spionen) zukommen zu lassen, verfasste ich diesen Artikel, damit jeder, auch alle Partner in den USA, davon Kenntnis nimmt.

Einfachste Art AES nach oben zu skalieren:
Kombinieren mehrerer Blockciphers mit Permutation

Verschlüsselung: plain text ⟶ 3DES PBox → AES → 2-fish ⟶ cipher bytes
Entschlüsselung: cipher bytes ⟶ 2-fish → AES → 3DES SBox ⟶ plain text

Verschlüsselung: (zuletzt base64 mime kodieren oder uuencode für ASCII Cipher Text)
plain text ⟶ AES ⟶ 2-fish⟶ 3DES PBox (scrambled) ⟶ base64  cipher ascii

Entschlüsselung: (zuerst base64 oder uudecode und dann symmetrische Entschlüsselung)
cipher 
ascii⟶ base64  3DES  SBox(scrambled) → 2-fish→ AES ⟶ plain text

Man kann jetzt natürlich durch Enumerierung der einzelnen Symmetrischen Cipher Algorithmen eine Pipe skizzieren:
3DES = 0x1
AES = 0x2
2Fish = 0x4
Serpent = 0x8

Hexedezimal 0x148 für Verschlüsseln bedeuted 0x841 für Entschlüsseln.
plain ⟶ (3DES→
2FishSerpent) ⟶⟶ encrypted
encrypted ⟶ (Serpent→2Fish→3DES) ⟶ plain 

Beispiele für Kombinationen von mehreren symmetrischen Ciffrier-Algoríthmen:

Mathematisches Lemma (Funktionentheorie) lautet in etwa:

Angenommen, es ∃ ein-ein-deutige deterministische umkehrbare Funktionen, wo es zu jeder Funktion y=F(x,...) eine entsprechende Umkehrfunktion x =f(y,..) gibt =>, 
dann ∃ zur Funktionenkette y = F( G( H( I( J( K( L( M( N(x, ...))))))))) 
die Umkehrfunktion x = n( m( l( k( j( i( h( g( f(y,...))))))))).

Ansatz eines mathematischen Beweises

Man kann jede Abbildung von ascii8 → ascii8 
immer auch als Matrix vom R256 ➝ R256 betrachten.

8-fache umkehrbare blockweise ver-/ent-schlüsselnde  Funktionskette:

Probier einmal mein Online Webformular aus:
https://area23.at/net/Crypt/CoolCrypt.aspx

Github repository: github.com/heinrichelsigan/area23.at/


Ein einfacher Matrixverschlüsselungsalgorithmus von mir selbst:

Ich habe einen einfachen symmetrischen Matrixverschlüsselungsalgorithmus gefunden, der als einfache symmetrische Chiffre funktioniert mit NxN-Matrix-Transformation, nachdem ich diese Frage hier auf math.stackexchange.com/questions/4915786/  gestellt hatte.

Später entwickelte ich einen sehr einfachen Blockchiffre-Algorithmus namens ZenMatrix (um zu zeigen, dass ich selbst eine sehr einfache symmetrische Blockchiffre für die Ver- und Entschlüsselung schreiben kann)

R3 ➝ R3: v(3) x M(3,3) = v(3)

⎡ 1 ⎤    ⎡ 0 1 0 ⎤    ⎡ 2 ⎤ 
⎢ 2 ⎥ x  ⎢ 0 0 1 ⎥ =  ⎢ 3 ⎥  
⎣ 3 ⎦    ⎣ 1 0 0 ⎦    ⎣ 1 ⎦ 
Inverse Matrix für umgekehrte symmetrische Verschlüsselung wäre:
⎡ 2 ⎤    ⎡ 0 0 1 ⎤    ⎡ 1 ⎤ 
⎢ 3 ⎥ x  ⎢ 1 0 0 ⎥ =  ⎢ 2 ⎥  
⎣ 1 ⎦    ⎣ 0 1 0 ⎦    ⎣ 3 ⎦ 
ZenMatrix symetric chiffre encryption

Es stehen nun weitere symmetrische Verschlüsselungsalgorithmen zur Verfügung!

Zuerst wollte ich die symmetrische Verschlüsselungspipeline nur mit AES, Blowfish, 2-Fish, 3-DES und ZenMatrix realisieren. Dann stieß ich jedoch auf die Legion von Bouncy-Castle, die mehrere Verschlüsselungen in einer Open-Source-Bibliothek anbietet, die auch hier auf GitHub verfügbar ist: https://github.com/bcgit. Daraufhin habe ich Area23.At.Mono mit dem Bouncy-Castle-Wrapper für 3DES, 2FISH, 3FISH, AES, Rijndael (entspricht AES) und Serpent neu geschrieben.

Später fügte ich der symmetrischen Verschlüsselungspipeline die folgenden Algorithmen hinzu, da ich sie im Bouncy-Castle-Paket gesehen hatte: Camellia, Cast[56], Gost28147, Idea, RC[26], RC532, Seed, Skipjack, Tea, Tnepres und XTea.

PermAgainCrypt [WinForm Demo]

Ich schrieb eine einfache WinForm-Anwendung mit reduziertem Framework-Code, um die grundlegende SymmCipher-Pipe-Verschlüsselung zu verstehen. Sie ist hier auf GitHub zu finden: https://github.com/heinrichelsigan/PermAgainCrypt

https://github.com/heinrichelsigan/PermAgainCrypt

Wie viele Variationen sind möglich?

Bei zwei symmetrischen Verschlüsselungsalgorithmen
ohne Wiederverwendung wäre der Wert 2! =
2
bei Wiederverwendung (z. B. Blowfish => Blowfish =>) 2² = 4

Bei acht symmetrischen Verschlüsselungsalgorithmen ohne Wiederverwendung wäre der Wert 8! = 40,320, bei Wiederverwendung 8⁸ = 16,777,216.

In der oben beschriebenen symmetrischen Verschlüsselungspipeline mit nun 21 symmetrischen Verschlüsselungsalgorithmen wäre der Wert 2¹⁸ = 37,822,859,361,
da die Pipeline-Länge auf acht Stufen begrenzt ist.

Warum veröffentliche ich diesen Artikel?

Leider neige ich seit meiner Diagnose einer schizoaffektiven Störung im Jahr 2007 manchmal dazu, laut zu sprechen und habe oft Angst, abgehört zu werden. Selbst größere Unternehmen, bei denen ich angestellt war (ich habe ihnen seit 2007 von meinem Problem erzählt), meinten, ich hätte in diesem Fall nicht gegen die Vorschriften verstoßen, da ich davon ausgehe, dass wir hier nicht die DDR mit der Stasi haben und das laute Wiederholen von Betrugserkennungsregeln zu Hause kein Verbrechen ist. Einmal fühlte ich mich sehr unwohl und sprach laut meine Idee für ein besseres AES aus. Um zu vermeiden, dass nur einige Leute sie verstehen würden, schrieb ich einen einfachen Prototyp und schickte diesen Artikel dann an alte Freunde, die in US-Unternehmen arbeiten.

2025-10-02

x86_64 and aarch64 arm cpu bugs

bhi
cpu_meltdown
eibrs_pbrsb
itlb_multihit
its
l1tf
gather_data_sampling
ghostwrite
indirect_target_selection
itlb_multihit
mds
mmio_stale_data
reg_file_data_sampling
retbleed
rfds
spec_rstack_overflow
spec_store_bypass
spectre_v1
spectre_v2
spec_store_bypass
srbds
swapgs
tsx_async_abort
lscpu [ https://man7.org/linux/man-pages/man1/lscpu.1.html ]shows a little other information as
lscpu

cat /proc/cpuinfo

smaller arm aarch664 cpus are affected so far by fewer bugs as large Inter x86_64


2025-09-12

Exception handling in C#, Java, C++

C#

In C# Exception is root of all exceptions extends base class System.Exception : ISerializable¹ and differs basically between System.SystemException and System.ApplicationException.
Of course, that are a lot of Exception derived directly from System.Exception.


ExternalException, Win32Exception, WebException, IOException, SocketException and all exceptions thrown during os system operations extend SystemException or it's children.

Java

In Java Throwable (root of all errors & exceptions) extends base class object. Error and Exception both extend from Throwable.

Errors such StackOverflowError (endless recursion), OutOfMemoryError (endless allocation) and VirtualMachineError are thrown, when critical limits of java virtual machine exceeded.

In java some exceptions like IOException or SocketException are "checked at compile time". This does NOT mean, that javac compiler knows when IOException or SocketExcpetion will be thrown at program flow at runtime. Furthermore javac compiler knows if reading from or writing to a file needs catching an IOExceptiuon, because disk might be full or USB stick could be unplugged or fs mount point is now unmounted or remounter ro. When reading from or writing to a socket javac compiler knows, that you must catch a SocketException in case of a linux system init runlevel 1 or 2, unplugging USB network adapter or dog bites CAT5 or CAT7 network cable.

C++

In C++ there is no binary split at the root of "exception tree" as in C# (System Exception &
ApplicationException) or in Java (Error & Exception both extend from Throwable).

In C++ bad_cast, bad_alloc, bad_function_call, logic_error & runtime_error extend from exception.
Most common Exceptions in C++ extend from logic_error & runtime_error.b.


2025-08-09

Is there a way under windows to mount a in exe included disk image at runtime

[ Original question postetd at stackoverflow 
maybe you have an idea how that will work under Windows >= 7 or in any case >= 10

I want to generate an executable, where an disk image is added (linked at compile time) to the exe.

Under linux, it's possible to mount an image with a certain offset

  • mount

    mount -o loop,offset=$((1024 * 512 * 8)) image.raw /mnt

  • losetup

    losetup /dev/loop0 image.raw -o $((1024 * 512 * 8)) mount /dev/loop0 /mnt

  • I wrote a simple shell script, that demonstrates that with the efi boot partition added afterwards to a zero image with 8*512k blocks.

#!/usr/bin/bash
 
BLOCKSIZE=`echo '512  * 1024' | bc`
SEEK=8
OFFSET=$(echo "$BLOCKSIZE * $SEEK" | bc)
 
dd if=/dev/zero of=zero.img bs=512k count=8
cp zero.img offset_disk.img
dd if=/dev/nvme0n1p15 of=offset_disk.img bs=$BLOCKSIZE seek=$SEEK oflag=append
 
mkdir -p /mnt/efi
mount -o loop,offset=$OFFSET offset_disk.img /mnt/efi
du -h -s *.img ; df -h  | grep efi
 
sleep 1 ; umount /mnt/efi ; rm -f zero.img offset_disk.img
exit 0

Output of shell script -x (debug


The creation of the image file added to an executable would not be the problem, because I understand:

How to link a dll or dll embedded resource or image file to an executable with C++ linker

and also C# .Net crossgen2 to produce a big static exe, that needs no Framework anymore

The only problem I have, is how to mount disk / iso9660 image files with a certain offset.