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



Getting Started with Machine Learning Using TensorFlow and Keras

 https://www.digikey.cz/en/maker/projects/getting-started-with-machine-learning-using-tensorflow-and-keras/0746640deea84313998f5f95c8206e5b

2021年12月6日 星期一

三杯雞 杏鮑菇 中捲 透抽 田雞 鱉 豆腐

 
三杯雞 杏鮑菇 中捲 透抽 田雞 鱉 豆腐

蒜10顆
黑麻油30ml 老薑片20克 九層塔10克 青蒜10克
油炒

醬油13 ml 水40 ml
燒乾

糖15克 麥芽糖3 ml 炒焦糖
米酒30 ml
最後嗆鍋

洋蔥 豆干 炸大腸 粉米條 豆皮絲 麵筋
炸薯條 炸南瓜條 蘿蔔塊 馬鈴薯塊 芹菜 筍絲
填份量

泡香菇 開陽小蝦 泡魷魚 肥豬肉
增香 

辣椒 辣椒醬3克
依口味選擇 

蠔油 2茶匙 黑胡椒3茶匙
適量增香

老薑片 糯米 桂葉 紅棗 枸杞 當歸 煮水醃料去腥

TWebBrowser delphi FEATURE_BROWSER_EMULATION

https://www.google.com/search?q=gecko+delphi
https://www.google.com/search?q=+delphi+mozilla+XULRunner
https://github.com/plus7/bagel
https://en.wikipedia.org/wiki/Gecko_(software)
https://code.google.com/archive/p/thtmlviewer/
https://sourceforge.net/projects/htmlviewer/
http://www.songbeamer.com/delphi/
http://pbear.com/htmlviewers.html
https://github.com/salvadordf/CEF4Delphi
https://github.com/amikey/CEF4Delphi2
https://www.google.com/search?q=delphichromiumembedded+delphi+chromium+embedded
https://code.google.com/archive/p/chromiumembedded/
https://www.google.com/search?q=delphi+EmbeddedWB
https://www.chromium.org/developers
TWebBrowser
 microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/general-info/ee330730(v=vs.85)?redirectedfrom=MSDN#browser_emulation
 Device testing and emulation Emulate browsers Internet Controls Browser Emulation
FEATURE_BROWSER_EMULATION


http://www.delphifans.com/SoftView/SoftView_2705.html
http://d.download.csdn.net/detail/randb/631380
TEmbeddedWB

Chakra (JavaScript engine)
EdgeHTML
https://en.wikipedia.org/wiki/Comparison_of_browser_engines
https://en.wikipedia.org/wiki/Flow_(web_browser)

miniblink cef firefox WKE Miniblink Vue delphi

https://github.com/landv/gambas
https://en.wikipedia.org/wiki/KDE_Frameworks#Components

kde Konqueror Dolphin Gecko
KHTML KJS Trident
QT WebBrowser  ActiveQt VTK
layout rendering engine

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

2021年12月5日 星期日

Programming Automation code autocomplete Programming Automation


Assistant copilot otherside tabnine Kite Ponicode AiXcoder OpenAI Codex 

Autocomplete Snippets 


https://becominghuman.ai/github-copilot-and-the-rise-of-ai-language-models-in-programming-automation-9d882a743911


https://analyticsindiamag.com/top-8-alternatives-to-github-copilot/


https://www.theverge.com/2021/6/29/22555777/github-openai-ai-tool-autocomplete-code


https://towardsdatascience.com/github-copilot-a-new-generation-of-ai-programmers-327e3c7ef3ae


https://sourceforge.net/software/compare/GitHub-Copilot-vs-Kite-vs-OpenAI-Codex-vs-Tabnine/


https://www.youtube.com/watch?v=7YDx27iVc_s&ab_channel=KrishNaik
Github Copilot Vs Tabnine AI Code Completion Autocomplete Vs KITE- Which Is Your Favourite ?

https://code.likeagirl.io/github-copilot-bright-future-or-an-impending-doom-df0f1674a50c
GitHub Copilot — Bright Future or an Impending Doom


https://betterprogramming.pub/ai-review-github-copilot-d43afde51a5a
A Deep Dive Into GitHub Copilot

https://www.codota.com/
Get AI Code Completions for your IDE 


https://medium.com/swlh/kite-vs-tabnine-which-ai-code-autocomplete-should-you-choose-eb6eba85c3a6
Kite VS. TabNine: Which AI Code Autocomplete Should You Choose?

Web Win Sockets

 Web.Win.Sockets;


