<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Gerhard Fuchs on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/author/gerhard-fuchs/</link><description>Articles written by Gerhard Fuchs on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 04 Oct 2024 11:58:05 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/author/gerhard-fuchs/index.xml" rel="self" type="application/rss+xml"/><item><title>Java Server and Rust Client Built with Generated Networking Code</title><link>https://foojayio.github.io/website/today/fuchs2024-fepcos-j-java-server-and-rust-client/</link><pubDate>Fri, 04 Oct 2024 11:58:05 +0000</pubDate><guid>https://foojayio.github.io/website/today/fuchs2024-fepcos-j-java-server-and-rust-client/</guid><description>&lt;p&gt;&lt;strong&gt;FEPCOS-J allows declaratively implementing a Java server and generating its profile, which, for example, can be used to generate the networking code of a Rust client.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="h2-0-introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;As I have shown in a &lt;a href="https://foojayio.github.io/website/today/fuchs-2024-fepcos-j-multithreaded-server/"&gt;previous post&lt;/a&gt;
 [1] and a &lt;a href="https://youtu.be/qtPP7kZbriQ" target="_blank" rel="noopener noreferrer"&gt;video&lt;/a&gt;
 [2], the &lt;a href="http://fepcos.info/en/fepcos-j.html" target="_blank" rel="noopener noreferrer"&gt;FEPCOS-J development tool&lt;/a&gt;
 [3] prototypically implements a Java language extension that allows implementing a client-server application in Java without the need for manual network programming.&lt;/p&gt;
&lt;p&gt;In a nutshell, FEPCOS-J allows a Java developer to program a server&amp;rsquo;s system specification declaratively using annotations. The FEPCOS-J Processor &lt;em&gt;&lt;strong&gt;fjp&lt;/strong&gt;&lt;/em&gt; uses this specification to generate the server&amp;rsquo;s system export module and system import module.&lt;/p&gt;</description></item><item><title>Client-server application in Java: Easy with FEPCOS-J – Video.</title><link>https://foojayio.github.io/website/today/fuchs-2024-video-fepcos_j-client-server-application-in-java/</link><pubDate>Tue, 30 Jul 2024 11:51:04 +0000</pubDate><guid>https://foojayio.github.io/website/today/fuchs-2024-video-fepcos_j-client-server-application-in-java/</guid><description>&lt;p&gt;&lt;strong&gt;This is a result of the &lt;a href="http://fepcos.info" target="_blank" rel="noopener noreferrer"&gt;FEPCOS-Project&lt;/a&gt;
, aka @FepcosInfo; #FepcosJ_blog5.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;See how FEPCOS-J relieves developers of the network programming required to implement a client-server application in Java.&lt;br&gt;
&lt;a href="https://youtu.be/qtPP7kZbriQ" target="_blank" rel="noopener noreferrer"&gt;&lt;img src="https://foojayio.github.io/website/today/fuchs-2024-video-fepcos_j-client-server-application-in-java/fuchs2024FepcosJ_video1-512x512-1.png" alt="Link to video: Easy Implementation of a Client-Server Application in Java with FEPCOS-J.
#FepcosJ_video1, #FepcosJ." loading="lazy"&gt;
&lt;/a&gt;
 &lt;strong&gt;External link to&lt;/strong&gt; : G. Fuchs: &lt;em&gt;Video: Easy Implementation of a Client-Server Application in Java with FEPCOS-J&lt;/em&gt;; On: YouTube, FEPCOS-Project (@FepcosInfo); 29-July-2024; &lt;a href="https://youtu.be/qtPP7kZbriQ" target="_blank" rel="noopener noreferrer"&gt;https://youtu.be/qtPP7kZbriQ&lt;/a&gt;
.&lt;br&gt;
&lt;img src="https://foojayio.github.io/website/today/fuchs-2024-video-fepcos_j-client-server-application-in-java/fuchs-2024-implementing-a-service-with-fepcos-j-1024x576.png" alt="FEPCOS-J provides annotations for programming a client-server application in Java." loading="lazy"&gt;
 &lt;strong&gt;Impression of the above-linked video&lt;/strong&gt;: FEPCOS-J provides annotations like @AYSpec, @In, @Out, and @Behavior for programming a client-server application in Java. Watch the video for a complete example application of FEPCOS-J.&lt;/p&gt;</description></item><item><title>Multithreaded server in Java: That's easy with FEPCOS-J.</title><link>https://foojayio.github.io/website/today/fuchs-2024-fepcos-j-multithreaded-server/</link><pubDate>Thu, 21 Mar 2024 08:38:28 +0000</pubDate><guid>https://foojayio.github.io/website/today/fuchs-2024-fepcos-j-multithreaded-server/</guid><description>&lt;p&gt;&lt;strong&gt;FEPCOS-J prototypically implements a Java language extension that allows the realization of a multithreaded TCP/IP server in Java without thread or network programming.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Please help me to make FEPCOS-J a Free/Libre and Open-Source Software (FLOSS).&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="h2-0-introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;FEPCOS-J &lt;a href="#references"&gt;[1]&lt;/a&gt;
 is a Java development tool that prototypes a Java language extension for declarative programming of networked systems. See my previous posts for details &lt;a href="#references"&gt;[2, 3, 4]&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;Firstly, this post briefly defines &lt;a href="#what"&gt;the term &amp;ldquo;multithreaded TCP/IP server&amp;rdquo;&lt;/a&gt;
