2021年12月11日 星期六

C++ Libraries

 https://en.cppreference.com/w/cpp/header

 https://isocpp.org/std/status

https://en.wikipedia.org/wiki/Asio_C++_library

 https://en.wikipedia.org/wiki/Boost_(C%2B%2B_libraries)

https://pocoproject.org/index.html 

https://en.wikipedia.org/wiki/POCO_C%2B%2B_Libraries

 https://www.openssl.org/

 https://www.ffmpeg.org/

https://en.wikipedia.org/wiki/Adaptive_Communication_Environment 

https://www.sqlite.org/index.html

https://en.wikipedia.org/wiki/Category:C%2B%2B_libraries


https://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementations

Single-file public-domain open source libraries with minimal dependencies

 https://github.com/nothings/single_file_libs

 

 

 https://github.com/andrew-baylis/MultiStream

https://github.com/glenkleidon/DelphiTips 

Record Utils - Utils for cloning, clearing, serialising/Deserialising Pascal Record Types

2021年12月10日 星期五

Python minecraft sim Game developer engine Libraries

 Python minecraft sim Game developer engine Libraries

Ursina Engine


https://python-forum.io/

 
https://pythonrepo.com/repo/py-mine-PyMine
https://pythonrepo.com/repo/shasankp000-PyCraft-python-game-development
https://pythonrepo.com/repo/txtsd-mcrpc-python-game-development
https://pythonrepo.com/repo/shurik204-map-prepare-python-game-development
https://pythonrepo.com/repo/mcbeet-mecha-python-command-line-tools
https://pythonrepo.com/tag/minecraft

https://github.com/FalconNL/mc2obj
https://github.com/tschuy/minecraft-server-control
https://github.com/pa7lux/python-minecraft-lib
https://github.com/ammaraskar/pyCraft
https://github.com/kbsriram/mcpiapi
https://github.com/barneygale/quarry
https://github.com/AlexKvazos/MinecraftChat

https://pypi.org/project/mcrcon/
https://pypi.org/project/mcpi/
https://theduckcow.com/dev/blender/mcprep/

https://brightonscience.com/wordpress/events/venture-coders-an-introduction-to-hacking-with-minecraft-and-python-4/

https://jayconsystems.com/blog/learn-how-to-program-in-python-with-minecraft
The MODERN Wood Minecraft Library! | Python's World (Minecraft Survival Let's Play) | Episode 35
 
https://www.instructables.com/Python-Coding-for-Android-Minecraft-PE/
https://mcpipy.wordpress.com/2013/02/22/getting-minecraft-pi-edition-running/
https://quarry.readthedocs.io/en/latest/examples.html

https://github.com/mandaw2014/parkour

Multi-monitor in Delphi . Change Screen Resolution

https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Forms.TScreen.Monitors
https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Forms.TMonitor

Developing Application Programs Using Multi-monitor in Delphi
 Screen.MonitorCount Screen.Monitors array WorkareaRect  TCustomForm.MakeFullyVisible
MakeFullyVisible Monitor  dmDesktop  TScreen TMonitor
dmDesktop No special treatment
dmPrimary Display the form on the first monitor. This is another trap, literally understood as the main monitor, but in fact it refers to the Screen.Monitor[0] monitor.
dmMainForm Display the form to the monitor where the main form is located
dmActiveForm Display the form to the monitor on the desktop where the active form is located
 
BoundsRect  Get the corresponding desktop area of ​​the monitor, which is equivalent to the above four attributes
WorkareaRect  Get the area of ​​the desktop corresponding to the working area of ​​the monitor.

https://github.com/t-d-k/LibreCrypt/blob/master/SDeanComponents/DelphiVistaModifications/_originals/_ORIG%20-%20Forms.pas%20-%20ORIG_
 LibreCrypt/SDeanComponents/DelphiVistaModifications/_originals/_ORIG - Forms.pas - ORIG_
 
Tips for Multi-Resolution Delphi Applications
https://www.thoughtco.com/multi-resolution-delphi-applications-1058296
 
改變螢幕解析度. Change Screen Resolution in Windows using C++ 主要使用Windows API ChangeDisplaySettings 及 EnumDisplaySettings