Delphi TTcpClient  TTcpServer  TBaseSocket TIpSocket TCustomIPClientTTcpClientTUdpSocketTRawSocketTCustomTcpServerTTcpServer   
Delphi TTcpClient  TTcpServer  TBaseSocket TIpSocket TCustomIPClientTTcpClientTUdpSocketTRawSocketTCustomTcpServerTTcpServer
 
windows socket Sockets.pas

TBaseSocket

    TIpSocket
        TCustomIPClient    
            TTcpClient      
            TUdpSocket          
        TRawSocket            
        TCustomTcpServer
            TTcpServer
 

TBaseSocket
-
TIpSocket
TCustomIPClient-TRawSocket-TCustomTcpServer                                                                                  
TTcpClient-TUdpSocket-TTcpServer


https://www.cnblogs.com/guorongtao/p/4377668.html
https://titanwolf.org/Network/Articles/Article?AID=9464645b-b242-49b7-9fc0-8a225d3905ab

https://docwiki.embarcadero.com/RADStudio/Sydney/en/Working_with_Sockets_Index
https://docwiki.embarcadero.com/Libraries/Sydney/en/System.Win.ScktComp.TWinSocketStream.Create
https://docwiki.embarcadero.com/CodeExamples/Sydney/en/VCL.InetWinSockets_Sample
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Specifying_a_Connection_Using_Sockets
https://blogs.embarcadero.com/example-websockets-server-and-client-chat-application/

https://github.com/nikitayev/EthernetStressTesting

https://lnet.wordpress.com/

 

 https://www.sourcecodester.com/visual-basic-net/4317/lan-messenger-using-ip-add.html

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

 https://flylib.com/books/en/2.37.1/internet_programming_sockets_and_indy.html

 https://www.cyut.edu.tw/~rcchen/courses/delphi/html/topic/topic18/topic18.htm

  1. TCP/IP 簡介
  2. Internet 元件簡介
  3. TCP兩人對談程式(Server/Client)
  4. UDP傳送訊息程式
  5. E-Mail 送信程式
  6. E-Mail 收信程式
  7. Web 瀏灠器
  8. IEWeb 瀏灠器

 https://www.codeproject.com/Articles/9390/HostName-IP-and-MAC-Address

 http://www.jcolibri.com/articles/web/client_serveur_tcp_indy/client_serveur_tcp_indy.html

https://forum.lazarus.freepascal.org/index.php?topic=35496.0

2021年12月4日 星期六

dll headers to Delphi

 tlb COM Object  CoInitialize

 

http://www.drbob42.com/headconv/ 

https://www.freepascal.org/tools/h2pas.var

http://rvelthuis.de/articles/articles-convert.html#main

http://rvelthuis.de/articles/articles-cobjs.html

http://rvelthuis.de/programs/convertpack.html


https://github.com/neslib/Chet

https://www.drbob42.com/Delphi/headconv.htm


https://docwiki.embarcadero.com/RADStudio/Sydney/en/Type_Libraries

https://github.com/RRUZ/delphi-dev-shell-tools

https://docwiki.embarcadero.com/RADStudio/Sydney/en/Code_Generated_When_You_Import_Type_Library_Information



 CreateComObject CreateOleObject ComObj.pas.
  if SaveInitProc <> nil then TProcedure(SaveInitProc);
  if (CoInitFlags <> -1) and Assigned(ComObj.CoInitializeEx) then
    NeedToUninitialize := Succeeded(ComObj.CoInitializeEx(nil, CoInitFlags));
    IsMultiThread := IsMultiThread or
      ((CoInitFlags and COINIT_APARTMENTTHREADED) <> 0) or
      (CoInitFlags = COINIT_MULTITHREADED); //this flag has value zero
    NeedToUninitialize := Succeeded(CoInitialize(nil));
Obviously he is used to call CoInitialize to initialize the com environment.
In the initialization section of ComObj.pas:
initialization
  LoadComExProcs;
  VarDispProc := @VarDispInvoke;
  DispCallByIDProc := @DispCallByID;
  SafeCallErrorProc := @SafeCallError;
  if not IsLibrary then
    SaveInitProc := InitProc;
   //point the InitProc pointer to the function InitProb
    InitProc := @InitComObj;
end; Come to the Forms.pas file, take a look at the TApplication.Initialize section:
procedure TApplication.Initialize;
  if InitProc <> nil then TProcedure(InitProc);

https://flylib.com/books/en/3.264.1.146/1/

Creating and Using COM Interfaces | C++Builder 5 ...


IDataBroker

Design time interface for remote data modules.

IDispatch

Interface used for providing Automation. (This is used in some of the following examples.)

IEnumVARIANT

Interface used for enumerating a collection of variant objects.

IFont