. It then describes &lt;a href="#how"&gt;how FEPCOS-J supports programming a multithreaded TCP/IP server in Java&lt;/a&gt;
. Further, the post explains &lt;a href="#look"&gt;what implementing the server with FEPCOS-J looks like&lt;/a&gt;
 and provides an &lt;a href="#example"&gt;example&lt;/a&gt;
. Finally, the post draws a &lt;a href="#conclusion"&gt;conclusion&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>FEPCOS-J: Native executables of Java-coded networked systems</title><link>https://foojayio.github.io/website/today/fuchs-2023-fepcos-j-03-native-executables/</link><pubDate>Wed, 13 Dec 2023 12:13:07 +0000</pubDate><guid>https://foojayio.github.io/website/today/fuchs-2023-fepcos-j-03-native-executables/</guid><description>&lt;p&gt;&lt;strong&gt;FEPCOS-J prototypically enables Java developers to realize networked systems without low-level network programming and to automatically build native executables by means of GraalVM. &lt;strong&gt;This post introduces the concept and gives you an example by rebuilding the source code explained in my previous posts.&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Please help me to make FEPCOS-J a Free/Libre and Open-Source Software (FLOSS).&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="h2-0-introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;FEPCOS-J&lt;/strong&gt; &lt;a href="#references"&gt;[1]&lt;/a&gt;
 enables a Java developer to declaratively program networked systems and compose them like building blocks &lt;a href="#references"&gt;[2]&lt;/a&gt;
. For this purpose, FEPCOS-J provides Java modules and generates code to free a Java developer from network programming &lt;a href="#references"&gt;[3]&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>FEPCOS-J (2) – Declaratively compose networked systems in Java</title><link>https://foojayio.github.io/website/today/fuchs-2023-fepcos-j-02/</link><pubDate>Fri, 13 Oct 2023 06:07:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/fuchs-2023-fepcos-j-02/</guid><description>&lt;p&gt;&lt;strong&gt;FEPCOS-J implements a model-based Java language extension that provides the annotation &lt;em&gt;@Part&lt;/em&gt;, which enables a developer to declaratively compose networked systems. This post introduces the concept and gives you an example of how to use it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Please help me to make FEPCOS-J a Free/Libre and Open-Source Software (FLOSS).&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="h2-0-introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;FEPCOS-J arises in the frame of the FEPCOS-Project &lt;a href="#references"&gt;[1]&lt;/a&gt;
, which aims to simplify the programming of composed networked systems.&lt;/p&gt;
&lt;p&gt;FEPCOS-J implements a domain-specific Java language extension whose semantic domain is based on the FEPCOS-Model &lt;a href="#references"&gt;[2]&lt;/a&gt;
, which extends the composite design pattern &lt;a href="#references"&gt;[3]&lt;/a&gt;
 to include networking aspects.&lt;/p&gt;</description></item><item><title>FEPCOS-J (1) – Description, Impression of Usage, Current State</title><link>https://foojayio.github.io/website/today/fuchs-2023-fepcos-j-01/</link><pubDate>Wed, 26 Apr 2023 06:09:41 +0000</pubDate><guid>https://foojayio.github.io/website/today/fuchs-2023-fepcos-j-01/</guid><description>&lt;p&gt;&lt;strong&gt;Abstract: FEPCOS-J has arisen in the context of my work in the field of robot sensor networks. It implements a Java-language extension that frees a Java developer from network programming and supports cross-system concurrency. This article gives you an impression of using FEPCOS-J based on a simple example.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So far, FEPCOS-J is a prototype with 1629 lines of Java-code. I develop and test it on my own within a toy robot-based &lt;em&gt;amd64 / x64&lt;/em&gt; &lt;em&gt;Linux&lt;/em&gt; &lt;em&gt;OpenJDK 17&lt;/em&gt; environment, which communicates via a private and secured IPv4-network.&lt;/p&gt;</description></item></channel></rss>