Most complete Identity of a person is defined / determined by different public, restricted or private accessible spheres.
blog.darkstar.work - a simple url encoder/decoder
Labels
2022-10-15
2022-10-11
It's about creating distributed service oriented communications
Attention:
This article isn't about daily standard electronic communications via network protocols (e.g. email services or shared network folders), neither about user authentication / authorization nor groupware.
It's about:
Implementing or consuming customizable reliable distributed services;
by choosing & implementing a programmable extensible scalable, easily portable, standardized inter-compatible fail-safe resilient communication middleware, that's financially essential for most critical business processes.
For what kind of companies is that useful, important or relevant?
It's relevant for all companies, that consume many crtical data from external partners / service providers;
then process received & own data inside different departments (maybe in different locations) with different areas of responsibility (e.g. fraud detection, critical real-time scaling of dynamic hardware (memory, harddisks and available CPUs, permanent risk adjustment and last but not least anonymized [General Data Protection Regulation] precise reporting for legal reasons);
finally and ultimately share processed data to maybe different external organisations with very deviating requirements, like government fraud reporting agency on one side and partners inside a foundation or joint umbrella organization however.
Overview most common distributed service oriented communication technologies in history
What technologies do you use in your company / organisation or as private person for distributed service oriented communication?
- antique: [ 1980s ]
- Sun RPC [ remote procedure call ]
- old: [ around the millennium ]
- DCOM [ Distributed Component Object Model ]
see also: ActiveX, DDE, .NET Remoting - Java Corba
- message oriented middleware [ mostly XML based ]
- SOAP / XML based Webservices [ SOAP message ]
- .NET Webservices + Web Services Enchancements (.asmx .ashx )
- Previous generation: [ since 2010 ]
- WCF [ Windows Communication Foundation ] by Microsoft .NET
- Swagger [ swagger.io swagger-api ]
- Rest API [ Representational State Transfer ]
- RestFul web api
- Apache CFX [ cxf.apache.org ]
- gRPC [ gRPC Remote Procedure Calls ]
gRPC [ grpc.io | github.com/grpc ] was initially created by Google
What local software suites / solutions / products and enterprise cloud services are included in your distributed service oriented communication(s workflows)?
- Microsoft BizTalk Server
- RabbitMQ [ github.com/rabbitmq ]
- Amazon Web Services [ aws ]
- Azure RestAPI Reference
[ to be continued ... ]
-
2022-10-02
Curch music I like
I'm left liberal atheist, but I want to show thou, that I like some church music very much.
My favorirtes (church music)
Gregorian Chant (gregorianischer Choral)
Franz Schubert (deutsche Messe) (1)
Johann Sebastian Bach (H-Moll-Messe) (3)
2022-09-25
Bridge Mini-VM for reading XFS, JFS, ext[234], minix, btrfs, reiserfs ot any other non MS filesystem
Howto access XFS, JFS, ext[234], minix, btrfs, reiserfs ot any other non MS filesystem from Windows 7 - 11 without installing a maybe bogus kernel filesystem driver?
- Make a Mini-Vm with a totally slack and stripped linux kernel, that is bridged on a VM network adapter. Include all filesystem drivers and needed network adapter & drivers in that kernel and strip / kick out everything other, what's not needed.
Make the kernel similiar to a cisco router or PIX firewall kernel. - Give the VM direct access to your harddisk, usb-devices, firewire & bluetooth devices.
- Enable the Mini linux VM to reEXport mounted filesystem over smb or nfs.
- Calculate the memory size, which is needed, that all filesystem mounts and all fs operatons work fast enough with paging and caching.
- Choose the best scheduler for that mini-VM.
- Optimize all ioctl, (f)lush, (f)read, (f)write, (f)seek, (f)open, (f)close and all other filesystem operations.
- If you are hungry => oprimize the /proc /sys /dev filesystem.
2022-08-13
Risk calculation in IT software projects [simplified]
2022-05-08
A crazy example of a Lazy singleton as strangest singelton pattern ever
Application settings example:
BaseSets for basic settings as abstract singelton base
using System;
using System.Reflection;
namespace work.darkstar.blog
{
/// <summary>
/// abstract class BaseSets
/// </summary>
[Serializable]
public abstract class BaseSets
{
public string AssemblyName { get => Assembly.GetExecutingAssembly().GetName().ToString(); }
public string Copyright { get => "GNU LIGHT GENERAL PUBLIC LICENSE 2.0 LGPL"; }
public virtual string AssemblyCom { get => "darkstar.work"; }
public virtual int AppId { get; protected set; }
public virtual string AppName { get; protected set; }
/// <summary>
/// protected empty constructor for inheritable singelton
/// </summary>
protected BaseSets() { }
/// <summary>
/// protected parameterized constructor for inheritable singelton
/// </summary>
protected BaseSets(int appId, string appName)
{
AppId = appId; AppName = appName;
}
}
}
AppSets for application settings as instancable singelton default app sets (settings):
using Microsoft.Win32;
using System;
using System.Reflection;
using System.Windows.Forms;
namespace work.darkstar.blog
{
public interface IAppSetsDomain : IAppDomainSetup
{
System.AppDomain AppCurrentDomain { get; }
}
/// <summary>
/// application settings singelton
/// </summary>
[Serializable] public class AppSets : BaseSets, IAppDomainSetup
{
private static AppSets _appSets;
private static object _initLock, _sndLock;
protected static AppSets DoubleLockInstance {
get {
_sndLock = new System.Object();
lock (_sndLock) {
if (_initLock != null) _initLock = null;
if (_initLock == null) _initLock = new System.Object();
lock (_initLock) {
if (_appSets == null)
_appSets = new AppSets();
}
return _appSets;
}
}
}
public string CodeBase { get => Assembly.GetExecutingAssembly().CodeBase; }
public string BaseDirectory { get => AppDomain.CurrentDomain.BaseDirectory; }
public string AppDataPath { get => Application.CommonAppDataPath; }
public RegistryKey AppDataRegistry { get => Application.CommonAppDataRegistry; }
#region implementing interface IAppSetsDomain, IAppDomainSetup public AppDomain AppCurrentDomain { get => AppDomain.CurrentDomain; } public string ApplicationBase { get ; set; } public string ApplicationName{ get ; set; }
public string CachePath{ get ; set; } public string ConfigurationFile{ get ; set; }
public string DynamicBase { get ; set; }
public string LicenseFile { get ; set; }
public string PrivateBinPath { get ; set; }
public string PrivateBinPathProbe { get ; set; }
public string ShadowCopyDirectories { get ; set; }
public string [] ShadowCopyDirectoryArray {
get => ShadowCopyDirectories.Split(';'); } public bool FilesShadowCopy { get ; set; } public string ShadowCopyFiles { get => FilesShadowCopy.ToString().ToLower(); set { FilesShadowCopy = Boolean.Parse(value); } } public bool FilesShadowCopy{ get ; set; } public string ShadowCopyFiles{ get => FilesShadowCopy.ToString() ; set; } #endregion implementing interface IAppSetsDomain, IAppDomainSetup
/// <summary>
/// static constructor
/// </summary>
static AppSets() {
_initLock = new System.Object();
lock (_initLock) { _appSets = new AppSets(); }
}
/// <summary>
/// private empty constructor
/// </summary>
private AppSets() {
AppId = AppDomain.CurrentDomain.Id;
AppName = Assembly.GetExecutingAssembly().FullName;
}
/// <summary>
/// protected parameter constructor
/// </summary>
protected AppSets(int appId, string appName) : base(appId, appName) { }
}
}
Sealed MyAppSets for application specialized appSets as Lazy<T> singelton:
using System;
using System.IO; using System.Security;/* ... */
using Microsoft.Win32;
/* ... */
using Windows.Forms;
namespace work.darkstar.blog { /// <summary> /// my application settings singelton /// </summary> [Serializable] public sealed class MyAppSets : AppSets { /// <summary> /// private static readonly Lazy<T> self containing private real singelton unique instance /// </summary> private static readonly Lazy<MyAppSets> _instance = new Lazy<MyAppSets>(() => new MyAppSets(AppDomain.CurrentDomain.Id, "LazyApp")); /// <summary> /// static instance getter for Singeltion /// </summary> public static MyAppSets Instance { get => _instance.Value; } public string UserAppDataPath { get => Application.UserAppDataPath; } public RegistryKey UserAppDataRegistry { get => Application.UserAppDataRegistry; } /// <summary> /// private constructor with partameters for sealed unique singelton /// </summary> private MyAppSets(int appId, string appName) : base(appId, appName) { } /// <summary> /// Gets name value pair for application registry key saved in registry scope for current user /// </summary> /// <param name="regName">registry name identifier</param> /// <param name="subKey">subKey in scope of current user</param> /// <returns>object value</returns> /// <exception cref="ApplicationException">application exception with detailed inner exception</exception> public object GetUserRegValuey(string regName, string subKey = null) { object o = null; RegistryKey key = null; Exception ex = null; try { key = (subKey == null) ? UserAppDataRegistry : UserAppDataRegistry.OpenSubKey(subKey, false); o = key.GetValue(regName); } catch (SecurityException sex) { ex = sex; } catch (ObjectDisposedException odEx) { ex = odEx; } catch (UnauthorizedAccessException uaEx) { ex = uaEx; } catch (IOException ioeEx) { ex = ioeEx; } finally { if (key != null && subKey != null) key.Close(); if (ex != null) throw (new ApplicationException("Error accessing registy key: " + $"{UserAppDataRegistry}\t name: {regName}\t subkey: {subKey}", ex));
} return o; } /// <summary> /// Set Value for UserAppDataRegistry /// </summary> /// <param name="regName">registry name </param> /// <param name="value"value to set></param> /// <param name="subKey">subKey</param> /// <returns>void means nothing</returns> /// <exception cref="ApplicationException">application exception with detailed inner exception</exception> public void SetUserReg(string regName, object value, string subKey = null) { RegistryKey key = null; Exception ex = null; try { key = (subKey == null) ? UserAppDataRegistry : UserAppDataRegistry.OpenSubKey(subKey, true); key.SetValue(regName, value); } catch (Exception anyEx) { ex = new ApplicationException($"Error setting value=" + $"{value} for name={regName} inside registry key: {key.Name}", anyEx); } finally { if (key != null && subKey != null) key.Close(); if (ex != null) throw ex; } } } }
Accessing MyAppSets singelton inside any entity, framework, helper, [...] class
using System; /* ... */
using work.darkstar.blog;
public class MyEntity : IAppSetsDomain {
/* [ ... ] */
/* [Inject] */
/* [ ... ] */
public AppDomain AppCurrentDomain {
get => MyAppSets.Instance.AppCurrentDomain;
set => MyAppSets.Instance.AppCurrentDomain = value;
}
/* ... */
}
2022-03-28
some ideas to Azure & Microsoft SQL Servers [Draft]
What is missing?
It's missing, that we have unfortunatley no consistently implementation for Active Directory (see also: LDAPS, X.500) on Micrsoft SQL-Server.
How fast are Linked Servers & Distributed Transaction coordinator
Trust me, they are really fast and OAUTH and Azure Auth would be implemented in some weeks, if MS put some lower evangelists at work!
To be continued ...
2022-01-10
Fact checking: What come from pirate party and socialist section8 and what from communists?
In the years 2011 - 2014 I was an more left as (but still) liberal activst participating at serveral discussions in the free internet in different forums or social media.
From my point of view, many ideas that were produced together in common with stakeholders from pirate party and section8, had the most politically and avangardistic value and also flowed partially into the party program of other parties (e.g. Neos, SPÖ, even partly Greens, ÖVP, FPÖ).
I will list here the most impactfully issues:
I. Transparency
I.1. Transparency (freedom of information) Act
Feb 12, 2013, 7:34 PM
Vor 10 Tagen haben Sektion8 & Piratenpartei die Petition zum Transparenzgesetz veröffentlicht:
https://blog.area23.at/2013/02/am-222013-machten-mich-sektion-8-und.html
Sektion 8 wollte doch Akkzente setzen und nicht nur reagieren.
In dem Fall ist das sehr gut gelungen.
Gratulation, bei so einer wichtigen Sache.
Liebe Grüße,
2022-01-07
Betreute Personen => kein unabhängiger Patietenanwalt (rechtlich, medizinisch) und mangelnde Menschenrechte & Monitoring
Viele Menschen in Österreich benötigen Betreuung, sind pflegebedürftig, in Lebenskrisen (durch Schicksalsschläge, Schocks, Obdachlosigkeit, Gewalteinwirkung, Resozialisierung nach Aufenthalt, Aufenthalt in einer psychiatrischen Anstalt oder im Strafvollzug, Betreung von schwer Demenzkranken oder (Halb-)Komapatienten, oder chronische schwere Seuchen bzw. Suchtkrankheiten).
Egal um welche vom Leid getroffenen Menschen es sich nun handelt (sehr alte Senioren mit schwerer Demenz, Härtefälle betreut vom psychosozialen Dienst, in psychiatrische Kliniken zwangseingewiesene oder wohnungslose, die jetzt im sozialen Wohnen Programm sind, betreute WGs für Menschen mit Behinderung, ...), es gibt KEINE unabhängige Kontrolle und Monitoring und es gibt keinen Garant, dass jeder dieser Menschen eine rechtlichen und medizinischen Patientanwalt regelmäßig kontaktieren kann.
Was sind die Konsequenzen des Fehlens einer unabhängigen Kontrolle und eines unabhängigen Patientenanwalt?
Ein par Fallstudien (leider aus der Realität)!
- Eine albanische Flüchtlingsfrau (ohne Bildung) steht nach Mißbrauch unter schwerem Schock. Aufgrund des Schocks gingen alle kommunikativen Fähigkeiten (einfache Sprache, Gebärden, Deuten, Nicken) bei ihr temporär oder ev. parmanent verloren. Die Frau hat permanent große Angst und wird in einer Einrichtung des PSD (Psychosozialen Dienst) betreut. Es ist unklar, ob Leute, die in den Mißbrauch verwickelt waren, sich auch in der Einrichtung befinden und keine Garantie, ob sich die Frau von dem Trauma unter gegebenen Umständen überhaupt abkapseln, erholen, regenerieren kann.
- Ein WG-Bewohner in einer betreuten WG für Menschen mit Behinderung fühlt sich von seinen Mitbewohnern und den Betreuern schikaniert und gequält. Dem armen ist es unmöglich sich nur 2 Stunden in der Woche zurückzuziehen, um Musik zu hören, ein par schöne Erinnerungsfotos anzusehen oder ein Buch ein par Seiten zu lesen.
- Ein auf einen Asylbescheid wartender nordafrikanischer Flüchtling wurde vom Flüchtlingslager aufgrund seiner Sexuakität und permanenten Stockschlägen in der Nacht auf eine psychiatrische Einrichtung verlegt. Zwar zufrieden über den besseren Schutz und keiner Folter, ist der Flüchtling in Sorge, dass er wichtige rechtliche Termine zu seinem Verfahren nun versäumt und so dann automatisch abgeschoben wird.
2022-01-06
Risk of collecting biometric data
Authentication with biometric data intuitively appears extremely secure to the user, but biometric authentication is full of poisoned traps and deadly pitfalls.
Some general risks (not complete, add if you like more points)
- If the digital fingerprint is saved anywhere in a central database, then you can fake fingerprints, by generating a blueprint.#
- Same story, if the fingerprint is transmitted somewhere.
- Even, if stored on local devices unencrypted or reversible symmetrically encrypted, than biometric data as fingerprints, eye scans, are great risks.
Some general risks (not complete, add if you like more points)
Example of current used hardware for fingerprint sensors (Google Pixel3)
Case study: "digital gouvernement" from Austria
https://play.google.com/store/apps/details?id=at.gv.oe.app
https://apps.evozi.com/apk-downloader/?id=at.gv.oe.app
https://apkcombo.com/apk-downloader/?q=at.gv.oe.app
To be continued...