Interface to a COM font object, which is actually a wrapper around a Windows font object.

IPicture

Interface to a picture object, which is a language-neutral abstraction for bitmaps, icons, and metafiles, and its properties.

IProvider

Provider interface for TClientDataSet .

IStrings

Collection Interface for TStrings .

IUnknown

The base interface for all other interfaces. Introduces the QueryInterface() method, which is useful for discovering and using other interfaces implemented by the same object.

https://docs.microsoft.com/en-us/windows/win32/learnwin32/initializing-the-com-library


http://www.techvanguards.com/stepbystep/comdelphi/insideclient.asp


https://theroadtodelphi.com/category/com/

https://flylib.com/books/en/2.37.1/from_com_to_com_.html




delphi DirectX

 https://github.com/sadanboy

 https://github.com/microsoft/DirectX-Graphics-Samples

https://github.com/CMCHTPC/DelphiDX12 

https://github.com/BrokenGamesUG/delphi3d-engine

https://github.com/yizraor/PubDX_VCL_LCL

https://github.com/tothpaul/Delphi/tree/afa771afd8eaa912c21109ef5c53b0a7d711d49d/DesktopDuplicationAPI

https://github.com/BrokenGamesUG/rise-of-legions

https://github.com/gxlmyacc/sciter4d

https://github.com/MarcoCestari/Asphyre

https://github.com/ds-pack/components

https://github.com/MakeMagazinDE/GRBLize

https://delphi.fandom.com/wiki/Undelphix

http://www.lohninger.com/delfcomp.html

http://www.felix-colibri.com/papers/graphic/delphi_3d_designer/delphi_3d_designer.html


https://github.com/Mzonetd/MPascalCoin

https://github.com/PascalCoinDev/PascalCoin

https://github.com/adminborcvarr/kemercoin

https://github.com/nummer8/PascalCoin

https://github.com/mehmetsamat/kmercoin

https://github.com/MicroCoinHU/MicroCoinMiner

https://github.com/SkybuckFlying/PascalCoinSimplified

https://github.com/zahidaliayub/PascalCoin

https://github.com/BigJoe01/MicroCoin

https://github.com/OHLChain/techplayground


https://github.com/CWBudde/PasOpenCL

https://github.com/duzenko/OpenclMemBench


https://github.com/search?l=Pascal&q=jedi+delphi&type=Repositories

https://github.com/search?l=Pascal&p=4&q=D3D11.pas&type=Code

https://sourceforge.net/directory/?q=delphi+directx


https://castle-engine.io/

https://sourceforge.net/projects/ca9dx2delphi/

https://sourceforge.net/projects/andorra/

https://sourceforge.net/projects/dspack/

http://www.micrel.cz/Dx/index.html

http://glscene.sourceforge.net/wikka/

https://asphyre.net/


https://opensourcelibs.com/lib/d3d12memoryallocator

https://opensourcelibs.com/lib/llgl

https://opensourcelibs.com/lib/directxtk

https://opensourcelibs.com/lib/directxtk12

https://opensourcelibs.com/lib/d912pxy

https://opensourcelibs.com/lib/d9vk

https://opensourcelibs.com/lib/directx-wrappers


https://torry.net/quicksearchd.php?String=DirectX+&Title=Yes


GraphiX, Games, DirectX, OpenGL, OpenAL, SDL




2021年12月3日 星期五

delphi System.Math round trunc ceil floor RoundTo delphi Floating-Point Rounding Routines System.Math round trunc ceil floor RoundTo

 https://github.com/rvelthuis/DelphiBigNumbers/blob/master/Source/Velthuis.BigDecimals.pas

Math.Floor, which rounds down towards negative infinity.
Math.Ceiling, which rounds up towards positive infinity.
Math.Truncate, which rounds up or down towards zero.Truncation
Math.Round, Rounding

https://people.cs.nctu.edu.tw/~tsaiwn/sisc/runtime_error_200_div_by_0/www.merlyn.demon.co.uk/pas-chop.htm

delphi  System.Math round trunc ceil floor RoundTo delphi  Floating-Point Rounding Routines System.Math round trunc ceil floor RoundTo

System

Succ    increments an ordinal value, and returns this value
Dec         Decrement an ordinal variable
Inc         Increment an ordinal variable
Pred         Decrement an ordinal variable
Sqr         Gives the square of a number
Sqrt         Gives the square root of a number
Sum         Return the sum of an array of floating point values


Frac         The fractional part of a floating point number
Int         The integer part of a floating point number as a float
Round         Rounds a floating point number to an integer
Trunc         The integer part of a floating point number