取得單一螢幕或多螢幕的解析度get resolution of a ...
https://ccw1986.blogspot.com › 2014/01 › c-get-resolut...
 foreach (var screen in System.Windows.Forms.Screen.AllScreens) { Console.WriteLine("Device Name: " + screen.DeviceName);//裝置名稱. Console.

delphi Windows Resolution recommended screen resolution
Get current/native screen resolution of all monitors in Delphi DirectX

MonInfo: TMonitorInfo;
  MonInfo.cbSize := SizeOf(MonInfo);
  GetMonitorInfo(MonitorFromWindow(Handle, MONITOR_DEFAULTTONEAREST), @MonInfo);
  ShowMessage(Format('Current resolution: %dx%d',
              [MonInfo.rcMonitor.Right - MonInfo.rcMonitor.Left,
               MonInfo.rcMonitor.Bottom - MonInfo.rcMonitor.Top]));


See the GetDeviceCaps API to get the screen resolution.

Use the TCustomForm.Monitor property to get the monitor on which the form appears.
 
how to get the recommend resolution (native ... - MSDN
https://social.msdn.microsoft.com › en-US
Building Windows 8. As to how to get screen resolution using C++. There are many ways to do this. You can choose to use. GetSystemMetrics with ...
 
    GetSystemMetrics function (winuser.h) - Win32 apps
    https://docs.microsoft.com › win32 › api The width of the client area for a full-screen window on the primary display monitor, in pixels. To get the coordinates of the portion of ...

Improving the high-DPI experience in GDI based Desktop Apps
https://blogs.windows.com  GDI was for many years the de facto win32 2D API and is behind many of ... how best to make legacy GDI apps look right on high DPI monitors.
  Windows 8.1 DPI Scaling Enhancements This could be a problem if the reason you bought that 4K display was to see more of your images at native resolution! Windows 8.1 provides APIs ...

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-changedisplaysettingsexa
ChangeDisplaySettingsExA function (winuser.h)

https://blogs.embarcadero.com/new-in-rad-studio-11-high-dpi-ide-and-form-designing/
https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Per_Monitor_V2
https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Supporting_high-DPI_images_with_the_Image_Collection_and_Virtual_ImageList_components
https://docwiki.embarcadero.com/RADStudio/Alexandria/en/VCL_Styles_Support_for_High-DPI_Graphics
 
https://github.com/ThePacielloGroup/CCA-Win/blob/master/PerMonitorApi.pas
Type
  TMONITOR_DPI_TYPE = (
    MDT_EFFECTIVE_DPI {= 0},
    MDT_ANGULAR_DPI   {= 1},
    MDT_RAW_DPI       {= 2},
    MDT_DEFAULT       {= MDT_EFFECTIVE_DPI });
var
  dpiX              : UINT;
  dpiY              : UINT;
  ErrCode           : HResult;
  hShcore           : THandle;
  GetDpiForMonitor  : function(monitor: HMONITOR; dpiType: TMONITOR_DPI_TYPE; var dpi, dpiY: UINT): HRESULT; stdcall;
begin
  hShcore := GetModuleHandle('Shcore');
  If hShcore <> 0 then GetDpiForMonitor := GetProcAddress(hShcore,'GetDpiForMonitor');
  If @GetDpiForMonitor <> nil then
    ErrCode := GetDpiForMonitor(Monitor.Handle,MDT_EFFECTIVE_DPI,dpiX,dpiY);
end;
https://docs.microsoft.com/zh-tw/archive/blogs/askcore/display-scaling-in-windows-10
https://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows
https://gist.github.com/toptensoftware/a6b8ca2cfc9ac63e7b6687968db408a2

https://github.com/r1me/delphi-monitorhelper/blob/master/Vcl.Forms.MonitorHelper.pas
https://github.com/pgiacomo69/TFormResizer
https://github.com/KohrAhr/DelphiDemoPPI

https://github.com/timmui/ScreenResolutionChanger
 
https://stackoverflow.com/questions/1538602/find-number-and-resolution-to-all-monitors
In C#: Screen Class Represents a display device or multiple display devices on a single system. You want the Bounds attribute.
 var screen in Screen.AllScreens)
    // For each screen, add the screen properties to a list box.
     ("Device Name: " + screen.DeviceName);
     ("Bounds: " + screen.Bounds.ToString());
     ("Type: " + screen.GetType().ToString());
     ("Working Area: " + screen.WorkingArea.ToString());
     ("Primary Screen: " + screen.Primary.ToString());

取得顯示監視器的資訊

https://docs.microsoft.com/zh-tw/windows/win32/gdi/getting-information-on-a-display-monitor
https://docs.microsoft.com/zh-tw/windows/win32/api/winuser/nf-winuser-enumdisplaydevicesa
BOOL GetDisplayMonitorInfo(int nDeviceIndex, LPSTR lpszMonitorInfo)
    FARPROC EnumDisplayDevices;
    HINSTANCE  hInstUser32;
    DISPLAY_DEVICE DispDev;
    char szSaveDeviceName[33];  // 32 + 1 for the null-terminator
    BOOL bRet = TRUE;
        HRESULT hr;
    hInstUser32 = LoadLibrary("c:\\windows\User32.DLL");
    if (!hInstUser32) return FALSE; 
    // Get the address of the EnumDisplayDevices function
    EnumDisplayDevices = (FARPROC)GetProcAddress(hInstUser32,"EnumDisplayDevicesA");
    if (!EnumDisplayDevices) {
        FreeLibrary(hInstUser32);
if (EnumDisplayDevices(NULL, nDeviceIndex, &DispDev, 0))
                hr = StringCchCopy(szSaveDeviceName, 33, DispDev.DeviceName);
        EnumDisplayDevices(szSaveDeviceName, 0, &DispDev, 0);  
                hr = StringCchCopy(lpszMonitorInfo, 129, DispDev.DeviceString);
                if (FAILED(hr))
 

Программирование в среде Delphi https://www.delphiplus.org/

 https://www.delphiplus.org/

 


Delphi Plus - ежедневные новости IT-технологий
Delphi site: daily Delphi-news, documentation, articles, review, interview, computer humor...
    Программирование в среде Delphi
    Книга, написанная тремя экспертами по Delphi, представляет собой одно из лучших изложений этой принципиально новой среды разработки. Читатель найдет в ней уникальное толкование объектно-ориентировашюго программирования. В книге приводятся пошаговые инструкции по созданию коммерческих приложений, использующих базы данных. Книга может применяться в качестве учебного и справочного пособия для преподавателей, студентов, разработчиков программного обеспечения.
    Программирование в Delphi 7
    В книге обсуждаются вопросы профессиональной разработки приложений в среде Borland Delphi 7. Приводится детальное описание объектной концепции, стандартных и программных технологий, используемых при работе программистов. Значительная часть материала посвящена разработке приложений, базирующихся на широко используемых и перспективных технологиях доступа к данным: ADO, dbExpress, InterBase Express. Достойное место отведено распределенным многозвенным приложениям и технологии DataSnap. Все рассматриваемые в этой книге темы сопровождаются подробными примерами.

Mastering Delphi 7

 
Working with HTTP
http://etutorials.org/Programming/mastering+delphi+7/Part+IV+Delphi+the+Internet+and+a+.NET+Preview/Chapter+19+Internet+Programming+Sockets+and+Indy/Working+with+HTTP/
http://etutorials.org/Programming/mastering+delphi+7/


http://etutorials.org/Programming/

Working with HTTP Chapter 19 Internet Programming Sockets and Indy Part IV Delphi, the Internet, and a .NET Preview Masterin


http://www.fredshack.com/docs/delphi.html 

The Delphi language was formerly known as Object Pascal, and is an object-oriented version of the venerable Pascal language, combined by Borland with a Visual Basic-like RAD tool that lets you write fast GUI applications with no run-time, a very rich set of components (VCLs) that can be statically compiled into the EXE, and an encapsulation of most of the Windows API for easier access to the underlying OS. If this reminds you of .Net, it's no chance since both Delphi and the .Net framework were designed by the same person, Anders Hejlsberg. For more infos, read Delphi history – from Pascal to Diamondback (Delphi 2005) by Zarko Gajic.

 http://zarko-gajic.iz.hr/run-your-delphi-application-in-full-screen-implement-f11-full-screen/

http://zarko-gajic.iz.hr/gzoom-delphi-implementation-of-the-missing-mode-in-windows-magnifier/

https://www.google.com/search?client=firefox-b-d&q=Zarko+Gajic. 

Object Oriented Programming  Delphi Simulating Multicast Events

Reacts 3d JSON Model GLTF ThreeJs

 Reacts 3d JSON Model GLTF ThreeJs

GL Transmission Format

 https://threejs.org/

https://discoverthreejs.com/book/first-steps/load-models/ 

https://redstapler.co/add-3d-model-to-website-threejs/

https://kcoley.github.io/

https://xeogl.org/docs/classes/GLTFModel.html

https://developers.google.com/maps/documentation/javascript/examples/webgl/webgl-overlay-simple

https://listoffreeware.com/best-free-glb-viewer-online-websites/

https://github.com/you-win/godot-dynamic-gltf-loader

https://github.com/KhronosGroup/glTF/blob/main/specification/2.0/README.md

gltf Dynamic Loading mapping  

OrthographicCamera PerspectiveCamera 

Scene Camera Object Geometry Material Light Renderer

https://www.blockbench.net/

Anonymous Methods and Closures in Delphi 2010

 Anonymous Methods and Closures in Delphi 2010  
reference to procedure; Comparison to other method types Invoking an anonymous method Anonymous methods as variables Anonymous methods as parameters Inline declaration Inversion of Control (IoC)

http://interactiveasp.net/blogs/spgilmore/archive/2010/06/17/anonymous-methods-and-closures-in-delphi-2010.aspx

MJ Freelancing Home delphi com website

 http://www.mjfreelancing.com/

 

 Build your C++Builder� projects with confidence

MJFAFMJFAF is MJ Freelancing's flagship product.  Comprised of several runtime packages, MJFAF is a comprehensive collection of utility classes and functions aimed at increasing the return on investment in every project you create.

More detailed information can be found on the MJFAF product information page.
 

MJFVCLKey factors to consider when choosing a third party library include code reproducibility, reliability and stability.  MJFVCL builds upon the solid foundation provided by MJFAF thereby giving you the confidence to use it in each and every development project.

More detailed information can be found on the MJFVCL product information page.
 
IKGIKG is a freeware application used to generate unlock codes for users of the Inno Setup utility.

More detailed information can be found on the IKG product information page.

 

 

 

IndyThe MJFAF and MJFVCL products provide wrappers around various features found in the Indy Sockets open source project to simplify tasks such as transmitting data using the TCP and UDP protocols, with additional wrappers being added on a as-required basis.

Even if you're not a user of MJFAF or MJFVCL you can download pre-built binaries (and source) of Indy 9 and Indy 10 from this site.  Refer to the Indy download page for more detailed information.
 

Turbo Pack Open source, community maintained projects for use with Embarcadero's RAD Studio, Delphi and C++Builder.

 https://github.com/TurboPack

LockBox3 is a Delphi and C++Builder library for cryptography.
SynEdit
SynEdit is a syntax highlighting edit control, not based on the Windows common controls.
LockBox is a Delphi and C++Builder library for cryptography.
VirtualTreeView
Virtual Treeview is a Delphi treeview control built from ground up. Many years of development made it one of the most flexible and advanced tree controls available today. Virtual Treeview starts of…
Abbrevia
Abbrevia is a compression toolkit for Delphi and C++Builder.
PowerPDF
PowerPdf is a VCL component to create PDF docment visually. Like Forms, you can design PDF document easily on Delphi or C++Builder IDE.

UML chess rank piece rule pawns chess object name type level position

 https://forum.unity.com/threads/unity-3d-chess-project.67097/

 https://www.geeksforgeeks.org/design-a-chess-game/

 https://en.wikipedia.org/wiki/Rules_of_chess

https://www.chess.com/forum/view/chess-openings/pawn-structure-classification-codes?page=2

OpenGL SDL game engine

 https://swarminglogic.com/article/2013_10_gamedev01

A little over a month ago, I started making my own game engine, which has until now, for the most part been a learn-OpenGL-as-I-go process.

This article is the first in a series of development logs where spend time to look back and write about the past month. The intention is to document progress, decisions made, difficulties encountered and lessons learned.

It would be great if the scribblings here were of use to someone else, but for now I'll settle for giving an answer to friends and family wondering what I'm doing all day. That, and to have something to cheer me up, if I feel I'm not making progress.

The past month was devoted to learning OpenGL and SDL2, and putting together the first pieces of a game engine (so far, just a rudimentary graphics engine).
1. Making choices: C++, OpenGL and SDL

First of all, I should point out that I'm not interested in taking the shortest path to "making a game". If that were the case, I'd be crazy not to go with Unity, Unreal Engine, UDK, or any other framework that solves the millions of problems that undoubtedly will arise. I'm interested in learning the technology, and the more fundamental building blocks.
1.1. Why C++
 

DB Filter Data Manipulation Language Array DML FireDAC TDataSet.Filter

 Array DML FireDAC

The Array DML execution technique submits a single DBMS command with an array of parameters. Each command parameter has an array of values, ...
Array DML (FireDAC) - RAD Studio - Embarcadero DocWiki
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Array_DML_(FireDAC)

https://docs.oracle.com/cd/E11882_01/appdev.112/e10766/tdddg_dml.htm#TDDDG23000
About Data Manipulation Language (DML) Statements
Data manipulation language (DML) statements access and manipulate data in existing tables.
In the SQL*Plus environment, you can enter a DML statement after the SQL> prompt.
In the SQL Developer environment, you can enter a DML statement in the Worksheet. Alternatively, you can use the SQL Developer Connections frame and tools to access and manipulate data.
https://zh.wikipedia.org/wiki/%E8%B3%87%E6%96%99%E6%93%8D%E7%B8%B1%E8%AA%9E%E8%A8%80

https://docwiki.embarcadero.com/Libraries/Alexandria/en/FireDAC.Stan.Option.TFDResourceOptions.ParamCreate

https://docwiki.embarcadero.com/RADStudio/XE7/en/Working_with_Commands_(FireDAC)

https://docwiki.embarcadero.com/Libraries/Alexandria/en/FireDAC.Stan.Option.TFDResourceOptions.ParamCreate

https://www.embarcadero.com/cn/products/rad-studio/firedac

https://en.wikipedia.org/wiki/Data_manipulation_language

https://www.geeksforgeeks.org/sql-ddl-dql-dml-dcl-tcl-commands/


TDataSet.Filter
A TTable.Filter isn't a SQL query. LIKE isn't supported (neither is IN). The supported operators are =, <>, >, <, >=, '<=,AND,NOTandOR`, according to the documentation
For more complicated filtering, use the TDataSet.OnFilterRecord event:
procedure TForm1.Table1FilterRecord(Dataset: TDataset; var Accept: Boolean);
begin
  // Don't remember if D7 supports DataSet[FieldName] syntax; if not,
  // use DataSet.FieldByName instead, or a persistent field.
  Accept := Pos(Edit_Search.Text, DataSet[SearchField].AsString) > 0;
end;
delphi Setting_the_Filter_Property
docwiki.embarcadero.com/RADStudio/en/Properties#Array_Properties
docwiki.embarcadero.com/RADStudio/en/Properties#Index_Specifiers
https://docwiki.embarcadero.com/Libraries/Alexandria/en/Data.DB.TDataSet.OnFilterRecord
https://docwiki.embarcadero.com/Libraries/Alexandria/en/Data.DB.TDataSet.Filter
Filtering ClientDataSets  
https://edn.embarcadero.com/article/29271

filtered屬性設定為true
Data.DB.TDataSet.Filter - RAD Studio API Documentation
Data.DB.TDataSet.Filter. Up to Parent: TDataSet. Delphi ... following run-time example shows how to assign that filter expression to the Data.DB.TDataSet.


Starting and Exiting Windows ISQL - Delphi and InterBase
https://www.delphipower.xyz › interbase
The ISQL window can also be opened from the Server Manager by choosing Tasks I Interactive SQL or clicking on the corresponding Speedbar ...
Interactive SQL Window - InterBase - Embarcadero DocWiki
https://docwiki.embarcadero.com › Intera...
The IBConsole isql Window permits you to
execute DDL and DML commands
to the InterBase server as well as to load, save, print, cut, paste, and copy SQL scripts ...

https://www.firebirdsql.org/file/documentation/html/en/firebirddocs/isql/firebird-isql.html

DatGridView Filter BindingSource.Filter Property

































2021年12月9日 星期四

DNS Redirecting Connection multi Tier

balancing 

broker

Redirecting

crypt Authorization 

Message Queuing Telemetry Transport MQTT

Architecture token Configuration authentication Gateway

Message broker balancing service Redirecting  Authorization Architecture token Configuration authentication

DNS Redirecting Connection multi Tier

History of Lossless Data Compression Algorithms LZMA Data Compression Algorithm TREE search index

 https://ethw.org/History_of_Lossless_Data_Compression_Algorithms

 Algorithm  TREE search index mill data Comparison  Advance Tree Data Structures

History of Lossless Data Compression Algorithms LZMA Data Compression  Algorithm  TREE search index

 

https://en.wikipedia.org/wiki/List_of_data_structures

 https://en.wikipedia.org/wiki/Category:Data_structures

 https://en.wikipedia.org/wiki/Category:Computing-related_lists

 https://www.geeksforgeeks.org/advanced-data-structures/

CryptoLib4Pascal: Crypto for Modern Object Pascal

https://github.com/Xor-el/CryptoLib4Pascal

crypto++® library cryptography pascal

https://blogs.embarcadero.com/5-powerful-cryptography-libraries-to-enhance-your-apps-security/

Identity and Access Management cryptographic Secret Key Cryptography Public Key  Hash 

Microsoft Cryptography Microsoft CryptoAPI 

https://www.openssl.org/

https://cryptopp.com/

https://github.com/libtom/libtomcrypt

https://www.boost.org/doc/libs/1_64_0/libs/convert/doc/html/boost_convert/other_conversions.html

https://www.cryptopp.com/

Cryptography OpenPGP gnupg Gnu Privacy Guard  Data Encryption

Kleopatra

RSA ELG DSA ECDH ECDSA EDDSA

AES IDEA 3DES CAST5 BLOWFISH

https://en.wikipedia.org/wiki/Category:Error_detection_and_correction

https://en.wikipedia.org/wiki/Hamming_code

MD5 CRC32 SHA1 SHA256 SHA384 SHA512

 Checksum 

Longitudinal 

redundancy check 

Hamming code  

cyclic redundancy check  

 transverse redundancy check

Luhn algorithm  Error detection  correction

Authorization privacy guard identity provider server ID openid

Authorization privacy guard identity provider server

Authorization privacy guard identity provider server Identity management system

https://docs.microsoft.com/en-us/aspnet/core/blazor/security/?view=aspnetcore-6.0 

https://en.wikipedia.org/wiki/Authenticity

https://en.wikipedia.org/wiki/Authentication

https://en.wikipedia.org/wiki/Kerberos_(protocol)

https://zh.wikipedia.org/wiki/%E5%BC%80%E6%94%BE%E6%8E%88%E6%9D%83

OAuth

 https://zh.wikipedia.org/wiki/%E5%AE%89%E5%85%A8%E6%96%AD%E8%A8%80%E6%A0%87%E8%AE%B0%E8%AF%AD%E8%A8%80

Security Assertion Markup Language SAML 

https://en.wikipedia.org/wiki/Identity-management_system

Lightweight Directory Access Protocol Active Directory
OpenID SAML LDAP  Create Delete Grant Revoke Authentication
Provider Cloud identity system
Amazon Web Services IAM
Microsoft Azure Active Directory B2C
Google Compute Identity IBM Cloud IAM

Identity management protocols authenticated
OAuth OpenID XACML RADIUS Kerberos SCIM SAML LDAP
Lightweight Directory Access Protocol
Security Assertion Markup Language  extensible markup language
System for Cross-domain Identity Management
open-standards identity management protocol
open-standard, decentralized authentication protocol
Another XML-based protocol, XACML stands for eXtensible Access Control Markup Language.
identity and access management IAM solutions that use attribute-based access control ABAC policy-based access control PBAC
Remote Authentication Dial-In User Service
uses symmetric-key cryptography to provide strong authentication 

https://docs.microsoft.com/en-us/azure/active-directory/develop/microsoft-identity-web

https://en.wikipedia.org/wiki/Identity_management https://en.wikipedia.org/wiki/Identity-management_system
https://www.cyberark.com/

open source identity Access  Token  

OpenIAM
Apache Syncope
Shibboleth
Consortium
WSO2  
MidPoint  
Soffid  
Gluu  
Auth0
Keycloak
SuperTokens

Open Source Authentication

Microsoft identity platform and OpenID Connect protocol
Azure Active Directory Authentication Library (ADAL)
Microsoft Active Directory Directory

Access Control List ACL https://en.wikipedia.org/wiki/Access-control_list
role-based access list (RBAC) systems
https://www.imperva.com/learn/data-security/access-control-list-acl/

PacketFence is an open-source network access control (NAC) system

FIDO(Fast IDentity Online)

Somu https://www.crowdsupply.com/solokeys/

SoloKeys https://solokeys.com/

Google OpenSK


https://docs.wso2.com/display/IS550/Configuring+OAuth2-OpenID+Connect+Single-Sign-On

2021年12月8日 星期三

加工食品

 調味劑 L-麩酸鈉 胺基乙酸 琥珀酸二鈉 DL-胺基丙酸 檸檬酸鈉 L-天門冬酸鈉
甜味劑 甘草酸鈉
黏稠劑 糊 磷酸二澱粉 乙醯化已二酸二澱粉
抗氧化劑 異抗壞血酸鈉
甜味劑 山梨糖醇
品質改 釀造用及食品製造用劑 焦磷酸鈉(無水)
結著劑 多磷酸鈉
修飾澱粉 磷酸二澱粉 乙醯化已二酸二澱粉
結著劑 多磷酸鈉
著色劑 食用黃色4號 食用紅色40號 食用黃色5
膨脹劑 碳酸氫鈉(小蘇打)
黏稠劑 糊料 醋酸澱粉 磷酸二澱粉 乙醯化己二酸二澱粉 海藻酸丙二醇 乾酪素鈉 鹿角菜膠
乳化劑 乳酸硬脂酸鈉(益麵劑) 脂肪酸甘油酯 脂肪酸丙二醇酯
香料 酯類
調味劑 L-麩酸鈉 檸檬酸鈉 胺基乙酸 DL-胺基丙酸 琥珀酸二鈉 5'-鳥嘌呤核苷磷酸二鈉 5'-次黃嘌呤核苷磷酸二鈉
黏稠劑 糊料 醋酸澱粉
抗氧化劑 乙烯二胺四醋酸二鈉 L-抗壞血酸棕櫚酸酯(維生素C) 生育醇(維生素E)
調味劑 冰醋酸
甜味劑 醋磺內酯鉀
黏稠劑 玉米糖膠 羥丙基磷酸二澱粉
乳化劑 脂肪酸蔗糖酯 氫化棕櫚仁油 脂肪酸丙二醇酯 脂肪酸甘油酯
結著劑 多磷酸鈉
品質改良用 釀造用及食品製造用劑 二氧化矽
營養添加劑 鹽酸L-二胺基己酸
著色劑 焦糖色素
甜味劑 甘草酸鈉 蔗糖素
黏稠劑(糊料) 玉米糖膠 磷酸二澱粉
調味劑 5'–次黃嘌呤核苷磷酸二鈉 5'–鳥嘌呤核苷磷酸二鈉 琥珀酸二鈉 L-麩酸  胺基乙酸 DL-胺基丙酸 L-麩酸鈉 檸檬酸 L-天門冬酸鈉 檸檬酸鈉
肉汁鮮美的祕密「5'–次黃嘌呤核苷磷酸二鈉(IMP)」與「5'–鳥嘌呤核苷磷酸二鈉 (GMP)」肉 魚類 魚乾香菇

How to Write and Call DLL's Component Object Model DIL Interface Definition Language within Delphi

 https://en.wikipedia.org/wiki/Dynamic-link_library
https://github.com/MicrosoftDocs/cpp-docs/blob/main/docs/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp.md

How to Write and Call DLL's within Delphi
https://coderedirect.com/questions/360496/calling-functions-from-a-c-dll-in-delphi
https://www.tutorialspoint.com/dll/dll_delphi_example.htm
http://rvelthuis.de/index.html
https://www.freepascal.org/tools/h2pas.var
http://www.drbob42.com/headconv/
https://www.drbob42.com/Delphi/headconv.htm
https://www.mql5.com/en/articles/249



https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/
https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibrarya


DLL header  COM interface TLB Component Object Model DIL  Interface Definition Language
DLL header delphi COM interface TLB Component Object Model
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Developing_COM_Applications
Microsoft介面定義語言(英語:Microsoft Interface Definition Language;縮寫:MIDL)是微軟的基於文字的介面描述語言。擴充自DCE/RPC IDL用於微軟的組件物件模型(Component Object Model)。 [1] 它的編譯器是MIDL.exe(隨Windows SDK發行)。MIDL用於遠端程序呼叫(RPC)的介面、DCOM介面、OLE自動化的類型庫等的描述.
https://en.wikipedia.org/wiki/Microsoft_Interface_Definition_Language
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Type_Libraries


https://stackoverflow.com/questions/40799003/importing-c-sharp-or-c-dll-as-com-object-in-delphi
https://www.codeproject.com/Articles/505791/Writing-Simple-COM-ATL-DLL-for-VS2012
https://www.red-gate.com/simple-talk/development/dotnet-development/build-and-deploy-a-net-com-assembly/
https://nachtimwald.com/2012/04/08/wrapping-a-c-library-in-comactivex/
https://wiki.freepascal.org/LazActiveX
https://www.codeproject.com/Articles/13601/COM-in-plain-C
https://docs.microsoft.com/en-us/windows/win32/com/component-object-model--com--portal
https://blog.xuite.net/metafun/life/77922432

https://theroadtodelphi.com/2010/11/25/create-a-sfx-file-with-delphi-self-extracting-archives/

Create a SFX File with Delphi (Self Extracting Archives)
https://kolmck.net/
https://github.com/RRUZ/blog/tree/master/Misc/SFX



Injector Code

Dalam kode kita, saya menggunakan beberapa fungsi API Win32 untuk melakukan injeksi. Dan saya rasa, pada umumnya tulisan tentang DLL Injection di internet menggunakan kode yang sama untuk kategori injeksi dasar.

OpenProcess()
Mendapatkan handle dari proses target.

VirtualAllocEx()
Mengalokasikan memory dalam wilayah memory proses target. Data-data seperti nama fungsi, parameter, dan sebagainya yang akan digunakan oleh injected code harus berada dalam lokasi memori proses target yang dialokasikan sebelumnya dengan fungsi ini.
WriteProcessMemory()
Menuliskan  data ke memori yang telah dialokasikan dalam wilayah memori proses target.
CreateRemoteThread()
Menjalankan thread baru di proses target. Ini akan mengeksekusi DLL yang diinjek.
GetProcAddress()
Mendapatkan alamat fungsi dalam sebuah DLL. Ini akan dipakai untuk mengambil alamat fungsi LoadLibrary() dalam kernel32.dll
WaitForSingleObject()
Menunggu eksekusi sampai selesai, dengan menyertakan parameter INFINITE.
CloseHandle()
Meunutup handle proses yang didapatkan dari OpenProcess.


Pid : Cardinal;
dllname : String;
pDLLname : Pointer;
hProzess,bw : Cardinal ;
hRemoteThread : Cardinal;
dllname := ADLLname;
hProzess:= OpenProcess(PROCESS_ALL_ACCESS, false, targetproc);
pdllname := VirtualAllocEx(hProzess, 0, length(dllname),
          MEM_COMMIT,PAGE_EXECUTE_READWRITE);
WriteProcessMemory(hProzess, pdllname, PChar(dllname), length(dllname), bw);
CreateRemoteThread(hProzess, nil, 0,
 
  GetProcAddress(GetModuleHandle('kernel32.dll'),
      'LoadLibraryA'), pDLLname, 0, hRemoteThread);
WaitForSingleObject(hRemoteThread, INFINITE);
CloseHandle(hProzess);
//...................
uses ...., TlHelp32; // -> untuk menggunakan Win32 Toolhelp library
//...................
procedure TFMain.EnumProcess;
hSnap:Cardinal;
pe32:TProcessEntry32;
s:String;
begin
hsnap:=CreateToolHelp32SnapShot(
TH32CS_SNAPPROCESS,
0
);
if hSnap = INVALID_HANDLE_VALUE then
exit;
FillChar(pe32, sizeof(pe32),0);
pe32.dwSize:=Sizeof(pe32);
if not Process32First(hsnap, pe32) then
exit;
cbProcess.Clear;
repeat
s:=IntToStr(pe32.th32ProcessID);
while length(s)<8 do s:='0'+s;
s:=s+': '+pe32.szExeFile;
if lowercase(copy(s, length(s)-3,4))='.exe' then
cbProcess.Items.Add(s);
until not Process32Next(hsnap, pe32);
CloseHandle(hSnap);
cbProcess.ItemIndex:=0;
end;unit umain;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TlHelp32;
 
hSnap:Cardinal;
pe32:TProcessEntry32;
s:String;
begin
hsnap:=CreateToolHelp32SnapShot(
TH32CS_SNAPPROCESS,
0
);
if hSnap = INVALID_HANDLE_VALUE then
exit;
FillChar(pe32, sizeof(pe32),0);
pe32.dwSize:=Sizeof(pe32);
if not Process32First(hsnap, pe32) then
exit;
cbProcess.Clear;
repeat
s:=IntToStr(pe32.th32ProcessID);
while length(s)<8 do s:='0'+s;
s:=s+': '+pe32.szExeFile;
if lowercase(copy(s, length(s)-3,4))='.exe' then
cbProcess.Items.Add(s);
until not Process32Next(hsnap, pe32);
CloseHandle(hSnap);
cbProcess.ItemIndex:=0;
Pid : Cardinal;
dllname : String;
pDLLname : Pointer;
hProzess,bw : Cardinal ;
hRemoteThread : Cardinal;
dllname := ADLLname;
hProzess:= OpenProcess(PROCESS_ALL_ACCESS, false, targetproc);
pdllname := VirtualAllocEx(hProzess, 0, length(dllname), MEM_COMMIT,PAGE_EXECUTE_READWRITE);
WriteProcessMemory(hProzess, pdllname, PChar(dllname), length(dllname), bw);
CreateRemoteThread(hProzess, nil, 0, GetProcAddress(GetModuleHandle('kernel32.dll'),'LoadLibraryA'), pDLLname, 0, hRemoteThread);
WaitForSingleObject(hRemoteThread, INFINITE);
CloseHandle(hProzess);
EnumProcess;
if cbProcess.Items.Count = 0 then exit;
s:=copy(cbProcess.Items[cbProcess.ItemIndex],1,8);
i:=StrToInt(s);
InjectDll(ExtractFilePath(ParamStr(0))+'InjectedDLL.dll', i);

Managing Memory-Mapped Files THandle Virtual sizeof Integer initialization create memory mapped hMapFile CreateFileMapping ReadWrite VirtualFileName Exception pointer MapViewOfFile application terminates finalization UnmapViewOfFile
 















2021年12月7日 星期二

deep learning

 tensorflow cuDNN cuda  Keras jupyter Miniconda

Anaconda Jupyter NotebookMXNet PyTorch TensorFlow Theano Caffe  Keras

pyimagesearch.minigooglenet  

MiniGoogLeNet  sklearn.preprocessing  LabelBinarizer  

keras ImageDataGenerator LearningRateScheduler    multi_gpu_model  

matplotlib

pyplot tensorflow numpy argparse

 https://learnopencv.com/installing-deep-learning-frameworks-on-ubuntu-with-cuda-support/

 https://www.pyimagesearch.com/2017/10/30/how-to-multi-gpu-training-with-keras-python-and-deep-learning/

 Vulkan

https://kfocus.org/wf/deep.html 


https://docs.microsoft.com/zh-tw/visualstudio/ai/installation?view=vs-2017

 NVIDIA GPU 驅動程式

CUDA 是 NVIDIA 首創的平行運算平台和程式設計模型。
cuDNN (CUDA 深度類神經網路程式庫)


Python 一直是深度學習應用程式的主要程式設計語言。

NumPy 和 SciPy

Microsoft Cognitive Toolkit (CNTK)

Microsoft Cognitive Toolkit 是整合深度學習工具組,

TensorFlow (英文) 是使用資料流程圖表進行數值計算的開放原始碼軟體程式庫。

Caffe2 是輕量型、模組化且可調整規模的深度學習架構。


Apache MXNet 是專為效率和彈性所設計的深度學習架構。

Keras (英文) 是以 Python 撰寫,能夠在 CNTK、TensorFlow 或 Theano 上執行的高階類神經網路 API。

Theano 是 Python 程式庫,可讓您有效率地定義、最佳化及評估涉及多維陣列的數學運算式。

PyTorch  Anaconda University of California

Chainer 是以彈性為目標的 Python 深度學習架構。

https://data-flair.training/blogs/deep-learning-with-python-libraries/
https://www.kite.com/blog/python/data-science-packages-python/


https://www.tertiarycourses.com.my/python-programming-courses-in-malaysia.html


https://www.thegioimaychu.vn/blog/tong-hop/nvidia-deep-learning-va-framework-hop-nhat-danh-cho-nha-phat-trien-p5375/


https://analyticsindiamag.com/top-tensorflow-based-projects-that-ml-beginners-should-try/

Top TensorFlow-Based Projects That ML Beginners Should Try
    Handwritten Text Recognition. ...
    Self-Driving MarioKart. ...
    Skyfall: Gesture-controlled Web Game. ...
    Sudoku. ...
    Plant Disease Detection Robot. ...
    Vehicle Detection, Tracking, and Counting. ...
    LSTM Human Activity Recognition. ...
    DeepSpeech.

https://www.hackster.io/tensorflow/projects

https://blogs.embarcadero.com/machine-learning-5-ways-to-use-ml-in-your-windows-apps/

https://github.com/pyscripter/python4delphi

https://blogs.embarcadero.com/?s=Machine+Learning