PExtended    Pointer to a Extended floating point value
Str    Converts an integer or floating point number to a string
Val    Converts number strings to integer and floating point values


Rounding Algorithms

http://www.delphibasics.co.uk/ByUnit.asp?Unit=System

    System.Random
    System.Single
    System.SysUtils.TFormatSettings
    TSingleHelper.Mantissa
    TSingleHelper.Exponent
    TSingleHelper.BuildUp
    TSingleHelper.ToString

https://docwiki.embarcadero.com/CodeExamples/Sydney/en/Float_Type_Helpers_(Delphi)

    Class and Record Helpers (Delphi)
    System.SysUtils.TSingleHelper
    System.SysUtils.TDoubleHelper
    System.SysUtils.TExtendedHelper



https://en.wikipedia.org/wiki/Floating-point_arithmetic

Delphi 2010 DataSnap

 DSServerClass component TDSLifeCycle OnCreateInstance

Delphi DataSnap Lifecycle TDSServerClass DSTCPServerTransport

 https://docwiki.embarcadero.com/RADStudio/Sydney/en/Server_Class_LifeCycle

Using DAC products in multi-tier DB application development

https://blog.devart.com/using-dac-products-in-multi-tier-db-application-development.html 

Registering DataSnap Server Class in runtime with Delphi

Delphi 2010 DataSnap

Preserving State in DataSnap REST Server - 大匠之風

Server Objects Life Cycle 

https://www.delphipower.xyz/handbook_2009/server_objects_life_cycle.html

https://www.delphipower.xyz/handbook_2010/overview_of_datasnap_in_delphi.html


http://www.4k8k.xyz/article/aroc_lo/5333773

 DataSnap 2009 系列_编程资料收集与共享交流-程序员资料 


delphi  string  function  constructor  服务器  数据库类  DELPHI编程  parameters  三层/多层结构  编程技术 

Design Patterns Design Classes Objects

 Facade Pattern Decorator Composite Abstract Factory

抽象工廠 Abstract Factory

構造器 Builder Pattern

工廠方法 Factory Method pattern

原型 Prototype pattern

單例模式 Singleton pattern

Prototype Pattern 原型模式

Singleton Pattern 單例模式

Abstract Factory Pattern 抽象工廠模式

 

 

https://www.weblio.jp/content/Abstract+Factory+%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3

Abstract Factory パターン

 

Spread Delphi, Built with Delphi Good Quality Applications Built With Delphi 3rd vcl component

 https://delphi.fandom.com/wiki/Good_Quality_Applications_Built_With_Delphi

Good Quality Applications Built With Delphi

 

delphi-libraries-list List of Delphi Libraries and Frameworks

 

delphi-libraries-list

 

https://opensourcelibs.com/lib/delphi-libraries-list


    Spring4D repo: https://bitbucket.org/sglienke/spring4d
        Nick Hodges Talk: Dependency Injection and the Delphi Spring Framework : http://www.youtube.com/watch?v=8iB_ppvpjxM
    Emballo (not currently maintained) repo: https://code.google.com/p/emballo/
    Good Readings http://blog.synopse.info/post/2012/10/14/Interfaces-in-practice%3A-dependency-injection%2C-stubs-and-mocks
        http://delphisorcery.blogspot.ch/2013/12/dependency-injection-best-practices.html
    simple duck typing to Delphi Objects (easy RTTI) : http://code.google.com/p/duckduckdelphi/
    JSONChimera (XE2) web site: http://arcana.sivv.com/chimera
        SuperObject web site: http://code.google.com/p/superobject/
            documentation: http://superobject.googlecode.com/git/readme.html
        JSON parsing in mORMot : http://blog.synopse.info/post/2011/06/02/Fast-JSON-parsing
    DB <-> Object mapping -tiOPF: http://tiopf.sourceforge.net/index.shtml
    DUnitX: https://github.com/VSoftTechnologies/DUnitX
        Article: http://www.finalbuilder.com/Resources/Blogs/PostId/697/introducing-dunitx.aspx
    Dunit: http://dunit.sourceforge.net/
    DelphiSpec: https://github.com/RomanYankovsky/DelphiSpec
        Unit testing - see http://blog.synopse.info/post/2010/07/23/Unit-Testing-light-in-Delphi
        Stubs and Mocks - see http://blog.synopse.info/post/2012/10/14/Stubs-and-Mocks-for-Delphi-with-mORMot
    Delphi-Mocks repo: https://github.com/VSoftTechnologies/Delphi-Mocks
        Delphi-Mocks Article
            http://delphisorcery.blogspot.fr/2011/09/pimp-your-unit-tests-using-mock-objects.html
            http://www.finalbuilder.com/Resources/Blogs/PostId/417/introducing-delphi-mocks.aspx
    Code coverage repo : http://code.google.com/p/delphi-code-coverage/
        article : http://thundaxsoftware.blogspot.ch/2013/02/using-delphi-code-coverage.html
        Jenkins / Hudson integration : http://christerblog.wordpress.com/2010/07/02/delphi-code-coverage-in-hudson/
    GUI Testing http://www.gearheadforhire.com/articles/ruby/win32-autogui/using-ruby-to-drive-windows-applications  OpenCTF: http://openctf.sourceforge.net/
    Jenkins / Hudson integration : http://christerblog.wordpress.com/2010/04/25/using-hudson-to-build-delphi-projects/
    TPMath (scientific library): http://www.unilim.fr/pages_perso/jean.debord/tpmath/tpmath.htm
    ZeroMQ Delphi bindings https://github.com/bvarga/delphizmq
    Indy (Internet protocol components): http://www.indyproject.org/index.en.aspx
    mORMot, n-Tier / Client-Server
        http://blog.synopse.info/post/2012/03/07/Interface-based-services
        http://blog.synopse.info/post/2010/07/18/DataSnap-like-Client-Server-JSON-RESTful-Services-in-Delphi-7-2010
    Embeddable browser Delphi Chromium Embedded 3: http://code.google.com/p/dcef3/
        Delphi Chromium Embedded: http://code.google.com/p/delphichromiumembedded/
    Web frameworks Delphi On Rails https://code.google.com/p/delphionrails/
        delphi MVC framework : https://code.google.com/p/delphimvcframework/
        xxm: http://xxm.sourceforge.net/
    Http server http://blog.synopse.info/post/2011/03/11/HTTP-server-using-fast-http.sys-kernel-mode-server
    Delphi-ORM: https://code.google.com/p/delphi-orm/
    mORMot: http://synopse.info/fossil/wiki?name=SQLite3+Framework
    ZeosLib (database components): http://sourceforge.net/projects/zeoslib/
    SQLite wrapper: https://github.com/stijnsanders/TSQLite
    MongoDB connector: https://github.com/stijnsanders/TMongoWire
    Report from code - see http://blog.synopse.info/post/2010/06/30/Making-report-from-code
    PDF export - see http://blog.synopse.info/category/Open-Source-Projects/Synopse-PDF-engine
    OmniThread Library: http://code.google.com/p/omnithreadlibrary/
    SapMM: https://code.google.com/p/sapmm/
    LeakCheck: https://bitbucket.org/shadow_cs/delphi-leakcheck/ multi-platform memory manager with leak checking and DUnit integration.
    FastMM: https://github.com/pleriche/FastMM4
 
    ReduxDelphi, predictable state container : https://github.com/pierrejean-coudert/ReduxDelphi
    DSharp
        repo: https://bitbucket.org/sglienke/dsharp
        web site: http://delphisorcery.blogspot.fr/
    DWScript: http://code.google.com/p/dwscript/
    Python-4-Delphi: http://code.google.com/p/python4delphi/
    Delphi Javascript: http://code.google.com/p/delphi-javascript/
    ECMAScript 5 + JIT (SpiderMonkey) / Pascal integration: http://blog.synopse.info/post/2014/04/07/JavaScript-support-in-mORMot-via-SpiderMonkey
    BESEN, ECMAScript 5 in Object Pascal: https://github.com/bero1985/besen
    Lua bindings: https://github.com/cxflag203/delphimvcframework/tree/master/lib/luadelphibinding
    Very Simple Lua https://github.com/Dennis1000/verysimplelua
    RemObjects PascalScript: https://github.com/remobjects/pascalscript
    Behavior3 for Delphi https://github.com/Dennis1000/behavior3delphi
    http://www.boyet.com/FixedArticles/EZDSL.html
    The Delphi Container Library: http://sourceforge.net/projects/dclx/
    TChromeTabs: http://code.google.com/p/delphi-chrome-tabs/
    SynEdit: http://synedit.sourceforge.net/
    virtual-treeview: https://code.google.com/p/virtual-treeview/
    Task Dialogs: http://blog.synopse.info/post/2011/03/05/Open-Source-SynTaskDialog-unit-for-XP%2CVista%2CSeven
    vcl-styles-utils: Extend the Delphi VCL Styles (XE2+), http://code.google.com/p/vcl-styles-utils/
    Free ErrorSoft Vcl Components: https://github.com/errorcalc/FreeEsVCLComponents
    OpenGL, GLScene: http://glscene.sourceforge.net
    Computer Vision: OpenCV bindings :https://github.com/Laex/Delphi-OpenCV
    GDI+ : http://sourceforge.net/projects/delphigdiplus/
    Graphics32: http://graphics32.org/wiki/
    DSPack (Direct Show): http://code.google.com/p/dspack/
    7Zip bindings: http://code.google.com/p/d7zip/
    Castalia Delphi Parser: https://github.com/jacobthurman/Castalia-Delphi-Parser
    GpDelphiUnits: http://code.google.com/p/gpdelphiunits/
    libgit2: https://github.com/libgit2/libgit2
        Sampling Profiler: http://www.delphitools.info/samplingprofiler/
        source code instrumenting profiler : http://code.google.com/p/gpprofile2011/
        Spider - Delphi profiler: https://github.com/yavfast/dbg-spider
    ObjectDebugger : run-time Object Inspector for Delphi VCL applications https://github.com/marcocantu/ObjectDebugger
    Delphi IDE Theme Editor: https://code.google.com/p/delphi-ide-theme-editor/
    Delphi Dev. Shell Tools: http://code.google.com/p/delphi-dev-shell-tools/
    OmniPascal VS Code Editor: http://www.omnipascal.com/
    Delphi Find Unit (Import uses): https://github.com/rfrezino/RFindUnit
 

MyThread = Class(TThread)

 https://wiert.me/2020/01/01/delphi-multi-threading-confused-by-tthread-synchronize-tthread-queue-youre-not-alone/

 delphi TThread Synchronization OnExecute TMutexAcquire TCriticalSection TMutex TSpinlock TMonitor

Type
 MyThread = Class(TThread)
  private
    …
  protected
    ...
 end;


----------
procedure TMyThread.DoProgress;
////
procedure TMyThread.Execute;
const
Interval = 1000000;
begin
FreeOnTerminate := True;
FProgressBar.Max := FCountTo div Interval;
FProgressBar.Step := FProgressBar.Max;
while FCounter < FCountTo do
begin
if FCounter mod Interval = 0 then Synchronize(DoProgress) ;


----------
Type
 MyThread = Class(TThread)
  private
   procedure doProgress;
  end;
 
Implementation
 
procedure doProgress;
begin
  Form1.ProgressBar1.Progress;
end;

----------
var
 T : MyThread;
begin
 T := MyThread.Create(True);
 T.FreeOnTerminate := True;
 T.Resume;
end;
----------
type
 MyThread = Class(TThread)
  private
   ...  
  protected
   procedure Execute; override;
  end;
 
var
 
implementation
 
procedure MyThread.Execute;
begin
 
end;
----------
procedure MyThread.Execute;
begin
 Synchronize(doProgress);
end;

----------
MyThread.Suspend;
...
MyThread.Resume;


----------

var
 isSuspended : Boolean;
begin
 isSuspended := MyThread.Suspended;
end;
----------
var
 MyThreadID : Cardinal;
begin
 MyThreadID := MyThread.ThreadID;
end;
----------
MyThread.Terminate;
----------
procedure MyThread.Execute;
begin
 Synchronize(doProgress);
 …
 MyThread.Terminate;
 Exit;
end;

procedure MyThread.Execute;
begin
 if MyThread.Terminated then
    Exit;
 …
 if MyThread.Terminated then
    Exit;
 …
 MyThread.Terminate;
 Exit;
end;

procedure MyThread.Execute;
begin
 if MyThread.Terminated then
    Exit;
 …
 if MyThread.Terminated then
    Exit;
 …
 MyThread.Terminate;
 MyThread.WaiteFor;
 Exit;
end;


----------
{ Important: Methods and properties of objects in VCL or CLX can only be used
  in a method called using Synchronize, for example,
 
      Synchronize(UpdateCaption);
 
  and UpdateCaption could look like,
 
    procedure myTred.UpdateCaption;
    begin
      Form1.Caption := 'Updated in a thread';
    end; }
---------------

const
  TM_MYTHREAD_MSG = WM_USER + 200;
  TM_MYTHREAD_START = TM_MYTHREAD_MSG + 1;
  TM_MYTHREAD_PROGRESS = TM_MYTHREAD_MSG +2;
  TM_MYTHREAD_DONE =  TM_MYTHREAD_MSG +3;
/////
PostMessage(FormHandle, TM_MYTHREAD_MSG, TM_MYTHREAD_START,0);
//////
TMyForm = class(TForm)
...
protected
  procedure TmMyThreadMsg(var Msg: TMessage); message TM_MYTHREAD_MSG;
...
end;
 
////////
 
 procedure TMyForm.TmMyThreadMsg(var Msg: TMessage);
begin
  case Msg.LParam of
    TM_MYTHREAD_START : Progressbar1.Position := 0;
    TM_MYTHREAD_PROGRESS : Progressbar1.Position := Progressbar1.Position + 1;
    TM_MYTHREAD_DONE : Progressbar1.Position := Progressbar1.Max;
  end;
end;

---------------
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
  public
  end;
  Type
 MyThread = Class(TThread)
  private
  protected
   procedure Execute; override;
 end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
////
procedure MyThread.Execute;
begin
form1.Caption:=form1.Caption+'1';
end;
////
procedure TForm1.FormCreate(Sender: TObject);
var
 T : MyThread;
begin
 T := MyThread.Create(True);
 T.FreeOnTerminate := true;
 T.Resume;
end;
end.
---------------
 

Messagebox delay in Delphi MessageBoxTimeOut function

 Messagebox delay in Delphi MessageBoxTimeOut function
 
#include <windows.h>
#include <tchar.h>

//Functions & other definitions required-->
typedef int (__stdcall *MSGBOXAAPI)(IN HWND hWnd,
        IN LPCSTR lpText, IN LPCSTR lpCaption,
        IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);
typedef int (__stdcall *MSGBOXWAPI)(IN HWND hWnd,
        IN LPCWSTR lpText, IN LPCWSTR lpCaption,
        IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);

int MessageBoxTimeoutA(IN HWND hWnd, IN LPCSTR lpText,
    IN LPCSTR lpCaption, IN UINT uType,
    IN WORD wLanguageId, IN DWORD dwMilliseconds);
int MessageBoxTimeoutW(IN HWND hWnd, IN LPCWSTR lpText,
    IN LPCWSTR lpCaption, IN UINT uType,
    IN WORD wLanguageId, IN DWORD dwMilliseconds);

#define MB_TIMEDOUT 32000

    static MSGBOXAAPI MsgBoxTOA = NULL;

    if (!MsgBoxTOA)
    {
        HMODULE hUser32 = GetModuleHandle(_T("user32.dll"));
        if (hUser32)
        {
            MsgBoxTOA = (MSGBOXAAPI)GetProcAddress(hUser32,
                                      "MessageBoxTimeoutA");
        HMODULE hUser32 = GetModuleHandle(_T("user32.dll"));
        if (hUser32)
        {
            MsgBoxTOW = (MSGBOXWAPI)GetProcAddress(hUser32,
                                      "MessageBoxTimeoutW");
HMODULE hUser32 = LoadLibrary(_T("user32.dll"));
 
    UINT uiFlags = MB_OK|MB_SETFOREGROUND|MB_SYSTEMMODAL|MB_ICONINFORMATION;
    
    iRet = MessageBoxTimeout(NULL, _T("Test a timeout of 2 seconds."),
                      _T("MessageBoxTimeout Test"), uiFlags, 0, 2000);
    //iRet will = 1

    uiFlags = MB_YESNO|MB_SETFOREGROUND|MB_SYSTEMMODAL|MB_ICONINFORMATION;

    iRet = MessageBoxTimeout(NULL, _T("Test a timeout of 5 seconds."),
                      _T("MessageBoxTimeout Test"), uiFlags, 0, 5000);
    //iRet will = MB_TIMEDOUT if no buttons pressed, button values otherwise
        
    //only unload user32.dll when you have no further need
    //for the MessageBoxTimeout function
    FreeLibrary(hUser32);
https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.debugger.messageboxflags?view=visualstudiosdk-2022

MB_OK
MB_OKCANCEL
MB_ABORTRETRYIGNORE
MB_YESNOCANCEL
MB_YESNO
MB_RETRYCANCEL

MB_APPLMODAL
MB_SYSTEMMODAL

        MB_SIMPLEBEEP (Only when Title is not used)
        MB_HELP (Probably won't work)
        MB_DEFAULT_DESKTOP_ONLY
        MB_RIGHT
        MB_RTLREADING
        MB_SETFOREGROUND
        MB_TOPMOST
        MB_SERVICE_NOTIFICATION
    https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-messagebox
    https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-messagebeep

MB_TASKMODAL

------------------------------
function MessageBoxTimeOut(hWnd: HWND; lpText: PChar; lpCaption: PChar;
                           uType: UINT; wLanguageId: WORD; dwMilliseconds: DWORD): Integer; stdcall;

function MessageBoxTimeOutA(hWnd: HWND; lpText: PChar; lpCaption: PChar;
                            uType: UINT; wLanguageId: WORD; dwMilliseconds: DWORD): Integer; stdcall;


function MessageBoxTimeOutW(hWnd: HWND; lpText: PWideChar; lpCaption: PWideChar;
                            uType: UINT; wLanguageId: WORD; dwMilliseconds: DWORD): Integer; stdcall;

  Windows.pas
const
  MB_TIMEDOUT = 32000;

function MessageBoxTimeOut; externaluser32 name 'MessageBoxTimeoutA';
function MessageBoxTimeOutA; external user32 name 'MessageBoxTimeoutA';
function MessageBoxTimeOutW; external user32 name 'MessageBoxTimeoutW';
  // Define a MessagBox  with an OK button and a timeout of 2 seconds
  iFlags  := MB_OK or MB_SETFOREGROUND or MB_SYSTEMMODAL or MB_ICONINFORMATION;
  iResult := MessageBoxTimeout(Application.Handle, 'Test a timeout of 2 seconds.',
                             'MessageBoxTimeout Test', iFlags, 0, 2000);
  // iResult will = 1 (IDOK)
  ShowMessage(IntToStr(iRet));

  // Define a MessageBox with a Yes and No button and a timeout of 5 seconds
  iFlags  := MB_YESNO or MB_SETFOREGROUND or MB_SYSTEMMODAL or MB_ICONINFORMATION;
  iResult := MessageBoxTimeout(Application.Handle, 'Test a timeout of 5 seconds.',
                              'MessageBoxTimeout Test', iFlags, 0, 5000);
  // iResult = MB_TIMEDOUT if no buttons clicked, otherwise
  // iResult will return the value of the button clicked
  case iResult of
  IDYES:  // Pressed Yes button
    ShowMessage('Yes');
  IDNO:  // Pressed the No button
    ShowMessage('No');
  MB_TIMEDOUT: // MessageBox timed out
    ShowMessage('TimedOut'); 


https://edn.embarcadero.com/print/32736

 Dialogs createMessageDialog createOptionDialog

Vcl.Dialogs.CreateMessageDialog

https://github.com/Leandros/WindowsHModular/blob/master/include/win32/window.h 


https://www.codeproject.com/Articles/18399/Localizing-System-MessageBox

2021年12月1日 星期三

Direct3D Shader

 https://github.com/grijjy/DelphiScalableClientSockets

 https://github.com/grijjy

 Introduction to Shader Programming

https://blog.grijjy.com/2021/01/14/shader-programming/

 . To compile DirectX shaders, you need to use the Direct3D Shader Compiler tool (fxc.exe), 

https://github.com/grijjy/JustAddCode/tree/master/GpuProgramming

https://blog.grijjy.com/

2021年11月30日 星期二

Animated 3D Models 3d file obj fbx dae stp prt stl WRL blend

 Animated 3D Models 3d file obj fbx dae stp prt stl WRL blend

3D File Format: 10 Most Popular Types for Different Software


https://cgifurniture.com/3d-file-format-10-types/


http://edutechwiki.unige.ch/en/3D_file_format


Essential Guide to 3D File Formats


https://www.marxentlabs.com/3d-file-formats/


https://all3dp.com/1/best-20-3d-animation-software/

Model file formats - Unity - Manual 

https://docs.unity3d.com/Manual/3D-formats.html

Netty is a non-blocking I/O client-server framework for the development of Java network applications

socket cache server layer Socket Server listen thread extends  ServerSocket

Socket listen accept connect identifier

Multiple Connection

inetd (internet service daemon) is a super-server daemon on many Unix systems that provides Internet services. For each configured service
https://en.wikipedia.org/wiki/Inetd
TCP Wrappers (also known as tcp_wrappers) is a host-based networking ACL system, used to filter network access to Internet Protocol servers
https://en.wikipedia.org/wiki/TCP_Wrappers
xinetd (Extended Internet Service Daemon) is an open-source super-server daemon which runs on many Unix-like systems and manages Internet-based connectivity
https://en.wikipedia.org/wiki/Xinetd

iptables是運行在使用者空間的應用軟體,通過控制Linux核心netfilter模組
https://en.wikipedia.org/wiki/Iptables
iptables is a command-line firewall utility
ipchains  firewall

Syslog Daemons, Message Formats and Protocols
syslog daemon is a server process that provides a message logging

getpeername() — Get the name of the peer connected to a socket
WSAASyncSelect getpeername getsockname
asynchronous Socket listen accept client connect identifier getpeername getsockname

ServerSocket" Compressing RMI Wrapper SSL
Remote Method Invocation java.rmi.server Interface RMIServerSocketFactory  Java Remote Messaging Protocol

Netty is a non-blocking I/O client-server framework for the development of Java network applications

 https://en.wikipedia.org/wiki/Netty_(software)